diff --git a/source/common/string_funcs.cpp b/source/common/string_funcs.cpp index eea49d6..398f396 100644 --- a/source/common/string_funcs.cpp +++ b/source/common/string_funcs.cpp @@ -19,31 +19,8 @@ std::string FormatString(const char* format, ...) std::string out_str(va_str); free(va_str); - + return out_str; } -int CountLines(const std::string& str) -{ - if (str.empty()) - return 0; - - return 1 + std::count_if(str.begin(), str.end(), [](char c) { return c == '\n'; }); -} - -void DeleteFirstLine(std::string* str) -{ - if (str->empty()) - return; - - size_t linebreak = str->find_first_of('\n'); - - if (linebreak == std::string::npos || linebreak + 1 > str->length()) { - *str = {}; - return; - } - - *str = str->substr(linebreak + 1); -} - } diff --git a/source/common/string_funcs.h b/source/common/string_funcs.h index feaa852..434b029 100644 --- a/source/common/string_funcs.h +++ b/source/common/string_funcs.h @@ -6,14 +6,4 @@ namespace Common { std::string FormatString(const char* format, ...); -/** - * Returns the number of lines (broken by '\n') in the string - */ -int CountLines(const std::string& str); - -/** - * Deletes the first line (broken by '\n') from the string - */ -void DeleteFirstLine(std::string* str); - } diff --git a/source/draw.cpp b/source/draw.cpp deleted file mode 100644 index 0d0cdce..0000000 --- a/source/draw.cpp +++ /dev/null @@ -1,98 +0,0 @@ -#include "draw.h" - -#include -#include -#include - -#include <3ds.h> - -#include "font.h" - -Rect GetScreenSize(gfxScreen_t screen) -{ - return { (screen == GFX_TOP) ? 400 : 320, 240 }; -} - -// This code is not meant to be readable -- Smea -int DrawCharacter(u8* fb, font_s* font, char c, s16 x, s16 y, u16 w, u16 h) -{ - Glyph* cd = &font->desc[(int)c]; - - if (!cd->data) - return 0; - - x += cd->xo; y += font->height - cd->yo - cd->h; - - if (x < 0 || x + cd->w >= w || y < -cd->h || y >= h + cd->h) - return 0; - - u8* charData = cd->data; - s16 cy = y, ch = cd->h, cyo = 0; - - if (y < 0) { - cy = 0; - cyo = -y; - ch = cd->h-cyo; - } else if (y + ch > h) { - ch = h - y; - } - - fb += (x * h + cy) * 3; - const u8 r = font->color[0]; - const u8 g = font->color[1]; - const u8 b = font->color[2]; - - for (int i = 0; i < cd->w; i++) { - charData += cyo; - for (int j = 0; j < ch; j++) { - u8 v = *(charData++); - if (v) { - fb[0] = (fb[0] * (0xFF - v) + (b * v)) >> 8; - fb[1] = (fb[1] * (0xFF - v) + (g * v)) >> 8; - fb[2] = (fb[2] * (0xFF - v) + (r * v)) >> 8; - } - fb += 3; - } - charData += (cd->h - (cyo + ch)); - fb += (h - ch) * 3; - } - return cd->xa; -} - -void DrawString(u8* fb, font_s* f, const std::string& str, s16 x, s16 y, u16 w, u16 h) -{ - if (!f || !fb) - return; - - int dx = 0, dy = 0; - for (const char& c : str) - { - dx += DrawCharacter(fb, f, c, x + dx, y + dy, w, h); - if (c == '\n') { - dx = 0; - dy -= f->height; - } - } -} - -void DrawText(gfxScreen_t screen, gfx3dSide_t side, font_s* font, const std::string& str, s16 x, s16 y) -{ - if (!font) - font = &fontDefault; - - u16 fbWidth, fbHeight; - u8* fbAdr = gfxGetFramebuffer(screen, side, &fbWidth, &fbHeight); - - DrawString(fbAdr, font, str, y, x, fbHeight, fbWidth); -} - -void FillScreen(gfxScreen_t screen, u8 bg_r, u8 bg_g, u8 bg_b) -{ - Rect screen_size = GetScreenSize(screen); - u8* fb_addr = gfxGetFramebuffer(screen, GFX_LEFT, nullptr, nullptr); - for (int i = 0; i < screen_size.w * screen_size.h * 3; i += 3) { - fb_addr[i] = bg_b; - fb_addr[i+1] = bg_g; - fb_addr[i+2] = bg_r; - } -} diff --git a/source/draw.h b/source/draw.h deleted file mode 100644 index c2b78ad..0000000 --- a/source/draw.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include - -#include <3ds.h> - -#include "font.h" - -struct Rect { - int w, h; -}; - -Rect GetScreenSize(gfxScreen_t screen); - -int DrawCharacter(u8* fb, font_s* f, char c, s16 x, s16 y, u16 w, u16 h); -void DrawString(u8* fb, font_s* f, const std::string& str, s16 x, s16 y, u16 w, u16 h); -void DrawText(gfxScreen_t screen, gfx3dSide_t side, font_s* f, const std::string& str, s16 x, s16 y); -void FillScreen(gfxScreen_t screen, u8 bg_r, u8 bg_g, u8 bg_b); diff --git a/source/font.cpp b/source/font.cpp deleted file mode 100644 index 20f7ae7..0000000 --- a/source/font.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include <3ds.h> -#include "font.h" - -font_s fontDefault = { - font1Data, - font1Desc, - 16, - { 0xFF, 0xFF, 0xFF } -}; diff --git a/source/font.h b/source/font.h deleted file mode 100644 index b0dc182..0000000 --- a/source/font.h +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -struct Glyph { - // Glyph representation - char c; - - // x and y origin of the character. - int x, y; - - // width and height in pixels. - int w, h; - - // x and y offset - int xo, yo; - - // Pixels after this character to begin - // drawing the next one. - int xa; - - // Glyph data. - u8* data; -}; - -struct font_s { - u8* data; - Glyph* desc; - u8 height; - u8 color[3]; -}; - -extern u8 font1Data[]; -extern Glyph font1Desc[]; - -extern font_s fontDefault; diff --git a/source/font1.cpp b/source/font1.cpp deleted file mode 100644 index b589d0d..0000000 --- a/source/font1.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#include <3ds.h> -#include "font.h" -Glyph font1Desc[] = { - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {' ', 240, 8, 5, 3, -2, 13, 3, &font1Data[0]}, - {'!', 63, 0, 5, 11, -1, 2, 3, &font1Data[15]}, - {'"', 137, 9, 6, 5, -1, 2, 4, &font1Data[70]}, - {'#', 30, 53, 9, 10, -1, 2, 7, &font1Data[100]}, - {'$', 246, 0, 8, 13, -1, 1, 6, &font1Data[190]}, - {'%', 192, 15, 12, 11, -1, 2, 10, &font1Data[294]}, - {'&', 48, 29, 11, 11, -1, 2, 8, &font1Data[426]}, - {'\'', 144, 9, 5, 5, -1, 2, 3, &font1Data[547]}, - {'(', 78, 15, 6, 13, -1, 2, 4, &font1Data[572]}, - {')', 99, 15, 5, 13, -1, 2, 4, &font1Data[650]}, - {'*', 103, 9, 7, 6, -1, 2, 5, &font1Data[715]}, - {'+', 28, 12, 8, 7, 0, 5, 8, &font1Data[757]}, - {',', 251, 39, 4, 5, -1, 10, 3, &font1Data[813]}, - {'-', 214, 9, 7, 3, -1, 7, 5, &font1Data[833]}, - {'.', 234, 9, 5, 3, -1, 10, 3, &font1Data[854]}, - {'/', 146, 15, 8, 12, -2, 2, 5, &font1Data[869]}, - {'0', 174, 51, 8, 11, -1, 2, 6, &font1Data[965]}, - {'1', 56, 0, 6, 11, -1, 2, 5, &font1Data[1053]}, - {'2', 183, 51, 8, 11, -1, 2, 6, &font1Data[1119]}, - {'3', 192, 51, 8, 11, -1, 2, 6, &font1Data[1207]}, - {'4', 189, 27, 9, 11, -1, 2, 7, &font1Data[1295]}, - {'5', 201, 51, 8, 11, -1, 2, 6, &font1Data[1394]}, - {'6', 210, 51, 8, 11, -1, 2, 6, &font1Data[1482]}, - {'7', 206, 39, 8, 11, -1, 2, 6, &font1Data[1570]}, - {'8', 219, 51, 8, 11, -1, 2, 6, &font1Data[1658]}, - {'9', 228, 51, 8, 11, -1, 2, 6, &font1Data[1746]}, - {':', 232, 0, 5, 8, -1, 5, 3, &font1Data[1834]}, - {';', 83, 53, 5, 10, -1, 5, 3, &font1Data[1874]}, - {'<', 10, 12, 8, 7, 0, 5, 8, &font1Data[1924]}, - {'=', 111, 9, 8, 5, 0, 6, 8, &font1Data[1980]}, - {'>', 19, 12, 8, 7, 0, 5, 8, &font1Data[2020]}, - {'?', 26, 0, 7, 11, -1, 2, 5, &font1Data[2076]}, - {'@', 111, 15, 13, 12, -1, 2, 11, &font1Data[2153]}, - {'A', 83, 29, 10, 11, -1, 2, 8, &font1Data[2309]}, - {'B', 50, 41, 9, 11, -1, 2, 7, &font1Data[2419]}, - {'C', 138, 28, 10, 11, -1, 2, 7, &font1Data[2518]}, - {'D', 127, 28, 10, 11, -1, 2, 8, &font1Data[2628]}, - {'E', 237, 51, 8, 11, -1, 2, 6, &font1Data[2738]}, - {'F', 246, 51, 8, 11, -1, 2, 6, &font1Data[2826]}, - {'G', 116, 28, 10, 11, -1, 2, 8, &font1Data[2914]}, - {'H', 72, 29, 10, 11, -1, 2, 8, &font1Data[3024]}, - {'I', 81, 0, 5, 11, -1, 2, 3, &font1Data[3134]}, - {'J', 34, 0, 7, 11, -2, 2, 4, &font1Data[3189]}, - {'K', 150, 40, 9, 11, -1, 2, 7, &font1Data[3266]}, - {'L', 9, 0, 8, 11, -1, 2, 6, &font1Data[3365]}, - {'M', 218, 15, 12, 11, -1, 2, 10, &font1Data[3453]}, - {'N', 24, 29, 11, 11, -1, 2, 9, &font1Data[3585]}, - {'O', 60, 29, 11, 11, -1, 2, 9, &font1Data[3706]}, - {'P', 40, 41, 9, 11, -1, 2, 7, &font1Data[3827]}, - {'Q', 125, 15, 11, 12, -1, 2, 9, &font1Data[3926]}, - {'R', 209, 27, 9, 11, -1, 2, 7, &font1Data[4058]}, - {'S', 170, 39, 8, 11, -1, 2, 6, &font1Data[4157]}, - {'T', 239, 27, 9, 11, -1, 2, 6, &font1Data[4245]}, - {'U', 94, 29, 10, 11, -1, 2, 8, &font1Data[4344]}, - {'V', 105, 29, 10, 11, -1, 2, 7, &font1Data[4454]}, - {'W', 164, 15, 13, 11, -1, 2, 11, &font1Data[4564]}, - {'X', 30, 41, 9, 11, -1, 2, 7, &font1Data[4707]}, - {'Y', 149, 28, 9, 11, -1, 2, 7, &font1Data[4806]}, - {'Z', 159, 28, 9, 11, -1, 2, 7, &font1Data[4905]}, - {'[', 85, 15, 6, 13, -1, 2, 4, &font1Data[5004]}, - {'\\', 155, 15, 8, 12, -2, 2, 4, &font1Data[5082]}, - {']', 105, 15, 5, 13, -1, 2, 4, &font1Data[5178]}, - {'^', 46, 12, 8, 7, 0, 2, 8, &font1Data[5243]}, - {'_', 188, 9, 9, 3, -2, 12, 5, &font1Data[5299]}, - {'`', 172, 9, 5, 4, -1, 2, 3, &font1Data[5326]}, - {'a', 162, 0, 8, 8, -1, 5, 6, &font1Data[5346]}, - {'b', 179, 27, 9, 11, -1, 2, 7, &font1Data[5410]}, - {'c', 180, 0, 8, 8, -1, 5, 5, &font1Data[5509]}, - {'d', 160, 40, 9, 11, -1, 2, 7, &font1Data[5573]}, - {'e', 189, 0, 8, 8, -1, 5, 6, &font1Data[5672]}, - {'f', 179, 39, 8, 11, -2, 2, 4, &font1Data[5736]}, - {'g', 219, 27, 9, 11, -1, 5, 7, &font1Data[5824]}, - {'h', 229, 27, 9, 11, -1, 2, 7, &font1Data[5923]}, - {'i', 69, 0, 5, 11, -1, 2, 3, &font1Data[6022]}, - {'j', 204, 0, 7, 14, -3, 2, 3, &font1Data[6077]}, - {'k', 188, 39, 8, 11, -1, 2, 6, &font1Data[6175]}, - {'l', 75, 0, 5, 11, -1, 2, 3, &font1Data[6263]}, - {'m', 87, 0, 12, 8, -1, 5, 10, &font1Data[6318]}, - {'n', 122, 0, 9, 8, -1, 5, 7, &font1Data[6414]}, - {'o', 132, 0, 9, 8, -1, 5, 7, &font1Data[6486]}, - {'p', 60, 41, 9, 11, -1, 5, 7, &font1Data[6558]}, - {'q', 199, 27, 9, 11, -1, 5, 7, &font1Data[6657]}, - {'r', 216, 0, 7, 8, -1, 5, 4, &font1Data[6756]}, - {'s', 224, 0, 7, 8, -1, 5, 5, &font1Data[6812]}, - {'t', 67, 53, 7, 10, -2, 3, 4, &font1Data[6868]}, - {'u', 142, 0, 9, 8, -1, 5, 7, &font1Data[6938]}, - {'v', 171, 0, 8, 8, -1, 5, 6, &font1Data[7010]}, - {'w', 100, 0, 11, 8, -1, 5, 8, &font1Data[7074]}, - {'x', 198, 0, 8, 8, -1, 5, 5, &font1Data[7162]}, - {'y', 197, 39, 8, 11, -1, 5, 6, &font1Data[7226]}, - {'z', 207, 0, 8, 8, -1, 5, 5, &font1Data[7314]}, - {'{', 92, 15, 6, 13, -1, 2, 4, &font1Data[7378]}, - {'|', 234, 0, 5, 14, -1, 2, 3, &font1Data[7456]}, - {'}', 71, 15, 6, 13, -1, 2, 4, &font1Data[7526]}, - {'~', 156, 9, 8, 4, 0, 6, 8, &font1Data[7604]}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {' ', 222, 9, 5, 3, -2, 13, 3, &font1Data[7636]}, - {'¡', 89, 53, 5, 10, -1, 5, 3, &font1Data[7651]}, - {'¢', 40, 53, 8, 10, -1, 3, 6, &font1Data[7701]}, - {'£', 169, 27, 9, 11, -1, 2, 6, &font1Data[7781]}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, - {0, 0, 0, 0, 0, 0, 0, 0, nullptr}, -}; -u8 font1Data[] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0xce, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0xb5, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x43, 0x43, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0x0, 0x0, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x80, 0x5e, 0xff, 0x13, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0xff, 0x82, 0x9c, 0xff, 0x52, 0x43, 0x0, 0x0, 0x52, 0x43, 0xff, 0x13, 0x13, 0xff, 0x43, 0x80, 0x0, 0x0, 0x43, 0x80, 0xff, 0x9c, 0x9b, 0xff, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x22, 0xff, 0x5e, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0x22, 0xce, 0xa7, 0xb5, 0x5e, 0x0, 0x0, 0x0, 0x43, 0xff, 0x43, 0x43, 0x43, 0xe6, 0x9c, 0x43, 0x56, 0xff, 0x43, 0x0, 0x0, 0x52, 0xff, 0x65, 0x52, 0xa9, 0xe6, 0x52, 0x52, 0x52, 0xff, 0x52, 0x0, 0x0, 0x0, 0x5e, 0xb5, 0xa7, 0xce, 0x22, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x80, 0x80, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x43, 0x43, 0xce, 0x0, 0x0, 0xb5, 0x5e, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0x8c, 0x9b, 0x43, 0x0, 0xce, 0x5e, 0x5e, 0xce, 0x0, 0x0, 0x0, 0x0, 0x22, 0xa7, 0x80, 0x35, 0x5e, 0x5e, 0x13, 0x0, 0x0, 0x43, 0x9b, 0x9b, 0x43, 0x43, 0x9b, 0x5e, 0x13, 0x0, 0x0, 0x0, 0xf3, 0x22, 0x22, 0xf3, 0x0, 0x0, 0x5e, 0x9c, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x13, 0xa7, 0x0, 0x0, 0xb3, 0x80, 0x80, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x8c, 0xc2, 0x13, 0x13, 0x5e, 0x43, 0x0, 0x0, 0x0, 0xff, 0x13, 0x0, 0x43, 0xce, 0xb5, 0x8c, 0xa7, 0x8c, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0xe6, 0x44, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x5e, 0xe6, 0x22, 0xda, 0x22, 0x43, 0xff, 0x0, 0x0, 0xb3, 0x5e, 0xe6, 0x22, 0x0, 0x43, 0x9b, 0xc2, 0x5e, 0x0, 0x0, 0x5e, 0xce, 0x9c, 0x43, 0x22, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0xf3, 0x13, 0x43, 0x80, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x43, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9b, 0xb5, 0xa7, 0x80, 0x9b, 0xb5, 0x9b, 0x5e, 0x0, 0x0, 0x0, 0xa7, 0x8c, 0x22, 0x13, 0x0, 0x0, 0x0, 0x13, 0x22, 0x8c, 0xa7, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa7, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xa7, 0x0, 0x0, 0x43, 0x9c, 0x80, 0x43, 0x22, 0x22, 0x22, 0x43, 0x80, 0x9c, 0x43, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0x9b, 0x9b, 0x9b, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xb5, 0x43, 0xda, 0x13, 0x0, 0x0, 0x26, 0xe7, 0x9c, 0x9c, 0x0, 0x0, 0x9c, 0x43, 0xce, 0x13, 0x0, 0x0, 0x13, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x5e, 0xff, 0x5e, 0x5e, 0x0, 0x0, 0x5e, 0x5e, 0xff, 0x5e, 0x5e, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x5e, 0x43, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x80, 0xb5, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xb5, 0x80, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0x9b, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x80, 0x80, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x43, 0x43, 0x5e, 0x8c, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x43, 0xce, 0x8c, 0x5e, 0x5e, 0x5e, 0x8c, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x8c, 0x8c, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x65, 0xe6, 0x0, 0x0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0xff, 0x5e, 0xce, 0x22, 0x0, 0x0, 0x0, 0x52, 0xb3, 0x0, 0x0, 0xff, 0x0, 0x22, 0xda, 0x13, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xc2, 0x13, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x43, 0x9c, 0xa7, 0xb5, 0x5e, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x43, 0xce, 0x8c, 0x22, 0x43, 0xf3, 0x0, 0x0, 0x43, 0xce, 0xa7, 0xc2, 0x13, 0x8c, 0xb5, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x22, 0x43, 0x13, 0x0, 0x0, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x80, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x43, 0xb5, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x22, 0x80, 0x80, 0x22, 0x0, 0x0, 0x9b, 0x9b, 0xff, 0x9b, 0x9b, 0x9b, 0x9b, 0xce, 0xce, 0x0, 0x0, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0xce, 0x9c, 0xb5, 0x9b, 0xb3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x13, 0x22, 0x22, 0xff, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xce, 0x80, 0xce, 0x5e, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x22, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x8c, 0x8c, 0xe6, 0xa9, 0x9b, 0xb3, 0x0, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x22, 0xe6, 0x0, 0x5e, 0xb3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x8c, 0xa7, 0x5e, 0x5e, 0xb3, 0xb3, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x5e, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x80, 0xb5, 0x9b, 0x5e, 0x22, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x13, 0x22, 0x5e, 0xb5, 0x80, 0x22, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x9b, 0x80, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x8c, 0x43, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0xb3, 0xb3, 0x5e, 0xc2, 0x43, 0xb5, 0x80, 0xb5, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0xf3, 0x22, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0xf3, 0x22, 0x0, 0x22, 0xff, 0x0, 0x0, 0xb3, 0xb3, 0x5e, 0xc2, 0x43, 0xb5, 0x80, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x5e, 0x8c, 0x43, 0x0, 0x13, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x43, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xc2, 0x8c, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0xce, 0x5e, 0x0, 0xf3, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x13, 0xb3, 0xa7, 0x9c, 0xce, 0x8c, 0x8c, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x13, 0x0, 0x0, 0x0, 0x0, 0xce, 0x43, 0xce, 0x0, 0x0, 0x0, 0x22, 0xe6, 0x0, 0xf3, 0x13, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x43, 0xce, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0xb3, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xb3, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x43, 0xce, 0x0, 0x0, 0x22, 0xe6, 0x0, 0xf3, 0x13, 0x0, 0x0, 0x0, 0xce, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x43, 0x0, 0x0, 0x22, 0x13, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xda, 0x0, 0x0, 0x9b, 0x9c, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x13, 0xc2, 0x43, 0x43, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x80, 0xa7, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x22, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x80, 0x9c, 0x9b, 0x9b, 0x9c, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x13, 0xc2, 0x43, 0x13, 0x0, 0x0, 0x13, 0x5e, 0xb3, 0x0, 0x0, 0x0, 0xce, 0x43, 0x22, 0x80, 0x9b, 0x80, 0x5e, 0x0, 0x8c, 0x8c, 0x0, 0x0, 0xff, 0x0, 0xe6, 0x43, 0x22, 0x43, 0x8c, 0x8c, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x72, 0xb3, 0x5e, 0x43, 0x43, 0xf3, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xce, 0x8c, 0x8c, 0x80, 0xa7, 0xb5, 0x0, 0xff, 0x0, 0x0, 0x5e, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9b, 0x5e, 0x5e, 0x5e, 0x9b, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0xce, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x8c, 0xc2, 0xc2, 0x8c, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x13, 0x43, 0x8c, 0xb6, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x43, 0x5e, 0xa7, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x43, 0xff, 0xc2, 0xc2, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0xb3, 0xc2, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0xff, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x22, 0x0, 0x22, 0xe6, 0x5e, 0x13, 0x43, 0xf3, 0x0, 0x0, 0x5e, 0xce, 0x80, 0xce, 0x22, 0x8c, 0x9c, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x22, 0x43, 0x22, 0x0, 0x0, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x8c, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0x0, 0x0, 0xff, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0xce, 0x13, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x5e, 0xa7, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0x9c, 0x9c, 0x9c, 0xce, 0x9c, 0x9c, 0x9c, 0xce, 0x0, 0x0, 0xff, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x5e, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x43, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x8c, 0xa7, 0xa7, 0xa7, 0xf3, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xc2, 0xb5, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0x0, 0x0, 0x0, 0x13, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x80, 0xe6, 0xa9, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x22, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x8c, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0x22, 0x0, 0x0, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xda, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0xff, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xc2, 0xe6, 0xda, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x35, 0x72, 0xc2, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0xa7, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xb5, 0x80, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0x9b, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x35, 0x9b, 0xa9, 0x80, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xc2, 0xce, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x80, 0xda, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xb3, 0xb3, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xb3, 0xb3, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xda, 0x72, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0xb5, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0xce, 0x13, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x8c, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xce, 0xb5, 0xb5, 0xb5, 0xce, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xce, 0x80, 0xc2, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xce, 0x5e, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xce, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x13, 0xb3, 0x8c, 0x0, 0x0, 0xf3, 0x13, 0x8c, 0xb5, 0x8c, 0x5e, 0x8c, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0xce, 0x9c, 0x9c, 0x9c, 0xce, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0xff, 0x13, 0x13, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x22, 0x8c, 0xda, 0xb3, 0x5e, 0x13, 0x43, 0xf3, 0x0, 0x0, 0x8c, 0xb5, 0x5e, 0x22, 0x0, 0xb3, 0xb5, 0xc2, 0x43, 0x0, 0x0, 0x8c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x22, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x44, 0x0, 0x0, 0x0, 0x13, 0x43, 0x43, 0x0, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x0, 0x13, 0xc2, 0x80, 0xc2, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xce, 0x43, 0x0, 0x13, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x8c, 0xa7, 0x8c, 0xda, 0x13, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0xff, 0x0, 0x0, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0x8c, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x13, 0xb3, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0xce, 0x8c, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x8c, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x13, 0x8c, 0x9c, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0xb5, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0xda, 0xc2, 0x56, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x80, 0x9c, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0xb5, 0x8c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x8c, 0xb5, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0x8c, 0xa7, 0xb5, 0x80, 0x5e, 0x22, 0x13, 0x0, 0x0, 0x0, 0x0, 0xb3, 0xce, 0x8e, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x43, 0x80, 0xb5, 0x9b, 0x5e, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x44, 0x9c, 0xce, 0xb5, 0x0, 0x0, 0x0, 0x13, 0x43, 0x5e, 0xa7, 0xb5, 0x80, 0x5e, 0x22, 0x0, 0x0, 0xb3, 0xb5, 0xa7, 0x5e, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xa7, 0x9b, 0x8c, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x80, 0xb5, 0x9b, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x8c, 0xb5, 0x43, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xb3, 0x0, 0x0, 0x0, 0x22, 0xa7, 0xa7, 0x22, 0x8c, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9c, 0xce, 0xb6, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xb3, 0x22, 0x8c, 0xa7, 0x43, 0x0, 0x0, 0x0, 0xb3, 0xc2, 0x43, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xb3, 0x0, 0x0, 0x8c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xc2, 0x5e, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0xa7, 0xa7, 0x43, 0x13, 0x0, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0xa7, 0xdb, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xa7, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0xa7, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0xff, 0x9c, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xff, 0x13, 0x8c, 0xa7, 0x22, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x43, 0xb5, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x13, 0x8c, 0x9b, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x9b, 0xff, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xce, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0xce, 0x0, 0x0, 0xf3, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0xf3, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xb5, 0x80, 0x43, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xb5, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xff, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0xff, 0x0, 0x0, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9c, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x5e, 0x90, 0x8c, 0x0, 0x0, 0x0, 0x13, 0x5e, 0x9c, 0x5e, 0x0, 0x0, 0x5e, 0x9c, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x5e, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x5e, 0xb3, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x8c, 0x5e, 0x0, 0x0, 0x13, 0x0, 0x0, 0xe6, 0x5e, 0xb3, 0x5e, 0x0, 0xce, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x22, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0x9c, 0xda, 0x80, 0xf3, 0xa7, 0xb3, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xc2, 0xe6, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0xda, 0x5e, 0x13, 0x13, 0x5e, 0xc1, 0x13, 0x13, 0x13, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x8c, 0x5e, 0xc2, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x5e, 0xc2, 0x5e, 0x5e, 0xda, 0x43, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xce, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x5e, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0xe6, 0x9b, 0x9b, 0xda, 0xa9, 0x9b, 0x9b, 0x9b, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x8c, 0x43, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0xff, 0xa7, 0x5e, 0x0, 0x0, 0xff, 0x13, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0xff, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xff, 0x8c, 0xb3, 0x0, 0x0, 0x22, 0x0, 0x0, 0x8c, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0x9b, 0xff, 0x9b, 0xa7, 0x43, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x43, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x22, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xce, 0x8c, 0x13, 0xb3, 0x5e, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x13, 0xb3, 0xb5, 0x9b, 0xe6, 0x9b, 0x9b, 0xda, 0xa9, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x8c, 0x9b, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0xce, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0xce, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x5e, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x22, 0xb3, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0xa9, 0xce, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x26, 0xce, 0xe6, 0x35, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x22, 0xc2, 0x43, 0x22, 0xce, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x43, 0x0, 0x0, 0x22, 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0xb5, 0xda, 0xa9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x5e, 0x5e, 0x5e, 0x5e, 0x8c, 0xce, 0x0, 0x0, 0x8c, 0x8c, 0x8c, 0x8c, 0xe6, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x80, 0x80, 0x80, 0xa7, 0xc2, 0xb3, 0x0, 0x0, 0x43, 0x43, 0x43, 0x43, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x5e, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0xce, 0x5e, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x5e, 0xda, 0x5e, 0x5e, 0xda, 0x43, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xf3, 0x13, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x43, 0xc2, 0x5e, 0x5e, 0xc2, 0x5e, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xe6, 0xb5, 0xb5, 0xe6, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0xc1, 0x5e, 0x13, 0x13, 0x5e, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x13, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0xce, 0x8c, 0x5e, 0xc2, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x5e, 0x5e, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0xc2, 0x5e, 0x5e, 0xda, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x13, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x5e, 0x0, 0x0, 0x43, 0xce, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0x9b, 0xe6, 0x9b, 0x9b, 0xda, 0xa9, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x9b, 0x9b, 0x9b, 0xb5, 0xda, 0xa9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x26, 0x0, 0x22, 0x5e, 0x13, 0x0, 0x0, 0xf3, 0x13, 0x0, 0xe6, 0x5e, 0xce, 0x0, 0x0, 0xff, 0x0, 0x8c, 0x8c, 0x0, 0xff, 0x0, 0x0, 0xce, 0x5e, 0xf3, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x13, 0x5e, 0x43, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x13, 0x13, 0xce, 0x13, 0x13, 0x0, 0x0, 0x8c, 0x9b, 0xb5, 0xb5, 0xb5, 0xff, 0xb5, 0xb5, 0x0, 0x0, 0xff, 0x22, 0x22, 0x22, 0x22, 0xff, 0x22, 0x22, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x5e, 0xce, 0x9b, 0x9b, 0x9b, 0x9b, 0x0, 0x0, 0xff, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x5e, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0xb5, 0xe6, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0xce, 0x9c, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x9b, 0xa7, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x80, 0x9c, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0x43, 0x8c, 0x9b, 0x9b, 0x5e, 0x43, 0x0, 0x0, 0xc2, 0xa9, 0x65, 0x13, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0x9c, 0x80, 0x43, 0x0, 0x0, 0x0, 0x13, 0x22, 0x72, 0xce, 0xc2, 0x0, 0x0, 0x8c, 0xa9, 0x9b, 0x5e, 0x22, 0x13, 0x0, 0x0, 0x8c, 0xa9, 0x80, 0x43, 0x22, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x80, 0xb5, 0xa7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x13, 0x0, 0x0, 0x13, 0xb3, 0x0, 0x0, 0x5e, 0xb5, 0x22, 0x43, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x35, 0xe6, 0xf3, 0x22, 0x0, 0x0, 0x0, 0x43, 0xb5, 0x5e, 0x5e, 0x9b, 0x22, 0x0, 0x0, 0xc2, 0x22, 0x0, 0x0, 0x22, 0xce, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0xa7, 0x0, 0x0, 0xe6, 0x5e, 0x13, 0x13, 0x43, 0x80, 0xb5, 0x8c, 0x43, 0x0, 0x0, 0x22, 0xb3, 0xb5, 0xce, 0x8e, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x9c, 0x80, 0x43, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x43, 0xa7, 0xb5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0xff, 0x9b, 0x22, 0x0, 0x0, 0xff, 0x0, 0x0, 0xff, 0x22, 0xce, 0x22, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, 0x22, 0xb5, 0x43, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x13, 0xa7, 0xff, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x8c, 0x80, 0x80, 0xa7, 0x5e, 0xa7, 0x80, 0x80, 0x8c, 0x43, 0x0, 0x0, 0xe7, 0x5e, 0x43, 0x43, 0x43, 0x0, 0x43, 0x43, 0x43, 0x5e, 0xe7, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x0, 0x0, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0xb5, 0x0, 0x0, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0xb3, 0x9b, 0x9b, 0x9b, 0x80, 0x13, 0x80, 0x9b, 0x9b, 0x9b, 0xb3, 0x0, 0x0, 0x0, 0x22, 0x22, 0x22, 0x43, 0xb5, 0x43, 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9b, 0x43, 0x0, 0x0, 0x22, 0xf3, 0x0, 0x0, 0x22, 0xe6, 0x0, 0x0, 0xe6, 0x22, 0x0, 0x0, 0xf3, 0x22, 0x0, 0x0, 0x43, 0x9b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0xa7, 0xa7, 0xa7, 0x9b, 0x9b, 0x9b, 0x0, 0xce, 0x0, 0x0, 0x43, 0x43, 0x43, 0x22, 0x22, 0x22, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0xb3, 0xb5, 0xb5, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x5e, 0x13, 0x13, 0x8c, 0xb3, 0x0, 0x0, 0x0, 0x80, 0xff, 0x80, 0x80, 0x80, 0x80, 0xff, 0x80, 0x0, 0x0, 0x43, 0xff, 0x43, 0x43, 0x43, 0x43, 0xff, 0x43, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xa7, 0x43, 0x43, 0xff, 0x43, 0x43, 0x22, 0x0, 0x0, 0x0, 0xff, 0x43, 0xa7, 0xa7, 0xff, 0xa7, 0xa7, 0xce, 0x5e, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x22, 0xff, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0xce, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00}; diff --git a/source/main.cpp b/source/main.cpp index 2b63c14..687cc8f 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -21,17 +21,18 @@ int main(int argc, char** argv) gfxInitDefault(); InitOutput(); - ClearScreens(); - Print(GFX_TOP, "Press A to begin...\n"); + consoleClear(); + Print("Press A to begin...\n"); while (aptMainLoop()) { - DrawBuffers(); + gfxFlushBuffers(); + gfxSwapBuffers(); hidScanInput(); if (hidKeysDown() & KEY_START) { break; } else if (hidKeysDown() & KEY_A) { - ClearScreens(); + consoleClear(); if (test_counter < (sizeof(tests) / sizeof(tests[0]))) { tests[test_counter](); @@ -40,15 +41,15 @@ int main(int argc, char** argv) break; } - Log(GFX_TOP, "\n"); - Print(GFX_TOP, "Press A to continue...\n"); + Log("\n"); + Print("Press A to continue...\n"); } gspWaitForEvent(GSPEVENT_VBlank0, false); } - ClearScreens(); - + consoleClear(); + gfxExit(); DeinitOutput(); diff --git a/source/output.cpp b/source/output.cpp index aa9c937..16ad9ea 100644 --- a/source/output.cpp +++ b/source/output.cpp @@ -2,80 +2,29 @@ #include "output.h" -#include #include -#include "draw.h" -#include "common/string_funcs.h" +//#include "common/string_funcs.h" -static FILE* log_file; - -static std::string buffer_top; -static std::string buffer_bottom; - -static std::string& GetTextBuffer(gfxScreen_t screen) -{ - switch (screen) { - case GFX_TOP: return buffer_top; - case GFX_BOTTOM: return buffer_bottom; - } - return buffer_top; -} - -static void DrawBuffer(gfxScreen_t screen) -{ - Rect screen_size = GetScreenSize(screen); - std::string& text_buffer = GetTextBuffer(screen); - - int lines = Common::CountLines(text_buffer); - while (lines > (screen_size.h / fontDefault.height - 3)) { - Common::DeleteFirstLine(&text_buffer); - lines--; - } - DrawText(screen, GFX_LEFT, nullptr, text_buffer, screen_size.h - fontDefault.height * 3, 10); -} +static FILE* log_file = nullptr; void InitOutput() { sdmcInit(); + consoleInit(GFX_TOP, nullptr); log_file = fopen("hwtest_log.txt", "w"); } -void DrawBuffers() +void Print(const std::string& text) { - FillScreen(GFX_TOP, 0x00, 0x66, 0x88); - DrawBuffer(GFX_TOP); - - FillScreen(GFX_BOTTOM, 0x00, 0x00, 0x00); - DrawBuffer(GFX_BOTTOM); - + printf("%s", text.c_str()); gfxFlushBuffers(); gfxSwapBuffers(); } -void ClearScreen(gfxScreen_t screen, u8 bg_r, u8 bg_g, u8 bg_b) +void Log(const std::string& text) { - FillScreen(screen, bg_r, bg_g, bg_b); - GetTextBuffer(screen).clear(); - gfxFlushBuffers(); - gfxSwapBuffers(); -} - -void ClearScreens() -{ - ClearScreen(GFX_TOP, 0x00, 0x66, 0x88); - ClearScreen(GFX_BOTTOM, 0x00, 0x00, 0x00); -} - -void Print(gfxScreen_t screen, const std::string& text) -{ - GetTextBuffer(screen) += text; - DrawBuffers(); -} - -void Log(gfxScreen_t screen, const std::string& text) -{ - Print(screen, text); + Print(text); LogToFile(text); } @@ -83,10 +32,12 @@ void LogToFile(const std::string& text) { svcOutputDebugString(text.c_str(), text.length()); fprintf(log_file, "%s", text.c_str()); + fflush(log_file); } void DeinitOutput() { fclose(log_file); + log_file = nullptr; sdmcExit(); } diff --git a/source/output.h b/source/output.h index 8c59056..918d4d9 100644 --- a/source/output.h +++ b/source/output.h @@ -6,18 +6,13 @@ void InitOutput(); -void DrawBuffers(); - /// Prints `text` to `screen`. -void Print(gfxScreen_t screen, const std::string& text); +void Print(const std::string& text); /// Prints `text` to `screen`, and logs it in the log file. -void Log(gfxScreen_t screen, const std::string& text); +void Log(const std::string& text); /// Logs `text` to the log file. void LogToFile(const std::string& text); -void ClearScreen(gfxScreen_t screen, u8 bg_r, u8 bg_g, u8 bg_b); -void ClearScreens(); - void DeinitOutput(); diff --git a/source/tests/gpu/displaytransfer.cpp b/source/tests/gpu/displaytransfer.cpp index c2ddcd5..4038ce9 100644 --- a/source/tests/gpu/displaytransfer.cpp +++ b/source/tests/gpu/displaytransfer.cpp @@ -44,7 +44,7 @@ static void DisplayTransferAndWait(u32* input, u32* output, Dimensions input_dim GSPGPU_InvalidateDataCache(nullptr, (u8*)output, sizeof(u32)); Result res = GX_SetDisplayTransfer(nullptr, (u32*)input, input_dimensions.raw, (u32*)output, output_dimensions.raw, flags); if ((u32)res != 0) { - Log(GFX_BOTTOM, Common::FormatString("Something went wrong: %u\r\n", (u32)res)); + Log(Common::FormatString("Something went wrong: %u\n", (u32)res)); return; } gfxFlushBuffers(); @@ -388,4 +388,4 @@ void TestAll() { } } -} \ No newline at end of file +} diff --git a/source/tests/test.cpp b/source/tests/test.cpp index afab5e5..280b6af 100644 --- a/source/tests/test.cpp +++ b/source/tests/test.cpp @@ -7,11 +7,11 @@ void SoftAssertLog(const std::string& function, int line, const std::string& condition) { - Log(GFX_TOP, Common::FormatString("SOFTASSERT FAILURE: `%s`\n", condition.c_str())); - Log(GFX_TOP, Common::FormatString(" At `%s` L%i\n", function.c_str(), line)); + Log(Common::FormatString("SOFTASSERT FAILURE: `%s`\n", condition.c_str())); + Log(Common::FormatString(" At `%s` L%i\n", function.c_str(), line)); } void PrintSuccess(const std::string& group, const std::string& name, bool val) { - Log(GFX_TOP, Common::FormatString("%s: [%s] %s\n", val ? "SUCCESS" : "FAILURE", group.c_str(), name.c_str())); + Log(Common::FormatString("%s: [%s] %s\n", val ? "SUCCESS" : "FAILURE", group.c_str(), name.c_str())); }