diff --git a/Core/Inc/graphics/display.h b/Core/Inc/graphics/display.h index 41edf3d..43c0b63 100644 --- a/Core/Inc/graphics/display.h +++ b/Core/Inc/graphics/display.h @@ -5,10 +5,14 @@ #define DISPLAY_WIDTH 240 #define DISPLAY_HEIGHT 320 +#define PIXEL_FORMAT_565 +//#define PIXEL_FORMAT_888 typedef uint16_t rgb565_pixel_t; +typedef uint32_t rgb888_pixel_t; - +#ifdef PIXEL_FORMAT_565 +typedef rgb565_pixel_t pixel_t; #define PIXEL_RED(p) (((p) >> 11) & 0x1F) #define PIXEL_GREEN(p) (((p) >> 5) & 0x3F) @@ -16,13 +20,20 @@ typedef uint16_t rgb565_pixel_t; #define MAKE_PIXEL(r,g,b) \ (((r & 0x1F) << 11) | ((g & 0x3F) << 5) | (b & 0x1F)) +#endif // PIXEL_FORMAT_565 -extern volatile rgb565_pixel_t framebuffer[DISPLAY_HEIGHT * DISPLAY_WIDTH]; -extern volatile uint32_t times_changed; +#ifdef PIXEL_FORMAT_888 +typedef rgb888_pixel_t pixel_t; +#define PIXEL_RED(p) (((p) >> 16) & 0xFF) +#define PIXEL_GREEN(p) (((p) >> 8) & 0xFF) +#define PIXEL_BLUE(p) ((p) & 0xFF) -void DisplayTest(uint16_t color); +#define MAKE_PIXEL(r,g,b) \ + (((r & 0xFF) << 16) | ((g & 0xFF) << 8) | (b & 0xFF)) +#endif // PIXEL_FORMAT_888 +extern volatile pixel_t framebuffer[DISPLAY_HEIGHT * DISPLAY_WIDTH]; #endif \ No newline at end of file diff --git a/Core/Inc/graphics/font.h b/Core/Inc/graphics/fonts/font.h similarity index 58% rename from Core/Inc/graphics/font.h rename to Core/Inc/graphics/fonts/font.h index f34e98c..eec889d 100644 --- a/Core/Inc/graphics/font.h +++ b/Core/Inc/graphics/fonts/font.h @@ -5,6 +5,14 @@ #include "display.h" #include "lvgl.h" +// Font declarations - fonts are defined in separate .c files to avoid static variable conflicts +#if LVGL_VERSION_MAJOR >= 8 +extern const lv_font_t roboto_bold_font; +extern const lv_font_t roboto_bold_large_font; +#else +extern lv_font_t roboto_bold_font; +extern lv_font_t roboto_bold_large_font; +#endif uint16_t draw_character(rgb565_pixel_t *framebuffer, const lv_font_t *font, const uint16_t x_loc, const uint16_t y_loc, const uint8_t character, rgb565_pixel_t color); diff --git a/Core/Inc/graphics/lvgl/lvgl.h b/Core/Inc/graphics/fonts/lvgl/lvgl.h similarity index 94% rename from Core/Inc/graphics/lvgl/lvgl.h rename to Core/Inc/graphics/fonts/lvgl/lvgl.h index 54738ef..fad1425 100644 --- a/Core/Inc/graphics/lvgl/lvgl.h +++ b/Core/Inc/graphics/fonts/lvgl/lvgl.h @@ -7,6 +7,13 @@ * * This layer includes a lot of code from lv_font_fmt_txt.h to define how * a bitmapped font is expressed. + * + * See: + * - https://github.com/lvgl/lv_font_conv + * - https://github.com/lvgl/lvgl/blob/master/src/font/lv_font.h + * - https://github.com/lvgl/lvgl/blob/master/src/font/fmt_txt/lv_font_fmt_txt.h + * + * - Dylan */ #ifndef LVGL_H @@ -15,13 +22,27 @@ #include "stdint.h" #include "stdbool.h" -/* Dummy Defines */ -#define LV_ATTRIBUTE_LARGE_CONST -#define LV_FONT_SUBPX_NONE 0 +#ifndef NULL #define NULL 0 +#endif + +/******************************************* */ +/* Dummy defines for LVGL font compatibility */ + +#ifndef LV_ATTRIBUTE_LARGE_CONST +#define LV_ATTRIBUTE_LARGE_CONST +#endif + +#ifndef LV_FONT_SUBPX_NONE +#define LV_FONT_SUBPX_NONE 0 +#endif + +#ifndef LVGL_VERSION_MAJOR #define LVGL_VERSION_MAJOR 7 #define LV_VERSION_CHECK(X,Y,Z) 0 +#endif +/******************** */ /* Struct Definitions */ typedef struct _lv_font_t lv_font_t; diff --git a/Core/Inc/graphics/roboto_bold_font.h b/Core/Inc/graphics/fonts/roboto_bold_font.h similarity index 100% rename from Core/Inc/graphics/roboto_bold_font.h rename to Core/Inc/graphics/fonts/roboto_bold_font.h diff --git a/Core/Inc/graphics/fonts/roboto_bold_large_font.h b/Core/Inc/graphics/fonts/roboto_bold_large_font.h new file mode 100644 index 0000000..30bf235 --- /dev/null +++ b/Core/Inc/graphics/fonts/roboto_bold_large_font.h @@ -0,0 +1,1483 @@ +/******************************************************************************* + * Size: 48 px + * Bpp: 1 + * Opts: --font Roboto-Bold.ttf --bpp 1 --size 48 --format lvgl --no-compress -o roboto_bold_large_font.h --range 0x20-0x7E + ******************************************************************************/ + +#ifdef LV_LVGL_H_INCLUDE_SIMPLE +#include "lvgl.h" +#else +#include "lvgl/lvgl.h" +#endif + +#ifndef ROBOTO_BOLD_LARGE_FONT +#define ROBOTO_BOLD_LARGE_FONT 1 +#endif + +#if ROBOTO_BOLD_LARGE_FONT + +/*----------------- + * BITMAPS + *----------------*/ + +/*Store the image of the glyphs*/ +static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { + /* U+0020 " " */ + 0x0, + + /* U+0021 "!" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x1, + 0xc7, 0xdf, 0xff, 0xff, 0x7c, 0x70, + + /* U+0022 "\"" */ + 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, + 0x9f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x1e, 0xf1, + 0xef, 0x1e, 0xf1, 0xe0, + + /* U+0023 "#" */ + 0x0, 0x3c, 0x3c, 0x0, 0x1f, 0xf, 0x0, 0x7, + 0x83, 0xc0, 0x1, 0xe0, 0xf0, 0x0, 0x78, 0x7c, + 0x0, 0x1e, 0x1e, 0x0, 0x7, 0x87, 0x80, 0x3, + 0xe1, 0xe0, 0x0, 0xf0, 0x78, 0xf, 0xff, 0xff, + 0xf3, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0x3f, + 0xff, 0xff, 0xc0, 0x78, 0x3c, 0x0, 0x1e, 0xf, + 0x0, 0x7, 0x83, 0xc0, 0x1, 0xe1, 0xf0, 0x0, + 0x78, 0x78, 0x0, 0x3e, 0x1e, 0x0, 0xf, 0x7, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xcf, + 0xff, 0xff, 0xf3, 0xff, 0xff, 0xfc, 0x7, 0xc3, + 0xc0, 0x1, 0xe0, 0xf0, 0x0, 0x78, 0x3c, 0x0, + 0x1e, 0x1f, 0x0, 0x7, 0x87, 0x80, 0x1, 0xe1, + 0xe0, 0x0, 0xf8, 0x78, 0x0, 0x3c, 0x1e, 0x0, + 0xf, 0x7, 0x80, 0x3, 0xc3, 0xe0, 0x0, + + /* U+0024 "$" */ + 0x0, 0x3c, 0x0, 0x0, 0x78, 0x0, 0x0, 0xf0, + 0x0, 0x1, 0xe0, 0x0, 0x3, 0xc0, 0x0, 0x7, + 0x80, 0x0, 0xf, 0x0, 0x0, 0x7f, 0x80, 0x7, + 0xff, 0xc0, 0x1f, 0xff, 0xe0, 0x7f, 0xff, 0xe1, + 0xff, 0xff, 0xc3, 0xfc, 0x3f, 0xcf, 0xf0, 0x3f, + 0x9f, 0xc0, 0x7f, 0xbf, 0x80, 0x7f, 0x7f, 0x0, + 0xfe, 0xfe, 0x1, 0xfd, 0xfe, 0x0, 0x1, 0xfc, + 0x0, 0x3, 0xfe, 0x0, 0x3, 0xff, 0x0, 0x3, + 0xff, 0xc0, 0x3, 0xff, 0xe0, 0x1, 0xff, 0xe0, + 0x0, 0xff, 0xf0, 0x0, 0x7f, 0xe0, 0x0, 0x3f, + 0xe0, 0x0, 0x1f, 0xc0, 0x0, 0x1f, 0xff, 0x80, + 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, 0xff, 0xfe, + 0x1, 0xfd, 0xfe, 0x7, 0xfb, 0xff, 0x3f, 0xe3, + 0xff, 0xff, 0xc3, 0xff, 0xff, 0x3, 0xff, 0xfc, + 0x3, 0xff, 0xf0, 0x0, 0xff, 0x0, 0x0, 0x78, + 0x0, 0x0, 0xf0, 0x0, 0x1, 0xe0, 0x0, 0x3, + 0xc0, 0x0, 0x7, 0x80, 0x0, + + /* U+0025 "%" */ + 0xf, 0xe0, 0x0, 0x0, 0x7f, 0xf0, 0x0, 0x1, + 0xff, 0xf0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0xf, + 0x87, 0xe0, 0x30, 0x1e, 0x7, 0xc0, 0xf8, 0x3c, + 0xf, 0x83, 0xe0, 0x78, 0x1f, 0x7, 0x80, 0xf0, + 0x3e, 0x1f, 0x1, 0xe0, 0x7c, 0x7c, 0x3, 0xe1, + 0xf8, 0xf0, 0x3, 0xff, 0xe3, 0xe0, 0x7, 0xff, + 0xcf, 0x80, 0x7, 0xff, 0x1e, 0x0, 0x3, 0xf8, + 0x7c, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x3, + 0xc0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x3e, + 0x3f, 0x80, 0x0, 0x78, 0xff, 0x80, 0x1, 0xe3, + 0xff, 0x80, 0x7, 0xcf, 0xff, 0x80, 0x1f, 0x3f, + 0xf, 0x80, 0x3c, 0x7c, 0xf, 0x0, 0xf8, 0xf8, + 0x1e, 0x3, 0xe1, 0xf0, 0x3c, 0x7, 0x83, 0xe0, + 0x78, 0x1f, 0x7, 0xc0, 0xf0, 0x7c, 0xf, 0x81, + 0xe0, 0x70, 0x1f, 0x87, 0xc0, 0x20, 0x1f, 0xff, + 0x0, 0x0, 0x1f, 0xfc, 0x0, 0x0, 0x1f, 0xf0, + 0x0, 0x0, 0x1f, 0xc0, + + /* U+0026 "&" */ + 0x0, 0x7f, 0x0, 0x0, 0xf, 0xfe, 0x0, 0x1, + 0xff, 0xf8, 0x0, 0xf, 0xff, 0xe0, 0x0, 0xff, + 0xff, 0x0, 0xf, 0xe1, 0xfc, 0x0, 0x7e, 0x7, + 0xe0, 0x3, 0xf0, 0x3f, 0x0, 0x1f, 0x81, 0xf8, + 0x0, 0xfc, 0xf, 0xc0, 0x7, 0xe0, 0xfc, 0x0, + 0x3f, 0x8f, 0xe0, 0x0, 0xff, 0xfe, 0x0, 0x7, + 0xff, 0xe0, 0x0, 0x1f, 0xfe, 0x0, 0x0, 0x7f, + 0xe0, 0x0, 0x7, 0xfc, 0x0, 0x0, 0x7f, 0xf0, + 0x3f, 0x7, 0xff, 0xc1, 0xf8, 0x7f, 0xff, 0xf, + 0xc7, 0xfb, 0xf8, 0x7e, 0x3f, 0x9f, 0xe7, 0xf3, + 0xf8, 0x7f, 0xbf, 0x1f, 0xc1, 0xff, 0xf8, 0xfe, + 0x7, 0xff, 0xc7, 0xf0, 0x1f, 0xfc, 0x3f, 0x80, + 0x7f, 0xe1, 0xfe, 0x1, 0xfe, 0x7, 0xf8, 0x3f, + 0xf0, 0x3f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, + 0x3, 0xff, 0xff, 0xfc, 0x7, 0xff, 0xcf, 0xf0, + 0xf, 0xf0, 0x3f, 0xc0, + + /* U+0027 "'" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, + 0x0, + + /* U+0028 "(" */ + 0x0, 0x10, 0x3, 0xc0, 0x3e, 0x3, 0xf0, 0x3f, + 0x3, 0xf0, 0x1f, 0x1, 0xf8, 0xf, 0x80, 0xfc, + 0x7, 0xc0, 0x7e, 0x3, 0xf0, 0x3f, 0x1, 0xf8, + 0xf, 0xc0, 0x7e, 0x7, 0xe0, 0x3f, 0x1, 0xf8, + 0xf, 0xc0, 0x7e, 0x3, 0xf0, 0x1f, 0x80, 0xfc, + 0x7, 0xe0, 0x3f, 0x1, 0xf8, 0xf, 0xc0, 0x7e, + 0x3, 0xf0, 0xf, 0x80, 0x7e, 0x3, 0xf0, 0x1f, + 0x80, 0x7c, 0x3, 0xf0, 0x1f, 0x80, 0x7c, 0x3, + 0xf0, 0xf, 0x80, 0x7e, 0x1, 0xf8, 0x7, 0xc0, + 0x1f, 0x0, 0xfc, 0x3, 0xe0, 0x6, 0x0, 0x10, + + /* U+0029 ")" */ + 0x40, 0x7, 0x80, 0x3e, 0x1, 0xf8, 0x7, 0xe0, + 0x1f, 0x0, 0x7c, 0x3, 0xf0, 0xf, 0x80, 0x7e, + 0x1, 0xf0, 0xf, 0xc0, 0x7e, 0x1, 0xf0, 0xf, + 0xc0, 0x7e, 0x3, 0xf0, 0xf, 0x80, 0x7e, 0x3, + 0xf0, 0x1f, 0x80, 0xfc, 0x7, 0xe0, 0x3f, 0x1, + 0xf8, 0xf, 0xc0, 0x7e, 0x3, 0xf0, 0x1f, 0x80, + 0xfc, 0x7, 0xe0, 0x7e, 0x3, 0xf0, 0x1f, 0x80, + 0xfc, 0x7, 0xc0, 0x7e, 0x3, 0xf0, 0x1f, 0x1, + 0xf8, 0xf, 0x80, 0xfc, 0xf, 0xc0, 0x7c, 0x7, + 0xc0, 0x7e, 0x3, 0xe0, 0xc, 0x0, 0x40, 0x0, + + /* U+002A "*" */ + 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, + 0xf, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x70, + 0xf0, 0x6f, 0xcf, 0x3f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0xff, 0xc0, 0x1f, 0xc0, 0x3, 0xf8, + 0x0, 0x7f, 0xc0, 0x7, 0xbe, 0x0, 0xf9, 0xf0, + 0x1f, 0x1f, 0x3, 0xe0, 0xf8, 0x1e, 0x7, 0x80, + 0xc0, 0x70, 0x4, 0x0, 0x0, + + /* U+002B "+" */ + 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, + 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, + 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x7f, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x7f, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, + 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, + 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x7f, 0x0, + + /* U+002C "," */ + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x7e, 0x7e, 0x7c, 0xfc, 0xf8, 0x30, + + /* U+002D "-" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, + + /* U+002E "." */ + 0x38, 0xfb, 0xff, 0xff, 0xef, 0x8e, 0x0, + + /* U+002F "/" */ + 0x0, 0xf, 0x80, 0x7, 0xc0, 0x7, 0xc0, 0x3, + 0xe0, 0x1, 0xf0, 0x1, 0xf0, 0x0, 0xf8, 0x0, + 0x7c, 0x0, 0x7c, 0x0, 0x3e, 0x0, 0x1f, 0x0, + 0x1f, 0x0, 0xf, 0x80, 0x7, 0xc0, 0x7, 0xc0, + 0x3, 0xe0, 0x1, 0xf0, 0x1, 0xf0, 0x0, 0xf8, + 0x0, 0x7c, 0x0, 0x7c, 0x0, 0x3e, 0x0, 0x1f, + 0x0, 0x1f, 0x0, 0xf, 0x80, 0x7, 0xc0, 0x7, + 0xc0, 0x3, 0xe0, 0x1, 0xf0, 0x1, 0xf0, 0x0, + 0xf8, 0x0, 0x7c, 0x0, 0x7c, 0x0, 0x3e, 0x0, + 0x1f, 0x0, 0x1f, 0x0, 0xf, 0x80, 0x7, 0xc0, + 0x0, + + /* U+0030 "0" */ + 0x0, 0xfe, 0x0, 0xf, 0xff, 0x80, 0x3f, 0xff, + 0x80, 0xff, 0xff, 0x83, 0xff, 0xff, 0x87, 0xf0, + 0xff, 0x1f, 0xc0, 0x7f, 0x3f, 0x80, 0xfe, 0x7f, + 0x1, 0xfd, 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, + 0xf0, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, + 0xff, 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, + 0xff, 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, 0xf0, + 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, 0xff, + 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, 0xfe, + 0xfe, 0x3, 0xf9, 0xfc, 0x7, 0xf3, 0xf8, 0xf, + 0xe3, 0xfc, 0x3f, 0x87, 0xff, 0xff, 0x7, 0xff, + 0xfc, 0x7, 0xff, 0xf0, 0x7, 0xff, 0xc0, 0x1, + 0xfc, 0x0, + + /* U+0031 "1" */ + 0x0, 0x6, 0x0, 0x7c, 0x7, 0xf8, 0x7f, 0xf7, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0xff, 0xc1, 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, + 0xe0, 0x1f, 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0xfe, + 0x1, 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, 0xe0, + 0x1f, 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0xfe, 0x1, + 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, 0xe0, 0x1f, + 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0xfe, 0x1, 0xfc, + + /* U+0032 "2" */ + 0x0, 0xff, 0x0, 0x3, 0xff, 0xe0, 0xf, 0xff, + 0xf0, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x7f, + 0xc3, 0xfc, 0x7f, 0x1, 0xfe, 0xff, 0x0, 0xfe, + 0xfe, 0x0, 0xfe, 0xfe, 0x0, 0xfe, 0xfe, 0x0, + 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfe, 0x0, + 0x1, 0xfc, 0x0, 0x3, 0xfc, 0x0, 0x3, 0xf8, + 0x0, 0x7, 0xf8, 0x0, 0xf, 0xf0, 0x0, 0x1f, + 0xe0, 0x0, 0x3f, 0xc0, 0x0, 0x7f, 0x80, 0x0, + 0xff, 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfc, 0x0, + 0x3, 0xfc, 0x0, 0x7, 0xf8, 0x0, 0xf, 0xf0, + 0x0, 0x1f, 0xe0, 0x0, 0x3f, 0xc0, 0x0, 0x7f, + 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, + 0x7f, 0xff, 0xff, 0x7f, 0xff, 0xff, + + /* U+0033 "3" */ + 0x1, 0xff, 0x0, 0x7, 0xff, 0xc0, 0x1f, 0xff, + 0xf0, 0x3f, 0xff, 0xf8, 0x7f, 0xff, 0xfc, 0x7f, + 0x83, 0xfc, 0xff, 0x1, 0xfe, 0xfe, 0x0, 0xfe, + 0xfe, 0x0, 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x1, 0xfc, 0x0, + 0xff, 0xf8, 0x0, 0xff, 0xf0, 0x0, 0xff, 0xe0, + 0x0, 0xff, 0xf0, 0x0, 0xff, 0xf8, 0x0, 0xff, + 0xfc, 0x0, 0x1, 0xfe, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, + 0xfe, 0x0, 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x0, + 0xff, 0xff, 0x0, 0xfe, 0x7f, 0xc3, 0xfe, 0x3f, + 0xff, 0xfc, 0x3f, 0xff, 0xf8, 0x1f, 0xff, 0xf0, + 0x7, 0xff, 0xe0, 0x0, 0xff, 0x0, + + /* U+0034 "4" */ + 0x0, 0x3, 0xf8, 0x0, 0x3, 0xfc, 0x0, 0x3, + 0xfe, 0x0, 0x1, 0xff, 0x0, 0x1, 0xff, 0x80, + 0x1, 0xff, 0xc0, 0x0, 0xff, 0xe0, 0x0, 0xff, + 0xf0, 0x0, 0xff, 0xf8, 0x0, 0x7f, 0xfc, 0x0, + 0x7e, 0xfe, 0x0, 0x7e, 0x7f, 0x0, 0x3f, 0x3f, + 0x80, 0x3f, 0x1f, 0xc0, 0x1f, 0x8f, 0xe0, 0x1f, + 0x87, 0xf0, 0x1f, 0x83, 0xf8, 0xf, 0xc1, 0xfc, + 0xf, 0xc0, 0xfe, 0xf, 0xc0, 0x7f, 0x7, 0xe0, + 0x3f, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc0, 0x0, 0xfe, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x3f, 0x80, 0x0, 0x1f, 0xc0, 0x0, 0xf, + 0xe0, 0x0, 0x7, 0xf0, 0x0, 0x3, 0xf8, 0x0, + 0x1, 0xfc, 0x0, + + /* U+0035 "5" */ + 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, + 0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x1f, + 0x80, 0x0, 0x1f, 0x80, 0x0, 0x3f, 0x80, 0x0, + 0x3f, 0x80, 0x0, 0x3f, 0x0, 0x0, 0x3f, 0x0, + 0x0, 0x3f, 0x3f, 0x80, 0x3f, 0xff, 0xe0, 0x3f, + 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 0xfc, + 0x7f, 0x83, 0xfe, 0x6, 0x1, 0xfe, 0x0, 0x0, + 0xff, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7f, + 0xfe, 0x0, 0x7f, 0x7e, 0x0, 0x7f, 0x7f, 0x0, + 0xfe, 0x7f, 0x80, 0xfe, 0x3f, 0xc3, 0xfe, 0x3f, + 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0xf, 0xff, 0xf0, + 0x3, 0xff, 0xe0, 0x0, 0x7f, 0x0, + + /* U+0036 "6" */ + 0x0, 0x7, 0xe0, 0x0, 0x3f, 0xe0, 0x0, 0xff, + 0xe0, 0x1, 0xff, 0xe0, 0x7, 0xff, 0xe0, 0xf, + 0xfc, 0x0, 0xf, 0xf0, 0x0, 0x1f, 0xe0, 0x0, + 0x3f, 0xc0, 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, + 0x0, 0x7f, 0x1f, 0x80, 0x7e, 0x7f, 0xe0, 0xff, + 0xff, 0xf8, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xfc, + 0xff, 0xc3, 0xfe, 0xff, 0x1, 0xfe, 0xfe, 0x0, + 0xff, 0xfe, 0x0, 0xff, 0xfe, 0x0, 0x7f, 0xfe, + 0x0, 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x0, 0x7f, + 0xfe, 0x0, 0x7f, 0x7f, 0x0, 0x7f, 0x7f, 0x0, + 0xfe, 0x7f, 0x81, 0xfe, 0x3f, 0xc3, 0xfc, 0x1f, + 0xff, 0xfc, 0xf, 0xff, 0xf8, 0x7, 0xff, 0xf0, + 0x3, 0xff, 0xc0, 0x0, 0xff, 0x0, + + /* U+0037 "7" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, + 0x0, 0x7e, 0x0, 0x0, 0xfe, 0x0, 0x0, 0xfc, + 0x0, 0x1, 0xfc, 0x0, 0x1, 0xf8, 0x0, 0x3, + 0xf8, 0x0, 0x3, 0xf8, 0x0, 0x7, 0xf0, 0x0, + 0x7, 0xf0, 0x0, 0x7, 0xe0, 0x0, 0xf, 0xe0, + 0x0, 0xf, 0xc0, 0x0, 0x1f, 0xc0, 0x0, 0x1f, + 0xc0, 0x0, 0x3f, 0x80, 0x0, 0x3f, 0x80, 0x0, + 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7e, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfc, + 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x3, + 0xf8, 0x0, 0x7, 0xf0, 0x0, 0x7, 0xf0, 0x0, + 0xf, 0xf0, 0x0, 0xf, 0xe0, 0x0, + + /* U+0038 "8" */ + 0x0, 0xff, 0x0, 0xf, 0xff, 0xc0, 0x3f, 0xff, + 0xc0, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc7, 0xf8, + 0x7f, 0x9f, 0xe0, 0x7f, 0xbf, 0x80, 0x7f, 0x7f, + 0x0, 0xfe, 0xfe, 0x1, 0xfd, 0xfc, 0x3, 0xfb, + 0xf8, 0x7, 0xe3, 0xf8, 0x1f, 0xc3, 0xfc, 0xff, + 0x3, 0xff, 0xfc, 0x3, 0xff, 0xf0, 0x7, 0xff, + 0xc0, 0x3f, 0xff, 0xe0, 0xff, 0xbf, 0xe3, 0xfc, + 0x1f, 0xe7, 0xf0, 0x1f, 0xdf, 0xc0, 0x1f, 0xff, + 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, 0xff, + 0xfc, 0x1, 0xff, 0xfc, 0x7, 0xff, 0xf8, 0xf, + 0xf7, 0xf8, 0x3f, 0xcf, 0xff, 0xff, 0x8f, 0xff, + 0xfe, 0xf, 0xff, 0xf8, 0x7, 0xff, 0xc0, 0x3, + 0xfe, 0x0, + + /* U+0039 "9" */ + 0x0, 0xfe, 0x0, 0x7, 0xff, 0x0, 0x3f, 0xff, + 0x80, 0xff, 0xff, 0x83, 0xff, 0xff, 0x7, 0xf8, + 0xff, 0x1f, 0xe0, 0xff, 0x3f, 0x80, 0xfe, 0xff, + 0x1, 0xfd, 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, + 0xf0, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, + 0xff, 0x80, 0x3f, 0xff, 0x80, 0x7f, 0x7f, 0x1, + 0xfe, 0xff, 0x87, 0xfc, 0xff, 0xff, 0xf9, 0xff, + 0xff, 0xf1, 0xff, 0xff, 0xe1, 0xff, 0xdf, 0x80, + 0xfe, 0x3f, 0x0, 0x0, 0xfe, 0x0, 0x1, 0xf8, + 0x0, 0x7, 0xf0, 0x0, 0x1f, 0xc0, 0x0, 0x7f, + 0x80, 0x3, 0xfe, 0x0, 0xff, 0xf8, 0x1, 0xff, + 0xe0, 0x3, 0xff, 0x80, 0x7, 0xfc, 0x0, 0xf, + 0xc0, 0x0, + + /* U+003A ":" */ + 0x38, 0xfb, 0xff, 0xff, 0xef, 0x8e, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x1, 0xc7, 0xdf, 0xff, 0xff, 0x7c, 0x70, + + /* U+003B ";" */ + 0x1c, 0x3e, 0x7f, 0x7f, 0x7f, 0x3e, 0x1c, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3e, 0x7e, 0x7e, 0xfc, + 0xf8, 0x70, 0x0, + + /* U+003C "<" */ + 0x0, 0x0, 0x18, 0x0, 0x3, 0xc0, 0x0, 0x7e, + 0x0, 0x1f, 0xf0, 0x3, 0xff, 0x80, 0xff, 0xfc, + 0x1f, 0xff, 0xc3, 0xff, 0xf0, 0xff, 0xfe, 0x7, + 0xff, 0x80, 0x3f, 0xe0, 0x1, 0xfc, 0x0, 0xf, + 0xfc, 0x0, 0x7f, 0xfc, 0x1, 0xff, 0xfc, 0x1, + 0xff, 0xfc, 0x3, 0xff, 0xf8, 0x7, 0xff, 0xc0, + 0x7, 0xfe, 0x0, 0xf, 0xf0, 0x0, 0x1f, 0x80, + 0x0, 0x1c, 0x0, 0x0, 0x20, + + /* U+003D "=" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, + + /* U+003E ">" */ + 0x80, 0x0, 0x7, 0x80, 0x0, 0x3f, 0x0, 0x1, + 0xfe, 0x0, 0xf, 0xfe, 0x0, 0x7f, 0xfc, 0x3, + 0xff, 0xf8, 0x3, 0xff, 0xf8, 0x3, 0xff, 0xf0, + 0x3, 0xff, 0xc0, 0x3, 0xfe, 0x0, 0xf, 0xf0, + 0x3, 0xff, 0x80, 0x7f, 0xfc, 0x1f, 0xff, 0x87, + 0xff, 0xf0, 0xff, 0xfe, 0x7, 0xff, 0x80, 0x3f, + 0xf0, 0x1, 0xfc, 0x0, 0xf, 0x80, 0x0, 0x70, + 0x0, 0x0, 0x0, 0x0, 0x0, + + /* U+003F "?" */ + 0x1, 0xfe, 0x0, 0x7f, 0xfc, 0x7, 0xff, 0xf0, + 0x7f, 0xff, 0xc7, 0xff, 0xff, 0x3f, 0xc3, 0xfb, + 0xfc, 0x1f, 0xff, 0xc0, 0x7f, 0xfe, 0x3, 0xf8, + 0x0, 0x1f, 0xc0, 0x0, 0xfe, 0x0, 0xf, 0xf0, + 0x0, 0x7f, 0x0, 0x7, 0xf8, 0x0, 0x7f, 0x80, + 0x7, 0xf8, 0x0, 0x7f, 0x80, 0x7, 0xf8, 0x0, + 0x3f, 0x80, 0x3, 0xf8, 0x0, 0x1f, 0x80, 0x0, + 0xfc, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0xe0, 0x0, 0xf, 0x80, 0x0, 0xfe, 0x0, 0x7, + 0xf0, 0x0, 0x3f, 0x80, 0x0, 0xf8, 0x0, 0x3, + 0x80, 0x0, + + /* U+0040 "@" */ + 0x0, 0x0, 0xff, 0x80, 0x0, 0x0, 0xf, 0xff, + 0xf0, 0x0, 0x0, 0x7f, 0xff, 0xf8, 0x0, 0x3, + 0xff, 0xff, 0xf8, 0x0, 0xf, 0xf8, 0x7, 0xf8, + 0x0, 0x3f, 0x80, 0x1, 0xf8, 0x0, 0xfc, 0x0, + 0x1, 0xf8, 0x3, 0xf0, 0x0, 0x0, 0xf8, 0xf, + 0xc0, 0x0, 0x0, 0xf0, 0x1f, 0x0, 0x0, 0x1, + 0xf0, 0x7e, 0x0, 0x7e, 0x1, 0xe1, 0xf8, 0x7, + 0xff, 0x3, 0xe3, 0xe0, 0x1f, 0xff, 0x3, 0xc7, + 0xc0, 0x7f, 0xfe, 0x7, 0x9f, 0x81, 0xfc, 0x3c, + 0xf, 0x3e, 0x3, 0xe0, 0x78, 0xf, 0x7c, 0xf, + 0xc1, 0xf0, 0x1f, 0xf8, 0x1f, 0x3, 0xe0, 0x3f, + 0xe0, 0x7e, 0x7, 0xc0, 0x7f, 0xc0, 0xf8, 0xf, + 0x80, 0xff, 0x81, 0xf0, 0x1f, 0x1, 0xff, 0x3, + 0xe0, 0x3e, 0x3, 0xfe, 0x7, 0xc0, 0x7c, 0x7, + 0xfc, 0x1f, 0x80, 0xf8, 0xf, 0xf8, 0x3f, 0x1, + 0xf0, 0x1f, 0xf0, 0x7e, 0x3, 0xc0, 0x3b, 0xe0, + 0xfc, 0xf, 0x80, 0xf7, 0xc0, 0xf8, 0x1f, 0x1, + 0xef, 0x81, 0xf0, 0x7e, 0x7, 0x8f, 0x83, 0xf1, + 0xfe, 0xf, 0x1f, 0x3, 0xff, 0xfc, 0x3c, 0x3e, + 0x7, 0xff, 0x7f, 0xf0, 0x7c, 0x7, 0xfc, 0x7f, + 0xc0, 0x7c, 0x3, 0xe0, 0x7e, 0x0, 0xf8, 0x0, + 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, 0x0, 0x1, + 0xf8, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0, + 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x3, 0xfc, + 0x0, 0x30, 0x0, 0x3, 0xff, 0xff, 0xe0, 0x0, + 0x1, 0xff, 0xff, 0xe0, 0x0, 0x0, 0xff, 0xff, + 0xc0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0, 0x0, + 0x3, 0x0, 0x0, 0x0, + + /* U+0041 "A" */ + 0x0, 0xf, 0xe0, 0x0, 0x0, 0xf, 0xf0, 0x0, + 0x0, 0xf, 0xf0, 0x0, 0x0, 0x1f, 0xf0, 0x0, + 0x0, 0x1f, 0xf8, 0x0, 0x0, 0x1f, 0xf8, 0x0, + 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x3f, 0xfc, 0x0, + 0x0, 0x7f, 0xfc, 0x0, 0x0, 0x7f, 0xfe, 0x0, + 0x0, 0x7e, 0x7e, 0x0, 0x0, 0xfe, 0x7e, 0x0, + 0x0, 0xfe, 0x7f, 0x0, 0x0, 0xfc, 0x3f, 0x0, + 0x1, 0xfc, 0x3f, 0x80, 0x1, 0xfc, 0x3f, 0x80, + 0x3, 0xf8, 0x1f, 0x80, 0x3, 0xf8, 0x1f, 0xc0, + 0x3, 0xf8, 0x1f, 0xc0, 0x7, 0xf0, 0xf, 0xc0, + 0x7, 0xf0, 0xf, 0xe0, 0x7, 0xff, 0xff, 0xe0, + 0xf, 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xf0, + 0xf, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xf8, + 0x1f, 0xc0, 0x3, 0xf8, 0x3f, 0xc0, 0x3, 0xf8, + 0x3f, 0x80, 0x1, 0xfc, 0x3f, 0x80, 0x1, 0xfc, + 0x7f, 0x80, 0x1, 0xfe, 0x7f, 0x0, 0x0, 0xfe, + 0x7f, 0x0, 0x0, 0xfe, 0xff, 0x0, 0x0, 0xff, + + /* U+0042 "B" */ + 0xff, 0xff, 0x80, 0x7f, 0xff, 0xf8, 0x3f, 0xff, + 0xff, 0x1f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xf7, + 0xf0, 0xf, 0xfb, 0xf8, 0x1, 0xff, 0xfc, 0x0, + 0x7f, 0xfe, 0x0, 0x3f, 0xff, 0x0, 0x1f, 0xff, + 0x80, 0xf, 0xff, 0xc0, 0x7, 0xff, 0xe0, 0x7, + 0xf7, 0xf0, 0xf, 0xfb, 0xff, 0xff, 0xf9, 0xff, + 0xff, 0xf8, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xfe, + 0x3f, 0xff, 0xff, 0x9f, 0xc0, 0x1f, 0xef, 0xe0, + 0x7, 0xf7, 0xf0, 0x1, 0xff, 0xf8, 0x0, 0xff, + 0xfc, 0x0, 0x7f, 0xfe, 0x0, 0x3f, 0xff, 0x0, + 0x1f, 0xff, 0x80, 0xf, 0xff, 0xc0, 0xf, 0xef, + 0xe0, 0x1f, 0xf7, 0xff, 0xff, 0xfb, 0xff, 0xff, + 0xf9, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf0, 0x7f, + 0xff, 0xc0, 0x0, + + /* U+0043 "C" */ + 0x0, 0x3f, 0xe0, 0x0, 0xf, 0xff, 0xc0, 0x3, + 0xff, 0xfe, 0x0, 0x7f, 0xff, 0xf8, 0xf, 0xff, + 0xff, 0x81, 0xff, 0x7, 0xfc, 0x3f, 0xc0, 0x1f, + 0xe3, 0xf8, 0x0, 0xfe, 0x7f, 0x0, 0xf, 0xf7, + 0xf0, 0x0, 0x7f, 0x7f, 0x0, 0x7, 0xff, 0xe0, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, + 0xfe, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0xfe, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0xf, 0xe0, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0x7, 0xf0, 0x0, 0x7f, 0x7f, 0x0, 0x7, 0xf7, + 0xf0, 0x0, 0x7f, 0x3f, 0x80, 0xf, 0xe3, 0xfc, + 0x1, 0xfe, 0x1f, 0xe0, 0x7f, 0xc0, 0xff, 0xff, + 0xfc, 0x7, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xe0, + 0x1, 0xff, 0xfc, 0x0, 0x3, 0xfe, 0x0, + + /* U+0044 "D" */ + 0xff, 0xfe, 0x0, 0x3f, 0xff, 0xf0, 0xf, 0xff, + 0xfe, 0x3, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xfc, + 0x3f, 0x80, 0xff, 0x8f, 0xe0, 0x1f, 0xe3, 0xf8, + 0x1, 0xfc, 0xfe, 0x0, 0x7f, 0x3f, 0x80, 0xf, + 0xef, 0xe0, 0x3, 0xfb, 0xf8, 0x0, 0xfe, 0xfe, + 0x0, 0x1f, 0xff, 0x80, 0x7, 0xff, 0xe0, 0x1, + 0xff, 0xf8, 0x0, 0x7f, 0xfe, 0x0, 0x1f, 0xff, + 0x80, 0x7, 0xff, 0xe0, 0x1, 0xff, 0xf8, 0x0, + 0x7f, 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x7, 0xff, + 0xe0, 0x3, 0xfb, 0xf8, 0x0, 0xfe, 0xfe, 0x0, + 0x3f, 0xbf, 0x80, 0x1f, 0xcf, 0xe0, 0xf, 0xf3, + 0xf8, 0x7, 0xf8, 0xfe, 0x3, 0xfe, 0x3f, 0xff, + 0xff, 0xf, 0xff, 0xff, 0x83, 0xff, 0xff, 0x80, + 0xff, 0xff, 0xc0, 0x3f, 0xff, 0x80, 0x0, + + /* U+0045 "E" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, 0x0, 0xfe, + 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, + 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, + 0x3f, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0xff, 0xff, + 0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe7, 0xf0, + 0x0, 0xf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, 0x3f, + 0x80, 0x0, 0x7f, 0x0, 0x0, 0xfe, 0x0, 0x1, + 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, 0xf0, 0x0, + 0xf, 0xe0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfc, + + /* U+0046 "F" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, 0x0, 0xfe, + 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, + 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, + 0x3f, 0x80, 0x0, 0x7f, 0xff, 0xfc, 0xff, 0xff, + 0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe7, 0xff, + 0xff, 0xcf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, 0x3f, + 0x80, 0x0, 0x7f, 0x0, 0x0, 0xfe, 0x0, 0x1, + 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, 0xf0, 0x0, + 0xf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, 0x3f, 0x80, + 0x0, 0x7f, 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfc, + 0x0, 0x0, + + /* U+0047 "G" */ + 0x0, 0x3f, 0xe0, 0x0, 0xf, 0xff, 0xc0, 0x3, + 0xff, 0xff, 0x0, 0x7f, 0xff, 0xf8, 0xf, 0xff, + 0xff, 0xc1, 0xff, 0x3, 0xfc, 0x3f, 0xc0, 0x1f, + 0xe3, 0xf8, 0x0, 0xfe, 0x7f, 0x80, 0x7, 0xf7, + 0xf0, 0x0, 0x7f, 0x7f, 0x0, 0x7, 0xff, 0xe0, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, + 0xfe, 0x3, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xfe, + 0x3, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xfe, 0x3, + 0xff, 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, + 0xf7, 0xf0, 0x0, 0x7f, 0x7f, 0x0, 0x7, 0xf7, + 0xf8, 0x0, 0x7f, 0x3f, 0x80, 0x7, 0xf3, 0xfc, + 0x0, 0x7f, 0x1f, 0xf0, 0x1f, 0xf0, 0xff, 0xff, + 0xff, 0x7, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xfc, + 0x0, 0xff, 0xff, 0x0, 0x1, 0xff, 0x0, + + /* U+0048 "H" */ + 0xfe, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7f, 0xfe, + 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, + 0x7, 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, + 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, + 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, 0xe0, + 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, 0xe0, 0x0, + 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, + 0x7, 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, + 0xff, 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, + 0xe0, 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, 0xe0, + 0x0, 0x7f, 0xfe, 0x0, 0x7, 0xff, 0xe0, 0x0, + 0x7f, 0xfe, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7f, + 0xfe, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7f, + + /* U+0049 "I" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + + /* U+004A "J" */ + 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x3, + 0xf8, 0x0, 0x7, 0xf0, 0x0, 0xf, 0xe0, 0x0, + 0x1f, 0xc0, 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, + 0x0, 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, + 0x0, 0x7, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x1f, + 0xc0, 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, 0x0, + 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, + 0x7, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x1f, 0xc0, + 0x0, 0x3f, 0x80, 0x0, 0x7f, 0xfe, 0x0, 0xff, + 0xfc, 0x1, 0xff, 0xf8, 0x7, 0xff, 0xf8, 0xf, + 0xe7, 0xf8, 0x3f, 0xcf, 0xff, 0xff, 0xf, 0xff, + 0xfc, 0xf, 0xff, 0xf0, 0x7, 0xff, 0xc0, 0x3, + 0xfc, 0x0, + + /* U+004B "K" */ + 0xfe, 0x0, 0x3f, 0xef, 0xe0, 0x3, 0xfc, 0xfe, + 0x0, 0x7f, 0x8f, 0xe0, 0xf, 0xf8, 0xfe, 0x1, + 0xff, 0xf, 0xe0, 0x1f, 0xe0, 0xfe, 0x3, 0xfc, + 0xf, 0xe0, 0x7f, 0x80, 0xfe, 0xf, 0xf8, 0xf, + 0xe0, 0xff, 0x0, 0xfe, 0x1f, 0xe0, 0xf, 0xe3, + 0xfc, 0x0, 0xfe, 0x7f, 0x80, 0xf, 0xe7, 0xf8, + 0x0, 0xfe, 0xff, 0x0, 0xf, 0xff, 0xf0, 0x0, + 0xff, 0xff, 0x0, 0xf, 0xff, 0xf8, 0x0, 0xff, + 0xff, 0xc0, 0xf, 0xff, 0xfc, 0x0, 0xff, 0xdf, + 0xe0, 0xf, 0xfd, 0xff, 0x0, 0xff, 0x8f, 0xf0, + 0xf, 0xf0, 0x7f, 0x80, 0xfe, 0x7, 0xfc, 0xf, + 0xe0, 0x3f, 0xc0, 0xfe, 0x1, 0xfe, 0xf, 0xe0, + 0x1f, 0xf0, 0xfe, 0x0, 0xff, 0xf, 0xe0, 0x7, + 0xf8, 0xfe, 0x0, 0x7f, 0x8f, 0xe0, 0x3, 0xfc, + 0xfe, 0x0, 0x1f, 0xef, 0xe0, 0x1, 0xfe, + + /* U+004C "L" */ + 0xfe, 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, 0x0, + 0x3f, 0x80, 0x0, 0xfe, 0x0, 0x3, 0xf8, 0x0, + 0xf, 0xe0, 0x0, 0x3f, 0x80, 0x0, 0xfe, 0x0, + 0x3, 0xf8, 0x0, 0xf, 0xe0, 0x0, 0x3f, 0x80, + 0x0, 0xfe, 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, + 0x0, 0x3f, 0x80, 0x0, 0xfe, 0x0, 0x3, 0xf8, + 0x0, 0xf, 0xe0, 0x0, 0x3f, 0x80, 0x0, 0xfe, + 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, 0x0, 0x3f, + 0x80, 0x0, 0xfe, 0x0, 0x3, 0xf8, 0x0, 0xf, + 0xe0, 0x0, 0x3f, 0x80, 0x0, 0xfe, 0x0, 0x3, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + + /* U+004D "M" */ + 0xff, 0x80, 0x0, 0x1f, 0xff, 0xfc, 0x0, 0x3, + 0xff, 0xff, 0xc0, 0x0, 0x3f, 0xff, 0xfc, 0x0, + 0x3, 0xff, 0xff, 0xe0, 0x0, 0x7f, 0xff, 0xfe, + 0x0, 0x7, 0xff, 0xff, 0xe0, 0x0, 0xff, 0xff, + 0xff, 0x0, 0xf, 0xff, 0xff, 0xf0, 0x0, 0xff, + 0xff, 0xdf, 0x80, 0x1f, 0xbf, 0xfd, 0xf8, 0x1, + 0xfb, 0xff, 0xdf, 0x80, 0x1f, 0xbf, 0xfe, 0xfc, + 0x3, 0xf7, 0xff, 0xef, 0xc0, 0x3f, 0x7f, 0xfe, + 0xfc, 0x3, 0xe7, 0xff, 0xe7, 0xe0, 0x7e, 0x7f, + 0xfe, 0x7e, 0x7, 0xe7, 0xff, 0xe3, 0xe0, 0x7c, + 0x7f, 0xfe, 0x3f, 0xf, 0xc7, 0xff, 0xe3, 0xf0, + 0xfc, 0x7f, 0xfe, 0x1f, 0xf, 0x87, 0xff, 0xe1, + 0xf9, 0xf8, 0x7f, 0xfe, 0x1f, 0x9f, 0x87, 0xff, + 0xe0, 0xfb, 0xf0, 0x7f, 0xfe, 0xf, 0xff, 0x7, + 0xff, 0xe0, 0xff, 0xe0, 0x7f, 0xfe, 0x7, 0xfe, + 0x7, 0xff, 0xe0, 0x7f, 0xe0, 0x7f, 0xfe, 0x3, + 0xfc, 0x7, 0xff, 0xe0, 0x3f, 0xc0, 0x7f, 0xfe, + 0x3, 0xfc, 0x7, 0xff, 0xe0, 0x1f, 0x80, 0x7f, + 0xfe, 0x1, 0xf8, 0x7, 0xff, 0xe0, 0x1f, 0x80, + 0x7f, + + /* U+004E "N" */ + 0xfe, 0x0, 0x7, 0xff, 0xf0, 0x0, 0x7f, 0xff, + 0x80, 0x7, 0xff, 0xf8, 0x0, 0x7f, 0xff, 0xc0, + 0x7, 0xff, 0xfc, 0x0, 0x7f, 0xff, 0xe0, 0x7, + 0xff, 0xff, 0x0, 0x7f, 0xff, 0xf0, 0x7, 0xff, + 0xff, 0x80, 0x7f, 0xff, 0xf8, 0x7, 0xff, 0xff, + 0xc0, 0x7f, 0xfe, 0xfe, 0x7, 0xff, 0xef, 0xe0, + 0x7f, 0xfe, 0x7f, 0x7, 0xff, 0xe3, 0xf8, 0x7f, + 0xfe, 0x3f, 0x87, 0xff, 0xe1, 0xfc, 0x7f, 0xfe, + 0x1f, 0xc7, 0xff, 0xe0, 0xfe, 0x7f, 0xfe, 0x7, + 0xf7, 0xff, 0xe0, 0x7f, 0x7f, 0xfe, 0x3, 0xff, + 0xff, 0xe0, 0x1f, 0xff, 0xfe, 0x1, 0xff, 0xff, + 0xe0, 0xf, 0xff, 0xfe, 0x0, 0xff, 0xff, 0xe0, + 0x7, 0xff, 0xfe, 0x0, 0x3f, 0xff, 0xe0, 0x3, + 0xff, 0xfe, 0x0, 0x1f, 0xff, 0xe0, 0x1, 0xff, + 0xfe, 0x0, 0xf, 0xff, 0xe0, 0x0, 0x7f, + + /* U+004F "O" */ + 0x0, 0x3f, 0xe0, 0x0, 0x7, 0xff, 0xc0, 0x0, + 0xff, 0xff, 0x80, 0xf, 0xff, 0xfe, 0x0, 0xff, + 0xff, 0xf8, 0xf, 0xf8, 0x3f, 0xe0, 0xff, 0x0, + 0x7f, 0x87, 0xf0, 0x1, 0xfc, 0x7f, 0x80, 0xf, + 0xf3, 0xf8, 0x0, 0x3f, 0x9f, 0xc0, 0x1, 0xfd, + 0xfc, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x3f, 0xff, + 0x0, 0x1, 0xff, 0xf8, 0x0, 0xf, 0xff, 0xc0, + 0x0, 0x7f, 0xfe, 0x0, 0x3, 0xff, 0xf0, 0x0, + 0x1f, 0xff, 0x80, 0x0, 0xff, 0xfc, 0x0, 0x7, + 0xff, 0xe0, 0x0, 0x3f, 0xff, 0x0, 0x1, 0xff, + 0xf8, 0x0, 0xf, 0xef, 0xe0, 0x0, 0xfe, 0x7f, + 0x0, 0x7, 0xf3, 0xfc, 0x0, 0x7f, 0x8f, 0xe0, + 0x3, 0xf8, 0x7f, 0x80, 0x3f, 0xc1, 0xff, 0x7, + 0xfc, 0x7, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xfc, + 0x0, 0x7f, 0xff, 0xc0, 0x0, 0xff, 0xf8, 0x0, + 0x1, 0xfe, 0x0, 0x0, + + /* U+0050 "P" */ + 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xfc, 0xf, 0xff, + 0xff, 0xc3, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, + 0x3f, 0x80, 0x3f, 0xef, 0xe0, 0x7, 0xfb, 0xf8, + 0x0, 0xff, 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x7, + 0xff, 0xe0, 0x1, 0xff, 0xf8, 0x0, 0x7f, 0xfe, + 0x0, 0x1f, 0xff, 0x80, 0xf, 0xff, 0xe0, 0x3, + 0xfb, 0xf8, 0x3, 0xfe, 0xff, 0xff, 0xff, 0x3f, + 0xff, 0xff, 0x8f, 0xff, 0xff, 0xc3, 0xff, 0xff, + 0xe0, 0xff, 0xff, 0xc0, 0x3f, 0x80, 0x0, 0xf, + 0xe0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0x3f, 0x80, 0x0, 0xf, 0xe0, 0x0, 0x3, + 0xf8, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x3f, 0x80, + 0x0, 0xf, 0xe0, 0x0, 0x3, 0xf8, 0x0, 0x0, + 0xfe, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, + + /* U+0051 "Q" */ + 0x0, 0x1f, 0xe0, 0x0, 0x7, 0xff, 0xc0, 0x0, + 0xff, 0xff, 0x80, 0xf, 0xff, 0xfe, 0x0, 0xff, + 0xff, 0xf8, 0xf, 0xf8, 0x3f, 0xe0, 0xff, 0x0, + 0x7f, 0x87, 0xf0, 0x1, 0xfc, 0x7f, 0x80, 0xf, + 0xf3, 0xf8, 0x0, 0x3f, 0x9f, 0xc0, 0x1, 0xfd, + 0xfc, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x3f, 0xff, + 0x0, 0x1, 0xff, 0xf8, 0x0, 0xf, 0xff, 0xc0, + 0x0, 0x7f, 0xfe, 0x0, 0x3, 0xff, 0xf0, 0x0, + 0x1f, 0xff, 0x80, 0x0, 0xff, 0xfc, 0x0, 0x7, + 0xff, 0xe0, 0x0, 0x3f, 0xff, 0x0, 0x1, 0xff, + 0xf8, 0x0, 0xf, 0xef, 0xe0, 0x0, 0xfe, 0x7f, + 0x0, 0x7, 0xf3, 0xfc, 0x0, 0x7f, 0x8f, 0xe0, + 0x3, 0xf8, 0x7f, 0x80, 0x3f, 0xc1, 0xff, 0x7, + 0xfc, 0x7, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xfc, + 0x0, 0x7f, 0xff, 0xc0, 0x0, 0xff, 0xff, 0x80, + 0x1, 0xff, 0xfe, 0x0, 0x0, 0xf, 0xf8, 0x0, + 0x0, 0x3f, 0xe0, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x1, 0xf0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, + 0x10, + + /* U+0052 "R" */ + 0xff, 0xff, 0x80, 0x3f, 0xff, 0xfc, 0xf, 0xff, + 0xff, 0xc3, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xfe, + 0x3f, 0x80, 0x7f, 0xcf, 0xe0, 0x7, 0xf3, 0xf8, + 0x1, 0xfe, 0xfe, 0x0, 0x3f, 0xbf, 0x80, 0xf, + 0xef, 0xe0, 0x3, 0xfb, 0xf8, 0x0, 0xfe, 0xfe, + 0x0, 0x3f, 0xbf, 0x80, 0x1f, 0xef, 0xe0, 0x7, + 0xf3, 0xf8, 0x7, 0xfc, 0xff, 0xff, 0xfe, 0x3f, + 0xff, 0xff, 0xf, 0xff, 0xff, 0x83, 0xff, 0xff, + 0x80, 0xff, 0xff, 0xe0, 0x3f, 0x81, 0xfc, 0xf, + 0xe0, 0x7f, 0x3, 0xf8, 0xf, 0xe0, 0xfe, 0x3, + 0xf8, 0x3f, 0x80, 0x7f, 0xf, 0xe0, 0x1f, 0xc3, + 0xf8, 0x3, 0xf8, 0xfe, 0x0, 0xfe, 0x3f, 0x80, + 0x1f, 0xcf, 0xe0, 0x7, 0xf3, 0xf8, 0x0, 0xfe, + 0xfe, 0x0, 0x3f, 0xff, 0x80, 0x7, 0xf0, + + /* U+0053 "S" */ + 0x0, 0x7f, 0xc0, 0x0, 0xff, 0xfe, 0x0, 0x7f, + 0xff, 0xc0, 0x7f, 0xff, 0xf8, 0x1f, 0xff, 0xff, + 0xf, 0xf8, 0x3f, 0xe7, 0xf8, 0x3, 0xf9, 0xfc, + 0x0, 0xff, 0x7f, 0x0, 0x1f, 0xdf, 0xc0, 0x7, + 0xf7, 0xf0, 0x0, 0x1, 0xfe, 0x0, 0x0, 0x3f, + 0xe0, 0x0, 0xf, 0xfe, 0x0, 0x1, 0xff, 0xf0, + 0x0, 0x3f, 0xff, 0x80, 0x7, 0xff, 0xf8, 0x0, + 0x7f, 0xff, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x3f, + 0xfc, 0x0, 0x1, 0xff, 0x80, 0x0, 0x1f, 0xe0, + 0x0, 0x3, 0xff, 0xf8, 0x0, 0x7f, 0xfe, 0x0, + 0x1f, 0xff, 0x80, 0x7, 0xff, 0xf0, 0x1, 0xfd, + 0xfe, 0x0, 0xff, 0x7f, 0xc0, 0x7f, 0x8f, 0xff, + 0xff, 0xe1, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xf8, + 0x3, 0xff, 0xf8, 0x0, 0x1f, 0xf0, 0x0, + + /* U+0054 "T" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x80, 0xf, 0xe0, 0x0, 0x0, 0x7f, + 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1f, 0xc0, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0x7, 0xf0, 0x0, + 0x0, 0x3f, 0x80, 0x0, 0x1, 0xfc, 0x0, 0x0, + 0xf, 0xe0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x3, + 0xf8, 0x0, 0x0, 0x1f, 0xc0, 0x0, 0x0, 0xfe, + 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0, 0x3f, 0x80, + 0x0, 0x1, 0xfc, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, + 0x1f, 0xc0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x7, + 0xf0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x1, 0xfc, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1f, 0xc0, 0x0, + 0x0, 0xfe, 0x0, 0x0, + + /* U+0055 "U" */ + 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x7, 0xff, 0xe0, + 0x1, 0xff, 0xf8, 0x0, 0x7f, 0xfe, 0x0, 0x1f, + 0xff, 0x80, 0x7, 0xff, 0xe0, 0x1, 0xff, 0xf8, + 0x0, 0x7f, 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x7, + 0xff, 0xe0, 0x1, 0xff, 0xf8, 0x0, 0x7f, 0xfe, + 0x0, 0x1f, 0xff, 0x80, 0x7, 0xff, 0xe0, 0x1, + 0xff, 0xf8, 0x0, 0x7f, 0xfe, 0x0, 0x1f, 0xff, + 0x80, 0x7, 0xff, 0xe0, 0x1, 0xff, 0xf8, 0x0, + 0x7f, 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x7, 0xff, + 0xe0, 0x1, 0xff, 0xf8, 0x0, 0x7f, 0xfe, 0x0, + 0x1f, 0xff, 0x80, 0x7, 0xf7, 0xf0, 0x3, 0xf9, + 0xfe, 0x1, 0xfe, 0x3f, 0xc0, 0xff, 0xf, 0xff, + 0xff, 0xc1, 0xff, 0xff, 0xe0, 0x3f, 0xff, 0xf0, + 0x3, 0xff, 0xf0, 0x0, 0x1f, 0xe0, 0x0, + + /* U+0056 "V" */ + 0xff, 0x0, 0x1, 0xfe, 0xfe, 0x0, 0x3, 0xfd, + 0xfe, 0x0, 0x7, 0xf3, 0xfc, 0x0, 0x1f, 0xe3, + 0xf8, 0x0, 0x3f, 0xc7, 0xf8, 0x0, 0x7f, 0xf, + 0xf0, 0x1, 0xfe, 0xf, 0xe0, 0x3, 0xfc, 0x1f, + 0xc0, 0x7, 0xf0, 0x3f, 0xc0, 0xf, 0xe0, 0x3f, + 0x80, 0x3f, 0xc0, 0x7f, 0x0, 0x7f, 0x0, 0x7f, + 0x0, 0xfe, 0x0, 0xfe, 0x3, 0xfc, 0x1, 0xfc, + 0x7, 0xf0, 0x1, 0xfc, 0xf, 0xe0, 0x3, 0xf8, + 0x3f, 0x80, 0x7, 0xf0, 0x7f, 0x0, 0x7, 0xe0, + 0xfe, 0x0, 0xf, 0xe1, 0xf8, 0x0, 0x1f, 0xc7, + 0xf0, 0x0, 0x1f, 0x8f, 0xe0, 0x0, 0x3f, 0x9f, + 0x80, 0x0, 0x7f, 0x7f, 0x0, 0x0, 0x7e, 0xfe, + 0x0, 0x0, 0xff, 0xf8, 0x0, 0x1, 0xff, 0xf0, + 0x0, 0x1, 0xff, 0xe0, 0x0, 0x3, 0xff, 0x80, + 0x0, 0x7, 0xff, 0x0, 0x0, 0x7, 0xfe, 0x0, + 0x0, 0xf, 0xf8, 0x0, 0x0, 0x1f, 0xf0, 0x0, + 0x0, 0x1f, 0xe0, 0x0, + + /* U+0057 "W" */ + 0x7f, 0x0, 0x7f, 0x0, 0x7f, 0x7f, 0x0, 0x7f, + 0x0, 0x7f, 0x7f, 0x0, 0x7f, 0x0, 0x7f, 0x7f, + 0x0, 0x7f, 0x0, 0x7f, 0x7f, 0x0, 0x7f, 0x0, + 0x7f, 0x3f, 0x80, 0xff, 0x80, 0xfe, 0x3f, 0x80, + 0xff, 0x80, 0xfe, 0x3f, 0x80, 0xff, 0x80, 0xfe, + 0x3f, 0x80, 0xff, 0x80, 0xfe, 0x1f, 0x81, 0xff, + 0xc0, 0xfc, 0x1f, 0x81, 0xff, 0xc1, 0xfc, 0x1f, + 0xc1, 0xff, 0xc1, 0xfc, 0x1f, 0xc1, 0xf7, 0xc1, + 0xfc, 0x1f, 0xc3, 0xf7, 0xe1, 0xfc, 0xf, 0xc3, + 0xf7, 0xe1, 0xf8, 0xf, 0xc3, 0xf7, 0xe1, 0xf8, + 0xf, 0xe3, 0xe3, 0xe3, 0xf8, 0xf, 0xe3, 0xe3, + 0xe3, 0xf8, 0x7, 0xe7, 0xe3, 0xf3, 0xf0, 0x7, + 0xe7, 0xe3, 0xf3, 0xf0, 0x7, 0xe7, 0xc1, 0xf3, + 0xf0, 0x7, 0xf7, 0xc1, 0xf7, 0xf0, 0x7, 0xff, + 0xc1, 0xff, 0xf0, 0x3, 0xff, 0xc1, 0xff, 0xe0, + 0x3, 0xff, 0x80, 0xff, 0xe0, 0x3, 0xff, 0x80, + 0xff, 0xe0, 0x3, 0xff, 0x80, 0xff, 0xe0, 0x1, + 0xff, 0x80, 0xff, 0xc0, 0x1, 0xff, 0x0, 0x7f, + 0xc0, 0x1, 0xff, 0x0, 0x7f, 0xc0, 0x1, 0xff, + 0x0, 0x7f, 0xc0, 0x1, 0xff, 0x0, 0x7f, 0xc0, + 0x0, 0xfe, 0x0, 0x3f, 0x80, 0x0, 0xfe, 0x0, + 0x3f, 0x80, + + /* U+0058 "X" */ + 0x7f, 0x80, 0x7, 0xf8, 0xff, 0x0, 0x1f, 0xe3, + 0xfc, 0x0, 0xff, 0x7, 0xf8, 0x3, 0xfc, 0x1f, + 0xe0, 0x1f, 0xe0, 0x3f, 0xc0, 0x7f, 0x0, 0x7f, + 0x3, 0xfc, 0x1, 0xfe, 0xf, 0xe0, 0x3, 0xf8, + 0x7f, 0x80, 0xf, 0xf1, 0xfc, 0x0, 0x1f, 0xef, + 0xf0, 0x0, 0x3f, 0xff, 0x80, 0x0, 0xff, 0xfc, + 0x0, 0x1, 0xff, 0xf0, 0x0, 0x7, 0xff, 0x80, + 0x0, 0xf, 0xfe, 0x0, 0x0, 0x3f, 0xf0, 0x0, + 0x0, 0xff, 0xc0, 0x0, 0x3, 0xff, 0x80, 0x0, + 0x1f, 0xfe, 0x0, 0x0, 0x7f, 0xfc, 0x0, 0x3, + 0xff, 0xf8, 0x0, 0x1f, 0xef, 0xe0, 0x0, 0x7f, + 0x3f, 0xc0, 0x3, 0xfc, 0x7f, 0x0, 0xf, 0xe1, + 0xfe, 0x0, 0x7f, 0x83, 0xfc, 0x3, 0xfc, 0xf, + 0xf0, 0xf, 0xf0, 0x1f, 0xe0, 0x7f, 0x80, 0x7f, + 0x81, 0xfe, 0x0, 0xff, 0xf, 0xf0, 0x1, 0xfc, + 0x7f, 0x80, 0x7, 0xf9, 0xfe, 0x0, 0xf, 0xf0, + + /* U+0059 "Y" */ + 0xff, 0x0, 0x7, 0xfb, 0xf8, 0x0, 0x3f, 0x9f, + 0xe0, 0x3, 0xfc, 0x7f, 0x0, 0x1f, 0xc3, 0xf8, + 0x1, 0xfe, 0xf, 0xe0, 0xf, 0xe0, 0x7f, 0x0, + 0x7f, 0x1, 0xfc, 0x7, 0xf0, 0xf, 0xe0, 0x3f, + 0x80, 0x3f, 0x83, 0xf8, 0x1, 0xfc, 0x1f, 0xc0, + 0x7, 0xf1, 0xfc, 0x0, 0x3f, 0x8f, 0xe0, 0x0, + 0xfe, 0xfe, 0x0, 0x7, 0xf7, 0xf0, 0x0, 0x1f, + 0xff, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x3, 0xff, + 0x80, 0x0, 0x1f, 0xfc, 0x0, 0x0, 0x7f, 0xc0, + 0x0, 0x3, 0xfe, 0x0, 0x0, 0xf, 0xe0, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, + 0x1f, 0xc0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x7, + 0xf0, 0x0, 0x0, 0x3f, 0x80, 0x0, 0x1, 0xfc, + 0x0, 0x0, 0xf, 0xe0, 0x0, 0x0, 0x7f, 0x0, + 0x0, 0x3, 0xf8, 0x0, 0x0, 0x1f, 0xc0, 0x0, + 0x0, 0xfe, 0x0, 0x0, + + /* U+005A "Z" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, 0x0, 0x1f, 0xc0, 0x0, 0xf, 0xf0, 0x0, + 0x3, 0xf8, 0x0, 0x1, 0xfc, 0x0, 0x0, 0xff, + 0x0, 0x0, 0x7f, 0x80, 0x0, 0x1f, 0xc0, 0x0, + 0xf, 0xf0, 0x0, 0x7, 0xf8, 0x0, 0x1, 0xfc, + 0x0, 0x0, 0xff, 0x0, 0x0, 0x7f, 0x80, 0x0, + 0x1f, 0xc0, 0x0, 0xf, 0xf0, 0x0, 0x7, 0xf8, + 0x0, 0x1, 0xfc, 0x0, 0x0, 0xff, 0x0, 0x0, + 0x7f, 0x80, 0x0, 0x1f, 0xc0, 0x0, 0xf, 0xe0, + 0x0, 0x7, 0xf8, 0x0, 0x1, 0xfc, 0x0, 0x0, + 0xfe, 0x0, 0x0, 0x7f, 0x80, 0x0, 0x1f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + + /* U+005B "[" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, + 0xe3, 0xf8, 0xfe, 0x3f, 0x8f, 0xe3, 0xf8, 0xfe, + 0x3f, 0x8f, 0xe3, 0xf8, 0xfe, 0x3f, 0x8f, 0xe3, + 0xf8, 0xfe, 0x3f, 0x8f, 0xe3, 0xf8, 0xfe, 0x3f, + 0x8f, 0xe3, 0xf8, 0xfe, 0x3f, 0x8f, 0xe3, 0xf8, + 0xfe, 0x3f, 0x8f, 0xe3, 0xf8, 0xfe, 0x3f, 0x8f, + 0xe3, 0xf8, 0xfe, 0x3f, 0x8f, 0xe3, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, + + /* U+005C "\\" */ + 0xfe, 0x0, 0x3, 0xf0, 0x0, 0x1f, 0xc0, 0x0, + 0xfe, 0x0, 0x3, 0xf8, 0x0, 0x1f, 0xc0, 0x0, + 0xfe, 0x0, 0x3, 0xf8, 0x0, 0x1f, 0xc0, 0x0, + 0x7f, 0x0, 0x3, 0xf8, 0x0, 0x1f, 0xc0, 0x0, + 0x7f, 0x0, 0x3, 0xf8, 0x0, 0x1f, 0xc0, 0x0, + 0x7f, 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, 0x0, + 0x7f, 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, 0x0, + 0x7f, 0x0, 0x1, 0xf8, 0x0, 0xf, 0xe0, 0x0, + 0x7f, 0x0, 0x1, 0xfc, 0x0, 0xf, 0xe0, 0x0, + 0x7f, 0x0, 0x1, 0xfc, 0x0, 0xf, 0xe0, 0x0, + 0x3f, 0x80, 0x1, 0xfc, 0x0, 0xf, 0xe0, 0x0, + 0x3f, 0x80, 0x1, 0xfc, 0x0, 0xf, 0xe0, 0x0, + 0x3f, 0x80, 0x1, 0xfc, + + /* U+005D "]" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, + 0xc3, 0xf8, 0x7f, 0xf, 0xe1, 0xfc, 0x3f, 0x87, + 0xf0, 0xfe, 0x1f, 0xc3, 0xf8, 0x7f, 0xf, 0xe1, + 0xfc, 0x3f, 0x87, 0xf0, 0xfe, 0x1f, 0xc3, 0xf8, + 0x7f, 0xf, 0xe1, 0xfc, 0x3f, 0x87, 0xf0, 0xfe, + 0x1f, 0xc3, 0xf8, 0x7f, 0xf, 0xe1, 0xfc, 0x3f, + 0x87, 0xf0, 0xfe, 0x1f, 0xc3, 0xf8, 0x7f, 0xf, + 0xe1, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, + + /* U+005E "^" */ + 0x1, 0xf0, 0x0, 0x7f, 0x0, 0xf, 0xe0, 0x1, + 0xfc, 0x0, 0x7f, 0xc0, 0xf, 0xf8, 0x3, 0xef, + 0x80, 0x7d, 0xf0, 0xf, 0xbf, 0x3, 0xe3, 0xe0, + 0x7c, 0x7c, 0x1f, 0x87, 0xc3, 0xe0, 0xf8, 0xfc, + 0x1f, 0x9f, 0x1, 0xf3, 0xe0, 0x3e, 0xfc, 0x7, + 0xe0, + + /* U+005F "_" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, + + /* U+0060 "`" */ + 0x7f, 0x3, 0xf8, 0x1f, 0x80, 0xfc, 0xf, 0xe0, + 0x7e, 0x3, 0xf0, + + /* U+0061 "a" */ + 0x1, 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x7f, 0xff, + 0x81, 0xff, 0xff, 0x87, 0xff, 0xff, 0x9f, 0xf0, + 0xff, 0x3f, 0x80, 0xff, 0x7f, 0x0, 0xfe, 0x0, + 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x7, 0xff, 0xf0, + 0x7f, 0xff, 0xe1, 0xff, 0xff, 0xc7, 0xff, 0xff, + 0x9f, 0xe0, 0x7f, 0x7f, 0x80, 0xfe, 0xfe, 0x1, + 0xfd, 0xfc, 0x3, 0xfb, 0xf8, 0x7, 0xf7, 0xf0, + 0x1f, 0xef, 0xf0, 0x7f, 0xcf, 0xff, 0xff, 0x9f, + 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x1f, 0xfd, 0xfc, + 0xf, 0xe1, 0xfc, + + /* U+0062 "b" */ + 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, + 0x7, 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x1f, 0xc0, + 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, 0x0, 0xfe, + 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 0xfc, 0x7, + 0xf7, 0xfe, 0xf, 0xff, 0xff, 0x1f, 0xff, 0xff, + 0x3f, 0xff, 0xfe, 0x7f, 0xc3, 0xfe, 0xff, 0x1, + 0xfd, 0xfc, 0x3, 0xfb, 0xf8, 0x7, 0xff, 0xf0, + 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, 0xff, + 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, 0xff, + 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, 0xf0, 0x7, + 0xff, 0xe0, 0x1f, 0xdf, 0xe0, 0x3f, 0xbf, 0xe1, + 0xff, 0x7f, 0xff, 0xfc, 0xff, 0xff, 0xf1, 0xff, + 0xff, 0xe3, 0xfb, 0xff, 0x7, 0xe1, 0xf8, 0x0, + + /* U+0063 "c" */ + 0x0, 0xfe, 0x0, 0x1f, 0xff, 0x0, 0xff, 0xfe, + 0x7, 0xff, 0xfc, 0x3f, 0xff, 0xf8, 0xfe, 0x1f, + 0xe7, 0xf0, 0x3f, 0xdf, 0xc0, 0x7f, 0xfe, 0x1, + 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x0, 0x3f, 0x80, + 0x0, 0xfe, 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, + 0x0, 0x3f, 0x80, 0x0, 0xfe, 0x0, 0x3, 0xf8, + 0x7, 0xf7, 0xf0, 0x1f, 0xdf, 0xc0, 0xff, 0x3f, + 0x87, 0xf8, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x3, + 0xff, 0xf8, 0x7, 0xff, 0xc0, 0x3, 0xf8, 0x0, + + /* U+0064 "d" */ + 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x3, + 0xf8, 0x0, 0x7, 0xf0, 0x0, 0xf, 0xe0, 0x0, + 0x1f, 0xc0, 0x0, 0x3f, 0x80, 0x0, 0x7f, 0x0, + 0x0, 0xfe, 0x0, 0x1, 0xfc, 0x7, 0xe3, 0xf8, + 0x3f, 0xf7, 0xf0, 0xff, 0xff, 0xe3, 0xff, 0xff, + 0xcf, 0xff, 0xff, 0xbf, 0xe1, 0xff, 0x7f, 0x81, + 0xfe, 0xfe, 0x1, 0xff, 0xfc, 0x3, 0xff, 0xf0, + 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, 0xff, + 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, 0xff, + 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, 0xf8, 0x7, + 0xf7, 0xf0, 0xf, 0xef, 0xf0, 0x3f, 0xdf, 0xf0, + 0xff, 0x9f, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x1f, + 0xff, 0xfc, 0x1f, 0xfb, 0xf8, 0xf, 0xc3, 0xf0, + + /* U+0065 "e" */ + 0x0, 0xff, 0x0, 0x7, 0xff, 0x80, 0x3f, 0xff, + 0x80, 0xff, 0xff, 0x83, 0xff, 0xff, 0x87, 0xf8, + 0x7f, 0x9f, 0xe0, 0x7f, 0x3f, 0x80, 0x7e, 0x7f, + 0x0, 0xff, 0xfc, 0x1, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0xfe, 0x0, + 0x1, 0xfe, 0x0, 0x1, 0xfc, 0x0, 0x3, 0xfc, + 0x1, 0x83, 0xfe, 0xf, 0x83, 0xff, 0xff, 0x87, + 0xff, 0xff, 0x7, 0xff, 0xfc, 0x3, 0xff, 0xe0, + 0x0, 0xfe, 0x0, + + /* U+0066 "f" */ + 0x0, 0x3f, 0x80, 0xff, 0xc0, 0xff, 0xe0, 0xff, + 0xf0, 0x7f, 0xf8, 0x7f, 0xc0, 0x3f, 0xc0, 0x1f, + 0xc0, 0xf, 0xe0, 0x7, 0xf0, 0x3, 0xf8, 0x1f, + 0xff, 0xef, 0xff, 0xf7, 0xff, 0xfb, 0xff, 0xfd, + 0xff, 0xfe, 0xf, 0xe0, 0x7, 0xf0, 0x3, 0xf8, + 0x1, 0xfc, 0x0, 0xfe, 0x0, 0x7f, 0x0, 0x3f, + 0x80, 0x1f, 0xc0, 0xf, 0xe0, 0x7, 0xf0, 0x3, + 0xf8, 0x1, 0xfc, 0x0, 0xfe, 0x0, 0x7f, 0x0, + 0x3f, 0x80, 0x1f, 0xc0, 0xf, 0xe0, 0x7, 0xf0, + 0x3, 0xf8, 0x1, 0xfc, 0x0, 0xfe, 0x0, + + /* U+0067 "g" */ + 0x1, 0xf8, 0x7e, 0xf, 0xfd, 0xfc, 0x3f, 0xff, + 0xf8, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xef, 0xf8, + 0x7f, 0xdf, 0xe0, 0x7f, 0xbf, 0x80, 0x7f, 0xff, + 0x0, 0xff, 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, + 0xf0, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, + 0xff, 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, + 0xff, 0xfe, 0x1, 0xfd, 0xfc, 0x3, 0xfb, 0xfc, + 0xf, 0xf3, 0xfc, 0x3f, 0xe7, 0xff, 0xff, 0xc7, + 0xff, 0xff, 0x87, 0xff, 0xff, 0x7, 0xfe, 0xfe, + 0x3, 0xf1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, + 0xf0, 0x80, 0x1f, 0xe3, 0x80, 0x3f, 0x87, 0xc1, + 0xff, 0x1f, 0xff, 0xfc, 0x3f, 0xff, 0xf0, 0x3f, + 0xff, 0xc0, 0x1f, 0xff, 0x0, 0xf, 0xf0, 0x0, + + /* U+0068 "h" */ + 0xfe, 0x0, 0x3, 0xf8, 0x0, 0xf, 0xe0, 0x0, + 0x3f, 0x80, 0x0, 0xfe, 0x0, 0x3, 0xf8, 0x0, + 0xf, 0xe0, 0x0, 0x3f, 0x80, 0x0, 0xfe, 0x0, + 0x3, 0xf8, 0x0, 0xf, 0xe1, 0xf8, 0x3f, 0x9f, + 0xf8, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xef, 0xff, + 0xff, 0xbf, 0xe1, 0xfe, 0xff, 0x3, 0xff, 0xf8, + 0x7, 0xff, 0xe0, 0x1f, 0xff, 0x80, 0x7f, 0xfe, + 0x1, 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x1f, 0xff, + 0x80, 0x7f, 0xfe, 0x1, 0xff, 0xf8, 0x7, 0xff, + 0xe0, 0x1f, 0xff, 0x80, 0x7f, 0xfe, 0x1, 0xff, + 0xf8, 0x7, 0xff, 0xe0, 0x1f, 0xff, 0x80, 0x7f, + 0xfe, 0x1, 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x1f, + 0xff, 0x80, 0x7f, + + /* U+0069 "i" */ + 0x38, 0xfb, 0xff, 0xff, 0xef, 0x8e, 0x0, 0x0, + 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + + /* U+006A "j" */ + 0x1, 0xc0, 0x3e, 0x7, 0xf0, 0x7f, 0x7, 0xf0, + 0x3e, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7, + 0xf0, 0x7f, 0x7, 0xf0, 0x7f, 0x7, 0xf0, 0x7f, + 0x7, 0xf0, 0x7f, 0x7, 0xf0, 0x7f, 0x7, 0xf0, + 0x7f, 0x7, 0xf0, 0x7f, 0x7, 0xf0, 0x7f, 0x7, + 0xf0, 0x7f, 0x7, 0xf0, 0x7f, 0x7, 0xf0, 0x7f, + 0x7, 0xf0, 0x7f, 0x7, 0xf0, 0x7f, 0x7, 0xf0, + 0x7f, 0x7, 0xf0, 0x7f, 0xf, 0xff, 0xfe, 0xff, + 0xef, 0xfc, 0xff, 0x8f, 0xf0, 0x10, 0x0, + + /* U+006B "k" */ + 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x0, 0xfe, 0x0, + 0x0, 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x0, 0xfe, + 0x0, 0x0, 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0xfe, 0x0, 0x0, 0xfe, 0x0, 0x0, 0xfe, 0x3, + 0xfe, 0xfe, 0x3, 0xfc, 0xfe, 0x7, 0xf8, 0xfe, + 0xf, 0xf0, 0xfe, 0x1f, 0xe0, 0xfe, 0x3f, 0xc0, + 0xfe, 0x7f, 0x80, 0xfe, 0x7f, 0x80, 0xfe, 0xff, + 0x0, 0xff, 0xfe, 0x0, 0xff, 0xfc, 0x0, 0xff, + 0xfc, 0x0, 0xff, 0xfe, 0x0, 0xff, 0xff, 0x0, + 0xff, 0xff, 0x0, 0xff, 0xff, 0x80, 0xff, 0x3f, + 0xc0, 0xfe, 0x1f, 0xc0, 0xfe, 0x1f, 0xe0, 0xfe, + 0xf, 0xf0, 0xfe, 0x7, 0xf0, 0xfe, 0x7, 0xf8, + 0xfe, 0x3, 0xf8, 0xfe, 0x3, 0xfc, 0xfe, 0x1, + 0xfe, 0xfe, 0x0, 0xfe, + + /* U+006C "l" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + + /* U+006D "m" */ + 0xfe, 0x1f, 0x80, 0x7e, 0xf, 0xe7, 0xfe, 0x1f, + 0xf8, 0xff, 0xff, 0xf3, 0xff, 0xcf, 0xff, 0xff, + 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf8, + 0x7f, 0xf0, 0xff, 0xff, 0x3, 0xfe, 0xf, 0xff, + 0xe0, 0x1f, 0xc0, 0x7f, 0xfe, 0x1, 0xfc, 0x7, + 0xff, 0xe0, 0x1f, 0xc0, 0x7f, 0xfe, 0x1, 0xfc, + 0x7, 0xff, 0xe0, 0x1f, 0xc0, 0x7f, 0xfe, 0x1, + 0xfc, 0x7, 0xff, 0xe0, 0x1f, 0xc0, 0x7f, 0xfe, + 0x1, 0xfc, 0x7, 0xff, 0xe0, 0x1f, 0xc0, 0x7f, + 0xfe, 0x1, 0xfc, 0x7, 0xff, 0xe0, 0x1f, 0xc0, + 0x7f, 0xfe, 0x1, 0xfc, 0x7, 0xff, 0xe0, 0x1f, + 0xc0, 0x7f, 0xfe, 0x1, 0xfc, 0x7, 0xff, 0xe0, + 0x1f, 0xc0, 0x7f, 0xfe, 0x1, 0xfc, 0x7, 0xff, + 0xe0, 0x1f, 0xc0, 0x7f, 0xfe, 0x1, 0xfc, 0x7, + 0xff, 0xe0, 0x1f, 0xc0, 0x7f, + + /* U+006E "n" */ + 0xfe, 0x1f, 0x83, 0xf9, 0xff, 0x8f, 0xef, 0xff, + 0x3f, 0xff, 0xfe, 0xff, 0xff, 0xfb, 0xfe, 0x1f, + 0xff, 0xf0, 0x3f, 0xff, 0x80, 0x7f, 0xfe, 0x1, + 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x1f, 0xff, 0x80, + 0x7f, 0xfe, 0x1, 0xff, 0xf8, 0x7, 0xff, 0xe0, + 0x1f, 0xff, 0x80, 0x7f, 0xfe, 0x1, 0xff, 0xf8, + 0x7, 0xff, 0xe0, 0x1f, 0xff, 0x80, 0x7f, 0xfe, + 0x1, 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x1f, 0xff, + 0x80, 0x7f, 0xfe, 0x1, 0xff, 0xf8, 0x7, 0xf0, + + /* U+006F "o" */ + 0x0, 0xff, 0x0, 0x3, 0xff, 0xc0, 0xf, 0xff, + 0xf0, 0x1f, 0xff, 0xf8, 0x3f, 0xff, 0xfc, 0x3f, + 0xc3, 0xfc, 0x7f, 0x81, 0xfe, 0x7f, 0x0, 0xfe, + 0x7f, 0x0, 0xfe, 0xfe, 0x0, 0x7f, 0xfe, 0x0, + 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x0, 0x7f, 0xfe, + 0x0, 0x7f, 0xfe, 0x0, 0x7f, 0xfe, 0x0, 0x7f, + 0xfe, 0x0, 0x7f, 0x7f, 0x0, 0xfe, 0x7f, 0x0, + 0xfe, 0x7f, 0x81, 0xfe, 0x3f, 0xc3, 0xfc, 0x3f, + 0xff, 0xfc, 0x1f, 0xff, 0xf8, 0xf, 0xff, 0xf0, + 0x3, 0xff, 0xc0, 0x0, 0xff, 0x0, + + /* U+0070 "p" */ + 0xfe, 0x3f, 0x1, 0xfd, 0xff, 0x83, 0xff, 0xff, + 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x9f, 0xf0, + 0xff, 0xbf, 0xc0, 0xff, 0x7f, 0x0, 0xfe, 0xfe, + 0x1, 0xff, 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, + 0xf0, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, + 0xff, 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, + 0xff, 0xfc, 0x3, 0xff, 0xf8, 0x7, 0xf7, 0xf8, + 0x1f, 0xef, 0xf8, 0x7f, 0xdf, 0xff, 0xff, 0x3f, + 0xff, 0xfc, 0x7f, 0xff, 0xf0, 0xfe, 0xff, 0xc1, + 0xfc, 0x7e, 0x3, 0xf8, 0x0, 0x7, 0xf0, 0x0, + 0xf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, 0x3f, 0x80, + 0x0, 0x7f, 0x0, 0x0, 0xfe, 0x0, 0x1, 0xfc, + 0x0, 0x3, 0xf8, 0x0, 0x7, 0xf0, 0x0, 0x0, + + /* U+0071 "q" */ + 0x1, 0xf8, 0x7e, 0xf, 0xfc, 0xfc, 0x7f, 0xff, + 0xf8, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xef, 0xf8, + 0x7f, 0xdf, 0xe0, 0x7f, 0xbf, 0x80, 0x7f, 0xff, + 0x0, 0xff, 0xfc, 0x1, 0xff, 0xf8, 0x3, 0xff, + 0xf0, 0x7, 0xff, 0xe0, 0xf, 0xff, 0xc0, 0x1f, + 0xff, 0x80, 0x3f, 0xff, 0x0, 0x7f, 0xfe, 0x0, + 0xff, 0xfe, 0x1, 0xfd, 0xfc, 0x3, 0xfb, 0xfc, + 0xf, 0xf7, 0xfc, 0x3f, 0xe7, 0xff, 0xff, 0xc7, + 0xff, 0xff, 0x87, 0xff, 0xff, 0x7, 0xfe, 0xfe, + 0x3, 0xf1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, + 0xf0, 0x0, 0xf, 0xe0, 0x0, 0x1f, 0xc0, 0x0, + 0x3f, 0x80, 0x0, 0x7f, 0x0, 0x0, 0xfe, 0x0, + 0x1, 0xfc, 0x0, 0x3, 0xf8, 0x0, 0x7, 0xf0, + + /* U+0072 "r" */ + 0xfe, 0x3f, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0x80, 0xfe, + 0x1, 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, 0xe0, + 0x1f, 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0xfe, 0x1, + 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, 0xe0, 0x1f, + 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0xfe, 0x1, 0xfc, + 0x0, + + /* U+0073 "s" */ + 0x1, 0xfe, 0x0, 0x1f, 0xff, 0x1, 0xff, 0xfe, + 0xf, 0xff, 0xfc, 0x3f, 0xff, 0xf9, 0xfe, 0xf, + 0xe7, 0xf0, 0x1f, 0xdf, 0xc0, 0x7f, 0x7f, 0x0, + 0x1, 0xfe, 0x0, 0x3, 0xfe, 0x0, 0xf, 0xff, + 0x80, 0x1f, 0xff, 0xc0, 0x1f, 0xff, 0xc0, 0xf, + 0xff, 0x80, 0x3, 0xfe, 0x0, 0x3, 0xff, 0xf8, + 0x7, 0xff, 0xe0, 0x1f, 0xff, 0xc0, 0x7f, 0x7f, + 0x83, 0xfd, 0xff, 0xff, 0xe3, 0xff, 0xff, 0x87, + 0xff, 0xfc, 0x7, 0xff, 0xc0, 0x7, 0xf8, 0x0, + + /* U+0074 "t" */ + 0xf, 0xe0, 0x1f, 0xc0, 0x3f, 0x80, 0x7f, 0x0, + 0xfe, 0x1, 0xfc, 0x3, 0xf8, 0x7f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xfe, + 0x1, 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, 0xe0, + 0x1f, 0xc0, 0x3f, 0x80, 0x7f, 0x0, 0xfe, 0x1, + 0xfc, 0x3, 0xf8, 0x7, 0xf0, 0xf, 0xe0, 0x1f, + 0xc0, 0x3f, 0x80, 0x7f, 0xc0, 0xff, 0xe0, 0xff, + 0xc1, 0xff, 0x81, 0xff, 0x0, 0xfe, + + /* U+0075 "u" */ + 0xfe, 0x1, 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x1f, + 0xff, 0x80, 0x7f, 0xfe, 0x1, 0xff, 0xf8, 0x7, + 0xff, 0xe0, 0x1f, 0xff, 0x80, 0x7f, 0xfe, 0x1, + 0xff, 0xf8, 0x7, 0xff, 0xe0, 0x1f, 0xff, 0x80, + 0x7f, 0xfe, 0x1, 0xff, 0xf8, 0x7, 0xff, 0xe0, + 0x1f, 0xff, 0x80, 0x7f, 0xfe, 0x1, 0xff, 0xf8, + 0x7, 0xff, 0xe0, 0x1f, 0xff, 0xc0, 0xff, 0xff, + 0x7, 0xfd, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xcf, + 0xff, 0xff, 0x1f, 0xfd, 0xfc, 0x1f, 0xc7, 0xf0, + + /* U+0076 "v" */ + 0xfe, 0x0, 0x7f, 0x7f, 0x0, 0xfe, 0x7f, 0x0, + 0xfe, 0x7f, 0x0, 0xfe, 0x3f, 0x0, 0xfc, 0x3f, + 0x81, 0xfc, 0x3f, 0x81, 0xfc, 0x1f, 0x81, 0xf8, + 0x1f, 0xc3, 0xf8, 0x1f, 0xc3, 0xf8, 0xf, 0xc3, + 0xf0, 0xf, 0xc3, 0xf0, 0xf, 0xe7, 0xf0, 0x7, + 0xe7, 0xe0, 0x7, 0xe7, 0xe0, 0x7, 0xef, 0xe0, + 0x3, 0xff, 0xc0, 0x3, 0xff, 0xc0, 0x3, 0xff, + 0xc0, 0x1, 0xff, 0x80, 0x1, 0xff, 0x80, 0x1, + 0xff, 0x80, 0x0, 0xff, 0x0, 0x0, 0xff, 0x0, + 0x0, 0xff, 0x0, 0x0, 0xfe, 0x0, + + /* U+0077 "w" */ + 0xfc, 0x3, 0xe0, 0x1f, 0xfe, 0x1, 0xf0, 0xf, + 0xff, 0x81, 0xfc, 0xf, 0xff, 0xc0, 0xfe, 0x7, + 0xf7, 0xe0, 0x7f, 0x3, 0xf3, 0xf0, 0x7f, 0x81, + 0xf9, 0xf8, 0x3f, 0xe0, 0xfc, 0xfe, 0x1f, 0xf0, + 0xfe, 0x3f, 0xf, 0xf8, 0x7e, 0x1f, 0x8f, 0xbe, + 0x3f, 0xf, 0xc7, 0xdf, 0x1f, 0x87, 0xe3, 0xef, + 0x8f, 0xc1, 0xf9, 0xf7, 0xcf, 0xc0, 0xfd, 0xf1, + 0xf7, 0xe0, 0x7e, 0xf8, 0xfb, 0xf0, 0x3f, 0x7c, + 0x7d, 0xf8, 0xf, 0xfc, 0x1f, 0xf8, 0x7, 0xfe, + 0xf, 0xfc, 0x3, 0xff, 0x7, 0xfe, 0x1, 0xff, + 0x83, 0xff, 0x0, 0x7f, 0x80, 0xff, 0x0, 0x3f, + 0xc0, 0x7f, 0x80, 0x1f, 0xe0, 0x3f, 0xc0, 0xf, + 0xe0, 0xf, 0xe0, 0x3, 0xf0, 0x7, 0xe0, 0x1, + 0xf8, 0x3, 0xf0, 0x0, + + /* U+0078 "x" */ + 0xfe, 0x1, 0xfc, 0xfe, 0x3, 0xf9, 0xfc, 0xf, + 0xe1, 0xfc, 0x1f, 0xc3, 0xf8, 0x7f, 0x3, 0xf8, + 0xfe, 0x3, 0xfb, 0xf8, 0x7, 0xff, 0xf0, 0x7, + 0xff, 0xc0, 0xf, 0xff, 0x0, 0xf, 0xfe, 0x0, + 0x1f, 0xf8, 0x0, 0x1f, 0xf0, 0x0, 0x3f, 0xe0, + 0x0, 0xff, 0xe0, 0x3, 0xff, 0xc0, 0x7, 0xff, + 0xc0, 0x1f, 0xff, 0x80, 0x3f, 0xbf, 0x80, 0xfe, + 0x7f, 0x1, 0xfc, 0x7f, 0x7, 0xf0, 0xff, 0x1f, + 0xe0, 0xfe, 0x3f, 0x80, 0xfe, 0xff, 0x1, 0xfd, + 0xfc, 0x1, 0xfc, + + /* U+0079 "y" */ + 0xff, 0x0, 0x7f, 0x7f, 0x0, 0x7f, 0x7f, 0x0, + 0xfe, 0x7f, 0x80, 0xfe, 0x3f, 0x80, 0xfe, 0x3f, + 0x81, 0xfc, 0x3f, 0x81, 0xfc, 0x1f, 0xc1, 0xfc, + 0x1f, 0xc1, 0xf8, 0x1f, 0xc3, 0xf8, 0xf, 0xe3, + 0xf8, 0xf, 0xe3, 0xf0, 0xf, 0xe7, 0xf0, 0x7, + 0xe7, 0xf0, 0x7, 0xf7, 0xe0, 0x3, 0xf7, 0xe0, + 0x3, 0xff, 0xe0, 0x3, 0xff, 0xc0, 0x1, 0xff, + 0xc0, 0x1, 0xff, 0xc0, 0x1, 0xff, 0x80, 0x0, + 0xff, 0x80, 0x0, 0xff, 0x80, 0x0, 0xff, 0x0, + 0x0, 0x7f, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x7e, + 0x0, 0x0, 0x7e, 0x0, 0x0, 0xfe, 0x0, 0x0, + 0xfc, 0x0, 0x1, 0xfc, 0x0, 0x1f, 0xf8, 0x0, + 0x1f, 0xf8, 0x0, 0x1f, 0xf0, 0x0, 0x1f, 0xe0, + 0x0, 0x1f, 0xc0, 0x0, 0x6, 0x0, 0x0, + + /* U+007A "z" */ + 0x7f, 0xff, 0xfd, 0xff, 0xff, 0xf7, 0xff, 0xff, + 0xdf, 0xff, 0xff, 0x7f, 0xff, 0xf8, 0x0, 0x1f, + 0xc0, 0x0, 0xff, 0x0, 0x7, 0xf8, 0x0, 0x1f, + 0xc0, 0x0, 0xfe, 0x0, 0x7, 0xf8, 0x0, 0x3f, + 0xc0, 0x0, 0xfe, 0x0, 0x7, 0xf8, 0x0, 0x3f, + 0xc0, 0x1, 0xfe, 0x0, 0x7, 0xf0, 0x0, 0x3f, + 0xc0, 0x1, 0xfe, 0x0, 0xf, 0xf0, 0x0, 0x3f, + 0xc0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, + + /* U+007B "{" */ + 0x0, 0x18, 0x1, 0xe0, 0xf, 0x80, 0x7f, 0x3, + 0xf0, 0x1f, 0x80, 0x7e, 0x3, 0xf0, 0xf, 0xc0, + 0x3f, 0x0, 0xfc, 0x3, 0xf0, 0xf, 0xc0, 0x3f, + 0x0, 0xfc, 0x3, 0xf0, 0xf, 0xc0, 0x3f, 0x0, + 0xfc, 0x7, 0xe0, 0x3f, 0x83, 0xfc, 0xf, 0xc0, + 0x3f, 0x0, 0xff, 0x0, 0xfe, 0x1, 0xf8, 0x3, + 0xf0, 0xf, 0xc0, 0x3f, 0x0, 0xfc, 0x3, 0xf0, + 0xf, 0xc0, 0x3f, 0x0, 0xfc, 0x3, 0xf0, 0xf, + 0xc0, 0x3f, 0x0, 0xfc, 0x1, 0xf8, 0x7, 0xe0, + 0xf, 0xc0, 0x1f, 0xc0, 0x3e, 0x0, 0x78, 0x0, + 0x0, + + /* U+007C "|" */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, + + /* U+007D "}" */ + 0x60, 0x0, 0xf0, 0x1, 0xf8, 0x7, 0xf8, 0x3, + 0xf0, 0x3, 0xf0, 0x7, 0xe0, 0x7, 0xe0, 0xf, + 0xc0, 0x1f, 0x80, 0x3f, 0x0, 0x7e, 0x0, 0xfc, + 0x1, 0xf8, 0x3, 0xf0, 0x7, 0xe0, 0xf, 0xc0, + 0x1f, 0x80, 0x3f, 0x0, 0x3f, 0x0, 0x7f, 0x80, + 0x7f, 0xc0, 0x3f, 0x80, 0x7f, 0x3, 0xfe, 0xf, + 0xe0, 0x1f, 0x80, 0x7e, 0x0, 0xfc, 0x1, 0xf8, + 0x3, 0xf0, 0x7, 0xe0, 0xf, 0xc0, 0x1f, 0x80, + 0x3f, 0x0, 0x7e, 0x0, 0xfc, 0x1, 0xf8, 0x3, + 0xf0, 0xf, 0xc0, 0x1f, 0x80, 0xfe, 0x3, 0xf8, + 0x3, 0xe0, 0x7, 0x80, 0x0, 0x0, 0x0, + + /* U+007E "~" */ + 0x7, 0xc0, 0x0, 0x7, 0xfc, 0x1, 0xf3, 0xff, + 0xc0, 0x7d, 0xff, 0xf8, 0x3f, 0x7f, 0xff, 0x1f, + 0xbf, 0x8f, 0xff, 0xef, 0xc1, 0xff, 0xfb, 0xe0, + 0x3f, 0xfc, 0xf8, 0x3, 0xfe, 0x0, 0x0, 0x7e, + 0x0 +}; + + +/*--------------------- + * GLYPH DESCRIPTION + *--------------------*/ + +static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { + {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, + {.bitmap_index = 0, .adv_w = 191, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1, .adv_w = 208, .box_w = 7, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 31, .adv_w = 245, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = 23}, + {.bitmap_index = 51, .adv_w = 455, .box_w = 26, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 162, .adv_w = 441, .box_w = 23, .box_h = 46, .ofs_x = 2, .ofs_y = -5}, + {.bitmap_index = 295, .adv_w = 568, .box_w = 31, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 427, .adv_w = 505, .box_w = 29, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 551, .adv_w = 124, .box_w = 5, .box_h = 13, .ofs_x = 1, .ofs_y = 23}, + {.bitmap_index = 560, .adv_w = 269, .box_w = 13, .box_h = 49, .ofs_x = 3, .ofs_y = -11}, + {.bitmap_index = 640, .adv_w = 270, .box_w = 13, .box_h = 49, .ofs_x = 1, .ofs_y = -11}, + {.bitmap_index = 720, .adv_w = 349, .box_w = 20, .box_h = 21, .ofs_x = 1, .ofs_y = 13}, + {.bitmap_index = 773, .adv_w = 419, .box_w = 24, .box_h = 25, .ofs_x = 1, .ofs_y = 3}, + {.bitmap_index = 848, .adv_w = 189, .box_w = 8, .box_h = 14, .ofs_x = 1, .ofs_y = -8}, + {.bitmap_index = 862, .adv_w = 303, .box_w = 13, .box_h = 5, .ofs_x = 3, .ofs_y = 12}, + {.bitmap_index = 871, .adv_w = 223, .box_w = 7, .box_h = 7, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 878, .adv_w = 285, .box_w = 17, .box_h = 38, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 959, .adv_w = 441, .box_w = 23, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1057, .adv_w = 441, .box_w = 15, .box_h = 34, .ofs_x = 4, .ofs_y = 0}, + {.bitmap_index = 1121, .adv_w = 441, .box_w = 24, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1223, .adv_w = 441, .box_w = 24, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1325, .adv_w = 441, .box_w = 25, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1432, .adv_w = 441, .box_w = 24, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1534, .adv_w = 441, .box_w = 24, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1636, .adv_w = 441, .box_w = 24, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1738, .adv_w = 441, .box_w = 23, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1836, .adv_w = 441, .box_w = 23, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1934, .adv_w = 216, .box_w = 7, .box_h = 26, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 1957, .adv_w = 202, .box_w = 8, .box_h = 35, .ofs_x = 2, .ofs_y = -9}, + {.bitmap_index = 1992, .adv_w = 392, .box_w = 21, .box_h = 23, .ofs_x = 1, .ofs_y = 3}, + {.bitmap_index = 2053, .adv_w = 441, .box_w = 21, .box_h = 15, .ofs_x = 3, .ofs_y = 8}, + {.bitmap_index = 2093, .adv_w = 396, .box_w = 21, .box_h = 23, .ofs_x = 3, .ofs_y = 3}, + {.bitmap_index = 2154, .adv_w = 382, .box_w = 21, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2244, .adv_w = 689, .box_w = 39, .box_h = 45, .ofs_x = 2, .ofs_y = -11}, + {.bitmap_index = 2464, .adv_w = 516, .box_w = 32, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 2600, .adv_w = 490, .box_w = 25, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 2707, .adv_w = 503, .box_w = 28, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2826, .adv_w = 499, .box_w = 26, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 2937, .adv_w = 432, .box_w = 23, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3035, .adv_w = 422, .box_w = 23, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3133, .adv_w = 524, .box_w = 28, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3252, .adv_w = 542, .box_w = 28, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3371, .adv_w = 225, .box_w = 7, .box_h = 34, .ofs_x = 4, .ofs_y = 0}, + {.bitmap_index = 3401, .adv_w = 429, .box_w = 23, .box_h = 34, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3499, .adv_w = 488, .box_w = 28, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3618, .adv_w = 416, .box_w = 22, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3712, .adv_w = 672, .box_w = 36, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3865, .adv_w = 542, .box_w = 28, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 3984, .adv_w = 530, .box_w = 29, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4108, .adv_w = 495, .box_w = 26, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 4219, .adv_w = 530, .box_w = 29, .box_h = 40, .ofs_x = 2, .ofs_y = -6}, + {.bitmap_index = 4364, .adv_w = 492, .box_w = 26, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 4475, .adv_w = 473, .box_w = 26, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4586, .adv_w = 476, .box_w = 29, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4710, .adv_w = 506, .box_w = 26, .box_h = 34, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 4821, .adv_w = 502, .box_w = 31, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4953, .adv_w = 672, .box_w = 40, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5123, .adv_w = 488, .box_w = 30, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5251, .adv_w = 476, .box_w = 29, .box_h = 34, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 5375, .adv_w = 466, .box_w = 26, .box_h = 34, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 5486, .adv_w = 213, .box_w = 10, .box_h = 48, .ofs_x = 3, .ofs_y = -8}, + {.bitmap_index = 5546, .adv_w = 324, .box_w = 21, .box_h = 38, .ofs_x = 0, .ofs_y = -4}, + {.bitmap_index = 5646, .adv_w = 213, .box_w = 11, .box_h = 48, .ofs_x = 0, .ofs_y = -8}, + {.bitmap_index = 5712, .adv_w = 336, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 17}, + {.bitmap_index = 5753, .adv_w = 342, .box_w = 21, .box_h = 5, .ofs_x = 1, .ofs_y = -5}, + {.bitmap_index = 5767, .adv_w = 254, .box_w = 12, .box_h = 7, .ofs_x = 1, .ofs_y = 29}, + {.bitmap_index = 5778, .adv_w = 411, .box_w = 23, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 5853, .adv_w = 432, .box_w = 23, .box_h = 36, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 5957, .adv_w = 400, .box_w = 22, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6029, .adv_w = 432, .box_w = 23, .box_h = 36, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6133, .adv_w = 415, .box_w = 23, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6208, .adv_w = 275, .box_w = 17, .box_h = 37, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 6287, .adv_w = 439, .box_w = 23, .box_h = 36, .ofs_x = 2, .ofs_y = -10}, + {.bitmap_index = 6391, .adv_w = 430, .box_w = 22, .box_h = 36, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6490, .adv_w = 203, .box_w = 7, .box_h = 36, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 6522, .adv_w = 200, .box_w = 12, .box_h = 47, .ofs_x = -2, .ofs_y = -11}, + {.bitmap_index = 6593, .adv_w = 410, .box_w = 24, .box_h = 36, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 6701, .adv_w = 203, .box_w = 7, .box_h = 36, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 6733, .adv_w = 665, .box_w = 36, .box_h = 26, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 6850, .adv_w = 431, .box_w = 22, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 6922, .adv_w = 434, .box_w = 24, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7000, .adv_w = 432, .box_w = 23, .box_h = 36, .ofs_x = 3, .ofs_y = -10}, + {.bitmap_index = 7104, .adv_w = 433, .box_w = 23, .box_h = 36, .ofs_x = 2, .ofs_y = -10}, + {.bitmap_index = 7208, .adv_w = 281, .box_w = 15, .box_h = 26, .ofs_x = 3, .ofs_y = 0}, + {.bitmap_index = 7257, .adv_w = 395, .box_w = 22, .box_h = 26, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 7329, .adv_w = 260, .box_w = 15, .box_h = 33, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 7391, .adv_w = 430, .box_w = 22, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 7463, .adv_w = 389, .box_w = 24, .box_h = 26, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 7541, .adv_w = 564, .box_w = 33, .box_h = 26, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 7649, .adv_w = 391, .box_w = 23, .box_h = 26, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 7724, .adv_w = 387, .box_w = 24, .box_h = 37, .ofs_x = 0, .ofs_y = -11}, + {.bitmap_index = 7835, .adv_w = 391, .box_w = 22, .box_h = 26, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 7907, .adv_w = 253, .box_w = 14, .box_h = 46, .ofs_x = 1, .ofs_y = -9}, + {.bitmap_index = 7988, .adv_w = 194, .box_w = 4, .box_h = 40, .ofs_x = 4, .ofs_y = -6}, + {.bitmap_index = 8008, .adv_w = 253, .box_w = 15, .box_h = 46, .ofs_x = 0, .ofs_y = -9}, + {.bitmap_index = 8095, .adv_w = 498, .box_w = 26, .box_h = 10, .ofs_x = 2, .ofs_y = 9} +}; + +/*--------------------- + * CHARACTER MAPPING + *--------------------*/ + + + +/*Collect the unicode lists and glyph_id offsets*/ +static const lv_font_fmt_txt_cmap_t cmaps[] = +{ + { + .range_start = 32, .range_length = 95, .glyph_id_start = 1, + .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY + } +}; + +/*----------------- + * KERNING + *----------------*/ + + +/*Pair left and right glyphs for kerning*/ +static const uint8_t kern_pair_glyph_ids[] = +{ + 3, 3, + 3, 8, + 8, 3, + 8, 8, + 13, 3, + 13, 8, + 15, 3, + 15, 8, + 16, 16 +}; + +/* Kerning between the respective left and right glyphs + * 4.4 format which needs to scaled with `kern_scale`*/ +static const int8_t kern_pair_values[] = +{ + -22, -22, -22, -22, -93, -93, -93, -93, + -90 +}; + +/*Collect the kern pair's data in one place*/ +static const lv_font_fmt_txt_kern_pair_t kern_pairs = +{ + .glyph_ids = kern_pair_glyph_ids, + .values = kern_pair_values, + .pair_cnt = 9, + .glyph_ids_size = 0 +}; + +/*-------------------- + * ALL CUSTOM DATA + *--------------------*/ + +#if LVGL_VERSION_MAJOR == 8 +/*Store all the custom data of the font*/ +static lv_font_fmt_txt_glyph_cache_t cache; +#endif + +#if LVGL_VERSION_MAJOR >= 8 +static const lv_font_fmt_txt_dsc_t font_dsc = { +#else +static lv_font_fmt_txt_dsc_t font_dsc = { +#endif + .glyph_bitmap = glyph_bitmap, + .glyph_dsc = glyph_dsc, + .cmaps = cmaps, + .kern_dsc = &kern_pairs, + .kern_scale = 16, + .cmap_num = 1, + .bpp = 1, + .kern_classes = 0, + .bitmap_format = 0, +#if LVGL_VERSION_MAJOR == 8 + .cache = &cache +#endif +}; + + + +/*----------------- + * PUBLIC FONT + *----------------*/ + +/*Initialize a public general font descriptor*/ +#if LVGL_VERSION_MAJOR >= 8 +const lv_font_t roboto_bold_large_font = { +#else +lv_font_t roboto_bold_large_font = { +#endif + .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ + .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ + .line_height = 52, /*The maximum line height required by the font*/ + .base_line = 11, /*Baseline measured from the bottom of the line*/ +#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) + .subpx = LV_FONT_SUBPX_NONE, +#endif +#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 + .underline_position = -4, + .underline_thickness = 2, +#endif + .dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ +#if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9 + .fallback = NULL, +#endif + .user_data = NULL, +}; + + + +#endif /*#if ROBOTO_BOLD_LARGE_FONT*/ + diff --git a/Core/Inc/graphics/roboto_font.h b/Core/Inc/graphics/fonts/roboto_font.h similarity index 100% rename from Core/Inc/graphics/roboto_font.h rename to Core/Inc/graphics/fonts/roboto_font.h diff --git a/Core/Inc/graphics/graphics.h b/Core/Inc/graphics/graphics.h new file mode 100644 index 0000000..de811e2 --- /dev/null +++ b/Core/Inc/graphics/graphics.h @@ -0,0 +1,10 @@ +#ifndef GRAPHICS_H +#define GRAPHICS_H + +#include "display.h" +#include "stdint.h" + +void DisplayTest(pixel_t color); +void DrawBox(uint32_t topleft_x_loc, uint32_t topleft_y_loc, uint32_t height, uint32_t width, pixel_t color); + +#endif \ No newline at end of file diff --git a/Core/Inc/graphics/menu.h b/Core/Inc/graphics/menu.h new file mode 100644 index 0000000..d0a3eaf --- /dev/null +++ b/Core/Inc/graphics/menu.h @@ -0,0 +1,25 @@ +#ifndef MENU_H +#define MENU_H + +#include "stdint.h" +#include "stdbool.h" + + +typedef struct +{ + uint8_t *title; + bool enabled; // not enabled = grayed out, unselectable + void *highlighted_callback_function; + void *selected_callback_function; +} graphical_menu_entry_t; + + +typedef struct _graphical_menu_t graphical_menu_t; +struct _graphical_menu_t { + graphical_menu_t *parent_menu; + uint8_t num_entries; + uint8_t highlighted_idx; + graphical_menu_entry_t *entries; +}; + +#endif \ No newline at end of file diff --git a/Core/Src/graphics/display.c b/Core/Src/graphics/display.c new file mode 100644 index 0000000..07b0d31 --- /dev/null +++ b/Core/Src/graphics/display.c @@ -0,0 +1,4 @@ +#include "display.h" + +__attribute__((section(".sdram"))) +volatile pixel_t framebuffer[DISPLAY_HEIGHT * DISPLAY_WIDTH]; diff --git a/Core/Src/graphics/font.c b/Core/Src/graphics/fonts/font.c similarity index 98% rename from Core/Src/graphics/font.c rename to Core/Src/graphics/fonts/font.c index 8dd1929..997daa8 100644 --- a/Core/Src/graphics/font.c +++ b/Core/Src/graphics/fonts/font.c @@ -17,6 +17,7 @@ static uint16_t find_glyph_id_in_cmap(const lv_font_fmt_txt_cmap_t * cmap, uint3 return 0; } + bool lv_font_get_glyph_dsc_fmt_txt(const lv_font_t * font, lv_font_fmt_txt_glyph_dsc_t * dsc_out, uint32_t character) { lv_font_fmt_txt_dsc_t *font_dsc = (lv_font_fmt_txt_dsc_t *) font->dsc; @@ -32,9 +33,10 @@ bool lv_font_get_glyph_dsc_fmt_txt(const lv_font_t * font, lv_font_fmt_txt_glyph return false; } +// Left as a dummy definition for LVGL font compatibility. +// We're not processing the bitmaps with draw buffers like LVGL does. const void * lv_font_get_bitmap_fmt_txt(lv_font_fmt_txt_glyph_dsc_t * g_dsc, lv_draw_buf_t * draw_buf) { - } /** diff --git a/Core/Src/graphics/fonts/roboto_bold_font.c b/Core/Src/graphics/fonts/roboto_bold_font.c new file mode 100644 index 0000000..3b6ba11 --- /dev/null +++ b/Core/Src/graphics/fonts/roboto_bold_font.c @@ -0,0 +1,7 @@ +#include "fonts/roboto_bold_font.h" + +// This file exists solely to include the font header in its own translation unit +// so that the static font_dsc variable doesn't conflict with other fonts. +// The font pointer (roboto_bold_font) is defined in the header and exported +// for use in other translation units. + diff --git a/Core/Src/graphics/fonts/roboto_bold_large_font.c b/Core/Src/graphics/fonts/roboto_bold_large_font.c new file mode 100644 index 0000000..1b24f90 --- /dev/null +++ b/Core/Src/graphics/fonts/roboto_bold_large_font.c @@ -0,0 +1,7 @@ +#include "fonts/roboto_bold_large_font.h" + +// This file exists solely to include the font header in its own translation unit +// so that the static font_dsc variable doesn't conflict with other fonts. +// The font pointer (roboto_bold_large_font) is defined in the header and exported +// for use in other translation units. + diff --git a/Core/Src/graphics/graphics.c b/Core/Src/graphics/graphics.c index 98f8bd1..1da2f72 100644 --- a/Core/Src/graphics/graphics.c +++ b/Core/Src/graphics/graphics.c @@ -1,15 +1,7 @@ -#include "display.h" -#include "stm32f4xx_hal_ltdc.h" +#include "graphics.h" -__attribute__((section(".sdram"))) -volatile rgb565_pixel_t framebuffer[DISPLAY_HEIGHT * DISPLAY_WIDTH]; - -__attribute__((section(".sdram"))) -volatile uint32_t times_changed; - -void DisplayTest(uint16_t color) +void DisplayTest(pixel_t color) { - times_changed++; for (uint16_t h = 0; h < DISPLAY_HEIGHT; h++) { for (uint16_t w = 0; w < DISPLAY_WIDTH; w++) @@ -18,4 +10,18 @@ void DisplayTest(uint16_t color) } } +} + +void DrawBox(uint32_t topleft_x_loc, uint32_t topleft_y_loc, uint32_t height, uint32_t width, pixel_t color) +{ + for (uint32_t y = topleft_y_loc; y < (topleft_y_loc + height); y++) + { + for (uint32_t x = topleft_x_loc; x < (topleft_x_loc + width); x++) + { + if (x < DISPLAY_WIDTH && y < DISPLAY_HEIGHT) + { + framebuffer[(y * DISPLAY_WIDTH) + x] = color; + } + } + } } \ No newline at end of file diff --git a/Core/Src/graphics/menu.c b/Core/Src/graphics/menu.c new file mode 100644 index 0000000..51cce86 --- /dev/null +++ b/Core/Src/graphics/menu.c @@ -0,0 +1,6 @@ +#include "menu.h" + +void draw_menu(graphical_menu_t *menu) +{ + +} \ No newline at end of file diff --git a/Core/Src/main.c b/Core/Src/main.c index daa22e8..e99933a 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -27,7 +27,6 @@ /* USER CODE BEGIN Includes */ #include "display.h" #include "font.h" -#include "roboto_bold_font.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -89,6 +88,64 @@ void StartDefaultTask(void const * argument); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ +/** + * @brief Convert a single digit (0-9) to its ASCII character + * @param digit: The digit to convert (0-9) + * @retval ASCII character '0' through '9' + */ +static char digit_to_ascii(uint8_t digit) +{ + return (char)('0' + digit); +} + +/** + * @brief Convert an unsigned 32-bit integer to a null-terminated string + * @param value: The number to convert + * @param buffer: Pointer to the output buffer + * @param buffer_size: Size of the buffer + * @retval None + */ +static void uint32_to_string(uint32_t value, uint8_t *buffer, uint8_t buffer_size) +{ + uint8_t i = 0; + uint8_t digits[10]; // Maximum 10 digits for uint32_t + uint8_t digit_count = 0; + + // Handle zero case + if (value == 0) + { + if (buffer_size > 0) + { + buffer[0] = '0'; + buffer[1] = '\0'; + } + return; + } + + // Extract digits from right to left + while (value > 0 && digit_count < 10) + { + digits[digit_count] = (uint8_t)(value % 10); + value /= 10; + digit_count++; + } + + // Convert digits to ASCII and store in buffer (reversed) + for (i = 0; i < digit_count && i < (buffer_size - 1); i++) + { + buffer[i] = digit_to_ascii(digits[digit_count - 1 - i]); + } + + // Null terminate + if (i < buffer_size) + { + buffer[i] = '\0'; + } + else if (buffer_size > 0) + { + buffer[buffer_size - 1] = '\0'; + } +} void LCD_Write_Cmd(uint8_t cmd) { @@ -862,16 +919,23 @@ void StartDefaultTask(void const * argument) times_changed = 0; ILI9341_Init(); + uint8_t time_string[20] = {0}; + DisplayTest(0xFFFF); + + draw_string(framebuffer, &roboto_bold_font, 10, 75, "Number of beans:", 0x0000); /* Infinite loop */ for(;;) { - DisplayTest(0xffff); - draw_string(framebuffer, &roboto_bold_font, 25, 25, "Divide Voltage!", 0x0000); - osDelay(500); - DisplayTest(0x0000); - draw_string(framebuffer, &roboto_bold_font, 25, 25, "Divide Voltage!", 0xf800); - osDelay(500); + uint32_t t = HAL_GetTick() / 100; + // Convert milliseconds to string + uint32_to_string(t, time_string, sizeof(time_string)); + DrawBox(25, 0, 40, 80, 0xffff); + draw_string(framebuffer, &roboto_bold_font, 25, 25, time_string, 0x0000); + DrawBox(25, 100, 40, 150, 0xffff); + draw_string(framebuffer, &roboto_bold_large_font, 25, 125, time_string, 0x001f); + + osDelay(100); } /* USER CODE END 5 */ } diff --git a/STM32Make.make b/STM32Make.make index 580f2fc..995adc9 100644 --- a/STM32Make.make +++ b/STM32Make.make @@ -76,8 +76,10 @@ endif # C sources C_SOURCES = \ Core/Src/freertos.c \ -Core/Src/graphics/font.c \ -Core/Src/graphics/graphics.c \ +Core/Src/graphics/display.c \ +Core/Src/graphics/fonts/font.c \ +Core/Src/graphics/fonts/roboto_bold_font.c \ +Core/Src/graphics/fonts/roboto_bold_large_font.c \ Core/Src/main.c \ Core/Src/stm32f4xx_hal_msp.c \ Core/Src/stm32f4xx_hal_timebase_tim.c \ @@ -225,7 +227,8 @@ AS_INCLUDES = \ C_INCLUDES = \ -ICore/Inc \ -ICore/Inc/graphics \ --ICore/Inc/graphics/lvgl \ +-ICore/Inc/graphics/fonts \ +-ICore/Inc/graphics/fonts/lvgl \ -IDrivers/CMSIS/Device/ST/STM32F4xx/Include \ -IDrivers/CMSIS/Include \ -IDrivers/STM32F4xx_HAL_Driver/Inc \