Files
crosspoint-reader-mod/lib/EpdFont/builtinFonts/notosans_12_regular.h

2332 lines
174 KiB
C
Raw Normal View History

Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
/**
* generated by fontconvert.py
* name: notosans_12_regular
* size: 12
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
* mode: 2-bit compressed: true
* Command used: fontconvert.py notosans_12_regular 12 ../builtinFonts/source/NotoSans/NotoSans-Regular.ttf --2bit --compress
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
*/
#pragma once
#include "EpdFontData.h"
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
static const uint8_t notosans_12_regularBitmaps[22318] = {
0xAD, 0x58, 0x41, 0x6C, 0xDC, 0xC6, 0x15, 0xFD, 0x24, 0xE5, 0xB0, 0x0D, 0x81, 0x4C, 0x0E, 0x29,
0x9A, 0xDA, 0x96, 0x78, 0xC9, 0xA1, 0x08, 0xB4, 0xCB, 0xAB, 0x0A, 0x90, 0xBB, 0x74, 0x0C, 0xD4,
0x40, 0x7D, 0xB0, 0x0A, 0x58, 0x3E, 0xB4, 0x07, 0x5F, 0x7A, 0x68, 0xDD, 0xD6, 0xB9, 0x08, 0x85,
0x92, 0x52, 0xDE, 0x69, 0x7C, 0xF4, 0xC1, 0xCE, 0xA1, 0xBD, 0x26, 0x68, 0x2F, 0x8D, 0x8C, 0x5A,
0x2A, 0x20, 0xB4, 0x84, 0xBB, 0x12, 0xE9, 0x18, 0x85, 0x0F, 0x06, 0x6A, 0x26, 0x86, 0x91, 0x83,
0x81, 0x9A, 0xB0, 0x1D, 0x04, 0xB1, 0x80, 0x68, 0x2C, 0x31, 0x12, 0x2D, 0xED, 0xEE, 0xF4, 0x7D,
0x72, 0xA5, 0xD8, 0xB2, 0xDD, 0x26, 0x40, 0x57, 0xC3, 0xE5, 0xCC, 0x2C, 0x39, 0xFF, 0xCF, 0xFF,
0xEF, 0xFF, 0xF7, 0x47, 0xAD, 0x56, 0xAB, 0x15, 0x34, 0xF0, 0x19, 0x3F, 0x78, 0xF0, 0x20, 0x51,
0xAB, 0xDD, 0x1A, 0x89, 0x1A, 0x51, 0xC3, 0x6F, 0x4C, 0x34, 0x26, 0x0E, 0x4E, 0x1C, 0x7C, 0xED,
0x5B, 0xE4, 0x18, 0x29, 0xBD, 0x64, 0xE2, 0xB2, 0x52, 0x1A, 0xB5, 0x24, 0x8D, 0x5B, 0xF2, 0xC5,
0xE5, 0x8B, 0x1F, 0xB8, 0x5A, 0x0F, 0x68, 0x46, 0x10, 0x4D, 0xBF, 0x44, 0xB4, 0x80, 0x4B, 0x8D,
0x52, 0x47, 0xEB, 0x92, 0x2F, 0x23, 0xF3, 0xC9, 0x4C, 0x27, 0x70, 0x4D, 0x93, 0x95, 0x2E, 0x90,
0x25, 0x15, 0xD1, 0x38, 0x37, 0x23, 0xB9, 0xE0, 0xEA, 0x5E, 0xEB, 0x57, 0x3F, 0x8F, 0xC6, 0xA9,
0x6E, 0xED, 0x2E, 0x39, 0x83, 0x90, 0x92, 0x82, 0x1A, 0x7D, 0x1A, 0xF7, 0x68, 0xDC, 0xC5, 0xF7,
0x5B, 0x8D, 0xA5, 0x8E, 0x2E, 0xF6, 0x2F, 0x87, 0xF5, 0x5B, 0xF4, 0x0A, 0x55, 0x9F, 0xB6, 0xA4,
0x05, 0x6B, 0x45, 0xDA, 0x72, 0xD4, 0x21, 0x9F, 0x16, 0x46, 0x8D, 0x0C, 0x52, 0x04, 0x09, 0xCA,
0x17, 0xA1, 0xD6, 0xD9, 0x14, 0x53, 0xE3, 0xDE, 0xEF, 0xF2, 0xBF, 0xDE, 0x5B, 0x3D, 0xBB, 0x72,
0x63, 0x4C, 0x58, 0xE5, 0xCC, 0xC2, 0x28, 0x59, 0x57, 0xA1, 0xC5, 0xA8, 0x30, 0x72, 0x52, 0xBE,
0x2D, 0x9D, 0x10, 0x53, 0xBE, 0x91, 0x2D, 0x98, 0xA9, 0x75, 0x3B, 0x1D, 0x23, 0xBB, 0x47, 0xBB,
0x1F, 0xB7, 0x4F, 0x64, 0x6F, 0x17, 0x44, 0xA5, 0x23, 0xB1, 0x68, 0x44, 0x54, 0xD8, 0x29, 0x39,
0xB2, 0x24, 0x0A, 0xDA, 0x44, 0x86, 0x96, 0x78, 0x26, 0x27, 0x12, 0xAB, 0xA1, 0xB0, 0xD4, 0x19,
0x23, 0x8F, 0x8C, 0x32, 0x70, 0xA4, 0xFD, 0x59, 0x1A, 0x93, 0x5B, 0x38, 0x29, 0x25, 0xD4, 0x22,
0xAF, 0x34, 0x75, 0xF2, 0x49, 0x6E, 0xEB, 0xDC, 0x95, 0xBC, 0xE8, 0xEC, 0xFA, 0xBF, 0x26, 0xEE,
0x86, 0x66, 0x16, 0x89, 0x43, 0x2A, 0xB0, 0xD2, 0xC8, 0x91, 0x85, 0x08, 0x95, 0x20, 0x7C, 0xC7,
0x4E, 0xEA, 0x5B, 0x99, 0x47, 0xCA, 0x4E, 0x1B, 0x3E, 0xC4, 0x15, 0x86, 0xB2, 0x32, 0x47, 0xBA,
0xD8, 0x5B, 0x81, 0x4E, 0xD8, 0xE0, 0x1B, 0xF4, 0x30, 0x73, 0x11, 0xE2, 0xCB, 0x25, 0x58, 0x11,
0x4A, 0xF9, 0xDC, 0xC2, 0x89, 0x91, 0xC1, 0x5B, 0x83, 0x04, 0x3E, 0xE8, 0x93, 0xB1, 0x4A, 0xD6,
0xB5, 0x54, 0x9C, 0xCD, 0x1D, 0x23, 0x63, 0x91, 0xE3, 0xC3, 0x67, 0xEA, 0x36, 0xB7, 0x3C, 0xA7,
0xB5, 0x7E, 0x7C, 0x86, 0x1B, 0x51, 0x33, 0xF0, 0xA3, 0x45, 0x45, 0x73, 0x7F, 0xD2, 0xFF, 0x9C,
0xAA, 0x1D, 0x0F, 0x5F, 0x51, 0x8C, 0x8D, 0x1B, 0x8A, 0x1A, 0xDC, 0x9F, 0x21, 0x11, 0x42, 0x66,
0x93, 0xFB, 0x11, 0x39, 0xDC, 0x1F, 0x23, 0x2B, 0xC3, 0xEB, 0x4E, 0xB5, 0x35, 0x4A, 0x72, 0xC2,
0xCA, 0x5D, 0x2B, 0x0F, 0xC8, 0x77, 0xC9, 0x39, 0x27, 0x8D, 0xB5, 0x9C, 0xA2, 0x45, 0x12, 0x01,
0x59, 0x37, 0x42, 0x5A, 0xC3, 0xA3, 0xB0, 0x0C, 0x8C, 0x7C, 0x2D, 0x35, 0xF3, 0x82, 0x0A, 0x17,
0xCF, 0x6E, 0xF5, 0xC8, 0xAB, 0x6D, 0x3E, 0xE3, 0x28, 0x7D, 0xE7, 0xBD, 0xE9, 0xC8, 0xC0, 0xFE,
0x5D, 0x7A, 0xEA, 0x86, 0x27, 0x5E, 0xD0, 0xB2, 0xAD, 0x55, 0x40, 0xBD, 0x4A, 0xE5, 0xA0, 0xFA,
0x86, 0x01, 0x62, 0xD6, 0xD0, 0xCE, 0x58, 0x3B, 0xCC, 0x15, 0xAC, 0x52, 0xDD, 0xD5, 0xD5, 0x07,
0x2F, 0x3A, 0x5A, 0x02, 0x3F, 0x13, 0xD4, 0x7D, 0xEC, 0xC5, 0x2E, 0xD9, 0xCA, 0xD2, 0xA1, 0x99,
0x28, 0xEE, 0x63, 0x57, 0xE4, 0x56, 0xAD, 0x25, 0xA9, 0x3B, 0xB8, 0x58, 0x74, 0xF4, 0x85, 0x4A,
0x2B, 0xAC, 0x2F, 0x52, 0xB2, 0x20, 0xF2, 0xB7, 0x29, 0x09, 0x9F, 0xE1, 0x43, 0xB1, 0x4F, 0xAE,
0x95, 0x5A, 0xA9, 0x4F, 0x8B, 0x16, 0x30, 0xE3, 0x73, 0x1F, 0x38, 0xDF, 0xAC, 0x84, 0x61, 0x69,
0xD8, 0xA7, 0xBE, 0xB9, 0xBA, 0x44, 0xC3, 0xD2, 0x8D, 0xAA, 0xD5, 0x82, 0xDB, 0xBC, 0x8B, 0x82,
0x0C, 0x2C, 0xD9, 0x22, 0xF2, 0x76, 0xE5, 0x4E, 0x52, 0xB7, 0x33, 0x5F, 0x78, 0x5A, 0x0E, 0xE1,
0xE7, 0x0C, 0xC8, 0xDB, 0x96, 0x5E, 0x08, 0x0F, 0xB0, 0x81, 0xB1, 0x28, 0x1B, 0x61, 0x26, 0xC9,
0x9B, 0x5B, 0x89, 0x93, 0x5B, 0x77, 0x15, 0x45, 0xF0, 0xCE, 0x18, 0xFB, 0x9A, 0x54, 0x41, 0x91,
0x4B, 0x81, 0xB9, 0x35, 0xA8, 0x50, 0x5B, 0x6D, 0xBD, 0xAD, 0x75, 0x4A, 0xA6, 0x62, 0x8B, 0xF0,
0x2E, 0x82, 0x4A, 0x8A, 0xA8, 0x16, 0x32, 0x81, 0x5A, 0xC5, 0x86, 0xE3, 0x59, 0x68, 0x00, 0x73,
0x01, 0xD9, 0x56, 0x5E, 0x49, 0xA8, 0x3C, 0x79, 0x9F, 0x06, 0x49, 0x58, 0x1A, 0xCA, 0xA7, 0x40,
0x90, 0x73, 0x38, 0xB3, 0xD2, 0xAE, 0x99, 0x3B, 0x9F, 0xE5, 0xEC, 0xE3, 0x33, 0x03, 0xEA, 0xDA,
0x2A, 0xA2, 0x56, 0x93, 0x6C, 0x76, 0x2B, 0x7C, 0x8C, 0x81, 0xF3, 0x20, 0xA1, 0xCE, 0x60, 0xA8,
0xBB, 0xA9, 0xA5, 0xD0, 0xAA, 0x45, 0x65, 0xC4, 0x2E, 0x6F, 0x2E, 0x92, 0x0B, 0x14, 0xC4, 0xE4,
0x45, 0xD4, 0xF1, 0xFE, 0xB0, 0xEA, 0xE8, 0x93, 0x34, 0x39, 0x56, 0x99, 0xC4, 0x67, 0x2D, 0x4C,
0xB5, 0x7F, 0x3E, 0x75, 0xAB, 0x77, 0xBF, 0xD7, 0x6E, 0xBF, 0x3A, 0x5C, 0x83, 0x21, 0xF8, 0xE2,
0x61, 0xD5, 0x7B, 0x75, 0x37, 0x20, 0x03, 0x61, 0x7F, 0x98, 0xAB, 0x89, 0xE1, 0x08, 0x79, 0xC8,
0x56, 0xE4, 0x66, 0xD4, 0x09, 0x8D, 0x3E, 0xD9, 0x05, 0x99, 0x45, 0x1D, 0x8F, 0x1D, 0x78, 0x2E,
0x09, 0xC9, 0x84, 0x81, 0xED, 0xE1, 0xB3, 0x89, 0xD6, 0xA7, 0xE6, 0xE6, 0x76, 0x17, 0xAA, 0x86,
0x1F, 0xA0, 0xF3, 0x7D, 0x98, 0x96, 0xDF, 0x90, 0x64, 0x40, 0xBC, 0x59, 0x56, 0x43, 0x78, 0xC6,
0x2E, 0xC9, 0xCB, 0x0C, 0xA0, 0x03, 0x33, 0xEF, 0xEF, 0xBE, 0xF6, 0x66, 0xE9, 0xE8, 0xFE, 0xB7,
0x19, 0x2D, 0x8A, 0xAD, 0x28, 0x58, 0x77, 0x84, 0x79, 0x8F, 0xAD, 0x1A, 0x11, 0x82, 0xCD, 0x0E,
0x87, 0xDB, 0xCF, 0x19, 0x34, 0xC8, 0x11, 0x2F, 0x43, 0x4D, 0xD8, 0x92, 0x6C, 0xAD, 0x01, 0xCA,
0x8C, 0x96, 0xD8, 0xD4, 0x1C, 0xCB, 0xD8, 0xB9, 0x2D, 0xBD, 0x47, 0xF6, 0x1B, 0x69, 0x7B, 0x5E,
0xE6, 0x2A, 0x40, 0x8A, 0x9C, 0x16, 0x34, 0xED, 0x8C, 0xDA, 0xB2, 0x61, 0x5E, 0x7F, 0x03, 0x4F,
0xAC, 0x65, 0xD3, 0x56, 0x36, 0x31, 0xED, 0x52, 0x31, 0x3A, 0x66, 0x7D, 0xBA, 0x7A, 0xD2, 0x4A,
0xDB, 0xB9, 0xA6, 0x45, 0x0A, 0x47, 0x58, 0x30, 0xD6, 0x05, 0x84, 0xB0, 0xDF, 0xCF, 0x7F, 0x09,
0xB0, 0x75, 0x74, 0xB6, 0xA3, 0x23, 0x63, 0x8F, 0xB7, 0x24, 0xE0, 0xC9, 0xB1, 0x45, 0xD8, 0x6C,
0x06, 0xA2, 0xD8, 0xCA, 0x30, 0x36, 0x02, 0xCE, 0x50, 0x22, 0x84, 0x23, 0xA5, 0xF5, 0xE0, 0x62,
0xCA, 0x4A, 0x89, 0xDF, 0x9F, 0x50, 0x80, 0x85, 0x02, 0x46, 0x63, 0x8E, 0x26, 0x06, 0x0A, 0xCC,
0xE8, 0x75, 0x06, 0x17, 0x3C, 0xAD, 0x1D, 0xE9, 0xB0, 0x77, 0x01, 0xB3, 0xD3, 0x64, 0x5D, 0x47,
0x38, 0x7F, 0x79, 0x42, 0x25, 0x3A, 0xF7, 0xE6, 0x92, 0xA3, 0xD2, 0xD8, 0xC8, 0xA9, 0x89, 0xFD,
0x7F, 0x41, 0xE6, 0xB6, 0xA4, 0xAD, 0x9C, 0xFA, 0x89, 0xEE, 0x7B, 0xBA, 0xAC, 0xD5, 0xE8, 0x0C,
0x42, 0x30, 0x02, 0xFC, 0xF2, 0x1A, 0x0C, 0xC1, 0x16, 0xB3, 0x58, 0xA7, 0x3A, 0x9E, 0x18, 0x64,
0x80, 0x1B, 0xC3, 0x91, 0x87, 0x8C, 0x4F, 0x86, 0xA9, 0x9D, 0xD7, 0x9A, 0x3B, 0x40, 0xDE, 0x0B,
0xBA, 0x57, 0xAF, 0x72, 0xC1, 0xD4, 0xBA, 0x70, 0xE4, 0x81, 0xA2, 0x09, 0xF7, 0xC6, 0x64, 0x41,
0x1D, 0xFB, 0xBA, 0x64, 0x7D, 0xA8, 0x05, 0xF8, 0x5E, 0xCE, 0xC9, 0x5C, 0xC1, 0xF0, 0x12, 0xD4,
0x46, 0x1A, 0xC0, 0xAF, 0x02, 0xBF, 0x76, 0x9B, 0x80, 0x05, 0xB4, 0x31, 0x35, 0x98, 0xA4, 0xA3,
0x37, 0xB4, 0xBE, 0x2D, 0x39, 0xC0, 0x63, 0x76, 0x0C, 0x42, 0xC9, 0x9B, 0x3A, 0x9E, 0xE8, 0xB5,
0xAD, 0xB9, 0x73, 0x4F, 0xCC, 0x36, 0x19, 0x17, 0x78, 0x36, 0x7B, 0xC6, 0x1B, 0xE8, 0x2E, 0xCF,
0xFD, 0x51, 0xEB, 0xEB, 0xB7, 0xA6, 0x9E, 0x9C, 0xAD, 0xBA, 0xF5, 0xE7, 0x80, 0xBE, 0x8F, 0xB0,
0xEB, 0x59, 0x25, 0xFD, 0x8C, 0xF7, 0xEC, 0x51, 0x15, 0xDF, 0x55, 0x72, 0x8D, 0xAA, 0xEB, 0x3B,
0xC7, 0x23, 0x6A, 0xF7, 0x23, 0xDA, 0xBF, 0xC4, 0x56, 0x46, 0xE4, 0x05, 0x1E, 0x63, 0x5A, 0x52,
0x00, 0xF0, 0x06, 0x86, 0x5E, 0xE9, 0xD3, 0xD0, 0x7E, 0xF0, 0x19, 0xB6, 0x62, 0xF1, 0x46, 0x21,
0x03, 0x11, 0xB4, 0x3B, 0xF4, 0xA6, 0xA6, 0x22, 0xA0, 0x17, 0xCA, 0x5F, 0x7C, 0xC6, 0xAF, 0x8F,
0x0D, 0x53, 0x6C, 0x42, 0x32, 0x5F, 0x84, 0x01, 0x3D, 0x75, 0x7B, 0xF3, 0x1E, 0x00, 0xB3, 0xC8,
0x38, 0x68, 0x52, 0xFC, 0xDC, 0x5B, 0x70, 0x64, 0x5D, 0xFF, 0xE8, 0x7D, 0x28, 0x83, 0x4C, 0x6E,
0xAA, 0x98, 0xBA, 0xCC, 0x45, 0xB1, 0x0D, 0x4A, 0x2A, 0x28, 0x0E, 0xC8, 0x39, 0x2F, 0xE9, 0x1F,
0x25, 0x39, 0xDB, 0x80, 0xB5, 0x57, 0xD1, 0x62, 0xF5, 0x9B, 0x07, 0x9B, 0xF4, 0x00, 0xB0, 0x1C,
0xA9, 0xFE, 0x28, 0x7C, 0x31, 0xB3, 0xC7, 0x58, 0xFF, 0xAD, 0x3B, 0xB4, 0x3F, 0xD0, 0xB2, 0x86,
0x2C, 0xE6, 0xDD, 0x86, 0x31, 0xF4, 0x69, 0xE4, 0xF6, 0xA5, 0xBF, 0x67, 0xD4, 0xD8, 0xF8, 0x24,
0xA5, 0xF5, 0xDB, 0xC7, 0xC8, 0x3E, 0x7F, 0xBA, 0x49, 0x7E, 0x10, 0x83, 0x13, 0x36, 0xF2, 0xC2,
0x39, 0x7C, 0xFB, 0x9D, 0xDC, 0x17, 0xA7, 0xAD, 0x2B, 0x79, 0x10, 0x8B, 0x63, 0xE1, 0x46, 0xEE,
0xFA, 0xD6, 0x6D, 0xD9, 0xCA, 0x00, 0x91, 0x04, 0xA0, 0x30, 0x4A, 0xDA, 0xC8, 0xAD, 0xCC, 0xCA,
0x66, 0x89, 0x7E, 0xD3, 0x03, 0x5A, 0xA0, 0xF1, 0x25, 0x90, 0xD8, 0xDF, 0x14, 0x5D, 0xBE, 0x99,
0x99, 0x2B, 0x47, 0x52, 0xE7, 0x2F, 0x22, 0x6D, 0xC6, 0x22, 0xBC, 0x9C, 0x7B, 0xC0, 0x52, 0xCB,
0xB9, 0x44, 0x01, 0x70, 0xDD, 0x7D, 0x3B, 0xA7, 0x47, 0x2B, 0xD2, 0xD8, 0xBE, 0x44, 0xE6, 0x00,
0xC0, 0x03, 0xC0, 0xED, 0xDA, 0xD3, 0x0E, 0x6C, 0x07, 0x6C, 0x93, 0x2B, 0x6D, 0x05, 0xE7, 0xB5,
0x90, 0x01, 0xEC, 0xAB, 0x88, 0xBF, 0x12, 0x18, 0x46, 0x82, 0x23, 0xFB, 0x0E, 0x20, 0xBE, 0x09,
0x04, 0xCC, 0x62, 0xC2, 0xC5, 0x84, 0x83, 0x24, 0xC9, 0xE9, 0xDA, 0x50, 0xB3, 0x5C, 0x4B, 0xE4,
0xC8, 0x2F, 0xC9, 0x4A, 0x0F, 0x6C, 0x56, 0xEE, 0x84, 0x4A, 0xA2, 0x8B, 0xD8, 0xE8, 0xC5, 0x0C,
0x69, 0x0F, 0x66, 0x8B, 0x39, 0xB0, 0xA0, 0x7A, 0x2F, 0xD1, 0x2A, 0x19, 0x84, 0x71, 0x95, 0xA9,
0xF7, 0xB4, 0xFF, 0x83, 0x2A, 0xBD, 0x3D, 0xAA, 0xCC, 0xF2, 0x8A, 0x9C, 0x48, 0x96, 0x70, 0x09,
0xEE, 0x4C, 0x42, 0x37, 0x47, 0xEB, 0x10, 0xAA, 0xD4, 0x1E, 0xF5, 0x1C, 0x69, 0x00, 0x09, 0x4D,
0x8C, 0xB2, 0xA5, 0x13, 0x9C, 0x0E, 0x69, 0x79, 0x5E, 0x3A, 0x32, 0x02, 0x62, 0x94, 0x23, 0x51,
0xC3, 0x30, 0x4A, 0x76, 0x7D, 0x5F, 0x31, 0xC1, 0x7D, 0xAE, 0xF0, 0xE8, 0x95, 0xA8, 0x0A, 0x83,
0xA8, 0x26, 0x3D, 0xA4, 0xCA, 0x41, 0x55, 0x2F, 0x20, 0xD1, 0xB2, 0xDC, 0xA0, 0x22, 0xE0, 0x00,
0x14, 0x98, 0xCC, 0x83, 0x7A, 0x65, 0x9D, 0xA3, 0x57, 0xB9, 0xA6, 0xE4, 0x2C, 0xA1, 0xEA, 0xDC,
0xF1, 0x4D, 0x6E, 0x48, 0x7D, 0x58, 0x46, 0x94, 0xFF, 0xFB, 0x86, 0xBC, 0xB1, 0x9D, 0x92, 0x0B,
0x6A, 0xFF, 0xB8, 0xA0, 0x9E, 0xD8, 0xD2, 0x34, 0xE4, 0x60, 0x2C, 0xF1, 0x36, 0x12, 0xFD, 0x3D,
0x64, 0x7A, 0x18, 0xB7, 0xEB, 0x22, 0x71, 0x83, 0xF8, 0x61, 0xFC, 0x98, 0x0B, 0x33, 0x2B, 0x43,
0x89, 0x23, 0xB1, 0x51, 0x94, 0x1B, 0x01, 0x94, 0x8C, 0xE1, 0x94, 0x75, 0x90, 0xE8, 0x2A, 0x8C,
0x58, 0x56, 0x45, 0x03, 0x13, 0x40, 0xCC, 0xC8, 0x7E, 0x4B, 0xA1, 0x6B, 0xDD, 0xCB, 0x90, 0x0E,
0xC5, 0x31, 0xE9, 0xC4, 0x14, 0x79, 0x14, 0x28, 0x13, 0x14, 0xBA, 0x9E, 0x09, 0x59, 0xD8, 0xE7,
0xA4, 0x8F, 0x9A, 0x49, 0x70, 0xA9, 0xA3, 0x7C, 0x58, 0xD1, 0x4E, 0x11, 0x5E, 0x41, 0xC3, 0x50,
0x8A, 0x62, 0x05, 0x7A, 0x37, 0xD6, 0x53, 0x07, 0x09, 0xF8, 0xDF, 0x9C, 0xD0, 0xC5, 0x22, 0xB5,
0x53, 0xF2, 0x52, 0x42, 0xA9, 0x71, 0xA6, 0x62, 0xAC, 0xA2, 0xAE, 0xC1, 0x8C, 0xBC, 0x0B, 0x72,
0x29, 0x58, 0x39, 0x1B, 0xE5, 0x15, 0x4A, 0xAE, 0x8F, 0xF3, 0x0A, 0x00, 0xA2, 0xA8, 0xB5, 0xE1,
0xB0, 0x82, 0x72, 0xAD, 0x00, 0xDE, 0x8F, 0x88, 0x5D, 0x15, 0x73, 0x41, 0x6B, 0xA2, 0xA0, 0x62,
0x48, 0x40, 0x28, 0x19, 0x0F, 0x15, 0x89, 0x37, 0x72, 0x94, 0x65, 0xA9, 0x55, 0x85, 0x32, 0x4A,
0x53, 0xF6, 0x39, 0x05, 0xC8, 0x62, 0x67, 0x00, 0x7F, 0x08, 0x45, 0x40, 0x55, 0x24, 0x23, 0x86,
0xB9, 0x4D, 0x3D, 0x31, 0x04, 0x69, 0x5C, 0xD5, 0x9C, 0xBC, 0x61, 0x31, 0x4E, 0xEA, 0xC1, 0xD7,
0xEC, 0xA1, 0x58, 0xB9, 0xA9, 0x75, 0x5F, 0xAF, 0x0E, 0x50, 0x0B, 0x3F, 0xAF, 0xE1, 0xD7, 0x45,
0x66, 0x8E, 0xA0, 0x22, 0x58, 0xDE, 0x39, 0x06, 0x3E, 0x0F, 0x5C, 0x1E, 0x40, 0x4F, 0x9F, 0x6D,
0xC1, 0x7C, 0xC6, 0x83, 0xA8, 0xF3, 0x50, 0xA7, 0x02, 0x73, 0xCA, 0x7A, 0xEE, 0x8D, 0x1F, 0xA1,
0x97, 0x2A, 0x36, 0x65, 0xBB, 0xDA, 0xBF, 0xC6, 0xBB, 0x28, 0x6B, 0x9D, 0x90, 0xAB, 0xBB, 0x19,
0x33, 0x73, 0xF8, 0x34, 0x41, 0x8B, 0xA8, 0x7F, 0xAF, 0x84, 0x34, 0x02, 0x2D, 0x05, 0x57, 0x55,
0x4E, 0xDA, 0xA2, 0xC2, 0x94, 0x74, 0x2A, 0x6C, 0xEB, 0xF4, 0x3E, 0x0A, 0x7B, 0xB7, 0xDA, 0xBC,
0xF2, 0xF4, 0xF5, 0xAD, 0xF9, 0x59, 0x6A, 0xA3, 0x0E, 0x0E, 0x9D, 0x55, 0xEA, 0x74, 0xE6, 0xBB,
0x9D, 0x62, 0xA1, 0xA6, 0xB8, 0x27, 0xDA, 0xA9, 0x70, 0x53, 0xE7, 0xFA, 0x50, 0xAF, 0x47, 0x41,
0x49, 0xCD, 0x02, 0xC7, 0x85, 0x9D, 0x56, 0x72, 0x39, 0xDC, 0xEA, 0x53, 0x77, 0x7B, 0xA5, 0x78,
0x58, 0xD3, 0xFA, 0x29, 0x50, 0x69, 0xDA, 0xFF, 0x89, 0xE0, 0xED, 0x19, 0x6A, 0x37, 0x6B, 0xA2,
0x8B, 0xCD, 0x22, 0xE4, 0xC5, 0x96, 0x72, 0x86, 0x55, 0x63, 0x55, 0x5D, 0x54, 0x22, 0xD8, 0xB4,
0xE1, 0xFE, 0xC3, 0x59, 0xA7, 0x5F, 0x9C, 0x39, 0xD2, 0x6F, 0x51, 0xFB, 0x24, 0xD9, 0x48, 0xA0,
0x20, 0xED, 0xA0, 0xA6, 0x73, 0x0C, 0x0A, 0x45, 0xB3, 0x6D, 0x6A, 0x1F, 0xDE, 0x4A, 0x32, 0xAF,
0x5C, 0xAC, 0x45, 0xE1, 0xA0, 0x22, 0xDE, 0x2D, 0x5B, 0xEC, 0xF1, 0x66, 0x44, 0x1E, 0xA2, 0x70,
0x79, 0x6E, 0x2E, 0xDE, 0xA9, 0x20, 0xBD, 0x70, 0x44, 0x6C, 0x75, 0x8D, 0x1D, 0x96, 0xB7, 0xFB,
0xC6, 0x20, 0x0B, 0x86, 0xE7, 0x81, 0x5B, 0x8E, 0x2E, 0xBE, 0x7B, 0x0B, 0x3D, 0x3B, 0x7D, 0xCE,
0x17, 0xFD, 0xC2, 0x30, 0xF4, 0xC6, 0x47, 0x8F, 0xDC, 0xA2, 0x24, 0xF0, 0xA0, 0x7B, 0x92, 0x90,
0xA9, 0x77, 0x54, 0xC2, 0xE0, 0x66, 0x6A, 0x14, 0x3D, 0xEA, 0x8B, 0x07, 0x3A, 0x4C, 0xEE, 0x65,
0x15, 0xB4, 0x60, 0x55, 0x77, 0x1F, 0xB9, 0xEF, 0x68, 0x2D, 0xBD, 0x41, 0xB8, 0xD7, 0x8C, 0xAF,
0x87, 0x1B, 0x5A, 0xE9, 0x1F, 0xC3, 0x8C, 0x7E, 0xC9, 0x75, 0xCB, 0x73, 0xDB, 0x48, 0x10, 0x8C,
0xD0, 0x2B, 0xC1, 0xE3, 0x1F, 0x7A, 0x99, 0xE9, 0x70, 0x04, 0xAE, 0x0F, 0x9F, 0xC9, 0x91, 0xC3,
0x9B, 0xEB, 0x96, 0x1D, 0xB9, 0x57, 0x2E, 0x4D, 0x16, 0xA6, 0xC2, 0x09, 0xAF, 0xF0, 0xA8, 0xE8,
0xD2, 0x97, 0x8A, 0x36, 0xE1, 0x71, 0x45, 0xBD, 0x2E, 0x15, 0x2D, 0x3E, 0xC9, 0x21, 0xAC, 0xF8,
0x01, 0x2A, 0x37, 0xEF, 0xCC, 0x3E, 0xD6, 0xC2, 0xC9, 0x53, 0xE1, 0xFE, 0x70, 0x5D, 0xDF, 0x85,
0xD2, 0x3F, 0xDC, 0x7E, 0x17, 0x6A, 0x2F, 0xB3, 0xE2, 0x11, 0xAB, 0xF8, 0x0D, 0xBE, 0xB0, 0xCA,
0xDA, 0xD7, 0xDB, 0x36, 0xFC, 0x69, 0x20, 0x45, 0x3F, 0x3A, 0x90, 0x95, 0xD4, 0xF5, 0xD9, 0xC6,
0x5C, 0x2D, 0xA1, 0x68, 0x02, 0xCB, 0x38, 0xEF, 0x71, 0x4A, 0x22, 0xD5, 0x45, 0xCE, 0x7B, 0xD0,
0xA3, 0x4E, 0xE5, 0x52, 0x2C, 0xBD, 0x3E, 0x5C, 0x7A, 0xF6, 0x99, 0xC0, 0x1C, 0x54, 0xC0, 0xFC,
0x52, 0x67, 0x4F, 0x99, 0xE4, 0x1B, 0x7B, 0x77, 0x07, 0xA4, 0xBB, 0x88, 0x9D, 0x7C, 0xFD, 0xA1,
0xDE, 0xBC, 0x35, 0x40, 0x3D, 0x5D, 0x3C, 0xF5, 0x67, 0x7C, 0x60, 0xEA, 0xFE, 0xEC, 0x0B, 0xD7,
0x43, 0x00, 0x1F, 0x3C, 0x0C, 0x85, 0xBC, 0x82, 0x6B, 0xFF, 0x26, 0x47, 0x6E, 0x73, 0x79, 0xFE,
0x9A, 0x66, 0x72, 0x46, 0x41, 0x9C, 0xA3, 0x5E, 0x39, 0x83, 0xF2, 0xEE, 0xC8, 0xA7, 0x48, 0x70,
0x4D, 0x04, 0x0B, 0xB2, 0xC3, 0x6E, 0x07, 0x19, 0xF2, 0x73, 0x54, 0xF5, 0xFC, 0x0F, 0x84, 0x7D,
0x82, 0x35, 0xE2, 0x10, 0x00, 0xD2, 0xC5, 0xB1, 0xBD, 0x83, 0xCC, 0x80, 0x63, 0xFB, 0xEE, 0x03,
0x7D, 0x48, 0xDF, 0xAD, 0x98, 0x90, 0xF6, 0x55, 0x31, 0x63, 0xC0, 0xAB, 0xB1, 0xC7, 0x47, 0x3E,
0x97, 0x1D, 0xCD, 0xC7, 0xC0, 0x2B, 0x10, 0x50, 0x54, 0xFC, 0xF1, 0x45, 0x95, 0x64, 0x91, 0x6B,
0x8F, 0x43, 0x00, 0x08, 0x6F, 0x89, 0x2B, 0xEF, 0x01, 0x45, 0x01, 0x4E, 0xE4, 0x71, 0xD3, 0xBC,
0x83, 0x02, 0xDC, 0xBA, 0x26, 0x95, 0xB0, 0xAE, 0x5E, 0xC9, 0xC5, 0xD1, 0xB3, 0x1F, 0x66, 0xCE,
0x79, 0xF3, 0x66, 0x6A, 0xDF, 0x40, 0x7E, 0x47, 0x72, 0xDF, 0x94, 0x38, 0xB1, 0x24, 0x21, 0x28,
0x19, 0x8B, 0x94, 0x60, 0x0C, 0x28, 0xE9, 0xA4, 0x00, 0x19, 0x64, 0x59, 0x99, 0xB9, 0xA6, 0xA8,
0x85, 0x88, 0x87, 0xA1, 0x90, 0x5D, 0x13, 0x84, 0x13, 0x5C, 0x2F, 0xC2, 0x96, 0x81, 0xF2, 0xBD,
0x29, 0x42, 0x2B, 0xAB, 0x35, 0xBC, 0x59, 0x6B, 0x88, 0xB3, 0x20, 0xF3, 0x53, 0x0C, 0x32, 0x81,
0x86, 0x1F, 0x29, 0x9A, 0x29, 0xF8, 0xF0, 0x6A, 0x7E, 0x51, 0x91, 0x12, 0x1F, 0x68, 0xB3, 0x9D,
0x13, 0x20, 0x22, 0xB7, 0x4F, 0x26, 0xCA, 0xAD, 0x7D, 0x53, 0x93, 0xA8, 0xED, 0xA7, 0x4E, 0x56,
0x26, 0xE6, 0x24, 0x6B, 0xE5, 0x75, 0x2A, 0x85, 0x8B, 0xBA, 0x3C, 0xD3, 0x9E, 0xFB, 0xB3, 0x06,
0xCA, 0x5F, 0x94, 0x6E, 0x2E, 0xA4, 0x05, 0x41, 0x78, 0xD7, 0xC5, 0x0F, 0xE8, 0x94, 0x76, 0xC1,
0x67, 0xB0, 0xFC, 0xAB, 0x19, 0x30, 0x0C, 0x2F, 0xD0, 0x81, 0xD9, 0xFD, 0xF5, 0x1B, 0x7B, 0x1B,
0xFD, 0x80, 0x0F, 0x28, 0xB3, 0xC4, 0xE5, 0xC4, 0x57, 0xEF, 0x04, 0xCC, 0x67, 0x09, 0x95, 0x8F,
0xAF, 0x82, 0x52, 0x3E, 0x6C, 0xA7, 0x50, 0x61, 0x5F, 0x48, 0xEE, 0xE0, 0xD0, 0x8D, 0x9F, 0xEA,
0x87, 0x74, 0x20, 0xFF, 0x0F, 0xB5, 0x58, 0x4D, 0x6C, 0xDC, 0xC6, 0x15, 0x7E, 0xE4, 0xC8, 0xCB,
0xD4, 0x44, 0x76, 0x74, 0xF0, 0x21, 0x49, 0x25, 0xB1, 0x87, 0x1C, 0x1C, 0x57, 0xBB, 0xBC, 0x18,
0xC8, 0x16, 0x20, 0x77, 0xC7, 0x36, 0x90, 0x1C, 0x7C, 0xB0, 0x5B, 0xC4, 0x09, 0xD0, 0x02, 0xBD,
0xD7, 0x68, 0x62, 0x1F, 0x72, 0x50, 0xDB, 0xB5, 0xC5, 0xAA, 0x87, 0x1C, 0x82, 0xC2, 0x4E, 0xDB,
0xA0, 0xC7, 0x1A, 0x6D, 0x0E, 0xC9, 0x3A, 0x8D, 0x74, 0x10, 0x0A, 0x26, 0x91, 0x45, 0xDA, 0x46,
0x91, 0x83, 0x0F, 0x66, 0x6C, 0x20, 0x39, 0x18, 0xA8, 0x99, 0x38, 0x85, 0x11, 0x0B, 0x55, 0xC6,
0x31, 0x1D, 0x13, 0xD2, 0x2E, 0xA7, 0xDF, 0x90, 0x2B, 0x59, 0x4E, 0x6C, 0x24, 0x16, 0x14, 0x8A,
0xDA, 0xE5, 0x70, 0x87, 0xEF, 0xBD, 0x79, 0x3F, 0xDF, 0xFB, 0x86, 0x8F, 0x75, 0x3A, 0x8F, 0xD3,
0xC8, 0xD8, 0xD8, 0xE4, 0x64, 0xA3, 0xD1, 0xF0, 0xFD, 0x76, 0xBB, 0xFD, 0x14, 0xE1, 0x90, 0xC4,
0x62, 0x8A, 0x72, 0xAE, 0xE4, 0x19, 0x7D, 0xE5, 0x10, 0x85, 0x64, 0xA6, 0x64, 0x07, 0xD4, 0x24,
0xEA, 0x12, 0x65, 0x64, 0xE6, 0x35, 0x53, 0xF5, 0x8D, 0x28, 0xA8, 0xE6, 0x56, 0x87, 0xA1, 0x52,
0x8A, 0x54, 0xE0, 0x88, 0x51, 0x4C, 0xA6, 0x06, 0x91, 0x99, 0xAC, 0x7D, 0x99, 0x51, 0x4F, 0x74,
0x54, 0xBE, 0xE1, 0x26, 0xC3, 0x97, 0x47, 0xC4, 0x05, 0x31, 0xA5, 0x06, 0x1D, 0xA5, 0x30, 0xA6,
0xD6, 0xE1, 0x71, 0x57, 0xF5, 0xB9, 0xC8, 0xC6, 0xA9, 0x35, 0x49, 0x93, 0xE5, 0xE9, 0x71, 0x9A,
0x77, 0x96, 0x72, 0x3F, 0x7A, 0x71, 0x94, 0x1E, 0x99, 0x22, 0xF3, 0x5A, 0x42, 0x9E, 0x03, 0x5B,
0x32, 0x92, 0x56, 0xDC, 0x24, 0x9F, 0xC5, 0x86, 0x0C, 0x89, 0x1F, 0x20, 0x6A, 0x27, 0xF4, 0xC2,
0xE0, 0xA0, 0xAD, 0x94, 0xB6, 0x90, 0x38, 0xC1, 0x18, 0x59, 0x8E, 0x64, 0x39, 0xC2, 0x97, 0x77,
0xEB, 0xA2, 0x3E, 0x4F, 0x62, 0xF0, 0x83, 0xE1, 0xB5, 0x36, 0xDC, 0x55, 0x7B, 0x57, 0x16, 0x79,
0x69, 0x4F, 0x9F, 0x48, 0x09, 0xA6, 0x12, 0xCF, 0xFE, 0x24, 0x65, 0x1F, 0x04, 0x9C, 0x0B, 0xCF,
0xB9, 0x94, 0xDA, 0x05, 0x19, 0x03, 0xA2, 0x05, 0xA2, 0x9B, 0x64, 0x5D, 0xB8, 0x71, 0xC6, 0x56,
0x27, 0xCB, 0x15, 0x7B, 0x13, 0xDE, 0xC4, 0x70, 0xF1, 0x74, 0xA4, 0x80, 0x96, 0xBF, 0x1C, 0xD1,
0x1E, 0xB1, 0xE2, 0x3A, 0x1D, 0x62, 0xF1, 0x9C, 0x53, 0x58, 0xFB, 0x44, 0xB6, 0xC3, 0x1E, 0xB3,
0x05, 0x8D, 0xCD, 0x41, 0xFA, 0xD3, 0x01, 0x4C, 0x59, 0x86, 0xC3, 0xD8, 0xDB, 0x50, 0xF7, 0xE8,
0x51, 0x9F, 0x68, 0x77, 0xD2, 0x25, 0xF3, 0x5C, 0x1C, 0xE5, 0x75, 0x16, 0xEC, 0x12, 0xD2, 0x0A,
0x60, 0xAA, 0xF5, 0x59, 0x4D, 0xC2, 0x9B, 0x83, 0x35, 0xD1, 0x4E, 0xFE, 0xF8, 0x8B, 0x54, 0xAF,
0xBD, 0xD3, 0xFC, 0x65, 0xAB, 0xDE, 0x9A, 0x70, 0x8B, 0x6D, 0x82, 0x82, 0x1F, 0xF1, 0x7D, 0x49,
0xD8, 0xB4, 0xCF, 0xC9, 0xAE, 0xC3, 0x92, 0x8C, 0x9D, 0x95, 0xD6, 0x59, 0x89, 0x91, 0x3D, 0x93,
0x8C, 0x18, 0xD4, 0xEB, 0xF5, 0x94, 0x5E, 0x38, 0xDF, 0x70, 0xDA, 0xBD, 0x7F, 0xA8, 0x7F, 0x1F,
0xBA, 0xAF, 0xB1, 0xDB, 0x9E, 0x83, 0xB1, 0x9D, 0x01, 0x8C, 0xBD, 0xB9, 0x60, 0x8F, 0xB1, 0x58,
0x8E, 0xCD, 0x71, 0x16, 0x3F, 0x1D, 0xF8, 0x2F, 0xD1, 0x32, 0xA9, 0x94, 0xBD, 0x0D, 0x4F, 0x3C,
0x7A, 0x14, 0xBE, 0xD8, 0x9D, 0x78, 0x0E, 0x8C, 0x95, 0x8D, 0x3A, 0x9B, 0x11, 0x4F, 0xDE, 0xCF,
0xD8, 0x5D, 0xBD, 0xDE, 0x9F, 0x95, 0x82, 0x74, 0xB3, 0x60, 0x1F, 0x7D, 0x92, 0x4C, 0xCE, 0x59,
0xBF, 0x36, 0x2E, 0x07, 0x72, 0x3A, 0x33, 0xE0, 0xB1, 0xC9, 0xD2, 0x10, 0x9D, 0x2F, 0x52, 0x3B,
0xDB, 0x55, 0xEA, 0xA2, 0x52, 0xB2, 0x1A, 0x6C, 0xF8, 0x85, 0xD6, 0x7E, 0x31, 0x84, 0x9B, 0xB7,
0x1A, 0x54, 0xC7, 0xDF, 0x24, 0xCD, 0x9B, 0x89, 0x2D, 0x1A, 0x34, 0x5D, 0xEC, 0x7A, 0xCB, 0x10,
0x76, 0xC1, 0xF6, 0xA6, 0xD4, 0xA2, 0x71, 0x73, 0x91, 0xA2, 0x18, 0x8F, 0x73, 0x62, 0x17, 0x96,
0x92, 0xD9, 0x80, 0x28, 0x77, 0xAD, 0xF8, 0x14, 0x1D, 0xA4, 0x1D, 0x19, 0xF9, 0x0F, 0x3A, 0x73,
0xF2, 0xFB, 0x34, 0x50, 0xA7, 0xFF, 0xB7, 0x5A, 0x8C, 0x67, 0x65, 0xB6, 0x6C, 0x3C, 0x4D, 0xA5,
0x5E, 0x51, 0xB7, 0xAF, 0xA9, 0xFC, 0x29, 0x55, 0x6C, 0x8F, 0xD4, 0xCC, 0xAC, 0x4A, 0x4F, 0xAB,
0x7C, 0x17, 0x06, 0xD3, 0x6A, 0xE6, 0x84, 0x4A, 0xFF, 0xAE, 0xF2, 0x9D, 0x6E, 0xB1, 0x9D, 0x5E,
0x98, 0x09, 0xE8, 0xD4, 0x29, 0xDA, 0xB9, 0x93, 0xB6, 0x6F, 0x27, 0xF3, 0x3E, 0x03, 0x1C, 0xED,
0x4E, 0x7B, 0xA4, 0x6E, 0xA4, 0x56, 0xDC, 0x78, 0xE1, 0x02, 0x8A, 0xC2, 0xE5, 0xB7, 0x2E, 0x90,
0xE4, 0x6B, 0x67, 0x0D, 0x45, 0x53, 0x18, 0xFF, 0x95, 0xE9, 0xF8, 0x6E, 0xF6, 0x47, 0xBA, 0x16,
0xEC, 0x9E, 0x9B, 0xE4, 0x03, 0x7A, 0x8E, 0x1E, 0x31, 0xA9, 0xC9, 0x03, 0x44, 0x18, 0xA1, 0x35,
0x64, 0x97, 0xC2, 0x36, 0x3E, 0x11, 0x60, 0xDC, 0xF1, 0xB9, 0x40, 0x80, 0x0D, 0x09, 0x9F, 0xB8,
0x31, 0x49, 0x76, 0x95, 0x2C, 0x31, 0xE2, 0x69, 0x07, 0x4A, 0x54, 0x16, 0x43, 0xE6, 0xC1, 0x17,
0xDA, 0xA3, 0x96, 0x48, 0x49, 0x7A, 0x3C, 0x66, 0x48, 0x2E, 0xB2, 0x27, 0x18, 0xEA, 0x56, 0xB6,
0x10, 0xEE, 0xBD, 0xE7, 0xE1, 0xAF, 0x71, 0x4E, 0x66, 0xAC, 0x94, 0x98, 0x30, 0x7B, 0x79, 0x59,
0xC2, 0xC8, 0x50, 0xAE, 0x6B, 0xDC, 0xA3, 0x4E, 0x60, 0x26, 0xEC, 0x3F, 0x10, 0x3F, 0xD2, 0xA2,
0x39, 0xA2, 0x14, 0x41, 0x66, 0x01, 0xC4, 0xD7, 0x75, 0xE1, 0xB6, 0xEA, 0x4E, 0x4A, 0xE9, 0x97,
0x2B, 0x92, 0xBD, 0xB2, 0xC7, 0x8C, 0xEB, 0x1E, 0xD9, 0xBA, 0x9E, 0x3D, 0xCC, 0xC6, 0x97, 0x44,
0x5D, 0x5B, 0xA2, 0x1C, 0x37, 0x20, 0xDE, 0x5C, 0x39, 0x35, 0x41, 0x5C, 0x55, 0xE8, 0xE0, 0x64,
0x90, 0xF2, 0x9B, 0x63, 0x98, 0x8F, 0xB9, 0xA8, 0x99, 0x09, 0x4C, 0xDA, 0xB6, 0x40, 0xF3, 0xC4,
0xB5, 0x7E, 0x6A, 0x9A, 0x98, 0xC6, 0xAD, 0x20, 0x25, 0xCE, 0x99, 0x7C, 0xF7, 0x58, 0xC3, 0x46,
0xCA, 0xB4, 0xC6, 0x65, 0x65, 0xB3, 0x91, 0xCC, 0xC1, 0xC6, 0xB3, 0xB1, 0x24, 0x7B, 0x1F, 0x12,
0xAD, 0xAE, 0x8D, 0xD6, 0x0B, 0xA6, 0x97, 0xF5, 0xC7, 0x63, 0xBA, 0x6A, 0x99, 0xA4, 0x9A, 0xD0,
0x8A, 0x46, 0x31, 0x5B, 0x6B, 0xE9, 0x92, 0x95, 0xD0, 0x31, 0xFD, 0xE1, 0x6B, 0x6F, 0x61, 0x15,
0x80, 0xB1, 0xCE, 0x9E, 0xB9, 0x69, 0x95, 0xFC, 0xF8, 0xB3, 0x2A, 0x57, 0xDB, 0x54, 0xE2, 0x0F,
0x2A, 0x00, 0x17, 0x69, 0x75, 0x4F, 0xA7, 0xA0, 0x8D, 0x6B, 0x0E, 0xD5, 0x13, 0xF3, 0x44, 0xFE,
0x14, 0x5C, 0x09, 0x5D, 0x21, 0x20, 0x2B, 0x73, 0x20, 0x89, 0x0B, 0x33, 0xB5, 0x03, 0x76, 0xE3,
0x74, 0x6C, 0x01, 0xB3, 0xF8, 0xEB, 0xCF, 0x4B, 0xC8, 0x95, 0xC0, 0xC5, 0x10, 0xB3, 0xBA, 0x70,
0x32, 0xF2, 0x8B, 0xDC, 0x4A, 0xD8, 0x31, 0xFC, 0xE7, 0xA4, 0xDD, 0x4A, 0x4C, 0x6C, 0xBD, 0x7C,
0x3B, 0x29, 0xFD, 0x4A, 0x5D, 0xFC, 0x92, 0xDA, 0x5B, 0x2B, 0x1F, 0x39, 0x46, 0xD1, 0x3E, 0x61,
0x2C, 0x29, 0x32, 0x82, 0xA9, 0xAD, 0xB7, 0x7D, 0x0A, 0xD0, 0x37, 0xD5, 0xA0, 0xF5, 0x63, 0xAB,
0x64, 0x1B, 0xA2, 0x92, 0xB1, 0xB3, 0x85, 0x64, 0xDD, 0x49, 0x34, 0x3E, 0x5F, 0xC9, 0xDD, 0x12,
0xBB, 0x5D, 0xDD, 0xA5, 0x58, 0x09, 0x6F, 0x61, 0xAE, 0x93, 0x47, 0x67, 0x8F, 0x99, 0x66, 0xBA,
0x13, 0xE8, 0x4B, 0xDD, 0x94, 0x20, 0x92, 0xBF, 0xFE, 0x1C, 0x66, 0x2B, 0x15, 0xB3, 0x84, 0xDF,
0x78, 0x93, 0x8E, 0xF7, 0x74, 0x37, 0x42, 0xB1, 0x91, 0x71, 0xFB, 0x10, 0x2E, 0x7D, 0x9D, 0x74,
0xC8, 0xB9, 0x4C, 0x27, 0x07, 0x2E, 0xA1, 0x4B, 0xA9, 0x6B, 0xC8, 0x7C, 0x2D, 0x17, 0xC7, 0x74,
0x21, 0x1C, 0xA5, 0xD0, 0x6F, 0x9E, 0xE4, 0x71, 0xD9, 0x73, 0x58, 0x5A, 0xF5, 0x2F, 0x18, 0x82,
0x4C, 0x2E, 0xD3, 0xD5, 0xA9, 0x86, 0x25, 0x5A, 0xE9, 0x5B, 0xC3, 0x15, 0xDA, 0x45, 0x24, 0x6A,
0x0A, 0x3D, 0x6C, 0xBE, 0x6A, 0xB0, 0xB5, 0xB4, 0xF4, 0xAC, 0xF1, 0x12, 0x04, 0x94, 0x09, 0xEE,
0x08, 0xBD, 0x0E, 0xAC, 0x6C, 0x0C, 0x03, 0x2C, 0xF6, 0x88, 0x1A, 0x6C, 0x68, 0xED, 0xB8, 0xBC,
0x7D, 0x68, 0xBF, 0x52, 0x6E, 0xEF, 0xCD, 0x7B, 0xEF, 0xE2, 0xB2, 0x9C, 0x5B, 0x62, 0xB3, 0x36,
0x02, 0x66, 0x1F, 0xDD, 0xAC, 0x04, 0x94, 0xAA, 0x2B, 0xCD, 0x4F, 0xE4, 0xB8, 0x91, 0x6E, 0x52,
0x82, 0x0F, 0x4A, 0xE0, 0x0D, 0x29, 0x87, 0xBA, 0xA2, 0xD4, 0x4B, 0xF7, 0x10, 0x94, 0x33, 0x87,
0x7E, 0xA6, 0xD4, 0x85, 0x1B, 0xBD, 0xE6, 0x3D, 0x77, 0x43, 0x0D, 0xEB, 0x57, 0x74, 0x14, 0x4C,
0xC9, 0x52, 0x96, 0x98, 0xE8, 0x5D, 0xEA, 0x48, 0xCE, 0x85, 0x4F, 0x19, 0xE2, 0xF4, 0xF5, 0xAF,
0x5A, 0xD1, 0x19, 0x68, 0xCF, 0xBB, 0x86, 0xD4, 0x88, 0xFA, 0xAD, 0x33, 0x8D, 0x3E, 0xA9, 0x20,
0xCB, 0xE6, 0x50, 0x86, 0x60, 0x0F, 0x11, 0x14, 0x20, 0x36, 0x3A, 0xD2, 0xF7, 0xBF, 0x00, 0x73,
0x52, 0xD9, 0x5D, 0xFE, 0xD0, 0x19, 0xB8, 0x39, 0x4B, 0x1E, 0xFC, 0xF7, 0xC3, 0x1C, 0xDD, 0x59,
0x7D, 0xAE, 0x97, 0x9B, 0x51, 0xD7, 0x88, 0x84, 0x83, 0x55, 0x20, 0x0F, 0x3A, 0x1A, 0xD9, 0xE2,
0x6E, 0x99, 0xC6, 0x68, 0x35, 0x2A, 0xB6, 0xFF, 0xA6, 0x32, 0x33, 0x45, 0xCE, 0xE4, 0xB8, 0xE1,
0x63, 0x86, 0xA3, 0x83, 0x85, 0x19, 0x76, 0xEC, 0x90, 0x93, 0xE8, 0xF4, 0x36, 0x54, 0x81, 0x54,
0x1D, 0x35, 0x88, 0xF5, 0x27, 0xC9, 0x8F, 0x52, 0x4A, 0x9A, 0xA5, 0x27, 0x33, 0x32, 0xAE, 0x00,
0x60, 0x67, 0x53, 0x6A, 0xBE, 0x1F, 0xD3, 0x7B, 0x57, 0x62, 0x73, 0xE9, 0x80, 0xB0, 0xFF, 0xE9,
0x50, 0x73, 0xBE, 0x43, 0xEF, 0xA5, 0xBE, 0xB9, 0x14, 0x2C, 0xD8, 0xEF, 0x50, 0xDE, 0x0C, 0x29,
0x7B, 0x2F, 0x35, 0x6F, 0x2E, 0x05, 0xEC, 0xFA, 0x3B, 0x64, 0x2D, 0x87, 0x64, 0xAF, 0x20, 0x79,
0x97, 0x00, 0xB0, 0x41, 0x55, 0xCA, 0xE9, 0x30, 0x39, 0x4B, 0x5C, 0x7D, 0xB9, 0xAA, 0x6F, 0x13,
0x86, 0x43, 0x7B, 0x6C, 0xA5, 0x46, 0x1F, 0x13, 0xF8, 0x0C, 0x50, 0x5D, 0xC2, 0x03, 0x6D, 0xC4,
0xD1, 0xBE, 0x0A, 0xF5, 0x77, 0x30, 0xF9, 0x18, 0x52, 0xD9, 0xC1, 0x93, 0x16, 0x6E, 0x98, 0xB7,
0x90, 0xBF, 0x39, 0x56, 0xD2, 0x45, 0xCE, 0xB6, 0xCD, 0x9C, 0xA6, 0xC9, 0x5D, 0x01, 0x18, 0x45,
0x05, 0x6D, 0x38, 0xEC, 0xB8, 0x4A, 0x74, 0xFD, 0x6F, 0x24, 0xDF, 0xAB, 0x2A, 0x9D, 0x78, 0xA0,
0x1A, 0x34, 0x85, 0xA7, 0x5A, 0x2C, 0xF8, 0x9E, 0x54, 0x6D, 0x23, 0x34, 0xE2, 0xEC, 0x28, 0x59,
0x47, 0xFA, 0x64, 0x06, 0xE1, 0x70, 0x95, 0x80, 0x1D, 0x40, 0x02, 0x1C, 0x6C, 0x49, 0x1E, 0x50,
0x1B, 0xAB, 0xB6, 0xCE, 0x6B, 0x41, 0x90, 0xEC, 0x0E, 0x25, 0xDF, 0xA3, 0xCA, 0xBE, 0x08, 0x5A,
0xFD, 0xA9, 0x36, 0x06, 0x2D, 0x28, 0xB7, 0x61, 0x1D, 0x45, 0x4B, 0x7D, 0xAA, 0xA9, 0x7C, 0x83,
0xEB, 0xFE, 0x10, 0xA3, 0x69, 0xCB, 0x0D, 0x37, 0xB6, 0x5E, 0x0B, 0x08, 0x5A, 0x9B, 0xBA, 0xFC,
0xF7, 0x92, 0x5D, 0x8F, 0x09, 0x7C, 0x74, 0x11, 0x19, 0x1C, 0x58, 0xE7, 0x53, 0x87, 0x72, 0x8F,
0xFC, 0x51, 0x1A, 0xC1, 0x9C, 0x11, 0x28, 0xFE, 0x6B, 0x00, 0xC5, 0x71, 0xA5, 0xD8, 0x2C, 0xA0,
0xF8, 0x0E, 0x14, 0x67, 0x50, 0x1C, 0x42, 0x71, 0x17, 0x8A, 0x3D, 0x28, 0x6E, 0x40, 0xF1, 0x04,
0x14, 0x73, 0x28, 0x3E, 0x20, 0xD8, 0xA7, 0xAB, 0x81, 0x21, 0xA7, 0xE3, 0x4A, 0xB1, 0xA9, 0x96,
0xFA, 0xC6, 0x57, 0x50, 0x3C, 0x3A, 0xD4, 0xAC, 0xA1, 0xD3, 0x2F, 0x39, 0x3F, 0x55, 0xB1, 0x02,
0x22, 0xAA, 0x40, 0xB3, 0x8D, 0x6F, 0xFD, 0x0A, 0xC9, 0x58, 0x45, 0xE1, 0x78, 0xC4, 0x2E, 0x65,
0xD4, 0xE7, 0x08, 0x8F, 0xAB, 0x82, 0x75, 0x2F, 0xC1, 0x33, 0x3A, 0xC1, 0xA7, 0x34, 0x8F, 0xD9,
0x42, 0xB9, 0x06, 0x26, 0x75, 0x12, 0xDD, 0x51, 0xCC, 0x60, 0x72, 0x0B, 0xE5, 0x3A, 0x40, 0x3F,
0x19, 0xAE, 0x45, 0x58, 0x7C, 0x27, 0x81, 0xF8, 0x5A, 0x45, 0x35, 0x2F, 0x90, 0x71, 0x2B, 0x26,
0xDF, 0x15, 0x3C, 0x56, 0xB3, 0xD2, 0xDC, 0x90, 0x3B, 0xBA, 0xDA, 0x40, 0x9E, 0x34, 0x7E, 0x57,
0x4E, 0x80, 0x12, 0x07, 0x80, 0x93, 0x35, 0x51, 0x90, 0x08, 0x2C, 0x85, 0x68, 0x4A, 0x19, 0xF8,
0x24, 0x34, 0xB3, 0xCB, 0x48, 0xA3, 0xE5, 0xAA, 0xF9, 0x6A, 0x80, 0xF0, 0x86, 0x41, 0x89, 0xAB,
0x9E, 0x76, 0x77, 0x38, 0xA5, 0x31, 0x5A, 0x9F, 0xD1, 0x0D, 0x81, 0x8D, 0x5B, 0x58, 0xEB, 0x87,
0xD4, 0x0E, 0xC9, 0x0D, 0xC9, 0x29, 0x3F, 0x71, 0xDD, 0x8F, 0x54, 0x86, 0x0D, 0x66, 0xB8, 0x36,
0x33, 0x1C, 0x16, 0x61, 0xCA, 0x0A, 0xB5, 0x57, 0x9A, 0xA8, 0x3C, 0xCF, 0x27, 0x87, 0x0B, 0xD0,
0x64, 0x47, 0x64, 0xC0, 0x66, 0x3B, 0xE0, 0x7B, 0x24, 0x4B, 0x3A, 0x22, 0x63, 0xB9, 0x4F, 0xEE,
0x09, 0x61, 0xDC, 0x49, 0xA8, 0x99, 0x91, 0x7D, 0x66, 0x94, 0x5D, 0xDD, 0x7F, 0xFA, 0xD6, 0x87,
0x4A, 0xDE, 0xCD, 0x17, 0xAE, 0x29, 0x70, 0xB5, 0xA0, 0xDA, 0x1B, 0x4C, 0xF5, 0xEB, 0x7B, 0x72,
0xDD, 0xEA, 0x60, 0x1A, 0xC7, 0x5E, 0x37, 0xEA, 0xDD, 0x49, 0x58, 0x81, 0xDA, 0xA4, 0x45, 0x69,
0xDD, 0x59, 0x59, 0xFD, 0x40, 0xED, 0x5F, 0x73, 0xB1, 0x40, 0x1F, 0x87, 0x07, 0x5A, 0x0F, 0xFB,
0x24, 0xCA, 0x1F, 0xF4, 0x4D, 0x66, 0x75, 0xCD, 0xB3, 0x1F, 0xE2, 0x49, 0x31, 0xEA, 0x26, 0xC9,
0x75, 0x55, 0xD3, 0xFE, 0x27, 0xE3, 0x2D, 0xB0, 0x07, 0x76, 0xF2, 0x78, 0x09, 0xB9, 0xFA, 0xC9,
0x48, 0xB9, 0x37, 0xCE, 0x64, 0x08, 0x24, 0x1B, 0x90, 0xBB, 0x60, 0x0C, 0x8A, 0xC5, 0x9B, 0xEA,
0xD2, 0x90, 0x84, 0xDB, 0x62, 0x8D, 0x73, 0x7D, 0xF7, 0xC7, 0x76, 0xA0, 0x51, 0xD0, 0x64, 0x8B,
0x4E, 0xCD, 0x19, 0x4B, 0xC2, 0xD0, 0x04, 0x87, 0x9E, 0x38, 0xC9, 0x95, 0xFC, 0x09, 0x48, 0x07,
0x10, 0x5E, 0x6F, 0x9B, 0x6D, 0xF5, 0x65, 0x71, 0xFA, 0xAA, 0x40, 0xE2, 0x74, 0x12, 0x73, 0x35,
0x76, 0xAE, 0x2E, 0x7D, 0xE1, 0x0C, 0x26, 0x2B, 0x2D, 0xBF, 0x02, 0xA6, 0x5C, 0x56, 0xC9, 0xC4,
0x33, 0x6A, 0x06, 0xCF, 0x16, 0x9A, 0xCF, 0x2C, 0xE8, 0xA8, 0x2F, 0x90, 0x5F, 0xC3, 0x1E, 0x75,
0xE0, 0x7E, 0x5E, 0xF4, 0xDE, 0xEC, 0xEA, 0xDB, 0xB9, 0xFE, 0xC8, 0x34, 0xCE, 0x86, 0xA6, 0xA2,
0x91, 0xE9, 0xD9, 0x57, 0x57, 0x72, 0x67, 0xA0, 0x21, 0xB6, 0x3C, 0x0E, 0x83, 0x15, 0xC5, 0x83,
0x9F, 0xA3, 0xFE, 0x3C, 0xED, 0xA2, 0xB5, 0xAE, 0xAE, 0xBD, 0x95, 0xE8, 0x3E, 0xC0, 0x57, 0xB0,
0xD9, 0x0F, 0x58, 0x69, 0x11, 0x42, 0x32, 0x41, 0xDB, 0x32, 0x9A, 0x16, 0x15, 0xDF, 0xD0, 0x3C,
0xC9, 0x5B, 0x4B, 0xD6, 0xC3, 0xC2, 0x52, 0x29, 0x7F, 0x2D, 0x6F, 0x93, 0xEF, 0x51, 0xB3, 0x4B,
0x6E, 0xA4, 0xD4, 0x62, 0xAF, 0x17, 0x96, 0xAE, 0x00, 0x66, 0xB8, 0x62, 0x84, 0xAF, 0x2C, 0x18,
0xEB, 0xF9, 0xAE, 0x81, 0x3D, 0xD0, 0x7B, 0x96, 0xD6, 0xA6, 0x1E, 0x3F, 0x0E, 0xCC, 0x13, 0xEC,
0x7C, 0xB2, 0xBD, 0x8C, 0xF2, 0xC3, 0x3E, 0x6E, 0x9D, 0x4B, 0xD9, 0xB9, 0xE1, 0xDE, 0xE4, 0xE1,
0x9E, 0x35, 0x81, 0xA5, 0x1E, 0x9D, 0x02, 0x23, 0xF6, 0x59, 0xF2, 0xF5, 0x13, 0xF5, 0x6B, 0x9F,
0x95, 0x58, 0xD0, 0x8E, 0x6F, 0xFE, 0x56, 0xF6, 0xD2, 0x7C, 0x9D, 0xCE, 0x20, 0x01, 0x1E, 0xC4,
0x62, 0x2A, 0x2A, 0xBB, 0xCE, 0x62, 0x0C, 0xF1, 0x60, 0x06, 0x53, 0x76, 0x83, 0x1A, 0xF1, 0xAB,
0x31, 0x45, 0x82, 0xC0, 0x3A, 0xFA, 0x3E, 0x8D, 0x68, 0x82, 0x10, 0x1A, 0x8B, 0x07, 0xC0, 0xCC,
0x2E, 0x65, 0x16, 0xE0, 0xBE, 0x0D, 0xA2, 0xB2, 0x0C, 0x38, 0x0B, 0xE8, 0xB7, 0xA0, 0x21, 0xD8,
0xD5, 0x1F, 0x08, 0xEC, 0xB8, 0x98, 0x8D, 0xED, 0x0A, 0xD0, 0x0C, 0x31, 0x8A, 0xDE, 0xD8, 0x88,
0xE4, 0x93, 0xB6, 0x1E, 0x1F, 0x3C, 0x2C, 0xBE, 0x54, 0x52, 0xFD, 0xB4, 0xDF, 0x27, 0x2F, 0x7F,
0xF0, 0x66, 0x3F, 0x2B, 0x1B, 0x81, 0xDE, 0x8C, 0x69, 0xB6, 0x00, 0x67, 0x55, 0x5B, 0xA5, 0xDA,
0x1B, 0xC8, 0xCC, 0x84, 0xBF, 0x76, 0x86, 0x07, 0x36, 0xB6, 0xC4, 0xB7, 0x25, 0x81, 0xD9, 0x80,
0xE0, 0x98, 0xD0, 0xFE, 0x2E, 0x4C, 0xC1, 0xDA, 0xEC, 0x98, 0x6B, 0xED, 0xD6, 0x06, 0xF8, 0x5F,
0x28, 0x7D, 0xED, 0x95, 0xEF, 0x32, 0x36, 0x2B, 0x44, 0x63, 0x4D, 0x9F, 0xEC, 0x57, 0x03, 0x4B,
0x4C, 0x6D, 0x4E, 0x88, 0x18, 0x21, 0xF5, 0x2C, 0xFD, 0x4B, 0x05, 0xBB, 0x4B, 0x47, 0xA0, 0x20,
0x69, 0x5A, 0x89, 0xF6, 0x33, 0x59, 0x9B, 0x5C, 0x4E, 0xEC, 0x63, 0xF0, 0xB7, 0xB4, 0x14, 0xB2,
0x4C, 0x26, 0x3A, 0x6F, 0x0E, 0x60, 0x74, 0xA9, 0xC3, 0x56, 0x22, 0x72, 0xD6, 0x39, 0x4D, 0xE6,
0x69, 0x1E, 0x3D, 0x3C, 0x1E, 0x5A, 0xC0, 0x63, 0xD5, 0xAB, 0x3B, 0xC4, 0xF5, 0xE0, 0xF0, 0xB5,
0xCF, 0x09, 0x75, 0x17, 0x4C, 0x49, 0xEF, 0xBB, 0xAB, 0x57, 0x39, 0xF4, 0xC4, 0x9F, 0x82, 0x69,
0x25, 0x8F, 0x6B, 0xD1, 0x11, 0xA7, 0xDF, 0x7D, 0x1C, 0x7B, 0x20, 0x93, 0xCD, 0xB0, 0x69, 0x2F,
0x3B, 0xE6, 0xF5, 0x8B, 0x94, 0x2B, 0xE1, 0xB9, 0x81, 0x16, 0xCD, 0xBE, 0x28, 0x2A, 0x61, 0x65,
0xAC, 0x74, 0x6E, 0xC0, 0x3B, 0x96, 0x28, 0xE3, 0x4E, 0x07, 0xA5, 0xCE, 0x79, 0x7E, 0xA0, 0xEC,
0x27, 0xD9, 0xD7, 0x07, 0x40, 0xFD, 0xFD, 0x31, 0xFF, 0xB0, 0x98, 0xCD, 0x9C, 0xA2, 0xB1, 0x31,
0x56, 0x7E, 0x79, 0x8E, 0xD3, 0xA6, 0x85, 0x70, 0x60, 0x0B, 0x62, 0xF5, 0x4A, 0x6C, 0x89, 0xD6,
0xA6, 0x85, 0x60, 0xB3, 0xD2, 0xE0, 0xEB, 0x04, 0xCF, 0xD8, 0x77, 0x9F, 0xE7, 0xEE, 0x0E, 0x32,
0x3A, 0x06, 0x57, 0x3F, 0xBB, 0x12, 0x25, 0xD3, 0xF9, 0xFC, 0x9A, 0x84, 0x7E, 0xB9, 0x1A, 0xA4,
0xDD, 0xCE, 0x4A, 0x06, 0x3D, 0x9F, 0xEA, 0x67, 0xD0, 0xEB, 0x6C, 0x90, 0xAB, 0xC4, 0x37, 0xA4,
0x8D, 0xB6, 0x28, 0x11, 0x52, 0x87, 0xAC, 0x13, 0x82, 0xD0, 0xB8, 0x9B, 0x69, 0x89, 0x7C, 0xFD,
0xD2, 0x03, 0xBC, 0xEC, 0xD1, 0xF0, 0x69, 0x94, 0x90, 0x9B, 0x7C, 0xE3, 0x8D, 0x57, 0x76, 0x58,
0x7C, 0x85, 0x4A, 0xDA, 0x83, 0x4A, 0xF2, 0x73, 0xDD, 0x20, 0x9D, 0xF5, 0x33, 0x27, 0xB7, 0x4F,
0x6D, 0xE0, 0xF6, 0xEA, 0x52, 0x76, 0x5B, 0x25, 0xDF, 0x7C, 0x5B, 0x56, 0xBE, 0x30, 0xEE, 0xEA,
0x77, 0xB2, 0xD5, 0xB1, 0x83, 0x8C, 0x5F, 0x04, 0x7A, 0x4D, 0x5D, 0x9F, 0x9A, 0x56, 0xCC, 0x45,
0x66, 0xC5, 0x4D, 0x33, 0x65, 0x31, 0x28, 0x41, 0x97, 0x26, 0x7C, 0x62, 0x17, 0x89, 0xDE, 0x0F,
0x74, 0x15, 0xDC, 0x45, 0xE6, 0xA6, 0xDE, 0xD2, 0x9A, 0xD8, 0x9C, 0x01, 0x1C, 0xE8, 0xFF, 0xAD,
0x59, 0x4F, 0x6C, 0x14, 0xD7, 0x19, 0xFF, 0xDE, 0x8C, 0xCD, 0x54, 0x8C, 0xEA, 0xE7, 0xAA, 0x8E,
0x2A, 0x41, 0xF0, 0xE4, 0x90, 0x43, 0x55, 0xE1, 0x9D, 0x4B, 0x0E, 0x44, 0xDA, 0xD9, 0x1D, 0x70,
0x1B, 0x0E, 0xA8, 0xC2, 0x6D, 0x71, 0x72, 0xE8, 0x81, 0x4B, 0x0F, 0x55, 0xA4, 0xC6, 0x39, 0x44,
0x15, 0xAD, 0xD6, 0xEC, 0xA4, 0x39, 0xE6, 0x60, 0x38, 0xE4, 0xDA, 0xA4, 0x6D, 0x0E, 0xC5, 0x28,
0x98, 0x83, 0x85, 0xB6, 0x64, 0xED, 0x9D, 0x40, 0x25, 0x0E, 0x1C, 0x32, 0x85, 0x46, 0x39, 0x44,
0x0A, 0xD3, 0x34, 0x51, 0x15, 0x2C, 0x85, 0x09, 0x0C, 0x30, 0xB1, 0x77, 0xF6, 0xF5, 0xF7, 0xBD,
0xD9, 0x85, 0x5D, 0x6C, 0x07, 0x3B, 0x78, 0xFF, 0xBF, 0xB7, 0x6F, 0xDE, 0xFB, 0xBD, 0xEF, 0x7D,
0x7F, 0x7E, 0xDF, 0x37, 0xD4, 0xEA, 0x10, 0xF1, 0x9B, 0x1F, 0x66, 0x48, 0x64, 0xC7, 0x44, 0x32,
0x21, 0x1A, 0x5F, 0x24, 0xF2, 0x4E, 0x10, 0x95, 0xCB, 0x44, 0x8D, 0x09, 0xA2, 0xD4, 0x21, 0x91,
0x48, 0xDF, 0x88, 0xED, 0xC0, 0xBC, 0x79, 0x36, 0xB4, 0x94, 0x8A, 0xE4, 0x5B, 0x2F, 0x26, 0x0E,
0x51, 0x52, 0xC2, 0x08, 0x8C, 0xAA, 0xD5, 0x70, 0x45, 0x4A, 0xE4, 0xDA, 0x2A, 0x76, 0x55, 0x80,
0xF9, 0xF6, 0x9C, 0x92, 0x2A, 0x79, 0xDE, 0x8A, 0xC9, 0x0A, 0x49, 0x62, 0x2A, 0x5B, 0xDD, 0xEE,
0x9C, 0xBD, 0xE1, 0xCB, 0x8C, 0xAA, 0x91, 0xB1, 0x16, 0x3A, 0x37, 0x56, 0x6E, 0x39, 0xF9, 0x7E,
0x5E, 0xD9, 0x1F, 0xC6, 0x3C, 0x23, 0x44, 0xF5, 0x76, 0x81, 0x60, 0x07, 0xD1, 0x0C, 0xD3, 0xD4,
0x7E, 0x33, 0xA8, 0xB6, 0xC9, 0x65, 0x48, 0xE2, 0x0C, 0x29, 0x65, 0x9E, 0x3A, 0x89, 0x01, 0x18,
0x8B, 0x35, 0x5A, 0xCA, 0xBD, 0xB9, 0x94, 0x92, 0x0A, 0xCC, 0x9C, 0xDC, 0xA6, 0xC8, 0x3B, 0xCB,
0x5F, 0xAB, 0x6B, 0xE1, 0xCE, 0x2D, 0x8F, 0x99, 0xD0, 0xA4, 0xF3, 0x78, 0xF3, 0xBE, 0x30, 0x19,
0x29, 0xBC, 0x9F, 0xA2, 0x97, 0x7D, 0x08, 0x67, 0xE4, 0x60, 0xA6, 0x91, 0x60, 0x48, 0xD9, 0x50,
0x6D, 0xF7, 0x66, 0x73, 0x96, 0xCA, 0x19, 0x95, 0x53, 0x6A, 0x36, 0x45, 0xBB, 0xBE, 0xD0, 0xD4,
0xF2, 0x39, 0xC0, 0xD7, 0x8A, 0x88, 0x04, 0x66, 0xC0, 0x51, 0x8D, 0x15, 0xF2, 0x81, 0xA8, 0x20,
0x57, 0xBE, 0xD4, 0x08, 0x75, 0x87, 0x50, 0xDF, 0x50, 0x5D, 0xB5, 0xAD, 0x94, 0x4E, 0x55, 0xD1,
0x89, 0xA5, 0x64, 0xA0, 0xFF, 0x17, 0x49, 0x31, 0x14, 0xF8, 0x78, 0x31, 0x6E, 0x9A, 0x11, 0x76,
0xC7, 0x5D, 0x18, 0xC1, 0x82, 0x71, 0x57, 0x73, 0xDA, 0xAB, 0x12, 0xEA, 0x3E, 0x70, 0x61, 0x46,
0x56, 0xC0, 0x2B, 0x13, 0xED, 0x7A, 0x57, 0xA8, 0xB6, 0xFC, 0xE8, 0x9D, 0x8C, 0x65, 0x82, 0x39,
0x1A, 0x64, 0xC4, 0x64, 0x07, 0xFC, 0xD3, 0x23, 0x6A, 0x62, 0x43, 0x0B, 0xD4, 0xCA, 0x1E, 0x5C,
0x8A, 0x59, 0x55, 0x48, 0xF6, 0x9B, 0x01, 0xBD, 0x66, 0xF9, 0x3B, 0x8B, 0x4B, 0x64, 0xE4, 0xA4,
0x94, 0xA4, 0x23, 0x5A, 0x9E, 0xDB, 0xC0, 0x05, 0x1C, 0xF8, 0x83, 0x70, 0x38, 0x34, 0x5A, 0x4C,
0x55, 0xEF, 0xF8, 0x8E, 0x52, 0x22, 0xA7, 0x67, 0x19, 0x30, 0x06, 0x9B, 0x7C, 0xD6, 0x0F, 0x81,
0xF4, 0xE1, 0xA2, 0xB4, 0x40, 0x0D, 0x45, 0xD6, 0x1A, 0x61, 0x77, 0x5A, 0xFE, 0x2E, 0xD5, 0xD6,
0xD3, 0x0C, 0xF1, 0xBF, 0x00, 0x2D, 0xA8, 0x50, 0xAE, 0xBA, 0x32, 0xEF, 0xFE, 0xB6, 0xC2, 0xE7,
0x8C, 0x09, 0x4A, 0x5D, 0x4C, 0xAC, 0xFE, 0x3E, 0xAB, 0x42, 0x75, 0x25, 0x74, 0x3B, 0xBD, 0xBD,
0xC4, 0x13, 0x64, 0xDC, 0x89, 0xC8, 0x40, 0x87, 0x11, 0xEF, 0xF0, 0x01, 0x7A, 0x66, 0xE8, 0xD5,
0xA8, 0x1A, 0xD2, 0xEC, 0xB6, 0x0F, 0x50, 0x1E, 0x4C, 0x48, 0x1E, 0x2F, 0xF4, 0xDE, 0xD1, 0xE7,
0x67, 0xA9, 0x2F, 0xC9, 0x55, 0xCA, 0x6F, 0x88, 0xD6, 0xA1, 0x98, 0xDC, 0x23, 0x01, 0x55, 0xB1,
0xB3, 0x5A, 0x83, 0xE8, 0x5E, 0x4C, 0xE6, 0x4A, 0x40, 0xF6, 0x39, 0x88, 0x16, 0xCD, 0x55, 0x34,
0x3F, 0xC1, 0xB4, 0xF8, 0xB7, 0xDD, 0x20, 0xFB, 0x52, 0x2C, 0x72, 0x1B, 0xA6, 0xE1, 0xAA, 0xCF,
0x79, 0xDE, 0xA3, 0x00, 0x7D, 0x1D, 0x48, 0xEF, 0x02, 0xB9, 0xF7, 0x0E, 0xB1, 0x48, 0xF6, 0x4C,
0x46, 0x54, 0xCF, 0x53, 0x3A, 0x79, 0x38, 0xA7, 0x0A, 0x55, 0x7D, 0x87, 0xAC, 0x08, 0xFB, 0x4C,
0x01, 0xCF, 0x03, 0x4A, 0xE9, 0x97, 0xB0, 0x4F, 0xEE, 0x80, 0x3C, 0x67, 0xA9, 0x8A, 0x11, 0xE6,
0x6A, 0x2B, 0x22, 0x37, 0x5B, 0xA4, 0x1E, 0x30, 0xA1, 0x54, 0x4A, 0x35, 0xD1, 0xC2, 0xB5, 0x46,
0x82, 0xA1, 0x55, 0xC1, 0xA2, 0xAF, 0x69, 0x1B, 0xA5, 0x4A, 0x55, 0x85, 0xF6, 0xDB, 0x0A, 0xF3,
0x61, 0x93, 0x19, 0x6F, 0x17, 0x23, 0x1C, 0x8C, 0x90, 0x18, 0x61, 0x87, 0x0E, 0x39, 0x11, 0xDB,
0xAE, 0x50, 0x1D, 0xDE, 0x28, 0x00, 0x61, 0x59, 0x53, 0x29, 0x92, 0x7C, 0xBA, 0xD2, 0x17, 0xEF,
0x7A, 0x0C, 0xCF, 0xFA, 0xA2, 0x1E, 0x01, 0x1D, 0xE4, 0x32, 0xCB, 0x58, 0x18, 0x13, 0xB0, 0x41,
0x14, 0x3C, 0x5B, 0x2A, 0x81, 0x99, 0x91, 0x55, 0xCF, 0xE6, 0x3D, 0x60, 0x52, 0x45, 0x55, 0x85,
0xC9, 0x1C, 0x95, 0xB7, 0xD4, 0x3D, 0x2D, 0xEA, 0x9E, 0x2A, 0xD8, 0x1F, 0x4D, 0xBB, 0xAA, 0xBD,
0x3C, 0xFF, 0xD7, 0xC1, 0xDE, 0x00, 0x02, 0xC6, 0xD8, 0xD4, 0x56, 0x09, 0xBC, 0x27, 0xCF, 0xF1,
0xB2, 0x6F, 0xA9, 0x58, 0x9E, 0xCE, 0x2A, 0xE4, 0x95, 0xA9, 0x54, 0x23, 0xB7, 0xA5, 0xD4, 0xF2,
0xFC, 0x7C, 0x43, 0x2B, 0x00, 0x4E, 0xCD, 0xF5, 0x87, 0xE4, 0x6A, 0x53, 0x28, 0x3E, 0xB6, 0xEF,
0x91, 0x7F, 0xC0, 0xF2, 0x71, 0x82, 0x33, 0x3E, 0x2B, 0x91, 0xFA, 0x44, 0xA9, 0x57, 0x1E, 0xCE,
0x8C, 0x45, 0x96, 0xA6, 0x7F, 0xA9, 0xD4, 0xD5, 0x9B, 0xF3, 0xA5, 0x81, 0x5E, 0xFC, 0xD4, 0x63,
0xE1, 0x7C, 0x47, 0x6D, 0x4A, 0x4C, 0x58, 0xED, 0x32, 0x6D, 0x77, 0x6D, 0xD8, 0x13, 0x14, 0x15,
0x9A, 0x38, 0x44, 0xDF, 0x69, 0x6D, 0xBE, 0xCE, 0xD3, 0xAF, 0xA1, 0x6D, 0xAF, 0x5D, 0x57, 0xF7,
0x30, 0xC9, 0xA0, 0x18, 0xA7, 0x8F, 0xB5, 0xD4, 0xED, 0xD5, 0xF9, 0x37, 0x07, 0x7A, 0xF1, 0xB3,
0xC5, 0x63, 0x23, 0xDA, 0xCF, 0x7E, 0x54, 0x6A, 0xA3, 0xAA, 0xFB, 0x74, 0x6C, 0xCB, 0xCB, 0xB5,
0xD9, 0xE8, 0xE0, 0x67, 0x4D, 0xFD, 0x32, 0xA0, 0x1E, 0xC7, 0x00, 0xE0, 0x84, 0x1D, 0xC0, 0x0C,
0x5A, 0x01, 0xDB, 0x10, 0xB4, 0x51, 0xCD, 0xA8, 0x7C, 0x70, 0x8F, 0x77, 0xA7, 0x8F, 0x28, 0xE5,
0xCE, 0xFF, 0x7D, 0xB0, 0x17, 0x3F, 0xF5, 0x58, 0xAD, 0x73, 0x89, 0xF9, 0x71, 0xC8, 0x21, 0x61,
0x76, 0xFB, 0xA2, 0xEF, 0xBA, 0x44, 0xB2, 0x30, 0x93, 0x84, 0xF6, 0xFE, 0xB8, 0x1B, 0x08, 0xF6,
0xC2, 0xE0, 0x94, 0x6A, 0x9B, 0x19, 0xFD, 0x86, 0x9D, 0x1B, 0xC7, 0xA0, 0x4A, 0x37, 0x0E, 0xD5,
0xF4, 0xFB, 0xA9, 0x63, 0x70, 0x0E, 0x79, 0x8D, 0xF6, 0x2C, 0xF1, 0xAC, 0x2C, 0x7E, 0x8C, 0xF1,
0xE0, 0x6C, 0x3C, 0xF8, 0x1E, 0x4F, 0xA8, 0x15, 0xA8, 0xB2, 0xEA, 0xF7, 0xE8, 0x08, 0xD9, 0xF2,
0x48, 0x60, 0xFB, 0xAF, 0x69, 0x77, 0x72, 0x6A, 0xD4, 0x51, 0xBF, 0x73, 0x4E, 0xAB, 0xA3, 0x81,
0xFC, 0x38, 0x14, 0x77, 0x13, 0xF2, 0x60, 0x0F, 0xAF, 0x68, 0xDB, 0xE7, 0x46, 0x99, 0x9C, 0xA3,
0xA1, 0x8C, 0x3A, 0x0B, 0xA9, 0xDD, 0xF1, 0xB4, 0x53, 0x85, 0xC8, 0x44, 0x32, 0x25, 0x32, 0x4C,
0x6A, 0xB0, 0x33, 0x18, 0x83, 0x43, 0xDE, 0x8F, 0x4E, 0x89, 0x7D, 0x1B, 0xDD, 0x75, 0x76, 0x10,
0xB4, 0xA0, 0x67, 0x44, 0xB4, 0x9F, 0xAA, 0x1D, 0x32, 0xBE, 0xD1, 0x73, 0xEF, 0xF1, 0xFD, 0x7A,
0xBE, 0x08, 0x2F, 0x03, 0x33, 0x3E, 0x4E, 0x16, 0x04, 0x0E, 0xAB, 0xEC, 0x82, 0x46, 0x23, 0x85,
0x65, 0xC3, 0x84, 0x27, 0xE1, 0x5B, 0xDC, 0x2C, 0xD5, 0x6B, 0x02, 0xB4, 0xF5, 0x81, 0x6F, 0xC5,
0x2D, 0x15, 0xDB, 0xEA, 0x54, 0x37, 0x6C, 0xA4, 0xDD, 0xF7, 0xE8, 0x8E, 0x23, 0x66, 0xE5, 0x47,
0x3F, 0xC7, 0x81, 0xD1, 0x9D, 0x42, 0xBC, 0xD3, 0x8A, 0xC0, 0x0A, 0xBF, 0x58, 0x50, 0x18, 0xD8,
0x10, 0x09, 0x1D, 0x1B, 0x34, 0xF7, 0x88, 0xF5, 0x1F, 0x65, 0xDA, 0x19, 0xE5, 0xD0, 0xD1, 0x19,
0xDD, 0x1D, 0x8D, 0xC8, 0x08, 0x27, 0xB4, 0xAB, 0x0F, 0x48, 0xC2, 0x78, 0xCA, 0x30, 0x84, 0xDB,
0x88, 0x32, 0x57, 0xFB, 0x9A, 0x77, 0xA7, 0x5F, 0xBA, 0xAA, 0xD8, 0xCA, 0xE6, 0x9B, 0x1B, 0xFC,
0xDB, 0xD7, 0xE4, 0x79, 0x1C, 0x66, 0x27, 0x68, 0x1F, 0xF5, 0xE9, 0xBC, 0x4D, 0x0F, 0x1E, 0x69,
0x11, 0x50, 0x8B, 0x08, 0xD0, 0x6D, 0x9E, 0x21, 0x39, 0xA3, 0xA8, 0xFA, 0xEF, 0x3A, 0x98, 0x56,
0x19, 0xEC, 0x20, 0x95, 0xBE, 0x19, 0x79, 0x18, 0x03, 0xC9, 0x60, 0xF0, 0x46, 0x4D, 0x46, 0x49,
0x7A, 0x29, 0x2C, 0x9D, 0x54, 0x81, 0x2A, 0xC7, 0x5B, 0xA5, 0x0F, 0xBA, 0xE0, 0x10, 0x5E, 0x0A,
0x61, 0xFC, 0x8A, 0x18, 0x6E, 0xD1, 0x05, 0x84, 0xA1, 0x3D, 0x70, 0xE1, 0x23, 0x5D, 0x8C, 0x2A,
0x65, 0x0F, 0x16, 0xD9, 0xAA, 0xD3, 0x6B, 0xC9, 0xE3, 0x39, 0xAD, 0xAD, 0x65, 0x32, 0xB6, 0xC3,
0x36, 0x9F, 0x98, 0x19, 0x01, 0x07, 0x63, 0xD8, 0xF0, 0x4B, 0xD0, 0x0F, 0x3A, 0x23, 0xCF, 0xAB,
0xEB, 0x82, 0x0F, 0x10, 0x61, 0x46, 0x4F, 0x93, 0x3E, 0xE6, 0x63, 0x26, 0x96, 0xCA, 0x1F, 0xB8,
0x72, 0x98, 0x1E, 0x7B, 0x51, 0x5D, 0xD5, 0x61, 0xD4, 0xD5, 0xDC, 0xCD, 0xCC, 0x68, 0xF3, 0xE7,
0xDE, 0xAC, 0x9A, 0x17, 0x23, 0x85, 0xBF, 0xF9, 0xA8, 0x29, 0xE3, 0x69, 0xE3, 0x32, 0xF8, 0x43,
0xC0, 0x21, 0xF5, 0x90, 0x0A, 0x78, 0x27, 0x58, 0x82, 0x85, 0xBE, 0xD1, 0x8F, 0x5D, 0x1D, 0x53,
0xF5, 0x5F, 0x43, 0x53, 0x9B, 0x0E, 0xD5, 0x3F, 0x10, 0x11, 0x82, 0xD4, 0x8C, 0xA4, 0xEF, 0xD1,
0xBA, 0xAF, 0x99, 0xFF, 0xAA, 0x68, 0x1F, 0xC5, 0x36, 0x4D, 0x20, 0x4E, 0x8C, 0x09, 0x08, 0x72,
0x08, 0x50, 0x53, 0x4F, 0x4E, 0x46, 0x7D, 0x1F, 0x07, 0xCA, 0x23, 0x56, 0xA0, 0x86, 0x21, 0x24,
0x5C, 0x04, 0x9F, 0x66, 0xAA, 0x4F, 0x3A, 0x9B, 0x4C, 0x28, 0x0F, 0xB6, 0xE6, 0x94, 0xFF, 0xAB,
0x1B, 0xB3, 0xF7, 0x8B, 0x57, 0xA4, 0x52, 0x09, 0x19, 0x85, 0xA0, 0x36, 0x1E, 0x95, 0xA5, 0x2F,
0xB1, 0xE1, 0xC7, 0x36, 0x70, 0x22, 0xD5, 0x5C, 0xDB, 0x0B, 0xD3, 0xB6, 0xA1, 0x25, 0xB2, 0x60,
0x24, 0x67, 0xE0, 0x3C, 0x26, 0x23, 0xD7, 0x13, 0x89, 0x3F, 0xC4, 0xF2, 0x1C, 0xF6, 0xC4, 0x9D,
0xC8, 0xF9, 0x96, 0x8F, 0x84, 0x38, 0x7D, 0xC1, 0x87, 0x19, 0xCB, 0x36, 0x29, 0x4D, 0x7D, 0x42,
0x98, 0x5B, 0xDA, 0x98, 0x60, 0xC3, 0x86, 0x2D, 0x43, 0xF7, 0x1A, 0x5B, 0xFE, 0x90, 0xFE, 0xE1,
0x44, 0xE6, 0x34, 0xAF, 0x0D, 0xC9, 0x09, 0x78, 0xA2, 0x74, 0xBF, 0x8E, 0x44, 0x53, 0x5B, 0xD1,
0x32, 0xFD, 0xE1, 0x50, 0x3D, 0xB6, 0x32, 0x3A, 0xC1, 0x69, 0x83, 0x91, 0x34, 0xA8, 0x69, 0x07,
0x0E, 0x35, 0xAC, 0xC8, 0x0E, 0x52, 0x6A, 0x78, 0x64, 0xCF, 0x05, 0xF4, 0x7E, 0x46, 0xF6, 0x5A,
0x44, 0x4B, 0x2E, 0x56, 0xCD, 0x8A, 0xFF, 0x5C, 0xAC, 0xDE, 0x46, 0x0A, 0x16, 0x37, 0xC8, 0x39,
0x52, 0x04, 0x61, 0x5E, 0x94, 0xC6, 0x8B, 0xEC, 0x0D, 0xC9, 0x8B, 0xA1, 0x6D, 0x65, 0xF0, 0x35,
0x95, 0x1A, 0x49, 0x6A, 0x87, 0xA9, 0x4B, 0x69, 0x93, 0x5D, 0xD2, 0xFD, 0x98, 0xC0, 0x9B, 0xDB,
0x4D, 0x4A, 0x2B, 0x6C, 0xC5, 0xA9, 0x15, 0xF2, 0x00, 0xCA, 0xBA, 0x93, 0x25, 0x9C, 0x76, 0x61,
0x3B, 0x82, 0x5B, 0xBD, 0x6B, 0x1D, 0x3F, 0x9D, 0xA5, 0x34, 0xA3, 0xFB, 0x09, 0xAC, 0x89, 0xF2,
0x26, 0x65, 0x55, 0x5C, 0x1B, 0xA4, 0x56, 0xF4, 0xE0, 0xDA, 0x2A, 0xCB, 0x58, 0x16, 0x99, 0x1F,
0xBB, 0xAF, 0x75, 0xFC, 0x67, 0xD3, 0x9F, 0x5D, 0x6E, 0x50, 0xB1, 0x3F, 0x48, 0x38, 0xFF, 0x82,
0x97, 0xD9, 0xFC, 0x75, 0x62, 0x6B, 0x53, 0xF6, 0x53, 0x20, 0x6D, 0xC6, 0x65, 0x32, 0x34, 0x0F,
0x7A, 0x06, 0x3E, 0x76, 0xDD, 0x83, 0x86, 0x4B, 0xE5, 0x03, 0xCF, 0x9C, 0xA0, 0x0B, 0x31, 0x7C,
0xE7, 0x48, 0x89, 0x5E, 0xDD, 0xE2, 0xD4, 0xE9, 0xFD, 0xEB, 0x1F, 0xFE, 0xDC, 0x3B, 0xBF, 0x99,
0x4D, 0xE1, 0xA4, 0x37, 0x84, 0xEB, 0x37, 0x90, 0x2A, 0xB8, 0x76, 0x30, 0xBA, 0xE1, 0x9C, 0x38,
0x91, 0x07, 0xAF, 0xA3, 0x33, 0xF7, 0xD4, 0x4F, 0x1F, 0x36, 0x59, 0xAC, 0x1C, 0x32, 0x1B, 0x3A,
0xB3, 0xB3, 0x1F, 0x36, 0x4A, 0x10, 0xA2, 0x6F, 0xE4, 0xCC, 0xD3, 0x04, 0x2C, 0x64, 0xEF, 0xC0,
0x30, 0x05, 0x57, 0xA2, 0x60, 0x52, 0x03, 0xCF, 0x7F, 0x9A, 0xB9, 0x99, 0x39, 0x51, 0x35, 0xFC,
0xE1, 0x40, 0x7F, 0x51, 0x88, 0x48, 0x8A, 0xCC, 0x0B, 0x5F, 0x45, 0xC8, 0xB0, 0x22, 0xB2, 0x66,
0x90, 0xDE, 0x81, 0xF8, 0x5D, 0xBC, 0x45, 0xC6, 0xCA, 0x0C, 0xD9, 0xEF, 0x79, 0x54, 0x5A, 0xAC,
0xD1, 0xC5, 0xA8, 0x6D, 0xAC, 0x04, 0xA9, 0x7D, 0xCE, 0x48, 0x4A, 0x0D, 0x33, 0xBE, 0x18, 0x9B,
0xD7, 0x56, 0x02, 0xFB, 0xCA, 0x39, 0x92, 0x7F, 0x86, 0x8E, 0x5E, 0x44, 0xF6, 0x84, 0x74, 0xA9,
0x8A, 0x74, 0xE9, 0x24, 0xCF, 0x63, 0xEB, 0xBC, 0x10, 0x01, 0x47, 0xD3, 0xAA, 0xA9, 0x97, 0xFD,
0xDB, 0x2A, 0x51, 0xBF, 0x68, 0xB7, 0xB9, 0x04, 0xE0, 0xA5, 0x9B, 0xBF, 0x40, 0x15, 0x7F, 0xDF,
0xC6, 0xBA, 0xB0, 0x88, 0x73, 0x09, 0x95, 0x2E, 0x24, 0x74, 0xF1, 0x7A, 0x64, 0xAC, 0x1C, 0x0E,
0xED, 0xF7, 0x64, 0x58, 0x6A, 0x48, 0xFF, 0x62, 0xEC, 0x02, 0x46, 0x05, 0x79, 0x99, 0x87, 0xBC,
0xAC, 0xF9, 0xC7, 0x98, 0xBE, 0x59, 0x09, 0xC4, 0xDA, 0x39, 0x24, 0x9B, 0x0D, 0x32, 0x91, 0xA6,
0x59, 0x71, 0xCF, 0x56, 0x78, 0x8F, 0x13, 0xC5, 0xE6, 0x8C, 0xED, 0x60, 0xE0, 0xCB, 0xC7, 0x74,
0x50, 0x3D, 0xA1, 0x75, 0x7C, 0xAA, 0x90, 0x4C, 0x00, 0xE7, 0xF1, 0xA1, 0x4F, 0x76, 0x56, 0x24,
0xDC, 0x3B, 0x26, 0x2B, 0x29, 0x62, 0xEB, 0x6A, 0x20, 0x14, 0x15, 0x56, 0xBE, 0x75, 0x9C, 0x9C,
0xF2, 0x7B, 0x7D, 0x9C, 0x67, 0x11, 0x97, 0x26, 0x77, 0x54, 0xE2, 0xAB, 0x9F, 0x65, 0x08, 0xEC,
0x35, 0x38, 0x84, 0x32, 0x36, 0xFF, 0xD8, 0x77, 0xBF, 0xCC, 0xD3, 0xAE, 0xCC, 0x63, 0xC8, 0x3C,
0xB2, 0xDF, 0xB3, 0x59, 0xE6, 0xC1, 0xC5, 0xD8, 0x39, 0xB4, 0x12, 0xB8, 0x90, 0x79, 0x65, 0xBC,
0x41, 0xB3, 0x90, 0xF9, 0x12, 0xF0, 0x2B, 0xE0, 0x87, 0xCC, 0x0D, 0x4E, 0x8D, 0xE3, 0x42, 0x26,
0x40, 0xF3, 0x42, 0x82, 0x50, 0xE1, 0xD3, 0xEE, 0x77, 0xFA, 0x37, 0xE2, 0x3D, 0x4E, 0xE0, 0x7D,
0x2F, 0xF8, 0x6D, 0x19, 0x13, 0x27, 0x99, 0x52, 0x5B, 0x34, 0x1E, 0xAD, 0x9C, 0xD3, 0xAF, 0x04,
0xF9, 0x40, 0x1D, 0xFE, 0xC7, 0xE4, 0x8C, 0xB7, 0xC6, 0x04, 0x6B, 0x0E, 0x07, 0x7B, 0x1F, 0x87,
0x3C, 0xCB, 0x5A, 0x0C, 0x09, 0x58, 0x37, 0x10, 0x24, 0xB8, 0xA3, 0x09, 0x6F, 0x58, 0x01, 0xDD,
0x73, 0x70, 0x44, 0x32, 0x58, 0x06, 0x35, 0xB2, 0x3B, 0xAD, 0x90, 0x66, 0x74, 0xE9, 0x0E, 0x8A,
0x01, 0xA7, 0x58, 0x14, 0x39, 0xC4, 0x19, 0xE4, 0x36, 0xA9, 0xF9, 0xF9, 0xCC, 0x64, 0x6C, 0x24,
0xA0, 0x70, 0x35, 0x4E, 0xF8, 0x71, 0x74, 0xB4, 0x1C, 0x73, 0x8A, 0x22, 0xE7, 0x7C, 0xF3, 0x52,
0x62, 0x26, 0xD5, 0xB3, 0x89, 0x28, 0x72, 0x57, 0xD0, 0x6F, 0x9F, 0x46, 0xB8, 0x60, 0xC5, 0x05,
0x89, 0xBD, 0xDD, 0x7A, 0x9E, 0x0D, 0xA4, 0x0E, 0x98, 0x8F, 0x13, 0x58, 0x09, 0x18, 0x66, 0x05,
0xDA, 0x6F, 0x5D, 0x06, 0xF8, 0x0C, 0x63, 0xDC, 0x7E, 0x60, 0x3D, 0xA4, 0xAC, 0x48, 0xE6, 0x67,
0xF0, 0xBF, 0x09, 0x84, 0x9F, 0xD9, 0xB1, 0x68, 0x53, 0x6B, 0xA5, 0x4D, 0xBB, 0xBA, 0x84, 0xD4,
0x00, 0x55, 0x8E, 0x9E, 0x26, 0xB7, 0x43, 0x62, 0xA9, 0xE0, 0xCC, 0xA7, 0xC0, 0x3E, 0xFC, 0xCA,
0x0B, 0xF0, 0xE3, 0xAE, 0xD4, 0x34, 0x19, 0x4A, 0x04, 0xFD, 0xB7, 0xBF, 0x22, 0xE3, 0x7F, 0x21,
0x81, 0x27, 0x97, 0x5D, 0xAA, 0x9A, 0xAB, 0x2D, 0x72, 0x3A, 0x0F, 0x98, 0x9F, 0xF9, 0x1F, 0x5E,
0x00, 0x2B, 0x26, 0x20, 0x38, 0xE7, 0x9F, 0x2B, 0x3A, 0x0D, 0x38, 0x75, 0xA4, 0x73, 0xA1, 0x85,
0x35, 0x71, 0x6C, 0xF2, 0x4F, 0x3C, 0x86, 0xC5, 0x05, 0x2D, 0xB2, 0x1F, 0x85, 0xC9, 0xB8, 0xB9,
0x90, 0x43, 0x19, 0x8B, 0xDC, 0xF1, 0xA9, 0x62, 0xF0, 0x19, 0xB8, 0xAB, 0x8A, 0x44, 0xEB, 0xE1,
0x42, 0x4C, 0xAD, 0x4B, 0x92, 0x46, 0x24, 0xED, 0xB6, 0x0A, 0xA6, 0xFC, 0x2E, 0xC4, 0x11, 0xC9,
0xD3, 0x4B, 0x32, 0xB0, 0x2F, 0x87, 0x1C, 0x89, 0x18, 0x2B, 0x24, 0xBB, 0x16, 0xD0, 0x3F, 0x12,
0xAA, 0xE0, 0x94, 0xED, 0x50, 0x86, 0x9D, 0x85, 0xD0, 0xEA, 0x1E, 0x49, 0x57, 0x8C, 0x8A, 0xEB,
0xAB, 0x4A, 0x65, 0x6E, 0x00, 0x31, 0xCA, 0x80, 0x1D, 0x66, 0x08, 0xE7, 0x06, 0x56, 0x53, 0xE2,
0x98, 0x03, 0x1D, 0xAB, 0x91, 0xF1, 0xC5, 0xB4, 0xC3, 0x2E, 0xF4, 0x4A, 0x08, 0xA6, 0xF9, 0x97,
0x5E, 0x67, 0xCC, 0xFE, 0xA6, 0xC1, 0x09, 0x7B, 0x89, 0xB5, 0x08, 0x9D, 0x76, 0xCC, 0x9E, 0xB1,
0xB5, 0x82, 0x39, 0x77, 0xF1, 0x9C, 0xD4, 0xCD, 0x42, 0x77, 0xB1, 0x2C, 0x2D, 0x15, 0x39, 0xA7,
0xF3, 0xD4, 0xC5, 0xB9, 0xE7, 0xD4, 0xAC, 0x31, 0x4B, 0xB8, 0x0A, 0x39, 0x6A, 0x46, 0xAF, 0x13,
0xEF, 0x0E, 0x67, 0xB6, 0x00, 0x61, 0x71, 0x2F, 0xEC, 0x04, 0xEC, 0xDA, 0x48, 0x4C, 0x45, 0x43,
0xF2, 0x66, 0x06, 0xDC, 0x6E, 0xCE, 0x82, 0x7C, 0xF8, 0x68, 0x6A, 0x86, 0xCD, 0x44, 0xFB, 0xB5,
0x5E, 0x0D, 0xCE, 0xD6, 0x75, 0xA5, 0x6E, 0x10, 0x47, 0x0C, 0x10, 0x08, 0xFE, 0x25, 0xB4, 0xA2,
0xA5, 0x17, 0x33, 0x1B, 0x51, 0x70, 0x79, 0x21, 0x40, 0x8E, 0x4D, 0x0D, 0x23, 0xB1, 0x41, 0xFF,
0x34, 0x31, 0xE8, 0x0F, 0xF7, 0xB3, 0x94, 0x19, 0xB1, 0x09, 0xE9, 0x4C, 0xFD, 0xE4, 0x6B, 0x75,
0xFF, 0xA3, 0x0E, 0x2C, 0x3A, 0x5D, 0xF7, 0x7C, 0xF2, 0x65, 0xB4, 0x7B, 0x2B, 0xF5, 0xB3, 0x8A,
0xB1, 0xDD, 0x73, 0xCE, 0x9D, 0x1B, 0xC7, 0x3A, 0x08, 0xF3, 0x1B, 0x31, 0x4C, 0xED, 0x1C, 0x27,
0x10, 0x60, 0x4D, 0x9F, 0x8A, 0x3C, 0x29, 0x19, 0x27, 0x38, 0x30, 0x72, 0x92, 0xAE, 0x07, 0x7B,
0x72, 0x54, 0x66, 0x58, 0x93, 0xC7, 0xA9, 0x1A, 0x0A, 0x16, 0xF1, 0xD8, 0xEE, 0x37, 0xAE, 0xB4,
0xBD, 0xBB, 0x93, 0x19, 0x00, 0x01, 0x85, 0xB7, 0xC1, 0x87, 0xD6, 0xF6, 0x98, 0x8F, 0x6B, 0x9C,
0x8A, 0xC2, 0x2E, 0xD2, 0x2D, 0x47, 0xB5, 0x2B, 0x34, 0x56, 0xD3, 0xBE, 0xB1, 0xA6, 0xB3, 0x43,
0x37, 0xD2, 0xAC, 0xB2, 0x85, 0x20, 0x91, 0xE9, 0xAA, 0x84, 0xA7, 0xB7, 0xEE, 0x4D, 0x51, 0xB3,
0xB5, 0x90, 0xD6, 0x7B, 0xAA, 0x88, 0x55, 0x2B, 0xAC, 0x40, 0xB1, 0x76, 0x10, 0x86, 0xCA, 0x67,
0x77, 0x5D, 0x65, 0xDD, 0x42, 0x64, 0x71, 0x52, 0x72, 0x41, 0xE9, 0xB4, 0x3A, 0xC2, 0x55, 0x2E,
0x2F, 0x5C, 0xE9, 0xBA, 0x05, 0x76, 0xE5, 0x42, 0xF9, 0xE6, 0xE5, 0x68, 0xB7, 0xA6, 0x45, 0x4F,
0xB2, 0xBE, 0x1B, 0x58, 0x39, 0xEC, 0xF6, 0x00, 0x13, 0xCD, 0x2D, 0xAF, 0xFF, 0x1D, 0x17, 0x5C,
0xD4, 0xCC, 0xF1, 0x15, 0xCE, 0x56, 0x05, 0x32, 0xD9, 0x6C, 0x4B, 0x0B, 0xC6, 0x2C, 0xE6, 0x1A,
0x52, 0x65, 0x51, 0xE3, 0x52, 0xD3, 0xBA, 0x52, 0xCF, 0x13, 0x6C, 0x7E, 0xE0, 0xE4, 0xB7, 0xB6,
0xF9, 0x96, 0x52, 0xB7, 0x14, 0xB2, 0xC7, 0x2E, 0x8F, 0x91, 0xDB, 0xFD, 0x1A, 0x21, 0x7D, 0xF7,
0x81, 0x8B, 0xD0, 0xFB, 0x88, 0x7E, 0x04, 0xD7, 0x9D, 0x32, 0x23, 0x8E, 0x11, 0xFD, 0x4F, 0x1E,
0x6B, 0xA9, 0xC3, 0x5F, 0x40, 0x3D, 0xC1, 0xBA, 0xD8, 0x19, 0x3D, 0xF8, 0xD1, 0x24, 0xF9, 0x25,
0x8E, 0x7B, 0x1F, 0x57, 0x52, 0xE1, 0x26, 0xE8, 0xD7, 0x41, 0x55, 0xE3, 0x2F, 0x5B, 0xDA, 0xDB,
0x99, 0xED, 0x5E, 0x81, 0xF9, 0x49, 0xC1, 0xB1, 0xA4, 0x27, 0x04, 0x92, 0xF4, 0xE0, 0x39, 0x30,
0x42, 0xE7, 0x2D, 0x4C, 0xE8, 0xE3, 0x93, 0xDD, 0xDB, 0x86, 0xAF, 0x10, 0x1C, 0xC8, 0x17, 0x3A,
0xF1, 0xF9, 0xB6, 0xA5, 0x25, 0xFA, 0xE1, 0x17, 0xBF, 0x6D, 0xE9, 0xF5, 0x22, 0x98, 0xB9, 0xE9,
0xA8, 0xF0, 0x51, 0x11, 0x70, 0xCD, 0x48, 0x90, 0x1B, 0xC7, 0xE6, 0xDB, 0x6D, 0x7A, 0x75, 0x2F,
0xB7, 0x6D, 0x9F, 0x8B, 0x6A, 0xBA, 0x16, 0xF1, 0x98, 0x2F, 0x84, 0x03, 0xA7, 0x49, 0xE2, 0x4E,
0x88, 0x08, 0xE2, 0xCB, 0x50, 0x2D, 0x24, 0x46, 0xD7, 0x4F, 0x4F, 0x0D, 0x91, 0x3A, 0x4C, 0x17,
0x54, 0xF8, 0xAC, 0xE6, 0x5A, 0xC3, 0x24, 0x26, 0x75, 0x69, 0xC8, 0x2B, 0x73, 0xB5, 0xDD, 0xBC,
0xFE, 0x68, 0x23, 0xA5, 0x59, 0x04, 0xC0, 0xC3, 0xAB, 0xAD, 0xA8, 0xAE, 0x0B, 0xD5, 0x06, 0xE2,
0xBB, 0xA3, 0x75, 0x6A, 0x07, 0xD0, 0x98, 0x70, 0xF5, 0xBA, 0xA4, 0x09, 0x5F, 0x39, 0xB6, 0x09,
0x80, 0x6E, 0xC3, 0xB7, 0xAE, 0x25, 0x66, 0x5A, 0x3F, 0x9B, 0x5B, 0xEA, 0x4D, 0x96, 0x85, 0x40,
0xE2, 0xCA, 0xE5, 0x40, 0xCC, 0x50, 0x54, 0x03, 0x77, 0x00, 0x8E, 0x01, 0x07, 0x1C, 0xEF, 0xC3,
0xF6, 0xBA, 0xEC, 0x60, 0xDB, 0xC2, 0xE1, 0x2C, 0xC9, 0xC4, 0x7E, 0xCE, 0x9F, 0x27, 0x1B, 0xB4,
0xFF, 0x0F, 0xB1, 0x2E, 0xB5, 0xEE, 0xCC, 0xC1, 0x61, 0x6A, 0x04, 0x82, 0x91, 0xEF, 0x93, 0x39,
0xE9, 0xD3, 0x85, 0x90, 0xEC, 0x53, 0xDF, 0x49, 0x6E, 0x1A, 0x0E, 0x28, 0x14, 0xC2, 0xC6, 0xC4,
0x38, 0x99, 0x87, 0xB4, 0x75, 0x2D, 0x6E, 0x09, 0x1B, 0x7F, 0x35, 0x48, 0xAC, 0x85, 0xE4, 0x94,
0xC9, 0xBC, 0x96, 0x52, 0x5B, 0x82, 0xAF, 0xB8, 0x0F, 0x89, 0x06, 0x98, 0xE1, 0xB8, 0x04, 0x03,
0xF1, 0x77, 0x9B, 0xC5, 0x11, 0xD1, 0xD4, 0xE6, 0xB2, 0x4B, 0xB8, 0x52, 0xE7, 0x1C, 0x09, 0xE5,
0xBF, 0x3A, 0x0B, 0xA9, 0xD3, 0x99, 0x78, 0x72, 0x1C, 0xA1, 0xE6, 0x08, 0xB2, 0xB8, 0x6B, 0x2A,
0x8B, 0x9B, 0xA6, 0x62, 0x6A, 0x8C, 0x86, 0xE5, 0xE6, 0xE2, 0x41, 0x23, 0x12, 0xC8, 0xE9, 0x73,
0xE7, 0xA6, 0x3A, 0xA8, 0x3E, 0x8B, 0x74, 0x99, 0xB2, 0xA8, 0x4D, 0x02, 0x11, 0xDC, 0x76, 0xEF,
0xCE, 0x29, 0x27, 0xE7, 0x5A, 0xFD, 0xF9, 0xB3, 0xC4, 0xA6, 0x2F, 0xA2, 0xF1, 0x9E, 0x3C, 0xB9,
0xA4, 0x61, 0xBD, 0xCD, 0x49, 0x1F, 0x18, 0x18, 0xFC, 0x28, 0xB2, 0xFC, 0xF7, 0x03, 0x0B, 0x04,
0xF7, 0x06, 0xB9, 0x56, 0x28, 0x3D, 0xCA, 0xA4, 0x7F, 0xA2, 0x61, 0x86, 0x15, 0x33, 0x4A, 0x1C,
0xAA, 0x49, 0x13, 0xD6, 0x9E, 0xD4, 0xEC, 0x37, 0x22, 0xF3, 0x5A, 0xE4, 0x48, 0xB2, 0xE7, 0xA8,
0x5C, 0xE3, 0xCD, 0x5C, 0x88, 0xC9, 0x8B, 0xC5, 0x8A, 0x4F, 0x6B, 0x3E, 0x3C, 0x1D, 0x32, 0x51,
0x99, 0xB0, 0x7F, 0x76, 0x83, 0x6E, 0xCE, 0x57, 0x3C, 0xF2, 0x1E, 0x0E, 0x0B, 0x4C, 0x0D, 0x5E,
0x36, 0xEE, 0xD5, 0x5A, 0xC7, 0x38, 0x30, 0x2C, 0xF1, 0x1D, 0xE7, 0x0E, 0x78, 0xBC, 0xB8, 0x45,
0x8D, 0x92, 0x71, 0x83, 0x52, 0xC7, 0xBC, 0x12, 0x24, 0xD2, 0xBC, 0xFC, 0x41, 0x2C, 0x8F, 0xBC,
0x71, 0x29, 0xB2, 0xE7, 0x8C, 0xEB, 0xA1, 0xF5, 0x21, 0x74, 0xCC, 0xFC, 0x94, 0xEE, 0x07, 0x58,
0xA5, 0xE5, 0x83, 0x26, 0xD7, 0x41, 0x46, 0x8B, 0x3D, 0x12, 0xDF, 0xD2, 0xE1, 0xFB, 0x03, 0x65,
0x70, 0x80, 0x60, 0x7F, 0x77, 0x87, 0x0E, 0xF6, 0x9C, 0xC2, 0x45, 0x85, 0x65, 0xBE, 0xCF, 0x06,
0x3A, 0x98, 0x4A, 0xE2, 0xB2, 0x0B, 0x4B, 0xD3, 0xFA, 0xAA, 0x7B, 0xEF, 0xAF, 0xB8, 0xF5, 0xC8,
0xBE, 0x8E, 0x69, 0x8F, 0xA4, 0x81, 0xE6, 0xFA, 0xDB, 0x02, 0xD0, 0xE9, 0x17, 0x63, 0x5D, 0xDF,
0x95, 0xBE, 0xFD, 0x7A, 0x62, 0x46, 0x9E, 0x00, 0x6D, 0x81, 0x6C, 0xB0, 0x86, 0x43, 0xD6, 0x9C,
0x4F, 0x30, 0x84, 0x52, 0xAC, 0xB3, 0xE9, 0xB6, 0x0E, 0x6C, 0x52, 0x63, 0x41, 0x30, 0xE0, 0x5B,
0x7A, 0xDD, 0x2C, 0xC6, 0xBA, 0x84, 0x24, 0xC1, 0xEE, 0x29, 0x37, 0xDF, 0x3B, 0x85, 0x5C, 0x3C,
0xF8, 0xD2, 0x44, 0xEA, 0xDB, 0x81, 0x4D, 0xBE, 0xB5, 0x49, 0x4D, 0xC4, 0x44, 0x9C, 0xBA, 0x80,
0x85, 0x71, 0x14, 0xB1, 0xE2, 0x75, 0xF8, 0xFA, 0x9A, 0xBD, 0x1B, 0xDA, 0x7C, 0x3F, 0xB5, 0xA6,
0x23, 0x19, 0xD3, 0x07, 0xA5, 0x2E, 0x2B, 0x7D, 0x97, 0xAF, 0xF8, 0xC3, 0xDB, 0xE2, 0xAF, 0xAA,
0x52, 0xD7, 0x55, 0xE1, 0xE6, 0x1C, 0x2E, 0x5C, 0x01, 0xAA, 0xE6, 0xB2, 0xD3, 0xD3, 0xB6, 0xEA,
0x0C, 0x4F, 0xA7, 0x05, 0xD1, 0x06, 0xDB, 0xAA, 0x74, 0xCB, 0x3F, 0x29, 0x87, 0x1B, 0xF4, 0xAC,
0xCE, 0xCF, 0x21, 0xF7, 0x11, 0x45, 0x71, 0x99, 0x09, 0xE2, 0x68, 0xA1, 0x82, 0xAA, 0x8D, 0x29,
0x43, 0x3E, 0x2F, 0x2E, 0xCF, 0x33, 0x4D, 0xDB, 0xD2, 0x2F, 0x60, 0xA8, 0x72, 0x31, 0x67, 0x94,
0xF4, 0xFD, 0xCE, 0xE2, 0xE6, 0xD9, 0x53, 0xD3, 0x87, 0x94, 0x7A, 0x7D, 0x7A, 0x96, 0xE5, 0xE6,
0xE8, 0x52, 0xAD, 0x06, 0x03, 0x01, 0x32, 0x76, 0xF4, 0x74, 0xE6, 0xFF, 0xA6, 0x17, 0x83, 0x41,
0xA0, 0xB7, 0x91, 0x6A, 0x07, 0x27, 0x83, 0x9D, 0x11, 0x48, 0xD9, 0x0A, 0xA0, 0xF9, 0xF5, 0x50,
0xA7, 0xD9, 0x5B, 0x15, 0x08, 0x32, 0xD9, 0x6A, 0xA3, 0xB9, 0x01, 0x69, 0x1F, 0x7C, 0xFE, 0x1F,
0x75, 0x54, 0x5D, 0x88, 0x1B, 0x55, 0x14, 0xFE, 0x6E, 0x6E, 0x26, 0xB3, 0xC9, 0x34, 0x99, 0x75,
0x4D, 0x50, 0x56, 0xB3, 0xC9, 0x43, 0xD1, 0xED, 0xD6, 0x6C, 0x82, 0x04, 0x59, 0x61, 0x92, 0x4C,
0xB7, 0x0F, 0x7D, 0xA8, 0xE2, 0x20, 0xBB, 0x3E, 0xF8, 0xD7, 0xA8, 0x0F, 0x16, 0xAC, 0x18, 0x71,
0xD1, 0x74, 0xC9, 0x36, 0xD9, 0xB6, 0xD2, 0x37, 0x59, 0x9F, 0x7D, 0x89, 0x2F, 0x22, 0x23, 0xB2,
0x11, 0x2A, 0xB4, 0xD2, 0x6D, 0x26, 0x6C, 0x71, 0x41, 0x11, 0xA6, 0x0A, 0x2E, 0x28, 0x48, 0x6C,
0xAD, 0xE0, 0x16, 0xDA, 0x01, 0xA7, 0x98, 0xC5, 0x49, 0xAE, 0x67, 0xB2, 0xEE, 0x8A, 0x16, 0xEF,
0x0C, 0x67, 0xCE, 0x3D, 0xF7, 0xDC, 0x73, 0xCF, 0xF7, 0x9D, 0x73, 0x07, 0xBC, 0xAB, 0xEA, 0x35,
0x66, 0x03, 0x45, 0x65, 0xD9, 0x99, 0x01, 0x8D, 0x6C, 0x43, 0xEE, 0xC3, 0x71, 0x67, 0x02, 0x16,
0xC3, 0x3D, 0x83, 0x48, 0x41, 0x7C, 0xC7, 0xCE, 0xB7, 0x07, 0xED, 0x01, 0x2D, 0x95, 0x84, 0x37,
0x65, 0x7E, 0x6C, 0x48, 0xAD, 0x58, 0xC9, 0x53, 0xBA, 0x71, 0x4D, 0x23, 0x5B, 0x35, 0x53, 0xCD,
0x00, 0x07, 0x64, 0x2F, 0x60, 0x69, 0xA9, 0x43, 0x56, 0x10, 0x12, 0xF7, 0x5A, 0x5B, 0xCA, 0xE2,
0x55, 0x97, 0x16, 0x6B, 0x45, 0xF5, 0x48, 0xA7, 0xEB, 0xE4, 0x27, 0x49, 0xE7, 0x56, 0x4D, 0x3D,
0x86, 0x92, 0xC5, 0x5C, 0x08, 0x01, 0x47, 0xA8, 0xF4, 0xFA, 0xE7, 0x29, 0x1B, 0x56, 0x61, 0x1A,
0xCE, 0x79, 0x3E, 0x6B, 0xF9, 0x4E, 0xDC, 0x7E, 0xFA, 0xDD, 0x9D, 0xF8, 0x92, 0x91, 0xF5, 0x2E,
0xBE, 0xD8, 0x0C, 0xC5, 0x92, 0x05, 0xED, 0x52, 0xCF, 0x98, 0x2E, 0x6A, 0xB5, 0x85, 0x16, 0x7A,
0x97, 0x6A, 0x5A, 0x26, 0x86, 0xE9, 0x62, 0x41, 0xAB, 0xB6, 0x68, 0x83, 0x9D, 0x42, 0xD5, 0xCF,
0xBF, 0xA6, 0xCE, 0xDA, 0x0B, 0x80, 0xFE, 0xE0, 0xC1, 0x75, 0x8F, 0x59, 0xC1, 0x51, 0xAE, 0x17,
0xCF, 0x78, 0x79, 0x86, 0x76, 0xDF, 0x74, 0xB8, 0xA5, 0x42, 0x83, 0xC3, 0xBB, 0x05, 0x65, 0xC3,
0xB9, 0x00, 0x84, 0x0B, 0x95, 0x4A, 0x41, 0x8A, 0xC0, 0x49, 0x1D, 0x25, 0x58, 0xED, 0x5F, 0xB7,
0x55, 0x38, 0x7E, 0x2A, 0xCE, 0x1B, 0x1F, 0x0C, 0x54, 0x34, 0x13, 0x4F, 0x89, 0xE1, 0x4C, 0x53,
0xB9, 0xF5, 0xC7, 0x76, 0x0F, 0xFE, 0xD7, 0xD1, 0x14, 0x77, 0x6D, 0xEC, 0xE6, 0xD9, 0x5D, 0xC0,
0x7B, 0x28, 0x13, 0x19, 0x6D, 0xC1, 0x88, 0xA0, 0x2B, 0x5B, 0xC9, 0xFB, 0x36, 0x5C, 0x86, 0xD6,
0x23, 0xDC, 0xD2, 0x02, 0x9E, 0xA4, 0x13, 0xC8, 0xBA, 0xD8, 0xDC, 0x5A, 0xAB, 0x60, 0x13, 0xD1,
0x51, 0xE8, 0x86, 0xF1, 0x9C, 0x1A, 0x2B, 0x09, 0xCB, 0x30, 0xFC, 0xAC, 0xF7, 0xB8, 0xF8, 0x9B,
0x71, 0xE6, 0x38, 0xC4, 0xB8, 0x2E, 0xFD, 0x1B, 0x3A, 0xC3, 0x6C, 0x3F, 0x7A, 0x52, 0x7C, 0xC9,
0xBA, 0x7E, 0x05, 0xEA, 0xA2, 0xDF, 0x16, 0x83, 0xC4, 0xFC, 0x1C, 0xD5, 0x81, 0xE4, 0x5E, 0x41,
0x18, 0xC6, 0x06, 0xB1, 0xC7, 0xC5, 0xC6, 0x30, 0xDA, 0x8E, 0x49, 0xEC, 0x0E, 0x8C, 0x60, 0x4D,
0x76, 0x4B, 0x8D, 0xAA, 0x7F, 0x10, 0xBA, 0xC8, 0x10, 0xC5, 0xA8, 0x42, 0x21, 0x78, 0x48, 0xFE,
0x57, 0x9F, 0x81, 0xA2, 0x93, 0x3E, 0xB1, 0xA7, 0x53, 0xAA, 0x69, 0x2D, 0x1A, 0xD5, 0xD2, 0x43,
0x10, 0x24, 0x44, 0x3F, 0x31, 0xAF, 0x27, 0xE6, 0x8F, 0x8A, 0x41, 0x13, 0x26, 0x22, 0x5F, 0x98,
0x5B, 0xA6, 0x29, 0x49, 0x5C, 0x78, 0x2D, 0xE7, 0x86, 0x24, 0x41, 0x7E, 0x21, 0xBB, 0xEC, 0x2E,
0x5E, 0x0D, 0x86, 0x97, 0x5A, 0x33, 0x99, 0x58, 0xCD, 0xB8, 0x3B, 0x57, 0x28, 0x56, 0x11, 0x6E,
0xA0, 0x01, 0xF4, 0xB2, 0xB2, 0xD5, 0xC4, 0x3F, 0x08, 0xE7, 0xFA, 0x13, 0xC9, 0xFD, 0x98, 0x43,
0x41, 0x39, 0x76, 0xEA, 0xC7, 0x14, 0x6F, 0xC0, 0x71, 0xB6, 0x4F, 0xD1, 0x3E, 0x42, 0x7D, 0x72,
0xFE, 0xF5, 0x8A, 0x7F, 0x7C, 0x94, 0xA6, 0x77, 0x87, 0xDC, 0x6D, 0xA5, 0xA9, 0x73, 0x7D, 0x66,
0x27, 0xFD, 0x5E, 0xC0, 0xBD, 0x67, 0xB3, 0xCE, 0xE6, 0xAA, 0xF7, 0xF2, 0x4F, 0x88, 0xFB, 0xB0,
0x55, 0x1F, 0x61, 0x3C, 0x98, 0xB5, 0xC9, 0x56, 0x9E, 0xD8, 0x99, 0x4A, 0xF4, 0x9C, 0x1E, 0x9C,
0x98, 0x69, 0x1F, 0x82, 0xAE, 0x2E, 0xAF, 0xDF, 0xF6, 0x72, 0xD3, 0xBE, 0x6B, 0xBA, 0x91, 0x5A,
0x3D, 0x2C, 0xBC, 0x48, 0x64, 0xC8, 0x97, 0x53, 0xB2, 0x1C, 0xEA, 0x0D, 0xC1, 0x3D, 0x75, 0xB0,
0x32, 0xAE, 0xBF, 0xE6, 0xC7, 0x5E, 0xC2, 0xB3, 0x86, 0x8C, 0x84, 0xA4, 0x23, 0x84, 0x30, 0x98,
0x8E, 0x78, 0x34, 0x0E, 0x76, 0xE4, 0x5B, 0x60, 0x64, 0x29, 0x0D, 0x9C, 0x23, 0x9F, 0x60, 0x65,
0x12, 0xAC, 0x41, 0xEC, 0x19, 0x90, 0xF4, 0x04, 0xEC, 0xF0, 0x47, 0xB4, 0x0B, 0x90, 0x6F, 0xB0,
0x39, 0xA9, 0x4D, 0x31, 0x45, 0x5A, 0x6D, 0xD4, 0xEA, 0x74, 0xDB, 0xA4, 0x4C, 0x3E, 0x9F, 0x91,
0x52, 0x6E, 0xBD, 0xDF, 0x8A, 0x1D, 0xEE, 0xC8, 0x36, 0xF1, 0xC2, 0x9F, 0xCF, 0x76, 0xDC, 0xA2,
0x15, 0x64, 0x5F, 0x5F, 0xB7, 0x2F, 0x33, 0x2B, 0xAF, 0xD8, 0xB5, 0xCB, 0x79, 0x34, 0x43, 0x72,
0xB7, 0xA7, 0xBE, 0xB7, 0x71, 0xED, 0x9B, 0x66, 0xBE, 0x99, 0xD6, 0x62, 0x31, 0x2D, 0x3D, 0xF6,
0xE7, 0x15, 0x4A, 0xB0, 0xFE, 0xFD, 0x76, 0x76, 0x99, 0xB8, 0x18, 0x96, 0xE0, 0x56, 0x44, 0xF9,
0xFC, 0xCE, 0xB5, 0x3B, 0xBD, 0x38, 0xD7, 0x4B, 0x9D, 0x13, 0x14, 0x8C, 0x2E, 0x04, 0x92, 0x3E,
0xAE, 0x0B, 0xCA, 0x2F, 0x78, 0xA0, 0xCB, 0xA8, 0x21, 0x28, 0x6D, 0x73, 0xE5, 0xFF, 0x17, 0xEA,
0xC2, 0x2F, 0xF1, 0xFC, 0xDC, 0xEE, 0x97, 0x51, 0x6C, 0x29, 0x25, 0x7E, 0x43, 0xB2, 0xF0, 0x4C,
0x5B, 0xF4, 0xCA, 0x60, 0xAB, 0x2B, 0x43, 0x6A, 0x90, 0x15, 0x3D, 0x04, 0x84, 0x29, 0x2C, 0xB5,
0x81, 0x80, 0xEB, 0xFF, 0x0A, 0xB4, 0x32, 0x89, 0x30, 0x76, 0xC7, 0x48, 0xC0, 0x34, 0xCD, 0x4F,
0x6C, 0xBF, 0x0B, 0x7B, 0xFE, 0x3C, 0xBF, 0x63, 0x1E, 0x6F, 0x84, 0xC7, 0xAF, 0x87, 0x2A, 0x3F,
0xBF, 0x3F, 0x7E, 0x26, 0xB4, 0xF8, 0x3B, 0x59, 0x8F, 0xA7, 0x1F, 0x7E, 0xE7, 0xCD, 0x89, 0xE5,
0xCE, 0x57, 0xFC, 0xFE, 0x7D, 0xF9, 0xE6, 0x01, 0x94, 0x1F, 0xE2, 0xE5, 0xC7, 0xE4, 0xDC, 0x67,
0x1F, 0x66, 0x8F, 0xEF, 0xE3, 0x7A, 0x25, 0x44, 0xBD, 0xC2, 0xF1, 0xE8, 0xCD, 0xCA, 0x45, 0xDE,
0x7C, 0x4B, 0x89, 0x8C, 0x12, 0xED, 0x65, 0xF9, 0xD3, 0xCA, 0xDB, 0xE4, 0xC4, 0x47, 0x47, 0xA7,
0x7E, 0x58, 0x97, 0x43, 0xB9, 0xDC, 0x2B, 0x9C, 0xC4, 0x4B, 0x8C, 0x1D, 0x7C, 0x92, 0xC3, 0xCA,
0x05, 0x29, 0x0D, 0xB9, 0x6B, 0xE7, 0xA3, 0x81, 0xC6, 0x64, 0x39, 0xD7, 0x39, 0xFD, 0x04, 0x2F,
0xAB, 0x7A, 0x10, 0x39, 0xE3, 0x55, 0xB4, 0xF8, 0xCA, 0x7E, 0x4B, 0xD7, 0xFF, 0x02, 0xBD, 0x7C,
0x4F, 0x70, 0xDC, 0x56, 0x7A, 0xE7, 0x07, 0x40, 0x22, 0xC6, 0xC2, 0x6E, 0x9E, 0x0F, 0x52, 0x32,
0xFE, 0x13, 0xC2, 0x87, 0x39, 0x68, 0x9C, 0x61, 0x63, 0x0F, 0x73, 0xC8, 0x56, 0x35, 0xBA, 0x61,
0xA9, 0x6A, 0x5C, 0x15, 0x1F, 0xCC, 0xAC, 0xD5, 0x9E, 0x54, 0x5C, 0x5B, 0x9A, 0xC3, 0x5C, 0xC6,
0xD9, 0x48, 0x3E, 0x4C, 0xD5, 0xB2, 0x32, 0x4D, 0x35, 0x2C, 0x1D, 0x7C, 0x70, 0x55, 0xCC, 0x54,
0xD6, 0x9B, 0xC3, 0x56, 0x65, 0x7C, 0xF0, 0x61, 0x4C, 0x57, 0x8D, 0xF6, 0xC0, 0xF5, 0x62, 0xC6,
0x2D, 0x36, 0x64, 0x1F, 0x7C, 0xD0, 0x41, 0xB0, 0xB5, 0x1E, 0x1F, 0x58, 0x15, 0x61, 0x6C, 0x79,
0x9D, 0x48, 0x15, 0x13, 0x96, 0x20, 0xAA, 0x49, 0x76, 0xF7, 0xDB, 0xDF, 0xEF, 0xA1, 0x9B, 0x22,
0x25, 0xCA, 0x36, 0x6D, 0x65, 0x29, 0x00, 0x0D, 0xBC, 0x46, 0x03, 0xDF, 0xFB, 0xDE, 0xF7, 0xE7,
0xF7, 0x7D, 0xEF, 0x7B, 0x12, 0x11, 0x3F, 0x12, 0x5F, 0x64, 0x5A, 0xE4, 0x51, 0x11, 0x71, 0xB5,
0x3E, 0xA9, 0x87, 0x89, 0xD8, 0xB9, 0x78, 0xB1, 0xD4, 0x44, 0x70, 0x7A, 0xB3, 0xF5, 0x94, 0xD6,
0xC1, 0xE2, 0xAF, 0x76, 0xB6, 0xE2, 0xD4, 0xDC, 0x6B, 0x59, 0x52, 0xF3, 0x25, 0x69, 0x4B, 0x14,
0x89, 0x58, 0x5A, 0xAF, 0x68, 0x7D, 0x62, 0x72, 0x83, 0xB9, 0xF7, 0x5C, 0xEB, 0x3F, 0x69, 0x7D,
0xE1, 0xEA, 0x62, 0x6D, 0x47, 0x2B, 0x4E, 0xCD, 0xBD, 0x51, 0x4F, 0xEB, 0xB4, 0xA9, 0x75, 0x21,
0x5E, 0x8A, 0xDF, 0x17, 0xA0, 0xA1, 0x8D, 0xDD, 0x27, 0x2D, 0x6C, 0x58, 0x1B, 0x45, 0xD2, 0xD1,
0x03, 0x50, 0xE9, 0xA7, 0x6E, 0x6A, 0x95, 0xB8, 0xA3, 0x81, 0x3B, 0xBC, 0xD8, 0xC7, 0xB3, 0x70,
0x07, 0x1B, 0xBA, 0xD2, 0x7E, 0x7C, 0x28, 0xBE, 0x1A, 0xE2, 0x47, 0x0F, 0x0A, 0xFF, 0x1A, 0x62,
0x17, 0xA2, 0x44, 0xFE, 0x67, 0xD5, 0xA5, 0x40, 0x0F, 0xEE, 0x22, 0xFE, 0x4B, 0x4E, 0xF9, 0x67,
0xE9, 0x3E, 0x3A, 0x93, 0x77, 0xA2, 0xEF, 0xA8, 0x98, 0x0F, 0x93, 0x50, 0xC4, 0x49, 0x0D, 0x71,
0x2E, 0xDB, 0xF5, 0xC8, 0xAD, 0xAE, 0x9C, 0x4C, 0xA4, 0x89, 0xFB, 0xFB, 0x22, 0x5E, 0x2E, 0xB3,
0xC1, 0x68, 0x24, 0x27, 0x75, 0x56, 0x3D, 0xC4, 0xD6, 0x57, 0x7C, 0x3D, 0x68, 0xC8, 0xC1, 0xB6,
0xB9, 0xB5, 0x4D, 0xC2, 0x24, 0xC8, 0xC4, 0x1D, 0x89, 0xF4, 0x72, 0x71, 0xF1, 0x9B, 0x79, 0xF3,
0x64, 0xBC, 0x34, 0x9C, 0x95, 0x6E, 0xEF, 0x6C, 0xD9, 0xD1, 0x31, 0x7E, 0xF8, 0x37, 0xD7, 0x7E,
0xFD, 0xDB, 0xAD, 0x2D, 0x3F, 0x38, 0x7B, 0xE3, 0xD2, 0x45, 0x3E, 0x6F, 0x5A, 0x12, 0x3B, 0xF7,
0xE2, 0xDA, 0x3D, 0x3E, 0x44, 0x96, 0xBE, 0xEC, 0x6B, 0x7E, 0x84, 0x4F, 0xDE, 0xD0, 0x7F, 0xF6,
0x1A, 0xDE, 0xAE, 0xF1, 0x6E, 0x1C, 0x07, 0x38, 0x96, 0x60, 0x20, 0x8F, 0xED, 0xAD, 0x63, 0xB1,
0xE3, 0xD8, 0xC1, 0x10, 0xE0, 0xA8, 0x4B, 0xB6, 0x58, 0x03, 0xD3, 0xDE, 0xB0, 0x78, 0xF4, 0xAD,
0xFC, 0xF6, 0xD1, 0xCE, 0xD8, 0x0E, 0x1E, 0xB5, 0x65, 0xA0, 0x53, 0xDE, 0xAF, 0x05, 0xC7, 0xB8,
0x1A, 0x91, 0x39, 0x72, 0x0F, 0x1C, 0xC6, 0xA0, 0x80, 0xC9, 0x75, 0xD3, 0xE5, 0x82, 0x5C, 0xBF,
0xA3, 0x39, 0x58, 0x5C, 0xDC, 0x78, 0x03, 0x84, 0xE1, 0xEF, 0xC8, 0xCD, 0xD6, 0xF1, 0x56, 0xE7,
0x29, 0x36, 0x07, 0xE6, 0xEE, 0xD0, 0xDC, 0xBD, 0xC6, 0xBB, 0x9D, 0x15, 0x36, 0xFB, 0x6C, 0xB6,
0xFA, 0x68, 0xD6, 0xFA, 0x34, 0x9A, 0xF5, 0x15, 0xD9, 0x93, 0x38, 0xE1, 0xC7, 0x78, 0x2A, 0xC5,
0x29, 0x1A, 0x8B, 0x53, 0x82, 0x86, 0xDA, 0x96, 0x7C, 0x8D, 0x65, 0x49, 0x20, 0x02, 0xE8, 0xA3,
0xFC, 0xE9, 0xB8, 0x27, 0xDE, 0x53, 0xB1, 0x55, 0x24, 0x12, 0x7A, 0xB1, 0x8A, 0x13, 0xBB, 0xF0,
0xE2, 0xBA, 0x24, 0x2A, 0xF6, 0x7E, 0x57, 0x48, 0x6F, 0x28, 0xDE, 0xB5, 0x02, 0x57, 0x91, 0x17,
0x77, 0x25, 0x71, 0xC0, 0x71, 0x15, 0x25, 0xD2, 0xF5, 0x62, 0x27, 0x4F, 0x44, 0xA1, 0x2F, 0x5D,
0x23, 0x5C, 0x65, 0x45, 0x1B, 0x1F, 0x6A, 0xA5, 0x6C, 0x71, 0x63, 0x51, 0x50, 0x1B, 0x68, 0x9E,
0x8B, 0xFE, 0x35, 0x57, 0x62, 0x7B, 0xE5, 0x84, 0xF8, 0x33, 0x89, 0x14, 0x6F, 0xE5, 0xDE, 0x99,
0x95, 0xB8, 0xAD, 0x4E, 0x38, 0x59, 0x98, 0xD4, 0xD0, 0xFB, 0xC2, 0x59, 0x79, 0x25, 0x52, 0x27,
0xE6, 0x24, 0x7C, 0x1B, 0xCC, 0x18, 0x82, 0x15, 0x10, 0xF5, 0x93, 0x14, 0xA3, 0x9F, 0x1C, 0x00,
0x43, 0xD1, 0xD5, 0x26, 0x46, 0x75, 0x6A, 0xC1, 0x10, 0x0B, 0x99, 0xA8, 0x43, 0xBE, 0xBA, 0x01,
0x86, 0x56, 0x45, 0x56, 0xE1, 0xA5, 0x4E, 0xE6, 0x64, 0x6E, 0x6A, 0x17, 0xE8, 0x53, 0x09, 0xAE,
0x77, 0x29, 0x7A, 0xE4, 0x3B, 0xD8, 0xA4, 0x40, 0x96, 0x57, 0x54, 0x22, 0x4D, 0xF6, 0xC1, 0x32,
0x28, 0x48, 0xAA, 0x82, 0xA8, 0x58, 0xA6, 0xE3, 0xD6, 0xB5, 0x58, 0xFC, 0x44, 0xAC, 0xCD, 0x3D,
0x7D, 0x60, 0x48, 0x36, 0x31, 0x9C, 0x1C, 0x63, 0x0E, 0xF9, 0xF8, 0x83, 0xCA, 0x04, 0x85, 0x11,
0x85, 0xF3, 0xE9, 0x25, 0x10, 0x31, 0x07, 0x52, 0x41, 0x48, 0x32, 0x03, 0x52, 0x7D, 0xB0, 0x47,
0x45, 0x14, 0x58, 0xE7, 0xEA, 0x9B, 0x29, 0x14, 0x2E, 0x53, 0xAF, 0x3E, 0x5B, 0xA0, 0x6B, 0x05,
0x35, 0x15, 0x77, 0xB5, 0x41, 0x6E, 0x08, 0x72, 0x03, 0x0C, 0x66, 0xA0, 0x35, 0x64, 0x87, 0xA3,
0x95, 0x18, 0xB1, 0xE2, 0x85, 0x5E, 0x87, 0x24, 0x94, 0x35, 0x81, 0xF8, 0x38, 0xD7, 0x21, 0x9E,
0x60, 0x7E, 0x4D, 0xDC, 0x0B, 0xB1, 0x7D, 0x3D, 0xB7, 0x4B, 0x7C, 0x13, 0xE8, 0x1C, 0x72, 0xBD,
0x60, 0x7E, 0xEA, 0x8D, 0x6F, 0x38, 0x21, 0xCE, 0x85, 0xD8, 0xBA, 0x7E, 0xF3, 0xD9, 0xA2, 0xA7,
0xF3, 0x60, 0xB1, 0x87, 0x51, 0xC6, 0x58, 0xD4, 0x30, 0x24, 0x9F, 0x8B, 0x8D, 0x8E, 0x6C, 0xE4,
0x72, 0xAE, 0xA7, 0x87, 0x01, 0x54, 0xA7, 0xA3, 0xAF, 0xC3, 0xA6, 0x7D, 0x3D, 0x6B, 0x92, 0x54,
0x82, 0xD4, 0xD4, 0x23, 0x8A, 0x69, 0x0E, 0xB1, 0xAD, 0xA1, 0xF3, 0x36, 0x75, 0x06, 0x24, 0xF1,
0x64, 0x8E, 0x27, 0xF1, 0xF8, 0xC4, 0xE3, 0xC9, 0x12, 0x4E, 0x14, 0x7F, 0x47, 0x69, 0xAC, 0xE1,
0x04, 0x43, 0x52, 0x83, 0xEC, 0xD8, 0xB9, 0xD1, 0x0C, 0xFE, 0xA1, 0xF3, 0xA2, 0xA3, 0x6A, 0xD0,
0x64, 0x93, 0x27, 0x1D, 0xBD, 0x06, 0x93, 0xBA, 0xE3, 0xF5, 0x41, 0xEB, 0x58, 0x4F, 0x5F, 0xDF,
0x58, 0x7C, 0xF9, 0x4E, 0xA2, 0x7A, 0xBC, 0x37, 0xAB, 0x43, 0xF0, 0xED, 0xBC, 0x0B, 0xD1, 0x51,
0xD0, 0xFC, 0x92, 0xC6, 0xD4, 0xC9, 0x3C, 0x0A, 0x47, 0x54, 0x87, 0x14, 0x84, 0x0E, 0x6C, 0x54,
0x5A, 0x42, 0x76, 0xBC, 0x8F, 0x3E, 0xE5, 0xC8, 0x69, 0x1A, 0xA7, 0xE5, 0x5E, 0x8F, 0x22, 0x52,
0x42, 0x2F, 0x1A, 0xB8, 0xC7, 0x8C, 0x54, 0x57, 0x54, 0x14, 0x4A, 0x1F, 0x14, 0x96, 0x56, 0xE9,
0x42, 0xC6, 0xEC, 0xA2, 0x81, 0x26, 0xE7, 0x63, 0xAA, 0x17, 0x15, 0x4F, 0xA6, 0x74, 0x1F, 0x06,
0x3F, 0x7B, 0x0C, 0xF6, 0x03, 0x5F, 0x18, 0x11, 0xC3, 0x13, 0xBB, 0xB2, 0x7F, 0x20, 0xE0, 0xE7,
0xC3, 0xBD, 0x8C, 0x17, 0x24, 0x8E, 0x7A, 0x81, 0xC1, 0x6D, 0x3E, 0x28, 0xC1, 0xD3, 0x1B, 0xFA,
0xB4, 0x86, 0xC2, 0x52, 0xF4, 0x8C, 0xDA, 0xA3, 0x73, 0x1D, 0x8C, 0x12, 0xB4, 0x64, 0xE6, 0xAD,
0xDC, 0xBA, 0xBE, 0x12, 0x2B, 0xEF, 0x84, 0x24, 0x61, 0xE2, 0xA6, 0x6B, 0x79, 0xE8, 0xAC, 0x9C,
0xCE, 0xD5, 0x09, 0x05, 0x2B, 0x51, 0xCA, 0xDA, 0x67, 0xB1, 0xB3, 0x02, 0xA2, 0x4E, 0x66, 0x12,
0x82, 0xDA, 0xB5, 0x82, 0x2F, 0x5C, 0xF8, 0x2E, 0xF8, 0x0E, 0xC3, 0x80, 0x4E, 0x4C, 0xBD, 0x6E,
0xD4, 0x30, 0x37, 0x76, 0xA4, 0x79, 0x42, 0x2C, 0x3C, 0x52, 0xE1, 0x0D, 0x6F, 0xAD, 0xC4, 0xEE,
0x85, 0x13, 0x52, 0x9F, 0x81, 0xB1, 0x5C, 0xCB, 0x7D, 0x7C, 0x5B, 0xAA, 0x13, 0xB0, 0x9A, 0x10,
0xB9, 0xB5, 0x4F, 0x32, 0x67, 0xE5, 0x1F, 0x21, 0x25, 0xE8, 0x52, 0x2F, 0x92, 0xB5, 0x01, 0x7E,
0x9B, 0xA2, 0x2B, 0xDF, 0xD6, 0x1C, 0xD0, 0x06, 0x73, 0xA7, 0xE5, 0x2D, 0x21, 0x1C, 0xDC, 0x8B,
0xDD, 0x77, 0x8B, 0x7B, 0x5E, 0xED, 0xB0, 0xB6, 0x75, 0xA8, 0x50, 0x5D, 0x73, 0x87, 0xE6, 0xD0,
0xCA, 0x76, 0x30, 0x2E, 0xD7, 0xE1, 0x04, 0x83, 0x15, 0x68, 0xAC, 0x06, 0xA1, 0xEE, 0xB9, 0xFF,
0x9D, 0xC9, 0xCC, 0xDA, 0x47, 0xA9, 0xDC, 0x58, 0x79, 0x5A, 0xDC, 0x57, 0x4E, 0xD4, 0x60, 0x0D,
0x92, 0xB6, 0x55, 0xAC, 0xE5, 0xA5, 0x77, 0x14, 0xFC, 0xAA, 0xC3, 0xAC, 0x9C, 0xCF, 0xC3, 0x44,
0x3D, 0x1D, 0xA1, 0xBB, 0x75, 0xF4, 0xB7, 0x91, 0x41, 0x0F, 0x7A, 0x60, 0x22, 0x1C, 0xDA, 0x5A,
0x4E, 0x63, 0x01, 0xDE, 0x43, 0x41, 0xA0, 0x1A, 0x54, 0x21, 0xA9, 0x27, 0xB7, 0x2F, 0x83, 0x56,
0xAB, 0x0D, 0x79, 0x84, 0x7C, 0xBD, 0xB9, 0xCB, 0xB7, 0xDB, 0x2E, 0x8D, 0x89, 0x33, 0x8C, 0xF7,
0xA1, 0x05, 0x7E, 0xEC, 0xE5, 0xB0, 0x3E, 0xF3, 0x30, 0x31, 0xEA, 0x4C, 0x26, 0xD6, 0x17, 0xF4,
0xAE, 0x34, 0x3F, 0xC7, 0x41, 0xFF, 0x67, 0xB8, 0x77, 0x7D, 0xD2, 0xF0, 0x74, 0x24, 0xEE, 0x3B,
0x05, 0xDC, 0xEF, 0x3C, 0x4C, 0xA6, 0x97, 0x83, 0xA4, 0xDE, 0x6A, 0x1F, 0xA2, 0x54, 0x9A, 0xE7,
0x75, 0x2A, 0xBB, 0xB2, 0x67, 0x7B, 0x34, 0xFE, 0x80, 0x5B, 0x83, 0x21, 0x48, 0x2C, 0x40, 0x83,
0x46, 0x22, 0x41, 0xC2, 0x2F, 0xA0, 0xEC, 0xE8, 0xF9, 0xA0, 0xA7, 0x61, 0x02, 0x30, 0x50, 0x72,
0xF7, 0x56, 0x61, 0x83, 0xF5, 0x7B, 0x62, 0x83, 0x1D, 0x1F, 0xF7, 0xC4, 0x06, 0xE0, 0xDA, 0xAA,
0x26, 0x2B, 0x76, 0x98, 0xC4, 0xAF, 0xFD, 0x71, 0x3F, 0xAD, 0x7A, 0xF5, 0xC7, 0x2F, 0xA9, 0x97,
0xF2, 0x30, 0x7C, 0x28, 0xCC, 0xD4, 0x50, 0x9A, 0x47, 0xDF, 0x5F, 0x76, 0x72, 0x15, 0xCD, 0xFB,
0xE8, 0x5E, 0x37, 0x81, 0x62, 0x5F, 0xA7, 0x38, 0x5C, 0x80, 0x04, 0xAB, 0x80, 0x4E, 0x13, 0xE2,
0x6A, 0xE7, 0x03, 0x27, 0xF3, 0xA3, 0xA1, 0xFA, 0x51, 0x5F, 0x30, 0x12, 0x91, 0xFC, 0x95, 0x5E,
0xD8, 0xF6, 0x2C, 0x39, 0x08, 0x3A, 0xA1, 0x65, 0xB4, 0x0E, 0x25, 0x5D, 0x2B, 0xAD, 0x5D, 0x28,
0xCE, 0x07, 0x30, 0x2B, 0x97, 0x41, 0x0C, 0x08, 0x53, 0x69, 0x25, 0xB6, 0xAB, 0xB0, 0xDC, 0x34,
0x25, 0x6D, 0xA1, 0x82, 0xE0, 0x6D, 0xC0, 0x7A, 0x05, 0x6E, 0x85, 0x01, 0x71, 0x21, 0x81, 0x56,
0x8E, 0x0E, 0xB5, 0x61, 0x1D, 0x7C, 0x9B, 0x26, 0x09, 0x23, 0x58, 0xEC, 0xB1, 0x81, 0x76, 0x13,
0xD6, 0xDE, 0x70, 0x9F, 0xE2, 0x13, 0x8E, 0x69, 0x74, 0xD2, 0xBA, 0xD8, 0x97, 0x52, 0x72, 0xCB,
0xB9, 0xE3, 0x03, 0xB6, 0x23, 0xC0, 0xDB, 0xF5, 0xD9, 0xA1, 0xAD, 0x37, 0x33, 0x89, 0xC2, 0xAA,
0x6B, 0x77, 0x7C, 0xCC, 0xD1, 0x50, 0xC3, 0x8A, 0x18, 0x78, 0x52, 0x01, 0x93, 0xFB, 0x72, 0x6A,
0x0C, 0xFD, 0x0A, 0x0F, 0xC3, 0x39, 0x00, 0x3F, 0x07, 0x5D, 0xF2, 0x4D, 0xC7, 0xEE, 0xFF, 0xD1,
0xBC, 0x6A, 0x58, 0x1D, 0x8D, 0x34, 0x84, 0x77, 0x1D, 0x67, 0x7A, 0x34, 0x29, 0xFD, 0x0A, 0x51,
0xDC, 0xB5, 0xF7, 0x60, 0xA4, 0xA1, 0x4B, 0x18, 0xE2, 0x01, 0xAE, 0x1B, 0xD8, 0x03, 0xE1, 0xA3,
0xAB, 0xCF, 0x86, 0x69, 0xE7, 0xF7, 0x50, 0x2A, 0x58, 0x13, 0xF7, 0xD7, 0x62, 0x34, 0x50, 0x4E,
0xC1, 0x2F, 0x42, 0xE9, 0xE8, 0x5F, 0xC7, 0x0D, 0x70, 0xDB, 0x80, 0x0B, 0x25, 0x1A, 0x3A, 0x68,
0x70, 0x72, 0xDC, 0xD1, 0xC5, 0x1D, 0x3E, 0x1A, 0xBC, 0xF3, 0x55, 0x83, 0x5B, 0x98, 0x3B, 0x56,
0x75, 0x66, 0x15, 0x73, 0xBB, 0x69, 0x68, 0x6F, 0x17, 0xBD, 0x0E, 0x78, 0x4E, 0xBD, 0x86, 0xEF,
0x8F, 0x0C, 0x30, 0xEF, 0x13, 0x02, 0xDB, 0xF2, 0x08, 0x48, 0x08, 0xD0, 0x32, 0xA8, 0x74, 0x96,
0x83, 0x6A, 0xB0, 0x3D, 0x1D, 0x35, 0x91, 0x1F, 0x87, 0xB8, 0x6E, 0xF4, 0xC6, 0x2A, 0x23, 0x59,
0xF6, 0x36, 0x75, 0xDC, 0xD1, 0x0B, 0x5B, 0x6A, 0x03, 0xD8, 0xD6, 0x5B, 0xC7, 0x4B, 0x3B, 0xBA,
0x0F, 0xC4, 0x08, 0xBB, 0x06, 0x1B, 0x2F, 0xBE, 0x17, 0x43, 0xED, 0xFA, 0x09, 0x64, 0x0F, 0x88,
0x03, 0xC2, 0x16, 0x9E, 0xA3, 0x65, 0x5B, 0xD1, 0xB4, 0x14, 0xCB, 0x67, 0x79, 0x1A, 0xF3, 0x34,
0xA1, 0x1F, 0x5C, 0x89, 0xC1, 0xD4, 0x36, 0x3C, 0x98, 0xA8, 0x97, 0xE3, 0x06, 0xDE, 0x42, 0xC3,
0x7B, 0xCA, 0x8B, 0xDD, 0x91, 0x8E, 0x13, 0x98, 0xCC, 0x71, 0x24, 0x21, 0x8F, 0xE8, 0x2C, 0x00,
0x5D, 0x57, 0xEC, 0xBC, 0x2F, 0x35, 0x42, 0x03, 0x20, 0x03, 0x22, 0xA4, 0x81, 0xD4, 0x9C, 0x9B,
0xD0, 0x53, 0x18, 0x93, 0xE0, 0x4D, 0x28, 0x28, 0x50, 0x82, 0x9D, 0xFB, 0x68, 0xCC, 0xE9, 0xD8,
0x6B, 0x7E, 0x64, 0x7F, 0x02, 0x0C, 0x63, 0x11, 0x52, 0xBF, 0x78, 0x05, 0x3D, 0xA5, 0x52, 0x40,
0x37, 0x4E, 0xEA, 0x0B, 0x1B, 0x67, 0xE7, 0xA5, 0x93, 0x5B, 0x3A, 0xF2, 0x56, 0xA5, 0xD3, 0x39,
0xDB, 0xEE, 0x94, 0xC5, 0xF8, 0x5D, 0x76, 0x2F, 0x56, 0x3A, 0xF7, 0xAF, 0x50, 0x41, 0xD0, 0x09,
0x9A, 0xB6, 0xEB, 0x3A, 0xFE, 0xC5, 0xE6, 0x20, 0x48, 0xD5, 0x85, 0x8C, 0xDE, 0x14, 0x8C, 0xF5,
0x7E, 0x2D, 0x36, 0x8C, 0x75, 0x02, 0x51, 0x0D, 0x31, 0x40, 0xA9, 0x8A, 0x97, 0xCF, 0xA6, 0x9E,
0x89, 0x5E, 0xA4, 0x75, 0x0C, 0x26, 0xE4, 0xE9, 0x57, 0x7B, 0xA1, 0x34, 0x4A, 0xB9, 0x95, 0xB9,
0x17, 0x75, 0xBF, 0xA9, 0xCB, 0xD2, 0xDA, 0xCC, 0xF0, 0x3A, 0x77, 0x28, 0x0D, 0xAD, 0x6F, 0x80,
0xE0, 0x56, 0xAB, 0xA9, 0x2F, 0xBF, 0xFA, 0x4C, 0x06, 0x85, 0x0C, 0x89, 0x16, 0xEE, 0x38, 0xC1,
0x73, 0x5A, 0x91, 0x43, 0xE0, 0xD8, 0xEA, 0xCA, 0x9C, 0x55, 0x58, 0x00, 0xE8, 0x2E, 0x70, 0xF9,
0x34, 0x7A, 0xB0, 0x64, 0x15, 0x36, 0x0C, 0x9E, 0x82, 0x90, 0xB5, 0xA5, 0xED, 0x40, 0x16, 0x26,
0xC0, 0x08, 0x3C, 0x1D, 0x56, 0x46, 0x2F, 0x04, 0x2D, 0x0B, 0xF2, 0x3C, 0xE2, 0xB5, 0xDC, 0x7F,
0xB1, 0x6F, 0x2C, 0x16, 0x14, 0xAC, 0x06, 0xBB, 0x8B, 0x2D, 0x31, 0x78, 0x83, 0x40, 0x43, 0xF6,
0xA9, 0x8D, 0x81, 0x6D, 0x64, 0xFB, 0x20, 0xC2, 0xC7, 0xD9, 0x92, 0x81, 0x00, 0xBD, 0xB8, 0x5D,
0xD4, 0x68, 0x56, 0x81, 0xA8, 0x9D, 0x77, 0xC0, 0x6E, 0x97, 0xCF, 0xF6, 0xA9, 0x21, 0x25, 0xA2,
0x5D, 0x75, 0x1A, 0xEC, 0x85, 0x79, 0x29, 0xC1, 0x72, 0x0B, 0x60, 0x27, 0xB1, 0xBF, 0x28, 0x08,
0xD3, 0xF6, 0xBF, 0x01, 0xA4, 0x97, 0x7D, 0x7F, 0x0A, 0xEF, 0xEF, 0x53, 0x1C, 0x81, 0xA8, 0x74,
0xEC, 0x60, 0x18, 0x89, 0xF9, 0xAB, 0x18, 0x70, 0xD0, 0x78, 0x13, 0xF8, 0x93, 0x8C, 0x9A, 0x95,
0x83, 0xA5, 0x0C, 0x4B, 0x6B, 0x58, 0x3A, 0xC3, 0xD2, 0x9B, 0x2F, 0x55, 0x58, 0xD6, 0xC3, 0x72,
0x2E, 0x2C, 0x8B, 0x70, 0x2D, 0x0B, 0x6F, 0xA5, 0xA1, 0x8E, 0xC2, 0x91, 0x84, 0x03, 0x09, 0x1F,
0x90, 0x05, 0x85, 0x0E, 0xAF, 0xA6, 0xB2, 0x2C, 0x7B, 0xFA, 0xE1, 0xAC, 0x1C, 0x43, 0xDC, 0x06,
0x2A, 0x4B, 0xD0, 0xEA, 0x4B, 0x19, 0x52, 0x8B, 0xB1, 0x95, 0xF3, 0x44, 0xD9, 0xA5, 0x62, 0x07,
0x00, 0xFB, 0x4A, 0x50, 0xDB, 0x6A, 0x41, 0x48, 0xF2, 0x5A, 0xAB, 0xEF, 0x45, 0x35, 0x3B, 0xF3,
0x62, 0xF4, 0x87, 0x48, 0x06, 0xB2, 0x94, 0x9A, 0x8B, 0xB6, 0x20, 0xFE, 0xA8, 0x69, 0xF1, 0x7A,
0x91, 0x41, 0xB4, 0xC7, 0xB0, 0x8D, 0xC4, 0x1A, 0x68, 0xB1, 0x07, 0x3A, 0x72, 0x06, 0xB7, 0x62,
0xAF, 0x7B, 0x23, 0x55, 0xF5, 0x2F, 0xF2, 0xE9, 0x7A, 0x51, 0xD4, 0xEB, 0xC5, 0x12, 0xF6, 0xFA,
0x52, 0xBD, 0x08, 0x8B, 0x7A, 0xE1, 0xE7, 0xF5, 0x42, 0xA5, 0x75, 0xF2, 0xD5, 0x10, 0x5F, 0xDF,
0xBE, 0x69, 0x3D, 0xC0, 0x76, 0x47, 0x23, 0x81, 0xD0, 0xF3, 0x91, 0xA5, 0x07, 0xD6, 0xFA, 0x23,
0x29, 0xA0, 0x65, 0x9B, 0x90, 0xC2, 0xB9, 0x1C, 0xCB, 0xDB, 0x06, 0x94, 0xAB, 0xB3, 0xB4, 0xD4,
0x56, 0xD1, 0x95, 0xBE, 0xBA, 0x0A, 0xF3, 0xD2, 0x37, 0x82, 0xD7, 0x3A, 0x86, 0x07, 0xAD, 0xB7,
0xBA, 0x77, 0x3F, 0xEB, 0x8E, 0x6D, 0xF6, 0xF9, 0xE8, 0x86, 0x2E, 0xF4, 0x9F, 0x0F, 0x06, 0x32,
0x0F, 0x8D, 0x2A, 0xC5, 0xDF, 0xDA, 0xFA, 0x12, 0x0C, 0xA4, 0x31, 0x92, 0xEE, 0xE6, 0xB5, 0xF2,
0xA6, 0xCE, 0x4A, 0xE3, 0x30, 0xB6, 0x6F, 0x20, 0xCB, 0xD7, 0xE7, 0xD7, 0xFF, 0x10, 0xCE, 0xB6,
0x6D, 0x82, 0xD7, 0x98, 0xD2, 0x6A, 0xD0, 0x35, 0xF5, 0x18, 0xDB, 0xD5, 0xC2, 0xD3, 0x69, 0x45,
0x0F, 0x22, 0x86, 0xD6, 0xB9, 0x63, 0xB2, 0x95, 0x01, 0xB8, 0xC7, 0x36, 0x2B, 0xFB, 0x4F, 0x54,
0x1D, 0x2A, 0x19, 0xC3, 0x01, 0xDB, 0xF9, 0xC4, 0x8D, 0xCA, 0x49, 0x9D, 0xF7, 0x11, 0x18, 0x94,
0xA2, 0xE0, 0xA7, 0x3E, 0x37, 0x70, 0x02, 0x2F, 0x18, 0xC3, 0x67, 0x23, 0xC4, 0xDE, 0x50, 0xEC,
0xE1, 0xC4, 0x85, 0xEF, 0x70, 0x6D, 0x68, 0x98, 0x5A, 0x8F, 0x24, 0xA0, 0x37, 0xFF, 0xE5, 0xF1,
0xAC, 0xE9, 0x64, 0x5D, 0x0C, 0xB9, 0xF7, 0x72, 0x1A, 0xC2, 0x97, 0x03, 0xE2, 0xF7, 0x9D, 0x0C,
0x2C, 0x2D, 0x9D, 0x0B, 0x68, 0x28, 0x00, 0x24, 0xFA, 0xC1, 0xD1, 0xAC, 0x6B, 0x8F, 0x36, 0x10,
0x1E, 0x53, 0x1D, 0xFC, 0xF8, 0x1E, 0x0F, 0x3D, 0x28, 0xFB, 0x15, 0xB0, 0x2E, 0x7C, 0xB4, 0x0F,
0x05, 0x81, 0x7D, 0x69, 0x40, 0x3B, 0x0A, 0x63, 0x44, 0x21, 0xD6, 0xE0, 0x7D, 0x1B, 0x98, 0x01,
0xDA, 0x23, 0x21, 0xBD, 0x0B, 0x86, 0x1B, 0x2A, 0x9D, 0x82, 0xE7, 0x5F, 0xF5, 0x01, 0xED, 0xBD,
0xA8, 0x99, 0x92, 0xA0, 0xC5, 0xA9, 0x57, 0x1F, 0x87, 0x0F, 0xCA, 0x3E, 0x83, 0xCB, 0xC6, 0x5B,
0xDB, 0x6C, 0xCD, 0xFF, 0x3E, 0xA2, 0xC5, 0x3B, 0x56, 0x33, 0x01, 0xDF, 0x78, 0x9B, 0x05, 0x13,
0x9F, 0x81, 0xC2, 0x3A, 0x97, 0x23, 0x30, 0x6E, 0x1E, 0x24, 0x87, 0x0C, 0x6A, 0x6E, 0x7D, 0x65,
0x13, 0xCD, 0xC6, 0x2D, 0x1E, 0x32, 0x3E, 0x62, 0x36, 0xC4, 0xBB, 0x41, 0x8F, 0x12, 0x85, 0xBB,
0x52, 0x52, 0x57, 0x48, 0xF1, 0xB5, 0x1A, 0x8D, 0x01, 0x6A, 0xF2, 0x60, 0x10, 0xAF, 0xB1, 0xA7,
0x75, 0x1E, 0x94, 0x81, 0x8D, 0x71, 0x6B, 0x16, 0x9E, 0x27, 0x93, 0xFD, 0xC7, 0xA3, 0x8A, 0xA1,
0x60, 0xAC, 0xF3, 0xE9, 0x2C, 0xE2, 0xAA, 0xBE, 0x34, 0x9E, 0x65, 0x08, 0x50, 0xD2, 0xE0, 0xE0,
0x81, 0xC0, 0x1A, 0x5D, 0x20, 0xAA, 0xCC, 0xC1, 0x37, 0xB3, 0x22, 0x7F, 0x04, 0xF3, 0x01, 0xE3,
0x03, 0xCB, 0x49, 0x01, 0x95, 0xCE, 0xD5, 0x05, 0xE0, 0xCF, 0x81, 0x3B, 0x6A, 0x0D, 0x70, 0x59,
0x76, 0x32, 0xE7, 0x7D, 0x1D, 0xA9, 0x27, 0x87, 0xF0, 0x95, 0xF8, 0x0D, 0x7C, 0x91, 0x55, 0xCC,
0x72, 0xA0, 0x30, 0x5E, 0x21, 0x5F, 0x82, 0x77, 0x28, 0x3D, 0xC0, 0x1B, 0x4C, 0xCF, 0x2F, 0xB3,
0xD7, 0x5D, 0xAD, 0x2F, 0x31, 0xEE, 0x5A, 0xC0, 0x1B, 0xA6, 0x80, 0xDE, 0x70, 0x17, 0x80, 0xAC,
0xFB, 0x0E, 0xE2, 0x61, 0x0E, 0x40, 0x41, 0x41, 0x46, 0xDC, 0x59, 0x6C, 0xF4, 0x8E, 0xE8, 0xA2,
0xB2, 0x38, 0x8F, 0x83, 0xA8, 0xDE, 0x50, 0x45, 0x43, 0xEF, 0x52, 0x06, 0x9B, 0x8B, 0xF8, 0x4F,
0xCD, 0xC3, 0x03, 0xAD, 0xA2, 0xAF, 0x6F, 0xE3, 0x9E, 0xA0, 0x44, 0x34, 0x79, 0x0E, 0xC3, 0xB8,
0x7A, 0x24, 0xC7, 0x6B, 0xD0, 0x81, 0xD2, 0xDD, 0x18, 0x84, 0xD2, 0xE9, 0x57, 0x4E, 0xE5, 0x50,
0x8B, 0x1D, 0x1A, 0xB5, 0xCA, 0x36, 0xC5, 0x42, 0x3D, 0x09, 0xC8, 0x0A, 0x2B, 0x44, 0x7B, 0x0A,
0x97, 0x1C, 0x3A, 0x59, 0x40, 0x7B, 0x14, 0xA2, 0xEF, 0x4F, 0xC7, 0x46, 0xE8, 0xEC, 0x4A, 0xBE,
0xD1, 0x81, 0x03, 0xE6, 0xF7, 0x7B, 0xB1, 0xE3, 0xD4, 0x86, 0x77, 0x72, 0x6C, 0x16, 0x93, 0x92,
0x7B, 0xFB, 0x2D, 0x85, 0x1C, 0x3C, 0xC6, 0x10, 0x82, 0x67, 0x93, 0x2B, 0x75, 0x7C, 0x28, 0x9B,
0x9B, 0x7D, 0x95, 0x7B, 0x29, 0x6C, 0xAA, 0x02, 0x85, 0x25, 0x69, 0xBD, 0xC7, 0xC7, 0x76, 0x8C,
0x08, 0x3E, 0x36, 0xFB, 0x62, 0x8F, 0x8C, 0x14, 0xC4, 0x00, 0xEA, 0xA9, 0x0D, 0xB5, 0xDA, 0xDF,
0x7A, 0x46, 0x0F, 0xD7, 0x5B, 0xBB, 0x79, 0xBD, 0xEA, 0x01, 0x95, 0x85, 0x99, 0xDA, 0xB2, 0x30,
0x7A, 0xD0, 0xD4, 0xC5, 0x6E, 0x16, 0xC6, 0x7E, 0xC3, 0xD1, 0x83, 0x73, 0x53, 0x17, 0x49, 0x26,
0x62, 0x8C, 0xE0, 0x8A, 0x04, 0x85, 0xF8, 0x40, 0xB0, 0x62, 0x5F, 0x91, 0x70, 0x74, 0xF6, 0x02,
0x81, 0x8C, 0xEC, 0x0B, 0xC3, 0x7D, 0x72, 0x30, 0xDC, 0xFE, 0xF7, 0xE0, 0x93, 0x97, 0xE7, 0xBF,
0xD8, 0x87, 0x81, 0x05, 0x36, 0xBF, 0x6B, 0x93, 0x07, 0x29, 0x86, 0xF8, 0xD6, 0x32, 0xB2, 0x58,
0xF2, 0x6A, 0x97, 0x0F, 0xDF, 0xEF, 0x77, 0x62, 0xFA, 0x0D, 0x46, 0x34, 0xA0, 0xBA, 0xD6, 0x62,
0xAC, 0x41, 0xA0, 0x6C, 0x67, 0xE4, 0x5C, 0xE1, 0x5C, 0x9D, 0x85, 0x02, 0x68, 0x1D, 0x23, 0x2C,
0x7F, 0x76, 0xE0, 0xA4, 0xD4, 0x95, 0x82, 0x32, 0xCE, 0x58, 0xB7, 0xAC, 0x31, 0xB2, 0x80, 0x7B,
0xD7, 0xC3, 0x66, 0xE4, 0x4C, 0x06, 0x6E, 0x96, 0x51, 0x03, 0x6D, 0xFF, 0xDD, 0x87, 0x36, 0x87,
0x85, 0x42, 0xB4, 0x38, 0x7A, 0xB3, 0x64, 0x1B, 0xCD, 0x7C, 0xE5, 0x28, 0xDA, 0x3C, 0x40, 0xBE,
0xC1, 0x25, 0x1E, 0xE2, 0xAD, 0x51, 0xCC, 0xF0, 0xF4, 0xAD, 0x51, 0x7C, 0x6A, 0x54, 0x8D, 0xA2,
0x5B, 0x8D, 0xA2, 0x8D, 0x01, 0x33, 0x20, 0x6A, 0xD7, 0x0F, 0x33, 0x62, 0x29, 0x43, 0xB4, 0x7A,
0x95, 0x48, 0x96, 0x3D, 0xF8, 0x52, 0xE2, 0x48, 0x63, 0x00, 0x40, 0xF3, 0x1F, 0xEF, 0xCD, 0x63,
0xDB, 0xD1, 0x4F, 0xA4, 0xA8, 0x4B, 0xB0, 0x2C, 0xD6, 0x6F, 0xC4, 0x80, 0x12, 0xEB, 0x39, 0x44,
0x75, 0x85, 0xB4, 0x43, 0xA9, 0x11, 0xF2, 0x20, 0x8C, 0x22, 0x30, 0x49, 0x0B, 0x29, 0x11, 0x19,
0x20, 0x48, 0xC2, 0xE0, 0xBF, 0x1D, 0x1B, 0xB7, 0x50, 0x98, 0x7E, 0x56, 0xD9, 0xD5, 0x00, 0xB6,
0x06, 0xB0, 0x3C, 0x1A, 0xBF, 0xFB, 0x2B, 0xFC, 0x61, 0xE5, 0x82, 0x99, 0x68, 0xA9, 0xB6, 0xEF,
0x09, 0x43, 0x31, 0xB9, 0xC9, 0x04, 0x0E, 0x23, 0xA2, 0xBE, 0x28, 0xC3, 0x14, 0xC4, 0x9D, 0x5E,
0xCA, 0x74, 0x47, 0x60, 0x42, 0xF3, 0xA1, 0x04, 0x6E, 0xEA, 0xF4, 0xE9, 0xAA, 0x82, 0x82, 0xE8,
0xF3, 0x16, 0x08, 0x6C, 0xBB, 0x17, 0x23, 0x0C, 0xF0, 0x4C, 0x60, 0x03, 0x84, 0x16, 0x75, 0x25,
0xEE, 0x7B, 0x71, 0x1F, 0x8F, 0xFB, 0x6B, 0xEB, 0x46, 0x26, 0x7E, 0xC1, 0x60, 0xAF, 0x19, 0xBB,
0x25, 0x93, 0xDF, 0x2A, 0x1D, 0x63, 0xCE, 0x83, 0xA4, 0x72, 0x0E, 0x1A, 0x5F, 0x6F, 0x57, 0x07,
0xFC, 0xC3, 0xD8, 0x4A, 0x42, 0x1B, 0x0B, 0x49, 0x99, 0x97, 0x42, 0x89, 0xB6, 0x0A, 0xF5, 0xC4,
0x2A, 0x70, 0xD0, 0x99, 0x0B, 0x47, 0x53, 0xE7, 0xBD, 0x97, 0x2E, 0xC4, 0xF6, 0xAA, 0x83, 0x48,
0x72, 0x64, 0x8D, 0xC8, 0xE9, 0x41, 0xE5, 0xAA, 0xB0, 0x1F, 0x5A, 0x3F, 0x26, 0x0C, 0x66, 0x9E,
0xDF, 0xF8, 0xD5, 0x56, 0x9B, 0xAC, 0xCF, 0x52, 0x20, 0x16, 0x64, 0x74, 0xB6, 0x34, 0x39, 0x6F,
0x6A, 0x5B, 0x09, 0x90, 0x5F, 0xED, 0x38, 0x47, 0x94, 0xC2, 0xCC, 0xB1, 0x36, 0x21, 0x82, 0x11,
0x9A, 0x90, 0x8F, 0x9A, 0x45, 0x4B, 0x6E, 0x1D, 0x7F, 0xF5, 0xB6, 0xCD, 0xCE, 0x98, 0x0B, 0x5B,
0x37, 0x29, 0xBD, 0x52, 0xE6, 0x71, 0x89, 0xEE, 0xDB, 0x30, 0x79, 0x3E, 0xEE, 0xEC, 0x3B, 0x55,
0xCA, 0xCA, 0x4C, 0xA9, 0x9C, 0x1C, 0x3D, 0x15, 0xA3, 0xED, 0x7A, 0x0E, 0x46, 0x1D, 0x4E, 0x48,
0x20, 0x93, 0xCB, 0xC2, 0x74, 0x3C, 0x74, 0x99, 0x6F, 0x38, 0xF7, 0xE3, 0x0F, 0x5B, 0x11, 0x03,
0xD3, 0xBE, 0x77, 0x75, 0x79, 0xF1, 0x0D, 0x34, 0x32, 0xA6, 0xE2, 0x1B, 0x6A, 0x14, 0x23, 0xE6,
0xA1, 0x99, 0xFE, 0x33, 0xC6, 0xB0, 0x43, 0xF8, 0xEE, 0xEA, 0xDE, 0xCB, 0x31, 0x7C, 0x7A, 0x36,
0xD6, 0x96, 0xA9, 0xD7, 0x11, 0x57, 0x8D, 0x4A, 0xE7, 0xE6, 0x5F, 0x94, 0x88, 0x52, 0xA8, 0xBB,
0x4C, 0x00, 0x30, 0x41, 0xC8, 0x9D, 0xE7, 0xD5, 0x0E, 0x11, 0x72, 0x61, 0x61, 0xEC, 0xD1, 0x72,
0x29, 0x9D, 0x2A, 0xCC, 0xAB, 0xF2, 0x92, 0xCC, 0xCC, 0x50, 0x60, 0x6F, 0x31, 0x37, 0x40, 0xC3,
0xF5, 0x3E, 0x5E, 0x56, 0x37, 0xD0, 0x3F, 0x31, 0x76, 0xD0, 0x24, 0x6D, 0x9C, 0x0F, 0x7E, 0x0F,
0x09, 0x84, 0x62, 0x78, 0x04, 0xBE, 0x40, 0xC6, 0x29, 0x46, 0xB7, 0x66, 0xC0, 0x6F, 0x1B, 0x44,
0x3F, 0x1D, 0x33, 0x3D, 0xB9, 0x9F, 0x86, 0x00, 0x4F, 0xF8, 0x57, 0x74, 0x1E, 0x32, 0x54, 0xD0,
0xA3, 0xC0, 0x26, 0x9D, 0x4D, 0xC9, 0x53, 0xEF, 0x15, 0xC0, 0x9A, 0x3A, 0x90, 0x46, 0x91, 0xA8,
0xA3, 0x69, 0xD1, 0x56, 0xF6, 0xC7, 0x79, 0xDD, 0x4D, 0xE7, 0x98, 0xF1, 0x43, 0x94, 0xD1, 0x8C,
0xD0, 0x43, 0x77, 0xC0, 0x53, 0x50, 0x62, 0xF2, 0xB5, 0x4C, 0x85, 0x32, 0xD9, 0x01, 0x62, 0xBC,
0x0F, 0x9F, 0xFB, 0xB0, 0x6B, 0xA6, 0x05, 0x32, 0xEF, 0x6A, 0xAF, 0xB7, 0x0C, 0xBC, 0xFD, 0xFB,
0xDF, 0x13, 0x4C, 0x4E, 0xAB, 0x38, 0xF1, 0xCE, 0xE7, 0x44, 0xE2, 0xD3, 0xC4, 0xEA, 0x56, 0x1E,
0x78, 0x67, 0xF2, 0x69, 0x29, 0x92, 0xBA, 0x95, 0xAB, 0x97, 0x5F, 0x4E, 0x11, 0x2D, 0xCC, 0xCA,
0x21, 0x8C, 0x26, 0x10, 0x4A, 0x29, 0x9B, 0xB0, 0x67, 0x3E, 0x04, 0xCA, 0xBE, 0x04, 0x03, 0x55,
0x9F, 0x26, 0x9F, 0x0A, 0x85, 0x03, 0xF4, 0x79, 0xA6, 0xAE, 0x8E, 0x7E, 0x70, 0x29, 0x2B, 0xEB,
0x33, 0xBE, 0x7A, 0xEA, 0x74, 0x56, 0x96, 0xC5, 0x8C, 0xF7, 0xCA, 0x09, 0x3B, 0xAB, 0xF3, 0xFB,
0x88, 0xCC, 0x84, 0xE9, 0x6D, 0x30, 0x43, 0x0B, 0x6D, 0xB0, 0x98, 0x51, 0x84, 0x9E, 0x29, 0x8E,
0x61, 0x27, 0xA7, 0xFD, 0x63, 0x47, 0xCF, 0xA6, 0x08, 0x1D, 0x1A, 0x40, 0xA4, 0x4C, 0x8A, 0x42,
0x56, 0x21, 0xB3, 0xC0, 0xCC, 0x85, 0xFB, 0x6E, 0xA6, 0x28, 0xD3, 0x85, 0xB3, 0x02, 0xF5, 0x08,
0xF6, 0xB7, 0x5A, 0x70, 0xC8, 0xBA, 0xF0, 0x3E, 0xFC, 0x71, 0xCE, 0x1C, 0x37, 0xE5, 0xDB, 0x24,
0xBC, 0x7A, 0x4C, 0x11, 0xAF, 0xA6, 0xDE, 0x99, 0x77, 0x73, 0x00, 0x3F, 0x32, 0xB9, 0x0C, 0x9D,
0xB4, 0xDD, 0x76, 0xD2, 0x7A, 0xE2, 0xA4, 0xB5, 0x39, 0x84, 0x20, 0xFA, 0x74, 0x4E, 0x69, 0xF1,
0x4C, 0xAC, 0x58, 0x33, 0xFE, 0x22, 0x81, 0x48, 0xF5, 0x99, 0x4F, 0xF6, 0x62, 0x3C, 0x0B, 0xB1,
0x49, 0xD0, 0x6A, 0x6D, 0xA6, 0x86, 0x59, 0xA5, 0xBD, 0xF1, 0xE6, 0xE6, 0x06, 0xCC, 0x55, 0xCD,
0x3B, 0x0F, 0x3C, 0x56, 0x04, 0x60, 0x91, 0x9B, 0x76, 0x31, 0x2A, 0xC0, 0x67, 0x0A, 0xA8, 0xDE,
0x4B, 0x43, 0xD8, 0x14, 0x44, 0xE9, 0x09, 0xC7, 0xEF, 0x7A, 0x5E, 0xDA, 0xD0, 0xE2, 0xD9, 0x43,
0x08, 0xBC, 0x4A, 0xE0, 0x98, 0xAC, 0xF4, 0x5B, 0xCF, 0xA5, 0xC4, 0x79, 0xCC, 0xF5, 0xD0, 0x66,
0xFF, 0x86, 0xEA, 0xA1, 0x4D, 0xB6, 0x47, 0x47, 0x25, 0x18, 0x05, 0x0A, 0xD5, 0x51, 0x30, 0x4D,
0x3D, 0x91, 0x97, 0xD0, 0x82, 0xA2, 0x44, 0xC7, 0x93, 0x9B, 0x38, 0xA0, 0x3B, 0xFB, 0x24, 0x04,
0xD3, 0x61, 0x42, 0x9C, 0x01, 0x6C, 0x51, 0x69, 0x43, 0x8D, 0xA6, 0x99, 0x7E, 0xA2, 0xD7, 0x65,
0xB4, 0xDD, 0x35, 0xC9, 0xA8, 0x47, 0x32, 0x86, 0x47, 0x8F, 0x53, 0xA0, 0xF9, 0x5D, 0x7B, 0xBB,
0xEB, 0xB4, 0xFA, 0xD6, 0x9B, 0xDA, 0x82, 0x42, 0x41, 0x3A, 0x88, 0x06, 0x1B, 0x0C, 0xDD, 0x81,
0x58, 0xF4, 0x35, 0xDA, 0x8D, 0x07, 0xE4, 0xA7, 0xDE, 0xD1, 0xBE, 0xBD, 0x1A, 0x4F, 0x69, 0xE8,
0x62, 0xFE, 0x10, 0x83, 0xAE, 0xC4, 0xCC, 0x53, 0x14, 0xB6, 0x8E, 0x89, 0xB4, 0x98, 0x79, 0xAB,
0x9B, 0xAD, 0x6B, 0x99, 0xA0, 0x6B, 0x5E, 0x64, 0x89, 0x53, 0x92, 0xB3, 0x4D, 0x3D, 0xD8, 0xDF,
0xFA, 0x8B, 0x25, 0xF8, 0x29, 0x28, 0x3F, 0xA2, 0x8A, 0x50, 0x6E, 0x41, 0x1F, 0x43, 0x42, 0xE2,
0x53, 0x68, 0x58, 0x41, 0x83, 0xC1, 0xC8, 0x88, 0x2D, 0x7D, 0xBA, 0xC4, 0xD3, 0x65, 0xE8, 0xA5,
0xCD, 0xD5, 0xB3, 0x88, 0x60, 0x81, 0x71, 0xF9, 0xDC, 0x1D, 0x90, 0xD8, 0x18, 0x18, 0x9E, 0xDC,
0xB1, 0x1F, 0x74, 0xB2, 0x83, 0x75, 0x27, 0x0B, 0xB1, 0xD7, 0xB0, 0xFB, 0xE3, 0x5D, 0x6D, 0xDB,
0x7D, 0x80, 0x9F, 0x1A, 0x34, 0x29, 0x54, 0x67, 0xB2, 0x81, 0xBB, 0xA9, 0x0B, 0x8B, 0x39, 0x0A,
0xBA, 0x8F, 0x5D, 0x9E, 0x37, 0x4E, 0xA4, 0xC2, 0x8C, 0x22, 0x2E, 0xF6, 0x63, 0x97, 0x09, 0xBF,
0x06, 0x04, 0x12, 0x12, 0x86, 0x80, 0xB3, 0xA8, 0x32, 0x7E, 0xDE, 0xE5, 0x31, 0xA0, 0x1D, 0xA2,
0xC1, 0x67, 0xC3, 0xC5, 0xC8, 0xA4, 0xD2, 0xAC, 0x02, 0xFD, 0xEF, 0x7B, 0x39, 0xD3, 0x31, 0xD7,
0x06, 0xCC, 0xC9, 0x57, 0x0F, 0x64, 0x98, 0x35, 0x44, 0x98, 0x05, 0x44, 0x06, 0xA3, 0xAB, 0x8E,
0x8B, 0x7D, 0x4D, 0xEB, 0x0D, 0x93, 0x5B, 0xF5, 0x7E, 0x29, 0xF6, 0x27, 0xA9, 0x20, 0xCC, 0xEA,
0x32, 0xCC, 0xAA, 0xD0, 0x1C, 0x58, 0x18, 0x9C, 0xC5, 0x8E, 0x2F, 0x14, 0xAC, 0x14, 0x8D, 0x14,
0x9D, 0xBA, 0x45, 0x65, 0x65, 0xDE, 0x07, 0x2E, 0x03, 0x02, 0x2F, 0xCC, 0x80, 0x20, 0x42, 0xC0,
0x05, 0x53, 0xFD, 0x30, 0x08, 0x8A, 0xE6, 0xE5, 0x32, 0x53, 0xB7, 0x18, 0x3E, 0xC5, 0x1E, 0x15,
0x34, 0x61, 0x16, 0x0C, 0xDA, 0xB0, 0xCD, 0x5B, 0xE9, 0x41, 0xEA, 0x52, 0x30, 0x4D, 0x0E, 0x77,
0xAF, 0xC4, 0x39, 0x9F, 0xCB, 0x4C, 0x28, 0xD6, 0x0D, 0xBC, 0x08, 0xBF, 0x87, 0x33, 0x73, 0xAA,
0x24, 0x85, 0x0D, 0x2F, 0x2B, 0x33, 0xB0, 0x8D, 0xCE, 0x79, 0x3C, 0xE6, 0xF0, 0xA3, 0x15, 0x5F,
0x22, 0xB1, 0x37, 0x0A, 0x80, 0x2D, 0x8C, 0x37, 0x19, 0x93, 0x98, 0xD9, 0x3D, 0x9A, 0x65, 0x6A,
0x06, 0xE7, 0x36, 0x70, 0x51, 0x18, 0xBB, 0xC6, 0xE4, 0x22, 0x20, 0x00, 0x7E, 0xF3, 0x1E, 0xE0,
0xD8, 0x0D, 0x0A, 0x1C, 0x1E, 0xEC, 0x72, 0x3A, 0x74, 0x38, 0x36, 0x8A, 0x78, 0x36, 0x4C, 0x9E,
0xE2, 0xB4, 0x64, 0x5D, 0xAC, 0xEC, 0xB5, 0xCA, 0xDC, 0x7E, 0x03, 0x5A, 0x4D, 0xA2, 0xA8, 0xB2,
0xD7, 0xF6, 0x38, 0x32, 0x58, 0x66, 0xD2, 0xD3, 0xC8, 0x7B, 0x59, 0xD9, 0x61, 0xF7, 0x7C, 0x04,
0x7C, 0x26, 0xCC, 0xA5, 0xB8, 0xEF, 0xA5, 0x66, 0xB0, 0xA0, 0xC8, 0xCC, 0xF4, 0x00, 0x29, 0xE3,
0x86, 0x84, 0xA9, 0x51, 0xBA, 0x7F, 0x6C, 0xB8, 0xA4, 0x55, 0x80, 0x36, 0x40, 0x27, 0x0D, 0x7B,
0x95, 0x17, 0x35, 0xA8, 0x39, 0x4B, 0x85, 0x85, 0x40, 0x31, 0x76, 0xFF, 0x49, 0xBC, 0x0C, 0x2F,
0x6F, 0x64, 0xD2, 0xC4, 0x30, 0xDB, 0xE8, 0x55, 0x67, 0x64, 0x66, 0x31, 0x65, 0x2B, 0x2C, 0xA9,
0xE6, 0x44, 0xE5, 0xB6, 0x50, 0x75, 0xAB, 0x2B, 0x5D, 0x5D, 0x35, 0x63, 0x23, 0x16, 0x30, 0xE8,
0xB3, 0xBE, 0xCE, 0x38, 0x87, 0x03, 0xE9, 0x00, 0x70, 0x26, 0x84, 0x85, 0x1D, 0x85, 0x90, 0x1C,
0xCD, 0xDC, 0xF3, 0x05, 0x29, 0x6A, 0xD0, 0xE8, 0x40, 0xF3, 0x19, 0x2E, 0xD4, 0x98, 0x52, 0x84,
0x55, 0x0E, 0xCD, 0x34, 0x7D, 0x49, 0x8E, 0x17, 0xD6, 0x67, 0xF8, 0x8D, 0x4A, 0x61, 0x03, 0x28,
0x40, 0x1E, 0x13, 0x29, 0x71, 0x95, 0x1E, 0x1E, 0x07, 0x47, 0x93, 0x89, 0xD6, 0x71, 0x5B, 0x45,
0x48, 0xC5, 0x27, 0xC7, 0x88, 0x1B, 0xE7, 0x36, 0x00, 0x69, 0xE5, 0x11, 0x33, 0x81, 0xA0, 0x63,
0xF7, 0x66, 0x7F, 0x19, 0x62, 0x67, 0xF5, 0x03, 0xA9, 0x04, 0x9F, 0xA9, 0x6E, 0x26, 0xA3, 0x8C,
0xB0, 0x5B, 0xB7, 0x26, 0x27, 0x18, 0x09, 0x09, 0x28, 0x72, 0x1F, 0x13, 0x88, 0xA1, 0xFB, 0x2A,
0x3E, 0xA5, 0x5E, 0x2A, 0x2C, 0x1A, 0x30, 0x9B, 0x89, 0x1C, 0x4E, 0x46, 0x19, 0xA7, 0x75, 0x20,
0x32, 0x03, 0xD6, 0x44, 0xC4, 0xB5, 0xB9, 0x99, 0x35, 0x2C, 0x97, 0xF3, 0x44, 0x2F, 0xA5, 0x66,
0x82, 0x79, 0x3C, 0x89, 0xC1, 0x61, 0x81, 0x25, 0x90, 0xBE, 0xFF, 0x67, 0x5E, 0x1A, 0x70, 0x0A,
0x19, 0xD4, 0x50, 0x4B, 0x4D, 0x12, 0xFD, 0x44, 0x54, 0xCD, 0x0B, 0xB0, 0x37, 0xE9, 0x49, 0x32,
0xCF, 0x33, 0xDC, 0x36, 0x73, 0x5F, 0x62, 0x9B, 0xF3, 0x3F, 0xD8, 0x92, 0x06, 0xE9, 0xE5, 0x88,
0xDA, 0x1D, 0x4E, 0x43, 0xC6, 0x2A, 0x7D, 0x70, 0x9F, 0x9B, 0x71, 0x30, 0x98, 0x46, 0xA2, 0x25,
0x31, 0x4C, 0xE9, 0x72, 0xDA, 0xDA, 0x4C, 0x73, 0x0A, 0x3D, 0xC7, 0xF6, 0x23, 0x9E, 0x59, 0x1D,
0xDB, 0x66, 0x6E, 0x2D, 0x69, 0xF0, 0x58, 0xFA, 0x91, 0xC9, 0xFF, 0x67, 0x1E, 0xFE, 0x39, 0x34,
0xCF, 0xB1, 0xF4, 0xFA, 0xC1, 0x50, 0x76, 0xFC, 0x19, 0x64, 0xB2, 0x31, 0x02, 0x39, 0x7F, 0xFA,
0x87, 0xC5, 0x24, 0xB9, 0xEB, 0x1A, 0xDA, 0x53, 0x13, 0xA1, 0x4E, 0x6E, 0x7C, 0x3C, 0x3A, 0xB0,
0x20, 0x9D, 0x52, 0x69, 0x39, 0xF5, 0x5D, 0xEB, 0x49, 0x43, 0x18, 0xB5, 0xC5, 0x70, 0x41, 0xAC,
0xEB, 0x1C, 0x30, 0xF0, 0x65, 0x46, 0x94, 0xCF, 0x80, 0xE5, 0xBD, 0x94, 0xCA, 0x4F, 0x54, 0x85,
0x21, 0xE9, 0x48, 0xDB, 0xD9, 0x18, 0x6D, 0x8C, 0x24, 0x18, 0xF8, 0x3B, 0x5F, 0x4F, 0x1C, 0x21,
0xF2, 0xC3, 0x1F, 0xBE, 0xC0, 0x8B, 0x2A, 0x32, 0x33, 0xF3, 0xE0, 0x30, 0x17, 0x1F, 0xA1, 0x07,
0xA2, 0x9E, 0x26, 0x43, 0x89, 0x30, 0x63, 0xC0, 0x6C, 0x83, 0x30, 0x73, 0x88, 0x83, 0x8F, 0xA8,
0x09, 0x78, 0x0D, 0x6F, 0xCA, 0x39, 0x7D, 0xD0, 0x43, 0x14, 0x91, 0xC0, 0x8A, 0xD4, 0xAD, 0xC2,
0x0F, 0xA9, 0xD4, 0x4B, 0x5D, 0xA8, 0xF7, 0x99, 0x14, 0x98, 0xD9, 0x9F, 0xA6, 0xCA, 0x86, 0x4B,
0xC0, 0x9F, 0x30, 0x31, 0x0A, 0x92, 0x34, 0x12, 0xDF, 0xA4, 0xDE, 0x9A, 0x5B, 0x1D, 0x5B, 0x7C,
0x1D, 0x8A, 0xF3, 0x5B, 0x58, 0xB0, 0xC7, 0x1E, 0x7B, 0xEC, 0xBE, 0x42, 0x4F, 0xFE, 0x9D, 0x1C,
0x45, 0x70, 0xEC, 0x04, 0x7B, 0xAA, 0xF2, 0x6F, 0x14, 0x10, 0x55, 0x15, 0x21, 0x70, 0x62, 0x93,
0xE2, 0xE0, 0x8F, 0x6B, 0x12, 0xCA, 0x2A, 0xC6, 0x75, 0xF3, 0x6A, 0x1E, 0xDC, 0xD3, 0xA5, 0x49,
0x0E, 0x4C, 0x70, 0xE7, 0x16, 0xD0, 0xAC, 0x2E, 0x9F, 0xA7, 0x1E, 0x0E, 0xFF, 0xD2, 0x04, 0x84,
0x15, 0x60, 0xAA, 0x55, 0xE9, 0x45, 0xDE, 0xC4, 0x99, 0xB4, 0x8D, 0xD4, 0xD3, 0xE6, 0xC1, 0x05,
0x3D, 0xA5, 0x32, 0xBA, 0x55, 0xD0, 0x07, 0xC3, 0x2C, 0x7E, 0xC7, 0x49, 0x9D, 0x8F, 0x33, 0x09,
0x72, 0xB1, 0x30, 0x22, 0xBF, 0x28, 0xA4, 0x5E, 0xFB, 0xF9, 0x8C, 0xF8, 0xBF, 0x34, 0x42, 0x0F,
0x20, 0xEE, 0x5C, 0x4E, 0xAD, 0xFC, 0x05, 0xDE, 0xFE, 0xBD, 0x31, 0x9B, 0xAC, 0x0F, 0x16, 0x97,
0x4F, 0x2D, 0x9E, 0x8E, 0xA8, 0x1E, 0xFE, 0xA0, 0xF3, 0xE9, 0xFF, 0x8D, 0x1E, 0x38, 0xD8, 0x5E,
0xFA, 0xE1, 0x03, 0x07, 0xE7, 0xFF, 0xF8, 0x07, 0x3F, 0x11, 0xC6, 0xB3, 0xA7, 0xF4, 0xFF, 0x90,
0x73, 0xB8, 0xF3, 0xA1, 0xB1, 0x4F, 0x1A, 0x73, 0x20, 0x33, 0x91, 0x92, 0xEC, 0x33, 0x5A, 0xB1,
0xAF, 0x52, 0x2F, 0x4E, 0x35, 0x39, 0x23, 0xB1, 0xDE, 0x47, 0x77, 0x96, 0x5E, 0x90, 0x83, 0xFB,
0x27, 0xDF, 0x7F, 0xC9, 0x9F, 0x6F, 0xAC, 0x94, 0x3E, 0xFA, 0x0F, 0x14, 0xC9, 0x99, 0xFF, 0xF2,
0xD8, 0x77, 0xA8, 0x46, 0x12, 0x7F, 0xF9, 0x8F, 0xC8, 0x4B, 0xBA, 0x66, 0xA2, 0x83, 0xBF, 0x29,
0xE4, 0xF0, 0x03, 0xC0, 0x08, 0x4E, 0x74, 0xFB, 0x7B, 0xBB, 0x9A, 0x38, 0x94, 0x31, 0x78, 0xFE,
0x77, 0xEE, 0xCE, 0x9F, 0xEF, 0xAF, 0x3E, 0xFE, 0x7D, 0xF5, 0xF1, 0x03, 0xB9, 0x6D, 0xA2, 0x5E,
0x30, 0x23, 0x06, 0x64, 0xF1, 0x53, 0x6A, 0x4B, 0xBD, 0x82, 0xB9, 0x7E, 0xF5, 0x40, 0x0E, 0xEF,
0x97, 0xD3, 0x65, 0xB4, 0xCE, 0xCD, 0x02, 0xBE, 0xD5, 0x1D, 0x59, 0x66, 0xFA, 0xE0, 0xE1, 0x2F,
0xFD, 0x85, 0x2D, 0x26, 0xE4, 0x64, 0x06, 0xAE, 0x14, 0x93, 0xF2, 0x6D, 0x73, 0xB6, 0x7A, 0xA6,
0x22, 0xAA, 0x5E, 0x91, 0x58, 0x19, 0x4F, 0xF9, 0x79, 0xF5, 0xF1, 0xC2, 0xE4, 0xB7, 0x9C, 0x2A,
0xE6, 0x14, 0x00, 0x42, 0x14, 0xBC, 0xF0, 0xE1, 0xD7, 0xB6, 0xEE, 0xEA, 0xB3, 0x20, 0x20, 0x25,
0xC8, 0xC6, 0xC9, 0x26, 0x4E, 0x82, 0xBA, 0x17, 0xBB, 0x97, 0x70, 0xD2, 0x07, 0x74, 0x44, 0x1C,
0x97, 0xB8, 0x19, 0x4E, 0xFA, 0x38, 0x09, 0x00, 0x26, 0x5F, 0xCA, 0xDC, 0x74, 0x09, 0x80, 0xC0,
0x3B, 0x09, 0xB1, 0x7D, 0x3B, 0xC3, 0x49, 0x9F, 0x73, 0x45, 0xF0, 0x25, 0x17, 0xB2, 0xCA, 0x53,
0xBA, 0xF1, 0x18, 0xF8, 0xF8, 0x13, 0x23, 0xFE, 0x7D, 0x04, 0x3D, 0x50, 0x1D, 0x9C, 0x2F, 0xE3,
0xC6, 0x93, 0xC6, 0xAE, 0x5B, 0x91, 0x1C, 0x43, 0x08, 0x08, 0xF5, 0x6C, 0xA6, 0x05, 0x94, 0x26,
0xF5, 0x11, 0x11, 0x16, 0x45, 0xDD, 0xA8, 0xAC, 0x72, 0xDE, 0x05, 0xC0, 0x06, 0x5C, 0x0F, 0x0B,
0x27, 0xD5, 0x91, 0x82, 0x97, 0x68, 0x5E, 0x44, 0xB8, 0x20, 0xA6, 0xDA, 0xC6, 0xCE, 0x2A, 0xF6,
0xA2, 0xA7, 0xD6, 0x02, 0xDF, 0x06, 0x99, 0x9F, 0x1A, 0xBD, 0x0E, 0x43, 0x52, 0xC8, 0x23, 0x1F,
0x9A, 0xC9, 0x0C, 0x02, 0x3E, 0xFB, 0x26, 0x82, 0x15, 0xD8, 0xF3, 0xE0, 0x4D, 0x8D, 0xCB, 0x53,
0x78, 0x7B, 0x97, 0xEE, 0xBE, 0x66, 0x26, 0xB8, 0x18, 0x84, 0x96, 0x1E, 0xCC, 0x21, 0x4B, 0x3E,
0x26, 0x89, 0x80, 0x08, 0xCC, 0x29, 0xE4, 0xEC, 0xD5, 0xC9, 0xD5, 0x1D, 0x1F, 0x88, 0x12, 0x59,
0xEB, 0x80, 0xD8, 0x0E, 0xC6, 0x2D, 0x2F, 0x65, 0x06, 0xD1, 0x43, 0x0A, 0xAF, 0xC1, 0xA0, 0xAF,
0x33, 0x42, 0xB8, 0x36, 0x04, 0xE4, 0xF9, 0x20, 0x97, 0x7E, 0x42, 0x0F, 0xE1, 0x5E, 0x88, 0x9F,
0xB8, 0x9E, 0x27, 0xFD, 0x44, 0x0D, 0xF8, 0x8D, 0x1E, 0xE1, 0x8D, 0xF0, 0x95, 0xFF, 0x61, 0x5C,
0x8A, 0xB2, 0x55, 0x97, 0x22, 0xB3, 0xCF, 0x47, 0xD7, 0xC7, 0x39, 0xE7, 0x70, 0x97, 0x9C, 0xB3,
0x6A, 0x8C, 0xDC, 0x81, 0xC9, 0x39, 0xC3, 0xF8, 0xB5, 0x4B, 0x39, 0xBC, 0x23, 0xE7, 0x0C, 0xD5,
0x84, 0x04, 0x80, 0x09, 0xD3, 0x1D, 0x42, 0xB3, 0x6B, 0x7B, 0x2A, 0x3E, 0xB1, 0xA4, 0xCA, 0x2E,
0xB5, 0x8E, 0x77, 0xBE, 0x74, 0xC6, 0x05, 0x01, 0xC6, 0x69, 0xA0, 0xF4, 0xDB, 0x75, 0x34, 0x5B,
0xC4, 0x77, 0x74, 0xEE, 0xEB, 0x81, 0xEC, 0xF2, 0xCD, 0xF8, 0x62, 0x3F, 0x31, 0x75, 0xB6, 0xDE,
0x9A, 0xE4, 0x1D, 0xA7, 0x36, 0x5E, 0x07, 0x26, 0xDF, 0x4A, 0x41, 0x4E, 0xB2, 0x91, 0x9C, 0x29,
0x03, 0x08, 0x4A, 0x2A, 0x07, 0xB9, 0xF3, 0x63, 0x79, 0x14, 0xE1, 0xBB, 0xA8, 0x3B, 0x05, 0xF6,
0xDA, 0x45, 0xC2, 0x19, 0x31, 0x16, 0xE6, 0xB0, 0x9A, 0x80, 0xA5, 0x5F, 0x2B, 0xF1, 0xB6, 0x89,
0x76, 0x18, 0x42, 0xA7, 0xA0, 0x13, 0x0F, 0x4C, 0x6A, 0x4D, 0x5A, 0x2D, 0x47, 0x0F, 0xD5, 0xAB,
0xB3, 0x5B, 0x6F, 0xFB, 0x3C, 0x02, 0x39, 0x7D, 0xFF, 0x52, 0x06, 0xF0, 0xCB, 0x34, 0x6F, 0x29,
0x6F, 0x67, 0x15, 0x5B, 0x70, 0x4B, 0xF1, 0xA0, 0x8A, 0xF5, 0xC0, 0x32, 0x93, 0x30, 0x6D, 0xC8,
0x2C, 0xCB, 0x33, 0x68, 0xF7, 0xFB, 0x9C, 0xA3, 0xE6, 0xE4, 0x33, 0xE7, 0xA2, 0x7D, 0x18, 0x6F,
0xC0, 0x2E, 0x80, 0x0C, 0xFB, 0x0B, 0xD6, 0x28, 0x38, 0x9F, 0x5D, 0x34, 0x08, 0xC9, 0x48, 0x7C,
0x8F, 0x6C, 0xBD, 0x49, 0xE0, 0xA8, 0x5E, 0x7A, 0x8F, 0xC5, 0x2B, 0x3E, 0x51, 0x78, 0xDA, 0xC6,
0x11, 0x4E, 0x49, 0xC5, 0x4E, 0xEE, 0xC2, 0x4F, 0x35, 0xA0, 0x1A, 0xFE, 0x75, 0x96, 0xCA, 0x05,
0xE9, 0x56, 0x1E, 0x78, 0xAC, 0xB8, 0xC6, 0xC0, 0x55, 0xA5, 0x11, 0x07, 0x8C, 0x0F, 0x9A, 0xAD,
0xC9, 0x12, 0x53, 0x6B, 0x4B, 0xCC, 0x2F, 0x2E, 0xB1, 0xB4, 0x6D, 0x89, 0x53, 0x03, 0xFF, 0x8B,
0x20, 0xFE, 0x6D, 0x3A, 0x8E, 0x4D, 0xA6, 0xC5, 0xDF, 0x62, 0x8E, 0x67, 0x09, 0xEC, 0xC8, 0x97,
0x1A, 0xE0, 0xC2, 0x92, 0x8A, 0x02, 0xFC, 0x6C, 0xD8, 0x95, 0x25, 0xCB, 0x70, 0xA2, 0xB6, 0xCB,
0xE1, 0xA1, 0x6F, 0x59, 0x80, 0x33, 0x57, 0x81, 0x84, 0xAA, 0x04, 0x6E, 0x68, 0xE6, 0xF5, 0xF7,
0x30, 0xCF, 0x35, 0x67, 0x52, 0x60, 0x7F, 0x60, 0xB6, 0x21, 0x31, 0xF4, 0x9C, 0x78, 0xA7, 0x8D,
0x8E, 0x7A, 0x29, 0xA3, 0xCE, 0x84, 0x65, 0x01, 0xF3, 0xC0, 0x5B, 0x99, 0xD4, 0x1A, 0xA6, 0x30,
0xD2, 0x5E, 0x4D, 0xC5, 0x7B, 0x25, 0x25, 0xDC, 0x64, 0x29, 0x0D, 0xAC, 0x59, 0x04, 0x85, 0x8B,
0x6A, 0x00, 0xCC, 0x50, 0xE8, 0xB5, 0x9C, 0x35, 0x94, 0x77, 0xFA, 0xC9, 0x03, 0xD1, 0xAC, 0x99,
0xBB, 0x63, 0x6E, 0x2E, 0x90, 0xB2, 0xCD, 0xB8, 0x13, 0x0C, 0xC3, 0xB6, 0x06, 0xC0, 0xDA, 0x15,
0x36, 0x32, 0x43, 0x37, 0x2C, 0x01, 0x0A, 0x64, 0xFB, 0xC4, 0xC1, 0x43, 0xA0, 0xE7, 0x65, 0x23,
0x70, 0x5D, 0xEF, 0x6F, 0x11, 0x0A, 0x7F, 0x96, 0x7A, 0xAF, 0x94, 0x92, 0x0C, 0x41, 0x02, 0x30,
0x14, 0x7C, 0x2D, 0x4C, 0x59, 0x02, 0xE4, 0xFA, 0x4A, 0x2E, 0x89, 0x8E, 0xBD, 0xBF, 0x9D, 0x97,
0xE4, 0xCF, 0xF1, 0x16, 0x17, 0x3A, 0x1E, 0x80, 0x5F, 0xDD, 0x59, 0x79, 0xE6, 0x7D, 0xEF, 0x95,
0xFF, 0x9C, 0x84, 0x9D, 0xF4, 0xE6, 0x00, 0x48, 0x46, 0x9D, 0xE3, 0xB4, 0xE7, 0x5A, 0xE1, 0x7C,
0x54, 0xA8, 0xE3, 0x45, 0xF8, 0x5F, 0xF3, 0xF2, 0xD2, 0x27, 0x2C, 0xCF, 0x88, 0x65, 0x89, 0x66,
0xE9, 0xE4, 0x3F, 0x3B, 0x59, 0x6F, 0xA0, 0xE2, 0x47, 0xFE, 0x4F, 0x40, 0xA8, 0x8C, 0x1D, 0x11,
0xD4, 0xEF, 0x0A, 0x13, 0xD5, 0xB1, 0x5A, 0x08, 0xF4, 0x1B, 0x79, 0x64, 0x88, 0xCF, 0xE0, 0x82,
0x6C, 0x62, 0xC1, 0x10, 0xF3, 0x04, 0x7C, 0x5D, 0x35, 0x78, 0x9E, 0x19, 0xCE, 0x6A, 0x24, 0xAD,
0x08, 0xFD, 0x0E, 0xED, 0x5C, 0x1D, 0x29, 0x98, 0xBC, 0x41, 0xC7, 0x1B, 0x08, 0x5C, 0xBA, 0xA6,
0x40, 0x09, 0x3D, 0x47, 0xE0, 0xAA, 0x22, 0x06, 0xB6, 0x78, 0x70, 0xD9, 0x23, 0xCC, 0xC2, 0x48,
0xE5, 0xA6, 0x5A, 0x0B, 0x66, 0x9F, 0x61, 0x1A, 0xB8, 0xFD, 0x22, 0x33, 0x4C, 0x88, 0x0E, 0xBD,
0x5F, 0x46, 0x66, 0x08, 0x4C, 0xAF, 0x25, 0x61, 0x0A, 0xEA, 0x0C, 0x55, 0xDD, 0x67, 0x3E, 0x08,
0xDF, 0x27, 0x36, 0x29, 0xF4, 0x52, 0x33, 0xB7, 0x0F, 0x72, 0x06, 0x87, 0x8E, 0xC9, 0xC1, 0xDE,
0x40, 0x8A, 0x43, 0x5D, 0x50, 0xD5, 0x06, 0x3D, 0x6D, 0x86, 0x22, 0xD0, 0xE8, 0x53, 0x45, 0x95,
0x19, 0x69, 0x73, 0x82, 0x3B, 0x94, 0xEA, 0x3B, 0x17, 0xF7, 0x98, 0xD2, 0xD1, 0xF6, 0x5C, 0x55,
0xCC, 0x07, 0x17, 0x24, 0xCA, 0xCE, 0x4D, 0x7D, 0xC3, 0xB6, 0x86, 0x9B, 0xAD, 0x1F, 0xB3, 0x2C,
0xA1, 0x08, 0x16, 0x17, 0xBB, 0xBB, 0xDF, 0x31, 0x6E, 0xD0, 0x68, 0x68, 0xA6, 0x63, 0x75, 0xAA,
0x8F, 0x55, 0xCC, 0x68, 0xD5, 0x6B, 0xB3, 0xB2, 0x9F, 0xC5, 0x31, 0x25, 0x61, 0xFB, 0xD6, 0x07,
0x80, 0x31, 0x53, 0x2F, 0x3B, 0x1B, 0xF1, 0xB1, 0x8A, 0x10, 0xB8, 0xC2, 0x68, 0xFE, 0xED, 0x8F,
0x05, 0x10, 0xC9, 0xE4, 0x9D, 0xC3, 0x5A, 0x3F, 0x45, 0x59, 0xA9, 0xD3, 0x56, 0x15, 0xE6, 0xE5,
0xA4, 0x82, 0xA9, 0x96, 0x36, 0x33, 0x2D, 0x85, 0xBD, 0xB1, 0xF8, 0x66, 0xD5, 0xB4, 0xCB, 0x5D,
0x3B, 0x9B, 0x38, 0xD7, 0xD7, 0x02, 0x74, 0xD7, 0x17, 0x23, 0xEB, 0xE6, 0x33, 0x99, 0xA9, 0xFB,
0xF2, 0x4D, 0x9D, 0x1C, 0x29, 0x73, 0xB4, 0x29, 0x06, 0x1B, 0x37, 0x44, 0x26, 0x6A, 0xBD, 0x7D,
0x07, 0x8B, 0x9E, 0x52, 0x53, 0x3F, 0x94, 0x8E, 0x8B, 0x67, 0xBF, 0xFA, 0xA8, 0xAF, 0x98, 0x23,
0x0B, 0x9A, 0x9C, 0xCC, 0xCF, 0xD9, 0x6E, 0x97, 0xE6, 0xDB, 0xAE, 0x39, 0xB6, 0xCD, 0x31, 0xBC,
0xFB, 0xB8, 0xAD, 0xFE, 0xC3, 0xC0, 0x1F, 0x93, 0xD7, 0xAE, 0xA2, 0xDA, 0x2A, 0xFF, 0xE8, 0x8F,
0xA3, 0x45, 0xCE, 0x73, 0xF2, 0x0D, 0x90, 0xBA, 0x57, 0x9F, 0x4B, 0x4D, 0x39, 0xA1, 0xC9, 0xD9,
0x33, 0xFC, 0xA3, 0x77, 0xF9, 0x3C, 0x46, 0x93, 0x86, 0x23, 0x0D, 0xBD, 0x4F, 0xD0, 0x04, 0x78,
0xEE, 0x50, 0x4B, 0x14, 0x7D, 0x60, 0x5D, 0x3A, 0x99, 0xA9, 0xC3, 0x1D, 0x07, 0x4B, 0xC6, 0x60,
0x41, 0xA7, 0xF7, 0xB1, 0x56, 0xA9, 0xC9, 0x00, 0xA2, 0x97, 0xDD, 0x06, 0x46, 0x53, 0xE8, 0xB7,
0x99, 0xA7, 0x59, 0x36, 0xE1, 0xB3, 0xB5, 0x60, 0xC3, 0x09, 0xC0, 0x5A, 0x9F, 0xEA, 0xE0, 0x89,
0x31, 0xB4, 0xBE, 0x44, 0xD8, 0xA6, 0x10, 0x37, 0xC1, 0x90, 0xBF, 0x67, 0x4E, 0x10, 0xA1, 0xBF,
0x9B, 0x71, 0x6E, 0x13, 0x9A, 0x63, 0x95, 0xCE, 0xA5, 0xDC, 0xCB, 0x83, 0x81, 0x04, 0x9B, 0x3A,
0x92, 0x93, 0xA6, 0x1C, 0x68, 0x6A, 0x1C, 0xA4, 0x3C, 0x8F, 0x07, 0x0E, 0xC4, 0x5A, 0x7F, 0x10,
0x14, 0x3F, 0x1C, 0xD5, 0x1D, 0xFD, 0x62, 0x11, 0xF8, 0x4F, 0xC5, 0x25, 0x73, 0x33, 0x73, 0x89,
0x7A, 0xE2, 0xF7, 0x45, 0x08, 0xC8, 0xD2, 0xAE, 0x7B, 0xE9, 0x66, 0xA6, 0xAE, 0x8D, 0x58, 0xFE,
0x9E, 0x9A, 0x5F, 0x99, 0x5A, 0xB4, 0x51, 0x84, 0xC8, 0x14, 0xE8, 0xFA, 0x7B, 0x7B, 0x07, 0xFE,
0xA3, 0x5E, 0x34, 0xA5, 0xC7, 0xB9, 0xEB, 0x9C, 0xF1, 0xA3, 0xF9, 0x25, 0xA3, 0xF6, 0xFD, 0x51,
0x35, 0x13, 0x94, 0x1A, 0xE0, 0x5F, 0xBF, 0x07, 0xF0, 0x2F, 0x3C, 0x1D, 0x03, 0x29, 0x61, 0xC4,
0x3C, 0xA2, 0x56, 0x44, 0xD8, 0x87, 0xBE, 0x45, 0x81, 0x19, 0x76, 0x7D, 0xD7, 0x17, 0xAF, 0xC9,
0x21, 0x33, 0x93, 0x7D, 0xE8, 0xDC, 0xB1, 0x71, 0x3E, 0x6D, 0xD7, 0x0D, 0x8A, 0x88, 0xCD, 0xD9,
0xB6, 0xD9, 0xCC, 0xB5, 0xC0, 0x79, 0xAA, 0x23, 0x30, 0xF8, 0x88, 0x42, 0x32, 0x5A, 0x1C, 0x15,
0x15, 0xC6, 0x72, 0x32, 0x6C, 0x67, 0x0D, 0x90, 0xAE, 0x50, 0xBB, 0x93, 0x6E, 0xA1, 0xBD, 0x49,
0x81, 0xF0, 0xF8, 0xB2, 0x9A, 0x1C, 0xFF, 0xE8, 0xCE, 0xC9, 0x71, 0x1F, 0x0F, 0x04, 0x0A, 0x4B,
0x0A, 0x33, 0x39, 0xFE, 0xAF, 0xA6, 0x92, 0x8C, 0xB8, 0x20, 0x33, 0xBC, 0x0C, 0xB7, 0xFC, 0x5C,
0x29, 0x5F, 0x9F, 0x08, 0x18, 0x28, 0x46, 0x70, 0x2C, 0xF2, 0xFD, 0x06, 0x44, 0xB0, 0xF4, 0xA4,
0x22, 0x02, 0xC2, 0xF1, 0xF8, 0xE8, 0xB5, 0x1D, 0x44, 0xB0, 0x14, 0x2E, 0x60, 0xB6, 0x06, 0x26,
0x9D, 0x29, 0x55, 0x06, 0xB3, 0x02, 0x45, 0x94, 0x79, 0xBC, 0xA8, 0x99, 0x55, 0xC5, 0x70, 0xCC,
0x73, 0xC0, 0x7A, 0x4B, 0xBF, 0x34, 0xD5, 0x70, 0x4C, 0x32, 0xD1, 0x09, 0xF8, 0x18, 0x6A, 0x84,
0xC9, 0x70, 0xF3, 0x8C, 0xE0, 0x8C, 0x52, 0x6E, 0xDF, 0xBF, 0x7F, 0x50, 0xF6, 0x43, 0x13, 0x4C,
0xDD, 0x2E, 0xEC, 0xAC, 0x7D, 0xDD, 0xD8, 0x7F, 0xE6, 0xD4, 0xA9, 0xAD, 0xBD, 0x54, 0xFC, 0x06,
0x4B, 0x76, 0xA5, 0xCF, 0xF7, 0x06, 0x97, 0x32, 0xFA, 0x61, 0x82, 0xEB, 0x99, 0xAD, 0x0F, 0x6B,
0x01, 0x22, 0x93, 0xCD, 0x35, 0xB5, 0x86, 0xA3, 0x24, 0x4E, 0xA2, 0x85, 0xB7, 0x59, 0x7E, 0x6C,
0xDC, 0x84, 0x7C, 0xC3, 0x46, 0xE6, 0xAA, 0x11, 0x98, 0x6A, 0x7D, 0xC7, 0x5C, 0xB8, 0x73, 0x7B,
0x82, 0xFC, 0x30, 0x44, 0x6B, 0x3F, 0x6E, 0x79, 0x27, 0x3F, 0xB4, 0x7E, 0x6C, 0x5C, 0xFF, 0x9C,
0xC8, 0x57, 0x9F, 0x80, 0xDE, 0xDC, 0xD3, 0x26, 0xA5, 0x60, 0x30, 0x6E, 0x6D, 0xFB, 0x89, 0xB5,
0xC0, 0x30, 0xB8, 0xFC, 0x92, 0x9D, 0xC1, 0xCC, 0xF2, 0x13, 0xBD, 0x14, 0x14, 0xA6, 0x53, 0x1B,
0x47, 0xD3, 0x8A, 0xA6, 0x1D, 0xFB, 0xA0, 0xDA, 0x0D, 0xD9, 0xDB, 0xF7, 0xC3, 0xE0, 0x36, 0xEB,
0x71, 0x71, 0x53, 0xA1, 0x4C, 0x05, 0xA1, 0x32, 0x97, 0x99, 0x55, 0x78, 0xEF, 0x77, 0x60, 0xC5,
0x2F, 0xCB, 0xD4, 0x7F, 0xDB, 0x2E, 0xC5, 0x45, 0xE5, 0xA3, 0xEE, 0x10, 0xEE, 0x03, 0x0C, 0xD5,
0x2F, 0x46, 0x84, 0xFA, 0xEE, 0xD6, 0x47, 0xD4, 0x2E, 0x1F, 0x75, 0x2F, 0x3E, 0x91, 0xB6, 0xFB,
0x8F, 0xBA, 0x17, 0x3E, 0xFD, 0x1D, 0x8B, 0xDB, 0xD3, 0x3F, 0xB9, 0xD2, 0x96, 0x47, 0xDD, 0xD4,
0x4A, 0xCD, 0x87, 0x44, 0x93, 0x02, 0x53, 0x90, 0x51, 0xA7, 0xD4, 0x99, 0xED, 0x51, 0x55, 0xFF,
0x01, 0xB6, 0xA0, 0x79, 0x02, 0x0E, 0xEE, 0xB2, 0xD5, 0x55, 0xF2, 0x03, 0xB3, 0xED, 0xC3, 0x5B,
0x99, 0x8F, 0xBC, 0x1B, 0x6E, 0x27, 0x0F, 0xBF, 0x0E, 0xFE, 0x15, 0xBD, 0x4F, 0x4F, 0x5E, 0x48,
0xB7, 0x00, 0xF6, 0xAE, 0x1F, 0x77, 0x96, 0xC0, 0x3C, 0x1E, 0xAD, 0x8D, 0xE3, 0x98, 0x7A, 0x9F,
0xDF, 0xDE, 0x73, 0x1B, 0x5B, 0x6D, 0x62, 0x74, 0x82, 0x4F, 0xD8, 0x3B, 0x87, 0x0E, 0x01, 0x8E,
0x84, 0x75, 0x68, 0x87, 0xEB, 0xAC, 0x9F, 0x64, 0x22, 0xB3, 0x0D, 0x61, 0xAD, 0xB1, 0x70, 0x62,
0x44, 0x59, 0x19, 0x55, 0x39, 0xC0, 0xF6, 0x96, 0xFB, 0x69, 0x8C, 0x93, 0xA5, 0xC6, 0x60, 0x1E,
0xC4, 0xA3, 0xCE, 0x42, 0x3B, 0x4F, 0xC2, 0xAF, 0x55, 0x7F, 0x3F, 0xAB, 0x52, 0xE2, 0xCD, 0x23,
0xE5, 0xF7, 0xDA, 0xD2, 0xFD, 0x79, 0x22, 0xF5, 0x39, 0xBC, 0x1B, 0x8F, 0x1B, 0x1E, 0x18, 0x2D,
0xFE, 0xCA, 0x48, 0x59, 0x39, 0x4E, 0x2C, 0x36, 0x64, 0x9F, 0xF8, 0x57, 0xCD, 0x74, 0xC4, 0xB6,
0x70, 0x7B, 0x27, 0x7D, 0x3E, 0xE9, 0xC3, 0x2B, 0xEB, 0xDF, 0x96, 0xBE, 0x7C, 0x2C, 0x90, 0x77,
0x1C, 0x4C, 0x02, 0x60, 0x4C, 0x73, 0xB0, 0x57, 0x9A, 0xEF, 0x92, 0x45, 0xD1, 0x6B, 0x3A, 0xBE,
0xD7, 0x04, 0xFD, 0xC9, 0x4F, 0x88, 0xC8, 0x17, 0xBE, 0x4B, 0xE7, 0x7A, 0xBE, 0x30, 0x53, 0x07,
0xA4, 0x72, 0xEA, 0xB5, 0x49, 0xCF, 0x0B, 0xE8, 0xBE, 0x77, 0x9A, 0x33, 0x63, 0x75, 0x66, 0xB4,
0x59, 0x44, 0xCC, 0x80, 0x82, 0xC6, 0x86, 0x03, 0xC5, 0x69, 0x43, 0xDF, 0xC9, 0x40, 0x45, 0x70,
0xFC, 0x1F, 0xD2, 0x6A, 0x11, 0x83, 0xD8, 0x1B, 0x23, 0xC6, 0x10, 0x47, 0x33, 0x74, 0xB2, 0xCF,
0xE4, 0x37, 0xC2, 0x25, 0x9B, 0x59, 0xBC, 0xD2, 0xC9, 0x39, 0x7D, 0xC4, 0x6C, 0x26, 0x6C, 0x1C,
0x34, 0x0C, 0x5E, 0xFF, 0xE5, 0xD4, 0x60, 0x17, 0x79, 0x80, 0xB9, 0xC5, 0x3A, 0x35, 0x60, 0xB9,
0x3F, 0xC9, 0x97, 0x9A, 0x84, 0x7A, 0x64, 0x1D, 0x85, 0x3D, 0x86, 0x15, 0xAD, 0xC1, 0x53, 0xA7,
0x2C, 0x79, 0x3A, 0x92, 0xB7, 0x45, 0xC1, 0xD5, 0x56, 0xC5, 0x76, 0x5C, 0x77, 0x64, 0x26, 0x1F,
0x1B, 0xA0, 0xD3, 0x62, 0x49, 0x9E, 0x8A, 0x10, 0x31, 0xF4, 0xED, 0xDC, 0x7B, 0x2F, 0xA5, 0x69,
0xDC, 0x2D, 0x9A, 0x68, 0x57, 0xD1, 0x04, 0x06, 0xE7, 0xED, 0x9B, 0x1C, 0xD9, 0xDC, 0xFB, 0xF4,
0x24, 0xF3, 0x01, 0xC0, 0xF8, 0x2E, 0x8C, 0x35, 0xE0, 0xFE, 0x8E, 0xD4, 0xEE, 0xD8, 0x39, 0x57,
0xE6, 0x5F, 0x4E, 0x99, 0xE4, 0x40, 0x73, 0x34, 0x26, 0xF0, 0xAE, 0xA0, 0xE2, 0x0A, 0x0B, 0x1A,
0xD6, 0x9F, 0x2B, 0x4A, 0xAB, 0x2C, 0xE5, 0x76, 0xA5, 0x99, 0x19, 0x8F, 0xF6, 0x24, 0x16, 0xCA,
0xEC, 0x6A, 0x16, 0x99, 0x41, 0xB3, 0x11, 0x2D, 0x4E, 0x44, 0xD0, 0xF7, 0xE0, 0xAE, 0xF1, 0x49,
0x9B, 0x88, 0x8E, 0xC5, 0x2E, 0xC9, 0x24, 0x06, 0x2F, 0x0C, 0x74, 0x32, 0x13, 0x29, 0x21, 0x57,
0x89, 0x64, 0x66, 0xC6, 0x82, 0x38, 0xEA, 0x6C, 0x2C, 0xCD, 0x55, 0x98, 0x8B, 0xE1, 0x83, 0x63,
0xDB, 0xD9, 0x9E, 0x24, 0xCC, 0x8B, 0x2A, 0x99, 0xD4, 0x6A, 0x01, 0x80, 0x0D, 0x45, 0xB5, 0xCC,
0x48, 0xC2, 0x2E, 0x45, 0x0C, 0x62, 0xA7, 0xE9, 0xFB, 0x9C, 0x8C, 0xD5, 0x18, 0xCA, 0x2C, 0x74,
0xC2, 0x10, 0x21, 0xFA, 0x10, 0x75, 0xAB, 0xA8, 0x3C, 0x4E, 0x25, 0x45, 0x14, 0x4B, 0x3E, 0xEC,
0xB0, 0xDC, 0x9F, 0x62, 0x7F, 0xBF, 0xCA, 0xCB, 0xD0, 0xED, 0x75, 0x44, 0xAD, 0x6E, 0x63, 0xE6,
0xFE, 0xED, 0x49, 0x8F, 0x92, 0xD9, 0xFC, 0x6A, 0x2D, 0x8B, 0x7F, 0xC7, 0x66, 0x9E, 0xC1, 0x59,
0x51, 0x89, 0xBA, 0xC2, 0xCA, 0xE1, 0xAC, 0x5A, 0x05, 0x72, 0x5F, 0x42, 0x86, 0x13, 0xDB, 0x42,
0x86, 0x64, 0xAC, 0xC3, 0x24, 0xF9, 0x40, 0x0C, 0x02, 0xAB, 0x28, 0x86, 0xF3, 0x43, 0x2E, 0xFC,
0x84, 0x6F, 0x2E, 0xF1, 0x54, 0x68, 0xE6, 0xD6, 0xE5, 0xED, 0x6F, 0x11, 0xFF, 0x73, 0x2A, 0x6B,
0xBA, 0x9A, 0x13, 0x9B, 0x74, 0xFD, 0xA7, 0x63, 0xC3, 0x0E, 0xA9, 0xD8, 0xE5, 0x03, 0x8E, 0xE7,
0xC2, 0x95, 0x47, 0x8C, 0x61, 0x3F, 0xF9, 0x7A, 0x7D, 0x47, 0xB1, 0x5B, 0xDD, 0xCC, 0x8C, 0x31,
0xB7, 0xB6, 0x73, 0x29, 0xC1, 0x61, 0x53, 0x72, 0x27, 0xCE, 0xBB, 0x29, 0xE7, 0xD4, 0xEB, 0x30,
0xF7, 0xBC, 0x80, 0x98, 0x9C, 0xFB, 0xA3, 0x01, 0xBD, 0xCD, 0xCF, 0xE8, 0xBE, 0x0A, 0xF3, 0x7B,
0x6D, 0xFA, 0xA6, 0xAA, 0xE7, 0x55, 0x4D, 0x07, 0x4C, 0x85, 0x7D, 0x81, 0x98, 0xD9, 0x1E, 0x72,
0xA6, 0x5F, 0x1F, 0x59, 0x15, 0xF9, 0x45, 0xC6, 0xA5, 0x21, 0xE5, 0x0C, 0x54, 0x2D, 0xF4, 0xB8,
0x36, 0xE4, 0xC8, 0xC7, 0x39, 0x1E, 0x99, 0x00, 0x2F, 0x97, 0x35, 0x15, 0x2D, 0x85, 0x1E, 0x57,
0x87, 0x1C, 0xC9, 0xEB, 0x9C, 0x55, 0x57, 0x4F, 0x47, 0x65, 0xCD, 0xBA, 0x91, 0x86, 0x1E, 0xD7,
0x87, 0x1C, 0xC9, 0x3D, 0x68, 0x39, 0xEB, 0x94, 0xF5, 0xAF, 0xC1, 0xBB, 0x66, 0xB6, 0xE5, 0xCA,
0xE7, 0xB6, 0x2C, 0xA2, 0x71, 0xF2, 0x53, 0xF1, 0x31, 0x8C, 0x39, 0x40, 0xC8, 0x08, 0x1E, 0xB0,
0x79, 0x06, 0xA8, 0x3B, 0xBF, 0x15, 0xAB, 0xA4, 0x5E, 0xB8, 0xFF, 0xA8, 0x66, 0x9C, 0x8F, 0xCE,
0xBC, 0x9B, 0x7E, 0x91, 0x17, 0xC5, 0xD2, 0x5C, 0x7D, 0xBA, 0x3E, 0xAD, 0x9C, 0x7F, 0x72, 0xCF,
0xA4, 0x3D, 0x2B, 0x2F, 0x54, 0xDA, 0x41, 0x28, 0xE9, 0x67, 0x55, 0x0A, 0xD4, 0x18, 0xB9, 0xE9,
0x6A, 0x72, 0x0F, 0x68, 0xF2, 0x2B, 0x8D, 0xDD, 0x6B, 0x0F, 0x60, 0x28, 0x6A, 0x3B, 0xD6, 0xC0,
0xDD, 0xAF, 0xA5, 0x66, 0x53, 0x32, 0x3B, 0xED, 0xA6, 0x8D, 0x73, 0x12, 0x30, 0x6D, 0x64, 0xBD,
0x01, 0x33, 0xE0, 0x2C, 0x9C, 0xDA, 0xCA, 0xB9, 0xF7, 0x74, 0x70, 0xF5, 0x5C, 0x29, 0x88, 0xAD,
0x87, 0x12, 0x74, 0xAD, 0xE1, 0x68, 0xF9, 0x0B, 0xFD, 0xC1, 0xA4, 0xBC, 0x65, 0x0E, 0x5C, 0x99,
0x9B, 0xB9, 0xED, 0x71, 0xEE, 0x13, 0x49, 0x14, 0x5C, 0x2F, 0x9A, 0x3C, 0x78, 0x0F, 0x24, 0x05,
0x34, 0x49, 0x8E, 0x41, 0x4F, 0x89, 0xA9, 0x7A, 0xA3, 0xFA, 0xB3, 0xF4, 0xA9, 0x2A, 0xFD, 0x30,
0x49, 0x08, 0x56, 0x8D, 0xBC, 0x7A, 0x0C, 0x2F, 0x81, 0xA4, 0x82, 0xC9, 0x57, 0x7F, 0x25, 0xA7,
0x16, 0x4B, 0xB3, 0x0A, 0x2C, 0x12, 0xEB, 0x66, 0xCB, 0x40, 0x6C, 0xDC, 0xCB, 0x84, 0x19, 0x6D,
0xA7, 0x32, 0xEB, 0x88, 0xB5, 0xFE, 0x84, 0xE5, 0x6A, 0x23, 0xD0, 0xF2, 0x33, 0xA8, 0xF7, 0x25,
0x9D, 0x4D, 0xFF, 0x48, 0x9F, 0x2E, 0x39, 0x13, 0xD3, 0xA5, 0x3B, 0xE3, 0x54, 0xBC, 0x84, 0x53,
0x9C, 0x9C, 0x0E, 0xFE, 0x05, 0x9E, 0xAE, 0xCD, 0x66, 0xA6, 0x22, 0xF0, 0x90, 0x21, 0xD3, 0x0B,
0x5A, 0xF6, 0x75, 0xCE, 0xBE, 0xBC, 0xD1, 0xF7, 0x87, 0x13, 0x1F, 0xFD, 0x80, 0xB5, 0x00, 0x9A,
0x3A, 0x7D, 0x79, 0xFC, 0x9B, 0xAD, 0x30, 0xB6, 0xE5, 0x27, 0x6E, 0x5C, 0xD8, 0x9B, 0x99, 0x9C,
0xAA, 0xAA, 0x01, 0x23, 0x57, 0xE7, 0xEA, 0xEF, 0xFA, 0x0D, 0x62, 0xFF, 0x5A, 0x5B, 0x02, 0x58,
0x8D, 0xE5, 0xC5, 0xC5, 0xC4, 0xB0, 0x2D, 0xE4, 0x7A, 0x80, 0x7D, 0x6A, 0xA3, 0x6B, 0x4D, 0x26,
0xC7, 0x11, 0x73, 0xAE, 0x9B, 0x69, 0xC7, 0x87, 0xCC, 0x32, 0x1A, 0x13, 0x04, 0xB7, 0xC7, 0x72,
0x4E, 0xA8, 0x19, 0x20, 0x24, 0xD7, 0x2C, 0xB6, 0x68, 0x57, 0xB3, 0xEF, 0xB5, 0xBA, 0x99, 0xC6,
0x15, 0x26, 0x0E, 0xFB, 0x2A, 0x75, 0x0B, 0x67, 0x84, 0x40, 0xB1, 0x57, 0x59, 0xC0, 0x29, 0x93,
0x36, 0xFB, 0x8F, 0x2C, 0x7E, 0xEA, 0x4E, 0x56, 0xFE, 0xD6, 0x7A, 0x7A, 0xB4, 0xBC, 0xB8, 0x9C,
0xB0, 0x04, 0xA4, 0xDE, 0x40, 0x6C, 0x71, 0xAD, 0x70, 0xF5, 0xD6, 0x8C, 0xC2, 0x52, 0xBD, 0xDA,
0xFF, 0x0D, 0x88, 0xA1, 0x56, 0x9D, 0x49, 0xE9, 0x69, 0xBF, 0x21, 0x6D, 0x62, 0x26, 0xBD, 0x21,
0x12, 0xEE, 0xCE, 0x09, 0x90, 0xFF, 0x6F, 0xA8, 0xA2, 0x4A, 0xA7, 0x9A, 0x40, 0xB5, 0xBE, 0xED,
0xFD, 0xF7, 0x01, 0x55, 0x98, 0x6E, 0xA0, 0xCF, 0xFE, 0x16, 0xDF, 0xBF, 0xCD, 0xFA, 0xC5, 0x3B,
0x38, 0xBD, 0xA7, 0x45, 0x02, 0x50, 0xD5, 0x23, 0x66, 0xB9, 0x67, 0xD3, 0xAC, 0x43, 0x61, 0x62,
0xA1, 0x5F, 0xAD, 0x4A, 0x4E, 0xA1, 0x0D, 0x57, 0xE4, 0x00, 0xB3, 0x75, 0x9C, 0x29, 0x6A, 0x6F,
0x39, 0x11, 0xEF, 0x1D, 0xC4, 0xB2, 0xCD, 0xC5, 0x91, 0x3D, 0x2E, 0x65, 0x43, 0x84, 0xD5, 0xD1,
0x83, 0x43, 0xAD, 0xFE, 0x38, 0x34, 0xF3, 0x27, 0x16, 0x62, 0x5D, 0xF8, 0xD6, 0xA9, 0x72, 0x22,
0xFA, 0xB5, 0xB1, 0xD3, 0x95, 0xF6, 0xAC, 0xD5, 0xE7, 0x2A, 0x58, 0x0C, 0x0C, 0x00, 0x8C, 0x53,
0x85, 0x6F, 0xD3, 0x62, 0x22, 0x82, 0xB5, 0x5C, 0x7C, 0x44, 0x05, 0x50, 0x42, 0xEF, 0xAF, 0x13,
0x69, 0xBF, 0x95, 0x3B, 0xEF, 0xAC, 0xC4, 0x35, 0x75, 0x02, 0x5E, 0x11, 0x8C, 0x5E, 0xCB, 0x13,
0x67, 0xE5, 0x4C, 0xAA, 0x4E, 0x00, 0xF0, 0xFC, 0x26, 0x97, 0xB5, 0x55, 0x84, 0x10, 0xA5, 0xA8,
0x93, 0x08, 0x31, 0xA8, 0xE4, 0x8A, 0x15, 0x99, 0xD9, 0x9E, 0x0A, 0x22, 0x2B, 0x39, 0x83, 0xE0,
0x38, 0x13, 0x6B, 0x7A, 0x5F, 0x16, 0x6E, 0x8E, 0xC7, 0xE4, 0x68, 0xBA, 0x55, 0x77, 0xBA, 0x07,
0x7A, 0xF8, 0x53, 0x84, 0xCE, 0xB7, 0x0B, 0x3C, 0xBE, 0xB2, 0x28, 0x87, 0x2B, 0xDE, 0x4C, 0x69,
0xC2, 0xFC, 0xD7, 0x2C, 0xCA, 0xA9, 0x4A, 0x01, 0x42, 0x35, 0xB9, 0x78, 0x78, 0x01, 0x52, 0x1B,
0x35, 0x7E, 0x54, 0x36, 0x24, 0x50, 0x66, 0xC6, 0xFC, 0xB7, 0x66, 0x21, 0x84, 0xF7, 0xB9, 0xA9,
0x7D, 0xE8, 0x43, 0xD9, 0x02, 0x69, 0x3A, 0x1B, 0x3D, 0xF1, 0x47, 0x5F, 0x9B, 0xAA, 0x7F, 0xF3,
0x52, 0xA1, 0x6F, 0xC6, 0xAC, 0x3D, 0x93, 0x55, 0x31, 0xAB, 0x7E, 0x07, 0xB3, 0x4E, 0x91, 0x59,
0xFE, 0x98, 0x59, 0x70, 0x76, 0x30, 0x8C, 0x9F, 0x4F, 0x56, 0x2D, 0x81, 0x59, 0xC1, 0x4E, 0x66,
0x71, 0xF1, 0xA1, 0x3B, 0x11, 0xB1, 0xFB, 0xB3, 0x42, 0xAC, 0x98, 0xAB, 0x0C, 0xA4, 0x61, 0x9C,
0xD2, 0xF9, 0x43, 0x78, 0x5A, 0x95, 0xB6, 0xF3, 0x3D, 0x2E, 0x5C, 0x37, 0x73, 0xF5, 0x3E, 0x4D,
0x80, 0xF7, 0xEE, 0xD5, 0x61, 0x55, 0xD1, 0x2D, 0xB4, 0x4F, 0xE3, 0x85, 0x78, 0xF7, 0x73, 0xA1,
0xA7, 0xAB, 0x0B, 0xCB, 0xFC, 0x7F, 0x0F, 0x56, 0x24, 0x87, 0x12, 0x16, 0x5B, 0x80, 0xE5, 0x0C,
0x95, 0x0A, 0x25, 0x6D, 0xE6, 0xA2, 0xEA, 0x2C, 0x36, 0x8A, 0xAD, 0x4F, 0x10, 0xA2, 0x14, 0xE2,
0x25, 0xA6, 0xCB, 0xCD, 0xCA, 0xDA, 0x99, 0xFF, 0xA3, 0x81, 0xE9, 0x9C, 0xD2, 0xAC, 0xDA, 0xAC,
0x68, 0xDB, 0xE9, 0x98, 0xEE, 0xF7, 0x9A, 0x54, 0x1A, 0xDF, 0xE9, 0xAD, 0xE2, 0xE0, 0x6F, 0x5B,
0x02, 0x5D, 0x39, 0x2B, 0x86, 0x7E, 0x2F, 0xA5, 0x32, 0xAD, 0xB6, 0x4A, 0xC6, 0xEE, 0x37, 0xD5,
0xEA, 0xA5, 0xD4, 0x7D, 0x37, 0x75, 0xDE, 0xC9, 0xEC, 0x34, 0xAB, 0x2A, 0x0A, 0x9E, 0xCD, 0xF9,
0x7B, 0x1F, 0xAE, 0xEB, 0x45, 0x78, 0xB1, 0x10, 0xAF, 0x88, 0x13, 0x7A, 0x2B, 0xAE, 0x8D, 0x79,
0x25, 0x92, 0x1B, 0xA9, 0xD4, 0x72, 0x43, 0xF5, 0xA0, 0x4A, 0x59, 0x1A, 0x27, 0x02, 0x49, 0x83,
0x47, 0x09, 0xC6, 0x89, 0x6F, 0x9F, 0xF5, 0x30, 0xC9, 0x6D, 0xE4, 0x38, 0x73, 0xF7, 0x5A, 0xD5,
0x94, 0x5E, 0xDE, 0xF9, 0xA0, 0x90, 0x79, 0xB5, 0xC1, 0x95, 0x82, 0xE7, 0x64, 0xDF, 0x2E, 0x6B,
0x55, 0xC7, 0xD5, 0x5E, 0xEE, 0x3B, 0x19, 0xB6, 0x09, 0x6B, 0xBF, 0xEE, 0xF2, 0x9A, 0xBD, 0x4C,
0x3B, 0xF7, 0x52, 0x5B, 0x57, 0x0B, 0x0D, 0xD9, 0x15, 0x9F, 0x11, 0xCC, 0x97, 0xAD, 0xF6, 0xD3,
0x0C, 0x22, 0xB6, 0xAE, 0xC6, 0xC9, 0x09, 0x75, 0x34, 0xAD, 0x2A, 0x07, 0xC7, 0x7F, 0x10, 0x06,
0xFE, 0xFF, 0x13, 0xBB, 0xAC, 0x1A, 0x65, 0x43, 0x6F, 0x14, 0xB9, 0xAB, 0xB0, 0x4C, 0x9B, 0xB1,
0x9F, 0xA2, 0xA1, 0xCF, 0x45, 0x9F, 0xB8, 0xC3, 0x3D, 0xBF, 0x19, 0xDB, 0x45, 0xD5, 0x60, 0x0D,
0xAA, 0x3B, 0x74, 0xF5, 0x9F, 0x9C, 0x98, 0xFF, 0x0C, 0x60, 0x9B, 0x4F, 0x81, 0x94, 0x1C, 0xDF,
0xB6, 0xC6, 0x86, 0x4B, 0x6E, 0x16, 0x81, 0x14, 0x75, 0xE1, 0xAF, 0xFF, 0xB8, 0xB8, 0xBD, 0xC6,
0x26, 0xF4, 0x4B, 0xBB, 0x00, 0xCA, 0x7A, 0x02, 0x06, 0xC0, 0x4D, 0xBF, 0xD1, 0x84, 0x79, 0xB5,
0x1E, 0xC4, 0xAD, 0xFE, 0x53, 0x91, 0xC4, 0x24, 0x8D, 0xCF, 0x7D, 0x9D, 0x09, 0xF4, 0x7C, 0x1C,
0xDA, 0x99, 0xCA, 0x9E, 0x26, 0x6B, 0xF2, 0xEF, 0x47, 0x4E, 0x79, 0xD0, 0xAD, 0xEA, 0xE0, 0xB6,
0x65, 0x95, 0x4C, 0xE6, 0x33, 0xDF, 0x53, 0x4E, 0xF9, 0xEF, 0xB7, 0xE7, 0x94, 0x59, 0x94, 0x48,
0xE3, 0x11, 0xDD, 0x7B, 0xF5, 0xB7, 0x75, 0x7C, 0x7D, 0x16, 0x1E, 0x20, 0x7D, 0x5E, 0x2F, 0x9A,
0xD5, 0xDF, 0x8D, 0x3B, 0x56, 0x7F, 0xDB, 0x93, 0xD5, 0xDF, 0x29, 0xC8, 0xF0, 0x52, 0x2F, 0x2D,
0x1D, 0xAE, 0x36, 0xB3, 0xAF, 0x73, 0xB5, 0x19, 0x57, 0xDF, 0x9B, 0xFF, 0x37, 0x21, 0xE5, 0xEC,
0x62, 0xA8, 0xA2, 0x86, 0x85, 0xF0, 0xA8, 0x46, 0xE9, 0xF9, 0x7F, 0x9D, 0x16, 0x4B, 0x68, 0x1C,
0xC9, 0xF5, 0x75, 0xD7, 0x58, 0xED, 0x75, 0x45, 0xAA, 0x21, 0xEC, 0x82, 0x21, 0x23, 0x4D, 0x0E,
0x3E, 0x38, 0xCE, 0xF4, 0xCE, 0x1E, 0x14, 0x10, 0xA1, 0x67, 0xBA, 0xD7, 0x3A, 0x2C, 0xC4, 0x07,
0x8B, 0x90, 0xB9, 0xE4, 0xB2, 0x3A, 0x6E, 0x20, 0x20, 0x1D, 0xE6, 0xD0, 0x0B, 0xE3, 0x4C, 0xAF,
0xE7, 0xB0, 0x04, 0x02, 0xBB, 0x24, 0xC7, 0x5C, 0x4C, 0x12, 0x88, 0x91, 0x03, 0x3B, 0x84, 0x59,
0x32, 0x87, 0xB1, 0xA7, 0x24, 0xB1, 0x18, 0xA2, 0x43, 0x7A, 0x65, 0x48, 0x20, 0x81, 0x6C, 0x67,
0x95, 0xBD, 0xC4, 0xB0, 0x5B, 0xB6, 0xDB, 0x41, 0x89, 0x66, 0xE6, 0xE5, 0xBD, 0xEE, 0x91, 0x25,
0x2B, 0x92, 0xD9, 0xA4, 0x66, 0xAA, 0x5E, 0xD7, 0xAB, 0x57, 0xAF, 0x5E, 0xBD, 0x6F, 0x01, 0xCC,
0xC2, 0x6C, 0x75, 0x74, 0x6B, 0xF7, 0x27, 0x17, 0xE0, 0x32, 0xDC, 0xB2, 0xA3, 0x53, 0x00, 0x70,
0x2B, 0x59, 0x5A, 0x4D, 0x4A, 0x97, 0x4B, 0xA7, 0x93, 0xE4, 0x00, 0x36, 0x7E, 0x89, 0x1F, 0x35,
0xA6, 0x23, 0x22, 0xB6, 0x11, 0xE3, 0x8D, 0x8D, 0x5F, 0x23, 0x7E, 0xD6, 0x20, 0x2C, 0xB7, 0x3B,
0xC8, 0xED, 0x69, 0x83, 0x5B, 0xF0, 0xDF, 0x18, 0xB3, 0xF0, 0xBF, 0xFE, 0x00, 0x5E, 0x69, 0x7C,
0xCF, 0xC7, 0x31, 0x8D, 0x24, 0x24, 0x7D, 0x5C, 0xD9, 0xB8, 0x2D, 0xC5, 0x56, 0x92, 0xB6, 0xAA,
0x16, 0x94, 0xE5, 0x76, 0x6C, 0x42, 0xD7, 0x02, 0xB5, 0xBC, 0x69, 0xFA, 0xDE, 0x9C, 0x05, 0x83,
0xB2, 0x88, 0x7B, 0x0B, 0x42, 0x17, 0xA5, 0x58, 0xBE, 0xB9, 0x9B, 0x98, 0xB4, 0xD5, 0x7A, 0xB5,
0xAA, 0xDE, 0xB1, 0x82, 0xB2, 0xBA, 0xD6, 0x79, 0xF0, 0xB1, 0x31, 0x61, 0xE8, 0x56, 0x94, 0x45,
0x3B, 0xDE, 0xD0, 0x66, 0x50, 0x56, 0x37, 0x13, 0xE3, 0xCD, 0x89, 0x77, 0xE2, 0x62, 0x01, 0xFA,
0xB5, 0xB2, 0xEA, 0x6C, 0x9A, 0x9E, 0xB7, 0x20, 0x97, 0x37, 0xE3, 0x62, 0x11, 0x52, 0x10, 0x31,
0x48, 0x80, 0x0A, 0xC0, 0xBA, 0x85, 0x78, 0xFF, 0xCE, 0x07, 0x50, 0xA2, 0x4F, 0xB0, 0xF4, 0x14,
0xDB, 0x05, 0x9B, 0x08, 0x02, 0xA8, 0x41, 0x4E, 0xAB, 0x22, 0x80, 0xFD, 0x29, 0xAE, 0x04, 0x3F,
0xF8, 0xF0, 0x17, 0x88, 0x1F, 0x3B, 0xE7, 0xC0, 0x05, 0xE8, 0x81, 0x48, 0x18, 0x5B, 0x81, 0xE2,
0xFA, 0x77, 0x11, 0xFF, 0xF8, 0xF3, 0xEF, 0x33, 0xAB, 0x1E, 0xD3, 0xF2, 0x26, 0x68, 0x77, 0xF0,
0xFA, 0xD8, 0x4F, 0x51, 0xDF, 0x85, 0x55, 0xB8, 0x01, 0xED, 0xB8, 0xBD, 0xDF, 0x4E, 0xDA, 0xD0,
0x64, 0xC3, 0xD4, 0xDA, 0xF5, 0x02, 0x81, 0x7D, 0xF1, 0xC0, 0x94, 0xDF, 0x8B, 0x6E, 0x14, 0xA0,
0xC8, 0x58, 0x15, 0xB5, 0xEC, 0x3D, 0x53, 0x0D, 0x46, 0xFB, 0x4E, 0xEC, 0x17, 0x20, 0xB0, 0x00,
0xEA, 0x3E, 0x11, 0xDA, 0xF8, 0xE7, 0x33, 0xED, 0xCC, 0x80, 0x9A, 0x85, 0xC9, 0x0B, 0x6C, 0x4C,
0x80, 0xB8, 0x63, 0xDE, 0x2E, 0xC0, 0xAD, 0xD3, 0xFE, 0x44, 0x30, 0xD1, 0x5F, 0x01, 0xAD, 0xCE,
0x26, 0x90, 0x08, 0xAF, 0x09, 0xB2, 0xD7, 0x99, 0x04, 0x79, 0x53, 0x09, 0x2B, 0x12, 0xEA, 0x7D,
0x08, 0x09, 0x34, 0x2B, 0x60, 0x08, 0x74, 0xE7, 0xAD, 0x98, 0xC1, 0x9C, 0xD0, 0x04, 0xCC, 0x1C,
0x29, 0x8E, 0x67, 0x0A, 0xB2, 0xB5, 0x4A, 0x35, 0x2A, 0xC7, 0x61, 0x25, 0x3C, 0x48, 0x7E, 0x64,
0xEA, 0x83, 0x47, 0x89, 0x31, 0x4B, 0xEA, 0x6F, 0x9F, 0xEA, 0xA6, 0xF1, 0x40, 0x6C, 0xEB, 0x66,
0x52, 0x01, 0x67, 0x59, 0x87, 0x04, 0x94, 0xC8, 0x80, 0x6B, 0x67, 0x6B, 0x9E, 0x15, 0x77, 0x09,
0x74, 0xE1, 0x9F, 0xE6, 0xED, 0xD4, 0x4A, 0xA0, 0xAD, 0xAB, 0x09, 0x9C, 0x68, 0x62, 0x9F, 0x2D,
0xCB, 0x1F, 0x0F, 0xB5, 0x88, 0x32, 0x5D, 0x25, 0xBD, 0x4C, 0x08, 0x3A, 0x78, 0xC1, 0xCA, 0xE9,
0x3D, 0x11, 0x99, 0x5C, 0x76, 0x48, 0x9A, 0x39, 0xB5, 0x0E, 0x3D, 0x98, 0x12, 0xB9, 0xD5, 0x48,
0x26, 0x4E, 0xBA, 0x20, 0xAF, 0x57, 0x47, 0x6A, 0x22, 0x70, 0xF9, 0xE1, 0x8E, 0x92, 0x6F, 0x74,
0xB6, 0x62, 0xE3, 0x77, 0xDE, 0x0D, 0x1E, 0xEB, 0xD0, 0x54, 0xC0, 0xDE, 0x8A, 0x3D, 0xB3, 0xE0,
0xC9, 0x80, 0xB8, 0x2B, 0x4F, 0xBC, 0x47, 0xB7, 0x35, 0xAE, 0xF8, 0x83, 0xB5, 0xA7, 0x7B, 0xD0,
0x74, 0x32, 0x22, 0x17, 0x3C, 0x48, 0xC2, 0xA6, 0xEB, 0x29, 0x72, 0x9F, 0x7A, 0x4B, 0xAD, 0x39,
0x7F, 0x89, 0x14, 0x88, 0xB1, 0x85, 0x30, 0xD4, 0x47, 0x02, 0x1B, 0x27, 0xA2, 0x7B, 0xCD, 0xC1,
0xBA, 0x4D, 0x2A, 0x32, 0x7D, 0xA7, 0xA3, 0x3D, 0xD7, 0x8A, 0x49, 0x63, 0xB0, 0xBE, 0x64, 0xBF,
0x4E, 0x37, 0x20, 0x77, 0xB6, 0x12, 0xD3, 0x13, 0x74, 0xBE, 0xB3, 0xBC, 0xA5, 0xE7, 0xA4, 0x88,
0x4A, 0xB4, 0x7A, 0xE9, 0xE2, 0x79, 0x08, 0x45, 0xAC, 0x80, 0x6E, 0x37, 0x0F, 0x2B, 0x61, 0x28,
0x76, 0x63, 0x45, 0xB3, 0x26, 0x69, 0x70, 0x7E, 0x16, 0x56, 0x08, 0xE3, 0x89, 0x5D, 0xC6, 0x31,
0x92, 0xB0, 0x8C, 0x66, 0xFC, 0x4A, 0x76, 0x6F, 0x2B, 0x85, 0x6F, 0x6B, 0x67, 0x16, 0x92, 0x5B,
0xF3, 0x42, 0xE8, 0xA5, 0x26, 0x45, 0x44, 0x54, 0x93, 0x37, 0x4D, 0x4B, 0x05, 0x9E, 0x65, 0xA4,
0x7E, 0x15, 0x82, 0xF3, 0xD0, 0xA7, 0xA0, 0x48, 0x2D, 0x63, 0x27, 0x65, 0xCB, 0xA8, 0x20, 0x85,
0x20, 0x17, 0x39, 0x20, 0x9F, 0x5F, 0xD6, 0x2A, 0x52, 0x8E, 0x76, 0x49, 0x7E, 0x0D, 0x2A, 0xA0,
0x21, 0x05, 0x47, 0xAB, 0x80, 0x86, 0x14, 0x8A, 0xCE, 0x27, 0xC1, 0x57, 0x8D, 0x93, 0x92, 0x0D,
0x94, 0x56, 0x3F, 0x86, 0x03, 0x7D, 0x91, 0xA3, 0x95, 0x62, 0xEC, 0x79, 0xE2, 0x55, 0x22, 0x16,
0x89, 0xB3, 0x15, 0xA8, 0x68, 0x06, 0x80, 0x42, 0xA4, 0x2E, 0x1E, 0x24, 0xB5, 0x6C, 0xA8, 0xD1,
0x7D, 0x3D, 0x77, 0x3A, 0x68, 0xAF, 0x64, 0x6F, 0xEA, 0x4A, 0xC9, 0xCE, 0xF4, 0x26, 0x92, 0x9A,
0xEF, 0xEC, 0x25, 0x14, 0x46, 0x2C, 0xCF, 0xDA, 0xD8, 0x99, 0xDC, 0x2D, 0xA4, 0x9E, 0x1D, 0xF7,
0xE4, 0xD5, 0xD8, 0xA5, 0xCB, 0xB6, 0xEC, 0xFB, 0x5A, 0x0E, 0xA0, 0xAC, 0xA1, 0x45, 0xC6, 0x07,
0x67, 0x2A, 0x35, 0x99, 0x48, 0x69, 0xA8, 0x02, 0x05, 0xDF, 0x95, 0x8D, 0x8D, 0x9F, 0x21, 0x4E,
0x18, 0x4B, 0x1C, 0x77, 0x23, 0x90, 0xE4, 0x21, 0x5D, 0xF1, 0xD9, 0x1A, 0x58, 0x43, 0x72, 0xDB,
0x6F, 0xFE, 0x0A, 0xE4, 0x3F, 0x46, 0x14, 0xDB, 0x1E, 0x27, 0x89, 0xD7, 0x00, 0x16, 0x0F, 0x8D,
0x95, 0x50, 0x3C, 0x57, 0x28, 0x1D, 0x4B, 0x10, 0x11, 0x69, 0x8C, 0xA7, 0x75, 0x98, 0xD3, 0x72,
0x51, 0x5C, 0xB3, 0x75, 0x9C, 0x5C, 0x5E, 0x77, 0x32, 0xF7, 0xCA, 0x89, 0x9F, 0x03, 0x2B, 0x1E,
0x67, 0x00, 0xB8, 0x77, 0xE3, 0x1E, 0x83, 0x61, 0x7E, 0x38, 0xDC, 0xCB, 0x25, 0xFB, 0x22, 0x13,
0x51, 0xDC, 0xCF, 0xAE, 0xA7, 0xB6, 0x33, 0xDF, 0x74, 0x5E, 0xE7, 0x00, 0xFA, 0x06, 0xF5, 0xB7,
0x80, 0xD3, 0x13, 0x47, 0x97, 0x97, 0x03, 0x0E, 0xB7, 0x25, 0xB8, 0x51, 0x59, 0x83, 0x7F, 0x2D,
0xDE, 0x1D, 0x22, 0x52, 0x1E, 0x1F, 0x5B, 0xC3, 0x00, 0xCE, 0x8D, 0x03, 0x38, 0x08, 0xC0, 0xFA,
0x1C, 0xEC, 0x3D, 0x0D, 0x62, 0x27, 0x72, 0xB6, 0x0C, 0xA8, 0x4E, 0x2C, 0xC9, 0xDB, 0x15, 0x25,
0x37, 0xD2, 0x97, 0x75, 0x58, 0x00, 0xE8, 0xB8, 0x08, 0x48, 0x9F, 0x1C, 0x11, 0x86, 0xF3, 0x18,
0x71, 0x64, 0xC6, 0x0B, 0xEC, 0x1C, 0x9C, 0xE7, 0x68, 0x99, 0x94, 0xC2, 0x51, 0x6C, 0x38, 0x4D,
0x4E, 0x8F, 0x9F, 0xE7, 0x0C, 0x9E, 0xE2, 0x03, 0xAD, 0x68, 0x66, 0xC4, 0x14, 0x50, 0xE6, 0x3B,
0x36, 0x23, 0x40, 0x24, 0x71, 0xFB, 0x11, 0xC6, 0x2A, 0xA8, 0x41, 0x2A, 0xA6, 0xE0, 0x4F, 0xF8,
0xE6, 0xF8, 0x68, 0xC6, 0xA0, 0xFD, 0x14, 0xF3, 0x48, 0x98, 0xC1, 0xA8, 0x3A, 0x91, 0x38, 0xF6,
0xD1, 0xBC, 0x2F, 0x3F, 0xA2, 0xF4, 0x49, 0x87, 0xCA, 0x88, 0xB8, 0x91, 0x78, 0x24, 0x4E, 0x3F,
0x9F, 0x48, 0x4D, 0x2B, 0x2A, 0x1B, 0x22, 0x52, 0x09, 0xB9, 0x91, 0x9B, 0x59, 0x95, 0xB2, 0x0E,
0x88, 0x63, 0x21, 0x05, 0x76, 0xB6, 0x6B, 0x04, 0x32, 0x01, 0x9F, 0x3D, 0xDD, 0x3A, 0x5C, 0xF8,
0xDA, 0x04, 0x06, 0x43, 0x8C, 0x07, 0x97, 0x6C, 0x33, 0xA0, 0x33, 0xB8, 0xF7, 0xA9, 0x87, 0xB4,
0x23, 0x24, 0xF6, 0x21, 0x91, 0x87, 0x94, 0xFF, 0x9B, 0x96, 0x81, 0x45, 0xE2, 0x9C, 0xF5, 0x63,
0x4C, 0xFB, 0xC2, 0xC0, 0x88, 0x3B, 0x69, 0x32, 0x4B, 0xE1, 0xF5, 0x19, 0x8C, 0xEB, 0x65, 0x4C,
0xEB, 0x2F, 0xC1, 0xA0, 0x4E, 0x66, 0x22, 0x3B, 0xB9, 0x54, 0x2B, 0x6A, 0xD4, 0x07, 0x2E, 0xD8,
0x94, 0x03, 0xA4, 0xAE, 0x90, 0xCF, 0x95, 0x48, 0xFA, 0x12, 0xB1, 0x2E, 0xE5, 0xF5, 0x20, 0x6B,
0x75, 0x72, 0x4F, 0x9F, 0x58, 0xD5, 0x61, 0x00, 0x5C, 0x11, 0x5E, 0x69, 0x34, 0xAE, 0x23, 0x3E,
0x6A, 0x34, 0xFA, 0x99, 0xA6, 0x6B, 0xCF, 0x6C, 0x11, 0xF1, 0x4D, 0xC9, 0x7C, 0x76, 0x6E, 0xAA,
0x7D, 0xA0, 0x8D, 0xE4, 0x41, 0x89, 0xDB, 0xC6, 0x6B, 0x12, 0x1F, 0x6F, 0xE1, 0xB8, 0x3B, 0xC4,
0xDF, 0x54, 0xF1, 0xA1, 0xC4, 0x7F, 0x6F, 0xE1, 0x84, 0x26, 0x3F, 0xAC, 0xE2, 0x8E, 0xC4, 0x4F,
0xB7, 0x30, 0xE9, 0x7E, 0x18, 0x54, 0x2A, 0x20, 0x25, 0x25, 0x2C, 0xF2, 0xF0, 0x2E, 0x9C, 0x9C,
0x64, 0xAD, 0xD1, 0xB8, 0x8A, 0xF8, 0x18, 0xC7, 0x2D, 0x44, 0xD5, 0xC6, 0xED, 0x2F, 0xD0, 0x1C,
0xE0, 0xA8, 0x4E, 0x93, 0x21, 0x6E, 0x7F, 0x82, 0xE6, 0x09, 0x8E, 0xBC, 0x36, 0x7E, 0x30, 0x83,
0x99, 0xB1, 0xE8, 0x09, 0xE0, 0xE3, 0x44, 0xBD, 0x89, 0x7B, 0x1D, 0x1C, 0x25, 0x88, 0xA1, 0x8F,
0x9F, 0x2B, 0x3C, 0xE8, 0xE0, 0x84, 0x26, 0x7D, 0x1F, 0xFF, 0xAA, 0xF0, 0xC9, 0x43, 0x4C, 0x11,
0xF3, 0x54, 0xDB, 0xCA, 0x2E, 0xE3, 0x41, 0xB0, 0x54, 0x98, 0xBC, 0x3D, 0x61, 0xBF, 0x1F, 0x93,
0xBF, 0xB3, 0xAF, 0xAB, 0x4E, 0x22, 0xB3, 0x22, 0xF1, 0x96, 0xAF, 0xF4, 0xFB, 0x87, 0x5A, 0xB1,
0x28, 0x03, 0x5D, 0x4D, 0x3C, 0x2E, 0x14, 0x67, 0x87, 0xE1, 0xFF, 0xD3, 0x4E, 0x0B, 0xF4, 0x2F,
0x21, 0xDC, 0x97, 0xBC, 0x03, 0x99, 0x49, 0x7B, 0x23, 0xE7, 0xDD, 0xA8, 0x4B, 0x26, 0xA3, 0xF4,
0xE8, 0x81, 0x13, 0x01, 0x7F, 0x5B, 0xD3, 0xEF, 0xDE, 0xF4, 0xDB, 0xE9, 0x44, 0x83, 0x9E, 0x64,
0x45, 0xBE, 0xCC, 0xBB, 0xCA, 0xF8, 0x77, 0x8A, 0xC2, 0xA7, 0x6B, 0x93, 0xC0, 0x95, 0x24, 0x13,
0x26, 0x5F, 0xA7, 0x60, 0xB8, 0x0D, 0x70, 0x6E, 0x05, 0x1C, 0x4C, 0xC9, 0x63, 0x42, 0x4A, 0x5F,
0x4B, 0x74, 0xF1, 0xC5, 0x88, 0xC3, 0x77, 0x86, 0x0B, 0x14, 0x59, 0x50, 0x42, 0xEB, 0xB7, 0xB1,
0x85, 0x3D, 0x70, 0x26, 0x40, 0x2F, 0xB8, 0xDD, 0x3B, 0x93, 0xDB, 0x30, 0x34, 0xE0, 0xFE, 0x4E,
0xCB, 0x6B, 0x65, 0x28, 0x76, 0x57, 0xA6, 0x45, 0x30, 0x4B, 0x2B, 0x31, 0x94, 0x23, 0x7E, 0xF9,
0x3D, 0x6B, 0x45, 0xF2, 0x4C, 0x0E, 0xA6, 0x97, 0x4E, 0xA8, 0x68, 0x95, 0x9F, 0x38, 0x94, 0xC2,
0x5F, 0xA6, 0x9A, 0x13, 0x72, 0xD1, 0xE1, 0xAA, 0xB3, 0x19, 0x27, 0xCE, 0x72, 0x87, 0xEB, 0x8E,
0x23, 0x82, 0xD2, 0x6C, 0x5E, 0x79, 0xCE, 0x1F, 0xF1, 0x06, 0xE6, 0x0E, 0xCF, 0xF1, 0x3F, 0x7E,
0x12, 0xC0, 0x55, 0xF2, 0x59, 0xB9, 0x43, 0x37, 0xAE, 0xF2, 0x79, 0x97, 0x4E, 0xA5, 0x5B, 0xCD,
0xD2, 0x3A, 0x27, 0xBF, 0xE0, 0x50, 0x33, 0xEC, 0x0A, 0x94, 0x05, 0x79, 0x63, 0xF9, 0x3B, 0x67,
0x1E, 0x70, 0xB4, 0x31, 0x3A, 0xDA, 0x78, 0xA2, 0xF1, 0x91, 0x3F, 0x7D, 0x26, 0x44, 0x21, 0x13,
0xAB, 0x35, 0x68, 0x1D, 0x27, 0x59, 0xE2, 0x29, 0x3F, 0x69, 0x28, 0xF3, 0x50, 0x6D, 0x82, 0xC3,
0x4A, 0x77, 0xD4, 0x2E, 0x83, 0x45, 0x3C, 0x14, 0xB1, 0x60, 0x0E, 0xC5, 0x93, 0xCB, 0xC7, 0xF7,
0xC2, 0xA1, 0x24, 0x26, 0x7B, 0x58, 0x50, 0xC4, 0x2A, 0xDB, 0x08, 0xE3, 0x29, 0x2D, 0x03, 0x33,
0x9F, 0xA3, 0x40, 0x4D, 0x4B, 0x03, 0x3F, 0xD1, 0x9E, 0xF0, 0xA0, 0x9F, 0xA1, 0xB2, 0x8D, 0x17,
0x85, 0x5E, 0xA5, 0x8D, 0x22, 0x11, 0x14, 0x0C, 0x91, 0x05, 0xA6, 0x30, 0xDD, 0x48, 0x4A, 0x2C,
0xF8, 0xBE, 0x9B, 0x65, 0x10, 0xBF, 0x3E, 0x05, 0x85, 0x53, 0x07, 0x39, 0xE1, 0x87, 0xDA, 0x0B,
0x5E, 0x78, 0x0A, 0xB5, 0x27, 0xF4, 0x0B, 0x5E, 0x78, 0x72, 0xE2, 0x6F, 0xA6, 0xEA, 0xF4, 0xD5,
0xFC, 0x09, 0xB8, 0xA2, 0xEC, 0x7D, 0x7F, 0x67, 0x72, 0x36, 0x81, 0xF9, 0xD6, 0xEF, 0x2F, 0x5C,
0x89, 0xCE, 0xE6, 0x20, 0x93, 0x17, 0x0B, 0xF9, 0x1F, 0xDD, 0x92, 0x4F, 0x6B, 0x13, 0x41, 0x18,
0xC6, 0x9F, 0xD9, 0x89, 0x59, 0xCC, 0xD0, 0x6C, 0x0F, 0x56, 0x0A, 0xD9, 0x46, 0x8F, 0x12, 0x92,
0xE6, 0xB2, 0x87, 0x55, 0x62, 0x32, 0xED, 0xC5, 0x83, 0x88, 0x21, 0xD4, 0x53, 0x91, 0x7A, 0xF0,
0x68, 0x21, 0x87, 0x1C, 0x44, 0x24, 0xAE, 0xFA, 0x01, 0xCC, 0xC9, 0x5E, 0x7B, 0xF0, 0x52, 0x11,
0x32, 0x0D, 0x11, 0x8A, 0x4B, 0xEC, 0x84, 0x1C, 0x03, 0xB2, 0x15, 0xBD, 0x8F, 0x9A, 0x0A, 0x92,
0x1E, 0x56, 0xED, 0x21, 0xFE, 0xE9, 0xAE, 0x13, 0xA4, 0x20, 0x88, 0x5F, 0xC0, 0x79, 0x5E, 0x18,
0xDE, 0x97, 0x99, 0x77, 0xE6, 0xF9, 0xCD, 0x80, 0xD3, 0x88, 0x7E, 0x0C, 0x54, 0xA9, 0xC1, 0x0A,
0xC6, 0x90, 0x6F, 0x07, 0xF9, 0xDB, 0x96, 0x65, 0xDE, 0x8F, 0x65, 0xC6, 0x63, 0xB3, 0xBE, 0xEF,
0xBF, 0x00, 0x70, 0x06, 0x96, 0x64, 0xA1, 0x59, 0xA2, 0x8F, 0xE8, 0xA0, 0xFF, 0xF6, 0x30, 0x8E,
0x3D, 0x0B, 0x54, 0x62, 0x13, 0x28, 0x1E, 0x15, 0x56, 0x5C, 0xB8, 0xA8, 0x4C, 0xE6, 0x9A, 0xB0,
0xA6, 0x6A, 0xF6, 0x32, 0x0A, 0xA7, 0x48, 0xBC, 0x74, 0x88, 0x10, 0x0E, 0xCF, 0xC6, 0x97, 0xF6,
0x3E, 0x07, 0x76, 0xC3, 0xBC, 0x4A, 0xFB, 0x3F, 0x54, 0xA6, 0xA5, 0x9B, 0xC5, 0xFD, 0x6B, 0x21,
0x1A, 0x28, 0x21, 0x0D, 0x06, 0xEA, 0x19, 0x52, 0x2F, 0xEC, 0xE2, 0x1C, 0xC0, 0x69, 0x4C, 0xF7,
0x94, 0x2A, 0x5D, 0xCC, 0xD2, 0x08, 0xB1, 0x0C, 0xEF, 0x36, 0x58, 0x96, 0x0E, 0xC6, 0x7A, 0x17,
0xE1, 0x66, 0x44, 0xFB, 0xEF, 0x64, 0x5E, 0xB0, 0x05, 0x5D, 0x09, 0x73, 0xB7, 0xF4, 0x51, 0x6C,
0xB9, 0xED, 0x35, 0x39, 0x38, 0x91, 0x44, 0xE6, 0x3E, 0x55, 0x8E, 0xA6, 0x33, 0x78, 0x6E, 0xAB,
0x72, 0x54, 0x89, 0xE6, 0x56, 0x80, 0x4A, 0x04, 0x24, 0xE9, 0x03, 0xA9, 0x1C, 0xDB, 0x24, 0xB2,
0x3E, 0x43, 0x3D, 0x91, 0x26, 0xDE, 0x8D, 0x34, 0x91, 0xAE, 0x65, 0xC8, 0xBA, 0xCD, 0x0C, 0xA9,
0xEA, 0xEE, 0x3C, 0x50, 0x6D, 0xFF, 0xEC, 0xA6, 0x45, 0xEA, 0x58, 0x9B, 0x29, 0xFC, 0x9B, 0x89,
0xB6, 0x6C, 0x7D, 0x1D, 0x22, 0xB4, 0x8E, 0x23, 0x49, 0x78, 0x71, 0xE2, 0x16, 0xB4, 0x99, 0x34,
0xF2, 0xE8, 0x1A, 0x01, 0xE3, 0x05, 0xDC, 0x8B, 0x72, 0x5B, 0x84, 0xB3, 0x88, 0x2E, 0x2B, 0x0D,
0x67, 0xC1, 0x78, 0x89, 0x5D, 0xA9, 0x0D, 0x6B, 0x6A, 0xC3, 0x71, 0xD0, 0xF6, 0xFE, 0x7B, 0xA4,
0xC9, 0xD1, 0xC9, 0xEB, 0x60, 0x64, 0x2D, 0xDB, 0x76, 0x98, 0x63, 0x95, 0xFD, 0xE4, 0x92, 0x31,
0xA2, 0x1B, 0x0F, 0xBD, 0xFA, 0xFE, 0x7A, 0xF9, 0x69, 0x1A, 0xFA, 0x7E, 0xE5, 0x67, 0xE4, 0x09,
0x8C, 0x09, 0xDD, 0x18, 0x48, 0x37, 0x60, 0x8E, 0xF1, 0x0A, 0x1D, 0xE9, 0x96, 0x77, 0x74, 0xF1,
0x6C, 0x92, 0x99, 0xFC, 0x83, 0x67, 0x79, 0x34, 0x20, 0x07, 0xE4, 0xB5, 0x54, 0xEE, 0x2C, 0x41,
0x46, 0xA5, 0x56, 0x39, 0x04, 0xEC, 0x4A, 0x7C, 0x85, 0x0C, 0x3C, 0x71, 0x27, 0x24, 0x2D, 0x9D,
0x4E, 0xD5, 0x19, 0xF5, 0xD6, 0xC5, 0x1F, 0xCF, 0x57, 0x3D, 0xF1, 0xBB, 0x2E, 0xE6, 0x85, 0xE8,
0x48, 0x1F, 0xBB, 0xBC, 0x23, 0x85, 0x10, 0xA5, 0x6A, 0xC2, 0x9F, 0x8E, 0xE7, 0x35, 0xD5, 0x2B,
0xAE, 0xED, 0x8F, 0xA1, 0x16, 0xA5, 0xC3, 0xC4, 0x8C, 0x71, 0x40, 0xB9, 0x8F, 0x60, 0x9A, 0x54,
0x13, 0xE0, 0xB5, 0xBF, 0xBA, 0xD5, 0x54, 0x71, 0xF5, 0x32, 0xBE, 0x48, 0x5B, 0x98, 0x79, 0xFD,
0x19, 0xDE, 0x7F, 0x0F, 0xB7, 0x5B, 0x79, 0x8D, 0x59, 0x9B, 0x60, 0xA3, 0xF3, 0x37, 0x1D, 0x2C,
0x22, 0x19, 0x6A, 0xF4, 0xF6, 0x85, 0x9D, 0xD3, 0x3C, 0x41, 0x64, 0xF3, 0xF1, 0x9B, 0xBC, 0x21,
0x75, 0xD8, 0xF8, 0x46, 0xBC, 0x5F, 0x85, 0x56, 0x31, 0x8C, 0xDC, 0xD6, 0x11, 0x7D, 0xE4, 0xB7,
0x44, 0x23, 0x0C, 0xF6, 0xAB, 0x10, 0x82, 0x00, 0x96, 0x97, 0x29, 0x5C, 0x25, 0xD2, 0x6E, 0x8A,
0x14, 0x6B, 0x84, 0x3C, 0x52, 0x3A, 0x24, 0x2E, 0x04, 0x24, 0x02, 0x72, 0x07, 0x15, 0x29, 0xEC,
0x22, 0x95, 0x5C, 0x5C, 0x8A, 0x2B, 0xAE, 0xD8, 0xBD, 0xA5, 0xAC, 0x42, 0x40, 0x1A, 0x9D, 0x61,
0xBB, 0xB6, 0x0B, 0x17, 0xCA, 0x5D, 0xA1, 0x2D, 0x2E, 0x00, 0x9D, 0xDC, 0xDD, 0xD2, 0x50, 0xE1,
0x42, 0x40, 0x4C, 0xDB, 0xA9, 0x12, 0x04, 0x47, 0x21, 0x16, 0x14, 0xDC, 0x05, 0xB9, 0x8F, 0x88,
0xB6, 0xF7, 0x24, 0xEE, 0xFE, 0xBC, 0xE1, 0x9E, 0x94, 0xC0, 0x06, 0x12, 0x82, 0x7F, 0xC8, 0x21,
0xF9, 0xE7, 0xCF, 0xBC, 0x79, 0x33, 0x9F, 0x00, 0x10, 0x4C, 0xE1, 0x1F, 0xE6, 0x8E, 0x01, 0x3A,
0x80, 0x2A, 0x80, 0xD0, 0x59, 0x5E, 0xCC, 0xE3, 0x69, 0xA8, 0x72, 0x55, 0x84, 0xE8, 0xAA, 0x1C,
0xD3, 0xC1, 0x92, 0x6B, 0x6D, 0xEE, 0x0C, 0x96, 0x40, 0x0D, 0x21, 0x9A, 0xCB, 0xC2, 0x6D, 0x28,
0x5B, 0xC0, 0x6F, 0x41, 0xDD, 0x48, 0x5C, 0x5B, 0xFA, 0x76, 0xA6, 0xEB, 0x05, 0xFF, 0x5E, 0x4B,
0x7D, 0x76, 0xE3, 0xA2, 0xB9, 0x9F, 0x67, 0xAB, 0xA3, 0xCE, 0xB9, 0x9E, 0x7F, 0xB9, 0xE5, 0xFE,
0xED, 0x46, 0xD2, 0xBF, 0x9F, 0xEB, 0xD5, 0x91, 0xAA, 0x7B, 0x18, 0xB6, 0xE0, 0xD9, 0x23, 0xD0,
0xDE, 0xEA, 0x08, 0xE7, 0x7A, 0x38, 0x75, 0x0A, 0xCD, 0x11, 0xD8, 0x24, 0xB6, 0xA6, 0x9B, 0x9C,
0x0D, 0x00, 0x9D, 0xCA, 0x0A, 0xE2, 0x53, 0xD6, 0x1A, 0x76, 0x94, 0xBD, 0x97, 0xD6, 0x6E, 0x19,
0xA2, 0xAF, 0xA1, 0xC5, 0x2B, 0x83, 0x9D, 0x10, 0x7A, 0x1F, 0xB0, 0x47, 0xA9, 0x4F, 0x17, 0x00,
0xDF, 0x5A, 0xCD, 0x33, 0xC1, 0xD7, 0xCF, 0x83, 0xDF, 0x6A, 0x3B, 0xD5, 0xEF, 0x2C, 0xCD, 0x55,
0x6B, 0x31, 0xB6, 0xFF, 0x79, 0x2B, 0x87, 0x63, 0x4B, 0x3E, 0x4B, 0x75, 0x72, 0xC6, 0x29, 0x1B,
0x08, 0xDC, 0xF9, 0x25, 0xB6, 0x13, 0x77, 0xBC, 0x99, 0x50, 0x73, 0xD6, 0x97, 0x45, 0x93, 0x4B,
0x03, 0x0F, 0x64, 0xAA, 0xB2, 0x76, 0x1A, 0xDB, 0x66, 0xED, 0xD7, 0xC4, 0x4C, 0x29, 0xA6, 0x0A,
0x5C, 0xB9, 0xB6, 0xF8, 0xE7, 0xE4, 0x91, 0x7D, 0x68, 0x8D, 0xFD, 0xA9, 0x7D, 0xB3, 0xAE, 0xB1,
0x87, 0x70, 0x82, 0x3E, 0xA2, 0x6A, 0x2E, 0x76, 0x44, 0xD4, 0x14, 0xAE, 0x08, 0x25, 0xC2, 0x97,
0x67, 0x2D, 0x79, 0x7B, 0x5E, 0x44, 0x48, 0x81, 0x55, 0x31, 0x69, 0x44, 0x34, 0xC1, 0xE5, 0x3E,
0xE2, 0x24, 0xC4, 0x0C, 0x46, 0xD5, 0x2A, 0xD7, 0xDB, 0x1A, 0xA1, 0x09, 0xBF, 0xF5, 0xE4, 0xE0,
0x71, 0xD7, 0xDA, 0x5A, 0x6B, 0xAA, 0x17, 0x42, 0x86, 0x6F, 0x5F, 0x38, 0x78, 0xF2, 0x77, 0xED,
0xEE, 0x23, 0xA4, 0x61, 0xA3, 0x8D, 0xCA, 0x83, 0x5C, 0x23, 0xA6, 0xC7, 0x3B, 0x88, 0x8F, 0x99,
0x34, 0x5B, 0xD3, 0x7D, 0xCF, 0x10, 0xDB, 0x20, 0xE1, 0xD3, 0x8A, 0x37, 0xFE, 0x0D, 0x1A, 0xAE,
0x56, 0x69, 0xD5, 0x7F, 0x3B, 0xF4, 0x1E, 0xDA, 0xBB, 0xB6, 0x0E, 0xDE, 0x8E, 0xA7, 0xD8, 0x26,
0xFE, 0x3E, 0x5F, 0x7D, 0xED, 0x26, 0xE5, 0xCD, 0xFA, 0x5B, 0x39, 0xDC, 0x59, 0x03, 0x9E, 0xFD,
0x9C, 0x60, 0x58, 0x3A, 0x6A, 0x82, 0x14, 0x9A, 0x21, 0xD2, 0xC3, 0xFC, 0xDA, 0xCF, 0x11, 0x76,
0x67, 0x46, 0x7D, 0xF4, 0xC9, 0x2D, 0x64, 0x19, 0xBE, 0x58, 0xF1, 0x53, 0x6D, 0x8B, 0x05, 0x3C,
0x9E, 0xB8, 0x53, 0xA6, 0xCF, 0x9B, 0x98, 0x0E, 0xFC, 0x7D, 0x26, 0xB7, 0x6B, 0x74, 0xE2, 0x58,
0xF4, 0x93, 0x8E, 0x51, 0x7F, 0xD9, 0xDA, 0x47, 0x67, 0x58, 0x35, 0x56, 0x57, 0xDD, 0xD2, 0x6F,
0xA3, 0x56, 0x77, 0xF3, 0x18, 0xC6, 0xB4, 0xF3, 0x5E, 0xE8, 0xAF, 0xB6, 0xFD, 0x4B, 0x7F, 0xF4,
0x2F, 0x16, 0x8F, 0xDE, 0xC8, 0xD7, 0x7A, 0xC6, 0x8C, 0x19, 0xEC, 0xEB, 0x47, 0x47, 0x76, 0xE3,
0x5F, 0x1F, 0x7E, 0x96, 0x9E, 0x37, 0x2F, 0x17, 0x5E, 0xBF, 0xF5, 0x6B, 0xFC, 0xD3, 0xFD, 0x07,
0x71, 0x1A, 0x43, 0x33, 0x6E, 0xD7, 0xA8, 0x92, 0x61, 0x57, 0x18, 0xCF, 0x12, 0x42, 0x53, 0x6A,
0xE3, 0x54, 0xDA, 0x90, 0x41, 0xE6, 0x4C, 0xA8, 0xCD, 0x9A, 0x8C, 0xE8, 0x7F, 0x8C, 0xB3, 0x1C,
0xE8, 0x70, 0xF4, 0xCD, 0xFA, 0x56, 0x65, 0x86, 0x76, 0xA3, 0xC9, 0x3A, 0x53, 0xC3, 0xC4, 0x33,
0xE4, 0x5A, 0x54, 0xE7, 0xFD, 0x08, 0xC3, 0x69, 0xE5, 0x3D, 0x18, 0x32, 0xBA, 0xF8, 0xA2, 0xC1,
0xC0, 0xCB, 0x51, 0x75, 0xC8, 0x92, 0x0C, 0xFA, 0x52, 0x89, 0x48, 0x54, 0x0D, 0xAF, 0x88, 0xE9,
0x56, 0xBC, 0x35, 0x45, 0x77, 0xB2, 0x8D, 0x93, 0x83, 0xDC, 0x21, 0x1B, 0xEB, 0xB9, 0x32, 0x9C,
0x50, 0x2F, 0x75, 0xF1, 0xBC, 0x30, 0x3E, 0x6A, 0xAA, 0xCB, 0xD9, 0x5D, 0x4E, 0x86, 0xB6, 0x76,
0x3E, 0x58, 0x26, 0xE8, 0x2C, 0x18, 0x8B, 0x21, 0x71, 0xEE, 0xCF, 0x2B, 0xB4, 0xCB, 0x39, 0x9C,
0xAA, 0x66, 0x2C, 0x5D, 0xCB, 0x4A, 0x84, 0x97, 0xBA, 0x65, 0x1B, 0x01, 0xD6, 0x1C, 0xE3, 0x94,
0x3A, 0xF1, 0xD2, 0x09, 0xDA, 0x9C, 0xB6, 0xD6, 0x87, 0xF3, 0x30, 0x27, 0xBD, 0xED, 0x87, 0x63,
0xBB, 0x89, 0x01, 0xD5, 0x32, 0xE3, 0xC7, 0x15, 0xDA, 0x5C, 0x69, 0xCD, 0xE5, 0xC7, 0xAA, 0xF4,
0x52, 0x2F, 0x6F, 0x93, 0x63, 0x43, 0x6B, 0x0F, 0xAD, 0x6D, 0xAA, 0x83, 0xB0, 0x41, 0xFF, 0x04,
0xF8, 0xD2, 0x40, 0x4F, 0x80, 0x29, 0x3D, 0x4C, 0x10, 0x57, 0xC6, 0xBF, 0xB5, 0xCB, 0x9C, 0x73,
0xFD, 0x14, 0x41, 0x05, 0x6F, 0x3F, 0xC1, 0xF7, 0x2A, 0x3C, 0x9D, 0xD0, 0x1C, 0x2F, 0x08, 0x50,
0x0C, 0x46, 0x02, 0x3B, 0x8B, 0xA1, 0x3C, 0xBA, 0xA2, 0xC5, 0x43, 0x23, 0x7E, 0xC3, 0x48, 0x71,
0x39, 0xA5, 0x84, 0xE9, 0x36, 0x52, 0x15, 0x8D, 0x64, 0xFB, 0x71, 0xE0, 0xE5, 0x6E, 0x39, 0x34,
0x5E, 0xAA, 0x8A, 0xE3, 0xDA, 0x4F, 0xFC, 0xBB, 0x65, 0xA4, 0x13, 0xBD, 0x98, 0x47, 0x1A, 0xEB,
0x5E, 0x1E, 0x06, 0xA7, 0x6B, 0x3F, 0xDD, 0xE9, 0x12, 0xA6, 0xC3, 0xAA, 0x7B, 0x0C, 0x3D, 0x16,
0x7B, 0xBA, 0x59, 0xB4, 0xDD, 0xC8, 0x0B, 0x8D, 0x8C, 0x1A, 0x19, 0x36, 0xB2, 0x7F, 0xE2, 0xD4,
0x38, 0xC5, 0x7A, 0x85, 0xA8, 0xDD, 0x34, 0x8F, 0xDC, 0x80, 0x69, 0xBD, 0x70, 0x01, 0xDE, 0x2D,
0xE0, 0xAB, 0x14, 0x71, 0x0E, 0xAF, 0x94, 0x62, 0x7B, 0x6F, 0x0F, 0xFD, 0x38, 0x8F, 0x77, 0xB6,
0xDB, 0x7B, 0x81, 0xD6, 0xEA, 0xA3, 0x37, 0x92, 0xED, 0xC6, 0xB4, 0xB4, 0x3A, 0xFA, 0xB8, 0x06,
0x7F, 0x0A, 0x77, 0xCA, 0x54, 0x6C, 0x80, 0x5E, 0x20, 0xF3, 0xCA, 0xD3, 0x0F, 0x7E, 0xF9, 0x27,
0x22, 0x46, 0x3A, 0x47, 0xC8, 0xB0, 0xFD, 0x83, 0xC7, 0x5B, 0x93, 0x95, 0x83, 0xF1, 0x7B, 0x1D,
0x4C, 0xB0, 0x37, 0xCE, 0x5D, 0x5B, 0x49, 0xEA, 0xA4, 0x97, 0xF0, 0x6D, 0xD3, 0x56, 0x9E, 0xAA,
0xC0, 0x48, 0xA0, 0xFA, 0x5C, 0x18, 0xA0, 0x26, 0xA3, 0x5F, 0xE9, 0x7C, 0xC4, 0x9C, 0x8E, 0xB0,
0xC0, 0x11, 0x72, 0xF4, 0x9B, 0xF1, 0xBB, 0xA5, 0x3E, 0xC6, 0xD3, 0x3E, 0x7E, 0xBF, 0x4B, 0x3D,
0x8A, 0x38, 0xF8, 0x4D, 0xA4, 0xD3, 0x51, 0xE4, 0x55, 0xA3, 0xC8, 0xB1, 0x4F, 0x48, 0x28, 0x3B,
0x69, 0x6C, 0xC9, 0xF0, 0xE9, 0xA7, 0x40, 0x1D, 0x70, 0xA1, 0x05, 0x3A, 0x1C, 0x32, 0x27, 0x2C,
0x3F, 0x4C, 0xFA, 0x5C, 0xC6, 0xD6, 0x57, 0xBF, 0x58, 0x59, 0x52, 0x85, 0xC6, 0xEB, 0x07, 0x77,
0x6E, 0x8B, 0xAE, 0x13, 0x55, 0x04, 0x50, 0x65, 0x87, 0x6D, 0x96, 0x70, 0x55, 0x04, 0x2B, 0x9B,
0x9C, 0x60, 0xD6, 0xB5, 0xAC, 0x99, 0x19, 0x5E, 0x73, 0xCD, 0xB3, 0xEC, 0xEA, 0xCB, 0x6C, 0x78,
0xD7, 0xB6, 0x66, 0x1B, 0xCE, 0x4C, 0x8A, 0x9F, 0xFD, 0x76, 0x4A, 0x5A, 0x7D, 0x5A, 0x36, 0x88,
0x4B, 0x6C, 0x41, 0xE2, 0x24, 0xF6, 0xA8, 0x72, 0xED, 0xBC, 0x33, 0x48, 0x43, 0x1C, 0xCE, 0x92,
0xC0, 0x5A, 0x67, 0xDA, 0x7B, 0x49, 0xE7, 0x2C, 0x46, 0x95, 0xAA, 0xB2, 0xC5, 0x94, 0xF5, 0xB8,
0x08, 0x93, 0xAF, 0xC8, 0xBB, 0x16, 0x39, 0xDB, 0xA8, 0xA8, 0x54, 0xEA, 0x1A, 0xEE, 0x0C, 0x65,
0x0F, 0x7E, 0x59, 0x8A, 0xFD, 0xE4, 0xB4, 0xB0, 0xA8, 0xD7, 0x98, 0x72, 0x92, 0xB3, 0x68, 0xF1,
0xDA, 0x23, 0xD1, 0x19, 0x07, 0xA9, 0x5A, 0xAD, 0x5C, 0x7D, 0x90, 0x64, 0x3E, 0x79, 0xCF, 0x66,
0x92, 0x66, 0xE8, 0xD0, 0x87, 0x6F, 0xA8, 0x24, 0x94, 0x3E, 0xF0, 0xD3, 0x60, 0x82, 0x67, 0x47,
0x30, 0x4B, 0x18, 0x5E, 0x85, 0x6E, 0xF2, 0xDD, 0x26, 0x34, 0xC9, 0x6E, 0xC3, 0x5E, 0xA9, 0x29,
0x25, 0x1F, 0xC6, 0xD4, 0x9C, 0x31, 0x1F, 0xBB, 0x42, 0x62, 0xFD, 0x9B, 0xCB, 0xAF, 0x5C, 0xFF,
0x6A, 0x77, 0x6F, 0x2D, 0xFA, 0xAB, 0xF6, 0x82, 0x58, 0x5D, 0xFF, 0x78, 0xF1, 0xB8, 0x1C, 0xA7,
0x3F, 0xB6, 0xB3, 0xE4, 0xDB, 0x2D, 0x1F, 0x4A, 0x5D, 0xCF, 0x59, 0x99, 0xF6, 0xDE, 0xB3, 0x5A,
0x96, 0x6A, 0x6B, 0x34, 0x6E, 0x63, 0xC2, 0xED, 0xFF, 0x7F, 0x89, 0x65, 0x27, 0xA9, 0x31, 0x10,
0x1F, 0xBE, 0x7F, 0xE7, 0x36, 0x55, 0x79, 0xB1, 0x80, 0xEF, 0xD4, 0x88, 0x4B, 0xE1, 0x0B, 0xFD,
0x64, 0x27, 0x61, 0x3F, 0x6B, 0x36, 0xC4, 0x06, 0xF1, 0x2E, 0xDC, 0x62, 0xDE, 0x2A, 0x8A, 0x97,
0x10, 0x8D, 0x13, 0x65, 0x13, 0x8F, 0xC0, 0xFF, 0xE1, 0x93, 0x6D, 0x2C, 0x30, 0x3B, 0xC7, 0xF0,
0xA6, 0x78, 0xF1, 0x17, 0x85, 0x5B, 0x44, 0x88, 0x54, 0xA1, 0xF2, 0x88, 0xF0, 0x17, 0x41, 0x12,
0x79, 0xA5, 0x22, 0x65, 0xE2, 0xFF, 0x06, 0x44, 0xEA, 0xE8, 0x65, 0x41, 0x60, 0x14, 0x3E, 0x15,
0x83, 0xC1, 0xF2, 0x15, 0xA2, 0x64, 0x6D, 0x7A, 0x6A, 0x6F, 0x73, 0xCB, 0x48, 0x39, 0xAD, 0x89,
0x38, 0x8F, 0xF0, 0x47, 0x3F, 0x3C, 0x87, 0x68, 0x5A, 0x9F, 0x47, 0xF7, 0xE3, 0xFD, 0x8C, 0x3F,
0x07, 0xC4, 0x79, 0x8F, 0x33, 0xDC, 0x23, 0xB1, 0xF5, 0x8A, 0x80, 0xE9, 0xCE, 0x76, 0xA5, 0xA5,
0x3D, 0x85, 0xA3, 0xD9, 0xC6, 0xF4, 0x37, 0x6E, 0x56, 0x36, 0xB8, 0xF3, 0x32, 0x0F, 0xE3, 0x77,
0xEF, 0x94, 0x41, 0x6A, 0xBA, 0x8B, 0xA5, 0x96, 0x4D, 0x9D, 0xBB, 0x06, 0xB7, 0xAC, 0xA8, 0xCF,
0x4E, 0x71, 0x98, 0x6A, 0x74, 0xA4, 0x70, 0x0E, 0xA5, 0x6A, 0x9E, 0xDD, 0x78, 0x2C, 0x9B, 0xB1,
0x35, 0xCC, 0x6A, 0x9E, 0x61, 0xE0, 0x93, 0x53, 0x19, 0x16, 0x78, 0x61, 0xCF, 0xED, 0xFB, 0xC5,
0xCA, 0x2D, 0xF6, 0xFA, 0xF1, 0x6C, 0x43, 0x60, 0x62, 0xB5, 0x49, 0xA3, 0x5E, 0x39, 0x48, 0x4E,
0x34, 0xB9, 0x00, 0xCF, 0x11, 0xB4, 0x9B, 0xCC, 0xFC, 0xE3, 0x02, 0xFC, 0xA9, 0x61, 0x3F, 0x0F,
0x2A, 0xF5, 0xE8, 0xE6, 0xAB, 0x8E, 0xB9, 0xFF, 0xA9, 0x99, 0xF4, 0x56, 0xC3, 0xB0, 0xF5, 0xA2,
0x7E, 0x55, 0xDD, 0xBC, 0xF4, 0x30, 0xBF, 0x5F, 0x7C, 0x60, 0xCE, 0x9C, 0x79, 0x4E, 0x10, 0x11,
0xAA, 0x08, 0xCB, 0x9B, 0xCE, 0xE2, 0x49, 0x98, 0x83, 0x79, 0xAA, 0x4B, 0x36, 0xF2, 0x89, 0x73,
0x0A, 0xDE, 0xCF, 0xE4, 0x1C, 0xCA, 0xFF, 0x45, 0x99, 0x9D, 0xAE, 0x32, 0xD4, 0xF4, 0x27, 0xC3,
0x4E, 0x86, 0x6A, 0xF7, 0x2A, 0xF7, 0xAB, 0x74, 0xEF, 0x8E, 0x69, 0x1E, 0x86, 0x19, 0xA2, 0xE6,
0xEC, 0x67, 0x4E, 0xCD, 0x40, 0xF8, 0x6A, 0x3E, 0x97, 0x46, 0x70, 0x8D, 0x3D, 0x3F, 0x78, 0xE7,
0xAD, 0x92, 0x25, 0x41, 0x7F, 0x27, 0xB2, 0x6C, 0x26, 0x77, 0x7D, 0x28, 0xB6, 0xE2, 0x03, 0xD3,
0x9D, 0x9D, 0x50, 0xEC, 0xCB, 0xCD, 0xCD, 0x7F, 0x03, 0x5B, 0xB5, 0x6A, 0xD5, 0xFF, 0xFF, 0xFF,
0x19, 0x18, 0x18, 0x00, 0x63, 0x60, 0x60, 0x66, 0x00, 0x01, 0x7B, 0x10, 0xC1, 0xFC, 0x1F, 0xCC,
0xFC, 0x0F, 0x66, 0x82, 0x48, 0x5B, 0x06, 0x7D, 0x20, 0xF3, 0x01, 0x88, 0xB4, 0x3F, 0x76, 0xA1,
0x1E, 0x24, 0x7A, 0xF0, 0x3F, 0x50, 0xC1, 0x3F, 0xF6, 0xFF, 0x40, 0xE6, 0x03, 0xFB, 0xFF, 0xFA,
0xFF, 0xFF, 0x31, 0xFF, 0xFF, 0x67, 0xFF, 0xFF, 0x03, 0x18, 0x35, 0xFD, 0x07, 0x49, 0xC6, 0xFF,
0xFF, 0x00, 0x24, 0x41, 0xFA, 0xED, 0xBF, 0x02, 0x99, 0x0C, 0xF6, 0x8E, 0x60, 0xA3, 0xD8, 0x81,
0x4C, 0x06, 0xBB, 0xFD, 0x60, 0x1B, 0x3E, 0xC0, 0xAD, 0x64, 0x50, 0x00, 0x62, 0x00,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
static const EpdGlyph notosans_12_regularGlyphs[] = {
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 4, 19, 7, 1, 18, 19, 0 }, // !
{ 8, 7, 10, 1, 18, 14, 19 }, // "
{ 16, 18, 16, 0, 18, 72, 33 }, // #
{ 12, 21, 14, 1, 19, 63, 105 }, // $
{ 19, 20, 21, 1, 19, 95, 168 }, // %
{ 18, 20, 18, 1, 19, 90, 263 }, // &
{ 3, 7, 6, 1, 18, 6, 353 }, // '
{ 6, 22, 8, 1, 18, 33, 359 }, // (
{ 7, 22, 8, 0, 18, 39, 392 }, // )
{ 12, 12, 14, 1, 19, 36, 431 }, // *
{ 12, 13, 14, 1, 15, 39, 467 }, // +
{ 4, 7, 7, 1, 3, 7, 506 }, // ,
{ 7, 3, 8, 1, 8, 6, 513 }, // -
{ 4, 5, 7, 1, 4, 5, 519 }, // .
{ 10, 18, 9, 0, 18, 45, 524 }, // /
{ 13, 20, 14, 1, 19, 65, 569 }, // 0
{ 7, 18, 14, 2, 18, 32, 634 }, // 1
{ 12, 19, 14, 1, 19, 57, 666 }, // 2
{ 12, 20, 14, 1, 19, 60, 723 }, // 3
{ 14, 18, 14, 0, 18, 63, 783 }, // 4
{ 12, 19, 14, 1, 18, 57, 846 }, // 5
{ 13, 20, 14, 1, 19, 65, 903 }, // 6
{ 13, 18, 14, 1, 18, 59, 968 }, // 7
{ 13, 20, 14, 1, 19, 65, 1027 }, // 8
{ 12, 20, 14, 1, 19, 60, 1092 }, // 9
{ 4, 15, 7, 1, 14, 15, 1152 }, // :
{ 5, 18, 7, 0, 14, 23, 1167 }, // ;
{ 13, 14, 14, 1, 16, 46, 1190 }, // <
{ 12, 8, 14, 1, 13, 24, 1236 }, // =
{ 13, 14, 14, 1, 16, 46, 1260 }, // >
{ 11, 20, 11, 0, 19, 55, 1306 }, // ?
{ 21, 21, 22, 1, 18, 111, 1361 }, // @
{ 16, 18, 16, 0, 18, 72, 1472 }, // A
{ 13, 18, 16, 2, 18, 59, 1544 }, // B
{ 15, 20, 16, 1, 19, 75, 1603 }, // C
{ 15, 18, 18, 2, 18, 68, 1678 }, // D
{ 11, 18, 14, 2, 18, 50, 1746 }, // E
{ 11, 18, 13, 2, 18, 50, 1796 }, // F
{ 16, 20, 18, 1, 19, 80, 1846 }, // G
{ 15, 18, 19, 2, 18, 68, 1926 }, // H
{ 7, 18, 8, 1, 18, 32, 1994 }, // I
{ 7, 23, 7, -2, 18, 41, 2026 }, // J
{ 14, 18, 15, 2, 18, 63, 2067 }, // K
{ 11, 18, 13, 2, 18, 50, 2130 }, // L
{ 19, 18, 23, 2, 18, 86, 2180 }, // M
{ 15, 18, 19, 2, 18, 68, 2266 }, // N
{ 17, 20, 20, 1, 19, 85, 2334 }, // O
{ 12, 18, 15, 2, 18, 54, 2419 }, // P
{ 17, 24, 20, 1, 19, 102, 2473 }, // Q
{ 14, 18, 16, 2, 18, 63, 2575 }, // R
{ 12, 20, 14, 1, 19, 60, 2638 }, // S
{ 14, 18, 14, 0, 18, 63, 2698 }, // T
{ 14, 19, 18, 2, 18, 67, 2761 }, // U
{ 15, 18, 15, 0, 18, 68, 2828 }, // V
{ 23, 18, 23, 0, 18, 104, 2896 }, // W
{ 15, 18, 15, 0, 18, 68, 3000 }, // X
{ 15, 18, 14, 0, 18, 68, 3068 }, // Y
{ 14, 18, 14, 0, 18, 63, 3136 }, // Z
{ 6, 22, 8, 2, 18, 33, 3199 }, // [
{ 10, 18, 9, 0, 18, 45, 3232 }, // <backslash>
{ 7, 22, 8, 0, 18, 39, 3277 }, // ]
{ 14, 12, 14, 0, 18, 42, 3316 }, // ^
{ 13, 2, 11, -1, -2, 7, 3358 }, // _
{ 6, 5, 7, 1, 20, 8, 3365 }, // `
{ 11, 15, 14, 1, 14, 42, 3373 }, // a
{ 12, 20, 15, 2, 19, 60, 3415 }, // b
{ 11, 15, 12, 1, 14, 42, 3475 }, // c
{ 13, 20, 15, 1, 19, 65, 3517 }, // d
{ 12, 15, 14, 1, 14, 45, 3582 }, // e
{ 10, 20, 9, 0, 20, 50, 3627 }, // f
{ 13, 20, 15, 1, 14, 65, 3677 }, // g
{ 12, 19, 15, 2, 19, 57, 3742 }, // h
{ 4, 19, 6, 1, 19, 19, 3799 }, // i
{ 7, 25, 6, -2, 19, 44, 3818 }, // j
{ 12, 19, 13, 2, 19, 57, 3862 }, // k
{ 3, 19, 6, 2, 19, 15, 3919 }, // l
{ 20, 14, 23, 2, 14, 70, 3934 }, // m
{ 12, 14, 15, 2, 14, 42, 4004 }, // n
{ 13, 15, 15, 1, 14, 49, 4046 }, // o
{ 12, 20, 15, 2, 14, 60, 4095 }, // p
{ 13, 20, 15, 1, 14, 65, 4155 }, // q
{ 8, 14, 10, 2, 14, 28, 4220 }, // r
{ 10, 15, 12, 1, 14, 38, 4248 }, // s
{ 9, 18, 9, 0, 17, 41, 4286 }, // t
{ 13, 15, 15, 1, 14, 49, 4327 }, // u
{ 13, 14, 13, 0, 14, 46, 4376 }, // v
{ 20, 14, 20, 0, 14, 70, 4422 }, // w
{ 13, 14, 13, 0, 14, 46, 4492 }, // x
{ 13, 20, 13, 0, 14, 65, 4538 }, // y
{ 11, 14, 12, 0, 14, 39, 4603 }, // z
{ 9, 22, 10, 0, 18, 50, 4642 }, // {
{ 3, 26, 14, 5, 19, 20, 4692 }, // |
{ 9, 22, 10, 0, 18, 50, 4712 }, // }
{ 13, 4, 14, 1, 11, 13, 4762 }, // ~
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
{ 0, 0, 7, 0, 0, 0, 0 }, //  
{ 4, 19, 7, 1, 14, 19, 0 }, // ¡
{ 11, 20, 14, 2, 19, 55, 19 }, // ¢
{ 14, 19, 14, 0, 19, 67, 74 }, // £
{ 12, 12, 14, 1, 15, 36, 141 }, // ¤
{ 14, 18, 14, 0, 18, 63, 177 }, // ¥
{ 3, 26, 14, 5, 19, 20, 240 }, // ¦
{ 11, 21, 13, 1, 20, 58, 260 }, // §
{ 8, 4, 15, 3, 19, 8, 318 }, // ¨
{ 19, 20, 21, 1, 19, 95, 326 }, // ©
{ 8, 10, 9, 0, 19, 20, 421 }, // ª
{ 11, 11, 13, 1, 12, 31, 441 }, // «
{ 12, 7, 14, 1, 10, 21, 472 }, // ¬
{ 7, 3, 8, 1, 8, 6, 493 }, // ­
{ 19, 20, 21, 1, 19, 95, 499 }, // ®
{ 14, 2, 13, -1, 21, 7, 594 }, // ¯
{ 9, 9, 11, 1, 19, 21, 601 }, // °
{ 13, 15, 14, 1, 15, 49, 622 }, // ±
{ 8, 12, 9, 0, 22, 24, 671 }, // ²
{ 9, 12, 9, 0, 22, 27, 695 }, // ³
{ 6, 5, 7, 1, 20, 8, 722 }, // ´
{ 12, 20, 16, 2, 14, 60, 730 }, // µ
{ 13, 23, 16, 1, 19, 75, 790 }, // ¶
{ 4, 5, 7, 1, 11, 5, 865 }, // ·
{ 6, 6, 6, 0, 0, 9, 870 }, // ¸
{ 6, 12, 9, 0, 22, 18, 879 }, // ¹
{ 9, 10, 9, 0, 19, 23, 897 }, // º
{ 12, 11, 13, 0, 12, 33, 920 }, // »
{ 19, 18, 19, 0, 18, 86, 953 }, // ¼
{ 19, 18, 19, 0, 18, 86, 1039 }, // ½
{ 20, 19, 20, 0, 19, 95, 1125 }, // ¾
{ 11, 19, 11, 0, 14, 53, 1220 }, // ¿
{ 16, 24, 16, 0, 24, 96, 1273 }, // À
{ 16, 24, 16, 0, 24, 96, 1369 }, // Á
{ 16, 24, 16, 0, 24, 96, 1465 }, // Â
{ 16, 23, 16, 0, 23, 92, 1561 }, // Ã
{ 16, 23, 16, 0, 23, 92, 1653 }, // Ä
{ 16, 23, 16, 0, 23, 92, 1745 }, // Å
{ 22, 18, 22, -1, 18, 99, 1837 }, // Æ
{ 15, 25, 16, 1, 19, 94, 1936 }, // Ç
{ 11, 24, 14, 2, 24, 66, 2030 }, // È
{ 11, 24, 14, 2, 24, 66, 2096 }, // É
{ 11, 24, 14, 2, 24, 66, 2162 }, // Ê
{ 11, 23, 14, 2, 23, 64, 2228 }, // Ë
{ 7, 24, 8, 1, 24, 42, 2292 }, // Ì
{ 7, 24, 8, 1, 24, 42, 2334 }, // Í
{ 9, 24, 8, 0, 24, 54, 2376 }, // Î
{ 8, 23, 8, 0, 23, 46, 2430 }, // Ï
{ 17, 18, 18, 0, 18, 77, 2476 }, // Ð
{ 15, 23, 19, 2, 23, 87, 2553 }, // Ñ
{ 17, 25, 20, 1, 24, 107, 2640 }, // Ò
{ 17, 25, 20, 1, 24, 107, 2747 }, // Ó
{ 17, 25, 20, 1, 24, 107, 2854 }, // Ô
{ 17, 24, 20, 1, 23, 102, 2961 }, // Õ
{ 17, 24, 20, 1, 23, 102, 3063 }, // Ö
{ 12, 12, 14, 1, 15, 36, 3165 }, // ×
{ 17, 20, 20, 1, 19, 85, 3201 }, // Ø
{ 14, 25, 18, 2, 24, 88, 3286 }, // Ù
{ 14, 25, 18, 2, 24, 88, 3374 }, // Ú
{ 14, 25, 18, 2, 24, 88, 3462 }, // Û
{ 14, 24, 18, 2, 23, 84, 3550 }, // Ü
{ 15, 24, 14, 0, 24, 90, 3634 }, // Ý
{ 12, 18, 15, 2, 18, 54, 3724 }, // Þ
{ 13, 21, 16, 2, 20, 69, 3778 }, // ß
{ 11, 21, 14, 1, 20, 58, 3847 }, // à
{ 11, 21, 14, 1, 20, 58, 3905 }, // á
{ 11, 21, 14, 1, 20, 58, 3963 }, // â
{ 11, 20, 14, 1, 19, 55, 4021 }, // ã
{ 11, 20, 14, 1, 19, 55, 4076 }, // ä
{ 11, 22, 14, 1, 21, 61, 4131 }, // å
{ 20, 15, 22, 1, 14, 75, 4192 }, // æ
{ 11, 20, 12, 1, 14, 55, 4267 }, // ç
{ 12, 21, 14, 1, 20, 63, 4322 }, // è
{ 12, 21, 14, 1, 20, 63, 4385 }, // é
{ 12, 21, 14, 1, 20, 63, 4448 }, // ê
{ 12, 20, 14, 1, 19, 60, 4511 }, // ë
{ 6, 20, 6, -1, 20, 30, 4571 }, // ì
{ 6, 20, 6, 1, 20, 30, 4601 }, // í
{ 9, 20, 6, -1, 20, 45, 4631 }, // î
{ 8, 19, 6, -1, 19, 38, 4676 }, // ï
{ 13, 21, 15, 1, 20, 69, 4714 }, // ð
{ 12, 19, 15, 2, 19, 57, 4783 }, // ñ
{ 13, 21, 15, 1, 20, 69, 4840 }, // ò
{ 13, 21, 15, 1, 20, 69, 4909 }, // ó
{ 13, 21, 15, 1, 20, 69, 4978 }, // ô
{ 13, 20, 15, 1, 19, 65, 5047 }, // õ
{ 13, 20, 15, 1, 19, 65, 5112 }, // ö
{ 13, 12, 14, 1, 15, 39, 5177 }, // ÷
{ 13, 16, 15, 1, 15, 52, 5216 }, // ø
{ 13, 21, 15, 1, 20, 69, 5268 }, // ù
{ 13, 21, 15, 1, 20, 69, 5337 }, // ú
{ 13, 21, 15, 1, 20, 69, 5406 }, // û
{ 13, 20, 15, 1, 19, 65, 5475 }, // ü
{ 13, 26, 13, 0, 20, 85, 5540 }, // ý
{ 12, 25, 15, 2, 19, 75, 5625 }, // þ
{ 13, 25, 13, 0, 19, 82, 5700 }, // ÿ
{ 16, 21, 16, 0, 21, 84, 0 }, // Ā
{ 11, 18, 14, 1, 17, 50, 84 }, // ā
{ 16, 23, 16, 0, 23, 92, 134 }, // Ă
{ 11, 20, 14, 1, 19, 55, 226 }, // ă
{ 16, 24, 16, 0, 18, 96, 281 }, // Ą
{ 12, 20, 14, 1, 14, 60, 377 }, // ą
{ 15, 25, 16, 1, 24, 94, 437 }, // Ć
{ 11, 21, 12, 1, 20, 58, 531 }, // ć
{ 15, 25, 16, 1, 24, 94, 589 }, // Ĉ
{ 11, 21, 12, 1, 20, 58, 683 }, // ĉ
{ 15, 24, 16, 1, 23, 90, 741 }, // Ċ
{ 11, 20, 12, 1, 19, 55, 831 }, // ċ
{ 15, 25, 16, 1, 24, 94, 886 }, // Č
{ 11, 21, 12, 1, 20, 58, 980 }, // č
{ 15, 24, 18, 2, 24, 90, 1038 }, // Ď
{ 17, 20, 15, 1, 19, 85, 1128 }, // ď
{ 17, 18, 18, 0, 18, 77, 1213 }, // Đ
{ 15, 20, 15, 1, 19, 75, 1290 }, // đ
{ 11, 21, 14, 2, 21, 58, 1365 }, // Ē
{ 12, 18, 14, 1, 17, 54, 1423 }, // ē
{ 11, 23, 14, 2, 23, 64, 1477 }, // Ĕ
{ 12, 20, 14, 1, 19, 60, 1541 }, // ĕ
{ 11, 23, 14, 2, 23, 64, 1601 }, // Ė
{ 12, 20, 14, 1, 19, 60, 1665 }, // ė
{ 11, 24, 14, 2, 18, 66, 1725 }, // Ę
{ 12, 20, 14, 1, 14, 60, 1791 }, // ę
{ 11, 24, 14, 2, 24, 66, 1851 }, // Ě
{ 12, 21, 14, 1, 20, 63, 1917 }, // ě
{ 16, 25, 18, 1, 24, 100, 1980 }, // Ĝ
{ 13, 26, 15, 1, 20, 85, 2080 }, // ĝ
{ 16, 24, 18, 1, 23, 96, 2165 }, // Ğ
{ 13, 25, 15, 1, 19, 82, 2261 }, // ğ
{ 16, 24, 18, 1, 23, 96, 2343 }, // Ġ
{ 13, 25, 15, 1, 19, 82, 2439 }, // ġ
{ 16, 25, 18, 1, 19, 100, 2521 }, // Ģ
{ 13, 26, 15, 1, 20, 85, 2621 }, // ģ
{ 15, 24, 19, 2, 24, 90, 2706 }, // Ĥ
{ 15, 26, 15, -1, 26, 98, 2796 }, // ĥ
{ 19, 18, 19, 0, 18, 86, 2894 }, // Ħ
{ 14, 19, 15, 0, 19, 67, 2980 }, // ħ
{ 10, 23, 8, -1, 23, 58, 3047 }, // Ĩ
{ 10, 19, 6, -2, 19, 48, 3105 }, // ĩ
{ 8, 21, 8, 0, 21, 42, 3153 }, // Ī
{ 8, 17, 6, -1, 17, 34, 3195 }, // ī
{ 9, 23, 8, 0, 23, 52, 3229 }, // Ĭ
{ 9, 19, 6, -1, 19, 43, 3281 }, // ĭ
{ 7, 24, 8, 1, 18, 42, 3324 }, // Į
{ 5, 25, 6, 0, 19, 32, 3366 }, // į
{ 7, 23, 8, 1, 23, 41, 3398 }, // İ
{ 3, 14, 6, 2, 14, 11, 3439 }, // ı
{ 13, 23, 15, 1, 18, 75, 3450 }, // IJ
{ 10, 25, 13, 1, 19, 63, 3525 }, // ij
{ 10, 29, 7, -2, 24, 73, 3588 }, // Ĵ
{ 10, 26, 6, -2, 20, 65, 3661 }, // ĵ
{ 14, 24, 15, 2, 18, 84, 3726 }, // Ķ
{ 12, 25, 13, 2, 19, 75, 3810 }, // ķ
{ 12, 14, 13, 2, 14, 42, 3885 }, // ĸ
{ 11, 24, 13, 2, 24, 66, 3927 }, // Ĺ
{ 6, 26, 6, 1, 26, 39, 3993 }, // ĺ
{ 11, 24, 13, 2, 18, 66, 4032 }, // Ļ
{ 4, 25, 6, 1, 19, 25, 4098 }, // ļ
{ 11, 18, 13, 2, 18, 50, 4123 }, // Ľ
{ 7, 19, 6, 2, 19, 34, 4173 }, // ľ
{ 11, 18, 13, 2, 18, 50, 4207 }, // Ŀ
{ 6, 19, 7, 2, 19, 29, 4257 }, // ŀ
{ 13, 18, 13, 0, 18, 59, 4286 }, // Ł
{ 8, 19, 6, -1, 19, 38, 4345 }, // ł
{ 15, 24, 19, 2, 24, 90, 4383 }, // Ń
{ 12, 20, 15, 2, 20, 60, 4473 }, // ń
{ 15, 24, 19, 2, 18, 90, 4533 }, // Ņ
{ 12, 20, 15, 2, 14, 60, 4623 }, // ņ
{ 15, 24, 19, 2, 24, 90, 4683 }, // Ň
{ 12, 20, 15, 2, 20, 60, 4773 }, // ň
{ 16, 18, 17, 0, 18, 72, 4833 }, // ʼn
{ 15, 23, 19, 2, 18, 87, 4905 }, // Ŋ
{ 12, 20, 15, 2, 14, 60, 4992 }, // ŋ
{ 17, 22, 20, 1, 21, 94, 5052 }, // Ō
{ 13, 18, 15, 1, 17, 59, 5146 }, // ō
{ 17, 24, 20, 1, 23, 102, 5205 }, // Ŏ
{ 13, 20, 15, 1, 19, 65, 5307 }, // ŏ
{ 17, 25, 20, 1, 24, 107, 5372 }, // Ő
{ 13, 21, 15, 1, 20, 69, 5479 }, // ő
{ 21, 20, 23, 1, 19, 105, 5548 }, // Œ
{ 22, 15, 24, 1, 14, 83, 5653 }, // œ
{ 14, 24, 16, 2, 24, 84, 5736 }, // Ŕ
{ 8, 20, 10, 2, 20, 40, 5820 }, // ŕ
{ 14, 24, 16, 2, 18, 84, 5860 }, // Ŗ
{ 9, 20, 10, 1, 14, 45, 5944 }, // ŗ
{ 14, 24, 16, 2, 24, 84, 5989 }, // Ř
{ 10, 20, 10, 1, 20, 50, 6073 }, // ř
{ 12, 25, 14, 1, 24, 75, 6123 }, // Ś
{ 10, 21, 12, 1, 20, 53, 6198 }, // ś
{ 12, 25, 14, 1, 24, 75, 6251 }, // Ŝ
{ 10, 21, 12, 1, 20, 53, 6326 }, // ŝ
{ 12, 25, 14, 1, 19, 75, 6379 }, // Ş
{ 10, 20, 12, 1, 14, 50, 6454 }, // ş
{ 12, 25, 14, 1, 24, 75, 6504 }, // Š
{ 10, 21, 12, 1, 20, 53, 6579 }, // š
{ 14, 24, 14, 0, 18, 84, 6632 }, // Ţ
{ 9, 23, 9, 0, 17, 52, 6716 }, // ţ
{ 14, 24, 14, 0, 24, 84, 6768 }, // Ť
{ 12, 20, 9, 0, 19, 60, 6852 }, // ť
{ 14, 18, 14, 0, 18, 63, 6912 }, // Ŧ
{ 9, 18, 9, 0, 17, 41, 6975 }, // ŧ
{ 14, 24, 18, 2, 23, 84, 7016 }, // Ũ
{ 13, 20, 15, 1, 19, 65, 7100 }, // ũ
{ 14, 22, 18, 2, 21, 77, 7165 }, // Ū
{ 13, 18, 15, 1, 17, 59, 7242 }, // ū
{ 14, 24, 18, 2, 23, 84, 7301 }, // Ŭ
{ 13, 20, 15, 1, 19, 65, 7385 }, // ŭ
{ 14, 26, 18, 2, 25, 91, 7450 }, // Ů
{ 13, 22, 15, 1, 21, 72, 7541 }, // ů
{ 14, 25, 18, 2, 24, 88, 7613 }, // Ű
{ 13, 21, 15, 1, 20, 69, 7701 }, // ű
{ 14, 24, 18, 2, 18, 84, 7770 }, // Ų
{ 13, 20, 15, 1, 14, 65, 7854 }, // ų
{ 23, 24, 23, 0, 24, 138, 7919 }, // Ŵ
{ 20, 20, 20, 0, 20, 100, 8057 }, // ŵ
{ 15, 24, 14, 0, 24, 90, 8157 }, // Ŷ
{ 13, 26, 13, 0, 20, 85, 8247 }, // ŷ
{ 15, 23, 14, 0, 23, 87, 8332 }, // Ÿ
{ 14, 24, 14, 0, 24, 84, 8419 }, // Ź
{ 11, 20, 12, 0, 20, 55, 8503 }, // ź
{ 14, 23, 14, 0, 23, 81, 8558 }, // Ż
{ 11, 19, 12, 0, 19, 53, 8639 }, // ż
{ 14, 24, 14, 0, 24, 84, 8692 }, // Ž
{ 11, 20, 12, 0, 20, 55, 8776 }, // ž
{ 8, 20, 8, 2, 20, 40, 8831 }, // ſ
{ 6, 5, 0, -13, 20, 8, 0 }, // ̀
{ 6, 5, 0, -9, 20, 8, 8 }, // ́
{ 10, 5, 0, -5, 20, 13, 16 }, // ̂
{ 10, 4, 0, -13, 19, 10, 29 }, // ̃
{ 8, 2, 0, -4, 17, 4, 39 }, // ̄
{ 12, 3, 0, -6, 22, 9, 43 }, // ̅
{ 8, 4, 0, -4, 19, 8, 52 }, // ̆
{ 4, 4, 0, -2, 19, 4, 60 }, // ̇
{ 8, 4, 0, -4, 19, 8, 64 }, // ̈
{ 6, 7, 0, -10, 21, 11, 72 }, // ̉
{ 6, 6, 0, -3, 21, 9, 83 }, // ̊
{ 10, 5, 0, -4, 20, 13, 92 }, // ̋
{ 10, 5, 0, -5, 20, 13, 105 }, // ̌
{ 2, 5, 0, -1, 19, 3, 118 }, // ̍
{ 6, 5, 0, -3, 19, 8, 121 }, // ̎
{ 10, 5, 0, -13, 20, 13, 129 }, // ̏
{ 8, 7, 0, -4, 22, 14, 142 }, // ̐
{ 8, 4, 0, -4, 19, 8, 156 }, // ̑
{ 4, 7, 0, -2, 18, 7, 164 }, // ̒
{ 4, 7, 0, -2, 18, 7, 171 }, // ̓
{ 4, 7, 0, -2, 18, 7, 178 }, // ̔
{ 4, 7, 0, -2, 18, 7, 185 }, // ̕
{ 6, 5, 0, -3, 0, 8, 192 }, // ̖
{ 6, 5, 0, -3, 0, 8, 200 }, // ̗
{ 6, 6, 0, -3, 0, 9, 208 }, // ̘
{ 6, 6, 0, -3, 0, 9, 217 }, // ̙
{ 7, 6, 8, 0, 19, 11, 226 }, // ̚
{ 6, 6, 0, -3, 19, 9, 237 }, // ̛
{ 4, 6, 0, -2, 0, 6, 246 }, // ̜
{ 6, 5, 0, -3, -1, 8, 252 }, // ̝
{ 6, 5, 0, -3, -1, 8, 260 }, // ̞
{ 6, 6, 0, -3, 0, 9, 268 }, // ̟
{ 6, 3, 0, -3, -2, 5, 277 }, // ̠
{ 5, 8, 0, -5, 2, 10, 282 }, // ̡
{ 5, 8, 0, 0, 2, 10, 292 }, // ̢
{ 3, 4, 0, -9, -1, 3, 302 }, // ̣
{ 8, 4, 0, -4, -1, 8, 305 }, // ̤
{ 6, 6, 0, -3, 0, 9, 313 }, // ̥
{ 4, 5, 0, -2, -1, 5, 322 }, // ̦
{ 6, 6, 0, -3, 0, 9, 327 }, // ̧
{ 6, 7, 0, -3, 1, 11, 336 }, // ̨
{ 2, 5, 0, -1, -1, 3, 347 }, // ̩
{ 10, 5, 0, -5, -1, 13, 350 }, // ̪
{ 10, 4, 0, -5, -1, 10, 363 }, // ̫
{ 10, 5, 0, -5, 0, 13, 373 }, // ̬
{ 10, 5, 0, -5, 0, 13, 386 }, // ̭
{ 8, 4, 0, -4, -1, 8, 399 }, // ̮
{ 8, 4, 0, -4, -1, 8, 407 }, // ̯
{ 10, 4, 0, -5, -1, 10, 415 }, // ̰
{ 8, 2, 0, -4, -2, 4, 425 }, // ̱
{ 12, 2, 0, -6, -2, 6, 429 }, // ̲
{ 12, 6, 0, -6, 0, 18, 435 }, // ̳
{ 10, 4, 0, -5, 9, 10, 453 }, // ̴
{ 12, 3, 0, -6, 9, 9, 463 }, // ̵
{ 18, 2, 0, -9, 8, 9, 472 }, // ̶
{ 8, 6, 0, -4, 10, 12, 481 }, // ̷
{ 10, 21, 0, -5, 19, 53, 493 }, // ̸
{ 4, 6, 0, -2, 0, 6, 546 }, // ̹
{ 10, 5, 0, -5, -1, 13, 552 }, // ̺
{ 10, 6, 0, -5, 0, 15, 565 }, // ̻
{ 10, 4, 0, -5, -1, 10, 580 }, // ̼
{ 6, 6, 0, -3, 20, 9, 590 }, // ̽
{ 4, 8, 0, -2, 22, 8, 599 }, // ̾
{ 12, 6, 0, -6, 25, 18, 607 }, // ̿
{ 6, 5, 0, -4, 20, 8, 625 }, // ̀
{ 6, 5, 0, -1, 20, 8, 633 }, // ́
{ 10, 4, 0, -5, 19, 10, 641 }, // ͂
{ 4, 5, 0, -2, 20, 5, 651 }, // ̓
{ 9, 5, 0, -4, 20, 12, 656 }, // ̈́
{ 4, 4, 0, -1, -2, 4, 668 }, // ͅ
{ 12, 6, 0, -6, 20, 18, 672 }, // ͆
{ 12, 6, 0, -6, 0, 18, 690 }, // ͇
{ 6, 5, 0, -3, -1, 8, 708 }, // ͈
{ 6, 5, 0, -3, -1, 8, 716 }, // ͉
{ 10, 6, 0, -5, 20, 15, 724 }, // ͊
{ 10, 10, 0, -5, 24, 25, 739 }, // ͋
{ 10, 7, 0, -5, 22, 18, 764 }, // ͌
{ 10, 6, 0, -5, 0, 15, 782 }, // ͍
{ 6, 6, 0, -3, 0, 9, 797 }, // ͎
{ 18, 18, 0, -9, 18, 81, 806 }, // ͏
{ 5, 6, 0, -3, 20, 8, 887 }, // ͐
{ 4, 6, 0, -2, 21, 6, 895 }, // ͑
{ 8, 6, 0, -4, 21, 12, 901 }, // ͒
{ 6, 6, 0, -3, 0, 9, 913 }, // ͓
{ 5, 5, 0, -3, -1, 7, 922 }, // ͔
{ 5, 5, 0, -3, -1, 7, 929 }, // ͕
{ 10, 5, 0, -5, -1, 13, 936 }, // ͖
{ 4, 6, 0, -2, 21, 6, 949 }, // ͗
{ 3, 4, 0, 3, 19, 3, 955 }, // ͘
{ 6, 6, 0, -3, 0, 9, 958 }, // ͙
{ 10, 6, 0, -5, 0, 15, 967 }, // ͚
{ 6, 6, 0, -3, 20, 9, 982 }, // ͛
{ 20, 5, 0, -10, -1, 25, 991 }, // ͜
{ 20, 5, 0, -10, 19, 25, 1016 }, // ͝
{ 16, 2, 0, -8, 17, 8, 1041 }, // ͞
{ 16, 2, 0, -8, -2, 8, 1049 }, // ͟
{ 20, 4, 0, -10, 19, 20, 1057 }, // ͠
{ 20, 6, 0, -10, 22, 30, 1077 }, // ͡
{ 21, 6, 0, -10, 0, 32, 1107 }, // ͢
{ 6, 6, 0, -3, 21, 9, 1139 }, // ͣ
{ 6, 6, 0, -3, 21, 9, 1148 }, // ͤ
{ 2, 8, 0, -1, 23, 4, 1157 }, // ͥ
{ 7, 6, 0, -3, 21, 11, 1161 }, // ͦ
{ 6, 6, 0, -3, 21, 9, 1172 }, // ͧ
{ 5, 6, 0, -2, 21, 8, 1181 }, // ͨ
{ 6, 9, 0, -3, 24, 14, 1189 }, // ͩ
{ 6, 9, 0, -3, 24, 14, 1203 }, // ͪ
{ 10, 6, 0, -5, 21, 15, 1217 }, // ͫ
{ 5, 6, 0, -2, 21, 8, 1232 }, // ͬ
{ 5, 8, 0, -2, 23, 10, 1240 }, // ͭ
{ 7, 6, 0, -3, 21, 11, 1250 }, // ͮ
{ 7, 6, 0, -3, 21, 11, 1261 }, // ͯ
{ 11, 24, 14, 2, 24, 66, 0 }, // Ѐ
{ 11, 23, 14, 2, 23, 64, 66 }, // Ё
{ 17, 19, 18, 0, 18, 81, 130 }, // Ђ
{ 11, 24, 13, 2, 24, 66, 211 }, // Ѓ
{ 14, 20, 16, 1, 19, 70, 277 }, // Є
{ 12, 20, 14, 1, 19, 60, 347 }, // Ѕ
{ 3, 18, 7, 2, 18, 14, 407 }, // І
{ 7, 23, 7, 0, 23, 41, 421 }, // Ї
{ 7, 23, 7, -2, 18, 41, 462 }, // Ј
{ 24, 19, 25, 0, 18, 114, 503 }, // Љ
{ 23, 18, 26, 2, 18, 104, 617 }, // Њ
{ 17, 18, 18, 0, 18, 77, 721 }, // Ћ
{ 14, 24, 16, 2, 24, 84, 798 }, // Ќ
{ 15, 24, 19, 2, 24, 90, 882 }, // Ѝ
{ 16, 24, 15, 0, 23, 96, 972 }, // Ў
{ 14, 22, 18, 2, 18, 77, 1068 }, // Џ
{ 16, 18, 16, 0, 18, 72, 1145 }, // А
{ 13, 18, 15, 2, 18, 59, 1217 }, // Б
{ 13, 18, 16, 2, 18, 59, 1276 }, // В
{ 11, 18, 13, 2, 18, 50, 1335 }, // Г
{ 18, 22, 18, 0, 18, 99, 1385 }, // Д
{ 11, 18, 14, 2, 18, 50, 1484 }, // Е
{ 23, 18, 23, 0, 18, 104, 1534 }, // Ж
{ 13, 20, 14, 0, 19, 65, 1638 }, // З
{ 15, 18, 19, 2, 18, 68, 1703 }, // И
{ 15, 23, 19, 2, 23, 87, 1771 }, // Й
{ 14, 18, 16, 2, 18, 63, 1858 }, // К
{ 16, 19, 17, 0, 18, 76, 1921 }, // Л
{ 19, 18, 23, 2, 18, 86, 1997 }, // М
{ 15, 18, 19, 2, 18, 68, 2083 }, // Н
{ 17, 20, 19, 1, 19, 85, 2151 }, // О
{ 14, 18, 18, 2, 18, 63, 2236 }, // П
{ 12, 18, 15, 2, 18, 54, 2299 }, // Р
{ 14, 20, 16, 1, 19, 70, 2353 }, // С
{ 14, 18, 14, 0, 18, 63, 2423 }, // Т
{ 16, 19, 15, 0, 18, 76, 2486 }, // У
{ 19, 20, 20, 1, 19, 95, 2562 }, // Ф
{ 15, 18, 15, 0, 18, 68, 2657 }, // Х
{ 17, 22, 19, 2, 18, 94, 2725 }, // Ц
{ 14, 18, 17, 1, 18, 63, 2819 }, // Ч
{ 22, 18, 26, 2, 18, 99, 2882 }, // Ш
{ 24, 22, 26, 2, 18, 132, 2981 }, // Щ
{ 16, 18, 17, 0, 18, 72, 3113 }, // Ъ
{ 17, 18, 21, 2, 18, 77, 3185 }, // Ы
{ 12, 18, 15, 2, 18, 54, 3262 }, // Ь
{ 14, 20, 16, 1, 19, 70, 3316 }, // Э
{ 22, 20, 25, 2, 19, 110, 3386 }, // Ю
{ 14, 18, 16, 0, 18, 63, 3496 }, // Я
{ 11, 15, 14, 1, 14, 42, 3559 }, // а
{ 13, 21, 15, 1, 20, 69, 3601 }, // б
{ 11, 14, 14, 2, 14, 39, 3670 }, // в
{ 9, 14, 11, 2, 14, 32, 3709 }, // г
{ 15, 18, 15, 0, 14, 68, 3741 }, // д
{ 12, 15, 14, 1, 14, 45, 3809 }, // е
{ 19, 14, 19, 0, 14, 67, 3854 }, // ж
{ 12, 15, 12, 0, 14, 45, 3921 }, // з
{ 12, 14, 16, 2, 14, 42, 3966 }, // и
{ 12, 19, 16, 2, 19, 57, 4008 }, // й
{ 12, 14, 13, 2, 14, 42, 4065 }, // к
{ 13, 15, 15, 0, 14, 49, 4107 }, // л
{ 16, 14, 19, 2, 14, 56, 4156 }, // м
{ 12, 14, 15, 2, 14, 42, 4212 }, // н
{ 13, 15, 15, 1, 14, 49, 4254 }, // о
{ 12, 14, 15, 2, 14, 42, 4303 }, // п
{ 12, 20, 15, 2, 14, 60, 4345 }, // р
{ 11, 15, 12, 1, 14, 42, 4405 }, // с
{ 12, 14, 12, 0, 14, 42, 4447 }, // т
{ 13, 20, 13, 0, 14, 65, 4489 }, // у
{ 17, 25, 18, 1, 19, 107, 4554 }, // ф
{ 13, 14, 13, 0, 14, 46, 4661 }, // х
{ 14, 18, 15, 2, 14, 63, 4707 }, // ц
{ 12, 14, 15, 1, 14, 42, 4770 }, // ч
{ 19, 14, 22, 2, 14, 67, 4812 }, // ш
{ 21, 18, 22, 2, 14, 95, 4879 }, // щ
{ 15, 14, 16, 0, 14, 53, 4974 }, // ъ
{ 15, 14, 19, 2, 14, 53, 5027 }, // ы
{ 11, 14, 14, 2, 14, 39, 5080 }, // ь
{ 11, 15, 12, 1, 14, 42, 5119 }, // э
{ 17, 15, 20, 2, 14, 64, 5161 }, // ю
{ 13, 14, 14, 0, 14, 46, 5225 }, // я
{ 12, 21, 14, 1, 20, 63, 5271 }, // ѐ
{ 12, 20, 14, 1, 19, 60, 5334 }, // ё
{ 14, 25, 15, 0, 19, 88, 5394 }, // ђ
{ 9, 20, 11, 2, 20, 45, 5482 }, // ѓ
{ 11, 15, 12, 1, 14, 42, 5527 }, // є
{ 10, 15, 12, 1, 14, 38, 5569 }, // ѕ
{ 4, 19, 6, 1, 19, 19, 5607 }, // і
{ 6, 19, 6, 0, 19, 29, 5626 }, // ї
{ 7, 25, 6, -2, 19, 44, 5655 }, // ј
{ 21, 15, 21, 0, 14, 79, 5699 }, // љ
{ 20, 14, 22, 2, 14, 70, 5778 }, // њ
{ 14, 19, 16, 0, 19, 67, 5848 }, // ћ
{ 12, 20, 13, 2, 20, 60, 5915 }, // ќ
{ 12, 20, 16, 2, 20, 60, 5975 }, // ѝ
{ 13, 25, 13, 0, 19, 82, 6035 }, // ў
{ 12, 18, 15, 2, 14, 54, 6117 }, // џ
{ 23, 19, 23, 0, 18, 110, 6171 }, // Ѡ
{ 20, 14, 20, 0, 14, 70, 6281 }, // ѡ
{ 16, 18, 17, 0, 18, 72, 6351 }, // Ѣ
{ 15, 17, 16, 0, 17, 64, 6423 }, // ѣ
{ 21, 20, 23, 2, 19, 105, 6487 }, // Ѥ
{ 16, 15, 19, 2, 14, 60, 6592 }, // ѥ
{ 18, 18, 17, 0, 18, 81, 6652 }, // Ѧ
{ 15, 14, 14, 0, 14, 53, 6733 }, // ѧ
{ 22, 18, 23, 2, 18, 99, 6786 }, // Ѩ
{ 18, 14, 20, 2, 14, 63, 6885 }, // ѩ
{ 18, 18, 18, 0, 18, 81, 6948 }, // Ѫ
{ 16, 14, 16, 0, 14, 56, 7029 }, // ѫ
{ 23, 18, 25, 2, 18, 104, 7085 }, // Ѭ
{ 20, 14, 21, 2, 14, 70, 7189 }, // ѭ
{ 14, 28, 15, 0, 22, 98, 7259 }, // Ѯ
{ 12, 22, 12, 0, 17, 66, 7357 }, // ѯ
{ 17, 18, 20, 2, 18, 77, 7423 }, // Ѱ
{ 16, 25, 19, 1, 19, 100, 7500 }, // ѱ
{ 17, 20, 20, 1, 19, 85, 7600 }, // Ѳ
{ 13, 15, 15, 1, 14, 49, 7685 }, // ѳ
{ 17, 18, 16, 0, 18, 77, 7734 }, // Ѵ
{ 14, 14, 13, 0, 14, 49, 7811 }, // ѵ
{ 17, 24, 16, 0, 24, 102, 7860 }, // Ѷ
{ 14, 20, 13, 0, 20, 70, 7962 }, // ѷ
{ 30, 25, 31, 1, 19, 188, 8032 }, // Ѹ
{ 27, 20, 27, 1, 14, 135, 8220 }, // ѹ
{ 18, 22, 21, 1, 20, 99, 8355 }, // Ѻ
{ 15, 17, 16, 1, 15, 64, 8454 }, // ѻ
{ 24, 27, 26, 1, 26, 162, 8518 }, // Ѽ
{ 21, 24, 23, 1, 23, 126, 8680 }, // ѽ
{ 23, 24, 23, 0, 23, 138, 8806 }, // Ѿ
{ 20, 18, 20, 0, 18, 90, 8944 }, // ѿ
{ 15, 25, 16, 1, 19, 94, 9034 }, // Ҁ
{ 11, 20, 12, 1, 14, 55, 9128 }, // ҁ
{ 13, 17, 15, 1, 16, 56, 9183 }, // ҂
{ 10, 4, 0, -12, 18, 10, 9239 }, // ҃
{ 10, 4, 0, -12, 19, 10, 9249 }, // ҄
{ 4, 5, 0, -9, 20, 5, 9259 }, // ҅
{ 4, 5, 0, -9, 20, 5, 9264 }, // ҆
{ 10, 4, 0, -5, 23, 10, 9269 }, // ҇
{ 30, 27, 0, -15, 20, 203, 9279 }, // ҈
{ 28, 28, 0, -14, 21, 196, 9482 }, // ҉
{ 18, 29, 20, 2, 24, 131, 9678 }, // Ҋ
{ 15, 24, 16, 2, 19, 90, 9809 }, // ҋ
{ 15, 18, 15, 0, 18, 68, 9899 }, // Ҍ
{ 14, 19, 15, 0, 19, 67, 9967 }, // ҍ
{ 13, 18, 15, 2, 18, 59, 10034 }, // Ҏ
{ 12, 20, 15, 2, 14, 60, 10093 }, // ҏ
{ 11, 22, 13, 2, 22, 61, 10153 }, // Ґ
{ 9, 18, 11, 2, 18, 41, 10214 }, // ґ
{ 13, 18, 13, 0, 18, 59, 10255 }, // Ғ
{ 11, 14, 11, 0, 14, 39, 10314 }, // ғ
{ 14, 25, 16, 2, 18, 88, 10353 }, // Ҕ
{ 11, 21, 13, 2, 14, 58, 10441 }, // ҕ
{ 23, 23, 23, 0, 18, 133, 10499 }, // Җ
{ 20, 19, 20, 0, 14, 95, 10632 }, // җ
{ 13, 25, 14, 0, 19, 82, 10727 }, // Ҙ
{ 12, 20, 12, 0, 14, 60, 10809 }, // ҙ
{ 15, 23, 17, 2, 18, 87, 10869 }, // Қ
{ 12, 19, 14, 2, 14, 57, 10956 }, // қ
{ 14, 18, 16, 2, 18, 63, 11013 }, // Ҝ
{ 11, 14, 13, 2, 14, 39, 11076 }, // ҝ
{ 16, 18, 16, 0, 18, 72, 11115 }, // Ҟ
{ 13, 19, 13, 0, 19, 62, 11187 }, // ҟ
{ 18, 18, 17, 0, 18, 81, 11249 }, // Ҡ
{ 16, 14, 16, 0, 14, 56, 11330 }, // ҡ
{ 17, 23, 19, 2, 18, 98, 11386 }, // Ң
{ 14, 19, 16, 2, 14, 67, 11484 }, // ң
{ 19, 18, 20, 2, 18, 86, 11551 }, // Ҥ
{ 17, 14, 18, 2, 14, 60, 11637 }, // ҥ
{ 24, 25, 26, 2, 18, 150, 11697 }, // Ҧ
{ 19, 21, 22, 2, 14, 100, 11847 }, // ҧ
{ 18, 21, 19, 1, 19, 95, 11947 }, // Ҩ
{ 15, 15, 16, 1, 14, 57, 12042 }, // ҩ
{ 15, 25, 16, 1, 19, 94, 12099 }, // Ҫ
{ 11, 20, 12, 1, 14, 55, 12193 }, // ҫ
{ 14, 23, 14, 0, 18, 81, 12248 }, // Ҭ
{ 12, 19, 12, 0, 14, 57, 12329 }, // ҭ
{ 15, 18, 14, 0, 18, 68, 12386 }, // Ү
{ 13, 20, 13, 0, 14, 65, 12454 }, // ү
{ 15, 18, 14, 0, 18, 68, 12519 }, // Ұ
{ 13, 20, 13, 0, 14, 65, 12587 }, // ұ
{ 16, 23, 16, 0, 18, 92, 12652 }, // Ҳ
{ 14, 19, 14, 0, 14, 67, 12744 }, // ҳ
{ 21, 23, 22, 0, 18, 121, 12811 }, // Ҵ
{ 18, 19, 18, 0, 14, 86, 12932 }, // ҵ
{ 16, 23, 18, 2, 18, 92, 13018 }, // Ҷ
{ 15, 19, 16, 1, 14, 72, 13110 }, // ҷ
{ 14, 18, 17, 2, 18, 63, 13182 }, // Ҹ
{ 12, 14, 15, 1, 14, 42, 13245 }, // ҹ
{ 14, 18, 17, 2, 18, 63, 13287 }, // Һ
{ 12, 19, 15, 2, 19, 57, 13350 }, // һ
{ 20, 20, 21, 0, 19, 100, 13407 }, // Ҽ
{ 16, 15, 17, 0, 14, 60, 13507 }, // ҽ
{ 20, 24, 21, 0, 19, 120, 13567 }, // Ҿ
{ 16, 19, 17, 0, 14, 76, 13687 }, // ҿ
{ 7, 18, 8, 1, 18, 32, 13763 }, // Ӏ
{ 23, 23, 23, 0, 23, 133, 13795 }, // Ӂ
{ 19, 19, 19, 0, 19, 91, 13928 }, // ӂ
{ 15, 25, 17, 2, 18, 94, 14019 }, // Ӄ
{ 12, 21, 14, 2, 14, 63, 14113 }, // ӄ
{ 18, 23, 18, 0, 18, 104, 14176 }, // Ӆ
{ 15, 19, 15, 0, 14, 72, 14280 }, // ӆ
{ 15, 25, 18, 2, 18, 94, 14352 }, // Ӈ
{ 12, 21, 16, 2, 14, 63, 14446 }, // ӈ
{ 17, 23, 19, 2, 18, 98, 14509 }, // Ӊ
{ 15, 19, 17, 2, 14, 72, 14607 }, // ӊ
{ 14, 23, 17, 2, 18, 81, 14679 }, // Ӌ
{ 13, 19, 15, 1, 14, 62, 14760 }, // ӌ
{ 21, 23, 23, 2, 18, 121, 14822 }, // Ӎ
{ 17, 19, 19, 2, 14, 81, 14943 }, // ӎ
{ 7, 18, 8, 1, 18, 32, 15024 }, // ӏ
{ 16, 23, 16, 0, 23, 92, 15056 }, // Ӑ
{ 11, 20, 14, 1, 19, 55, 15148 }, // ӑ
{ 16, 23, 16, 0, 23, 92, 15203 }, // Ӓ
{ 11, 20, 14, 1, 19, 55, 15295 }, // ӓ
{ 22, 18, 22, -1, 18, 99, 15350 }, // Ӕ
{ 20, 15, 22, 1, 14, 75, 15449 }, // ӕ
{ 11, 23, 14, 2, 23, 64, 15524 }, // Ӗ
{ 12, 20, 14, 1, 19, 60, 15588 }, // ӗ
{ 16, 20, 18, 1, 19, 80, 15648 }, // Ә
{ 12, 15, 14, 1, 14, 45, 15728 }, // ә
{ 16, 24, 18, 1, 23, 96, 15773 }, // Ӛ
{ 12, 20, 14, 1, 19, 60, 15869 }, // ӛ
{ 23, 23, 23, 0, 23, 133, 15929 }, // Ӝ
{ 19, 19, 19, 0, 19, 91, 16062 }, // ӝ
{ 13, 24, 14, 0, 23, 78, 16153 }, // Ӟ
{ 12, 20, 12, 0, 19, 60, 16231 }, // ӟ
{ 14, 19, 15, 0, 18, 67, 16291 }, // Ӡ
{ 12, 20, 12, 0, 14, 60, 16358 }, // ӡ
{ 15, 21, 19, 2, 21, 79, 16418 }, // Ӣ
{ 12, 17, 16, 2, 17, 51, 16497 }, // ӣ
{ 15, 23, 19, 2, 23, 87, 16548 }, // Ӥ
{ 12, 19, 16, 2, 19, 57, 16635 }, // ӥ
{ 17, 24, 20, 1, 23, 102, 16692 }, // Ӧ
{ 13, 20, 15, 1, 19, 65, 16794 }, // ӧ
{ 17, 20, 20, 1, 19, 85, 16859 }, // Ө
{ 13, 15, 15, 1, 14, 49, 16944 }, // ө
{ 17, 24, 20, 1, 23, 102, 16993 }, // Ӫ
{ 13, 20, 15, 1, 19, 65, 17095 }, // ӫ
{ 14, 24, 16, 1, 23, 84, 17160 }, // Ӭ
{ 11, 20, 12, 1, 19, 55, 17244 }, // ӭ
{ 16, 22, 15, 0, 21, 88, 17299 }, // Ӯ
{ 13, 23, 13, 0, 17, 75, 17387 }, // ӯ
{ 16, 24, 15, 0, 23, 96, 17462 }, // Ӱ
{ 13, 25, 13, 0, 19, 82, 17558 }, // ӱ
{ 16, 25, 15, 0, 24, 100, 17640 }, // Ӳ
{ 13, 26, 13, 0, 20, 85, 17740 }, // ӳ
{ 14, 23, 17, 1, 23, 81, 17825 }, // Ӵ
{ 12, 19, 15, 1, 19, 57, 17906 }, // ӵ
{ 11, 23, 13, 2, 18, 64, 17963 }, // Ӷ
{ 9, 19, 11, 2, 14, 43, 18027 }, // ӷ
{ 17, 23, 21, 2, 23, 98, 18070 }, // Ӹ
{ 15, 19, 19, 2, 19, 72, 18168 }, // ӹ
{ 13, 23, 13, 0, 18, 75, 18240 }, // Ӻ
{ 11, 19, 11, 0, 14, 53, 18315 }, // ӻ
{ 16, 23, 16, 0, 18, 92, 18368 }, // Ӽ
{ 14, 19, 14, 0, 14, 67, 18460 }, // ӽ
{ 15, 18, 15, 0, 18, 68, 18527 }, // Ӿ
{ 13, 14, 13, 0, 14, 46, 18595 }, // ӿ
{ 0, 0, 13, 0, 0, 0, 0 }, //  
{ 0, 0, 25, 0, 0, 0, 0 }, //
{ 0, 0, 13, 0, 0, 0, 0 }, //
{ 0, 0, 25, 0, 0, 0, 0 }, //
{ 0, 0, 8, 0, 0, 0, 0 }, //
{ 0, 0, 6, 0, 0, 0, 0 }, //
{ 0, 0, 4, 0, 0, 0, 0 }, //
{ 0, 0, 14, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 4, 0, 0, 0, 0 }, //
{ 0, 0, 3, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 7, 22, 0, -1, 18, 39, 0 }, //
{ 7, 22, 0, -6, 18, 39, 39 }, //
{ 7, 3, 8, 1, 8, 6, 78 }, //
{ 7, 3, 8, 1, 8, 6, 84 }, //
{ 13, 2, 14, 1, 10, 7, 90 }, //
{ 11, 3, 13, 1, 8, 9, 97 }, //
{ 23, 3, 25, 1, 8, 18, 106 }, // —
{ 23, 3, 25, 1, 8, 18, 124 }, // ―
{ 8, 26, 14, 3, 19, 52, 142 }, // ‖
{ 12, 6, 10, -1, 0, 18, 194 }, // ‗
{ 5, 7, 4, 0, 18, 9, 212 }, //
{ 5, 7, 4, 0, 18, 9, 221 }, //
{ 5, 7, 6, 0, 3, 9, 230 }, //
{ 5, 7, 4, 0, 18, 9, 239 }, //
{ 9, 7, 9, 0, 18, 16, 248 }, // “
{ 9, 7, 9, 0, 18, 16, 264 }, // ”
{ 10, 7, 10, 0, 3, 18, 280 }, // „
{ 9, 7, 9, 0, 18, 16, 298 }, // ‟
{ 11, 19, 13, 1, 19, 53, 314 }, // †
{ 11, 19, 13, 1, 19, 53, 367 }, // ‡
{ 7, 7, 9, 1, 13, 13, 420 }, // •
{ 8, 8, 9, 1, 13, 16, 433 }, // ‣
{ 4, 5, 13, 4, 4, 5, 449 }, //
{ 11, 5, 13, 1, 4, 14, 454 }, // ‥
{ 17, 5, 20, 1, 4, 22, 468 }, // …
{ 4, 5, 7, 1, 9, 5, 490 }, // ‧
{ 0, 0, 15, 0, 0, 0, 495 }, //
{ 0, 0, 15, 0, 0, 0, 495 }, //
{ 7, 20, 0, -1, 16, 35, 495 }, //
{ 7, 20, 0, -6, 16, 35, 530 }, //
{ 6, 22, 0, -3, 18, 33, 565 }, //
{ 6, 22, 0, -3, 18, 33, 598 }, //
{ 6, 22, 0, -3, 18, 33, 631 }, //
{ 0, 0, 4, 0, 0, 0, 664 }, //
{ 28, 20, 29, 1, 19, 140, 664 }, // ‰
{ 37, 20, 39, 1, 19, 185, 804 }, // ‱
{ 7, 7, 6, 0, 18, 13, 989 }, //
{ 11, 7, 10, 0, 18, 20, 1002 }, // ″
{ 16, 7, 15, 0, 18, 28, 1022 }, // ‴
{ 6, 7, 6, -1, 18, 11, 1050 }, //
{ 10, 7, 11, -1, 18, 18, 1061 }, // ‶
{ 14, 7, 15, -1, 18, 25, 1079 }, // ‷
{ 10, 9, 10, 0, 3, 23, 1104 }, // ‸
{ 6, 11, 8, 1, 12, 17, 1127 }, //
{ 7, 11, 8, 0, 12, 20, 1144 }, //
{ 19, 20, 21, 1, 19, 95, 1164 }, // ※
{ 10, 19, 12, 1, 18, 48, 1259 }, // ‼
{ 11, 20, 11, 0, 19, 55, 1307 }, // ‽
{ 14, 2, 13, -1, 21, 7, 1362 }, // ‾
{ 15, 6, 15, 0, 0, 23, 1369 }, // ‿
{ 15, 6, 15, 0, 20, 23, 1392 }, // ⁀
{ 9, 17, 9, 0, 11, 39, 1415 }, //
{ 28, 23, 28, 0, 19, 161, 1454 }, // ⁂
{ 7, 3, 8, 1, 8, 6, 1615 }, //
{ 13, 18, 3, -5, 18, 59, 1621 }, //
{ 7, 22, 8, 1, 18, 39, 1680 }, // ⁅
{ 7, 22, 8, 0, 18, 39, 1719 }, // ⁆
{ 21, 20, 21, 0, 19, 105, 1758 }, // ⁇
{ 16, 20, 17, 0, 19, 80, 1863 }, // ⁈
{ 16, 20, 17, 1, 19, 80, 1943 }, // ⁉
{ 13, 14, 14, 0, 14, 46, 2023 }, // ⁊
{ 13, 23, 16, 2, 19, 75, 2069 }, // ⁋
{ 13, 14, 16, 1, 14, 46, 2144 }, // ⁌
{ 13, 14, 16, 2, 14, 46, 2190 }, // ⁍
{ 12, 12, 14, 1, 6, 36, 2236 }, //
{ 5, 18, 6, 1, 14, 23, 2272 }, // ⁏
{ 15, 26, 15, 0, 20, 98, 2295 }, // ⁐
{ 12, 25, 14, 1, 19, 75, 2393 }, // ⁑
{ 10, 20, 9, 0, 19, 50, 2468 }, // ⁒
{ 23, 5, 25, 1, 10, 29, 2518 }, //
{ 15, 6, 15, 0, 0, 23, 2547 }, // ⁔
{ 14, 14, 14, 0, 13, 49, 2570 }, // ⁕
{ 11, 20, 13, 1, 19, 55, 2619 }, // ⁖
{ 20, 7, 19, 0, 18, 35, 2674 }, // ⁗
{ 19, 20, 21, 1, 19, 95, 2709 }, // ⁘
{ 19, 20, 21, 1, 19, 95, 2804 }, // ⁙
{ 4, 20, 6, 1, 19, 20, 2899 }, //
{ 15, 20, 16, 1, 19, 75, 2919 }, // ⁛
{ 19, 20, 20, 0, 19, 95, 2994 }, // ⁜
{ 4, 19, 7, 1, 18, 19, 3089 }, // ⁝
{ 4, 20, 7, 1, 19, 20, 3108 }, // ⁞
{ 0, 0, 6, 0, 0, 0, 3128 }, //
{ 0, 0, 15, 0, 0, 0, 3128 }, //
{ 0, 0, 15, 0, 0, 0, 3128 }, //
{ 0, 0, 15, 0, 0, 0, 3128 }, //
{ 0, 0, 15, 0, 0, 0, 3128 }, //
{ 0, 0, 15, 0, 0, 0, 3128 }, //
{ 0, 0, 0, 0, 0, 0, 3128 }, //
{ 0, 0, 0, 0, 0, 0, 3128 }, //
{ 0, 0, 0, 0, 0, 0, 3128 }, //
{ 0, 0, 0, 0, 0, 0, 3128 }, //
{ 6, 22, 0, -3, 18, 33, 3128 }, //
{ 6, 22, 0, -3, 18, 33, 3161 }, //
{ 6, 22, 0, -3, 18, 33, 3194 }, //
{ 6, 22, 0, -3, 18, 33, 3227 }, //
{ 6, 22, 0, -3, 18, 33, 3260 }, //
{ 6, 22, 0, -3, 18, 33, 3293 }, //
{ 9, 12, 9, 0, 22, 27, 0 }, // ⁰
{ 2, 12, 4, 1, 19, 6, 27 }, // ⁱ
{ 9, 12, 9, 0, 22, 27, 33 }, // ⁴
{ 8, 12, 9, 0, 22, 24, 60 }, // ⁵
{ 9, 12, 9, 0, 22, 27, 84 }, // ⁶
{ 9, 12, 9, 0, 22, 27, 111 }, // ⁷
{ 9, 12, 9, 0, 22, 27, 138 }, // ⁸
{ 9, 12, 9, 0, 22, 27, 165 }, // ⁹
{ 8, 8, 8, 0, 19, 16, 192 }, // ⁺
{ 8, 2, 8, 0, 16, 4, 208 }, // ⁻
{ 8, 5, 8, 0, 17, 10, 212 }, // ⁼
{ 5, 14, 6, 1, 23, 18, 222 }, // ⁽
{ 5, 14, 6, 0, 23, 18, 240 }, // ⁾
{ 8, 9, 10, 1, 16, 18, 258 }, // ⁿ
{ 9, 12, 9, 0, 8, 27, 276 }, // ₀
{ 6, 12, 9, 0, 8, 18, 303 }, // ₁
{ 8, 12, 9, 0, 8, 24, 321 }, // ₂
{ 9, 12, 9, 0, 8, 27, 345 }, // ₃
{ 9, 12, 9, 0, 8, 27, 372 }, // ₄
{ 8, 12, 9, 0, 8, 24, 399 }, // ₅
{ 9, 12, 9, 0, 8, 27, 423 }, // ₆
{ 9, 12, 9, 0, 8, 27, 450 }, // ₇
{ 9, 12, 9, 0, 8, 27, 477 }, // ₈
{ 9, 12, 9, 0, 8, 27, 504 }, // ₉
{ 8, 8, 8, 0, 6, 16, 531 }, // ₊
{ 8, 2, 8, 0, 3, 4, 547 }, // ₋
{ 8, 5, 8, 0, 4, 10, 551 }, // ₌
{ 5, 14, 6, 1, 9, 18, 561 }, // ₍
{ 5, 14, 6, 0, 9, 18, 579 }, // ₎
{ 8, 9, 9, 0, 6, 18, 597 }, // ₐ
{ 9, 9, 9, 0, 6, 21, 615 }, // ₑ
{ 9, 9, 10, 0, 6, 21, 636 }, // ₒ
{ 9, 9, 9, 0, 6, 21, 657 }, // ₓ
{ 9, 9, 9, 0, 6, 21, 678 }, // ₔ
{ 8, 12, 10, 1, 9, 24, 699 }, // ₕ
{ 8, 12, 9, 1, 9, 24, 723 }, // ₖ
{ 2, 12, 4, 1, 9, 6, 747 }, // ₗ
{ 13, 9, 15, 1, 6, 30, 753 }, // ₘ
{ 8, 9, 10, 1, 6, 18, 783 }, // ₙ
{ 9, 12, 10, 1, 6, 27, 801 }, // ₚ
{ 8, 9, 8, 0, 6, 18, 828 }, // ₛ
{ 6, 11, 6, 0, 8, 17, 846 }, // ₜ
{ 14, 19, 14, 0, 19, 67, 0 }, // ₠
{ 13, 21, 14, 1, 19, 69, 67 }, // ₡
{ 13, 20, 14, 1, 19, 65, 136 }, // ₢
{ 12, 18, 14, 1, 18, 54, 201 }, // ₣
{ 14, 19, 14, 0, 19, 67, 255 }, // ₤
{ 20, 20, 23, 2, 17, 100, 322 }, // ₥
{ 15, 18, 14, 0, 18, 68, 422 }, // ₦
{ 18, 19, 19, 1, 18, 86, 490 }, // ₧
{ 18, 19, 21, 2, 18, 86, 576 }, // ₨
{ 17, 18, 17, 0, 18, 77, 662 }, // ₩
{ 16, 18, 20, 2, 18, 72, 739 }, // ₪
{ 15, 23, 15, 1, 19, 87, 811 }, // ₫
{ 14, 20, 14, 0, 19, 70, 898 }, // €
{ 15, 18, 14, 0, 18, 68, 968 }, // ₭
{ 14, 18, 14, 0, 18, 63, 1036 }, // ₮
{ 24, 25, 24, 0, 19, 150, 1099 }, // ₯
{ 13, 25, 14, 0, 19, 82, 1249 }, // ₰
{ 15, 18, 14, 0, 18, 68, 1331 }, // ₱
{ 16, 21, 18, 1, 19, 84, 1399 }, // ₲
{ 16, 18, 15, 0, 18, 72, 1483 }, // ₳
{ 14, 20, 14, 0, 19, 70, 1555 }, // ₴
{ 15, 21, 16, 1, 19, 79, 1625 }, // ₵
{ 15, 18, 16, 0, 17, 68, 1704 }, // ₶
{ 17, 21, 18, 0, 19, 90, 1772 }, // ₷
{ 14, 18, 14, 0, 18, 63, 1862 }, // ₸
{ 12, 18, 14, 1, 18, 54, 1925 }, // ₹
{ 14, 19, 14, 0, 18, 67, 1979 }, // ₺
{ 20, 20, 20, 0, 19, 100, 2046 }, // ₻
{ 18, 18, 20, 1, 18, 81, 2146 }, // ₼
{ 14, 18, 15, 0, 18, 63, 2227 }, // ₽
{ 17, 20, 19, 1, 20, 85, 2290 }, // ₾
{ 12, 24, 14, 2, 21, 72, 2375 }, // ₿
{ 10, 18, 12, 1, 14, 45, 2447 }, // ⃀
{ 12, 3, 14, 1, 10, 9, 0 }, //
{ 23, 23, 25, 1, 19, 133, 0 }, // <20>
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
static const EpdUnicodeInterval notosans_12_regularIntervals[] = {
{ 0x0, 0x0, 0x0 },
{ 0xD, 0xD, 0x1 },
{ 0x20, 0x7E, 0x2 },
{ 0xA0, 0xFF, 0x61 },
{ 0x100, 0x17F, 0xC1 },
{ 0x300, 0x36F, 0x141 },
{ 0x400, 0x4FF, 0x1B1 },
{ 0x2000, 0x2064, 0x2B1 },
{ 0x2066, 0x206F, 0x316 },
{ 0x2070, 0x2071, 0x320 },
{ 0x2074, 0x208E, 0x322 },
{ 0x2090, 0x209C, 0x33D },
{ 0x20A0, 0x20C0, 0x34A },
{ 0x2212, 0x2212, 0x36B },
{ 0xFFFD, 0xFFFD, 0x36C },
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
static const EpdFontGroup notosans_12_regularGroups[] = {
{ 0, 2677, 4775, 97, 0 },
{ 2677, 2634, 5782, 96, 97 },
{ 5311, 3537, 8871, 128, 193 },
{ 8848, 958, 1272, 112, 321 },
{ 9806, 8509, 18641, 256, 433 },
{ 18315, 1758, 3326, 111, 689 },
{ 20073, 525, 863, 42, 800 },
{ 20598, 1619, 2492, 33, 842 },
{ 22217, 11, 9, 1, 875 },
{ 22228, 90, 133, 1, 876 },
};
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
static const EpdFontData notosans_12_regular = {
notosans_12_regularBitmaps,
notosans_12_regularGlyphs,
notosans_12_regularIntervals,
15,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
34,
27,
-8,
true,
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
notosans_12_regularGroups,
10,
Aleo, Noto Sans, Open Dyslexic fonts (#163) ## Summary * Swap out Bookerly font due to licensing issues, replace default font with Aleo * I did a bunch of searching around for a nice replacement font, and this trumped several other like Literata, Merriwether, Vollkorn, etc * Add Noto Sans, and Open Dyslexic as font options * They can be selected in the settings screen * Add font size options (Small, Medium, Large, Extra Large) * Adjustable in settings * Swap out uses of reader font in headings and replaced with slightly larger Ubuntu font * Replaced PixelArial14 font as it was difficult to track down, replace with Space Grotesk * Remove auto formatting on generated font files * Massively speeds up formatting step now that there is a lot more CPP font source * Include fonts with their licenses in the repo ## Additional Context Line compression setting will follow | Font | Small | Medium | Large | X Large | | --- | --- | --- | --- | --- | | Aleo | ![IMG_5704](https://github.com/user-attachments/assets/7acb054f-ddef-4080-b3c8-590cfaf13115) | ![IMG_5705](https://github.com/user-attachments/assets/d4819036-5c89-486e-92c3-86094fa4d89a) | ![IMG_5706](https://github.com/user-attachments/assets/35caf622-d126-4396-9c3e-f927eba1e1f4) | ![IMG_5707](https://github.com/user-attachments/assets/af32370a-6244-400f-bea9-5c27db040b5b) | | Noto Sans | ![IMG_5708](https://github.com/user-attachments/assets/1f9264a5-c069-4e22-9099-a082bfcaabc5) | ![IMG_5709](https://github.com/user-attachments/assets/ef6b07fe-8d87-403a-b152-05f50b69b78e) | ![IMG_5710](https://github.com/user-attachments/assets/112a5d20-262c-4dc0-b67d-980b237e4607) | ![IMG_5711](https://github.com/user-attachments/assets/d25e0e1d-2ace-450d-96dd-618e4efd4805) | | Open Dyslexic | ![IMG_5712](https://github.com/user-attachments/assets/ead64690-f261-4fae-a4a2-0becd1162e2d) | ![IMG_5713](https://github.com/user-attachments/assets/59d60f7d-5142-4591-96b0-c04e0a4c6436) | ![IMG_5714](https://github.com/user-attachments/assets/bb6652cd-1790-46a3-93ea-2b8f70d0d36d) | ![IMG_5715](https://github.com/user-attachments/assets/496e7eb4-c81a-4232-83e9-9ba9148fdea4) |
2025-12-30 18:21:47 +10:00
};