diff --git a/src/config.h b/src/config.h index a2b9404..d8caf92 100644 --- a/src/config.h +++ b/src/config.h @@ -32,6 +32,6 @@ /* * firmeware version string */ - #define __FIRMWARE__ "2020081301" + #define __FIRMWARE__ "2020081304" #endif // _CONFIG_H diff --git a/src/gui/font/Ubuntu_32px.c b/src/gui/font/Ubuntu_32px.c new file mode 100644 index 0000000..2b278ab --- /dev/null +++ b/src/gui/font/Ubuntu_32px.c @@ -0,0 +1,1399 @@ +#include "lvgl/lvgl.h" + +/******************************************************************************* + * Size: 32 px + * Bpp: 2 + * Opts: + ******************************************************************************/ + +#ifndef UBUNTU_32PX +#define UBUNTU_32PX 1 +#endif + +#if UBUNTU_32PX + +/*----------------- + * BITMAPS + *----------------*/ + +/*Store the image of the glyphs*/ +static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = { + /* U+20 " " */ + + /* U+21 "!" */ + 0x3e, 0xf, 0xff, 0x52, 0x1f, 0x21, 0xec, 0x16, + 0x87, 0xff, 0x3, 0xe2, 0x9, 0xe, 0x80, 0xa0, + + /* U+22 "\"" */ + 0xbc, 0x83, 0xe0, 0xff, 0xeb, 0x21, 0xec, 0x3f, + 0xf8, 0x68, 0x88, 0x76, 0x1a, 0xc2, 0x68, 0x0, + + /* U+23 "#" */ + 0xf, 0x5e, 0xe, 0xbc, 0x1f, 0x90, 0xf9, 0x10, + 0xff, 0x21, 0xff, 0xc3, 0x41, 0x86, 0x41, 0x87, + 0xf9, 0xd, 0x81, 0x3, 0xfa, 0x7, 0xf2, 0xf, + 0x83, 0xff, 0x8e, 0xd6, 0x3, 0x59, 0x3, 0x50, + 0xb0, 0x5a, 0xec, 0x1a, 0xc1, 0xff, 0xc0, 0xc0, + 0x87, 0xd8, 0x10, 0xff, 0xe1, 0xa1, 0xf2, 0x1f, + 0xfc, 0x4, 0x3e, 0x43, 0x96, 0x9, 0x74, 0x12, + 0xf5, 0x40, 0x6b, 0x20, 0x6b, 0x7, 0xff, 0x1d, + 0xf2, 0xf, 0xe0, 0xbf, 0x82, 0x43, 0xf9, 0xf, + 0xf2, 0x1f, 0x61, 0xf2, 0xc, 0x32, 0x1f, 0xfc, + 0x14, 0x36, 0x4, 0x3e, 0xc3, 0xe4, 0x3f, 0x0, + + /* U+24 "$" */ + 0xf, 0x3e, 0x43, 0xff, 0xbb, 0x83, 0x43, 0xf5, + 0xa0, 0x6f, 0x41, 0x3a, 0x1f, 0xfc, 0x8, 0x2b, + 0xf4, 0xe0, 0x42, 0xd0, 0xcc, 0x83, 0x2, 0x1f, + 0xfc, 0xec, 0xa, 0xf, 0xf2, 0x15, 0x3, 0xfd, + 0x84, 0xf9, 0xf, 0xda, 0x1a, 0xe0, 0xfa, 0xd0, + 0xce, 0x1f, 0xae, 0xd, 0x87, 0xf3, 0xc1, 0x41, + 0xfe, 0x50, 0x10, 0xff, 0xa0, 0xff, 0xe1, 0x21, + 0xc8, 0x7e, 0x80, 0x94, 0xe8, 0xaa, 0x61, 0x42, + 0x5, 0x51, 0x41, 0x40, 0xe4, 0x3c, 0xda, 0x13, + 0x7a, 0x5, 0x10, 0xff, 0xf2, 0x0, + + /* U+25 "%" */ + 0xc, 0xb0, 0x7f, 0xf2, 0x1e, 0xae, 0xf, 0xdf, + 0x7, 0x98, 0x39, 0x83, 0xc8, 0x10, 0xf4, 0xf, + 0x91, 0x41, 0xd0, 0x20, 0xfd, 0x5, 0x3, 0xc, + 0x82, 0xf, 0x20, 0x43, 0xfe, 0x80, 0x87, 0xff, + 0x11, 0xa, 0x4, 0x1f, 0xfc, 0x54, 0x24, 0x50, + 0x7c, 0x82, 0xf, 0x60, 0x81, 0x7, 0xf2, 0x32, + 0xb0, 0x22, 0x84, 0x3f, 0xd0, 0x1a, 0x2, 0x4, + 0x8, 0x3f, 0xed, 0x9, 0xd1, 0x4, 0x7, 0xe8, + 0x3d, 0x7d, 0x5, 0x1, 0x28, 0x13, 0xa1, 0xff, + 0x40, 0x85, 0xf, 0x2, 0xf, 0xf9, 0x2, 0x43, + 0xe, 0x4, 0x3f, 0xa0, 0x61, 0xb0, 0xf6, 0x1f, + 0x94, 0x20, 0x40, 0x86, 0x44, 0x3f, 0x40, 0x83, + 0xff, 0x90, 0x82, 0x9, 0x2, 0x19, 0x10, 0xfa, + 0x2, 0x1e, 0xc3, 0xd8, 0x7a, 0x4, 0x1d, 0xc, + 0x38, 0x10, 0xf2, 0x4, 0x39, 0x43, 0xc0, 0x83, + 0xd0, 0x30, 0xfa, 0x81, 0x3a, 0x0, + + /* U+26 "&" */ + 0xf, 0x96, 0xf, 0xfe, 0x1f, 0xaa, 0xf0, 0x7f, + 0xf0, 0x30, 0xfb, 0xf, 0xf4, 0x7, 0xe4, 0x10, + 0x7f, 0x20, 0x82, 0x80, 0x87, 0xfc, 0x87, 0xff, + 0x3d, 0xf, 0xf9, 0xc, 0x83, 0xf, 0xe8, 0x10, + 0x18, 0x8, 0x7f, 0x20, 0x6a, 0x1c, 0x3f, 0xec, + 0xa, 0x18, 0x3f, 0xe7, 0xe, 0x83, 0xfe, 0x60, + 0x41, 0x41, 0xde, 0x40, 0xc0, 0xdc, 0xc, 0x12, + 0x1d, 0x3, 0xb, 0x3, 0x3, 0x2, 0x20, 0x43, + 0xb0, 0x30, 0x88, 0x76, 0x1e, 0xc0, 0xe0, 0x83, + 0xb0, 0xfb, 0xc, 0x87, 0x90, 0xfd, 0x7, 0xc8, + 0x50, 0x79, 0x82, 0x60, 0xa0, 0x3c, 0xd3, 0x81, + 0x1, 0x40, 0x60, 0x99, 0x40, 0x77, 0x4, 0x13, + 0xc1, 0xcf, 0x4, 0x82, + + /* U+27 "'" */ + 0xbc, 0x87, 0xff, 0xd, 0xc3, 0xe4, 0x35, 0x80, + + /* U+28 "(" */ + 0xe, 0x60, 0xfa, 0x70, 0xe8, 0x10, 0x65, 0x1, + 0xd, 0x3, 0xc, 0x81, 0xe, 0xc1, 0x7, 0x21, + 0xf2, 0x8, 0x3a, 0x2, 0x1f, 0xfc, 0xa4, 0x8, + 0x7f, 0xf3, 0xb0, 0xfd, 0x87, 0xff, 0x2d, 0x2, + 0x1f, 0xfc, 0x34, 0x3f, 0x60, 0x43, 0x90, 0x41, + 0xe4, 0x3f, 0x40, 0x83, 0xf2, 0x1e, 0x81, 0x87, + 0x28, 0x8, 0x74, 0x8, 0x3d, 0xb8, + + /* U+29 ")" */ + 0x18, 0x3a, 0x8a, 0xd, 0x2, 0xe, 0x81, 0x6, + 0x40, 0x87, 0x40, 0x83, 0x20, 0x43, 0xa0, 0x41, + 0x90, 0x21, 0xff, 0xc1, 0x40, 0x86, 0xc1, 0x87, + 0xff, 0x1, 0x2, 0x1f, 0xfd, 0x84, 0x8, 0x7f, + 0xf0, 0x30, 0x61, 0x90, 0x21, 0xff, 0x20, 0x83, + 0x40, 0x42, 0x40, 0x86, 0x81, 0x4, 0x81, 0xd, + 0x2, 0x9, 0x4, 0x19, 0x94, 0x18, + + /* U+2A "*" */ + 0xf, 0xfe, 0x3d, 0xe0, 0xff, 0xeb, 0xe8, 0x31, + 0x3, 0xa2, 0x5c, 0x81, 0xe2, 0x30, 0x9c, 0x60, + 0xeb, 0xd4, 0xa, 0xaf, 0x6, 0x40, 0x92, 0x83, + 0xd4, 0x24, 0xc3, 0xca, 0x12, 0x6, 0x1d, 0x2, + 0x2, 0x4, 0x36, 0xc1, 0x46, 0x87, 0x48, 0x6c, + 0x30, + + /* U+2B "+" */ + 0xf, 0xa8, 0x1f, 0xfc, 0x15, 0xc1, 0xff, 0xff, + 0xf, 0xf9, 0xfe, 0x81, 0x7f, 0x21, 0xff, 0xc4, + 0x5f, 0x80, 0xbf, 0x15, 0xd8, 0x3a, 0xe0, 0xff, + 0xff, 0x87, 0x80, + + /* U+2C "," */ + 0x2f, 0x46, 0x1b, 0xf, 0xb0, 0xc8, 0x87, 0x92, + 0x4, 0x54, 0x0, + + /* U+2D "-" */ + 0x3f, 0xe8, 0x3f, 0xf8, 0xc0, + + /* U+2E "." */ + 0xf, 0xaf, 0x40, 0x40, 0x87, 0xe8, 0x10, + + /* U+2F "/" */ + 0xf, 0xfb, 0xe0, 0xff, 0x90, 0x21, 0xff, 0x40, + 0x83, 0xff, 0x9a, 0x82, 0xf, 0xfa, 0x2, 0x1f, + 0xfc, 0xd8, 0x10, 0x7f, 0xc8, 0x10, 0xff, 0xe6, + 0xc0, 0x83, 0xfe, 0x40, 0x87, 0xf9, 0x2, 0x1f, + 0xf6, 0xc, 0x3f, 0xe4, 0x8, 0x7f, 0x90, 0x21, + 0xff, 0x60, 0xc3, 0xfe, 0x40, 0x87, 0xf9, 0x2, + 0x1f, 0xf6, 0xc, 0x3f, 0xe4, 0x8, 0x7f, 0x90, + 0x21, 0xff, 0x40, 0x83, 0xff, 0x9a, 0x81, 0xf, + 0xfa, 0x4, 0x1f, 0xfc, 0xd8, 0x10, 0x7f, 0xc8, + 0x10, 0xff, 0xe6, 0xc0, 0x83, 0xfe, + + /* U+30 "0" */ + 0xf, 0x2e, 0xf, 0xf3, 0xd6, 0xe0, 0xfa, 0x81, + 0xe6, 0xe, 0x50, 0x1f, 0x20, 0x50, 0x68, 0x14, + 0x5, 0x1, 0x4, 0x84, 0x86, 0x50, 0x10, 0x40, + 0x83, 0xd8, 0x20, 0xe4, 0x3c, 0x87, 0xff, 0x21, + 0xf, 0xfe, 0x12, 0x1f, 0xfd, 0x4, 0x3f, 0xfa, + 0x68, 0x48, 0x7f, 0xf4, 0x90, 0xff, 0xe2, 0xa0, + 0x83, 0xd0, 0x10, 0x60, 0x43, 0xc8, 0x30, 0x28, + 0x18, 0x68, 0x24, 0x28, 0x2e, 0x9a, 0xc, 0x3b, + 0x9, 0x41, 0x41, 0xf7, 0x6, 0x74, 0x20, + + /* U+31 "1" */ + 0xf, 0xbe, 0xf, 0x61, 0xf3, 0x87, 0xd4, 0xf, + 0x5a, 0x4, 0x3e, 0x78, 0x34, 0xf0, 0x7d, 0x7, + 0xff, 0xfc, 0x3f, 0xff, 0x80, + + /* U+32 "2" */ + 0xe, 0x5c, 0x1f, 0xd7, 0x5b, 0xc8, 0x67, 0x43, + 0xea, 0x5, 0x5, 0x7a, 0x9, 0xa, 0x2d, 0x3, + 0x85, 0x1, 0xd0, 0xf4, 0x4, 0x3f, 0xe4, 0x3f, + 0xf8, 0x48, 0x7f, 0xf0, 0xb0, 0x21, 0xff, 0x20, + 0x83, 0xfd, 0x81, 0xf, 0xf6, 0x6, 0xf, 0xec, + 0x28, 0x3f, 0xb0, 0xb0, 0xfe, 0xc2, 0xc3, 0xfa, + 0xb, 0xf, 0xe9, 0x6, 0x1f, 0xca, 0x6, 0x1f, + 0xe8, 0x10, 0x7f, 0x90, 0x90, 0xff, 0x61, 0x57, + 0xf2, 0x1c, 0xbf, 0xd8, 0x87, 0xff, 0x4, + + /* U+33 "3" */ + 0xe, 0x5c, 0x1f, 0x9f, 0x56, 0xf2, 0x1a, 0x81, + 0xfa, 0x42, 0x81, 0x7d, 0x5, 0x6, 0xf2, 0x13, + 0x84, 0x87, 0xfc, 0x83, 0xf, 0xfb, 0xf, 0xfe, + 0x16, 0xc, 0x3f, 0xca, 0x2, 0x1e, 0x55, 0xc0, + 0xc3, 0xcd, 0x10, 0x38, 0x7f, 0xf0, 0x5d, 0xf, + 0x3f, 0x41, 0x48, 0x7f, 0x3a, 0x8, 0x3f, 0xe8, + 0x24, 0x3f, 0xe4, 0x18, 0x7f, 0xd8, 0x7f, 0xf0, + 0xb0, 0xff, 0xe1, 0x20, 0xc5, 0x7, 0x9c, 0x24, + 0xa7, 0xaa, 0xe0, 0xb0, 0xf2, 0xc1, 0xb0, 0xb9, + 0xe, 0x6c, 0x20, + + /* U+34 "4" */ + 0xf, 0xe7, 0xe0, 0xff, 0xe0, 0x41, 0xff, 0xc2, + 0xc3, 0xff, 0x85, 0x87, 0xff, 0xa, 0x4, 0x1f, + 0xf2, 0x89, 0xf, 0xfa, 0x14, 0x1f, 0xf6, 0x8, + 0x3f, 0xe4, 0x10, 0x7f, 0xf0, 0x21, 0x41, 0xff, + 0x40, 0x83, 0xff, 0x80, 0x90, 0x7f, 0xf0, 0x30, + 0x21, 0xff, 0x20, 0x83, 0xff, 0x81, 0x82, 0xff, + 0x5, 0xe8, 0x3f, 0xf8, 0x9d, 0x7f, 0x5, 0x4d, + 0x7f, 0xc1, 0x2c, 0x1f, 0xff, 0x40, + + /* U+35 "5" */ + 0x7, 0xff, 0xc1, 0xff, 0xc8, 0x5f, 0xa0, 0xf5, + 0x7c, 0x87, 0x21, 0xff, 0xdd, 0xc3, 0xfc, 0x83, + 0x94, 0x1f, 0xe5, 0x53, 0xc8, 0x72, 0x83, 0xd4, + 0x9, 0xa7, 0xd0, 0x4c, 0x1f, 0x9d, 0x2, 0x1f, + 0xe8, 0x24, 0x3f, 0xc8, 0x30, 0xff, 0x61, 0xff, + 0xc1, 0xc3, 0xff, 0x82, 0x83, 0x50, 0x7d, 0x84, + 0xf7, 0xaa, 0xf0, 0x50, 0x84, 0xb0, 0x69, 0x39, + 0xe, 0x6d, 0x0, + + /* U+36 "6" */ + 0xf, 0xcd, 0xf0, 0x7e, 0xb9, 0xf, 0xe7, 0x42, + 0x54, 0x1d, 0x40, 0x3e, 0xa2, 0x19, 0x40, 0xe0, + 0xfe, 0x81, 0x87, 0xfa, 0x4, 0x1f, 0xf2, 0x4, + 0x3f, 0xc8, 0x15, 0xfc, 0x86, 0xc0, 0xc1, 0xd6, + 0x12, 0x19, 0xa2, 0x16, 0x1d, 0x72, 0xac, 0x28, + 0x32, 0x1e, 0xc0, 0x87, 0xff, 0xd, 0x9, 0xf, + 0x90, 0xff, 0xe3, 0x20, 0xc3, 0xe4, 0xc, 0x4, + 0x3c, 0x87, 0xe8, 0x3a, 0x4, 0xc, 0xf, 0x36, + 0x12, 0x16, 0x13, 0x20, 0x70, 0xee, 0xc, 0xd0, + 0x20, + + /* U+37 "7" */ + 0x3f, 0xff, 0x84, 0x1f, 0xfc, 0x65, 0xff, 0x7, + 0xab, 0xfc, 0x16, 0x1f, 0xf4, 0x4, 0x3f, 0xe5, + 0x2, 0xf, 0xfa, 0x4, 0x1f, 0xf2, 0x5, 0x7, + 0xfd, 0x2, 0xf, 0xf9, 0xf, 0xfe, 0x1c, 0x8, + 0x3f, 0xf8, 0x68, 0x7f, 0xd0, 0x10, 0xff, 0xe0, + 0x20, 0x83, 0xfe, 0x43, 0xff, 0x87, 0x81, 0xf, + 0xfe, 0x2, 0x8, 0x3f, 0xf9, 0xe8, 0x7f, 0xf1, + 0x90, 0xff, 0xe0, 0x60, 0xc3, 0xff, 0x98, + + /* U+38 "8" */ + 0xf, 0x2e, 0xf, 0xf5, 0xd6, 0xf0, 0x7d, 0xa1, + 0xf6, 0x86, 0xc0, 0xfe, 0xa, 0x9, 0xa, 0xd, + 0x84, 0x83, 0x4, 0x1e, 0x81, 0x87, 0xff, 0x27, + 0xf, 0xfe, 0x6, 0x4, 0x3d, 0x2, 0x2, 0x16, + 0x1a, 0x2, 0x1b, 0xb, 0xce, 0x8c, 0x1d, 0x86, + 0x82, 0x83, 0xd8, 0x14, 0x1b, 0xe, 0xc1, 0x57, + 0x5, 0x84, 0x81, 0x41, 0x3a, 0x8, 0x10, 0x20, + 0xf4, 0x4, 0x3f, 0xfc, 0xc8, 0x30, 0xf6, 0x4, + 0x10, 0x5d, 0x6c, 0x28, 0x2c, 0x25, 0xc1, 0x61, + 0xdc, 0x86, 0x6c, 0x20, + + /* U+39 "9" */ + 0xf, 0x2e, 0xf, 0xf7, 0xab, 0x68, 0x79, 0xc3, + 0xea, 0x7, 0x40, 0x7e, 0x80, 0xa0, 0xa0, 0x30, + 0x4c, 0x8, 0x24, 0x10, 0x72, 0x12, 0x21, 0xfe, + 0x81, 0x86, 0x43, 0xe4, 0x8, 0x64, 0x3f, 0xf8, + 0x8, 0x7f, 0xf1, 0xd0, 0xff, 0xe0, 0x40, 0xa0, + 0x66, 0xe, 0x50, 0x1f, 0xd2, 0x1e, 0xa0, 0x7f, + 0x90, 0xcf, 0xaa, 0xf2, 0xc, 0x3e, 0x58, 0x8, + 0x10, 0xff, 0x90, 0xff, 0xe1, 0xc0, 0x83, 0xfe, + 0xc0, 0xa0, 0xfe, 0xb0, 0xa0, 0xea, 0xbc, 0x81, + 0xc3, 0xcb, 0x6, 0xa0, 0x7f, 0x9b, 0xc8, 0x78, + + /* U+3A ":" */ + 0x1f, 0x20, 0x81, 0x7, 0xe4, 0x8, 0x2f, 0x41, + 0xff, 0xe6, 0xbd, 0x1, 0x2, 0x1f, 0xa0, 0x40, + + /* U+3B ";" */ + 0x1f, 0x20, 0x81, 0x7, 0xe4, 0x8, 0x2f, 0x41, + 0xff, 0xe6, 0x7d, 0x7, 0xec, 0x3f, 0x60, 0x40, + 0x87, 0xc8, 0x20, 0x60, 0x41, 0x70, 0x40, + + /* U+3C "<" */ + 0xf, 0xfe, 0x12, 0x1f, 0xfc, 0x7, 0xd0, 0x7f, + 0xae, 0xf, 0xf3, 0x68, 0x4e, 0x1c, 0xf2, 0x15, + 0xc1, 0xae, 0x9, 0xf2, 0x19, 0xd0, 0xae, 0xf, + 0xf9, 0xd0, 0xfe, 0x42, 0x74, 0x3f, 0xda, 0x15, + 0xc8, 0x7e, 0xb8, 0x26, 0xd0, 0xfc, 0xf9, 0xa, + 0xe0, 0xfe, 0xb8, 0x27, 0xf, 0xf3, 0xc8, 0x7f, + 0xf0, 0x9b, 0x80, + + /* U+3D "=" */ + 0x2b, 0xff, 0x84, 0x2f, 0xff, 0x10, 0x3f, 0xf8, + 0x8f, 0xff, 0xf0, 0x90, 0xff, 0xf2, 0xd7, 0xff, + 0x8, 0x5f, 0xfe, 0x20, 0x7f, 0xf1, 0x0, + + /* U+3E ">" */ + 0x10, 0xff, 0xe1, 0xde, 0x43, 0xff, 0x87, 0x70, + 0x7f, 0xb4, 0x27, 0x90, 0xfd, 0x70, 0x4d, 0xa1, + 0xf9, 0xf2, 0x15, 0xc1, 0xfd, 0x70, 0x4e, 0x87, + 0xf3, 0xa1, 0xff, 0xc1, 0x74, 0x3f, 0xeb, 0x82, + 0x74, 0x33, 0xe4, 0x2b, 0x83, 0x5c, 0x13, 0xe4, + 0x3b, 0x42, 0xb8, 0x3f, 0xeb, 0x43, 0xfd, 0x79, + 0xf, 0xf8, + + /* U+3F "?" */ + 0xc, 0xb8, 0x3d, 0x7a, 0xb7, 0x6, 0x43, 0xe7, + 0x9, 0x57, 0xd0, 0x50, 0x28, 0x84, 0xc0, 0x43, + 0xf9, 0xf, 0xfe, 0x6c, 0x4, 0x3f, 0x28, 0x10, + 0x7e, 0x81, 0x7, 0xec, 0x12, 0x1f, 0x60, 0x90, + 0xfa, 0x4, 0x87, 0xe4, 0x8, 0x7f, 0xc8, 0x7f, + 0x95, 0x87, 0xfa, 0x88, 0x7f, 0xf6, 0x3e, 0xf, + 0xe8, 0x28, 0x3f, 0xf8, 0x18, 0x7e, 0x91, 0x41, + 0xc0, + + /* U+40 "@" */ + 0xf, 0xf9, 0x78, 0x3f, 0xf8, 0xcd, 0xea, 0xef, + 0x41, 0xff, 0xc2, 0xe4, 0x3f, 0x9e, 0xf, 0xf3, + 0x84, 0xdf, 0xd2, 0x7, 0x43, 0xea, 0x2, 0xe4, + 0x39, 0xb4, 0x12, 0x1c, 0xa0, 0x68, 0x7f, 0xd4, + 0x4, 0x1d, 0x3, 0xe, 0xbf, 0xa4, 0x60, 0x41, + 0x40, 0x83, 0x5a, 0x1c, 0xc0, 0x50, 0xa0, 0x20, + 0x42, 0x90, 0x2a, 0x43, 0xd0, 0x31, 0x2, 0x12, + 0x81, 0xd1, 0x83, 0xf9, 0x30, 0x41, 0x40, 0x83, + 0xff, 0x80, 0x84, 0x87, 0xf2, 0x1f, 0xfc, 0x34, + 0x3c, 0x81, 0xf, 0xfe, 0xe, 0x1f, 0xfc, 0xec, + 0x8, 0x7f, 0xf5, 0x50, 0x21, 0xff, 0xc1, 0x42, + 0x43, 0xf9, 0xf, 0xf9, 0x2, 0x19, 0xa, 0x4, + 0x1f, 0xf4, 0xc, 0xc1, 0x84, 0x85, 0xd5, 0x85, + 0xd8, 0x14, 0x20, 0x43, 0x61, 0x2c, 0x1c, 0x85, + 0x5, 0x3, 0xd, 0xc8, 0x4d, 0xa1, 0x58, 0x64, + 0x28, 0x33, 0x7d, 0x25, 0xf2, 0x1e, 0xc0, 0xe1, + 0xff, 0xcb, 0xc2, 0xe0, 0xff, 0xe5, 0x68, 0x1f, + 0x51, 0x6a, 0x83, 0xff, 0x83, 0x40, 0xca, 0xa9, + 0x60, 0xff, 0xe1, 0x3e, 0x90, 0xf3, 0x7, 0xe0, + + /* U+41 "A" */ + 0xf, 0xef, 0x90, 0xff, 0xe2, 0x41, 0x61, 0xff, + 0xc4, 0x42, 0x43, 0xff, 0x86, 0x87, 0x41, 0xff, + 0xc2, 0x81, 0x81, 0xf, 0xfe, 0xa, 0x4, 0x41, + 0x7, 0xff, 0x3, 0x6, 0x60, 0x43, 0xff, 0x80, + 0x81, 0x10, 0x90, 0xff, 0x40, 0x82, 0x81, 0x7, + 0xf9, 0x2, 0x12, 0x1f, 0xfc, 0x4, 0x8, 0x72, + 0x8, 0x3f, 0x40, 0xc3, 0xb0, 0x21, 0xff, 0x21, + 0xc8, 0x48, 0x7a, 0x2, 0x1f, 0x20, 0x83, 0xc8, + 0x1f, 0xf9, 0xf, 0xc8, 0x7f, 0xf0, 0xe0, 0xd8, + 0x17, 0xfe, 0x2, 0x19, 0x5, 0x7f, 0xc1, 0x20, + 0x43, 0xff, 0x84, 0x83, 0x4, 0x8, 0x3f, 0xec, + 0x8, 0x72, 0x1f, 0xf2, 0x13, 0x1, 0xf, 0xfe, + 0xa, 0x8, + + /* U+42 "B" */ + 0x2f, 0xfd, 0x21, 0xca, 0xf, 0xcd, 0xc1, 0xf2, + 0xf0, 0x67, 0xf, 0x57, 0x79, 0x9, 0xf, 0xfe, + 0x4, 0x83, 0xf, 0xfe, 0xe, 0x4, 0x3f, 0xf8, + 0x88, 0x7f, 0xf0, 0x60, 0x61, 0xff, 0x38, 0x48, + 0x77, 0xfa, 0x3, 0x87, 0xff, 0x2e, 0xb2, 0xc0, + 0x74, 0x39, 0x75, 0x5a, 0x9, 0xf, 0xfe, 0x4, + 0x83, 0xf, 0xfe, 0xe, 0x4, 0x3f, 0xfc, 0x70, + 0x10, 0xff, 0x9c, 0x28, 0x35, 0x77, 0xa0, 0xa0, + 0xe5, 0xe0, 0xe9, 0x14, 0x1f, 0x95, 0xe4, 0x0, + + /* U+43 "C" */ + 0xf, 0xe5, 0xe0, 0xff, 0x9f, 0x57, 0x7a, 0xf, + 0xb8, 0x3f, 0x98, 0x3b, 0xc, 0xdd, 0x10, 0x61, + 0xb0, 0xae, 0x45, 0x5c, 0x85, 0x5, 0xa1, 0xf9, + 0xc, 0x82, 0xf, 0xfe, 0x12, 0x12, 0x1f, 0xfc, + 0x2c, 0x8, 0x7f, 0xf0, 0xd0, 0x61, 0xff, 0xc6, + 0x43, 0xff, 0xd8, 0x87, 0xff, 0x59, 0x6, 0x1f, + 0xfc, 0x3c, 0x8, 0x7f, 0xf0, 0xd0, 0xa0, 0xff, + 0xe1, 0xc0, 0x60, 0xff, 0xe1, 0x28, 0xe, 0x87, + 0x99, 0xd, 0x21, 0x5e, 0xbe, 0x9c, 0x3a, 0x81, + 0xc8, 0x72, 0x1e, 0x79, 0xe, 0x57, 0x80, + + /* U+44 "D" */ + 0x3f, 0xfa, 0x43, 0xe4, 0x3f, 0x9b, 0x83, 0xf9, + 0x78, 0x33, 0xa1, 0xf5, 0x77, 0x90, 0xa4, 0x3f, + 0xf8, 0x36, 0x14, 0x1f, 0xfc, 0x3c, 0x28, 0x3f, + 0xf8, 0x70, 0x10, 0xff, 0xe1, 0xa1, 0x21, 0xff, + 0xc3, 0x41, 0x87, 0xff, 0xf, 0x2, 0x1f, 0xff, + 0xcc, 0x8, 0x7f, 0xf0, 0xd0, 0x61, 0xff, 0xc2, + 0x42, 0x43, 0xff, 0x85, 0x1, 0xf, 0xfe, 0x16, + 0x14, 0x1f, 0xfc, 0xb, 0xa, 0xf, 0x57, 0x79, + 0xa, 0x43, 0xcb, 0xc1, 0x9d, 0x9, 0x41, 0xf9, + 0xb8, 0x38, + + /* U+45 "E" */ + 0x7f, 0xff, 0x82, 0x87, 0xff, 0x25, 0x7f, 0xe0, + 0xea, 0xff, 0x7, 0xff, 0xfc, 0x3f, 0xef, 0xfe, + 0xf, 0xfe, 0x5a, 0xff, 0x7, 0xd5, 0xfc, 0x1f, + 0xff, 0xf0, 0xff, 0xe8, 0x57, 0xfc, 0x1c, 0xbf, + 0xf0, 0x7f, 0xf1, 0x40, + + /* U+46 "F" */ + 0x7f, 0xff, 0x82, 0x1f, 0xfc, 0x85, 0xff, 0x7, + 0x57, 0xf8, 0x3f, 0xff, 0xe1, 0xd5, 0xfc, 0x1e, + 0x5f, 0xe0, 0xff, 0xe4, 0xff, 0xf0, 0x7f, 0xff, + 0xc3, 0xff, 0xe4, + + /* U+47 "G" */ + 0xf, 0xe5, 0xe0, 0xff, 0x9f, 0x57, 0x7c, 0x87, + 0xb8, 0x3f, 0xd0, 0x76, 0x19, 0xba, 0x20, 0x43, + 0x61, 0x5c, 0x8a, 0xbd, 0x5, 0x5, 0x21, 0xff, + 0xc1, 0x40, 0xa0, 0xff, 0xe0, 0xa1, 0x41, 0xff, + 0xc2, 0xc0, 0x87, 0xff, 0xd, 0x6, 0x1f, 0xfc, + 0x64, 0x3f, 0xfc, 0x97, 0x90, 0xc8, 0x7f, 0xf5, + 0x90, 0x61, 0xff, 0xc3, 0xc0, 0x87, 0xff, 0xd, + 0xa, 0xf, 0xfe, 0x1c, 0x6, 0xf, 0xfe, 0x12, + 0x80, 0xe8, 0x7f, 0xf0, 0x64, 0x2b, 0xd4, 0xf2, + 0x1f, 0x50, 0x39, 0x41, 0xff, 0x3c, 0x87, 0x9a, + 0x20, + + /* U+48 "H" */ + 0x7e, 0xf, 0xf3, 0xf0, 0x7f, 0xff, 0xc3, 0xff, + 0xfb, 0xff, 0xe8, 0x3f, 0xf9, 0xab, 0xfe, 0xf, + 0xd5, 0xff, 0x7, 0xff, 0xfc, 0x3f, 0xff, 0xe1, + 0xff, 0xc3, + + /* U+49 "I" */ + 0x7e, 0xf, 0xff, 0xf8, 0x7f, 0x0, + + /* U+4A "J" */ + 0xf, 0xf5, 0xe4, 0x3f, 0xff, 0xe1, 0xff, 0xff, + 0xf, 0xff, 0x62, 0x1f, 0xfc, 0x44, 0x3f, 0x90, + 0xee, 0xe, 0x60, 0x22, 0x3f, 0xd0, 0x50, 0x7f, + 0xf0, 0x30, 0x3c, 0x86, 0x6c, 0x20, + + /* U+4B "K" */ + 0x7e, 0xf, 0xef, 0xa0, 0xff, 0xe0, 0xe0, 0x60, + 0xff, 0xe0, 0x61, 0x41, 0xff, 0xc0, 0xc2, 0xc3, + 0xff, 0x81, 0x85, 0x87, 0xff, 0x3, 0xb, 0xf, + 0xfe, 0x6, 0x16, 0x1f, 0xfc, 0xc, 0x2c, 0x3f, + 0xf8, 0x18, 0x58, 0x7f, 0xf0, 0x30, 0xb0, 0xff, + 0xe2, 0x41, 0xff, 0xc5, 0xa0, 0x7f, 0xf0, 0x74, + 0xe, 0x1f, 0xfc, 0x1a, 0x5, 0x87, 0xff, 0x5, + 0x82, 0xc3, 0xff, 0x82, 0xc1, 0x61, 0xff, 0xc1, + 0x70, 0xa0, 0xff, 0xe1, 0x40, 0x60, 0xff, 0xe0, + 0xb0, 0x14, 0x1f, 0xfc, 0x15, 0x2, 0x43, 0xff, + 0x83, 0x20, 0x83, 0xff, 0x85, 0x5, 0x0, + + /* U+4C "L" */ + 0x7e, 0xf, 0xff, 0xf8, 0x7f, 0xff, 0xc3, 0xff, + 0xfe, 0x1f, 0xff, 0xa, 0xff, 0x7, 0x2f, 0xf8, + 0x3f, 0xf8, 0x80, + + /* U+4D "M" */ + 0x1f, 0x83, 0xff, 0x85, 0xf0, 0x7c, 0x87, 0xff, + 0x1, 0x9, 0x6, 0x14, 0x1f, 0xfc, 0x8, 0x3f, + 0xe4, 0x3f, 0xd0, 0x7f, 0xf0, 0x20, 0xff, 0x21, + 0xb0, 0x20, 0x40, 0x87, 0xe8, 0x8, 0x7e, 0x81, + 0x7, 0xe4, 0x10, 0x7f, 0x20, 0x43, 0xd0, 0x20, + 0x90, 0xf4, 0x8, 0x3c, 0x81, 0xf, 0xf9, 0x2, + 0x19, 0x2, 0x1f, 0xc8, 0x20, 0x41, 0xa0, 0x41, + 0xe4, 0x3c, 0x81, 0x2, 0x4, 0x3f, 0xf8, 0x50, + 0x30, 0x40, 0x82, 0x43, 0xfe, 0x44, 0x40, 0x87, + 0xff, 0x13, 0x5, 0x82, 0xf, 0x9c, 0x18, 0x64, + 0xa, 0x10, 0xff, 0xe3, 0x41, 0xb0, 0xff, 0xe3, + 0x21, 0x90, 0xec, 0x3f, 0xf8, 0x30, 0x20, 0xfe, + 0xc3, 0xfc, 0xf9, 0xf, 0xf2, 0x4, 0x3f, 0xfc, + 0x0, + + /* U+4E "N" */ + 0x7d, 0x7, 0xfd, 0x7a, 0x9, 0x83, 0xff, 0x8c, + 0xa0, 0xff, 0xe3, 0x48, 0x7f, 0xf1, 0xa0, 0xff, + 0xe2, 0x20, 0xc3, 0xff, 0x87, 0x5, 0x7, 0xff, + 0xf, 0x2, 0x83, 0xff, 0x87, 0x2, 0xf, 0xfe, + 0x1b, 0x3, 0xf, 0xfe, 0x1a, 0x81, 0x7, 0xff, + 0xe, 0x2, 0x83, 0xff, 0x87, 0x2, 0xf, 0xfe, + 0x1a, 0x81, 0x7, 0xff, 0xe, 0x2, 0x83, 0xff, + 0x87, 0x82, 0xf, 0xfe, 0x22, 0x4, 0x3f, 0xf8, + 0x70, 0x7f, 0xf1, 0xf0, 0xff, 0xe3, 0xa1, 0xff, + 0xc6, 0x83, 0xff, 0x8f, 0x4, + + /* U+4F "O" */ + 0xf, 0xe5, 0xe0, 0xff, 0xe1, 0xbe, 0xae, 0xf2, + 0x1f, 0xf7, 0x7, 0xf5, 0x3, 0xfb, 0xd, 0x4e, + 0x42, 0x70, 0xfb, 0xa, 0xd4, 0x37, 0x5, 0x87, + 0x41, 0x68, 0x7c, 0xc1, 0x21, 0x90, 0x41, 0xfe, + 0x50, 0x20, 0x90, 0x90, 0xff, 0xa0, 0x90, 0x40, + 0x43, 0xff, 0x82, 0x83, 0xe, 0xc3, 0xff, 0x83, + 0x81, 0xe, 0x43, 0xff, 0xf0, 0x87, 0xff, 0x63, + 0xe, 0x41, 0x87, 0xff, 0x5, 0x2, 0xc, 0x8, + 0x7f, 0xf0, 0x10, 0xa0, 0x21, 0x41, 0xff, 0x40, + 0x43, 0x40, 0x60, 0xfe, 0x82, 0x83, 0x28, 0xe, + 0x87, 0x3a, 0x8, 0x3d, 0x21, 0x5e, 0xbd, 0x5, + 0x21, 0xf5, 0x3, 0x90, 0xe9, 0xf, 0xe7, 0x90, + 0xe6, 0xd0, 0xe0, + + /* U+50 "P" */ + 0x3f, 0xfa, 0x43, 0x90, 0xfe, 0x6d, 0xf, 0x97, + 0x83, 0x50, 0x3d, 0x5d, 0xe4, 0xa, 0xf, 0xfe, + 0x4, 0x82, 0xf, 0xfe, 0xc, 0x1f, 0xfc, 0x84, + 0x3f, 0xfa, 0x28, 0x48, 0x7f, 0xf0, 0x20, 0xff, + 0xe0, 0xb6, 0x14, 0x1d, 0xfd, 0x21, 0x48, 0x7f, + 0xf0, 0x5d, 0xf, 0x2f, 0x53, 0x83, 0xf5, 0x72, + 0x83, 0xff, 0xfe, 0x1f, 0xfe, 0x60, + + /* U+51 "Q" */ + 0xf, 0xe5, 0xe0, 0xff, 0xe1, 0xbe, 0xae, 0xf2, + 0x1f, 0xf7, 0x7, 0xf5, 0x3, 0xfb, 0xd, 0x4e, + 0x42, 0x70, 0xfb, 0xa, 0xd4, 0x37, 0x5, 0x87, + 0x41, 0x68, 0x7c, 0xc1, 0x21, 0x90, 0x41, 0xfe, + 0x50, 0x20, 0x90, 0x90, 0xff, 0xa0, 0x90, 0x60, + 0x43, 0xff, 0x82, 0x83, 0x2, 0xc, 0x3f, 0xf8, + 0x38, 0x10, 0xe4, 0x3f, 0xff, 0xe1, 0xff, 0xc4, + 0x43, 0xff, 0x83, 0x87, 0x20, 0xc3, 0xff, 0x82, + 0x81, 0x6, 0x4, 0x3f, 0xf8, 0x8, 0x50, 0x10, + 0xa0, 0xff, 0xa0, 0xfa, 0x3, 0x7, 0xf4, 0x14, + 0x19, 0x40, 0x60, 0xfb, 0x40, 0xa0, 0xe9, 0x3, + 0xea, 0xbc, 0x13, 0x7, 0xd4, 0xc, 0xb0, 0x6a, + 0x7, 0xf3, 0xc8, 0x73, 0x68, 0x7f, 0xf0, 0x1b, + 0xc1, 0x48, 0x7f, 0xf2, 0x70, 0xff, 0xe3, 0xe1, + 0x72, 0x1f, 0xfc, 0x5c, 0x26, 0xf2, 0x1f, 0xfc, + 0x3f, 0x21, 0x90, 0xff, 0xe2, 0xde, 0xa0, 0x40, + + /* U+52 "R" */ + 0x3f, 0xfa, 0x43, 0xc8, 0x7f, 0x36, 0x87, 0xe5, + 0xe0, 0xd4, 0xf, 0xab, 0xbc, 0x81, 0x41, 0xff, + 0xc1, 0x90, 0x41, 0xff, 0xc2, 0xc3, 0xff, 0x8a, + 0x87, 0xff, 0x5d, 0xf, 0xfe, 0x2c, 0x4, 0x3f, + 0xe6, 0xc2, 0x83, 0xdf, 0xd2, 0x16, 0x1f, 0xfc, + 0x37, 0xf, 0xcb, 0xc1, 0x41, 0xfd, 0x5c, 0x16, + 0x1f, 0xfc, 0x2c, 0x28, 0x3f, 0xf8, 0x50, 0x14, + 0x1f, 0xfc, 0x15, 0x2, 0xf, 0xfe, 0x14, 0x14, + 0x1f, 0xfc, 0x28, 0x8, 0x7f, 0xf0, 0x94, 0x8, + 0x3f, 0xf8, 0x50, 0x14, + + /* U+53 "S" */ + 0xf, 0x2f, 0x7, 0xeb, 0xd5, 0xde, 0x43, 0x68, + 0x7f, 0x41, 0x41, 0x37, 0xa8, 0x90, 0x48, 0x28, + 0x81, 0x56, 0x81, 0x9, 0xf, 0xfe, 0xfa, 0x16, + 0x1f, 0xfc, 0x4, 0x2e, 0xf, 0xf4, 0x84, 0xf2, + 0x1f, 0xa8, 0x19, 0xb4, 0x3e, 0x7c, 0x86, 0xb0, + 0xfe, 0xb8, 0x36, 0x1f, 0xe7, 0x42, 0x43, 0xfe, + 0x90, 0x41, 0xff, 0xc0, 0xc3, 0xff, 0xa7, 0x87, + 0x68, 0x7c, 0xa0, 0x24, 0x5f, 0x53, 0xd0, 0x50, + 0x7c, 0xa0, 0xce, 0xb, 0x90, 0xf3, 0xc1, 0x0, + + /* U+54 "T" */ + 0x7f, 0xff, 0x89, 0x7, 0xff, 0x1d, 0x7c, 0x19, + 0x7d, 0xb5, 0xe4, 0xd, 0x79, 0xf, 0xff, 0xf8, + 0x7f, 0xff, 0xc3, 0xff, 0xfe, 0x1f, 0xff, 0xf0, + 0xff, 0xe6, 0x0, + + /* U+55 "U" */ + 0x7d, 0x7, 0xfa, 0xf2, 0x1f, 0xff, 0xf0, 0xff, + 0xff, 0x87, 0xff, 0xfc, 0x3f, 0xf8, 0x8, 0x7f, + 0x90, 0x90, 0xff, 0xe2, 0x21, 0x90, 0xfc, 0x87, + 0x20, 0x83, 0xf4, 0x4, 0x10, 0x5a, 0x19, 0xc2, + 0x82, 0x82, 0xbf, 0x41, 0x41, 0x98, 0x3f, 0xd2, + 0x1c, 0xf2, 0x19, 0xb4, 0x20, + + /* U+56 "V" */ + 0xbe, 0xf, 0xfe, 0xf, 0xcc, 0x12, 0x1f, 0xfc, + 0x34, 0x36, 0x1f, 0xf4, 0x1d, 0x1, 0xf, 0xf9, + 0x4, 0x4, 0x24, 0x3f, 0xf8, 0x28, 0x48, 0x30, + 0xfe, 0x80, 0x86, 0xc0, 0x87, 0xf2, 0xc, 0x32, + 0x12, 0x1f, 0x21, 0x21, 0xc8, 0x30, 0xfb, 0x2, + 0x1e, 0x80, 0x87, 0xc8, 0x20, 0xff, 0x21, 0xc8, + 0x7f, 0xd0, 0x20, 0xec, 0x10, 0x7e, 0x43, 0xf2, + 0x4, 0x3f, 0x90, 0x41, 0x20, 0x43, 0xfd, 0x1, + 0xa, 0x4, 0x1f, 0xfc, 0x24, 0x43, 0xff, 0x87, + 0x2, 0x30, 0x41, 0xff, 0xc0, 0x42, 0x50, 0x10, + 0xff, 0xe0, 0xa0, 0x80, 0x87, 0xff, 0xa, 0xe, + 0x83, 0xff, 0x86, 0x84, 0x87, 0xff, 0x12, 0xa, + 0xf, 0xc0, + + /* U+57 "W" */ + 0x3e, 0xf, 0xfe, 0x4b, 0xe8, 0x32, 0x1f, 0xfc, + 0x8c, 0x32, 0xc, 0x3f, 0x94, 0x1f, 0xc8, 0x33, + 0x2, 0x1f, 0xab, 0x7, 0xfc, 0x87, 0xff, 0x5, + 0x2, 0x1f, 0xfc, 0x14, 0x3f, 0xc8, 0x7f, 0xc8, + 0x7f, 0x21, 0xec, 0x32, 0x1e, 0xc0, 0x84, 0x83, + 0xf, 0x22, 0x8, 0x3c, 0x83, 0xb, 0x2, 0x1c, + 0x83, 0x43, 0xfe, 0x42, 0x43, 0xf6, 0x7, 0x2, + 0x1f, 0xfc, 0x94, 0x44, 0x10, 0x64, 0x8, 0x72, + 0x4, 0x24, 0x18, 0x10, 0xf6, 0xc, 0x3b, 0x6, + 0x16, 0x4, 0x18, 0x20, 0x90, 0x21, 0xc8, 0x10, + 0x91, 0x9, 0x2, 0x1f, 0xfc, 0x64, 0x18, 0x64, + 0x8, 0x81, 0xf, 0x90, 0x24, 0x4, 0x34, 0xc, + 0xc1, 0x87, 0xd8, 0x30, 0x90, 0xfc, 0x88, 0x10, + 0xf9, 0x3, 0x2, 0xf, 0x40, 0x83, 0xff, 0x86, + 0x87, 0xf2, 0x4, 0x8, 0x7f, 0x21, 0xa0, 0xfc, + 0x86, 0x83, 0xfa, 0xc, 0x87, 0xec, 0x3f, 0xf8, + 0xc8, 0x7f, 0x21, 0x21, 0xc0, + + /* U+58 "X" */ + 0x2f, 0x83, 0xfd, 0xf4, 0x8, 0x28, 0x3f, 0x41, + 0x41, 0x40, 0x50, 0x7c, 0x82, 0xc, 0xa0, 0x41, + 0xec, 0xa, 0xe, 0x82, 0x83, 0x21, 0x41, 0xf6, + 0x5, 0x5, 0x2, 0xf, 0xe4, 0x10, 0x30, 0x28, + 0x3f, 0xa0, 0xa4, 0x28, 0x3f, 0xec, 0xc, 0x8, + 0x3f, 0xf8, 0x30, 0x65, 0x7, 0xff, 0x5, 0xd, + 0x87, 0xff, 0xa, 0xd, 0x7, 0xff, 0x5, 0x41, + 0xd0, 0x7f, 0xf0, 0x20, 0x50, 0xa, 0xf, 0xf4, + 0x12, 0xc0, 0x83, 0xf9, 0x40, 0xc1, 0x5, 0x7, + 0xe8, 0x10, 0x6c, 0xa, 0xf, 0x41, 0x21, 0xc8, + 0x20, 0xe5, 0x3, 0xf, 0x41, 0x41, 0xa0, 0x21, + 0xfa, 0x2, 0x12, 0x14, 0x1f, 0x90, 0xa0, 0x40, + 0x83, 0xfd, 0x81, 0x40, + + /* U+59 "Y" */ + 0xbe, 0xf, 0xfb, 0xea, 0x5, 0x7, 0xf2, 0x14, + 0x40, 0x43, 0xfa, 0x2, 0x4, 0x28, 0x3e, 0x42, + 0x82, 0x80, 0x87, 0xd0, 0x20, 0xca, 0x4, 0x1c, + 0x84, 0x87, 0x40, 0x50, 0x68, 0x18, 0x7d, 0x2, + 0xa, 0x2, 0x1f, 0x90, 0x90, 0x20, 0x83, 0xfa, + 0x4, 0x60, 0x83, 0xfc, 0xa0, 0x61, 0x21, 0xff, + 0x41, 0xd8, 0x7f, 0xf0, 0x60, 0x90, 0xff, 0xe1, + 0x21, 0x41, 0xff, 0xff, 0xf, 0xff, 0xf8, 0x7f, + 0x0, + + /* U+5A "Z" */ + 0x7f, 0xff, 0x86, 0x1f, 0xfc, 0x65, 0xff, 0xe0, + 0x4, 0x82, 0xbf, 0xc1, 0xa0, 0xff, 0xa4, 0x18, + 0x7f, 0xca, 0x4, 0x1f, 0xfc, 0x8, 0x12, 0x1f, + 0xf6, 0x5, 0x7, 0xfd, 0x5, 0x7, 0xfc, 0xa0, + 0x61, 0xff, 0xc0, 0x81, 0x7, 0xff, 0x2, 0x2, + 0x83, 0xfe, 0x50, 0x20, 0xff, 0xe0, 0x40, 0x83, + 0xff, 0x81, 0x1, 0x41, 0xff, 0x28, 0x10, 0x7f, + 0xf0, 0x20, 0x41, 0xff, 0xc0, 0x82, 0x43, 0xff, + 0x80, 0x83, 0xf, 0xfe, 0x4, 0x15, 0x7f, 0xf0, + 0x4, 0x25, 0xff, 0xe0, 0x7, 0xff, 0x18, + + /* U+5B "[" */ + 0xff, 0x90, 0xff, 0xab, 0x21, 0x2e, 0xf, 0xff, + 0xf8, 0x7f, 0xff, 0xc3, 0xff, 0xc4, 0xb8, 0x35, + 0x64, 0x3f, 0x0, + + /* U+5C "\\" */ + 0xbc, 0x87, 0xfd, 0x3, 0xf, 0xfe, 0x12, 0x1f, + 0xfc, 0x4, 0x8, 0x7f, 0xd0, 0x20, 0xff, 0xe7, + 0xa0, 0x43, 0xfe, 0x81, 0x7, 0xff, 0x3e, 0x4, + 0x1f, 0xf2, 0x4, 0x3f, 0xf9, 0xf0, 0x20, 0xff, + 0x90, 0x21, 0xff, 0xc0, 0x40, 0x87, 0xfd, 0x83, + 0xf, 0xf9, 0x2, 0x1f, 0xfc, 0x4, 0x8, 0x7f, + 0xd8, 0x30, 0xff, 0x90, 0x21, 0xff, 0xc0, 0x40, + 0x87, 0xfd, 0x83, 0xf, 0xf9, 0x2, 0x1f, 0xfc, + 0x4, 0x8, 0x7f, 0xd0, 0x20, 0xff, 0xe7, 0xa0, + 0x43, 0xfe, 0x81, 0x7, 0xff, 0x3d, 0x4, 0x1f, + 0xf4, 0x4, + + /* U+5D "]" */ + 0xff, 0x90, 0xfd, 0xd4, 0x86, 0x5b, 0xf, 0xff, + 0xf8, 0x7f, 0xff, 0xc3, 0xff, 0xc4, 0xb6, 0x17, + 0x52, 0x1f, 0xf0, + + /* U+5E "^" */ + 0xf, 0x5e, 0x83, 0xff, 0x80, 0x81, 0xf, 0xfa, + 0xd, 0x87, 0xf2, 0x80, 0x81, 0xf, 0xd0, 0x38, + 0x10, 0x7c, 0x81, 0x2, 0x4, 0x3d, 0x2, 0x4, + 0x8, 0x3a, 0x4, 0x1a, 0x4, 0x19, 0x2, 0x19, + 0x2, 0x14, 0x8, 0x3d, 0x3, 0x14, 0x4, 0x3c, + 0xa0, 0x2a, 0x30, 0xfd, 0x12, 0x38, 0x7f, 0xb4, + + /* U+5F "_" */ + 0x2b, 0xff, 0x86, 0x8b, 0xff, 0xc3, 0x83, 0xff, + 0x8a, + + /* U+60 "`" */ + 0x2, 0x1c, 0xd8, 0x6c, 0x10, 0x52, 0x30, 0x52, + 0x28, 0x29, 0x30, 0xd5, 0x0, + + /* U+61 "a" */ + 0x3, 0x7f, 0x48, 0x74, 0x87, 0x34, 0xc, 0x8b, + 0x82, 0x50, 0x57, 0x5b, 0x41, 0x7, 0xfa, 0xf, + 0xfe, 0x12, 0x4, 0x3c, 0xb0, 0x7e, 0xbd, 0x56, + 0x86, 0x74, 0x3f, 0xe8, 0xd, 0xf9, 0x9, 0x3, + 0x21, 0xfb, 0x6, 0x1f, 0xfc, 0xcc, 0x10, 0x7f, + 0x90, 0xba, 0xe4, 0x36, 0x12, 0xf0, 0x7b, 0x83, + 0xe6, 0x40, + + /* U+62 "b" */ + 0x19, 0xf, 0xfe, 0x3, 0x38, 0x7f, 0xff, 0xc3, + 0xff, 0xb2, 0xdf, 0xa0, 0xfc, 0xc8, 0x67, 0x43, + 0xf9, 0x41, 0xa4, 0x3d, 0x74, 0xf2, 0x8, 0x39, + 0x41, 0xd0, 0x48, 0x7f, 0xf0, 0x20, 0x41, 0xff, + 0xc0, 0x43, 0xff, 0xfe, 0x19, 0xf, 0xfe, 0x1c, + 0x8, 0x3f, 0xce, 0x12, 0x19, 0xea, 0xe0, 0xb0, + 0xf9, 0x60, 0xd8, 0x4c, 0x87, 0x9b, 0xc, + + /* U+63 "c" */ + 0xe, 0x6f, 0xd2, 0x19, 0xe4, 0x33, 0x4, 0xc1, + 0x94, 0x4, 0x28, 0xf, 0xa9, 0xe8, 0x10, 0x50, + 0x7f, 0x20, 0x83, 0xff, 0x82, 0x87, 0xf2, 0x1f, + 0xfc, 0x44, 0x3f, 0xf8, 0x28, 0x7f, 0x90, 0xff, + 0xe2, 0xa1, 0xfe, 0x41, 0x7, 0xfa, 0xa, 0xf, + 0xf4, 0x7, 0xd5, 0x78, 0x26, 0xc, 0xb0, 0x79, + 0xe4, 0x33, 0x0, + + /* U+64 "d" */ + 0xf, 0xfe, 0xb, 0x7, 0xff, 0x6, 0x8a, 0xf, + 0xff, 0xf8, 0x7f, 0xf3, 0xaf, 0xd2, 0x1f, 0x3a, + 0x19, 0x90, 0xe6, 0x9, 0x60, 0xfd, 0x1, 0xea, + 0xe0, 0xe8, 0xc, 0x1c, 0xa0, 0xc8, 0x20, 0xff, + 0xe7, 0xa1, 0xff, 0xe3, 0x43, 0xff, 0x8e, 0x87, + 0xff, 0x1, 0x4, 0x1f, 0xfc, 0x8, 0x2c, 0x3f, + 0xf8, 0x10, 0x5e, 0xab, 0x43, 0x9c, 0x32, 0xc1, + 0xfd, 0xc8, 0x72, 0xa4, + + /* U+65 "e" */ + 0xe, 0x7f, 0x48, 0x7c, 0xf0, 0x66, 0x81, 0xcc, + 0x12, 0xc0, 0x60, 0xd0, 0x2e, 0xac, 0xa, 0x4, + 0x5, 0x7, 0x40, 0xc0, 0x82, 0xf, 0x20, 0x43, + 0x97, 0xf0, 0x64, 0x2a, 0xfc, 0x1f, 0xfc, 0xcf, + 0xff, 0x84, 0x3f, 0xf8, 0xe8, 0x7f, 0xf0, 0x10, + 0x41, 0xff, 0xc0, 0x82, 0x83, 0xff, 0x81, 0x1, + 0xf5, 0x5e, 0x83, 0x30, 0x65, 0x80, 0x87, 0x3c, + 0x87, 0x30, 0x0, + + /* U+66 "f" */ + 0xe, 0x68, 0xa0, 0xde, 0x95, 0x50, 0x30, 0xfb, + 0x20, 0xaf, 0xa4, 0x41, 0xa1, 0x22, 0x4, 0x3f, + 0xfa, 0x8f, 0xf8, 0x3f, 0xf8, 0x95, 0xe0, 0xcb, + 0xf0, 0x7f, 0xff, 0xc3, 0xff, 0xf2, + + /* U+67 "g" */ + 0xe, 0x6f, 0xe9, 0xc, 0xf2, 0x1c, 0xd8, 0x18, + 0x32, 0xc1, 0xe8, 0xf, 0xaa, 0xc3, 0x41, 0x41, + 0xfe, 0x41, 0x7, 0xff, 0x9, 0xf, 0xf2, 0x1f, + 0xfe, 0x4, 0x3f, 0xf8, 0xc8, 0x7f, 0xc8, 0x20, + 0xff, 0xa0, 0xb4, 0x27, 0xe, 0x82, 0xbe, 0x83, + 0xce, 0x1f, 0x21, 0xf7, 0xa5, 0x5c, 0x1f, 0xcd, + 0x10, 0xff, 0xe2, 0x40, 0x40, 0x87, 0xca, 0x4, + 0xb, 0xd5, 0xb8, 0x8, 0x10, 0x97, 0x4, 0xc0, + 0x64, 0x3c, 0xf0, 0x0, + + /* U+68 "h" */ + 0x19, 0xf, 0xf3, 0x38, 0x7f, 0xff, 0xc3, 0xff, + 0x97, 0x7e, 0x90, 0xf2, 0x83, 0x36, 0x1f, 0x2c, + 0x1b, 0xc, 0xf5, 0x70, 0x48, 0x7f, 0x28, 0x18, + 0x7f, 0xa0, 0x21, 0xff, 0xff, 0xf, 0xff, 0xf8, + 0x60, + + /* U+69 "i" */ + 0x3c, 0x60, 0xc3, 0x40, 0x9f, 0x21, 0xf9, 0xf4, + 0x1f, 0xff, 0x40, + + /* U+6A "j" */ + 0xe, 0x7c, 0x87, 0x40, 0x83, 0xff, 0x85, 0x83, + 0xf, 0x78, 0x3f, 0xf8, 0x6f, 0xa0, 0xff, 0xff, + 0x87, 0xff, 0xfb, 0x6, 0x1f, 0xfc, 0x24, 0x9, + 0x56, 0x4, 0xb, 0x5, 0x7, 0xac, 0x0, + + /* U+6B "k" */ + 0xf, 0xfe, 0x1b, 0xe8, 0x3f, 0xff, 0xe1, 0xff, + 0xe6, 0x7e, 0xf, 0xfa, 0x4, 0x1f, 0xec, 0x12, + 0x1f, 0xd8, 0x24, 0x3f, 0xb0, 0x28, 0x3f, 0xb0, + 0x30, 0x7f, 0x60, 0x60, 0xfe, 0x42, 0x83, 0xff, + 0x85, 0x7, 0xf9, 0x40, 0x60, 0xff, 0x50, 0xa, + 0xf, 0xf3, 0x2, 0x43, 0xfc, 0xa0, 0x41, 0xff, + 0x48, 0x30, 0xff, 0xa0, 0xa0, 0xff, 0xb0, 0x28, + 0x3f, 0xe4, 0x10, + + /* U+6C "l" */ + 0xf, 0x36, 0x83, 0x43, 0xff, 0xfe, 0x1f, 0xfd, + 0x9c, 0x18, 0x72, 0x4, 0x2e, 0x10, 0x92, 0x80, + 0x40, + + /* U+6D "m" */ + 0x1a, 0x7f, 0x41, 0x37, 0xe8, 0x33, 0x28, 0x39, + 0xee, 0x43, 0x3a, 0x1e, 0x5c, 0x12, 0x12, 0xc1, + 0x41, 0xcd, 0x6d, 0xa, 0xea, 0xc2, 0x83, 0xfd, + 0x4, 0x87, 0x40, 0x43, 0xff, 0x90, 0x87, 0xff, + 0x9, 0x2, 0x1f, 0xff, 0xf0, 0xff, 0xff, 0x87, + 0xff, 0xfc, 0x3f, 0xf9, 0xa0, + + /* U+6E "n" */ + 0x1a, 0x7f, 0x48, 0x4c, 0xa0, 0xe6, 0xc3, 0xe5, + 0x83, 0x61, 0x9e, 0xae, 0x9, 0xf, 0xe5, 0x3, + 0xf, 0xf4, 0x4, 0x3f, 0xff, 0xe1, 0xff, 0xff, + 0xc, + + /* U+6F "o" */ + 0xe, 0x6f, 0xa4, 0x3f, 0x3c, 0x84, 0xd8, 0x79, + 0x82, 0x50, 0x6c, 0x3a, 0x3, 0xd3, 0xc1, 0x61, + 0x41, 0x41, 0xd8, 0x48, 0x10, 0x41, 0xf4, 0x8, + 0x39, 0xf, 0x90, 0xc8, 0x7f, 0xf1, 0xd0, 0xff, + 0xe2, 0x21, 0xff, 0xc1, 0x43, 0xff, 0x90, 0x87, + 0xc8, 0x72, 0x8, 0x3e, 0x81, 0x2, 0xa, 0xe, + 0xc2, 0x42, 0x80, 0xf4, 0xf0, 0x58, 0x66, 0x9, + 0x41, 0xb0, 0xf3, 0xc1, 0x9b, 0xc, + + /* U+70 "p" */ + 0x1a, 0x7f, 0x48, 0x73, 0x28, 0x39, 0xb0, 0xfe, + 0x58, 0x36, 0x1e, 0x7a, 0xb8, 0x2c, 0x3f, 0xe7, + 0x9, 0xf, 0xfe, 0x4, 0x8, 0x3f, 0xf8, 0x8, + 0x7f, 0xff, 0xc3, 0x21, 0xff, 0xc3, 0x81, 0x6, + 0x50, 0x74, 0x12, 0x1d, 0x75, 0x68, 0x20, 0xfc, + 0xb0, 0x52, 0x1c, 0xc8, 0x67, 0x43, 0xe6, 0xfd, + 0x7, 0xff, 0xfc, 0x3f, 0xc0, + + /* U+71 "q" */ + 0xe, 0x6f, 0xea, 0x21, 0xdc, 0x87, 0x2a, 0x40, + 0xe1, 0x96, 0xf, 0xa0, 0xbd, 0x56, 0x86, 0x82, + 0xc3, 0xfe, 0x41, 0x7, 0xff, 0xd, 0xf, 0xf9, + 0xf, 0xff, 0x1a, 0x1f, 0xfd, 0x44, 0x10, 0x7f, + 0xf0, 0x20, 0x30, 0x72, 0x83, 0xa0, 0x3d, 0x5c, + 0x1e, 0x60, 0x96, 0xf, 0xe7, 0x43, 0x32, 0x1f, + 0xaf, 0xd2, 0x1f, 0xff, 0xf0, 0xfe, + + /* U+72 "r" */ + 0x3, 0x7f, 0x43, 0xc8, 0x72, 0x1e, 0x58, 0x43, + 0x3d, 0x5c, 0x1f, 0xff, 0xf0, 0xff, 0xfc, 0x80, + + /* U+73 "s" */ + 0x9, 0xfe, 0x90, 0xdc, 0x1c, 0xc1, 0x61, 0x2e, + 0x10, 0x21, 0x75, 0xb8, 0x39, 0xf, 0xfe, 0x2, + 0x1f, 0xc8, 0x58, 0x7f, 0x41, 0x79, 0xf, 0x3a, + 0x15, 0xc1, 0xeb, 0x42, 0x70, 0xfa, 0xe0, 0xa0, + 0xfc, 0xc0, 0x43, 0xf9, 0xf, 0xfe, 0x2, 0x19, + 0xf5, 0x6e, 0x2, 0x60, 0x5c, 0x13, 0x14, 0x43, + 0x9a, 0x0, + + /* U+74 "t" */ + 0xf, 0xf9, 0xf2, 0x1f, 0x61, 0xff, 0xe2, 0xbf, + 0xa0, 0xff, 0xe1, 0xb5, 0xd8, 0x6d, 0x7c, 0x1f, + 0xff, 0xf0, 0xff, 0xe1, 0x60, 0xc3, 0xe4, 0x8, + 0x7f, 0xdd, 0x5e, 0x6, 0x12, 0xc1, 0xda, 0x19, + 0x80, + + /* U+75 "u" */ + 0xbc, 0x87, 0xdf, 0x7, 0xff, 0xfc, 0x3f, 0xfe, + 0xb8, 0x30, 0xff, 0x20, 0x43, 0xff, 0x85, 0x7, + 0xfa, 0x3, 0xd6, 0xc3, 0x30, 0x4b, 0x83, 0xce, + 0x87, 0x9b, + + /* U+76 "v" */ + 0x7e, 0xf, 0xd7, 0x94, 0x1f, 0xf2, 0x4, 0x32, + 0x1f, 0xfc, 0x8, 0x18, 0x79, 0x2, 0x4, 0x8, + 0x7a, 0x4, 0x1e, 0x43, 0xff, 0x81, 0x3, 0xc, + 0x81, 0xc, 0x81, 0xd, 0x82, 0xf, 0xc8, 0x48, + 0x7e, 0x81, 0x81, 0x4, 0x1e, 0x40, 0x82, 0x2, + 0x1f, 0x20, 0x42, 0x43, 0xf4, 0xe, 0x6, 0x1f, + 0xf2, 0x80, 0x87, 0xf4, 0x1a, 0xf, 0xf2, 0x19, + 0xf, 0xf9, 0x2, 0x1e, + + /* U+77 "w" */ + 0x7e, 0xf, 0xbe, 0xf, 0xbe, 0x10, 0xff, 0xe8, + 0x21, 0xc8, 0x48, 0x72, 0x4, 0x10, 0x30, 0xec, + 0x2c, 0x3b, 0x6, 0x4, 0x8, 0x72, 0x12, 0x1c, + 0x81, 0xf, 0xfe, 0x82, 0x4, 0x24, 0x10, 0x10, + 0x90, 0x41, 0xb0, 0x61, 0x60, 0x41, 0x85, 0x81, + 0xc, 0x81, 0x9, 0x21, 0x10, 0x90, 0xfc, 0x81, + 0xc, 0x98, 0x64, 0x8, 0x7b, 0x6, 0x41, 0x90, + 0x46, 0x8, 0x3c, 0x81, 0x11, 0xe, 0x44, 0x3f, + 0xc8, 0x10, 0x61, 0x40, 0x40, 0x87, 0xec, 0x10, + 0x10, 0x90, 0x40, 0x83, 0xf2, 0x19, 0xf, 0xfe, + 0x44, 0x14, 0x1d, 0x5, 0x7, 0xf9, 0xf, 0xe4, + 0x24, 0x38, + + /* U+78 "x" */ + 0x3e, 0x43, 0xcf, 0xc0, 0xc1, 0x7, 0xa0, 0x61, + 0x20, 0xc3, 0x40, 0x43, 0x41, 0x20, 0x50, 0x20, + 0xec, 0x10, 0x20, 0x61, 0xf4, 0xe, 0x2, 0x1f, + 0x90, 0x90, 0x41, 0xfd, 0x86, 0xc3, 0xff, 0x86, + 0x87, 0xfa, 0xd, 0x7, 0xf2, 0x85, 0x2, 0xf, + 0xd0, 0x28, 0x5, 0x7, 0xb0, 0x40, 0xc1, 0x7, + 0x20, 0x50, 0x48, 0x30, 0xd0, 0x20, 0xd0, 0x48, + 0x20, 0x41, 0xe8, 0x10, 0x10, 0x21, 0xe4, 0x28, + + /* U+79 "y" */ + 0x7e, 0xf, 0xdf, 0x8, 0x7f, 0xf1, 0xd0, 0xf2, + 0x4, 0x10, 0x30, 0xf6, 0xc, 0x8, 0x10, 0xf2, + 0x4, 0x3c, 0x87, 0xff, 0x2, 0x6, 0x19, 0x2, + 0x19, 0x2, 0x1b, 0x6, 0x1c, 0x81, 0x9, 0x2, + 0x1d, 0x83, 0xe, 0x43, 0xc8, 0x10, 0x20, 0xc3, + 0xe8, 0x11, 0x1, 0xf, 0x90, 0x21, 0x21, 0xfc, + 0x83, 0x6, 0x1f, 0xd0, 0x72, 0x1f, 0xe4, 0x28, + 0x3f, 0xe8, 0x24, 0x3f, 0xf8, 0x48, 0x7f, 0xf0, + 0x20, 0x41, 0xff, 0x28, 0x43, 0xe6, 0xae, 0x4, + 0x1f, 0x6b, 0x5, 0x87, 0xff, 0x6, 0xc3, 0xf8, + + /* U+7A "z" */ + 0x7f, 0xfe, 0x83, 0xff, 0x82, 0xd7, 0xc8, 0x58, + 0xbf, 0x80, 0xa0, 0xfb, 0x3, 0x7, 0xd0, 0x50, + 0x7c, 0xa0, 0x61, 0xfa, 0x4, 0x1f, 0xa0, 0x28, + 0x3e, 0x50, 0x20, 0xfd, 0x2, 0xf, 0xd0, 0x14, + 0x1f, 0x28, 0x10, 0x7e, 0x81, 0x7, 0xe8, 0x32, + 0xff, 0x5, 0x5f, 0xc1, 0xff, 0xc1, + + /* U+7B "{" */ + 0xf, 0x5e, 0x43, 0x3a, 0x1f, 0x40, 0x64, 0x28, + 0x14, 0x43, 0xe4, 0x3c, 0x87, 0xff, 0xfc, 0x24, + 0x8, 0x75, 0x1, 0x6, 0x90, 0x41, 0xfd, 0x87, + 0x50, 0xa, 0xe, 0x70, 0x61, 0xfc, 0x87, 0xff, + 0xdd, 0xf, 0xfe, 0x2, 0x1e, 0xc1, 0x44, 0x32, + 0x80, 0xc8, 0x6a, 0x21, 0x0, + + /* U+7C "|" */ + 0xf8, 0x3f, 0xff, 0xe1, 0xff, 0xc3, + + /* U+7D "}" */ + 0xbd, 0x7, 0x90, 0x38, 0x75, 0x2, 0xc3, 0x2b, + 0xf, 0xf4, 0x4, 0x3f, 0xff, 0xe2, 0xc, 0x3f, + 0x90, 0xfa, 0x6, 0x87, 0x28, 0x12, 0x1c, 0x87, + 0xe8, 0xe, 0x86, 0x41, 0x7, 0x20, 0x43, 0xfb, + 0xf, 0xff, 0xb4, 0x4, 0x33, 0x87, 0xdc, 0x14, + 0x19, 0x3, 0xa1, 0x80, + + /* U+7E "~" */ + 0x3, 0xf4, 0x1e, 0x60, 0x30, 0x4f, 0x6, 0x94, + 0x40, 0x50, 0x1e, 0x98, 0x14, 0xe, 0x9a, 0x5, + 0x2, 0x15, 0x6, 0xb4, 0x29, 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 = 118, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 0, .adv_w = 141, .box_w = 5, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 16, .adv_w = 214, .box_w = 10, .box_h = 9, .ofs_x = 2, .ofs_y = 15}, + {.bitmap_index = 32, .adv_w = 342, .box_w = 19, .box_h = 22, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 120, .adv_w = 289, .box_w = 15, .box_h = 28, .ofs_x = 1, .ofs_y = -3}, + {.bitmap_index = 198, .adv_w = 439, .box_w = 25, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 324, .adv_w = 341, .box_w = 20, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 424, .adv_w = 123, .box_w = 4, .box_h = 9, .ofs_x = 2, .ofs_y = 15}, + {.bitmap_index = 432, .adv_w = 166, .box_w = 9, .box_h = 31, .ofs_x = 2, .ofs_y = -6}, + {.bitmap_index = 486, .adv_w = 166, .box_w = 8, .box_h = 31, .ofs_x = 0, .ofs_y = -6}, + {.bitmap_index = 540, .adv_w = 246, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = 9}, + {.bitmap_index = 581, .adv_w = 289, .box_w = 16, .box_h = 16, .ofs_x = 1, .ofs_y = 2}, + {.bitmap_index = 608, .adv_w = 126, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = -5}, + {.bitmap_index = 619, .adv_w = 153, .box_w = 9, .box_h = 3, .ofs_x = 0, .ofs_y = 8}, + {.bitmap_index = 624, .adv_w = 126, .box_w = 6, .box_h = 5, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 631, .adv_w = 197, .box_w = 15, .box_h = 31, .ofs_x = -1, .ofs_y = -6}, + {.bitmap_index = 709, .adv_w = 289, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 780, .adv_w = 289, .box_w = 10, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 801, .adv_w = 289, .box_w = 15, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 872, .adv_w = 289, .box_w = 15, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 947, .adv_w = 289, .box_w = 16, .box_h = 22, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1009, .adv_w = 289, .box_w = 14, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1068, .adv_w = 289, .box_w = 15, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1141, .adv_w = 289, .box_w = 16, .box_h = 22, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1204, .adv_w = 289, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1280, .adv_w = 289, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1360, .adv_w = 126, .box_w = 6, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1376, .adv_w = 126, .box_w = 6, .box_h = 22, .ofs_x = 1, .ofs_y = -5}, + {.bitmap_index = 1399, .adv_w = 289, .box_w = 16, .box_h = 15, .ofs_x = 1, .ofs_y = 2}, + {.bitmap_index = 1450, .adv_w = 289, .box_w = 16, .box_h = 10, .ofs_x = 1, .ofs_y = 5}, + {.bitmap_index = 1473, .adv_w = 289, .box_w = 16, .box_h = 15, .ofs_x = 1, .ofs_y = 2}, + {.bitmap_index = 1523, .adv_w = 207, .box_w = 13, .box_h = 23, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1580, .adv_w = 486, .box_w = 27, .box_h = 27, .ofs_x = 2, .ofs_y = -4}, + {.bitmap_index = 1732, .adv_w = 339, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 1830, .adv_w = 329, .box_w = 17, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 1902, .adv_w = 317, .box_w = 19, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 1981, .adv_w = 365, .box_w = 19, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2055, .adv_w = 292, .box_w = 16, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2091, .adv_w = 275, .box_w = 15, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2118, .adv_w = 344, .box_w = 19, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2199, .adv_w = 361, .box_w = 18, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2225, .adv_w = 138, .box_w = 4, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2231, .adv_w = 256, .box_w = 14, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 2261, .adv_w = 322, .box_w = 18, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2348, .adv_w = 266, .box_w = 15, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2367, .adv_w = 446, .box_w = 24, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2472, .adv_w = 373, .box_w = 19, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2549, .adv_w = 398, .box_w = 23, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2648, .adv_w = 311, .box_w = 17, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2702, .adv_w = 398, .box_w = 23, .box_h = 29, .ofs_x = 1, .ofs_y = -6}, + {.bitmap_index = 2830, .adv_w = 322, .box_w = 18, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 2906, .adv_w = 272, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 2978, .adv_w = 289, .box_w = 18, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3005, .adv_w = 352, .box_w = 18, .box_h = 22, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3050, .adv_w = 336, .box_w = 21, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3148, .adv_w = 476, .box_w = 29, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3281, .adv_w = 323, .box_w = 20, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3381, .adv_w = 306, .box_w = 19, .box_h = 22, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 3446, .adv_w = 293, .box_w = 17, .box_h = 22, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3525, .adv_w = 168, .box_w = 8, .box_h = 31, .ofs_x = 3, .ofs_y = -6}, + {.bitmap_index = 3544, .adv_w = 197, .box_w = 15, .box_h = 31, .ofs_x = -1, .ofs_y = -6}, + {.bitmap_index = 3626, .adv_w = 168, .box_w = 8, .box_h = 31, .ofs_x = 0, .ofs_y = -6}, + {.bitmap_index = 3645, .adv_w = 289, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 9}, + {.bitmap_index = 3693, .adv_w = 252, .box_w = 17, .box_h = 3, .ofs_x = -1, .ofs_y = -6}, + {.bitmap_index = 3702, .adv_w = 193, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 18}, + {.bitmap_index = 3715, .adv_w = 267, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3765, .adv_w = 302, .box_w = 16, .box_h = 25, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 3820, .adv_w = 238, .box_w = 14, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3871, .adv_w = 302, .box_w = 16, .box_h = 25, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3931, .adv_w = 286, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 3990, .adv_w = 198, .box_w = 11, .box_h = 25, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4020, .adv_w = 296, .box_w = 15, .box_h = 23, .ofs_x = 1, .ofs_y = -6}, + {.bitmap_index = 4088, .adv_w = 292, .box_w = 14, .box_h = 25, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4121, .adv_w = 130, .box_w = 4, .box_h = 24, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4132, .adv_w = 130, .box_w = 9, .box_h = 29, .ofs_x = -3, .ofs_y = -6}, + {.bitmap_index = 4163, .adv_w = 267, .box_w = 15, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4222, .adv_w = 140, .box_w = 6, .box_h = 26, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4239, .adv_w = 441, .box_w = 24, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4284, .adv_w = 294, .box_w = 14, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4309, .adv_w = 302, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 4371, .adv_w = 302, .box_w = 16, .box_h = 23, .ofs_x = 2, .ofs_y = -6}, + {.bitmap_index = 4424, .adv_w = 302, .box_w = 16, .box_h = 23, .ofs_x = 1, .ofs_y = -6}, + {.bitmap_index = 4478, .adv_w = 198, .box_w = 11, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4494, .adv_w = 228, .box_w = 13, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 4544, .adv_w = 206, .box_w = 11, .box_h = 23, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4577, .adv_w = 294, .box_w = 14, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, + {.bitmap_index = 4603, .adv_w = 257, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4663, .adv_w = 398, .box_w = 25, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4753, .adv_w = 262, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, + {.bitmap_index = 4817, .adv_w = 254, .box_w = 16, .box_h = 23, .ofs_x = 0, .ofs_y = -6}, + {.bitmap_index = 4897, .adv_w = 241, .box_w = 13, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, + {.bitmap_index = 4943, .adv_w = 170, .box_w = 10, .box_h = 31, .ofs_x = 1, .ofs_y = -6}, + {.bitmap_index = 4988, .adv_w = 143, .box_w = 3, .box_h = 31, .ofs_x = 3, .ofs_y = -6}, + {.bitmap_index = 4994, .adv_w = 170, .box_w = 10, .box_h = 31, .ofs_x = 0, .ofs_y = -6}, + {.bitmap_index = 5038, .adv_w = 289, .box_w = 16, .box_h = 5, .ofs_x = 1, .ofs_y = 7} +}; + +/*--------------------- + * 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 + *----------------*/ + + +/*Map glyph_ids to kern left classes*/ +static const uint8_t kern_left_class_mapping[] = +{ + 0, 0, 0, 1, 0, 0, 0, 0, + 1, 2, 3, 4, 0, 5, 6, 5, + 7, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 8, 0, 0, 0, + 0, 9, 10, 11, 12, 13, 14, 15, + 16, 0, 0, 17, 18, 19, 20, 0, + 21, 22, 23, 24, 0, 25, 26, 27, + 28, 29, 30, 31, 32, 0, 33, 0, + 0, 0, 34, 35, 36, 0, 0, 37, + 0, 38, 0, 39, 40, 0, 41, 41, + 42, 43, 44, 45, 0, 46, 0, 47, + 48, 49, 0, 50, 51, 0, 52, 0 +}; + +/*Map glyph_ids to kern right classes*/ +static const uint8_t kern_right_class_mapping[] = +{ + 0, 0, 1, 2, 0, 0, 0, 0, + 2, 3, 4, 5, 0, 6, 7, 6, + 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 9, 0, 0, 0, + 10, 11, 12, 0, 13, 0, 0, 0, + 14, 0, 0, 15, 0, 0, 16, 0, + 17, 0, 17, 0, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 0, 27, 0, + 0, 0, 28, 0, 29, 30, 31, 32, + 33, 0, 0, 34, 0, 0, 35, 35, + 36, 35, 37, 35, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 0, 47, 0 +}; + +/*Kern values between classes*/ +static const int8_t kern_class_values[] = +{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -40, -13, -13, -63, 0, + -13, 0, 0, 0, 7, 5, 0, 0, + -6, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, -15, -15, 0, 0, -15, + -9, 6, -5, 8, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -10, -6, -6, -7, 0, -6, -6, + -14, 0, -17, -9, -14, -22, -11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -33, -5, -5, -62, 0, 0, 0, 0, + 0, 0, 0, -13, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 13, + -15, -15, 14, 0, -17, 7, -36, -12, + -39, -20, 5, -41, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -14, 0, 0, 0, -26, 0, -6, + 0, -16, -26, -8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -26, -14, -14, + -36, 0, -13, 0, 15, 0, 16, 11, + 10, 17, 5, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -6, -6, 0, + 0, -6, 0, -44, -6, -11, -7, 0, + -20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -13, -5, -5, -13, 0, + -5, -9, -23, -6, -18, -12, -20, -28, + -17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -40, -10, 0, -32, 13, 0, 9, 0, + 0, -8, 17, -10, -10, 15, 0, -10, + 8, -33, -5, -32, -9, 13, -40, 10, + 0, -14, 0, -7, -7, -7, 0, -8, + 0, 0, -7, -7, 7, 0, -8, -11, + -10, 13, -8, 8, -10, -5, 0, -6, + -6, -13, -6, -5, 0, -11, -6, -10, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -10, -7, -11, -13, 0, 0, + -17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -7, 0, -11, 0, 0, -12, + 0, 0, 11, -15, 0, 0, 8, -9, + 11, -10, -10, 12, 0, -10, 5, 9, + 0, 9, 0, 7, 9, 5, -5, 0, + 0, -8, -8, -8, 0, -8, 0, 0, + -8, -8, 0, 0, -10, -8, -9, 7, + -8, 0, -14, 0, -7, -13, -6, -17, + 0, -17, 0, -22, 0, -20, -6, -10, + 0, 0, -13, 0, 0, -6, -14, 0, + -9, -9, -12, -21, -8, -6, -22, -7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -15, 0, -8, -11, 0, -7, + 6, 0, 0, 0, 0, -8, 9, -14, + -14, 9, 0, -14, 0, 0, -11, 0, + 0, 0, 0, 0, -9, -22, 0, -8, + -9, -8, 0, -12, 0, 0, -9, -8, + 0, -7, -10, -13, -13, 5, -13, 0, + -10, -11, -5, 0, -12, 0, 0, -33, + 0, -31, -9, 7, -9, -24, -7, -7, + -41, 0, -7, 0, 7, 0, 9, 0, + 0, 10, 0, -8, -21, -26, -7, -7, + -7, 0, -7, 0, -14, -7, -7, 0, + 0, -13, 0, 0, -18, 0, -13, 0, + 0, 0, 0, 0, -5, -13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -9, 0, 0, -9, 0, 0, -5, + 0, 0, 0, -5, 0, -5, 0, -18, + 0, 0, 0, -5, 0, 0, -8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -9, 0, -17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -9, 0, -10, 0, + 0, -9, 0, -17, 8, -24, 9, 0, + 6, -10, 17, -18, -18, 14, 0, -18, + 0, 9, 0, 10, 5, 13, 11, 11, + 0, -13, 0, -11, -11, -11, 0, -11, + 0, 0, -11, -11, 7, 0, -7, -7, + -25, 14, -5, 8, -10, 0, 0, -65, + -5, 0, -71, 12, -35, 6, 0, 0, + 0, 14, -23, -23, 14, 0, -23, 7, + -59, -9, -51, -23, 10, -59, 7, 0, + -16, 0, -6, -6, -6, 0, -6, 0, + 0, -6, -6, 0, 0, 0, -20, -19, + 11, -10, 5, -12, -8, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -3, 0, 0, -4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -7, -12, -6, -14, + 0, -17, 0, -22, 0, -17, -6, -10, + 0, 0, -13, 0, 0, -5, -14, 0, + -9, -8, -12, -21, -8, -5, -22, -7, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -15, -6, 0, -6, -12, 0, + -46, 0, -32, 0, 0, 0, -26, 0, + 0, -49, 0, 0, 0, 0, 0, 0, + 0, -9, 0, 0, -8, -21, -10, -11, + -11, -16, 0, -11, 0, 0, -11, -6, + 0, 0, 0, 5, 5, 0, 5, 0, + 0, -12, -7, -12, -6, 0, 0, -17, + 0, 0, 0, -17, -6, -10, 0, 0, + -13, 0, 0, -5, -14, 0, -9, -8, + -12, -21, -8, -5, 0, -7, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -6, 0, 0, 7, 0, + 6, 0, -7, -8, 14, -6, -6, 11, + 0, -6, 0, 0, 0, -5, 0, 10, + -10, 7, 0, -17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 11, 0, 5, -9, -8, + 0, 0, -14, 6, 0, -38, -25, -44, + -43, 11, -26, -33, -14, -14, -46, 0, + -14, 0, 12, 0, 14, 9, 8, 15, + 0, 0, -16, -23, -28, -28, -28, 0, + -28, 0, -20, -28, -28, -23, 0, -17, + -11, -41, -9, -11, -15, -12, 0, 0, + 0, -5, 0, 0, -5, 0, -21, -5, + 0, 0, -5, 0, 0, -8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -8, + 0, -19, -8, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -9, -5, -11, 0, 0, + 0, 0, 0, -38, 0, 0, 0, 0, + 0, -32, -9, -9, -49, -3, -9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -13, -23, -23, -23, 0, -23, 0, + -15, -23, -23, -8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, -8, + 0, 0, -19, 0, -24, -6, 8, -10, + -9, -8, -8, -31, 0, -8, 0, 10, + 0, 11, 6, 5, 12, 0, 0, -19, + -15, -11, -11, -11, 0, -13, 0, -11, + -11, -11, -9, 0, -10, 0, 0, 0, + 0, 0, -9, 0, 0, 0, -13, 0, + -13, 7, -14, 5, 0, 0, -13, 14, + -12, -12, 10, 0, -12, 0, 7, 0, + 9, 0, 9, 10, 7, 0, -17, 0, + -9, -9, -9, 0, -9, 0, 0, -9, + -9, 0, 0, -5, -6, -19, 10, -4, + 0, -13, 0, 0, 0, -22, 9, 0, + -33, -25, -42, -19, 13, -30, -40, -21, + -21, -59, -4, -21, 0, 15, 0, 17, + 12, 11, 18, 6, 0, -13, -21, -25, + -25, -25, 0, -25, 0, -20, -25, -25, + -10, 0, -17, 0, 0, -8, 0, -14, + -11, 0, 0, 0, -11, 0, 0, 6, + -31, 0, 0, 0, -8, 9, -18, -18, + 9, 0, -18, 0, 0, -7, 5, 0, + 0, 6, 0, -9, -22, 0, -8, -9, + -8, 0, -12, 0, 0, -9, -8, 0, + -7, -10, -12, -12, 5, -12, 0, -18, + -8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -14, -22, -22, -14, + 0, -22, -13, -17, -19, -15, -19, -18, + -14, -21, 0, 41, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -5, -5, 0, 0, + -5, 0, 0, 0, 0, -5, -5, 0, + -8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -14, 0, -12, -10, 0, 0, 0, 0, + -14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -8, + -6, 0, -8, 0, 0, -11, 0, -19, + 0, -14, 0, 0, 0, -11, 0, -14, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -7, -6, + -9, -7, -10, 0, -11, 0, 0, 0, + 0, 0, 5, -16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -14, + 0, 0, -6, 0, 0, -8, 0, 0, + -7, 0, 0, 0, 0, 6, 5, 8, + 6, 0, -11, 0, 0, 0, 0, 20, + 6, -27, -18, -22, 0, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 9, 8, 10, + 0, 0, 20, 0, -19, 0, -12, -11, + 0, 0, 0, 0, -14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -8, -7, 0, -9, 0, + 0, -11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -14, + 6, 0, 0, -10, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -13, 0, -13, -13, -13, + 0, -15, 0, 0, -15, -13, 0, 0, + 0, 0, 0, 10, 0, 0, -10, 0, + 0, -16, 0, -13, -11, 0, 0, 0, + 0, -14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -8, -7, 0, -9, 0, 0, -11, 0, + -16, 0, -14, -10, 0, 0, -12, 0, + -15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -7, + -7, -9, -7, -10, 0, -11, 0, -16, + 0, -14, -10, 0, 0, -11, 0, -14, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -7, -6, + -9, -7, -9, 0, -11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 6, -28, -16, -24, 0, -22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -12, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -6, 0, 0, 0, 11, 10, 8, 11, + 0, 0, 0, 0, 0, 0, 0, 0, + 6, -20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -14, 0, -7, + -7, -5, 0, -5, 0, 0, -7, -6, + 0, 0, 0, 0, 0, 9, 0, 0, + -11, 0, 0, 0, 0, 0, 5, -18, + 0, -16, 0, -20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -13, 0, -8, -7, + -7, 0, -7, 0, 0, -7, -7, 0, + 0, 0, 9, 9, 7, 9, 0, 0, + 0, 0, 0, 0, 0, 5, -16, 0, + -14, 0, -18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -13, 0, -7, 0, 0, + 0, 0, 0, 0, -6, 0, 0, 0, + 0, 9, 9, 7, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -14, 0, -11, -11, -11, 0, + -11, 0, 0, -11, -11, 0, 0, 0, + 0, 0, 9, 0, 0, -11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -17, 0, -10, -10, -10, -6, -11, + 0, 0, -10, -9, 0, -7, -7, 0, + 0, 0, 0, 0, -14, -11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, -6, -13, -15, -6, 0, -15, -11, + 0, -12, 0, 0, 0, 0, -9, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + -11, 0, 0, -11, 0, 0, -9, -13, + -6, -13, -10, -15, -12, -17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 +}; + + +/*Collect the kern class' data in one place*/ +static const lv_font_fmt_txt_kern_classes_t kern_classes = +{ + .class_pair_values = kern_class_values, + .left_class_mapping = kern_left_class_mapping, + .right_class_mapping = kern_right_class_mapping, + .left_class_cnt = 52, + .right_class_cnt = 47, +}; + +/*-------------------- + * ALL CUSTOM DATA + *--------------------*/ + +/*Store all the custom data of the font*/ +static lv_font_fmt_txt_dsc_t font_dsc = { + .glyph_bitmap = gylph_bitmap, + .glyph_dsc = glyph_dsc, + .cmaps = cmaps, + .kern_dsc = &kern_classes, + .kern_scale = 16, + .cmap_num = 1, + .bpp = 2, + .kern_classes = 1, + .bitmap_format = 1 +}; + + +/*----------------- + * PUBLIC FONT + *----------------*/ + +/*Initialize a public general font descriptor*/ +lv_font_t Ubuntu_32px = { + .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 = 32, /*The maximum line height required by the font*/ + .base_line = 6, /*Baseline measured from the bottom of the line*/ +#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) + .subpx = LV_FONT_SUBPX_NONE, +#endif + .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ +}; + +#endif /*#if UBUNTU_32PX*/ + diff --git a/src/gui/mainbar/main_tile/main_tile.cpp b/src/gui/mainbar/main_tile/main_tile.cpp index d0a2dba..fbb93a6 100644 --- a/src/gui/mainbar/main_tile/main_tile.cpp +++ b/src/gui/mainbar/main_tile/main_tile.cpp @@ -42,8 +42,9 @@ lv_widget_entry_t widget_entry[ MAX_WIDGET_NUM ]; LV_FONT_DECLARE(Ubuntu_72px); LV_FONT_DECLARE(Ubuntu_16px); -lv_task_t * task; -void main_tile_task( lv_task_t * task ); +lv_task_t * main_tile_task; + +void main_tile_update_task( lv_task_t * task ); void main_tile_align_widgets( void ); void main_tile_setup( void ) { @@ -96,7 +97,7 @@ void main_tile_setup( void ) { lv_obj_set_hidden( widget_entry[ widget ].widget, true ); } - task = lv_task_create( main_tile_task, 1000, LV_TASK_PRIO_MID, NULL ); + main_tile_task = lv_task_create( main_tile_update_task, 500, LV_TASK_PRIO_MID, NULL ); } lv_obj_t *main_tile_register_widget( void ) { @@ -137,20 +138,35 @@ uint32_t main_tile_get_tile_num( void ) { return( main_tile_num ); } - -void main_tile_task( lv_task_t * task ) { +void main_tile_update_task( lv_task_t * task ) { time_t now; struct tm info; - char buf[64]; + char time_str[64]=""; + static char *old_time_str = NULL; + + // on first run, alloc psram + if ( old_time_str == NULL ) { + old_time_str = (char *)ps_calloc( sizeof( time_str), 1 ); + if ( old_time_str == NULL ) { + log_e("old_time_str allocation failed"); + while(true); + } + } time( &now ); localtime_r( &now, &info ); - strftime( buf, sizeof(buf), "%H:%M", &info ); - lv_label_set_text( timelabel, buf ); - lv_obj_align( timelabel, clock_cont, LV_ALIGN_CENTER, 0, 0 ); + strftime( time_str, sizeof(time_str), "%H:%M", &info ); - strftime( buf, sizeof(buf), "%a %d.%b %Y", &info ); - lv_label_set_text( datelabel, buf ); - lv_obj_align( datelabel, clock_cont, LV_ALIGN_IN_BOTTOM_MID, 0, 0 ); + // only update while time_str changes + if ( strcmp( time_str, old_time_str ) ) { + log_i("renew time_str: %s != %s", time_str, old_time_str ); + lv_label_set_text( timelabel, time_str ); + lv_obj_align( timelabel, clock_cont, LV_ALIGN_CENTER, 0, 0 ); + strlcpy( old_time_str, time_str, sizeof( time_str ) ); + + strftime( time_str, sizeof(time_str), "%a %d.%b %Y", &info ); + lv_label_set_text( datelabel, time_str ); + lv_obj_align( datelabel, clock_cont, LV_ALIGN_IN_BOTTOM_MID, 0, 0 ); + } } \ No newline at end of file diff --git a/src/gui/mainbar/mainbar.cpp b/src/gui/mainbar/mainbar.cpp index d1e401c..26df24e 100644 --- a/src/gui/mainbar/mainbar.cpp +++ b/src/gui/mainbar/mainbar.cpp @@ -45,6 +45,7 @@ static lv_obj_t *mainbar = NULL; static lv_tile_t *tile = NULL; static lv_point_t *tile_pos_table = NULL; +static uint32_t current_tile = 0; static uint32_t tile_entrys = 0; static uint32_t app_tile_pos = MAINBAR_APP_TILE_X_START; @@ -110,6 +111,8 @@ uint32_t mainbar_add_tile( uint16_t x, uint16_t y ) { lv_obj_t *my_tile = lv_cont_create( mainbar, NULL); tile[ tile_entrys - 1 ].tile = my_tile; + tile[ tile_entrys - 1 ].activate_cb = NULL; + tile[ tile_entrys - 1 ].hibernate_cb = NULL; lv_obj_set_size( tile[ tile_entrys - 1 ].tile, LV_HOR_RES, LV_VER_RES); //lv_obj_reset_style_list( tile[ tile_entrys - 1 ].tile, LV_OBJ_PART_MAIN ); lv_obj_add_style( tile[ tile_entrys - 1 ].tile, LV_OBJ_PART_MAIN, &mainbar_style ); @@ -133,6 +136,28 @@ lv_style_t *mainbar_get_slider_style( void ) { return( &mainbar_slider_style ); } +bool mainbar_add_tile_hibernate_cb( uint32_t tile_number, MAINBAR_CALLBACK_FUNC hibernate_cb ) { + if ( tile_number < tile_entrys ) { + tile[ tile_number ].hibernate_cb = hibernate_cb; + return( true ); + } + else { + log_e("tile number %d do not exist", tile_number ); + return( false ); + } +} + +bool mainbar_add_tile_activate_cb( uint32_t tile_number, MAINBAR_CALLBACK_FUNC activate_cb ) { + if ( tile_number < tile_entrys ) { + tile[ tile_number ].activate_cb = activate_cb; + return( true ); + } + else { + log_e("tile number %d do not exist", tile_number ); + return( false ); + } +} + uint32_t mainbar_add_app_tile( uint16_t x, uint16_t y ) { uint32_t retval = -1; @@ -163,7 +188,7 @@ lv_obj_t *mainbar_get_tile_obj( uint32_t tile_number ) { void mainbar_jump_to_maintile( lv_anim_enable_t anim ) { statusbar_hide( false ); if ( tile_entrys != 0 ) { - lv_tileview_set_tile_act( mainbar, 0, 0, anim ); + mainbar_jump_to_tilenumber( 0, anim ); } else { log_e( "main tile do not exist" ); @@ -172,7 +197,19 @@ void mainbar_jump_to_maintile( lv_anim_enable_t anim ) { void mainbar_jump_to_tilenumber( uint32_t tile_number, lv_anim_enable_t anim ) { if ( tile_number < tile_entrys ) { + log_i("jump to tile %d from tile %d", tile_number, current_tile ); lv_tileview_set_tile_act( mainbar, tile_pos_table[ tile_number ].x, tile_pos_table[ tile_number ].y, anim ); + // call hibernate callback for the current tile if exist + if ( tile[ current_tile ].hibernate_cb != NULL ) { + log_i("call hibernate cb for tile: %d", current_tile ); + tile[ current_tile ].hibernate_cb(); + } + // call activate callback for the new tile if exist + if ( tile[ tile_number ].activate_cb != NULL ) { + log_i("call activate cb for tile: %d", tile_number ); + tile[ tile_number ].activate_cb(); + } + current_tile = tile_number; } else { log_e( "tile number %d do not exist", tile_number ); diff --git a/src/gui/mainbar/mainbar.h b/src/gui/mainbar/mainbar.h index cff160e..090bb12 100644 --- a/src/gui/mainbar/mainbar.h +++ b/src/gui/mainbar/mainbar.h @@ -24,8 +24,12 @@ #include + typedef void ( * MAINBAR_CALLBACK_FUNC ) ( void ); + typedef struct { lv_obj_t *tile; + MAINBAR_CALLBACK_FUNC activate_cb; + MAINBAR_CALLBACK_FUNC hibernate_cb; } lv_tile_t; #define MAINBAR_APP_TILE_X_START 0 @@ -88,6 +92,24 @@ * @return lv_obj_t */ lv_obj_t * mainbar_get_tile_obj( uint32_t tile_number ); + /* + * @brief register an hibernate callback function when leave the tile + * + * @param tile_number tile number + * @param hibernate_cb pointer to the hibernate callback function + * + * @return true or false true means registration was success + */ + bool mainbar_add_tile_hibernate_cb( uint32_t tile_number, MAINBAR_CALLBACK_FUNC hibernate_cb ); + /* + * @brief register an activate callback function when enter the tile + * + * @param tile_number tile number + * @param activate_cb pointer to the activate callback function + * + * @return true or false true means registration was success + */ + bool mainbar_add_tile_activate_cb( uint32_t tile_number, MAINBAR_CALLBACK_FUNC activate_cb ); /* * @brief get main tile style * diff --git a/src/gui/mainbar/setup_tile/battery_settings/battery_view.cpp b/src/gui/mainbar/setup_tile/battery_settings/battery_view.cpp index 410a4fd..9394e16 100644 --- a/src/gui/mainbar/setup_tile/battery_settings/battery_view.cpp +++ b/src/gui/mainbar/setup_tile/battery_settings/battery_view.cpp @@ -48,6 +48,8 @@ static void enter_battery_settings_event_cb( lv_obj_t * obj, lv_event_t event ); static void enter_battery_view_event_cb( lv_obj_t * obj, lv_event_t event ); static void exit_battery_view_event_cb( lv_obj_t * obj, lv_event_t event ); void battery_view_update_task( lv_task_t *task ); +void battery_activate_cb( void ); +void battery_hibernate_cb( void ); void battery_view_tile_setup( uint32_t tile_num ) { // get an app tile and copy mainstyle @@ -163,9 +165,20 @@ void battery_view_tile_setup( uint32_t tile_num ) { lv_label_set_text( vbus_view_voltage, "2.4mV"); lv_obj_align( vbus_view_voltage, vbus_voltage_cont, LV_ALIGN_IN_RIGHT_MID, -5, 0 ); + mainbar_add_tile_activate_cb( battery_view_tile_num, battery_activate_cb ); + mainbar_add_tile_activate_cb( battery_view_tile_num + 1, battery_activate_cb ); + mainbar_add_tile_hibernate_cb( battery_view_tile_num, battery_hibernate_cb ); + mainbar_add_tile_hibernate_cb( battery_view_tile_num + 1, battery_hibernate_cb ); +} + +void battery_activate_cb( void ) { battery_view_task = lv_task_create(battery_view_update_task, 1000, LV_TASK_PRIO_LOWEST, NULL ); } +void battery_hibernate_cb( void ) { + lv_task_del( battery_view_task ); +} + static void enter_battery_view_event_cb( lv_obj_t * obj, lv_event_t event ) { switch( event ) { case( LV_EVENT_CLICKED ): mainbar_jump_to_tilenumber( battery_view_tile_num, LV_ANIM_OFF ); diff --git a/src/gui/screenshot.cpp b/src/gui/screenshot.cpp index 5434f42..07a2321 100644 --- a/src/gui/screenshot.cpp +++ b/src/gui/screenshot.cpp @@ -32,7 +32,6 @@ void screenshot_setup( void ) { log_e("error memory alloc"); while(1); } - SPIFFS.remove( SCREENSHOT_FILE_NAME ); } void screenshot_take( void ) { diff --git a/src/hardware/wifictl.cpp b/src/hardware/wifictl.cpp index 1c45198..3e817d6 100644 --- a/src/hardware/wifictl.cpp +++ b/src/hardware/wifictl.cpp @@ -173,7 +173,7 @@ void wifictl_setup( void ) { xTaskCreate( wifictl_Task, /* Function to implement the task */ "wifictl Task", /* Name of the task */ - 5000, /* Stack size in words */ + 2000, /* Stack size in words */ NULL, /* Task input parameter */ 1, /* Priority of the task */ &_wifictl_Task ); /* Task handle. */ @@ -438,11 +438,6 @@ void wifictl_start_wps( void ) { WiFi.mode( WIFI_OFF ); esp_wifi_stop(); - statusbar_style_icon( STATUSBAR_WIFI, STATUSBAR_STYLE_GRAY ); - statusbar_show_icon( STATUSBAR_WIFI ); - statusbar_wifi_set_state( true, "wait for WPS" ); - lv_obj_invalidate( lv_scr_act() ); - powermgm_set_event( POWERMGM_WIFI_WPS_REQUEST ); ESP_ERROR_CHECK( esp_wifi_set_mode( WIFI_MODE_STA ) ); @@ -466,15 +461,11 @@ void wifictl_Task( void * pvParameters ) { } if ( powermgm_get_event( POWERMGM_WIFI_OFF_REQUEST ) ) { - statusbar_wifi_set_state( false, "" ); - lv_obj_invalidate( lv_scr_act() ); WiFi.mode( WIFI_OFF ); esp_wifi_stop(); log_i("request wifictl off done"); } else if ( powermgm_get_event( POWERMGM_WIFI_ON_REQUEST ) ) { - statusbar_wifi_set_state( true, "activate" ); - lv_obj_invalidate( lv_scr_act() ); WiFi.mode( WIFI_STA ); log_i("request wifictl on done"); } diff --git a/src/my-ttgo-watch.ino b/src/my-ttgo-watch.ino index e013ad2..01d4b83 100644 --- a/src/my-ttgo-watch.ino +++ b/src/my-ttgo-watch.ino @@ -85,12 +85,12 @@ void setup() */ wifictl_on(); - // enable to store data in normal heap - heap_caps_malloc_extmem_enable( 16*1024 ); splash_screen_stage_finish( ttgo ); display_set_brightness( display_get_brightness() ); + // enable to store data in normal heap + heap_caps_malloc_extmem_enable( 16*1024 ); blectl_setup(); Serial.printf("Total heap: %d\r\n", ESP.getHeapSize()); diff --git a/ttgo-t-watch2020_v1.ino.bin b/ttgo-t-watch2020_v1.ino.bin index 56d9f47..5af2f73 100644 Binary files a/ttgo-t-watch2020_v1.ino.bin and b/ttgo-t-watch2020_v1.ino.bin differ diff --git a/ttgo-t-watch2020_v1.version.json b/ttgo-t-watch2020_v1.version.json index ef89644..a3590bf 100644 --- a/ttgo-t-watch2020_v1.version.json +++ b/ttgo-t-watch2020_v1.version.json @@ -1 +1 @@ -{"version":"2020081301","host":"http://www.neo-guerillaz.de","file":"ttgo-t-watch2020_v1.ino.bin"} +{"version":"2020081304","host":"http://www.neo-guerillaz.de","file":"ttgo-t-watch2020_v1.ino.bin"}