/* SPDX-License-Identifier: MIT * unescape_html: decode every HTML character reference in UTF-8 text, the way * Python's html.unescape does, except that references to control characters and * noncharacters (such as  or ￿) decode to that code point instead of * being deleted. * * One self-contained C file, no standard library. The entity table (Python's * html.entities.html5, 2,231 names, digest-pinned) is injected at the @@TABLE@@ * marker by gen_table_c.py. * * Memory layout (20 pages = 1,310,720 bytes): one buffer of 1,258,320 bytes. * Output is written from buffer[0]; input is read from buffer + GAP, where * GAP = 209,744. The output can outgrow the consumed input by at most * floor(1 MiB / 5) = 209,715 bytes (worst case ≫⃒, 5 bytes -> 6), and a * 16-byte SIMD store reaches at most 15 bytes past the logical write pointer, * so writes never touch unread input. Plus table and 16 KiB stack. * * The scan processes 16 bytes at a time with i8x16: a chunk with no '&' is * copied with one v128 store; otherwise the first '&' is located from the * comparison mask and the reference is decoded scalar. * * Build: * python3 gen_table_c.py unescape.c build/unescape_full.c * zig cc -target wasm32-freestanding -O3 -msimd128 -nostdlib \ * -Wl,--no-entry -Wl,--export-memory -Wl,-z,stack-size=16384 \ * -Wl,--initial-memory=1310720 -Wl,--max-memory=1310720 \ * -Wl,--export=input_ptr -Wl,--export=input_utf8_cap \ * -Wl,--export=output_utf8_cap -Wl,--export=render \ * -Wl,--strip-all build/unescape_full.c -o unescape.wasm */ #include #define EXPORT __attribute__((visibility("default"))) #define GAP 209744 #define INPUT_CAP 1048576 /* floor(INPUT_CAP/5)*6 + INPUT_CAP%5: the proven maximum output size. */ #define OUTPUT_CAP 1258291 static unsigned char buffer[GAP + INPUT_CAP]; static uint32_t out_len; EXPORT uint32_t input_ptr(void) { return (uint32_t)(buffer + GAP); } EXPORT uint32_t input_utf8_cap(void) { return INPUT_CAP; } EXPORT uint32_t output_utf8_cap(void) { return OUTPUT_CAP; } /* Windows-1252 remapping for references to 0x80-0x9F; 0 means keep the code point. */ static const uint32_t c1[32] = {0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0x017D, 0, 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0x017E, 0x0178}; static const unsigned char table_blob[] = { 65, 69, 108, 105, 103, 195, 134, 65, 69, 108, 105, 103, 59, 195, 134, 65, 77, 80, 38, 65, 77, 80, 59, 38, 65, 97, 99, 117, 116, 101, 195, 129, 65, 97, 99, 117, 116, 101, 59, 195, 129, 65, 98, 114, 101, 118, 101, 59, 196, 130, 65, 99, 105, 114, 99, 195, 130, 65, 99, 105, 114, 99, 59, 195, 130, 65, 99, 121, 59, 208, 144, 65, 102, 114, 59, 240, 157, 148, 132, 65, 103, 114, 97, 118, 101, 195, 128, 65, 103, 114, 97, 118, 101, 59, 195, 128, 65, 108, 112, 104, 97, 59, 206, 145, 65, 109, 97, 99, 114, 59, 196, 128, 65, 110, 100, 59, 226, 169, 147, 65, 111, 103, 111, 110, 59, 196, 132, 65, 111, 112, 102, 59, 240, 157, 148, 184, 65, 112, 112, 108, 121, 70, 117, 110, 99, 116, 105, 111, 110, 59, 226, 129, 161, 65, 114, 105, 110, 103, 195, 133, 65, 114, 105, 110, 103, 59, 195, 133, 65, 115, 99, 114, 59, 240, 157, 146, 156, 65, 115, 115, 105, 103, 110, 59, 226, 137, 148, 65, 116, 105, 108, 100, 101, 195, 131, 65, 116, 105, 108, 100, 101, 59, 195, 131, 65, 117, 109, 108, 195, 132, 65, 117, 109, 108, 59, 195, 132, 66, 97, 99, 107, 115, 108, 97, 115, 104, 59, 226, 136, 150, 66, 97, 114, 118, 59, 226, 171, 167, 66, 97, 114, 119, 101, 100, 59, 226, 140, 134, 66, 99, 121, 59, 208, 145, 66, 101, 99, 97, 117, 115, 101, 59, 226, 136, 181, 66, 101, 114, 110, 111, 117, 108, 108, 105, 115, 59, 226, 132, 172, 66, 101, 116, 97, 59, 206, 146, 66, 102, 114, 59, 240, 157, 148, 133, 66, 111, 112, 102, 59, 240, 157, 148, 185, 66, 114, 101, 118, 101, 59, 203, 152, 66, 115, 99, 114, 59, 226, 132, 172, 66, 117, 109, 112, 101, 113, 59, 226, 137, 142, 67, 72, 99, 121, 59, 208, 167, 67, 79, 80, 89, 194, 169, 67, 79, 80, 89, 59, 194, 169, 67, 97, 99, 117, 116, 101, 59, 196, 134, 67, 97, 112, 59, 226, 139, 146, 67, 97, 112, 105, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 226, 133, 133, 67, 97, 121, 108, 101, 121, 115, 59, 226, 132, 173, 67, 99, 97, 114, 111, 110, 59, 196, 140, 67, 99, 101, 100, 105, 108, 195, 135, 67, 99, 101, 100, 105, 108, 59, 195, 135, 67, 99, 105, 114, 99, 59, 196, 136, 67, 99, 111, 110, 105, 110, 116, 59, 226, 136, 176, 67, 100, 111, 116, 59, 196, 138, 67, 101, 100, 105, 108, 108, 97, 59, 194, 184, 67, 101, 110, 116, 101, 114, 68, 111, 116, 59, 194, 183, 67, 102, 114, 59, 226, 132, 173, 67, 104, 105, 59, 206, 167, 67, 105, 114, 99, 108, 101, 68, 111, 116, 59, 226, 138, 153, 67, 105, 114, 99, 108, 101, 77, 105, 110, 117, 115, 59, 226, 138, 150, 67, 105, 114, 99, 108, 101, 80, 108, 117, 115, 59, 226, 138, 149, 67, 105, 114, 99, 108, 101, 84, 105, 109, 101, 115, 59, 226, 138, 151, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 226, 136, 178, 67, 108, 111, 115, 101, 67, 117, 114, 108, 121, 68, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 226, 128, 157, 67, 108, 111, 115, 101, 67, 117, 114, 108, 121, 81, 117, 111, 116, 101, 59, 226, 128, 153, 67, 111, 108, 111, 110, 59, 226, 136, 183, 67, 111, 108, 111, 110, 101, 59, 226, 169, 180, 67, 111, 110, 103, 114, 117, 101, 110, 116, 59, 226, 137, 161, 67, 111, 110, 105, 110, 116, 59, 226, 136, 175, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 226, 136, 174, 67, 111, 112, 102, 59, 226, 132, 130, 67, 111, 112, 114, 111, 100, 117, 99, 116, 59, 226, 136, 144, 67, 111, 117, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 226, 136, 179, 67, 114, 111, 115, 115, 59, 226, 168, 175, 67, 115, 99, 114, 59, 240, 157, 146, 158, 67, 117, 112, 59, 226, 139, 147, 67, 117, 112, 67, 97, 112, 59, 226, 137, 141, 68, 68, 59, 226, 133, 133, 68, 68, 111, 116, 114, 97, 104, 100, 59, 226, 164, 145, 68, 74, 99, 121, 59, 208, 130, 68, 83, 99, 121, 59, 208, 133, 68, 90, 99, 121, 59, 208, 143, 68, 97, 103, 103, 101, 114, 59, 226, 128, 161, 68, 97, 114, 114, 59, 226, 134, 161, 68, 97, 115, 104, 118, 59, 226, 171, 164, 68, 99, 97, 114, 111, 110, 59, 196, 142, 68, 99, 121, 59, 208, 148, 68, 101, 108, 59, 226, 136, 135, 68, 101, 108, 116, 97, 59, 206, 148, 68, 102, 114, 59, 240, 157, 148, 135, 68, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 65, 99, 117, 116, 101, 59, 194, 180, 68, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 68, 111, 116, 59, 203, 153, 68, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 68, 111, 117, 98, 108, 101, 65, 99, 117, 116, 101, 59, 203, 157, 68, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 71, 114, 97, 118, 101, 59, 96, 68, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 84, 105, 108, 100, 101, 59, 203, 156, 68, 105, 97, 109, 111, 110, 100, 59, 226, 139, 132, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 226, 133, 134, 68, 111, 112, 102, 59, 240, 157, 148, 187, 68, 111, 116, 59, 194, 168, 68, 111, 116, 68, 111, 116, 59, 226, 131, 156, 68, 111, 116, 69, 113, 117, 97, 108, 59, 226, 137, 144, 68, 111, 117, 98, 108, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 226, 136, 175, 68, 111, 117, 98, 108, 101, 68, 111, 116, 59, 194, 168, 68, 111, 117, 98, 108, 101, 68, 111, 119, 110, 65, 114, 114, 111, 119, 59, 226, 135, 147, 68, 111, 117, 98, 108, 101, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 135, 144, 68, 111, 117, 98, 108, 101, 76, 101, 102, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 135, 148, 68, 111, 117, 98, 108, 101, 76, 101, 102, 116, 84, 101, 101, 59, 226, 171, 164, 68, 111, 117, 98, 108, 101, 76, 111, 110, 103, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 159, 184, 68, 111, 117, 98, 108, 101, 76, 111, 110, 103, 76, 101, 102, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 159, 186, 68, 111, 117, 98, 108, 101, 76, 111, 110, 103, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 159, 185, 68, 111, 117, 98, 108, 101, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 135, 146, 68, 111, 117, 98, 108, 101, 82, 105, 103, 104, 116, 84, 101, 101, 59, 226, 138, 168, 68, 111, 117, 98, 108, 101, 85, 112, 65, 114, 114, 111, 119, 59, 226, 135, 145, 68, 111, 117, 98, 108, 101, 85, 112, 68, 111, 119, 110, 65, 114, 114, 111, 119, 59, 226, 135, 149, 68, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 226, 136, 165, 68, 111, 119, 110, 65, 114, 114, 111, 119, 59, 226, 134, 147, 68, 111, 119, 110, 65, 114, 114, 111, 119, 66, 97, 114, 59, 226, 164, 147, 68, 111, 119, 110, 65, 114, 114, 111, 119, 85, 112, 65, 114, 114, 111, 119, 59, 226, 135, 181, 68, 111, 119, 110, 66, 114, 101, 118, 101, 59, 204, 145, 68, 111, 119, 110, 76, 101, 102, 116, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 226, 165, 144, 68, 111, 119, 110, 76, 101, 102, 116, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 158, 68, 111, 119, 110, 76, 101, 102, 116, 86, 101, 99, 116, 111, 114, 59, 226, 134, 189, 68, 111, 119, 110, 76, 101, 102, 116, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 150, 68, 111, 119, 110, 82, 105, 103, 104, 116, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 159, 68, 111, 119, 110, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 226, 135, 129, 68, 111, 119, 110, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 151, 68, 111, 119, 110, 84, 101, 101, 59, 226, 138, 164, 68, 111, 119, 110, 84, 101, 101, 65, 114, 114, 111, 119, 59, 226, 134, 167, 68, 111, 119, 110, 97, 114, 114, 111, 119, 59, 226, 135, 147, 68, 115, 99, 114, 59, 240, 157, 146, 159, 68, 115, 116, 114, 111, 107, 59, 196, 144, 69, 78, 71, 59, 197, 138, 69, 84, 72, 195, 144, 69, 84, 72, 59, 195, 144, 69, 97, 99, 117, 116, 101, 195, 137, 69, 97, 99, 117, 116, 101, 59, 195, 137, 69, 99, 97, 114, 111, 110, 59, 196, 154, 69, 99, 105, 114, 99, 195, 138, 69, 99, 105, 114, 99, 59, 195, 138, 69, 99, 121, 59, 208, 173, 69, 100, 111, 116, 59, 196, 150, 69, 102, 114, 59, 240, 157, 148, 136, 69, 103, 114, 97, 118, 101, 195, 136, 69, 103, 114, 97, 118, 101, 59, 195, 136, 69, 108, 101, 109, 101, 110, 116, 59, 226, 136, 136, 69, 109, 97, 99, 114, 59, 196, 146, 69, 109, 112, 116, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 226, 151, 187, 69, 109, 112, 116, 121, 86, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 226, 150, 171, 69, 111, 103, 111, 110, 59, 196, 152, 69, 111, 112, 102, 59, 240, 157, 148, 188, 69, 112, 115, 105, 108, 111, 110, 59, 206, 149, 69, 113, 117, 97, 108, 59, 226, 169, 181, 69, 113, 117, 97, 108, 84, 105, 108, 100, 101, 59, 226, 137, 130, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 226, 135, 140, 69, 115, 99, 114, 59, 226, 132, 176, 69, 115, 105, 109, 59, 226, 169, 179, 69, 116, 97, 59, 206, 151, 69, 117, 109, 108, 195, 139, 69, 117, 109, 108, 59, 195, 139, 69, 120, 105, 115, 116, 115, 59, 226, 136, 131, 69, 120, 112, 111, 110, 101, 110, 116, 105, 97, 108, 69, 59, 226, 133, 135, 70, 99, 121, 59, 208, 164, 70, 102, 114, 59, 240, 157, 148, 137, 70, 105, 108, 108, 101, 100, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 226, 151, 188, 70, 105, 108, 108, 101, 100, 86, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 226, 150, 170, 70, 111, 112, 102, 59, 240, 157, 148, 189, 70, 111, 114, 65, 108, 108, 59, 226, 136, 128, 70, 111, 117, 114, 105, 101, 114, 116, 114, 102, 59, 226, 132, 177, 70, 115, 99, 114, 59, 226, 132, 177, 71, 74, 99, 121, 59, 208, 131, 71, 84, 62, 71, 84, 59, 62, 71, 97, 109, 109, 97, 59, 206, 147, 71, 97, 109, 109, 97, 100, 59, 207, 156, 71, 98, 114, 101, 118, 101, 59, 196, 158, 71, 99, 101, 100, 105, 108, 59, 196, 162, 71, 99, 105, 114, 99, 59, 196, 156, 71, 99, 121, 59, 208, 147, 71, 100, 111, 116, 59, 196, 160, 71, 102, 114, 59, 240, 157, 148, 138, 71, 103, 59, 226, 139, 153, 71, 111, 112, 102, 59, 240, 157, 148, 190, 71, 114, 101, 97, 116, 101, 114, 69, 113, 117, 97, 108, 59, 226, 137, 165, 71, 114, 101, 97, 116, 101, 114, 69, 113, 117, 97, 108, 76, 101, 115, 115, 59, 226, 139, 155, 71, 114, 101, 97, 116, 101, 114, 70, 117, 108, 108, 69, 113, 117, 97, 108, 59, 226, 137, 167, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 226, 170, 162, 71, 114, 101, 97, 116, 101, 114, 76, 101, 115, 115, 59, 226, 137, 183, 71, 114, 101, 97, 116, 101, 114, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 169, 190, 71, 114, 101, 97, 116, 101, 114, 84, 105, 108, 100, 101, 59, 226, 137, 179, 71, 115, 99, 114, 59, 240, 157, 146, 162, 71, 116, 59, 226, 137, 171, 72, 65, 82, 68, 99, 121, 59, 208, 170, 72, 97, 99, 101, 107, 59, 203, 135, 72, 97, 116, 59, 94, 72, 99, 105, 114, 99, 59, 196, 164, 72, 102, 114, 59, 226, 132, 140, 72, 105, 108, 98, 101, 114, 116, 83, 112, 97, 99, 101, 59, 226, 132, 139, 72, 111, 112, 102, 59, 226, 132, 141, 72, 111, 114, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 59, 226, 148, 128, 72, 115, 99, 114, 59, 226, 132, 139, 72, 115, 116, 114, 111, 107, 59, 196, 166, 72, 117, 109, 112, 68, 111, 119, 110, 72, 117, 109, 112, 59, 226, 137, 142, 72, 117, 109, 112, 69, 113, 117, 97, 108, 59, 226, 137, 143, 73, 69, 99, 121, 59, 208, 149, 73, 74, 108, 105, 103, 59, 196, 178, 73, 79, 99, 121, 59, 208, 129, 73, 97, 99, 117, 116, 101, 195, 141, 73, 97, 99, 117, 116, 101, 59, 195, 141, 73, 99, 105, 114, 99, 195, 142, 73, 99, 105, 114, 99, 59, 195, 142, 73, 99, 121, 59, 208, 152, 73, 100, 111, 116, 59, 196, 176, 73, 102, 114, 59, 226, 132, 145, 73, 103, 114, 97, 118, 101, 195, 140, 73, 103, 114, 97, 118, 101, 59, 195, 140, 73, 109, 59, 226, 132, 145, 73, 109, 97, 99, 114, 59, 196, 170, 73, 109, 97, 103, 105, 110, 97, 114, 121, 73, 59, 226, 133, 136, 73, 109, 112, 108, 105, 101, 115, 59, 226, 135, 146, 73, 110, 116, 59, 226, 136, 172, 73, 110, 116, 101, 103, 114, 97, 108, 59, 226, 136, 171, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 226, 139, 130, 73, 110, 118, 105, 115, 105, 98, 108, 101, 67, 111, 109, 109, 97, 59, 226, 129, 163, 73, 110, 118, 105, 115, 105, 98, 108, 101, 84, 105, 109, 101, 115, 59, 226, 129, 162, 73, 111, 103, 111, 110, 59, 196, 174, 73, 111, 112, 102, 59, 240, 157, 149, 128, 73, 111, 116, 97, 59, 206, 153, 73, 115, 99, 114, 59, 226, 132, 144, 73, 116, 105, 108, 100, 101, 59, 196, 168, 73, 117, 107, 99, 121, 59, 208, 134, 73, 117, 109, 108, 195, 143, 73, 117, 109, 108, 59, 195, 143, 74, 99, 105, 114, 99, 59, 196, 180, 74, 99, 121, 59, 208, 153, 74, 102, 114, 59, 240, 157, 148, 141, 74, 111, 112, 102, 59, 240, 157, 149, 129, 74, 115, 99, 114, 59, 240, 157, 146, 165, 74, 115, 101, 114, 99, 121, 59, 208, 136, 74, 117, 107, 99, 121, 59, 208, 132, 75, 72, 99, 121, 59, 208, 165, 75, 74, 99, 121, 59, 208, 140, 75, 97, 112, 112, 97, 59, 206, 154, 75, 99, 101, 100, 105, 108, 59, 196, 182, 75, 99, 121, 59, 208, 154, 75, 102, 114, 59, 240, 157, 148, 142, 75, 111, 112, 102, 59, 240, 157, 149, 130, 75, 115, 99, 114, 59, 240, 157, 146, 166, 76, 74, 99, 121, 59, 208, 137, 76, 84, 60, 76, 84, 59, 60, 76, 97, 99, 117, 116, 101, 59, 196, 185, 76, 97, 109, 98, 100, 97, 59, 206, 155, 76, 97, 110, 103, 59, 226, 159, 170, 76, 97, 112, 108, 97, 99, 101, 116, 114, 102, 59, 226, 132, 146, 76, 97, 114, 114, 59, 226, 134, 158, 76, 99, 97, 114, 111, 110, 59, 196, 189, 76, 99, 101, 100, 105, 108, 59, 196, 187, 76, 99, 121, 59, 208, 155, 76, 101, 102, 116, 65, 110, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 226, 159, 168, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 134, 144, 76, 101, 102, 116, 65, 114, 114, 111, 119, 66, 97, 114, 59, 226, 135, 164, 76, 101, 102, 116, 65, 114, 114, 111, 119, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 135, 134, 76, 101, 102, 116, 67, 101, 105, 108, 105, 110, 103, 59, 226, 140, 136, 76, 101, 102, 116, 68, 111, 117, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 226, 159, 166, 76, 101, 102, 116, 68, 111, 119, 110, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 161, 76, 101, 102, 116, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 226, 135, 131, 76, 101, 102, 116, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 153, 76, 101, 102, 116, 70, 108, 111, 111, 114, 59, 226, 140, 138, 76, 101, 102, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 134, 148, 76, 101, 102, 116, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 226, 165, 142, 76, 101, 102, 116, 84, 101, 101, 59, 226, 138, 163, 76, 101, 102, 116, 84, 101, 101, 65, 114, 114, 111, 119, 59, 226, 134, 164, 76, 101, 102, 116, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 154, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 59, 226, 138, 178, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 66, 97, 114, 59, 226, 167, 143, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 69, 113, 117, 97, 108, 59, 226, 138, 180, 76, 101, 102, 116, 85, 112, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 226, 165, 145, 76, 101, 102, 116, 85, 112, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 160, 76, 101, 102, 116, 85, 112, 86, 101, 99, 116, 111, 114, 59, 226, 134, 191, 76, 101, 102, 116, 85, 112, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 152, 76, 101, 102, 116, 86, 101, 99, 116, 111, 114, 59, 226, 134, 188, 76, 101, 102, 116, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 146, 76, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 135, 144, 76, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 135, 148, 76, 101, 115, 115, 69, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 59, 226, 139, 154, 76, 101, 115, 115, 70, 117, 108, 108, 69, 113, 117, 97, 108, 59, 226, 137, 166, 76, 101, 115, 115, 71, 114, 101, 97, 116, 101, 114, 59, 226, 137, 182, 76, 101, 115, 115, 76, 101, 115, 115, 59, 226, 170, 161, 76, 101, 115, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 169, 189, 76, 101, 115, 115, 84, 105, 108, 100, 101, 59, 226, 137, 178, 76, 102, 114, 59, 240, 157, 148, 143, 76, 108, 59, 226, 139, 152, 76, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 135, 154, 76, 109, 105, 100, 111, 116, 59, 196, 191, 76, 111, 110, 103, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 159, 181, 76, 111, 110, 103, 76, 101, 102, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 159, 183, 76, 111, 110, 103, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 159, 182, 76, 111, 110, 103, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 159, 184, 76, 111, 110, 103, 108, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 159, 186, 76, 111, 110, 103, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 159, 185, 76, 111, 112, 102, 59, 240, 157, 149, 131, 76, 111, 119, 101, 114, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 134, 153, 76, 111, 119, 101, 114, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 134, 152, 76, 115, 99, 114, 59, 226, 132, 146, 76, 115, 104, 59, 226, 134, 176, 76, 115, 116, 114, 111, 107, 59, 197, 129, 76, 116, 59, 226, 137, 170, 77, 97, 112, 59, 226, 164, 133, 77, 99, 121, 59, 208, 156, 77, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 59, 226, 129, 159, 77, 101, 108, 108, 105, 110, 116, 114, 102, 59, 226, 132, 179, 77, 102, 114, 59, 240, 157, 148, 144, 77, 105, 110, 117, 115, 80, 108, 117, 115, 59, 226, 136, 147, 77, 111, 112, 102, 59, 240, 157, 149, 132, 77, 115, 99, 114, 59, 226, 132, 179, 77, 117, 59, 206, 156, 78, 74, 99, 121, 59, 208, 138, 78, 97, 99, 117, 116, 101, 59, 197, 131, 78, 99, 97, 114, 111, 110, 59, 197, 135, 78, 99, 101, 100, 105, 108, 59, 197, 133, 78, 99, 121, 59, 208, 157, 78, 101, 103, 97, 116, 105, 118, 101, 77, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 59, 226, 128, 139, 78, 101, 103, 97, 116, 105, 118, 101, 84, 104, 105, 99, 107, 83, 112, 97, 99, 101, 59, 226, 128, 139, 78, 101, 103, 97, 116, 105, 118, 101, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 226, 128, 139, 78, 101, 103, 97, 116, 105, 118, 101, 86, 101, 114, 121, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 226, 128, 139, 78, 101, 115, 116, 101, 100, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 226, 137, 171, 78, 101, 115, 116, 101, 100, 76, 101, 115, 115, 76, 101, 115, 115, 59, 226, 137, 170, 78, 101, 119, 76, 105, 110, 101, 59, 10, 78, 102, 114, 59, 240, 157, 148, 145, 78, 111, 66, 114, 101, 97, 107, 59, 226, 129, 160, 78, 111, 110, 66, 114, 101, 97, 107, 105, 110, 103, 83, 112, 97, 99, 101, 59, 194, 160, 78, 111, 112, 102, 59, 226, 132, 149, 78, 111, 116, 59, 226, 171, 172, 78, 111, 116, 67, 111, 110, 103, 114, 117, 101, 110, 116, 59, 226, 137, 162, 78, 111, 116, 67, 117, 112, 67, 97, 112, 59, 226, 137, 173, 78, 111, 116, 68, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 226, 136, 166, 78, 111, 116, 69, 108, 101, 109, 101, 110, 116, 59, 226, 136, 137, 78, 111, 116, 69, 113, 117, 97, 108, 59, 226, 137, 160, 78, 111, 116, 69, 113, 117, 97, 108, 84, 105, 108, 100, 101, 59, 226, 137, 130, 204, 184, 78, 111, 116, 69, 120, 105, 115, 116, 115, 59, 226, 136, 132, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 59, 226, 137, 175, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 69, 113, 117, 97, 108, 59, 226, 137, 177, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 70, 117, 108, 108, 69, 113, 117, 97, 108, 59, 226, 137, 167, 204, 184, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 226, 137, 171, 204, 184, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 76, 101, 115, 115, 59, 226, 137, 185, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 169, 190, 204, 184, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 84, 105, 108, 100, 101, 59, 226, 137, 181, 78, 111, 116, 72, 117, 109, 112, 68, 111, 119, 110, 72, 117, 109, 112, 59, 226, 137, 142, 204, 184, 78, 111, 116, 72, 117, 109, 112, 69, 113, 117, 97, 108, 59, 226, 137, 143, 204, 184, 78, 111, 116, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 59, 226, 139, 170, 78, 111, 116, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 66, 97, 114, 59, 226, 167, 143, 204, 184, 78, 111, 116, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 69, 113, 117, 97, 108, 59, 226, 139, 172, 78, 111, 116, 76, 101, 115, 115, 59, 226, 137, 174, 78, 111, 116, 76, 101, 115, 115, 69, 113, 117, 97, 108, 59, 226, 137, 176, 78, 111, 116, 76, 101, 115, 115, 71, 114, 101, 97, 116, 101, 114, 59, 226, 137, 184, 78, 111, 116, 76, 101, 115, 115, 76, 101, 115, 115, 59, 226, 137, 170, 204, 184, 78, 111, 116, 76, 101, 115, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 169, 189, 204, 184, 78, 111, 116, 76, 101, 115, 115, 84, 105, 108, 100, 101, 59, 226, 137, 180, 78, 111, 116, 78, 101, 115, 116, 101, 100, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 226, 170, 162, 204, 184, 78, 111, 116, 78, 101, 115, 116, 101, 100, 76, 101, 115, 115, 76, 101, 115, 115, 59, 226, 170, 161, 204, 184, 78, 111, 116, 80, 114, 101, 99, 101, 100, 101, 115, 59, 226, 138, 128, 78, 111, 116, 80, 114, 101, 99, 101, 100, 101, 115, 69, 113, 117, 97, 108, 59, 226, 170, 175, 204, 184, 78, 111, 116, 80, 114, 101, 99, 101, 100, 101, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 139, 160, 78, 111, 116, 82, 101, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 59, 226, 136, 140, 78, 111, 116, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 59, 226, 139, 171, 78, 111, 116, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 66, 97, 114, 59, 226, 167, 144, 204, 184, 78, 111, 116, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 69, 113, 117, 97, 108, 59, 226, 139, 173, 78, 111, 116, 83, 113, 117, 97, 114, 101, 83, 117, 98, 115, 101, 116, 59, 226, 138, 143, 204, 184, 78, 111, 116, 83, 113, 117, 97, 114, 101, 83, 117, 98, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 139, 162, 78, 111, 116, 83, 113, 117, 97, 114, 101, 83, 117, 112, 101, 114, 115, 101, 116, 59, 226, 138, 144, 204, 184, 78, 111, 116, 83, 113, 117, 97, 114, 101, 83, 117, 112, 101, 114, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 139, 163, 78, 111, 116, 83, 117, 98, 115, 101, 116, 59, 226, 138, 130, 226, 131, 146, 78, 111, 116, 83, 117, 98, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 138, 136, 78, 111, 116, 83, 117, 99, 99, 101, 101, 100, 115, 59, 226, 138, 129, 78, 111, 116, 83, 117, 99, 99, 101, 101, 100, 115, 69, 113, 117, 97, 108, 59, 226, 170, 176, 204, 184, 78, 111, 116, 83, 117, 99, 99, 101, 101, 100, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 139, 161, 78, 111, 116, 83, 117, 99, 99, 101, 101, 100, 115, 84, 105, 108, 100, 101, 59, 226, 137, 191, 204, 184, 78, 111, 116, 83, 117, 112, 101, 114, 115, 101, 116, 59, 226, 138, 131, 226, 131, 146, 78, 111, 116, 83, 117, 112, 101, 114, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 138, 137, 78, 111, 116, 84, 105, 108, 100, 101, 59, 226, 137, 129, 78, 111, 116, 84, 105, 108, 100, 101, 69, 113, 117, 97, 108, 59, 226, 137, 132, 78, 111, 116, 84, 105, 108, 100, 101, 70, 117, 108, 108, 69, 113, 117, 97, 108, 59, 226, 137, 135, 78, 111, 116, 84, 105, 108, 100, 101, 84, 105, 108, 100, 101, 59, 226, 137, 137, 78, 111, 116, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 226, 136, 164, 78, 115, 99, 114, 59, 240, 157, 146, 169, 78, 116, 105, 108, 100, 101, 195, 145, 78, 116, 105, 108, 100, 101, 59, 195, 145, 78, 117, 59, 206, 157, 79, 69, 108, 105, 103, 59, 197, 146, 79, 97, 99, 117, 116, 101, 195, 147, 79, 97, 99, 117, 116, 101, 59, 195, 147, 79, 99, 105, 114, 99, 195, 148, 79, 99, 105, 114, 99, 59, 195, 148, 79, 99, 121, 59, 208, 158, 79, 100, 98, 108, 97, 99, 59, 197, 144, 79, 102, 114, 59, 240, 157, 148, 146, 79, 103, 114, 97, 118, 101, 195, 146, 79, 103, 114, 97, 118, 101, 59, 195, 146, 79, 109, 97, 99, 114, 59, 197, 140, 79, 109, 101, 103, 97, 59, 206, 169, 79, 109, 105, 99, 114, 111, 110, 59, 206, 159, 79, 111, 112, 102, 59, 240, 157, 149, 134, 79, 112, 101, 110, 67, 117, 114, 108, 121, 68, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 226, 128, 156, 79, 112, 101, 110, 67, 117, 114, 108, 121, 81, 117, 111, 116, 101, 59, 226, 128, 152, 79, 114, 59, 226, 169, 148, 79, 115, 99, 114, 59, 240, 157, 146, 170, 79, 115, 108, 97, 115, 104, 195, 152, 79, 115, 108, 97, 115, 104, 59, 195, 152, 79, 116, 105, 108, 100, 101, 195, 149, 79, 116, 105, 108, 100, 101, 59, 195, 149, 79, 116, 105, 109, 101, 115, 59, 226, 168, 183, 79, 117, 109, 108, 195, 150, 79, 117, 109, 108, 59, 195, 150, 79, 118, 101, 114, 66, 97, 114, 59, 226, 128, 190, 79, 118, 101, 114, 66, 114, 97, 99, 101, 59, 226, 143, 158, 79, 118, 101, 114, 66, 114, 97, 99, 107, 101, 116, 59, 226, 142, 180, 79, 118, 101, 114, 80, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 226, 143, 156, 80, 97, 114, 116, 105, 97, 108, 68, 59, 226, 136, 130, 80, 99, 121, 59, 208, 159, 80, 102, 114, 59, 240, 157, 148, 147, 80, 104, 105, 59, 206, 166, 80, 105, 59, 206, 160, 80, 108, 117, 115, 77, 105, 110, 117, 115, 59, 194, 177, 80, 111, 105, 110, 99, 97, 114, 101, 112, 108, 97, 110, 101, 59, 226, 132, 140, 80, 111, 112, 102, 59, 226, 132, 153, 80, 114, 59, 226, 170, 187, 80, 114, 101, 99, 101, 100, 101, 115, 59, 226, 137, 186, 80, 114, 101, 99, 101, 100, 101, 115, 69, 113, 117, 97, 108, 59, 226, 170, 175, 80, 114, 101, 99, 101, 100, 101, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 137, 188, 80, 114, 101, 99, 101, 100, 101, 115, 84, 105, 108, 100, 101, 59, 226, 137, 190, 80, 114, 105, 109, 101, 59, 226, 128, 179, 80, 114, 111, 100, 117, 99, 116, 59, 226, 136, 143, 80, 114, 111, 112, 111, 114, 116, 105, 111, 110, 59, 226, 136, 183, 80, 114, 111, 112, 111, 114, 116, 105, 111, 110, 97, 108, 59, 226, 136, 157, 80, 115, 99, 114, 59, 240, 157, 146, 171, 80, 115, 105, 59, 206, 168, 81, 85, 79, 84, 34, 81, 85, 79, 84, 59, 34, 81, 102, 114, 59, 240, 157, 148, 148, 81, 111, 112, 102, 59, 226, 132, 154, 81, 115, 99, 114, 59, 240, 157, 146, 172, 82, 66, 97, 114, 114, 59, 226, 164, 144, 82, 69, 71, 194, 174, 82, 69, 71, 59, 194, 174, 82, 97, 99, 117, 116, 101, 59, 197, 148, 82, 97, 110, 103, 59, 226, 159, 171, 82, 97, 114, 114, 59, 226, 134, 160, 82, 97, 114, 114, 116, 108, 59, 226, 164, 150, 82, 99, 97, 114, 111, 110, 59, 197, 152, 82, 99, 101, 100, 105, 108, 59, 197, 150, 82, 99, 121, 59, 208, 160, 82, 101, 59, 226, 132, 156, 82, 101, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 59, 226, 136, 139, 82, 101, 118, 101, 114, 115, 101, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 226, 135, 139, 82, 101, 118, 101, 114, 115, 101, 85, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 226, 165, 175, 82, 102, 114, 59, 226, 132, 156, 82, 104, 111, 59, 206, 161, 82, 105, 103, 104, 116, 65, 110, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 226, 159, 169, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 134, 146, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 66, 97, 114, 59, 226, 135, 165, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 135, 132, 82, 105, 103, 104, 116, 67, 101, 105, 108, 105, 110, 103, 59, 226, 140, 137, 82, 105, 103, 104, 116, 68, 111, 117, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 226, 159, 167, 82, 105, 103, 104, 116, 68, 111, 119, 110, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 157, 82, 105, 103, 104, 116, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 226, 135, 130, 82, 105, 103, 104, 116, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 149, 82, 105, 103, 104, 116, 70, 108, 111, 111, 114, 59, 226, 140, 139, 82, 105, 103, 104, 116, 84, 101, 101, 59, 226, 138, 162, 82, 105, 103, 104, 116, 84, 101, 101, 65, 114, 114, 111, 119, 59, 226, 134, 166, 82, 105, 103, 104, 116, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 155, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 59, 226, 138, 179, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 66, 97, 114, 59, 226, 167, 144, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 69, 113, 117, 97, 108, 59, 226, 138, 181, 82, 105, 103, 104, 116, 85, 112, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 226, 165, 143, 82, 105, 103, 104, 116, 85, 112, 84, 101, 101, 86, 101, 99, 116, 111, 114, 59, 226, 165, 156, 82, 105, 103, 104, 116, 85, 112, 86, 101, 99, 116, 111, 114, 59, 226, 134, 190, 82, 105, 103, 104, 116, 85, 112, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 148, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 226, 135, 128, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 66, 97, 114, 59, 226, 165, 147, 82, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 135, 146, 82, 111, 112, 102, 59, 226, 132, 157, 82, 111, 117, 110, 100, 73, 109, 112, 108, 105, 101, 115, 59, 226, 165, 176, 82, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 135, 155, 82, 115, 99, 114, 59, 226, 132, 155, 82, 115, 104, 59, 226, 134, 177, 82, 117, 108, 101, 68, 101, 108, 97, 121, 101, 100, 59, 226, 167, 180, 83, 72, 67, 72, 99, 121, 59, 208, 169, 83, 72, 99, 121, 59, 208, 168, 83, 79, 70, 84, 99, 121, 59, 208, 172, 83, 97, 99, 117, 116, 101, 59, 197, 154, 83, 99, 59, 226, 170, 188, 83, 99, 97, 114, 111, 110, 59, 197, 160, 83, 99, 101, 100, 105, 108, 59, 197, 158, 83, 99, 105, 114, 99, 59, 197, 156, 83, 99, 121, 59, 208, 161, 83, 102, 114, 59, 240, 157, 148, 150, 83, 104, 111, 114, 116, 68, 111, 119, 110, 65, 114, 114, 111, 119, 59, 226, 134, 147, 83, 104, 111, 114, 116, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 134, 144, 83, 104, 111, 114, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 134, 146, 83, 104, 111, 114, 116, 85, 112, 65, 114, 114, 111, 119, 59, 226, 134, 145, 83, 105, 103, 109, 97, 59, 206, 163, 83, 109, 97, 108, 108, 67, 105, 114, 99, 108, 101, 59, 226, 136, 152, 83, 111, 112, 102, 59, 240, 157, 149, 138, 83, 113, 114, 116, 59, 226, 136, 154, 83, 113, 117, 97, 114, 101, 59, 226, 150, 161, 83, 113, 117, 97, 114, 101, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 226, 138, 147, 83, 113, 117, 97, 114, 101, 83, 117, 98, 115, 101, 116, 59, 226, 138, 143, 83, 113, 117, 97, 114, 101, 83, 117, 98, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 138, 145, 83, 113, 117, 97, 114, 101, 83, 117, 112, 101, 114, 115, 101, 116, 59, 226, 138, 144, 83, 113, 117, 97, 114, 101, 83, 117, 112, 101, 114, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 138, 146, 83, 113, 117, 97, 114, 101, 85, 110, 105, 111, 110, 59, 226, 138, 148, 83, 115, 99, 114, 59, 240, 157, 146, 174, 83, 116, 97, 114, 59, 226, 139, 134, 83, 117, 98, 59, 226, 139, 144, 83, 117, 98, 115, 101, 116, 59, 226, 139, 144, 83, 117, 98, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 138, 134, 83, 117, 99, 99, 101, 101, 100, 115, 59, 226, 137, 187, 83, 117, 99, 99, 101, 101, 100, 115, 69, 113, 117, 97, 108, 59, 226, 170, 176, 83, 117, 99, 99, 101, 101, 100, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 226, 137, 189, 83, 117, 99, 99, 101, 101, 100, 115, 84, 105, 108, 100, 101, 59, 226, 137, 191, 83, 117, 99, 104, 84, 104, 97, 116, 59, 226, 136, 139, 83, 117, 109, 59, 226, 136, 145, 83, 117, 112, 59, 226, 139, 145, 83, 117, 112, 101, 114, 115, 101, 116, 59, 226, 138, 131, 83, 117, 112, 101, 114, 115, 101, 116, 69, 113, 117, 97, 108, 59, 226, 138, 135, 83, 117, 112, 115, 101, 116, 59, 226, 139, 145, 84, 72, 79, 82, 78, 195, 158, 84, 72, 79, 82, 78, 59, 195, 158, 84, 82, 65, 68, 69, 59, 226, 132, 162, 84, 83, 72, 99, 121, 59, 208, 139, 84, 83, 99, 121, 59, 208, 166, 84, 97, 98, 59, 9, 84, 97, 117, 59, 206, 164, 84, 99, 97, 114, 111, 110, 59, 197, 164, 84, 99, 101, 100, 105, 108, 59, 197, 162, 84, 99, 121, 59, 208, 162, 84, 102, 114, 59, 240, 157, 148, 151, 84, 104, 101, 114, 101, 102, 111, 114, 101, 59, 226, 136, 180, 84, 104, 101, 116, 97, 59, 206, 152, 84, 104, 105, 99, 107, 83, 112, 97, 99, 101, 59, 226, 129, 159, 226, 128, 138, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 226, 128, 137, 84, 105, 108, 100, 101, 59, 226, 136, 188, 84, 105, 108, 100, 101, 69, 113, 117, 97, 108, 59, 226, 137, 131, 84, 105, 108, 100, 101, 70, 117, 108, 108, 69, 113, 117, 97, 108, 59, 226, 137, 133, 84, 105, 108, 100, 101, 84, 105, 108, 100, 101, 59, 226, 137, 136, 84, 111, 112, 102, 59, 240, 157, 149, 139, 84, 114, 105, 112, 108, 101, 68, 111, 116, 59, 226, 131, 155, 84, 115, 99, 114, 59, 240, 157, 146, 175, 84, 115, 116, 114, 111, 107, 59, 197, 166, 85, 97, 99, 117, 116, 101, 195, 154, 85, 97, 99, 117, 116, 101, 59, 195, 154, 85, 97, 114, 114, 59, 226, 134, 159, 85, 97, 114, 114, 111, 99, 105, 114, 59, 226, 165, 137, 85, 98, 114, 99, 121, 59, 208, 142, 85, 98, 114, 101, 118, 101, 59, 197, 172, 85, 99, 105, 114, 99, 195, 155, 85, 99, 105, 114, 99, 59, 195, 155, 85, 99, 121, 59, 208, 163, 85, 100, 98, 108, 97, 99, 59, 197, 176, 85, 102, 114, 59, 240, 157, 148, 152, 85, 103, 114, 97, 118, 101, 195, 153, 85, 103, 114, 97, 118, 101, 59, 195, 153, 85, 109, 97, 99, 114, 59, 197, 170, 85, 110, 100, 101, 114, 66, 97, 114, 59, 95, 85, 110, 100, 101, 114, 66, 114, 97, 99, 101, 59, 226, 143, 159, 85, 110, 100, 101, 114, 66, 114, 97, 99, 107, 101, 116, 59, 226, 142, 181, 85, 110, 100, 101, 114, 80, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 226, 143, 157, 85, 110, 105, 111, 110, 59, 226, 139, 131, 85, 110, 105, 111, 110, 80, 108, 117, 115, 59, 226, 138, 142, 85, 111, 103, 111, 110, 59, 197, 178, 85, 111, 112, 102, 59, 240, 157, 149, 140, 85, 112, 65, 114, 114, 111, 119, 59, 226, 134, 145, 85, 112, 65, 114, 114, 111, 119, 66, 97, 114, 59, 226, 164, 146, 85, 112, 65, 114, 114, 111, 119, 68, 111, 119, 110, 65, 114, 114, 111, 119, 59, 226, 135, 133, 85, 112, 68, 111, 119, 110, 65, 114, 114, 111, 119, 59, 226, 134, 149, 85, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 226, 165, 174, 85, 112, 84, 101, 101, 59, 226, 138, 165, 85, 112, 84, 101, 101, 65, 114, 114, 111, 119, 59, 226, 134, 165, 85, 112, 97, 114, 114, 111, 119, 59, 226, 135, 145, 85, 112, 100, 111, 119, 110, 97, 114, 114, 111, 119, 59, 226, 135, 149, 85, 112, 112, 101, 114, 76, 101, 102, 116, 65, 114, 114, 111, 119, 59, 226, 134, 150, 85, 112, 112, 101, 114, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 226, 134, 151, 85, 112, 115, 105, 59, 207, 146, 85, 112, 115, 105, 108, 111, 110, 59, 206, 165, 85, 114, 105, 110, 103, 59, 197, 174, 85, 115, 99, 114, 59, 240, 157, 146, 176, 85, 116, 105, 108, 100, 101, 59, 197, 168, 85, 117, 109, 108, 195, 156, 85, 117, 109, 108, 59, 195, 156, 86, 68, 97, 115, 104, 59, 226, 138, 171, 86, 98, 97, 114, 59, 226, 171, 171, 86, 99, 121, 59, 208, 146, 86, 100, 97, 115, 104, 59, 226, 138, 169, 86, 100, 97, 115, 104, 108, 59, 226, 171, 166, 86, 101, 101, 59, 226, 139, 129, 86, 101, 114, 98, 97, 114, 59, 226, 128, 150, 86, 101, 114, 116, 59, 226, 128, 150, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 226, 136, 163, 86, 101, 114, 116, 105, 99, 97, 108, 76, 105, 110, 101, 59, 124, 86, 101, 114, 116, 105, 99, 97, 108, 83, 101, 112, 97, 114, 97, 116, 111, 114, 59, 226, 157, 152, 86, 101, 114, 116, 105, 99, 97, 108, 84, 105, 108, 100, 101, 59, 226, 137, 128, 86, 101, 114, 121, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 226, 128, 138, 86, 102, 114, 59, 240, 157, 148, 153, 86, 111, 112, 102, 59, 240, 157, 149, 141, 86, 115, 99, 114, 59, 240, 157, 146, 177, 86, 118, 100, 97, 115, 104, 59, 226, 138, 170, 87, 99, 105, 114, 99, 59, 197, 180, 87, 101, 100, 103, 101, 59, 226, 139, 128, 87, 102, 114, 59, 240, 157, 148, 154, 87, 111, 112, 102, 59, 240, 157, 149, 142, 87, 115, 99, 114, 59, 240, 157, 146, 178, 88, 102, 114, 59, 240, 157, 148, 155, 88, 105, 59, 206, 158, 88, 111, 112, 102, 59, 240, 157, 149, 143, 88, 115, 99, 114, 59, 240, 157, 146, 179, 89, 65, 99, 121, 59, 208, 175, 89, 73, 99, 121, 59, 208, 135, 89, 85, 99, 121, 59, 208, 174, 89, 97, 99, 117, 116, 101, 195, 157, 89, 97, 99, 117, 116, 101, 59, 195, 157, 89, 99, 105, 114, 99, 59, 197, 182, 89, 99, 121, 59, 208, 171, 89, 102, 114, 59, 240, 157, 148, 156, 89, 111, 112, 102, 59, 240, 157, 149, 144, 89, 115, 99, 114, 59, 240, 157, 146, 180, 89, 117, 109, 108, 59, 197, 184, 90, 72, 99, 121, 59, 208, 150, 90, 97, 99, 117, 116, 101, 59, 197, 185, 90, 99, 97, 114, 111, 110, 59, 197, 189, 90, 99, 121, 59, 208, 151, 90, 100, 111, 116, 59, 197, 187, 90, 101, 114, 111, 87, 105, 100, 116, 104, 83, 112, 97, 99, 101, 59, 226, 128, 139, 90, 101, 116, 97, 59, 206, 150, 90, 102, 114, 59, 226, 132, 168, 90, 111, 112, 102, 59, 226, 132, 164, 90, 115, 99, 114, 59, 240, 157, 146, 181, 97, 97, 99, 117, 116, 101, 195, 161, 97, 97, 99, 117, 116, 101, 59, 195, 161, 97, 98, 114, 101, 118, 101, 59, 196, 131, 97, 99, 59, 226, 136, 190, 97, 99, 69, 59, 226, 136, 190, 204, 179, 97, 99, 100, 59, 226, 136, 191, 97, 99, 105, 114, 99, 195, 162, 97, 99, 105, 114, 99, 59, 195, 162, 97, 99, 117, 116, 101, 194, 180, 97, 99, 117, 116, 101, 59, 194, 180, 97, 99, 121, 59, 208, 176, 97, 101, 108, 105, 103, 195, 166, 97, 101, 108, 105, 103, 59, 195, 166, 97, 102, 59, 226, 129, 161, 97, 102, 114, 59, 240, 157, 148, 158, 97, 103, 114, 97, 118, 101, 195, 160, 97, 103, 114, 97, 118, 101, 59, 195, 160, 97, 108, 101, 102, 115, 121, 109, 59, 226, 132, 181, 97, 108, 101, 112, 104, 59, 226, 132, 181, 97, 108, 112, 104, 97, 59, 206, 177, 97, 109, 97, 99, 114, 59, 196, 129, 97, 109, 97, 108, 103, 59, 226, 168, 191, 97, 109, 112, 38, 97, 109, 112, 59, 38, 97, 110, 100, 59, 226, 136, 167, 97, 110, 100, 97, 110, 100, 59, 226, 169, 149, 97, 110, 100, 100, 59, 226, 169, 156, 97, 110, 100, 115, 108, 111, 112, 101, 59, 226, 169, 152, 97, 110, 100, 118, 59, 226, 169, 154, 97, 110, 103, 59, 226, 136, 160, 97, 110, 103, 101, 59, 226, 166, 164, 97, 110, 103, 108, 101, 59, 226, 136, 160, 97, 110, 103, 109, 115, 100, 59, 226, 136, 161, 97, 110, 103, 109, 115, 100, 97, 97, 59, 226, 166, 168, 97, 110, 103, 109, 115, 100, 97, 98, 59, 226, 166, 169, 97, 110, 103, 109, 115, 100, 97, 99, 59, 226, 166, 170, 97, 110, 103, 109, 115, 100, 97, 100, 59, 226, 166, 171, 97, 110, 103, 109, 115, 100, 97, 101, 59, 226, 166, 172, 97, 110, 103, 109, 115, 100, 97, 102, 59, 226, 166, 173, 97, 110, 103, 109, 115, 100, 97, 103, 59, 226, 166, 174, 97, 110, 103, 109, 115, 100, 97, 104, 59, 226, 166, 175, 97, 110, 103, 114, 116, 59, 226, 136, 159, 97, 110, 103, 114, 116, 118, 98, 59, 226, 138, 190, 97, 110, 103, 114, 116, 118, 98, 100, 59, 226, 166, 157, 97, 110, 103, 115, 112, 104, 59, 226, 136, 162, 97, 110, 103, 115, 116, 59, 195, 133, 97, 110, 103, 122, 97, 114, 114, 59, 226, 141, 188, 97, 111, 103, 111, 110, 59, 196, 133, 97, 111, 112, 102, 59, 240, 157, 149, 146, 97, 112, 59, 226, 137, 136, 97, 112, 69, 59, 226, 169, 176, 97, 112, 97, 99, 105, 114, 59, 226, 169, 175, 97, 112, 101, 59, 226, 137, 138, 97, 112, 105, 100, 59, 226, 137, 139, 97, 112, 111, 115, 59, 39, 97, 112, 112, 114, 111, 120, 59, 226, 137, 136, 97, 112, 112, 114, 111, 120, 101, 113, 59, 226, 137, 138, 97, 114, 105, 110, 103, 195, 165, 97, 114, 105, 110, 103, 59, 195, 165, 97, 115, 99, 114, 59, 240, 157, 146, 182, 97, 115, 116, 59, 42, 97, 115, 121, 109, 112, 59, 226, 137, 136, 97, 115, 121, 109, 112, 101, 113, 59, 226, 137, 141, 97, 116, 105, 108, 100, 101, 195, 163, 97, 116, 105, 108, 100, 101, 59, 195, 163, 97, 117, 109, 108, 195, 164, 97, 117, 109, 108, 59, 195, 164, 97, 119, 99, 111, 110, 105, 110, 116, 59, 226, 136, 179, 97, 119, 105, 110, 116, 59, 226, 168, 145, 98, 78, 111, 116, 59, 226, 171, 173, 98, 97, 99, 107, 99, 111, 110, 103, 59, 226, 137, 140, 98, 97, 99, 107, 101, 112, 115, 105, 108, 111, 110, 59, 207, 182, 98, 97, 99, 107, 112, 114, 105, 109, 101, 59, 226, 128, 181, 98, 97, 99, 107, 115, 105, 109, 59, 226, 136, 189, 98, 97, 99, 107, 115, 105, 109, 101, 113, 59, 226, 139, 141, 98, 97, 114, 118, 101, 101, 59, 226, 138, 189, 98, 97, 114, 119, 101, 100, 59, 226, 140, 133, 98, 97, 114, 119, 101, 100, 103, 101, 59, 226, 140, 133, 98, 98, 114, 107, 59, 226, 142, 181, 98, 98, 114, 107, 116, 98, 114, 107, 59, 226, 142, 182, 98, 99, 111, 110, 103, 59, 226, 137, 140, 98, 99, 121, 59, 208, 177, 98, 100, 113, 117, 111, 59, 226, 128, 158, 98, 101, 99, 97, 117, 115, 59, 226, 136, 181, 98, 101, 99, 97, 117, 115, 101, 59, 226, 136, 181, 98, 101, 109, 112, 116, 121, 118, 59, 226, 166, 176, 98, 101, 112, 115, 105, 59, 207, 182, 98, 101, 114, 110, 111, 117, 59, 226, 132, 172, 98, 101, 116, 97, 59, 206, 178, 98, 101, 116, 104, 59, 226, 132, 182, 98, 101, 116, 119, 101, 101, 110, 59, 226, 137, 172, 98, 102, 114, 59, 240, 157, 148, 159, 98, 105, 103, 99, 97, 112, 59, 226, 139, 130, 98, 105, 103, 99, 105, 114, 99, 59, 226, 151, 175, 98, 105, 103, 99, 117, 112, 59, 226, 139, 131, 98, 105, 103, 111, 100, 111, 116, 59, 226, 168, 128, 98, 105, 103, 111, 112, 108, 117, 115, 59, 226, 168, 129, 98, 105, 103, 111, 116, 105, 109, 101, 115, 59, 226, 168, 130, 98, 105, 103, 115, 113, 99, 117, 112, 59, 226, 168, 134, 98, 105, 103, 115, 116, 97, 114, 59, 226, 152, 133, 98, 105, 103, 116, 114, 105, 97, 110, 103, 108, 101, 100, 111, 119, 110, 59, 226, 150, 189, 98, 105, 103, 116, 114, 105, 97, 110, 103, 108, 101, 117, 112, 59, 226, 150, 179, 98, 105, 103, 117, 112, 108, 117, 115, 59, 226, 168, 132, 98, 105, 103, 118, 101, 101, 59, 226, 139, 129, 98, 105, 103, 119, 101, 100, 103, 101, 59, 226, 139, 128, 98, 107, 97, 114, 111, 119, 59, 226, 164, 141, 98, 108, 97, 99, 107, 108, 111, 122, 101, 110, 103, 101, 59, 226, 167, 171, 98, 108, 97, 99, 107, 115, 113, 117, 97, 114, 101, 59, 226, 150, 170, 98, 108, 97, 99, 107, 116, 114, 105, 97, 110, 103, 108, 101, 59, 226, 150, 180, 98, 108, 97, 99, 107, 116, 114, 105, 97, 110, 103, 108, 101, 100, 111, 119, 110, 59, 226, 150, 190, 98, 108, 97, 99, 107, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 59, 226, 151, 130, 98, 108, 97, 99, 107, 116, 114, 105, 97, 110, 103, 108, 101, 114, 105, 103, 104, 116, 59, 226, 150, 184, 98, 108, 97, 110, 107, 59, 226, 144, 163, 98, 108, 107, 49, 50, 59, 226, 150, 146, 98, 108, 107, 49, 52, 59, 226, 150, 145, 98, 108, 107, 51, 52, 59, 226, 150, 147, 98, 108, 111, 99, 107, 59, 226, 150, 136, 98, 110, 101, 59, 61, 226, 131, 165, 98, 110, 101, 113, 117, 105, 118, 59, 226, 137, 161, 226, 131, 165, 98, 110, 111, 116, 59, 226, 140, 144, 98, 111, 112, 102, 59, 240, 157, 149, 147, 98, 111, 116, 59, 226, 138, 165, 98, 111, 116, 116, 111, 109, 59, 226, 138, 165, 98, 111, 119, 116, 105, 101, 59, 226, 139, 136, 98, 111, 120, 68, 76, 59, 226, 149, 151, 98, 111, 120, 68, 82, 59, 226, 149, 148, 98, 111, 120, 68, 108, 59, 226, 149, 150, 98, 111, 120, 68, 114, 59, 226, 149, 147, 98, 111, 120, 72, 59, 226, 149, 144, 98, 111, 120, 72, 68, 59, 226, 149, 166, 98, 111, 120, 72, 85, 59, 226, 149, 169, 98, 111, 120, 72, 100, 59, 226, 149, 164, 98, 111, 120, 72, 117, 59, 226, 149, 167, 98, 111, 120, 85, 76, 59, 226, 149, 157, 98, 111, 120, 85, 82, 59, 226, 149, 154, 98, 111, 120, 85, 108, 59, 226, 149, 156, 98, 111, 120, 85, 114, 59, 226, 149, 153, 98, 111, 120, 86, 59, 226, 149, 145, 98, 111, 120, 86, 72, 59, 226, 149, 172, 98, 111, 120, 86, 76, 59, 226, 149, 163, 98, 111, 120, 86, 82, 59, 226, 149, 160, 98, 111, 120, 86, 104, 59, 226, 149, 171, 98, 111, 120, 86, 108, 59, 226, 149, 162, 98, 111, 120, 86, 114, 59, 226, 149, 159, 98, 111, 120, 98, 111, 120, 59, 226, 167, 137, 98, 111, 120, 100, 76, 59, 226, 149, 149, 98, 111, 120, 100, 82, 59, 226, 149, 146, 98, 111, 120, 100, 108, 59, 226, 148, 144, 98, 111, 120, 100, 114, 59, 226, 148, 140, 98, 111, 120, 104, 59, 226, 148, 128, 98, 111, 120, 104, 68, 59, 226, 149, 165, 98, 111, 120, 104, 85, 59, 226, 149, 168, 98, 111, 120, 104, 100, 59, 226, 148, 172, 98, 111, 120, 104, 117, 59, 226, 148, 180, 98, 111, 120, 109, 105, 110, 117, 115, 59, 226, 138, 159, 98, 111, 120, 112, 108, 117, 115, 59, 226, 138, 158, 98, 111, 120, 116, 105, 109, 101, 115, 59, 226, 138, 160, 98, 111, 120, 117, 76, 59, 226, 149, 155, 98, 111, 120, 117, 82, 59, 226, 149, 152, 98, 111, 120, 117, 108, 59, 226, 148, 152, 98, 111, 120, 117, 114, 59, 226, 148, 148, 98, 111, 120, 118, 59, 226, 148, 130, 98, 111, 120, 118, 72, 59, 226, 149, 170, 98, 111, 120, 118, 76, 59, 226, 149, 161, 98, 111, 120, 118, 82, 59, 226, 149, 158, 98, 111, 120, 118, 104, 59, 226, 148, 188, 98, 111, 120, 118, 108, 59, 226, 148, 164, 98, 111, 120, 118, 114, 59, 226, 148, 156, 98, 112, 114, 105, 109, 101, 59, 226, 128, 181, 98, 114, 101, 118, 101, 59, 203, 152, 98, 114, 118, 98, 97, 114, 194, 166, 98, 114, 118, 98, 97, 114, 59, 194, 166, 98, 115, 99, 114, 59, 240, 157, 146, 183, 98, 115, 101, 109, 105, 59, 226, 129, 143, 98, 115, 105, 109, 59, 226, 136, 189, 98, 115, 105, 109, 101, 59, 226, 139, 141, 98, 115, 111, 108, 59, 92, 98, 115, 111, 108, 98, 59, 226, 167, 133, 98, 115, 111, 108, 104, 115, 117, 98, 59, 226, 159, 136, 98, 117, 108, 108, 59, 226, 128, 162, 98, 117, 108, 108, 101, 116, 59, 226, 128, 162, 98, 117, 109, 112, 59, 226, 137, 142, 98, 117, 109, 112, 69, 59, 226, 170, 174, 98, 117, 109, 112, 101, 59, 226, 137, 143, 98, 117, 109, 112, 101, 113, 59, 226, 137, 143, 99, 97, 99, 117, 116, 101, 59, 196, 135, 99, 97, 112, 59, 226, 136, 169, 99, 97, 112, 97, 110, 100, 59, 226, 169, 132, 99, 97, 112, 98, 114, 99, 117, 112, 59, 226, 169, 137, 99, 97, 112, 99, 97, 112, 59, 226, 169, 139, 99, 97, 112, 99, 117, 112, 59, 226, 169, 135, 99, 97, 112, 100, 111, 116, 59, 226, 169, 128, 99, 97, 112, 115, 59, 226, 136, 169, 239, 184, 128, 99, 97, 114, 101, 116, 59, 226, 129, 129, 99, 97, 114, 111, 110, 59, 203, 135, 99, 99, 97, 112, 115, 59, 226, 169, 141, 99, 99, 97, 114, 111, 110, 59, 196, 141, 99, 99, 101, 100, 105, 108, 195, 167, 99, 99, 101, 100, 105, 108, 59, 195, 167, 99, 99, 105, 114, 99, 59, 196, 137, 99, 99, 117, 112, 115, 59, 226, 169, 140, 99, 99, 117, 112, 115, 115, 109, 59, 226, 169, 144, 99, 100, 111, 116, 59, 196, 139, 99, 101, 100, 105, 108, 194, 184, 99, 101, 100, 105, 108, 59, 194, 184, 99, 101, 109, 112, 116, 121, 118, 59, 226, 166, 178, 99, 101, 110, 116, 194, 162, 99, 101, 110, 116, 59, 194, 162, 99, 101, 110, 116, 101, 114, 100, 111, 116, 59, 194, 183, 99, 102, 114, 59, 240, 157, 148, 160, 99, 104, 99, 121, 59, 209, 135, 99, 104, 101, 99, 107, 59, 226, 156, 147, 99, 104, 101, 99, 107, 109, 97, 114, 107, 59, 226, 156, 147, 99, 104, 105, 59, 207, 135, 99, 105, 114, 59, 226, 151, 139, 99, 105, 114, 69, 59, 226, 167, 131, 99, 105, 114, 99, 59, 203, 134, 99, 105, 114, 99, 101, 113, 59, 226, 137, 151, 99, 105, 114, 99, 108, 101, 97, 114, 114, 111, 119, 108, 101, 102, 116, 59, 226, 134, 186, 99, 105, 114, 99, 108, 101, 97, 114, 114, 111, 119, 114, 105, 103, 104, 116, 59, 226, 134, 187, 99, 105, 114, 99, 108, 101, 100, 82, 59, 194, 174, 99, 105, 114, 99, 108, 101, 100, 83, 59, 226, 147, 136, 99, 105, 114, 99, 108, 101, 100, 97, 115, 116, 59, 226, 138, 155, 99, 105, 114, 99, 108, 101, 100, 99, 105, 114, 99, 59, 226, 138, 154, 99, 105, 114, 99, 108, 101, 100, 100, 97, 115, 104, 59, 226, 138, 157, 99, 105, 114, 101, 59, 226, 137, 151, 99, 105, 114, 102, 110, 105, 110, 116, 59, 226, 168, 144, 99, 105, 114, 109, 105, 100, 59, 226, 171, 175, 99, 105, 114, 115, 99, 105, 114, 59, 226, 167, 130, 99, 108, 117, 98, 115, 59, 226, 153, 163, 99, 108, 117, 98, 115, 117, 105, 116, 59, 226, 153, 163, 99, 111, 108, 111, 110, 59, 58, 99, 111, 108, 111, 110, 101, 59, 226, 137, 148, 99, 111, 108, 111, 110, 101, 113, 59, 226, 137, 148, 99, 111, 109, 109, 97, 59, 44, 99, 111, 109, 109, 97, 116, 59, 64, 99, 111, 109, 112, 59, 226, 136, 129, 99, 111, 109, 112, 102, 110, 59, 226, 136, 152, 99, 111, 109, 112, 108, 101, 109, 101, 110, 116, 59, 226, 136, 129, 99, 111, 109, 112, 108, 101, 120, 101, 115, 59, 226, 132, 130, 99, 111, 110, 103, 59, 226, 137, 133, 99, 111, 110, 103, 100, 111, 116, 59, 226, 169, 173, 99, 111, 110, 105, 110, 116, 59, 226, 136, 174, 99, 111, 112, 102, 59, 240, 157, 149, 148, 99, 111, 112, 114, 111, 100, 59, 226, 136, 144, 99, 111, 112, 121, 194, 169, 99, 111, 112, 121, 59, 194, 169, 99, 111, 112, 121, 115, 114, 59, 226, 132, 151, 99, 114, 97, 114, 114, 59, 226, 134, 181, 99, 114, 111, 115, 115, 59, 226, 156, 151, 99, 115, 99, 114, 59, 240, 157, 146, 184, 99, 115, 117, 98, 59, 226, 171, 143, 99, 115, 117, 98, 101, 59, 226, 171, 145, 99, 115, 117, 112, 59, 226, 171, 144, 99, 115, 117, 112, 101, 59, 226, 171, 146, 99, 116, 100, 111, 116, 59, 226, 139, 175, 99, 117, 100, 97, 114, 114, 108, 59, 226, 164, 184, 99, 117, 100, 97, 114, 114, 114, 59, 226, 164, 181, 99, 117, 101, 112, 114, 59, 226, 139, 158, 99, 117, 101, 115, 99, 59, 226, 139, 159, 99, 117, 108, 97, 114, 114, 59, 226, 134, 182, 99, 117, 108, 97, 114, 114, 112, 59, 226, 164, 189, 99, 117, 112, 59, 226, 136, 170, 99, 117, 112, 98, 114, 99, 97, 112, 59, 226, 169, 136, 99, 117, 112, 99, 97, 112, 59, 226, 169, 134, 99, 117, 112, 99, 117, 112, 59, 226, 169, 138, 99, 117, 112, 100, 111, 116, 59, 226, 138, 141, 99, 117, 112, 111, 114, 59, 226, 169, 133, 99, 117, 112, 115, 59, 226, 136, 170, 239, 184, 128, 99, 117, 114, 97, 114, 114, 59, 226, 134, 183, 99, 117, 114, 97, 114, 114, 109, 59, 226, 164, 188, 99, 117, 114, 108, 121, 101, 113, 112, 114, 101, 99, 59, 226, 139, 158, 99, 117, 114, 108, 121, 101, 113, 115, 117, 99, 99, 59, 226, 139, 159, 99, 117, 114, 108, 121, 118, 101, 101, 59, 226, 139, 142, 99, 117, 114, 108, 121, 119, 101, 100, 103, 101, 59, 226, 139, 143, 99, 117, 114, 114, 101, 110, 194, 164, 99, 117, 114, 114, 101, 110, 59, 194, 164, 99, 117, 114, 118, 101, 97, 114, 114, 111, 119, 108, 101, 102, 116, 59, 226, 134, 182, 99, 117, 114, 118, 101, 97, 114, 114, 111, 119, 114, 105, 103, 104, 116, 59, 226, 134, 183, 99, 117, 118, 101, 101, 59, 226, 139, 142, 99, 117, 119, 101, 100, 59, 226, 139, 143, 99, 119, 99, 111, 110, 105, 110, 116, 59, 226, 136, 178, 99, 119, 105, 110, 116, 59, 226, 136, 177, 99, 121, 108, 99, 116, 121, 59, 226, 140, 173, 100, 65, 114, 114, 59, 226, 135, 147, 100, 72, 97, 114, 59, 226, 165, 165, 100, 97, 103, 103, 101, 114, 59, 226, 128, 160, 100, 97, 108, 101, 116, 104, 59, 226, 132, 184, 100, 97, 114, 114, 59, 226, 134, 147, 100, 97, 115, 104, 59, 226, 128, 144, 100, 97, 115, 104, 118, 59, 226, 138, 163, 100, 98, 107, 97, 114, 111, 119, 59, 226, 164, 143, 100, 98, 108, 97, 99, 59, 203, 157, 100, 99, 97, 114, 111, 110, 59, 196, 143, 100, 99, 121, 59, 208, 180, 100, 100, 59, 226, 133, 134, 100, 100, 97, 103, 103, 101, 114, 59, 226, 128, 161, 100, 100, 97, 114, 114, 59, 226, 135, 138, 100, 100, 111, 116, 115, 101, 113, 59, 226, 169, 183, 100, 101, 103, 194, 176, 100, 101, 103, 59, 194, 176, 100, 101, 108, 116, 97, 59, 206, 180, 100, 101, 109, 112, 116, 121, 118, 59, 226, 166, 177, 100, 102, 105, 115, 104, 116, 59, 226, 165, 191, 100, 102, 114, 59, 240, 157, 148, 161, 100, 104, 97, 114, 108, 59, 226, 135, 131, 100, 104, 97, 114, 114, 59, 226, 135, 130, 100, 105, 97, 109, 59, 226, 139, 132, 100, 105, 97, 109, 111, 110, 100, 59, 226, 139, 132, 100, 105, 97, 109, 111, 110, 100, 115, 117, 105, 116, 59, 226, 153, 166, 100, 105, 97, 109, 115, 59, 226, 153, 166, 100, 105, 101, 59, 194, 168, 100, 105, 103, 97, 109, 109, 97, 59, 207, 157, 100, 105, 115, 105, 110, 59, 226, 139, 178, 100, 105, 118, 59, 195, 183, 100, 105, 118, 105, 100, 101, 195, 183, 100, 105, 118, 105, 100, 101, 59, 195, 183, 100, 105, 118, 105, 100, 101, 111, 110, 116, 105, 109, 101, 115, 59, 226, 139, 135, 100, 105, 118, 111, 110, 120, 59, 226, 139, 135, 100, 106, 99, 121, 59, 209, 146, 100, 108, 99, 111, 114, 110, 59, 226, 140, 158, 100, 108, 99, 114, 111, 112, 59, 226, 140, 141, 100, 111, 108, 108, 97, 114, 59, 36, 100, 111, 112, 102, 59, 240, 157, 149, 149, 100, 111, 116, 59, 203, 153, 100, 111, 116, 101, 113, 59, 226, 137, 144, 100, 111, 116, 101, 113, 100, 111, 116, 59, 226, 137, 145, 100, 111, 116, 109, 105, 110, 117, 115, 59, 226, 136, 184, 100, 111, 116, 112, 108, 117, 115, 59, 226, 136, 148, 100, 111, 116, 115, 113, 117, 97, 114, 101, 59, 226, 138, 161, 100, 111, 117, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 101, 59, 226, 140, 134, 100, 111, 119, 110, 97, 114, 114, 111, 119, 59, 226, 134, 147, 100, 111, 119, 110, 100, 111, 119, 110, 97, 114, 114, 111, 119, 115, 59, 226, 135, 138, 100, 111, 119, 110, 104, 97, 114, 112, 111, 111, 110, 108, 101, 102, 116, 59, 226, 135, 131, 100, 111, 119, 110, 104, 97, 114, 112, 111, 111, 110, 114, 105, 103, 104, 116, 59, 226, 135, 130, 100, 114, 98, 107, 97, 114, 111, 119, 59, 226, 164, 144, 100, 114, 99, 111, 114, 110, 59, 226, 140, 159, 100, 114, 99, 114, 111, 112, 59, 226, 140, 140, 100, 115, 99, 114, 59, 240, 157, 146, 185, 100, 115, 99, 121, 59, 209, 149, 100, 115, 111, 108, 59, 226, 167, 182, 100, 115, 116, 114, 111, 107, 59, 196, 145, 100, 116, 100, 111, 116, 59, 226, 139, 177, 100, 116, 114, 105, 59, 226, 150, 191, 100, 116, 114, 105, 102, 59, 226, 150, 190, 100, 117, 97, 114, 114, 59, 226, 135, 181, 100, 117, 104, 97, 114, 59, 226, 165, 175, 100, 119, 97, 110, 103, 108, 101, 59, 226, 166, 166, 100, 122, 99, 121, 59, 209, 159, 100, 122, 105, 103, 114, 97, 114, 114, 59, 226, 159, 191, 101, 68, 68, 111, 116, 59, 226, 169, 183, 101, 68, 111, 116, 59, 226, 137, 145, 101, 97, 99, 117, 116, 101, 195, 169, 101, 97, 99, 117, 116, 101, 59, 195, 169, 101, 97, 115, 116, 101, 114, 59, 226, 169, 174, 101, 99, 97, 114, 111, 110, 59, 196, 155, 101, 99, 105, 114, 59, 226, 137, 150, 101, 99, 105, 114, 99, 195, 170, 101, 99, 105, 114, 99, 59, 195, 170, 101, 99, 111, 108, 111, 110, 59, 226, 137, 149, 101, 99, 121, 59, 209, 141, 101, 100, 111, 116, 59, 196, 151, 101, 101, 59, 226, 133, 135, 101, 102, 68, 111, 116, 59, 226, 137, 146, 101, 102, 114, 59, 240, 157, 148, 162, 101, 103, 59, 226, 170, 154, 101, 103, 114, 97, 118, 101, 195, 168, 101, 103, 114, 97, 118, 101, 59, 195, 168, 101, 103, 115, 59, 226, 170, 150, 101, 103, 115, 100, 111, 116, 59, 226, 170, 152, 101, 108, 59, 226, 170, 153, 101, 108, 105, 110, 116, 101, 114, 115, 59, 226, 143, 167, 101, 108, 108, 59, 226, 132, 147, 101, 108, 115, 59, 226, 170, 149, 101, 108, 115, 100, 111, 116, 59, 226, 170, 151, 101, 109, 97, 99, 114, 59, 196, 147, 101, 109, 112, 116, 121, 59, 226, 136, 133, 101, 109, 112, 116, 121, 115, 101, 116, 59, 226, 136, 133, 101, 109, 112, 116, 121, 118, 59, 226, 136, 133, 101, 109, 115, 112, 49, 51, 59, 226, 128, 132, 101, 109, 115, 112, 49, 52, 59, 226, 128, 133, 101, 109, 115, 112, 59, 226, 128, 131, 101, 110, 103, 59, 197, 139, 101, 110, 115, 112, 59, 226, 128, 130, 101, 111, 103, 111, 110, 59, 196, 153, 101, 111, 112, 102, 59, 240, 157, 149, 150, 101, 112, 97, 114, 59, 226, 139, 149, 101, 112, 97, 114, 115, 108, 59, 226, 167, 163, 101, 112, 108, 117, 115, 59, 226, 169, 177, 101, 112, 115, 105, 59, 206, 181, 101, 112, 115, 105, 108, 111, 110, 59, 206, 181, 101, 112, 115, 105, 118, 59, 207, 181, 101, 113, 99, 105, 114, 99, 59, 226, 137, 150, 101, 113, 99, 111, 108, 111, 110, 59, 226, 137, 149, 101, 113, 115, 105, 109, 59, 226, 137, 130, 101, 113, 115, 108, 97, 110, 116, 103, 116, 114, 59, 226, 170, 150, 101, 113, 115, 108, 97, 110, 116, 108, 101, 115, 115, 59, 226, 170, 149, 101, 113, 117, 97, 108, 115, 59, 61, 101, 113, 117, 101, 115, 116, 59, 226, 137, 159, 101, 113, 117, 105, 118, 59, 226, 137, 161, 101, 113, 117, 105, 118, 68, 68, 59, 226, 169, 184, 101, 113, 118, 112, 97, 114, 115, 108, 59, 226, 167, 165, 101, 114, 68, 111, 116, 59, 226, 137, 147, 101, 114, 97, 114, 114, 59, 226, 165, 177, 101, 115, 99, 114, 59, 226, 132, 175, 101, 115, 100, 111, 116, 59, 226, 137, 144, 101, 115, 105, 109, 59, 226, 137, 130, 101, 116, 97, 59, 206, 183, 101, 116, 104, 195, 176, 101, 116, 104, 59, 195, 176, 101, 117, 109, 108, 195, 171, 101, 117, 109, 108, 59, 195, 171, 101, 117, 114, 111, 59, 226, 130, 172, 101, 120, 99, 108, 59, 33, 101, 120, 105, 115, 116, 59, 226, 136, 131, 101, 120, 112, 101, 99, 116, 97, 116, 105, 111, 110, 59, 226, 132, 176, 101, 120, 112, 111, 110, 101, 110, 116, 105, 97, 108, 101, 59, 226, 133, 135, 102, 97, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 226, 137, 146, 102, 99, 121, 59, 209, 132, 102, 101, 109, 97, 108, 101, 59, 226, 153, 128, 102, 102, 105, 108, 105, 103, 59, 239, 172, 131, 102, 102, 108, 105, 103, 59, 239, 172, 128, 102, 102, 108, 108, 105, 103, 59, 239, 172, 132, 102, 102, 114, 59, 240, 157, 148, 163, 102, 105, 108, 105, 103, 59, 239, 172, 129, 102, 106, 108, 105, 103, 59, 102, 106, 102, 108, 97, 116, 59, 226, 153, 173, 102, 108, 108, 105, 103, 59, 239, 172, 130, 102, 108, 116, 110, 115, 59, 226, 150, 177, 102, 110, 111, 102, 59, 198, 146, 102, 111, 112, 102, 59, 240, 157, 149, 151, 102, 111, 114, 97, 108, 108, 59, 226, 136, 128, 102, 111, 114, 107, 59, 226, 139, 148, 102, 111, 114, 107, 118, 59, 226, 171, 153, 102, 112, 97, 114, 116, 105, 110, 116, 59, 226, 168, 141, 102, 114, 97, 99, 49, 50, 194, 189, 102, 114, 97, 99, 49, 50, 59, 194, 189, 102, 114, 97, 99, 49, 51, 59, 226, 133, 147, 102, 114, 97, 99, 49, 52, 194, 188, 102, 114, 97, 99, 49, 52, 59, 194, 188, 102, 114, 97, 99, 49, 53, 59, 226, 133, 149, 102, 114, 97, 99, 49, 54, 59, 226, 133, 153, 102, 114, 97, 99, 49, 56, 59, 226, 133, 155, 102, 114, 97, 99, 50, 51, 59, 226, 133, 148, 102, 114, 97, 99, 50, 53, 59, 226, 133, 150, 102, 114, 97, 99, 51, 52, 194, 190, 102, 114, 97, 99, 51, 52, 59, 194, 190, 102, 114, 97, 99, 51, 53, 59, 226, 133, 151, 102, 114, 97, 99, 51, 56, 59, 226, 133, 156, 102, 114, 97, 99, 52, 53, 59, 226, 133, 152, 102, 114, 97, 99, 53, 54, 59, 226, 133, 154, 102, 114, 97, 99, 53, 56, 59, 226, 133, 157, 102, 114, 97, 99, 55, 56, 59, 226, 133, 158, 102, 114, 97, 115, 108, 59, 226, 129, 132, 102, 114, 111, 119, 110, 59, 226, 140, 162, 102, 115, 99, 114, 59, 240, 157, 146, 187, 103, 69, 59, 226, 137, 167, 103, 69, 108, 59, 226, 170, 140, 103, 97, 99, 117, 116, 101, 59, 199, 181, 103, 97, 109, 109, 97, 59, 206, 179, 103, 97, 109, 109, 97, 100, 59, 207, 157, 103, 97, 112, 59, 226, 170, 134, 103, 98, 114, 101, 118, 101, 59, 196, 159, 103, 99, 105, 114, 99, 59, 196, 157, 103, 99, 121, 59, 208, 179, 103, 100, 111, 116, 59, 196, 161, 103, 101, 59, 226, 137, 165, 103, 101, 108, 59, 226, 139, 155, 103, 101, 113, 59, 226, 137, 165, 103, 101, 113, 113, 59, 226, 137, 167, 103, 101, 113, 115, 108, 97, 110, 116, 59, 226, 169, 190, 103, 101, 115, 59, 226, 169, 190, 103, 101, 115, 99, 99, 59, 226, 170, 169, 103, 101, 115, 100, 111, 116, 59, 226, 170, 128, 103, 101, 115, 100, 111, 116, 111, 59, 226, 170, 130, 103, 101, 115, 100, 111, 116, 111, 108, 59, 226, 170, 132, 103, 101, 115, 108, 59, 226, 139, 155, 239, 184, 128, 103, 101, 115, 108, 101, 115, 59, 226, 170, 148, 103, 102, 114, 59, 240, 157, 148, 164, 103, 103, 59, 226, 137, 171, 103, 103, 103, 59, 226, 139, 153, 103, 105, 109, 101, 108, 59, 226, 132, 183, 103, 106, 99, 121, 59, 209, 147, 103, 108, 59, 226, 137, 183, 103, 108, 69, 59, 226, 170, 146, 103, 108, 97, 59, 226, 170, 165, 103, 108, 106, 59, 226, 170, 164, 103, 110, 69, 59, 226, 137, 169, 103, 110, 97, 112, 59, 226, 170, 138, 103, 110, 97, 112, 112, 114, 111, 120, 59, 226, 170, 138, 103, 110, 101, 59, 226, 170, 136, 103, 110, 101, 113, 59, 226, 170, 136, 103, 110, 101, 113, 113, 59, 226, 137, 169, 103, 110, 115, 105, 109, 59, 226, 139, 167, 103, 111, 112, 102, 59, 240, 157, 149, 152, 103, 114, 97, 118, 101, 59, 96, 103, 115, 99, 114, 59, 226, 132, 138, 103, 115, 105, 109, 59, 226, 137, 179, 103, 115, 105, 109, 101, 59, 226, 170, 142, 103, 115, 105, 109, 108, 59, 226, 170, 144, 103, 116, 62, 103, 116, 59, 62, 103, 116, 99, 99, 59, 226, 170, 167, 103, 116, 99, 105, 114, 59, 226, 169, 186, 103, 116, 100, 111, 116, 59, 226, 139, 151, 103, 116, 108, 80, 97, 114, 59, 226, 166, 149, 103, 116, 113, 117, 101, 115, 116, 59, 226, 169, 188, 103, 116, 114, 97, 112, 112, 114, 111, 120, 59, 226, 170, 134, 103, 116, 114, 97, 114, 114, 59, 226, 165, 184, 103, 116, 114, 100, 111, 116, 59, 226, 139, 151, 103, 116, 114, 101, 113, 108, 101, 115, 115, 59, 226, 139, 155, 103, 116, 114, 101, 113, 113, 108, 101, 115, 115, 59, 226, 170, 140, 103, 116, 114, 108, 101, 115, 115, 59, 226, 137, 183, 103, 116, 114, 115, 105, 109, 59, 226, 137, 179, 103, 118, 101, 114, 116, 110, 101, 113, 113, 59, 226, 137, 169, 239, 184, 128, 103, 118, 110, 69, 59, 226, 137, 169, 239, 184, 128, 104, 65, 114, 114, 59, 226, 135, 148, 104, 97, 105, 114, 115, 112, 59, 226, 128, 138, 104, 97, 108, 102, 59, 194, 189, 104, 97, 109, 105, 108, 116, 59, 226, 132, 139, 104, 97, 114, 100, 99, 121, 59, 209, 138, 104, 97, 114, 114, 59, 226, 134, 148, 104, 97, 114, 114, 99, 105, 114, 59, 226, 165, 136, 104, 97, 114, 114, 119, 59, 226, 134, 173, 104, 98, 97, 114, 59, 226, 132, 143, 104, 99, 105, 114, 99, 59, 196, 165, 104, 101, 97, 114, 116, 115, 59, 226, 153, 165, 104, 101, 97, 114, 116, 115, 117, 105, 116, 59, 226, 153, 165, 104, 101, 108, 108, 105, 112, 59, 226, 128, 166, 104, 101, 114, 99, 111, 110, 59, 226, 138, 185, 104, 102, 114, 59, 240, 157, 148, 165, 104, 107, 115, 101, 97, 114, 111, 119, 59, 226, 164, 165, 104, 107, 115, 119, 97, 114, 111, 119, 59, 226, 164, 166, 104, 111, 97, 114, 114, 59, 226, 135, 191, 104, 111, 109, 116, 104, 116, 59, 226, 136, 187, 104, 111, 111, 107, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 134, 169, 104, 111, 111, 107, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 134, 170, 104, 111, 112, 102, 59, 240, 157, 149, 153, 104, 111, 114, 98, 97, 114, 59, 226, 128, 149, 104, 115, 99, 114, 59, 240, 157, 146, 189, 104, 115, 108, 97, 115, 104, 59, 226, 132, 143, 104, 115, 116, 114, 111, 107, 59, 196, 167, 104, 121, 98, 117, 108, 108, 59, 226, 129, 131, 104, 121, 112, 104, 101, 110, 59, 226, 128, 144, 105, 97, 99, 117, 116, 101, 195, 173, 105, 97, 99, 117, 116, 101, 59, 195, 173, 105, 99, 59, 226, 129, 163, 105, 99, 105, 114, 99, 195, 174, 105, 99, 105, 114, 99, 59, 195, 174, 105, 99, 121, 59, 208, 184, 105, 101, 99, 121, 59, 208, 181, 105, 101, 120, 99, 108, 194, 161, 105, 101, 120, 99, 108, 59, 194, 161, 105, 102, 102, 59, 226, 135, 148, 105, 102, 114, 59, 240, 157, 148, 166, 105, 103, 114, 97, 118, 101, 195, 172, 105, 103, 114, 97, 118, 101, 59, 195, 172, 105, 105, 59, 226, 133, 136, 105, 105, 105, 105, 110, 116, 59, 226, 168, 140, 105, 105, 105, 110, 116, 59, 226, 136, 173, 105, 105, 110, 102, 105, 110, 59, 226, 167, 156, 105, 105, 111, 116, 97, 59, 226, 132, 169, 105, 106, 108, 105, 103, 59, 196, 179, 105, 109, 97, 99, 114, 59, 196, 171, 105, 109, 97, 103, 101, 59, 226, 132, 145, 105, 109, 97, 103, 108, 105, 110, 101, 59, 226, 132, 144, 105, 109, 97, 103, 112, 97, 114, 116, 59, 226, 132, 145, 105, 109, 97, 116, 104, 59, 196, 177, 105, 109, 111, 102, 59, 226, 138, 183, 105, 109, 112, 101, 100, 59, 198, 181, 105, 110, 59, 226, 136, 136, 105, 110, 99, 97, 114, 101, 59, 226, 132, 133, 105, 110, 102, 105, 110, 59, 226, 136, 158, 105, 110, 102, 105, 110, 116, 105, 101, 59, 226, 167, 157, 105, 110, 111, 100, 111, 116, 59, 196, 177, 105, 110, 116, 59, 226, 136, 171, 105, 110, 116, 99, 97, 108, 59, 226, 138, 186, 105, 110, 116, 101, 103, 101, 114, 115, 59, 226, 132, 164, 105, 110, 116, 101, 114, 99, 97, 108, 59, 226, 138, 186, 105, 110, 116, 108, 97, 114, 104, 107, 59, 226, 168, 151, 105, 110, 116, 112, 114, 111, 100, 59, 226, 168, 188, 105, 111, 99, 121, 59, 209, 145, 105, 111, 103, 111, 110, 59, 196, 175, 105, 111, 112, 102, 59, 240, 157, 149, 154, 105, 111, 116, 97, 59, 206, 185, 105, 112, 114, 111, 100, 59, 226, 168, 188, 105, 113, 117, 101, 115, 116, 194, 191, 105, 113, 117, 101, 115, 116, 59, 194, 191, 105, 115, 99, 114, 59, 240, 157, 146, 190, 105, 115, 105, 110, 59, 226, 136, 136, 105, 115, 105, 110, 69, 59, 226, 139, 185, 105, 115, 105, 110, 100, 111, 116, 59, 226, 139, 181, 105, 115, 105, 110, 115, 59, 226, 139, 180, 105, 115, 105, 110, 115, 118, 59, 226, 139, 179, 105, 115, 105, 110, 118, 59, 226, 136, 136, 105, 116, 59, 226, 129, 162, 105, 116, 105, 108, 100, 101, 59, 196, 169, 105, 117, 107, 99, 121, 59, 209, 150, 105, 117, 109, 108, 195, 175, 105, 117, 109, 108, 59, 195, 175, 106, 99, 105, 114, 99, 59, 196, 181, 106, 99, 121, 59, 208, 185, 106, 102, 114, 59, 240, 157, 148, 167, 106, 109, 97, 116, 104, 59, 200, 183, 106, 111, 112, 102, 59, 240, 157, 149, 155, 106, 115, 99, 114, 59, 240, 157, 146, 191, 106, 115, 101, 114, 99, 121, 59, 209, 152, 106, 117, 107, 99, 121, 59, 209, 148, 107, 97, 112, 112, 97, 59, 206, 186, 107, 97, 112, 112, 97, 118, 59, 207, 176, 107, 99, 101, 100, 105, 108, 59, 196, 183, 107, 99, 121, 59, 208, 186, 107, 102, 114, 59, 240, 157, 148, 168, 107, 103, 114, 101, 101, 110, 59, 196, 184, 107, 104, 99, 121, 59, 209, 133, 107, 106, 99, 121, 59, 209, 156, 107, 111, 112, 102, 59, 240, 157, 149, 156, 107, 115, 99, 114, 59, 240, 157, 147, 128, 108, 65, 97, 114, 114, 59, 226, 135, 154, 108, 65, 114, 114, 59, 226, 135, 144, 108, 65, 116, 97, 105, 108, 59, 226, 164, 155, 108, 66, 97, 114, 114, 59, 226, 164, 142, 108, 69, 59, 226, 137, 166, 108, 69, 103, 59, 226, 170, 139, 108, 72, 97, 114, 59, 226, 165, 162, 108, 97, 99, 117, 116, 101, 59, 196, 186, 108, 97, 101, 109, 112, 116, 121, 118, 59, 226, 166, 180, 108, 97, 103, 114, 97, 110, 59, 226, 132, 146, 108, 97, 109, 98, 100, 97, 59, 206, 187, 108, 97, 110, 103, 59, 226, 159, 168, 108, 97, 110, 103, 100, 59, 226, 166, 145, 108, 97, 110, 103, 108, 101, 59, 226, 159, 168, 108, 97, 112, 59, 226, 170, 133, 108, 97, 113, 117, 111, 194, 171, 108, 97, 113, 117, 111, 59, 194, 171, 108, 97, 114, 114, 59, 226, 134, 144, 108, 97, 114, 114, 98, 59, 226, 135, 164, 108, 97, 114, 114, 98, 102, 115, 59, 226, 164, 159, 108, 97, 114, 114, 102, 115, 59, 226, 164, 157, 108, 97, 114, 114, 104, 107, 59, 226, 134, 169, 108, 97, 114, 114, 108, 112, 59, 226, 134, 171, 108, 97, 114, 114, 112, 108, 59, 226, 164, 185, 108, 97, 114, 114, 115, 105, 109, 59, 226, 165, 179, 108, 97, 114, 114, 116, 108, 59, 226, 134, 162, 108, 97, 116, 59, 226, 170, 171, 108, 97, 116, 97, 105, 108, 59, 226, 164, 153, 108, 97, 116, 101, 59, 226, 170, 173, 108, 97, 116, 101, 115, 59, 226, 170, 173, 239, 184, 128, 108, 98, 97, 114, 114, 59, 226, 164, 140, 108, 98, 98, 114, 107, 59, 226, 157, 178, 108, 98, 114, 97, 99, 101, 59, 123, 108, 98, 114, 97, 99, 107, 59, 91, 108, 98, 114, 107, 101, 59, 226, 166, 139, 108, 98, 114, 107, 115, 108, 100, 59, 226, 166, 143, 108, 98, 114, 107, 115, 108, 117, 59, 226, 166, 141, 108, 99, 97, 114, 111, 110, 59, 196, 190, 108, 99, 101, 100, 105, 108, 59, 196, 188, 108, 99, 101, 105, 108, 59, 226, 140, 136, 108, 99, 117, 98, 59, 123, 108, 99, 121, 59, 208, 187, 108, 100, 99, 97, 59, 226, 164, 182, 108, 100, 113, 117, 111, 59, 226, 128, 156, 108, 100, 113, 117, 111, 114, 59, 226, 128, 158, 108, 100, 114, 100, 104, 97, 114, 59, 226, 165, 167, 108, 100, 114, 117, 115, 104, 97, 114, 59, 226, 165, 139, 108, 100, 115, 104, 59, 226, 134, 178, 108, 101, 59, 226, 137, 164, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 134, 144, 108, 101, 102, 116, 97, 114, 114, 111, 119, 116, 97, 105, 108, 59, 226, 134, 162, 108, 101, 102, 116, 104, 97, 114, 112, 111, 111, 110, 100, 111, 119, 110, 59, 226, 134, 189, 108, 101, 102, 116, 104, 97, 114, 112, 111, 111, 110, 117, 112, 59, 226, 134, 188, 108, 101, 102, 116, 108, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 226, 135, 135, 108, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 134, 148, 108, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 226, 135, 134, 108, 101, 102, 116, 114, 105, 103, 104, 116, 104, 97, 114, 112, 111, 111, 110, 115, 59, 226, 135, 139, 108, 101, 102, 116, 114, 105, 103, 104, 116, 115, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 226, 134, 173, 108, 101, 102, 116, 116, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 226, 139, 139, 108, 101, 103, 59, 226, 139, 154, 108, 101, 113, 59, 226, 137, 164, 108, 101, 113, 113, 59, 226, 137, 166, 108, 101, 113, 115, 108, 97, 110, 116, 59, 226, 169, 189, 108, 101, 115, 59, 226, 169, 189, 108, 101, 115, 99, 99, 59, 226, 170, 168, 108, 101, 115, 100, 111, 116, 59, 226, 169, 191, 108, 101, 115, 100, 111, 116, 111, 59, 226, 170, 129, 108, 101, 115, 100, 111, 116, 111, 114, 59, 226, 170, 131, 108, 101, 115, 103, 59, 226, 139, 154, 239, 184, 128, 108, 101, 115, 103, 101, 115, 59, 226, 170, 147, 108, 101, 115, 115, 97, 112, 112, 114, 111, 120, 59, 226, 170, 133, 108, 101, 115, 115, 100, 111, 116, 59, 226, 139, 150, 108, 101, 115, 115, 101, 113, 103, 116, 114, 59, 226, 139, 154, 108, 101, 115, 115, 101, 113, 113, 103, 116, 114, 59, 226, 170, 139, 108, 101, 115, 115, 103, 116, 114, 59, 226, 137, 182, 108, 101, 115, 115, 115, 105, 109, 59, 226, 137, 178, 108, 102, 105, 115, 104, 116, 59, 226, 165, 188, 108, 102, 108, 111, 111, 114, 59, 226, 140, 138, 108, 102, 114, 59, 240, 157, 148, 169, 108, 103, 59, 226, 137, 182, 108, 103, 69, 59, 226, 170, 145, 108, 104, 97, 114, 100, 59, 226, 134, 189, 108, 104, 97, 114, 117, 59, 226, 134, 188, 108, 104, 97, 114, 117, 108, 59, 226, 165, 170, 108, 104, 98, 108, 107, 59, 226, 150, 132, 108, 106, 99, 121, 59, 209, 153, 108, 108, 59, 226, 137, 170, 108, 108, 97, 114, 114, 59, 226, 135, 135, 108, 108, 99, 111, 114, 110, 101, 114, 59, 226, 140, 158, 108, 108, 104, 97, 114, 100, 59, 226, 165, 171, 108, 108, 116, 114, 105, 59, 226, 151, 186, 108, 109, 105, 100, 111, 116, 59, 197, 128, 108, 109, 111, 117, 115, 116, 59, 226, 142, 176, 108, 109, 111, 117, 115, 116, 97, 99, 104, 101, 59, 226, 142, 176, 108, 110, 69, 59, 226, 137, 168, 108, 110, 97, 112, 59, 226, 170, 137, 108, 110, 97, 112, 112, 114, 111, 120, 59, 226, 170, 137, 108, 110, 101, 59, 226, 170, 135, 108, 110, 101, 113, 59, 226, 170, 135, 108, 110, 101, 113, 113, 59, 226, 137, 168, 108, 110, 115, 105, 109, 59, 226, 139, 166, 108, 111, 97, 110, 103, 59, 226, 159, 172, 108, 111, 97, 114, 114, 59, 226, 135, 189, 108, 111, 98, 114, 107, 59, 226, 159, 166, 108, 111, 110, 103, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 159, 181, 108, 111, 110, 103, 108, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 159, 183, 108, 111, 110, 103, 109, 97, 112, 115, 116, 111, 59, 226, 159, 188, 108, 111, 110, 103, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 159, 182, 108, 111, 111, 112, 97, 114, 114, 111, 119, 108, 101, 102, 116, 59, 226, 134, 171, 108, 111, 111, 112, 97, 114, 114, 111, 119, 114, 105, 103, 104, 116, 59, 226, 134, 172, 108, 111, 112, 97, 114, 59, 226, 166, 133, 108, 111, 112, 102, 59, 240, 157, 149, 157, 108, 111, 112, 108, 117, 115, 59, 226, 168, 173, 108, 111, 116, 105, 109, 101, 115, 59, 226, 168, 180, 108, 111, 119, 97, 115, 116, 59, 226, 136, 151, 108, 111, 119, 98, 97, 114, 59, 95, 108, 111, 122, 59, 226, 151, 138, 108, 111, 122, 101, 110, 103, 101, 59, 226, 151, 138, 108, 111, 122, 102, 59, 226, 167, 171, 108, 112, 97, 114, 59, 40, 108, 112, 97, 114, 108, 116, 59, 226, 166, 147, 108, 114, 97, 114, 114, 59, 226, 135, 134, 108, 114, 99, 111, 114, 110, 101, 114, 59, 226, 140, 159, 108, 114, 104, 97, 114, 59, 226, 135, 139, 108, 114, 104, 97, 114, 100, 59, 226, 165, 173, 108, 114, 109, 59, 226, 128, 142, 108, 114, 116, 114, 105, 59, 226, 138, 191, 108, 115, 97, 113, 117, 111, 59, 226, 128, 185, 108, 115, 99, 114, 59, 240, 157, 147, 129, 108, 115, 104, 59, 226, 134, 176, 108, 115, 105, 109, 59, 226, 137, 178, 108, 115, 105, 109, 101, 59, 226, 170, 141, 108, 115, 105, 109, 103, 59, 226, 170, 143, 108, 115, 113, 98, 59, 91, 108, 115, 113, 117, 111, 59, 226, 128, 152, 108, 115, 113, 117, 111, 114, 59, 226, 128, 154, 108, 115, 116, 114, 111, 107, 59, 197, 130, 108, 116, 60, 108, 116, 59, 60, 108, 116, 99, 99, 59, 226, 170, 166, 108, 116, 99, 105, 114, 59, 226, 169, 185, 108, 116, 100, 111, 116, 59, 226, 139, 150, 108, 116, 104, 114, 101, 101, 59, 226, 139, 139, 108, 116, 105, 109, 101, 115, 59, 226, 139, 137, 108, 116, 108, 97, 114, 114, 59, 226, 165, 182, 108, 116, 113, 117, 101, 115, 116, 59, 226, 169, 187, 108, 116, 114, 80, 97, 114, 59, 226, 166, 150, 108, 116, 114, 105, 59, 226, 151, 131, 108, 116, 114, 105, 101, 59, 226, 138, 180, 108, 116, 114, 105, 102, 59, 226, 151, 130, 108, 117, 114, 100, 115, 104, 97, 114, 59, 226, 165, 138, 108, 117, 114, 117, 104, 97, 114, 59, 226, 165, 166, 108, 118, 101, 114, 116, 110, 101, 113, 113, 59, 226, 137, 168, 239, 184, 128, 108, 118, 110, 69, 59, 226, 137, 168, 239, 184, 128, 109, 68, 68, 111, 116, 59, 226, 136, 186, 109, 97, 99, 114, 194, 175, 109, 97, 99, 114, 59, 194, 175, 109, 97, 108, 101, 59, 226, 153, 130, 109, 97, 108, 116, 59, 226, 156, 160, 109, 97, 108, 116, 101, 115, 101, 59, 226, 156, 160, 109, 97, 112, 59, 226, 134, 166, 109, 97, 112, 115, 116, 111, 59, 226, 134, 166, 109, 97, 112, 115, 116, 111, 100, 111, 119, 110, 59, 226, 134, 167, 109, 97, 112, 115, 116, 111, 108, 101, 102, 116, 59, 226, 134, 164, 109, 97, 112, 115, 116, 111, 117, 112, 59, 226, 134, 165, 109, 97, 114, 107, 101, 114, 59, 226, 150, 174, 109, 99, 111, 109, 109, 97, 59, 226, 168, 169, 109, 99, 121, 59, 208, 188, 109, 100, 97, 115, 104, 59, 226, 128, 148, 109, 101, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 59, 226, 136, 161, 109, 102, 114, 59, 240, 157, 148, 170, 109, 104, 111, 59, 226, 132, 167, 109, 105, 99, 114, 111, 194, 181, 109, 105, 99, 114, 111, 59, 194, 181, 109, 105, 100, 59, 226, 136, 163, 109, 105, 100, 97, 115, 116, 59, 42, 109, 105, 100, 99, 105, 114, 59, 226, 171, 176, 109, 105, 100, 100, 111, 116, 194, 183, 109, 105, 100, 100, 111, 116, 59, 194, 183, 109, 105, 110, 117, 115, 59, 226, 136, 146, 109, 105, 110, 117, 115, 98, 59, 226, 138, 159, 109, 105, 110, 117, 115, 100, 59, 226, 136, 184, 109, 105, 110, 117, 115, 100, 117, 59, 226, 168, 170, 109, 108, 99, 112, 59, 226, 171, 155, 109, 108, 100, 114, 59, 226, 128, 166, 109, 110, 112, 108, 117, 115, 59, 226, 136, 147, 109, 111, 100, 101, 108, 115, 59, 226, 138, 167, 109, 111, 112, 102, 59, 240, 157, 149, 158, 109, 112, 59, 226, 136, 147, 109, 115, 99, 114, 59, 240, 157, 147, 130, 109, 115, 116, 112, 111, 115, 59, 226, 136, 190, 109, 117, 59, 206, 188, 109, 117, 108, 116, 105, 109, 97, 112, 59, 226, 138, 184, 109, 117, 109, 97, 112, 59, 226, 138, 184, 110, 71, 103, 59, 226, 139, 153, 204, 184, 110, 71, 116, 59, 226, 137, 171, 226, 131, 146, 110, 71, 116, 118, 59, 226, 137, 171, 204, 184, 110, 76, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 135, 141, 110, 76, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 135, 142, 110, 76, 108, 59, 226, 139, 152, 204, 184, 110, 76, 116, 59, 226, 137, 170, 226, 131, 146, 110, 76, 116, 118, 59, 226, 137, 170, 204, 184, 110, 82, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 135, 143, 110, 86, 68, 97, 115, 104, 59, 226, 138, 175, 110, 86, 100, 97, 115, 104, 59, 226, 138, 174, 110, 97, 98, 108, 97, 59, 226, 136, 135, 110, 97, 99, 117, 116, 101, 59, 197, 132, 110, 97, 110, 103, 59, 226, 136, 160, 226, 131, 146, 110, 97, 112, 59, 226, 137, 137, 110, 97, 112, 69, 59, 226, 169, 176, 204, 184, 110, 97, 112, 105, 100, 59, 226, 137, 139, 204, 184, 110, 97, 112, 111, 115, 59, 197, 137, 110, 97, 112, 112, 114, 111, 120, 59, 226, 137, 137, 110, 97, 116, 117, 114, 59, 226, 153, 174, 110, 97, 116, 117, 114, 97, 108, 59, 226, 153, 174, 110, 97, 116, 117, 114, 97, 108, 115, 59, 226, 132, 149, 110, 98, 115, 112, 194, 160, 110, 98, 115, 112, 59, 194, 160, 110, 98, 117, 109, 112, 59, 226, 137, 142, 204, 184, 110, 98, 117, 109, 112, 101, 59, 226, 137, 143, 204, 184, 110, 99, 97, 112, 59, 226, 169, 131, 110, 99, 97, 114, 111, 110, 59, 197, 136, 110, 99, 101, 100, 105, 108, 59, 197, 134, 110, 99, 111, 110, 103, 59, 226, 137, 135, 110, 99, 111, 110, 103, 100, 111, 116, 59, 226, 169, 173, 204, 184, 110, 99, 117, 112, 59, 226, 169, 130, 110, 99, 121, 59, 208, 189, 110, 100, 97, 115, 104, 59, 226, 128, 147, 110, 101, 59, 226, 137, 160, 110, 101, 65, 114, 114, 59, 226, 135, 151, 110, 101, 97, 114, 104, 107, 59, 226, 164, 164, 110, 101, 97, 114, 114, 59, 226, 134, 151, 110, 101, 97, 114, 114, 111, 119, 59, 226, 134, 151, 110, 101, 100, 111, 116, 59, 226, 137, 144, 204, 184, 110, 101, 113, 117, 105, 118, 59, 226, 137, 162, 110, 101, 115, 101, 97, 114, 59, 226, 164, 168, 110, 101, 115, 105, 109, 59, 226, 137, 130, 204, 184, 110, 101, 120, 105, 115, 116, 59, 226, 136, 132, 110, 101, 120, 105, 115, 116, 115, 59, 226, 136, 132, 110, 102, 114, 59, 240, 157, 148, 171, 110, 103, 69, 59, 226, 137, 167, 204, 184, 110, 103, 101, 59, 226, 137, 177, 110, 103, 101, 113, 59, 226, 137, 177, 110, 103, 101, 113, 113, 59, 226, 137, 167, 204, 184, 110, 103, 101, 113, 115, 108, 97, 110, 116, 59, 226, 169, 190, 204, 184, 110, 103, 101, 115, 59, 226, 169, 190, 204, 184, 110, 103, 115, 105, 109, 59, 226, 137, 181, 110, 103, 116, 59, 226, 137, 175, 110, 103, 116, 114, 59, 226, 137, 175, 110, 104, 65, 114, 114, 59, 226, 135, 142, 110, 104, 97, 114, 114, 59, 226, 134, 174, 110, 104, 112, 97, 114, 59, 226, 171, 178, 110, 105, 59, 226, 136, 139, 110, 105, 115, 59, 226, 139, 188, 110, 105, 115, 100, 59, 226, 139, 186, 110, 105, 118, 59, 226, 136, 139, 110, 106, 99, 121, 59, 209, 154, 110, 108, 65, 114, 114, 59, 226, 135, 141, 110, 108, 69, 59, 226, 137, 166, 204, 184, 110, 108, 97, 114, 114, 59, 226, 134, 154, 110, 108, 100, 114, 59, 226, 128, 165, 110, 108, 101, 59, 226, 137, 176, 110, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 134, 154, 110, 108, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 134, 174, 110, 108, 101, 113, 59, 226, 137, 176, 110, 108, 101, 113, 113, 59, 226, 137, 166, 204, 184, 110, 108, 101, 113, 115, 108, 97, 110, 116, 59, 226, 169, 189, 204, 184, 110, 108, 101, 115, 59, 226, 169, 189, 204, 184, 110, 108, 101, 115, 115, 59, 226, 137, 174, 110, 108, 115, 105, 109, 59, 226, 137, 180, 110, 108, 116, 59, 226, 137, 174, 110, 108, 116, 114, 105, 59, 226, 139, 170, 110, 108, 116, 114, 105, 101, 59, 226, 139, 172, 110, 109, 105, 100, 59, 226, 136, 164, 110, 111, 112, 102, 59, 240, 157, 149, 159, 110, 111, 116, 194, 172, 110, 111, 116, 59, 194, 172, 110, 111, 116, 105, 110, 59, 226, 136, 137, 110, 111, 116, 105, 110, 69, 59, 226, 139, 185, 204, 184, 110, 111, 116, 105, 110, 100, 111, 116, 59, 226, 139, 181, 204, 184, 110, 111, 116, 105, 110, 118, 97, 59, 226, 136, 137, 110, 111, 116, 105, 110, 118, 98, 59, 226, 139, 183, 110, 111, 116, 105, 110, 118, 99, 59, 226, 139, 182, 110, 111, 116, 110, 105, 59, 226, 136, 140, 110, 111, 116, 110, 105, 118, 97, 59, 226, 136, 140, 110, 111, 116, 110, 105, 118, 98, 59, 226, 139, 190, 110, 111, 116, 110, 105, 118, 99, 59, 226, 139, 189, 110, 112, 97, 114, 59, 226, 136, 166, 110, 112, 97, 114, 97, 108, 108, 101, 108, 59, 226, 136, 166, 110, 112, 97, 114, 115, 108, 59, 226, 171, 189, 226, 131, 165, 110, 112, 97, 114, 116, 59, 226, 136, 130, 204, 184, 110, 112, 111, 108, 105, 110, 116, 59, 226, 168, 148, 110, 112, 114, 59, 226, 138, 128, 110, 112, 114, 99, 117, 101, 59, 226, 139, 160, 110, 112, 114, 101, 59, 226, 170, 175, 204, 184, 110, 112, 114, 101, 99, 59, 226, 138, 128, 110, 112, 114, 101, 99, 101, 113, 59, 226, 170, 175, 204, 184, 110, 114, 65, 114, 114, 59, 226, 135, 143, 110, 114, 97, 114, 114, 59, 226, 134, 155, 110, 114, 97, 114, 114, 99, 59, 226, 164, 179, 204, 184, 110, 114, 97, 114, 114, 119, 59, 226, 134, 157, 204, 184, 110, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 134, 155, 110, 114, 116, 114, 105, 59, 226, 139, 171, 110, 114, 116, 114, 105, 101, 59, 226, 139, 173, 110, 115, 99, 59, 226, 138, 129, 110, 115, 99, 99, 117, 101, 59, 226, 139, 161, 110, 115, 99, 101, 59, 226, 170, 176, 204, 184, 110, 115, 99, 114, 59, 240, 157, 147, 131, 110, 115, 104, 111, 114, 116, 109, 105, 100, 59, 226, 136, 164, 110, 115, 104, 111, 114, 116, 112, 97, 114, 97, 108, 108, 101, 108, 59, 226, 136, 166, 110, 115, 105, 109, 59, 226, 137, 129, 110, 115, 105, 109, 101, 59, 226, 137, 132, 110, 115, 105, 109, 101, 113, 59, 226, 137, 132, 110, 115, 109, 105, 100, 59, 226, 136, 164, 110, 115, 112, 97, 114, 59, 226, 136, 166, 110, 115, 113, 115, 117, 98, 101, 59, 226, 139, 162, 110, 115, 113, 115, 117, 112, 101, 59, 226, 139, 163, 110, 115, 117, 98, 59, 226, 138, 132, 110, 115, 117, 98, 69, 59, 226, 171, 133, 204, 184, 110, 115, 117, 98, 101, 59, 226, 138, 136, 110, 115, 117, 98, 115, 101, 116, 59, 226, 138, 130, 226, 131, 146, 110, 115, 117, 98, 115, 101, 116, 101, 113, 59, 226, 138, 136, 110, 115, 117, 98, 115, 101, 116, 101, 113, 113, 59, 226, 171, 133, 204, 184, 110, 115, 117, 99, 99, 59, 226, 138, 129, 110, 115, 117, 99, 99, 101, 113, 59, 226, 170, 176, 204, 184, 110, 115, 117, 112, 59, 226, 138, 133, 110, 115, 117, 112, 69, 59, 226, 171, 134, 204, 184, 110, 115, 117, 112, 101, 59, 226, 138, 137, 110, 115, 117, 112, 115, 101, 116, 59, 226, 138, 131, 226, 131, 146, 110, 115, 117, 112, 115, 101, 116, 101, 113, 59, 226, 138, 137, 110, 115, 117, 112, 115, 101, 116, 101, 113, 113, 59, 226, 171, 134, 204, 184, 110, 116, 103, 108, 59, 226, 137, 185, 110, 116, 105, 108, 100, 101, 195, 177, 110, 116, 105, 108, 100, 101, 59, 195, 177, 110, 116, 108, 103, 59, 226, 137, 184, 110, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 59, 226, 139, 170, 110, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 101, 113, 59, 226, 139, 172, 110, 116, 114, 105, 97, 110, 103, 108, 101, 114, 105, 103, 104, 116, 59, 226, 139, 171, 110, 116, 114, 105, 97, 110, 103, 108, 101, 114, 105, 103, 104, 116, 101, 113, 59, 226, 139, 173, 110, 117, 59, 206, 189, 110, 117, 109, 59, 35, 110, 117, 109, 101, 114, 111, 59, 226, 132, 150, 110, 117, 109, 115, 112, 59, 226, 128, 135, 110, 118, 68, 97, 115, 104, 59, 226, 138, 173, 110, 118, 72, 97, 114, 114, 59, 226, 164, 132, 110, 118, 97, 112, 59, 226, 137, 141, 226, 131, 146, 110, 118, 100, 97, 115, 104, 59, 226, 138, 172, 110, 118, 103, 101, 59, 226, 137, 165, 226, 131, 146, 110, 118, 103, 116, 59, 62, 226, 131, 146, 110, 118, 105, 110, 102, 105, 110, 59, 226, 167, 158, 110, 118, 108, 65, 114, 114, 59, 226, 164, 130, 110, 118, 108, 101, 59, 226, 137, 164, 226, 131, 146, 110, 118, 108, 116, 59, 60, 226, 131, 146, 110, 118, 108, 116, 114, 105, 101, 59, 226, 138, 180, 226, 131, 146, 110, 118, 114, 65, 114, 114, 59, 226, 164, 131, 110, 118, 114, 116, 114, 105, 101, 59, 226, 138, 181, 226, 131, 146, 110, 118, 115, 105, 109, 59, 226, 136, 188, 226, 131, 146, 110, 119, 65, 114, 114, 59, 226, 135, 150, 110, 119, 97, 114, 104, 107, 59, 226, 164, 163, 110, 119, 97, 114, 114, 59, 226, 134, 150, 110, 119, 97, 114, 114, 111, 119, 59, 226, 134, 150, 110, 119, 110, 101, 97, 114, 59, 226, 164, 167, 111, 83, 59, 226, 147, 136, 111, 97, 99, 117, 116, 101, 195, 179, 111, 97, 99, 117, 116, 101, 59, 195, 179, 111, 97, 115, 116, 59, 226, 138, 155, 111, 99, 105, 114, 59, 226, 138, 154, 111, 99, 105, 114, 99, 195, 180, 111, 99, 105, 114, 99, 59, 195, 180, 111, 99, 121, 59, 208, 190, 111, 100, 97, 115, 104, 59, 226, 138, 157, 111, 100, 98, 108, 97, 99, 59, 197, 145, 111, 100, 105, 118, 59, 226, 168, 184, 111, 100, 111, 116, 59, 226, 138, 153, 111, 100, 115, 111, 108, 100, 59, 226, 166, 188, 111, 101, 108, 105, 103, 59, 197, 147, 111, 102, 99, 105, 114, 59, 226, 166, 191, 111, 102, 114, 59, 240, 157, 148, 172, 111, 103, 111, 110, 59, 203, 155, 111, 103, 114, 97, 118, 101, 195, 178, 111, 103, 114, 97, 118, 101, 59, 195, 178, 111, 103, 116, 59, 226, 167, 129, 111, 104, 98, 97, 114, 59, 226, 166, 181, 111, 104, 109, 59, 206, 169, 111, 105, 110, 116, 59, 226, 136, 174, 111, 108, 97, 114, 114, 59, 226, 134, 186, 111, 108, 99, 105, 114, 59, 226, 166, 190, 111, 108, 99, 114, 111, 115, 115, 59, 226, 166, 187, 111, 108, 105, 110, 101, 59, 226, 128, 190, 111, 108, 116, 59, 226, 167, 128, 111, 109, 97, 99, 114, 59, 197, 141, 111, 109, 101, 103, 97, 59, 207, 137, 111, 109, 105, 99, 114, 111, 110, 59, 206, 191, 111, 109, 105, 100, 59, 226, 166, 182, 111, 109, 105, 110, 117, 115, 59, 226, 138, 150, 111, 111, 112, 102, 59, 240, 157, 149, 160, 111, 112, 97, 114, 59, 226, 166, 183, 111, 112, 101, 114, 112, 59, 226, 166, 185, 111, 112, 108, 117, 115, 59, 226, 138, 149, 111, 114, 59, 226, 136, 168, 111, 114, 97, 114, 114, 59, 226, 134, 187, 111, 114, 100, 59, 226, 169, 157, 111, 114, 100, 101, 114, 59, 226, 132, 180, 111, 114, 100, 101, 114, 111, 102, 59, 226, 132, 180, 111, 114, 100, 102, 194, 170, 111, 114, 100, 102, 59, 194, 170, 111, 114, 100, 109, 194, 186, 111, 114, 100, 109, 59, 194, 186, 111, 114, 105, 103, 111, 102, 59, 226, 138, 182, 111, 114, 111, 114, 59, 226, 169, 150, 111, 114, 115, 108, 111, 112, 101, 59, 226, 169, 151, 111, 114, 118, 59, 226, 169, 155, 111, 115, 99, 114, 59, 226, 132, 180, 111, 115, 108, 97, 115, 104, 195, 184, 111, 115, 108, 97, 115, 104, 59, 195, 184, 111, 115, 111, 108, 59, 226, 138, 152, 111, 116, 105, 108, 100, 101, 195, 181, 111, 116, 105, 108, 100, 101, 59, 195, 181, 111, 116, 105, 109, 101, 115, 59, 226, 138, 151, 111, 116, 105, 109, 101, 115, 97, 115, 59, 226, 168, 182, 111, 117, 109, 108, 195, 182, 111, 117, 109, 108, 59, 195, 182, 111, 118, 98, 97, 114, 59, 226, 140, 189, 112, 97, 114, 59, 226, 136, 165, 112, 97, 114, 97, 194, 182, 112, 97, 114, 97, 59, 194, 182, 112, 97, 114, 97, 108, 108, 101, 108, 59, 226, 136, 165, 112, 97, 114, 115, 105, 109, 59, 226, 171, 179, 112, 97, 114, 115, 108, 59, 226, 171, 189, 112, 97, 114, 116, 59, 226, 136, 130, 112, 99, 121, 59, 208, 191, 112, 101, 114, 99, 110, 116, 59, 37, 112, 101, 114, 105, 111, 100, 59, 46, 112, 101, 114, 109, 105, 108, 59, 226, 128, 176, 112, 101, 114, 112, 59, 226, 138, 165, 112, 101, 114, 116, 101, 110, 107, 59, 226, 128, 177, 112, 102, 114, 59, 240, 157, 148, 173, 112, 104, 105, 59, 207, 134, 112, 104, 105, 118, 59, 207, 149, 112, 104, 109, 109, 97, 116, 59, 226, 132, 179, 112, 104, 111, 110, 101, 59, 226, 152, 142, 112, 105, 59, 207, 128, 112, 105, 116, 99, 104, 102, 111, 114, 107, 59, 226, 139, 148, 112, 105, 118, 59, 207, 150, 112, 108, 97, 110, 99, 107, 59, 226, 132, 143, 112, 108, 97, 110, 99, 107, 104, 59, 226, 132, 142, 112, 108, 97, 110, 107, 118, 59, 226, 132, 143, 112, 108, 117, 115, 59, 43, 112, 108, 117, 115, 97, 99, 105, 114, 59, 226, 168, 163, 112, 108, 117, 115, 98, 59, 226, 138, 158, 112, 108, 117, 115, 99, 105, 114, 59, 226, 168, 162, 112, 108, 117, 115, 100, 111, 59, 226, 136, 148, 112, 108, 117, 115, 100, 117, 59, 226, 168, 165, 112, 108, 117, 115, 101, 59, 226, 169, 178, 112, 108, 117, 115, 109, 110, 194, 177, 112, 108, 117, 115, 109, 110, 59, 194, 177, 112, 108, 117, 115, 115, 105, 109, 59, 226, 168, 166, 112, 108, 117, 115, 116, 119, 111, 59, 226, 168, 167, 112, 109, 59, 194, 177, 112, 111, 105, 110, 116, 105, 110, 116, 59, 226, 168, 149, 112, 111, 112, 102, 59, 240, 157, 149, 161, 112, 111, 117, 110, 100, 194, 163, 112, 111, 117, 110, 100, 59, 194, 163, 112, 114, 59, 226, 137, 186, 112, 114, 69, 59, 226, 170, 179, 112, 114, 97, 112, 59, 226, 170, 183, 112, 114, 99, 117, 101, 59, 226, 137, 188, 112, 114, 101, 59, 226, 170, 175, 112, 114, 101, 99, 59, 226, 137, 186, 112, 114, 101, 99, 97, 112, 112, 114, 111, 120, 59, 226, 170, 183, 112, 114, 101, 99, 99, 117, 114, 108, 121, 101, 113, 59, 226, 137, 188, 112, 114, 101, 99, 101, 113, 59, 226, 170, 175, 112, 114, 101, 99, 110, 97, 112, 112, 114, 111, 120, 59, 226, 170, 185, 112, 114, 101, 99, 110, 101, 113, 113, 59, 226, 170, 181, 112, 114, 101, 99, 110, 115, 105, 109, 59, 226, 139, 168, 112, 114, 101, 99, 115, 105, 109, 59, 226, 137, 190, 112, 114, 105, 109, 101, 59, 226, 128, 178, 112, 114, 105, 109, 101, 115, 59, 226, 132, 153, 112, 114, 110, 69, 59, 226, 170, 181, 112, 114, 110, 97, 112, 59, 226, 170, 185, 112, 114, 110, 115, 105, 109, 59, 226, 139, 168, 112, 114, 111, 100, 59, 226, 136, 143, 112, 114, 111, 102, 97, 108, 97, 114, 59, 226, 140, 174, 112, 114, 111, 102, 108, 105, 110, 101, 59, 226, 140, 146, 112, 114, 111, 102, 115, 117, 114, 102, 59, 226, 140, 147, 112, 114, 111, 112, 59, 226, 136, 157, 112, 114, 111, 112, 116, 111, 59, 226, 136, 157, 112, 114, 115, 105, 109, 59, 226, 137, 190, 112, 114, 117, 114, 101, 108, 59, 226, 138, 176, 112, 115, 99, 114, 59, 240, 157, 147, 133, 112, 115, 105, 59, 207, 136, 112, 117, 110, 99, 115, 112, 59, 226, 128, 136, 113, 102, 114, 59, 240, 157, 148, 174, 113, 105, 110, 116, 59, 226, 168, 140, 113, 111, 112, 102, 59, 240, 157, 149, 162, 113, 112, 114, 105, 109, 101, 59, 226, 129, 151, 113, 115, 99, 114, 59, 240, 157, 147, 134, 113, 117, 97, 116, 101, 114, 110, 105, 111, 110, 115, 59, 226, 132, 141, 113, 117, 97, 116, 105, 110, 116, 59, 226, 168, 150, 113, 117, 101, 115, 116, 59, 63, 113, 117, 101, 115, 116, 101, 113, 59, 226, 137, 159, 113, 117, 111, 116, 34, 113, 117, 111, 116, 59, 34, 114, 65, 97, 114, 114, 59, 226, 135, 155, 114, 65, 114, 114, 59, 226, 135, 146, 114, 65, 116, 97, 105, 108, 59, 226, 164, 156, 114, 66, 97, 114, 114, 59, 226, 164, 143, 114, 72, 97, 114, 59, 226, 165, 164, 114, 97, 99, 101, 59, 226, 136, 189, 204, 177, 114, 97, 99, 117, 116, 101, 59, 197, 149, 114, 97, 100, 105, 99, 59, 226, 136, 154, 114, 97, 101, 109, 112, 116, 121, 118, 59, 226, 166, 179, 114, 97, 110, 103, 59, 226, 159, 169, 114, 97, 110, 103, 100, 59, 226, 166, 146, 114, 97, 110, 103, 101, 59, 226, 166, 165, 114, 97, 110, 103, 108, 101, 59, 226, 159, 169, 114, 97, 113, 117, 111, 194, 187, 114, 97, 113, 117, 111, 59, 194, 187, 114, 97, 114, 114, 59, 226, 134, 146, 114, 97, 114, 114, 97, 112, 59, 226, 165, 181, 114, 97, 114, 114, 98, 59, 226, 135, 165, 114, 97, 114, 114, 98, 102, 115, 59, 226, 164, 160, 114, 97, 114, 114, 99, 59, 226, 164, 179, 114, 97, 114, 114, 102, 115, 59, 226, 164, 158, 114, 97, 114, 114, 104, 107, 59, 226, 134, 170, 114, 97, 114, 114, 108, 112, 59, 226, 134, 172, 114, 97, 114, 114, 112, 108, 59, 226, 165, 133, 114, 97, 114, 114, 115, 105, 109, 59, 226, 165, 180, 114, 97, 114, 114, 116, 108, 59, 226, 134, 163, 114, 97, 114, 114, 119, 59, 226, 134, 157, 114, 97, 116, 97, 105, 108, 59, 226, 164, 154, 114, 97, 116, 105, 111, 59, 226, 136, 182, 114, 97, 116, 105, 111, 110, 97, 108, 115, 59, 226, 132, 154, 114, 98, 97, 114, 114, 59, 226, 164, 141, 114, 98, 98, 114, 107, 59, 226, 157, 179, 114, 98, 114, 97, 99, 101, 59, 125, 114, 98, 114, 97, 99, 107, 59, 93, 114, 98, 114, 107, 101, 59, 226, 166, 140, 114, 98, 114, 107, 115, 108, 100, 59, 226, 166, 142, 114, 98, 114, 107, 115, 108, 117, 59, 226, 166, 144, 114, 99, 97, 114, 111, 110, 59, 197, 153, 114, 99, 101, 100, 105, 108, 59, 197, 151, 114, 99, 101, 105, 108, 59, 226, 140, 137, 114, 99, 117, 98, 59, 125, 114, 99, 121, 59, 209, 128, 114, 100, 99, 97, 59, 226, 164, 183, 114, 100, 108, 100, 104, 97, 114, 59, 226, 165, 169, 114, 100, 113, 117, 111, 59, 226, 128, 157, 114, 100, 113, 117, 111, 114, 59, 226, 128, 157, 114, 100, 115, 104, 59, 226, 134, 179, 114, 101, 97, 108, 59, 226, 132, 156, 114, 101, 97, 108, 105, 110, 101, 59, 226, 132, 155, 114, 101, 97, 108, 112, 97, 114, 116, 59, 226, 132, 156, 114, 101, 97, 108, 115, 59, 226, 132, 157, 114, 101, 99, 116, 59, 226, 150, 173, 114, 101, 103, 194, 174, 114, 101, 103, 59, 194, 174, 114, 102, 105, 115, 104, 116, 59, 226, 165, 189, 114, 102, 108, 111, 111, 114, 59, 226, 140, 139, 114, 102, 114, 59, 240, 157, 148, 175, 114, 104, 97, 114, 100, 59, 226, 135, 129, 114, 104, 97, 114, 117, 59, 226, 135, 128, 114, 104, 97, 114, 117, 108, 59, 226, 165, 172, 114, 104, 111, 59, 207, 129, 114, 104, 111, 118, 59, 207, 177, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 134, 146, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 116, 97, 105, 108, 59, 226, 134, 163, 114, 105, 103, 104, 116, 104, 97, 114, 112, 111, 111, 110, 100, 111, 119, 110, 59, 226, 135, 129, 114, 105, 103, 104, 116, 104, 97, 114, 112, 111, 111, 110, 117, 112, 59, 226, 135, 128, 114, 105, 103, 104, 116, 108, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 226, 135, 132, 114, 105, 103, 104, 116, 108, 101, 102, 116, 104, 97, 114, 112, 111, 111, 110, 115, 59, 226, 135, 140, 114, 105, 103, 104, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 226, 135, 137, 114, 105, 103, 104, 116, 115, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 226, 134, 157, 114, 105, 103, 104, 116, 116, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 226, 139, 140, 114, 105, 110, 103, 59, 203, 154, 114, 105, 115, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 226, 137, 147, 114, 108, 97, 114, 114, 59, 226, 135, 132, 114, 108, 104, 97, 114, 59, 226, 135, 140, 114, 108, 109, 59, 226, 128, 143, 114, 109, 111, 117, 115, 116, 59, 226, 142, 177, 114, 109, 111, 117, 115, 116, 97, 99, 104, 101, 59, 226, 142, 177, 114, 110, 109, 105, 100, 59, 226, 171, 174, 114, 111, 97, 110, 103, 59, 226, 159, 173, 114, 111, 97, 114, 114, 59, 226, 135, 190, 114, 111, 98, 114, 107, 59, 226, 159, 167, 114, 111, 112, 97, 114, 59, 226, 166, 134, 114, 111, 112, 102, 59, 240, 157, 149, 163, 114, 111, 112, 108, 117, 115, 59, 226, 168, 174, 114, 111, 116, 105, 109, 101, 115, 59, 226, 168, 181, 114, 112, 97, 114, 59, 41, 114, 112, 97, 114, 103, 116, 59, 226, 166, 148, 114, 112, 112, 111, 108, 105, 110, 116, 59, 226, 168, 146, 114, 114, 97, 114, 114, 59, 226, 135, 137, 114, 115, 97, 113, 117, 111, 59, 226, 128, 186, 114, 115, 99, 114, 59, 240, 157, 147, 135, 114, 115, 104, 59, 226, 134, 177, 114, 115, 113, 98, 59, 93, 114, 115, 113, 117, 111, 59, 226, 128, 153, 114, 115, 113, 117, 111, 114, 59, 226, 128, 153, 114, 116, 104, 114, 101, 101, 59, 226, 139, 140, 114, 116, 105, 109, 101, 115, 59, 226, 139, 138, 114, 116, 114, 105, 59, 226, 150, 185, 114, 116, 114, 105, 101, 59, 226, 138, 181, 114, 116, 114, 105, 102, 59, 226, 150, 184, 114, 116, 114, 105, 108, 116, 114, 105, 59, 226, 167, 142, 114, 117, 108, 117, 104, 97, 114, 59, 226, 165, 168, 114, 120, 59, 226, 132, 158, 115, 97, 99, 117, 116, 101, 59, 197, 155, 115, 98, 113, 117, 111, 59, 226, 128, 154, 115, 99, 59, 226, 137, 187, 115, 99, 69, 59, 226, 170, 180, 115, 99, 97, 112, 59, 226, 170, 184, 115, 99, 97, 114, 111, 110, 59, 197, 161, 115, 99, 99, 117, 101, 59, 226, 137, 189, 115, 99, 101, 59, 226, 170, 176, 115, 99, 101, 100, 105, 108, 59, 197, 159, 115, 99, 105, 114, 99, 59, 197, 157, 115, 99, 110, 69, 59, 226, 170, 182, 115, 99, 110, 97, 112, 59, 226, 170, 186, 115, 99, 110, 115, 105, 109, 59, 226, 139, 169, 115, 99, 112, 111, 108, 105, 110, 116, 59, 226, 168, 147, 115, 99, 115, 105, 109, 59, 226, 137, 191, 115, 99, 121, 59, 209, 129, 115, 100, 111, 116, 59, 226, 139, 133, 115, 100, 111, 116, 98, 59, 226, 138, 161, 115, 100, 111, 116, 101, 59, 226, 169, 166, 115, 101, 65, 114, 114, 59, 226, 135, 152, 115, 101, 97, 114, 104, 107, 59, 226, 164, 165, 115, 101, 97, 114, 114, 59, 226, 134, 152, 115, 101, 97, 114, 114, 111, 119, 59, 226, 134, 152, 115, 101, 99, 116, 194, 167, 115, 101, 99, 116, 59, 194, 167, 115, 101, 109, 105, 59, 59, 115, 101, 115, 119, 97, 114, 59, 226, 164, 169, 115, 101, 116, 109, 105, 110, 117, 115, 59, 226, 136, 150, 115, 101, 116, 109, 110, 59, 226, 136, 150, 115, 101, 120, 116, 59, 226, 156, 182, 115, 102, 114, 59, 240, 157, 148, 176, 115, 102, 114, 111, 119, 110, 59, 226, 140, 162, 115, 104, 97, 114, 112, 59, 226, 153, 175, 115, 104, 99, 104, 99, 121, 59, 209, 137, 115, 104, 99, 121, 59, 209, 136, 115, 104, 111, 114, 116, 109, 105, 100, 59, 226, 136, 163, 115, 104, 111, 114, 116, 112, 97, 114, 97, 108, 108, 101, 108, 59, 226, 136, 165, 115, 104, 121, 194, 173, 115, 104, 121, 59, 194, 173, 115, 105, 103, 109, 97, 59, 207, 131, 115, 105, 103, 109, 97, 102, 59, 207, 130, 115, 105, 103, 109, 97, 118, 59, 207, 130, 115, 105, 109, 59, 226, 136, 188, 115, 105, 109, 100, 111, 116, 59, 226, 169, 170, 115, 105, 109, 101, 59, 226, 137, 131, 115, 105, 109, 101, 113, 59, 226, 137, 131, 115, 105, 109, 103, 59, 226, 170, 158, 115, 105, 109, 103, 69, 59, 226, 170, 160, 115, 105, 109, 108, 59, 226, 170, 157, 115, 105, 109, 108, 69, 59, 226, 170, 159, 115, 105, 109, 110, 101, 59, 226, 137, 134, 115, 105, 109, 112, 108, 117, 115, 59, 226, 168, 164, 115, 105, 109, 114, 97, 114, 114, 59, 226, 165, 178, 115, 108, 97, 114, 114, 59, 226, 134, 144, 115, 109, 97, 108, 108, 115, 101, 116, 109, 105, 110, 117, 115, 59, 226, 136, 150, 115, 109, 97, 115, 104, 112, 59, 226, 168, 179, 115, 109, 101, 112, 97, 114, 115, 108, 59, 226, 167, 164, 115, 109, 105, 100, 59, 226, 136, 163, 115, 109, 105, 108, 101, 59, 226, 140, 163, 115, 109, 116, 59, 226, 170, 170, 115, 109, 116, 101, 59, 226, 170, 172, 115, 109, 116, 101, 115, 59, 226, 170, 172, 239, 184, 128, 115, 111, 102, 116, 99, 121, 59, 209, 140, 115, 111, 108, 59, 47, 115, 111, 108, 98, 59, 226, 167, 132, 115, 111, 108, 98, 97, 114, 59, 226, 140, 191, 115, 111, 112, 102, 59, 240, 157, 149, 164, 115, 112, 97, 100, 101, 115, 59, 226, 153, 160, 115, 112, 97, 100, 101, 115, 117, 105, 116, 59, 226, 153, 160, 115, 112, 97, 114, 59, 226, 136, 165, 115, 113, 99, 97, 112, 59, 226, 138, 147, 115, 113, 99, 97, 112, 115, 59, 226, 138, 147, 239, 184, 128, 115, 113, 99, 117, 112, 59, 226, 138, 148, 115, 113, 99, 117, 112, 115, 59, 226, 138, 148, 239, 184, 128, 115, 113, 115, 117, 98, 59, 226, 138, 143, 115, 113, 115, 117, 98, 101, 59, 226, 138, 145, 115, 113, 115, 117, 98, 115, 101, 116, 59, 226, 138, 143, 115, 113, 115, 117, 98, 115, 101, 116, 101, 113, 59, 226, 138, 145, 115, 113, 115, 117, 112, 59, 226, 138, 144, 115, 113, 115, 117, 112, 101, 59, 226, 138, 146, 115, 113, 115, 117, 112, 115, 101, 116, 59, 226, 138, 144, 115, 113, 115, 117, 112, 115, 101, 116, 101, 113, 59, 226, 138, 146, 115, 113, 117, 59, 226, 150, 161, 115, 113, 117, 97, 114, 101, 59, 226, 150, 161, 115, 113, 117, 97, 114, 102, 59, 226, 150, 170, 115, 113, 117, 102, 59, 226, 150, 170, 115, 114, 97, 114, 114, 59, 226, 134, 146, 115, 115, 99, 114, 59, 240, 157, 147, 136, 115, 115, 101, 116, 109, 110, 59, 226, 136, 150, 115, 115, 109, 105, 108, 101, 59, 226, 140, 163, 115, 115, 116, 97, 114, 102, 59, 226, 139, 134, 115, 116, 97, 114, 59, 226, 152, 134, 115, 116, 97, 114, 102, 59, 226, 152, 133, 115, 116, 114, 97, 105, 103, 104, 116, 101, 112, 115, 105, 108, 111, 110, 59, 207, 181, 115, 116, 114, 97, 105, 103, 104, 116, 112, 104, 105, 59, 207, 149, 115, 116, 114, 110, 115, 59, 194, 175, 115, 117, 98, 59, 226, 138, 130, 115, 117, 98, 69, 59, 226, 171, 133, 115, 117, 98, 100, 111, 116, 59, 226, 170, 189, 115, 117, 98, 101, 59, 226, 138, 134, 115, 117, 98, 101, 100, 111, 116, 59, 226, 171, 131, 115, 117, 98, 109, 117, 108, 116, 59, 226, 171, 129, 115, 117, 98, 110, 69, 59, 226, 171, 139, 115, 117, 98, 110, 101, 59, 226, 138, 138, 115, 117, 98, 112, 108, 117, 115, 59, 226, 170, 191, 115, 117, 98, 114, 97, 114, 114, 59, 226, 165, 185, 115, 117, 98, 115, 101, 116, 59, 226, 138, 130, 115, 117, 98, 115, 101, 116, 101, 113, 59, 226, 138, 134, 115, 117, 98, 115, 101, 116, 101, 113, 113, 59, 226, 171, 133, 115, 117, 98, 115, 101, 116, 110, 101, 113, 59, 226, 138, 138, 115, 117, 98, 115, 101, 116, 110, 101, 113, 113, 59, 226, 171, 139, 115, 117, 98, 115, 105, 109, 59, 226, 171, 135, 115, 117, 98, 115, 117, 98, 59, 226, 171, 149, 115, 117, 98, 115, 117, 112, 59, 226, 171, 147, 115, 117, 99, 99, 59, 226, 137, 187, 115, 117, 99, 99, 97, 112, 112, 114, 111, 120, 59, 226, 170, 184, 115, 117, 99, 99, 99, 117, 114, 108, 121, 101, 113, 59, 226, 137, 189, 115, 117, 99, 99, 101, 113, 59, 226, 170, 176, 115, 117, 99, 99, 110, 97, 112, 112, 114, 111, 120, 59, 226, 170, 186, 115, 117, 99, 99, 110, 101, 113, 113, 59, 226, 170, 182, 115, 117, 99, 99, 110, 115, 105, 109, 59, 226, 139, 169, 115, 117, 99, 99, 115, 105, 109, 59, 226, 137, 191, 115, 117, 109, 59, 226, 136, 145, 115, 117, 110, 103, 59, 226, 153, 170, 115, 117, 112, 49, 194, 185, 115, 117, 112, 49, 59, 194, 185, 115, 117, 112, 50, 194, 178, 115, 117, 112, 50, 59, 194, 178, 115, 117, 112, 51, 194, 179, 115, 117, 112, 51, 59, 194, 179, 115, 117, 112, 59, 226, 138, 131, 115, 117, 112, 69, 59, 226, 171, 134, 115, 117, 112, 100, 111, 116, 59, 226, 170, 190, 115, 117, 112, 100, 115, 117, 98, 59, 226, 171, 152, 115, 117, 112, 101, 59, 226, 138, 135, 115, 117, 112, 101, 100, 111, 116, 59, 226, 171, 132, 115, 117, 112, 104, 115, 111, 108, 59, 226, 159, 137, 115, 117, 112, 104, 115, 117, 98, 59, 226, 171, 151, 115, 117, 112, 108, 97, 114, 114, 59, 226, 165, 187, 115, 117, 112, 109, 117, 108, 116, 59, 226, 171, 130, 115, 117, 112, 110, 69, 59, 226, 171, 140, 115, 117, 112, 110, 101, 59, 226, 138, 139, 115, 117, 112, 112, 108, 117, 115, 59, 226, 171, 128, 115, 117, 112, 115, 101, 116, 59, 226, 138, 131, 115, 117, 112, 115, 101, 116, 101, 113, 59, 226, 138, 135, 115, 117, 112, 115, 101, 116, 101, 113, 113, 59, 226, 171, 134, 115, 117, 112, 115, 101, 116, 110, 101, 113, 59, 226, 138, 139, 115, 117, 112, 115, 101, 116, 110, 101, 113, 113, 59, 226, 171, 140, 115, 117, 112, 115, 105, 109, 59, 226, 171, 136, 115, 117, 112, 115, 117, 98, 59, 226, 171, 148, 115, 117, 112, 115, 117, 112, 59, 226, 171, 150, 115, 119, 65, 114, 114, 59, 226, 135, 153, 115, 119, 97, 114, 104, 107, 59, 226, 164, 166, 115, 119, 97, 114, 114, 59, 226, 134, 153, 115, 119, 97, 114, 114, 111, 119, 59, 226, 134, 153, 115, 119, 110, 119, 97, 114, 59, 226, 164, 170, 115, 122, 108, 105, 103, 195, 159, 115, 122, 108, 105, 103, 59, 195, 159, 116, 97, 114, 103, 101, 116, 59, 226, 140, 150, 116, 97, 117, 59, 207, 132, 116, 98, 114, 107, 59, 226, 142, 180, 116, 99, 97, 114, 111, 110, 59, 197, 165, 116, 99, 101, 100, 105, 108, 59, 197, 163, 116, 99, 121, 59, 209, 130, 116, 100, 111, 116, 59, 226, 131, 155, 116, 101, 108, 114, 101, 99, 59, 226, 140, 149, 116, 102, 114, 59, 240, 157, 148, 177, 116, 104, 101, 114, 101, 52, 59, 226, 136, 180, 116, 104, 101, 114, 101, 102, 111, 114, 101, 59, 226, 136, 180, 116, 104, 101, 116, 97, 59, 206, 184, 116, 104, 101, 116, 97, 115, 121, 109, 59, 207, 145, 116, 104, 101, 116, 97, 118, 59, 207, 145, 116, 104, 105, 99, 107, 97, 112, 112, 114, 111, 120, 59, 226, 137, 136, 116, 104, 105, 99, 107, 115, 105, 109, 59, 226, 136, 188, 116, 104, 105, 110, 115, 112, 59, 226, 128, 137, 116, 104, 107, 97, 112, 59, 226, 137, 136, 116, 104, 107, 115, 105, 109, 59, 226, 136, 188, 116, 104, 111, 114, 110, 195, 190, 116, 104, 111, 114, 110, 59, 195, 190, 116, 105, 108, 100, 101, 59, 203, 156, 116, 105, 109, 101, 115, 195, 151, 116, 105, 109, 101, 115, 59, 195, 151, 116, 105, 109, 101, 115, 98, 59, 226, 138, 160, 116, 105, 109, 101, 115, 98, 97, 114, 59, 226, 168, 177, 116, 105, 109, 101, 115, 100, 59, 226, 168, 176, 116, 105, 110, 116, 59, 226, 136, 173, 116, 111, 101, 97, 59, 226, 164, 168, 116, 111, 112, 59, 226, 138, 164, 116, 111, 112, 98, 111, 116, 59, 226, 140, 182, 116, 111, 112, 99, 105, 114, 59, 226, 171, 177, 116, 111, 112, 102, 59, 240, 157, 149, 165, 116, 111, 112, 102, 111, 114, 107, 59, 226, 171, 154, 116, 111, 115, 97, 59, 226, 164, 169, 116, 112, 114, 105, 109, 101, 59, 226, 128, 180, 116, 114, 97, 100, 101, 59, 226, 132, 162, 116, 114, 105, 97, 110, 103, 108, 101, 59, 226, 150, 181, 116, 114, 105, 97, 110, 103, 108, 101, 100, 111, 119, 110, 59, 226, 150, 191, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 59, 226, 151, 131, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 101, 113, 59, 226, 138, 180, 116, 114, 105, 97, 110, 103, 108, 101, 113, 59, 226, 137, 156, 116, 114, 105, 97, 110, 103, 108, 101, 114, 105, 103, 104, 116, 59, 226, 150, 185, 116, 114, 105, 97, 110, 103, 108, 101, 114, 105, 103, 104, 116, 101, 113, 59, 226, 138, 181, 116, 114, 105, 100, 111, 116, 59, 226, 151, 172, 116, 114, 105, 101, 59, 226, 137, 156, 116, 114, 105, 109, 105, 110, 117, 115, 59, 226, 168, 186, 116, 114, 105, 112, 108, 117, 115, 59, 226, 168, 185, 116, 114, 105, 115, 98, 59, 226, 167, 141, 116, 114, 105, 116, 105, 109, 101, 59, 226, 168, 187, 116, 114, 112, 101, 122, 105, 117, 109, 59, 226, 143, 162, 116, 115, 99, 114, 59, 240, 157, 147, 137, 116, 115, 99, 121, 59, 209, 134, 116, 115, 104, 99, 121, 59, 209, 155, 116, 115, 116, 114, 111, 107, 59, 197, 167, 116, 119, 105, 120, 116, 59, 226, 137, 172, 116, 119, 111, 104, 101, 97, 100, 108, 101, 102, 116, 97, 114, 114, 111, 119, 59, 226, 134, 158, 116, 119, 111, 104, 101, 97, 100, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 226, 134, 160, 117, 65, 114, 114, 59, 226, 135, 145, 117, 72, 97, 114, 59, 226, 165, 163, 117, 97, 99, 117, 116, 101, 195, 186, 117, 97, 99, 117, 116, 101, 59, 195, 186, 117, 97, 114, 114, 59, 226, 134, 145, 117, 98, 114, 99, 121, 59, 209, 158, 117, 98, 114, 101, 118, 101, 59, 197, 173, 117, 99, 105, 114, 99, 195, 187, 117, 99, 105, 114, 99, 59, 195, 187, 117, 99, 121, 59, 209, 131, 117, 100, 97, 114, 114, 59, 226, 135, 133, 117, 100, 98, 108, 97, 99, 59, 197, 177, 117, 100, 104, 97, 114, 59, 226, 165, 174, 117, 102, 105, 115, 104, 116, 59, 226, 165, 190, 117, 102, 114, 59, 240, 157, 148, 178, 117, 103, 114, 97, 118, 101, 195, 185, 117, 103, 114, 97, 118, 101, 59, 195, 185, 117, 104, 97, 114, 108, 59, 226, 134, 191, 117, 104, 97, 114, 114, 59, 226, 134, 190, 117, 104, 98, 108, 107, 59, 226, 150, 128, 117, 108, 99, 111, 114, 110, 59, 226, 140, 156, 117, 108, 99, 111, 114, 110, 101, 114, 59, 226, 140, 156, 117, 108, 99, 114, 111, 112, 59, 226, 140, 143, 117, 108, 116, 114, 105, 59, 226, 151, 184, 117, 109, 97, 99, 114, 59, 197, 171, 117, 109, 108, 194, 168, 117, 109, 108, 59, 194, 168, 117, 111, 103, 111, 110, 59, 197, 179, 117, 111, 112, 102, 59, 240, 157, 149, 166, 117, 112, 97, 114, 114, 111, 119, 59, 226, 134, 145, 117, 112, 100, 111, 119, 110, 97, 114, 114, 111, 119, 59, 226, 134, 149, 117, 112, 104, 97, 114, 112, 111, 111, 110, 108, 101, 102, 116, 59, 226, 134, 191, 117, 112, 104, 97, 114, 112, 111, 111, 110, 114, 105, 103, 104, 116, 59, 226, 134, 190, 117, 112, 108, 117, 115, 59, 226, 138, 142, 117, 112, 115, 105, 59, 207, 133, 117, 112, 115, 105, 104, 59, 207, 146, 117, 112, 115, 105, 108, 111, 110, 59, 207, 133, 117, 112, 117, 112, 97, 114, 114, 111, 119, 115, 59, 226, 135, 136, 117, 114, 99, 111, 114, 110, 59, 226, 140, 157, 117, 114, 99, 111, 114, 110, 101, 114, 59, 226, 140, 157, 117, 114, 99, 114, 111, 112, 59, 226, 140, 142, 117, 114, 105, 110, 103, 59, 197, 175, 117, 114, 116, 114, 105, 59, 226, 151, 185, 117, 115, 99, 114, 59, 240, 157, 147, 138, 117, 116, 100, 111, 116, 59, 226, 139, 176, 117, 116, 105, 108, 100, 101, 59, 197, 169, 117, 116, 114, 105, 59, 226, 150, 181, 117, 116, 114, 105, 102, 59, 226, 150, 180, 117, 117, 97, 114, 114, 59, 226, 135, 136, 117, 117, 109, 108, 195, 188, 117, 117, 109, 108, 59, 195, 188, 117, 119, 97, 110, 103, 108, 101, 59, 226, 166, 167, 118, 65, 114, 114, 59, 226, 135, 149, 118, 66, 97, 114, 59, 226, 171, 168, 118, 66, 97, 114, 118, 59, 226, 171, 169, 118, 68, 97, 115, 104, 59, 226, 138, 168, 118, 97, 110, 103, 114, 116, 59, 226, 166, 156, 118, 97, 114, 101, 112, 115, 105, 108, 111, 110, 59, 207, 181, 118, 97, 114, 107, 97, 112, 112, 97, 59, 207, 176, 118, 97, 114, 110, 111, 116, 104, 105, 110, 103, 59, 226, 136, 133, 118, 97, 114, 112, 104, 105, 59, 207, 149, 118, 97, 114, 112, 105, 59, 207, 150, 118, 97, 114, 112, 114, 111, 112, 116, 111, 59, 226, 136, 157, 118, 97, 114, 114, 59, 226, 134, 149, 118, 97, 114, 114, 104, 111, 59, 207, 177, 118, 97, 114, 115, 105, 103, 109, 97, 59, 207, 130, 118, 97, 114, 115, 117, 98, 115, 101, 116, 110, 101, 113, 59, 226, 138, 138, 239, 184, 128, 118, 97, 114, 115, 117, 98, 115, 101, 116, 110, 101, 113, 113, 59, 226, 171, 139, 239, 184, 128, 118, 97, 114, 115, 117, 112, 115, 101, 116, 110, 101, 113, 59, 226, 138, 139, 239, 184, 128, 118, 97, 114, 115, 117, 112, 115, 101, 116, 110, 101, 113, 113, 59, 226, 171, 140, 239, 184, 128, 118, 97, 114, 116, 104, 101, 116, 97, 59, 207, 145, 118, 97, 114, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 59, 226, 138, 178, 118, 97, 114, 116, 114, 105, 97, 110, 103, 108, 101, 114, 105, 103, 104, 116, 59, 226, 138, 179, 118, 99, 121, 59, 208, 178, 118, 100, 97, 115, 104, 59, 226, 138, 162, 118, 101, 101, 59, 226, 136, 168, 118, 101, 101, 98, 97, 114, 59, 226, 138, 187, 118, 101, 101, 101, 113, 59, 226, 137, 154, 118, 101, 108, 108, 105, 112, 59, 226, 139, 174, 118, 101, 114, 98, 97, 114, 59, 124, 118, 101, 114, 116, 59, 124, 118, 102, 114, 59, 240, 157, 148, 179, 118, 108, 116, 114, 105, 59, 226, 138, 178, 118, 110, 115, 117, 98, 59, 226, 138, 130, 226, 131, 146, 118, 110, 115, 117, 112, 59, 226, 138, 131, 226, 131, 146, 118, 111, 112, 102, 59, 240, 157, 149, 167, 118, 112, 114, 111, 112, 59, 226, 136, 157, 118, 114, 116, 114, 105, 59, 226, 138, 179, 118, 115, 99, 114, 59, 240, 157, 147, 139, 118, 115, 117, 98, 110, 69, 59, 226, 171, 139, 239, 184, 128, 118, 115, 117, 98, 110, 101, 59, 226, 138, 138, 239, 184, 128, 118, 115, 117, 112, 110, 69, 59, 226, 171, 140, 239, 184, 128, 118, 115, 117, 112, 110, 101, 59, 226, 138, 139, 239, 184, 128, 118, 122, 105, 103, 122, 97, 103, 59, 226, 166, 154, 119, 99, 105, 114, 99, 59, 197, 181, 119, 101, 100, 98, 97, 114, 59, 226, 169, 159, 119, 101, 100, 103, 101, 59, 226, 136, 167, 119, 101, 100, 103, 101, 113, 59, 226, 137, 153, 119, 101, 105, 101, 114, 112, 59, 226, 132, 152, 119, 102, 114, 59, 240, 157, 148, 180, 119, 111, 112, 102, 59, 240, 157, 149, 168, 119, 112, 59, 226, 132, 152, 119, 114, 59, 226, 137, 128, 119, 114, 101, 97, 116, 104, 59, 226, 137, 128, 119, 115, 99, 114, 59, 240, 157, 147, 140, 120, 99, 97, 112, 59, 226, 139, 130, 120, 99, 105, 114, 99, 59, 226, 151, 175, 120, 99, 117, 112, 59, 226, 139, 131, 120, 100, 116, 114, 105, 59, 226, 150, 189, 120, 102, 114, 59, 240, 157, 148, 181, 120, 104, 65, 114, 114, 59, 226, 159, 186, 120, 104, 97, 114, 114, 59, 226, 159, 183, 120, 105, 59, 206, 190, 120, 108, 65, 114, 114, 59, 226, 159, 184, 120, 108, 97, 114, 114, 59, 226, 159, 181, 120, 109, 97, 112, 59, 226, 159, 188, 120, 110, 105, 115, 59, 226, 139, 187, 120, 111, 100, 111, 116, 59, 226, 168, 128, 120, 111, 112, 102, 59, 240, 157, 149, 169, 120, 111, 112, 108, 117, 115, 59, 226, 168, 129, 120, 111, 116, 105, 109, 101, 59, 226, 168, 130, 120, 114, 65, 114, 114, 59, 226, 159, 185, 120, 114, 97, 114, 114, 59, 226, 159, 182, 120, 115, 99, 114, 59, 240, 157, 147, 141, 120, 115, 113, 99, 117, 112, 59, 226, 168, 134, 120, 117, 112, 108, 117, 115, 59, 226, 168, 132, 120, 117, 116, 114, 105, 59, 226, 150, 179, 120, 118, 101, 101, 59, 226, 139, 129, 120, 119, 101, 100, 103, 101, 59, 226, 139, 128, 121, 97, 99, 117, 116, 101, 195, 189, 121, 97, 99, 117, 116, 101, 59, 195, 189, 121, 97, 99, 121, 59, 209, 143, 121, 99, 105, 114, 99, 59, 197, 183, 121, 99, 121, 59, 209, 139, 121, 101, 110, 194, 165, 121, 101, 110, 59, 194, 165, 121, 102, 114, 59, 240, 157, 148, 182, 121, 105, 99, 121, 59, 209, 151, 121, 111, 112, 102, 59, 240, 157, 149, 170, 121, 115, 99, 114, 59, 240, 157, 147, 142, 121, 117, 99, 121, 59, 209, 142, 121, 117, 109, 108, 195, 191, 121, 117, 109, 108, 59, 195, 191, 122, 97, 99, 117, 116, 101, 59, 197, 186, 122, 99, 97, 114, 111, 110, 59, 197, 190, 122, 99, 121, 59, 208, 183, 122, 100, 111, 116, 59, 197, 188, 122, 101, 101, 116, 114, 102, 59, 226, 132, 168, 122, 101, 116, 97, 59, 206, 182, 122, 102, 114, 59, 240, 157, 148, 183, 122, 104, 99, 121, 59, 208, 182, 122, 105, 103, 114, 97, 114, 114, 59, 226, 135, 157, 122, 111, 112, 102, 59, 240, 157, 149, 171, 122, 115, 99, 114, 59, 240, 157, 147, 143, 122, 119, 106, 59, 226, 128, 141, 122, 119, 110, 106, 59, 226, 128, 140, }; #define TABLE_ENTRIES 2231 static const unsigned char table_entries[TABLE_ENTRIES * 3] = { 0, 0, 68, 7, 0, 69, 15, 0, 34, 19, 0, 35, 24, 0, 69, 32, 0, 70, 41, 0, 70, 50, 0, 68, 57, 0, 69, 65, 0, 67, 71, 0, 131, 79, 0, 69, 87, 0, 70, 96, 0, 69, 104, 0, 69, 112, 0, 99, 119, 0, 69, 127, 0, 132, 136, 0, 109, 153, 0, 68, 160, 0, 69, 168, 0, 132, 177, 0, 102, 187, 0, 69, 195, 0, 70, 204, 0, 67, 210, 0, 68, 217, 0, 105, 230, 0, 100, 238, 0, 102, 248, 0, 67, 254, 0, 103, 9, 1, 106, 23, 1, 68, 30, 1, 131, 38, 1, 132, 47, 1, 69, 55, 1, 100, 63, 1, 102, 73, 1, 68, 80, 1, 67, 86, 1, 68, 93, 1, 70, 102, 1, 99, 109, 1, 116, 133, 1, 103, 144, 1, 70, 153, 1, 69, 161, 1, 70, 170, 1, 69, 178, 1, 103, 189, 1, 68, 196, 1, 71, 206, 1, 73, 218, 1, 99, 225, 1, 67, 231, 1, 105, 244, 1, 107, 3, 2, 106, 17, 2, 107, 32, 2, 120, 60, 2, 117, 85, 2, 111, 104, 2, 101, 113, 2, 102, 123, 2, 105, 136, 2, 102, 146, 2, 111, 165, 2, 100, 173, 2, 105, 186, 2, 127, 221, 2, 101, 230, 2, 132, 239, 2, 99, 246, 2, 102, 0, 3, 98, 6, 3, 104, 18, 3, 68, 25, 3, 68, 32, 3, 68, 39, 3, 102, 49, 3, 100, 57, 3, 101, 66, 3, 70, 75, 3, 67, 81, 3, 99, 88, 3, 69, 96, 3, 131, 104, 3, 80, 123, 3, 78, 140, 3, 86, 165, 3, 48, 183, 3, 80, 202, 3, 103, 213, 3, 109, 230, 3, 132, 239, 3, 67, 245, 3, 102, 255, 3, 104, 11, 4, 117, 36, 4, 73, 48, 4, 111, 67, 4, 111, 86, 4, 116, 110, 4, 109, 127, 4, 115, 150, 4, 120, 178, 4, 116, 202, 4, 112, 222, 4, 110, 240, 4, 109, 1, 5, 113, 22, 5, 113, 43, 5, 105, 56, 5, 108, 72, 5, 112, 92, 5, 73, 104, 5, 115, 127, 5, 113, 148, 5, 110, 166, 5, 113, 187, 5, 114, 209, 5, 111, 228, 5, 114, 250, 5, 103, 5, 6, 108, 21, 6, 105, 34, 6, 132, 43, 6, 70, 52, 6, 67, 58, 6, 66, 63, 6, 67, 69, 6, 69, 77, 6, 70, 86, 6, 70, 95, 6, 68, 102, 6, 69, 110, 6, 67, 116, 6, 68, 123, 6, 131, 131, 6, 69, 139, 6, 70, 148, 6, 103, 159, 6, 69, 167, 6, 112, 187, 6, 116, 211, 6, 69, 219, 6, 132, 228, 6, 71, 238, 6, 101, 247, 6, 106, 5, 7, 107, 20, 7, 100, 28, 7, 100, 36, 7, 67, 42, 7, 67, 48, 7, 68, 55, 7, 102, 65, 7, 108, 81, 7, 67, 87, 7, 131, 95, 7, 113, 116, 7, 117, 141, 7, 132, 150, 7, 102, 160, 7, 106, 174, 7, 100, 182, 7, 68, 189, 7, 33, 192, 7, 34, 196, 7, 69, 204, 7, 70, 213, 7, 70, 222, 7, 70, 231, 7, 69, 239, 7, 67, 245, 7, 68, 252, 7, 131, 4, 8, 98, 10, 8, 132, 19, 8, 108, 35, 8, 112, 55, 8, 112, 75, 8, 110, 93, 8, 107, 108, 8, 113, 129, 8, 108, 145, 8, 132, 154, 8, 98, 160, 8, 70, 169, 8, 69, 177, 8, 35, 182, 8, 69, 190, 8, 99, 197, 8, 108, 213, 8, 100, 221, 8, 110, 239, 8, 100, 247, 8, 70, 0, 9, 108, 16, 9, 105, 29, 9, 68, 36, 9, 69, 44, 9, 68, 51, 9, 69, 59, 9, 70, 68, 9, 68, 75, 9, 69, 83, 9, 67, 89, 9, 68, 96, 9, 99, 103, 9, 69, 111, 9, 70, 120, 9, 98, 126, 9, 69, 134, 9, 106, 148, 9, 103, 159, 9, 99, 166, 9, 104, 178, 9, 108, 194, 9, 110, 212, 9, 110, 230, 9, 69, 238, 9, 132, 247, 9, 68, 254, 9, 100, 6, 10, 70, 15, 10, 69, 23, 10, 67, 29, 10, 68, 36, 10, 69, 44, 10, 67, 50, 10, 131, 58, 10, 132, 67, 10, 132, 76, 10, 70, 85, 10, 69, 93, 10, 68, 100, 10, 68, 107, 10, 69, 115, 10, 70, 124, 10, 67, 130, 10, 131, 138, 10, 132, 147, 10, 132, 156, 10, 68, 163, 10, 33, 166, 10, 34, 170, 10, 70, 179, 10, 70, 188, 10, 100, 196, 10, 106, 210, 10, 100, 218, 10, 70, 227, 10, 70, 236, 10, 67, 242, 10, 112, 6, 11, 105, 19, 11, 108, 35, 11, 115, 58, 11, 107, 73, 11, 113, 94, 11, 113, 115, 11, 110, 133, 11, 113, 154, 11, 105, 167, 11, 110, 185, 11, 111, 204, 11, 103, 215, 11, 108, 231, 11, 109, 248, 11, 108, 8, 12, 111, 27, 12, 113, 48, 12, 112, 68, 12, 111, 87, 12, 108, 103, 12, 111, 122, 12, 106, 136, 12, 109, 153, 12, 105, 166, 12, 110, 184, 12, 112, 204, 12, 109, 221, 12, 107, 236, 12, 104, 248, 12, 110, 10, 13, 105, 23, 13, 131, 31, 13, 98, 37, 13, 106, 51, 13, 70, 60, 13, 109, 77, 13, 114, 99, 13, 110, 117, 13, 109, 134, 13, 114, 156, 13, 110, 174, 13, 132, 183, 13, 110, 201, 13, 111, 220, 13, 100, 228, 13, 99, 235, 13, 70, 244, 13, 98, 250, 13, 99, 1, 14, 67, 7, 14, 107, 22, 14, 105, 35, 14, 131, 43, 14, 105, 56, 14, 132, 65, 14, 100, 73, 14, 66, 78, 14, 68, 85, 14, 70, 94, 14, 70, 103, 14, 70, 112, 14, 67, 118, 14, 115, 141, 14, 114, 163, 14, 113, 184, 14, 117, 209, 14, 116, 233, 14, 110, 251, 14, 39, 4, 15, 131, 12, 15, 103, 23, 15, 80, 42, 15, 100, 50, 15, 99, 57, 15, 108, 73, 15, 105, 86, 15, 116, 110, 15, 106, 124, 15, 104, 136, 15, 173, 155, 15, 105, 168, 15, 106, 182, 15, 111, 201, 15, 179, 226, 15, 177, 249, 15, 110, 11, 16, 180, 37, 16, 111, 56, 16, 175, 77, 16, 172, 95, 16, 111, 114, 16, 178, 138, 16, 116, 162, 16, 103, 173, 16, 108, 189, 16, 110, 207, 16, 171, 224, 16, 177, 247, 16, 108, 7, 17, 183, 36, 17, 177, 59, 17, 107, 74, 17, 176, 96, 17, 117, 121, 17, 113, 142, 17, 112, 162, 17, 179, 187, 17, 117, 212, 17, 175, 233, 17, 116, 1, 18, 177, 24, 18, 118, 50, 18, 201, 66, 18, 110, 84, 18, 107, 99, 18, 176, 121, 18, 117, 146, 18, 176, 168, 18, 203, 186, 18, 112, 206, 18, 104, 218, 18, 109, 235, 18, 113, 0, 19, 109, 17, 19, 110, 35, 19, 132, 44, 19, 69, 52, 19, 70, 61, 19, 66, 66, 19, 69, 74, 19, 69, 82, 19, 70, 91, 19, 68, 98, 19, 69, 106, 19, 67, 112, 19, 70, 121, 19, 131, 129, 19, 69, 137, 19, 70, 146, 19, 69, 154, 19, 69, 162, 19, 71, 172, 19, 132, 181, 19, 116, 205, 19, 110, 223, 19, 98, 229, 19, 132, 238, 19, 69, 246, 19, 70, 255, 19, 69, 7, 20, 70, 16, 20, 102, 26, 20, 67, 32, 20, 68, 39, 20, 103, 50, 20, 105, 63, 20, 107, 78, 20, 111, 97, 20, 104, 109, 20, 67, 115, 20, 131, 123, 20, 67, 129, 20, 66, 134, 20, 73, 146, 20, 109, 163, 20, 100, 171, 20, 98, 177, 20, 104, 189, 20, 109, 206, 20, 114, 228, 20, 109, 245, 20, 101, 254, 20, 103, 9, 21, 106, 23, 21, 108, 39, 21, 132, 48, 21, 67, 54, 21, 35, 59, 21, 36, 65, 21, 131, 73, 21, 100, 81, 21, 132, 90, 21, 101, 99, 21, 66, 104, 21, 67, 110, 21, 70, 119, 21, 100, 127, 21, 100, 135, 21, 102, 145, 21, 70, 154, 21, 70, 163, 21, 67, 169, 21, 98, 175, 21, 110, 193, 21, 114, 215, 21, 116, 239, 21, 99, 246, 21, 67, 252, 21, 113, 17, 22, 106, 31, 22, 109, 48, 22, 115, 71, 22, 108, 87, 22, 114, 109, 22, 114, 131, 22, 111, 150, 22, 114, 172, 22, 106, 186, 22, 104, 198, 22, 109, 215, 22, 110, 233, 22, 109, 250, 22, 112, 14, 23, 114, 36, 23, 113, 57, 23, 112, 77, 23, 109, 94, 23, 112, 114, 23, 107, 129, 23, 110, 147, 23, 106, 161, 23, 100, 169, 23, 108, 185, 23, 107, 200, 23, 100, 208, 23, 99, 215, 23, 107, 230, 23, 70, 239, 23, 68, 246, 23, 70, 255, 23, 70, 8, 24, 98, 14, 24, 70, 23, 24, 70, 32, 24, 69, 40, 24, 67, 46, 24, 131, 54, 24, 110, 72, 24, 110, 90, 24, 111, 109, 24, 108, 125, 24, 69, 133, 24, 107, 148, 24, 132, 157, 24, 100, 165, 24, 102, 175, 24, 114, 197, 24, 108, 213, 24, 113, 234, 24, 110, 252, 24, 115, 19, 25, 107, 34, 25, 132, 43, 25, 100, 51, 25, 99, 58, 25, 102, 68, 25, 107, 83, 25, 104, 95, 25, 109, 112, 25, 114, 134, 25, 109, 151, 25, 104, 163, 25, 99, 170, 25, 99, 177, 25, 104, 189, 25, 109, 206, 25, 102, 216, 25, 68, 223, 25, 69, 231, 25, 101, 240, 25, 69, 248, 25, 68, 255, 25, 35, 4, 26, 67, 10, 26, 70, 19, 26, 70, 28, 26, 67, 34, 26, 131, 42, 26, 105, 55, 26, 69, 63, 26, 202, 80, 26, 105, 93, 26, 101, 102, 26, 106, 116, 26, 110, 134, 26, 106, 148, 26, 132, 157, 26, 105, 170, 26, 132, 179, 26, 70, 188, 26, 69, 196, 26, 70, 205, 26, 100, 213, 26, 104, 225, 26, 69, 233, 26, 70, 242, 26, 68, 249, 26, 69, 1, 27, 67, 7, 27, 70, 16, 27, 131, 24, 27, 69, 32, 27, 70, 41, 27, 69, 49, 27, 40, 59, 27, 106, 73, 27, 108, 89, 27, 112, 109, 27, 101, 118, 27, 105, 131, 27, 69, 139, 27, 132, 148, 27, 103, 159, 27, 106, 173, 27, 112, 193, 27, 107, 208, 27, 109, 225, 27, 101, 234, 27, 106, 248, 27, 103, 3, 28, 107, 18, 28, 110, 36, 28, 111, 55, 28, 68, 62, 28, 71, 72, 28, 69, 80, 28, 132, 89, 28, 70, 98, 28, 67, 104, 28, 68, 111, 28, 101, 120, 28, 100, 128, 28, 67, 134, 28, 101, 143, 28, 102, 153, 28, 99, 160, 28, 102, 170, 28, 100, 178, 28, 107, 193, 28, 44, 207, 28, 113, 228, 28, 109, 245, 28, 109, 6, 29, 131, 14, 29, 132, 23, 29, 132, 32, 29, 102, 42, 29, 69, 50, 29, 101, 59, 29, 131, 67, 29, 132, 76, 29, 132, 85, 29, 131, 93, 29, 66, 98, 29, 132, 107, 29, 132, 116, 29, 68, 123, 29, 68, 130, 29, 68, 137, 29, 69, 145, 29, 70, 154, 29, 69, 162, 29, 67, 168, 29, 131, 176, 29, 132, 185, 29, 132, 194, 29, 68, 201, 29, 68, 208, 29, 70, 217, 29, 70, 226, 29, 67, 232, 29, 68, 239, 29, 110, 1, 30, 68, 8, 30, 99, 15, 30, 100, 23, 30, 132, 32, 30, 69, 40, 30, 70, 49, 30, 70, 58, 30, 98, 64, 30, 163, 73, 30, 99, 80, 30, 68, 87, 30, 69, 95, 30, 68, 102, 30, 69, 110, 30, 67, 116, 30, 68, 123, 30, 69, 131, 30, 98, 137, 30, 131, 145, 30, 69, 153, 30, 70, 162, 30, 103, 173, 30, 101, 182, 30, 69, 190, 30, 69, 198, 30, 101, 207, 30, 34, 211, 30, 35, 216, 30, 99, 223, 30, 102, 233, 30, 100, 241, 30, 104, 253, 30, 100, 5, 31, 99, 12, 31, 100, 20, 31, 101, 29, 31, 102, 39, 31, 104, 51, 31, 104, 63, 31, 104, 75, 31, 104, 87, 31, 104, 99, 31, 104, 111, 31, 104, 123, 31, 104, 135, 31, 101, 144, 31, 103, 155, 31, 104, 167, 31, 102, 177, 31, 69, 185, 31, 103, 196, 31, 69, 204, 31, 132, 213, 31, 98, 219, 31, 99, 226, 31, 102, 236, 31, 99, 243, 31, 100, 251, 31, 36, 1, 32, 102, 11, 32, 104, 23, 32, 68, 30, 32, 69, 38, 32, 132, 47, 32, 35, 52, 32, 101, 61, 32, 103, 72, 32, 69, 80, 32, 70, 89, 32, 67, 95, 32, 68, 102, 32, 104, 114, 32, 101, 123, 32, 100, 131, 32, 104, 143, 32, 75, 157, 32, 105, 170, 32, 103, 181, 32, 105, 194, 32, 102, 204, 32, 102, 214, 32, 104, 226, 32, 100, 234, 32, 104, 246, 32, 101, 255, 32, 67, 5, 33, 101, 14, 33, 102, 24, 33, 103, 35, 33, 103, 46, 33, 69, 54, 33, 102, 64, 33, 68, 71, 33, 100, 79, 33, 103, 90, 33, 131, 98, 33, 102, 108, 33, 103, 119, 33, 102, 129, 33, 103, 140, 33, 104, 152, 33, 105, 165, 33, 104, 177, 33, 103, 188, 33, 111, 207, 33, 109, 224, 33, 104, 236, 33, 102, 246, 33, 104, 2, 34, 102, 12, 34, 108, 28, 34, 107, 43, 34, 109, 60, 34, 113, 81, 34, 113, 102, 34, 114, 124, 34, 101, 133, 34, 101, 142, 34, 101, 151, 34, 101, 160, 34, 101, 169, 34, 131, 177, 34, 199, 191, 34, 100, 199, 34, 132, 208, 34, 99, 215, 34, 102, 225, 34, 102, 235, 34, 101, 244, 34, 101, 253, 34, 101, 6, 35, 101, 15, 35, 100, 23, 35, 101, 32, 35, 101, 41, 35, 101, 50, 35, 101, 59, 35, 101, 68, 35, 101, 77, 35, 101, 86, 35, 101, 95, 35, 100, 103, 35, 101, 112, 35, 101, 121, 35, 101, 130, 35, 101, 139, 35, 101, 148, 35, 101, 157, 35, 102, 167, 35, 101, 176, 35, 101, 185, 35, 101, 194, 35, 101, 203, 35, 100, 211, 35, 101, 220, 35, 101, 229, 35, 101, 238, 35, 101, 247, 35, 104, 3, 36, 103, 14, 36, 104, 26, 36, 101, 35, 36, 101, 44, 36, 101, 53, 36, 101, 62, 36, 100, 70, 36, 101, 79, 36, 101, 88, 36, 101, 97, 36, 101, 106, 36, 101, 115, 36, 101, 124, 36, 102, 134, 36, 69, 142, 36, 69, 150, 36, 70, 159, 36, 132, 168, 36, 101, 177, 36, 100, 185, 36, 101, 194, 36, 36, 200, 36, 101, 209, 36, 104, 221, 36, 100, 229, 36, 102, 239, 36, 100, 247, 36, 101, 0, 37, 101, 9, 37, 102, 19, 37, 70, 28, 37, 99, 35, 37, 102, 45, 37, 104, 57, 37, 102, 67, 37, 102, 77, 37, 102, 87, 37, 196, 98, 37, 101, 107, 37, 69, 115, 37, 101, 124, 37, 70, 133, 37, 69, 141, 37, 70, 150, 37, 69, 158, 37, 101, 167, 37, 103, 178, 37, 68, 185, 37, 68, 192, 37, 69, 200, 37, 103, 211, 37, 67, 217, 37, 68, 224, 37, 73, 236, 37, 131, 244, 37, 68, 251, 37, 101, 4, 38, 105, 17, 38, 67, 23, 38, 99, 30, 38, 100, 38, 38, 68, 45, 38, 102, 55, 38, 111, 74, 38, 112, 94, 38, 72, 105, 38, 104, 117, 38, 106, 131, 38, 107, 146, 38, 107, 161, 38, 100, 169, 38, 104, 181, 38, 102, 191, 38, 103, 202, 38, 101, 211, 38, 104, 223, 38, 37, 230, 38, 102, 240, 38, 103, 251, 38, 37, 2, 39, 38, 10, 39, 100, 18, 39, 102, 28, 39, 106, 42, 39, 105, 55, 39, 100, 63, 39, 103, 74, 39, 102, 84, 39, 132, 93, 39, 102, 103, 39, 67, 109, 39, 68, 116, 39, 102, 126, 39, 101, 135, 39, 101, 144, 39, 132, 153, 39, 100, 161, 39, 101, 170, 39, 100, 178, 39, 101, 187, 39, 101, 196, 39, 103, 207, 39, 103, 218, 39, 101, 227, 39, 101, 236, 39, 102, 246, 39, 103, 1, 40, 99, 8, 40, 104, 20, 40, 102, 30, 40, 102, 40, 40, 102, 50, 40, 101, 59, 40, 196, 70, 40, 102, 80, 40, 103, 91, 40, 107, 106, 40, 107, 121, 40, 104, 133, 40, 106, 147, 40, 69, 155, 40, 70, 164, 40, 110, 182, 40, 111, 201, 40, 101, 210, 40, 101, 219, 40, 104, 231, 40, 101, 240, 40, 102, 250, 40, 100, 2, 41, 100, 10, 41, 102, 20, 41, 102, 30, 41, 100, 38, 41, 100, 46, 41, 101, 55, 41, 103, 66, 41, 69, 74, 41, 70, 83, 41, 67, 89, 41, 98, 95, 41, 103, 106, 41, 101, 115, 41, 103, 126, 41, 66, 131, 41, 67, 137, 41, 69, 145, 41, 103, 156, 41, 102, 166, 41, 131, 174, 41, 101, 183, 41, 101, 192, 41, 100, 200, 41, 103, 211, 41, 107, 226, 41, 101, 235, 41, 67, 241, 41, 71, 251, 41, 101, 4, 42, 67, 10, 42, 69, 18, 42, 70, 27, 42, 109, 44, 42, 102, 54, 42, 68, 61, 42, 102, 71, 42, 102, 81, 42, 38, 89, 42, 132, 98, 42, 67, 104, 42, 101, 113, 42, 104, 125, 42, 104, 137, 42, 103, 148, 42, 105, 161, 42, 110, 179, 42, 105, 192, 42, 110, 210, 42, 111, 229, 42, 112, 249, 42, 104, 5, 43, 102, 15, 43, 102, 25, 43, 132, 34, 43, 68, 41, 43, 100, 49, 43, 70, 58, 43, 101, 67, 43, 100, 75, 43, 101, 84, 43, 101, 93, 43, 101, 102, 43, 103, 113, 43, 68, 120, 43, 104, 132, 43, 101, 141, 43, 100, 149, 43, 69, 157, 43, 70, 166, 43, 102, 176, 43, 70, 185, 43, 100, 193, 43, 68, 200, 43, 69, 208, 43, 102, 218, 43, 67, 224, 43, 68, 231, 43, 98, 237, 43, 101, 246, 43, 131, 254, 43, 98, 4, 44, 69, 12, 44, 70, 21, 44, 99, 28, 44, 102, 38, 44, 98, 44, 44, 104, 56, 44, 99, 63, 44, 99, 70, 44, 102, 80, 44, 69, 88, 44, 101, 97, 44, 104, 109, 44, 102, 119, 44, 102, 129, 44, 102, 139, 44, 100, 147, 44, 67, 153, 44, 100, 161, 44, 69, 169, 44, 132, 178, 44, 100, 186, 44, 102, 196, 44, 101, 205, 44, 68, 212, 44, 71, 222, 44, 69, 230, 44, 102, 240, 44, 103, 251, 44, 101, 4, 45, 106, 18, 45, 107, 33, 45, 38, 41, 45, 102, 51, 45, 101, 60, 45, 103, 71, 45, 104, 83, 45, 101, 92, 45, 101, 101, 45, 100, 109, 45, 101, 118, 45, 100, 126, 45, 67, 132, 45, 66, 137, 45, 67, 143, 45, 67, 149, 45, 68, 156, 45, 100, 164, 45, 36, 170, 45, 101, 179, 45, 107, 194, 45, 108, 210, 45, 109, 227, 45, 67, 233, 45, 102, 243, 45, 102, 253, 45, 101, 6, 46, 102, 16, 46, 131, 24, 46, 101, 33, 46, 69, 41, 46, 100, 49, 46, 101, 58, 46, 101, 67, 46, 68, 74, 46, 132, 83, 46, 102, 93, 46, 100, 101, 46, 101, 110, 46, 104, 122, 46, 69, 130, 46, 70, 139, 46, 102, 149, 46, 69, 157, 46, 70, 166, 46, 102, 176, 46, 102, 186, 46, 102, 196, 46, 102, 206, 46, 102, 216, 46, 69, 224, 46, 70, 233, 46, 102, 243, 46, 102, 253, 46, 102, 7, 47, 102, 17, 47, 102, 27, 47, 102, 37, 47, 101, 46, 47, 101, 55, 47, 132, 64, 47, 98, 70, 47, 99, 77, 47, 70, 86, 47, 69, 94, 47, 70, 103, 47, 99, 110, 47, 70, 119, 47, 69, 127, 47, 67, 133, 47, 68, 140, 47, 98, 146, 47, 99, 153, 47, 99, 160, 47, 100, 168, 47, 104, 180, 47, 99, 187, 47, 101, 196, 47, 102, 206, 47, 103, 217, 47, 104, 229, 47, 196, 240, 47, 102, 250, 47, 131, 2, 48, 98, 8, 48, 99, 15, 48, 101, 24, 48, 68, 31, 48, 98, 37, 48, 99, 44, 48, 99, 51, 48, 99, 58, 48, 99, 65, 48, 100, 73, 48, 104, 85, 48, 99, 92, 48, 100, 100, 48, 101, 109, 48, 101, 118, 48, 132, 127, 48, 37, 134, 48, 100, 142, 48, 100, 150, 48, 101, 159, 48, 101, 168, 48, 33, 171, 48, 34, 175, 48, 100, 183, 48, 101, 192, 48, 101, 201, 48, 102, 211, 48, 103, 222, 48, 105, 235, 48, 102, 245, 48, 102, 255, 48, 105, 12, 49, 106, 26, 49, 103, 37, 49, 102, 47, 49, 201, 63, 49, 196, 74, 49, 100, 82, 49, 102, 92, 49, 68, 99, 49, 102, 109, 49, 70, 118, 49, 100, 126, 49, 103, 137, 49, 101, 146, 49, 100, 154, 49, 69, 162, 49, 102, 172, 49, 105, 185, 49, 102, 195, 49, 102, 205, 49, 131, 213, 49, 104, 225, 49, 104, 237, 49, 101, 246, 49, 102, 0, 50, 109, 17, 50, 110, 35, 50, 132, 44, 50, 102, 54, 50, 132, 63, 50, 102, 73, 50, 70, 82, 50, 102, 92, 50, 102, 102, 50, 69, 110, 50, 70, 119, 50, 98, 125, 50, 68, 132, 50, 69, 140, 50, 67, 146, 50, 68, 153, 50, 68, 160, 50, 69, 168, 50, 99, 175, 50, 131, 183, 50, 69, 191, 50, 70, 200, 50, 98, 206, 50, 102, 216, 50, 101, 225, 50, 102, 235, 50, 101, 244, 50, 69, 252, 50, 69, 4, 51, 101, 13, 51, 104, 25, 51, 104, 37, 51, 69, 45, 51, 100, 53, 51, 69, 61, 51, 98, 67, 51, 102, 77, 51, 101, 86, 51, 104, 98, 51, 70, 107, 51, 99, 114, 51, 102, 124, 51, 104, 136, 51, 104, 148, 51, 104, 160, 51, 103, 171, 51, 68, 178, 51, 69, 186, 51, 132, 195, 51, 68, 202, 51, 101, 211, 51, 69, 219, 51, 70, 228, 51, 132, 237, 51, 100, 245, 51, 101, 254, 51, 103, 9, 52, 101, 18, 52, 102, 28, 52, 101, 37, 52, 98, 43, 52, 70, 52, 52, 69, 60, 52, 67, 66, 52, 68, 73, 52, 69, 81, 52, 67, 87, 52, 131, 95, 52, 69, 103, 52, 132, 112, 52, 132, 121, 52, 70, 130, 52, 69, 138, 52, 69, 146, 52, 70, 155, 52, 70, 164, 52, 67, 170, 52, 131, 178, 52, 70, 187, 52, 68, 194, 52, 68, 201, 52, 132, 210, 52, 132, 219, 52, 101, 228, 52, 100, 236, 52, 102, 246, 52, 101, 255, 52, 98, 5, 53, 99, 12, 53, 100, 20, 53, 70, 29, 53, 104, 41, 53, 102, 51, 53, 70, 60, 53, 100, 68, 53, 101, 77, 53, 102, 87, 53, 99, 94, 53, 68, 101, 53, 69, 109, 53, 100, 117, 53, 101, 126, 53, 103, 137, 53, 102, 147, 53, 102, 157, 53, 102, 167, 53, 102, 177, 53, 103, 188, 53, 102, 198, 53, 99, 205, 53, 102, 215, 53, 100, 223, 53, 197, 235, 53, 101, 244, 53, 101, 253, 53, 38, 5, 54, 38, 13, 54, 101, 22, 54, 103, 33, 54, 103, 44, 54, 70, 53, 54, 70, 62, 54, 101, 71, 54, 36, 77, 54, 67, 83, 54, 100, 91, 54, 101, 100, 54, 102, 110, 54, 103, 121, 54, 104, 133, 54, 100, 141, 54, 98, 147, 54, 105, 160, 54, 109, 177, 54, 111, 196, 54, 109, 213, 54, 110, 231, 54, 110, 249, 54, 111, 12, 55, 113, 33, 55, 115, 56, 55, 110, 74, 55, 99, 81, 55, 99, 88, 55, 100, 96, 55, 104, 108, 55, 99, 115, 55, 101, 124, 55, 102, 134, 55, 103, 145, 55, 104, 157, 55, 196, 168, 55, 102, 178, 55, 106, 192, 55, 103, 203, 55, 105, 216, 55, 106, 230, 55, 103, 241, 55, 103, 252, 55, 102, 6, 56, 102, 16, 56, 131, 24, 56, 98, 30, 56, 99, 37, 56, 101, 46, 56, 101, 55, 56, 102, 65, 56, 101, 74, 56, 68, 81, 56, 98, 87, 56, 101, 96, 56, 104, 108, 56, 102, 118, 56, 101, 127, 56, 70, 136, 56, 102, 146, 56, 106, 160, 56, 99, 167, 56, 100, 175, 56, 104, 187, 56, 99, 194, 56, 100, 202, 56, 101, 211, 56, 101, 220, 56, 101, 229, 56, 101, 238, 56, 101, 247, 56, 109, 8, 57, 114, 30, 57, 106, 44, 57, 110, 62, 57, 109, 79, 57, 110, 97, 57, 101, 106, 57, 132, 115, 57, 102, 125, 57, 103, 136, 57, 102, 146, 57, 38, 154, 57, 99, 161, 57, 103, 172, 57, 100, 180, 57, 36, 186, 57, 102, 196, 57, 101, 205, 57, 104, 217, 57, 101, 226, 57, 102, 236, 57, 99, 243, 57, 101, 252, 57, 102, 6, 58, 132, 15, 58, 99, 22, 58, 100, 30, 58, 101, 39, 58, 101, 48, 58, 36, 54, 58, 101, 63, 58, 102, 73, 58, 70, 82, 58, 33, 85, 58, 34, 89, 58, 100, 97, 58, 101, 106, 58, 101, 115, 58, 102, 125, 58, 102, 135, 58, 102, 145, 58, 103, 156, 58, 102, 166, 58, 100, 174, 58, 101, 183, 58, 101, 192, 58, 104, 204, 58, 103, 215, 58, 201, 231, 58, 196, 242, 58, 101, 251, 58, 67, 1, 59, 68, 8, 59, 100, 16, 59, 100, 24, 59, 103, 35, 59, 99, 42, 59, 102, 52, 59, 106, 66, 59, 106, 80, 59, 104, 92, 59, 102, 102, 59, 102, 112, 59, 67, 118, 59, 101, 127, 59, 109, 144, 59, 131, 152, 59, 99, 159, 59, 68, 166, 59, 69, 174, 59, 99, 181, 59, 38, 189, 59, 102, 199, 59, 69, 207, 59, 70, 216, 59, 101, 225, 59, 102, 235, 59, 102, 245, 59, 103, 0, 60, 100, 8, 60, 100, 16, 60, 102, 26, 60, 102, 36, 60, 132, 45, 60, 98, 51, 60, 132, 60, 60, 102, 70, 60, 66, 75, 60, 104, 87, 60, 101, 96, 60, 163, 105, 60, 195, 115, 60, 164, 125, 60, 106, 139, 60, 111, 158, 60, 163, 167, 60, 195, 177, 60, 164, 187, 60, 107, 202, 60, 102, 212, 60, 102, 222, 60, 101, 231, 60, 70, 240, 60, 196, 251, 60, 99, 2, 61, 164, 12, 61, 165, 23, 61, 69, 31, 61, 103, 42, 61, 101, 51, 61, 103, 62, 61, 104, 74, 61, 67, 80, 61, 68, 87, 61, 165, 98, 61, 166, 110, 61, 100, 118, 61, 70, 127, 61, 70, 136, 61, 101, 145, 61, 168, 159, 61, 100, 167, 61, 67, 173, 61, 101, 182, 61, 98, 188, 61, 101, 197, 61, 102, 207, 61, 101, 216, 61, 103, 227, 61, 165, 238, 61, 102, 248, 61, 102, 2, 62, 165, 13, 62, 102, 23, 62, 103, 34, 62, 131, 42, 62, 163, 51, 62, 99, 58, 62, 100, 66, 62, 165, 77, 62, 169, 92, 62, 164, 102, 62, 101, 111, 62, 99, 118, 62, 100, 126, 62, 101, 135, 62, 101, 144, 62, 101, 153, 62, 98, 159, 62, 99, 166, 62, 100, 174, 62, 99, 181, 62, 68, 188, 62, 101, 197, 62, 163, 206, 62, 101, 215, 62, 100, 223, 62, 99, 230, 62, 106, 244, 62, 111, 7, 63, 100, 15, 63, 165, 26, 63, 169, 41, 63, 164, 51, 63, 101, 60, 63, 101, 69, 63, 99, 76, 63, 101, 85, 63, 102, 95, 63, 100, 103, 63, 132, 112, 63, 66, 117, 63, 67, 123, 63, 101, 132, 63, 166, 144, 63, 168, 158, 63, 103, 169, 63, 103, 180, 63, 103, 191, 63, 101, 200, 63, 103, 211, 63, 103, 222, 63, 103, 233, 63, 100, 241, 63, 105, 254, 63, 198, 11, 64, 165, 22, 64, 103, 33, 64, 99, 40, 64, 102, 50, 64, 164, 60, 64, 101, 69, 64, 167, 82, 64, 101, 91, 64, 101, 100, 64, 166, 112, 64, 166, 124, 64, 107, 139, 64, 101, 148, 64, 102, 158, 64, 99, 165, 64, 102, 175, 64, 164, 185, 64, 132, 194, 64, 105, 207, 64, 110, 225, 64, 100, 233, 64, 101, 242, 64, 102, 252, 64, 101, 5, 65, 101, 14, 65, 103, 25, 65, 103, 36, 65, 100, 44, 65, 165, 55, 65, 101, 64, 65, 199, 78, 65, 105, 91, 65, 170, 107, 65, 101, 116, 65, 167, 129, 65, 100, 137, 65, 165, 148, 65, 101, 157, 65, 199, 171, 65, 105, 184, 65, 170, 200, 65, 100, 208, 65, 69, 216, 65, 70, 225, 65, 100, 233, 65, 109, 250, 65, 111, 13, 66, 110, 31, 66, 112, 51, 66, 66, 56, 66, 35, 61, 66, 102, 71, 66, 101, 80, 66, 102, 90, 66, 102, 100, 66, 196, 111, 66, 102, 121, 66, 196, 132, 66, 132, 141, 66, 103, 152, 66, 102, 162, 66, 196, 173, 66, 132, 182, 66, 199, 196, 66, 102, 206, 66, 199, 220, 66, 197, 232, 66, 101, 241, 66, 102, 251, 66, 101, 4, 67, 103, 15, 67, 102, 25, 67, 98, 31, 67, 69, 39, 67, 70, 48, 67, 100, 56, 67, 100, 64, 67, 68, 71, 67, 69, 79, 67, 67, 85, 67, 101, 94, 67, 70, 103, 67, 100, 111, 67, 100, 119, 67, 102, 129, 67, 69, 137, 67, 101, 146, 67, 131, 154, 67, 68, 161, 67, 69, 169, 67, 70, 178, 67, 99, 185, 67, 101, 194, 67, 67, 200, 67, 100, 208, 67, 101, 217, 67, 101, 226, 67, 103, 237, 67, 101, 246, 67, 99, 253, 67, 69, 5, 68, 69, 13, 68, 71, 23, 68, 100, 31, 68, 102, 41, 68, 132, 50, 68, 100, 58, 68, 101, 67, 68, 101, 76, 68, 98, 82, 68, 101, 91, 68, 99, 98, 68, 101, 107, 68, 103, 118, 68, 67, 124, 68, 68, 131, 68, 67, 137, 68, 68, 144, 68, 102, 154, 68, 100, 162, 68, 103, 173, 68, 99, 180, 68, 100, 188, 68, 69, 196, 68, 70, 205, 68, 100, 213, 68, 69, 221, 68, 70, 230, 68, 102, 240, 68, 104, 252, 68, 67, 2, 69, 68, 9, 69, 101, 18, 69, 99, 25, 69, 67, 31, 69, 68, 38, 69, 104, 50, 69, 102, 60, 69, 101, 69, 69, 100, 77, 69, 67, 83, 69, 38, 91, 69, 38, 99, 69, 102, 109, 69, 100, 117, 69, 103, 128, 69, 131, 136, 69, 67, 142, 69, 68, 149, 69, 102, 159, 69, 101, 168, 69, 66, 173, 69, 105, 186, 69, 67, 192, 69, 102, 202, 69, 103, 213, 69, 102, 223, 69, 36, 229, 69, 104, 241, 69, 101, 250, 69, 103, 5, 70, 102, 15, 70, 102, 25, 70, 101, 34, 70, 69, 42, 70, 70, 51, 70, 103, 62, 70, 103, 73, 70, 66, 78, 70, 104, 90, 70, 132, 99, 70, 68, 106, 70, 69, 114, 70, 98, 120, 70, 99, 127, 70, 100, 135, 70, 101, 144, 70, 99, 151, 70, 100, 159, 70, 106, 173, 70, 107, 188, 70, 102, 198, 70, 107, 213, 70, 104, 225, 70, 104, 237, 70, 103, 248, 70, 101, 1, 71, 102, 11, 71, 100, 19, 71, 101, 28, 71, 102, 38, 71, 100, 46, 71, 104, 58, 71, 104, 70, 71, 104, 82, 71, 100, 90, 71, 102, 100, 71, 101, 109, 71, 102, 119, 71, 132, 128, 71, 67, 134, 71, 102, 144, 71, 131, 152, 71, 100, 160, 71, 132, 169, 71, 102, 179, 71, 132, 188, 71, 107, 203, 71, 103, 214, 71, 37, 221, 71, 103, 232, 71, 35, 237, 71, 36, 243, 71, 101, 252, 71, 100, 4, 72, 102, 14, 72, 101, 23, 72, 100, 31, 72, 164, 41, 72, 70, 50, 72, 101, 59, 72, 104, 71, 72, 100, 79, 72, 101, 88, 72, 101, 97, 72, 102, 107, 72, 68, 114, 72, 69, 122, 72, 100, 130, 72, 102, 140, 72, 101, 149, 72, 103, 160, 72, 101, 169, 72, 102, 179, 72, 102, 189, 72, 102, 199, 72, 102, 209, 72, 103, 220, 72, 102, 230, 72, 101, 239, 72, 102, 249, 72, 101, 2, 73, 105, 15, 73, 101, 24, 73, 101, 33, 73, 38, 41, 73, 38, 49, 73, 101, 58, 73, 103, 69, 73, 103, 80, 73, 70, 89, 73, 70, 98, 73, 101, 107, 73, 36, 113, 73, 67, 119, 73, 100, 127, 73, 103, 138, 73, 101, 147, 73, 102, 157, 73, 100, 165, 73, 100, 173, 73, 103, 184, 73, 104, 196, 73, 101, 205, 73, 100, 213, 73, 66, 218, 73, 67, 224, 73, 102, 234, 73, 102, 244, 73, 131, 252, 73, 101, 5, 74, 101, 14, 74, 102, 24, 74, 67, 30, 74, 68, 37, 74, 106, 51, 74, 110, 69, 74, 112, 89, 74, 110, 107, 74, 111, 126, 74, 113, 147, 74, 112, 167, 74, 111, 186, 74, 111, 205, 74, 68, 212, 74, 108, 228, 74, 101, 237, 74, 101, 246, 74, 99, 253, 74, 102, 7, 75, 106, 21, 75, 101, 30, 75, 101, 39, 75, 101, 48, 75, 101, 57, 75, 101, 66, 75, 132, 75, 75, 102, 85, 75, 103, 96, 75, 36, 102, 75, 102, 112, 75, 104, 124, 75, 101, 133, 75, 102, 143, 75, 132, 152, 75, 99, 159, 75, 36, 165, 75, 101, 174, 75, 102, 184, 75, 102, 194, 75, 102, 204, 75, 100, 212, 75, 101, 221, 75, 101, 230, 75, 104, 242, 75, 103, 253, 75, 98, 3, 76, 70, 12, 76, 101, 21, 76, 98, 27, 76, 99, 34, 76, 100, 42, 76, 70, 51, 76, 101, 60, 76, 99, 67, 76, 70, 76, 76, 69, 84, 76, 100, 92, 76, 101, 101, 76, 102, 111, 76, 104, 123, 76, 101, 132, 76, 67, 138, 76, 100, 146, 76, 101, 155, 76, 101, 164, 76, 101, 173, 76, 102, 183, 76, 101, 192, 76, 103, 203, 76, 67, 209, 76, 68, 216, 76, 36, 222, 76, 102, 232, 76, 104, 244, 76, 101, 253, 76, 100, 5, 77, 131, 13, 77, 102, 23, 77, 101, 32, 77, 70, 41, 77, 68, 48, 77, 104, 60, 77, 109, 77, 77, 66, 82, 77, 67, 88, 77, 69, 96, 77, 70, 105, 77, 70, 114, 77, 99, 121, 77, 102, 131, 77, 100, 139, 77, 101, 148, 77, 100, 156, 77, 101, 165, 77, 100, 173, 77, 101, 182, 77, 101, 191, 77, 103, 202, 77, 103, 213, 77, 101, 222, 77, 109, 239, 77, 102, 249, 77, 104, 5, 78, 100, 13, 78, 101, 22, 78, 99, 29, 78, 100, 37, 78, 197, 49, 78, 70, 58, 78, 35, 63, 78, 100, 71, 78, 102, 81, 78, 132, 90, 78, 102, 100, 78, 105, 113, 78, 100, 121, 78, 101, 130, 78, 198, 143, 78, 101, 152, 78, 198, 165, 78, 101, 174, 78, 102, 184, 78, 104, 196, 78, 106, 210, 78, 101, 219, 78, 102, 229, 78, 104, 241, 78, 106, 255, 78, 99, 6, 79, 102, 16, 79, 102, 26, 79, 100, 34, 79, 101, 43, 79, 132, 52, 79, 102, 62, 79, 102, 72, 79, 102, 82, 79, 100, 90, 79, 101, 99, 79, 79, 117, 79, 75, 131, 79, 69, 139, 79, 99, 146, 79, 100, 154, 79, 102, 164, 79, 100, 172, 79, 103, 183, 79, 103, 194, 79, 101, 203, 79, 101, 212, 79, 103, 223, 79, 103, 234, 79, 102, 244, 79, 104, 0, 80, 105, 13, 80, 105, 26, 80, 106, 40, 80, 102, 50, 80, 102, 60, 80, 102, 70, 80, 100, 78, 80, 106, 92, 80, 107, 107, 80, 102, 117, 80, 107, 132, 80, 104, 144, 80, 104, 156, 80, 103, 167, 80, 99, 174, 80, 100, 182, 80, 67, 188, 80, 68, 195, 80, 67, 201, 80, 68, 208, 80, 67, 214, 80, 68, 221, 80, 99, 228, 80, 100, 236, 80, 102, 246, 80, 103, 1, 81, 100, 9, 81, 103, 20, 81, 103, 31, 81, 103, 42, 81, 103, 53, 81, 103, 64, 81, 101, 73, 81, 101, 82, 81, 103, 93, 81, 102, 103, 81, 104, 115, 81, 105, 128, 81, 105, 141, 81, 106, 155, 81, 102, 165, 81, 102, 175, 81, 102, 185, 81, 101, 194, 81, 102, 204, 81, 101, 213, 81, 103, 224, 81, 102, 234, 81, 68, 241, 81, 69, 249, 81, 102, 3, 82, 67, 9, 82, 100, 17, 82, 70, 26, 82, 70, 35, 82, 67, 41, 82, 100, 49, 82, 102, 59, 82, 131, 67, 82, 102, 77, 82, 105, 90, 82, 69, 98, 82, 72, 109, 82, 70, 118, 82, 107, 133, 82, 104, 145, 82, 102, 155, 82, 101, 164, 82, 102, 174, 82, 68, 181, 82, 69, 189, 82, 69, 197, 82, 68, 204, 82, 69, 212, 82, 102, 222, 82, 104, 234, 82, 102, 244, 82, 100, 252, 82, 100, 4, 83, 99, 11, 83, 102, 21, 83, 102, 31, 83, 132, 40, 83, 103, 51, 83, 100, 59, 83, 102, 69, 83, 101, 78, 83, 104, 90, 83, 108, 106, 83, 108, 122, 83, 110, 140, 83, 105, 153, 83, 109, 170, 83, 111, 189, 83, 102, 199, 83, 100, 207, 83, 104, 219, 83, 103, 230, 83, 101, 239, 83, 103, 250, 83, 104, 6, 84, 132, 15, 84, 68, 22, 84, 69, 30, 84, 70, 39, 84, 101, 48, 84, 112, 68, 84, 113, 89, 84, 100, 97, 84, 100, 105, 84, 69, 113, 84, 70, 122, 84, 100, 130, 84, 69, 138, 84, 70, 147, 84, 68, 154, 84, 69, 162, 84, 67, 168, 84, 101, 177, 84, 70, 186, 84, 101, 195, 84, 102, 205, 84, 131, 213, 84, 69, 221, 84, 70, 230, 84, 101, 239, 84, 101, 248, 84, 101, 1, 85, 102, 11, 85, 104, 23, 85, 102, 33, 85, 101, 42, 85, 69, 50, 85, 66, 55, 85, 67, 61, 85, 69, 69, 85, 132, 78, 85, 103, 89, 85, 107, 104, 85, 109, 121, 85, 110, 139, 85, 101, 148, 85, 68, 155, 85, 69, 163, 85, 71, 173, 85, 106, 187, 85, 102, 197, 85, 104, 209, 85, 102, 219, 85, 69, 227, 85, 101, 236, 85, 132, 245, 85, 101, 254, 85, 70, 7, 86, 100, 15, 86, 101, 24, 86, 101, 33, 86, 67, 39, 86, 68, 46, 86, 103, 57, 86, 100, 65, 86, 100, 73, 86, 101, 82, 86, 101, 91, 86, 102, 101, 86, 74, 114, 86, 72, 125, 86, 106, 139, 86, 70, 148, 86, 69, 156, 86, 105, 169, 86, 100, 177, 86, 70, 186, 86, 72, 197, 86, 204, 216, 86, 205, 236, 86, 204, 255, 86, 205, 19, 87, 72, 30, 87, 111, 49, 87, 112, 69, 87, 67, 75, 87, 101, 84, 87, 99, 91, 87, 102, 101, 87, 101, 110, 87, 102, 120, 87, 38, 128, 87, 36, 134, 87, 131, 142, 87, 101, 151, 87, 197, 163, 87, 197, 175, 87, 132, 184, 87, 101, 193, 87, 101, 202, 87, 132, 211, 87, 198, 224, 87, 198, 237, 87, 198, 250, 87, 198, 7, 88, 103, 18, 88, 69, 26, 88, 102, 36, 88, 101, 45, 88, 102, 55, 88, 102, 65, 88, 131, 73, 88, 132, 82, 88, 98, 88, 88, 98, 94, 88, 102, 104, 88, 132, 113, 88, 100, 121, 88, 101, 130, 88, 100, 138, 88, 101, 147, 88, 131, 155, 88, 101, 164, 88, 101, 173, 88, 66, 178, 88, 101, 187, 88, 101, 196, 88, 100, 204, 88, 100, 212, 88, 101, 221, 88, 132, 230, 88, 102, 240, 88, 102, 250, 88, 101, 3, 89, 101, 12, 89, 132, 21, 89, 102, 31, 89, 102, 41, 89, 101, 50, 89, 100, 58, 89, 102, 68, 89, 69, 76, 89, 70, 85, 89, 68, 92, 89, 69, 100, 89, 67, 106, 89, 66, 111, 89, 67, 117, 89, 131, 125, 89, 68, 132, 89, 132, 141, 89, 132, 150, 89, 68, 157, 89, 67, 163, 89, 68, 170, 89, 70, 179, 89, 70, 188, 89, 67, 194, 89, 68, 201, 89, 102, 211, 89, 68, 218, 89, 131, 226, 89, 68, 233, 89, 103, 244, 89, 132, 253, 89, 132, 6, 90, 99, 13, 90, 100, }; /* Entries are 3 bytes: offset (2, little-endian) | (namelen - 1) | (vallen << 5). */ static uint32_t lookup(const unsigned char* key, uint32_t key_len, const unsigned char** out) { uint32_t lo = 0, hi = TABLE_ENTRIES; while (lo < hi) { uint32_t mid = lo + (hi - lo) / 2; const unsigned char* e = &table_entries[mid * 3]; uint32_t off = (uint32_t)e[0] | ((uint32_t)e[1] << 8); uint32_t nl = (e[2] & 0x1F) + 1; uint32_t vl = e[2] >> 5; int cmp = 0; uint32_t n = nl < key_len ? nl : key_len; for (uint32_t k = 0; k < n; k++) { if (table_blob[off + k] != key[k]) { cmp = table_blob[off + k] < key[k] ? -1 : 1; break; } } if (cmp == 0) { if (nl != key_len) { cmp = nl < key_len ? -1 : 1; } else { *out = &table_blob[off + nl]; return vl; } } if (cmp < 0) lo = mid + 1; else hi = mid; } return 0; } static inline void emit_byte(uint8_t b) { buffer[out_len++] = b; } static inline void emit(const unsigned char* p, uint32_t n) { for (uint32_t k = 0; k < n; k++) buffer[out_len++] = p[k]; } static void emit_code_point(uint32_t cp) { if (cp < 0x80) { emit_byte((uint8_t)cp); } else if (cp < 0x800) { emit_byte((uint8_t)(0xC0 | (cp >> 6))); emit_byte((uint8_t)(0x80 | (cp & 0x3F))); } else if (cp < 0x10000) { emit_byte((uint8_t)(0xE0 | (cp >> 12))); emit_byte((uint8_t)(0x80 | ((cp >> 6) & 0x3F))); emit_byte((uint8_t)(0x80 | (cp & 0x3F))); } else { emit_byte((uint8_t)(0xF0 | (cp >> 18))); emit_byte((uint8_t)(0x80 | ((cp >> 12) & 0x3F))); emit_byte((uint8_t)(0x80 | ((cp >> 6) & 0x3F))); emit_byte((uint8_t)(0x80 | (cp & 0x3F))); } } /* The reference's named character class: anything but \t \n \f space < & # ;. */ static inline int name_char(uint8_t c) { return c != '\t' && c != '\n' && c != 0x0C && c != ' ' && c != '<' && c != '&' && c != '#' && c != ';'; } static uint32_t digit(const unsigned char* text, uint32_t len, uint32_t i, int hex); /* text[at] is '&' and text[at+1] is '#'. Returns the index after what was consumed. */ static uint32_t numeric_ref(const unsigned char* text, uint32_t len, uint32_t at) { uint32_t i = at + 2; int hex = 0; if (i < len && (text[i] == 'x' || text[i] == 'X')) { hex = 1; i += 1; } uint32_t first = digit(text, len, i, hex); if (first == 0xFFFFFFFFu) { emit_byte('&'); return at + 1; } uint32_t value = first; uint32_t mult = hex ? 16 : 10; i += 1; while (i < len) { uint32_t d = digit(text, len, i, hex); if (d == 0xFFFFFFFFu) break; /* Saturate: anything past U+10FFFF becomes U+FFFD the same way. */ value = value * mult + d; if (value > 0x110000u) value = 0x110000u; i += 1; } if (i < len && text[i] == ';') i += 1; uint32_t v = value; if (v >= 0x80 && v <= 0x9F && c1[v - 0x80] != 0) v = c1[v - 0x80]; if (v == 0 || (v >= 0xD800 && v <= 0xDFFF) || v > 0x10FFFF) v = 0xFFFD; emit_code_point(v); return i; } static uint32_t digit(const unsigned char* text, uint32_t len, uint32_t i, int hex) { if (i >= len) return 0xFFFFFFFFu; uint8_t c = text[i]; if (c >= '0' && c <= '9') return c - '0'; if (hex && c >= 'a' && c <= 'f') return c - 'a' + 10; if (hex && c >= 'A' && c <= 'F') return c - 'A' + 10; return 0xFFFFFFFFu; } /* text[at] is '&' and the next byte is a name character. */ static uint32_t named_ref(const unsigned char* text, uint32_t len, uint32_t at) { uint32_t end = at + 1; while (end < len && end - (at + 1) < 32 && name_char(text[end])) end += 1; if (end < len && text[end] == ';') end += 1; const unsigned char* name = text + at + 1; uint32_t name_len = end - (at + 1); const unsigned char* value; uint32_t vl = lookup(name, name_len, &value); if (vl) { emit(value, vl); return end; } /* Longest table-key prefix wins; the rest (possibly including ';') is copied. */ for (uint32_t x = name_len - 1; x >= 2; x -= 1) { vl = lookup(name, x, &value); if (vl) { emit(value, vl); emit(name + x, name_len - x); return end; } } emit_byte('&'); return at + 1; } /* text[at] is '&'. Returns the index after what was consumed. */ static uint32_t handle_ref(const unsigned char* text, uint32_t len, uint32_t at) { if (at + 1 >= len) { emit_byte('&'); return at + 1; } uint8_t c = text[at + 1]; if (c == '#') return numeric_ref(text, len, at); if (name_char(c)) return named_ref(text, len, at); emit_byte('&'); return at + 1; } EXPORT uint64_t render(uint32_t len) { if (len > INPUT_CAP) len = INPUT_CAP; const unsigned char* text = buffer + GAP; out_len = 0; uint32_t i = 0; while (i < len) { if (text[i] != '&') { buffer[out_len++] = text[i]; i += 1; } else { i = handle_ref(text, len, i); } } return ((uint64_t)(uint32_t)buffer << 32) | out_len; }