From e83c7e071c7f421188770f77ef5368ea602527a2 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Sun, 9 Aug 2026 05:37:51 +0000 Subject: [PATCH] perf(vulkan): decode GEMV reads four elements per load, and the row lever is dead vt_matmul_vec is 89-90% of 27B decode GPU time and moves ~52 GB of bf16 weights per token, so it was the largest single line item left. Two structural differences against llama.cpp's mul_mat_vec (pin 237ad9b96) were the candidates. ONE is worth about 1%, the OTHER is a measured LOSS on this device, and the win is 7x smaller than the isolated sweep first said. All three of those are the result, and the third is the most useful. WHAT SHIPPED. VT_MM_PACK, a specialization constant selecting the LOAD WIDTH for a 16-bit operand: one element per load (2 B, the previous behaviour), two through the buffer's existing 32-bit view, or four through a new 64-bit view of the same VkBuffer. Ported in intent from llama.cpp's data_b_v4 / dequantize4_2aligned (vulkan-shaders/dequant_funcs.glsl:54-61, which reads bf16 weights as two 32-bit words). Same bytes, same coalescing -- a 32-lane subgroup still covers 128 or 256 CONSECUTIVE bytes -- so this CANNOT reduce DRAM traffic. It reduces LOAD INSTRUCTIONS, four to one. Default 2, degrading a width at a time when K or an operand byte offset is not aligned to it, and declining for an f32 operand. WHAT DID NOT WORK, AND ITS NUMBER. VT_MM_ROWS, llama.cpp's NUM_ROWS (mul_mat_vec_base.glsl:90; ggml-vulkan.cpp:4705-4719 sets it per vendor via rm_stdq), computing 2 or 4 output elements per workgroup so one loaded activation feeds several weight rows. MEASURED 0.966x at 2 rows and 0.968x at 4, in every pass and at every load width. It ships OFF. What it was supposed to buy was never traffic -- the weights are read exactly once per token at any row count -- and the activation re-reads it saves were L2 hits. Halving the workgroup count halves the independent sequential read streams the memory controller sees while each surviving workgroup interleaves rows K*2 bytes apart, which is the likely cost. The axis is KEPT, off by default, because llama.cpp raises it exactly on the AMD GCN and Intel parts this backend's portability case is aimed at, so deleting it would mean rediscovering it on the VK-I board. It is bit-identical to rows=1 at any value, verified by a full-output bit-hash and not only by argument. MEASURED, ISOLATED SWEEP, AND IT OVERSTATED THE WIN BY 7x. benchmarks/vulkan_gemv_ab.cpp runs the GEMV over the seven (k, n) shapes Qwen3.6-27B actually dispatches; 9 arms x 4 rotated passes, each arm paired against the rows=1/pack=0 baseline measured IN THE SAME PASS (the box drifted 15.5% peak-to-peak between passes, so an unpaired ranking would have been noise): pack 0 pack 1 pack 2 rows 1 1.000x 1.025x 1.086x rows 2 0.966x 1.017x 1.047x rows 4 0.968x 1.014x 1.039x MEASURED, REAL 27B DECODE, which is the number of record. Two-length GPU-timestamp diff, output-len 36 minus output-len 4 over 32 decode tokens, so prefill and every one-time cost cancels. Run twice, arm order reversed the second time: per decoded token blk1 pack0 blk1 pack2 blk2 pack0 blk2 pack2 vt_matmul_vec ms 211.99 209.52 214.59 210.38 GB/s (52.1 GB/token) 245.8 248.7 242.8 247.6 % of the 273 GB/s roof 90.0% 91.1% 88.9% 90.7% speedup 1.012x 1.020x 1.012x and 1.020x, not 1.086x. THE SWEEP WAS IN THE WRONG REGIME: it re-reads ONE 356 MB weight buffer 320 times, so its DRAM rows and TLB entries stay hot and instruction issue becomes visible as a secondary constraint. Decode streams 50 GB of distinct weights once per token, where DRAM is the whole story. The campaign already has "a negative result is regime-dependent" on record from the GEMV unroll; this is the same lesson running the other way, and an isolated harness must be shown to reproduce the e2e operating point (this one does: 89.3% of roof against the e2e diff's 90.0%) before its RANKING is believed. END TO END. Order-alternated AB/BA, page cache dropped before every leg, two blocks of 6 and 8 pairs, one binary with VT_VULKAN_GEMV_PACK as the only variable (=0 reproduces the pre-row kernel bit for bit). Eight of the 28 legs landed in the lm_head slow mode described below, 5 baseline and 3 pack=2, so arm-symmetric; they are reported rather than dropped. Of the six pairs where BOTH legs were clean, pack=2 wins 5, median paired ratio 1.0064x. Clean-leg medians 242.38 -> 240.54 ms, decode 4.126 -> 4.157 tok/s against llama.cpp Vulkan's 4.35. The measured noise floor on the clean legs is 0.88% peak-to-peak on the baseline arm (9 legs) and 1.92% on the other (11), so a 0.7% effect sits AT the edge of what an e2e wall clock resolves here; the GPU-timestamp diff is the instrument that resolves it, and the two agree in sign and magnitude. SO: IS ANYTHING LEFT IN THE GEMV? ABOUT ONE PERCENT. The kernel was already at 90.0% of the GB10 bandwidth roof and is at 91.1%. llama.cpp Vulkan's 4.35 tok/s is 229.9 ms/token wall against our 240.5; the GEMV alone is 210 ms of that, so even a PERFECT GEMV leaves ~20 ms and the rest of the gap is the ~30 ms/token of non-GEMV cost. The binding constraint on this kernel is DRAM bandwidth on a 50 GB working set streamed once per token, and it is 9% from the roof. SIDE FINDING, WORTH MORE THAN THIS ROW'S 1%. The ~1.8x bimodal decode legs this box produces, which the previous Vulkan row discarded as environmental, are vt_matmul -- the lm_head, NN orientation, ONE call per token -- collapsing by 19.5x: 12.35 ms/token in the fast mode and 242.12 ms/token in the slow one, in the same two-length diff, while vt_matmul_vec beside it moved 1.2%. At 2.54 GB of lm_head weights that is 205 GB/s versus 10.5 GB/s. Mean TTFT is unchanged across the modes (6.21 to 6.55 s over all 28 legs), so it is neither the load nor prefill. Whatever selects that state is a bigger lever than every remaining Vulkan kernel optimisation combined. CORRECTNESS. The load width repartitions K across lanes, so it changes the answer's low bits exactly as the tactic itself does and is gated on token exactness, not on an NMSE bound. New case "vt_matmul_vec selects its load width and row count from the shape" asserts the SPECIALIZATION VALUES the dispatch built, not the numbers: every value of both axes computes the same dot product to within this kernel's tier, so a tolerance test cannot see the optimisation at all and would still pass if the predicate silently stopped selecting it. It pins the shipped default and the whole degradation ladder (K = 2 mod 4 halves the width, odd K falls to one element, an f32 activation declines), and carries numeric checks including the LAST output row, where a wide-load or row-count mistake at the end of a dispatch leaves every earlier row right. Scratch mutation: reverting kGemvPackDefault to 0 turns it red (6 of 33 assertions), restoring it green. GATES, all on GB10 unless noted. test_vulkan_backend 30/30 (2366 assertions) on GB10 and 30/30 (1823) on llvmpipe -- one case and 37 assertions more than the previous 29/1786 because of the new case. test_backend_cross_device 11/11 (132). test_opt_paged_engine with VLLM_CPP_DEVICE=vulkan 6/6 prompts token-exact (96/96 tokens), 0 declines. gen-vulkan-spirv.py --check clean at pinned glslang 16.5.0. All nine (rows, pack) arms verified numerically on llvmpipe. check-public-doc- tables and check-env-doc still report the same three and twelve pre-existing findings they report on 93852c28, none of them in this change. FOLLOWING_AGENTS_PROTOCOL Following-Agents-Protocol: true AI-Assisted: true Assisted-by: Claude-Code:claude-opus-5 [Claude Code] --- .agents/benchmark-record.md | 107 + .agents/specs/vulkan-full-support.md | 82 + benchmarks/vulkan_gemv_ab.cpp | 276 +++ docs/BENCHMARKS.md | 2 +- docs/ENVIRONMENT.md | 2 + docs/STATUS.md | 2 +- docs/USAGE.md | 16 + examples/CMakeLists.txt | 10 + src/vt/vulkan/shaders/vt_matmul_vec.comp | 310 ++- src/vt/vulkan/vulkan_context.cpp | 13 + src/vt/vulkan/vulkan_context.h | 9 + src/vt/vulkan/vulkan_ops.cpp | 148 +- src/vt/vulkan/vulkan_spirv.cpp | 2514 +++++++++++++++++----- tests/vt/test_vulkan_backend.cpp | 220 +- 14 files changed, 3114 insertions(+), 597 deletions(-) create mode 100644 benchmarks/vulkan_gemv_ab.cpp diff --git a/.agents/benchmark-record.md b/.agents/benchmark-record.md index 70aa73222..1980e8f2e 100644 --- a/.agents/benchmark-record.md +++ b/.agents/benchmark-record.md @@ -16177,3 +16177,110 @@ the ~30 flushes/token. The declines name exactly three ops: `kCausalConv1dFwd` (op 5, prefill only), `kRopeCosSinCache` (op 66) and `kAttnQkNormRopeGate` (op 67). The last two run per full-attention layer, 16 per token, and are the next lever; they are kernel work, not plumbing. + +## BACKEND-VULKAN-GEMVROWS — the decode GEMV was already at 90% of roof; wide loads buy 1%, rows-per-workgroup LOSES, and the 1.8x bimodal legs are lm_head (2026-08-09, GB10, base `93852c28`) + +`vt_matmul_vec` is 89-90% of 27B decode GPU time and moves ~52 GB of bf16 weights per token, so it was +the largest single line item left in the Vulkan campaign. Two structural differences against llama.cpp's +`mul_mat_vec` (pin `237ad9b96`) were the candidates. Both were implemented as SPECIALIZATION CONSTANTS on +the one committed SPIR-V module, so every arm below is the same binary with one variable. + +Neither candidate can reduce DRAM traffic, and neither was claimed to: the weights are read exactly once +per token at any row count, and a 32-lane subgroup covers the same contiguous bytes at any load width. +Rows-per-workgroup buys activation-re-read locality (L2, not DRAM) and memory-level parallelism; load +width buys FEWER LOAD INSTRUCTIONS. So the only thing either could ever be is a latency / issue-rate +effect on top of a kernel that was already bandwidth-bound. + +### Isolated sweep (`benchmarks/vulkan_gemv_ab.cpp`) + +Seven (k, n) shapes read from Qwen3.6-27B's own config (5120x34816 merged gate+up, 17408x5120 down, +5120x12288 q+gate, 5120x2048 kv, 6144x5120 out, 5120x8192 and 5120x6144 GDN in). 9 arms x 4 rotated +passes. Every arm is PAIRED against the rows=1/pack=0 baseline measured IN THE SAME PASS, because the box +drifted 15.5% peak-to-peak between passes and an unpaired ranking would have been noise. The harness +batches 8 dispatches per timed rep and reads GPU TIMESTAMPS: fenced per dispatch it read 45% of the +bandwidth roof where the e2e profile of the same kernel read 89%, i.e. it was measuring a regime the model +never runs in. + +| | pack 0 (2 B) | pack 1 (4 B) | pack 2 (8 B) | +|---|---|---|---| +| rows 1 | 1.000x | 1.025x | **1.086x** | +| rows 2 | 0.966x | 1.017x | 1.047x | +| rows 4 | 0.968x | 1.014x | 1.039x | + +Output bit-hashes over the full result vector, with full-mantissa operands (the obvious small-integer test +pattern sums EXACTLY in f32 and cannot tell the arms apart): every rows value gives the SAME hash at a +fixed pack width, confirming rows-per-workgroup is bit-identical by construction; every pack width gives a +DIFFERENT hash, confirming it repartitions K. + +### Real 27B decode: the sweep OVERSTATED the win by 7x + +Two-length GPU-timestamp diff, output-len 36 minus output-len 4 over 32 decode tokens, so prefill and +every one-time cost cancels. Run twice with the arm order reversed the second time. + +| per decoded token | block 1 pack 0 | block 1 pack 2 | block 2 pack 0 | block 2 pack 2 | +|---|---|---|---|---| +| `vt_matmul_vec` ms | 211.99 | 209.52 | 214.59 | 210.38 | +| calls | 432 | 432 | 432 | 432 | +| GB/s (52.1 GB/token) | 245.8 | 248.7 | 242.8 | 247.6 | +| % of the 273 GB/s roof | 90.0% | 91.1% | 88.9% | 90.7% | +| speedup | | **1.012x** | | **1.020x** | +| whole-GPU ms | 237.35 | 234.72 | 470.18 (see below) | 235.69 | + +**Why the sweep lied.** It re-reads ONE 356 MB weight buffer 320 times, so its DRAM rows and TLB entries +stay hot and instruction issue becomes visible as a secondary constraint. Decode streams 50 GB of distinct +weights once per token, where DRAM is the whole story and a quarter as many load instructions buys ~1%. +The campaign already has "a negative result is regime-dependent" on record from the GEMV unroll; this is +the same lesson running the other way. A WIN can be an artefact of the measuring regime too, and an +isolated harness must be shown to reproduce the e2e operating point (this one does: its baseline reads +89.3% of roof against the e2e diff's 90.0%) before its RANKING is believed. + +### End-to-end + +Order-alternated AB/BA, page cache dropped before every leg, `--num-prompts 1 --input-len 32 +--output-len 32 --concurrency 1`, two blocks of 6 and 8 pairs. `VT_VULKAN_GEMV_PACK=0` reproduces the +pre-row kernel bit for bit in the SAME binary. + +Eight of the 28 legs landed in the slow mode diagnosed below (5 baseline, 3 pack=2: arm-symmetric). +Of the six pairs where BOTH legs were clean: + +| pair | baseline | pack=2 | delta | +|---|---|---|---| +| block1/6 | 242.38 (second) | 241.57 (first) | +0.33% | +| block2/2 | 241.98 (second) | 240.08 (first) | +0.79% | +| block2/5 | 241.24 (first) | 239.90 (second) | +0.56% | +| block2/6 | 242.81 (second) | 243.03 (first) | -0.09% | +| block2/7 | 242.68 (first) | 240.93 (second) | +0.72% | +| block2/8 | 242.33 (second) | 240.54 (first) | +0.74% | + +**5 of 6 clean pairs**, median paired ratio **1.0064x**. Clean-leg medians **242.38 -> 240.54 ms**, +decode **4.126 -> 4.157 tok/s**. NOISE FLOOR on the clean legs: **0.88%** peak-to-peak on the baseline arm +(241.24 to 243.38 over 9 legs), 1.92% on the pack=2 arm over 11. A 0.7% effect therefore sits AT the edge +of what an e2e wall clock resolves on this box; the GPU-timestamp two-length diff is what resolves it, and +the two agree in sign and magnitude. + +### SIDE FINDING, worth more than this row's 1%: the 1.8x bimodal legs are `lm_head` + +The previous Vulkan row discarded two legs at "~1.8x the block median" as environmental. They are not +diffuse contention. In block 2 of the two-length diff the baseline len-36 leg landed in that state, and the +per-shader diff names it exactly: + +| per decoded token | fast leg | slow leg | +|---|---|---| +| `vt_matmul` (lm_head, NN, 1 call) | 12.35 ms | **242.12 ms** | +| `vt_matmul_vec` (432 calls) | 210.38 ms | 214.59 ms | +| whole GPU | 235.69 ms | 470.18 ms | + +A **19.5x** collapse on ONE kernel, while the GEMV beside it moved 1.2%. `lm_head` is 5120x248320 bf16 = +2.54 GB, so that is 205 GB/s in the fast state and **10.5 GB/s** in the slow one. Mean TTFT is unchanged +across the modes (6.21 to 6.55 s over all 28 legs), so it is neither the load nor prefill. Whatever selects +that state is a bigger lever than every remaining Vulkan kernel optimisation combined, and it belongs to +whoever owns `lm_head`. + +### Verdict + +The GEMV lever is CLOSED. It was at 90.0% of the GB10 bandwidth roof before this row and is at 91.1% +after. llama.cpp Vulkan's 4.35 tok/s is 229.9 ms/token wall against our ~242; the GEMV alone is 210 ms of +that, so even a PERFECT GEMV leaves ~20 ms and the remaining gap is the ~32 ms/token of non-GEMV cost. +Rows-per-workgroup is kept as an off-by-default axis only because llama.cpp raises `rm_stdq` exactly on the +AMD GCN and Intel parts `VK-I` is about. + diff --git a/.agents/specs/vulkan-full-support.md b/.agents/specs/vulkan-full-support.md index 1009a5ed7..8112943e6 100644 --- a/.agents/specs/vulkan-full-support.md +++ b/.agents/specs/vulkan-full-support.md @@ -327,6 +327,88 @@ the umbrella, not a substitute for them. | **VK-H** | **Attention variants + samplers** (16 ops) | B (samplers), G (attn variants) | **83/83 — closes the op surface** | | **VK-I** | **AMD/RDNA (or Arc) bring-up** | hardware acquisition | The staging path for non-host-visible memory, and the gate re-run where Vulkan actually matters | +### 6.0b The DECODE GEMV lever, measured to its floor — 2026-08-09 + +`row/BACKEND-VULKAN-GEMVROWS`. `vt_matmul_vec` is 89-90% of 27B decode GPU time +and moves ~52 GB of bf16 weights per token, so it was the largest single line +item left. This section records what was found in it, including the two negative +results, because the useful output of this row is mostly the CLOSING of a lever. + +**The two candidates**, both structural differences against llama.cpp's +`mul_mat_vec` at pin `237ad9b96`: + +1. **Rows per workgroup** (`NUM_ROWS`, `mul_mat_vec_base.glsl:90`, set per vendor + by `rm_stdq` in `ggml-vulkan.cpp:4705-4719`): compute 2 or 4 output elements + per workgroup so one loaded activation element feeds several weight rows. +2. **Wide loads** (`data_b_v4` / `dequantize4_2aligned`, + `dequant_funcs.glsl:54-61`): read four 16-bit elements per load instead of one. + +Neither can reduce DRAM traffic and neither was claimed to. The weights are read +exactly once per token at any row count, and a 32-lane subgroup covers the same +contiguous bytes at any load width. Row count buys activation-re-read locality and +memory-level parallelism; load width buys fewer LOAD INSTRUCTIONS. + +**Isolated sweep** (`benchmarks/vulkan_gemv_ab.cpp`, the seven (k, n) shapes the +27B actually dispatches, 9 arms x 4 rotated passes, each arm paired against the +baseline measured IN THE SAME PASS because the box drifted 15.5% peak-to-peak +between passes): + +| | pack 0 | pack 1 (4 B) | pack 2 (8 B) | +|---|---|---|---| +| rows 1 | 1.000x | 1.025x | **1.086x** | +| rows 2 | 0.966x | 1.017x | 1.047x | +| rows 4 | 0.968x | 1.014x | 1.039x | + +**Real 27B decode**, two-length GPU-timestamp diff (output-len 36 minus 4, over 32 +decode tokens, so prefill and one-time cost cancel), run TWICE with the arm order +reversed the second time: + +| | block 1 pack 0 | block 1 pack 2 | block 2 pack 0 | block 2 pack 2 | +|---|---|---|---|---| +| `vt_matmul_vec` ms/token | 211.99 | 209.52 | 214.59 | 210.38 | +| GB/s of the 273 roof | 90.0% | 91.1% | 88.9% | 90.7% | +| speedup | | **1.012x** | | **1.020x** | + +**THE ISOLATED SWEEP OVERSTATED THE WIN BY ABOUT SEVEN TIMES, and the reason is +the regime.** The sweep re-reads one 356 MB weight buffer 320 times, so its DRAM +rows and TLB entries stay hot and instruction issue becomes visible as a secondary +constraint. Decode streams 50 GB of distinct weights once per token, where DRAM is +the whole story and a quarter as many load instructions buys ~1%. This is the +campaign's regime lesson running in the opposite direction from the recorded case: +a WIN can be an artefact of the measuring regime exactly as a discard can be. + +**Rows per workgroup is a MEASURED LOSS on GB10** (0.966x at 2, 0.968x at 4, in +every pass and at every load width) and ships off. The axis is kept because +llama.cpp raises `rm_stdq` precisely on the AMD GCN and Intel parts `VK-I` is +about, so deleting it would mean rediscovering it there. + +**End-to-end**, order-alternated AB/BA pairs, page cache dropped before every +leg, two blocks (6 + 8 pairs). Eight of the 28 legs landed in the `lm_head` slow +mode described below (5 baseline, 3 pack=2, so arm-symmetric) and are reported +separately rather than dropped; of the six pairs where BOTH legs were clean, +pack=2 wins **5**, median paired ratio **1.0064x**. Clean-leg medians +**242.38 -> 240.54 ms**, decode **4.126 -> 4.157 tok/s**. The measured noise floor +on the clean legs is **0.88%** peak-to-peak on the baseline arm and 1.92% on the +other, so a 0.7% effect sits AT the edge of what an e2e wall clock can resolve +here; the GPU-timestamp two-length diff is the instrument that resolves it, and +the two agree. + +**VERDICT: the GEMV lever is CLOSED.** The kernel was already at 90% of the +bandwidth roof before this row and is at 91% after. The gap to llama.cpp Vulkan's +229.9 ms/token is not in this kernel: the GEMV alone is 210 ms of our ~246, and +even a perfect kernel would leave at most ~20 ms. The remaining work is the +~35 ms/token of non-GEMV cost. + +**SIDE FINDING, and it is worth more than this row's 1%.** The ~1.8x bimodal +decode legs this box produces, which the previous row discarded as environmental, +are **`vt_matmul` (the `lm_head`, NN orientation) collapsing by 19.5x**: measured +12.35 ms/token in the fast mode and **242.12 ms/token** in the slow one, in the +same two-length diff, while `vt_matmul_vec` moved only 1.2% between the two legs. +TTFT is unchanged across the modes, so it is neither load nor prefill. At 2.54 GB +of `lm_head` weights that is 205 GB/s versus 10.5 GB/s. Whatever selects that +state is worth more than every remaining kernel lever combined, and it belongs to +whoever owns `lm_head`. + ### 6.0a `VK-G` partial: the FUSED ATTN PREAMBLE landed — 2026-08-09 `row/BACKEND-VULKAN-QKNORM`. `kAttnQkNormRopeGate` — gemma-RMSNorm(q) + diff --git a/benchmarks/vulkan_gemv_ab.cpp b/benchmarks/vulkan_gemv_ab.cpp new file mode 100644 index 000000000..d418c9e5e --- /dev/null +++ b/benchmarks/vulkan_gemv_ab.cpp @@ -0,0 +1,276 @@ +// Vulkan decode-GEMV variant A/B: rows-per-workgroup and packed 32-bit loads +// against the shipped one-element-per-workgroup, 16-bit-load kernel. +// BACKEND-VULKAN work row BACKEND-VULKAN-GEMVROWS. +// +// WHY AN ISOLATED SWEEP EXISTS AT ALL. vt_matmul_vec is 89% of 27B decode GPU +// time, and a 27B e2e run costs ~50 GB of weights and minutes per leg. Deciding +// which variant is worth an e2e run from e2e runs is the expensive way round; a +// sweep over the SAME (k, n) shapes the model actually dispatches answers it in +// seconds and, unlike an e2e number, isolates the kernel from every other cost. +// +// SAME BINARY, ONE VARIABLE. Every arm runs this executable; the arms differ only +// in VT_VULKAN_GEMV_ROWS / VT_VULKAN_GEMV_PACK / VT_VULKAN_GEMV_UNROLL, which are +// specialization constants on ONE committed SPIR-V module. Comparing two builds +// is what produced a false 1.2x reading for the subgroup tactic earlier in this +// campaign, and .agents/benchmark-protocol.md rules it out. +// +// EACH ARM PROVES WHICH VARIANT IT RAN, by printing the pipeline cache KEY -- +// module name plus specialization values. Every variant computes the same +// numbers, so timings alone can never tell the arms apart, and a variant that +// silently declined would post a perfectly plausible result. +// +// IT ALSO VERIFIES EVERY SHAPE against a host f64 oracle, so a variant cannot be +// fast by being wrong. +#include +#include +#include +#include +#include +#include +#include +#include + +#include "vt/backend.h" +#include "vt/dtype.h" +#include "vt/ops.h" +#include "vt/vulkan/vulkan_context.h" + +namespace { + +using vt::Device; +using vt::DeviceType; +using vt::DType; +using vt::Queue; +using vt::Tensor; + +double MedianMs(std::vector v) { + std::sort(v.begin(), v.end()); + return v.empty() ? 0.0 : v[v.size() / 2]; +} + +// FNV-1a over the RAW BITS of the whole output vector. The rows-per-workgroup +// axis is supposed to be BIT-IDENTICAL across its values -- each lane accumulates +// the same strided subset of K in the same order, and only the assignment of +// output elements to workgroups moves -- while the packed-load axis is supposed +// NOT to be, because it repartitions K. A spot-checked relative error cannot tell +// those two claims apart; a checksum of every output bit can, and it is the +// cheapest possible evidence that "bit-identical" is a fact rather than an +// argument about the source. +uint64_t BitHash(const std::vector& v) { + uint64_t h = 1469598103934665603ull; + for (float f : v) { + uint32_t bits; + std::memcpy(&bits, &f, sizeof(bits)); + for (int b = 0; b < 4; ++b) { + h ^= static_cast((bits >> (8 * b)) & 0xFFu); + h *= 1099511628211ull; + } + } + return h; +} + +struct Shape { + int64_t k; + int64_t n; + const char* what; +}; + +// The decode GEMV shapes Qwen3.6-27B dispatches (hidden 5120, intermediate +// 17408, head_dim 256, 24 q heads with an output gate, 4 kv heads; GDN layers +// carry 16x128 key and 48x128 value heads). Read from the model's own config +// rather than invented, because a sweep over unrepresentative shapes answers a +// question nobody asked. +constexpr Shape kShapes[] = { + {5120, 34816, "mlp gate+up (merged)"}, + {17408, 5120, "mlp down"}, + {5120, 12288, "attn q + output gate"}, + {5120, 2048, "attn kv"}, + {6144, 5120, "attn/gdn out"}, + {5120, 8192, "gdn in (qk)"}, + {5120, 6144, "gdn in (v)"}, +}; + +} // namespace + +// GPU-timestamp milliseconds accumulated for one shader, or -1 when the context +// is not profiling (VT_VULKAN_DISPATCH_STATS unset, or the device cannot +// timestamp). This is the SAME clock the 27B two-length decode profile used, so a +// number from here is comparable with one from there; the wall clock is not, +// because it also contains submit and fence-wait cost that batched decode +// amortises over hundreds of dispatches. +double GpuMsFor(const vt::vulkan::VulkanContext& ctx, const char* name) { + for (const auto& kv : ctx.DispatchTimeMs()) { + if (kv.first == name) return kv.second; + } + return 0.0; +} + +int main(int argc, char** argv) { + const int reps = argc > 1 ? std::atoi(argv[1]) : 40; + const int warmup = argc > 2 ? std::atoi(argv[2]) : 8; + // GB10's published unified-memory bandwidth. Reported as a denominator so a + // variant's number is readable as a fraction of the roof rather than in + // isolation; override for another box. + const double roof_gbs = argc > 3 ? std::atof(argv[3]) : 273.0; + + if (!vt::vulkan::VulkanDeviceAvailable()) { + std::fprintf(stderr, "no Vulkan device\n"); + return 2; + } + auto& ctx = vt::vulkan::VulkanContext::Get(); + vt::Backend& vk = vt::GetBackend(DeviceType::kVULKAN); + Queue q = vk.CreateQueue(); + const Device d{DeviceType::kVULKAN, 0}; + + auto env = [](const char* name) { + const char* v = std::getenv(name); + return v ? v : "(unset)"; + }; + std::printf("device : %s\n", ctx.device_name().c_str()); + std::printf("subgroup size : %u\n", ctx.subgroup_size()); + std::printf("VT_VULKAN_GEMV : %s\n", env("VT_VULKAN_GEMV")); + std::printf("VT_VULKAN_GEMV_ROWS : %s\n", env("VT_VULKAN_GEMV_ROWS")); + std::printf("VT_VULKAN_GEMV_PACK : %s\n", env("VT_VULKAN_GEMV_PACK")); + std::printf("VT_VULKAN_GEMV_UNROLL: %s\n", env("VT_VULKAN_GEMV_UNROLL")); + std::printf("reps : %d (warmup %d), roof %.1f GB/s\n\n", reps, warmup, + roof_gbs); + std::printf("(gpu ms is the GPU timestamp when VT_VULKAN_DISPATCH_STATS is set,\n" + " else a copy of wall; wall includes submit + fence amortised over 8)\n\n"); + std::printf("%-22s %7s %7s %10s %10s %10s %8s %18s %s\n", "shape", "K", "N", "gpu ms", + "wall ms", "GB/s", "%roof", "outbits", "pipeline key"); + + int failures = 0; + double total_ms = 0.0; + double total_bytes = 0.0; + + for (const Shape& s : kShapes) { + // bf16 operands: the 27B's storage dtype, and the one the packed-load axis + // applies to at all. + // FULL-MANTISSA OPERANDS, and that is the point. The obvious small-integer + // pattern (0.5*(i%7-3) and friends) sums EXACTLY in f32, so every variant + // produces the same bits no matter how it repartitions K -- which would make + // the checksum column look like proof of bit-identity when it proved only + // that the test data could not tell. A cheap LCG over [0.5, 1.5) puts eight + // real mantissa bits in every bf16 element, so ROWS (same partition of K, + // same order) must still match the baseline bit for bit while PACK (a + // different partition) must not. Kept POSITIVE so the k-long dot product does + // not cancel: a near-zero sum would make the relative-error check below + // meaningless without saying so. + std::vector ha(static_cast(s.k)); + std::vector hb(static_cast(s.n * s.k)); + uint32_t rng = 0x9E3779B9u; + auto next = [&rng] { + rng = rng * 1664525u + 1013904223u; + return 0.5f + static_cast(rng >> 9) / static_cast(1 << 23); + }; + for (int64_t i = 0; i < s.k; ++i) ha[static_cast(i)] = vt::F32ToBF16(next()); + for (int64_t i = 0; i < s.n * s.k; ++i) hb[static_cast(i)] = vt::F32ToBF16(next()); + + void* da = vk.Alloc(ha.size() * sizeof(uint16_t)); + void* db = vk.Alloc(hb.size() * sizeof(uint16_t)); + auto* dout = static_cast(vk.Alloc(static_cast(s.n) * sizeof(float))); + vk.Copy(q, da, ha.data(), ha.size() * sizeof(uint16_t)); + vk.Copy(q, db, hb.data(), hb.size() * sizeof(uint16_t)); + vk.Synchronize(q); + + Tensor ta = Tensor::Contiguous(da, DType::kBF16, d, {1, s.k}); + Tensor tb = Tensor::Contiguous(db, DType::kBF16, d, {s.n, s.k}); + Tensor to = Tensor::Contiguous(dout, DType::kF32, d, {1, s.n}); + + const std::vector keys_before = ctx.PipelineKeysFor("vt_matmul_vec"); + for (int i = 0; i < warmup; ++i) vt::MatmulBT(q, to, ta, tb); + vk.Synchronize(q); + + // WHICH VARIANT RAN. The key added by this shape (or, if an earlier shape + // already built the same specialization, the single key that matches it). + const std::vector keys_after = ctx.PipelineKeysFor("vt_matmul_vec"); + std::string key; + for (const std::string& kk : keys_after) { + if (std::find(keys_before.begin(), keys_before.end(), kk) == keys_before.end()) key = kk; + } + if (key.empty()) key = keys_after.size() == 1 ? keys_after.front() : "(reused)"; + + // BATCHED, NOT ONE-AT-A-TIME. Decode records hundreds of dispatches into one + // command buffer and submits once; a harness that fences after every dispatch + // measures a regime the model never runs in, and it showed: fenced-per-call + // this sweep read 45% of the bandwidth roof where the e2e two-length profile + // of the same kernel read 89%. `inner` dispatches per timed rep puts the + // kernel back in the batched regime. The backend emits a memory barrier + // between recorded dispatches, so they still execute one at a time on the GPU + // exactly as they do in decode -- what is amortised is the SUBMIT, not the + // kernel. + const int inner = 8; + std::vector ms; + ms.reserve(static_cast(reps)); + const double gpu0 = GpuMsFor(ctx, "vt_matmul_vec"); + for (int i = 0; i < reps; ++i) { + const auto t0 = std::chrono::steady_clock::now(); + for (int j = 0; j < inner; ++j) vt::MatmulBT(q, to, ta, tb); + vk.Synchronize(q); + const auto t1 = std::chrono::steady_clock::now(); + ms.push_back(std::chrono::duration(t1 - t0).count() / inner); + } + const double gpu_per_call = + (GpuMsFor(ctx, "vt_matmul_vec") - gpu0) / (static_cast(reps) * inner); + + std::vector got(static_cast(s.n), 0.0f); + vk.Copy(q, got.data(), dout, got.size() * sizeof(float)); + vk.Synchronize(q); + // Host oracle in f64, so no device accumulation order is privileged. Spot + // rows only: a full n-row oracle at n=34816, k=5120 is 178M host FMAs per + // shape and would dominate the run. + double worst = 0.0; + for (int64_t j = 0; j < std::min(s.n, 48); ++j) { + double acc = 0.0; + for (int64_t c = 0; c < s.k; ++c) { + acc += static_cast(vt::BF16ToF32(ha[static_cast(c)])) * + static_cast(vt::BF16ToF32(hb[static_cast(j * s.k + c)])); + } + worst = std::max(worst, std::fabs(acc - static_cast(got[static_cast(j)])) / + std::max(1.0, std::fabs(acc))); + } + // Also check the LAST row, which is the one a rows-per-workgroup bug at the + // end of the dispatch would corrupt while every early row stayed right. + { + const int64_t j = s.n - 1; + double acc = 0.0; + for (int64_t c = 0; c < s.k; ++c) { + acc += static_cast(vt::BF16ToF32(ha[static_cast(c)])) * + static_cast(vt::BF16ToF32(hb[static_cast(j * s.k + c)])); + } + worst = std::max(worst, std::fabs(acc - static_cast(got[static_cast(j)])) / + std::max(1.0, std::fabs(acc))); + } + + const double wall = MedianMs(ms); + // GPU time when the context is profiling, wall otherwise. Stated per row so a + // reader can see how much of each figure is submit overhead. + const double med = gpu_per_call > 0 ? gpu_per_call : wall; + // WEIGHT bytes only. The activation vector is k*2 bytes and every workgroup + // re-reads it, but it is L2-resident by inspection (10 KB at k=5120), so + // counting it would inflate the figure past the DRAM roof and mean nothing. + const double bytes = static_cast(s.n) * static_cast(s.k) * 2.0; + const double gbs = med > 0 ? bytes / (med / 1e3) / 1e9 : 0.0; + total_ms += med; + total_bytes += bytes; + std::printf("%-22s %7lld %7lld %10.4f %10.4f %10.1f %7.1f%% %018llx %s%s\n", s.what, + (long long)s.k, (long long)s.n, med, wall, gbs, 100.0 * gbs / roof_gbs, + (unsigned long long)BitHash(got), key.c_str(), + worst < 1e-3 ? "" : " *** WRONG ***"); + if (!(worst < 1e-3)) { + ++failures; + std::printf(" worst rel err: %.3e\n", worst); + } + + vk.Free(da); + vk.Free(db); + vk.Free(dout); + } + + const double agg = total_ms > 0 ? total_bytes / (total_ms / 1e3) / 1e9 : 0.0; + std::printf("\nTOTAL %26.4f %21.1f %7.1f%%\n", total_ms, agg, + 100.0 * agg / roof_gbs); + + vk.DestroyQueue(q); + return failures == 0 ? 0 : 1; +} diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md index eb4f8eb84..32e34b4b0 100644 --- a/docs/BENCHMARKS.md +++ b/docs/BENCHMARKS.md @@ -361,7 +361,7 @@ built on it rather than keeping the flattering one. | Memory footprint vs declared workload (`ROAD-V1-MEM`, #83) | **Never measured, and not measurable today**: there is no auto-sizing to compare against, because the KV pool is a hand-typed `--num-blocks`, so "what the run actually needed" has no number | Once M1's `MemoryBudget` lands: predicted-vs-actual bytes per allocation class, then peak footprint ours-auto vs vLLM at its 0.9 default on the same model and config | | Startup latency (cold to first `/health`) | **36.51 s vs vLLM 0.25.0's 221.51 s = 6.07x** (medians of 3, 27B-NVFP4, GB10). PROVISIONAL: 3 of 6 legs contended, repeat killed by a host reboot. [Detail](../.agents/benchmark-record.md) | Uncontended 3-rep re-run on a quiet box | | Speculation depth (`ROAD-V1-D3-SPEC-K`, #81) | **Never measured, MTP is k=1** (our port covers vLLM's k=1 branch only), so no acceptance-vs-depth curve exists | k=2..4 three-way greedy gate, then the c1/c>1 A/B + the per-workload (prose vs code) acceptance-vs-depth curve any dynamic or adaptive depth policy needs | -| Vulkan vs llama.cpp Vulkan (`BENCH-VK-LLAMA`) | 25 NATIVE (+8 GDN); 62 host-tier. **27B prefill 21.5x**, decode 4.00->**4.13** (fused attn preamble native, flushes 18->4/tok, 5/6 pairs; target 4.35). opt-125m exact. [Detail](../.agents/specs/vulkan-full-support.md) | `VK-C` coopmat A/B on Thor (`VT_VULKAN_COOPMAT=0` A/Bs it): **11.1x-32.9x** vs our UNTILED scalar kernel, not vs a competent GEMM. `VK-E`: llama.cpp `-DGGML_VULKAN=ON` at `237ad9b96` on dgx, same GGUF, three columns | +| Vulkan vs llama.cpp Vulkan (`BENCH-VK-LLAMA`) | 25 NATIVE (+8 GDN); 62 host-tier. **27B prefill 21.5x**, decode **4.16**/4.35. **GEMV CLOSED at 90.0 -> 91.1% of roof**; rows-per-wg **0.966x REJECTED**. opt-125m exact. [Detail](../.agents/specs/vulkan-full-support.md) | `VK-C` coopmat A/B on Thor (`VT_VULKAN_COOPMAT=0` A/Bs it): **11.1x-32.9x** vs our UNTILED scalar kernel, not vs a competent GEMM. `VK-E`: llama.cpp `-DGGML_VULKAN=ON` at `237ad9b96` on dgx, same GGUF, three columns | | ROCm (`BACKEND-GATE-ROCM-VLLM` / `-SGLANG`) | **NOT APPLICABLE: no number measured, claimed or owed.** W0 ctest-green on 4 gfx archs (#41); gfx1201 hipBLAS + Gemma-4 MoE (#140, contributor) ran M0/M1 on 2× R9700, our side CPU-link-verified only. No AMD HW here | The approach-(b) fix (PENDING community) unblocks the first APU model run (M2); the gate becomes a same-box vLLM-ROCm oracle once a model runs ([#41](https://github.com/mudler/vllm.cpp/issues/41)); floor: vLLM | | SGLang floor arms | Never ran | Both arms of the SGLang comparison | | Embeddings on the ONE surface (ROW 6, `LlamaModel` + `vllm_embed` + `/v1/embeddings`) | **NO number measured, claimed or owed.** Correctness-gated only, CPU: the 2026-08-08 fold (engine path == direct registry path, f64 LAST+normalize reference on the committed fixture) is plumbing, no speed claim | A REAL embedding checkpoint (e5-mistral class) + a same-box `vllm.LLM(task="embed")` oracle; only then does an embed-throughput bar exist | diff --git a/docs/ENVIRONMENT.md b/docs/ENVIRONMENT.md index 5a7798682..24b22446d 100644 --- a/docs/ENVIRONMENT.md +++ b/docs/ENVIRONMENT.md @@ -103,6 +103,8 @@ portable/reference path. In normal operation leave them unset. | `VT_VULKAN_DISPATCH_STATS` | off | `=1` traces every Vulkan compute submit to stderr (index, shader, workgroup count) BEFORE its fence wait, prints any wait over 200 ms, reports a running dispatch rate every 100 submits, and dumps a per-shader histogram at exit. Printing before the wait is what makes a HANG visible: a post-wait print never runs if the fence never signals, so the last line names the dispatch that hung. This is how the coopmat out-of-bounds load was found. Diagnostic only; it changes no numerics. Vulkan-only | | `VT_VULKAN_GEMV_UNROLL` | 4 | `=1` forces the un-unrolled decode GEMV body. Four independent accumulators keep four reads per lane in flight instead of one -- memory-level parallelism, not instruction count. It rides a specialization constant, so both arms are the same committed module and A/B in one binary. MEASURED **1.055x, 7 of 8 interleaved pairs**. Worth noting it measured 5/8 and was REVERTED earlier the same day: that test ran while the GPU was only 26% busy, where a 10% GEMV win moves e2e by 1.4% and is unresolvable against this box's noise. After the ring fix made the run GPU-bound the same code reads 7/8. A negative result is regime-dependent. Vulkan-only | +| `VT_VULKAN_GEMV_PACK` | 2 | Load width for a 16-bit decode GEMV operand: `0` one element per load (2 B), `1` two through the buffer's 32-bit view (4 B), `2` four through a 64-bit view (8 B). Same bytes, same coalescing (32 lanes still cover 128 or 256 CONSECUTIVE bytes), so this cannot reduce DRAM traffic; it reduces LOAD INSTRUCTIONS. **MEASURED, and the two regimes disagree by 7x, which is the point.** In `benchmarks/vulkan_gemv_ab.cpp` over the 27B's own decode shapes (9 arms x 4 rotated passes, each arm paired against the width-0 baseline measured IN THE SAME PASS, because the box drifted 15.5% peak-to-peak between passes) width 2 reads **1.086x**. In REAL 27B decode it reads **1.012x** and **1.020x**, two GPU-timestamp two-length diffs (output-len 36 minus 4 over 32 tokens), moving `vt_matmul_vec` from **90.0% to 91.1%** of the 273 GB/s roof. The sweep re-reads one 356 MB buffer 320 times, so its DRAM rows and TLB stay hot and instruction issue is visible; decode streams 50 GB once per token, where DRAM is the whole story. e2e: **4.126 -> 4.157 tok/s**, 5 of 6 clean pairs, against a 0.88% clean-leg noise floor. Degrades a width at a time when K or an operand byte offset is not aligned to it, and declines entirely for an f32 operand, which is already one element per 32-bit word. Unlike the row count this axis DOES change the answer's low bits, because it repartitions K across lanes; the opt-125m STRICT gate (6/6 token-exact) is what clears it. Vulkan-only | +| `VT_VULKAN_GEMV_ROWS` | 1 | Output elements per decode-GEMV workgroup, `1`, `2` or `4`; llama.cpp's `NUM_ROWS` (`mul_mat_vec_base.glsl:90`, set per vendor by `rm_stdq` in `ggml-vulkan.cpp:4705-4719`). Raising it lets one loaded activation element feed several weight rows. It cannot reduce DRAM traffic either -- the weights are read exactly once per token at any row count -- and the activation re-reads it saves were L2 hits. **MEASURED NEGATIVE on GB10 and shipped OFF:** 0.966x at 2 rows and 0.968x at 4, in all four passes and at every load width, most likely because halving the workgroup count halves the independent sequential read streams the memory controller sees while each surviving workgroup interleaves rows `K*2` bytes apart. Kept as an axis only because llama.cpp raises it exactly on the AMD GCN and Intel parts this backend's portability case is aimed at, and deleting it would mean rediscovering it there. Bit-identical to `1` at any value -- each lane accumulates the same strided subset of K in the same order -- so it is a pure scheduling knob. Vulkan-only | | `VT_VULKAN_RING` | 128 | Descriptor-set ring depth per pipeline, i.e. how many times one shader may be recorded before the batch must flush. This is what actually caps batch length: at 16 it forced a submit every 40-46 dispatches, because `vt_rms_norm` runs 112 times per forward pass and exhausted its ring seven times. At 128 a whole forward pass (368 dispatches) fits in ONE submit. Each avoided flush is a `vkQueueSubmit` plus a blocking `vkWaitForFences`, and a host profile puts 62% of on-CPU time in the kernel and NVIDIA driver against 14% in our own code -- so submits are the host cost. Lower it to bisect or to cut descriptor-pool size. Vulkan-only | | `VT_SERVER_VERBOSE` | off | `=1` turns on the server's chatty progress output, and is the umbrella switch the individual knobs fall back to: `VT_SERVER_PREFILL_PROGRESS` reads it when unset, so `VT_SERVER_VERBOSE=1` alone enables chunked-prefill progress (rate-limited to ~2 Hz per request). `examples/server` sets it from its own verbosity flag, so it is user-facing rather than a kernel tuning switch | | `VT_VULKAN_BATCH` | on | `=0` forces the per-dispatch submit-and-wait path instead of recording many dispatches into ONE command buffer (with a pipeline barrier between them) and submitting once. MEASURED on GB10: decode **2.62x**, faster in **8 of 8** interleaved pairs (24.8 -> 64.5 tok/s), 40-46 dispatches per submit, opt-125m still 6/6 token-exact. Batching is sound only because all three host-read paths drain the batch first: `Backend::Copy` and `Memset` (host memcpy over the mapped allocation), `Synchronize`, and `Backend::FlushPending`, which op_provider.cpp calls before running a PORTABLE REFERENCE TIER kernel directly over device memory. Without that third one a host kernel would read stale bytes silently. It exists for the same-binary A/B and as the bisect lever. Vulkan-only | diff --git a/docs/STATUS.md b/docs/STATUS.md index a0661aa7e..87920967d 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -422,7 +422,7 @@ Parakeet ASR (2026-08-07): *CPU-correct, ON THE ONE SURFACE (ROW 1)*. Ids exact LoRA (W1 CPU runtime brick landed; not yet usable end-to-end), multi-GPU, Vulkan (opt-125m exact; 25 native +8 GDN, both recurrences + fused attn preamble; 27B prefill 21.5x, decode -4.13/4.35 llama.cpp, 18->4 flushes/tok; #125 VERIFIED +4.16/4.35 llama.cpp, GEMV lever closed; #125 VERIFIED [campaign](../.agents/specs/vulkan-full-support.md)), ROCm (W0 community-green on 4 gfx archs (#41); the ratified (b) APU unified-memory fix is in (**blind-written, unverified**); M2 needs verification; gfx1201 hipBLAS + diff --git a/docs/USAGE.md b/docs/USAGE.md index c5575e697..8f35730d3 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -50,6 +50,22 @@ Two more example binaries ship alongside it: - `tokenize` ([`examples/tokenize/main.cpp`](../examples/tokenize/main.cpp)), a tokenizer smoke tool taking ` `. +A Vulkan build (`-DVLLM_CPP_VULKAN=ON`) adds three kernel-measurement binaries. +They exist so a Vulkan tuning knob can be A/B'd in ONE binary, which is this +project's benchmark protocol, and each one prints WHICH kernel variant it ran so +a silent fallback cannot post a plausible number: + +- `vulkan-gemm-ab`, cooperative-matrix versus the portable scalar GEMM + (`VT_VULKAN_COOPMAT=0` picks the arm). Takes `M K N [reps]`. +- `vulkan-dispatch-floor`, one op swept across a 65,536x range of element counts, + to separate per-dispatch overhead from real kernel cost. +- `vulkan-gemv-ab`, the decode GEMV swept over the (k, n) shapes a 27B model + actually dispatches, with `VT_VULKAN_GEMV_ROWS` / `VT_VULKAN_GEMV_PACK` / + `VT_VULKAN_GEMV_UNROLL` selecting the arm. Takes `[reps] [warmup] [GB/s roof]` + and reports GB/s against that roof. Set `VT_VULKAN_DISPATCH_STATS=1` so it + reports GPU-timestamp time rather than wall clock; see + [ENVIRONMENT.md](ENVIRONMENT.md) for what each knob does and what it measured. + ### Quantized checkpoints: which `lm_head` forms load Publishers do not agree on how the output head is stored, and a single repo can diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 04df288ee..62b8b0f77 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -115,6 +115,16 @@ if(VLLM_CPP_VULKAN) target_link_libraries(vulkan-dispatch-floor PRIVATE vllm::vllm) target_include_directories(vulkan-dispatch-floor PRIVATE ${CMAKE_SOURCE_DIR}/src) vllm_cpp_set_warnings(vulkan-dispatch-floor) + + # vulkan-gemv-ab: the BACKEND-VULKAN-GEMVROWS variant sweep. Runs the decode + # GEMV over the (k, n) shapes Qwen3.6-27B actually dispatches, so a variant can + # be accepted or discarded without spending a 50 GB e2e run on it. Same + # Vulkan-only condition and the same reason as the two above: it prints the + # pipeline cache key, so an arm proves which specialization it ran. + add_executable(vulkan-gemv-ab ${CMAKE_SOURCE_DIR}/benchmarks/vulkan_gemv_ab.cpp) + target_link_libraries(vulkan-gemv-ab PRIVATE vllm::vllm) + target_include_directories(vulkan-gemv-ab PRIVATE ${CMAKE_SOURCE_DIR}/src) + vllm_cpp_set_warnings(vulkan-gemv-ab) endif() # parakeet-transcribe: the ASR example — a THIN client of the public C ABI diff --git a/src/vt/vulkan/shaders/vt_matmul_vec.comp b/src/vt/vulkan/shaders/vt_matmul_vec.comp index ef3e2f11b..1e8a081d7 100644 --- a/src/vt/vulkan/shaders/vt_matmul_vec.comp +++ b/src/vt/vulkan/shaders/vt_matmul_vec.comp @@ -38,6 +38,49 @@ // is why the tactic is gated on a token-exactness run and not on an NMSE bound // alone -- a decode GEMM feeds the sampler, where a changed low bit can change a // token. +// +// ------------------------------------------------------------------------------ +// TWO VARIANT AXES ON TOP OF THAT SHAPE (row BACKEND-VULKAN-GEMVROWS), both +// specialization constants so every variant is the SAME committed module and can +// be A/B'd inside ONE binary. A cross-build comparison is what produced a false +// 1.2x reading for the subgroup tactic earlier in this campaign, so no variant +// here is allowed to need a second build. +// +// VT_MM_ROWS (1/2/4) -- OUTPUT ROWS PER WORKGROUP, ported from llama.cpp's +// NUM_ROWS (mul_mat_vec_base.glsl:90; ggml-vulkan.cpp:4749 creates the BF16 +// mul_mat_vec pipeline with NUM_ROWS = 2). WHAT THIS CAN AND CANNOT BUY: the +// WEIGHT bytes are read exactly once per token either way, so DRAM traffic is +// UNCHANGED and this is not a traffic optimisation. What changes is (a) the +// activation vector, which every workgroup re-reads in full -- at k=5120, +// n=34816 that is 356 MB of L2 reads against 356 MB of weight reads, a 1:1 +// request ratio that R rows cut to 1:R -- and (b) memory-level parallelism, R +// independent FMA chains per lane. The mechanism, if it shows, is LATENCY +// HIDING and L1/L2 request throughput, never bandwidth. +// ROWS > 1 IS BIT-IDENTICAL TO ROWS == 1: lane t still accumulates exactly the +// same strided subset of K for each output element, in the same order, and the +// halving tree below is the same shape as vt_tg_sum's. Only the ASSIGNMENT of +// output elements to workgroups changes. That is why it is worth trying first. +// +// VT_MM_PACK (0/1/2) -- WIDE LOADS. llama.cpp reads its operands four at a time +// (`data_b_v4`, `dequantize4_2aligned`, dequant_funcs.glsl:54-61, which reads +// bf16 weights as two 32-bit words); we read one 2-byte element per lane per +// load. PACK 1 reads a 16-bit operand through the 32-bit view instead, two +// elements per load; PACK 2 reads four through a 64-bit view. Sectors per byte +// are unchanged (32 lanes x 4 B is still 128 contiguous bytes, x 8 B is 256), so +// again this cannot reduce DRAM traffic; it can only help if LSU / L1 request +// issue, not DRAM, is the binding constraint. It does: MEASURED on GB10 over the +// 27B's own decode shapes, PACK 1 moved the kernel from 89.3% of the 273 GB/s +// roof to ~92%, which is the whole reason this axis shipped. +// PACK IS *NOT* BIT-IDENTICAL. Lane t accumulates {2t, 2t+1, 2t+2*VT_TG, ...} +// instead of {t, t+VT_TG, ...}, a different partition and therefore a different +// summation order -- so it is gated on the same token-exactness run as the +// tactic itself, not on an NMSE bound. +// PACK ASSUMES LITTLE-ENDIAN halves within the 32-bit word (element 2i in the +// low half). Every Vulkan implementation in existence is little-endian, and a +// violation is not subtle: the numeric checks in tests/vt/test_vulkan_backend.cpp +// and benchmarks/vulkan_gemv_ab.cpp would fail immediately, not drift. +// The host predicate refuses PACK unless BOTH operands are 16-bit, both byte +// offsets are 4-byte aligned and k is even; see GemvPackUsable in vulkan_ops.cpp. #extension GL_GOOGLE_include_directive : require #include "vt_common.glsl" @@ -49,6 +92,15 @@ layout(binding = 2) readonly buffer Bb32 { uint v[]; } B32; layout(binding = 3) readonly buffer Bb16 { uint16_t v[]; } B16; layout(binding = 4) buffer Db32 { uint v[]; } D32; layout(binding = 5) buffer Db16 { uint16_t v[]; } D16; +// A THIRD view of the two INPUT operands, as pairs of 32-bit words, for +// VT_MM_PACK == 2: four 16-bit elements in one 8-byte load. The storage model +// already binds each operand twice onto the same VkBuffer for exactly this reason +// (vt_common.glsl § STORAGE MODEL) -- this is one more width of the same idea, and +// it needs no new host allocation, only two more descriptor writes. Declared +// unconditionally because a shader must declare every descriptor the host binds; +// the variants that do not use them simply never read them. +layout(binding = 6) readonly buffer Ab64 { uvec2 v[]; } A64; +layout(binding = 7) readonly buffer Bb64 { uvec2 v[]; } B64; // Same dtype axes as vt_matmul, minus the orientation: this module is MatmulBT by // construction, so VT_MM_BT would only ever be 1 and is not a variant here. @@ -60,6 +112,11 @@ layout(constant_id = 2) const uint VT_MM_OUT_DT = VT_DT_F32; // in one binary -- a cross-session comparison of two builds is what produced a // false 1.2x reading for the subgroup tactic earlier in this campaign. layout(constant_id = 3) const uint VT_MM_UNROLL = 4u; +// Output elements per workgroup, 1, 2 or 4. See the header block. +layout(constant_id = 4) const uint VT_MM_ROWS = 1u; +// Load width for 16-bit operands: 0 = one element per load (2 B), 1 = two through +// the 32-bit view (4 B), 2 = four through the 64-bit view (8 B). See the header. +layout(constant_id = 5) const uint VT_MM_PACK = 0u; layout(push_constant) uniform Params { uint m; @@ -70,17 +127,89 @@ layout(push_constant) uniform Params { uint out_off; } p; +// One lane-partial slot per (row, lane). Sized for the largest VT_MM_ROWS rather +// than by the specialization constant: 4*128 floats is 2 KB, far below the point +// where shared memory caps occupancy for a 128-thread workgroup, and a fixed +// extent keeps the declaration independent of the variant. +shared float vt_mmv_part[4u * VT_TG]; + +#define VT_MMV_A(I) VT_LOAD(A32, A16, VT_MM_A_DT, p.a_off, (I)) +#define VT_MMV_B(I) VT_LOAD(B32, B16, VT_MM_B_DT, p.b_off, (I)) +// Packed access: `I` is the index of the FIRST of two consecutive 16-bit +// elements and must be EVEN; the byte offset must be 4-byte aligned. Both are +// host predicates, not shader assumptions. +#define VT_MMV_A2(I) (A32.v[(p.a_off >> 2) + ((I) >> 1)]) +#define VT_MMV_B2(I) (B32.v[(p.b_off >> 2) + ((I) >> 1)]) +// Quad access: `I` must be a multiple of FOUR and the byte offset a multiple of +// eight. Host predicates again, not shader assumptions. +#define VT_MMV_A4(I) (A64.v[(p.a_off >> 3) + ((I) >> 2)]) +#define VT_MMV_B4(I) (B64.v[(p.b_off >> 3) + ((I) >> 2)]) +#define VT_LO(W, DT) vt_from16((W) & 0xFFFFu, (DT)) +#define VT_HI(W, DT) vt_from16((W) >> 16, (DT)) + +// Four consecutive 16-bit elements out of one 8-byte word, and their dot product +// with four activations. The pairwise bracketing is written out rather than left +// to the compiler for the same reason the (p0+p1)+(p2+p3) merge below is: a fixed +// order makes this kernel reproducible run to run. +vec4 vt_mmv_unpack4(uvec2 w, uint dt) { + return vec4(VT_LO(w.x, dt), VT_HI(w.x, dt), VT_LO(w.y, dt), VT_HI(w.y, dt)); +} +float vt_mmv_dot4(uvec2 w, vec4 a, uint dt) { + return (a.x * VT_LO(w.x, dt) + a.y * VT_HI(w.x, dt)) + + (a.z * VT_LO(w.y, dt) + a.w * VT_HI(w.y, dt)); +} + +// One row's four unrolled scalar products, at the original VT_TG stride. +#define VT_MMV_FMA4(P0, P1, P2, P3, BROW) \ + P0 += a0 * VT_MMV_B((BROW) + q); \ + P1 += a1 * VT_MMV_B((BROW) + q + VT_TG); \ + P2 += a2 * VT_MMV_B((BROW) + q + VT_TG * 2u); \ + P3 += a3 * VT_MMV_B((BROW) + q + VT_TG * 3u) + +// One row's four unrolled PACKED products: eight elements, four loads. +#define VT_MMV_PFMA4(P0, P1, P2, P3, BROW) \ + { \ + uint w0_ = VT_MMV_B2((BROW) + (pi << 1)); \ + uint w1_ = VT_MMV_B2((BROW) + ((pi + VT_TG) << 1)); \ + uint w2_ = VT_MMV_B2((BROW) + ((pi + VT_TG * 2u) << 1)); \ + uint w3_ = VT_MMV_B2((BROW) + ((pi + VT_TG * 3u) << 1)); \ + P0 += a0lo * VT_LO(w0_, VT_MM_B_DT) + a0hi * VT_HI(w0_, VT_MM_B_DT); \ + P1 += a1lo * VT_LO(w1_, VT_MM_B_DT) + a1hi * VT_HI(w1_, VT_MM_B_DT); \ + P2 += a2lo * VT_LO(w2_, VT_MM_B_DT) + a2hi * VT_HI(w2_, VT_MM_B_DT); \ + P3 += a3lo * VT_LO(w3_, VT_MM_B_DT) + a3hi * VT_HI(w3_, VT_MM_B_DT); \ + } + +// One row's four unrolled QUAD products: sixteen elements, four 8-byte loads. +#define VT_MMV_QFMA4(P0, P1, P2, P3, BROW) \ + { \ + uvec2 w0_ = VT_MMV_B4((BROW) + (qi << 2)); \ + uvec2 w1_ = VT_MMV_B4((BROW) + ((qi + VT_TG) << 2)); \ + uvec2 w2_ = VT_MMV_B4((BROW) + ((qi + VT_TG * 2u) << 2)); \ + uvec2 w3_ = VT_MMV_B4((BROW) + ((qi + VT_TG * 3u) << 2)); \ + P0 += vt_mmv_dot4(w0_, a0v, VT_MM_B_DT); \ + P1 += vt_mmv_dot4(w1_, a1v, VT_MM_B_DT); \ + P2 += vt_mmv_dot4(w2_, a2v, VT_MM_B_DT); \ + P3 += vt_mmv_dot4(w3_, a3v, VT_MM_B_DT); \ + } + void main() { - // One workgroup per output element, laid out exactly like vt_matmul's flat gid - // so the two tactics write the same element for the same index. - uint gid = gl_WorkGroupID.x; + // WORKGROUP -> OUTPUT ELEMENTS. With VT_MM_ROWS == 1 this is exactly + // vt_matmul's flat gid, so the two tactics write the same element for the same + // index. With VT_MM_ROWS > 1 the workgroup owns VT_MM_ROWS CONSECUTIVE output + // elements; the host only selects that when m == 1 and n % VT_MM_ROWS == 0, so + // the block never straddles two output rows and there is no ragged tail to + // branch on inside the loop. uint tid = gl_LocalInvocationID.x; - if (gid >= p.m * p.n) { return; } - uint i = gid / p.n; // output row - uint j = gid % p.n; // output column + uint base = gl_WorkGroupID.x * VT_MM_ROWS; + if (base >= p.m * p.n) { return; } + uint i = base / p.n; // output row + uint j0 = base % p.n; // first output column owned by this workgroup uint a_row = i * p.k; - uint b_row = j * p.k; // MatmulBT: b is [N,K] row-major + uint b0 = j0 * p.k; // MatmulBT: b is [N,K] row-major + uint b1 = b0 + p.k; + uint b2 = b1 + p.k; + uint b3 = b2 + p.k; // Strided by VT_TG so adjacent lanes touch adjacent elements -- the whole point. // @@ -94,28 +223,153 @@ void main() { // The strides stay VT_TG apart so every one of the four loads is still // coalesced across the workgroup -- the unroll adds concurrency WITHOUT giving // up the access pattern the tactic exists for. - float p0 = 0.0, p1 = 0.0, p2 = 0.0, p3 = 0.0; - const uint step = VT_TG * VT_MM_UNROLL; - uint q = tid; - for (; VT_MM_UNROLL == 4u && q + VT_TG * 3u < p.k; q += step) { - p0 += VT_LOAD(A32, A16, VT_MM_A_DT, p.a_off, a_row + q) * - VT_LOAD(B32, B16, VT_MM_B_DT, p.b_off, b_row + q); - p1 += VT_LOAD(A32, A16, VT_MM_A_DT, p.a_off, a_row + q + VT_TG) * - VT_LOAD(B32, B16, VT_MM_B_DT, p.b_off, b_row + q + VT_TG); - p2 += VT_LOAD(A32, A16, VT_MM_A_DT, p.a_off, a_row + q + VT_TG * 2u) * - VT_LOAD(B32, B16, VT_MM_B_DT, p.b_off, b_row + q + VT_TG * 2u); - p3 += VT_LOAD(A32, A16, VT_MM_A_DT, p.a_off, a_row + q + VT_TG * 3u) * - VT_LOAD(B32, B16, VT_MM_B_DT, p.b_off, b_row + q + VT_TG * 3u); - } - // Tail: whatever the unrolled body could not cover, at the original stride. K is - // not required to be a multiple of 4*VT_TG, and truncating it would silently - // drop dot-product terms. - for (; q < p.k; q += VT_TG) { - p0 += VT_LOAD(A32, A16, VT_MM_A_DT, p.a_off, a_row + q) * - VT_LOAD(B32, B16, VT_MM_B_DT, p.b_off, b_row + q); + // + // The accumulators are SPELLED OUT rather than held in a `float[4][4]` because + // an array indexed by a specialization constant is not guaranteed to stay in + // registers; a spill to scratch memory on the hottest kernel in decode would be + // silent and would swamp everything this row is trying to measure. The + // `VT_MM_ROWS >= r` guards fold away once the constant is specialized. + float r0p0 = 0.0, r0p1 = 0.0, r0p2 = 0.0, r0p3 = 0.0; + float r1p0 = 0.0, r1p1 = 0.0, r1p2 = 0.0, r1p3 = 0.0; + float r2p0 = 0.0, r2p1 = 0.0, r2p2 = 0.0, r2p3 = 0.0; + float r3p0 = 0.0, r3p1 = 0.0, r3p2 = 0.0, r3p3 = 0.0; + + if (VT_MM_PACK == 2u) { + // QUAD: the lane's unit of work is FOUR consecutive elements in one 8-byte + // load. k % 4 == 0 by host predicate, so the quad count is exact and there is + // no ragged element left over. Across a 32-lane subgroup one load instruction + // still covers 256 CONSECUTIVE bytes, so the coalescing the tactic exists for + // is untouched; what changes is that a quarter as many load instructions move + // the same bytes. + const uint quads = p.k >> 2; + const uint qstep = VT_TG * VT_MM_UNROLL; + uint qi = tid; + for (; VT_MM_UNROLL == 4u && qi + VT_TG * 3u < quads; qi += qstep) { + vec4 a0v = vt_mmv_unpack4(VT_MMV_A4(a_row + (qi << 2)), VT_MM_A_DT); + vec4 a1v = vt_mmv_unpack4(VT_MMV_A4(a_row + ((qi + VT_TG) << 2)), VT_MM_A_DT); + vec4 a2v = vt_mmv_unpack4(VT_MMV_A4(a_row + ((qi + VT_TG * 2u) << 2)), VT_MM_A_DT); + vec4 a3v = vt_mmv_unpack4(VT_MMV_A4(a_row + ((qi + VT_TG * 3u) << 2)), VT_MM_A_DT); + VT_MMV_QFMA4(r0p0, r0p1, r0p2, r0p3, b0) + if (VT_MM_ROWS >= 2u) VT_MMV_QFMA4(r1p0, r1p1, r1p2, r1p3, b1) + if (VT_MM_ROWS >= 4u) { + VT_MMV_QFMA4(r2p0, r2p1, r2p2, r2p3, b2) + VT_MMV_QFMA4(r3p0, r3p1, r3p2, r3p3, b3) + } + } + for (; qi < quads; qi += VT_TG) { + vec4 a0v = vt_mmv_unpack4(VT_MMV_A4(a_row + (qi << 2)), VT_MM_A_DT); + r0p0 += vt_mmv_dot4(VT_MMV_B4(b0 + (qi << 2)), a0v, VT_MM_B_DT); + if (VT_MM_ROWS >= 2u) { + r1p0 += vt_mmv_dot4(VT_MMV_B4(b1 + (qi << 2)), a0v, VT_MM_B_DT); + } + if (VT_MM_ROWS >= 4u) { + r2p0 += vt_mmv_dot4(VT_MMV_B4(b2 + (qi << 2)), a0v, VT_MM_B_DT); + r3p0 += vt_mmv_dot4(VT_MMV_B4(b3 + (qi << 2)), a0v, VT_MM_B_DT); + } + } + } else if (VT_MM_PACK == 0u) { + const uint step = VT_TG * VT_MM_UNROLL; + uint q = tid; + for (; VT_MM_UNROLL == 4u && q + VT_TG * 3u < p.k; q += step) { + // The activation element is loaded ONCE per lane per unrolled slot and + // reused by every row this workgroup owns -- the whole point of VT_MM_ROWS. + float a0 = VT_MMV_A(a_row + q); + float a1 = VT_MMV_A(a_row + q + VT_TG); + float a2 = VT_MMV_A(a_row + q + VT_TG * 2u); + float a3 = VT_MMV_A(a_row + q + VT_TG * 3u); + VT_MMV_FMA4(r0p0, r0p1, r0p2, r0p3, b0); + if (VT_MM_ROWS >= 2u) { VT_MMV_FMA4(r1p0, r1p1, r1p2, r1p3, b1); } + if (VT_MM_ROWS >= 4u) { + VT_MMV_FMA4(r2p0, r2p1, r2p2, r2p3, b2); + VT_MMV_FMA4(r3p0, r3p1, r3p2, r3p3, b3); + } + } + // Tail: whatever the unrolled body could not cover, at the original stride. K is + // not required to be a multiple of 4*VT_TG, and truncating it would silently + // drop dot-product terms. + for (; q < p.k; q += VT_TG) { + float a0 = VT_MMV_A(a_row + q); + r0p0 += a0 * VT_MMV_B(b0 + q); + if (VT_MM_ROWS >= 2u) { r1p0 += a0 * VT_MMV_B(b1 + q); } + if (VT_MM_ROWS >= 4u) { + r2p0 += a0 * VT_MMV_B(b2 + q); + r3p0 += a0 * VT_MMV_B(b3 + q); + } + } + } else { + // PACKED: the lane's unit of work is a PAIR of consecutive elements, so the + // loop counts pairs. k is even by host predicate, so there is no odd element + // left over and the pair count is exact. + const uint pairs = p.k >> 1; + const uint pstep = VT_TG * VT_MM_UNROLL; + uint pi = tid; + for (; VT_MM_UNROLL == 4u && pi + VT_TG * 3u < pairs; pi += pstep) { + uint av0 = VT_MMV_A2(a_row + (pi << 1)); + uint av1 = VT_MMV_A2(a_row + ((pi + VT_TG) << 1)); + uint av2 = VT_MMV_A2(a_row + ((pi + VT_TG * 2u) << 1)); + uint av3 = VT_MMV_A2(a_row + ((pi + VT_TG * 3u) << 1)); + float a0lo = VT_LO(av0, VT_MM_A_DT), a0hi = VT_HI(av0, VT_MM_A_DT); + float a1lo = VT_LO(av1, VT_MM_A_DT), a1hi = VT_HI(av1, VT_MM_A_DT); + float a2lo = VT_LO(av2, VT_MM_A_DT), a2hi = VT_HI(av2, VT_MM_A_DT); + float a3lo = VT_LO(av3, VT_MM_A_DT), a3hi = VT_HI(av3, VT_MM_A_DT); + VT_MMV_PFMA4(r0p0, r0p1, r0p2, r0p3, b0) + if (VT_MM_ROWS >= 2u) VT_MMV_PFMA4(r1p0, r1p1, r1p2, r1p3, b1) + if (VT_MM_ROWS >= 4u) { + VT_MMV_PFMA4(r2p0, r2p1, r2p2, r2p3, b2) + VT_MMV_PFMA4(r3p0, r3p1, r3p2, r3p3, b3) + } + } + for (; pi < pairs; pi += VT_TG) { + uint av0 = VT_MMV_A2(a_row + (pi << 1)); + float alo = VT_LO(av0, VT_MM_A_DT), ahi = VT_HI(av0, VT_MM_A_DT); + uint w0 = VT_MMV_B2(b0 + (pi << 1)); + r0p0 += alo * VT_LO(w0, VT_MM_B_DT) + ahi * VT_HI(w0, VT_MM_B_DT); + if (VT_MM_ROWS >= 2u) { + uint w1 = VT_MMV_B2(b1 + (pi << 1)); + r1p0 += alo * VT_LO(w1, VT_MM_B_DT) + ahi * VT_HI(w1, VT_MM_B_DT); + } + if (VT_MM_ROWS >= 4u) { + uint w2 = VT_MMV_B2(b2 + (pi << 1)); + uint w3 = VT_MMV_B2(b3 + (pi << 1)); + r2p0 += alo * VT_LO(w2, VT_MM_B_DT) + ahi * VT_HI(w2, VT_MM_B_DT); + r3p0 += alo * VT_LO(w3, VT_MM_B_DT) + ahi * VT_HI(w3, VT_MM_B_DT); + } + } } - float acc = vt_tg_sum(tid, (p0 + p1) + (p2 + p3)); + // VT_MM_ROWS INDEPENDENT halving trees, interleaved so the whole block costs + // log2(VT_TG) barriers rather than VT_MM_ROWS times that. The per-tree + // arithmetic is the same shape and the same order as vt_common.glsl's + // vt_tg_sum -- leading barrier, store, barrier, halve -- which is what makes + // VT_MM_ROWS > 1 bit-identical to VT_MM_ROWS == 1 rather than merely close. + // vt_tg_sum itself cannot be reused: it owns a single VT_TG-wide array and + // would serialise the trees. + barrier(); + vt_mmv_part[tid] = (r0p0 + r0p1) + (r0p2 + r0p3); + if (VT_MM_ROWS >= 2u) { vt_mmv_part[VT_TG + tid] = (r1p0 + r1p1) + (r1p2 + r1p3); } + if (VT_MM_ROWS >= 4u) { + vt_mmv_part[VT_TG * 2u + tid] = (r2p0 + r2p1) + (r2p2 + r2p3); + vt_mmv_part[VT_TG * 3u + tid] = (r3p0 + r3p1) + (r3p2 + r3p3); + } + barrier(); + for (uint s = VT_TG / 2u; s > 0u; s >>= 1) { + if (tid < s) { + vt_mmv_part[tid] += vt_mmv_part[tid + s]; + if (VT_MM_ROWS >= 2u) { vt_mmv_part[VT_TG + tid] += vt_mmv_part[VT_TG + tid + s]; } + if (VT_MM_ROWS >= 4u) { + vt_mmv_part[VT_TG * 2u + tid] += vt_mmv_part[VT_TG * 2u + tid + s]; + vt_mmv_part[VT_TG * 3u + tid] += vt_mmv_part[VT_TG * 3u + tid + s]; + } + } + barrier(); + } if (tid != 0u) { return; } - VT_STORE(D32, D16, VT_MM_OUT_DT, p.out_off, gid, acc); + VT_STORE(D32, D16, VT_MM_OUT_DT, p.out_off, base, vt_mmv_part[0]); + if (VT_MM_ROWS >= 2u) { + VT_STORE(D32, D16, VT_MM_OUT_DT, p.out_off, base + 1u, vt_mmv_part[VT_TG]); + } + if (VT_MM_ROWS >= 4u) { + VT_STORE(D32, D16, VT_MM_OUT_DT, p.out_off, base + 2u, vt_mmv_part[VT_TG * 2u]); + VT_STORE(D32, D16, VT_MM_OUT_DT, p.out_off, base + 3u, vt_mmv_part[VT_TG * 3u]); + } } diff --git a/src/vt/vulkan/vulkan_context.cpp b/src/vt/vulkan/vulkan_context.cpp index bf973de8d..40ee531a6 100644 --- a/src/vt/vulkan/vulkan_context.cpp +++ b/src/vt/vulkan/vulkan_context.cpp @@ -864,6 +864,19 @@ bool VulkanContext::PipelineExistsFor(const std::string& name) const { return false; } +std::vector VulkanContext::PipelineKeysFor(const std::string& name) const { + std::lock_guard guard(*static_cast(mutex_)); + const auto& cache = *static_cast*>(pipelines_); + std::vector keys; + for (const auto& kv : cache) { + // Same prefix rule as PipelineExistsFor: "" or "|". + if (kv.first == name || kv.first.compare(0, name.size() + 1, name + "|") == 0) { + keys.push_back(kv.first); + } + } + return keys; +} + uint64_t VulkanContext::dispatch_count() const { std::lock_guard guard(*static_cast(mutex_)); return dispatch_total_; diff --git a/src/vt/vulkan/vulkan_context.h b/src/vt/vulkan/vulkan_context.h index 199a1503c..7c8106826 100644 --- a/src/vt/vulkan/vulkan_context.h +++ b/src/vt/vulkan/vulkan_context.h @@ -88,6 +88,15 @@ class VulkanContext { // call -- the same trap the op-provider decline counters exist for. bool PipelineExistsFor(const std::string& name) const; + // The FULL cache keys built for one module -- "|". PipelineExistsFor answers "did any variant run"; this answers + // "WHICH variant ran", which is what a test has to assert when the variants + // differ only in speed. vt_matmul_vec's rows-per-workgroup axis is exactly that + // case: every value of it computes the same numbers, so a numeric tolerance + // test cannot notice when the optimisation silently stops being selected, and + // only the spec values in the key can. + std::vector PipelineKeysFor(const std::string& name) const; + // DISPATCH ACCOUNTING (VK-E deep dive). Total submits, and a per-shader // histogram. This exists because a wall-clock number could not distinguish two // very different stories: a reasonable dispatch count each paying a large diff --git a/src/vt/vulkan/vulkan_ops.cpp b/src/vt/vulkan/vulkan_ops.cpp index da8534aec..ce7fdb79e 100644 --- a/src/vt/vulkan/vulkan_ops.cpp +++ b/src/vt/vulkan/vulkan_ops.cpp @@ -84,6 +84,17 @@ class Binder { // A raw buffer bound ONCE (no 16-bit view): the fused-chain step list. void AddRaw(void* buffer) { buffers_.push_back(buffer); } + // ONE MORE VIEW of an operand already added, for a shader that reads the same + // memory at a THIRD width (vt_matmul_vec's 64-bit packed loads). Deliberately + // separate from Add: this appends a SINGLE binding, and it must land after + // every operand's u32/u16 pair, so the caller is choosing the descriptor index + // rather than getting one implicitly. + uint32_t AddAlias(const Tensor& t, const char* what) { + Resolved r = Resolve(t.data, what); + buffers_.push_back(r.buffer); + return r.offset; + } + // A tensor bound through the uint32_t view ONLY, for shaders that declare a // single binding per operand because the operand is integer (embedding ids, // sampler token ids) or f32-by-contract (logits). Binding the unused 16-bit @@ -620,6 +631,118 @@ bool GemvMatmulUsable(bool bt, int64_t k, int64_t m) { return k >= static_cast(kWorkgroupSize); } +// GEMV VARIANT AXES (row BACKEND-VULKAN-GEMVROWS). Both are specialization +// constants on the SAME committed module, so every arm of an A/B lives in one +// binary; see shaders/vt_matmul_vec.comp for what each one can and cannot buy. +// +// Defaults are named here rather than spelled inline so a measured flip is one +// edit and the env lever keeps meaning "override the measured default". +// +// MEASURED, GB10, benchmarks/vulkan_gemv_ab.cpp over the 27B's own decode shapes, +// 9 arms x 4 rotated passes, each arm paired against the rows=1/pack=0 baseline +// measured IN THE SAME PASS (the box drifted 15.5% peak-to-peak between passes, +// so an unpaired ranking would have been noise): +// +// rows=1 pack=0 1.000x rows=2 pack=0 0.966x rows=4 pack=0 0.968x +// rows=1 pack=1 1.025x rows=2 pack=1 1.017x rows=4 pack=1 1.014x +// rows=1 pack=2 1.086x rows=2 pack=2 1.047x rows=4 pack=2 1.039x +// +// ROWS > 1 IS A MEASURED LOSS ON THIS DEVICE, in all four passes and at every +// pack width, so it ships OFF. It is kept as an axis rather than deleted because +// llama.cpp makes exactly this knob device-dependent -- ggml-vulkan.cpp:4705-4719 +// sets `rm_stdq` to 2 on AMD GCN and on Intel and leaves it 1 elsewhere -- and the +// board this campaign is waiting on (VK-I) is one of the two it raises it for. +// Deleting the axis would mean rediscovering it there. +// The likely reason it loses here: halving the workgroup count halves the number +// of independent sequential read streams the memory controller sees, and each +// surviving workgroup interleaves reads from rows k*2 bytes apart. The activation +// re-reads it saves were L2 hits, which were never the constraint. +constexpr uint32_t kGemvRowsDefault = 1; +constexpr uint32_t kGemvPackDefault = 2; + +uint32_t EnvVariant(const char* name, uint32_t fallback, uint32_t lo, uint32_t hi) { + const char* v = std::getenv(name); + if (v == nullptr || *v == '\0') return fallback; + char* end = nullptr; + const unsigned long parsed = std::strtoul(v, &end, 10); + if (end == v || *end != '\0') return fallback; + const uint32_t val = static_cast(parsed); + return (val >= lo && val <= hi) ? val : fallback; +} + +// Once per distinct reason, exactly like the two DECLINED reporters above: a +// variant that silently stops applying is the failure mode this whole row has to +// be able to rule out, and reading the source cannot tell you which clause fired. +void VariantWhy(const char* kind, const char* why) { + if (!kCoopMatWhy) return; + static std::mutex mu; + static std::set seen; + std::lock_guard g(mu); + if (seen.insert(std::string(kind) + "|" + why).second) { + std::fprintf(stderr, "[vt vulkan] gemv %s DECLINED: %s\n", kind, why); + std::fflush(stderr); + } +} + +// OUTPUT ELEMENTS PER WORKGROUP. Requires m == 1 (so the block cannot straddle +// two output rows) and n % rows == 0 (so the shader has no ragged tail to branch +// on in its inner loop). Both hold for every decode projection in the models this +// backend runs; when they do not, the request degrades to the next lower power of +// two rather than failing, and says so under VT_VULKAN_DISPATCH_STATS. +uint32_t GemvRows(int64_t m, int64_t n) { + // ONLY 1, 2 AND 4 EXIST, and that is a correctness constraint rather than a + // taste one: the shader materialises exactly four accumulator sets and guards + // them with `VT_MM_ROWS >= 2` / `>= 4`, so a value of 3 would compute two + // output elements while the host dispatched ceil(n/3) workgroups and silently + // drop a third of the row. Anything else falls back to 1. + static const uint32_t kWant = [] { + const uint32_t v = EnvVariant("VT_VULKAN_GEMV_ROWS", kGemvRowsDefault, 1, 4); + return (v == 1u || v == 2u || v == 4u) ? v : 1u; + }(); + uint32_t rows = kWant; + while (rows > 1u && (m != 1 || (n % static_cast(rows)) != 0)) rows >>= 1; + if (rows < kWant) { + VariantWhy("rows", m != 1 ? "M is not 1" : "N is not a multiple of the requested row count"); + } + return rows; +} + +// LOAD WIDTH for 16-bit operands: 0 = one element per load, 1 = two through the +// 32-bit view, 2 = four through the 64-bit view. Every requirement is a hard one +// and a failure DEGRADES to the next narrower width rather than declining, so a +// shape that cannot take the widest load still takes the one it can. +// * both operands 16-bit -- an f32 operand is already one element per 32-bit +// word, so there is nothing to pack. +// * byte offsets aligned to the load width -- the wide views index at +// (off >> 2) and (off >> 3), so a misaligned offset would read a word +// straddling two elements. +// * k divisible by the element count -- the shader's pair/quad count is exact +// with no ragged element left over, and a row start j*k must itself be +// aligned for every j, which k carries. +uint32_t GemvPack(const Tensor& a, const Tensor& b, int64_t k, uint32_t a_off, + uint32_t b_off) { + static const uint32_t kWant = EnvVariant("VT_VULKAN_GEMV_PACK", kGemvPackDefault, 0, 2); + if (kWant == 0) return 0; + const bool a16 = a.dtype == DType::kF16 || a.dtype == DType::kBF16; + const bool b16 = b.dtype == DType::kF16 || b.dtype == DType::kBF16; + if (!a16 || !b16) { + VariantWhy("pack", "an operand is not 16-bit (nothing to pack)"); + return 0; + } + uint32_t level = kWant; + if (level >= 2 && + ((a_off % 8u) != 0u || (b_off % 8u) != 0u || (k % 4) != 0)) { + VariantWhy("pack", "K or an operand byte offset is not 4-element aligned (8 B)"); + level = 1; + } + if (level >= 1 && + ((a_off % 4u) != 0u || (b_off % 4u) != 0u || (k % 2) != 0)) { + VariantWhy("pack", "K or an operand byte offset is not 2-element aligned (4 B)"); + level = 0; + } + return level; +} + template void MatmulGeneric(Queue&, Tensor& out, const Tensor& a, const Tensor& b) { const int64_t m = a.shape[0], k = a.shape[1]; @@ -644,20 +767,31 @@ void MatmulGeneric(Queue&, Tensor& out, const Tensor& a, const Tensor& b) { } if (GemvMatmulUsable(kBT, k, m)) { - // ONE WORKGROUP PER OUTPUT ELEMENT -- not FlatGroupCount, which would divide - // the element count by the workgroup size and put the whole K reduction back - // on a single lane. The workgroup cooperates on one element. - const uint32_t groups = static_cast(m * n); + // ONE WORKGROUP PER `rows` OUTPUT ELEMENTS -- not FlatGroupCount, which would + // divide the element count by the workgroup size and put the whole K + // reduction back on a single lane. The workgroup cooperates on its elements. + const uint32_t rows = GemvRows(m, n); + const uint32_t groups = static_cast((m * n + rows - 1) / rows); // VT_VULKAN_GEMV_UNROLL=1 forces the un-unrolled body, for the same-binary A/B. static const uint32_t kUnroll = [] { const char* v = std::getenv("VT_VULKAN_GEMV_UNROLL"); return (v != nullptr && std::strcmp(v, "1") == 0) ? 1u : 4u; }(); - const uint32_t spec[4] = {DtypeCode(a.dtype), DtypeCode(b.dtype), - DtypeCode(out.dtype), kUnroll}; + const uint32_t spec[6] = {DtypeCode(a.dtype), DtypeCode(b.dtype), + DtypeCode(out.dtype), kUnroll, rows, + GemvPack(a, b, k, a_off, b_off)}; MatmulParams p{static_cast(m), static_cast(n), static_cast(k), a_off, b_off, out_off}; - Go("vt_matmul_vec", bind, p, groups, spec, 4); + // TWO EXTRA BINDINGS, and they are the same two buffers again. This shader + // declares a 64-bit view of each input operand for the widest packed load; + // a shader must declare every descriptor the host writes, so both views are + // bound for every variant and the narrower ones simply never read them. The + // Binder pushed a and b at bindings 0-3 already, so the aliases have to be + // appended AFTER the output pair to land on 6 and 7. + Binder wide = bind; + wide.AddAlias(a, "matmul: a (64-bit view)"); + wide.AddAlias(b, "matmul: b (64-bit view)"); + Go("vt_matmul_vec", wide, p, groups, spec, 6); return; } diff --git a/src/vt/vulkan/vulkan_spirv.cpp b/src/vt/vulkan/vulkan_spirv.cpp index 1cf727531..464b1991e 100644 --- a/src/vt/vulkan/vulkan_spirv.cpp +++ b/src/vt/vulkan/vulkan_spirv.cpp @@ -7704,558 +7704,1966 @@ constexpr uint32_t kSpv_vt_matmul_coopmat[] = { }; constexpr uint32_t kSpv_vt_matmul_vec[] = { - 0x07230203u, 0x00010300u, 0x0008000bu, 0x0000035au, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, + 0x07230203u, 0x00010300u, 0x0008000bu, 0x00000babu, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00001151u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, - 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x0000017cu, - 0x00000181u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000080u, 0x00000001u, 0x00000001u, 0x00040047u, - 0x0000017cu, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000181u, 0x0000000bu, 0x0000001bu, 0x00030047u, - 0x00000185u, 0x00000002u, 0x00050048u, 0x00000185u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, - 0x00000185u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000185u, 0x00000002u, 0x00000023u, - 0x00000008u, 0x00050048u, 0x00000185u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000185u, - 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000185u, 0x00000005u, 0x00000023u, 0x00000014u, - 0x00040047u, 0x000001b3u, 0x00000001u, 0x00000003u, 0x00040047u, 0x000001bfu, 0x00000001u, 0x00000000u, - 0x00040047u, 0x000001c4u, 0x00000006u, 0x00000004u, 0x00030047u, 0x000001c5u, 0x00000002u, 0x00040048u, - 0x000001c5u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001c5u, 0x00000000u, 0x00000023u, 0x00000000u, - 0x00030047u, 0x000001c7u, 0x00000018u, 0x00040047u, 0x000001c7u, 0x00000021u, 0x00000000u, 0x00040047u, - 0x000001c7u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001d6u, 0x00000006u, 0x00000002u, 0x00030047u, - 0x000001d7u, 0x00000002u, 0x00040048u, 0x000001d7u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001d7u, - 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001d9u, 0x00000018u, 0x00040047u, 0x000001d9u, - 0x00000021u, 0x00000001u, 0x00040047u, 0x000001d9u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001e9u, - 0x00000001u, 0x00000001u, 0x00040047u, 0x000001eeu, 0x00000006u, 0x00000004u, 0x00030047u, 0x000001efu, - 0x00000002u, 0x00040048u, 0x000001efu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001efu, 0x00000000u, - 0x00000023u, 0x00000000u, 0x00030047u, 0x000001f1u, 0x00000018u, 0x00040047u, 0x000001f1u, 0x00000021u, - 0x00000002u, 0x00040047u, 0x000001f1u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001feu, 0x00000006u, - 0x00000002u, 0x00030047u, 0x000001ffu, 0x00000002u, 0x00040048u, 0x000001ffu, 0x00000000u, 0x00000018u, - 0x00050048u, 0x000001ffu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000201u, 0x00000018u, - 0x00040047u, 0x00000201u, 0x00000021u, 0x00000003u, 0x00040047u, 0x00000201u, 0x00000022u, 0x00000000u, - 0x00040047u, 0x00000337u, 0x00000001u, 0x00000002u, 0x00040047u, 0x0000033bu, 0x00000006u, 0x00000004u, - 0x00030047u, 0x0000033cu, 0x00000002u, 0x00050048u, 0x0000033cu, 0x00000000u, 0x00000023u, 0x00000000u, - 0x00040047u, 0x0000033eu, 0x00000021u, 0x00000004u, 0x00040047u, 0x0000033eu, 0x00000022u, 0x00000000u, - 0x00040047u, 0x00000349u, 0x00000006u, 0x00000002u, 0x00030047u, 0x0000034au, 0x00000002u, 0x00050048u, - 0x0000034au, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x0000034cu, 0x00000021u, 0x00000005u, - 0x00040047u, 0x0000034cu, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000359u, 0x0000000bu, 0x00000019u, - 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, - 0x00000000u, 0x00040020u, 0x00000007u, 0x00000007u, 0x00000006u, 0x00030016u, 0x00000008u, 0x00000020u, - 0x00040021u, 0x00000009u, 0x00000008u, 0x00000007u, 0x00040020u, 0x0000000du, 0x00000007u, 0x00000008u, - 0x00040021u, 0x0000000eu, 0x00000006u, 0x0000000du, 0x00050021u, 0x00000018u, 0x00000008u, 0x00000007u, - 0x00000007u, 0x00050021u, 0x0000001du, 0x00000006u, 0x0000000du, 0x00000007u, 0x00050021u, 0x00000022u, - 0x00000008u, 0x00000007u, 0x0000000du, 0x00040015u, 0x00000028u, 0x00000020u, 0x00000001u, 0x0004002bu, - 0x00000028u, 0x00000029u, 0x00000010u, 0x00020014u, 0x00000031u, 0x0004002bu, 0x00000006u, 0x00000033u, - 0x7f800000u, 0x0004002bu, 0x00000006u, 0x00000039u, 0x007fffffu, 0x0004002bu, 0x00000006u, 0x0000003bu, - 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000042u, 0x00000040u, 0x0004002bu, 0x00000006u, 0x00000044u, - 0x0000ffffu, 0x0004002bu, 0x00000006u, 0x00000048u, 0x00007fffu, 0x0004002bu, 0x00000006u, 0x0000004bu, - 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000057u, 0x00008000u, 0x0004002bu, 0x00000028u, 0x0000005cu, - 0x0000000au, 0x0004002bu, 0x00000006u, 0x0000005eu, 0x0000001fu, 0x0004002bu, 0x00000006u, 0x00000062u, - 0x000003ffu, 0x0004002bu, 0x00000028u, 0x0000006bu, 0x0000000du, 0x0004002bu, 0x00000006u, 0x00000082u, - 0x00000400u, 0x0004002bu, 0x00000028u, 0x00000085u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x0000008du, - 0x00000071u, 0x0004002bu, 0x00000028u, 0x00000090u, 0x00000017u, 0x0004002bu, 0x00000006u, 0x0000009au, - 0x00000070u, 0x0004002bu, 0x00000006u, 0x000000aeu, 0x000000ffu, 0x00040020u, 0x000000b0u, 0x00000007u, - 0x00000028u, 0x0004002bu, 0x00000028u, 0x000000b4u, 0x0000007fu, 0x0004002bu, 0x00000028u, 0x000000b6u, - 0x0000000fu, 0x0004002bu, 0x00000006u, 0x000000c0u, 0x00007c00u, 0x0004002bu, 0x00000006u, 0x000000c7u, - 0x00000200u, 0x0004002bu, 0x00000028u, 0x000000d0u, 0x0000001fu, 0x0004002bu, 0x00000028u, 0x000000d8u, - 0x00000000u, 0x0004002bu, 0x00000028u, 0x000000ddu, 0xfffffff6u, 0x0004002bu, 0x00000006u, 0x000000e3u, - 0x00800000u, 0x0004002bu, 0x00000028u, 0x000000e7u, 0x0000000eu, 0x0004002bu, 0x00000006u, 0x0000011au, - 0x00001fffu, 0x0004002bu, 0x00000006u, 0x0000011du, 0x00001000u, 0x0004002bu, 0x00000006u, 0x00000152u, - 0x00000002u, 0x0004002bu, 0x00000006u, 0x00000153u, 0x00000108u, 0x0004002bu, 0x00000006u, 0x00000154u, - 0x00000080u, 0x0004001cu, 0x00000155u, 0x00000008u, 0x00000154u, 0x00040020u, 0x00000156u, 0x00000004u, - 0x00000155u, 0x0004003bu, 0x00000156u, 0x00000157u, 0x00000004u, 0x00040020u, 0x0000015au, 0x00000004u, - 0x00000008u, 0x00040017u, 0x0000017au, 0x00000006u, 0x00000003u, 0x00040020u, 0x0000017bu, 0x00000001u, - 0x0000017au, 0x0004003bu, 0x0000017bu, 0x0000017cu, 0x00000001u, 0x00040020u, 0x0000017du, 0x00000001u, - 0x00000006u, 0x0004003bu, 0x0000017bu, 0x00000181u, 0x00000001u, 0x0008001eu, 0x00000185u, 0x00000006u, - 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, 0x00000186u, 0x00000009u, - 0x00000185u, 0x0004003bu, 0x00000186u, 0x00000187u, 0x00000009u, 0x00040020u, 0x00000188u, 0x00000009u, - 0x00000006u, 0x0004002bu, 0x00000028u, 0x0000019eu, 0x00000002u, 0x0004002bu, 0x00000008u, 0x000001a8u, - 0x00000000u, 0x00040032u, 0x00000006u, 0x000001b3u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000001b4u, - 0x00000004u, 0x00060034u, 0x00000031u, 0x000001b5u, 0x000000aau, 0x000001b3u, 0x000001b4u, 0x0004002bu, - 0x00000006u, 0x000001b9u, 0x00000180u, 0x00040032u, 0x00000006u, 0x000001bfu, 0x00000000u, 0x00060034u, - 0x00000031u, 0x000001c0u, 0x000000aau, 0x000001bfu, 0x0000003bu, 0x0003001du, 0x000001c4u, 0x00000006u, - 0x0003001eu, 0x000001c5u, 0x000001c4u, 0x00040020u, 0x000001c6u, 0x0000000cu, 0x000001c5u, 0x0004003bu, - 0x000001c6u, 0x000001c7u, 0x0000000cu, 0x0004002bu, 0x00000028u, 0x000001c8u, 0x00000003u, 0x00040020u, - 0x000001d0u, 0x0000000cu, 0x00000006u, 0x00040015u, 0x000001d5u, 0x00000010u, 0x00000000u, 0x0003001du, - 0x000001d6u, 0x000001d5u, 0x0003001eu, 0x000001d7u, 0x000001d6u, 0x00040020u, 0x000001d8u, 0x0000000cu, - 0x000001d7u, 0x0004003bu, 0x000001d8u, 0x000001d9u, 0x0000000cu, 0x00040020u, 0x000001e1u, 0x0000000cu, - 0x000001d5u, 0x00040032u, 0x00000006u, 0x000001e9u, 0x00000000u, 0x00060034u, 0x00000031u, 0x000001eau, - 0x000000aau, 0x000001e9u, 0x0000003bu, 0x0003001du, 0x000001eeu, 0x00000006u, 0x0003001eu, 0x000001efu, - 0x000001eeu, 0x00040020u, 0x000001f0u, 0x0000000cu, 0x000001efu, 0x0004003bu, 0x000001f0u, 0x000001f1u, - 0x0000000cu, 0x0004002bu, 0x00000028u, 0x000001f2u, 0x00000004u, 0x0003001du, 0x000001feu, 0x000001d5u, - 0x0003001eu, 0x000001ffu, 0x000001feu, 0x00040020u, 0x00000200u, 0x0000000cu, 0x000001ffu, 0x0004003bu, - 0x00000200u, 0x00000201u, 0x0000000cu, 0x00060034u, 0x00000031u, 0x00000213u, 0x000000aau, 0x000001bfu, - 0x0000003bu, 0x00060034u, 0x00000031u, 0x00000232u, 0x000000aau, 0x000001e9u, 0x0000003bu, 0x00060034u, - 0x00000031u, 0x00000254u, 0x000000aau, 0x000001bfu, 0x0000003bu, 0x0004002bu, 0x00000006u, 0x0000025eu, - 0x00000100u, 0x00060034u, 0x00000031u, 0x00000274u, 0x000000aau, 0x000001e9u, 0x0000003bu, 0x00060034u, - 0x00000031u, 0x00000296u, 0x000000aau, 0x000001bfu, 0x0000003bu, 0x00060034u, 0x00000031u, 0x000002b5u, - 0x000000aau, 0x000001e9u, 0x0000003bu, 0x00060034u, 0x00000006u, 0x000002d7u, 0x00000084u, 0x00000154u, - 0x000001b3u, 0x00060034u, 0x00000031u, 0x000002e3u, 0x000000aau, 0x000001bfu, 0x0000003bu, 0x00060034u, - 0x00000031u, 0x00000300u, 0x000000aau, 0x000001e9u, 0x0000003bu, 0x00040032u, 0x00000006u, 0x00000337u, - 0x00000000u, 0x00060034u, 0x00000031u, 0x00000338u, 0x000000aau, 0x00000337u, 0x0000003bu, 0x0003001du, - 0x0000033bu, 0x00000006u, 0x0003001eu, 0x0000033cu, 0x0000033bu, 0x00040020u, 0x0000033du, 0x0000000cu, - 0x0000033cu, 0x0004003bu, 0x0000033du, 0x0000033eu, 0x0000000cu, 0x0004002bu, 0x00000028u, 0x0000033fu, - 0x00000005u, 0x0003001du, 0x00000349u, 0x000001d5u, 0x0003001eu, 0x0000034au, 0x00000349u, 0x00040020u, - 0x0000034bu, 0x0000000cu, 0x0000034au, 0x0004003bu, 0x0000034bu, 0x0000034cu, 0x0000000cu, 0x0003002au, - 0x00000031u, 0x00000358u, 0x0006002cu, 0x0000017au, 0x00000359u, 0x00000154u, 0x0000004bu, 0x0000004bu, - 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003bu, - 0x00000007u, 0x00000179u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000180u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x00000192u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000197u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x0000019cu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001a2u, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x000001a7u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001a9u, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x000001aau, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001abu, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x000001acu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001c1u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x000001e5u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001e6u, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x000001ebu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000020cu, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x0000020du, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000214u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x0000022eu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000022fu, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x00000233u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000024du, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x0000024eu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000255u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x00000270u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000271u, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x00000275u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000028fu, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x00000290u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000297u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x000002b1u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000002b2u, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x000002b6u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000002d0u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x000002d1u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000002e4u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x000002fcu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000002fdu, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x00000301u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000319u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x0000031au, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000322u, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x0000032au, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000032cu, 0x00000007u, 0x0004003bu, - 0x0000000du, 0x00000352u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000354u, 0x00000007u, 0x00050041u, - 0x0000017du, 0x0000017eu, 0x0000017cu, 0x0000003bu, 0x0004003du, 0x00000006u, 0x0000017fu, 0x0000017eu, - 0x0003003eu, 0x00000179u, 0x0000017fu, 0x00050041u, 0x0000017du, 0x00000182u, 0x00000181u, 0x0000003bu, - 0x0004003du, 0x00000006u, 0x00000183u, 0x00000182u, 0x0003003eu, 0x00000180u, 0x00000183u, 0x0004003du, - 0x00000006u, 0x00000184u, 0x00000179u, 0x00050041u, 0x00000188u, 0x00000189u, 0x00000187u, 0x000000d8u, - 0x0004003du, 0x00000006u, 0x0000018au, 0x00000189u, 0x00050041u, 0x00000188u, 0x0000018bu, 0x00000187u, - 0x00000085u, 0x0004003du, 0x00000006u, 0x0000018cu, 0x0000018bu, 0x00050084u, 0x00000006u, 0x0000018du, - 0x0000018au, 0x0000018cu, 0x000500aeu, 0x00000031u, 0x0000018eu, 0x00000184u, 0x0000018du, 0x000300f7u, - 0x00000190u, 0x00000000u, 0x000400fau, 0x0000018eu, 0x0000018fu, 0x00000190u, 0x000200f8u, 0x0000018fu, - 0x000100fdu, 0x000200f8u, 0x00000190u, 0x0004003du, 0x00000006u, 0x00000193u, 0x00000179u, 0x00050041u, - 0x00000188u, 0x00000194u, 0x00000187u, 0x00000085u, 0x0004003du, 0x00000006u, 0x00000195u, 0x00000194u, - 0x00050086u, 0x00000006u, 0x00000196u, 0x00000193u, 0x00000195u, 0x0003003eu, 0x00000192u, 0x00000196u, - 0x0004003du, 0x00000006u, 0x00000198u, 0x00000179u, 0x00050041u, 0x00000188u, 0x00000199u, 0x00000187u, - 0x00000085u, 0x0004003du, 0x00000006u, 0x0000019au, 0x00000199u, 0x00050089u, 0x00000006u, 0x0000019bu, - 0x00000198u, 0x0000019au, 0x0003003eu, 0x00000197u, 0x0000019bu, 0x0004003du, 0x00000006u, 0x0000019du, - 0x00000192u, 0x00050041u, 0x00000188u, 0x0000019fu, 0x00000187u, 0x0000019eu, 0x0004003du, 0x00000006u, - 0x000001a0u, 0x0000019fu, 0x00050084u, 0x00000006u, 0x000001a1u, 0x0000019du, 0x000001a0u, 0x0003003eu, - 0x0000019cu, 0x000001a1u, 0x0004003du, 0x00000006u, 0x000001a3u, 0x00000197u, 0x00050041u, 0x00000188u, - 0x000001a4u, 0x00000187u, 0x0000019eu, 0x0004003du, 0x00000006u, 0x000001a5u, 0x000001a4u, 0x00050084u, - 0x00000006u, 0x000001a6u, 0x000001a3u, 0x000001a5u, 0x0003003eu, 0x000001a2u, 0x000001a6u, 0x0003003eu, - 0x000001a7u, 0x000001a8u, 0x0003003eu, 0x000001a9u, 0x000001a8u, 0x0003003eu, 0x000001aau, 0x000001a8u, - 0x0003003eu, 0x000001abu, 0x000001a8u, 0x0004003du, 0x00000006u, 0x000001adu, 0x00000180u, 0x0003003eu, - 0x000001acu, 0x000001adu, 0x000200f9u, 0x000001aeu, 0x000200f8u, 0x000001aeu, 0x000400f6u, 0x000001b0u, - 0x000001b1u, 0x00000000u, 0x000200f9u, 0x000001b2u, 0x000200f8u, 0x000001b2u, 0x000300f7u, 0x000001b7u, - 0x00000000u, 0x000400fau, 0x000001b5u, 0x000001b6u, 0x000001b7u, 0x000200f8u, 0x000001b6u, 0x0004003du, - 0x00000006u, 0x000001b8u, 0x000001acu, 0x00050080u, 0x00000006u, 0x000001bau, 0x000001b8u, 0x000001b9u, - 0x00050041u, 0x00000188u, 0x000001bbu, 0x00000187u, 0x0000019eu, 0x0004003du, 0x00000006u, 0x000001bcu, - 0x000001bbu, 0x000500b0u, 0x00000031u, 0x000001bdu, 0x000001bau, 0x000001bcu, 0x000200f9u, 0x000001b7u, - 0x000200f8u, 0x000001b7u, 0x000700f5u, 0x00000031u, 0x000001beu, 0x000001b5u, 0x000001b2u, 0x000001bdu, - 0x000001b6u, 0x000400fau, 0x000001beu, 0x000001afu, 0x000001b0u, 0x000200f8u, 0x000001afu, 0x000300f7u, - 0x000001c3u, 0x00000000u, 0x000400fau, 0x000001c0u, 0x000001c2u, 0x000001d4u, 0x000200f8u, 0x000001c2u, - 0x00050041u, 0x00000188u, 0x000001c9u, 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x000001cau, - 0x000001c9u, 0x000500c2u, 0x00000006u, 0x000001cbu, 0x000001cau, 0x0000019eu, 0x0004003du, 0x00000006u, - 0x000001ccu, 0x0000019cu, 0x0004003du, 0x00000006u, 0x000001cdu, 0x000001acu, 0x00050080u, 0x00000006u, - 0x000001ceu, 0x000001ccu, 0x000001cdu, 0x00050080u, 0x00000006u, 0x000001cfu, 0x000001cbu, 0x000001ceu, - 0x00060041u, 0x000001d0u, 0x000001d1u, 0x000001c7u, 0x000000d8u, 0x000001cfu, 0x0004003du, 0x00000006u, - 0x000001d2u, 0x000001d1u, 0x0004007cu, 0x00000008u, 0x000001d3u, 0x000001d2u, 0x0003003eu, 0x000001c1u, - 0x000001d3u, 0x000200f9u, 0x000001c3u, 0x000200f8u, 0x000001d4u, 0x00050041u, 0x00000188u, 0x000001dau, - 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x000001dbu, 0x000001dau, 0x000500c2u, 0x00000006u, - 0x000001dcu, 0x000001dbu, 0x00000085u, 0x0004003du, 0x00000006u, 0x000001ddu, 0x0000019cu, 0x0004003du, - 0x00000006u, 0x000001deu, 0x000001acu, 0x00050080u, 0x00000006u, 0x000001dfu, 0x000001ddu, 0x000001deu, - 0x00050080u, 0x00000006u, 0x000001e0u, 0x000001dcu, 0x000001dfu, 0x00060041u, 0x000001e1u, 0x000001e2u, - 0x000001d9u, 0x000000d8u, 0x000001e0u, 0x0004003du, 0x000001d5u, 0x000001e3u, 0x000001e2u, 0x00040071u, - 0x00000006u, 0x000001e4u, 0x000001e3u, 0x0003003eu, 0x000001e5u, 0x000001e4u, 0x0003003eu, 0x000001e6u, - 0x000001bfu, 0x00060039u, 0x00000008u, 0x000001e7u, 0x0000001bu, 0x000001e5u, 0x000001e6u, 0x0003003eu, - 0x000001c1u, 0x000001e7u, 0x000200f9u, 0x000001c3u, 0x000200f8u, 0x000001c3u, 0x0004003du, 0x00000008u, - 0x000001e8u, 0x000001c1u, 0x000300f7u, 0x000001edu, 0x00000000u, 0x000400fau, 0x000001eau, 0x000001ecu, - 0x000001fdu, 0x000200f8u, 0x000001ecu, 0x00050041u, 0x00000188u, 0x000001f3u, 0x00000187u, 0x000001f2u, - 0x0004003du, 0x00000006u, 0x000001f4u, 0x000001f3u, 0x000500c2u, 0x00000006u, 0x000001f5u, 0x000001f4u, - 0x0000019eu, 0x0004003du, 0x00000006u, 0x000001f6u, 0x000001a2u, 0x0004003du, 0x00000006u, 0x000001f7u, - 0x000001acu, 0x00050080u, 0x00000006u, 0x000001f8u, 0x000001f6u, 0x000001f7u, 0x00050080u, 0x00000006u, - 0x000001f9u, 0x000001f5u, 0x000001f8u, 0x00060041u, 0x000001d0u, 0x000001fau, 0x000001f1u, 0x000000d8u, - 0x000001f9u, 0x0004003du, 0x00000006u, 0x000001fbu, 0x000001fau, 0x0004007cu, 0x00000008u, 0x000001fcu, - 0x000001fbu, 0x0003003eu, 0x000001ebu, 0x000001fcu, 0x000200f9u, 0x000001edu, 0x000200f8u, 0x000001fdu, - 0x00050041u, 0x00000188u, 0x00000202u, 0x00000187u, 0x000001f2u, 0x0004003du, 0x00000006u, 0x00000203u, - 0x00000202u, 0x000500c2u, 0x00000006u, 0x00000204u, 0x00000203u, 0x00000085u, 0x0004003du, 0x00000006u, - 0x00000205u, 0x000001a2u, 0x0004003du, 0x00000006u, 0x00000206u, 0x000001acu, 0x00050080u, 0x00000006u, - 0x00000207u, 0x00000205u, 0x00000206u, 0x00050080u, 0x00000006u, 0x00000208u, 0x00000204u, 0x00000207u, - 0x00060041u, 0x000001e1u, 0x00000209u, 0x00000201u, 0x000000d8u, 0x00000208u, 0x0004003du, 0x000001d5u, - 0x0000020au, 0x00000209u, 0x00040071u, 0x00000006u, 0x0000020bu, 0x0000020au, 0x0003003eu, 0x0000020cu, - 0x0000020bu, 0x0003003eu, 0x0000020du, 0x000001e9u, 0x00060039u, 0x00000008u, 0x0000020eu, 0x0000001bu, - 0x0000020cu, 0x0000020du, 0x0003003eu, 0x000001ebu, 0x0000020eu, 0x000200f9u, 0x000001edu, 0x000200f8u, - 0x000001edu, 0x0004003du, 0x00000008u, 0x0000020fu, 0x000001ebu, 0x00050085u, 0x00000008u, 0x00000210u, - 0x000001e8u, 0x0000020fu, 0x0004003du, 0x00000008u, 0x00000211u, 0x000001a7u, 0x00050081u, 0x00000008u, - 0x00000212u, 0x00000211u, 0x00000210u, 0x0003003eu, 0x000001a7u, 0x00000212u, 0x000300f7u, 0x00000216u, - 0x00000000u, 0x000400fau, 0x00000213u, 0x00000215u, 0x00000222u, 0x000200f8u, 0x00000215u, 0x00050041u, - 0x00000188u, 0x00000217u, 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x00000218u, 0x00000217u, - 0x000500c2u, 0x00000006u, 0x00000219u, 0x00000218u, 0x0000019eu, 0x0004003du, 0x00000006u, 0x0000021au, - 0x0000019cu, 0x0004003du, 0x00000006u, 0x0000021bu, 0x000001acu, 0x00050080u, 0x00000006u, 0x0000021cu, - 0x0000021au, 0x0000021bu, 0x00050080u, 0x00000006u, 0x0000021du, 0x0000021cu, 0x00000154u, 0x00050080u, - 0x00000006u, 0x0000021eu, 0x00000219u, 0x0000021du, 0x00060041u, 0x000001d0u, 0x0000021fu, 0x000001c7u, - 0x000000d8u, 0x0000021eu, 0x0004003du, 0x00000006u, 0x00000220u, 0x0000021fu, 0x0004007cu, 0x00000008u, - 0x00000221u, 0x00000220u, 0x0003003eu, 0x00000214u, 0x00000221u, 0x000200f9u, 0x00000216u, 0x000200f8u, - 0x00000222u, 0x00050041u, 0x00000188u, 0x00000223u, 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, - 0x00000224u, 0x00000223u, 0x000500c2u, 0x00000006u, 0x00000225u, 0x00000224u, 0x00000085u, 0x0004003du, - 0x00000006u, 0x00000226u, 0x0000019cu, 0x0004003du, 0x00000006u, 0x00000227u, 0x000001acu, 0x00050080u, - 0x00000006u, 0x00000228u, 0x00000226u, 0x00000227u, 0x00050080u, 0x00000006u, 0x00000229u, 0x00000228u, - 0x00000154u, 0x00050080u, 0x00000006u, 0x0000022au, 0x00000225u, 0x00000229u, 0x00060041u, 0x000001e1u, - 0x0000022bu, 0x000001d9u, 0x000000d8u, 0x0000022au, 0x0004003du, 0x000001d5u, 0x0000022cu, 0x0000022bu, - 0x00040071u, 0x00000006u, 0x0000022du, 0x0000022cu, 0x0003003eu, 0x0000022eu, 0x0000022du, 0x0003003eu, - 0x0000022fu, 0x000001bfu, 0x00060039u, 0x00000008u, 0x00000230u, 0x0000001bu, 0x0000022eu, 0x0000022fu, - 0x0003003eu, 0x00000214u, 0x00000230u, 0x000200f9u, 0x00000216u, 0x000200f8u, 0x00000216u, 0x0004003du, - 0x00000008u, 0x00000231u, 0x00000214u, 0x000300f7u, 0x00000235u, 0x00000000u, 0x000400fau, 0x00000232u, - 0x00000234u, 0x00000241u, 0x000200f8u, 0x00000234u, 0x00050041u, 0x00000188u, 0x00000236u, 0x00000187u, - 0x000001f2u, 0x0004003du, 0x00000006u, 0x00000237u, 0x00000236u, 0x000500c2u, 0x00000006u, 0x00000238u, - 0x00000237u, 0x0000019eu, 0x0004003du, 0x00000006u, 0x00000239u, 0x000001a2u, 0x0004003du, 0x00000006u, - 0x0000023au, 0x000001acu, 0x00050080u, 0x00000006u, 0x0000023bu, 0x00000239u, 0x0000023au, 0x00050080u, - 0x00000006u, 0x0000023cu, 0x0000023bu, 0x00000154u, 0x00050080u, 0x00000006u, 0x0000023du, 0x00000238u, - 0x0000023cu, 0x00060041u, 0x000001d0u, 0x0000023eu, 0x000001f1u, 0x000000d8u, 0x0000023du, 0x0004003du, - 0x00000006u, 0x0000023fu, 0x0000023eu, 0x0004007cu, 0x00000008u, 0x00000240u, 0x0000023fu, 0x0003003eu, - 0x00000233u, 0x00000240u, 0x000200f9u, 0x00000235u, 0x000200f8u, 0x00000241u, 0x00050041u, 0x00000188u, - 0x00000242u, 0x00000187u, 0x000001f2u, 0x0004003du, 0x00000006u, 0x00000243u, 0x00000242u, 0x000500c2u, - 0x00000006u, 0x00000244u, 0x00000243u, 0x00000085u, 0x0004003du, 0x00000006u, 0x00000245u, 0x000001a2u, - 0x0004003du, 0x00000006u, 0x00000246u, 0x000001acu, 0x00050080u, 0x00000006u, 0x00000247u, 0x00000245u, - 0x00000246u, 0x00050080u, 0x00000006u, 0x00000248u, 0x00000247u, 0x00000154u, 0x00050080u, 0x00000006u, - 0x00000249u, 0x00000244u, 0x00000248u, 0x00060041u, 0x000001e1u, 0x0000024au, 0x00000201u, 0x000000d8u, - 0x00000249u, 0x0004003du, 0x000001d5u, 0x0000024bu, 0x0000024au, 0x00040071u, 0x00000006u, 0x0000024cu, - 0x0000024bu, 0x0003003eu, 0x0000024du, 0x0000024cu, 0x0003003eu, 0x0000024eu, 0x000001e9u, 0x00060039u, - 0x00000008u, 0x0000024fu, 0x0000001bu, 0x0000024du, 0x0000024eu, 0x0003003eu, 0x00000233u, 0x0000024fu, - 0x000200f9u, 0x00000235u, 0x000200f8u, 0x00000235u, 0x0004003du, 0x00000008u, 0x00000250u, 0x00000233u, - 0x00050085u, 0x00000008u, 0x00000251u, 0x00000231u, 0x00000250u, 0x0004003du, 0x00000008u, 0x00000252u, - 0x000001a9u, 0x00050081u, 0x00000008u, 0x00000253u, 0x00000252u, 0x00000251u, 0x0003003eu, 0x000001a9u, - 0x00000253u, 0x000300f7u, 0x00000257u, 0x00000000u, 0x000400fau, 0x00000254u, 0x00000256u, 0x00000264u, - 0x000200f8u, 0x00000256u, 0x00050041u, 0x00000188u, 0x00000258u, 0x00000187u, 0x000001c8u, 0x0004003du, - 0x00000006u, 0x00000259u, 0x00000258u, 0x000500c2u, 0x00000006u, 0x0000025au, 0x00000259u, 0x0000019eu, - 0x0004003du, 0x00000006u, 0x0000025bu, 0x0000019cu, 0x0004003du, 0x00000006u, 0x0000025cu, 0x000001acu, - 0x00050080u, 0x00000006u, 0x0000025du, 0x0000025bu, 0x0000025cu, 0x00050080u, 0x00000006u, 0x0000025fu, - 0x0000025du, 0x0000025eu, 0x00050080u, 0x00000006u, 0x00000260u, 0x0000025au, 0x0000025fu, 0x00060041u, - 0x000001d0u, 0x00000261u, 0x000001c7u, 0x000000d8u, 0x00000260u, 0x0004003du, 0x00000006u, 0x00000262u, - 0x00000261u, 0x0004007cu, 0x00000008u, 0x00000263u, 0x00000262u, 0x0003003eu, 0x00000255u, 0x00000263u, - 0x000200f9u, 0x00000257u, 0x000200f8u, 0x00000264u, 0x00050041u, 0x00000188u, 0x00000265u, 0x00000187u, - 0x000001c8u, 0x0004003du, 0x00000006u, 0x00000266u, 0x00000265u, 0x000500c2u, 0x00000006u, 0x00000267u, - 0x00000266u, 0x00000085u, 0x0004003du, 0x00000006u, 0x00000268u, 0x0000019cu, 0x0004003du, 0x00000006u, - 0x00000269u, 0x000001acu, 0x00050080u, 0x00000006u, 0x0000026au, 0x00000268u, 0x00000269u, 0x00050080u, - 0x00000006u, 0x0000026bu, 0x0000026au, 0x0000025eu, 0x00050080u, 0x00000006u, 0x0000026cu, 0x00000267u, - 0x0000026bu, 0x00060041u, 0x000001e1u, 0x0000026du, 0x000001d9u, 0x000000d8u, 0x0000026cu, 0x0004003du, - 0x000001d5u, 0x0000026eu, 0x0000026du, 0x00040071u, 0x00000006u, 0x0000026fu, 0x0000026eu, 0x0003003eu, - 0x00000270u, 0x0000026fu, 0x0003003eu, 0x00000271u, 0x000001bfu, 0x00060039u, 0x00000008u, 0x00000272u, - 0x0000001bu, 0x00000270u, 0x00000271u, 0x0003003eu, 0x00000255u, 0x00000272u, 0x000200f9u, 0x00000257u, - 0x000200f8u, 0x00000257u, 0x0004003du, 0x00000008u, 0x00000273u, 0x00000255u, 0x000300f7u, 0x00000277u, - 0x00000000u, 0x000400fau, 0x00000274u, 0x00000276u, 0x00000283u, 0x000200f8u, 0x00000276u, 0x00050041u, - 0x00000188u, 0x00000278u, 0x00000187u, 0x000001f2u, 0x0004003du, 0x00000006u, 0x00000279u, 0x00000278u, - 0x000500c2u, 0x00000006u, 0x0000027au, 0x00000279u, 0x0000019eu, 0x0004003du, 0x00000006u, 0x0000027bu, - 0x000001a2u, 0x0004003du, 0x00000006u, 0x0000027cu, 0x000001acu, 0x00050080u, 0x00000006u, 0x0000027du, - 0x0000027bu, 0x0000027cu, 0x00050080u, 0x00000006u, 0x0000027eu, 0x0000027du, 0x0000025eu, 0x00050080u, - 0x00000006u, 0x0000027fu, 0x0000027au, 0x0000027eu, 0x00060041u, 0x000001d0u, 0x00000280u, 0x000001f1u, - 0x000000d8u, 0x0000027fu, 0x0004003du, 0x00000006u, 0x00000281u, 0x00000280u, 0x0004007cu, 0x00000008u, - 0x00000282u, 0x00000281u, 0x0003003eu, 0x00000275u, 0x00000282u, 0x000200f9u, 0x00000277u, 0x000200f8u, - 0x00000283u, 0x00050041u, 0x00000188u, 0x00000284u, 0x00000187u, 0x000001f2u, 0x0004003du, 0x00000006u, - 0x00000285u, 0x00000284u, 0x000500c2u, 0x00000006u, 0x00000286u, 0x00000285u, 0x00000085u, 0x0004003du, - 0x00000006u, 0x00000287u, 0x000001a2u, 0x0004003du, 0x00000006u, 0x00000288u, 0x000001acu, 0x00050080u, - 0x00000006u, 0x00000289u, 0x00000287u, 0x00000288u, 0x00050080u, 0x00000006u, 0x0000028au, 0x00000289u, - 0x0000025eu, 0x00050080u, 0x00000006u, 0x0000028bu, 0x00000286u, 0x0000028au, 0x00060041u, 0x000001e1u, - 0x0000028cu, 0x00000201u, 0x000000d8u, 0x0000028bu, 0x0004003du, 0x000001d5u, 0x0000028du, 0x0000028cu, - 0x00040071u, 0x00000006u, 0x0000028eu, 0x0000028du, 0x0003003eu, 0x0000028fu, 0x0000028eu, 0x0003003eu, - 0x00000290u, 0x000001e9u, 0x00060039u, 0x00000008u, 0x00000291u, 0x0000001bu, 0x0000028fu, 0x00000290u, - 0x0003003eu, 0x00000275u, 0x00000291u, 0x000200f9u, 0x00000277u, 0x000200f8u, 0x00000277u, 0x0004003du, - 0x00000008u, 0x00000292u, 0x00000275u, 0x00050085u, 0x00000008u, 0x00000293u, 0x00000273u, 0x00000292u, - 0x0004003du, 0x00000008u, 0x00000294u, 0x000001aau, 0x00050081u, 0x00000008u, 0x00000295u, 0x00000294u, - 0x00000293u, 0x0003003eu, 0x000001aau, 0x00000295u, 0x000300f7u, 0x00000299u, 0x00000000u, 0x000400fau, - 0x00000296u, 0x00000298u, 0x000002a5u, 0x000200f8u, 0x00000298u, 0x00050041u, 0x00000188u, 0x0000029au, - 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x0000029bu, 0x0000029au, 0x000500c2u, 0x00000006u, - 0x0000029cu, 0x0000029bu, 0x0000019eu, 0x0004003du, 0x00000006u, 0x0000029du, 0x0000019cu, 0x0004003du, - 0x00000006u, 0x0000029eu, 0x000001acu, 0x00050080u, 0x00000006u, 0x0000029fu, 0x0000029du, 0x0000029eu, - 0x00050080u, 0x00000006u, 0x000002a0u, 0x0000029fu, 0x000001b9u, 0x00050080u, 0x00000006u, 0x000002a1u, - 0x0000029cu, 0x000002a0u, 0x00060041u, 0x000001d0u, 0x000002a2u, 0x000001c7u, 0x000000d8u, 0x000002a1u, - 0x0004003du, 0x00000006u, 0x000002a3u, 0x000002a2u, 0x0004007cu, 0x00000008u, 0x000002a4u, 0x000002a3u, - 0x0003003eu, 0x00000297u, 0x000002a4u, 0x000200f9u, 0x00000299u, 0x000200f8u, 0x000002a5u, 0x00050041u, - 0x00000188u, 0x000002a6u, 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x000002a7u, 0x000002a6u, - 0x000500c2u, 0x00000006u, 0x000002a8u, 0x000002a7u, 0x00000085u, 0x0004003du, 0x00000006u, 0x000002a9u, - 0x0000019cu, 0x0004003du, 0x00000006u, 0x000002aau, 0x000001acu, 0x00050080u, 0x00000006u, 0x000002abu, - 0x000002a9u, 0x000002aau, 0x00050080u, 0x00000006u, 0x000002acu, 0x000002abu, 0x000001b9u, 0x00050080u, - 0x00000006u, 0x000002adu, 0x000002a8u, 0x000002acu, 0x00060041u, 0x000001e1u, 0x000002aeu, 0x000001d9u, - 0x000000d8u, 0x000002adu, 0x0004003du, 0x000001d5u, 0x000002afu, 0x000002aeu, 0x00040071u, 0x00000006u, - 0x000002b0u, 0x000002afu, 0x0003003eu, 0x000002b1u, 0x000002b0u, 0x0003003eu, 0x000002b2u, 0x000001bfu, - 0x00060039u, 0x00000008u, 0x000002b3u, 0x0000001bu, 0x000002b1u, 0x000002b2u, 0x0003003eu, 0x00000297u, - 0x000002b3u, 0x000200f9u, 0x00000299u, 0x000200f8u, 0x00000299u, 0x0004003du, 0x00000008u, 0x000002b4u, - 0x00000297u, 0x000300f7u, 0x000002b8u, 0x00000000u, 0x000400fau, 0x000002b5u, 0x000002b7u, 0x000002c4u, - 0x000200f8u, 0x000002b7u, 0x00050041u, 0x00000188u, 0x000002b9u, 0x00000187u, 0x000001f2u, 0x0004003du, - 0x00000006u, 0x000002bau, 0x000002b9u, 0x000500c2u, 0x00000006u, 0x000002bbu, 0x000002bau, 0x0000019eu, - 0x0004003du, 0x00000006u, 0x000002bcu, 0x000001a2u, 0x0004003du, 0x00000006u, 0x000002bdu, 0x000001acu, - 0x00050080u, 0x00000006u, 0x000002beu, 0x000002bcu, 0x000002bdu, 0x00050080u, 0x00000006u, 0x000002bfu, - 0x000002beu, 0x000001b9u, 0x00050080u, 0x00000006u, 0x000002c0u, 0x000002bbu, 0x000002bfu, 0x00060041u, - 0x000001d0u, 0x000002c1u, 0x000001f1u, 0x000000d8u, 0x000002c0u, 0x0004003du, 0x00000006u, 0x000002c2u, - 0x000002c1u, 0x0004007cu, 0x00000008u, 0x000002c3u, 0x000002c2u, 0x0003003eu, 0x000002b6u, 0x000002c3u, - 0x000200f9u, 0x000002b8u, 0x000200f8u, 0x000002c4u, 0x00050041u, 0x00000188u, 0x000002c5u, 0x00000187u, - 0x000001f2u, 0x0004003du, 0x00000006u, 0x000002c6u, 0x000002c5u, 0x000500c2u, 0x00000006u, 0x000002c7u, - 0x000002c6u, 0x00000085u, 0x0004003du, 0x00000006u, 0x000002c8u, 0x000001a2u, 0x0004003du, 0x00000006u, - 0x000002c9u, 0x000001acu, 0x00050080u, 0x00000006u, 0x000002cau, 0x000002c8u, 0x000002c9u, 0x00050080u, - 0x00000006u, 0x000002cbu, 0x000002cau, 0x000001b9u, 0x00050080u, 0x00000006u, 0x000002ccu, 0x000002c7u, - 0x000002cbu, 0x00060041u, 0x000001e1u, 0x000002cdu, 0x00000201u, 0x000000d8u, 0x000002ccu, 0x0004003du, - 0x000001d5u, 0x000002ceu, 0x000002cdu, 0x00040071u, 0x00000006u, 0x000002cfu, 0x000002ceu, 0x0003003eu, - 0x000002d0u, 0x000002cfu, 0x0003003eu, 0x000002d1u, 0x000001e9u, 0x00060039u, 0x00000008u, 0x000002d2u, - 0x0000001bu, 0x000002d0u, 0x000002d1u, 0x0003003eu, 0x000002b6u, 0x000002d2u, 0x000200f9u, 0x000002b8u, - 0x000200f8u, 0x000002b8u, 0x0004003du, 0x00000008u, 0x000002d3u, 0x000002b6u, 0x00050085u, 0x00000008u, - 0x000002d4u, 0x000002b4u, 0x000002d3u, 0x0004003du, 0x00000008u, 0x000002d5u, 0x000001abu, 0x00050081u, - 0x00000008u, 0x000002d6u, 0x000002d5u, 0x000002d4u, 0x0003003eu, 0x000001abu, 0x000002d6u, 0x000200f9u, - 0x000001b1u, 0x000200f8u, 0x000001b1u, 0x0004003du, 0x00000006u, 0x000002d8u, 0x000001acu, 0x00050080u, - 0x00000006u, 0x000002d9u, 0x000002d8u, 0x000002d7u, 0x0003003eu, 0x000001acu, 0x000002d9u, 0x000200f9u, - 0x000001aeu, 0x000200f8u, 0x000001b0u, 0x000200f9u, 0x000002dau, 0x000200f8u, 0x000002dau, 0x000400f6u, - 0x000002dcu, 0x000002ddu, 0x00000000u, 0x000200f9u, 0x000002deu, 0x000200f8u, 0x000002deu, 0x0004003du, - 0x00000006u, 0x000002dfu, 0x000001acu, 0x00050041u, 0x00000188u, 0x000002e0u, 0x00000187u, 0x0000019eu, - 0x0004003du, 0x00000006u, 0x000002e1u, 0x000002e0u, 0x000500b0u, 0x00000031u, 0x000002e2u, 0x000002dfu, - 0x000002e1u, 0x000400fau, 0x000002e2u, 0x000002dbu, 0x000002dcu, 0x000200f8u, 0x000002dbu, 0x000300f7u, - 0x000002e6u, 0x00000000u, 0x000400fau, 0x000002e3u, 0x000002e5u, 0x000002f1u, 0x000200f8u, 0x000002e5u, - 0x00050041u, 0x00000188u, 0x000002e7u, 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x000002e8u, - 0x000002e7u, 0x000500c2u, 0x00000006u, 0x000002e9u, 0x000002e8u, 0x0000019eu, 0x0004003du, 0x00000006u, - 0x000002eau, 0x0000019cu, 0x0004003du, 0x00000006u, 0x000002ebu, 0x000001acu, 0x00050080u, 0x00000006u, - 0x000002ecu, 0x000002eau, 0x000002ebu, 0x00050080u, 0x00000006u, 0x000002edu, 0x000002e9u, 0x000002ecu, - 0x00060041u, 0x000001d0u, 0x000002eeu, 0x000001c7u, 0x000000d8u, 0x000002edu, 0x0004003du, 0x00000006u, - 0x000002efu, 0x000002eeu, 0x0004007cu, 0x00000008u, 0x000002f0u, 0x000002efu, 0x0003003eu, 0x000002e4u, - 0x000002f0u, 0x000200f9u, 0x000002e6u, 0x000200f8u, 0x000002f1u, 0x00050041u, 0x00000188u, 0x000002f2u, - 0x00000187u, 0x000001c8u, 0x0004003du, 0x00000006u, 0x000002f3u, 0x000002f2u, 0x000500c2u, 0x00000006u, - 0x000002f4u, 0x000002f3u, 0x00000085u, 0x0004003du, 0x00000006u, 0x000002f5u, 0x0000019cu, 0x0004003du, - 0x00000006u, 0x000002f6u, 0x000001acu, 0x00050080u, 0x00000006u, 0x000002f7u, 0x000002f5u, 0x000002f6u, - 0x00050080u, 0x00000006u, 0x000002f8u, 0x000002f4u, 0x000002f7u, 0x00060041u, 0x000001e1u, 0x000002f9u, - 0x000001d9u, 0x000000d8u, 0x000002f8u, 0x0004003du, 0x000001d5u, 0x000002fau, 0x000002f9u, 0x00040071u, - 0x00000006u, 0x000002fbu, 0x000002fau, 0x0003003eu, 0x000002fcu, 0x000002fbu, 0x0003003eu, 0x000002fdu, - 0x000001bfu, 0x00060039u, 0x00000008u, 0x000002feu, 0x0000001bu, 0x000002fcu, 0x000002fdu, 0x0003003eu, - 0x000002e4u, 0x000002feu, 0x000200f9u, 0x000002e6u, 0x000200f8u, 0x000002e6u, 0x0004003du, 0x00000008u, - 0x000002ffu, 0x000002e4u, 0x000300f7u, 0x00000303u, 0x00000000u, 0x000400fau, 0x00000300u, 0x00000302u, - 0x0000030eu, 0x000200f8u, 0x00000302u, 0x00050041u, 0x00000188u, 0x00000304u, 0x00000187u, 0x000001f2u, - 0x0004003du, 0x00000006u, 0x00000305u, 0x00000304u, 0x000500c2u, 0x00000006u, 0x00000306u, 0x00000305u, - 0x0000019eu, 0x0004003du, 0x00000006u, 0x00000307u, 0x000001a2u, 0x0004003du, 0x00000006u, 0x00000308u, - 0x000001acu, 0x00050080u, 0x00000006u, 0x00000309u, 0x00000307u, 0x00000308u, 0x00050080u, 0x00000006u, - 0x0000030au, 0x00000306u, 0x00000309u, 0x00060041u, 0x000001d0u, 0x0000030bu, 0x000001f1u, 0x000000d8u, - 0x0000030au, 0x0004003du, 0x00000006u, 0x0000030cu, 0x0000030bu, 0x0004007cu, 0x00000008u, 0x0000030du, - 0x0000030cu, 0x0003003eu, 0x00000301u, 0x0000030du, 0x000200f9u, 0x00000303u, 0x000200f8u, 0x0000030eu, - 0x00050041u, 0x00000188u, 0x0000030fu, 0x00000187u, 0x000001f2u, 0x0004003du, 0x00000006u, 0x00000310u, - 0x0000030fu, 0x000500c2u, 0x00000006u, 0x00000311u, 0x00000310u, 0x00000085u, 0x0004003du, 0x00000006u, - 0x00000312u, 0x000001a2u, 0x0004003du, 0x00000006u, 0x00000313u, 0x000001acu, 0x00050080u, 0x00000006u, - 0x00000314u, 0x00000312u, 0x00000313u, 0x00050080u, 0x00000006u, 0x00000315u, 0x00000311u, 0x00000314u, - 0x00060041u, 0x000001e1u, 0x00000316u, 0x00000201u, 0x000000d8u, 0x00000315u, 0x0004003du, 0x000001d5u, - 0x00000317u, 0x00000316u, 0x00040071u, 0x00000006u, 0x00000318u, 0x00000317u, 0x0003003eu, 0x00000319u, - 0x00000318u, 0x0003003eu, 0x0000031au, 0x000001e9u, 0x00060039u, 0x00000008u, 0x0000031bu, 0x0000001bu, - 0x00000319u, 0x0000031au, 0x0003003eu, 0x00000301u, 0x0000031bu, 0x000200f9u, 0x00000303u, 0x000200f8u, - 0x00000303u, 0x0004003du, 0x00000008u, 0x0000031cu, 0x00000301u, 0x00050085u, 0x00000008u, 0x0000031du, - 0x000002ffu, 0x0000031cu, 0x0004003du, 0x00000008u, 0x0000031eu, 0x000001a7u, 0x00050081u, 0x00000008u, - 0x0000031fu, 0x0000031eu, 0x0000031du, 0x0003003eu, 0x000001a7u, 0x0000031fu, 0x000200f9u, 0x000002ddu, - 0x000200f8u, 0x000002ddu, 0x0004003du, 0x00000006u, 0x00000320u, 0x000001acu, 0x00050080u, 0x00000006u, - 0x00000321u, 0x00000320u, 0x00000154u, 0x0003003eu, 0x000001acu, 0x00000321u, 0x000200f9u, 0x000002dau, - 0x000200f8u, 0x000002dcu, 0x0004003du, 0x00000008u, 0x00000323u, 0x000001a7u, 0x0004003du, 0x00000008u, - 0x00000324u, 0x000001a9u, 0x00050081u, 0x00000008u, 0x00000325u, 0x00000323u, 0x00000324u, 0x0004003du, - 0x00000008u, 0x00000326u, 0x000001aau, 0x0004003du, 0x00000008u, 0x00000327u, 0x000001abu, 0x00050081u, - 0x00000008u, 0x00000328u, 0x00000326u, 0x00000327u, 0x00050081u, 0x00000008u, 0x00000329u, 0x00000325u, - 0x00000328u, 0x0004003du, 0x00000006u, 0x0000032bu, 0x00000180u, 0x0003003eu, 0x0000032au, 0x0000032bu, - 0x0003003eu, 0x0000032cu, 0x00000329u, 0x00060039u, 0x00000008u, 0x0000032du, 0x00000025u, 0x0000032au, - 0x0000032cu, 0x0003003eu, 0x00000322u, 0x0000032du, 0x0004003du, 0x00000006u, 0x0000032eu, 0x00000180u, - 0x000500abu, 0x00000031u, 0x0000032fu, 0x0000032eu, 0x0000003bu, 0x000300f7u, 0x00000331u, 0x00000000u, - 0x000400fau, 0x0000032fu, 0x00000330u, 0x00000331u, 0x000200f8u, 0x00000330u, 0x000100fdu, 0x000200f8u, - 0x00000331u, 0x000200f9u, 0x00000333u, 0x000200f8u, 0x00000333u, 0x000400f6u, 0x00000335u, 0x00000336u, - 0x00000000u, 0x000200f9u, 0x00000334u, 0x000200f8u, 0x00000334u, 0x000300f7u, 0x0000033au, 0x00000000u, - 0x000400fau, 0x00000338u, 0x00000339u, 0x00000348u, 0x000200f8u, 0x00000339u, 0x00050041u, 0x00000188u, - 0x00000340u, 0x00000187u, 0x0000033fu, 0x0004003du, 0x00000006u, 0x00000341u, 0x00000340u, 0x000500c2u, - 0x00000006u, 0x00000342u, 0x00000341u, 0x0000019eu, 0x0004003du, 0x00000006u, 0x00000343u, 0x00000179u, - 0x00050080u, 0x00000006u, 0x00000344u, 0x00000342u, 0x00000343u, 0x0004003du, 0x00000008u, 0x00000345u, - 0x00000322u, 0x0004007cu, 0x00000006u, 0x00000346u, 0x00000345u, 0x00060041u, 0x000001d0u, 0x00000347u, - 0x0000033eu, 0x000000d8u, 0x00000344u, 0x0003003eu, 0x00000347u, 0x00000346u, 0x000200f9u, 0x0000033au, - 0x000200f8u, 0x00000348u, 0x00050041u, 0x00000188u, 0x0000034du, 0x00000187u, 0x0000033fu, 0x0004003du, - 0x00000006u, 0x0000034eu, 0x0000034du, 0x000500c2u, 0x00000006u, 0x0000034fu, 0x0000034eu, 0x00000085u, - 0x0004003du, 0x00000006u, 0x00000350u, 0x00000179u, 0x00050080u, 0x00000006u, 0x00000351u, 0x0000034fu, - 0x00000350u, 0x0004003du, 0x00000008u, 0x00000353u, 0x00000322u, 0x0003003eu, 0x00000352u, 0x00000353u, - 0x0003003eu, 0x00000354u, 0x00000337u, 0x00060039u, 0x00000006u, 0x00000355u, 0x00000020u, 0x00000352u, - 0x00000354u, 0x00040071u, 0x000001d5u, 0x00000356u, 0x00000355u, 0x00060041u, 0x000001e1u, 0x00000357u, - 0x0000034cu, 0x000000d8u, 0x00000351u, 0x0003003eu, 0x00000357u, 0x00000356u, 0x000200f9u, 0x0000033au, - 0x000200f8u, 0x0000033au, 0x000200f9u, 0x00000336u, 0x000200f8u, 0x00000336u, 0x000400fau, 0x00000358u, - 0x00000333u, 0x00000335u, 0x000200f8u, 0x00000335u, 0x000100fdu, 0x00010038u, 0x00050036u, 0x00000008u, - 0x0000000bu, 0x00000000u, 0x00000009u, 0x00030037u, 0x00000007u, 0x0000000au, 0x000200f8u, 0x0000000cu, - 0x0004003du, 0x00000006u, 0x00000027u, 0x0000000au, 0x000500c4u, 0x00000006u, 0x0000002au, 0x00000027u, - 0x00000029u, 0x0004007cu, 0x00000008u, 0x0000002bu, 0x0000002au, 0x000200feu, 0x0000002bu, 0x00010038u, - 0x00050036u, 0x00000006u, 0x00000010u, 0x00000000u, 0x0000000eu, 0x00030037u, 0x0000000du, 0x0000000fu, - 0x000200f8u, 0x00000011u, 0x0004003bu, 0x00000007u, 0x0000002eu, 0x00000007u, 0x0004003bu, 0x00000007u, - 0x00000047u, 0x00000007u, 0x0004003du, 0x00000008u, 0x0000002fu, 0x0000000fu, 0x0004007cu, 0x00000006u, - 0x00000030u, 0x0000002fu, 0x0003003eu, 0x0000002eu, 0x00000030u, 0x0004003du, 0x00000006u, 0x00000032u, - 0x0000002eu, 0x000500c7u, 0x00000006u, 0x00000034u, 0x00000032u, 0x00000033u, 0x000500aau, 0x00000031u, - 0x00000035u, 0x00000034u, 0x00000033u, 0x000300f7u, 0x00000037u, 0x00000000u, 0x000400fau, 0x00000035u, - 0x00000036u, 0x00000037u, 0x000200f8u, 0x00000036u, 0x0004003du, 0x00000006u, 0x00000038u, 0x0000002eu, - 0x000500c7u, 0x00000006u, 0x0000003au, 0x00000038u, 0x00000039u, 0x000500abu, 0x00000031u, 0x0000003cu, - 0x0000003au, 0x0000003bu, 0x000200f9u, 0x00000037u, 0x000200f8u, 0x00000037u, 0x000700f5u, 0x00000031u, - 0x0000003du, 0x00000035u, 0x00000011u, 0x0000003cu, 0x00000036u, 0x000300f7u, 0x0000003fu, 0x00000000u, - 0x000400fau, 0x0000003du, 0x0000003eu, 0x0000003fu, 0x000200f8u, 0x0000003eu, 0x0004003du, 0x00000006u, - 0x00000040u, 0x0000002eu, 0x000500c2u, 0x00000006u, 0x00000041u, 0x00000040u, 0x00000029u, 0x000500c5u, - 0x00000006u, 0x00000043u, 0x00000041u, 0x00000042u, 0x000500c7u, 0x00000006u, 0x00000045u, 0x00000043u, - 0x00000044u, 0x000200feu, 0x00000045u, 0x000200f8u, 0x0000003fu, 0x0004003du, 0x00000006u, 0x00000049u, - 0x0000002eu, 0x000500c2u, 0x00000006u, 0x0000004au, 0x00000049u, 0x00000029u, 0x000500c7u, 0x00000006u, - 0x0000004cu, 0x0000004au, 0x0000004bu, 0x00050080u, 0x00000006u, 0x0000004du, 0x00000048u, 0x0000004cu, - 0x0003003eu, 0x00000047u, 0x0000004du, 0x0004003du, 0x00000006u, 0x0000004eu, 0x0000002eu, 0x0004003du, - 0x00000006u, 0x0000004fu, 0x00000047u, 0x00050080u, 0x00000006u, 0x00000050u, 0x0000004eu, 0x0000004fu, - 0x000500c2u, 0x00000006u, 0x00000051u, 0x00000050u, 0x00000029u, 0x000500c7u, 0x00000006u, 0x00000052u, - 0x00000051u, 0x00000044u, 0x000200feu, 0x00000052u, 0x00010038u, 0x00050036u, 0x00000008u, 0x00000013u, - 0x00000000u, 0x00000009u, 0x00030037u, 0x00000007u, 0x00000012u, 0x000200f8u, 0x00000014u, 0x0004003bu, - 0x00000007u, 0x00000055u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000005au, 0x00000007u, 0x0004003bu, - 0x00000007u, 0x00000060u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000007bu, 0x00000007u, 0x0004003du, - 0x00000006u, 0x00000056u, 0x00000012u, 0x000500c7u, 0x00000006u, 0x00000058u, 0x00000056u, 0x00000057u, - 0x000500c4u, 0x00000006u, 0x00000059u, 0x00000058u, 0x00000029u, 0x0003003eu, 0x00000055u, 0x00000059u, - 0x0004003du, 0x00000006u, 0x0000005bu, 0x00000012u, 0x000500c2u, 0x00000006u, 0x0000005du, 0x0000005bu, - 0x0000005cu, 0x000500c7u, 0x00000006u, 0x0000005fu, 0x0000005du, 0x0000005eu, 0x0003003eu, 0x0000005au, - 0x0000005fu, 0x0004003du, 0x00000006u, 0x00000061u, 0x00000012u, 0x000500c7u, 0x00000006u, 0x00000063u, - 0x00000061u, 0x00000062u, 0x0003003eu, 0x00000060u, 0x00000063u, 0x0004003du, 0x00000006u, 0x00000064u, - 0x0000005au, 0x000500aau, 0x00000031u, 0x00000065u, 0x00000064u, 0x0000005eu, 0x000300f7u, 0x00000067u, - 0x00000000u, 0x000400fau, 0x00000065u, 0x00000066u, 0x00000067u, 0x000200f8u, 0x00000066u, 0x0004003du, - 0x00000006u, 0x00000068u, 0x00000055u, 0x000500c5u, 0x00000006u, 0x00000069u, 0x00000068u, 0x00000033u, - 0x0004003du, 0x00000006u, 0x0000006au, 0x00000060u, 0x000500c4u, 0x00000006u, 0x0000006cu, 0x0000006au, - 0x0000006bu, 0x000500c5u, 0x00000006u, 0x0000006du, 0x00000069u, 0x0000006cu, 0x0004007cu, 0x00000008u, - 0x0000006eu, 0x0000006du, 0x000200feu, 0x0000006eu, 0x000200f8u, 0x00000067u, 0x0004003du, 0x00000006u, - 0x00000070u, 0x0000005au, 0x000500aau, 0x00000031u, 0x00000071u, 0x00000070u, 0x0000003bu, 0x000300f7u, - 0x00000073u, 0x00000000u, 0x000400fau, 0x00000071u, 0x00000072u, 0x00000073u, 0x000200f8u, 0x00000072u, - 0x0004003du, 0x00000006u, 0x00000074u, 0x00000060u, 0x000500aau, 0x00000031u, 0x00000075u, 0x00000074u, - 0x0000003bu, 0x000300f7u, 0x00000077u, 0x00000000u, 0x000400fau, 0x00000075u, 0x00000076u, 0x00000077u, - 0x000200f8u, 0x00000076u, 0x0004003du, 0x00000006u, 0x00000078u, 0x00000055u, 0x0004007cu, 0x00000008u, - 0x00000079u, 0x00000078u, 0x000200feu, 0x00000079u, 0x000200f8u, 0x00000077u, 0x0003003eu, 0x0000007bu, - 0x0000003bu, 0x000200f9u, 0x0000007cu, 0x000200f8u, 0x0000007cu, 0x000400f6u, 0x0000007eu, 0x0000007fu, - 0x00000000u, 0x000200f9u, 0x00000080u, 0x000200f8u, 0x00000080u, 0x0004003du, 0x00000006u, 0x00000081u, - 0x00000060u, 0x000500c7u, 0x00000006u, 0x00000083u, 0x00000081u, 0x00000082u, 0x000500aau, 0x00000031u, - 0x00000084u, 0x00000083u, 0x0000003bu, 0x000400fau, 0x00000084u, 0x0000007du, 0x0000007eu, 0x000200f8u, - 0x0000007du, 0x0004003du, 0x00000006u, 0x00000086u, 0x00000060u, 0x000500c4u, 0x00000006u, 0x00000087u, - 0x00000086u, 0x00000085u, 0x0003003eu, 0x00000060u, 0x00000087u, 0x0004003du, 0x00000006u, 0x00000088u, - 0x0000007bu, 0x00050080u, 0x00000006u, 0x00000089u, 0x00000088u, 0x0000004bu, 0x0003003eu, 0x0000007bu, - 0x00000089u, 0x000200f9u, 0x0000007fu, 0x000200f8u, 0x0000007fu, 0x000200f9u, 0x0000007cu, 0x000200f8u, - 0x0000007eu, 0x0004003du, 0x00000006u, 0x0000008au, 0x00000060u, 0x000500c7u, 0x00000006u, 0x0000008bu, - 0x0000008au, 0x00000062u, 0x0003003eu, 0x00000060u, 0x0000008bu, 0x0004003du, 0x00000006u, 0x0000008cu, - 0x00000055u, 0x0004003du, 0x00000006u, 0x0000008eu, 0x0000007bu, 0x00050082u, 0x00000006u, 0x0000008fu, - 0x0000008du, 0x0000008eu, 0x000500c4u, 0x00000006u, 0x00000091u, 0x0000008fu, 0x00000090u, 0x000500c5u, - 0x00000006u, 0x00000092u, 0x0000008cu, 0x00000091u, 0x0004003du, 0x00000006u, 0x00000093u, 0x00000060u, - 0x000500c4u, 0x00000006u, 0x00000094u, 0x00000093u, 0x0000006bu, 0x000500c5u, 0x00000006u, 0x00000095u, - 0x00000092u, 0x00000094u, 0x0004007cu, 0x00000008u, 0x00000096u, 0x00000095u, 0x000200feu, 0x00000096u, - 0x000200f8u, 0x00000073u, 0x0004003du, 0x00000006u, 0x00000098u, 0x00000055u, 0x0004003du, 0x00000006u, - 0x00000099u, 0x0000005au, 0x00050080u, 0x00000006u, 0x0000009bu, 0x00000099u, 0x0000009au, 0x000500c4u, - 0x00000006u, 0x0000009cu, 0x0000009bu, 0x00000090u, 0x000500c5u, 0x00000006u, 0x0000009du, 0x00000098u, - 0x0000009cu, 0x0004003du, 0x00000006u, 0x0000009eu, 0x00000060u, 0x000500c4u, 0x00000006u, 0x0000009fu, - 0x0000009eu, 0x0000006bu, 0x000500c5u, 0x00000006u, 0x000000a0u, 0x0000009du, 0x0000009fu, 0x0004007cu, - 0x00000008u, 0x000000a1u, 0x000000a0u, 0x000200feu, 0x000000a1u, 0x00010038u, 0x00050036u, 0x00000006u, - 0x00000016u, 0x00000000u, 0x0000000eu, 0x00030037u, 0x0000000du, 0x00000015u, 0x000200f8u, 0x00000017u, - 0x0004003bu, 0x00000007u, 0x000000a4u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000a7u, 0x00000007u, - 0x0004003bu, 0x00000007u, 0x000000abu, 0x00000007u, 0x0004003bu, 0x000000b0u, 0x000000b1u, 0x00000007u, - 0x0004003bu, 0x00000007u, 0x000000b8u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000c4u, 0x00000007u, - 0x0004003bu, 0x00000007u, 0x000000e6u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000ebu, 0x00000007u, - 0x0004003bu, 0x00000007u, 0x000000efu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000f5u, 0x00000007u, - 0x0004003bu, 0x00000007u, 0x00000111u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000118u, 0x00000007u, - 0x0004003du, 0x00000008u, 0x000000a5u, 0x00000015u, 0x0004007cu, 0x00000006u, 0x000000a6u, 0x000000a5u, - 0x0003003eu, 0x000000a4u, 0x000000a6u, 0x0004003du, 0x00000006u, 0x000000a8u, 0x000000a4u, 0x000500c2u, - 0x00000006u, 0x000000a9u, 0x000000a8u, 0x00000029u, 0x000500c7u, 0x00000006u, 0x000000aau, 0x000000a9u, - 0x00000057u, 0x0003003eu, 0x000000a7u, 0x000000aau, 0x0004003du, 0x00000006u, 0x000000acu, 0x000000a4u, - 0x000500c2u, 0x00000006u, 0x000000adu, 0x000000acu, 0x00000090u, 0x000500c7u, 0x00000006u, 0x000000afu, - 0x000000adu, 0x000000aeu, 0x0003003eu, 0x000000abu, 0x000000afu, 0x0004003du, 0x00000006u, 0x000000b2u, - 0x000000abu, 0x0004007cu, 0x00000028u, 0x000000b3u, 0x000000b2u, 0x00050082u, 0x00000028u, 0x000000b5u, - 0x000000b3u, 0x000000b4u, 0x00050080u, 0x00000028u, 0x000000b7u, 0x000000b5u, 0x000000b6u, 0x0003003eu, - 0x000000b1u, 0x000000b7u, 0x0004003du, 0x00000006u, 0x000000b9u, 0x000000a4u, 0x000500c7u, 0x00000006u, - 0x000000bau, 0x000000b9u, 0x00000039u, 0x0003003eu, 0x000000b8u, 0x000000bau, 0x0004003du, 0x00000006u, - 0x000000bbu, 0x000000abu, 0x000500aau, 0x00000031u, 0x000000bcu, 0x000000bbu, 0x000000aeu, 0x000300f7u, - 0x000000beu, 0x00000000u, 0x000400fau, 0x000000bcu, 0x000000bdu, 0x000000beu, 0x000200f8u, 0x000000bdu, - 0x0004003du, 0x00000006u, 0x000000bfu, 0x000000a7u, 0x000500c5u, 0x00000006u, 0x000000c1u, 0x000000bfu, - 0x000000c0u, 0x0004003du, 0x00000006u, 0x000000c2u, 0x000000b8u, 0x000500abu, 0x00000031u, 0x000000c3u, - 0x000000c2u, 0x0000003bu, 0x000300f7u, 0x000000c6u, 0x00000000u, 0x000400fau, 0x000000c3u, 0x000000c5u, - 0x000000cbu, 0x000200f8u, 0x000000c5u, 0x0004003du, 0x00000006u, 0x000000c8u, 0x000000b8u, 0x000500c2u, - 0x00000006u, 0x000000c9u, 0x000000c8u, 0x0000006bu, 0x000500c5u, 0x00000006u, 0x000000cau, 0x000000c7u, - 0x000000c9u, 0x0003003eu, 0x000000c4u, 0x000000cau, 0x000200f9u, 0x000000c6u, 0x000200f8u, 0x000000cbu, - 0x0003003eu, 0x000000c4u, 0x0000003bu, 0x000200f9u, 0x000000c6u, 0x000200f8u, 0x000000c6u, 0x0004003du, - 0x00000006u, 0x000000ccu, 0x000000c4u, 0x000500c5u, 0x00000006u, 0x000000cdu, 0x000000c1u, 0x000000ccu, - 0x000200feu, 0x000000cdu, 0x000200f8u, 0x000000beu, 0x0004003du, 0x00000028u, 0x000000cfu, 0x000000b1u, - 0x000500afu, 0x00000031u, 0x000000d1u, 0x000000cfu, 0x000000d0u, 0x000300f7u, 0x000000d3u, 0x00000000u, - 0x000400fau, 0x000000d1u, 0x000000d2u, 0x000000d3u, 0x000200f8u, 0x000000d2u, 0x0004003du, 0x00000006u, - 0x000000d4u, 0x000000a7u, 0x000500c5u, 0x00000006u, 0x000000d5u, 0x000000d4u, 0x000000c0u, 0x000200feu, - 0x000000d5u, 0x000200f8u, 0x000000d3u, 0x0004003du, 0x00000028u, 0x000000d7u, 0x000000b1u, 0x000500b3u, - 0x00000031u, 0x000000d9u, 0x000000d7u, 0x000000d8u, 0x000300f7u, 0x000000dbu, 0x00000000u, 0x000400fau, - 0x000000d9u, 0x000000dau, 0x000000dbu, 0x000200f8u, 0x000000dau, 0x0004003du, 0x00000028u, 0x000000dcu, - 0x000000b1u, 0x000500b1u, 0x00000031u, 0x000000deu, 0x000000dcu, 0x000000ddu, 0x000300f7u, 0x000000e0u, - 0x00000000u, 0x000400fau, 0x000000deu, 0x000000dfu, 0x000000e0u, 0x000200f8u, 0x000000dfu, 0x0004003du, - 0x00000006u, 0x000000e1u, 0x000000a7u, 0x000200feu, 0x000000e1u, 0x000200f8u, 0x000000e0u, 0x0004003du, - 0x00000006u, 0x000000e4u, 0x000000b8u, 0x000500c5u, 0x00000006u, 0x000000e5u, 0x000000e4u, 0x000000e3u, - 0x0003003eu, 0x000000b8u, 0x000000e5u, 0x0004003du, 0x00000028u, 0x000000e8u, 0x000000b1u, 0x00050082u, - 0x00000028u, 0x000000e9u, 0x000000e7u, 0x000000e8u, 0x0004007cu, 0x00000006u, 0x000000eau, 0x000000e9u, - 0x0003003eu, 0x000000e6u, 0x000000eau, 0x0004003du, 0x00000006u, 0x000000ecu, 0x000000b8u, 0x0004003du, - 0x00000006u, 0x000000edu, 0x000000e6u, 0x000500c2u, 0x00000006u, 0x000000eeu, 0x000000ecu, 0x000000edu, - 0x0003003eu, 0x000000ebu, 0x000000eeu, 0x0004003du, 0x00000006u, 0x000000f0u, 0x000000b8u, 0x0004003du, - 0x00000006u, 0x000000f1u, 0x000000e6u, 0x000500c4u, 0x00000006u, 0x000000f2u, 0x0000004bu, 0x000000f1u, - 0x00050082u, 0x00000006u, 0x000000f3u, 0x000000f2u, 0x0000004bu, 0x000500c7u, 0x00000006u, 0x000000f4u, - 0x000000f0u, 0x000000f3u, 0x0003003eu, 0x000000efu, 0x000000f4u, 0x0004003du, 0x00000006u, 0x000000f6u, - 0x000000e6u, 0x00050082u, 0x00000006u, 0x000000f7u, 0x000000f6u, 0x0000004bu, 0x000500c4u, 0x00000006u, - 0x000000f8u, 0x0000004bu, 0x000000f7u, 0x0003003eu, 0x000000f5u, 0x000000f8u, 0x0004003du, 0x00000006u, - 0x000000f9u, 0x000000efu, 0x0004003du, 0x00000006u, 0x000000fau, 0x000000f5u, 0x000500acu, 0x00000031u, - 0x000000fbu, 0x000000f9u, 0x000000fau, 0x000400a8u, 0x00000031u, 0x000000fcu, 0x000000fbu, 0x000300f7u, - 0x000000feu, 0x00000000u, 0x000400fau, 0x000000fcu, 0x000000fdu, 0x000000feu, 0x000200f8u, 0x000000fdu, - 0x0004003du, 0x00000006u, 0x000000ffu, 0x000000efu, 0x0004003du, 0x00000006u, 0x00000100u, 0x000000f5u, - 0x000500aau, 0x00000031u, 0x00000101u, 0x000000ffu, 0x00000100u, 0x000300f7u, 0x00000103u, 0x00000000u, - 0x000400fau, 0x00000101u, 0x00000102u, 0x00000103u, 0x000200f8u, 0x00000102u, 0x0004003du, 0x00000006u, - 0x00000104u, 0x000000ebu, 0x000500c7u, 0x00000006u, 0x00000105u, 0x00000104u, 0x0000004bu, 0x000500abu, - 0x00000031u, 0x00000106u, 0x00000105u, 0x0000003bu, 0x000200f9u, 0x00000103u, 0x000200f8u, 0x00000103u, - 0x000700f5u, 0x00000031u, 0x00000107u, 0x00000101u, 0x000000fdu, 0x00000106u, 0x00000102u, 0x000200f9u, - 0x000000feu, 0x000200f8u, 0x000000feu, 0x000700f5u, 0x00000031u, 0x00000108u, 0x000000fbu, 0x000000e0u, - 0x00000107u, 0x00000103u, 0x000300f7u, 0x0000010au, 0x00000000u, 0x000400fau, 0x00000108u, 0x00000109u, - 0x0000010au, 0x000200f8u, 0x00000109u, 0x0004003du, 0x00000006u, 0x0000010bu, 0x000000ebu, 0x00050080u, - 0x00000006u, 0x0000010cu, 0x0000010bu, 0x0000004bu, 0x0003003eu, 0x000000ebu, 0x0000010cu, 0x000200f9u, - 0x0000010au, 0x000200f8u, 0x0000010au, 0x0004003du, 0x00000006u, 0x0000010du, 0x000000a7u, 0x0004003du, - 0x00000006u, 0x0000010eu, 0x000000ebu, 0x000500c5u, 0x00000006u, 0x0000010fu, 0x0000010du, 0x0000010eu, - 0x000200feu, 0x0000010fu, 0x000200f8u, 0x000000dbu, 0x0004003du, 0x00000028u, 0x00000112u, 0x000000b1u, - 0x0004007cu, 0x00000006u, 0x00000113u, 0x00000112u, 0x000500c4u, 0x00000006u, 0x00000114u, 0x00000113u, - 0x0000005cu, 0x0004003du, 0x00000006u, 0x00000115u, 0x000000b8u, 0x000500c2u, 0x00000006u, 0x00000116u, - 0x00000115u, 0x0000006bu, 0x000500c5u, 0x00000006u, 0x00000117u, 0x00000114u, 0x00000116u, 0x0003003eu, - 0x00000111u, 0x00000117u, 0x0004003du, 0x00000006u, 0x00000119u, 0x000000b8u, 0x000500c7u, 0x00000006u, - 0x0000011bu, 0x00000119u, 0x0000011au, 0x0003003eu, 0x00000118u, 0x0000011bu, 0x0004003du, 0x00000006u, - 0x0000011cu, 0x00000118u, 0x000500acu, 0x00000031u, 0x0000011eu, 0x0000011cu, 0x0000011du, 0x000400a8u, - 0x00000031u, 0x0000011fu, 0x0000011eu, 0x000300f7u, 0x00000121u, 0x00000000u, 0x000400fau, 0x0000011fu, - 0x00000120u, 0x00000121u, 0x000200f8u, 0x00000120u, 0x0004003du, 0x00000006u, 0x00000122u, 0x00000118u, - 0x000500aau, 0x00000031u, 0x00000123u, 0x00000122u, 0x0000011du, 0x000300f7u, 0x00000125u, 0x00000000u, - 0x000400fau, 0x00000123u, 0x00000124u, 0x00000125u, 0x000200f8u, 0x00000124u, 0x0004003du, 0x00000006u, - 0x00000126u, 0x00000111u, 0x000500c7u, 0x00000006u, 0x00000127u, 0x00000126u, 0x0000004bu, 0x000500abu, - 0x00000031u, 0x00000128u, 0x00000127u, 0x0000003bu, 0x000200f9u, 0x00000125u, 0x000200f8u, 0x00000125u, - 0x000700f5u, 0x00000031u, 0x00000129u, 0x00000123u, 0x00000120u, 0x00000128u, 0x00000124u, 0x000200f9u, - 0x00000121u, 0x000200f8u, 0x00000121u, 0x000700f5u, 0x00000031u, 0x0000012au, 0x0000011eu, 0x000000dbu, - 0x00000129u, 0x00000125u, 0x000300f7u, 0x0000012cu, 0x00000000u, 0x000400fau, 0x0000012au, 0x0000012bu, - 0x0000012cu, 0x000200f8u, 0x0000012bu, 0x0004003du, 0x00000006u, 0x0000012du, 0x00000111u, 0x00050080u, - 0x00000006u, 0x0000012eu, 0x0000012du, 0x0000004bu, 0x0003003eu, 0x00000111u, 0x0000012eu, 0x000200f9u, - 0x0000012cu, 0x000200f8u, 0x0000012cu, 0x0004003du, 0x00000006u, 0x0000012fu, 0x000000a7u, 0x0004003du, - 0x00000006u, 0x00000130u, 0x00000111u, 0x000500c5u, 0x00000006u, 0x00000131u, 0x0000012fu, 0x00000130u, - 0x000200feu, 0x00000131u, 0x00010038u, 0x00050036u, 0x00000008u, 0x0000001bu, 0x00000000u, 0x00000018u, - 0x00030037u, 0x00000007u, 0x00000019u, 0x00030037u, 0x00000007u, 0x0000001au, 0x000200f8u, 0x0000001cu, - 0x0004003bu, 0x0000000du, 0x00000136u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000139u, 0x00000007u, - 0x0004003bu, 0x00000007u, 0x0000013du, 0x00000007u, 0x0004003du, 0x00000006u, 0x00000134u, 0x0000001au, - 0x000500aau, 0x00000031u, 0x00000135u, 0x00000134u, 0x0000004bu, 0x000300f7u, 0x00000138u, 0x00000000u, - 0x000400fau, 0x00000135u, 0x00000137u, 0x0000013cu, 0x000200f8u, 0x00000137u, 0x0004003du, 0x00000006u, - 0x0000013au, 0x00000019u, 0x0003003eu, 0x00000139u, 0x0000013au, 0x00050039u, 0x00000008u, 0x0000013bu, - 0x00000013u, 0x00000139u, 0x0003003eu, 0x00000136u, 0x0000013bu, 0x000200f9u, 0x00000138u, 0x000200f8u, - 0x0000013cu, 0x0004003du, 0x00000006u, 0x0000013eu, 0x00000019u, 0x0003003eu, 0x0000013du, 0x0000013eu, - 0x00050039u, 0x00000008u, 0x0000013fu, 0x0000000bu, 0x0000013du, 0x0003003eu, 0x00000136u, 0x0000013fu, - 0x000200f9u, 0x00000138u, 0x000200f8u, 0x00000138u, 0x0004003du, 0x00000008u, 0x00000140u, 0x00000136u, - 0x000200feu, 0x00000140u, 0x00010038u, 0x00050036u, 0x00000006u, 0x00000020u, 0x00000000u, 0x0000001du, - 0x00030037u, 0x0000000du, 0x0000001eu, 0x00030037u, 0x00000007u, 0x0000001fu, 0x000200f8u, 0x00000021u, - 0x0004003bu, 0x00000007u, 0x00000145u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000148u, 0x00000007u, - 0x0004003bu, 0x0000000du, 0x0000014cu, 0x00000007u, 0x0004003du, 0x00000006u, 0x00000143u, 0x0000001fu, - 0x000500aau, 0x00000031u, 0x00000144u, 0x00000143u, 0x0000004bu, 0x000300f7u, 0x00000147u, 0x00000000u, - 0x000400fau, 0x00000144u, 0x00000146u, 0x0000014bu, 0x000200f8u, 0x00000146u, 0x0004003du, 0x00000008u, - 0x00000149u, 0x0000001eu, 0x0003003eu, 0x00000148u, 0x00000149u, 0x00050039u, 0x00000006u, 0x0000014au, - 0x00000016u, 0x00000148u, 0x0003003eu, 0x00000145u, 0x0000014au, 0x000200f9u, 0x00000147u, 0x000200f8u, - 0x0000014bu, 0x0004003du, 0x00000008u, 0x0000014du, 0x0000001eu, 0x0003003eu, 0x0000014cu, 0x0000014du, - 0x00050039u, 0x00000006u, 0x0000014eu, 0x00000010u, 0x0000014cu, 0x0003003eu, 0x00000145u, 0x0000014eu, - 0x000200f9u, 0x00000147u, 0x000200f8u, 0x00000147u, 0x0004003du, 0x00000006u, 0x0000014fu, 0x00000145u, - 0x000200feu, 0x0000014fu, 0x00010038u, 0x00050036u, 0x00000008u, 0x00000025u, 0x00000000u, 0x00000022u, - 0x00030037u, 0x00000007u, 0x00000023u, 0x00030037u, 0x0000000du, 0x00000024u, 0x000200f8u, 0x00000026u, - 0x0004003bu, 0x00000007u, 0x0000015cu, 0x00000007u, 0x000400e0u, 0x00000152u, 0x00000152u, 0x00000153u, - 0x0004003du, 0x00000006u, 0x00000158u, 0x00000023u, 0x0004003du, 0x00000008u, 0x00000159u, 0x00000024u, - 0x00050041u, 0x0000015au, 0x0000015bu, 0x00000157u, 0x00000158u, 0x0003003eu, 0x0000015bu, 0x00000159u, - 0x000400e0u, 0x00000152u, 0x00000152u, 0x00000153u, 0x0003003eu, 0x0000015cu, 0x00000042u, 0x000200f9u, - 0x0000015du, 0x000200f8u, 0x0000015du, 0x000400f6u, 0x0000015fu, 0x00000160u, 0x00000000u, 0x000200f9u, - 0x00000161u, 0x000200f8u, 0x00000161u, 0x0004003du, 0x00000006u, 0x00000162u, 0x0000015cu, 0x000500acu, - 0x00000031u, 0x00000163u, 0x00000162u, 0x0000003bu, 0x000400fau, 0x00000163u, 0x0000015eu, 0x0000015fu, - 0x000200f8u, 0x0000015eu, 0x0004003du, 0x00000006u, 0x00000164u, 0x00000023u, 0x0004003du, 0x00000006u, - 0x00000165u, 0x0000015cu, 0x000500b0u, 0x00000031u, 0x00000166u, 0x00000164u, 0x00000165u, 0x000300f7u, - 0x00000168u, 0x00000000u, 0x000400fau, 0x00000166u, 0x00000167u, 0x00000168u, 0x000200f8u, 0x00000167u, - 0x0004003du, 0x00000006u, 0x00000169u, 0x00000023u, 0x0004003du, 0x00000006u, 0x0000016au, 0x00000023u, - 0x0004003du, 0x00000006u, 0x0000016bu, 0x0000015cu, 0x00050080u, 0x00000006u, 0x0000016cu, 0x0000016au, - 0x0000016bu, 0x00050041u, 0x0000015au, 0x0000016du, 0x00000157u, 0x0000016cu, 0x0004003du, 0x00000008u, - 0x0000016eu, 0x0000016du, 0x00050041u, 0x0000015au, 0x0000016fu, 0x00000157u, 0x00000169u, 0x0004003du, - 0x00000008u, 0x00000170u, 0x0000016fu, 0x00050081u, 0x00000008u, 0x00000171u, 0x00000170u, 0x0000016eu, - 0x00050041u, 0x0000015au, 0x00000172u, 0x00000157u, 0x00000169u, 0x0003003eu, 0x00000172u, 0x00000171u, - 0x000200f9u, 0x00000168u, 0x000200f8u, 0x00000168u, 0x000400e0u, 0x00000152u, 0x00000152u, 0x00000153u, - 0x000200f9u, 0x00000160u, 0x000200f8u, 0x00000160u, 0x0004003du, 0x00000006u, 0x00000173u, 0x0000015cu, - 0x000500c2u, 0x00000006u, 0x00000174u, 0x00000173u, 0x00000085u, 0x0003003eu, 0x0000015cu, 0x00000174u, - 0x000200f9u, 0x0000015du, 0x000200f8u, 0x0000015fu, 0x00050041u, 0x0000015au, 0x00000175u, 0x00000157u, - 0x000000d8u, 0x0004003du, 0x00000008u, 0x00000176u, 0x00000175u, 0x000200feu, 0x00000176u, 0x00010038u, + 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x000001adu, + 0x000001b2u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000080u, 0x00000001u, 0x00000001u, 0x00040047u, + 0x000001adu, 0x0000000bu, 0x0000001bu, 0x00040047u, 0x000001b2u, 0x0000000bu, 0x0000001au, 0x00040047u, + 0x000001b5u, 0x00000001u, 0x00000004u, 0x00030047u, 0x000001b8u, 0x00000002u, 0x00050048u, 0x000001b8u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001b8u, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x000001b8u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000001b8u, 0x00000003u, + 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001b8u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, + 0x000001b8u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00040047u, 0x000001fau, 0x00000001u, 0x00000005u, + 0x00040047u, 0x00000209u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00000215u, 0x00000006u, 0x00000008u, + 0x00030047u, 0x00000216u, 0x00000002u, 0x00040048u, 0x00000216u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000216u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000218u, 0x00000018u, 0x00040047u, + 0x00000218u, 0x00000021u, 0x00000006u, 0x00040047u, 0x00000218u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x00000223u, 0x00000001u, 0x00000000u, 0x00040047u, 0x0000025du, 0x00000006u, 0x00000008u, 0x00030047u, + 0x0000025eu, 0x00000002u, 0x00040048u, 0x0000025eu, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000025eu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000260u, 0x00000018u, 0x00040047u, 0x00000260u, + 0x00000021u, 0x00000007u, 0x00040047u, 0x00000260u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000294u, + 0x00000001u, 0x00000001u, 0x00040047u, 0x00000437u, 0x00000006u, 0x00000004u, 0x00030047u, 0x00000438u, + 0x00000002u, 0x00040048u, 0x00000438u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000438u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000043au, 0x00000018u, 0x00040047u, 0x0000043au, 0x00000021u, + 0x00000000u, 0x00040047u, 0x0000043au, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000448u, 0x00000006u, + 0x00000002u, 0x00030047u, 0x00000449u, 0x00000002u, 0x00040048u, 0x00000449u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000449u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000044bu, 0x00000018u, + 0x00040047u, 0x0000044bu, 0x00000021u, 0x00000001u, 0x00040047u, 0x0000044bu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000004c0u, 0x00000006u, 0x00000004u, 0x00030047u, 0x000004c1u, 0x00000002u, 0x00040048u, + 0x000004c1u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000004c1u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000004c3u, 0x00000018u, 0x00040047u, 0x000004c3u, 0x00000021u, 0x00000002u, 0x00040047u, + 0x000004c3u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000004cfu, 0x00000006u, 0x00000002u, 0x00030047u, + 0x000004d0u, 0x00000002u, 0x00040048u, 0x000004d0u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000004d0u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000004d2u, 0x00000018u, 0x00040047u, 0x000004d2u, + 0x00000021u, 0x00000003u, 0x00040047u, 0x000004d2u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000b1du, + 0x00000001u, 0x00000002u, 0x00040047u, 0x00000b21u, 0x00000006u, 0x00000004u, 0x00030047u, 0x00000b22u, + 0x00000002u, 0x00050048u, 0x00000b22u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000b24u, + 0x00000021u, 0x00000004u, 0x00040047u, 0x00000b24u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000b30u, + 0x00000006u, 0x00000002u, 0x00030047u, 0x00000b31u, 0x00000002u, 0x00050048u, 0x00000b31u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00040047u, 0x00000b33u, 0x00000021u, 0x00000005u, 0x00040047u, 0x00000b33u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00000baau, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, + 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040020u, + 0x00000007u, 0x00000007u, 0x00000006u, 0x00030016u, 0x00000008u, 0x00000020u, 0x00040021u, 0x00000009u, + 0x00000008u, 0x00000007u, 0x00040020u, 0x0000000du, 0x00000007u, 0x00000008u, 0x00040021u, 0x0000000eu, + 0x00000006u, 0x0000000du, 0x00050021u, 0x00000018u, 0x00000008u, 0x00000007u, 0x00000007u, 0x00050021u, + 0x0000001du, 0x00000006u, 0x0000000du, 0x00000007u, 0x00040017u, 0x00000022u, 0x00000006u, 0x00000002u, + 0x00040020u, 0x00000023u, 0x00000007u, 0x00000022u, 0x00040017u, 0x00000024u, 0x00000008u, 0x00000004u, + 0x00050021u, 0x00000025u, 0x00000024u, 0x00000023u, 0x00000007u, 0x00040020u, 0x0000002au, 0x00000007u, + 0x00000024u, 0x00060021u, 0x0000002bu, 0x00000008u, 0x00000023u, 0x0000002au, 0x00000007u, 0x00040015u, + 0x00000032u, 0x00000020u, 0x00000001u, 0x0004002bu, 0x00000032u, 0x00000033u, 0x00000010u, 0x00020014u, + 0x0000003bu, 0x0004002bu, 0x00000006u, 0x0000003du, 0x7f800000u, 0x0004002bu, 0x00000006u, 0x00000043u, + 0x007fffffu, 0x0004002bu, 0x00000006u, 0x00000045u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x0000004cu, + 0x00000040u, 0x0004002bu, 0x00000006u, 0x0000004eu, 0x0000ffffu, 0x0004002bu, 0x00000006u, 0x00000052u, + 0x00007fffu, 0x0004002bu, 0x00000006u, 0x00000055u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000061u, + 0x00008000u, 0x0004002bu, 0x00000032u, 0x00000066u, 0x0000000au, 0x0004002bu, 0x00000006u, 0x00000068u, + 0x0000001fu, 0x0004002bu, 0x00000006u, 0x0000006cu, 0x000003ffu, 0x0004002bu, 0x00000032u, 0x00000075u, + 0x0000000du, 0x0004002bu, 0x00000006u, 0x0000008cu, 0x00000400u, 0x0004002bu, 0x00000032u, 0x0000008fu, + 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000097u, 0x00000071u, 0x0004002bu, 0x00000032u, 0x0000009au, + 0x00000017u, 0x0004002bu, 0x00000006u, 0x000000a4u, 0x00000070u, 0x0004002bu, 0x00000006u, 0x000000b8u, + 0x000000ffu, 0x00040020u, 0x000000bau, 0x00000007u, 0x00000032u, 0x0004002bu, 0x00000032u, 0x000000beu, + 0x0000007fu, 0x0004002bu, 0x00000032u, 0x000000c0u, 0x0000000fu, 0x0004002bu, 0x00000006u, 0x000000cau, + 0x00007c00u, 0x0004002bu, 0x00000006u, 0x000000d1u, 0x00000200u, 0x0004002bu, 0x00000032u, 0x000000dau, + 0x0000001fu, 0x0004002bu, 0x00000032u, 0x000000e2u, 0x00000000u, 0x0004002bu, 0x00000032u, 0x000000e7u, + 0xfffffff6u, 0x0004002bu, 0x00000006u, 0x000000edu, 0x00800000u, 0x0004002bu, 0x00000032u, 0x000000f1u, + 0x0000000eu, 0x0004002bu, 0x00000006u, 0x00000124u, 0x00001fffu, 0x0004002bu, 0x00000006u, 0x00000127u, + 0x00001000u, 0x0004002bu, 0x00000006u, 0x00000190u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x0000019bu, + 0x00000003u, 0x00040017u, 0x000001abu, 0x00000006u, 0x00000003u, 0x00040020u, 0x000001acu, 0x00000001u, + 0x000001abu, 0x0004003bu, 0x000001acu, 0x000001adu, 0x00000001u, 0x00040020u, 0x000001aeu, 0x00000001u, + 0x00000006u, 0x0004003bu, 0x000001acu, 0x000001b2u, 0x00000001u, 0x00040032u, 0x00000006u, 0x000001b5u, + 0x00000001u, 0x0008001eu, 0x000001b8u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00040020u, 0x000001b9u, 0x00000009u, 0x000001b8u, 0x0004003bu, 0x000001b9u, 0x000001bau, + 0x00000009u, 0x00040020u, 0x000001bbu, 0x00000009u, 0x00000006u, 0x0004002bu, 0x00000032u, 0x000001d1u, + 0x00000002u, 0x0004002bu, 0x00000008u, 0x000001eau, 0x00000000u, 0x00040032u, 0x00000006u, 0x000001fau, + 0x00000000u, 0x00060034u, 0x0000003bu, 0x000001fbu, 0x000000aau, 0x000001fau, 0x00000190u, 0x00040032u, + 0x00000006u, 0x00000209u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x0000020au, 0x00000004u, 0x00060034u, + 0x0000003bu, 0x0000020bu, 0x000000aau, 0x00000209u, 0x0000020au, 0x0004002bu, 0x00000006u, 0x0000020fu, + 0x00000180u, 0x0003001du, 0x00000215u, 0x00000022u, 0x0003001eu, 0x00000216u, 0x00000215u, 0x00040020u, + 0x00000217u, 0x0000000cu, 0x00000216u, 0x0004003bu, 0x00000217u, 0x00000218u, 0x0000000cu, 0x0004002bu, + 0x00000032u, 0x00000219u, 0x00000003u, 0x00040032u, 0x00000006u, 0x00000223u, 0x00000000u, 0x00040020u, + 0x00000225u, 0x0000000cu, 0x00000022u, 0x0004002bu, 0x00000006u, 0x00000230u, 0x00000080u, 0x0004002bu, + 0x00000006u, 0x00000241u, 0x00000100u, 0x0003001du, 0x0000025du, 0x00000022u, 0x0003001eu, 0x0000025eu, + 0x0000025du, 0x00040020u, 0x0000025fu, 0x0000000cu, 0x0000025eu, 0x0004003bu, 0x0000025fu, 0x00000260u, + 0x0000000cu, 0x0004002bu, 0x00000032u, 0x00000261u, 0x00000004u, 0x00040032u, 0x00000006u, 0x00000294u, + 0x00000000u, 0x00060034u, 0x0000003bu, 0x000002b5u, 0x000000aeu, 0x000001b5u, 0x00000190u, 0x00060034u, + 0x0000003bu, 0x0000030bu, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, 0x00000006u, 0x000003b4u, + 0x00000084u, 0x00000230u, 0x00000209u, 0x00060034u, 0x0000003bu, 0x000003e0u, 0x000000aeu, 0x000001b5u, + 0x00000190u, 0x00060034u, 0x0000003bu, 0x000003f5u, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, + 0x0000003bu, 0x0000041fu, 0x000000aau, 0x000001fau, 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000429u, + 0x000000aau, 0x00000209u, 0x0000020au, 0x00060034u, 0x0000003bu, 0x00000433u, 0x000000aau, 0x00000223u, + 0x00000045u, 0x0003001du, 0x00000437u, 0x00000006u, 0x0003001eu, 0x00000438u, 0x00000437u, 0x00040020u, + 0x00000439u, 0x0000000cu, 0x00000438u, 0x0004003bu, 0x00000439u, 0x0000043au, 0x0000000cu, 0x00040020u, + 0x00000442u, 0x0000000cu, 0x00000006u, 0x00040015u, 0x00000447u, 0x00000010u, 0x00000000u, 0x0003001du, + 0x00000448u, 0x00000447u, 0x0003001eu, 0x00000449u, 0x00000448u, 0x00040020u, 0x0000044au, 0x0000000cu, + 0x00000449u, 0x0004003bu, 0x0000044au, 0x0000044bu, 0x0000000cu, 0x00040020u, 0x00000453u, 0x0000000cu, + 0x00000447u, 0x00060034u, 0x0000003bu, 0x0000045cu, 0x000000aau, 0x00000223u, 0x00000045u, 0x00060034u, + 0x0000003bu, 0x0000047cu, 0x000000aau, 0x00000223u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x0000049cu, + 0x000000aau, 0x00000223u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x000004bcu, 0x000000aau, 0x00000294u, + 0x00000045u, 0x0003001du, 0x000004c0u, 0x00000006u, 0x0003001eu, 0x000004c1u, 0x000004c0u, 0x00040020u, + 0x000004c2u, 0x0000000cu, 0x000004c1u, 0x0004003bu, 0x000004c2u, 0x000004c3u, 0x0000000cu, 0x0003001du, + 0x000004cfu, 0x00000447u, 0x0003001eu, 0x000004d0u, 0x000004cfu, 0x00040020u, 0x000004d1u, 0x0000000cu, + 0x000004d0u, 0x0004003bu, 0x000004d1u, 0x000004d2u, 0x0000000cu, 0x00060034u, 0x0000003bu, 0x000004e5u, + 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000508u, 0x000000aau, 0x00000294u, + 0x00000045u, 0x00060034u, 0x0000003bu, 0x0000052bu, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, + 0x0000003bu, 0x0000054du, 0x000000aeu, 0x000001b5u, 0x00000190u, 0x00060034u, 0x0000003bu, 0x00000551u, + 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000572u, 0x000000aau, 0x00000294u, + 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000595u, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, + 0x0000003bu, 0x000005b8u, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x000005dau, + 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, 0x0000003bu, 0x000005deu, 0x000000aau, 0x00000294u, + 0x00000045u, 0x00060034u, 0x0000003bu, 0x000005ffu, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, + 0x0000003bu, 0x00000622u, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000645u, + 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000668u, 0x000000aau, 0x00000294u, + 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000689u, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, + 0x0000003bu, 0x000006acu, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x000006cfu, + 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x00000006u, 0x000006f1u, 0x00000084u, 0x00000230u, + 0x00000209u, 0x00060034u, 0x0000003bu, 0x000006feu, 0x000000aau, 0x00000223u, 0x00000045u, 0x00060034u, + 0x0000003bu, 0x0000071cu, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x0000073cu, + 0x000000aeu, 0x000001b5u, 0x00000190u, 0x00060034u, 0x0000003bu, 0x00000740u, 0x000000aau, 0x00000294u, + 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000760u, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, + 0x0000003bu, 0x00000764u, 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x00000785u, + 0x000000aau, 0x00000294u, 0x00000045u, 0x00060034u, 0x0000003bu, 0x000007b3u, 0x000000aau, 0x00000209u, + 0x0000020au, 0x00060034u, 0x0000003bu, 0x00000895u, 0x000000aeu, 0x000001b5u, 0x00000190u, 0x00060034u, + 0x0000003bu, 0x0000090fu, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, 0x00000006u, 0x00000a00u, + 0x00000084u, 0x00000230u, 0x00000209u, 0x00060034u, 0x0000003bu, 0x00000a40u, 0x000000aeu, 0x000001b5u, + 0x00000190u, 0x00060034u, 0x0000003bu, 0x00000a60u, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x0004002bu, + 0x00000006u, 0x00000a9fu, 0x00000108u, 0x0004001cu, 0x00000aa0u, 0x00000008u, 0x000000d1u, 0x00040020u, + 0x00000aa1u, 0x00000004u, 0x00000aa0u, 0x0004003bu, 0x00000aa1u, 0x00000aa2u, 0x00000004u, 0x00040020u, + 0x00000aabu, 0x00000004u, 0x00000008u, 0x00060034u, 0x0000003bu, 0x00000aadu, 0x000000aeu, 0x000001b5u, + 0x00000190u, 0x00060034u, 0x0000003bu, 0x00000abau, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, + 0x0000003bu, 0x00000ae8u, 0x000000aeu, 0x000001b5u, 0x00000190u, 0x00060034u, 0x0000003bu, 0x00000af7u, + 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00040032u, 0x00000006u, 0x00000b1du, 0x00000000u, 0x00060034u, + 0x0000003bu, 0x00000b1eu, 0x000000aau, 0x00000b1du, 0x00000045u, 0x0003001du, 0x00000b21u, 0x00000006u, + 0x0003001eu, 0x00000b22u, 0x00000b21u, 0x00040020u, 0x00000b23u, 0x0000000cu, 0x00000b22u, 0x0004003bu, + 0x00000b23u, 0x00000b24u, 0x0000000cu, 0x0004002bu, 0x00000032u, 0x00000b25u, 0x00000005u, 0x0003001du, + 0x00000b30u, 0x00000447u, 0x0003001eu, 0x00000b31u, 0x00000b30u, 0x00040020u, 0x00000b32u, 0x0000000cu, + 0x00000b31u, 0x0004003bu, 0x00000b32u, 0x00000b33u, 0x0000000cu, 0x0003002au, 0x0000003bu, 0x00000b40u, + 0x00060034u, 0x0000003bu, 0x00000b41u, 0x000000aeu, 0x000001b5u, 0x00000190u, 0x00060034u, 0x0000003bu, + 0x00000b48u, 0x000000aau, 0x00000b1du, 0x00000045u, 0x0004002bu, 0x00000032u, 0x00000b51u, 0x00000080u, + 0x00060034u, 0x0000003bu, 0x00000b64u, 0x000000aeu, 0x000001b5u, 0x0000020au, 0x00060034u, 0x0000003bu, + 0x00000b6bu, 0x000000aau, 0x00000b1du, 0x00000045u, 0x0004002bu, 0x00000032u, 0x00000b74u, 0x00000100u, + 0x00060034u, 0x0000003bu, 0x00000b8bu, 0x000000aau, 0x00000b1du, 0x00000045u, 0x0004002bu, 0x00000032u, + 0x00000b94u, 0x00000180u, 0x0004001cu, 0x00000ba7u, 0x00000008u, 0x00000230u, 0x00040020u, 0x00000ba8u, + 0x00000004u, 0x00000ba7u, 0x0004003bu, 0x00000ba8u, 0x00000ba9u, 0x00000004u, 0x0006002cu, 0x000001abu, + 0x00000baau, 0x00000230u, 0x00000055u, 0x00000055u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, + 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003bu, 0x00000007u, 0x000001aau, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000001b1u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001c5u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000001cau, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001cfu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000001d5u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001dau, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000001dfu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001e4u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001e9u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001ebu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001ecu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001edu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001eeu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001efu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001f0u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001f1u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001f2u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001f3u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001f4u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001f5u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001f6u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001f7u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000001f8u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000001f9u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000001feu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000202u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x00000214u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000224u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000228u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x0000022au, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000236u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000239u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x0000023bu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000247u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000024au, 0x00000007u, 0x0004003bu, 0x0000002au, 0x0000024cu, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000257u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000025au, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x0000025cu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x0000026du, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x0000027au, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000287u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000295u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x00000297u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000299u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x0000029du, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x0000029fu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000002a1u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000002a5u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x000002a7u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000002a9u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000002adu, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x000002afu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000002b1u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000002b8u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000002c4u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000002d1u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000002deu, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000002ebu, 0x00000007u, 0x0004003bu, 0x0000002au, 0x000002edu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000002efu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000002f3u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x000002f5u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000002f7u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000002fbu, 0x00000007u, 0x0004003bu, 0x0000002au, 0x000002fdu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000002ffu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000303u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x00000305u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000307u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x0000030eu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x0000031au, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000327u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000334u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000341u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x00000343u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000345u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000349u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x0000034bu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000034du, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000351u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x00000353u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000355u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000359u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x0000035bu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000035du, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000361u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x0000036du, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x0000037au, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000387u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000394u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x00000396u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000398u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x0000039cu, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x0000039eu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000003a0u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000003a4u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x000003a6u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000003a8u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000003acu, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x000003aeu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000003b0u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x000003bfu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000003c9u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000003ccu, 0x00000007u, 0x0004003bu, 0x00000023u, 0x000003d7u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x000003dau, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000003dcu, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x000003ecu, 0x00000007u, 0x0004003bu, 0x0000002au, 0x000003efu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000003f1u, 0x00000007u, 0x0004003bu, 0x00000023u, 0x00000401u, 0x00000007u, 0x0004003bu, + 0x0000002au, 0x00000404u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000406u, 0x00000007u, 0x0004003bu, + 0x00000023u, 0x00000413u, 0x00000007u, 0x0004003bu, 0x0000002au, 0x00000416u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000418u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000422u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000432u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000434u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000457u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000458u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x0000045bu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000045du, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000477u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000478u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x0000047bu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000047du, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000497u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000498u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x0000049bu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000049du, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000004b7u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000004b8u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000004bdu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000004ddu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000004deu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000004e6u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000500u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000501u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000509u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000523u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000524u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000052cu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000546u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000547u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000552u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000056au, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000056bu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000573u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000058du, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000058eu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000596u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000005b0u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000005b1u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000005b9u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000005d3u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000005d4u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000005dfu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000005f7u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000005f8u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000600u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000061au, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000061bu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000623u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000063du, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000063eu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000646u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000660u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000661u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000669u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000681u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000682u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000068au, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000006a4u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000006a5u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000006adu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000006c7u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000006c8u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000006d0u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000006eau, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000006ebu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000006fdu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000006ffu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000717u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000718u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x0000071du, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000735u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000736u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000741u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000759u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000075au, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000765u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000077du, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000077eu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000786u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000079eu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000079fu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000007a8u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000007acu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000007bbu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000007c7u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000007d4u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000007e1u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000007eeu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000007f1u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000007f2u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x000007f4u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000007f7u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000007f8u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x000007fau, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000007fdu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000007feu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000800u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000803u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000804u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000806u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000809u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000080au, 0x00000007u, 0x0004003bu, 0x0000000du, 0x0000080cu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000080fu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000810u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000812u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000815u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000816u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000818u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000081bu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000081cu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000081eu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000082au, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000837u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000844u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000854u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000855u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000085bu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000085cu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000865u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000866u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000086cu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000086du, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000876u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000877u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000087du, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000087eu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000887u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000888u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000088eu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000088fu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000898u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008a4u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008b1u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008beu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008ceu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008cfu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008d5u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008d6u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008dfu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008e0u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008e6u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008e7u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008f0u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008f1u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000008f7u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000008f8u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000901u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000902u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000908u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000909u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000912u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000091eu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000092bu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000938u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000948u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000949u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000094fu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000950u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000959u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000095au, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000960u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000961u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000096au, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000096bu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000971u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000972u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000097bu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000097cu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000982u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000983u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000989u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000995u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009a2u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009afu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009bfu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009c0u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009c6u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009c7u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009d0u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009d1u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009d7u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009d8u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009e1u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009e2u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009e8u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009e9u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009f2u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009f3u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000009f9u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000009fau, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a0bu, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000a17u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a1au, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a1bu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000a1du, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a20u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a21u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a23u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a32u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a33u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a39u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a3au, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a43u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a52u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a53u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a59u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a5au, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a63u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a6fu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a7eu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a7fu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a85u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a86u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a8fu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a90u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000a96u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000a97u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000ad1u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000b39u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000b3cu, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000b5du, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000b60u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000b80u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000b83u, 0x00000007u, 0x0004003bu, + 0x0000000du, 0x00000ba0u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000ba3u, 0x00000007u, 0x00050041u, + 0x000001aeu, 0x000001afu, 0x000001adu, 0x00000045u, 0x0004003du, 0x00000006u, 0x000001b0u, 0x000001afu, + 0x0003003eu, 0x000001aau, 0x000001b0u, 0x00050041u, 0x000001aeu, 0x000001b3u, 0x000001b2u, 0x00000045u, + 0x0004003du, 0x00000006u, 0x000001b4u, 0x000001b3u, 0x00050084u, 0x00000006u, 0x000001b6u, 0x000001b4u, + 0x000001b5u, 0x0003003eu, 0x000001b1u, 0x000001b6u, 0x0004003du, 0x00000006u, 0x000001b7u, 0x000001b1u, + 0x00050041u, 0x000001bbu, 0x000001bcu, 0x000001bau, 0x000000e2u, 0x0004003du, 0x00000006u, 0x000001bdu, + 0x000001bcu, 0x00050041u, 0x000001bbu, 0x000001beu, 0x000001bau, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x000001bfu, 0x000001beu, 0x00050084u, 0x00000006u, 0x000001c0u, 0x000001bdu, 0x000001bfu, 0x000500aeu, + 0x0000003bu, 0x000001c1u, 0x000001b7u, 0x000001c0u, 0x000300f7u, 0x000001c3u, 0x00000000u, 0x000400fau, + 0x000001c1u, 0x000001c2u, 0x000001c3u, 0x000200f8u, 0x000001c2u, 0x000100fdu, 0x000200f8u, 0x000001c3u, + 0x0004003du, 0x00000006u, 0x000001c6u, 0x000001b1u, 0x00050041u, 0x000001bbu, 0x000001c7u, 0x000001bau, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x000001c8u, 0x000001c7u, 0x00050086u, 0x00000006u, 0x000001c9u, + 0x000001c6u, 0x000001c8u, 0x0003003eu, 0x000001c5u, 0x000001c9u, 0x0004003du, 0x00000006u, 0x000001cbu, + 0x000001b1u, 0x00050041u, 0x000001bbu, 0x000001ccu, 0x000001bau, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x000001cdu, 0x000001ccu, 0x00050089u, 0x00000006u, 0x000001ceu, 0x000001cbu, 0x000001cdu, 0x0003003eu, + 0x000001cau, 0x000001ceu, 0x0004003du, 0x00000006u, 0x000001d0u, 0x000001c5u, 0x00050041u, 0x000001bbu, + 0x000001d2u, 0x000001bau, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000001d3u, 0x000001d2u, 0x00050084u, + 0x00000006u, 0x000001d4u, 0x000001d0u, 0x000001d3u, 0x0003003eu, 0x000001cfu, 0x000001d4u, 0x0004003du, + 0x00000006u, 0x000001d6u, 0x000001cau, 0x00050041u, 0x000001bbu, 0x000001d7u, 0x000001bau, 0x000001d1u, + 0x0004003du, 0x00000006u, 0x000001d8u, 0x000001d7u, 0x00050084u, 0x00000006u, 0x000001d9u, 0x000001d6u, + 0x000001d8u, 0x0003003eu, 0x000001d5u, 0x000001d9u, 0x0004003du, 0x00000006u, 0x000001dbu, 0x000001d5u, + 0x00050041u, 0x000001bbu, 0x000001dcu, 0x000001bau, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000001ddu, + 0x000001dcu, 0x00050080u, 0x00000006u, 0x000001deu, 0x000001dbu, 0x000001ddu, 0x0003003eu, 0x000001dau, + 0x000001deu, 0x0004003du, 0x00000006u, 0x000001e0u, 0x000001dau, 0x00050041u, 0x000001bbu, 0x000001e1u, + 0x000001bau, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000001e2u, 0x000001e1u, 0x00050080u, 0x00000006u, + 0x000001e3u, 0x000001e0u, 0x000001e2u, 0x0003003eu, 0x000001dfu, 0x000001e3u, 0x0004003du, 0x00000006u, + 0x000001e5u, 0x000001dfu, 0x00050041u, 0x000001bbu, 0x000001e6u, 0x000001bau, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x000001e7u, 0x000001e6u, 0x00050080u, 0x00000006u, 0x000001e8u, 0x000001e5u, 0x000001e7u, + 0x0003003eu, 0x000001e4u, 0x000001e8u, 0x0003003eu, 0x000001e9u, 0x000001eau, 0x0003003eu, 0x000001ebu, + 0x000001eau, 0x0003003eu, 0x000001ecu, 0x000001eau, 0x0003003eu, 0x000001edu, 0x000001eau, 0x0003003eu, + 0x000001eeu, 0x000001eau, 0x0003003eu, 0x000001efu, 0x000001eau, 0x0003003eu, 0x000001f0u, 0x000001eau, + 0x0003003eu, 0x000001f1u, 0x000001eau, 0x0003003eu, 0x000001f2u, 0x000001eau, 0x0003003eu, 0x000001f3u, + 0x000001eau, 0x0003003eu, 0x000001f4u, 0x000001eau, 0x0003003eu, 0x000001f5u, 0x000001eau, 0x0003003eu, + 0x000001f6u, 0x000001eau, 0x0003003eu, 0x000001f7u, 0x000001eau, 0x0003003eu, 0x000001f8u, 0x000001eau, + 0x0003003eu, 0x000001f9u, 0x000001eau, 0x000300f7u, 0x000001fdu, 0x00000000u, 0x000400fau, 0x000001fbu, + 0x000001fcu, 0x0000041eu, 0x000200f8u, 0x000001fcu, 0x00050041u, 0x000001bbu, 0x000001ffu, 0x000001bau, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000200u, 0x000001ffu, 0x000500c2u, 0x00000006u, 0x00000201u, + 0x00000200u, 0x000001d1u, 0x0003003eu, 0x000001feu, 0x00000201u, 0x0004003du, 0x00000006u, 0x00000203u, + 0x000001aau, 0x0003003eu, 0x00000202u, 0x00000203u, 0x000200f9u, 0x00000204u, 0x000200f8u, 0x00000204u, + 0x000400f6u, 0x00000206u, 0x00000207u, 0x00000000u, 0x000200f9u, 0x00000208u, 0x000200f8u, 0x00000208u, + 0x000300f7u, 0x0000020du, 0x00000000u, 0x000400fau, 0x0000020bu, 0x0000020cu, 0x0000020du, 0x000200f8u, + 0x0000020cu, 0x0004003du, 0x00000006u, 0x0000020eu, 0x00000202u, 0x00050080u, 0x00000006u, 0x00000210u, + 0x0000020eu, 0x0000020fu, 0x0004003du, 0x00000006u, 0x00000211u, 0x000001feu, 0x000500b0u, 0x0000003bu, + 0x00000212u, 0x00000210u, 0x00000211u, 0x000200f9u, 0x0000020du, 0x000200f8u, 0x0000020du, 0x000700f5u, + 0x0000003bu, 0x00000213u, 0x0000020bu, 0x00000208u, 0x00000212u, 0x0000020cu, 0x000400fau, 0x00000213u, + 0x00000205u, 0x00000206u, 0x000200f8u, 0x00000205u, 0x00050041u, 0x000001bbu, 0x0000021au, 0x000001bau, + 0x00000219u, 0x0004003du, 0x00000006u, 0x0000021bu, 0x0000021au, 0x000500c2u, 0x00000006u, 0x0000021cu, + 0x0000021bu, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000021du, 0x000001cfu, 0x0004003du, 0x00000006u, + 0x0000021eu, 0x00000202u, 0x000500c4u, 0x00000006u, 0x0000021fu, 0x0000021eu, 0x000001d1u, 0x00050080u, + 0x00000006u, 0x00000220u, 0x0000021du, 0x0000021fu, 0x000500c2u, 0x00000006u, 0x00000221u, 0x00000220u, + 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000222u, 0x0000021cu, 0x00000221u, 0x00060041u, 0x00000225u, + 0x00000226u, 0x00000218u, 0x000000e2u, 0x00000222u, 0x0004003du, 0x00000022u, 0x00000227u, 0x00000226u, + 0x0003003eu, 0x00000224u, 0x00000227u, 0x0003003eu, 0x00000228u, 0x00000223u, 0x00060039u, 0x00000024u, + 0x00000229u, 0x00000028u, 0x00000224u, 0x00000228u, 0x0003003eu, 0x00000214u, 0x00000229u, 0x00050041u, + 0x000001bbu, 0x0000022bu, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000022cu, 0x0000022bu, + 0x000500c2u, 0x00000006u, 0x0000022du, 0x0000022cu, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000022eu, + 0x000001cfu, 0x0004003du, 0x00000006u, 0x0000022fu, 0x00000202u, 0x00050080u, 0x00000006u, 0x00000231u, + 0x0000022fu, 0x00000230u, 0x000500c4u, 0x00000006u, 0x00000232u, 0x00000231u, 0x000001d1u, 0x00050080u, + 0x00000006u, 0x00000233u, 0x0000022eu, 0x00000232u, 0x000500c2u, 0x00000006u, 0x00000234u, 0x00000233u, + 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000235u, 0x0000022du, 0x00000234u, 0x00060041u, 0x00000225u, + 0x00000237u, 0x00000218u, 0x000000e2u, 0x00000235u, 0x0004003du, 0x00000022u, 0x00000238u, 0x00000237u, + 0x0003003eu, 0x00000236u, 0x00000238u, 0x0003003eu, 0x00000239u, 0x00000223u, 0x00060039u, 0x00000024u, + 0x0000023au, 0x00000028u, 0x00000236u, 0x00000239u, 0x0003003eu, 0x0000022au, 0x0000023au, 0x00050041u, + 0x000001bbu, 0x0000023cu, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000023du, 0x0000023cu, + 0x000500c2u, 0x00000006u, 0x0000023eu, 0x0000023du, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000023fu, + 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000240u, 0x00000202u, 0x00050080u, 0x00000006u, 0x00000242u, + 0x00000240u, 0x00000241u, 0x000500c4u, 0x00000006u, 0x00000243u, 0x00000242u, 0x000001d1u, 0x00050080u, + 0x00000006u, 0x00000244u, 0x0000023fu, 0x00000243u, 0x000500c2u, 0x00000006u, 0x00000245u, 0x00000244u, + 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000246u, 0x0000023eu, 0x00000245u, 0x00060041u, 0x00000225u, + 0x00000248u, 0x00000218u, 0x000000e2u, 0x00000246u, 0x0004003du, 0x00000022u, 0x00000249u, 0x00000248u, + 0x0003003eu, 0x00000247u, 0x00000249u, 0x0003003eu, 0x0000024au, 0x00000223u, 0x00060039u, 0x00000024u, + 0x0000024bu, 0x00000028u, 0x00000247u, 0x0000024au, 0x0003003eu, 0x0000023bu, 0x0000024bu, 0x00050041u, + 0x000001bbu, 0x0000024du, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000024eu, 0x0000024du, + 0x000500c2u, 0x00000006u, 0x0000024fu, 0x0000024eu, 0x00000219u, 0x0004003du, 0x00000006u, 0x00000250u, + 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000251u, 0x00000202u, 0x00050080u, 0x00000006u, 0x00000252u, + 0x00000251u, 0x0000020fu, 0x000500c4u, 0x00000006u, 0x00000253u, 0x00000252u, 0x000001d1u, 0x00050080u, + 0x00000006u, 0x00000254u, 0x00000250u, 0x00000253u, 0x000500c2u, 0x00000006u, 0x00000255u, 0x00000254u, + 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000256u, 0x0000024fu, 0x00000255u, 0x00060041u, 0x00000225u, + 0x00000258u, 0x00000218u, 0x000000e2u, 0x00000256u, 0x0004003du, 0x00000022u, 0x00000259u, 0x00000258u, + 0x0003003eu, 0x00000257u, 0x00000259u, 0x0003003eu, 0x0000025au, 0x00000223u, 0x00060039u, 0x00000024u, + 0x0000025bu, 0x00000028u, 0x00000257u, 0x0000025au, 0x0003003eu, 0x0000024cu, 0x0000025bu, 0x00050041u, + 0x000001bbu, 0x00000262u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000263u, 0x00000262u, + 0x000500c2u, 0x00000006u, 0x00000264u, 0x00000263u, 0x00000219u, 0x0004003du, 0x00000006u, 0x00000265u, + 0x000001d5u, 0x0004003du, 0x00000006u, 0x00000266u, 0x00000202u, 0x000500c4u, 0x00000006u, 0x00000267u, + 0x00000266u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000268u, 0x00000265u, 0x00000267u, 0x000500c2u, + 0x00000006u, 0x00000269u, 0x00000268u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x0000026au, 0x00000264u, + 0x00000269u, 0x00060041u, 0x00000225u, 0x0000026bu, 0x00000260u, 0x000000e2u, 0x0000026au, 0x0004003du, + 0x00000022u, 0x0000026cu, 0x0000026bu, 0x0003003eu, 0x0000025cu, 0x0000026cu, 0x00050041u, 0x000001bbu, + 0x0000026eu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000026fu, 0x0000026eu, 0x000500c2u, + 0x00000006u, 0x00000270u, 0x0000026fu, 0x00000219u, 0x0004003du, 0x00000006u, 0x00000271u, 0x000001d5u, + 0x0004003du, 0x00000006u, 0x00000272u, 0x00000202u, 0x00050080u, 0x00000006u, 0x00000273u, 0x00000272u, + 0x00000230u, 0x000500c4u, 0x00000006u, 0x00000274u, 0x00000273u, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x00000275u, 0x00000271u, 0x00000274u, 0x000500c2u, 0x00000006u, 0x00000276u, 0x00000275u, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x00000277u, 0x00000270u, 0x00000276u, 0x00060041u, 0x00000225u, 0x00000278u, + 0x00000260u, 0x000000e2u, 0x00000277u, 0x0004003du, 0x00000022u, 0x00000279u, 0x00000278u, 0x0003003eu, + 0x0000026du, 0x00000279u, 0x00050041u, 0x000001bbu, 0x0000027bu, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x0000027cu, 0x0000027bu, 0x000500c2u, 0x00000006u, 0x0000027du, 0x0000027cu, 0x00000219u, + 0x0004003du, 0x00000006u, 0x0000027eu, 0x000001d5u, 0x0004003du, 0x00000006u, 0x0000027fu, 0x00000202u, + 0x00050080u, 0x00000006u, 0x00000280u, 0x0000027fu, 0x00000241u, 0x000500c4u, 0x00000006u, 0x00000281u, + 0x00000280u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000282u, 0x0000027eu, 0x00000281u, 0x000500c2u, + 0x00000006u, 0x00000283u, 0x00000282u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000284u, 0x0000027du, + 0x00000283u, 0x00060041u, 0x00000225u, 0x00000285u, 0x00000260u, 0x000000e2u, 0x00000284u, 0x0004003du, + 0x00000022u, 0x00000286u, 0x00000285u, 0x0003003eu, 0x0000027au, 0x00000286u, 0x00050041u, 0x000001bbu, + 0x00000288u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000289u, 0x00000288u, 0x000500c2u, + 0x00000006u, 0x0000028au, 0x00000289u, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000028bu, 0x000001d5u, + 0x0004003du, 0x00000006u, 0x0000028cu, 0x00000202u, 0x00050080u, 0x00000006u, 0x0000028du, 0x0000028cu, + 0x0000020fu, 0x000500c4u, 0x00000006u, 0x0000028eu, 0x0000028du, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x0000028fu, 0x0000028bu, 0x0000028eu, 0x000500c2u, 0x00000006u, 0x00000290u, 0x0000028fu, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x00000291u, 0x0000028au, 0x00000290u, 0x00060041u, 0x00000225u, 0x00000292u, + 0x00000260u, 0x000000e2u, 0x00000291u, 0x0004003du, 0x00000022u, 0x00000293u, 0x00000292u, 0x0003003eu, + 0x00000287u, 0x00000293u, 0x0004003du, 0x00000022u, 0x00000296u, 0x0000025cu, 0x0003003eu, 0x00000295u, + 0x00000296u, 0x0004003du, 0x00000024u, 0x00000298u, 0x00000214u, 0x0003003eu, 0x00000297u, 0x00000298u, + 0x0003003eu, 0x00000299u, 0x00000294u, 0x00070039u, 0x00000008u, 0x0000029au, 0x0000002fu, 0x00000295u, + 0x00000297u, 0x00000299u, 0x0004003du, 0x00000008u, 0x0000029bu, 0x000001e9u, 0x00050081u, 0x00000008u, + 0x0000029cu, 0x0000029bu, 0x0000029au, 0x0003003eu, 0x000001e9u, 0x0000029cu, 0x0004003du, 0x00000022u, + 0x0000029eu, 0x0000026du, 0x0003003eu, 0x0000029du, 0x0000029eu, 0x0004003du, 0x00000024u, 0x000002a0u, + 0x0000022au, 0x0003003eu, 0x0000029fu, 0x000002a0u, 0x0003003eu, 0x000002a1u, 0x00000294u, 0x00070039u, + 0x00000008u, 0x000002a2u, 0x0000002fu, 0x0000029du, 0x0000029fu, 0x000002a1u, 0x0004003du, 0x00000008u, + 0x000002a3u, 0x000001ebu, 0x00050081u, 0x00000008u, 0x000002a4u, 0x000002a3u, 0x000002a2u, 0x0003003eu, + 0x000001ebu, 0x000002a4u, 0x0004003du, 0x00000022u, 0x000002a6u, 0x0000027au, 0x0003003eu, 0x000002a5u, + 0x000002a6u, 0x0004003du, 0x00000024u, 0x000002a8u, 0x0000023bu, 0x0003003eu, 0x000002a7u, 0x000002a8u, + 0x0003003eu, 0x000002a9u, 0x00000294u, 0x00070039u, 0x00000008u, 0x000002aau, 0x0000002fu, 0x000002a5u, + 0x000002a7u, 0x000002a9u, 0x0004003du, 0x00000008u, 0x000002abu, 0x000001ecu, 0x00050081u, 0x00000008u, + 0x000002acu, 0x000002abu, 0x000002aau, 0x0003003eu, 0x000001ecu, 0x000002acu, 0x0004003du, 0x00000022u, + 0x000002aeu, 0x00000287u, 0x0003003eu, 0x000002adu, 0x000002aeu, 0x0004003du, 0x00000024u, 0x000002b0u, + 0x0000024cu, 0x0003003eu, 0x000002afu, 0x000002b0u, 0x0003003eu, 0x000002b1u, 0x00000294u, 0x00070039u, + 0x00000008u, 0x000002b2u, 0x0000002fu, 0x000002adu, 0x000002afu, 0x000002b1u, 0x0004003du, 0x00000008u, + 0x000002b3u, 0x000001edu, 0x00050081u, 0x00000008u, 0x000002b4u, 0x000002b3u, 0x000002b2u, 0x0003003eu, + 0x000001edu, 0x000002b4u, 0x000300f7u, 0x000002b7u, 0x00000000u, 0x000400fau, 0x000002b5u, 0x000002b6u, + 0x000002b7u, 0x000200f8u, 0x000002b6u, 0x00050041u, 0x000001bbu, 0x000002b9u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x000002bau, 0x000002b9u, 0x000500c2u, 0x00000006u, 0x000002bbu, 0x000002bau, + 0x00000219u, 0x0004003du, 0x00000006u, 0x000002bcu, 0x000001dau, 0x0004003du, 0x00000006u, 0x000002bdu, + 0x00000202u, 0x000500c4u, 0x00000006u, 0x000002beu, 0x000002bdu, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x000002bfu, 0x000002bcu, 0x000002beu, 0x000500c2u, 0x00000006u, 0x000002c0u, 0x000002bfu, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x000002c1u, 0x000002bbu, 0x000002c0u, 0x00060041u, 0x00000225u, 0x000002c2u, + 0x00000260u, 0x000000e2u, 0x000002c1u, 0x0004003du, 0x00000022u, 0x000002c3u, 0x000002c2u, 0x0003003eu, + 0x000002b8u, 0x000002c3u, 0x00050041u, 0x000001bbu, 0x000002c5u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x000002c6u, 0x000002c5u, 0x000500c2u, 0x00000006u, 0x000002c7u, 0x000002c6u, 0x00000219u, + 0x0004003du, 0x00000006u, 0x000002c8u, 0x000001dau, 0x0004003du, 0x00000006u, 0x000002c9u, 0x00000202u, + 0x00050080u, 0x00000006u, 0x000002cau, 0x000002c9u, 0x00000230u, 0x000500c4u, 0x00000006u, 0x000002cbu, + 0x000002cau, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000002ccu, 0x000002c8u, 0x000002cbu, 0x000500c2u, + 0x00000006u, 0x000002cdu, 0x000002ccu, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000002ceu, 0x000002c7u, + 0x000002cdu, 0x00060041u, 0x00000225u, 0x000002cfu, 0x00000260u, 0x000000e2u, 0x000002ceu, 0x0004003du, + 0x00000022u, 0x000002d0u, 0x000002cfu, 0x0003003eu, 0x000002c4u, 0x000002d0u, 0x00050041u, 0x000001bbu, + 0x000002d2u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000002d3u, 0x000002d2u, 0x000500c2u, + 0x00000006u, 0x000002d4u, 0x000002d3u, 0x00000219u, 0x0004003du, 0x00000006u, 0x000002d5u, 0x000001dau, + 0x0004003du, 0x00000006u, 0x000002d6u, 0x00000202u, 0x00050080u, 0x00000006u, 0x000002d7u, 0x000002d6u, + 0x00000241u, 0x000500c4u, 0x00000006u, 0x000002d8u, 0x000002d7u, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x000002d9u, 0x000002d5u, 0x000002d8u, 0x000500c2u, 0x00000006u, 0x000002dau, 0x000002d9u, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x000002dbu, 0x000002d4u, 0x000002dau, 0x00060041u, 0x00000225u, 0x000002dcu, + 0x00000260u, 0x000000e2u, 0x000002dbu, 0x0004003du, 0x00000022u, 0x000002ddu, 0x000002dcu, 0x0003003eu, + 0x000002d1u, 0x000002ddu, 0x00050041u, 0x000001bbu, 0x000002dfu, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x000002e0u, 0x000002dfu, 0x000500c2u, 0x00000006u, 0x000002e1u, 0x000002e0u, 0x00000219u, + 0x0004003du, 0x00000006u, 0x000002e2u, 0x000001dau, 0x0004003du, 0x00000006u, 0x000002e3u, 0x00000202u, + 0x00050080u, 0x00000006u, 0x000002e4u, 0x000002e3u, 0x0000020fu, 0x000500c4u, 0x00000006u, 0x000002e5u, + 0x000002e4u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000002e6u, 0x000002e2u, 0x000002e5u, 0x000500c2u, + 0x00000006u, 0x000002e7u, 0x000002e6u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000002e8u, 0x000002e1u, + 0x000002e7u, 0x00060041u, 0x00000225u, 0x000002e9u, 0x00000260u, 0x000000e2u, 0x000002e8u, 0x0004003du, + 0x00000022u, 0x000002eau, 0x000002e9u, 0x0003003eu, 0x000002deu, 0x000002eau, 0x0004003du, 0x00000022u, + 0x000002ecu, 0x000002b8u, 0x0003003eu, 0x000002ebu, 0x000002ecu, 0x0004003du, 0x00000024u, 0x000002eeu, + 0x00000214u, 0x0003003eu, 0x000002edu, 0x000002eeu, 0x0003003eu, 0x000002efu, 0x00000294u, 0x00070039u, + 0x00000008u, 0x000002f0u, 0x0000002fu, 0x000002ebu, 0x000002edu, 0x000002efu, 0x0004003du, 0x00000008u, + 0x000002f1u, 0x000001eeu, 0x00050081u, 0x00000008u, 0x000002f2u, 0x000002f1u, 0x000002f0u, 0x0003003eu, + 0x000001eeu, 0x000002f2u, 0x0004003du, 0x00000022u, 0x000002f4u, 0x000002c4u, 0x0003003eu, 0x000002f3u, + 0x000002f4u, 0x0004003du, 0x00000024u, 0x000002f6u, 0x0000022au, 0x0003003eu, 0x000002f5u, 0x000002f6u, + 0x0003003eu, 0x000002f7u, 0x00000294u, 0x00070039u, 0x00000008u, 0x000002f8u, 0x0000002fu, 0x000002f3u, + 0x000002f5u, 0x000002f7u, 0x0004003du, 0x00000008u, 0x000002f9u, 0x000001efu, 0x00050081u, 0x00000008u, + 0x000002fau, 0x000002f9u, 0x000002f8u, 0x0003003eu, 0x000001efu, 0x000002fau, 0x0004003du, 0x00000022u, + 0x000002fcu, 0x000002d1u, 0x0003003eu, 0x000002fbu, 0x000002fcu, 0x0004003du, 0x00000024u, 0x000002feu, + 0x0000023bu, 0x0003003eu, 0x000002fdu, 0x000002feu, 0x0003003eu, 0x000002ffu, 0x00000294u, 0x00070039u, + 0x00000008u, 0x00000300u, 0x0000002fu, 0x000002fbu, 0x000002fdu, 0x000002ffu, 0x0004003du, 0x00000008u, + 0x00000301u, 0x000001f0u, 0x00050081u, 0x00000008u, 0x00000302u, 0x00000301u, 0x00000300u, 0x0003003eu, + 0x000001f0u, 0x00000302u, 0x0004003du, 0x00000022u, 0x00000304u, 0x000002deu, 0x0003003eu, 0x00000303u, + 0x00000304u, 0x0004003du, 0x00000024u, 0x00000306u, 0x0000024cu, 0x0003003eu, 0x00000305u, 0x00000306u, + 0x0003003eu, 0x00000307u, 0x00000294u, 0x00070039u, 0x00000008u, 0x00000308u, 0x0000002fu, 0x00000303u, + 0x00000305u, 0x00000307u, 0x0004003du, 0x00000008u, 0x00000309u, 0x000001f1u, 0x00050081u, 0x00000008u, + 0x0000030au, 0x00000309u, 0x00000308u, 0x0003003eu, 0x000001f1u, 0x0000030au, 0x000200f9u, 0x000002b7u, + 0x000200f8u, 0x000002b7u, 0x000300f7u, 0x0000030du, 0x00000000u, 0x000400fau, 0x0000030bu, 0x0000030cu, + 0x0000030du, 0x000200f8u, 0x0000030cu, 0x00050041u, 0x000001bbu, 0x0000030fu, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x00000310u, 0x0000030fu, 0x000500c2u, 0x00000006u, 0x00000311u, 0x00000310u, + 0x00000219u, 0x0004003du, 0x00000006u, 0x00000312u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000313u, + 0x00000202u, 0x000500c4u, 0x00000006u, 0x00000314u, 0x00000313u, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x00000315u, 0x00000312u, 0x00000314u, 0x000500c2u, 0x00000006u, 0x00000316u, 0x00000315u, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x00000317u, 0x00000311u, 0x00000316u, 0x00060041u, 0x00000225u, 0x00000318u, + 0x00000260u, 0x000000e2u, 0x00000317u, 0x0004003du, 0x00000022u, 0x00000319u, 0x00000318u, 0x0003003eu, + 0x0000030eu, 0x00000319u, 0x00050041u, 0x000001bbu, 0x0000031bu, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x0000031cu, 0x0000031bu, 0x000500c2u, 0x00000006u, 0x0000031du, 0x0000031cu, 0x00000219u, + 0x0004003du, 0x00000006u, 0x0000031eu, 0x000001dfu, 0x0004003du, 0x00000006u, 0x0000031fu, 0x00000202u, + 0x00050080u, 0x00000006u, 0x00000320u, 0x0000031fu, 0x00000230u, 0x000500c4u, 0x00000006u, 0x00000321u, + 0x00000320u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000322u, 0x0000031eu, 0x00000321u, 0x000500c2u, + 0x00000006u, 0x00000323u, 0x00000322u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000324u, 0x0000031du, + 0x00000323u, 0x00060041u, 0x00000225u, 0x00000325u, 0x00000260u, 0x000000e2u, 0x00000324u, 0x0004003du, + 0x00000022u, 0x00000326u, 0x00000325u, 0x0003003eu, 0x0000031au, 0x00000326u, 0x00050041u, 0x000001bbu, + 0x00000328u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000329u, 0x00000328u, 0x000500c2u, + 0x00000006u, 0x0000032au, 0x00000329u, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000032bu, 0x000001dfu, + 0x0004003du, 0x00000006u, 0x0000032cu, 0x00000202u, 0x00050080u, 0x00000006u, 0x0000032du, 0x0000032cu, + 0x00000241u, 0x000500c4u, 0x00000006u, 0x0000032eu, 0x0000032du, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x0000032fu, 0x0000032bu, 0x0000032eu, 0x000500c2u, 0x00000006u, 0x00000330u, 0x0000032fu, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x00000331u, 0x0000032au, 0x00000330u, 0x00060041u, 0x00000225u, 0x00000332u, + 0x00000260u, 0x000000e2u, 0x00000331u, 0x0004003du, 0x00000022u, 0x00000333u, 0x00000332u, 0x0003003eu, + 0x00000327u, 0x00000333u, 0x00050041u, 0x000001bbu, 0x00000335u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x00000336u, 0x00000335u, 0x000500c2u, 0x00000006u, 0x00000337u, 0x00000336u, 0x00000219u, + 0x0004003du, 0x00000006u, 0x00000338u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000339u, 0x00000202u, + 0x00050080u, 0x00000006u, 0x0000033au, 0x00000339u, 0x0000020fu, 0x000500c4u, 0x00000006u, 0x0000033bu, + 0x0000033au, 0x000001d1u, 0x00050080u, 0x00000006u, 0x0000033cu, 0x00000338u, 0x0000033bu, 0x000500c2u, + 0x00000006u, 0x0000033du, 0x0000033cu, 0x000001d1u, 0x00050080u, 0x00000006u, 0x0000033eu, 0x00000337u, + 0x0000033du, 0x00060041u, 0x00000225u, 0x0000033fu, 0x00000260u, 0x000000e2u, 0x0000033eu, 0x0004003du, + 0x00000022u, 0x00000340u, 0x0000033fu, 0x0003003eu, 0x00000334u, 0x00000340u, 0x0004003du, 0x00000022u, + 0x00000342u, 0x0000030eu, 0x0003003eu, 0x00000341u, 0x00000342u, 0x0004003du, 0x00000024u, 0x00000344u, + 0x00000214u, 0x0003003eu, 0x00000343u, 0x00000344u, 0x0003003eu, 0x00000345u, 0x00000294u, 0x00070039u, + 0x00000008u, 0x00000346u, 0x0000002fu, 0x00000341u, 0x00000343u, 0x00000345u, 0x0004003du, 0x00000008u, + 0x00000347u, 0x000001f2u, 0x00050081u, 0x00000008u, 0x00000348u, 0x00000347u, 0x00000346u, 0x0003003eu, + 0x000001f2u, 0x00000348u, 0x0004003du, 0x00000022u, 0x0000034au, 0x0000031au, 0x0003003eu, 0x00000349u, + 0x0000034au, 0x0004003du, 0x00000024u, 0x0000034cu, 0x0000022au, 0x0003003eu, 0x0000034bu, 0x0000034cu, + 0x0003003eu, 0x0000034du, 0x00000294u, 0x00070039u, 0x00000008u, 0x0000034eu, 0x0000002fu, 0x00000349u, + 0x0000034bu, 0x0000034du, 0x0004003du, 0x00000008u, 0x0000034fu, 0x000001f3u, 0x00050081u, 0x00000008u, + 0x00000350u, 0x0000034fu, 0x0000034eu, 0x0003003eu, 0x000001f3u, 0x00000350u, 0x0004003du, 0x00000022u, + 0x00000352u, 0x00000327u, 0x0003003eu, 0x00000351u, 0x00000352u, 0x0004003du, 0x00000024u, 0x00000354u, + 0x0000023bu, 0x0003003eu, 0x00000353u, 0x00000354u, 0x0003003eu, 0x00000355u, 0x00000294u, 0x00070039u, + 0x00000008u, 0x00000356u, 0x0000002fu, 0x00000351u, 0x00000353u, 0x00000355u, 0x0004003du, 0x00000008u, + 0x00000357u, 0x000001f4u, 0x00050081u, 0x00000008u, 0x00000358u, 0x00000357u, 0x00000356u, 0x0003003eu, + 0x000001f4u, 0x00000358u, 0x0004003du, 0x00000022u, 0x0000035au, 0x00000334u, 0x0003003eu, 0x00000359u, + 0x0000035au, 0x0004003du, 0x00000024u, 0x0000035cu, 0x0000024cu, 0x0003003eu, 0x0000035bu, 0x0000035cu, + 0x0003003eu, 0x0000035du, 0x00000294u, 0x00070039u, 0x00000008u, 0x0000035eu, 0x0000002fu, 0x00000359u, + 0x0000035bu, 0x0000035du, 0x0004003du, 0x00000008u, 0x0000035fu, 0x000001f5u, 0x00050081u, 0x00000008u, + 0x00000360u, 0x0000035fu, 0x0000035eu, 0x0003003eu, 0x000001f5u, 0x00000360u, 0x00050041u, 0x000001bbu, + 0x00000362u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000363u, 0x00000362u, 0x000500c2u, + 0x00000006u, 0x00000364u, 0x00000363u, 0x00000219u, 0x0004003du, 0x00000006u, 0x00000365u, 0x000001e4u, + 0x0004003du, 0x00000006u, 0x00000366u, 0x00000202u, 0x000500c4u, 0x00000006u, 0x00000367u, 0x00000366u, + 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000368u, 0x00000365u, 0x00000367u, 0x000500c2u, 0x00000006u, + 0x00000369u, 0x00000368u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x0000036au, 0x00000364u, 0x00000369u, + 0x00060041u, 0x00000225u, 0x0000036bu, 0x00000260u, 0x000000e2u, 0x0000036au, 0x0004003du, 0x00000022u, + 0x0000036cu, 0x0000036bu, 0x0003003eu, 0x00000361u, 0x0000036cu, 0x00050041u, 0x000001bbu, 0x0000036eu, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000036fu, 0x0000036eu, 0x000500c2u, 0x00000006u, + 0x00000370u, 0x0000036fu, 0x00000219u, 0x0004003du, 0x00000006u, 0x00000371u, 0x000001e4u, 0x0004003du, + 0x00000006u, 0x00000372u, 0x00000202u, 0x00050080u, 0x00000006u, 0x00000373u, 0x00000372u, 0x00000230u, + 0x000500c4u, 0x00000006u, 0x00000374u, 0x00000373u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000375u, + 0x00000371u, 0x00000374u, 0x000500c2u, 0x00000006u, 0x00000376u, 0x00000375u, 0x000001d1u, 0x00050080u, + 0x00000006u, 0x00000377u, 0x00000370u, 0x00000376u, 0x00060041u, 0x00000225u, 0x00000378u, 0x00000260u, + 0x000000e2u, 0x00000377u, 0x0004003du, 0x00000022u, 0x00000379u, 0x00000378u, 0x0003003eu, 0x0000036du, + 0x00000379u, 0x00050041u, 0x000001bbu, 0x0000037bu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x0000037cu, 0x0000037bu, 0x000500c2u, 0x00000006u, 0x0000037du, 0x0000037cu, 0x00000219u, 0x0004003du, + 0x00000006u, 0x0000037eu, 0x000001e4u, 0x0004003du, 0x00000006u, 0x0000037fu, 0x00000202u, 0x00050080u, + 0x00000006u, 0x00000380u, 0x0000037fu, 0x00000241u, 0x000500c4u, 0x00000006u, 0x00000381u, 0x00000380u, + 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000382u, 0x0000037eu, 0x00000381u, 0x000500c2u, 0x00000006u, + 0x00000383u, 0x00000382u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000384u, 0x0000037du, 0x00000383u, + 0x00060041u, 0x00000225u, 0x00000385u, 0x00000260u, 0x000000e2u, 0x00000384u, 0x0004003du, 0x00000022u, + 0x00000386u, 0x00000385u, 0x0003003eu, 0x0000037au, 0x00000386u, 0x00050041u, 0x000001bbu, 0x00000388u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000389u, 0x00000388u, 0x000500c2u, 0x00000006u, + 0x0000038au, 0x00000389u, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000038bu, 0x000001e4u, 0x0004003du, + 0x00000006u, 0x0000038cu, 0x00000202u, 0x00050080u, 0x00000006u, 0x0000038du, 0x0000038cu, 0x0000020fu, + 0x000500c4u, 0x00000006u, 0x0000038eu, 0x0000038du, 0x000001d1u, 0x00050080u, 0x00000006u, 0x0000038fu, + 0x0000038bu, 0x0000038eu, 0x000500c2u, 0x00000006u, 0x00000390u, 0x0000038fu, 0x000001d1u, 0x00050080u, + 0x00000006u, 0x00000391u, 0x0000038au, 0x00000390u, 0x00060041u, 0x00000225u, 0x00000392u, 0x00000260u, + 0x000000e2u, 0x00000391u, 0x0004003du, 0x00000022u, 0x00000393u, 0x00000392u, 0x0003003eu, 0x00000387u, + 0x00000393u, 0x0004003du, 0x00000022u, 0x00000395u, 0x00000361u, 0x0003003eu, 0x00000394u, 0x00000395u, + 0x0004003du, 0x00000024u, 0x00000397u, 0x00000214u, 0x0003003eu, 0x00000396u, 0x00000397u, 0x0003003eu, + 0x00000398u, 0x00000294u, 0x00070039u, 0x00000008u, 0x00000399u, 0x0000002fu, 0x00000394u, 0x00000396u, + 0x00000398u, 0x0004003du, 0x00000008u, 0x0000039au, 0x000001f6u, 0x00050081u, 0x00000008u, 0x0000039bu, + 0x0000039au, 0x00000399u, 0x0003003eu, 0x000001f6u, 0x0000039bu, 0x0004003du, 0x00000022u, 0x0000039du, + 0x0000036du, 0x0003003eu, 0x0000039cu, 0x0000039du, 0x0004003du, 0x00000024u, 0x0000039fu, 0x0000022au, + 0x0003003eu, 0x0000039eu, 0x0000039fu, 0x0003003eu, 0x000003a0u, 0x00000294u, 0x00070039u, 0x00000008u, + 0x000003a1u, 0x0000002fu, 0x0000039cu, 0x0000039eu, 0x000003a0u, 0x0004003du, 0x00000008u, 0x000003a2u, + 0x000001f7u, 0x00050081u, 0x00000008u, 0x000003a3u, 0x000003a2u, 0x000003a1u, 0x0003003eu, 0x000001f7u, + 0x000003a3u, 0x0004003du, 0x00000022u, 0x000003a5u, 0x0000037au, 0x0003003eu, 0x000003a4u, 0x000003a5u, + 0x0004003du, 0x00000024u, 0x000003a7u, 0x0000023bu, 0x0003003eu, 0x000003a6u, 0x000003a7u, 0x0003003eu, + 0x000003a8u, 0x00000294u, 0x00070039u, 0x00000008u, 0x000003a9u, 0x0000002fu, 0x000003a4u, 0x000003a6u, + 0x000003a8u, 0x0004003du, 0x00000008u, 0x000003aau, 0x000001f8u, 0x00050081u, 0x00000008u, 0x000003abu, + 0x000003aau, 0x000003a9u, 0x0003003eu, 0x000001f8u, 0x000003abu, 0x0004003du, 0x00000022u, 0x000003adu, + 0x00000387u, 0x0003003eu, 0x000003acu, 0x000003adu, 0x0004003du, 0x00000024u, 0x000003afu, 0x0000024cu, + 0x0003003eu, 0x000003aeu, 0x000003afu, 0x0003003eu, 0x000003b0u, 0x00000294u, 0x00070039u, 0x00000008u, + 0x000003b1u, 0x0000002fu, 0x000003acu, 0x000003aeu, 0x000003b0u, 0x0004003du, 0x00000008u, 0x000003b2u, + 0x000001f9u, 0x00050081u, 0x00000008u, 0x000003b3u, 0x000003b2u, 0x000003b1u, 0x0003003eu, 0x000001f9u, + 0x000003b3u, 0x000200f9u, 0x0000030du, 0x000200f8u, 0x0000030du, 0x000200f9u, 0x00000207u, 0x000200f8u, + 0x00000207u, 0x0004003du, 0x00000006u, 0x000003b5u, 0x00000202u, 0x00050080u, 0x00000006u, 0x000003b6u, + 0x000003b5u, 0x000003b4u, 0x0003003eu, 0x00000202u, 0x000003b6u, 0x000200f9u, 0x00000204u, 0x000200f8u, + 0x00000206u, 0x000200f9u, 0x000003b7u, 0x000200f8u, 0x000003b7u, 0x000400f6u, 0x000003b9u, 0x000003bau, + 0x00000000u, 0x000200f9u, 0x000003bbu, 0x000200f8u, 0x000003bbu, 0x0004003du, 0x00000006u, 0x000003bcu, + 0x00000202u, 0x0004003du, 0x00000006u, 0x000003bdu, 0x000001feu, 0x000500b0u, 0x0000003bu, 0x000003beu, + 0x000003bcu, 0x000003bdu, 0x000400fau, 0x000003beu, 0x000003b8u, 0x000003b9u, 0x000200f8u, 0x000003b8u, + 0x00050041u, 0x000001bbu, 0x000003c0u, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x000003c1u, + 0x000003c0u, 0x000500c2u, 0x00000006u, 0x000003c2u, 0x000003c1u, 0x00000219u, 0x0004003du, 0x00000006u, + 0x000003c3u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x000003c4u, 0x00000202u, 0x000500c4u, 0x00000006u, + 0x000003c5u, 0x000003c4u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000003c6u, 0x000003c3u, 0x000003c5u, + 0x000500c2u, 0x00000006u, 0x000003c7u, 0x000003c6u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000003c8u, + 0x000003c2u, 0x000003c7u, 0x00060041u, 0x00000225u, 0x000003cau, 0x00000218u, 0x000000e2u, 0x000003c8u, + 0x0004003du, 0x00000022u, 0x000003cbu, 0x000003cau, 0x0003003eu, 0x000003c9u, 0x000003cbu, 0x0003003eu, + 0x000003ccu, 0x00000223u, 0x00060039u, 0x00000024u, 0x000003cdu, 0x00000028u, 0x000003c9u, 0x000003ccu, + 0x0003003eu, 0x000003bfu, 0x000003cdu, 0x00050041u, 0x000001bbu, 0x000003ceu, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x000003cfu, 0x000003ceu, 0x000500c2u, 0x00000006u, 0x000003d0u, 0x000003cfu, + 0x00000219u, 0x0004003du, 0x00000006u, 0x000003d1u, 0x000001d5u, 0x0004003du, 0x00000006u, 0x000003d2u, + 0x00000202u, 0x000500c4u, 0x00000006u, 0x000003d3u, 0x000003d2u, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x000003d4u, 0x000003d1u, 0x000003d3u, 0x000500c2u, 0x00000006u, 0x000003d5u, 0x000003d4u, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x000003d6u, 0x000003d0u, 0x000003d5u, 0x00060041u, 0x00000225u, 0x000003d8u, + 0x00000260u, 0x000000e2u, 0x000003d6u, 0x0004003du, 0x00000022u, 0x000003d9u, 0x000003d8u, 0x0003003eu, + 0x000003d7u, 0x000003d9u, 0x0004003du, 0x00000024u, 0x000003dbu, 0x000003bfu, 0x0003003eu, 0x000003dau, + 0x000003dbu, 0x0003003eu, 0x000003dcu, 0x00000294u, 0x00070039u, 0x00000008u, 0x000003ddu, 0x0000002fu, + 0x000003d7u, 0x000003dau, 0x000003dcu, 0x0004003du, 0x00000008u, 0x000003deu, 0x000001e9u, 0x00050081u, + 0x00000008u, 0x000003dfu, 0x000003deu, 0x000003ddu, 0x0003003eu, 0x000001e9u, 0x000003dfu, 0x000300f7u, + 0x000003e2u, 0x00000000u, 0x000400fau, 0x000003e0u, 0x000003e1u, 0x000003e2u, 0x000200f8u, 0x000003e1u, + 0x00050041u, 0x000001bbu, 0x000003e3u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000003e4u, + 0x000003e3u, 0x000500c2u, 0x00000006u, 0x000003e5u, 0x000003e4u, 0x00000219u, 0x0004003du, 0x00000006u, + 0x000003e6u, 0x000001dau, 0x0004003du, 0x00000006u, 0x000003e7u, 0x00000202u, 0x000500c4u, 0x00000006u, + 0x000003e8u, 0x000003e7u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000003e9u, 0x000003e6u, 0x000003e8u, + 0x000500c2u, 0x00000006u, 0x000003eau, 0x000003e9u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000003ebu, + 0x000003e5u, 0x000003eau, 0x00060041u, 0x00000225u, 0x000003edu, 0x00000260u, 0x000000e2u, 0x000003ebu, + 0x0004003du, 0x00000022u, 0x000003eeu, 0x000003edu, 0x0003003eu, 0x000003ecu, 0x000003eeu, 0x0004003du, + 0x00000024u, 0x000003f0u, 0x000003bfu, 0x0003003eu, 0x000003efu, 0x000003f0u, 0x0003003eu, 0x000003f1u, + 0x00000294u, 0x00070039u, 0x00000008u, 0x000003f2u, 0x0000002fu, 0x000003ecu, 0x000003efu, 0x000003f1u, + 0x0004003du, 0x00000008u, 0x000003f3u, 0x000001eeu, 0x00050081u, 0x00000008u, 0x000003f4u, 0x000003f3u, + 0x000003f2u, 0x0003003eu, 0x000001eeu, 0x000003f4u, 0x000200f9u, 0x000003e2u, 0x000200f8u, 0x000003e2u, + 0x000300f7u, 0x000003f7u, 0x00000000u, 0x000400fau, 0x000003f5u, 0x000003f6u, 0x000003f7u, 0x000200f8u, + 0x000003f6u, 0x00050041u, 0x000001bbu, 0x000003f8u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x000003f9u, 0x000003f8u, 0x000500c2u, 0x00000006u, 0x000003fau, 0x000003f9u, 0x00000219u, 0x0004003du, + 0x00000006u, 0x000003fbu, 0x000001dfu, 0x0004003du, 0x00000006u, 0x000003fcu, 0x00000202u, 0x000500c4u, + 0x00000006u, 0x000003fdu, 0x000003fcu, 0x000001d1u, 0x00050080u, 0x00000006u, 0x000003feu, 0x000003fbu, + 0x000003fdu, 0x000500c2u, 0x00000006u, 0x000003ffu, 0x000003feu, 0x000001d1u, 0x00050080u, 0x00000006u, + 0x00000400u, 0x000003fau, 0x000003ffu, 0x00060041u, 0x00000225u, 0x00000402u, 0x00000260u, 0x000000e2u, + 0x00000400u, 0x0004003du, 0x00000022u, 0x00000403u, 0x00000402u, 0x0003003eu, 0x00000401u, 0x00000403u, + 0x0004003du, 0x00000024u, 0x00000405u, 0x000003bfu, 0x0003003eu, 0x00000404u, 0x00000405u, 0x0003003eu, + 0x00000406u, 0x00000294u, 0x00070039u, 0x00000008u, 0x00000407u, 0x0000002fu, 0x00000401u, 0x00000404u, + 0x00000406u, 0x0004003du, 0x00000008u, 0x00000408u, 0x000001f2u, 0x00050081u, 0x00000008u, 0x00000409u, + 0x00000408u, 0x00000407u, 0x0003003eu, 0x000001f2u, 0x00000409u, 0x00050041u, 0x000001bbu, 0x0000040au, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000040bu, 0x0000040au, 0x000500c2u, 0x00000006u, + 0x0000040cu, 0x0000040bu, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000040du, 0x000001e4u, 0x0004003du, + 0x00000006u, 0x0000040eu, 0x00000202u, 0x000500c4u, 0x00000006u, 0x0000040fu, 0x0000040eu, 0x000001d1u, + 0x00050080u, 0x00000006u, 0x00000410u, 0x0000040du, 0x0000040fu, 0x000500c2u, 0x00000006u, 0x00000411u, + 0x00000410u, 0x000001d1u, 0x00050080u, 0x00000006u, 0x00000412u, 0x0000040cu, 0x00000411u, 0x00060041u, + 0x00000225u, 0x00000414u, 0x00000260u, 0x000000e2u, 0x00000412u, 0x0004003du, 0x00000022u, 0x00000415u, + 0x00000414u, 0x0003003eu, 0x00000413u, 0x00000415u, 0x0004003du, 0x00000024u, 0x00000417u, 0x000003bfu, + 0x0003003eu, 0x00000416u, 0x00000417u, 0x0003003eu, 0x00000418u, 0x00000294u, 0x00070039u, 0x00000008u, + 0x00000419u, 0x0000002fu, 0x00000413u, 0x00000416u, 0x00000418u, 0x0004003du, 0x00000008u, 0x0000041au, + 0x000001f6u, 0x00050081u, 0x00000008u, 0x0000041bu, 0x0000041au, 0x00000419u, 0x0003003eu, 0x000001f6u, + 0x0000041bu, 0x000200f9u, 0x000003f7u, 0x000200f8u, 0x000003f7u, 0x000200f9u, 0x000003bau, 0x000200f8u, + 0x000003bau, 0x0004003du, 0x00000006u, 0x0000041cu, 0x00000202u, 0x00050080u, 0x00000006u, 0x0000041du, + 0x0000041cu, 0x00000230u, 0x0003003eu, 0x00000202u, 0x0000041du, 0x000200f9u, 0x000003b7u, 0x000200f8u, + 0x000003b9u, 0x000200f9u, 0x000001fdu, 0x000200f8u, 0x0000041eu, 0x000300f7u, 0x00000421u, 0x00000000u, + 0x000400fau, 0x0000041fu, 0x00000420u, 0x000007a7u, 0x000200f8u, 0x00000420u, 0x0004003du, 0x00000006u, + 0x00000423u, 0x000001aau, 0x0003003eu, 0x00000422u, 0x00000423u, 0x000200f9u, 0x00000424u, 0x000200f8u, + 0x00000424u, 0x000400f6u, 0x00000426u, 0x00000427u, 0x00000000u, 0x000200f9u, 0x00000428u, 0x000200f8u, + 0x00000428u, 0x000300f7u, 0x0000042bu, 0x00000000u, 0x000400fau, 0x00000429u, 0x0000042au, 0x0000042bu, + 0x000200f8u, 0x0000042au, 0x0004003du, 0x00000006u, 0x0000042cu, 0x00000422u, 0x00050080u, 0x00000006u, + 0x0000042du, 0x0000042cu, 0x0000020fu, 0x00050041u, 0x000001bbu, 0x0000042eu, 0x000001bau, 0x000001d1u, + 0x0004003du, 0x00000006u, 0x0000042fu, 0x0000042eu, 0x000500b0u, 0x0000003bu, 0x00000430u, 0x0000042du, + 0x0000042fu, 0x000200f9u, 0x0000042bu, 0x000200f8u, 0x0000042bu, 0x000700f5u, 0x0000003bu, 0x00000431u, + 0x00000429u, 0x00000428u, 0x00000430u, 0x0000042au, 0x000400fau, 0x00000431u, 0x00000425u, 0x00000426u, + 0x000200f8u, 0x00000425u, 0x000300f7u, 0x00000436u, 0x00000000u, 0x000400fau, 0x00000433u, 0x00000435u, + 0x00000446u, 0x000200f8u, 0x00000435u, 0x00050041u, 0x000001bbu, 0x0000043bu, 0x000001bau, 0x00000219u, + 0x0004003du, 0x00000006u, 0x0000043cu, 0x0000043bu, 0x000500c2u, 0x00000006u, 0x0000043du, 0x0000043cu, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000043eu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x0000043fu, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000440u, 0x0000043eu, 0x0000043fu, 0x00050080u, 0x00000006u, + 0x00000441u, 0x0000043du, 0x00000440u, 0x00060041u, 0x00000442u, 0x00000443u, 0x0000043au, 0x000000e2u, + 0x00000441u, 0x0004003du, 0x00000006u, 0x00000444u, 0x00000443u, 0x0004007cu, 0x00000008u, 0x00000445u, + 0x00000444u, 0x0003003eu, 0x00000434u, 0x00000445u, 0x000200f9u, 0x00000436u, 0x000200f8u, 0x00000446u, + 0x00050041u, 0x000001bbu, 0x0000044cu, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000044du, + 0x0000044cu, 0x000500c2u, 0x00000006u, 0x0000044eu, 0x0000044du, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x0000044fu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000450u, 0x00000422u, 0x00050080u, 0x00000006u, + 0x00000451u, 0x0000044fu, 0x00000450u, 0x00050080u, 0x00000006u, 0x00000452u, 0x0000044eu, 0x00000451u, + 0x00060041u, 0x00000453u, 0x00000454u, 0x0000044bu, 0x000000e2u, 0x00000452u, 0x0004003du, 0x00000447u, + 0x00000455u, 0x00000454u, 0x00040071u, 0x00000006u, 0x00000456u, 0x00000455u, 0x0003003eu, 0x00000457u, + 0x00000456u, 0x0003003eu, 0x00000458u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000459u, 0x0000001bu, + 0x00000457u, 0x00000458u, 0x0003003eu, 0x00000434u, 0x00000459u, 0x000200f9u, 0x00000436u, 0x000200f8u, + 0x00000436u, 0x0004003du, 0x00000008u, 0x0000045au, 0x00000434u, 0x0003003eu, 0x00000432u, 0x0000045au, + 0x000300f7u, 0x0000045fu, 0x00000000u, 0x000400fau, 0x0000045cu, 0x0000045eu, 0x0000046bu, 0x000200f8u, + 0x0000045eu, 0x00050041u, 0x000001bbu, 0x00000460u, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, + 0x00000461u, 0x00000460u, 0x000500c2u, 0x00000006u, 0x00000462u, 0x00000461u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x00000463u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000464u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x00000465u, 0x00000463u, 0x00000464u, 0x00050080u, 0x00000006u, 0x00000466u, 0x00000465u, + 0x00000230u, 0x00050080u, 0x00000006u, 0x00000467u, 0x00000462u, 0x00000466u, 0x00060041u, 0x00000442u, + 0x00000468u, 0x0000043au, 0x000000e2u, 0x00000467u, 0x0004003du, 0x00000006u, 0x00000469u, 0x00000468u, + 0x0004007cu, 0x00000008u, 0x0000046au, 0x00000469u, 0x0003003eu, 0x0000045du, 0x0000046au, 0x000200f9u, + 0x0000045fu, 0x000200f8u, 0x0000046bu, 0x00050041u, 0x000001bbu, 0x0000046cu, 0x000001bau, 0x00000219u, + 0x0004003du, 0x00000006u, 0x0000046du, 0x0000046cu, 0x000500c2u, 0x00000006u, 0x0000046eu, 0x0000046du, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x0000046fu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000470u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000471u, 0x0000046fu, 0x00000470u, 0x00050080u, 0x00000006u, + 0x00000472u, 0x00000471u, 0x00000230u, 0x00050080u, 0x00000006u, 0x00000473u, 0x0000046eu, 0x00000472u, + 0x00060041u, 0x00000453u, 0x00000474u, 0x0000044bu, 0x000000e2u, 0x00000473u, 0x0004003du, 0x00000447u, + 0x00000475u, 0x00000474u, 0x00040071u, 0x00000006u, 0x00000476u, 0x00000475u, 0x0003003eu, 0x00000477u, + 0x00000476u, 0x0003003eu, 0x00000478u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000479u, 0x0000001bu, + 0x00000477u, 0x00000478u, 0x0003003eu, 0x0000045du, 0x00000479u, 0x000200f9u, 0x0000045fu, 0x000200f8u, + 0x0000045fu, 0x0004003du, 0x00000008u, 0x0000047au, 0x0000045du, 0x0003003eu, 0x0000045bu, 0x0000047au, + 0x000300f7u, 0x0000047fu, 0x00000000u, 0x000400fau, 0x0000047cu, 0x0000047eu, 0x0000048bu, 0x000200f8u, + 0x0000047eu, 0x00050041u, 0x000001bbu, 0x00000480u, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, + 0x00000481u, 0x00000480u, 0x000500c2u, 0x00000006u, 0x00000482u, 0x00000481u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x00000483u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000484u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x00000485u, 0x00000483u, 0x00000484u, 0x00050080u, 0x00000006u, 0x00000486u, 0x00000485u, + 0x00000241u, 0x00050080u, 0x00000006u, 0x00000487u, 0x00000482u, 0x00000486u, 0x00060041u, 0x00000442u, + 0x00000488u, 0x0000043au, 0x000000e2u, 0x00000487u, 0x0004003du, 0x00000006u, 0x00000489u, 0x00000488u, + 0x0004007cu, 0x00000008u, 0x0000048au, 0x00000489u, 0x0003003eu, 0x0000047du, 0x0000048au, 0x000200f9u, + 0x0000047fu, 0x000200f8u, 0x0000048bu, 0x00050041u, 0x000001bbu, 0x0000048cu, 0x000001bau, 0x00000219u, + 0x0004003du, 0x00000006u, 0x0000048du, 0x0000048cu, 0x000500c2u, 0x00000006u, 0x0000048eu, 0x0000048du, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x0000048fu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000490u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000491u, 0x0000048fu, 0x00000490u, 0x00050080u, 0x00000006u, + 0x00000492u, 0x00000491u, 0x00000241u, 0x00050080u, 0x00000006u, 0x00000493u, 0x0000048eu, 0x00000492u, + 0x00060041u, 0x00000453u, 0x00000494u, 0x0000044bu, 0x000000e2u, 0x00000493u, 0x0004003du, 0x00000447u, + 0x00000495u, 0x00000494u, 0x00040071u, 0x00000006u, 0x00000496u, 0x00000495u, 0x0003003eu, 0x00000497u, + 0x00000496u, 0x0003003eu, 0x00000498u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000499u, 0x0000001bu, + 0x00000497u, 0x00000498u, 0x0003003eu, 0x0000047du, 0x00000499u, 0x000200f9u, 0x0000047fu, 0x000200f8u, + 0x0000047fu, 0x0004003du, 0x00000008u, 0x0000049au, 0x0000047du, 0x0003003eu, 0x0000047bu, 0x0000049au, + 0x000300f7u, 0x0000049fu, 0x00000000u, 0x000400fau, 0x0000049cu, 0x0000049eu, 0x000004abu, 0x000200f8u, + 0x0000049eu, 0x00050041u, 0x000001bbu, 0x000004a0u, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, + 0x000004a1u, 0x000004a0u, 0x000500c2u, 0x00000006u, 0x000004a2u, 0x000004a1u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x000004a3u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x000004a4u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x000004a5u, 0x000004a3u, 0x000004a4u, 0x00050080u, 0x00000006u, 0x000004a6u, 0x000004a5u, + 0x0000020fu, 0x00050080u, 0x00000006u, 0x000004a7u, 0x000004a2u, 0x000004a6u, 0x00060041u, 0x00000442u, + 0x000004a8u, 0x0000043au, 0x000000e2u, 0x000004a7u, 0x0004003du, 0x00000006u, 0x000004a9u, 0x000004a8u, + 0x0004007cu, 0x00000008u, 0x000004aau, 0x000004a9u, 0x0003003eu, 0x0000049du, 0x000004aau, 0x000200f9u, + 0x0000049fu, 0x000200f8u, 0x000004abu, 0x00050041u, 0x000001bbu, 0x000004acu, 0x000001bau, 0x00000219u, + 0x0004003du, 0x00000006u, 0x000004adu, 0x000004acu, 0x000500c2u, 0x00000006u, 0x000004aeu, 0x000004adu, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x000004afu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x000004b0u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x000004b1u, 0x000004afu, 0x000004b0u, 0x00050080u, 0x00000006u, + 0x000004b2u, 0x000004b1u, 0x0000020fu, 0x00050080u, 0x00000006u, 0x000004b3u, 0x000004aeu, 0x000004b2u, + 0x00060041u, 0x00000453u, 0x000004b4u, 0x0000044bu, 0x000000e2u, 0x000004b3u, 0x0004003du, 0x00000447u, + 0x000004b5u, 0x000004b4u, 0x00040071u, 0x00000006u, 0x000004b6u, 0x000004b5u, 0x0003003eu, 0x000004b7u, + 0x000004b6u, 0x0003003eu, 0x000004b8u, 0x00000223u, 0x00060039u, 0x00000008u, 0x000004b9u, 0x0000001bu, + 0x000004b7u, 0x000004b8u, 0x0003003eu, 0x0000049du, 0x000004b9u, 0x000200f9u, 0x0000049fu, 0x000200f8u, + 0x0000049fu, 0x0004003du, 0x00000008u, 0x000004bau, 0x0000049du, 0x0003003eu, 0x0000049bu, 0x000004bau, + 0x0004003du, 0x00000008u, 0x000004bbu, 0x00000432u, 0x000300f7u, 0x000004bfu, 0x00000000u, 0x000400fau, + 0x000004bcu, 0x000004beu, 0x000004ceu, 0x000200f8u, 0x000004beu, 0x00050041u, 0x000001bbu, 0x000004c4u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000004c5u, 0x000004c4u, 0x000500c2u, 0x00000006u, + 0x000004c6u, 0x000004c5u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000004c7u, 0x000001d5u, 0x0004003du, + 0x00000006u, 0x000004c8u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000004c9u, 0x000004c7u, 0x000004c8u, + 0x00050080u, 0x00000006u, 0x000004cau, 0x000004c6u, 0x000004c9u, 0x00060041u, 0x00000442u, 0x000004cbu, + 0x000004c3u, 0x000000e2u, 0x000004cau, 0x0004003du, 0x00000006u, 0x000004ccu, 0x000004cbu, 0x0004007cu, + 0x00000008u, 0x000004cdu, 0x000004ccu, 0x0003003eu, 0x000004bdu, 0x000004cdu, 0x000200f9u, 0x000004bfu, + 0x000200f8u, 0x000004ceu, 0x00050041u, 0x000001bbu, 0x000004d3u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x000004d4u, 0x000004d3u, 0x000500c2u, 0x00000006u, 0x000004d5u, 0x000004d4u, 0x0000008fu, + 0x0004003du, 0x00000006u, 0x000004d6u, 0x000001d5u, 0x0004003du, 0x00000006u, 0x000004d7u, 0x00000422u, + 0x00050080u, 0x00000006u, 0x000004d8u, 0x000004d6u, 0x000004d7u, 0x00050080u, 0x00000006u, 0x000004d9u, + 0x000004d5u, 0x000004d8u, 0x00060041u, 0x00000453u, 0x000004dau, 0x000004d2u, 0x000000e2u, 0x000004d9u, + 0x0004003du, 0x00000447u, 0x000004dbu, 0x000004dau, 0x00040071u, 0x00000006u, 0x000004dcu, 0x000004dbu, + 0x0003003eu, 0x000004ddu, 0x000004dcu, 0x0003003eu, 0x000004deu, 0x00000294u, 0x00060039u, 0x00000008u, + 0x000004dfu, 0x0000001bu, 0x000004ddu, 0x000004deu, 0x0003003eu, 0x000004bdu, 0x000004dfu, 0x000200f9u, + 0x000004bfu, 0x000200f8u, 0x000004bfu, 0x0004003du, 0x00000008u, 0x000004e0u, 0x000004bdu, 0x00050085u, + 0x00000008u, 0x000004e1u, 0x000004bbu, 0x000004e0u, 0x0004003du, 0x00000008u, 0x000004e2u, 0x000001e9u, + 0x00050081u, 0x00000008u, 0x000004e3u, 0x000004e2u, 0x000004e1u, 0x0003003eu, 0x000001e9u, 0x000004e3u, + 0x0004003du, 0x00000008u, 0x000004e4u, 0x0000045bu, 0x000300f7u, 0x000004e8u, 0x00000000u, 0x000400fau, + 0x000004e5u, 0x000004e7u, 0x000004f4u, 0x000200f8u, 0x000004e7u, 0x00050041u, 0x000001bbu, 0x000004e9u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000004eau, 0x000004e9u, 0x000500c2u, 0x00000006u, + 0x000004ebu, 0x000004eau, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000004ecu, 0x000001d5u, 0x0004003du, + 0x00000006u, 0x000004edu, 0x00000422u, 0x00050080u, 0x00000006u, 0x000004eeu, 0x000004ecu, 0x000004edu, + 0x00050080u, 0x00000006u, 0x000004efu, 0x000004eeu, 0x00000230u, 0x00050080u, 0x00000006u, 0x000004f0u, + 0x000004ebu, 0x000004efu, 0x00060041u, 0x00000442u, 0x000004f1u, 0x000004c3u, 0x000000e2u, 0x000004f0u, + 0x0004003du, 0x00000006u, 0x000004f2u, 0x000004f1u, 0x0004007cu, 0x00000008u, 0x000004f3u, 0x000004f2u, + 0x0003003eu, 0x000004e6u, 0x000004f3u, 0x000200f9u, 0x000004e8u, 0x000200f8u, 0x000004f4u, 0x00050041u, + 0x000001bbu, 0x000004f5u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000004f6u, 0x000004f5u, + 0x000500c2u, 0x00000006u, 0x000004f7u, 0x000004f6u, 0x0000008fu, 0x0004003du, 0x00000006u, 0x000004f8u, + 0x000001d5u, 0x0004003du, 0x00000006u, 0x000004f9u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000004fau, + 0x000004f8u, 0x000004f9u, 0x00050080u, 0x00000006u, 0x000004fbu, 0x000004fau, 0x00000230u, 0x00050080u, + 0x00000006u, 0x000004fcu, 0x000004f7u, 0x000004fbu, 0x00060041u, 0x00000453u, 0x000004fdu, 0x000004d2u, + 0x000000e2u, 0x000004fcu, 0x0004003du, 0x00000447u, 0x000004feu, 0x000004fdu, 0x00040071u, 0x00000006u, + 0x000004ffu, 0x000004feu, 0x0003003eu, 0x00000500u, 0x000004ffu, 0x0003003eu, 0x00000501u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x00000502u, 0x0000001bu, 0x00000500u, 0x00000501u, 0x0003003eu, 0x000004e6u, + 0x00000502u, 0x000200f9u, 0x000004e8u, 0x000200f8u, 0x000004e8u, 0x0004003du, 0x00000008u, 0x00000503u, + 0x000004e6u, 0x00050085u, 0x00000008u, 0x00000504u, 0x000004e4u, 0x00000503u, 0x0004003du, 0x00000008u, + 0x00000505u, 0x000001ebu, 0x00050081u, 0x00000008u, 0x00000506u, 0x00000505u, 0x00000504u, 0x0003003eu, + 0x000001ebu, 0x00000506u, 0x0004003du, 0x00000008u, 0x00000507u, 0x0000047bu, 0x000300f7u, 0x0000050bu, + 0x00000000u, 0x000400fau, 0x00000508u, 0x0000050au, 0x00000517u, 0x000200f8u, 0x0000050au, 0x00050041u, + 0x000001bbu, 0x0000050cu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000050du, 0x0000050cu, + 0x000500c2u, 0x00000006u, 0x0000050eu, 0x0000050du, 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000050fu, + 0x000001d5u, 0x0004003du, 0x00000006u, 0x00000510u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000511u, + 0x0000050fu, 0x00000510u, 0x00050080u, 0x00000006u, 0x00000512u, 0x00000511u, 0x00000241u, 0x00050080u, + 0x00000006u, 0x00000513u, 0x0000050eu, 0x00000512u, 0x00060041u, 0x00000442u, 0x00000514u, 0x000004c3u, + 0x000000e2u, 0x00000513u, 0x0004003du, 0x00000006u, 0x00000515u, 0x00000514u, 0x0004007cu, 0x00000008u, + 0x00000516u, 0x00000515u, 0x0003003eu, 0x00000509u, 0x00000516u, 0x000200f9u, 0x0000050bu, 0x000200f8u, + 0x00000517u, 0x00050041u, 0x000001bbu, 0x00000518u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x00000519u, 0x00000518u, 0x000500c2u, 0x00000006u, 0x0000051au, 0x00000519u, 0x0000008fu, 0x0004003du, + 0x00000006u, 0x0000051bu, 0x000001d5u, 0x0004003du, 0x00000006u, 0x0000051cu, 0x00000422u, 0x00050080u, + 0x00000006u, 0x0000051du, 0x0000051bu, 0x0000051cu, 0x00050080u, 0x00000006u, 0x0000051eu, 0x0000051du, + 0x00000241u, 0x00050080u, 0x00000006u, 0x0000051fu, 0x0000051au, 0x0000051eu, 0x00060041u, 0x00000453u, + 0x00000520u, 0x000004d2u, 0x000000e2u, 0x0000051fu, 0x0004003du, 0x00000447u, 0x00000521u, 0x00000520u, + 0x00040071u, 0x00000006u, 0x00000522u, 0x00000521u, 0x0003003eu, 0x00000523u, 0x00000522u, 0x0003003eu, + 0x00000524u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000525u, 0x0000001bu, 0x00000523u, 0x00000524u, + 0x0003003eu, 0x00000509u, 0x00000525u, 0x000200f9u, 0x0000050bu, 0x000200f8u, 0x0000050bu, 0x0004003du, + 0x00000008u, 0x00000526u, 0x00000509u, 0x00050085u, 0x00000008u, 0x00000527u, 0x00000507u, 0x00000526u, + 0x0004003du, 0x00000008u, 0x00000528u, 0x000001ecu, 0x00050081u, 0x00000008u, 0x00000529u, 0x00000528u, + 0x00000527u, 0x0003003eu, 0x000001ecu, 0x00000529u, 0x0004003du, 0x00000008u, 0x0000052au, 0x0000049bu, + 0x000300f7u, 0x0000052eu, 0x00000000u, 0x000400fau, 0x0000052bu, 0x0000052du, 0x0000053au, 0x000200f8u, + 0x0000052du, 0x00050041u, 0x000001bbu, 0x0000052fu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x00000530u, 0x0000052fu, 0x000500c2u, 0x00000006u, 0x00000531u, 0x00000530u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x00000532u, 0x000001d5u, 0x0004003du, 0x00000006u, 0x00000533u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x00000534u, 0x00000532u, 0x00000533u, 0x00050080u, 0x00000006u, 0x00000535u, 0x00000534u, + 0x0000020fu, 0x00050080u, 0x00000006u, 0x00000536u, 0x00000531u, 0x00000535u, 0x00060041u, 0x00000442u, + 0x00000537u, 0x000004c3u, 0x000000e2u, 0x00000536u, 0x0004003du, 0x00000006u, 0x00000538u, 0x00000537u, + 0x0004007cu, 0x00000008u, 0x00000539u, 0x00000538u, 0x0003003eu, 0x0000052cu, 0x00000539u, 0x000200f9u, + 0x0000052eu, 0x000200f8u, 0x0000053au, 0x00050041u, 0x000001bbu, 0x0000053bu, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x0000053cu, 0x0000053bu, 0x000500c2u, 0x00000006u, 0x0000053du, 0x0000053cu, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x0000053eu, 0x000001d5u, 0x0004003du, 0x00000006u, 0x0000053fu, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000540u, 0x0000053eu, 0x0000053fu, 0x00050080u, 0x00000006u, + 0x00000541u, 0x00000540u, 0x0000020fu, 0x00050080u, 0x00000006u, 0x00000542u, 0x0000053du, 0x00000541u, + 0x00060041u, 0x00000453u, 0x00000543u, 0x000004d2u, 0x000000e2u, 0x00000542u, 0x0004003du, 0x00000447u, + 0x00000544u, 0x00000543u, 0x00040071u, 0x00000006u, 0x00000545u, 0x00000544u, 0x0003003eu, 0x00000546u, + 0x00000545u, 0x0003003eu, 0x00000547u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000548u, 0x0000001bu, + 0x00000546u, 0x00000547u, 0x0003003eu, 0x0000052cu, 0x00000548u, 0x000200f9u, 0x0000052eu, 0x000200f8u, + 0x0000052eu, 0x0004003du, 0x00000008u, 0x00000549u, 0x0000052cu, 0x00050085u, 0x00000008u, 0x0000054au, + 0x0000052au, 0x00000549u, 0x0004003du, 0x00000008u, 0x0000054bu, 0x000001edu, 0x00050081u, 0x00000008u, + 0x0000054cu, 0x0000054bu, 0x0000054au, 0x0003003eu, 0x000001edu, 0x0000054cu, 0x000300f7u, 0x0000054fu, + 0x00000000u, 0x000400fau, 0x0000054du, 0x0000054eu, 0x0000054fu, 0x000200f8u, 0x0000054eu, 0x0004003du, + 0x00000008u, 0x00000550u, 0x00000432u, 0x000300f7u, 0x00000554u, 0x00000000u, 0x000400fau, 0x00000551u, + 0x00000553u, 0x0000055fu, 0x000200f8u, 0x00000553u, 0x00050041u, 0x000001bbu, 0x00000555u, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x00000556u, 0x00000555u, 0x000500c2u, 0x00000006u, 0x00000557u, + 0x00000556u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000558u, 0x000001dau, 0x0004003du, 0x00000006u, + 0x00000559u, 0x00000422u, 0x00050080u, 0x00000006u, 0x0000055au, 0x00000558u, 0x00000559u, 0x00050080u, + 0x00000006u, 0x0000055bu, 0x00000557u, 0x0000055au, 0x00060041u, 0x00000442u, 0x0000055cu, 0x000004c3u, + 0x000000e2u, 0x0000055bu, 0x0004003du, 0x00000006u, 0x0000055du, 0x0000055cu, 0x0004007cu, 0x00000008u, + 0x0000055eu, 0x0000055du, 0x0003003eu, 0x00000552u, 0x0000055eu, 0x000200f9u, 0x00000554u, 0x000200f8u, + 0x0000055fu, 0x00050041u, 0x000001bbu, 0x00000560u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x00000561u, 0x00000560u, 0x000500c2u, 0x00000006u, 0x00000562u, 0x00000561u, 0x0000008fu, 0x0004003du, + 0x00000006u, 0x00000563u, 0x000001dau, 0x0004003du, 0x00000006u, 0x00000564u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x00000565u, 0x00000563u, 0x00000564u, 0x00050080u, 0x00000006u, 0x00000566u, 0x00000562u, + 0x00000565u, 0x00060041u, 0x00000453u, 0x00000567u, 0x000004d2u, 0x000000e2u, 0x00000566u, 0x0004003du, + 0x00000447u, 0x00000568u, 0x00000567u, 0x00040071u, 0x00000006u, 0x00000569u, 0x00000568u, 0x0003003eu, + 0x0000056au, 0x00000569u, 0x0003003eu, 0x0000056bu, 0x00000294u, 0x00060039u, 0x00000008u, 0x0000056cu, + 0x0000001bu, 0x0000056au, 0x0000056bu, 0x0003003eu, 0x00000552u, 0x0000056cu, 0x000200f9u, 0x00000554u, + 0x000200f8u, 0x00000554u, 0x0004003du, 0x00000008u, 0x0000056du, 0x00000552u, 0x00050085u, 0x00000008u, + 0x0000056eu, 0x00000550u, 0x0000056du, 0x0004003du, 0x00000008u, 0x0000056fu, 0x000001eeu, 0x00050081u, + 0x00000008u, 0x00000570u, 0x0000056fu, 0x0000056eu, 0x0003003eu, 0x000001eeu, 0x00000570u, 0x0004003du, + 0x00000008u, 0x00000571u, 0x0000045bu, 0x000300f7u, 0x00000575u, 0x00000000u, 0x000400fau, 0x00000572u, + 0x00000574u, 0x00000581u, 0x000200f8u, 0x00000574u, 0x00050041u, 0x000001bbu, 0x00000576u, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x00000577u, 0x00000576u, 0x000500c2u, 0x00000006u, 0x00000578u, + 0x00000577u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000579u, 0x000001dau, 0x0004003du, 0x00000006u, + 0x0000057au, 0x00000422u, 0x00050080u, 0x00000006u, 0x0000057bu, 0x00000579u, 0x0000057au, 0x00050080u, + 0x00000006u, 0x0000057cu, 0x0000057bu, 0x00000230u, 0x00050080u, 0x00000006u, 0x0000057du, 0x00000578u, + 0x0000057cu, 0x00060041u, 0x00000442u, 0x0000057eu, 0x000004c3u, 0x000000e2u, 0x0000057du, 0x0004003du, + 0x00000006u, 0x0000057fu, 0x0000057eu, 0x0004007cu, 0x00000008u, 0x00000580u, 0x0000057fu, 0x0003003eu, + 0x00000573u, 0x00000580u, 0x000200f9u, 0x00000575u, 0x000200f8u, 0x00000581u, 0x00050041u, 0x000001bbu, + 0x00000582u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000583u, 0x00000582u, 0x000500c2u, + 0x00000006u, 0x00000584u, 0x00000583u, 0x0000008fu, 0x0004003du, 0x00000006u, 0x00000585u, 0x000001dau, + 0x0004003du, 0x00000006u, 0x00000586u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000587u, 0x00000585u, + 0x00000586u, 0x00050080u, 0x00000006u, 0x00000588u, 0x00000587u, 0x00000230u, 0x00050080u, 0x00000006u, + 0x00000589u, 0x00000584u, 0x00000588u, 0x00060041u, 0x00000453u, 0x0000058au, 0x000004d2u, 0x000000e2u, + 0x00000589u, 0x0004003du, 0x00000447u, 0x0000058bu, 0x0000058au, 0x00040071u, 0x00000006u, 0x0000058cu, + 0x0000058bu, 0x0003003eu, 0x0000058du, 0x0000058cu, 0x0003003eu, 0x0000058eu, 0x00000294u, 0x00060039u, + 0x00000008u, 0x0000058fu, 0x0000001bu, 0x0000058du, 0x0000058eu, 0x0003003eu, 0x00000573u, 0x0000058fu, + 0x000200f9u, 0x00000575u, 0x000200f8u, 0x00000575u, 0x0004003du, 0x00000008u, 0x00000590u, 0x00000573u, + 0x00050085u, 0x00000008u, 0x00000591u, 0x00000571u, 0x00000590u, 0x0004003du, 0x00000008u, 0x00000592u, + 0x000001efu, 0x00050081u, 0x00000008u, 0x00000593u, 0x00000592u, 0x00000591u, 0x0003003eu, 0x000001efu, + 0x00000593u, 0x0004003du, 0x00000008u, 0x00000594u, 0x0000047bu, 0x000300f7u, 0x00000598u, 0x00000000u, + 0x000400fau, 0x00000595u, 0x00000597u, 0x000005a4u, 0x000200f8u, 0x00000597u, 0x00050041u, 0x000001bbu, + 0x00000599u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000059au, 0x00000599u, 0x000500c2u, + 0x00000006u, 0x0000059bu, 0x0000059au, 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000059cu, 0x000001dau, + 0x0004003du, 0x00000006u, 0x0000059du, 0x00000422u, 0x00050080u, 0x00000006u, 0x0000059eu, 0x0000059cu, + 0x0000059du, 0x00050080u, 0x00000006u, 0x0000059fu, 0x0000059eu, 0x00000241u, 0x00050080u, 0x00000006u, + 0x000005a0u, 0x0000059bu, 0x0000059fu, 0x00060041u, 0x00000442u, 0x000005a1u, 0x000004c3u, 0x000000e2u, + 0x000005a0u, 0x0004003du, 0x00000006u, 0x000005a2u, 0x000005a1u, 0x0004007cu, 0x00000008u, 0x000005a3u, + 0x000005a2u, 0x0003003eu, 0x00000596u, 0x000005a3u, 0x000200f9u, 0x00000598u, 0x000200f8u, 0x000005a4u, + 0x00050041u, 0x000001bbu, 0x000005a5u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000005a6u, + 0x000005a5u, 0x000500c2u, 0x00000006u, 0x000005a7u, 0x000005a6u, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x000005a8u, 0x000001dau, 0x0004003du, 0x00000006u, 0x000005a9u, 0x00000422u, 0x00050080u, 0x00000006u, + 0x000005aau, 0x000005a8u, 0x000005a9u, 0x00050080u, 0x00000006u, 0x000005abu, 0x000005aau, 0x00000241u, + 0x00050080u, 0x00000006u, 0x000005acu, 0x000005a7u, 0x000005abu, 0x00060041u, 0x00000453u, 0x000005adu, + 0x000004d2u, 0x000000e2u, 0x000005acu, 0x0004003du, 0x00000447u, 0x000005aeu, 0x000005adu, 0x00040071u, + 0x00000006u, 0x000005afu, 0x000005aeu, 0x0003003eu, 0x000005b0u, 0x000005afu, 0x0003003eu, 0x000005b1u, + 0x00000294u, 0x00060039u, 0x00000008u, 0x000005b2u, 0x0000001bu, 0x000005b0u, 0x000005b1u, 0x0003003eu, + 0x00000596u, 0x000005b2u, 0x000200f9u, 0x00000598u, 0x000200f8u, 0x00000598u, 0x0004003du, 0x00000008u, + 0x000005b3u, 0x00000596u, 0x00050085u, 0x00000008u, 0x000005b4u, 0x00000594u, 0x000005b3u, 0x0004003du, + 0x00000008u, 0x000005b5u, 0x000001f0u, 0x00050081u, 0x00000008u, 0x000005b6u, 0x000005b5u, 0x000005b4u, + 0x0003003eu, 0x000001f0u, 0x000005b6u, 0x0004003du, 0x00000008u, 0x000005b7u, 0x0000049bu, 0x000300f7u, + 0x000005bbu, 0x00000000u, 0x000400fau, 0x000005b8u, 0x000005bau, 0x000005c7u, 0x000200f8u, 0x000005bau, + 0x00050041u, 0x000001bbu, 0x000005bcu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000005bdu, + 0x000005bcu, 0x000500c2u, 0x00000006u, 0x000005beu, 0x000005bdu, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x000005bfu, 0x000001dau, 0x0004003du, 0x00000006u, 0x000005c0u, 0x00000422u, 0x00050080u, 0x00000006u, + 0x000005c1u, 0x000005bfu, 0x000005c0u, 0x00050080u, 0x00000006u, 0x000005c2u, 0x000005c1u, 0x0000020fu, + 0x00050080u, 0x00000006u, 0x000005c3u, 0x000005beu, 0x000005c2u, 0x00060041u, 0x00000442u, 0x000005c4u, + 0x000004c3u, 0x000000e2u, 0x000005c3u, 0x0004003du, 0x00000006u, 0x000005c5u, 0x000005c4u, 0x0004007cu, + 0x00000008u, 0x000005c6u, 0x000005c5u, 0x0003003eu, 0x000005b9u, 0x000005c6u, 0x000200f9u, 0x000005bbu, + 0x000200f8u, 0x000005c7u, 0x00050041u, 0x000001bbu, 0x000005c8u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x000005c9u, 0x000005c8u, 0x000500c2u, 0x00000006u, 0x000005cau, 0x000005c9u, 0x0000008fu, + 0x0004003du, 0x00000006u, 0x000005cbu, 0x000001dau, 0x0004003du, 0x00000006u, 0x000005ccu, 0x00000422u, + 0x00050080u, 0x00000006u, 0x000005cdu, 0x000005cbu, 0x000005ccu, 0x00050080u, 0x00000006u, 0x000005ceu, + 0x000005cdu, 0x0000020fu, 0x00050080u, 0x00000006u, 0x000005cfu, 0x000005cau, 0x000005ceu, 0x00060041u, + 0x00000453u, 0x000005d0u, 0x000004d2u, 0x000000e2u, 0x000005cfu, 0x0004003du, 0x00000447u, 0x000005d1u, + 0x000005d0u, 0x00040071u, 0x00000006u, 0x000005d2u, 0x000005d1u, 0x0003003eu, 0x000005d3u, 0x000005d2u, + 0x0003003eu, 0x000005d4u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000005d5u, 0x0000001bu, 0x000005d3u, + 0x000005d4u, 0x0003003eu, 0x000005b9u, 0x000005d5u, 0x000200f9u, 0x000005bbu, 0x000200f8u, 0x000005bbu, + 0x0004003du, 0x00000008u, 0x000005d6u, 0x000005b9u, 0x00050085u, 0x00000008u, 0x000005d7u, 0x000005b7u, + 0x000005d6u, 0x0004003du, 0x00000008u, 0x000005d8u, 0x000001f1u, 0x00050081u, 0x00000008u, 0x000005d9u, + 0x000005d8u, 0x000005d7u, 0x0003003eu, 0x000001f1u, 0x000005d9u, 0x000200f9u, 0x0000054fu, 0x000200f8u, + 0x0000054fu, 0x000300f7u, 0x000005dcu, 0x00000000u, 0x000400fau, 0x000005dau, 0x000005dbu, 0x000005dcu, + 0x000200f8u, 0x000005dbu, 0x0004003du, 0x00000008u, 0x000005ddu, 0x00000432u, 0x000300f7u, 0x000005e1u, + 0x00000000u, 0x000400fau, 0x000005deu, 0x000005e0u, 0x000005ecu, 0x000200f8u, 0x000005e0u, 0x00050041u, + 0x000001bbu, 0x000005e2u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000005e3u, 0x000005e2u, + 0x000500c2u, 0x00000006u, 0x000005e4u, 0x000005e3u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000005e5u, + 0x000001dfu, 0x0004003du, 0x00000006u, 0x000005e6u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000005e7u, + 0x000005e5u, 0x000005e6u, 0x00050080u, 0x00000006u, 0x000005e8u, 0x000005e4u, 0x000005e7u, 0x00060041u, + 0x00000442u, 0x000005e9u, 0x000004c3u, 0x000000e2u, 0x000005e8u, 0x0004003du, 0x00000006u, 0x000005eau, + 0x000005e9u, 0x0004007cu, 0x00000008u, 0x000005ebu, 0x000005eau, 0x0003003eu, 0x000005dfu, 0x000005ebu, + 0x000200f9u, 0x000005e1u, 0x000200f8u, 0x000005ecu, 0x00050041u, 0x000001bbu, 0x000005edu, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x000005eeu, 0x000005edu, 0x000500c2u, 0x00000006u, 0x000005efu, + 0x000005eeu, 0x0000008fu, 0x0004003du, 0x00000006u, 0x000005f0u, 0x000001dfu, 0x0004003du, 0x00000006u, + 0x000005f1u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000005f2u, 0x000005f0u, 0x000005f1u, 0x00050080u, + 0x00000006u, 0x000005f3u, 0x000005efu, 0x000005f2u, 0x00060041u, 0x00000453u, 0x000005f4u, 0x000004d2u, + 0x000000e2u, 0x000005f3u, 0x0004003du, 0x00000447u, 0x000005f5u, 0x000005f4u, 0x00040071u, 0x00000006u, + 0x000005f6u, 0x000005f5u, 0x0003003eu, 0x000005f7u, 0x000005f6u, 0x0003003eu, 0x000005f8u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x000005f9u, 0x0000001bu, 0x000005f7u, 0x000005f8u, 0x0003003eu, 0x000005dfu, + 0x000005f9u, 0x000200f9u, 0x000005e1u, 0x000200f8u, 0x000005e1u, 0x0004003du, 0x00000008u, 0x000005fau, + 0x000005dfu, 0x00050085u, 0x00000008u, 0x000005fbu, 0x000005ddu, 0x000005fau, 0x0004003du, 0x00000008u, + 0x000005fcu, 0x000001f2u, 0x00050081u, 0x00000008u, 0x000005fdu, 0x000005fcu, 0x000005fbu, 0x0003003eu, + 0x000001f2u, 0x000005fdu, 0x0004003du, 0x00000008u, 0x000005feu, 0x0000045bu, 0x000300f7u, 0x00000602u, + 0x00000000u, 0x000400fau, 0x000005ffu, 0x00000601u, 0x0000060eu, 0x000200f8u, 0x00000601u, 0x00050041u, + 0x000001bbu, 0x00000603u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000604u, 0x00000603u, + 0x000500c2u, 0x00000006u, 0x00000605u, 0x00000604u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000606u, + 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000607u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000608u, + 0x00000606u, 0x00000607u, 0x00050080u, 0x00000006u, 0x00000609u, 0x00000608u, 0x00000230u, 0x00050080u, + 0x00000006u, 0x0000060au, 0x00000605u, 0x00000609u, 0x00060041u, 0x00000442u, 0x0000060bu, 0x000004c3u, + 0x000000e2u, 0x0000060au, 0x0004003du, 0x00000006u, 0x0000060cu, 0x0000060bu, 0x0004007cu, 0x00000008u, + 0x0000060du, 0x0000060cu, 0x0003003eu, 0x00000600u, 0x0000060du, 0x000200f9u, 0x00000602u, 0x000200f8u, + 0x0000060eu, 0x00050041u, 0x000001bbu, 0x0000060fu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x00000610u, 0x0000060fu, 0x000500c2u, 0x00000006u, 0x00000611u, 0x00000610u, 0x0000008fu, 0x0004003du, + 0x00000006u, 0x00000612u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000613u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x00000614u, 0x00000612u, 0x00000613u, 0x00050080u, 0x00000006u, 0x00000615u, 0x00000614u, + 0x00000230u, 0x00050080u, 0x00000006u, 0x00000616u, 0x00000611u, 0x00000615u, 0x00060041u, 0x00000453u, + 0x00000617u, 0x000004d2u, 0x000000e2u, 0x00000616u, 0x0004003du, 0x00000447u, 0x00000618u, 0x00000617u, + 0x00040071u, 0x00000006u, 0x00000619u, 0x00000618u, 0x0003003eu, 0x0000061au, 0x00000619u, 0x0003003eu, + 0x0000061bu, 0x00000294u, 0x00060039u, 0x00000008u, 0x0000061cu, 0x0000001bu, 0x0000061au, 0x0000061bu, + 0x0003003eu, 0x00000600u, 0x0000061cu, 0x000200f9u, 0x00000602u, 0x000200f8u, 0x00000602u, 0x0004003du, + 0x00000008u, 0x0000061du, 0x00000600u, 0x00050085u, 0x00000008u, 0x0000061eu, 0x000005feu, 0x0000061du, + 0x0004003du, 0x00000008u, 0x0000061fu, 0x000001f3u, 0x00050081u, 0x00000008u, 0x00000620u, 0x0000061fu, + 0x0000061eu, 0x0003003eu, 0x000001f3u, 0x00000620u, 0x0004003du, 0x00000008u, 0x00000621u, 0x0000047bu, + 0x000300f7u, 0x00000625u, 0x00000000u, 0x000400fau, 0x00000622u, 0x00000624u, 0x00000631u, 0x000200f8u, + 0x00000624u, 0x00050041u, 0x000001bbu, 0x00000626u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x00000627u, 0x00000626u, 0x000500c2u, 0x00000006u, 0x00000628u, 0x00000627u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x00000629u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x0000062au, 0x00000422u, 0x00050080u, + 0x00000006u, 0x0000062bu, 0x00000629u, 0x0000062au, 0x00050080u, 0x00000006u, 0x0000062cu, 0x0000062bu, + 0x00000241u, 0x00050080u, 0x00000006u, 0x0000062du, 0x00000628u, 0x0000062cu, 0x00060041u, 0x00000442u, + 0x0000062eu, 0x000004c3u, 0x000000e2u, 0x0000062du, 0x0004003du, 0x00000006u, 0x0000062fu, 0x0000062eu, + 0x0004007cu, 0x00000008u, 0x00000630u, 0x0000062fu, 0x0003003eu, 0x00000623u, 0x00000630u, 0x000200f9u, + 0x00000625u, 0x000200f8u, 0x00000631u, 0x00050041u, 0x000001bbu, 0x00000632u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x00000633u, 0x00000632u, 0x000500c2u, 0x00000006u, 0x00000634u, 0x00000633u, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x00000635u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000636u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000637u, 0x00000635u, 0x00000636u, 0x00050080u, 0x00000006u, + 0x00000638u, 0x00000637u, 0x00000241u, 0x00050080u, 0x00000006u, 0x00000639u, 0x00000634u, 0x00000638u, + 0x00060041u, 0x00000453u, 0x0000063au, 0x000004d2u, 0x000000e2u, 0x00000639u, 0x0004003du, 0x00000447u, + 0x0000063bu, 0x0000063au, 0x00040071u, 0x00000006u, 0x0000063cu, 0x0000063bu, 0x0003003eu, 0x0000063du, + 0x0000063cu, 0x0003003eu, 0x0000063eu, 0x00000294u, 0x00060039u, 0x00000008u, 0x0000063fu, 0x0000001bu, + 0x0000063du, 0x0000063eu, 0x0003003eu, 0x00000623u, 0x0000063fu, 0x000200f9u, 0x00000625u, 0x000200f8u, + 0x00000625u, 0x0004003du, 0x00000008u, 0x00000640u, 0x00000623u, 0x00050085u, 0x00000008u, 0x00000641u, + 0x00000621u, 0x00000640u, 0x0004003du, 0x00000008u, 0x00000642u, 0x000001f4u, 0x00050081u, 0x00000008u, + 0x00000643u, 0x00000642u, 0x00000641u, 0x0003003eu, 0x000001f4u, 0x00000643u, 0x0004003du, 0x00000008u, + 0x00000644u, 0x0000049bu, 0x000300f7u, 0x00000648u, 0x00000000u, 0x000400fau, 0x00000645u, 0x00000647u, + 0x00000654u, 0x000200f8u, 0x00000647u, 0x00050041u, 0x000001bbu, 0x00000649u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x0000064au, 0x00000649u, 0x000500c2u, 0x00000006u, 0x0000064bu, 0x0000064au, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000064cu, 0x000001dfu, 0x0004003du, 0x00000006u, 0x0000064du, + 0x00000422u, 0x00050080u, 0x00000006u, 0x0000064eu, 0x0000064cu, 0x0000064du, 0x00050080u, 0x00000006u, + 0x0000064fu, 0x0000064eu, 0x0000020fu, 0x00050080u, 0x00000006u, 0x00000650u, 0x0000064bu, 0x0000064fu, + 0x00060041u, 0x00000442u, 0x00000651u, 0x000004c3u, 0x000000e2u, 0x00000650u, 0x0004003du, 0x00000006u, + 0x00000652u, 0x00000651u, 0x0004007cu, 0x00000008u, 0x00000653u, 0x00000652u, 0x0003003eu, 0x00000646u, + 0x00000653u, 0x000200f9u, 0x00000648u, 0x000200f8u, 0x00000654u, 0x00050041u, 0x000001bbu, 0x00000655u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000656u, 0x00000655u, 0x000500c2u, 0x00000006u, + 0x00000657u, 0x00000656u, 0x0000008fu, 0x0004003du, 0x00000006u, 0x00000658u, 0x000001dfu, 0x0004003du, + 0x00000006u, 0x00000659u, 0x00000422u, 0x00050080u, 0x00000006u, 0x0000065au, 0x00000658u, 0x00000659u, + 0x00050080u, 0x00000006u, 0x0000065bu, 0x0000065au, 0x0000020fu, 0x00050080u, 0x00000006u, 0x0000065cu, + 0x00000657u, 0x0000065bu, 0x00060041u, 0x00000453u, 0x0000065du, 0x000004d2u, 0x000000e2u, 0x0000065cu, + 0x0004003du, 0x00000447u, 0x0000065eu, 0x0000065du, 0x00040071u, 0x00000006u, 0x0000065fu, 0x0000065eu, + 0x0003003eu, 0x00000660u, 0x0000065fu, 0x0003003eu, 0x00000661u, 0x00000294u, 0x00060039u, 0x00000008u, + 0x00000662u, 0x0000001bu, 0x00000660u, 0x00000661u, 0x0003003eu, 0x00000646u, 0x00000662u, 0x000200f9u, + 0x00000648u, 0x000200f8u, 0x00000648u, 0x0004003du, 0x00000008u, 0x00000663u, 0x00000646u, 0x00050085u, + 0x00000008u, 0x00000664u, 0x00000644u, 0x00000663u, 0x0004003du, 0x00000008u, 0x00000665u, 0x000001f5u, + 0x00050081u, 0x00000008u, 0x00000666u, 0x00000665u, 0x00000664u, 0x0003003eu, 0x000001f5u, 0x00000666u, + 0x0004003du, 0x00000008u, 0x00000667u, 0x00000432u, 0x000300f7u, 0x0000066bu, 0x00000000u, 0x000400fau, + 0x00000668u, 0x0000066au, 0x00000676u, 0x000200f8u, 0x0000066au, 0x00050041u, 0x000001bbu, 0x0000066cu, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000066du, 0x0000066cu, 0x000500c2u, 0x00000006u, + 0x0000066eu, 0x0000066du, 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000066fu, 0x000001e4u, 0x0004003du, + 0x00000006u, 0x00000670u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000671u, 0x0000066fu, 0x00000670u, + 0x00050080u, 0x00000006u, 0x00000672u, 0x0000066eu, 0x00000671u, 0x00060041u, 0x00000442u, 0x00000673u, + 0x000004c3u, 0x000000e2u, 0x00000672u, 0x0004003du, 0x00000006u, 0x00000674u, 0x00000673u, 0x0004007cu, + 0x00000008u, 0x00000675u, 0x00000674u, 0x0003003eu, 0x00000669u, 0x00000675u, 0x000200f9u, 0x0000066bu, + 0x000200f8u, 0x00000676u, 0x00050041u, 0x000001bbu, 0x00000677u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x00000678u, 0x00000677u, 0x000500c2u, 0x00000006u, 0x00000679u, 0x00000678u, 0x0000008fu, + 0x0004003du, 0x00000006u, 0x0000067au, 0x000001e4u, 0x0004003du, 0x00000006u, 0x0000067bu, 0x00000422u, + 0x00050080u, 0x00000006u, 0x0000067cu, 0x0000067au, 0x0000067bu, 0x00050080u, 0x00000006u, 0x0000067du, + 0x00000679u, 0x0000067cu, 0x00060041u, 0x00000453u, 0x0000067eu, 0x000004d2u, 0x000000e2u, 0x0000067du, + 0x0004003du, 0x00000447u, 0x0000067fu, 0x0000067eu, 0x00040071u, 0x00000006u, 0x00000680u, 0x0000067fu, + 0x0003003eu, 0x00000681u, 0x00000680u, 0x0003003eu, 0x00000682u, 0x00000294u, 0x00060039u, 0x00000008u, + 0x00000683u, 0x0000001bu, 0x00000681u, 0x00000682u, 0x0003003eu, 0x00000669u, 0x00000683u, 0x000200f9u, + 0x0000066bu, 0x000200f8u, 0x0000066bu, 0x0004003du, 0x00000008u, 0x00000684u, 0x00000669u, 0x00050085u, + 0x00000008u, 0x00000685u, 0x00000667u, 0x00000684u, 0x0004003du, 0x00000008u, 0x00000686u, 0x000001f6u, + 0x00050081u, 0x00000008u, 0x00000687u, 0x00000686u, 0x00000685u, 0x0003003eu, 0x000001f6u, 0x00000687u, + 0x0004003du, 0x00000008u, 0x00000688u, 0x0000045bu, 0x000300f7u, 0x0000068cu, 0x00000000u, 0x000400fau, + 0x00000689u, 0x0000068bu, 0x00000698u, 0x000200f8u, 0x0000068bu, 0x00050041u, 0x000001bbu, 0x0000068du, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000068eu, 0x0000068du, 0x000500c2u, 0x00000006u, + 0x0000068fu, 0x0000068eu, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000690u, 0x000001e4u, 0x0004003du, + 0x00000006u, 0x00000691u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000692u, 0x00000690u, 0x00000691u, + 0x00050080u, 0x00000006u, 0x00000693u, 0x00000692u, 0x00000230u, 0x00050080u, 0x00000006u, 0x00000694u, + 0x0000068fu, 0x00000693u, 0x00060041u, 0x00000442u, 0x00000695u, 0x000004c3u, 0x000000e2u, 0x00000694u, + 0x0004003du, 0x00000006u, 0x00000696u, 0x00000695u, 0x0004007cu, 0x00000008u, 0x00000697u, 0x00000696u, + 0x0003003eu, 0x0000068au, 0x00000697u, 0x000200f9u, 0x0000068cu, 0x000200f8u, 0x00000698u, 0x00050041u, + 0x000001bbu, 0x00000699u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000069au, 0x00000699u, + 0x000500c2u, 0x00000006u, 0x0000069bu, 0x0000069au, 0x0000008fu, 0x0004003du, 0x00000006u, 0x0000069cu, + 0x000001e4u, 0x0004003du, 0x00000006u, 0x0000069du, 0x00000422u, 0x00050080u, 0x00000006u, 0x0000069eu, + 0x0000069cu, 0x0000069du, 0x00050080u, 0x00000006u, 0x0000069fu, 0x0000069eu, 0x00000230u, 0x00050080u, + 0x00000006u, 0x000006a0u, 0x0000069bu, 0x0000069fu, 0x00060041u, 0x00000453u, 0x000006a1u, 0x000004d2u, + 0x000000e2u, 0x000006a0u, 0x0004003du, 0x00000447u, 0x000006a2u, 0x000006a1u, 0x00040071u, 0x00000006u, + 0x000006a3u, 0x000006a2u, 0x0003003eu, 0x000006a4u, 0x000006a3u, 0x0003003eu, 0x000006a5u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x000006a6u, 0x0000001bu, 0x000006a4u, 0x000006a5u, 0x0003003eu, 0x0000068au, + 0x000006a6u, 0x000200f9u, 0x0000068cu, 0x000200f8u, 0x0000068cu, 0x0004003du, 0x00000008u, 0x000006a7u, + 0x0000068au, 0x00050085u, 0x00000008u, 0x000006a8u, 0x00000688u, 0x000006a7u, 0x0004003du, 0x00000008u, + 0x000006a9u, 0x000001f7u, 0x00050081u, 0x00000008u, 0x000006aau, 0x000006a9u, 0x000006a8u, 0x0003003eu, + 0x000001f7u, 0x000006aau, 0x0004003du, 0x00000008u, 0x000006abu, 0x0000047bu, 0x000300f7u, 0x000006afu, + 0x00000000u, 0x000400fau, 0x000006acu, 0x000006aeu, 0x000006bbu, 0x000200f8u, 0x000006aeu, 0x00050041u, + 0x000001bbu, 0x000006b0u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000006b1u, 0x000006b0u, + 0x000500c2u, 0x00000006u, 0x000006b2u, 0x000006b1u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000006b3u, + 0x000001e4u, 0x0004003du, 0x00000006u, 0x000006b4u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000006b5u, + 0x000006b3u, 0x000006b4u, 0x00050080u, 0x00000006u, 0x000006b6u, 0x000006b5u, 0x00000241u, 0x00050080u, + 0x00000006u, 0x000006b7u, 0x000006b2u, 0x000006b6u, 0x00060041u, 0x00000442u, 0x000006b8u, 0x000004c3u, + 0x000000e2u, 0x000006b7u, 0x0004003du, 0x00000006u, 0x000006b9u, 0x000006b8u, 0x0004007cu, 0x00000008u, + 0x000006bau, 0x000006b9u, 0x0003003eu, 0x000006adu, 0x000006bau, 0x000200f9u, 0x000006afu, 0x000200f8u, + 0x000006bbu, 0x00050041u, 0x000001bbu, 0x000006bcu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x000006bdu, 0x000006bcu, 0x000500c2u, 0x00000006u, 0x000006beu, 0x000006bdu, 0x0000008fu, 0x0004003du, + 0x00000006u, 0x000006bfu, 0x000001e4u, 0x0004003du, 0x00000006u, 0x000006c0u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x000006c1u, 0x000006bfu, 0x000006c0u, 0x00050080u, 0x00000006u, 0x000006c2u, 0x000006c1u, + 0x00000241u, 0x00050080u, 0x00000006u, 0x000006c3u, 0x000006beu, 0x000006c2u, 0x00060041u, 0x00000453u, + 0x000006c4u, 0x000004d2u, 0x000000e2u, 0x000006c3u, 0x0004003du, 0x00000447u, 0x000006c5u, 0x000006c4u, + 0x00040071u, 0x00000006u, 0x000006c6u, 0x000006c5u, 0x0003003eu, 0x000006c7u, 0x000006c6u, 0x0003003eu, + 0x000006c8u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000006c9u, 0x0000001bu, 0x000006c7u, 0x000006c8u, + 0x0003003eu, 0x000006adu, 0x000006c9u, 0x000200f9u, 0x000006afu, 0x000200f8u, 0x000006afu, 0x0004003du, + 0x00000008u, 0x000006cau, 0x000006adu, 0x00050085u, 0x00000008u, 0x000006cbu, 0x000006abu, 0x000006cau, + 0x0004003du, 0x00000008u, 0x000006ccu, 0x000001f8u, 0x00050081u, 0x00000008u, 0x000006cdu, 0x000006ccu, + 0x000006cbu, 0x0003003eu, 0x000001f8u, 0x000006cdu, 0x0004003du, 0x00000008u, 0x000006ceu, 0x0000049bu, + 0x000300f7u, 0x000006d2u, 0x00000000u, 0x000400fau, 0x000006cfu, 0x000006d1u, 0x000006deu, 0x000200f8u, + 0x000006d1u, 0x00050041u, 0x000001bbu, 0x000006d3u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x000006d4u, 0x000006d3u, 0x000500c2u, 0x00000006u, 0x000006d5u, 0x000006d4u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x000006d6u, 0x000001e4u, 0x0004003du, 0x00000006u, 0x000006d7u, 0x00000422u, 0x00050080u, + 0x00000006u, 0x000006d8u, 0x000006d6u, 0x000006d7u, 0x00050080u, 0x00000006u, 0x000006d9u, 0x000006d8u, + 0x0000020fu, 0x00050080u, 0x00000006u, 0x000006dau, 0x000006d5u, 0x000006d9u, 0x00060041u, 0x00000442u, + 0x000006dbu, 0x000004c3u, 0x000000e2u, 0x000006dau, 0x0004003du, 0x00000006u, 0x000006dcu, 0x000006dbu, + 0x0004007cu, 0x00000008u, 0x000006ddu, 0x000006dcu, 0x0003003eu, 0x000006d0u, 0x000006ddu, 0x000200f9u, + 0x000006d2u, 0x000200f8u, 0x000006deu, 0x00050041u, 0x000001bbu, 0x000006dfu, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x000006e0u, 0x000006dfu, 0x000500c2u, 0x00000006u, 0x000006e1u, 0x000006e0u, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x000006e2u, 0x000001e4u, 0x0004003du, 0x00000006u, 0x000006e3u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x000006e4u, 0x000006e2u, 0x000006e3u, 0x00050080u, 0x00000006u, + 0x000006e5u, 0x000006e4u, 0x0000020fu, 0x00050080u, 0x00000006u, 0x000006e6u, 0x000006e1u, 0x000006e5u, + 0x00060041u, 0x00000453u, 0x000006e7u, 0x000004d2u, 0x000000e2u, 0x000006e6u, 0x0004003du, 0x00000447u, + 0x000006e8u, 0x000006e7u, 0x00040071u, 0x00000006u, 0x000006e9u, 0x000006e8u, 0x0003003eu, 0x000006eau, + 0x000006e9u, 0x0003003eu, 0x000006ebu, 0x00000294u, 0x00060039u, 0x00000008u, 0x000006ecu, 0x0000001bu, + 0x000006eau, 0x000006ebu, 0x0003003eu, 0x000006d0u, 0x000006ecu, 0x000200f9u, 0x000006d2u, 0x000200f8u, + 0x000006d2u, 0x0004003du, 0x00000008u, 0x000006edu, 0x000006d0u, 0x00050085u, 0x00000008u, 0x000006eeu, + 0x000006ceu, 0x000006edu, 0x0004003du, 0x00000008u, 0x000006efu, 0x000001f9u, 0x00050081u, 0x00000008u, + 0x000006f0u, 0x000006efu, 0x000006eeu, 0x0003003eu, 0x000001f9u, 0x000006f0u, 0x000200f9u, 0x000005dcu, + 0x000200f8u, 0x000005dcu, 0x000200f9u, 0x00000427u, 0x000200f8u, 0x00000427u, 0x0004003du, 0x00000006u, + 0x000006f2u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000006f3u, 0x000006f2u, 0x000006f1u, 0x0003003eu, + 0x00000422u, 0x000006f3u, 0x000200f9u, 0x00000424u, 0x000200f8u, 0x00000426u, 0x000200f9u, 0x000006f4u, + 0x000200f8u, 0x000006f4u, 0x000400f6u, 0x000006f6u, 0x000006f7u, 0x00000000u, 0x000200f9u, 0x000006f8u, + 0x000200f8u, 0x000006f8u, 0x0004003du, 0x00000006u, 0x000006f9u, 0x00000422u, 0x00050041u, 0x000001bbu, + 0x000006fau, 0x000001bau, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000006fbu, 0x000006fau, 0x000500b0u, + 0x0000003bu, 0x000006fcu, 0x000006f9u, 0x000006fbu, 0x000400fau, 0x000006fcu, 0x000006f5u, 0x000006f6u, + 0x000200f8u, 0x000006f5u, 0x000300f7u, 0x00000701u, 0x00000000u, 0x000400fau, 0x000006feu, 0x00000700u, + 0x0000070cu, 0x000200f8u, 0x00000700u, 0x00050041u, 0x000001bbu, 0x00000702u, 0x000001bau, 0x00000219u, + 0x0004003du, 0x00000006u, 0x00000703u, 0x00000702u, 0x000500c2u, 0x00000006u, 0x00000704u, 0x00000703u, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000705u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000706u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000707u, 0x00000705u, 0x00000706u, 0x00050080u, 0x00000006u, + 0x00000708u, 0x00000704u, 0x00000707u, 0x00060041u, 0x00000442u, 0x00000709u, 0x0000043au, 0x000000e2u, + 0x00000708u, 0x0004003du, 0x00000006u, 0x0000070au, 0x00000709u, 0x0004007cu, 0x00000008u, 0x0000070bu, + 0x0000070au, 0x0003003eu, 0x000006ffu, 0x0000070bu, 0x000200f9u, 0x00000701u, 0x000200f8u, 0x0000070cu, + 0x00050041u, 0x000001bbu, 0x0000070du, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x0000070eu, + 0x0000070du, 0x000500c2u, 0x00000006u, 0x0000070fu, 0x0000070eu, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x00000710u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x00000711u, 0x00000422u, 0x00050080u, 0x00000006u, + 0x00000712u, 0x00000710u, 0x00000711u, 0x00050080u, 0x00000006u, 0x00000713u, 0x0000070fu, 0x00000712u, + 0x00060041u, 0x00000453u, 0x00000714u, 0x0000044bu, 0x000000e2u, 0x00000713u, 0x0004003du, 0x00000447u, + 0x00000715u, 0x00000714u, 0x00040071u, 0x00000006u, 0x00000716u, 0x00000715u, 0x0003003eu, 0x00000717u, + 0x00000716u, 0x0003003eu, 0x00000718u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000719u, 0x0000001bu, + 0x00000717u, 0x00000718u, 0x0003003eu, 0x000006ffu, 0x00000719u, 0x000200f9u, 0x00000701u, 0x000200f8u, + 0x00000701u, 0x0004003du, 0x00000008u, 0x0000071au, 0x000006ffu, 0x0003003eu, 0x000006fdu, 0x0000071au, + 0x0004003du, 0x00000008u, 0x0000071bu, 0x000006fdu, 0x000300f7u, 0x0000071fu, 0x00000000u, 0x000400fau, + 0x0000071cu, 0x0000071eu, 0x0000072au, 0x000200f8u, 0x0000071eu, 0x00050041u, 0x000001bbu, 0x00000720u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000721u, 0x00000720u, 0x000500c2u, 0x00000006u, + 0x00000722u, 0x00000721u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000723u, 0x000001d5u, 0x0004003du, + 0x00000006u, 0x00000724u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000725u, 0x00000723u, 0x00000724u, + 0x00050080u, 0x00000006u, 0x00000726u, 0x00000722u, 0x00000725u, 0x00060041u, 0x00000442u, 0x00000727u, + 0x000004c3u, 0x000000e2u, 0x00000726u, 0x0004003du, 0x00000006u, 0x00000728u, 0x00000727u, 0x0004007cu, + 0x00000008u, 0x00000729u, 0x00000728u, 0x0003003eu, 0x0000071du, 0x00000729u, 0x000200f9u, 0x0000071fu, + 0x000200f8u, 0x0000072au, 0x00050041u, 0x000001bbu, 0x0000072bu, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x0000072cu, 0x0000072bu, 0x000500c2u, 0x00000006u, 0x0000072du, 0x0000072cu, 0x0000008fu, + 0x0004003du, 0x00000006u, 0x0000072eu, 0x000001d5u, 0x0004003du, 0x00000006u, 0x0000072fu, 0x00000422u, + 0x00050080u, 0x00000006u, 0x00000730u, 0x0000072eu, 0x0000072fu, 0x00050080u, 0x00000006u, 0x00000731u, + 0x0000072du, 0x00000730u, 0x00060041u, 0x00000453u, 0x00000732u, 0x000004d2u, 0x000000e2u, 0x00000731u, + 0x0004003du, 0x00000447u, 0x00000733u, 0x00000732u, 0x00040071u, 0x00000006u, 0x00000734u, 0x00000733u, + 0x0003003eu, 0x00000735u, 0x00000734u, 0x0003003eu, 0x00000736u, 0x00000294u, 0x00060039u, 0x00000008u, + 0x00000737u, 0x0000001bu, 0x00000735u, 0x00000736u, 0x0003003eu, 0x0000071du, 0x00000737u, 0x000200f9u, + 0x0000071fu, 0x000200f8u, 0x0000071fu, 0x0004003du, 0x00000008u, 0x00000738u, 0x0000071du, 0x00050085u, + 0x00000008u, 0x00000739u, 0x0000071bu, 0x00000738u, 0x0004003du, 0x00000008u, 0x0000073au, 0x000001e9u, + 0x00050081u, 0x00000008u, 0x0000073bu, 0x0000073au, 0x00000739u, 0x0003003eu, 0x000001e9u, 0x0000073bu, + 0x000300f7u, 0x0000073eu, 0x00000000u, 0x000400fau, 0x0000073cu, 0x0000073du, 0x0000073eu, 0x000200f8u, + 0x0000073du, 0x0004003du, 0x00000008u, 0x0000073fu, 0x000006fdu, 0x000300f7u, 0x00000743u, 0x00000000u, + 0x000400fau, 0x00000740u, 0x00000742u, 0x0000074eu, 0x000200f8u, 0x00000742u, 0x00050041u, 0x000001bbu, + 0x00000744u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000745u, 0x00000744u, 0x000500c2u, + 0x00000006u, 0x00000746u, 0x00000745u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000747u, 0x000001dau, + 0x0004003du, 0x00000006u, 0x00000748u, 0x00000422u, 0x00050080u, 0x00000006u, 0x00000749u, 0x00000747u, + 0x00000748u, 0x00050080u, 0x00000006u, 0x0000074au, 0x00000746u, 0x00000749u, 0x00060041u, 0x00000442u, + 0x0000074bu, 0x000004c3u, 0x000000e2u, 0x0000074au, 0x0004003du, 0x00000006u, 0x0000074cu, 0x0000074bu, + 0x0004007cu, 0x00000008u, 0x0000074du, 0x0000074cu, 0x0003003eu, 0x00000741u, 0x0000074du, 0x000200f9u, + 0x00000743u, 0x000200f8u, 0x0000074eu, 0x00050041u, 0x000001bbu, 0x0000074fu, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x00000750u, 0x0000074fu, 0x000500c2u, 0x00000006u, 0x00000751u, 0x00000750u, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x00000752u, 0x000001dau, 0x0004003du, 0x00000006u, 0x00000753u, + 0x00000422u, 0x00050080u, 0x00000006u, 0x00000754u, 0x00000752u, 0x00000753u, 0x00050080u, 0x00000006u, + 0x00000755u, 0x00000751u, 0x00000754u, 0x00060041u, 0x00000453u, 0x00000756u, 0x000004d2u, 0x000000e2u, + 0x00000755u, 0x0004003du, 0x00000447u, 0x00000757u, 0x00000756u, 0x00040071u, 0x00000006u, 0x00000758u, + 0x00000757u, 0x0003003eu, 0x00000759u, 0x00000758u, 0x0003003eu, 0x0000075au, 0x00000294u, 0x00060039u, + 0x00000008u, 0x0000075bu, 0x0000001bu, 0x00000759u, 0x0000075au, 0x0003003eu, 0x00000741u, 0x0000075bu, + 0x000200f9u, 0x00000743u, 0x000200f8u, 0x00000743u, 0x0004003du, 0x00000008u, 0x0000075cu, 0x00000741u, + 0x00050085u, 0x00000008u, 0x0000075du, 0x0000073fu, 0x0000075cu, 0x0004003du, 0x00000008u, 0x0000075eu, + 0x000001eeu, 0x00050081u, 0x00000008u, 0x0000075fu, 0x0000075eu, 0x0000075du, 0x0003003eu, 0x000001eeu, + 0x0000075fu, 0x000200f9u, 0x0000073eu, 0x000200f8u, 0x0000073eu, 0x000300f7u, 0x00000762u, 0x00000000u, + 0x000400fau, 0x00000760u, 0x00000761u, 0x00000762u, 0x000200f8u, 0x00000761u, 0x0004003du, 0x00000008u, + 0x00000763u, 0x000006fdu, 0x000300f7u, 0x00000767u, 0x00000000u, 0x000400fau, 0x00000764u, 0x00000766u, + 0x00000772u, 0x000200f8u, 0x00000766u, 0x00050041u, 0x000001bbu, 0x00000768u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x00000769u, 0x00000768u, 0x000500c2u, 0x00000006u, 0x0000076au, 0x00000769u, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000076bu, 0x000001dfu, 0x0004003du, 0x00000006u, 0x0000076cu, + 0x00000422u, 0x00050080u, 0x00000006u, 0x0000076du, 0x0000076bu, 0x0000076cu, 0x00050080u, 0x00000006u, + 0x0000076eu, 0x0000076au, 0x0000076du, 0x00060041u, 0x00000442u, 0x0000076fu, 0x000004c3u, 0x000000e2u, + 0x0000076eu, 0x0004003du, 0x00000006u, 0x00000770u, 0x0000076fu, 0x0004007cu, 0x00000008u, 0x00000771u, + 0x00000770u, 0x0003003eu, 0x00000765u, 0x00000771u, 0x000200f9u, 0x00000767u, 0x000200f8u, 0x00000772u, + 0x00050041u, 0x000001bbu, 0x00000773u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000774u, + 0x00000773u, 0x000500c2u, 0x00000006u, 0x00000775u, 0x00000774u, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x00000776u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000777u, 0x00000422u, 0x00050080u, 0x00000006u, + 0x00000778u, 0x00000776u, 0x00000777u, 0x00050080u, 0x00000006u, 0x00000779u, 0x00000775u, 0x00000778u, + 0x00060041u, 0x00000453u, 0x0000077au, 0x000004d2u, 0x000000e2u, 0x00000779u, 0x0004003du, 0x00000447u, + 0x0000077bu, 0x0000077au, 0x00040071u, 0x00000006u, 0x0000077cu, 0x0000077bu, 0x0003003eu, 0x0000077du, + 0x0000077cu, 0x0003003eu, 0x0000077eu, 0x00000294u, 0x00060039u, 0x00000008u, 0x0000077fu, 0x0000001bu, + 0x0000077du, 0x0000077eu, 0x0003003eu, 0x00000765u, 0x0000077fu, 0x000200f9u, 0x00000767u, 0x000200f8u, + 0x00000767u, 0x0004003du, 0x00000008u, 0x00000780u, 0x00000765u, 0x00050085u, 0x00000008u, 0x00000781u, + 0x00000763u, 0x00000780u, 0x0004003du, 0x00000008u, 0x00000782u, 0x000001f2u, 0x00050081u, 0x00000008u, + 0x00000783u, 0x00000782u, 0x00000781u, 0x0003003eu, 0x000001f2u, 0x00000783u, 0x0004003du, 0x00000008u, + 0x00000784u, 0x000006fdu, 0x000300f7u, 0x00000788u, 0x00000000u, 0x000400fau, 0x00000785u, 0x00000787u, + 0x00000793u, 0x000200f8u, 0x00000787u, 0x00050041u, 0x000001bbu, 0x00000789u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x0000078au, 0x00000789u, 0x000500c2u, 0x00000006u, 0x0000078bu, 0x0000078au, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000078cu, 0x000001e4u, 0x0004003du, 0x00000006u, 0x0000078du, + 0x00000422u, 0x00050080u, 0x00000006u, 0x0000078eu, 0x0000078cu, 0x0000078du, 0x00050080u, 0x00000006u, + 0x0000078fu, 0x0000078bu, 0x0000078eu, 0x00060041u, 0x00000442u, 0x00000790u, 0x000004c3u, 0x000000e2u, + 0x0000078fu, 0x0004003du, 0x00000006u, 0x00000791u, 0x00000790u, 0x0004007cu, 0x00000008u, 0x00000792u, + 0x00000791u, 0x0003003eu, 0x00000786u, 0x00000792u, 0x000200f9u, 0x00000788u, 0x000200f8u, 0x00000793u, + 0x00050041u, 0x000001bbu, 0x00000794u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000795u, + 0x00000794u, 0x000500c2u, 0x00000006u, 0x00000796u, 0x00000795u, 0x0000008fu, 0x0004003du, 0x00000006u, + 0x00000797u, 0x000001e4u, 0x0004003du, 0x00000006u, 0x00000798u, 0x00000422u, 0x00050080u, 0x00000006u, + 0x00000799u, 0x00000797u, 0x00000798u, 0x00050080u, 0x00000006u, 0x0000079au, 0x00000796u, 0x00000799u, + 0x00060041u, 0x00000453u, 0x0000079bu, 0x000004d2u, 0x000000e2u, 0x0000079au, 0x0004003du, 0x00000447u, + 0x0000079cu, 0x0000079bu, 0x00040071u, 0x00000006u, 0x0000079du, 0x0000079cu, 0x0003003eu, 0x0000079eu, + 0x0000079du, 0x0003003eu, 0x0000079fu, 0x00000294u, 0x00060039u, 0x00000008u, 0x000007a0u, 0x0000001bu, + 0x0000079eu, 0x0000079fu, 0x0003003eu, 0x00000786u, 0x000007a0u, 0x000200f9u, 0x00000788u, 0x000200f8u, + 0x00000788u, 0x0004003du, 0x00000008u, 0x000007a1u, 0x00000786u, 0x00050085u, 0x00000008u, 0x000007a2u, + 0x00000784u, 0x000007a1u, 0x0004003du, 0x00000008u, 0x000007a3u, 0x000001f6u, 0x00050081u, 0x00000008u, + 0x000007a4u, 0x000007a3u, 0x000007a2u, 0x0003003eu, 0x000001f6u, 0x000007a4u, 0x000200f9u, 0x00000762u, + 0x000200f8u, 0x00000762u, 0x000200f9u, 0x000006f7u, 0x000200f8u, 0x000006f7u, 0x0004003du, 0x00000006u, + 0x000007a5u, 0x00000422u, 0x00050080u, 0x00000006u, 0x000007a6u, 0x000007a5u, 0x00000230u, 0x0003003eu, + 0x00000422u, 0x000007a6u, 0x000200f9u, 0x000006f4u, 0x000200f8u, 0x000006f6u, 0x000200f9u, 0x00000421u, + 0x000200f8u, 0x000007a7u, 0x00050041u, 0x000001bbu, 0x000007a9u, 0x000001bau, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x000007aau, 0x000007a9u, 0x000500c2u, 0x00000006u, 0x000007abu, 0x000007aau, 0x0000008fu, + 0x0003003eu, 0x000007a8u, 0x000007abu, 0x0004003du, 0x00000006u, 0x000007adu, 0x000001aau, 0x0003003eu, + 0x000007acu, 0x000007adu, 0x000200f9u, 0x000007aeu, 0x000200f8u, 0x000007aeu, 0x000400f6u, 0x000007b0u, + 0x000007b1u, 0x00000000u, 0x000200f9u, 0x000007b2u, 0x000200f8u, 0x000007b2u, 0x000300f7u, 0x000007b5u, + 0x00000000u, 0x000400fau, 0x000007b3u, 0x000007b4u, 0x000007b5u, 0x000200f8u, 0x000007b4u, 0x0004003du, + 0x00000006u, 0x000007b6u, 0x000007acu, 0x00050080u, 0x00000006u, 0x000007b7u, 0x000007b6u, 0x0000020fu, + 0x0004003du, 0x00000006u, 0x000007b8u, 0x000007a8u, 0x000500b0u, 0x0000003bu, 0x000007b9u, 0x000007b7u, + 0x000007b8u, 0x000200f9u, 0x000007b5u, 0x000200f8u, 0x000007b5u, 0x000700f5u, 0x0000003bu, 0x000007bau, + 0x000007b3u, 0x000007b2u, 0x000007b9u, 0x000007b4u, 0x000400fau, 0x000007bau, 0x000007afu, 0x000007b0u, + 0x000200f8u, 0x000007afu, 0x00050041u, 0x000001bbu, 0x000007bcu, 0x000001bau, 0x00000219u, 0x0004003du, + 0x00000006u, 0x000007bdu, 0x000007bcu, 0x000500c2u, 0x00000006u, 0x000007beu, 0x000007bdu, 0x000001d1u, + 0x0004003du, 0x00000006u, 0x000007bfu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x000007c0u, 0x000007acu, + 0x000500c4u, 0x00000006u, 0x000007c1u, 0x000007c0u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000007c2u, + 0x000007bfu, 0x000007c1u, 0x000500c2u, 0x00000006u, 0x000007c3u, 0x000007c2u, 0x0000008fu, 0x00050080u, + 0x00000006u, 0x000007c4u, 0x000007beu, 0x000007c3u, 0x00060041u, 0x00000442u, 0x000007c5u, 0x0000043au, + 0x000000e2u, 0x000007c4u, 0x0004003du, 0x00000006u, 0x000007c6u, 0x000007c5u, 0x0003003eu, 0x000007bbu, + 0x000007c6u, 0x00050041u, 0x000001bbu, 0x000007c8u, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, + 0x000007c9u, 0x000007c8u, 0x000500c2u, 0x00000006u, 0x000007cau, 0x000007c9u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x000007cbu, 0x000001cfu, 0x0004003du, 0x00000006u, 0x000007ccu, 0x000007acu, 0x00050080u, + 0x00000006u, 0x000007cdu, 0x000007ccu, 0x00000230u, 0x000500c4u, 0x00000006u, 0x000007ceu, 0x000007cdu, + 0x0000008fu, 0x00050080u, 0x00000006u, 0x000007cfu, 0x000007cbu, 0x000007ceu, 0x000500c2u, 0x00000006u, + 0x000007d0u, 0x000007cfu, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000007d1u, 0x000007cau, 0x000007d0u, + 0x00060041u, 0x00000442u, 0x000007d2u, 0x0000043au, 0x000000e2u, 0x000007d1u, 0x0004003du, 0x00000006u, + 0x000007d3u, 0x000007d2u, 0x0003003eu, 0x000007c7u, 0x000007d3u, 0x00050041u, 0x000001bbu, 0x000007d5u, + 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x000007d6u, 0x000007d5u, 0x000500c2u, 0x00000006u, + 0x000007d7u, 0x000007d6u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000007d8u, 0x000001cfu, 0x0004003du, + 0x00000006u, 0x000007d9u, 0x000007acu, 0x00050080u, 0x00000006u, 0x000007dau, 0x000007d9u, 0x00000241u, + 0x000500c4u, 0x00000006u, 0x000007dbu, 0x000007dau, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000007dcu, + 0x000007d8u, 0x000007dbu, 0x000500c2u, 0x00000006u, 0x000007ddu, 0x000007dcu, 0x0000008fu, 0x00050080u, + 0x00000006u, 0x000007deu, 0x000007d7u, 0x000007ddu, 0x00060041u, 0x00000442u, 0x000007dfu, 0x0000043au, + 0x000000e2u, 0x000007deu, 0x0004003du, 0x00000006u, 0x000007e0u, 0x000007dfu, 0x0003003eu, 0x000007d4u, + 0x000007e0u, 0x00050041u, 0x000001bbu, 0x000007e2u, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, + 0x000007e3u, 0x000007e2u, 0x000500c2u, 0x00000006u, 0x000007e4u, 0x000007e3u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x000007e5u, 0x000001cfu, 0x0004003du, 0x00000006u, 0x000007e6u, 0x000007acu, 0x00050080u, + 0x00000006u, 0x000007e7u, 0x000007e6u, 0x0000020fu, 0x000500c4u, 0x00000006u, 0x000007e8u, 0x000007e7u, + 0x0000008fu, 0x00050080u, 0x00000006u, 0x000007e9u, 0x000007e5u, 0x000007e8u, 0x000500c2u, 0x00000006u, + 0x000007eau, 0x000007e9u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000007ebu, 0x000007e4u, 0x000007eau, + 0x00060041u, 0x00000442u, 0x000007ecu, 0x0000043au, 0x000000e2u, 0x000007ebu, 0x0004003du, 0x00000006u, + 0x000007edu, 0x000007ecu, 0x0003003eu, 0x000007e1u, 0x000007edu, 0x0004003du, 0x00000006u, 0x000007efu, + 0x000007bbu, 0x000500c7u, 0x00000006u, 0x000007f0u, 0x000007efu, 0x0000004eu, 0x0003003eu, 0x000007f1u, + 0x000007f0u, 0x0003003eu, 0x000007f2u, 0x00000223u, 0x00060039u, 0x00000008u, 0x000007f3u, 0x0000001bu, + 0x000007f1u, 0x000007f2u, 0x0003003eu, 0x000007eeu, 0x000007f3u, 0x0004003du, 0x00000006u, 0x000007f5u, + 0x000007bbu, 0x000500c2u, 0x00000006u, 0x000007f6u, 0x000007f5u, 0x00000033u, 0x0003003eu, 0x000007f7u, + 0x000007f6u, 0x0003003eu, 0x000007f8u, 0x00000223u, 0x00060039u, 0x00000008u, 0x000007f9u, 0x0000001bu, + 0x000007f7u, 0x000007f8u, 0x0003003eu, 0x000007f4u, 0x000007f9u, 0x0004003du, 0x00000006u, 0x000007fbu, + 0x000007c7u, 0x000500c7u, 0x00000006u, 0x000007fcu, 0x000007fbu, 0x0000004eu, 0x0003003eu, 0x000007fdu, + 0x000007fcu, 0x0003003eu, 0x000007feu, 0x00000223u, 0x00060039u, 0x00000008u, 0x000007ffu, 0x0000001bu, + 0x000007fdu, 0x000007feu, 0x0003003eu, 0x000007fau, 0x000007ffu, 0x0004003du, 0x00000006u, 0x00000801u, + 0x000007c7u, 0x000500c2u, 0x00000006u, 0x00000802u, 0x00000801u, 0x00000033u, 0x0003003eu, 0x00000803u, + 0x00000802u, 0x0003003eu, 0x00000804u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000805u, 0x0000001bu, + 0x00000803u, 0x00000804u, 0x0003003eu, 0x00000800u, 0x00000805u, 0x0004003du, 0x00000006u, 0x00000807u, + 0x000007d4u, 0x000500c7u, 0x00000006u, 0x00000808u, 0x00000807u, 0x0000004eu, 0x0003003eu, 0x00000809u, + 0x00000808u, 0x0003003eu, 0x0000080au, 0x00000223u, 0x00060039u, 0x00000008u, 0x0000080bu, 0x0000001bu, + 0x00000809u, 0x0000080au, 0x0003003eu, 0x00000806u, 0x0000080bu, 0x0004003du, 0x00000006u, 0x0000080du, + 0x000007d4u, 0x000500c2u, 0x00000006u, 0x0000080eu, 0x0000080du, 0x00000033u, 0x0003003eu, 0x0000080fu, + 0x0000080eu, 0x0003003eu, 0x00000810u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000811u, 0x0000001bu, + 0x0000080fu, 0x00000810u, 0x0003003eu, 0x0000080cu, 0x00000811u, 0x0004003du, 0x00000006u, 0x00000813u, + 0x000007e1u, 0x000500c7u, 0x00000006u, 0x00000814u, 0x00000813u, 0x0000004eu, 0x0003003eu, 0x00000815u, + 0x00000814u, 0x0003003eu, 0x00000816u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000817u, 0x0000001bu, + 0x00000815u, 0x00000816u, 0x0003003eu, 0x00000812u, 0x00000817u, 0x0004003du, 0x00000006u, 0x00000819u, + 0x000007e1u, 0x000500c2u, 0x00000006u, 0x0000081au, 0x00000819u, 0x00000033u, 0x0003003eu, 0x0000081bu, + 0x0000081au, 0x0003003eu, 0x0000081cu, 0x00000223u, 0x00060039u, 0x00000008u, 0x0000081du, 0x0000001bu, + 0x0000081bu, 0x0000081cu, 0x0003003eu, 0x00000818u, 0x0000081du, 0x00050041u, 0x000001bbu, 0x0000081fu, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000820u, 0x0000081fu, 0x000500c2u, 0x00000006u, + 0x00000821u, 0x00000820u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000822u, 0x000001d5u, 0x0004003du, + 0x00000006u, 0x00000823u, 0x000007acu, 0x000500c4u, 0x00000006u, 0x00000824u, 0x00000823u, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x00000825u, 0x00000822u, 0x00000824u, 0x000500c2u, 0x00000006u, 0x00000826u, + 0x00000825u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000827u, 0x00000821u, 0x00000826u, 0x00060041u, + 0x00000442u, 0x00000828u, 0x000004c3u, 0x000000e2u, 0x00000827u, 0x0004003du, 0x00000006u, 0x00000829u, + 0x00000828u, 0x0003003eu, 0x0000081eu, 0x00000829u, 0x00050041u, 0x000001bbu, 0x0000082bu, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x0000082cu, 0x0000082bu, 0x000500c2u, 0x00000006u, 0x0000082du, + 0x0000082cu, 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000082eu, 0x000001d5u, 0x0004003du, 0x00000006u, + 0x0000082fu, 0x000007acu, 0x00050080u, 0x00000006u, 0x00000830u, 0x0000082fu, 0x00000230u, 0x000500c4u, + 0x00000006u, 0x00000831u, 0x00000830u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000832u, 0x0000082eu, + 0x00000831u, 0x000500c2u, 0x00000006u, 0x00000833u, 0x00000832u, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x00000834u, 0x0000082du, 0x00000833u, 0x00060041u, 0x00000442u, 0x00000835u, 0x000004c3u, 0x000000e2u, + 0x00000834u, 0x0004003du, 0x00000006u, 0x00000836u, 0x00000835u, 0x0003003eu, 0x0000082au, 0x00000836u, + 0x00050041u, 0x000001bbu, 0x00000838u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000839u, + 0x00000838u, 0x000500c2u, 0x00000006u, 0x0000083au, 0x00000839u, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x0000083bu, 0x000001d5u, 0x0004003du, 0x00000006u, 0x0000083cu, 0x000007acu, 0x00050080u, 0x00000006u, + 0x0000083du, 0x0000083cu, 0x00000241u, 0x000500c4u, 0x00000006u, 0x0000083eu, 0x0000083du, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x0000083fu, 0x0000083bu, 0x0000083eu, 0x000500c2u, 0x00000006u, 0x00000840u, + 0x0000083fu, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000841u, 0x0000083au, 0x00000840u, 0x00060041u, + 0x00000442u, 0x00000842u, 0x000004c3u, 0x000000e2u, 0x00000841u, 0x0004003du, 0x00000006u, 0x00000843u, + 0x00000842u, 0x0003003eu, 0x00000837u, 0x00000843u, 0x00050041u, 0x000001bbu, 0x00000845u, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x00000846u, 0x00000845u, 0x000500c2u, 0x00000006u, 0x00000847u, + 0x00000846u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000848u, 0x000001d5u, 0x0004003du, 0x00000006u, + 0x00000849u, 0x000007acu, 0x00050080u, 0x00000006u, 0x0000084au, 0x00000849u, 0x0000020fu, 0x000500c4u, + 0x00000006u, 0x0000084bu, 0x0000084au, 0x0000008fu, 0x00050080u, 0x00000006u, 0x0000084cu, 0x00000848u, + 0x0000084bu, 0x000500c2u, 0x00000006u, 0x0000084du, 0x0000084cu, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x0000084eu, 0x00000847u, 0x0000084du, 0x00060041u, 0x00000442u, 0x0000084fu, 0x000004c3u, 0x000000e2u, + 0x0000084eu, 0x0004003du, 0x00000006u, 0x00000850u, 0x0000084fu, 0x0003003eu, 0x00000844u, 0x00000850u, + 0x0004003du, 0x00000008u, 0x00000851u, 0x000007eeu, 0x0004003du, 0x00000006u, 0x00000852u, 0x0000081eu, + 0x000500c7u, 0x00000006u, 0x00000853u, 0x00000852u, 0x0000004eu, 0x0003003eu, 0x00000854u, 0x00000853u, + 0x0003003eu, 0x00000855u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000856u, 0x0000001bu, 0x00000854u, + 0x00000855u, 0x00050085u, 0x00000008u, 0x00000857u, 0x00000851u, 0x00000856u, 0x0004003du, 0x00000008u, + 0x00000858u, 0x000007f4u, 0x0004003du, 0x00000006u, 0x00000859u, 0x0000081eu, 0x000500c2u, 0x00000006u, + 0x0000085au, 0x00000859u, 0x00000033u, 0x0003003eu, 0x0000085bu, 0x0000085au, 0x0003003eu, 0x0000085cu, + 0x00000294u, 0x00060039u, 0x00000008u, 0x0000085du, 0x0000001bu, 0x0000085bu, 0x0000085cu, 0x00050085u, + 0x00000008u, 0x0000085eu, 0x00000858u, 0x0000085du, 0x00050081u, 0x00000008u, 0x0000085fu, 0x00000857u, + 0x0000085eu, 0x0004003du, 0x00000008u, 0x00000860u, 0x000001e9u, 0x00050081u, 0x00000008u, 0x00000861u, + 0x00000860u, 0x0000085fu, 0x0003003eu, 0x000001e9u, 0x00000861u, 0x0004003du, 0x00000008u, 0x00000862u, + 0x000007fau, 0x0004003du, 0x00000006u, 0x00000863u, 0x0000082au, 0x000500c7u, 0x00000006u, 0x00000864u, + 0x00000863u, 0x0000004eu, 0x0003003eu, 0x00000865u, 0x00000864u, 0x0003003eu, 0x00000866u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x00000867u, 0x0000001bu, 0x00000865u, 0x00000866u, 0x00050085u, 0x00000008u, + 0x00000868u, 0x00000862u, 0x00000867u, 0x0004003du, 0x00000008u, 0x00000869u, 0x00000800u, 0x0004003du, + 0x00000006u, 0x0000086au, 0x0000082au, 0x000500c2u, 0x00000006u, 0x0000086bu, 0x0000086au, 0x00000033u, + 0x0003003eu, 0x0000086cu, 0x0000086bu, 0x0003003eu, 0x0000086du, 0x00000294u, 0x00060039u, 0x00000008u, + 0x0000086eu, 0x0000001bu, 0x0000086cu, 0x0000086du, 0x00050085u, 0x00000008u, 0x0000086fu, 0x00000869u, + 0x0000086eu, 0x00050081u, 0x00000008u, 0x00000870u, 0x00000868u, 0x0000086fu, 0x0004003du, 0x00000008u, + 0x00000871u, 0x000001ebu, 0x00050081u, 0x00000008u, 0x00000872u, 0x00000871u, 0x00000870u, 0x0003003eu, + 0x000001ebu, 0x00000872u, 0x0004003du, 0x00000008u, 0x00000873u, 0x00000806u, 0x0004003du, 0x00000006u, + 0x00000874u, 0x00000837u, 0x000500c7u, 0x00000006u, 0x00000875u, 0x00000874u, 0x0000004eu, 0x0003003eu, + 0x00000876u, 0x00000875u, 0x0003003eu, 0x00000877u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000878u, + 0x0000001bu, 0x00000876u, 0x00000877u, 0x00050085u, 0x00000008u, 0x00000879u, 0x00000873u, 0x00000878u, + 0x0004003du, 0x00000008u, 0x0000087au, 0x0000080cu, 0x0004003du, 0x00000006u, 0x0000087bu, 0x00000837u, + 0x000500c2u, 0x00000006u, 0x0000087cu, 0x0000087bu, 0x00000033u, 0x0003003eu, 0x0000087du, 0x0000087cu, + 0x0003003eu, 0x0000087eu, 0x00000294u, 0x00060039u, 0x00000008u, 0x0000087fu, 0x0000001bu, 0x0000087du, + 0x0000087eu, 0x00050085u, 0x00000008u, 0x00000880u, 0x0000087au, 0x0000087fu, 0x00050081u, 0x00000008u, + 0x00000881u, 0x00000879u, 0x00000880u, 0x0004003du, 0x00000008u, 0x00000882u, 0x000001ecu, 0x00050081u, + 0x00000008u, 0x00000883u, 0x00000882u, 0x00000881u, 0x0003003eu, 0x000001ecu, 0x00000883u, 0x0004003du, + 0x00000008u, 0x00000884u, 0x00000812u, 0x0004003du, 0x00000006u, 0x00000885u, 0x00000844u, 0x000500c7u, + 0x00000006u, 0x00000886u, 0x00000885u, 0x0000004eu, 0x0003003eu, 0x00000887u, 0x00000886u, 0x0003003eu, + 0x00000888u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000889u, 0x0000001bu, 0x00000887u, 0x00000888u, + 0x00050085u, 0x00000008u, 0x0000088au, 0x00000884u, 0x00000889u, 0x0004003du, 0x00000008u, 0x0000088bu, + 0x00000818u, 0x0004003du, 0x00000006u, 0x0000088cu, 0x00000844u, 0x000500c2u, 0x00000006u, 0x0000088du, + 0x0000088cu, 0x00000033u, 0x0003003eu, 0x0000088eu, 0x0000088du, 0x0003003eu, 0x0000088fu, 0x00000294u, + 0x00060039u, 0x00000008u, 0x00000890u, 0x0000001bu, 0x0000088eu, 0x0000088fu, 0x00050085u, 0x00000008u, + 0x00000891u, 0x0000088bu, 0x00000890u, 0x00050081u, 0x00000008u, 0x00000892u, 0x0000088au, 0x00000891u, + 0x0004003du, 0x00000008u, 0x00000893u, 0x000001edu, 0x00050081u, 0x00000008u, 0x00000894u, 0x00000893u, + 0x00000892u, 0x0003003eu, 0x000001edu, 0x00000894u, 0x000300f7u, 0x00000897u, 0x00000000u, 0x000400fau, + 0x00000895u, 0x00000896u, 0x00000897u, 0x000200f8u, 0x00000896u, 0x00050041u, 0x000001bbu, 0x00000899u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000089au, 0x00000899u, 0x000500c2u, 0x00000006u, + 0x0000089bu, 0x0000089au, 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000089cu, 0x000001dau, 0x0004003du, + 0x00000006u, 0x0000089du, 0x000007acu, 0x000500c4u, 0x00000006u, 0x0000089eu, 0x0000089du, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x0000089fu, 0x0000089cu, 0x0000089eu, 0x000500c2u, 0x00000006u, 0x000008a0u, + 0x0000089fu, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000008a1u, 0x0000089bu, 0x000008a0u, 0x00060041u, + 0x00000442u, 0x000008a2u, 0x000004c3u, 0x000000e2u, 0x000008a1u, 0x0004003du, 0x00000006u, 0x000008a3u, + 0x000008a2u, 0x0003003eu, 0x00000898u, 0x000008a3u, 0x00050041u, 0x000001bbu, 0x000008a5u, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x000008a6u, 0x000008a5u, 0x000500c2u, 0x00000006u, 0x000008a7u, + 0x000008a6u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000008a8u, 0x000001dau, 0x0004003du, 0x00000006u, + 0x000008a9u, 0x000007acu, 0x00050080u, 0x00000006u, 0x000008aau, 0x000008a9u, 0x00000230u, 0x000500c4u, + 0x00000006u, 0x000008abu, 0x000008aau, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000008acu, 0x000008a8u, + 0x000008abu, 0x000500c2u, 0x00000006u, 0x000008adu, 0x000008acu, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x000008aeu, 0x000008a7u, 0x000008adu, 0x00060041u, 0x00000442u, 0x000008afu, 0x000004c3u, 0x000000e2u, + 0x000008aeu, 0x0004003du, 0x00000006u, 0x000008b0u, 0x000008afu, 0x0003003eu, 0x000008a4u, 0x000008b0u, + 0x00050041u, 0x000001bbu, 0x000008b2u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000008b3u, + 0x000008b2u, 0x000500c2u, 0x00000006u, 0x000008b4u, 0x000008b3u, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x000008b5u, 0x000001dau, 0x0004003du, 0x00000006u, 0x000008b6u, 0x000007acu, 0x00050080u, 0x00000006u, + 0x000008b7u, 0x000008b6u, 0x00000241u, 0x000500c4u, 0x00000006u, 0x000008b8u, 0x000008b7u, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x000008b9u, 0x000008b5u, 0x000008b8u, 0x000500c2u, 0x00000006u, 0x000008bau, + 0x000008b9u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000008bbu, 0x000008b4u, 0x000008bau, 0x00060041u, + 0x00000442u, 0x000008bcu, 0x000004c3u, 0x000000e2u, 0x000008bbu, 0x0004003du, 0x00000006u, 0x000008bdu, + 0x000008bcu, 0x0003003eu, 0x000008b1u, 0x000008bdu, 0x00050041u, 0x000001bbu, 0x000008bfu, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x000008c0u, 0x000008bfu, 0x000500c2u, 0x00000006u, 0x000008c1u, + 0x000008c0u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000008c2u, 0x000001dau, 0x0004003du, 0x00000006u, + 0x000008c3u, 0x000007acu, 0x00050080u, 0x00000006u, 0x000008c4u, 0x000008c3u, 0x0000020fu, 0x000500c4u, + 0x00000006u, 0x000008c5u, 0x000008c4u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000008c6u, 0x000008c2u, + 0x000008c5u, 0x000500c2u, 0x00000006u, 0x000008c7u, 0x000008c6u, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x000008c8u, 0x000008c1u, 0x000008c7u, 0x00060041u, 0x00000442u, 0x000008c9u, 0x000004c3u, 0x000000e2u, + 0x000008c8u, 0x0004003du, 0x00000006u, 0x000008cau, 0x000008c9u, 0x0003003eu, 0x000008beu, 0x000008cau, + 0x0004003du, 0x00000008u, 0x000008cbu, 0x000007eeu, 0x0004003du, 0x00000006u, 0x000008ccu, 0x00000898u, + 0x000500c7u, 0x00000006u, 0x000008cdu, 0x000008ccu, 0x0000004eu, 0x0003003eu, 0x000008ceu, 0x000008cdu, + 0x0003003eu, 0x000008cfu, 0x00000294u, 0x00060039u, 0x00000008u, 0x000008d0u, 0x0000001bu, 0x000008ceu, + 0x000008cfu, 0x00050085u, 0x00000008u, 0x000008d1u, 0x000008cbu, 0x000008d0u, 0x0004003du, 0x00000008u, + 0x000008d2u, 0x000007f4u, 0x0004003du, 0x00000006u, 0x000008d3u, 0x00000898u, 0x000500c2u, 0x00000006u, + 0x000008d4u, 0x000008d3u, 0x00000033u, 0x0003003eu, 0x000008d5u, 0x000008d4u, 0x0003003eu, 0x000008d6u, + 0x00000294u, 0x00060039u, 0x00000008u, 0x000008d7u, 0x0000001bu, 0x000008d5u, 0x000008d6u, 0x00050085u, + 0x00000008u, 0x000008d8u, 0x000008d2u, 0x000008d7u, 0x00050081u, 0x00000008u, 0x000008d9u, 0x000008d1u, + 0x000008d8u, 0x0004003du, 0x00000008u, 0x000008dau, 0x000001eeu, 0x00050081u, 0x00000008u, 0x000008dbu, + 0x000008dau, 0x000008d9u, 0x0003003eu, 0x000001eeu, 0x000008dbu, 0x0004003du, 0x00000008u, 0x000008dcu, + 0x000007fau, 0x0004003du, 0x00000006u, 0x000008ddu, 0x000008a4u, 0x000500c7u, 0x00000006u, 0x000008deu, + 0x000008ddu, 0x0000004eu, 0x0003003eu, 0x000008dfu, 0x000008deu, 0x0003003eu, 0x000008e0u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x000008e1u, 0x0000001bu, 0x000008dfu, 0x000008e0u, 0x00050085u, 0x00000008u, + 0x000008e2u, 0x000008dcu, 0x000008e1u, 0x0004003du, 0x00000008u, 0x000008e3u, 0x00000800u, 0x0004003du, + 0x00000006u, 0x000008e4u, 0x000008a4u, 0x000500c2u, 0x00000006u, 0x000008e5u, 0x000008e4u, 0x00000033u, + 0x0003003eu, 0x000008e6u, 0x000008e5u, 0x0003003eu, 0x000008e7u, 0x00000294u, 0x00060039u, 0x00000008u, + 0x000008e8u, 0x0000001bu, 0x000008e6u, 0x000008e7u, 0x00050085u, 0x00000008u, 0x000008e9u, 0x000008e3u, + 0x000008e8u, 0x00050081u, 0x00000008u, 0x000008eau, 0x000008e2u, 0x000008e9u, 0x0004003du, 0x00000008u, + 0x000008ebu, 0x000001efu, 0x00050081u, 0x00000008u, 0x000008ecu, 0x000008ebu, 0x000008eau, 0x0003003eu, + 0x000001efu, 0x000008ecu, 0x0004003du, 0x00000008u, 0x000008edu, 0x00000806u, 0x0004003du, 0x00000006u, + 0x000008eeu, 0x000008b1u, 0x000500c7u, 0x00000006u, 0x000008efu, 0x000008eeu, 0x0000004eu, 0x0003003eu, + 0x000008f0u, 0x000008efu, 0x0003003eu, 0x000008f1u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000008f2u, + 0x0000001bu, 0x000008f0u, 0x000008f1u, 0x00050085u, 0x00000008u, 0x000008f3u, 0x000008edu, 0x000008f2u, + 0x0004003du, 0x00000008u, 0x000008f4u, 0x0000080cu, 0x0004003du, 0x00000006u, 0x000008f5u, 0x000008b1u, + 0x000500c2u, 0x00000006u, 0x000008f6u, 0x000008f5u, 0x00000033u, 0x0003003eu, 0x000008f7u, 0x000008f6u, + 0x0003003eu, 0x000008f8u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000008f9u, 0x0000001bu, 0x000008f7u, + 0x000008f8u, 0x00050085u, 0x00000008u, 0x000008fau, 0x000008f4u, 0x000008f9u, 0x00050081u, 0x00000008u, + 0x000008fbu, 0x000008f3u, 0x000008fau, 0x0004003du, 0x00000008u, 0x000008fcu, 0x000001f0u, 0x00050081u, + 0x00000008u, 0x000008fdu, 0x000008fcu, 0x000008fbu, 0x0003003eu, 0x000001f0u, 0x000008fdu, 0x0004003du, + 0x00000008u, 0x000008feu, 0x00000812u, 0x0004003du, 0x00000006u, 0x000008ffu, 0x000008beu, 0x000500c7u, + 0x00000006u, 0x00000900u, 0x000008ffu, 0x0000004eu, 0x0003003eu, 0x00000901u, 0x00000900u, 0x0003003eu, + 0x00000902u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000903u, 0x0000001bu, 0x00000901u, 0x00000902u, + 0x00050085u, 0x00000008u, 0x00000904u, 0x000008feu, 0x00000903u, 0x0004003du, 0x00000008u, 0x00000905u, + 0x00000818u, 0x0004003du, 0x00000006u, 0x00000906u, 0x000008beu, 0x000500c2u, 0x00000006u, 0x00000907u, + 0x00000906u, 0x00000033u, 0x0003003eu, 0x00000908u, 0x00000907u, 0x0003003eu, 0x00000909u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x0000090au, 0x0000001bu, 0x00000908u, 0x00000909u, 0x00050085u, 0x00000008u, + 0x0000090bu, 0x00000905u, 0x0000090au, 0x00050081u, 0x00000008u, 0x0000090cu, 0x00000904u, 0x0000090bu, + 0x0004003du, 0x00000008u, 0x0000090du, 0x000001f1u, 0x00050081u, 0x00000008u, 0x0000090eu, 0x0000090du, + 0x0000090cu, 0x0003003eu, 0x000001f1u, 0x0000090eu, 0x000200f9u, 0x00000897u, 0x000200f8u, 0x00000897u, + 0x000300f7u, 0x00000911u, 0x00000000u, 0x000400fau, 0x0000090fu, 0x00000910u, 0x00000911u, 0x000200f8u, + 0x00000910u, 0x00050041u, 0x000001bbu, 0x00000913u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, + 0x00000914u, 0x00000913u, 0x000500c2u, 0x00000006u, 0x00000915u, 0x00000914u, 0x000001d1u, 0x0004003du, + 0x00000006u, 0x00000916u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000917u, 0x000007acu, 0x000500c4u, + 0x00000006u, 0x00000918u, 0x00000917u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000919u, 0x00000916u, + 0x00000918u, 0x000500c2u, 0x00000006u, 0x0000091au, 0x00000919u, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x0000091bu, 0x00000915u, 0x0000091au, 0x00060041u, 0x00000442u, 0x0000091cu, 0x000004c3u, 0x000000e2u, + 0x0000091bu, 0x0004003du, 0x00000006u, 0x0000091du, 0x0000091cu, 0x0003003eu, 0x00000912u, 0x0000091du, + 0x00050041u, 0x000001bbu, 0x0000091fu, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000920u, + 0x0000091fu, 0x000500c2u, 0x00000006u, 0x00000921u, 0x00000920u, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x00000922u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000923u, 0x000007acu, 0x00050080u, 0x00000006u, + 0x00000924u, 0x00000923u, 0x00000230u, 0x000500c4u, 0x00000006u, 0x00000925u, 0x00000924u, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x00000926u, 0x00000922u, 0x00000925u, 0x000500c2u, 0x00000006u, 0x00000927u, + 0x00000926u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000928u, 0x00000921u, 0x00000927u, 0x00060041u, + 0x00000442u, 0x00000929u, 0x000004c3u, 0x000000e2u, 0x00000928u, 0x0004003du, 0x00000006u, 0x0000092au, + 0x00000929u, 0x0003003eu, 0x0000091eu, 0x0000092au, 0x00050041u, 0x000001bbu, 0x0000092cu, 0x000001bau, + 0x00000261u, 0x0004003du, 0x00000006u, 0x0000092du, 0x0000092cu, 0x000500c2u, 0x00000006u, 0x0000092eu, + 0x0000092du, 0x000001d1u, 0x0004003du, 0x00000006u, 0x0000092fu, 0x000001dfu, 0x0004003du, 0x00000006u, + 0x00000930u, 0x000007acu, 0x00050080u, 0x00000006u, 0x00000931u, 0x00000930u, 0x00000241u, 0x000500c4u, + 0x00000006u, 0x00000932u, 0x00000931u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000933u, 0x0000092fu, + 0x00000932u, 0x000500c2u, 0x00000006u, 0x00000934u, 0x00000933u, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x00000935u, 0x0000092eu, 0x00000934u, 0x00060041u, 0x00000442u, 0x00000936u, 0x000004c3u, 0x000000e2u, + 0x00000935u, 0x0004003du, 0x00000006u, 0x00000937u, 0x00000936u, 0x0003003eu, 0x0000092bu, 0x00000937u, + 0x00050041u, 0x000001bbu, 0x00000939u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000093au, + 0x00000939u, 0x000500c2u, 0x00000006u, 0x0000093bu, 0x0000093au, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x0000093cu, 0x000001dfu, 0x0004003du, 0x00000006u, 0x0000093du, 0x000007acu, 0x00050080u, 0x00000006u, + 0x0000093eu, 0x0000093du, 0x0000020fu, 0x000500c4u, 0x00000006u, 0x0000093fu, 0x0000093eu, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x00000940u, 0x0000093cu, 0x0000093fu, 0x000500c2u, 0x00000006u, 0x00000941u, + 0x00000940u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000942u, 0x0000093bu, 0x00000941u, 0x00060041u, + 0x00000442u, 0x00000943u, 0x000004c3u, 0x000000e2u, 0x00000942u, 0x0004003du, 0x00000006u, 0x00000944u, + 0x00000943u, 0x0003003eu, 0x00000938u, 0x00000944u, 0x0004003du, 0x00000008u, 0x00000945u, 0x000007eeu, + 0x0004003du, 0x00000006u, 0x00000946u, 0x00000912u, 0x000500c7u, 0x00000006u, 0x00000947u, 0x00000946u, + 0x0000004eu, 0x0003003eu, 0x00000948u, 0x00000947u, 0x0003003eu, 0x00000949u, 0x00000294u, 0x00060039u, + 0x00000008u, 0x0000094au, 0x0000001bu, 0x00000948u, 0x00000949u, 0x00050085u, 0x00000008u, 0x0000094bu, + 0x00000945u, 0x0000094au, 0x0004003du, 0x00000008u, 0x0000094cu, 0x000007f4u, 0x0004003du, 0x00000006u, + 0x0000094du, 0x00000912u, 0x000500c2u, 0x00000006u, 0x0000094eu, 0x0000094du, 0x00000033u, 0x0003003eu, + 0x0000094fu, 0x0000094eu, 0x0003003eu, 0x00000950u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000951u, + 0x0000001bu, 0x0000094fu, 0x00000950u, 0x00050085u, 0x00000008u, 0x00000952u, 0x0000094cu, 0x00000951u, + 0x00050081u, 0x00000008u, 0x00000953u, 0x0000094bu, 0x00000952u, 0x0004003du, 0x00000008u, 0x00000954u, + 0x000001f2u, 0x00050081u, 0x00000008u, 0x00000955u, 0x00000954u, 0x00000953u, 0x0003003eu, 0x000001f2u, + 0x00000955u, 0x0004003du, 0x00000008u, 0x00000956u, 0x000007fau, 0x0004003du, 0x00000006u, 0x00000957u, + 0x0000091eu, 0x000500c7u, 0x00000006u, 0x00000958u, 0x00000957u, 0x0000004eu, 0x0003003eu, 0x00000959u, + 0x00000958u, 0x0003003eu, 0x0000095au, 0x00000294u, 0x00060039u, 0x00000008u, 0x0000095bu, 0x0000001bu, + 0x00000959u, 0x0000095au, 0x00050085u, 0x00000008u, 0x0000095cu, 0x00000956u, 0x0000095bu, 0x0004003du, + 0x00000008u, 0x0000095du, 0x00000800u, 0x0004003du, 0x00000006u, 0x0000095eu, 0x0000091eu, 0x000500c2u, + 0x00000006u, 0x0000095fu, 0x0000095eu, 0x00000033u, 0x0003003eu, 0x00000960u, 0x0000095fu, 0x0003003eu, + 0x00000961u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000962u, 0x0000001bu, 0x00000960u, 0x00000961u, + 0x00050085u, 0x00000008u, 0x00000963u, 0x0000095du, 0x00000962u, 0x00050081u, 0x00000008u, 0x00000964u, + 0x0000095cu, 0x00000963u, 0x0004003du, 0x00000008u, 0x00000965u, 0x000001f3u, 0x00050081u, 0x00000008u, + 0x00000966u, 0x00000965u, 0x00000964u, 0x0003003eu, 0x000001f3u, 0x00000966u, 0x0004003du, 0x00000008u, + 0x00000967u, 0x00000806u, 0x0004003du, 0x00000006u, 0x00000968u, 0x0000092bu, 0x000500c7u, 0x00000006u, + 0x00000969u, 0x00000968u, 0x0000004eu, 0x0003003eu, 0x0000096au, 0x00000969u, 0x0003003eu, 0x0000096bu, + 0x00000294u, 0x00060039u, 0x00000008u, 0x0000096cu, 0x0000001bu, 0x0000096au, 0x0000096bu, 0x00050085u, + 0x00000008u, 0x0000096du, 0x00000967u, 0x0000096cu, 0x0004003du, 0x00000008u, 0x0000096eu, 0x0000080cu, + 0x0004003du, 0x00000006u, 0x0000096fu, 0x0000092bu, 0x000500c2u, 0x00000006u, 0x00000970u, 0x0000096fu, + 0x00000033u, 0x0003003eu, 0x00000971u, 0x00000970u, 0x0003003eu, 0x00000972u, 0x00000294u, 0x00060039u, + 0x00000008u, 0x00000973u, 0x0000001bu, 0x00000971u, 0x00000972u, 0x00050085u, 0x00000008u, 0x00000974u, + 0x0000096eu, 0x00000973u, 0x00050081u, 0x00000008u, 0x00000975u, 0x0000096du, 0x00000974u, 0x0004003du, + 0x00000008u, 0x00000976u, 0x000001f4u, 0x00050081u, 0x00000008u, 0x00000977u, 0x00000976u, 0x00000975u, + 0x0003003eu, 0x000001f4u, 0x00000977u, 0x0004003du, 0x00000008u, 0x00000978u, 0x00000812u, 0x0004003du, + 0x00000006u, 0x00000979u, 0x00000938u, 0x000500c7u, 0x00000006u, 0x0000097au, 0x00000979u, 0x0000004eu, + 0x0003003eu, 0x0000097bu, 0x0000097au, 0x0003003eu, 0x0000097cu, 0x00000294u, 0x00060039u, 0x00000008u, + 0x0000097du, 0x0000001bu, 0x0000097bu, 0x0000097cu, 0x00050085u, 0x00000008u, 0x0000097eu, 0x00000978u, + 0x0000097du, 0x0004003du, 0x00000008u, 0x0000097fu, 0x00000818u, 0x0004003du, 0x00000006u, 0x00000980u, + 0x00000938u, 0x000500c2u, 0x00000006u, 0x00000981u, 0x00000980u, 0x00000033u, 0x0003003eu, 0x00000982u, + 0x00000981u, 0x0003003eu, 0x00000983u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000984u, 0x0000001bu, + 0x00000982u, 0x00000983u, 0x00050085u, 0x00000008u, 0x00000985u, 0x0000097fu, 0x00000984u, 0x00050081u, + 0x00000008u, 0x00000986u, 0x0000097eu, 0x00000985u, 0x0004003du, 0x00000008u, 0x00000987u, 0x000001f5u, + 0x00050081u, 0x00000008u, 0x00000988u, 0x00000987u, 0x00000986u, 0x0003003eu, 0x000001f5u, 0x00000988u, + 0x00050041u, 0x000001bbu, 0x0000098au, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x0000098bu, + 0x0000098au, 0x000500c2u, 0x00000006u, 0x0000098cu, 0x0000098bu, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x0000098du, 0x000001e4u, 0x0004003du, 0x00000006u, 0x0000098eu, 0x000007acu, 0x000500c4u, 0x00000006u, + 0x0000098fu, 0x0000098eu, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000990u, 0x0000098du, 0x0000098fu, + 0x000500c2u, 0x00000006u, 0x00000991u, 0x00000990u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000992u, + 0x0000098cu, 0x00000991u, 0x00060041u, 0x00000442u, 0x00000993u, 0x000004c3u, 0x000000e2u, 0x00000992u, + 0x0004003du, 0x00000006u, 0x00000994u, 0x00000993u, 0x0003003eu, 0x00000989u, 0x00000994u, 0x00050041u, + 0x000001bbu, 0x00000996u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000997u, 0x00000996u, + 0x000500c2u, 0x00000006u, 0x00000998u, 0x00000997u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000999u, + 0x000001e4u, 0x0004003du, 0x00000006u, 0x0000099au, 0x000007acu, 0x00050080u, 0x00000006u, 0x0000099bu, + 0x0000099au, 0x00000230u, 0x000500c4u, 0x00000006u, 0x0000099cu, 0x0000099bu, 0x0000008fu, 0x00050080u, + 0x00000006u, 0x0000099du, 0x00000999u, 0x0000099cu, 0x000500c2u, 0x00000006u, 0x0000099eu, 0x0000099du, + 0x0000008fu, 0x00050080u, 0x00000006u, 0x0000099fu, 0x00000998u, 0x0000099eu, 0x00060041u, 0x00000442u, + 0x000009a0u, 0x000004c3u, 0x000000e2u, 0x0000099fu, 0x0004003du, 0x00000006u, 0x000009a1u, 0x000009a0u, + 0x0003003eu, 0x00000995u, 0x000009a1u, 0x00050041u, 0x000001bbu, 0x000009a3u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x000009a4u, 0x000009a3u, 0x000500c2u, 0x00000006u, 0x000009a5u, 0x000009a4u, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x000009a6u, 0x000001e4u, 0x0004003du, 0x00000006u, 0x000009a7u, + 0x000007acu, 0x00050080u, 0x00000006u, 0x000009a8u, 0x000009a7u, 0x00000241u, 0x000500c4u, 0x00000006u, + 0x000009a9u, 0x000009a8u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000009aau, 0x000009a6u, 0x000009a9u, + 0x000500c2u, 0x00000006u, 0x000009abu, 0x000009aau, 0x0000008fu, 0x00050080u, 0x00000006u, 0x000009acu, + 0x000009a5u, 0x000009abu, 0x00060041u, 0x00000442u, 0x000009adu, 0x000004c3u, 0x000000e2u, 0x000009acu, + 0x0004003du, 0x00000006u, 0x000009aeu, 0x000009adu, 0x0003003eu, 0x000009a2u, 0x000009aeu, 0x00050041u, + 0x000001bbu, 0x000009b0u, 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x000009b1u, 0x000009b0u, + 0x000500c2u, 0x00000006u, 0x000009b2u, 0x000009b1u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x000009b3u, + 0x000001e4u, 0x0004003du, 0x00000006u, 0x000009b4u, 0x000007acu, 0x00050080u, 0x00000006u, 0x000009b5u, + 0x000009b4u, 0x0000020fu, 0x000500c4u, 0x00000006u, 0x000009b6u, 0x000009b5u, 0x0000008fu, 0x00050080u, + 0x00000006u, 0x000009b7u, 0x000009b3u, 0x000009b6u, 0x000500c2u, 0x00000006u, 0x000009b8u, 0x000009b7u, + 0x0000008fu, 0x00050080u, 0x00000006u, 0x000009b9u, 0x000009b2u, 0x000009b8u, 0x00060041u, 0x00000442u, + 0x000009bau, 0x000004c3u, 0x000000e2u, 0x000009b9u, 0x0004003du, 0x00000006u, 0x000009bbu, 0x000009bau, + 0x0003003eu, 0x000009afu, 0x000009bbu, 0x0004003du, 0x00000008u, 0x000009bcu, 0x000007eeu, 0x0004003du, + 0x00000006u, 0x000009bdu, 0x00000989u, 0x000500c7u, 0x00000006u, 0x000009beu, 0x000009bdu, 0x0000004eu, + 0x0003003eu, 0x000009bfu, 0x000009beu, 0x0003003eu, 0x000009c0u, 0x00000294u, 0x00060039u, 0x00000008u, + 0x000009c1u, 0x0000001bu, 0x000009bfu, 0x000009c0u, 0x00050085u, 0x00000008u, 0x000009c2u, 0x000009bcu, + 0x000009c1u, 0x0004003du, 0x00000008u, 0x000009c3u, 0x000007f4u, 0x0004003du, 0x00000006u, 0x000009c4u, + 0x00000989u, 0x000500c2u, 0x00000006u, 0x000009c5u, 0x000009c4u, 0x00000033u, 0x0003003eu, 0x000009c6u, + 0x000009c5u, 0x0003003eu, 0x000009c7u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000009c8u, 0x0000001bu, + 0x000009c6u, 0x000009c7u, 0x00050085u, 0x00000008u, 0x000009c9u, 0x000009c3u, 0x000009c8u, 0x00050081u, + 0x00000008u, 0x000009cau, 0x000009c2u, 0x000009c9u, 0x0004003du, 0x00000008u, 0x000009cbu, 0x000001f6u, + 0x00050081u, 0x00000008u, 0x000009ccu, 0x000009cbu, 0x000009cau, 0x0003003eu, 0x000001f6u, 0x000009ccu, + 0x0004003du, 0x00000008u, 0x000009cdu, 0x000007fau, 0x0004003du, 0x00000006u, 0x000009ceu, 0x00000995u, + 0x000500c7u, 0x00000006u, 0x000009cfu, 0x000009ceu, 0x0000004eu, 0x0003003eu, 0x000009d0u, 0x000009cfu, + 0x0003003eu, 0x000009d1u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000009d2u, 0x0000001bu, 0x000009d0u, + 0x000009d1u, 0x00050085u, 0x00000008u, 0x000009d3u, 0x000009cdu, 0x000009d2u, 0x0004003du, 0x00000008u, + 0x000009d4u, 0x00000800u, 0x0004003du, 0x00000006u, 0x000009d5u, 0x00000995u, 0x000500c2u, 0x00000006u, + 0x000009d6u, 0x000009d5u, 0x00000033u, 0x0003003eu, 0x000009d7u, 0x000009d6u, 0x0003003eu, 0x000009d8u, + 0x00000294u, 0x00060039u, 0x00000008u, 0x000009d9u, 0x0000001bu, 0x000009d7u, 0x000009d8u, 0x00050085u, + 0x00000008u, 0x000009dau, 0x000009d4u, 0x000009d9u, 0x00050081u, 0x00000008u, 0x000009dbu, 0x000009d3u, + 0x000009dau, 0x0004003du, 0x00000008u, 0x000009dcu, 0x000001f7u, 0x00050081u, 0x00000008u, 0x000009ddu, + 0x000009dcu, 0x000009dbu, 0x0003003eu, 0x000001f7u, 0x000009ddu, 0x0004003du, 0x00000008u, 0x000009deu, + 0x00000806u, 0x0004003du, 0x00000006u, 0x000009dfu, 0x000009a2u, 0x000500c7u, 0x00000006u, 0x000009e0u, + 0x000009dfu, 0x0000004eu, 0x0003003eu, 0x000009e1u, 0x000009e0u, 0x0003003eu, 0x000009e2u, 0x00000294u, + 0x00060039u, 0x00000008u, 0x000009e3u, 0x0000001bu, 0x000009e1u, 0x000009e2u, 0x00050085u, 0x00000008u, + 0x000009e4u, 0x000009deu, 0x000009e3u, 0x0004003du, 0x00000008u, 0x000009e5u, 0x0000080cu, 0x0004003du, + 0x00000006u, 0x000009e6u, 0x000009a2u, 0x000500c2u, 0x00000006u, 0x000009e7u, 0x000009e6u, 0x00000033u, + 0x0003003eu, 0x000009e8u, 0x000009e7u, 0x0003003eu, 0x000009e9u, 0x00000294u, 0x00060039u, 0x00000008u, + 0x000009eau, 0x0000001bu, 0x000009e8u, 0x000009e9u, 0x00050085u, 0x00000008u, 0x000009ebu, 0x000009e5u, + 0x000009eau, 0x00050081u, 0x00000008u, 0x000009ecu, 0x000009e4u, 0x000009ebu, 0x0004003du, 0x00000008u, + 0x000009edu, 0x000001f8u, 0x00050081u, 0x00000008u, 0x000009eeu, 0x000009edu, 0x000009ecu, 0x0003003eu, + 0x000001f8u, 0x000009eeu, 0x0004003du, 0x00000008u, 0x000009efu, 0x00000812u, 0x0004003du, 0x00000006u, + 0x000009f0u, 0x000009afu, 0x000500c7u, 0x00000006u, 0x000009f1u, 0x000009f0u, 0x0000004eu, 0x0003003eu, + 0x000009f2u, 0x000009f1u, 0x0003003eu, 0x000009f3u, 0x00000294u, 0x00060039u, 0x00000008u, 0x000009f4u, + 0x0000001bu, 0x000009f2u, 0x000009f3u, 0x00050085u, 0x00000008u, 0x000009f5u, 0x000009efu, 0x000009f4u, + 0x0004003du, 0x00000008u, 0x000009f6u, 0x00000818u, 0x0004003du, 0x00000006u, 0x000009f7u, 0x000009afu, + 0x000500c2u, 0x00000006u, 0x000009f8u, 0x000009f7u, 0x00000033u, 0x0003003eu, 0x000009f9u, 0x000009f8u, + 0x0003003eu, 0x000009fau, 0x00000294u, 0x00060039u, 0x00000008u, 0x000009fbu, 0x0000001bu, 0x000009f9u, + 0x000009fau, 0x00050085u, 0x00000008u, 0x000009fcu, 0x000009f6u, 0x000009fbu, 0x00050081u, 0x00000008u, + 0x000009fdu, 0x000009f5u, 0x000009fcu, 0x0004003du, 0x00000008u, 0x000009feu, 0x000001f9u, 0x00050081u, + 0x00000008u, 0x000009ffu, 0x000009feu, 0x000009fdu, 0x0003003eu, 0x000001f9u, 0x000009ffu, 0x000200f9u, + 0x00000911u, 0x000200f8u, 0x00000911u, 0x000200f9u, 0x000007b1u, 0x000200f8u, 0x000007b1u, 0x0004003du, + 0x00000006u, 0x00000a01u, 0x000007acu, 0x00050080u, 0x00000006u, 0x00000a02u, 0x00000a01u, 0x00000a00u, + 0x0003003eu, 0x000007acu, 0x00000a02u, 0x000200f9u, 0x000007aeu, 0x000200f8u, 0x000007b0u, 0x000200f9u, + 0x00000a03u, 0x000200f8u, 0x00000a03u, 0x000400f6u, 0x00000a05u, 0x00000a06u, 0x00000000u, 0x000200f9u, + 0x00000a07u, 0x000200f8u, 0x00000a07u, 0x0004003du, 0x00000006u, 0x00000a08u, 0x000007acu, 0x0004003du, + 0x00000006u, 0x00000a09u, 0x000007a8u, 0x000500b0u, 0x0000003bu, 0x00000a0au, 0x00000a08u, 0x00000a09u, + 0x000400fau, 0x00000a0au, 0x00000a04u, 0x00000a05u, 0x000200f8u, 0x00000a04u, 0x00050041u, 0x000001bbu, + 0x00000a0cu, 0x000001bau, 0x00000219u, 0x0004003du, 0x00000006u, 0x00000a0du, 0x00000a0cu, 0x000500c2u, + 0x00000006u, 0x00000a0eu, 0x00000a0du, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000a0fu, 0x000001cfu, + 0x0004003du, 0x00000006u, 0x00000a10u, 0x000007acu, 0x000500c4u, 0x00000006u, 0x00000a11u, 0x00000a10u, + 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000a12u, 0x00000a0fu, 0x00000a11u, 0x000500c2u, 0x00000006u, + 0x00000a13u, 0x00000a12u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000a14u, 0x00000a0eu, 0x00000a13u, + 0x00060041u, 0x00000442u, 0x00000a15u, 0x0000043au, 0x000000e2u, 0x00000a14u, 0x0004003du, 0x00000006u, + 0x00000a16u, 0x00000a15u, 0x0003003eu, 0x00000a0bu, 0x00000a16u, 0x0004003du, 0x00000006u, 0x00000a18u, + 0x00000a0bu, 0x000500c7u, 0x00000006u, 0x00000a19u, 0x00000a18u, 0x0000004eu, 0x0003003eu, 0x00000a1au, + 0x00000a19u, 0x0003003eu, 0x00000a1bu, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000a1cu, 0x0000001bu, + 0x00000a1au, 0x00000a1bu, 0x0003003eu, 0x00000a17u, 0x00000a1cu, 0x0004003du, 0x00000006u, 0x00000a1eu, + 0x00000a0bu, 0x000500c2u, 0x00000006u, 0x00000a1fu, 0x00000a1eu, 0x00000033u, 0x0003003eu, 0x00000a20u, + 0x00000a1fu, 0x0003003eu, 0x00000a21u, 0x00000223u, 0x00060039u, 0x00000008u, 0x00000a22u, 0x0000001bu, + 0x00000a20u, 0x00000a21u, 0x0003003eu, 0x00000a1du, 0x00000a22u, 0x00050041u, 0x000001bbu, 0x00000a24u, + 0x000001bau, 0x00000261u, 0x0004003du, 0x00000006u, 0x00000a25u, 0x00000a24u, 0x000500c2u, 0x00000006u, + 0x00000a26u, 0x00000a25u, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000a27u, 0x000001d5u, 0x0004003du, + 0x00000006u, 0x00000a28u, 0x000007acu, 0x000500c4u, 0x00000006u, 0x00000a29u, 0x00000a28u, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x00000a2au, 0x00000a27u, 0x00000a29u, 0x000500c2u, 0x00000006u, 0x00000a2bu, + 0x00000a2au, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000a2cu, 0x00000a26u, 0x00000a2bu, 0x00060041u, + 0x00000442u, 0x00000a2du, 0x000004c3u, 0x000000e2u, 0x00000a2cu, 0x0004003du, 0x00000006u, 0x00000a2eu, + 0x00000a2du, 0x0003003eu, 0x00000a23u, 0x00000a2eu, 0x0004003du, 0x00000008u, 0x00000a2fu, 0x00000a17u, + 0x0004003du, 0x00000006u, 0x00000a30u, 0x00000a23u, 0x000500c7u, 0x00000006u, 0x00000a31u, 0x00000a30u, + 0x0000004eu, 0x0003003eu, 0x00000a32u, 0x00000a31u, 0x0003003eu, 0x00000a33u, 0x00000294u, 0x00060039u, + 0x00000008u, 0x00000a34u, 0x0000001bu, 0x00000a32u, 0x00000a33u, 0x00050085u, 0x00000008u, 0x00000a35u, + 0x00000a2fu, 0x00000a34u, 0x0004003du, 0x00000008u, 0x00000a36u, 0x00000a1du, 0x0004003du, 0x00000006u, + 0x00000a37u, 0x00000a23u, 0x000500c2u, 0x00000006u, 0x00000a38u, 0x00000a37u, 0x00000033u, 0x0003003eu, + 0x00000a39u, 0x00000a38u, 0x0003003eu, 0x00000a3au, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000a3bu, + 0x0000001bu, 0x00000a39u, 0x00000a3au, 0x00050085u, 0x00000008u, 0x00000a3cu, 0x00000a36u, 0x00000a3bu, + 0x00050081u, 0x00000008u, 0x00000a3du, 0x00000a35u, 0x00000a3cu, 0x0004003du, 0x00000008u, 0x00000a3eu, + 0x000001e9u, 0x00050081u, 0x00000008u, 0x00000a3fu, 0x00000a3eu, 0x00000a3du, 0x0003003eu, 0x000001e9u, + 0x00000a3fu, 0x000300f7u, 0x00000a42u, 0x00000000u, 0x000400fau, 0x00000a40u, 0x00000a41u, 0x00000a42u, + 0x000200f8u, 0x00000a41u, 0x00050041u, 0x000001bbu, 0x00000a44u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x00000a45u, 0x00000a44u, 0x000500c2u, 0x00000006u, 0x00000a46u, 0x00000a45u, 0x000001d1u, + 0x0004003du, 0x00000006u, 0x00000a47u, 0x000001dau, 0x0004003du, 0x00000006u, 0x00000a48u, 0x000007acu, + 0x000500c4u, 0x00000006u, 0x00000a49u, 0x00000a48u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000a4au, + 0x00000a47u, 0x00000a49u, 0x000500c2u, 0x00000006u, 0x00000a4bu, 0x00000a4au, 0x0000008fu, 0x00050080u, + 0x00000006u, 0x00000a4cu, 0x00000a46u, 0x00000a4bu, 0x00060041u, 0x00000442u, 0x00000a4du, 0x000004c3u, + 0x000000e2u, 0x00000a4cu, 0x0004003du, 0x00000006u, 0x00000a4eu, 0x00000a4du, 0x0003003eu, 0x00000a43u, + 0x00000a4eu, 0x0004003du, 0x00000008u, 0x00000a4fu, 0x00000a17u, 0x0004003du, 0x00000006u, 0x00000a50u, + 0x00000a43u, 0x000500c7u, 0x00000006u, 0x00000a51u, 0x00000a50u, 0x0000004eu, 0x0003003eu, 0x00000a52u, + 0x00000a51u, 0x0003003eu, 0x00000a53u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000a54u, 0x0000001bu, + 0x00000a52u, 0x00000a53u, 0x00050085u, 0x00000008u, 0x00000a55u, 0x00000a4fu, 0x00000a54u, 0x0004003du, + 0x00000008u, 0x00000a56u, 0x00000a1du, 0x0004003du, 0x00000006u, 0x00000a57u, 0x00000a43u, 0x000500c2u, + 0x00000006u, 0x00000a58u, 0x00000a57u, 0x00000033u, 0x0003003eu, 0x00000a59u, 0x00000a58u, 0x0003003eu, + 0x00000a5au, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000a5bu, 0x0000001bu, 0x00000a59u, 0x00000a5au, + 0x00050085u, 0x00000008u, 0x00000a5cu, 0x00000a56u, 0x00000a5bu, 0x00050081u, 0x00000008u, 0x00000a5du, + 0x00000a55u, 0x00000a5cu, 0x0004003du, 0x00000008u, 0x00000a5eu, 0x000001eeu, 0x00050081u, 0x00000008u, + 0x00000a5fu, 0x00000a5eu, 0x00000a5du, 0x0003003eu, 0x000001eeu, 0x00000a5fu, 0x000200f9u, 0x00000a42u, + 0x000200f8u, 0x00000a42u, 0x000300f7u, 0x00000a62u, 0x00000000u, 0x000400fau, 0x00000a60u, 0x00000a61u, + 0x00000a62u, 0x000200f8u, 0x00000a61u, 0x00050041u, 0x000001bbu, 0x00000a64u, 0x000001bau, 0x00000261u, + 0x0004003du, 0x00000006u, 0x00000a65u, 0x00000a64u, 0x000500c2u, 0x00000006u, 0x00000a66u, 0x00000a65u, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000a67u, 0x000001dfu, 0x0004003du, 0x00000006u, 0x00000a68u, + 0x000007acu, 0x000500c4u, 0x00000006u, 0x00000a69u, 0x00000a68u, 0x0000008fu, 0x00050080u, 0x00000006u, + 0x00000a6au, 0x00000a67u, 0x00000a69u, 0x000500c2u, 0x00000006u, 0x00000a6bu, 0x00000a6au, 0x0000008fu, + 0x00050080u, 0x00000006u, 0x00000a6cu, 0x00000a66u, 0x00000a6bu, 0x00060041u, 0x00000442u, 0x00000a6du, + 0x000004c3u, 0x000000e2u, 0x00000a6cu, 0x0004003du, 0x00000006u, 0x00000a6eu, 0x00000a6du, 0x0003003eu, + 0x00000a63u, 0x00000a6eu, 0x00050041u, 0x000001bbu, 0x00000a70u, 0x000001bau, 0x00000261u, 0x0004003du, + 0x00000006u, 0x00000a71u, 0x00000a70u, 0x000500c2u, 0x00000006u, 0x00000a72u, 0x00000a71u, 0x000001d1u, + 0x0004003du, 0x00000006u, 0x00000a73u, 0x000001e4u, 0x0004003du, 0x00000006u, 0x00000a74u, 0x000007acu, + 0x000500c4u, 0x00000006u, 0x00000a75u, 0x00000a74u, 0x0000008fu, 0x00050080u, 0x00000006u, 0x00000a76u, + 0x00000a73u, 0x00000a75u, 0x000500c2u, 0x00000006u, 0x00000a77u, 0x00000a76u, 0x0000008fu, 0x00050080u, + 0x00000006u, 0x00000a78u, 0x00000a72u, 0x00000a77u, 0x00060041u, 0x00000442u, 0x00000a79u, 0x000004c3u, + 0x000000e2u, 0x00000a78u, 0x0004003du, 0x00000006u, 0x00000a7au, 0x00000a79u, 0x0003003eu, 0x00000a6fu, + 0x00000a7au, 0x0004003du, 0x00000008u, 0x00000a7bu, 0x00000a17u, 0x0004003du, 0x00000006u, 0x00000a7cu, + 0x00000a63u, 0x000500c7u, 0x00000006u, 0x00000a7du, 0x00000a7cu, 0x0000004eu, 0x0003003eu, 0x00000a7eu, + 0x00000a7du, 0x0003003eu, 0x00000a7fu, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000a80u, 0x0000001bu, + 0x00000a7eu, 0x00000a7fu, 0x00050085u, 0x00000008u, 0x00000a81u, 0x00000a7bu, 0x00000a80u, 0x0004003du, + 0x00000008u, 0x00000a82u, 0x00000a1du, 0x0004003du, 0x00000006u, 0x00000a83u, 0x00000a63u, 0x000500c2u, + 0x00000006u, 0x00000a84u, 0x00000a83u, 0x00000033u, 0x0003003eu, 0x00000a85u, 0x00000a84u, 0x0003003eu, + 0x00000a86u, 0x00000294u, 0x00060039u, 0x00000008u, 0x00000a87u, 0x0000001bu, 0x00000a85u, 0x00000a86u, + 0x00050085u, 0x00000008u, 0x00000a88u, 0x00000a82u, 0x00000a87u, 0x00050081u, 0x00000008u, 0x00000a89u, + 0x00000a81u, 0x00000a88u, 0x0004003du, 0x00000008u, 0x00000a8au, 0x000001f2u, 0x00050081u, 0x00000008u, + 0x00000a8bu, 0x00000a8au, 0x00000a89u, 0x0003003eu, 0x000001f2u, 0x00000a8bu, 0x0004003du, 0x00000008u, + 0x00000a8cu, 0x00000a17u, 0x0004003du, 0x00000006u, 0x00000a8du, 0x00000a6fu, 0x000500c7u, 0x00000006u, + 0x00000a8eu, 0x00000a8du, 0x0000004eu, 0x0003003eu, 0x00000a8fu, 0x00000a8eu, 0x0003003eu, 0x00000a90u, + 0x00000294u, 0x00060039u, 0x00000008u, 0x00000a91u, 0x0000001bu, 0x00000a8fu, 0x00000a90u, 0x00050085u, + 0x00000008u, 0x00000a92u, 0x00000a8cu, 0x00000a91u, 0x0004003du, 0x00000008u, 0x00000a93u, 0x00000a1du, + 0x0004003du, 0x00000006u, 0x00000a94u, 0x00000a6fu, 0x000500c2u, 0x00000006u, 0x00000a95u, 0x00000a94u, + 0x00000033u, 0x0003003eu, 0x00000a96u, 0x00000a95u, 0x0003003eu, 0x00000a97u, 0x00000294u, 0x00060039u, + 0x00000008u, 0x00000a98u, 0x0000001bu, 0x00000a96u, 0x00000a97u, 0x00050085u, 0x00000008u, 0x00000a99u, + 0x00000a93u, 0x00000a98u, 0x00050081u, 0x00000008u, 0x00000a9au, 0x00000a92u, 0x00000a99u, 0x0004003du, + 0x00000008u, 0x00000a9bu, 0x000001f6u, 0x00050081u, 0x00000008u, 0x00000a9cu, 0x00000a9bu, 0x00000a9au, + 0x0003003eu, 0x000001f6u, 0x00000a9cu, 0x000200f9u, 0x00000a62u, 0x000200f8u, 0x00000a62u, 0x000200f9u, + 0x00000a06u, 0x000200f8u, 0x00000a06u, 0x0004003du, 0x00000006u, 0x00000a9du, 0x000007acu, 0x00050080u, + 0x00000006u, 0x00000a9eu, 0x00000a9du, 0x00000230u, 0x0003003eu, 0x000007acu, 0x00000a9eu, 0x000200f9u, + 0x00000a03u, 0x000200f8u, 0x00000a05u, 0x000200f9u, 0x00000421u, 0x000200f8u, 0x00000421u, 0x000200f9u, + 0x000001fdu, 0x000200f8u, 0x000001fdu, 0x000400e0u, 0x00000190u, 0x00000190u, 0x00000a9fu, 0x0004003du, + 0x00000006u, 0x00000aa3u, 0x000001aau, 0x0004003du, 0x00000008u, 0x00000aa4u, 0x000001e9u, 0x0004003du, + 0x00000008u, 0x00000aa5u, 0x000001ebu, 0x00050081u, 0x00000008u, 0x00000aa6u, 0x00000aa4u, 0x00000aa5u, + 0x0004003du, 0x00000008u, 0x00000aa7u, 0x000001ecu, 0x0004003du, 0x00000008u, 0x00000aa8u, 0x000001edu, + 0x00050081u, 0x00000008u, 0x00000aa9u, 0x00000aa7u, 0x00000aa8u, 0x00050081u, 0x00000008u, 0x00000aaau, + 0x00000aa6u, 0x00000aa9u, 0x00050041u, 0x00000aabu, 0x00000aacu, 0x00000aa2u, 0x00000aa3u, 0x0003003eu, + 0x00000aacu, 0x00000aaau, 0x000300f7u, 0x00000aafu, 0x00000000u, 0x000400fau, 0x00000aadu, 0x00000aaeu, + 0x00000aafu, 0x000200f8u, 0x00000aaeu, 0x0004003du, 0x00000006u, 0x00000ab0u, 0x000001aau, 0x00050080u, + 0x00000006u, 0x00000ab1u, 0x00000230u, 0x00000ab0u, 0x0004003du, 0x00000008u, 0x00000ab2u, 0x000001eeu, + 0x0004003du, 0x00000008u, 0x00000ab3u, 0x000001efu, 0x00050081u, 0x00000008u, 0x00000ab4u, 0x00000ab2u, + 0x00000ab3u, 0x0004003du, 0x00000008u, 0x00000ab5u, 0x000001f0u, 0x0004003du, 0x00000008u, 0x00000ab6u, + 0x000001f1u, 0x00050081u, 0x00000008u, 0x00000ab7u, 0x00000ab5u, 0x00000ab6u, 0x00050081u, 0x00000008u, + 0x00000ab8u, 0x00000ab4u, 0x00000ab7u, 0x00050041u, 0x00000aabu, 0x00000ab9u, 0x00000aa2u, 0x00000ab1u, + 0x0003003eu, 0x00000ab9u, 0x00000ab8u, 0x000200f9u, 0x00000aafu, 0x000200f8u, 0x00000aafu, 0x000300f7u, + 0x00000abcu, 0x00000000u, 0x000400fau, 0x00000abau, 0x00000abbu, 0x00000abcu, 0x000200f8u, 0x00000abbu, + 0x0004003du, 0x00000006u, 0x00000abdu, 0x000001aau, 0x00050080u, 0x00000006u, 0x00000abeu, 0x00000241u, + 0x00000abdu, 0x0004003du, 0x00000008u, 0x00000abfu, 0x000001f2u, 0x0004003du, 0x00000008u, 0x00000ac0u, + 0x000001f3u, 0x00050081u, 0x00000008u, 0x00000ac1u, 0x00000abfu, 0x00000ac0u, 0x0004003du, 0x00000008u, + 0x00000ac2u, 0x000001f4u, 0x0004003du, 0x00000008u, 0x00000ac3u, 0x000001f5u, 0x00050081u, 0x00000008u, + 0x00000ac4u, 0x00000ac2u, 0x00000ac3u, 0x00050081u, 0x00000008u, 0x00000ac5u, 0x00000ac1u, 0x00000ac4u, + 0x00050041u, 0x00000aabu, 0x00000ac6u, 0x00000aa2u, 0x00000abeu, 0x0003003eu, 0x00000ac6u, 0x00000ac5u, + 0x0004003du, 0x00000006u, 0x00000ac7u, 0x000001aau, 0x00050080u, 0x00000006u, 0x00000ac8u, 0x0000020fu, + 0x00000ac7u, 0x0004003du, 0x00000008u, 0x00000ac9u, 0x000001f6u, 0x0004003du, 0x00000008u, 0x00000acau, + 0x000001f7u, 0x00050081u, 0x00000008u, 0x00000acbu, 0x00000ac9u, 0x00000acau, 0x0004003du, 0x00000008u, + 0x00000accu, 0x000001f8u, 0x0004003du, 0x00000008u, 0x00000acdu, 0x000001f9u, 0x00050081u, 0x00000008u, + 0x00000aceu, 0x00000accu, 0x00000acdu, 0x00050081u, 0x00000008u, 0x00000acfu, 0x00000acbu, 0x00000aceu, + 0x00050041u, 0x00000aabu, 0x00000ad0u, 0x00000aa2u, 0x00000ac8u, 0x0003003eu, 0x00000ad0u, 0x00000acfu, + 0x000200f9u, 0x00000abcu, 0x000200f8u, 0x00000abcu, 0x000400e0u, 0x00000190u, 0x00000190u, 0x00000a9fu, + 0x0003003eu, 0x00000ad1u, 0x0000004cu, 0x000200f9u, 0x00000ad2u, 0x000200f8u, 0x00000ad2u, 0x000400f6u, + 0x00000ad4u, 0x00000ad5u, 0x00000000u, 0x000200f9u, 0x00000ad6u, 0x000200f8u, 0x00000ad6u, 0x0004003du, + 0x00000006u, 0x00000ad7u, 0x00000ad1u, 0x000500acu, 0x0000003bu, 0x00000ad8u, 0x00000ad7u, 0x00000045u, + 0x000400fau, 0x00000ad8u, 0x00000ad3u, 0x00000ad4u, 0x000200f8u, 0x00000ad3u, 0x0004003du, 0x00000006u, + 0x00000ad9u, 0x000001aau, 0x0004003du, 0x00000006u, 0x00000adau, 0x00000ad1u, 0x000500b0u, 0x0000003bu, + 0x00000adbu, 0x00000ad9u, 0x00000adau, 0x000300f7u, 0x00000addu, 0x00000000u, 0x000400fau, 0x00000adbu, + 0x00000adcu, 0x00000addu, 0x000200f8u, 0x00000adcu, 0x0004003du, 0x00000006u, 0x00000adeu, 0x000001aau, + 0x0004003du, 0x00000006u, 0x00000adfu, 0x000001aau, 0x0004003du, 0x00000006u, 0x00000ae0u, 0x00000ad1u, + 0x00050080u, 0x00000006u, 0x00000ae1u, 0x00000adfu, 0x00000ae0u, 0x00050041u, 0x00000aabu, 0x00000ae2u, + 0x00000aa2u, 0x00000ae1u, 0x0004003du, 0x00000008u, 0x00000ae3u, 0x00000ae2u, 0x00050041u, 0x00000aabu, + 0x00000ae4u, 0x00000aa2u, 0x00000adeu, 0x0004003du, 0x00000008u, 0x00000ae5u, 0x00000ae4u, 0x00050081u, + 0x00000008u, 0x00000ae6u, 0x00000ae5u, 0x00000ae3u, 0x00050041u, 0x00000aabu, 0x00000ae7u, 0x00000aa2u, + 0x00000adeu, 0x0003003eu, 0x00000ae7u, 0x00000ae6u, 0x000300f7u, 0x00000aeau, 0x00000000u, 0x000400fau, + 0x00000ae8u, 0x00000ae9u, 0x00000aeau, 0x000200f8u, 0x00000ae9u, 0x0004003du, 0x00000006u, 0x00000aebu, + 0x000001aau, 0x00050080u, 0x00000006u, 0x00000aecu, 0x00000230u, 0x00000aebu, 0x0004003du, 0x00000006u, + 0x00000aedu, 0x000001aau, 0x00050080u, 0x00000006u, 0x00000aeeu, 0x00000230u, 0x00000aedu, 0x0004003du, + 0x00000006u, 0x00000aefu, 0x00000ad1u, 0x00050080u, 0x00000006u, 0x00000af0u, 0x00000aeeu, 0x00000aefu, + 0x00050041u, 0x00000aabu, 0x00000af1u, 0x00000aa2u, 0x00000af0u, 0x0004003du, 0x00000008u, 0x00000af2u, + 0x00000af1u, 0x00050041u, 0x00000aabu, 0x00000af3u, 0x00000aa2u, 0x00000aecu, 0x0004003du, 0x00000008u, + 0x00000af4u, 0x00000af3u, 0x00050081u, 0x00000008u, 0x00000af5u, 0x00000af4u, 0x00000af2u, 0x00050041u, + 0x00000aabu, 0x00000af6u, 0x00000aa2u, 0x00000aecu, 0x0003003eu, 0x00000af6u, 0x00000af5u, 0x000200f9u, + 0x00000aeau, 0x000200f8u, 0x00000aeau, 0x000300f7u, 0x00000af9u, 0x00000000u, 0x000400fau, 0x00000af7u, + 0x00000af8u, 0x00000af9u, 0x000200f8u, 0x00000af8u, 0x0004003du, 0x00000006u, 0x00000afau, 0x000001aau, + 0x00050080u, 0x00000006u, 0x00000afbu, 0x00000241u, 0x00000afau, 0x0004003du, 0x00000006u, 0x00000afcu, + 0x000001aau, 0x00050080u, 0x00000006u, 0x00000afdu, 0x00000241u, 0x00000afcu, 0x0004003du, 0x00000006u, + 0x00000afeu, 0x00000ad1u, 0x00050080u, 0x00000006u, 0x00000affu, 0x00000afdu, 0x00000afeu, 0x00050041u, + 0x00000aabu, 0x00000b00u, 0x00000aa2u, 0x00000affu, 0x0004003du, 0x00000008u, 0x00000b01u, 0x00000b00u, + 0x00050041u, 0x00000aabu, 0x00000b02u, 0x00000aa2u, 0x00000afbu, 0x0004003du, 0x00000008u, 0x00000b03u, + 0x00000b02u, 0x00050081u, 0x00000008u, 0x00000b04u, 0x00000b03u, 0x00000b01u, 0x00050041u, 0x00000aabu, + 0x00000b05u, 0x00000aa2u, 0x00000afbu, 0x0003003eu, 0x00000b05u, 0x00000b04u, 0x0004003du, 0x00000006u, + 0x00000b06u, 0x000001aau, 0x00050080u, 0x00000006u, 0x00000b07u, 0x0000020fu, 0x00000b06u, 0x0004003du, + 0x00000006u, 0x00000b08u, 0x000001aau, 0x00050080u, 0x00000006u, 0x00000b09u, 0x0000020fu, 0x00000b08u, + 0x0004003du, 0x00000006u, 0x00000b0au, 0x00000ad1u, 0x00050080u, 0x00000006u, 0x00000b0bu, 0x00000b09u, + 0x00000b0au, 0x00050041u, 0x00000aabu, 0x00000b0cu, 0x00000aa2u, 0x00000b0bu, 0x0004003du, 0x00000008u, + 0x00000b0du, 0x00000b0cu, 0x00050041u, 0x00000aabu, 0x00000b0eu, 0x00000aa2u, 0x00000b07u, 0x0004003du, + 0x00000008u, 0x00000b0fu, 0x00000b0eu, 0x00050081u, 0x00000008u, 0x00000b10u, 0x00000b0fu, 0x00000b0du, + 0x00050041u, 0x00000aabu, 0x00000b11u, 0x00000aa2u, 0x00000b07u, 0x0003003eu, 0x00000b11u, 0x00000b10u, + 0x000200f9u, 0x00000af9u, 0x000200f8u, 0x00000af9u, 0x000200f9u, 0x00000addu, 0x000200f8u, 0x00000addu, + 0x000400e0u, 0x00000190u, 0x00000190u, 0x00000a9fu, 0x000200f9u, 0x00000ad5u, 0x000200f8u, 0x00000ad5u, + 0x0004003du, 0x00000006u, 0x00000b12u, 0x00000ad1u, 0x000500c2u, 0x00000006u, 0x00000b13u, 0x00000b12u, + 0x0000008fu, 0x0003003eu, 0x00000ad1u, 0x00000b13u, 0x000200f9u, 0x00000ad2u, 0x000200f8u, 0x00000ad4u, + 0x0004003du, 0x00000006u, 0x00000b14u, 0x000001aau, 0x000500abu, 0x0000003bu, 0x00000b15u, 0x00000b14u, + 0x00000045u, 0x000300f7u, 0x00000b17u, 0x00000000u, 0x000400fau, 0x00000b15u, 0x00000b16u, 0x00000b17u, + 0x000200f8u, 0x00000b16u, 0x000100fdu, 0x000200f8u, 0x00000b17u, 0x000200f9u, 0x00000b19u, 0x000200f8u, + 0x00000b19u, 0x000400f6u, 0x00000b1bu, 0x00000b1cu, 0x00000000u, 0x000200f9u, 0x00000b1au, 0x000200f8u, + 0x00000b1au, 0x000300f7u, 0x00000b20u, 0x00000000u, 0x000400fau, 0x00000b1eu, 0x00000b1fu, 0x00000b2fu, + 0x000200f8u, 0x00000b1fu, 0x00050041u, 0x000001bbu, 0x00000b26u, 0x000001bau, 0x00000b25u, 0x0004003du, + 0x00000006u, 0x00000b27u, 0x00000b26u, 0x000500c2u, 0x00000006u, 0x00000b28u, 0x00000b27u, 0x000001d1u, + 0x0004003du, 0x00000006u, 0x00000b29u, 0x000001b1u, 0x00050080u, 0x00000006u, 0x00000b2au, 0x00000b28u, + 0x00000b29u, 0x00050041u, 0x00000aabu, 0x00000b2bu, 0x00000aa2u, 0x000000e2u, 0x0004003du, 0x00000008u, + 0x00000b2cu, 0x00000b2bu, 0x0004007cu, 0x00000006u, 0x00000b2du, 0x00000b2cu, 0x00060041u, 0x00000442u, + 0x00000b2eu, 0x00000b24u, 0x000000e2u, 0x00000b2au, 0x0003003eu, 0x00000b2eu, 0x00000b2du, 0x000200f9u, + 0x00000b20u, 0x000200f8u, 0x00000b2fu, 0x00050041u, 0x000001bbu, 0x00000b34u, 0x000001bau, 0x00000b25u, + 0x0004003du, 0x00000006u, 0x00000b35u, 0x00000b34u, 0x000500c2u, 0x00000006u, 0x00000b36u, 0x00000b35u, + 0x0000008fu, 0x0004003du, 0x00000006u, 0x00000b37u, 0x000001b1u, 0x00050080u, 0x00000006u, 0x00000b38u, + 0x00000b36u, 0x00000b37u, 0x00050041u, 0x00000aabu, 0x00000b3au, 0x00000aa2u, 0x000000e2u, 0x0004003du, + 0x00000008u, 0x00000b3bu, 0x00000b3au, 0x0003003eu, 0x00000b39u, 0x00000b3bu, 0x0003003eu, 0x00000b3cu, + 0x00000b1du, 0x00060039u, 0x00000006u, 0x00000b3du, 0x00000020u, 0x00000b39u, 0x00000b3cu, 0x00040071u, + 0x00000447u, 0x00000b3eu, 0x00000b3du, 0x00060041u, 0x00000453u, 0x00000b3fu, 0x00000b33u, 0x000000e2u, + 0x00000b38u, 0x0003003eu, 0x00000b3fu, 0x00000b3eu, 0x000200f9u, 0x00000b20u, 0x000200f8u, 0x00000b20u, + 0x000200f9u, 0x00000b1cu, 0x000200f8u, 0x00000b1cu, 0x000400fau, 0x00000b40u, 0x00000b19u, 0x00000b1bu, + 0x000200f8u, 0x00000b1bu, 0x000300f7u, 0x00000b43u, 0x00000000u, 0x000400fau, 0x00000b41u, 0x00000b42u, + 0x00000b43u, 0x000200f8u, 0x00000b42u, 0x000200f9u, 0x00000b44u, 0x000200f8u, 0x00000b44u, 0x000400f6u, + 0x00000b46u, 0x00000b47u, 0x00000000u, 0x000200f9u, 0x00000b45u, 0x000200f8u, 0x00000b45u, 0x000300f7u, + 0x00000b4au, 0x00000000u, 0x000400fau, 0x00000b48u, 0x00000b49u, 0x00000b56u, 0x000200f8u, 0x00000b49u, + 0x00050041u, 0x000001bbu, 0x00000b4bu, 0x000001bau, 0x00000b25u, 0x0004003du, 0x00000006u, 0x00000b4cu, + 0x00000b4bu, 0x000500c2u, 0x00000006u, 0x00000b4du, 0x00000b4cu, 0x000001d1u, 0x0004003du, 0x00000006u, + 0x00000b4eu, 0x000001b1u, 0x00050080u, 0x00000006u, 0x00000b4fu, 0x00000b4eu, 0x00000055u, 0x00050080u, + 0x00000006u, 0x00000b50u, 0x00000b4du, 0x00000b4fu, 0x00050041u, 0x00000aabu, 0x00000b52u, 0x00000aa2u, + 0x00000b51u, 0x0004003du, 0x00000008u, 0x00000b53u, 0x00000b52u, 0x0004007cu, 0x00000006u, 0x00000b54u, + 0x00000b53u, 0x00060041u, 0x00000442u, 0x00000b55u, 0x00000b24u, 0x000000e2u, 0x00000b50u, 0x0003003eu, + 0x00000b55u, 0x00000b54u, 0x000200f9u, 0x00000b4au, 0x000200f8u, 0x00000b56u, 0x00050041u, 0x000001bbu, + 0x00000b57u, 0x000001bau, 0x00000b25u, 0x0004003du, 0x00000006u, 0x00000b58u, 0x00000b57u, 0x000500c2u, + 0x00000006u, 0x00000b59u, 0x00000b58u, 0x0000008fu, 0x0004003du, 0x00000006u, 0x00000b5au, 0x000001b1u, + 0x00050080u, 0x00000006u, 0x00000b5bu, 0x00000b5au, 0x00000055u, 0x00050080u, 0x00000006u, 0x00000b5cu, + 0x00000b59u, 0x00000b5bu, 0x00050041u, 0x00000aabu, 0x00000b5eu, 0x00000aa2u, 0x00000b51u, 0x0004003du, + 0x00000008u, 0x00000b5fu, 0x00000b5eu, 0x0003003eu, 0x00000b5du, 0x00000b5fu, 0x0003003eu, 0x00000b60u, + 0x00000b1du, 0x00060039u, 0x00000006u, 0x00000b61u, 0x00000020u, 0x00000b5du, 0x00000b60u, 0x00040071u, + 0x00000447u, 0x00000b62u, 0x00000b61u, 0x00060041u, 0x00000453u, 0x00000b63u, 0x00000b33u, 0x000000e2u, + 0x00000b5cu, 0x0003003eu, 0x00000b63u, 0x00000b62u, 0x000200f9u, 0x00000b4au, 0x000200f8u, 0x00000b4au, + 0x000200f9u, 0x00000b47u, 0x000200f8u, 0x00000b47u, 0x000400fau, 0x00000b40u, 0x00000b44u, 0x00000b46u, + 0x000200f8u, 0x00000b46u, 0x000200f9u, 0x00000b43u, 0x000200f8u, 0x00000b43u, 0x000300f7u, 0x00000b66u, + 0x00000000u, 0x000400fau, 0x00000b64u, 0x00000b65u, 0x00000b66u, 0x000200f8u, 0x00000b65u, 0x000200f9u, + 0x00000b67u, 0x000200f8u, 0x00000b67u, 0x000400f6u, 0x00000b69u, 0x00000b6au, 0x00000000u, 0x000200f9u, + 0x00000b68u, 0x000200f8u, 0x00000b68u, 0x000300f7u, 0x00000b6du, 0x00000000u, 0x000400fau, 0x00000b6bu, + 0x00000b6cu, 0x00000b79u, 0x000200f8u, 0x00000b6cu, 0x00050041u, 0x000001bbu, 0x00000b6eu, 0x000001bau, + 0x00000b25u, 0x0004003du, 0x00000006u, 0x00000b6fu, 0x00000b6eu, 0x000500c2u, 0x00000006u, 0x00000b70u, + 0x00000b6fu, 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000b71u, 0x000001b1u, 0x00050080u, 0x00000006u, + 0x00000b72u, 0x00000b71u, 0x00000190u, 0x00050080u, 0x00000006u, 0x00000b73u, 0x00000b70u, 0x00000b72u, + 0x00050041u, 0x00000aabu, 0x00000b75u, 0x00000aa2u, 0x00000b74u, 0x0004003du, 0x00000008u, 0x00000b76u, + 0x00000b75u, 0x0004007cu, 0x00000006u, 0x00000b77u, 0x00000b76u, 0x00060041u, 0x00000442u, 0x00000b78u, + 0x00000b24u, 0x000000e2u, 0x00000b73u, 0x0003003eu, 0x00000b78u, 0x00000b77u, 0x000200f9u, 0x00000b6du, + 0x000200f8u, 0x00000b79u, 0x00050041u, 0x000001bbu, 0x00000b7au, 0x000001bau, 0x00000b25u, 0x0004003du, + 0x00000006u, 0x00000b7bu, 0x00000b7au, 0x000500c2u, 0x00000006u, 0x00000b7cu, 0x00000b7bu, 0x0000008fu, + 0x0004003du, 0x00000006u, 0x00000b7du, 0x000001b1u, 0x00050080u, 0x00000006u, 0x00000b7eu, 0x00000b7du, + 0x00000190u, 0x00050080u, 0x00000006u, 0x00000b7fu, 0x00000b7cu, 0x00000b7eu, 0x00050041u, 0x00000aabu, + 0x00000b81u, 0x00000aa2u, 0x00000b74u, 0x0004003du, 0x00000008u, 0x00000b82u, 0x00000b81u, 0x0003003eu, + 0x00000b80u, 0x00000b82u, 0x0003003eu, 0x00000b83u, 0x00000b1du, 0x00060039u, 0x00000006u, 0x00000b84u, + 0x00000020u, 0x00000b80u, 0x00000b83u, 0x00040071u, 0x00000447u, 0x00000b85u, 0x00000b84u, 0x00060041u, + 0x00000453u, 0x00000b86u, 0x00000b33u, 0x000000e2u, 0x00000b7fu, 0x0003003eu, 0x00000b86u, 0x00000b85u, + 0x000200f9u, 0x00000b6du, 0x000200f8u, 0x00000b6du, 0x000200f9u, 0x00000b6au, 0x000200f8u, 0x00000b6au, + 0x000400fau, 0x00000b40u, 0x00000b67u, 0x00000b69u, 0x000200f8u, 0x00000b69u, 0x000200f9u, 0x00000b87u, + 0x000200f8u, 0x00000b87u, 0x000400f6u, 0x00000b89u, 0x00000b8au, 0x00000000u, 0x000200f9u, 0x00000b88u, + 0x000200f8u, 0x00000b88u, 0x000300f7u, 0x00000b8du, 0x00000000u, 0x000400fau, 0x00000b8bu, 0x00000b8cu, + 0x00000b99u, 0x000200f8u, 0x00000b8cu, 0x00050041u, 0x000001bbu, 0x00000b8eu, 0x000001bau, 0x00000b25u, + 0x0004003du, 0x00000006u, 0x00000b8fu, 0x00000b8eu, 0x000500c2u, 0x00000006u, 0x00000b90u, 0x00000b8fu, + 0x000001d1u, 0x0004003du, 0x00000006u, 0x00000b91u, 0x000001b1u, 0x00050080u, 0x00000006u, 0x00000b92u, + 0x00000b91u, 0x0000019bu, 0x00050080u, 0x00000006u, 0x00000b93u, 0x00000b90u, 0x00000b92u, 0x00050041u, + 0x00000aabu, 0x00000b95u, 0x00000aa2u, 0x00000b94u, 0x0004003du, 0x00000008u, 0x00000b96u, 0x00000b95u, + 0x0004007cu, 0x00000006u, 0x00000b97u, 0x00000b96u, 0x00060041u, 0x00000442u, 0x00000b98u, 0x00000b24u, + 0x000000e2u, 0x00000b93u, 0x0003003eu, 0x00000b98u, 0x00000b97u, 0x000200f9u, 0x00000b8du, 0x000200f8u, + 0x00000b99u, 0x00050041u, 0x000001bbu, 0x00000b9au, 0x000001bau, 0x00000b25u, 0x0004003du, 0x00000006u, + 0x00000b9bu, 0x00000b9au, 0x000500c2u, 0x00000006u, 0x00000b9cu, 0x00000b9bu, 0x0000008fu, 0x0004003du, + 0x00000006u, 0x00000b9du, 0x000001b1u, 0x00050080u, 0x00000006u, 0x00000b9eu, 0x00000b9du, 0x0000019bu, + 0x00050080u, 0x00000006u, 0x00000b9fu, 0x00000b9cu, 0x00000b9eu, 0x00050041u, 0x00000aabu, 0x00000ba1u, + 0x00000aa2u, 0x00000b94u, 0x0004003du, 0x00000008u, 0x00000ba2u, 0x00000ba1u, 0x0003003eu, 0x00000ba0u, + 0x00000ba2u, 0x0003003eu, 0x00000ba3u, 0x00000b1du, 0x00060039u, 0x00000006u, 0x00000ba4u, 0x00000020u, + 0x00000ba0u, 0x00000ba3u, 0x00040071u, 0x00000447u, 0x00000ba5u, 0x00000ba4u, 0x00060041u, 0x00000453u, + 0x00000ba6u, 0x00000b33u, 0x000000e2u, 0x00000b9fu, 0x0003003eu, 0x00000ba6u, 0x00000ba5u, 0x000200f9u, + 0x00000b8du, 0x000200f8u, 0x00000b8du, 0x000200f9u, 0x00000b8au, 0x000200f8u, 0x00000b8au, 0x000400fau, + 0x00000b40u, 0x00000b87u, 0x00000b89u, 0x000200f8u, 0x00000b89u, 0x000200f9u, 0x00000b66u, 0x000200f8u, + 0x00000b66u, 0x000100fdu, 0x00010038u, 0x00050036u, 0x00000008u, 0x0000000bu, 0x00000000u, 0x00000009u, + 0x00030037u, 0x00000007u, 0x0000000au, 0x000200f8u, 0x0000000cu, 0x0004003du, 0x00000006u, 0x00000031u, + 0x0000000au, 0x000500c4u, 0x00000006u, 0x00000034u, 0x00000031u, 0x00000033u, 0x0004007cu, 0x00000008u, + 0x00000035u, 0x00000034u, 0x000200feu, 0x00000035u, 0x00010038u, 0x00050036u, 0x00000006u, 0x00000010u, + 0x00000000u, 0x0000000eu, 0x00030037u, 0x0000000du, 0x0000000fu, 0x000200f8u, 0x00000011u, 0x0004003bu, + 0x00000007u, 0x00000038u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000051u, 0x00000007u, 0x0004003du, + 0x00000008u, 0x00000039u, 0x0000000fu, 0x0004007cu, 0x00000006u, 0x0000003au, 0x00000039u, 0x0003003eu, + 0x00000038u, 0x0000003au, 0x0004003du, 0x00000006u, 0x0000003cu, 0x00000038u, 0x000500c7u, 0x00000006u, + 0x0000003eu, 0x0000003cu, 0x0000003du, 0x000500aau, 0x0000003bu, 0x0000003fu, 0x0000003eu, 0x0000003du, + 0x000300f7u, 0x00000041u, 0x00000000u, 0x000400fau, 0x0000003fu, 0x00000040u, 0x00000041u, 0x000200f8u, + 0x00000040u, 0x0004003du, 0x00000006u, 0x00000042u, 0x00000038u, 0x000500c7u, 0x00000006u, 0x00000044u, + 0x00000042u, 0x00000043u, 0x000500abu, 0x0000003bu, 0x00000046u, 0x00000044u, 0x00000045u, 0x000200f9u, + 0x00000041u, 0x000200f8u, 0x00000041u, 0x000700f5u, 0x0000003bu, 0x00000047u, 0x0000003fu, 0x00000011u, + 0x00000046u, 0x00000040u, 0x000300f7u, 0x00000049u, 0x00000000u, 0x000400fau, 0x00000047u, 0x00000048u, + 0x00000049u, 0x000200f8u, 0x00000048u, 0x0004003du, 0x00000006u, 0x0000004au, 0x00000038u, 0x000500c2u, + 0x00000006u, 0x0000004bu, 0x0000004au, 0x00000033u, 0x000500c5u, 0x00000006u, 0x0000004du, 0x0000004bu, + 0x0000004cu, 0x000500c7u, 0x00000006u, 0x0000004fu, 0x0000004du, 0x0000004eu, 0x000200feu, 0x0000004fu, + 0x000200f8u, 0x00000049u, 0x0004003du, 0x00000006u, 0x00000053u, 0x00000038u, 0x000500c2u, 0x00000006u, + 0x00000054u, 0x00000053u, 0x00000033u, 0x000500c7u, 0x00000006u, 0x00000056u, 0x00000054u, 0x00000055u, + 0x00050080u, 0x00000006u, 0x00000057u, 0x00000052u, 0x00000056u, 0x0003003eu, 0x00000051u, 0x00000057u, + 0x0004003du, 0x00000006u, 0x00000058u, 0x00000038u, 0x0004003du, 0x00000006u, 0x00000059u, 0x00000051u, + 0x00050080u, 0x00000006u, 0x0000005au, 0x00000058u, 0x00000059u, 0x000500c2u, 0x00000006u, 0x0000005bu, + 0x0000005au, 0x00000033u, 0x000500c7u, 0x00000006u, 0x0000005cu, 0x0000005bu, 0x0000004eu, 0x000200feu, + 0x0000005cu, 0x00010038u, 0x00050036u, 0x00000008u, 0x00000013u, 0x00000000u, 0x00000009u, 0x00030037u, + 0x00000007u, 0x00000012u, 0x000200f8u, 0x00000014u, 0x0004003bu, 0x00000007u, 0x0000005fu, 0x00000007u, + 0x0004003bu, 0x00000007u, 0x00000064u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000006au, 0x00000007u, + 0x0004003bu, 0x00000007u, 0x00000085u, 0x00000007u, 0x0004003du, 0x00000006u, 0x00000060u, 0x00000012u, + 0x000500c7u, 0x00000006u, 0x00000062u, 0x00000060u, 0x00000061u, 0x000500c4u, 0x00000006u, 0x00000063u, + 0x00000062u, 0x00000033u, 0x0003003eu, 0x0000005fu, 0x00000063u, 0x0004003du, 0x00000006u, 0x00000065u, + 0x00000012u, 0x000500c2u, 0x00000006u, 0x00000067u, 0x00000065u, 0x00000066u, 0x000500c7u, 0x00000006u, + 0x00000069u, 0x00000067u, 0x00000068u, 0x0003003eu, 0x00000064u, 0x00000069u, 0x0004003du, 0x00000006u, + 0x0000006bu, 0x00000012u, 0x000500c7u, 0x00000006u, 0x0000006du, 0x0000006bu, 0x0000006cu, 0x0003003eu, + 0x0000006au, 0x0000006du, 0x0004003du, 0x00000006u, 0x0000006eu, 0x00000064u, 0x000500aau, 0x0000003bu, + 0x0000006fu, 0x0000006eu, 0x00000068u, 0x000300f7u, 0x00000071u, 0x00000000u, 0x000400fau, 0x0000006fu, + 0x00000070u, 0x00000071u, 0x000200f8u, 0x00000070u, 0x0004003du, 0x00000006u, 0x00000072u, 0x0000005fu, + 0x000500c5u, 0x00000006u, 0x00000073u, 0x00000072u, 0x0000003du, 0x0004003du, 0x00000006u, 0x00000074u, + 0x0000006au, 0x000500c4u, 0x00000006u, 0x00000076u, 0x00000074u, 0x00000075u, 0x000500c5u, 0x00000006u, + 0x00000077u, 0x00000073u, 0x00000076u, 0x0004007cu, 0x00000008u, 0x00000078u, 0x00000077u, 0x000200feu, + 0x00000078u, 0x000200f8u, 0x00000071u, 0x0004003du, 0x00000006u, 0x0000007au, 0x00000064u, 0x000500aau, + 0x0000003bu, 0x0000007bu, 0x0000007au, 0x00000045u, 0x000300f7u, 0x0000007du, 0x00000000u, 0x000400fau, + 0x0000007bu, 0x0000007cu, 0x0000007du, 0x000200f8u, 0x0000007cu, 0x0004003du, 0x00000006u, 0x0000007eu, + 0x0000006au, 0x000500aau, 0x0000003bu, 0x0000007fu, 0x0000007eu, 0x00000045u, 0x000300f7u, 0x00000081u, + 0x00000000u, 0x000400fau, 0x0000007fu, 0x00000080u, 0x00000081u, 0x000200f8u, 0x00000080u, 0x0004003du, + 0x00000006u, 0x00000082u, 0x0000005fu, 0x0004007cu, 0x00000008u, 0x00000083u, 0x00000082u, 0x000200feu, + 0x00000083u, 0x000200f8u, 0x00000081u, 0x0003003eu, 0x00000085u, 0x00000045u, 0x000200f9u, 0x00000086u, + 0x000200f8u, 0x00000086u, 0x000400f6u, 0x00000088u, 0x00000089u, 0x00000000u, 0x000200f9u, 0x0000008au, + 0x000200f8u, 0x0000008au, 0x0004003du, 0x00000006u, 0x0000008bu, 0x0000006au, 0x000500c7u, 0x00000006u, + 0x0000008du, 0x0000008bu, 0x0000008cu, 0x000500aau, 0x0000003bu, 0x0000008eu, 0x0000008du, 0x00000045u, + 0x000400fau, 0x0000008eu, 0x00000087u, 0x00000088u, 0x000200f8u, 0x00000087u, 0x0004003du, 0x00000006u, + 0x00000090u, 0x0000006au, 0x000500c4u, 0x00000006u, 0x00000091u, 0x00000090u, 0x0000008fu, 0x0003003eu, + 0x0000006au, 0x00000091u, 0x0004003du, 0x00000006u, 0x00000092u, 0x00000085u, 0x00050080u, 0x00000006u, + 0x00000093u, 0x00000092u, 0x00000055u, 0x0003003eu, 0x00000085u, 0x00000093u, 0x000200f9u, 0x00000089u, + 0x000200f8u, 0x00000089u, 0x000200f9u, 0x00000086u, 0x000200f8u, 0x00000088u, 0x0004003du, 0x00000006u, + 0x00000094u, 0x0000006au, 0x000500c7u, 0x00000006u, 0x00000095u, 0x00000094u, 0x0000006cu, 0x0003003eu, + 0x0000006au, 0x00000095u, 0x0004003du, 0x00000006u, 0x00000096u, 0x0000005fu, 0x0004003du, 0x00000006u, + 0x00000098u, 0x00000085u, 0x00050082u, 0x00000006u, 0x00000099u, 0x00000097u, 0x00000098u, 0x000500c4u, + 0x00000006u, 0x0000009bu, 0x00000099u, 0x0000009au, 0x000500c5u, 0x00000006u, 0x0000009cu, 0x00000096u, + 0x0000009bu, 0x0004003du, 0x00000006u, 0x0000009du, 0x0000006au, 0x000500c4u, 0x00000006u, 0x0000009eu, + 0x0000009du, 0x00000075u, 0x000500c5u, 0x00000006u, 0x0000009fu, 0x0000009cu, 0x0000009eu, 0x0004007cu, + 0x00000008u, 0x000000a0u, 0x0000009fu, 0x000200feu, 0x000000a0u, 0x000200f8u, 0x0000007du, 0x0004003du, + 0x00000006u, 0x000000a2u, 0x0000005fu, 0x0004003du, 0x00000006u, 0x000000a3u, 0x00000064u, 0x00050080u, + 0x00000006u, 0x000000a5u, 0x000000a3u, 0x000000a4u, 0x000500c4u, 0x00000006u, 0x000000a6u, 0x000000a5u, + 0x0000009au, 0x000500c5u, 0x00000006u, 0x000000a7u, 0x000000a2u, 0x000000a6u, 0x0004003du, 0x00000006u, + 0x000000a8u, 0x0000006au, 0x000500c4u, 0x00000006u, 0x000000a9u, 0x000000a8u, 0x00000075u, 0x000500c5u, + 0x00000006u, 0x000000aau, 0x000000a7u, 0x000000a9u, 0x0004007cu, 0x00000008u, 0x000000abu, 0x000000aau, + 0x000200feu, 0x000000abu, 0x00010038u, 0x00050036u, 0x00000006u, 0x00000016u, 0x00000000u, 0x0000000eu, + 0x00030037u, 0x0000000du, 0x00000015u, 0x000200f8u, 0x00000017u, 0x0004003bu, 0x00000007u, 0x000000aeu, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000b1u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000b5u, + 0x00000007u, 0x0004003bu, 0x000000bau, 0x000000bbu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000c2u, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000ceu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000f0u, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000f5u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000f9u, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x000000ffu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000011bu, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000122u, 0x00000007u, 0x0004003du, 0x00000008u, 0x000000afu, + 0x00000015u, 0x0004007cu, 0x00000006u, 0x000000b0u, 0x000000afu, 0x0003003eu, 0x000000aeu, 0x000000b0u, + 0x0004003du, 0x00000006u, 0x000000b2u, 0x000000aeu, 0x000500c2u, 0x00000006u, 0x000000b3u, 0x000000b2u, + 0x00000033u, 0x000500c7u, 0x00000006u, 0x000000b4u, 0x000000b3u, 0x00000061u, 0x0003003eu, 0x000000b1u, + 0x000000b4u, 0x0004003du, 0x00000006u, 0x000000b6u, 0x000000aeu, 0x000500c2u, 0x00000006u, 0x000000b7u, + 0x000000b6u, 0x0000009au, 0x000500c7u, 0x00000006u, 0x000000b9u, 0x000000b7u, 0x000000b8u, 0x0003003eu, + 0x000000b5u, 0x000000b9u, 0x0004003du, 0x00000006u, 0x000000bcu, 0x000000b5u, 0x0004007cu, 0x00000032u, + 0x000000bdu, 0x000000bcu, 0x00050082u, 0x00000032u, 0x000000bfu, 0x000000bdu, 0x000000beu, 0x00050080u, + 0x00000032u, 0x000000c1u, 0x000000bfu, 0x000000c0u, 0x0003003eu, 0x000000bbu, 0x000000c1u, 0x0004003du, + 0x00000006u, 0x000000c3u, 0x000000aeu, 0x000500c7u, 0x00000006u, 0x000000c4u, 0x000000c3u, 0x00000043u, + 0x0003003eu, 0x000000c2u, 0x000000c4u, 0x0004003du, 0x00000006u, 0x000000c5u, 0x000000b5u, 0x000500aau, + 0x0000003bu, 0x000000c6u, 0x000000c5u, 0x000000b8u, 0x000300f7u, 0x000000c8u, 0x00000000u, 0x000400fau, + 0x000000c6u, 0x000000c7u, 0x000000c8u, 0x000200f8u, 0x000000c7u, 0x0004003du, 0x00000006u, 0x000000c9u, + 0x000000b1u, 0x000500c5u, 0x00000006u, 0x000000cbu, 0x000000c9u, 0x000000cau, 0x0004003du, 0x00000006u, + 0x000000ccu, 0x000000c2u, 0x000500abu, 0x0000003bu, 0x000000cdu, 0x000000ccu, 0x00000045u, 0x000300f7u, + 0x000000d0u, 0x00000000u, 0x000400fau, 0x000000cdu, 0x000000cfu, 0x000000d5u, 0x000200f8u, 0x000000cfu, + 0x0004003du, 0x00000006u, 0x000000d2u, 0x000000c2u, 0x000500c2u, 0x00000006u, 0x000000d3u, 0x000000d2u, + 0x00000075u, 0x000500c5u, 0x00000006u, 0x000000d4u, 0x000000d1u, 0x000000d3u, 0x0003003eu, 0x000000ceu, + 0x000000d4u, 0x000200f9u, 0x000000d0u, 0x000200f8u, 0x000000d5u, 0x0003003eu, 0x000000ceu, 0x00000045u, + 0x000200f9u, 0x000000d0u, 0x000200f8u, 0x000000d0u, 0x0004003du, 0x00000006u, 0x000000d6u, 0x000000ceu, + 0x000500c5u, 0x00000006u, 0x000000d7u, 0x000000cbu, 0x000000d6u, 0x000200feu, 0x000000d7u, 0x000200f8u, + 0x000000c8u, 0x0004003du, 0x00000032u, 0x000000d9u, 0x000000bbu, 0x000500afu, 0x0000003bu, 0x000000dbu, + 0x000000d9u, 0x000000dau, 0x000300f7u, 0x000000ddu, 0x00000000u, 0x000400fau, 0x000000dbu, 0x000000dcu, + 0x000000ddu, 0x000200f8u, 0x000000dcu, 0x0004003du, 0x00000006u, 0x000000deu, 0x000000b1u, 0x000500c5u, + 0x00000006u, 0x000000dfu, 0x000000deu, 0x000000cau, 0x000200feu, 0x000000dfu, 0x000200f8u, 0x000000ddu, + 0x0004003du, 0x00000032u, 0x000000e1u, 0x000000bbu, 0x000500b3u, 0x0000003bu, 0x000000e3u, 0x000000e1u, + 0x000000e2u, 0x000300f7u, 0x000000e5u, 0x00000000u, 0x000400fau, 0x000000e3u, 0x000000e4u, 0x000000e5u, + 0x000200f8u, 0x000000e4u, 0x0004003du, 0x00000032u, 0x000000e6u, 0x000000bbu, 0x000500b1u, 0x0000003bu, + 0x000000e8u, 0x000000e6u, 0x000000e7u, 0x000300f7u, 0x000000eau, 0x00000000u, 0x000400fau, 0x000000e8u, + 0x000000e9u, 0x000000eau, 0x000200f8u, 0x000000e9u, 0x0004003du, 0x00000006u, 0x000000ebu, 0x000000b1u, + 0x000200feu, 0x000000ebu, 0x000200f8u, 0x000000eau, 0x0004003du, 0x00000006u, 0x000000eeu, 0x000000c2u, + 0x000500c5u, 0x00000006u, 0x000000efu, 0x000000eeu, 0x000000edu, 0x0003003eu, 0x000000c2u, 0x000000efu, + 0x0004003du, 0x00000032u, 0x000000f2u, 0x000000bbu, 0x00050082u, 0x00000032u, 0x000000f3u, 0x000000f1u, + 0x000000f2u, 0x0004007cu, 0x00000006u, 0x000000f4u, 0x000000f3u, 0x0003003eu, 0x000000f0u, 0x000000f4u, + 0x0004003du, 0x00000006u, 0x000000f6u, 0x000000c2u, 0x0004003du, 0x00000006u, 0x000000f7u, 0x000000f0u, + 0x000500c2u, 0x00000006u, 0x000000f8u, 0x000000f6u, 0x000000f7u, 0x0003003eu, 0x000000f5u, 0x000000f8u, + 0x0004003du, 0x00000006u, 0x000000fau, 0x000000c2u, 0x0004003du, 0x00000006u, 0x000000fbu, 0x000000f0u, + 0x000500c4u, 0x00000006u, 0x000000fcu, 0x00000055u, 0x000000fbu, 0x00050082u, 0x00000006u, 0x000000fdu, + 0x000000fcu, 0x00000055u, 0x000500c7u, 0x00000006u, 0x000000feu, 0x000000fau, 0x000000fdu, 0x0003003eu, + 0x000000f9u, 0x000000feu, 0x0004003du, 0x00000006u, 0x00000100u, 0x000000f0u, 0x00050082u, 0x00000006u, + 0x00000101u, 0x00000100u, 0x00000055u, 0x000500c4u, 0x00000006u, 0x00000102u, 0x00000055u, 0x00000101u, + 0x0003003eu, 0x000000ffu, 0x00000102u, 0x0004003du, 0x00000006u, 0x00000103u, 0x000000f9u, 0x0004003du, + 0x00000006u, 0x00000104u, 0x000000ffu, 0x000500acu, 0x0000003bu, 0x00000105u, 0x00000103u, 0x00000104u, + 0x000400a8u, 0x0000003bu, 0x00000106u, 0x00000105u, 0x000300f7u, 0x00000108u, 0x00000000u, 0x000400fau, + 0x00000106u, 0x00000107u, 0x00000108u, 0x000200f8u, 0x00000107u, 0x0004003du, 0x00000006u, 0x00000109u, + 0x000000f9u, 0x0004003du, 0x00000006u, 0x0000010au, 0x000000ffu, 0x000500aau, 0x0000003bu, 0x0000010bu, + 0x00000109u, 0x0000010au, 0x000300f7u, 0x0000010du, 0x00000000u, 0x000400fau, 0x0000010bu, 0x0000010cu, + 0x0000010du, 0x000200f8u, 0x0000010cu, 0x0004003du, 0x00000006u, 0x0000010eu, 0x000000f5u, 0x000500c7u, + 0x00000006u, 0x0000010fu, 0x0000010eu, 0x00000055u, 0x000500abu, 0x0000003bu, 0x00000110u, 0x0000010fu, + 0x00000045u, 0x000200f9u, 0x0000010du, 0x000200f8u, 0x0000010du, 0x000700f5u, 0x0000003bu, 0x00000111u, + 0x0000010bu, 0x00000107u, 0x00000110u, 0x0000010cu, 0x000200f9u, 0x00000108u, 0x000200f8u, 0x00000108u, + 0x000700f5u, 0x0000003bu, 0x00000112u, 0x00000105u, 0x000000eau, 0x00000111u, 0x0000010du, 0x000300f7u, + 0x00000114u, 0x00000000u, 0x000400fau, 0x00000112u, 0x00000113u, 0x00000114u, 0x000200f8u, 0x00000113u, + 0x0004003du, 0x00000006u, 0x00000115u, 0x000000f5u, 0x00050080u, 0x00000006u, 0x00000116u, 0x00000115u, + 0x00000055u, 0x0003003eu, 0x000000f5u, 0x00000116u, 0x000200f9u, 0x00000114u, 0x000200f8u, 0x00000114u, + 0x0004003du, 0x00000006u, 0x00000117u, 0x000000b1u, 0x0004003du, 0x00000006u, 0x00000118u, 0x000000f5u, + 0x000500c5u, 0x00000006u, 0x00000119u, 0x00000117u, 0x00000118u, 0x000200feu, 0x00000119u, 0x000200f8u, + 0x000000e5u, 0x0004003du, 0x00000032u, 0x0000011cu, 0x000000bbu, 0x0004007cu, 0x00000006u, 0x0000011du, + 0x0000011cu, 0x000500c4u, 0x00000006u, 0x0000011eu, 0x0000011du, 0x00000066u, 0x0004003du, 0x00000006u, + 0x0000011fu, 0x000000c2u, 0x000500c2u, 0x00000006u, 0x00000120u, 0x0000011fu, 0x00000075u, 0x000500c5u, + 0x00000006u, 0x00000121u, 0x0000011eu, 0x00000120u, 0x0003003eu, 0x0000011bu, 0x00000121u, 0x0004003du, + 0x00000006u, 0x00000123u, 0x000000c2u, 0x000500c7u, 0x00000006u, 0x00000125u, 0x00000123u, 0x00000124u, + 0x0003003eu, 0x00000122u, 0x00000125u, 0x0004003du, 0x00000006u, 0x00000126u, 0x00000122u, 0x000500acu, + 0x0000003bu, 0x00000128u, 0x00000126u, 0x00000127u, 0x000400a8u, 0x0000003bu, 0x00000129u, 0x00000128u, + 0x000300f7u, 0x0000012bu, 0x00000000u, 0x000400fau, 0x00000129u, 0x0000012au, 0x0000012bu, 0x000200f8u, + 0x0000012au, 0x0004003du, 0x00000006u, 0x0000012cu, 0x00000122u, 0x000500aau, 0x0000003bu, 0x0000012du, + 0x0000012cu, 0x00000127u, 0x000300f7u, 0x0000012fu, 0x00000000u, 0x000400fau, 0x0000012du, 0x0000012eu, + 0x0000012fu, 0x000200f8u, 0x0000012eu, 0x0004003du, 0x00000006u, 0x00000130u, 0x0000011bu, 0x000500c7u, + 0x00000006u, 0x00000131u, 0x00000130u, 0x00000055u, 0x000500abu, 0x0000003bu, 0x00000132u, 0x00000131u, + 0x00000045u, 0x000200f9u, 0x0000012fu, 0x000200f8u, 0x0000012fu, 0x000700f5u, 0x0000003bu, 0x00000133u, + 0x0000012du, 0x0000012au, 0x00000132u, 0x0000012eu, 0x000200f9u, 0x0000012bu, 0x000200f8u, 0x0000012bu, + 0x000700f5u, 0x0000003bu, 0x00000134u, 0x00000128u, 0x000000e5u, 0x00000133u, 0x0000012fu, 0x000300f7u, + 0x00000136u, 0x00000000u, 0x000400fau, 0x00000134u, 0x00000135u, 0x00000136u, 0x000200f8u, 0x00000135u, + 0x0004003du, 0x00000006u, 0x00000137u, 0x0000011bu, 0x00050080u, 0x00000006u, 0x00000138u, 0x00000137u, + 0x00000055u, 0x0003003eu, 0x0000011bu, 0x00000138u, 0x000200f9u, 0x00000136u, 0x000200f8u, 0x00000136u, + 0x0004003du, 0x00000006u, 0x00000139u, 0x000000b1u, 0x0004003du, 0x00000006u, 0x0000013au, 0x0000011bu, + 0x000500c5u, 0x00000006u, 0x0000013bu, 0x00000139u, 0x0000013au, 0x000200feu, 0x0000013bu, 0x00010038u, + 0x00050036u, 0x00000008u, 0x0000001bu, 0x00000000u, 0x00000018u, 0x00030037u, 0x00000007u, 0x00000019u, + 0x00030037u, 0x00000007u, 0x0000001au, 0x000200f8u, 0x0000001cu, 0x0004003bu, 0x0000000du, 0x00000140u, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000143u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000147u, + 0x00000007u, 0x0004003du, 0x00000006u, 0x0000013eu, 0x0000001au, 0x000500aau, 0x0000003bu, 0x0000013fu, + 0x0000013eu, 0x00000055u, 0x000300f7u, 0x00000142u, 0x00000000u, 0x000400fau, 0x0000013fu, 0x00000141u, + 0x00000146u, 0x000200f8u, 0x00000141u, 0x0004003du, 0x00000006u, 0x00000144u, 0x00000019u, 0x0003003eu, + 0x00000143u, 0x00000144u, 0x00050039u, 0x00000008u, 0x00000145u, 0x00000013u, 0x00000143u, 0x0003003eu, + 0x00000140u, 0x00000145u, 0x000200f9u, 0x00000142u, 0x000200f8u, 0x00000146u, 0x0004003du, 0x00000006u, + 0x00000148u, 0x00000019u, 0x0003003eu, 0x00000147u, 0x00000148u, 0x00050039u, 0x00000008u, 0x00000149u, + 0x0000000bu, 0x00000147u, 0x0003003eu, 0x00000140u, 0x00000149u, 0x000200f9u, 0x00000142u, 0x000200f8u, + 0x00000142u, 0x0004003du, 0x00000008u, 0x0000014au, 0x00000140u, 0x000200feu, 0x0000014au, 0x00010038u, + 0x00050036u, 0x00000006u, 0x00000020u, 0x00000000u, 0x0000001du, 0x00030037u, 0x0000000du, 0x0000001eu, + 0x00030037u, 0x00000007u, 0x0000001fu, 0x000200f8u, 0x00000021u, 0x0004003bu, 0x00000007u, 0x0000014fu, + 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000152u, 0x00000007u, 0x0004003bu, 0x0000000du, 0x00000156u, + 0x00000007u, 0x0004003du, 0x00000006u, 0x0000014du, 0x0000001fu, 0x000500aau, 0x0000003bu, 0x0000014eu, + 0x0000014du, 0x00000055u, 0x000300f7u, 0x00000151u, 0x00000000u, 0x000400fau, 0x0000014eu, 0x00000150u, + 0x00000155u, 0x000200f8u, 0x00000150u, 0x0004003du, 0x00000008u, 0x00000153u, 0x0000001eu, 0x0003003eu, + 0x00000152u, 0x00000153u, 0x00050039u, 0x00000006u, 0x00000154u, 0x00000016u, 0x00000152u, 0x0003003eu, + 0x0000014fu, 0x00000154u, 0x000200f9u, 0x00000151u, 0x000200f8u, 0x00000155u, 0x0004003du, 0x00000008u, + 0x00000157u, 0x0000001eu, 0x0003003eu, 0x00000156u, 0x00000157u, 0x00050039u, 0x00000006u, 0x00000158u, + 0x00000010u, 0x00000156u, 0x0003003eu, 0x0000014fu, 0x00000158u, 0x000200f9u, 0x00000151u, 0x000200f8u, + 0x00000151u, 0x0004003du, 0x00000006u, 0x00000159u, 0x0000014fu, 0x000200feu, 0x00000159u, 0x00010038u, + 0x00050036u, 0x00000024u, 0x00000028u, 0x00000000u, 0x00000025u, 0x00030037u, 0x00000023u, 0x00000026u, + 0x00030037u, 0x00000007u, 0x00000027u, 0x000200f8u, 0x00000029u, 0x0004003bu, 0x00000007u, 0x0000015fu, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000160u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000166u, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000167u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000016du, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000016eu, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000174u, + 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000175u, 0x00000007u, 0x00050041u, 0x00000007u, 0x0000015cu, + 0x00000026u, 0x00000045u, 0x0004003du, 0x00000006u, 0x0000015du, 0x0000015cu, 0x000500c7u, 0x00000006u, + 0x0000015eu, 0x0000015du, 0x0000004eu, 0x0003003eu, 0x0000015fu, 0x0000015eu, 0x0004003du, 0x00000006u, + 0x00000161u, 0x00000027u, 0x0003003eu, 0x00000160u, 0x00000161u, 0x00060039u, 0x00000008u, 0x00000162u, + 0x0000001bu, 0x0000015fu, 0x00000160u, 0x00050041u, 0x00000007u, 0x00000163u, 0x00000026u, 0x00000045u, + 0x0004003du, 0x00000006u, 0x00000164u, 0x00000163u, 0x000500c2u, 0x00000006u, 0x00000165u, 0x00000164u, + 0x00000033u, 0x0003003eu, 0x00000166u, 0x00000165u, 0x0004003du, 0x00000006u, 0x00000168u, 0x00000027u, + 0x0003003eu, 0x00000167u, 0x00000168u, 0x00060039u, 0x00000008u, 0x00000169u, 0x0000001bu, 0x00000166u, + 0x00000167u, 0x00050041u, 0x00000007u, 0x0000016au, 0x00000026u, 0x00000055u, 0x0004003du, 0x00000006u, + 0x0000016bu, 0x0000016au, 0x000500c7u, 0x00000006u, 0x0000016cu, 0x0000016bu, 0x0000004eu, 0x0003003eu, + 0x0000016du, 0x0000016cu, 0x0004003du, 0x00000006u, 0x0000016fu, 0x00000027u, 0x0003003eu, 0x0000016eu, + 0x0000016fu, 0x00060039u, 0x00000008u, 0x00000170u, 0x0000001bu, 0x0000016du, 0x0000016eu, 0x00050041u, + 0x00000007u, 0x00000171u, 0x00000026u, 0x00000055u, 0x0004003du, 0x00000006u, 0x00000172u, 0x00000171u, + 0x000500c2u, 0x00000006u, 0x00000173u, 0x00000172u, 0x00000033u, 0x0003003eu, 0x00000174u, 0x00000173u, + 0x0004003du, 0x00000006u, 0x00000176u, 0x00000027u, 0x0003003eu, 0x00000175u, 0x00000176u, 0x00060039u, + 0x00000008u, 0x00000177u, 0x0000001bu, 0x00000174u, 0x00000175u, 0x00070050u, 0x00000024u, 0x00000178u, + 0x00000162u, 0x00000169u, 0x00000170u, 0x00000177u, 0x000200feu, 0x00000178u, 0x00010038u, 0x00050036u, + 0x00000008u, 0x0000002fu, 0x00000000u, 0x0000002bu, 0x00030037u, 0x00000023u, 0x0000002cu, 0x00030037u, + 0x0000002au, 0x0000002du, 0x00030037u, 0x00000007u, 0x0000002eu, 0x000200f8u, 0x00000030u, 0x0004003bu, + 0x00000007u, 0x00000180u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000181u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x0000018au, 0x00000007u, 0x0004003bu, 0x00000007u, 0x0000018bu, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x00000196u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x00000197u, 0x00000007u, 0x0004003bu, + 0x00000007u, 0x000001a1u, 0x00000007u, 0x0004003bu, 0x00000007u, 0x000001a2u, 0x00000007u, 0x00050041u, + 0x0000000du, 0x0000017bu, 0x0000002du, 0x00000045u, 0x0004003du, 0x00000008u, 0x0000017cu, 0x0000017bu, + 0x00050041u, 0x00000007u, 0x0000017du, 0x0000002cu, 0x00000045u, 0x0004003du, 0x00000006u, 0x0000017eu, + 0x0000017du, 0x000500c7u, 0x00000006u, 0x0000017fu, 0x0000017eu, 0x0000004eu, 0x0003003eu, 0x00000180u, + 0x0000017fu, 0x0004003du, 0x00000006u, 0x00000182u, 0x0000002eu, 0x0003003eu, 0x00000181u, 0x00000182u, + 0x00060039u, 0x00000008u, 0x00000183u, 0x0000001bu, 0x00000180u, 0x00000181u, 0x00050085u, 0x00000008u, + 0x00000184u, 0x0000017cu, 0x00000183u, 0x00050041u, 0x0000000du, 0x00000185u, 0x0000002du, 0x00000055u, + 0x0004003du, 0x00000008u, 0x00000186u, 0x00000185u, 0x00050041u, 0x00000007u, 0x00000187u, 0x0000002cu, + 0x00000045u, 0x0004003du, 0x00000006u, 0x00000188u, 0x00000187u, 0x000500c2u, 0x00000006u, 0x00000189u, + 0x00000188u, 0x00000033u, 0x0003003eu, 0x0000018au, 0x00000189u, 0x0004003du, 0x00000006u, 0x0000018cu, + 0x0000002eu, 0x0003003eu, 0x0000018bu, 0x0000018cu, 0x00060039u, 0x00000008u, 0x0000018du, 0x0000001bu, + 0x0000018au, 0x0000018bu, 0x00050085u, 0x00000008u, 0x0000018eu, 0x00000186u, 0x0000018du, 0x00050081u, + 0x00000008u, 0x0000018fu, 0x00000184u, 0x0000018eu, 0x00050041u, 0x0000000du, 0x00000191u, 0x0000002du, + 0x00000190u, 0x0004003du, 0x00000008u, 0x00000192u, 0x00000191u, 0x00050041u, 0x00000007u, 0x00000193u, + 0x0000002cu, 0x00000055u, 0x0004003du, 0x00000006u, 0x00000194u, 0x00000193u, 0x000500c7u, 0x00000006u, + 0x00000195u, 0x00000194u, 0x0000004eu, 0x0003003eu, 0x00000196u, 0x00000195u, 0x0004003du, 0x00000006u, + 0x00000198u, 0x0000002eu, 0x0003003eu, 0x00000197u, 0x00000198u, 0x00060039u, 0x00000008u, 0x00000199u, + 0x0000001bu, 0x00000196u, 0x00000197u, 0x00050085u, 0x00000008u, 0x0000019au, 0x00000192u, 0x00000199u, + 0x00050041u, 0x0000000du, 0x0000019cu, 0x0000002du, 0x0000019bu, 0x0004003du, 0x00000008u, 0x0000019du, + 0x0000019cu, 0x00050041u, 0x00000007u, 0x0000019eu, 0x0000002cu, 0x00000055u, 0x0004003du, 0x00000006u, + 0x0000019fu, 0x0000019eu, 0x000500c2u, 0x00000006u, 0x000001a0u, 0x0000019fu, 0x00000033u, 0x0003003eu, + 0x000001a1u, 0x000001a0u, 0x0004003du, 0x00000006u, 0x000001a3u, 0x0000002eu, 0x0003003eu, 0x000001a2u, + 0x000001a3u, 0x00060039u, 0x00000008u, 0x000001a4u, 0x0000001bu, 0x000001a1u, 0x000001a2u, 0x00050085u, + 0x00000008u, 0x000001a5u, 0x0000019du, 0x000001a4u, 0x00050081u, 0x00000008u, 0x000001a6u, 0x0000019au, + 0x000001a5u, 0x00050081u, 0x00000008u, 0x000001a7u, 0x0000018fu, 0x000001a6u, 0x000200feu, 0x000001a7u, + 0x00010038u, }; constexpr uint32_t kSpv_vt_paged_attn[] = { @@ -12095,7 +13503,7 @@ constexpr uint32_t kSpecIds_vt_matmul_coopmat[] = { }; constexpr uint32_t kSpecIds_vt_matmul_vec[] = { - 0u, 1u, 2u, 3u, + 0u, 1u, 2u, 3u, 4u, 5u, }; constexpr uint32_t kSpecIds_vt_paged_attn[] = { @@ -12136,7 +13544,7 @@ const SpirvModule kSpirvModules[] = { {"vt_layer_norm", kSpv_vt_layer_norm, sizeof(kSpv_vt_layer_norm) / sizeof(uint32_t), nullptr, 0}, {"vt_matmul", kSpv_vt_matmul, sizeof(kSpv_vt_matmul) / sizeof(uint32_t), kSpecIds_vt_matmul, 4}, {"vt_matmul_coopmat", kSpv_vt_matmul_coopmat, sizeof(kSpv_vt_matmul_coopmat) / sizeof(uint32_t), kSpecIds_vt_matmul_coopmat, 2}, - {"vt_matmul_vec", kSpv_vt_matmul_vec, sizeof(kSpv_vt_matmul_vec) / sizeof(uint32_t), kSpecIds_vt_matmul_vec, 4}, + {"vt_matmul_vec", kSpv_vt_matmul_vec, sizeof(kSpv_vt_matmul_vec) / sizeof(uint32_t), kSpecIds_vt_matmul_vec, 6}, {"vt_paged_attn", kSpv_vt_paged_attn, sizeof(kSpv_vt_paged_attn) / sizeof(uint32_t), kSpecIds_vt_paged_attn, 4}, {"vt_qkv_split", kSpv_vt_qkv_split, sizeof(kSpv_vt_qkv_split) / sizeof(uint32_t), kSpecIds_vt_qkv_split, 2}, {"vt_relu", kSpv_vt_relu, sizeof(kSpv_vt_relu) / sizeof(uint32_t), nullptr, 0}, diff --git a/tests/vt/test_vulkan_backend.cpp b/tests/vt/test_vulkan_backend.cpp index 446dbfc29..9fd40120d 100644 --- a/tests/vt/test_vulkan_backend.cpp +++ b/tests/vt/test_vulkan_backend.cpp @@ -147,13 +147,15 @@ TEST_CASE("the committed SPIR-V table records each module's specialization const REQUIRE(m.spec_id_count == 2); for (uint32_t want = 0; want < 2; ++want) CHECK(m.spec_ids[want] == want); } else if (std::strcmp(m.name, "vt_matmul_vec") == 0) { - // a dtype, b dtype, out dtype and the UNROLL factor -- but NOT the - // orientation. This module is MatmulBT by construction: the whole reason it - // exists is that b's [N,K] layout makes lane-strided K reads contiguous, and - // the other orientation is already coalesced in vt_matmul and would be made - // worse here. The unroll rides a spec constant so both arms are ONE module. - REQUIRE(m.spec_id_count == 4); - for (uint32_t want = 0; want < 4; ++want) CHECK(m.spec_ids[want] == want); + // a dtype, b dtype, out dtype, the UNROLL factor, the rows-per-workgroup + // count and the packed-load flag -- but NOT the orientation. This module is + // MatmulBT by construction: the whole reason it exists is that b's [N,K] + // layout makes lane-strided K reads contiguous, and the other orientation is + // already coalesced in vt_matmul and would be made worse here. Every tuning + // axis rides a spec constant so all the arms are ONE committed module and an + // A/B never needs a second build. + REQUIRE(m.spec_id_count == 6); + for (uint32_t want = 0; want < 6; ++want) CHECK(m.spec_ids[want] == want); } else if (std::strcmp(m.name, "vt_matmul") == 0) { // a dtype, b dtype, out dtype, orientation: 3*3*3*2 = 54 variants served by // ONE committed module, which is the argument for specialization constants @@ -803,6 +805,210 @@ TEST_CASE("a DECODE GEMV takes the vec tactic; prefill and the other orientation vk.DestroyQueue(q); } +// The load-width and rows-per-workgroup axes of vt_matmul_vec, asserted by the +// SPECIALIZATION VALUES the dispatch actually built rather than by the numbers. +// +// THIS TEST EXISTS BECAUSE A TOLERANCE TEST CANNOT SEE THE OPTIMISATION AT ALL. +// Every value of both axes computes the same dot product to within the tier this +// kernel already lives in, so if a host predicate silently stopped selecting the +// wide load -- a refactor, a reordered clause, an env parse that stopped parsing, +// an allocator whose offsets stopped being 8-byte aligned -- every numeric check +// in this file would still pass and 27B decode would quietly lose 8% of its +// hottest kernel. The pipeline cache KEY is the only observable that changes. +// +// The expected default below is a LITERAL, not a read of kGemvPackDefault: a test +// that imports the value it is checking asserts nothing. A change of default has +// to come here and be argued. +TEST_CASE("vt_matmul_vec selects its load width and row count from the shape") { + if (!VulkanPresent()) return; + // Mirrored from src/vt/vulkan/vulkan_ops.cpp kGemvPackDefault / kGemvRowsDefault. + // pack 2 = four 16-bit elements per load, MEASURED 1.086x over pack 0 on GB10; + // rows 1 = one output element per workgroup, because rows > 1 MEASURED 0.966x + // there (the axis is kept for the AMD/Intel boards llama.cpp raises it for). + constexpr uint32_t kExpectPack = 2; + constexpr uint32_t kExpectRows = 1; + // The A/B levers are process-wide and read once, so under one of them the KEY + // assertions would be asserting the override rather than the default. The + // NUMERIC checks still run in that case, and that is deliberate: forcing an arm + // and running this test is how a non-default variant -- every pack width above + // 0 changes the answer's low bits -- gets verified on a device CI can reach. + const bool overridden = std::getenv("VT_VULKAN_GEMV_ROWS") != nullptr || + std::getenv("VT_VULKAN_GEMV_PACK") != nullptr || + std::getenv("VT_VULKAN_GEMV_UNROLL") != nullptr || + std::getenv("VT_VULKAN_GEMV") != nullptr; + Backend& vk = vt::GetBackend(DeviceType::kVULKAN); + auto& ctx = vt::vulkan::VulkanContext::Get(); + Queue q = vk.CreateQueue(); + const Device d{DeviceType::kVULKAN, 0}; + + // Runs one M=1 MatmulBT and returns (the key this shape newly built, all keys). + // `a_f32` makes the ACTIVATION f32 while the weight stays bf16, which is the + // real reason a decode GEMV would ever decline the packed path. + auto key_for = [&](int64_t n, int64_t k, bool a_f32) { + std::vector a16(static_cast(k)); + std::vector a32(static_cast(k)); + std::vector b(static_cast(n * k)); + for (int64_t i = 0; i < k; ++i) { + const float v = 0.5f * static_cast((i % 7) - 3); + a16[static_cast(i)] = vt::F32ToBF16(v); + a32[static_cast(i)] = v; + } + for (int64_t i = 0; i < n * k; ++i) + b[static_cast(i)] = vt::F32ToBF16(0.25f * static_cast((i % 5) - 2)); + const size_t a_bytes = a_f32 ? a32.size() * sizeof(float) : a16.size() * sizeof(uint16_t); + void* da = vk.Alloc(a_bytes); + void* db = vk.Alloc(b.size() * sizeof(uint16_t)); + auto* dout = static_cast(vk.Alloc(static_cast(n) * sizeof(float))); + vk.Copy(q, da, + a_f32 ? static_cast(a32.data()) : static_cast(a16.data()), + a_bytes); + vk.Copy(q, db, b.data(), b.size() * sizeof(uint16_t)); + vk.Synchronize(q); + Tensor ta = Tensor::Contiguous(da, a_f32 ? vt::DType::kF32 : vt::DType::kBF16, d, {1, k}); + Tensor tb = Tensor::Contiguous(db, vt::DType::kBF16, d, {n, k}); + Tensor to = Tensor::Contiguous(dout, vt::DType::kF32, d, {1, n}); + const std::vector before = ctx.PipelineKeysFor("vt_matmul_vec"); + vt::MatmulBT(q, to, ta, tb); + vk.Synchronize(q); + // Correctness travels with the selection check: a variant that is selected and + // WRONG is worse than one that is not selected. The LAST row is included + // because a rows-per-workgroup or wide-load mistake at the end of a dispatch + // leaves every earlier row right. + std::vector got(static_cast(n), 0.0f); + vk.Copy(q, got.data(), dout, got.size() * sizeof(float)); + vk.Synchronize(q); + for (int64_t j : {int64_t{0}, n / 2, n - 1}) { + double acc = 0.0; + for (int64_t c = 0; c < k; ++c) { + const double av = a_f32 + ? static_cast(a32[static_cast(c)]) + : static_cast(vt::BF16ToF32(a16[static_cast(c)])); + acc += av * static_cast(vt::BF16ToF32(b[static_cast(j * k + c)])); + } + CAPTURE(n); + CAPTURE(k); + CAPTURE(j); + CHECK(got[static_cast(j)] == + doctest::Approx(static_cast(acc)).epsilon(1e-3)); + } + const std::vector after = ctx.PipelineKeysFor("vt_matmul_vec"); + std::string key; + for (const std::string& s : after) { + bool fresh = true; + for (const std::string& pk : before) { + if (pk == s) fresh = false; + } + if (fresh) key = s; + } + vk.Free(da); + vk.Free(db); + vk.Free(dout); + return std::make_pair(key, after); + }; + + // "|,,,,," -- bf16 = 2, f32 = 0, + // unroll 4 by default. + auto expect = [](uint32_t a_dt, uint32_t rows, uint32_t pack) { + return "vt_matmul_vec|" + std::to_string(a_dt) + ",2,0,4," + std::to_string(rows) + "," + + std::to_string(pack); + }; + auto has = [](const std::vector& v, const std::string& want) { + for (const std::string& s : v) { + if (s == want) return true; + } + return false; + }; + // A fresh key that is NOT the expected one means the predicate picked a + // different variant; no fresh key means an earlier shape already built this + // exact specialization, which is equally fine. + auto only = [](const std::string& fresh, const std::string& want) { + return fresh.empty() || fresh == want; + }; + + SUBCASE("the shipped default is the widest load, one output element per group") { + // K = 256 is two full workgroup widths and a multiple of 4; both operands + // bf16; a fresh allocation is 64-byte aligned. Nothing degrades. + auto r = key_for(64, 256, false); + const std::string want = expect(2, kExpectRows, kExpectPack); + CAPTURE(r.first); + CAPTURE(want); + if (!overridden) { + CHECK(has(r.second, want)); + CHECK(only(r.first, want)); + // The load-bearing half: the optimisation is actually ON. If + // kGemvPackDefault ever silently reverts to 0, this fails. + CHECK(kExpectPack == 2); + } + } + + SUBCASE("K = 2 (mod 4) degrades to the 4-byte load rather than declining") { + // 258 = 2 x 129. Four elements per load would need a row start j*K that is a + // multiple of 4 for every j, which an even-but-not-multiple-of-4 K does not + // give, so the width halves instead of falling all the way back. + auto r = key_for(64, 258, false); + const std::string want = expect(2, kExpectRows, kExpectPack >= 1 ? 1u : 0u); + CAPTURE(r.first); + CAPTURE(want); + if (!overridden) { + CHECK(has(r.second, want)); + CHECK(only(r.first, want)); + } + } + + SUBCASE("odd K falls all the way back to one element per load") { + auto r = key_for(64, 257, false); + const std::string want = expect(2, kExpectRows, 0); + CAPTURE(r.first); + CAPTURE(want); + if (!overridden) { + CHECK(has(r.second, want)); + CHECK(only(r.first, want)); + } + } + + SUBCASE("an f32 activation declines the packed path entirely") { + // An f32 operand is already one element per 32-bit word: there is nothing to + // pack, and the shader's 16-bit half-extraction would be nonsense on it. The + // numeric checks inside key_for are what prove the fallback still computes the + // right answer for the mixed f32-activation / bf16-weight combination. + auto r = key_for(64, 256, true); + const std::string want = expect(0, kExpectRows, 0); + CAPTURE(r.first); + CAPTURE(want); + if (!overridden) { + CHECK(has(r.second, want)); + CHECK(only(r.first, want)); + } + } + + SUBCASE("the rows axis degrades on N rather than declining") { + // Driven by whatever row count is REQUESTED, so this ladder is exercised for + // real by a VT_VULKAN_GEMV_ROWS=4 run; with the shipped default of 1 it + // asserts the complementary thing, that nothing accidentally selects rows > 1. + const char* rows_env = std::getenv("VT_VULKAN_GEMV_ROWS"); + const char* pack_env = std::getenv("VT_VULKAN_GEMV_PACK"); + const uint32_t want_rows = + rows_env != nullptr ? static_cast(std::atoi(rows_env)) : kExpectRows; + const uint32_t want_pack = + pack_env != nullptr ? static_cast(std::atoi(pack_env)) : kExpectPack; + // Those two would change the unroll value or disable the tactic outright, so + // the key stops being predictable from the row count alone. + if (std::getenv("VT_VULKAN_GEMV_UNROLL") == nullptr && + std::getenv("VT_VULKAN_GEMV") == nullptr) { + // N = 64 keeps every row count; 66 is 2 (mod 4); 33 is odd. + auto r4 = key_for(64, 256, false); + CHECK(has(r4.second, expect(2, want_rows, want_pack))); + auto r2 = key_for(66, 256, false); + CHECK(has(r2.second, expect(2, want_rows >= 2 ? 2u : 1u, want_pack))); + auto r1 = key_for(33, 256, false); + CHECK(has(r1.second, expect(2, 1, want_pack))); + } + } + + vk.DestroyQueue(q); +} + + TEST_CASE("greedy argmax tree-reduces the vocabulary and keeps the first-wins tie-break") { if (!VulkanPresent()) return; Backend& vk = vt::GetBackend(DeviceType::kVULKAN);