diff --git a/core/SConscript.bootloader_ci b/core/SConscript.bootloader_ci index 7df885fdfb3..81a89b234bf 100644 --- a/core/SConscript.bootloader_ci +++ b/core/SConscript.bootloader_ci @@ -83,7 +83,7 @@ SOURCE_NANOPB = [ 'vendor/nanopb/pb_encode.c', ] -ui.init_ui(TREZOR_MODEL, "bootloader", CPPDEFINES_MOD, SOURCE_MOD, RUST_UI_FEATURES) +ui.init_ui(TREZOR_MODEL, "bootloader_ci", CPPDEFINES_MOD, SOURCE_MOD, RUST_UI_FEATURES) env = Environment( ENV=os.environ, diff --git a/core/embed/gfx/fonts/font_pixeloperatormono_regular_8.c b/core/embed/gfx/fonts/font_pixeloperatormono_regular_8.c deleted file mode 100644 index f0043024e16..00000000000 --- a/core/embed/gfx/fonts/font_pixeloperatormono_regular_8.c +++ /dev/null @@ -1,216 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -// clang-format off - -// - the first two bytes are width and height of the glyph -// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph -// - the rest is packed 1-bit glyph data - -// NOTE: hand-changed all the advances with 8 to 7 -// NOTE: hand-changed the visuals of "m", "w", "M" and "W" to make it narrower -/* */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_32[] = { 0, 0, 7, 0, 0 }; // width hand-changed from 8 to 7 to have 9px space between words -/* ! */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_33[] = { 1, 7, 7, 2, 7, 250 }; -/* " */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_34[] = { 3, 3, 7, 1, 7, 182, 128 }; -/* # */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_35[] = { 6, 6, 7, 0, 6, 75, 244, 146, 253, 32 }; -/* $ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_36[] = { 5, 7, 7, 0, 7, 35, 168, 226, 248, 128 }; -/* % */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_37[] = { 7, 7, 7, 0, 7, 65, 74, 162, 162, 169, 65, 0 }; -/* & */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_38[] = { 5, 7, 7, 0, 7, 116, 96, 232, 197, 224 }; -/* ' */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_39[] = { 1, 3, 7, 2, 7, 224 }; -/* ( */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_40[] = { 3, 7, 7, 2, 7, 42, 72, 136 }; -/* ) */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_41[] = { 3, 7, 7, 0, 7, 136, 146, 160 }; -/* * */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_42[] = { 5, 5, 7, 0, 7, 37, 93, 82, 0 }; -/* + */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_43[] = { 5, 5, 7, 0, 6, 33, 62, 66, 0 }; -/* , */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_44[] = { 2, 3, 7, 1, 2, 88 }; -/* - */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_45[] = { 4, 1, 7, 1, 4, 240 }; -/* . */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_46[] = { 1, 1, 7, 2, 1, 128 }; -/* / */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_47[] = { 3, 7, 7, 1, 7, 37, 37, 32 }; -/* 0 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_48[] = { 5, 7, 7, 0, 7, 116, 103, 92, 197, 192 }; -/* 1 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_49[] = { 5, 7, 7, 0, 7, 35, 40, 66, 19, 224 }; -/* 2 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_50[] = { 5, 7, 7, 0, 7, 116, 66, 34, 35, 224 }; -/* 3 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_51[] = { 5, 7, 7, 0, 7, 116, 66, 96, 197, 192 }; -/* 4 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_52[] = { 5, 7, 7, 0, 7, 25, 83, 31, 132, 32 }; -/* 5 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_53[] = { 5, 7, 7, 0, 7, 252, 60, 16, 197, 192 }; -/* 6 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_54[] = { 5, 7, 7, 0, 7, 116, 97, 232, 197, 192 }; -/* 7 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_55[] = { 5, 7, 7, 0, 7, 248, 68, 68, 66, 0 }; -/* 8 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_56[] = { 5, 7, 7, 0, 7, 116, 98, 232, 197, 192 }; -/* 9 */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_57[] = { 5, 7, 7, 0, 7, 116, 98, 240, 197, 192 }; -/* : */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_58[] = { 1, 5, 7, 2, 5, 136 }; -/* ; */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_59[] = { 2, 6, 7, 1, 5, 65, 96 }; -/* < */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_60[] = { 3, 5, 7, 1, 6, 42, 34 }; -/* = */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_61[] = { 4, 3, 7, 1, 5, 240, 240 }; -/* > */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_62[] = { 3, 5, 7, 1, 6, 136, 168 }; -/* ? */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_63[] = { 5, 7, 7, 0, 7, 116, 66, 34, 0, 128 }; -/* @ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_64[] = { 7, 8, 7, 0, 7, 125, 6, 109, 90, 179, 160, 62, 0 }; -/* A */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_65[] = { 5, 7, 7, 0, 7, 116, 99, 31, 198, 32 }; -/* B */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_66[] = { 5, 7, 7, 0, 7, 244, 99, 232, 199, 192 }; -/* C */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_67[] = { 5, 7, 7, 0, 7, 116, 97, 8, 69, 192 }; -/* D */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_68[] = { 5, 7, 7, 0, 7, 244, 99, 24, 199, 192 }; -/* E */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_69[] = { 5, 7, 7, 0, 7, 252, 33, 200, 67, 224 }; -/* F */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_70[] = { 5, 7, 7, 0, 7, 252, 33, 200, 66, 0 }; -/* G */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_71[] = { 5, 7, 7, 0, 7, 116, 97, 56, 197, 224 }; -/* H */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_72[] = { 5, 7, 7, 0, 7, 140, 99, 248, 198, 32 }; -/* I */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_73[] = { 5, 7, 7, 0, 7, 249, 8, 66, 19, 224 }; -/* J */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_74[] = { 6, 7, 7, 0, 7, 60, 32, 130, 10, 39, 0 }; -/* K */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_75[] = { 5, 7, 7, 0, 7, 140, 169, 138, 74, 32 }; -/* L */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_76[] = { 5, 7, 7, 0, 7, 132, 33, 8, 67, 224 }; -/* M */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_77[] = { 5, 7, 7, 0, 7, 142, 235, 24, 198, 32 }; -/* N */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_78[] = { 5, 7, 7, 0, 7, 140, 115, 89, 198, 32 }; -/* O */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_79[] = { 5, 7, 7, 0, 7, 116, 99, 24, 197, 192 }; -/* P */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_80[] = { 5, 7, 7, 0, 7, 244, 99, 31, 66, 0 }; -/* Q */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_81[] = { 5, 7, 7, 0, 7, 116, 99, 26, 201, 160 }; -/* R */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_82[] = { 5, 7, 7, 0, 7, 244, 99, 31, 74, 32 }; -/* S */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_83[] = { 5, 7, 7, 0, 7, 116, 96, 224, 197, 192 }; -/* T */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_84[] = { 5, 7, 7, 0, 7, 249, 8, 66, 16, 128 }; -/* U */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_85[] = { 5, 7, 7, 0, 7, 140, 99, 24, 197, 192 }; -/* V */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_86[] = { 5, 7, 7, 0, 7, 140, 99, 24, 168, 128 }; -/* W */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_87[] = { 5, 7, 7, 0, 7, 140, 107, 90, 213, 64 }; -/* X */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_88[] = { 5, 7, 7, 0, 7, 140, 84, 69, 70, 32 }; -/* Y */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_89[] = { 5, 7, 7, 0, 7, 140, 84, 66, 16, 128 }; -/* Z */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_90[] = { 5, 7, 7, 0, 7, 248, 68, 68, 67, 224 }; -/* [ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_91[] = { 3, 7, 7, 2, 7, 242, 73, 56 }; -/* \ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_92[] = { 3, 7, 7, 1, 7, 145, 36, 72 }; -/* ] */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_93[] = { 3, 7, 7, 0, 7, 228, 146, 120 }; -/* ^ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_94[] = { 5, 3, 7, 0, 7, 34, 162 }; -/* _ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_95[] = { 7, 1, 7, 0, 0, 254 }; -/* ` */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_96[] = { 2, 2, 7, 1, 7, 144 }; -/* a */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_97[] = { 5, 5, 7, 0, 5, 112, 95, 23, 128 }; -/* b */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_98[] = { 5, 7, 7, 0, 7, 132, 61, 24, 199, 192 }; -/* c */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_99[] = { 5, 5, 7, 0, 5, 116, 97, 23, 0 }; -/* d */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_100[] = { 5, 7, 7, 0, 7, 8, 95, 24, 197, 224 }; -/* e */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_101[] = { 5, 5, 7, 0, 5, 116, 127, 7, 0 }; -/* f */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_102[] = { 4, 7, 7, 1, 7, 52, 244, 68, 64 }; -/* g */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_103[] = { 5, 6, 7, 0, 5, 124, 98, 240, 184 }; -/* h */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_104[] = { 5, 7, 7, 0, 7, 132, 61, 24, 198, 32 }; -/* i */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_105[] = { 5, 7, 7, 0, 7, 32, 56, 66, 19, 224 }; -/* j */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_106[] = { 5, 8, 7, 0, 7, 8, 14, 16, 134, 46 }; -/* k */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_107[] = { 5, 7, 7, 0, 7, 132, 37, 78, 74, 32 }; -/* l */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_108[] = { 5, 7, 7, 0, 7, 225, 8, 66, 19, 224 }; -/* m */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_109[] = { 5, 5, 7, 0, 5, 213, 107, 24, 128 }; -/* n */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_110[] = { 5, 5, 7, 0, 5, 244, 99, 24, 128 }; -/* o */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_111[] = { 5, 5, 7, 0, 5, 116, 99, 23, 0 }; -/* p */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_112[] = { 5, 6, 7, 0, 5, 244, 99, 232, 64 }; -/* q */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_113[] = { 5, 6, 7, 0, 5, 124, 98, 240, 132 }; -/* r */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_114[] = { 5, 5, 7, 0, 5, 157, 49, 8, 0 }; -/* s */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_115[] = { 5, 5, 7, 0, 5, 116, 28, 31, 0 }; -/* t */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_116[] = { 4, 6, 7, 1, 6, 79, 68, 67 }; -/* u */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_117[] = { 5, 5, 7, 0, 5, 140, 99, 23, 0 }; -/* v */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_118[] = { 5, 5, 7, 0, 5, 140, 98, 162, 0 }; -/* w */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_119[] = { 5, 5, 7, 0, 5, 140, 107, 85, 0 }; -/* x */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_120[] = { 5, 5, 7, 0, 5, 138, 136, 168, 128 }; -/* y */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_121[] = { 5, 6, 7, 0, 5, 140, 98, 240, 184 }; -/* z */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_122[] = { 5, 5, 7, 0, 5, 248, 136, 143, 128 }; -/* { */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_123[] = { 4, 7, 7, 1, 7, 52, 72, 68, 48 }; -/* | */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_124[] = { 1, 7, 7, 2, 7, 254 }; -/* } */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_125[] = { 4, 7, 7, 0, 7, 194, 33, 34, 192 }; -/* ~ */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_126[] = { 6, 2, 7, 0, 7, 102, 96 }; - -/* ? */ static const uint8_t Font_PixelOperatorMono_Regular_8_glyph_nonprintable[] = { 5, 7, 7, 0, 7, 139, 189, 221, 255, 127 }; - -static const uint8_t * const Font_PixelOperatorMono_Regular_8[126 + 1 - 32] = { - Font_PixelOperatorMono_Regular_8_glyph_32, - Font_PixelOperatorMono_Regular_8_glyph_33, - Font_PixelOperatorMono_Regular_8_glyph_34, - Font_PixelOperatorMono_Regular_8_glyph_35, - Font_PixelOperatorMono_Regular_8_glyph_36, - Font_PixelOperatorMono_Regular_8_glyph_37, - Font_PixelOperatorMono_Regular_8_glyph_38, - Font_PixelOperatorMono_Regular_8_glyph_39, - Font_PixelOperatorMono_Regular_8_glyph_40, - Font_PixelOperatorMono_Regular_8_glyph_41, - Font_PixelOperatorMono_Regular_8_glyph_42, - Font_PixelOperatorMono_Regular_8_glyph_43, - Font_PixelOperatorMono_Regular_8_glyph_44, - Font_PixelOperatorMono_Regular_8_glyph_45, - Font_PixelOperatorMono_Regular_8_glyph_46, - Font_PixelOperatorMono_Regular_8_glyph_47, - Font_PixelOperatorMono_Regular_8_glyph_48, - Font_PixelOperatorMono_Regular_8_glyph_49, - Font_PixelOperatorMono_Regular_8_glyph_50, - Font_PixelOperatorMono_Regular_8_glyph_51, - Font_PixelOperatorMono_Regular_8_glyph_52, - Font_PixelOperatorMono_Regular_8_glyph_53, - Font_PixelOperatorMono_Regular_8_glyph_54, - Font_PixelOperatorMono_Regular_8_glyph_55, - Font_PixelOperatorMono_Regular_8_glyph_56, - Font_PixelOperatorMono_Regular_8_glyph_57, - Font_PixelOperatorMono_Regular_8_glyph_58, - Font_PixelOperatorMono_Regular_8_glyph_59, - Font_PixelOperatorMono_Regular_8_glyph_60, - Font_PixelOperatorMono_Regular_8_glyph_61, - Font_PixelOperatorMono_Regular_8_glyph_62, - Font_PixelOperatorMono_Regular_8_glyph_63, - Font_PixelOperatorMono_Regular_8_glyph_64, - Font_PixelOperatorMono_Regular_8_glyph_65, - Font_PixelOperatorMono_Regular_8_glyph_66, - Font_PixelOperatorMono_Regular_8_glyph_67, - Font_PixelOperatorMono_Regular_8_glyph_68, - Font_PixelOperatorMono_Regular_8_glyph_69, - Font_PixelOperatorMono_Regular_8_glyph_70, - Font_PixelOperatorMono_Regular_8_glyph_71, - Font_PixelOperatorMono_Regular_8_glyph_72, - Font_PixelOperatorMono_Regular_8_glyph_73, - Font_PixelOperatorMono_Regular_8_glyph_74, - Font_PixelOperatorMono_Regular_8_glyph_75, - Font_PixelOperatorMono_Regular_8_glyph_76, - Font_PixelOperatorMono_Regular_8_glyph_77, - Font_PixelOperatorMono_Regular_8_glyph_78, - Font_PixelOperatorMono_Regular_8_glyph_79, - Font_PixelOperatorMono_Regular_8_glyph_80, - Font_PixelOperatorMono_Regular_8_glyph_81, - Font_PixelOperatorMono_Regular_8_glyph_82, - Font_PixelOperatorMono_Regular_8_glyph_83, - Font_PixelOperatorMono_Regular_8_glyph_84, - Font_PixelOperatorMono_Regular_8_glyph_85, - Font_PixelOperatorMono_Regular_8_glyph_86, - Font_PixelOperatorMono_Regular_8_glyph_87, - Font_PixelOperatorMono_Regular_8_glyph_88, - Font_PixelOperatorMono_Regular_8_glyph_89, - Font_PixelOperatorMono_Regular_8_glyph_90, - Font_PixelOperatorMono_Regular_8_glyph_91, - Font_PixelOperatorMono_Regular_8_glyph_92, - Font_PixelOperatorMono_Regular_8_glyph_93, - Font_PixelOperatorMono_Regular_8_glyph_94, - Font_PixelOperatorMono_Regular_8_glyph_95, - Font_PixelOperatorMono_Regular_8_glyph_96, - Font_PixelOperatorMono_Regular_8_glyph_97, - Font_PixelOperatorMono_Regular_8_glyph_98, - Font_PixelOperatorMono_Regular_8_glyph_99, - Font_PixelOperatorMono_Regular_8_glyph_100, - Font_PixelOperatorMono_Regular_8_glyph_101, - Font_PixelOperatorMono_Regular_8_glyph_102, - Font_PixelOperatorMono_Regular_8_glyph_103, - Font_PixelOperatorMono_Regular_8_glyph_104, - Font_PixelOperatorMono_Regular_8_glyph_105, - Font_PixelOperatorMono_Regular_8_glyph_106, - Font_PixelOperatorMono_Regular_8_glyph_107, - Font_PixelOperatorMono_Regular_8_glyph_108, - Font_PixelOperatorMono_Regular_8_glyph_109, - Font_PixelOperatorMono_Regular_8_glyph_110, - Font_PixelOperatorMono_Regular_8_glyph_111, - Font_PixelOperatorMono_Regular_8_glyph_112, - Font_PixelOperatorMono_Regular_8_glyph_113, - Font_PixelOperatorMono_Regular_8_glyph_114, - Font_PixelOperatorMono_Regular_8_glyph_115, - Font_PixelOperatorMono_Regular_8_glyph_116, - Font_PixelOperatorMono_Regular_8_glyph_117, - Font_PixelOperatorMono_Regular_8_glyph_118, - Font_PixelOperatorMono_Regular_8_glyph_119, - Font_PixelOperatorMono_Regular_8_glyph_120, - Font_PixelOperatorMono_Regular_8_glyph_121, - Font_PixelOperatorMono_Regular_8_glyph_122, - Font_PixelOperatorMono_Regular_8_glyph_123, - Font_PixelOperatorMono_Regular_8_glyph_124, - Font_PixelOperatorMono_Regular_8_glyph_125, - Font_PixelOperatorMono_Regular_8_glyph_126, -}; - -const font_info_t Font_PixelOperatorMono_Regular_8_info = { - .height = 8, - .max_height = 8, - .baseline = 1, - .glyph_data = Font_PixelOperatorMono_Regular_8, - .glyph_nonprintable = Font_PixelOperatorMono_Regular_8_glyph_nonprintable, -}; diff --git a/core/embed/gfx/fonts/font_pixeloperatormono_regular_8.h b/core/embed/gfx/fonts/font_pixeloperatormono_regular_8.h deleted file mode 100644 index 57331ac6f05..00000000000 --- a/core/embed/gfx/fonts/font_pixeloperatormono_regular_8.h +++ /dev/null @@ -1,10 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -#if TREZOR_FONT_BPP != 1 -#error Wrong TREZOR_FONT_BPP (expected 1) -#endif - -extern const font_info_t Font_PixelOperatorMono_Regular_8_info; diff --git a/core/embed/gfx/fonts/font_roboto_regular_20.c b/core/embed/gfx/fonts/font_roboto_regular_20.c deleted file mode 100644 index d00da9ac889..00000000000 --- a/core/embed/gfx/fonts/font_roboto_regular_20.c +++ /dev/null @@ -1,214 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -// clang-format off - -// - the first two bytes are width and height of the glyph -// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph -// - the rest is packed 4-bit glyph data - -/* */ static const uint8_t Font_Roboto_Regular_20_glyph_32[] = { 0, 0, 5, 0, 0 }; -/* ! */ static const uint8_t Font_Roboto_Regular_20_glyph_33[] = { 3, 14, 5, 1, 14, 245, 8, 245, 8, 245, 7, 245, 7, 245, 7, 244, 7, 244, 7, 244, 6, 244, 6, 243, 5, 0, 0, 0, 0, 244, 8, 244, 7 }; -/* " */ static const uint8_t Font_Roboto_Regular_20_glyph_34[] = { 5, 5, 6, 1, 15, 186, 240, 5, 170, 240, 5, 154, 240, 3, 138, 240, 2, 122, 240, 1 }; -/* # */ static const uint8_t Font_Roboto_Regular_20_glyph_35[] = { 12, 14, 12, 1, 14, 0, 0, 202, 0, 186, 0, 0, 0, 126, 0, 126, 0, 0, 32, 63, 48, 63, 0, 241, 255, 255, 255, 255, 31, 80, 197, 93, 197, 93, 5, 0, 192, 9, 192, 9, 0, 0, 240, 6, 240, 6, 0, 0, 242, 3, 243, 3, 0, 253, 255, 255, 255, 255, 5, 84, 235, 85, 235, 85, 1, 0, 187, 0, 171, 0, 0, 0, 141, 0, 142, 0, 0, 0, 95, 16, 95, 0, 0, 48, 63, 48, 47, 0, 0 }; -/* $ */ static const uint8_t Font_Roboto_Regular_20_glyph_36[] = { 10, 19, 11, 1, 17, 0, 0, 17, 0, 0, 0, 0, 158, 0, 0, 0, 0, 158, 0, 0, 0, 215, 255, 43, 0, 160, 223, 185, 255, 2, 242, 12, 0, 246, 10, 245, 7, 0, 224, 14, 243, 10, 0, 96, 8, 208, 143, 1, 0, 0, 32, 253, 191, 5, 0, 0, 96, 252, 207, 1, 0, 0, 32, 251, 11, 85, 0, 0, 208, 31, 253, 0, 0, 176, 31, 249, 7, 0, 242, 14, 225, 207, 169, 255, 6, 16, 233, 255, 75, 0, 0, 0, 111, 0, 0, 0, 0, 93, 0, 0 }; -/* % */ static const uint8_t Font_Roboto_Regular_20_glyph_37[] = { 13, 14, 15, 1, 14, 144, 238, 7, 0, 0, 0, 0, 232, 84, 111, 0, 0, 0, 0, 125, 0, 185, 0, 193, 1, 0, 111, 0, 216, 0, 187, 0, 0, 125, 0, 185, 96, 31, 0, 0, 232, 84, 111, 241, 6, 0, 0, 144, 238, 8, 187, 0, 0, 0, 0, 0, 96, 46, 233, 126, 0, 0, 0, 241, 149, 78, 246, 5, 0, 0, 187, 240, 6, 160, 10, 0, 96, 30, 240, 4, 144, 12, 0, 241, 5, 240, 6, 160, 10, 0, 165, 0, 144, 77, 245, 5, 0, 0, 0, 0, 233, 126, 0 }; -/* & */ static const uint8_t Font_Roboto_Regular_20_glyph_38[] = { 13, 14, 12, 0, 14, 0, 80, 252, 142, 0, 0, 0, 0, 245, 142, 250, 10, 0, 0, 0, 251, 2, 176, 15, 0, 0, 0, 252, 0, 176, 15, 0, 0, 0, 249, 6, 247, 8, 0, 0, 0, 225, 207, 159, 0, 0, 0, 0, 144, 255, 6, 0, 0, 0, 0, 250, 252, 12, 0, 55, 0, 128, 159, 96, 191, 48, 127, 0, 224, 14, 0, 248, 121, 79, 0, 240, 13, 0, 160, 255, 14, 0, 192, 79, 0, 16, 255, 8, 0, 48, 255, 138, 233, 239, 63, 0, 0, 162, 254, 174, 51, 239, 1 }; -/* ' */ static const uint8_t Font_Roboto_Regular_20_glyph_39[] = { 2, 5, 3, 1, 15, 127, 127, 111, 95, 79 }; -/* ( */ static const uint8_t Font_Roboto_Regular_20_glyph_40[] = { 6, 21, 7, 1, 16, 0, 0, 56, 0, 144, 46, 0, 246, 4, 16, 174, 0, 112, 47, 0, 208, 13, 0, 242, 8, 0, 246, 5, 0, 249, 3, 0, 250, 2, 0, 251, 1, 0, 250, 2, 0, 249, 3, 0, 246, 5, 0, 243, 8, 0, 208, 13, 0, 112, 47, 0, 16, 174, 0, 0, 246, 4, 0, 144, 46, 0, 0, 56 }; -/* ) */ static const uint8_t Font_Roboto_Regular_20_glyph_41[] = { 6, 21, 7, 0, 16, 102, 0, 0, 244, 7, 0, 112, 63, 0, 0, 205, 0, 0, 246, 5, 0, 240, 11, 0, 176, 15, 0, 128, 63, 0, 96, 111, 0, 80, 127, 0, 64, 143, 0, 80, 127, 0, 96, 111, 0, 128, 63, 0, 192, 15, 0, 240, 11, 0, 245, 5, 0, 204, 0, 96, 63, 0, 244, 7, 0, 102, 0, 0 }; -/* * */ static const uint8_t Font_Roboto_Regular_20_glyph_42[] = { 9, 9, 9, 0, 14, 0, 96, 15, 0, 0, 0, 96, 15, 0, 0, 132, 82, 15, 148, 0, 247, 239, 239, 239, 2, 0, 244, 191, 2, 0, 0, 248, 234, 1, 0, 64, 111, 224, 12, 0, 64, 11, 64, 11, 0, 0, 0, 0, 0, 0 }; -/* + */ static const uint8_t Font_Roboto_Regular_20_glyph_43[] = { 11, 12, 11, 0, 13, 0, 0, 32, 1, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 243, 255, 255, 255, 255, 8, 178, 187, 252, 189, 187, 5, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 48, 1, 0, 0 }; -/* , */ static const uint8_t Font_Roboto_Regular_20_glyph_44[] = { 4, 6, 4, 0, 3, 16, 2, 192, 15, 192, 15, 240, 13, 245, 7, 181, 0 }; -/* - */ static const uint8_t Font_Roboto_Regular_20_glyph_45[] = { 6, 2, 6, 0, 7, 250, 255, 47, 116, 119, 7 }; -/* . */ static const uint8_t Font_Roboto_Regular_20_glyph_46[] = { 3, 3, 5, 1, 3, 16, 0, 247, 8, 245, 6 }; -/* / */ static const uint8_t Font_Roboto_Regular_20_glyph_47[] = { 8, 15, 8, 0, 14, 0, 0, 16, 127, 0, 0, 112, 31, 0, 0, 208, 10, 0, 0, 244, 4, 0, 0, 218, 0, 0, 16, 127, 0, 0, 112, 31, 0, 0, 208, 11, 0, 0, 244, 4, 0, 0, 234, 0, 0, 16, 143, 0, 0, 112, 31, 0, 0, 208, 11, 0, 0, 243, 5, 0, 0, 234, 0, 0, 0 }; -/* 0 */ static const uint8_t Font_Roboto_Regular_20_glyph_48[] = { 10, 14, 11, 1, 14, 0, 216, 239, 42, 0, 192, 207, 168, 239, 1, 245, 10, 0, 246, 8, 250, 2, 0, 224, 13, 252, 0, 0, 192, 15, 253, 0, 0, 176, 31, 254, 0, 0, 176, 31, 254, 0, 0, 176, 31, 253, 0, 0, 176, 31, 252, 0, 0, 192, 15, 249, 3, 0, 240, 13, 244, 10, 0, 246, 8, 176, 191, 168, 239, 1, 0, 216, 239, 42, 0 }; -/* 1 */ static const uint8_t Font_Roboto_Regular_20_glyph_49[] = { 7, 14, 11, 1, 14, 0, 16, 215, 2, 80, 251, 255, 2, 245, 158, 252, 2, 83, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2 }; -/* 2 */ static const uint8_t Font_Roboto_Regular_20_glyph_50[] = { 11, 14, 11, 0, 14, 0, 145, 254, 174, 2, 0, 32, 254, 138, 251, 47, 0, 176, 95, 0, 112, 175, 0, 240, 13, 0, 0, 223, 0, 96, 4, 0, 0, 191, 0, 0, 0, 0, 112, 95, 0, 0, 0, 0, 242, 12, 0, 0, 0, 16, 238, 2, 0, 0, 0, 209, 63, 0, 0, 0, 0, 252, 4, 0, 0, 0, 176, 95, 0, 0, 0, 0, 250, 5, 0, 0, 0, 144, 207, 119, 119, 119, 3, 208, 255, 255, 255, 255, 8 }; -/* 3 */ static const uint8_t Font_Roboto_Regular_20_glyph_51[] = { 10, 14, 11, 0, 14, 0, 145, 254, 157, 1, 32, 254, 138, 250, 30, 160, 95, 0, 112, 143, 208, 13, 0, 32, 175, 0, 0, 0, 64, 159, 0, 0, 0, 212, 30, 0, 48, 255, 223, 2, 0, 16, 135, 251, 28, 0, 0, 0, 96, 159, 0, 0, 0, 0, 223, 240, 12, 0, 0, 239, 192, 63, 0, 80, 175, 48, 255, 138, 250, 46, 0, 162, 254, 158, 1 }; -/* 4 */ static const uint8_t Font_Roboto_Regular_20_glyph_52[] = { 11, 14, 11, 0, 14, 0, 0, 0, 247, 13, 0, 0, 0, 32, 255, 13, 0, 0, 0, 192, 254, 13, 0, 0, 0, 247, 245, 13, 0, 0, 32, 175, 240, 13, 0, 0, 208, 14, 240, 13, 0, 0, 248, 4, 240, 13, 0, 48, 159, 0, 240, 13, 0, 208, 13, 0, 240, 13, 0, 246, 255, 255, 255, 255, 12, 115, 119, 119, 247, 126, 5, 0, 0, 0, 240, 13, 0, 0, 0, 0, 240, 13, 0, 0, 0, 0, 240, 13, 0 }; -/* 5 */ static const uint8_t Font_Roboto_Regular_20_glyph_53[] = { 10, 14, 11, 1, 14, 80, 255, 255, 255, 15, 96, 207, 170, 170, 10, 128, 47, 0, 0, 0, 144, 31, 0, 0, 0, 176, 15, 0, 0, 0, 208, 174, 254, 109, 0, 224, 223, 186, 255, 7, 64, 6, 0, 243, 31, 0, 0, 0, 128, 95, 0, 0, 0, 96, 111, 246, 5, 0, 128, 95, 242, 12, 0, 225, 31, 128, 223, 152, 254, 7, 0, 198, 255, 92, 0 }; -/* 6 */ static const uint8_t Font_Roboto_Regular_20_glyph_54[] = { 10, 14, 11, 1, 14, 0, 32, 217, 79, 0, 0, 247, 207, 41, 0, 80, 223, 2, 0, 0, 208, 31, 0, 0, 0, 244, 8, 0, 0, 0, 247, 166, 254, 92, 0, 250, 223, 152, 255, 5, 250, 10, 0, 242, 14, 251, 2, 0, 160, 63, 250, 3, 0, 128, 79, 246, 6, 0, 160, 47, 241, 29, 0, 242, 13, 96, 239, 153, 255, 4, 0, 196, 255, 59, 0 }; -/* 7 */ static const uint8_t Font_Roboto_Regular_20_glyph_55[] = { 11, 14, 11, 0, 14, 244, 255, 255, 255, 255, 5, 113, 119, 119, 119, 253, 2, 0, 0, 0, 16, 175, 0, 0, 0, 0, 112, 63, 0, 0, 0, 0, 224, 12, 0, 0, 0, 0, 246, 5, 0, 0, 0, 0, 222, 0, 0, 0, 0, 80, 111, 0, 0, 0, 0, 208, 14, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 252, 1, 0, 0, 0, 64, 159, 0, 0, 0, 0, 176, 47, 0, 0, 0, 0, 243, 11, 0, 0, 0 }; -/* 8 */ static const uint8_t Font_Roboto_Regular_20_glyph_56[] = { 10, 14, 11, 1, 14, 0, 216, 223, 25, 0, 208, 207, 168, 239, 2, 246, 10, 0, 246, 9, 248, 4, 0, 240, 12, 247, 6, 0, 242, 10, 225, 78, 32, 252, 3, 32, 253, 255, 79, 0, 160, 191, 168, 207, 1, 247, 7, 0, 244, 10, 253, 0, 0, 192, 15, 253, 0, 0, 192, 31, 250, 6, 0, 242, 14, 226, 175, 152, 255, 4, 16, 233, 239, 59, 0 }; -/* 9 */ static const uint8_t Font_Roboto_Regular_20_glyph_57[] = { 10, 14, 11, 0, 14, 0, 145, 254, 125, 0, 16, 254, 139, 253, 10, 144, 111, 0, 176, 79, 224, 14, 0, 32, 175, 240, 12, 0, 0, 223, 224, 14, 0, 0, 238, 160, 111, 0, 112, 239, 32, 255, 138, 236, 223, 0, 178, 255, 43, 191, 0, 0, 0, 48, 143, 0, 0, 0, 160, 63, 0, 0, 0, 248, 11, 0, 128, 234, 207, 1, 0, 240, 190, 5, 0 }; -/* : */ static const uint8_t Font_Roboto_Regular_20_glyph_58[] = { 3, 11, 5, 1, 11, 247, 5, 248, 6, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 248, 6, 247, 5 }; -/* ; */ static const uint8_t Font_Roboto_Regular_20_glyph_59[] = { 4, 14, 4, 0, 11, 160, 46, 192, 63, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 160, 47, 160, 31, 208, 14, 243, 9, 196, 1 }; -/* < */ static const uint8_t Font_Roboto_Regular_20_glyph_60[] = { 9, 9, 10, 0, 11, 0, 0, 0, 112, 9, 0, 0, 113, 254, 10, 0, 129, 255, 125, 1, 145, 255, 75, 0, 0, 244, 78, 0, 0, 0, 145, 255, 74, 0, 0, 0, 129, 255, 125, 1, 0, 0, 113, 254, 10, 0, 0, 0, 112, 9 }; -/* = */ static const uint8_t Font_Roboto_Regular_20_glyph_61[] = { 9, 6, 11, 1, 9, 248, 255, 255, 255, 10, 148, 153, 153, 153, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 10, 148, 153, 153, 153, 5 }; -/* > */ static const uint8_t Font_Roboto_Regular_20_glyph_62[] = { 9, 9, 10, 1, 11, 121, 1, 0, 0, 0, 250, 143, 1, 0, 0, 80, 252, 175, 3, 0, 0, 32, 233, 207, 3, 0, 0, 16, 252, 10, 0, 48, 249, 191, 3, 96, 252, 175, 3, 0, 250, 143, 1, 0, 0, 121, 0, 0, 0, 0 }; -/* ? */ static const uint8_t Font_Roboto_Regular_20_glyph_63[] = { 9, 14, 9, 0, 14, 0, 198, 239, 42, 0, 144, 239, 186, 239, 1, 241, 13, 0, 247, 8, 130, 5, 0, 243, 10, 0, 0, 0, 245, 7, 0, 0, 16, 254, 1, 0, 0, 209, 95, 0, 0, 0, 252, 5, 0, 0, 64, 159, 0, 0, 0, 112, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 95, 0, 0, 0, 96, 95, 0, 0 }; -/* @ */ static const uint8_t Font_Roboto_Regular_20_glyph_64[] = { 17, 18, 18, 1, 14, 0, 0, 96, 236, 239, 124, 1, 0, 0, 0, 48, 254, 105, 101, 233, 62, 0, 0, 0, 244, 10, 0, 0, 0, 248, 3, 0, 16, 158, 0, 0, 0, 0, 144, 12, 0, 160, 13, 0, 178, 223, 8, 0, 78, 0, 241, 5, 32, 190, 100, 111, 0, 153, 0, 246, 0, 176, 13, 32, 79, 0, 214, 0, 201, 0, 242, 6, 48, 63, 0, 228, 0, 172, 0, 246, 2, 80, 31, 0, 244, 0, 157, 0, 248, 0, 96, 15, 0, 229, 0, 156, 0, 249, 0, 128, 15, 0, 184, 0, 187, 0, 248, 1, 225, 15, 0, 110, 0, 247, 0, 243, 124, 188, 127, 163, 13, 0, 242, 5, 112, 238, 7, 232, 175, 1, 0, 160, 13, 0, 0, 0, 0, 0, 0, 0, 16, 206, 1, 0, 0, 0, 0, 0, 0, 0, 210, 159, 69, 116, 44, 0, 0, 0, 0, 0, 182, 254, 206, 24, 0, 0, 0 }; -/* A */ static const uint8_t Font_Roboto_Regular_20_glyph_65[] = { 13, 14, 13, 0, 14, 0, 0, 112, 143, 0, 0, 0, 0, 0, 208, 239, 0, 0, 0, 0, 0, 244, 253, 5, 0, 0, 0, 0, 250, 242, 11, 0, 0, 0, 16, 191, 160, 31, 0, 0, 0, 96, 95, 64, 127, 0, 0, 0, 208, 15, 0, 222, 0, 0, 0, 243, 10, 0, 249, 4, 0, 0, 249, 4, 0, 243, 10, 0, 0, 255, 255, 255, 255, 31, 0, 80, 207, 136, 136, 184, 111, 0, 192, 47, 0, 0, 32, 207, 0, 242, 12, 0, 0, 0, 251, 3, 248, 6, 0, 0, 0, 245, 9 }; -/* B */ static const uint8_t Font_Roboto_Regular_20_glyph_66[] = { 11, 14, 12, 1, 14, 245, 255, 255, 174, 3, 0, 245, 140, 152, 251, 79, 0, 245, 8, 0, 80, 207, 0, 245, 8, 0, 0, 239, 0, 245, 8, 0, 16, 223, 0, 245, 8, 0, 195, 95, 0, 245, 255, 255, 255, 5, 0, 245, 140, 136, 233, 79, 0, 245, 8, 0, 16, 238, 0, 245, 8, 0, 0, 250, 4, 245, 8, 0, 0, 250, 4, 245, 8, 0, 32, 255, 1, 245, 140, 136, 250, 127, 0, 245, 255, 255, 190, 4, 0 }; -/* C */ static const uint8_t Font_Roboto_Regular_20_glyph_67[] = { 12, 14, 13, 1, 14, 0, 112, 253, 207, 6, 0, 32, 253, 156, 234, 191, 0, 192, 111, 0, 0, 251, 6, 245, 10, 0, 0, 242, 13, 250, 4, 0, 0, 160, 12, 252, 1, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 252, 2, 0, 0, 0, 0, 250, 4, 0, 0, 144, 11, 245, 11, 0, 0, 241, 13, 208, 95, 0, 0, 250, 6, 32, 254, 140, 234, 175, 0, 0, 129, 253, 207, 6, 0 }; -/* D */ static const uint8_t Font_Roboto_Regular_20_glyph_68[] = { 11, 14, 13, 1, 14, 245, 255, 239, 91, 0, 0, 245, 140, 168, 254, 27, 0, 245, 8, 0, 128, 191, 0, 245, 8, 0, 0, 250, 4, 245, 8, 0, 0, 243, 10, 245, 8, 0, 0, 240, 13, 245, 8, 0, 0, 224, 14, 245, 8, 0, 0, 224, 14, 245, 8, 0, 0, 240, 13, 245, 8, 0, 0, 243, 10, 245, 8, 0, 0, 250, 4, 245, 8, 0, 128, 191, 0, 245, 140, 168, 254, 27, 0, 245, 255, 239, 91, 0, 0 }; -/* E */ static const uint8_t Font_Roboto_Regular_20_glyph_69[] = { 10, 14, 11, 1, 14, 245, 255, 255, 255, 159, 245, 140, 136, 136, 88, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 255, 255, 255, 11, 245, 140, 136, 136, 5, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 140, 136, 136, 88, 245, 255, 255, 255, 191 }; -/* F */ static const uint8_t Font_Roboto_Regular_20_glyph_70[] = { 10, 14, 11, 1, 14, 245, 255, 255, 255, 127, 245, 140, 136, 136, 56, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 255, 255, 255, 8, 245, 140, 136, 136, 4, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0 }; -/* G */ static const uint8_t Font_Roboto_Regular_20_glyph_71[] = { 12, 14, 14, 1, 14, 0, 129, 253, 207, 7, 0, 32, 254, 156, 218, 207, 0, 208, 111, 0, 0, 250, 8, 245, 10, 0, 0, 240, 14, 249, 4, 0, 0, 64, 5, 252, 2, 0, 0, 0, 0, 252, 1, 0, 255, 255, 47, 252, 1, 0, 136, 216, 47, 251, 2, 0, 0, 176, 47, 248, 5, 0, 0, 176, 47, 243, 12, 0, 0, 176, 47, 176, 143, 0, 0, 226, 47, 16, 252, 157, 184, 255, 7, 0, 96, 236, 223, 58, 0 }; -/* H */ static const uint8_t Font_Roboto_Regular_20_glyph_72[] = { 12, 14, 14, 1, 14, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 255, 255, 255, 255, 159, 245, 140, 136, 136, 168, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159 }; -/* I */ static const uint8_t Font_Roboto_Regular_20_glyph_73[] = { 3, 14, 5, 1, 14, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10 }; -/* J */ static const uint8_t Font_Roboto_Regular_20_glyph_74[] = { 10, 14, 11, 0, 14, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 32, 0, 0, 96, 127, 246, 7, 0, 128, 111, 243, 13, 0, 225, 47, 160, 239, 153, 254, 9, 0, 215, 255, 108, 0 }; -/* K */ static const uint8_t Font_Roboto_Regular_20_glyph_75[] = { 12, 14, 13, 1, 14, 245, 8, 0, 0, 249, 10, 245, 8, 0, 112, 191, 0, 245, 8, 0, 245, 12, 0, 245, 8, 64, 223, 1, 0, 245, 8, 242, 46, 0, 0, 245, 24, 254, 3, 0, 0, 245, 217, 207, 0, 0, 0, 245, 223, 248, 8, 0, 0, 245, 30, 176, 79, 0, 0, 245, 8, 16, 238, 2, 0, 245, 8, 0, 244, 12, 0, 245, 8, 0, 128, 159, 0, 245, 8, 0, 0, 252, 6, 245, 8, 0, 0, 242, 63 }; -/* L */ static const uint8_t Font_Roboto_Regular_20_glyph_76[] = { 10, 14, 11, 1, 14, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 140, 136, 136, 40, 245, 255, 255, 255, 79 }; -/* M */ static const uint8_t Font_Roboto_Regular_20_glyph_77[] = { 15, 14, 17, 1, 14, 245, 79, 0, 0, 0, 0, 253, 12, 245, 191, 0, 0, 0, 48, 255, 12, 245, 255, 1, 0, 0, 160, 255, 12, 245, 251, 8, 0, 0, 241, 236, 12, 245, 230, 14, 0, 0, 247, 245, 12, 245, 134, 95, 0, 0, 237, 240, 12, 245, 23, 191, 0, 64, 143, 240, 12, 245, 7, 250, 2, 160, 47, 240, 12, 245, 8, 244, 8, 241, 11, 241, 12, 245, 8, 208, 14, 248, 4, 241, 12, 245, 8, 112, 95, 222, 0, 241, 12, 245, 8, 16, 239, 127, 0, 241, 12, 245, 8, 0, 249, 31, 0, 241, 12, 245, 8, 0, 243, 10, 0, 241, 12 }; -/* N */ static const uint8_t Font_Roboto_Regular_20_glyph_78[] = { 12, 14, 14, 1, 14, 245, 13, 0, 0, 64, 159, 245, 143, 0, 0, 64, 159, 245, 255, 3, 0, 64, 159, 245, 252, 13, 0, 64, 159, 245, 152, 143, 0, 64, 159, 245, 24, 254, 3, 64, 159, 245, 8, 244, 13, 64, 159, 245, 8, 160, 143, 64, 159, 245, 8, 16, 254, 66, 159, 245, 8, 0, 244, 76, 159, 245, 8, 0, 160, 207, 159, 245, 8, 0, 16, 254, 159, 245, 8, 0, 0, 244, 159, 245, 8, 0, 0, 160, 159 }; -/* O */ static const uint8_t Font_Roboto_Regular_20_glyph_79[] = { 12, 14, 14, 1, 14, 0, 112, 253, 206, 5, 0, 16, 253, 173, 234, 175, 0, 176, 127, 0, 0, 250, 8, 244, 12, 0, 0, 224, 15, 249, 4, 0, 0, 128, 95, 251, 2, 0, 0, 80, 127, 253, 0, 0, 0, 64, 159, 253, 0, 0, 0, 64, 159, 251, 1, 0, 0, 80, 127, 249, 4, 0, 0, 128, 95, 244, 11, 0, 0, 224, 15, 176, 127, 0, 0, 250, 8, 16, 253, 173, 234, 191, 0, 0, 112, 253, 206, 6, 0 }; -/* P */ static const uint8_t Font_Roboto_Regular_20_glyph_80[] = { 11, 14, 13, 1, 14, 245, 255, 255, 207, 7, 0, 245, 140, 136, 234, 207, 0, 245, 8, 0, 0, 251, 7, 245, 8, 0, 0, 242, 12, 245, 8, 0, 0, 240, 13, 245, 8, 0, 0, 244, 11, 245, 8, 0, 81, 254, 5, 245, 255, 255, 255, 127, 0, 245, 140, 136, 87, 1, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0 }; -/* Q */ static const uint8_t Font_Roboto_Regular_20_glyph_81[] = { 12, 17, 14, 1, 14, 0, 129, 253, 190, 5, 0, 32, 254, 173, 251, 159, 0, 208, 111, 0, 16, 251, 6, 245, 10, 0, 0, 241, 14, 250, 3, 0, 0, 144, 79, 253, 1, 0, 0, 96, 111, 254, 0, 0, 0, 80, 127, 254, 0, 0, 0, 80, 143, 253, 0, 0, 0, 96, 111, 250, 3, 0, 0, 144, 79, 245, 9, 0, 0, 225, 15, 208, 111, 0, 0, 251, 7, 32, 253, 157, 234, 175, 0, 0, 129, 253, 254, 143, 0, 0, 0, 0, 16, 252, 28, 0, 0, 0, 0, 144, 46, 0, 0, 0, 0, 0, 0 }; -/* R */ static const uint8_t Font_Roboto_Regular_20_glyph_82[] = { 11, 14, 12, 1, 14, 245, 255, 255, 190, 3, 0, 245, 140, 152, 251, 111, 0, 245, 8, 0, 48, 255, 0, 245, 8, 0, 0, 251, 4, 245, 8, 0, 0, 249, 4, 245, 8, 0, 0, 253, 2, 245, 8, 0, 178, 175, 0, 245, 255, 255, 255, 10, 0, 245, 140, 136, 223, 0, 0, 245, 8, 0, 249, 6, 0, 245, 8, 0, 241, 30, 0, 245, 8, 0, 112, 159, 0, 245, 8, 0, 0, 253, 2, 245, 8, 0, 0, 245, 11 }; -/* S */ static const uint8_t Font_Roboto_Regular_20_glyph_83[] = { 12, 14, 12, 0, 14, 0, 112, 253, 207, 7, 0, 0, 252, 157, 217, 223, 1, 128, 159, 0, 0, 248, 9, 176, 47, 0, 0, 240, 15, 160, 111, 0, 0, 64, 5, 48, 255, 41, 0, 0, 0, 0, 211, 255, 141, 2, 0, 0, 0, 164, 254, 159, 0, 0, 0, 0, 64, 253, 9, 80, 3, 0, 0, 241, 15, 241, 13, 0, 0, 208, 31, 176, 127, 0, 0, 243, 14, 16, 253, 157, 185, 255, 4, 0, 112, 252, 223, 41, 0 }; -/* T */ static const uint8_t Font_Roboto_Regular_20_glyph_84[] = { 12, 14, 12, 0, 14, 248, 255, 255, 255, 255, 127, 132, 136, 248, 143, 136, 72, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0 }; -/* U */ static const uint8_t Font_Roboto_Regular_20_glyph_85[] = { 11, 14, 13, 1, 14, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 249, 4, 0, 0, 244, 10, 247, 6, 0, 0, 246, 8, 242, 46, 0, 16, 254, 2, 112, 255, 154, 250, 127, 0, 0, 180, 254, 190, 3, 0 }; -/* V */ static const uint8_t Font_Roboto_Regular_20_glyph_86[] = { 13, 14, 13, 0, 14, 248, 7, 0, 0, 0, 252, 4, 242, 13, 0, 0, 16, 239, 0, 192, 63, 0, 0, 112, 143, 0, 96, 143, 0, 0, 208, 47, 0, 16, 239, 0, 0, 242, 12, 0, 0, 250, 3, 0, 248, 6, 0, 0, 244, 9, 0, 253, 0, 0, 0, 224, 14, 48, 175, 0, 0, 0, 128, 79, 144, 79, 0, 0, 0, 32, 175, 224, 14, 0, 0, 0, 0, 252, 245, 8, 0, 0, 0, 0, 246, 254, 2, 0, 0, 0, 0, 241, 207, 0, 0, 0, 0, 0, 160, 111, 0, 0, 0 }; -/* W */ static const uint8_t Font_Roboto_Regular_20_glyph_87[] = { 18, 14, 18, 0, 14, 244, 9, 0, 0, 238, 0, 0, 160, 63, 240, 13, 0, 48, 255, 3, 0, 224, 14, 192, 31, 0, 128, 255, 7, 0, 242, 11, 128, 79, 0, 192, 221, 12, 0, 246, 7, 64, 143, 0, 241, 153, 15, 0, 249, 3, 16, 207, 0, 246, 68, 95, 0, 253, 0, 0, 253, 0, 250, 0, 159, 16, 191, 0, 0, 249, 3, 175, 0, 235, 64, 127, 0, 0, 245, 55, 111, 0, 246, 130, 63, 0, 0, 241, 139, 31, 0, 242, 199, 15, 0, 0, 208, 205, 12, 0, 208, 235, 11, 0, 0, 144, 255, 7, 0, 128, 255, 7, 0, 0, 80, 255, 3, 0, 64, 255, 3, 0, 0, 16, 239, 0, 0, 0, 255, 0, 0 }; -/* X */ static const uint8_t Font_Roboto_Regular_20_glyph_88[] = { 13, 14, 13, 0, 14, 225, 47, 0, 0, 144, 159, 0, 80, 207, 0, 0, 243, 14, 0, 0, 251, 6, 0, 252, 4, 0, 0, 241, 30, 96, 175, 0, 0, 0, 96, 159, 241, 30, 0, 0, 0, 0, 252, 252, 5, 0, 0, 0, 0, 242, 191, 0, 0, 0, 0, 0, 243, 207, 0, 0, 0, 0, 0, 253, 251, 6, 0, 0, 0, 128, 143, 224, 31, 0, 0, 0, 242, 14, 80, 191, 0, 0, 0, 252, 5, 0, 251, 6, 0, 112, 191, 0, 0, 242, 30, 0, 242, 47, 0, 0, 128, 175, 0 }; -/* Y */ static const uint8_t Font_Roboto_Regular_20_glyph_89[] = { 12, 14, 12, 0, 14, 249, 8, 0, 0, 144, 143, 241, 31, 0, 0, 241, 30, 112, 159, 0, 0, 249, 6, 0, 253, 2, 32, 223, 0, 0, 245, 10, 160, 79, 0, 0, 192, 47, 243, 12, 0, 0, 48, 191, 251, 3, 0, 0, 0, 250, 175, 0, 0, 0, 0, 242, 31, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0 }; -/* Z */ static const uint8_t Font_Roboto_Regular_20_glyph_90[] = { 12, 14, 12, 0, 14, 240, 255, 255, 255, 255, 14, 128, 136, 136, 136, 252, 11, 0, 0, 0, 16, 254, 2, 0, 0, 0, 176, 111, 0, 0, 0, 0, 247, 10, 0, 0, 0, 32, 239, 1, 0, 0, 0, 208, 79, 0, 0, 0, 0, 249, 8, 0, 0, 0, 64, 223, 0, 0, 0, 0, 225, 47, 0, 0, 0, 0, 250, 7, 0, 0, 0, 96, 191, 0, 0, 0, 0, 241, 175, 136, 136, 136, 24, 242, 255, 255, 255, 255, 63 }; -/* [ */ static const uint8_t Font_Roboto_Regular_20_glyph_91[] = { 5, 19, 5, 1, 16, 249, 255, 1, 249, 121, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 121, 0, 249, 255, 1 }; -/* \ */ static const uint8_t Font_Roboto_Regular_20_glyph_92[] = { 9, 15, 8, 0, 14, 246, 4, 0, 0, 0, 240, 11, 0, 0, 0, 144, 31, 0, 0, 0, 48, 127, 0, 0, 0, 0, 237, 0, 0, 0, 0, 246, 4, 0, 0, 0, 241, 10, 0, 0, 0, 160, 31, 0, 0, 0, 48, 127, 0, 0, 0, 0, 221, 0, 0, 0, 0, 247, 4, 0, 0, 0, 241, 10, 0, 0, 0, 160, 31, 0, 0, 0, 64, 127, 0, 0, 0, 0, 221, 0 }; -/* ] */ static const uint8_t Font_Roboto_Regular_20_glyph_93[] = { 4, 19, 5, 0, 16, 254, 207, 135, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 135, 207, 254, 207 }; -/* ^ */ static const uint8_t Font_Roboto_Regular_20_glyph_94[] = { 8, 7, 8, 0, 14, 0, 160, 15, 0, 0, 241, 111, 0, 0, 247, 221, 0, 0, 190, 246, 3, 80, 79, 240, 10, 192, 14, 144, 31, 242, 8, 32, 127 }; -/* _ */ static const uint8_t Font_Roboto_Regular_20_glyph_95[] = { 9, 2, 9, 0, 0, 255, 255, 255, 255, 15, 119, 119, 119, 119, 7 }; -/* ` */ static const uint8_t Font_Roboto_Regular_20_glyph_96[] = { 5, 3, 6, 0, 15, 225, 47, 0, 48, 223, 0, 0, 213, 4 }; -/* a */ static const uint8_t Font_Roboto_Regular_20_glyph_97[] = { 9, 11, 11, 1, 11, 32, 233, 223, 8, 0, 242, 159, 183, 191, 0, 232, 3, 0, 249, 3, 0, 0, 0, 246, 6, 32, 217, 255, 255, 6, 243, 142, 69, 248, 6, 251, 2, 0, 246, 6, 238, 0, 0, 246, 6, 252, 3, 32, 254, 6, 245, 175, 250, 254, 7, 80, 252, 142, 244, 10 }; -/* b */ static const uint8_t Font_Roboto_Regular_20_glyph_98[] = { 10, 15, 11, 1, 15, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 164, 254, 60, 0, 250, 222, 169, 255, 3, 250, 10, 0, 244, 12, 250, 2, 0, 192, 31, 250, 2, 0, 144, 79, 250, 2, 0, 128, 79, 250, 2, 0, 144, 79, 250, 2, 0, 192, 31, 250, 10, 0, 244, 12, 250, 222, 169, 255, 3, 250, 162, 254, 60, 0 }; -/* c */ static const uint8_t Font_Roboto_Regular_20_glyph_99[] = { 10, 11, 10, 0, 11, 0, 128, 253, 158, 1, 0, 252, 140, 251, 29, 112, 143, 0, 96, 143, 208, 15, 0, 0, 172, 240, 12, 0, 0, 0, 241, 11, 0, 0, 0, 240, 12, 0, 0, 0, 208, 15, 0, 0, 104, 112, 143, 0, 80, 143, 0, 252, 139, 250, 13, 0, 128, 253, 142, 0 }; -/* d */ static const uint8_t Font_Roboto_Regular_20_glyph_100[] = { 10, 15, 11, 0, 15, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 161, 254, 59, 223, 0, 253, 140, 251, 223, 128, 159, 0, 96, 223, 208, 31, 0, 0, 223, 240, 13, 0, 0, 223, 241, 12, 0, 0, 223, 240, 13, 0, 0, 223, 208, 31, 0, 0, 223, 112, 143, 0, 96, 223, 0, 253, 140, 251, 223, 0, 161, 254, 60, 221 }; -/* e */ static const uint8_t Font_Roboto_Regular_20_glyph_101[] = { 10, 11, 11, 0, 11, 0, 96, 253, 158, 1, 0, 250, 139, 251, 13, 96, 127, 0, 112, 127, 192, 14, 0, 0, 191, 240, 255, 255, 255, 223, 241, 125, 119, 119, 103, 240, 13, 0, 0, 0, 208, 47, 0, 0, 0, 112, 191, 0, 0, 58, 0, 252, 141, 232, 79, 0, 112, 253, 190, 3 }; -/* f */ static const uint8_t Font_Roboto_Regular_20_glyph_102[] = { 7, 15, 7, 0, 15, 0, 96, 253, 13, 0, 245, 158, 8, 0, 250, 3, 0, 0, 251, 1, 0, 246, 255, 255, 5, 98, 253, 102, 1, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0 }; -/* g */ static const uint8_t Font_Roboto_Regular_20_glyph_103[] = { 10, 15, 11, 0, 11, 0, 161, 254, 60, 221, 0, 253, 140, 251, 223, 128, 159, 0, 96, 223, 208, 31, 0, 0, 223, 240, 13, 0, 0, 223, 240, 12, 0, 0, 223, 240, 13, 0, 0, 223, 208, 31, 0, 0, 223, 112, 159, 0, 96, 223, 0, 253, 140, 251, 223, 0, 161, 254, 60, 223, 0, 0, 0, 16, 207, 16, 26, 0, 128, 127, 48, 239, 137, 251, 13, 0, 162, 254, 142, 0 }; -/* h */ static const uint8_t Font_Roboto_Regular_20_glyph_104[] = { 9, 15, 11, 1, 15, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 131, 254, 76, 0, 250, 222, 169, 255, 1, 250, 11, 0, 247, 7, 250, 3, 0, 242, 9, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10 }; -/* i */ static const uint8_t Font_Roboto_Regular_20_glyph_105[] = { 3, 16, 5, 1, 16, 0, 0, 247, 5, 246, 4, 0, 0, 0, 0, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5 }; -/* j */ static const uint8_t Font_Roboto_Regular_20_glyph_106[] = { 5, 20, 6, 0, 16, 0, 0, 0, 0, 249, 3, 0, 248, 3, 0, 0, 0, 0, 0, 0, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 250, 2, 150, 239, 0, 249, 60, 0 }; -/* k */ static const uint8_t Font_Roboto_Regular_20_glyph_107[] = { 10, 15, 10, 1, 15, 250, 3, 0, 0, 0, 250, 3, 0, 0, 0, 250, 3, 0, 0, 0, 250, 3, 0, 0, 0, 250, 3, 16, 254, 3, 250, 3, 192, 79, 0, 250, 3, 251, 6, 0, 250, 147, 143, 0, 0, 250, 248, 11, 0, 0, 250, 223, 63, 0, 0, 250, 23, 222, 0, 0, 250, 3, 245, 9, 0, 250, 3, 160, 95, 0, 250, 3, 16, 238, 1, 250, 3, 0, 245, 12 }; -/* l */ static const uint8_t Font_Roboto_Regular_20_glyph_108[] = { 3, 15, 5, 1, 15, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5 }; -/* m */ static const uint8_t Font_Roboto_Regular_20_glyph_109[] = { 16, 11, 18, 1, 11, 250, 162, 254, 76, 96, 253, 141, 0, 250, 206, 185, 255, 250, 154, 253, 9, 250, 8, 0, 248, 63, 0, 224, 15, 250, 2, 0, 243, 12, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47 }; -/* n */ static const uint8_t Font_Roboto_Regular_20_glyph_110[] = { 9, 11, 11, 1, 11, 250, 130, 254, 76, 0, 250, 221, 169, 255, 1, 250, 11, 0, 247, 7, 250, 3, 0, 242, 9, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10 }; -/* o */ static const uint8_t Font_Roboto_Regular_20_glyph_111[] = { 11, 11, 11, 0, 11, 0, 112, 253, 174, 2, 0, 0, 251, 140, 250, 62, 0, 96, 159, 0, 48, 223, 0, 192, 31, 0, 0, 250, 3, 240, 13, 0, 0, 246, 6, 241, 11, 0, 0, 245, 7, 240, 13, 0, 0, 246, 6, 208, 31, 0, 0, 250, 3, 96, 159, 0, 48, 223, 0, 0, 251, 124, 249, 62, 0, 0, 112, 253, 174, 2, 0 }; -/* p */ static const uint8_t Font_Roboto_Regular_20_glyph_112[] = { 10, 15, 11, 1, 11, 250, 162, 254, 60, 0, 250, 206, 185, 255, 3, 250, 9, 0, 246, 12, 250, 2, 0, 208, 31, 250, 2, 0, 160, 63, 250, 2, 0, 128, 79, 250, 2, 0, 160, 63, 250, 2, 0, 208, 31, 250, 7, 0, 245, 11, 250, 191, 167, 255, 3, 250, 165, 254, 60, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0 }; -/* q */ static const uint8_t Font_Roboto_Regular_20_glyph_113[] = { 10, 15, 11, 0, 11, 0, 161, 254, 76, 221, 16, 253, 139, 250, 223, 128, 159, 0, 64, 223, 208, 31, 0, 0, 223, 240, 13, 0, 0, 223, 241, 12, 0, 0, 223, 240, 13, 0, 0, 223, 208, 31, 0, 0, 223, 128, 143, 0, 64, 223, 0, 253, 123, 250, 223, 0, 161, 254, 76, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223 }; -/* r */ static const uint8_t Font_Roboto_Regular_20_glyph_114[] = { 6, 11, 7, 1, 11, 250, 180, 111, 250, 238, 92, 250, 11, 0, 250, 3, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0 }; -/* s */ static const uint8_t Font_Roboto_Regular_20_glyph_115[] = { 10, 11, 10, 0, 11, 0, 162, 254, 108, 0, 32, 255, 137, 253, 9, 144, 79, 0, 208, 31, 160, 63, 0, 32, 20, 64, 255, 73, 0, 0, 0, 179, 255, 175, 1, 0, 0, 64, 250, 13, 112, 5, 0, 160, 79, 224, 47, 0, 160, 63, 80, 239, 137, 251, 12, 0, 179, 254, 125, 0 }; -/* t */ static const uint8_t Font_Roboto_Regular_20_glyph_116[] = { 6, 14, 7, 0, 14, 0, 223, 0, 0, 223, 0, 0, 223, 0, 254, 255, 207, 101, 239, 70, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 222, 0, 0, 251, 138, 0, 194, 191 }; -/* u */ static const uint8_t Font_Roboto_Regular_20_glyph_117[] = { 9, 11, 11, 1, 11, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 249, 3, 0, 242, 10, 247, 7, 0, 249, 10, 241, 175, 201, 255, 10, 48, 252, 191, 243, 10 }; -/* v */ static const uint8_t Font_Roboto_Regular_20_glyph_118[] = { 10, 11, 10, 0, 11, 248, 5, 0, 176, 47, 242, 10, 0, 240, 12, 192, 15, 0, 244, 7, 112, 79, 0, 249, 1, 16, 159, 0, 206, 0, 0, 236, 48, 111, 0, 0, 246, 131, 31, 0, 0, 241, 216, 11, 0, 0, 176, 254, 6, 0, 0, 80, 255, 1, 0, 0, 0, 191, 0, 0 }; -/* w */ static const uint8_t Font_Roboto_Regular_20_glyph_119[] = { 15, 11, 15, 0, 11, 247, 5, 0, 246, 5, 0, 245, 6, 242, 9, 0, 250, 10, 0, 249, 2, 224, 13, 0, 255, 15, 0, 221, 0, 144, 31, 64, 127, 79, 16, 159, 0, 80, 95, 144, 14, 143, 80, 79, 0, 16, 159, 224, 9, 218, 144, 15, 0, 0, 220, 242, 4, 245, 210, 11, 0, 0, 247, 249, 0, 241, 248, 7, 0, 0, 243, 191, 0, 192, 255, 2, 0, 0, 224, 111, 0, 112, 239, 0, 0, 0, 160, 31, 0, 32, 159, 0, 0 }; -/* x */ static const uint8_t Font_Roboto_Regular_20_glyph_120[] = { 10, 11, 10, 0, 11, 242, 13, 0, 241, 31, 128, 127, 0, 250, 6, 0, 253, 49, 207, 0, 0, 244, 201, 47, 0, 0, 160, 255, 8, 0, 0, 48, 255, 1, 0, 0, 176, 255, 9, 0, 0, 245, 185, 63, 0, 16, 238, 33, 223, 0, 160, 111, 0, 248, 8, 244, 12, 0, 208, 47 }; -/* y */ static const uint8_t Font_Roboto_Regular_20_glyph_121[] = { 10, 15, 9, 0, 11, 249, 5, 0, 208, 31, 243, 10, 0, 242, 11, 224, 15, 0, 247, 5, 128, 95, 0, 252, 0, 32, 175, 16, 175, 0, 0, 253, 96, 95, 0, 0, 247, 181, 15, 0, 0, 241, 251, 10, 0, 0, 176, 255, 4, 0, 0, 96, 239, 0, 0, 0, 16, 159, 0, 0, 0, 80, 79, 0, 0, 0, 208, 13, 0, 0, 145, 253, 5, 0, 0, 242, 110, 0, 0, 0 }; -/* z */ static const uint8_t Font_Roboto_Regular_20_glyph_122[] = { 10, 11, 10, 0, 11, 240, 255, 255, 255, 15, 128, 136, 136, 251, 12, 0, 0, 16, 254, 2, 0, 0, 176, 95, 0, 0, 0, 247, 10, 0, 0, 48, 239, 0, 0, 0, 208, 63, 0, 0, 0, 249, 8, 0, 0, 64, 207, 0, 0, 0, 224, 159, 119, 119, 23, 242, 255, 255, 255, 79 }; -/* { */ static const uint8_t Font_Roboto_Regular_20_glyph_123[] = { 7, 20, 7, 0, 16, 0, 0, 179, 5, 0, 64, 207, 2, 0, 208, 14, 0, 0, 242, 9, 0, 0, 244, 8, 0, 0, 244, 8, 0, 0, 244, 7, 0, 0, 246, 6, 0, 48, 253, 1, 0, 246, 79, 0, 0, 162, 191, 0, 0, 0, 249, 3, 0, 0, 245, 7, 0, 0, 244, 7, 0, 0, 244, 8, 0, 0, 243, 8, 0, 0, 241, 10, 0, 0, 192, 31, 0, 0, 48, 223, 2, 0, 0, 178, 5 }; -/* | */ static const uint8_t Font_Roboto_Regular_20_glyph_124[] = { 3, 17, 5, 1, 14, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2 }; -/* } */ static const uint8_t Font_Roboto_Regular_20_glyph_125[] = { 7, 20, 7, 0, 16, 152, 1, 0, 0, 228, 29, 0, 0, 48, 159, 0, 0, 0, 238, 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 250, 2, 0, 0, 244, 27, 0, 0, 112, 255, 1, 0, 209, 143, 0, 0, 248, 5, 0, 0, 251, 1, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 222, 0, 0, 80, 143, 0, 0, 229, 29, 0, 0, 152, 1, 0, 0 }; -/* ~ */ static const uint8_t Font_Roboto_Regular_20_glyph_126[] = { 12, 4, 14, 1, 8, 64, 253, 109, 0, 32, 59, 243, 173, 254, 43, 161, 31, 249, 1, 144, 255, 255, 7, 50, 0, 0, 115, 56, 0 }; - -/* ? */ static const uint8_t Font_Roboto_Regular_20_glyph_nonprintable[] = { 9, 14, 9, 0, 14, 255, 57, 16, 213, 255, 111, 16, 69, 16, 254, 14, 242, 255, 8, 247, 125, 250, 255, 12, 245, 255, 255, 255, 10, 248, 255, 255, 239, 1, 254, 255, 255, 46, 160, 255, 255, 255, 3, 250, 255, 255, 191, 96, 255, 255, 255, 143, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 159, 160, 255, 255, 255, 159, 160, 255, 255 }; - -static const uint8_t * const Font_Roboto_Regular_20[126 + 1 - 32] = { - Font_Roboto_Regular_20_glyph_32, - Font_Roboto_Regular_20_glyph_33, - Font_Roboto_Regular_20_glyph_34, - Font_Roboto_Regular_20_glyph_35, - Font_Roboto_Regular_20_glyph_36, - Font_Roboto_Regular_20_glyph_37, - Font_Roboto_Regular_20_glyph_38, - Font_Roboto_Regular_20_glyph_39, - Font_Roboto_Regular_20_glyph_40, - Font_Roboto_Regular_20_glyph_41, - Font_Roboto_Regular_20_glyph_42, - Font_Roboto_Regular_20_glyph_43, - Font_Roboto_Regular_20_glyph_44, - Font_Roboto_Regular_20_glyph_45, - Font_Roboto_Regular_20_glyph_46, - Font_Roboto_Regular_20_glyph_47, - Font_Roboto_Regular_20_glyph_48, - Font_Roboto_Regular_20_glyph_49, - Font_Roboto_Regular_20_glyph_50, - Font_Roboto_Regular_20_glyph_51, - Font_Roboto_Regular_20_glyph_52, - Font_Roboto_Regular_20_glyph_53, - Font_Roboto_Regular_20_glyph_54, - Font_Roboto_Regular_20_glyph_55, - Font_Roboto_Regular_20_glyph_56, - Font_Roboto_Regular_20_glyph_57, - Font_Roboto_Regular_20_glyph_58, - Font_Roboto_Regular_20_glyph_59, - Font_Roboto_Regular_20_glyph_60, - Font_Roboto_Regular_20_glyph_61, - Font_Roboto_Regular_20_glyph_62, - Font_Roboto_Regular_20_glyph_63, - Font_Roboto_Regular_20_glyph_64, - Font_Roboto_Regular_20_glyph_65, - Font_Roboto_Regular_20_glyph_66, - Font_Roboto_Regular_20_glyph_67, - Font_Roboto_Regular_20_glyph_68, - Font_Roboto_Regular_20_glyph_69, - Font_Roboto_Regular_20_glyph_70, - Font_Roboto_Regular_20_glyph_71, - Font_Roboto_Regular_20_glyph_72, - Font_Roboto_Regular_20_glyph_73, - Font_Roboto_Regular_20_glyph_74, - Font_Roboto_Regular_20_glyph_75, - Font_Roboto_Regular_20_glyph_76, - Font_Roboto_Regular_20_glyph_77, - Font_Roboto_Regular_20_glyph_78, - Font_Roboto_Regular_20_glyph_79, - Font_Roboto_Regular_20_glyph_80, - Font_Roboto_Regular_20_glyph_81, - Font_Roboto_Regular_20_glyph_82, - Font_Roboto_Regular_20_glyph_83, - Font_Roboto_Regular_20_glyph_84, - Font_Roboto_Regular_20_glyph_85, - Font_Roboto_Regular_20_glyph_86, - Font_Roboto_Regular_20_glyph_87, - Font_Roboto_Regular_20_glyph_88, - Font_Roboto_Regular_20_glyph_89, - Font_Roboto_Regular_20_glyph_90, - Font_Roboto_Regular_20_glyph_91, - Font_Roboto_Regular_20_glyph_92, - Font_Roboto_Regular_20_glyph_93, - Font_Roboto_Regular_20_glyph_94, - Font_Roboto_Regular_20_glyph_95, - Font_Roboto_Regular_20_glyph_96, - Font_Roboto_Regular_20_glyph_97, - Font_Roboto_Regular_20_glyph_98, - Font_Roboto_Regular_20_glyph_99, - Font_Roboto_Regular_20_glyph_100, - Font_Roboto_Regular_20_glyph_101, - Font_Roboto_Regular_20_glyph_102, - Font_Roboto_Regular_20_glyph_103, - Font_Roboto_Regular_20_glyph_104, - Font_Roboto_Regular_20_glyph_105, - Font_Roboto_Regular_20_glyph_106, - Font_Roboto_Regular_20_glyph_107, - Font_Roboto_Regular_20_glyph_108, - Font_Roboto_Regular_20_glyph_109, - Font_Roboto_Regular_20_glyph_110, - Font_Roboto_Regular_20_glyph_111, - Font_Roboto_Regular_20_glyph_112, - Font_Roboto_Regular_20_glyph_113, - Font_Roboto_Regular_20_glyph_114, - Font_Roboto_Regular_20_glyph_115, - Font_Roboto_Regular_20_glyph_116, - Font_Roboto_Regular_20_glyph_117, - Font_Roboto_Regular_20_glyph_118, - Font_Roboto_Regular_20_glyph_119, - Font_Roboto_Regular_20_glyph_120, - Font_Roboto_Regular_20_glyph_121, - Font_Roboto_Regular_20_glyph_122, - Font_Roboto_Regular_20_glyph_123, - Font_Roboto_Regular_20_glyph_124, - Font_Roboto_Regular_20_glyph_125, - Font_Roboto_Regular_20_glyph_126, -}; - -const font_info_t Font_Roboto_Regular_20_info = { - .height = 20, - .max_height = 22, - .baseline = 5, - .glyph_data = Font_Roboto_Regular_20, - .glyph_nonprintable = Font_Roboto_Regular_20_glyph_nonprintable, -}; diff --git a/core/embed/gfx/fonts/font_roboto_regular_20.h b/core/embed/gfx/fonts/font_roboto_regular_20.h deleted file mode 100644 index aac00ddffe0..00000000000 --- a/core/embed/gfx/fonts/font_roboto_regular_20.h +++ /dev/null @@ -1,10 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -#if TREZOR_FONT_BPP != 4 -#error Wrong TREZOR_FONT_BPP (expected 4) -#endif - -extern const font_info_t Font_Roboto_Regular_20_info; diff --git a/core/embed/gfx/fonts/font_ttsatoshi_demibold_18.c b/core/embed/gfx/fonts/font_ttsatoshi_demibold_18.c deleted file mode 100644 index faa3c188a88..00000000000 --- a/core/embed/gfx/fonts/font_ttsatoshi_demibold_18.c +++ /dev/null @@ -1,215 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -// clang-format off - -// - the first two bytes are width and height of the glyph -// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph -// - the rest is packed 4-bit glyph data - -// NOTE: numeral chars ('0','1',..,'9') mapped to alternative style glyphs contained in the font (glyph indices: 1298-1307) -/* */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_32[] = { 0, 0, 5, 0, 0 }; -/* ! */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_33[] = { 3, 13, 5, 1, 13, 248, 12, 248, 12, 248, 12, 248, 12, 248, 12, 248, 11, 247, 10, 245, 8, 244, 7, 64, 1, 132, 6, 248, 12, 248, 12 }; -/* " */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_34[] = { 6, 5, 8, 1, 13, 254, 146, 127, 254, 146, 127, 254, 146, 127, 254, 146, 127, 34, 16, 18 }; -/* # */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_35[] = { 13, 13, 13, 0, 13, 0, 0, 248, 8, 243, 13, 0, 0, 0, 251, 5, 246, 10, 0, 0, 0, 254, 1, 250, 6, 0, 112, 255, 255, 255, 255, 255, 8, 176, 255, 255, 255, 255, 255, 5, 0, 144, 127, 64, 207, 0, 0, 0, 192, 79, 112, 159, 0, 0, 0, 240, 31, 160, 127, 0, 0, 247, 255, 255, 255, 255, 159, 0, 251, 255, 255, 255, 255, 95, 0, 0, 249, 7, 243, 12, 0, 0, 0, 252, 4, 247, 9, 0, 0, 0, 255, 1, 250, 6, 0, 0 }; -/* $ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_36[] = { 11, 17, 11, 0, 15, 0, 0, 249, 10, 0, 0, 0, 0, 249, 10, 0, 0, 0, 179, 255, 191, 5, 0, 64, 255, 255, 255, 127, 0, 208, 207, 2, 178, 255, 1, 240, 79, 0, 0, 255, 5, 240, 175, 0, 0, 0, 0, 160, 255, 207, 89, 1, 0, 16, 251, 255, 255, 111, 0, 0, 32, 134, 252, 255, 3, 0, 0, 0, 32, 255, 8, 244, 31, 0, 0, 252, 8, 241, 207, 3, 97, 255, 5, 96, 255, 255, 255, 191, 0, 0, 180, 255, 207, 7, 0, 0, 0, 249, 10, 0, 0, 0, 0, 249, 10, 0, 0 }; -/* % */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_37[] = { 14, 13, 15, 0, 13, 32, 252, 77, 0, 48, 239, 1, 224, 191, 255, 2, 208, 111, 0, 244, 8, 245, 7, 246, 12, 0, 244, 8, 245, 23, 255, 3, 0, 224, 191, 255, 162, 159, 0, 0, 48, 252, 77, 243, 30, 0, 0, 0, 0, 0, 253, 6, 0, 0, 0, 0, 112, 207, 144, 238, 8, 0, 0, 241, 63, 249, 221, 143, 0, 0, 250, 9, 238, 0, 222, 0, 48, 239, 1, 238, 0, 222, 0, 208, 111, 0, 249, 220, 143, 0, 247, 12, 0, 144, 238, 8 }; -/* & */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_38[] = { 12, 13, 12, 0, 13, 0, 179, 238, 42, 0, 0, 32, 255, 255, 239, 1, 0, 128, 239, 50, 255, 6, 0, 144, 175, 0, 253, 7, 0, 64, 255, 116, 255, 3, 0, 0, 248, 255, 95, 0, 0, 0, 246, 255, 5, 0, 0, 112, 255, 253, 12, 243, 15, 241, 127, 192, 191, 247, 13, 243, 15, 16, 253, 255, 6, 241, 127, 0, 246, 239, 0, 160, 255, 255, 255, 255, 7, 0, 198, 239, 58, 243, 111 }; -/* ' */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_39[] = { 3, 5, 4, 1, 13, 254, 2, 254, 2, 254, 2, 254, 2, 34, 0 }; -/* ( */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_40[] = { 6, 17, 6, 1, 13, 0, 181, 10, 0, 254, 5, 112, 223, 0, 208, 127, 0, 242, 47, 0, 246, 13, 0, 248, 11, 0, 250, 9, 0, 251, 8, 0, 250, 9, 0, 249, 11, 0, 247, 12, 0, 243, 31, 0, 224, 95, 0, 128, 191, 0, 32, 255, 3, 0, 248, 12 }; -/* ) */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_41[] = { 6, 17, 6, 0, 13, 180, 10, 0, 208, 111, 0, 96, 239, 0, 0, 255, 5, 0, 250, 9, 0, 246, 13, 0, 244, 15, 0, 242, 31, 0, 240, 63, 0, 241, 47, 0, 243, 15, 0, 245, 14, 0, 249, 10, 0, 254, 6, 64, 255, 1, 192, 159, 0, 245, 30, 0 }; -/* * */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_42[] = { 9, 8, 9, 0, 13, 0, 112, 79, 0, 0, 0, 96, 63, 0, 0, 224, 155, 143, 204, 0, 161, 254, 255, 173, 0, 0, 242, 223, 1, 0, 16, 253, 245, 11, 0, 16, 107, 144, 9, 0, 0, 0, 0, 0, 0 }; -/* + */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_43[] = { 9, 10, 10, 0, 10, 0, 0, 69, 0, 0, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 241, 255, 255, 255, 15, 241, 255, 255, 255, 15, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 0, 0, 68, 0, 0 }; -/* , */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_44[] = { 4, 5, 5, 0, 3, 16, 18, 224, 143, 240, 63, 241, 14, 243, 10 }; -/* - */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_45[] = { 7, 3, 8, 0, 7, 0, 0, 0, 0, 243, 255, 255, 14, 243, 255, 255, 14 }; -/* . */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_46[] = { 3, 3, 5, 1, 3, 135, 4, 254, 9, 254, 9 }; -/* / */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_47[] = { 8, 17, 7, 0, 13, 0, 0, 178, 11, 0, 0, 246, 13, 0, 0, 251, 8, 0, 0, 255, 3, 0, 80, 239, 0, 0, 144, 175, 0, 0, 224, 95, 0, 0, 243, 31, 0, 0, 247, 12, 0, 0, 252, 7, 0, 16, 255, 2, 0, 96, 223, 0, 0, 160, 159, 0, 0, 240, 79, 0, 0, 244, 15, 0, 0, 248, 11, 0, 0, 253, 6, 0, 0 }; -/* 0 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_48[] = { 11, 13, 10, 0, 13, 0, 145, 237, 91, 0, 0, 64, 254, 255, 255, 9, 0, 224, 239, 87, 251, 95, 0, 247, 47, 0, 176, 223, 0, 251, 10, 0, 48, 255, 2, 253, 7, 0, 0, 255, 4, 255, 5, 0, 0, 255, 6, 253, 7, 0, 0, 255, 4, 251, 10, 0, 48, 255, 2, 247, 47, 0, 176, 239, 0, 224, 239, 86, 251, 95, 0, 64, 254, 255, 255, 9, 0, 0, 162, 237, 91, 0, 0 }; -/* 1 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_49[] = { 9, 13, 10, 1, 13, 0, 224, 127, 0, 0, 253, 255, 127, 0, 0, 253, 255, 127, 0, 0, 67, 228, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 84, 229, 175, 85, 2, 253, 255, 255, 255, 8, 253, 255, 255, 255, 8 }; -/* 2 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_50[] = { 10, 13, 10, 0, 13, 0, 145, 253, 92, 0, 16, 254, 255, 255, 8, 160, 255, 87, 252, 31, 224, 127, 0, 243, 95, 112, 39, 0, 241, 111, 0, 0, 0, 248, 47, 0, 0, 112, 255, 8, 0, 0, 247, 175, 0, 0, 112, 255, 10, 0, 0, 247, 175, 0, 0, 112, 255, 77, 51, 35, 224, 255, 255, 255, 159, 224, 255, 255, 255, 159 }; -/* 3 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_51[] = { 10, 13, 10, 0, 13, 0, 162, 253, 108, 0, 48, 255, 255, 255, 10, 208, 223, 87, 250, 63, 160, 58, 0, 240, 111, 0, 0, 0, 247, 63, 0, 0, 250, 255, 7, 0, 0, 250, 255, 6, 0, 0, 32, 248, 63, 16, 1, 0, 208, 127, 242, 63, 0, 208, 143, 224, 223, 70, 250, 95, 80, 255, 255, 255, 11, 0, 179, 254, 108, 0 }; -/* 4 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_52[] = { 11, 13, 10, 0, 13, 0, 0, 243, 255, 10, 0, 0, 0, 252, 255, 10, 0, 0, 80, 255, 255, 10, 0, 0, 208, 143, 251, 10, 0, 0, 247, 30, 251, 10, 0, 16, 254, 7, 251, 10, 0, 128, 239, 0, 251, 10, 0, 241, 95, 0, 251, 10, 0, 247, 255, 255, 255, 255, 1, 247, 255, 255, 255, 255, 1, 33, 34, 34, 252, 43, 0, 0, 0, 0, 251, 10, 0, 0, 0, 0, 251, 10, 0 }; -/* 5 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_53[] = { 10, 13, 10, 0, 13, 96, 255, 255, 255, 15, 112, 255, 255, 255, 15, 144, 191, 68, 68, 4, 160, 159, 0, 0, 0, 192, 127, 16, 0, 0, 224, 239, 255, 175, 1, 240, 255, 255, 255, 13, 128, 104, 2, 246, 127, 0, 0, 0, 176, 175, 146, 41, 0, 192, 159, 240, 223, 85, 250, 79, 80, 255, 255, 255, 10, 0, 179, 254, 108, 0 }; -/* 6 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_54[] = { 10, 13, 10, 0, 13, 0, 0, 243, 127, 0, 0, 0, 253, 13, 0, 0, 128, 255, 3, 0, 0, 243, 143, 0, 0, 0, 253, 255, 108, 0, 112, 255, 255, 255, 9, 224, 239, 53, 250, 63, 243, 79, 0, 208, 143, 243, 31, 0, 160, 175, 241, 79, 0, 208, 143, 192, 239, 53, 250, 63, 32, 255, 255, 255, 9, 0, 161, 253, 92, 0 }; -/* 7 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_55[] = { 10, 13, 10, 0, 13, 240, 255, 255, 255, 111, 240, 255, 255, 255, 111, 64, 68, 68, 248, 79, 0, 0, 0, 251, 13, 0, 0, 32, 255, 7, 0, 0, 128, 255, 1, 0, 0, 224, 175, 0, 0, 0, 245, 63, 0, 0, 0, 252, 13, 0, 0, 32, 255, 7, 0, 0, 144, 255, 1, 0, 0, 224, 175, 0, 0, 0, 246, 63, 0, 0 }; -/* 8 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_56[] = { 10, 13, 10, 0, 13, 0, 162, 254, 108, 0, 48, 255, 255, 255, 10, 192, 223, 36, 248, 63, 240, 111, 0, 240, 111, 176, 207, 19, 247, 47, 32, 253, 255, 255, 6, 32, 253, 255, 255, 7, 208, 191, 2, 246, 79, 242, 47, 0, 176, 159, 243, 47, 0, 176, 175, 240, 207, 19, 247, 111, 80, 255, 255, 255, 12, 0, 179, 254, 124, 0 }; -/* 9 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_57[] = { 10, 13, 10, 0, 13, 0, 161, 237, 92, 0, 32, 255, 255, 255, 8, 192, 239, 53, 250, 63, 241, 79, 0, 208, 143, 243, 31, 0, 160, 175, 241, 79, 0, 208, 175, 192, 239, 53, 250, 111, 48, 255, 255, 255, 14, 0, 162, 254, 255, 4, 0, 0, 242, 159, 0, 0, 0, 252, 14, 0, 0, 96, 255, 4, 0, 0, 241, 175, 0, 0 }; -/* : */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_58[] = { 3, 10, 5, 1, 10, 254, 9, 254, 9, 135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 135, 4, 254, 9, 254, 9 }; -/* ; */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_59[] = { 4, 12, 5, 0, 10, 208, 175, 208, 175, 112, 88, 0, 0, 0, 0, 0, 0, 0, 0, 224, 143, 240, 79, 241, 15, 243, 11, 32, 1 }; -/* < */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_60[] = { 9, 9, 10, 0, 10, 0, 0, 0, 0, 3, 0, 0, 16, 231, 14, 0, 64, 251, 255, 13, 112, 254, 255, 91, 0, 240, 255, 23, 0, 0, 240, 255, 142, 2, 0, 16, 215, 255, 207, 6, 0, 0, 164, 255, 14, 0, 0, 0, 113, 11 }; -/* = */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_61[] = { 8, 6, 10, 1, 8, 251, 255, 255, 175, 251, 255, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 175, 251, 255, 255, 175 }; -/* > */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_62[] = { 9, 9, 10, 0, 10, 48, 0, 0, 0, 0, 240, 125, 1, 0, 0, 240, 255, 175, 4, 0, 0, 181, 255, 223, 6, 0, 0, 129, 255, 14, 0, 32, 232, 255, 14, 112, 252, 255, 109, 0, 240, 255, 57, 0, 0, 192, 6, 0, 0, 0 }; -/* ? */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_63[] = { 9, 13, 10, 0, 13, 0, 199, 223, 26, 0, 176, 255, 255, 255, 2, 244, 175, 116, 255, 10, 214, 12, 0, 249, 13, 0, 0, 0, 252, 12, 0, 0, 194, 255, 6, 0, 16, 254, 95, 0, 0, 112, 255, 2, 0, 0, 144, 191, 0, 0, 0, 32, 36, 0, 0, 0, 80, 104, 0, 0, 0, 160, 191, 0, 0, 0, 160, 191, 0, 0 }; -/* @ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_64[] = { 17, 15, 17, 0, 13, 0, 0, 80, 235, 239, 124, 0, 0, 0, 0, 16, 251, 255, 255, 255, 61, 0, 0, 0, 226, 223, 21, 16, 180, 255, 5, 0, 0, 251, 10, 0, 0, 0, 246, 30, 0, 80, 239, 0, 216, 174, 252, 144, 175, 0, 192, 95, 160, 239, 252, 255, 16, 255, 0, 240, 31, 242, 29, 96, 255, 0, 254, 2, 241, 14, 245, 8, 0, 255, 0, 251, 4, 240, 15, 245, 9, 0, 255, 0, 252, 2, 224, 47, 241, 79, 145, 255, 67, 239, 0, 144, 159, 128, 255, 255, 255, 255, 127, 0, 16, 255, 5, 165, 140, 113, 172, 5, 0, 0, 245, 175, 3, 0, 0, 0, 0, 0, 0, 80, 254, 255, 222, 221, 1, 0, 0, 0, 0, 112, 236, 255, 255, 2, 0, 0 }; -/* A */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_65[] = { 13, 13, 12, 0, 13, 0, 0, 250, 255, 1, 0, 0, 0, 0, 255, 255, 7, 0, 0, 0, 80, 255, 253, 12, 0, 0, 0, 176, 207, 245, 47, 0, 0, 0, 241, 127, 240, 127, 0, 0, 0, 246, 47, 176, 223, 0, 0, 0, 252, 12, 96, 255, 2, 0, 16, 255, 7, 16, 255, 8, 0, 112, 255, 255, 255, 255, 13, 0, 192, 255, 255, 255, 255, 63, 0, 242, 143, 34, 34, 243, 143, 0, 247, 31, 0, 0, 176, 239, 0, 253, 12, 0, 0, 80, 255, 3 }; -/* B */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_66[] = { 10, 13, 12, 1, 13, 250, 255, 255, 191, 3, 250, 255, 255, 255, 47, 250, 27, 17, 228, 159, 250, 10, 0, 160, 207, 250, 10, 0, 227, 159, 250, 255, 255, 255, 30, 250, 255, 255, 255, 29, 250, 27, 17, 227, 159, 250, 10, 0, 128, 223, 250, 10, 0, 128, 239, 250, 11, 0, 227, 191, 250, 255, 255, 255, 79, 250, 255, 255, 207, 4 }; -/* C */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_67[] = { 13, 13, 13, 0, 13, 0, 0, 183, 238, 90, 0, 0, 0, 194, 255, 255, 255, 11, 0, 0, 253, 159, 85, 251, 159, 0, 112, 255, 3, 0, 128, 255, 3, 208, 159, 0, 0, 0, 153, 4, 240, 79, 0, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 0, 240, 79, 0, 0, 0, 0, 0, 208, 159, 0, 0, 0, 170, 5, 112, 255, 3, 0, 128, 255, 3, 0, 253, 159, 85, 250, 159, 0, 0, 194, 255, 255, 255, 10, 0, 0, 0, 183, 254, 108, 0, 0 }; -/* D */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_68[] = { 12, 13, 13, 1, 13, 250, 255, 239, 90, 0, 0, 250, 255, 255, 255, 27, 0, 250, 76, 100, 250, 191, 0, 250, 10, 0, 96, 255, 5, 250, 10, 0, 0, 251, 11, 250, 10, 0, 0, 247, 14, 250, 10, 0, 0, 245, 15, 250, 10, 0, 0, 247, 14, 250, 10, 0, 0, 251, 11, 250, 10, 0, 96, 255, 5, 250, 60, 84, 250, 191, 0, 250, 255, 255, 255, 27, 0, 250, 255, 239, 107, 0, 0 }; -/* E */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_69[] = { 9, 13, 11, 1, 13, 250, 255, 255, 255, 12, 250, 255, 255, 255, 12, 250, 43, 34, 34, 2, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 43, 34, 34, 1, 250, 255, 255, 255, 6, 250, 255, 255, 255, 6, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 43, 34, 34, 2, 250, 255, 255, 255, 12, 250, 255, 255, 255, 12 }; -/* F */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_70[] = { 9, 13, 11, 1, 13, 250, 255, 255, 255, 11, 250, 255, 255, 255, 11, 250, 43, 34, 34, 1, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 255, 255, 255, 4, 250, 255, 255, 255, 4, 250, 43, 34, 34, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0 }; -/* G */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_71[] = { 13, 13, 14, 0, 13, 0, 0, 183, 238, 91, 0, 0, 0, 194, 255, 255, 255, 11, 0, 0, 253, 159, 85, 251, 159, 0, 112, 255, 4, 0, 144, 255, 3, 208, 159, 0, 0, 0, 136, 4, 240, 79, 0, 0, 0, 0, 0, 242, 47, 0, 160, 204, 204, 8, 240, 79, 0, 192, 255, 255, 10, 208, 143, 0, 0, 0, 252, 10, 128, 255, 3, 0, 80, 255, 10, 0, 253, 159, 85, 250, 255, 10, 0, 194, 255, 255, 255, 251, 10, 0, 0, 183, 238, 75, 242, 10 }; -/* H */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_72[] = { 11, 13, 13, 1, 13, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 255, 255, 255, 255, 11, 250, 255, 255, 255, 255, 11, 250, 92, 85, 85, 252, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11 }; -/* I */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_73[] = { 3, 13, 5, 1, 13, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10 }; -/* J */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_74[] = { 7, 13, 7, 0, 13, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 51, 148, 255, 1, 253, 255, 239, 0, 253, 255, 77, 0 }; -/* K */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_75[] = { 11, 13, 11, 1, 13, 250, 10, 0, 245, 143, 0, 250, 10, 32, 255, 12, 0, 250, 10, 192, 239, 1, 0, 250, 10, 249, 79, 0, 0, 250, 90, 255, 8, 0, 0, 250, 236, 207, 0, 0, 0, 250, 255, 79, 0, 0, 0, 250, 219, 239, 1, 0, 0, 250, 42, 255, 11, 0, 0, 250, 10, 245, 143, 0, 0, 250, 10, 144, 255, 4, 0, 250, 10, 0, 252, 46, 0, 250, 10, 0, 225, 223, 0 }; -/* L */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_76[] = { 9, 13, 10, 1, 13, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 60, 51, 51, 2, 250, 255, 255, 255, 9, 250, 255, 255, 255, 9 }; -/* M */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_77[] = { 15, 13, 17, 1, 13, 250, 255, 4, 0, 0, 251, 255, 3, 250, 255, 9, 0, 16, 255, 255, 3, 250, 255, 14, 0, 96, 255, 255, 3, 250, 255, 63, 0, 176, 255, 255, 3, 250, 202, 159, 0, 240, 111, 255, 3, 250, 106, 239, 0, 245, 47, 255, 3, 250, 26, 255, 3, 250, 42, 255, 3, 250, 10, 252, 8, 255, 37, 255, 3, 250, 10, 247, 93, 255, 32, 255, 3, 250, 10, 242, 239, 175, 32, 255, 3, 250, 10, 192, 255, 95, 32, 255, 3, 250, 10, 112, 255, 15, 32, 255, 3, 250, 10, 32, 255, 11, 32, 255, 3 }; -/* N */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_78[] = { 11, 13, 13, 1, 13, 250, 191, 0, 0, 248, 12, 250, 255, 3, 0, 248, 12, 250, 255, 12, 0, 248, 12, 250, 255, 63, 0, 248, 12, 250, 170, 207, 0, 248, 12, 250, 42, 255, 4, 248, 12, 250, 10, 250, 12, 248, 12, 250, 10, 242, 79, 248, 12, 250, 10, 160, 207, 249, 12, 250, 10, 32, 255, 255, 12, 250, 10, 0, 249, 255, 12, 250, 10, 0, 242, 255, 12, 250, 10, 0, 144, 255, 12 }; -/* O */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_79[] = { 14, 13, 14, 0, 13, 0, 0, 183, 238, 90, 0, 0, 0, 194, 255, 255, 255, 27, 0, 0, 253, 159, 101, 250, 191, 0, 112, 255, 3, 0, 96, 255, 5, 208, 159, 0, 0, 0, 251, 10, 240, 79, 0, 0, 0, 247, 13, 242, 47, 0, 0, 0, 245, 15, 240, 79, 0, 0, 0, 247, 13, 208, 159, 0, 0, 0, 251, 10, 112, 255, 3, 0, 80, 255, 5, 0, 253, 159, 85, 250, 191, 0, 0, 194, 255, 255, 255, 27, 0, 0, 0, 183, 238, 107, 0, 0 }; -/* P */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_80[] = { 10, 13, 12, 1, 13, 250, 255, 255, 174, 2, 250, 255, 255, 255, 31, 250, 76, 68, 247, 159, 250, 10, 0, 128, 223, 250, 10, 0, 96, 239, 250, 10, 0, 128, 223, 250, 60, 67, 246, 159, 250, 255, 255, 255, 31, 250, 255, 255, 190, 2, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0 }; -/* Q */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_81[] = { 14, 14, 14, 0, 13, 0, 0, 183, 238, 90, 0, 0, 0, 194, 255, 255, 255, 27, 0, 0, 253, 159, 101, 250, 191, 0, 112, 255, 3, 0, 96, 255, 5, 208, 159, 0, 0, 0, 251, 10, 240, 79, 0, 0, 0, 247, 13, 242, 47, 0, 0, 0, 245, 15, 240, 79, 0, 0, 0, 247, 15, 208, 159, 0, 119, 6, 251, 11, 112, 255, 3, 244, 175, 255, 5, 0, 253, 159, 165, 255, 175, 0, 0, 194, 255, 255, 255, 95, 0, 0, 0, 183, 238, 186, 255, 2, 0, 0, 0, 0, 0, 185, 10 }; -/* R */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_82[] = { 11, 13, 12, 1, 13, 250, 255, 255, 190, 2, 0, 250, 255, 255, 255, 47, 0, 250, 76, 68, 230, 191, 0, 250, 10, 0, 112, 239, 0, 250, 10, 0, 80, 255, 0, 250, 10, 0, 194, 207, 0, 250, 255, 255, 255, 79, 0, 250, 255, 255, 239, 5, 0, 250, 107, 255, 11, 0, 0, 250, 10, 247, 127, 0, 0, 250, 10, 160, 255, 5, 0, 250, 10, 0, 252, 63, 0, 250, 10, 0, 225, 239, 1 }; -/* S */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_83[] = { 11, 13, 11, 0, 13, 0, 145, 253, 189, 3, 0, 48, 255, 255, 255, 111, 0, 192, 223, 53, 213, 255, 1, 240, 95, 0, 16, 255, 4, 240, 159, 0, 0, 34, 1, 160, 255, 174, 55, 0, 0, 16, 250, 255, 255, 78, 0, 0, 16, 116, 250, 255, 2, 32, 2, 0, 16, 254, 7, 243, 47, 0, 0, 252, 8, 224, 239, 54, 147, 255, 5, 64, 255, 255, 255, 191, 0, 0, 145, 253, 206, 6, 0 }; -/* T */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_84[] = { 11, 13, 11, 0, 13, 250, 255, 255, 255, 255, 3, 250, 255, 255, 255, 255, 3, 66, 68, 254, 73, 68, 1, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0 }; -/* U */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_85[] = { 11, 13, 13, 1, 13, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 249, 11, 0, 0, 252, 8, 247, 63, 0, 48, 255, 6, 225, 255, 71, 247, 239, 0, 64, 255, 255, 255, 79, 0, 0, 162, 253, 157, 1, 0 }; -/* V */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_86[] = { 13, 13, 12, 0, 13, 252, 13, 0, 0, 160, 255, 0, 246, 47, 0, 0, 224, 175, 0, 241, 127, 0, 0, 244, 79, 0, 192, 207, 0, 0, 249, 15, 0, 96, 255, 2, 0, 254, 10, 0, 16, 255, 7, 48, 255, 5, 0, 0, 252, 12, 128, 255, 0, 0, 0, 246, 31, 208, 175, 0, 0, 0, 241, 111, 242, 95, 0, 0, 0, 192, 191, 248, 15, 0, 0, 0, 96, 255, 255, 10, 0, 0, 0, 16, 255, 255, 5, 0, 0, 0, 0, 252, 255, 0, 0, 0 }; -/* W */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_87[] = { 18, 13, 18, 0, 13, 252, 12, 0, 160, 255, 4, 0, 242, 111, 248, 15, 0, 224, 255, 8, 0, 246, 47, 245, 79, 0, 242, 255, 12, 0, 250, 14, 241, 143, 0, 246, 255, 15, 0, 254, 11, 208, 191, 0, 250, 216, 79, 16, 255, 7, 144, 255, 0, 253, 164, 143, 80, 255, 3, 80, 255, 19, 255, 96, 207, 144, 255, 0, 16, 255, 87, 207, 32, 255, 208, 191, 0, 0, 253, 154, 143, 0, 254, 244, 127, 0, 0, 249, 255, 79, 0, 250, 254, 63, 0, 0, 245, 255, 31, 0, 247, 255, 15, 0, 0, 242, 255, 13, 0, 243, 255, 12, 0, 0, 224, 255, 9, 0, 240, 255, 8, 0 }; -/* X */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_88[] = { 13, 13, 13, 0, 13, 144, 255, 3, 0, 160, 255, 2, 0, 254, 12, 0, 244, 127, 0, 0, 245, 127, 0, 254, 12, 0, 0, 160, 255, 146, 255, 3, 0, 0, 16, 254, 253, 143, 0, 0, 0, 0, 246, 255, 13, 0, 0, 0, 0, 241, 255, 8, 0, 0, 0, 0, 249, 255, 47, 0, 0, 0, 64, 255, 233, 207, 0, 0, 0, 208, 223, 80, 255, 6, 0, 0, 249, 63, 0, 251, 47, 0, 48, 255, 9, 0, 241, 191, 0, 208, 239, 0, 0, 96, 255, 6 }; -/* Y */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_89[] = { 13, 13, 12, 0, 13, 224, 175, 0, 0, 128, 255, 1, 96, 255, 3, 0, 241, 143, 0, 0, 253, 12, 0, 249, 14, 0, 0, 244, 79, 32, 255, 7, 0, 0, 192, 207, 160, 239, 0, 0, 0, 48, 255, 249, 111, 0, 0, 0, 0, 251, 255, 13, 0, 0, 0, 0, 242, 255, 4, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0 }; -/* Z */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_90[] = { 11, 13, 11, 0, 13, 244, 255, 255, 255, 255, 2, 244, 255, 255, 255, 255, 2, 65, 68, 68, 247, 223, 0, 0, 0, 0, 253, 47, 0, 0, 0, 160, 255, 6, 0, 0, 0, 245, 175, 0, 0, 0, 32, 255, 13, 0, 0, 0, 208, 255, 3, 0, 0, 0, 249, 111, 0, 0, 0, 80, 255, 10, 0, 0, 0, 225, 255, 53, 51, 51, 0, 245, 255, 255, 255, 255, 3, 245, 255, 255, 255, 255, 3 }; -/* [ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_91[] = { 5, 18, 7, 1, 14, 0, 0, 0, 248, 255, 14, 248, 255, 14, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 11, 0, 248, 255, 14, 248, 255, 14 }; -/* \ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_92[] = { 8, 17, 7, 0, 13, 186, 4, 0, 0, 250, 9, 0, 0, 245, 14, 0, 0, 241, 63, 0, 0, 192, 127, 0, 0, 112, 207, 0, 0, 32, 255, 1, 0, 0, 253, 6, 0, 0, 249, 10, 0, 0, 244, 15, 0, 0, 240, 79, 0, 0, 160, 143, 0, 0, 96, 223, 0, 0, 16, 255, 2, 0, 0, 252, 7, 0, 0, 248, 11, 0, 0, 243, 15 }; -/* ] */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_93[] = { 6, 18, 7, 0, 14, 0, 0, 0, 245, 255, 31, 245, 255, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 242, 31, 245, 255, 31, 245, 255, 31 }; -/* ^ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_94[] = { 8, 6, 8, 0, 13, 0, 247, 127, 0, 0, 253, 223, 0, 48, 207, 252, 3, 144, 111, 246, 9, 224, 15, 240, 14, 32, 1, 16, 2 }; -/* _ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_95[] = { 9, 3, 8, 0, 0, 0, 0, 0, 0, 0, 245, 255, 255, 255, 5, 245, 255, 255, 255, 5 }; -/* ` */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_96[] = { 5, 3, 5, 0, 13, 226, 63, 0, 64, 223, 0, 0, 149, 3 }; -/* a */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_97[] = { 9, 10, 10, 0, 10, 0, 180, 238, 42, 0, 64, 255, 239, 255, 1, 176, 191, 0, 253, 9, 32, 18, 0, 248, 12, 16, 217, 255, 255, 12, 192, 255, 188, 253, 12, 242, 63, 0, 248, 12, 243, 63, 16, 254, 12, 208, 255, 253, 255, 12, 32, 234, 190, 244, 12 }; -/* b */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_98[] = { 10, 13, 11, 1, 13, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 136, 238, 59, 0, 251, 255, 255, 255, 4, 251, 159, 50, 252, 13, 251, 13, 0, 242, 63, 251, 9, 0, 224, 95, 251, 9, 0, 224, 95, 251, 13, 0, 242, 63, 251, 159, 50, 252, 13, 251, 255, 255, 255, 4, 251, 149, 238, 59, 0 }; -/* c */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_99[] = { 10, 10, 10, 0, 10, 0, 144, 253, 124, 0, 16, 254, 255, 255, 10, 160, 239, 37, 246, 79, 240, 95, 0, 112, 106, 243, 15, 0, 0, 0, 243, 15, 0, 0, 0, 240, 95, 0, 128, 107, 160, 239, 20, 246, 79, 16, 254, 255, 255, 10, 0, 145, 253, 124, 0 }; -/* d */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_100[] = { 10, 13, 11, 0, 13, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 162, 238, 105, 239, 32, 255, 255, 255, 239, 176, 239, 36, 247, 239, 240, 79, 0, 176, 239, 243, 15, 0, 96, 239, 243, 15, 0, 96, 239, 240, 79, 0, 160, 239, 176, 239, 20, 247, 239, 32, 255, 255, 255, 239, 0, 162, 238, 74, 239 }; -/* e */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_101[] = { 10, 10, 11, 0, 10, 0, 145, 253, 108, 0, 16, 254, 255, 255, 10, 176, 207, 1, 243, 95, 240, 63, 0, 144, 175, 243, 255, 255, 255, 223, 242, 143, 136, 136, 120, 240, 79, 0, 0, 0, 144, 223, 2, 244, 111, 16, 253, 255, 255, 11, 0, 144, 253, 124, 0 }; -/* f */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_102[] = { 7, 13, 7, 0, 13, 0, 212, 255, 3, 0, 254, 255, 3, 0, 255, 4, 0, 248, 255, 255, 3, 248, 255, 255, 3, 49, 255, 37, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0 }; -/* g */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_103[] = { 10, 14, 11, 0, 10, 0, 179, 238, 121, 191, 48, 255, 255, 255, 191, 208, 207, 2, 247, 191, 241, 63, 0, 192, 191, 243, 15, 0, 144, 191, 241, 47, 0, 176, 191, 208, 207, 2, 247, 191, 64, 255, 255, 255, 191, 0, 179, 238, 153, 191, 0, 0, 0, 144, 175, 160, 91, 0, 192, 143, 176, 239, 2, 246, 79, 32, 254, 255, 255, 11, 0, 161, 254, 124, 0 }; -/* h */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_104[] = { 9, 13, 11, 1, 13, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 152, 238, 26, 0, 251, 255, 255, 239, 0, 251, 111, 98, 255, 7, 251, 10, 0, 250, 10, 251, 8, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11 }; -/* i */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_105[] = { 3, 13, 5, 1, 13, 254, 7, 254, 7, 34, 1, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6 }; -/* j */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_106[] = { 5, 17, 6, 0, 13, 0, 254, 7, 0, 254, 7, 0, 34, 1, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 16, 254, 6, 254, 255, 4, 254, 142, 0 }; -/* k */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_107[] = { 9, 13, 9, 1, 13, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 112, 255, 2, 251, 7, 243, 95, 0, 251, 23, 254, 9, 0, 251, 184, 207, 0, 0, 251, 254, 47, 0, 0, 251, 252, 63, 0, 0, 251, 151, 239, 1, 0, 251, 7, 252, 12, 0, 251, 7, 225, 143, 0, 251, 7, 64, 255, 5 }; -/* l */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_108[] = { 3, 13, 5, 1, 13, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7 }; -/* m */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_109[] = { 14, 10, 15, 1, 10, 253, 182, 223, 22, 234, 142, 0, 253, 255, 255, 239, 255, 255, 10, 253, 78, 210, 255, 41, 247, 47, 253, 9, 128, 255, 1, 240, 95, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111 }; -/* n */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_110[] = { 9, 10, 11, 1, 10, 253, 166, 238, 26, 0, 253, 255, 255, 223, 0, 253, 95, 114, 255, 5, 253, 8, 0, 252, 8, 253, 6, 0, 250, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9 }; -/* o */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_111[] = { 11, 10, 11, 0, 10, 0, 144, 253, 124, 0, 0, 16, 254, 255, 255, 12, 0, 160, 239, 37, 247, 127, 0, 240, 95, 0, 128, 223, 0, 243, 15, 0, 64, 255, 0, 243, 15, 0, 64, 255, 0, 240, 95, 0, 128, 223, 0, 160, 239, 20, 246, 127, 0, 16, 254, 255, 255, 12, 0, 0, 145, 253, 124, 0, 0 }; -/* p */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_112[] = { 10, 14, 11, 1, 10, 253, 149, 238, 43, 0, 253, 255, 255, 255, 3, 253, 143, 66, 253, 12, 253, 11, 0, 243, 31, 253, 7, 0, 240, 79, 253, 7, 0, 240, 79, 253, 11, 0, 243, 31, 253, 143, 50, 253, 12, 253, 255, 255, 255, 3, 253, 167, 238, 43, 0, 253, 6, 0, 0, 0, 253, 6, 0, 0, 0, 253, 6, 0, 0, 0, 253, 6, 0, 0, 0 }; -/* q */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_113[] = { 10, 14, 11, 0, 10, 0, 162, 238, 90, 239, 32, 255, 255, 255, 239, 176, 239, 36, 247, 239, 240, 79, 0, 176, 239, 243, 15, 0, 96, 239, 243, 15, 0, 96, 239, 240, 79, 0, 160, 239, 176, 239, 20, 247, 239, 32, 255, 255, 255, 239, 0, 162, 238, 122, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239 }; -/* r */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_114[] = { 6, 10, 7, 1, 10, 253, 216, 191, 253, 255, 191, 253, 110, 34, 253, 7, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0 }; -/* s */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_115[] = { 9, 10, 9, 0, 10, 16, 217, 207, 7, 0, 225, 255, 254, 175, 0, 245, 31, 64, 255, 2, 245, 95, 0, 0, 0, 225, 255, 223, 25, 0, 16, 200, 255, 239, 1, 0, 0, 64, 255, 5, 245, 30, 16, 254, 5, 208, 255, 253, 239, 1, 0, 217, 239, 42, 0 }; -/* t */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_116[] = { 7, 13, 7, 0, 13, 16, 153, 1, 0, 16, 255, 2, 0, 16, 255, 2, 0, 248, 255, 255, 3, 248, 255, 255, 3, 65, 255, 36, 0, 16, 255, 2, 0, 16, 255, 2, 0, 16, 255, 2, 0, 16, 255, 2, 0, 16, 255, 3, 0, 0, 255, 255, 3, 0, 229, 255, 3 }; -/* u */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_117[] = { 9, 10, 11, 1, 10, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 250, 9, 252, 8, 0, 252, 9, 249, 95, 113, 255, 9, 241, 255, 255, 255, 9, 32, 251, 142, 248, 9 }; -/* v */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_118[] = { 10, 10, 9, 0, 10, 253, 7, 0, 242, 63, 248, 12, 0, 246, 14, 243, 31, 0, 251, 9, 224, 111, 0, 255, 4, 144, 175, 80, 239, 0, 64, 255, 160, 159, 0, 0, 255, 228, 79, 0, 0, 250, 254, 15, 0, 0, 245, 255, 10, 0, 0, 240, 255, 5, 0 }; -/* w */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_119[] = { 15, 10, 14, 0, 10, 252, 8, 64, 255, 7, 80, 255, 0, 249, 12, 112, 255, 11, 128, 207, 0, 245, 15, 176, 255, 14, 192, 143, 0, 241, 63, 224, 190, 47, 240, 79, 0, 208, 111, 242, 106, 95, 243, 31, 0, 160, 175, 246, 54, 159, 247, 13, 0, 96, 239, 250, 2, 223, 251, 9, 0, 32, 255, 255, 0, 252, 255, 5, 0, 0, 254, 191, 0, 248, 255, 2, 0, 0, 251, 143, 0, 244, 239, 0, 0 }; -/* x */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_120[] = { 11, 10, 10, 0, 10, 160, 207, 0, 160, 223, 0, 16, 255, 7, 244, 63, 0, 0, 246, 47, 254, 9, 0, 0, 176, 255, 239, 0, 0, 0, 48, 255, 95, 0, 0, 0, 128, 255, 191, 0, 0, 0, 242, 127, 255, 4, 0, 0, 250, 11, 249, 13, 0, 48, 255, 3, 241, 111, 0, 192, 175, 0, 128, 239, 0 }; -/* y */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_121[] = { 10, 14, 10, 0, 10, 253, 7, 0, 240, 95, 247, 13, 0, 244, 31, 242, 47, 0, 249, 11, 192, 143, 0, 254, 6, 112, 223, 48, 255, 1, 32, 255, 131, 207, 0, 0, 252, 216, 127, 0, 0, 247, 255, 47, 0, 0, 241, 255, 13, 0, 0, 192, 255, 8, 0, 0, 96, 255, 3, 0, 0, 129, 239, 0, 0, 224, 255, 143, 0, 0, 224, 255, 10, 0, 0 }; -/* z */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_122[] = { 8, 10, 9, 0, 10, 245, 255, 255, 239, 245, 255, 255, 239, 16, 17, 245, 143, 0, 16, 254, 12, 0, 192, 239, 1, 0, 248, 79, 0, 80, 255, 7, 0, 226, 207, 1, 0, 247, 255, 255, 255, 247, 255, 255, 255 }; -/* { */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_123[] = { 7, 18, 7, 0, 14, 0, 0, 0, 0, 0, 177, 255, 1, 0, 249, 255, 1, 0, 253, 9, 0, 0, 253, 6, 0, 0, 253, 6, 0, 0, 253, 6, 0, 32, 255, 5, 0, 241, 207, 0, 0, 241, 30, 0, 0, 128, 255, 1, 0, 0, 254, 5, 0, 0, 253, 6, 0, 0, 253, 6, 0, 0, 253, 6, 0, 0, 252, 25, 0, 0, 249, 255, 1, 0, 161, 255, 1 }; -/* | */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_124[] = { 3, 17, 7, 2, 13, 185, 4, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6 }; -/* } */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_125[] = { 6, 18, 7, 0, 14, 0, 0, 0, 245, 159, 0, 245, 255, 5, 0, 252, 8, 0, 250, 9, 0, 250, 9, 0, 250, 9, 0, 249, 28, 0, 210, 223, 0, 128, 223, 0, 247, 110, 0, 250, 9, 0, 250, 9, 0, 250, 9, 0, 250, 9, 16, 253, 8, 245, 255, 5, 245, 142, 0 }; -/* ~ */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_126[] = { 10, 4, 11, 0, 7, 32, 251, 44, 48, 137, 192, 255, 239, 182, 191, 242, 127, 250, 255, 111, 146, 9, 112, 238, 8 }; - -/* ? */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_nonprintable[] = { 9, 13, 10, 0, 13, 255, 56, 32, 229, 255, 79, 0, 0, 0, 253, 11, 80, 139, 0, 245, 41, 243, 255, 6, 242, 255, 255, 255, 3, 243, 255, 255, 61, 0, 249, 255, 239, 1, 160, 255, 255, 143, 0, 253, 255, 255, 111, 64, 255, 255, 255, 223, 219, 255, 255, 255, 175, 151, 255, 255, 255, 95, 64, 255, 255, 255, 95, 64, 255, 255 }; - -static const uint8_t * const Font_TTSatoshi_DemiBold_18[126 + 1 - 32] = { - Font_TTSatoshi_DemiBold_18_glyph_32, - Font_TTSatoshi_DemiBold_18_glyph_33, - Font_TTSatoshi_DemiBold_18_glyph_34, - Font_TTSatoshi_DemiBold_18_glyph_35, - Font_TTSatoshi_DemiBold_18_glyph_36, - Font_TTSatoshi_DemiBold_18_glyph_37, - Font_TTSatoshi_DemiBold_18_glyph_38, - Font_TTSatoshi_DemiBold_18_glyph_39, - Font_TTSatoshi_DemiBold_18_glyph_40, - Font_TTSatoshi_DemiBold_18_glyph_41, - Font_TTSatoshi_DemiBold_18_glyph_42, - Font_TTSatoshi_DemiBold_18_glyph_43, - Font_TTSatoshi_DemiBold_18_glyph_44, - Font_TTSatoshi_DemiBold_18_glyph_45, - Font_TTSatoshi_DemiBold_18_glyph_46, - Font_TTSatoshi_DemiBold_18_glyph_47, - Font_TTSatoshi_DemiBold_18_glyph_48, - Font_TTSatoshi_DemiBold_18_glyph_49, - Font_TTSatoshi_DemiBold_18_glyph_50, - Font_TTSatoshi_DemiBold_18_glyph_51, - Font_TTSatoshi_DemiBold_18_glyph_52, - Font_TTSatoshi_DemiBold_18_glyph_53, - Font_TTSatoshi_DemiBold_18_glyph_54, - Font_TTSatoshi_DemiBold_18_glyph_55, - Font_TTSatoshi_DemiBold_18_glyph_56, - Font_TTSatoshi_DemiBold_18_glyph_57, - Font_TTSatoshi_DemiBold_18_glyph_58, - Font_TTSatoshi_DemiBold_18_glyph_59, - Font_TTSatoshi_DemiBold_18_glyph_60, - Font_TTSatoshi_DemiBold_18_glyph_61, - Font_TTSatoshi_DemiBold_18_glyph_62, - Font_TTSatoshi_DemiBold_18_glyph_63, - Font_TTSatoshi_DemiBold_18_glyph_64, - Font_TTSatoshi_DemiBold_18_glyph_65, - Font_TTSatoshi_DemiBold_18_glyph_66, - Font_TTSatoshi_DemiBold_18_glyph_67, - Font_TTSatoshi_DemiBold_18_glyph_68, - Font_TTSatoshi_DemiBold_18_glyph_69, - Font_TTSatoshi_DemiBold_18_glyph_70, - Font_TTSatoshi_DemiBold_18_glyph_71, - Font_TTSatoshi_DemiBold_18_glyph_72, - Font_TTSatoshi_DemiBold_18_glyph_73, - Font_TTSatoshi_DemiBold_18_glyph_74, - Font_TTSatoshi_DemiBold_18_glyph_75, - Font_TTSatoshi_DemiBold_18_glyph_76, - Font_TTSatoshi_DemiBold_18_glyph_77, - Font_TTSatoshi_DemiBold_18_glyph_78, - Font_TTSatoshi_DemiBold_18_glyph_79, - Font_TTSatoshi_DemiBold_18_glyph_80, - Font_TTSatoshi_DemiBold_18_glyph_81, - Font_TTSatoshi_DemiBold_18_glyph_82, - Font_TTSatoshi_DemiBold_18_glyph_83, - Font_TTSatoshi_DemiBold_18_glyph_84, - Font_TTSatoshi_DemiBold_18_glyph_85, - Font_TTSatoshi_DemiBold_18_glyph_86, - Font_TTSatoshi_DemiBold_18_glyph_87, - Font_TTSatoshi_DemiBold_18_glyph_88, - Font_TTSatoshi_DemiBold_18_glyph_89, - Font_TTSatoshi_DemiBold_18_glyph_90, - Font_TTSatoshi_DemiBold_18_glyph_91, - Font_TTSatoshi_DemiBold_18_glyph_92, - Font_TTSatoshi_DemiBold_18_glyph_93, - Font_TTSatoshi_DemiBold_18_glyph_94, - Font_TTSatoshi_DemiBold_18_glyph_95, - Font_TTSatoshi_DemiBold_18_glyph_96, - Font_TTSatoshi_DemiBold_18_glyph_97, - Font_TTSatoshi_DemiBold_18_glyph_98, - Font_TTSatoshi_DemiBold_18_glyph_99, - Font_TTSatoshi_DemiBold_18_glyph_100, - Font_TTSatoshi_DemiBold_18_glyph_101, - Font_TTSatoshi_DemiBold_18_glyph_102, - Font_TTSatoshi_DemiBold_18_glyph_103, - Font_TTSatoshi_DemiBold_18_glyph_104, - Font_TTSatoshi_DemiBold_18_glyph_105, - Font_TTSatoshi_DemiBold_18_glyph_106, - Font_TTSatoshi_DemiBold_18_glyph_107, - Font_TTSatoshi_DemiBold_18_glyph_108, - Font_TTSatoshi_DemiBold_18_glyph_109, - Font_TTSatoshi_DemiBold_18_glyph_110, - Font_TTSatoshi_DemiBold_18_glyph_111, - Font_TTSatoshi_DemiBold_18_glyph_112, - Font_TTSatoshi_DemiBold_18_glyph_113, - Font_TTSatoshi_DemiBold_18_glyph_114, - Font_TTSatoshi_DemiBold_18_glyph_115, - Font_TTSatoshi_DemiBold_18_glyph_116, - Font_TTSatoshi_DemiBold_18_glyph_117, - Font_TTSatoshi_DemiBold_18_glyph_118, - Font_TTSatoshi_DemiBold_18_glyph_119, - Font_TTSatoshi_DemiBold_18_glyph_120, - Font_TTSatoshi_DemiBold_18_glyph_121, - Font_TTSatoshi_DemiBold_18_glyph_122, - Font_TTSatoshi_DemiBold_18_glyph_123, - Font_TTSatoshi_DemiBold_18_glyph_124, - Font_TTSatoshi_DemiBold_18_glyph_125, - Font_TTSatoshi_DemiBold_18_glyph_126, -}; - -const font_info_t Font_TTSatoshi_DemiBold_18_info = { - .height = 18, - .max_height = 19, - .baseline = 4, - .glyph_data = Font_TTSatoshi_DemiBold_18, - .glyph_nonprintable = Font_TTSatoshi_DemiBold_18_glyph_nonprintable, -}; diff --git a/core/embed/gfx/fonts/font_ttsatoshi_demibold_18.h b/core/embed/gfx/fonts/font_ttsatoshi_demibold_18.h deleted file mode 100644 index 2edcf701fa5..00000000000 --- a/core/embed/gfx/fonts/font_ttsatoshi_demibold_18.h +++ /dev/null @@ -1,10 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -#if TREZOR_FONT_BPP != 4 -#error Wrong TREZOR_FONT_BPP (expected 4) -#endif - -extern const font_info_t Font_TTSatoshi_DemiBold_18_info; diff --git a/core/embed/gfx/fonts/font_ttsatoshi_demibold_42.c b/core/embed/gfx/fonts/font_ttsatoshi_demibold_42.c deleted file mode 100644 index 4c1c7bfdeb5..00000000000 --- a/core/embed/gfx/fonts/font_ttsatoshi_demibold_42.c +++ /dev/null @@ -1,148 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -// clang-format off - -// - the first two bytes are width and height of the glyph -// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph -// - the rest is packed 4-bit glyph data - -// NOTE: glyphs of uppercase and special characters removed to save space as they are not used - -/* */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_32[] = { 0, 0, 11, 0, 0 }; -/* a */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_97[] = { 20, 23, 23, 1, 22, 0, 0, 0, 147, 237, 239, 140, 3, 0, 0, 0, 0, 161, 255, 255, 255, 255, 191, 2, 0, 0, 48, 255, 255, 255, 255, 255, 255, 62, 0, 0, 225, 255, 255, 255, 255, 255, 255, 239, 1, 0, 250, 255, 255, 108, 100, 252, 255, 255, 9, 0, 255, 255, 159, 0, 0, 176, 255, 255, 15, 64, 255, 255, 15, 0, 0, 32, 255, 255, 95, 16, 34, 34, 2, 0, 0, 0, 253, 255, 127, 0, 0, 0, 0, 0, 0, 0, 251, 255, 159, 0, 0, 96, 218, 254, 255, 255, 255, 255, 159, 0, 96, 255, 255, 255, 255, 255, 255, 255, 159, 0, 249, 255, 255, 255, 255, 255, 255, 255, 159, 80, 255, 255, 255, 255, 255, 255, 255, 255, 159, 208, 255, 255, 143, 2, 0, 0, 250, 255, 159, 242, 255, 255, 5, 0, 0, 0, 252, 255, 159, 244, 255, 255, 0, 0, 0, 0, 255, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 159, 242, 255, 255, 6, 0, 0, 244, 255, 255, 159, 224, 255, 255, 159, 52, 166, 255, 255, 255, 159, 80, 255, 255, 255, 255, 255, 255, 255, 255, 159, 0, 250, 255, 255, 255, 255, 255, 251, 255, 159, 0, 112, 255, 255, 255, 255, 111, 240, 255, 159, 0, 0, 129, 236, 223, 123, 0, 0, 0, 0 }; -/* b */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_98[] = { 23, 30, 26, 2, 29, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 96, 218, 239, 124, 1, 0, 0, 0, 240, 255, 255, 82, 254, 255, 255, 255, 143, 0, 0, 0, 240, 255, 255, 249, 255, 255, 255, 255, 255, 11, 0, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 240, 255, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 240, 255, 255, 255, 94, 1, 48, 252, 255, 255, 31, 0, 240, 255, 255, 223, 1, 0, 0, 144, 255, 255, 127, 0, 240, 255, 255, 63, 0, 0, 0, 0, 254, 255, 207, 0, 240, 255, 255, 11, 0, 0, 0, 0, 246, 255, 255, 0, 240, 255, 255, 7, 0, 0, 0, 0, 242, 255, 255, 3, 240, 255, 255, 5, 0, 0, 0, 0, 240, 255, 255, 4, 240, 255, 255, 3, 0, 0, 0, 0, 224, 255, 255, 5, 240, 255, 255, 5, 0, 0, 0, 0, 240, 255, 255, 4, 240, 255, 255, 7, 0, 0, 0, 0, 242, 255, 255, 3, 240, 255, 255, 11, 0, 0, 0, 0, 246, 255, 255, 0, 240, 255, 255, 63, 0, 0, 0, 0, 254, 255, 207, 0, 240, 255, 255, 207, 1, 0, 0, 144, 255, 255, 127, 0, 240, 255, 255, 255, 94, 1, 48, 252, 255, 255, 31, 0, 240, 255, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 240, 255, 239, 250, 255, 255, 255, 255, 255, 28, 0, 0, 240, 255, 175, 112, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 113, 219, 239, 124, 1, 0, 0, 0 }; -/* c */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_99[] = { 22, 23, 24, 1, 22, 0, 0, 0, 48, 200, 254, 222, 73, 0, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 61, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 6, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 2, 0, 253, 255, 255, 94, 1, 48, 252, 255, 255, 10, 80, 255, 255, 207, 1, 0, 0, 160, 255, 255, 31, 176, 255, 255, 47, 0, 0, 0, 0, 254, 255, 111, 240, 255, 255, 8, 0, 0, 0, 0, 100, 102, 54, 242, 255, 255, 3, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 3, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 8, 0, 0, 0, 0, 150, 153, 89, 176, 255, 255, 31, 0, 0, 0, 16, 255, 255, 95, 80, 255, 255, 207, 1, 0, 0, 176, 255, 255, 15, 0, 253, 255, 255, 94, 1, 48, 252, 255, 255, 10, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 1, 0, 112, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 6, 0, 0, 0, 48, 252, 255, 255, 255, 255, 61, 0, 0, 0, 0, 0, 64, 200, 254, 222, 73, 0, 0, 0 }; -/* d */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_100[] = { 23, 30, 26, 1, 29, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 113, 236, 223, 123, 0, 242, 255, 255, 1, 0, 0, 128, 255, 255, 255, 255, 94, 242, 255, 255, 1, 0, 16, 252, 255, 255, 255, 255, 255, 249, 255, 255, 1, 0, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 248, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 16, 255, 255, 255, 60, 0, 81, 254, 255, 255, 255, 1, 112, 255, 255, 175, 0, 0, 0, 193, 255, 255, 255, 1, 192, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 251, 255, 255, 1, 243, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 244, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 244, 255, 255, 0, 0, 0, 0, 0, 243, 255, 255, 1, 243, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 242, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 250, 255, 255, 1, 176, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 96, 255, 255, 159, 0, 0, 0, 193, 255, 255, 255, 1, 0, 254, 255, 255, 60, 0, 64, 254, 255, 255, 255, 1, 0, 246, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 0, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 251, 255, 255, 255, 255, 255, 234, 255, 255, 1, 0, 0, 128, 255, 255, 255, 255, 127, 160, 255, 255, 1, 0, 0, 0, 113, 236, 223, 123, 1, 0, 0, 0, 0 }; -/* e */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_101[] = { 23, 23, 25, 1, 22, 0, 0, 0, 48, 200, 254, 206, 56, 0, 0, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 59, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 0, 244, 255, 255, 223, 121, 217, 255, 255, 255, 2, 0, 0, 253, 255, 255, 6, 0, 0, 246, 255, 255, 11, 0, 96, 255, 255, 95, 0, 0, 0, 96, 255, 255, 63, 0, 176, 255, 255, 10, 0, 0, 0, 0, 252, 255, 143, 0, 240, 255, 255, 4, 0, 0, 0, 0, 246, 255, 223, 0, 242, 255, 255, 137, 136, 136, 136, 136, 250, 255, 255, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 127, 0, 0, 0, 64, 255, 255, 79, 0, 0, 253, 255, 255, 8, 0, 0, 245, 255, 255, 13, 0, 0, 243, 255, 255, 223, 121, 200, 255, 255, 255, 4, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 0, 0, 246, 255, 255, 255, 255, 255, 255, 8, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 77, 0, 0, 0, 0, 0, 0, 48, 200, 254, 222, 73, 0, 0, 0, 0 }; -/* f */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_102[] = { 14, 30, 16, 1, 30, 0, 0, 0, 199, 254, 255, 127, 0, 0, 193, 255, 255, 255, 127, 0, 0, 249, 255, 255, 255, 127, 0, 16, 255, 255, 255, 255, 127, 0, 48, 255, 255, 255, 154, 73, 0, 96, 255, 255, 47, 0, 0, 0, 96, 255, 255, 14, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0 }; -/* g */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_103[] = { 22, 31, 25, 1, 22, 0, 0, 0, 131, 236, 223, 90, 0, 0, 0, 0, 0, 0, 161, 255, 255, 255, 255, 61, 240, 255, 175, 0, 48, 254, 255, 255, 255, 255, 255, 245, 255, 175, 0, 225, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 252, 255, 255, 255, 188, 254, 255, 255, 255, 175, 64, 255, 255, 255, 7, 0, 48, 254, 255, 255, 175, 176, 255, 255, 79, 0, 0, 0, 224, 255, 255, 175, 240, 255, 255, 10, 0, 0, 0, 64, 255, 255, 175, 242, 255, 255, 3, 0, 0, 0, 0, 254, 255, 175, 244, 255, 255, 1, 0, 0, 0, 0, 251, 255, 175, 244, 255, 255, 0, 0, 0, 0, 0, 250, 255, 175, 243, 255, 255, 2, 0, 0, 0, 0, 252, 255, 175, 241, 255, 255, 5, 0, 0, 0, 0, 255, 255, 175, 208, 255, 255, 13, 0, 0, 0, 128, 255, 255, 175, 144, 255, 255, 159, 0, 0, 0, 244, 255, 255, 175, 16, 255, 255, 255, 93, 18, 148, 255, 255, 255, 175, 0, 248, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 176, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 250, 255, 255, 255, 255, 223, 251, 255, 175, 0, 0, 80, 253, 255, 255, 255, 25, 249, 255, 175, 0, 0, 0, 32, 135, 121, 21, 0, 249, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 249, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 159, 144, 238, 238, 13, 0, 0, 0, 16, 255, 255, 127, 96, 255, 255, 111, 0, 0, 0, 160, 255, 255, 47, 16, 255, 255, 255, 7, 0, 16, 250, 255, 255, 13, 0, 248, 255, 255, 239, 172, 252, 255, 255, 255, 5, 0, 208, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 16, 253, 255, 255, 255, 255, 255, 255, 10, 0, 0, 0, 128, 255, 255, 255, 255, 255, 110, 0, 0, 0, 0, 0, 97, 219, 254, 222, 89, 0, 0, 0 }; -/* h */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_104[] = { 21, 29, 25, 2, 29, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 129, 235, 239, 91, 0, 0, 0, 240, 255, 255, 115, 255, 255, 255, 255, 61, 0, 0, 240, 255, 255, 252, 255, 255, 255, 255, 255, 4, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 30, 0, 240, 255, 255, 255, 255, 254, 255, 255, 255, 175, 0, 240, 255, 255, 255, 23, 0, 178, 255, 255, 255, 1, 240, 255, 255, 79, 0, 0, 0, 250, 255, 255, 5, 240, 255, 255, 10, 0, 0, 0, 241, 255, 255, 8, 240, 255, 255, 5, 0, 0, 0, 192, 255, 255, 9, 240, 255, 255, 3, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10 }; -/* i */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_105[] = { 7, 30, 11, 2, 30, 247, 255, 255, 2, 247, 255, 255, 2, 247, 255, 255, 2, 247, 255, 255, 2, 247, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0 }; -/* j */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_106[] = { 12, 38, 14, 0, 30, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 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, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 128, 255, 255, 15, 209, 221, 254, 255, 255, 13, 241, 255, 255, 255, 255, 10, 241, 255, 255, 255, 255, 3, 241, 255, 255, 255, 127, 0, 241, 255, 255, 173, 3, 0 }; -/* k */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_107[] = { 21, 29, 22, 2, 29, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 64, 255, 255, 207, 0, 240, 255, 255, 2, 0, 0, 226, 255, 255, 29, 0, 240, 255, 255, 2, 0, 16, 253, 255, 255, 2, 0, 240, 255, 255, 2, 0, 192, 255, 255, 79, 0, 0, 240, 255, 255, 2, 0, 249, 255, 255, 6, 0, 0, 240, 255, 255, 2, 112, 255, 255, 143, 0, 0, 0, 240, 255, 255, 2, 245, 255, 255, 10, 0, 0, 0, 240, 255, 255, 50, 255, 255, 207, 0, 0, 0, 0, 240, 255, 255, 228, 255, 255, 30, 0, 0, 0, 0, 240, 255, 255, 254, 255, 255, 2, 0, 0, 0, 0, 240, 255, 255, 255, 255, 175, 0, 0, 0, 0, 0, 240, 255, 255, 250, 255, 255, 7, 0, 0, 0, 0, 240, 255, 255, 163, 255, 255, 95, 0, 0, 0, 0, 240, 255, 255, 2, 252, 255, 255, 3, 0, 0, 0, 240, 255, 255, 2, 209, 255, 255, 46, 0, 0, 0, 240, 255, 255, 2, 32, 254, 255, 223, 1, 0, 0, 240, 255, 255, 2, 0, 244, 255, 255, 12, 0, 0, 240, 255, 255, 2, 0, 96, 255, 255, 175, 0, 0, 240, 255, 255, 2, 0, 0, 248, 255, 255, 8, 0, 240, 255, 255, 2, 0, 0, 176, 255, 255, 111, 0, 240, 255, 255, 2, 0, 0, 0, 252, 255, 255, 4 }; -/* l */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_108[] = { 7, 29, 11, 2, 29, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2 }; -/* m */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_109[] = { 32, 22, 36, 2, 22, 0, 0, 0, 0, 181, 253, 156, 3, 0, 0, 166, 253, 190, 6, 0, 0, 244, 255, 175, 176, 255, 255, 255, 175, 0, 212, 255, 255, 255, 223, 3, 0, 244, 255, 255, 252, 255, 255, 255, 255, 91, 255, 255, 255, 255, 255, 63, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 7, 244, 255, 255, 207, 3, 48, 253, 255, 255, 255, 26, 0, 229, 255, 255, 15, 244, 255, 255, 13, 0, 0, 242, 255, 255, 175, 0, 0, 80, 255, 255, 95, 244, 255, 255, 4, 0, 0, 176, 255, 255, 31, 0, 0, 0, 254, 255, 127, 244, 255, 255, 1, 0, 0, 128, 255, 255, 14, 0, 0, 0, 251, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159 }; -/* n */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_110[] = { 21, 22, 25, 2, 22, 0, 0, 0, 0, 146, 236, 223, 73, 0, 0, 0, 244, 255, 175, 144, 255, 255, 255, 255, 28, 0, 0, 244, 255, 255, 252, 255, 255, 255, 255, 239, 2, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 244, 255, 255, 255, 255, 254, 255, 255, 255, 111, 0, 244, 255, 255, 239, 5, 0, 212, 255, 255, 223, 0, 244, 255, 255, 30, 0, 0, 0, 253, 255, 255, 2, 244, 255, 255, 6, 0, 0, 0, 243, 255, 255, 5, 244, 255, 255, 2, 0, 0, 0, 240, 255, 255, 6, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7 }; -/* o */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_111[] = { 23, 23, 25, 1, 22, 0, 0, 0, 48, 200, 254, 222, 73, 0, 0, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 93, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 9, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 0, 253, 255, 255, 94, 1, 64, 252, 255, 255, 31, 0, 80, 255, 255, 207, 1, 0, 0, 160, 255, 255, 143, 0, 176, 255, 255, 47, 0, 0, 0, 0, 254, 255, 239, 0, 240, 255, 255, 8, 0, 0, 0, 0, 245, 255, 255, 2, 242, 255, 255, 3, 0, 0, 0, 0, 241, 255, 255, 5, 243, 255, 255, 1, 0, 0, 0, 0, 224, 255, 255, 6, 244, 255, 255, 0, 0, 0, 0, 0, 192, 255, 255, 7, 243, 255, 255, 1, 0, 0, 0, 0, 224, 255, 255, 6, 242, 255, 255, 3, 0, 0, 0, 0, 240, 255, 255, 5, 240, 255, 255, 8, 0, 0, 0, 0, 245, 255, 255, 2, 176, 255, 255, 31, 0, 0, 0, 0, 253, 255, 239, 0, 80, 255, 255, 207, 1, 0, 0, 144, 255, 255, 143, 0, 0, 253, 255, 255, 94, 1, 48, 252, 255, 255, 31, 0, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 9, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 93, 0, 0, 0, 0, 0, 0, 64, 200, 254, 222, 73, 0, 0, 0, 0 }; -/* p */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_112[] = { 23, 30, 26, 2, 22, 0, 0, 0, 0, 129, 219, 223, 107, 0, 0, 0, 0, 244, 255, 175, 112, 255, 255, 255, 255, 110, 0, 0, 0, 244, 255, 239, 249, 255, 255, 255, 255, 255, 9, 0, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 244, 255, 255, 255, 255, 239, 255, 255, 255, 255, 4, 0, 244, 255, 255, 255, 77, 0, 65, 254, 255, 255, 12, 0, 244, 255, 255, 191, 0, 0, 0, 193, 255, 255, 79, 0, 244, 255, 255, 31, 0, 0, 0, 32, 255, 255, 143, 0, 244, 255, 255, 8, 0, 0, 0, 0, 250, 255, 223, 0, 244, 255, 255, 4, 0, 0, 0, 0, 246, 255, 255, 0, 244, 255, 255, 2, 0, 0, 0, 0, 244, 255, 255, 0, 244, 255, 255, 0, 0, 0, 0, 0, 242, 255, 255, 1, 244, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 0, 244, 255, 255, 3, 0, 0, 0, 0, 246, 255, 255, 0, 244, 255, 255, 6, 0, 0, 0, 0, 249, 255, 223, 0, 244, 255, 255, 14, 0, 0, 0, 32, 255, 255, 159, 0, 244, 255, 255, 159, 0, 0, 0, 176, 255, 255, 79, 0, 244, 255, 255, 255, 60, 0, 64, 253, 255, 255, 12, 0, 244, 255, 255, 255, 255, 239, 255, 255, 255, 255, 4, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 244, 255, 255, 252, 255, 255, 255, 255, 255, 9, 0, 0, 244, 255, 255, 160, 255, 255, 255, 255, 110, 0, 0, 0, 244, 255, 255, 0, 146, 236, 239, 107, 1, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -/* q */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_113[] = { 23, 30, 26, 1, 22, 0, 0, 0, 113, 236, 223, 106, 0, 0, 0, 0, 0, 0, 0, 128, 255, 255, 255, 255, 78, 208, 255, 255, 1, 0, 0, 251, 255, 255, 255, 255, 255, 243, 255, 255, 1, 0, 176, 255, 255, 255, 255, 255, 255, 254, 255, 255, 1, 0, 247, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 0, 255, 255, 255, 60, 0, 81, 254, 255, 255, 255, 1, 112, 255, 255, 175, 0, 0, 0, 193, 255, 255, 255, 1, 192, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 251, 255, 255, 1, 242, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 243, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 244, 255, 255, 0, 0, 0, 0, 0, 243, 255, 255, 1, 243, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 242, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 250, 255, 255, 1, 192, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 112, 255, 255, 159, 0, 0, 0, 193, 255, 255, 255, 1, 0, 255, 255, 255, 60, 0, 64, 254, 255, 255, 255, 1, 0, 247, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 0, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 251, 255, 255, 255, 255, 255, 252, 255, 255, 1, 0, 0, 128, 255, 255, 255, 255, 143, 242, 255, 255, 1, 0, 0, 0, 113, 236, 223, 139, 1, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1 }; -/* r */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_114[] = { 14, 21, 16, 2, 21, 244, 255, 63, 112, 252, 255, 191, 244, 255, 143, 252, 255, 255, 191, 244, 255, 255, 255, 255, 255, 191, 244, 255, 255, 255, 255, 255, 191, 244, 255, 255, 255, 255, 255, 191, 244, 255, 255, 175, 19, 0, 0, 244, 255, 255, 10, 0, 0, 0, 244, 255, 255, 2, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0 }; -/* s */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_115[] = { 19, 23, 21, 1, 22, 0, 0, 113, 219, 255, 206, 40, 0, 0, 0, 0, 144, 255, 255, 255, 255, 255, 26, 0, 0, 16, 253, 255, 255, 255, 255, 255, 239, 2, 0, 176, 255, 255, 255, 255, 255, 255, 255, 29, 0, 244, 255, 255, 143, 69, 198, 255, 255, 159, 0, 249, 255, 239, 2, 0, 0, 247, 255, 255, 0, 251, 255, 159, 0, 0, 0, 224, 255, 255, 3, 250, 255, 191, 0, 0, 0, 0, 17, 17, 0, 247, 255, 255, 75, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 239, 155, 21, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 76, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 10, 0, 0, 16, 216, 255, 255, 255, 255, 255, 143, 0, 0, 0, 0, 81, 168, 253, 255, 255, 255, 2, 0, 0, 0, 0, 0, 16, 248, 255, 255, 6, 0, 0, 0, 0, 0, 0, 176, 255, 255, 9, 251, 255, 127, 0, 0, 0, 144, 255, 255, 11, 247, 255, 239, 2, 0, 0, 208, 255, 255, 9, 241, 255, 255, 159, 53, 116, 253, 255, 255, 5, 112, 255, 255, 255, 255, 255, 255, 255, 223, 0, 0, 250, 255, 255, 255, 255, 255, 255, 46, 0, 0, 96, 254, 255, 255, 255, 255, 175, 1, 0, 0, 0, 81, 218, 254, 223, 123, 2, 0, 0 }; -/* t */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_116[] = { 14, 28, 16, 1, 28, 0, 0, 17, 17, 0, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 13, 0, 0, 0, 128, 255, 255, 207, 153, 73, 0, 80, 255, 255, 255, 255, 127, 0, 16, 254, 255, 255, 255, 127, 0, 0, 244, 255, 255, 255, 127, 0, 0, 16, 201, 255, 255, 127 }; -/* u */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_117[] = { 21, 22, 25, 2, 21, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 208, 255, 255, 7, 243, 255, 255, 2, 0, 0, 0, 240, 255, 255, 7, 242, 255, 255, 6, 0, 0, 0, 244, 255, 255, 7, 240, 255, 255, 30, 0, 0, 0, 253, 255, 255, 7, 160, 255, 255, 239, 5, 0, 211, 255, 255, 255, 7, 48, 255, 255, 255, 255, 253, 255, 255, 255, 255, 7, 0, 250, 255, 255, 255, 255, 255, 255, 255, 255, 7, 0, 208, 255, 255, 255, 255, 255, 222, 255, 255, 7, 0, 0, 250, 255, 255, 255, 191, 113, 255, 255, 7, 0, 0, 48, 217, 255, 172, 3, 0, 0, 0, 0 }; -/* v */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_118[] = { 22, 21, 22, 0, 21, 253, 255, 159, 0, 0, 0, 0, 0, 252, 255, 175, 247, 255, 255, 0, 0, 0, 0, 32, 255, 255, 95, 242, 255, 255, 5, 0, 0, 0, 112, 255, 255, 15, 192, 255, 255, 10, 0, 0, 0, 208, 255, 255, 9, 96, 255, 255, 15, 0, 0, 0, 243, 255, 255, 4, 16, 255, 255, 95, 0, 0, 0, 248, 255, 239, 0, 0, 251, 255, 191, 0, 0, 0, 254, 255, 143, 0, 0, 246, 255, 255, 1, 0, 48, 255, 255, 63, 0, 0, 240, 255, 255, 6, 0, 144, 255, 255, 13, 0, 0, 160, 255, 255, 12, 0, 224, 255, 255, 8, 0, 0, 80, 255, 255, 31, 0, 244, 255, 255, 2, 0, 0, 0, 255, 255, 127, 0, 250, 255, 207, 0, 0, 0, 0, 250, 255, 207, 0, 255, 255, 127, 0, 0, 0, 0, 244, 255, 255, 82, 255, 255, 31, 0, 0, 0, 0, 224, 255, 255, 203, 255, 255, 12, 0, 0, 0, 0, 144, 255, 255, 255, 255, 255, 6, 0, 0, 0, 0, 48, 255, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 254, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 95, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 10, 0, 0, 0 }; -/* w */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_119[] = { 33, 21, 33, 0, 21, 250, 255, 207, 0, 0, 0, 112, 255, 255, 175, 0, 0, 0, 160, 255, 255, 13, 246, 255, 255, 0, 0, 0, 192, 255, 255, 239, 0, 0, 0, 224, 255, 255, 9, 242, 255, 255, 4, 0, 0, 240, 255, 255, 255, 2, 0, 0, 242, 255, 255, 5, 224, 255, 255, 9, 0, 0, 244, 255, 255, 255, 7, 0, 0, 246, 255, 255, 1, 160, 255, 255, 13, 0, 0, 248, 255, 255, 255, 11, 0, 0, 250, 255, 207, 0, 80, 255, 255, 31, 0, 0, 252, 255, 255, 255, 15, 0, 0, 254, 255, 143, 0, 16, 255, 255, 95, 0, 16, 255, 255, 255, 255, 63, 0, 48, 255, 255, 79, 0, 0, 253, 255, 159, 0, 80, 255, 255, 249, 255, 127, 0, 112, 255, 255, 15, 0, 0, 249, 255, 239, 0, 144, 255, 239, 192, 255, 191, 0, 176, 255, 255, 12, 0, 0, 245, 255, 255, 2, 208, 255, 175, 112, 255, 255, 0, 240, 255, 255, 7, 0, 0, 241, 255, 255, 6, 241, 255, 111, 48, 255, 255, 4, 243, 255, 255, 3, 0, 0, 192, 255, 255, 10, 245, 255, 31, 0, 255, 255, 8, 248, 255, 255, 0, 0, 0, 128, 255, 255, 14, 249, 255, 13, 0, 250, 255, 12, 252, 255, 191, 0, 0, 0, 64, 255, 255, 127, 254, 255, 9, 0, 246, 255, 95, 255, 255, 127, 0, 0, 0, 0, 255, 255, 255, 255, 255, 5, 0, 242, 255, 255, 255, 255, 63, 0, 0, 0, 0, 252, 255, 255, 255, 255, 1, 0, 224, 255, 255, 255, 255, 14, 0, 0, 0, 0, 248, 255, 255, 255, 207, 0, 0, 144, 255, 255, 255, 255, 10, 0, 0, 0, 0, 244, 255, 255, 255, 143, 0, 0, 80, 255, 255, 255, 255, 6, 0, 0, 0, 0, 240, 255, 255, 255, 79, 0, 0, 16, 255, 255, 255, 255, 2, 0, 0, 0, 0, 176, 255, 255, 255, 15, 0, 0, 0, 253, 255, 255, 239, 0, 0, 0, 0, 0, 112, 255, 255, 255, 11, 0, 0, 0, 248, 255, 255, 175, 0, 0, 0 }; -/* x */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_120[] = { 23, 21, 22, 0, 21, 160, 255, 255, 63, 0, 0, 0, 0, 252, 255, 255, 2, 16, 254, 255, 223, 0, 0, 0, 112, 255, 255, 111, 0, 0, 244, 255, 255, 9, 0, 0, 243, 255, 255, 11, 0, 0, 160, 255, 255, 79, 0, 0, 253, 255, 255, 1, 0, 0, 16, 254, 255, 239, 0, 128, 255, 255, 95, 0, 0, 0, 0, 244, 255, 255, 10, 243, 255, 255, 11, 0, 0, 0, 0, 144, 255, 255, 159, 253, 255, 239, 1, 0, 0, 0, 0, 0, 254, 255, 255, 255, 255, 95, 0, 0, 0, 0, 0, 0, 244, 255, 255, 255, 255, 10, 0, 0, 0, 0, 0, 0, 144, 255, 255, 255, 239, 1, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 249, 255, 255, 255, 255, 30, 0, 0, 0, 0, 0, 64, 255, 255, 255, 255, 255, 175, 0, 0, 0, 0, 0, 208, 255, 255, 14, 248, 255, 255, 5, 0, 0, 0, 0, 249, 255, 255, 4, 208, 255, 255, 30, 0, 0, 0, 48, 255, 255, 175, 0, 48, 255, 255, 175, 0, 0, 0, 208, 255, 255, 30, 0, 0, 249, 255, 255, 4, 0, 0, 248, 255, 255, 4, 0, 0, 208, 255, 255, 30, 0, 48, 255, 255, 175, 0, 0, 0, 48, 255, 255, 175, 0, 208, 255, 255, 30, 0, 0, 0, 0, 249, 255, 255, 4 }; -/* y */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_121[] = { 23, 29, 22, 0, 21, 252, 255, 175, 0, 0, 0, 0, 0, 246, 255, 255, 1, 246, 255, 255, 1, 0, 0, 0, 0, 251, 255, 191, 0, 240, 255, 255, 6, 0, 0, 0, 16, 255, 255, 95, 0, 160, 255, 255, 13, 0, 0, 0, 112, 255, 255, 15, 0, 48, 255, 255, 63, 0, 0, 0, 208, 255, 255, 9, 0, 0, 253, 255, 159, 0, 0, 0, 242, 255, 255, 3, 0, 0, 247, 255, 255, 0, 0, 0, 248, 255, 239, 0, 0, 0, 241, 255, 255, 6, 0, 0, 254, 255, 143, 0, 0, 0, 160, 255, 255, 12, 0, 64, 255, 255, 47, 0, 0, 0, 64, 255, 255, 47, 0, 144, 255, 255, 12, 0, 0, 0, 0, 253, 255, 143, 0, 240, 255, 255, 6, 0, 0, 0, 0, 247, 255, 239, 0, 245, 255, 255, 1, 0, 0, 0, 0, 241, 255, 255, 5, 251, 255, 191, 0, 0, 0, 0, 0, 176, 255, 255, 27, 255, 255, 95, 0, 0, 0, 0, 0, 64, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 255, 9, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 255, 3, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 16, 253, 255, 191, 0, 0, 0, 0, 0, 0, 214, 221, 253, 255, 255, 95, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 14, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 6, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 175, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 189, 4, 0, 0, 0, 0, 0, 0 }; -/* z */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_122[] = { 18, 21, 20, 1, 21, 248, 255, 255, 255, 255, 255, 255, 255, 127, 248, 255, 255, 255, 255, 255, 255, 255, 127, 248, 255, 255, 255, 255, 255, 255, 255, 127, 248, 255, 255, 255, 255, 255, 255, 255, 127, 215, 221, 221, 221, 221, 254, 255, 255, 111, 0, 0, 0, 0, 0, 252, 255, 255, 10, 0, 0, 0, 0, 176, 255, 255, 191, 0, 0, 0, 0, 0, 250, 255, 255, 12, 0, 0, 0, 0, 144, 255, 255, 223, 1, 0, 0, 0, 0, 247, 255, 255, 46, 0, 0, 0, 0, 96, 255, 255, 255, 2, 0, 0, 0, 0, 245, 255, 255, 63, 0, 0, 0, 0, 48, 255, 255, 255, 5, 0, 0, 0, 0, 242, 255, 255, 111, 0, 0, 0, 0, 32, 254, 255, 255, 7, 0, 0, 0, 0, 209, 255, 255, 159, 0, 0, 0, 0, 0, 250, 255, 255, 223, 221, 221, 221, 221, 157, 251, 255, 255, 255, 255, 255, 255, 255, 175, 251, 255, 255, 255, 255, 255, 255, 255, 175, 251, 255, 255, 255, 255, 255, 255, 255, 175, 251, 255, 255, 255, 255, 255, 255, 255, 175 }; - -/* ? */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_nonprintable[] = { 20, 30, 22, 1, 30, 255, 255, 223, 55, 1, 32, 132, 253, 255, 255, 255, 223, 4, 0, 0, 0, 0, 80, 254, 255, 255, 11, 0, 0, 0, 0, 0, 0, 193, 255, 207, 0, 0, 0, 0, 0, 0, 0, 16, 253, 63, 0, 0, 0, 0, 0, 0, 0, 0, 244, 11, 0, 0, 80, 235, 157, 1, 0, 0, 192, 6, 0, 0, 247, 255, 255, 63, 0, 0, 112, 2, 0, 0, 255, 255, 255, 207, 0, 0, 80, 35, 34, 82, 255, 255, 255, 255, 0, 0, 48, 255, 255, 255, 255, 255, 255, 255, 0, 0, 80, 255, 255, 255, 255, 255, 255, 175, 0, 0, 112, 255, 255, 255, 255, 255, 255, 10, 0, 0, 192, 255, 255, 255, 255, 255, 77, 0, 0, 0, 243, 255, 255, 255, 255, 143, 0, 0, 0, 16, 253, 255, 255, 255, 255, 9, 0, 0, 0, 211, 255, 255, 255, 255, 223, 0, 0, 0, 161, 255, 255, 255, 255, 255, 127, 0, 0, 48, 254, 255, 255, 255, 255, 255, 47, 0, 0, 241, 255, 255, 255, 255, 255, 255, 31, 0, 0, 248, 255, 255, 255, 255, 255, 255, 15, 0, 0, 251, 255, 255, 255, 255, 255, 255, 15, 0, 0, 252, 255, 255, 255, 255, 255, 255, 175, 170, 170, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 44, 34, 34, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255 }; - -static const uint8_t * const Font_TTSatoshi_DemiBold_42[126 + 1 - 32] = { - Font_TTSatoshi_DemiBold_42_glyph_32, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_97, - Font_TTSatoshi_DemiBold_42_glyph_98, - Font_TTSatoshi_DemiBold_42_glyph_99, - Font_TTSatoshi_DemiBold_42_glyph_100, - Font_TTSatoshi_DemiBold_42_glyph_101, - Font_TTSatoshi_DemiBold_42_glyph_102, - Font_TTSatoshi_DemiBold_42_glyph_103, - Font_TTSatoshi_DemiBold_42_glyph_104, - Font_TTSatoshi_DemiBold_42_glyph_105, - Font_TTSatoshi_DemiBold_42_glyph_106, - Font_TTSatoshi_DemiBold_42_glyph_107, - Font_TTSatoshi_DemiBold_42_glyph_108, - Font_TTSatoshi_DemiBold_42_glyph_109, - Font_TTSatoshi_DemiBold_42_glyph_110, - Font_TTSatoshi_DemiBold_42_glyph_111, - Font_TTSatoshi_DemiBold_42_glyph_112, - Font_TTSatoshi_DemiBold_42_glyph_113, - Font_TTSatoshi_DemiBold_42_glyph_114, - Font_TTSatoshi_DemiBold_42_glyph_115, - Font_TTSatoshi_DemiBold_42_glyph_116, - Font_TTSatoshi_DemiBold_42_glyph_117, - Font_TTSatoshi_DemiBold_42_glyph_118, - Font_TTSatoshi_DemiBold_42_glyph_119, - Font_TTSatoshi_DemiBold_42_glyph_120, - Font_TTSatoshi_DemiBold_42_glyph_121, - Font_TTSatoshi_DemiBold_42_glyph_122, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_97, - Font_TTSatoshi_DemiBold_42_glyph_98, - Font_TTSatoshi_DemiBold_42_glyph_99, - Font_TTSatoshi_DemiBold_42_glyph_100, - Font_TTSatoshi_DemiBold_42_glyph_101, - Font_TTSatoshi_DemiBold_42_glyph_102, - Font_TTSatoshi_DemiBold_42_glyph_103, - Font_TTSatoshi_DemiBold_42_glyph_104, - Font_TTSatoshi_DemiBold_42_glyph_105, - Font_TTSatoshi_DemiBold_42_glyph_106, - Font_TTSatoshi_DemiBold_42_glyph_107, - Font_TTSatoshi_DemiBold_42_glyph_108, - Font_TTSatoshi_DemiBold_42_glyph_109, - Font_TTSatoshi_DemiBold_42_glyph_110, - Font_TTSatoshi_DemiBold_42_glyph_111, - Font_TTSatoshi_DemiBold_42_glyph_112, - Font_TTSatoshi_DemiBold_42_glyph_113, - Font_TTSatoshi_DemiBold_42_glyph_114, - Font_TTSatoshi_DemiBold_42_glyph_115, - Font_TTSatoshi_DemiBold_42_glyph_116, - Font_TTSatoshi_DemiBold_42_glyph_117, - Font_TTSatoshi_DemiBold_42_glyph_118, - Font_TTSatoshi_DemiBold_42_glyph_119, - Font_TTSatoshi_DemiBold_42_glyph_120, - Font_TTSatoshi_DemiBold_42_glyph_121, - Font_TTSatoshi_DemiBold_42_glyph_122, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, - Font_TTSatoshi_DemiBold_42_glyph_nonprintable, -}; - -const font_info_t Font_TTSatoshi_DemiBold_42_info = { - .height = 42, - .max_height = 44, - .baseline = 9, - .glyph_data = Font_TTSatoshi_DemiBold_42, - .glyph_nonprintable = Font_TTSatoshi_DemiBold_42_glyph_nonprintable, -}; diff --git a/core/embed/gfx/fonts/font_ttsatoshi_demibold_42.h b/core/embed/gfx/fonts/font_ttsatoshi_demibold_42.h deleted file mode 100644 index 88315b15f17..00000000000 --- a/core/embed/gfx/fonts/font_ttsatoshi_demibold_42.h +++ /dev/null @@ -1,10 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -#if TREZOR_FONT_BPP != 4 -#error Wrong TREZOR_FONT_BPP (expected 4) -#endif - -extern const font_info_t Font_TTSatoshi_DemiBold_42_info; diff --git a/core/embed/gfx/fonts/font_unifont_bold_16.c b/core/embed/gfx/fonts/font_unifont_bold_16.c deleted file mode 100644 index 4e533c2edc1..00000000000 --- a/core/embed/gfx/fonts/font_unifont_bold_16.c +++ /dev/null @@ -1,214 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -// clang-format off - -// - the first two bytes are width and height of the glyph -// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph -// - the rest is packed 1-bit glyph data - -/* */ static const uint8_t Font_Unifont_Bold_16_glyph_32[] = { 0, 0, 8, 0, 0 }; -/* ! */ static const uint8_t Font_Unifont_Bold_16_glyph_33[] = { 2, 10, 7, 2, 10, 255, 252, 240 }; -/* " */ static const uint8_t Font_Unifont_Bold_16_glyph_34[] = { 6, 4, 7, 0, 12, 207, 60, 209, 0 }; -/* # */ static const uint8_t Font_Unifont_Bold_16_glyph_35[] = { 7, 10, 8, 0, 10, 54, 108, 223, 246, 205, 191, 236, 217, 176 }; -/* $ */ static const uint8_t Font_Unifont_Bold_16_glyph_36[] = { 7, 10, 8, 0, 10, 16, 251, 94, 183, 3, 181, 235, 124, 32 }; -/* % */ static const uint8_t Font_Unifont_Bold_16_glyph_37[] = { 7, 10, 8, 0, 10, 97, 102, 211, 65, 2, 11, 43, 150, 24 }; -/* & */ static const uint8_t Font_Unifont_Bold_16_glyph_38[] = { 8, 10, 8, 0, 10, 56, 108, 108, 104, 48, 107, 206, 204, 206, 122, 0 }; -/* ' */ static const uint8_t Font_Unifont_Bold_16_glyph_39[] = { 2, 4, 7, 2, 12, 253, 0 }; -/* ( */ static const uint8_t Font_Unifont_Bold_16_glyph_40[] = { 4, 12, 7, 2, 11, 54, 108, 204, 204, 198, 99, 0 }; -/* ) */ static const uint8_t Font_Unifont_Bold_16_glyph_41[] = { 4, 12, 7, 0, 11, 198, 99, 51, 51, 54, 108, 0 }; -/* * */ static const uint8_t Font_Unifont_Bold_16_glyph_42[] = { 7, 7, 8, 0, 8, 17, 37, 81, 197, 82, 68, 0 }; -/* + */ static const uint8_t Font_Unifont_Bold_16_glyph_43[] = { 7, 7, 8, 0, 8, 16, 32, 71, 241, 2, 4, 0 }; -/* , */ static const uint8_t Font_Unifont_Bold_16_glyph_44[] = { 3, 4, 7, 1, 2, 237, 224 }; -/* - */ static const uint8_t Font_Unifont_Bold_16_glyph_45[] = { 5, 1, 7, 0, 5, 248 }; -/* . */ static const uint8_t Font_Unifont_Bold_16_glyph_46[] = { 2, 2, 7, 2, 2, 240 }; -/* / */ static const uint8_t Font_Unifont_Bold_16_glyph_47[] = { 6, 10, 7, 0, 10, 12, 49, 132, 48, 194, 24, 195, 0 }; -/* 0 */ static const uint8_t Font_Unifont_Bold_16_glyph_48[] = { 7, 10, 8, 0, 10, 56, 219, 30, 125, 122, 249, 227, 108, 112 }; -/* 1 */ static const uint8_t Font_Unifont_Bold_16_glyph_49[] = { 6, 10, 7, 0, 10, 51, 195, 12, 48, 195, 12, 51, 240 }; -/* 2 */ static const uint8_t Font_Unifont_Bold_16_glyph_50[] = { 7, 10, 8, 0, 10, 125, 143, 24, 48, 195, 12, 112, 193, 252 }; -/* 3 */ static const uint8_t Font_Unifont_Bold_16_glyph_51[] = { 7, 10, 8, 0, 10, 125, 143, 24, 49, 192, 193, 227, 198, 248 }; -/* 4 */ static const uint8_t Font_Unifont_Bold_16_glyph_52[] = { 7, 10, 8, 0, 10, 12, 120, 179, 100, 217, 191, 134, 12, 24 }; -/* 5 */ static const uint8_t Font_Unifont_Bold_16_glyph_53[] = { 7, 10, 8, 0, 10, 255, 131, 6, 15, 193, 193, 227, 198, 248 }; -/* 6 */ static const uint8_t Font_Unifont_Bold_16_glyph_54[] = { 7, 10, 8, 0, 10, 60, 195, 6, 15, 216, 241, 227, 198, 248 }; -/* 7 */ static const uint8_t Font_Unifont_Bold_16_glyph_55[] = { 6, 10, 7, 0, 10, 252, 48, 195, 24, 99, 12, 97, 128 }; -/* 8 */ static const uint8_t Font_Unifont_Bold_16_glyph_56[] = { 7, 10, 8, 0, 10, 125, 143, 30, 55, 216, 241, 227, 198, 248 }; -/* 9 */ static const uint8_t Font_Unifont_Bold_16_glyph_57[] = { 7, 10, 8, 0, 10, 125, 143, 30, 60, 111, 193, 131, 12, 240 }; -/* : */ static const uint8_t Font_Unifont_Bold_16_glyph_58[] = { 2, 7, 7, 2, 8, 240, 60 }; -/* ; */ static const uint8_t Font_Unifont_Bold_16_glyph_59[] = { 2, 9, 7, 2, 8, 240, 61, 128 }; -/* < */ static const uint8_t Font_Unifont_Bold_16_glyph_60[] = { 6, 9, 7, 0, 9, 12, 99, 24, 193, 131, 6, 12 }; -/* = */ static const uint8_t Font_Unifont_Bold_16_glyph_61[] = { 6, 5, 7, 0, 7, 252, 0, 0, 252 }; -/* > */ static const uint8_t Font_Unifont_Bold_16_glyph_62[] = { 6, 9, 7, 0, 9, 193, 131, 6, 12, 99, 24, 192 }; -/* ? */ static const uint8_t Font_Unifont_Bold_16_glyph_63[] = { 7, 10, 8, 0, 10, 125, 143, 24, 48, 195, 6, 0, 24, 48 }; -/* @ */ static const uint8_t Font_Unifont_Bold_16_glyph_64[] = { 7, 10, 8, 0, 10, 60, 134, 109, 187, 118, 237, 205, 64, 124 }; -/* A */ static const uint8_t Font_Unifont_Bold_16_glyph_65[] = { 7, 10, 8, 0, 10, 56, 249, 182, 60, 120, 255, 227, 199, 140 }; -/* B */ static const uint8_t Font_Unifont_Bold_16_glyph_66[] = { 7, 10, 8, 0, 10, 253, 143, 30, 63, 216, 241, 227, 199, 248 }; -/* C */ static const uint8_t Font_Unifont_Bold_16_glyph_67[] = { 7, 10, 8, 0, 10, 125, 143, 30, 12, 24, 48, 99, 198, 248 }; -/* D */ static const uint8_t Font_Unifont_Bold_16_glyph_68[] = { 7, 10, 8, 0, 10, 241, 155, 30, 60, 120, 241, 227, 205, 224 }; -/* E */ static const uint8_t Font_Unifont_Bold_16_glyph_69[] = { 6, 10, 7, 0, 10, 255, 12, 48, 251, 12, 48, 195, 240 }; -/* F */ static const uint8_t Font_Unifont_Bold_16_glyph_70[] = { 6, 10, 7, 0, 10, 255, 12, 48, 195, 236, 48, 195, 0 }; -/* G */ static const uint8_t Font_Unifont_Bold_16_glyph_71[] = { 7, 10, 8, 0, 10, 125, 143, 30, 12, 27, 241, 227, 206, 236 }; -/* H */ static const uint8_t Font_Unifont_Bold_16_glyph_72[] = { 7, 10, 8, 0, 10, 199, 143, 30, 63, 248, 241, 227, 199, 140 }; -/* I */ static const uint8_t Font_Unifont_Bold_16_glyph_73[] = { 6, 10, 7, 0, 10, 252, 195, 12, 48, 195, 12, 51, 240 }; -/* J */ static const uint8_t Font_Unifont_Bold_16_glyph_74[] = { 7, 10, 8, 0, 10, 62, 24, 48, 96, 193, 131, 102, 204, 240 }; -/* K */ static const uint8_t Font_Unifont_Bold_16_glyph_75[] = { 7, 10, 8, 0, 10, 199, 143, 54, 207, 28, 62, 110, 207, 140 }; -/* L */ static const uint8_t Font_Unifont_Bold_16_glyph_76[] = { 6, 10, 7, 0, 10, 195, 12, 48, 195, 12, 48, 195, 240 }; -/* M */ static const uint8_t Font_Unifont_Bold_16_glyph_77[] = { 7, 10, 8, 0, 10, 131, 143, 31, 127, 250, 245, 227, 199, 140 }; -/* N */ static const uint8_t Font_Unifont_Bold_16_glyph_78[] = { 7, 10, 8, 0, 10, 199, 207, 158, 189, 122, 245, 231, 207, 140 }; -/* O */ static const uint8_t Font_Unifont_Bold_16_glyph_79[] = { 7, 10, 8, 0, 10, 125, 143, 30, 60, 120, 241, 227, 198, 248 }; -/* P */ static const uint8_t Font_Unifont_Bold_16_glyph_80[] = { 7, 10, 8, 0, 10, 253, 143, 30, 60, 127, 176, 96, 193, 128 }; -/* Q */ static const uint8_t Font_Unifont_Bold_16_glyph_81[] = { 7, 11, 8, 0, 10, 125, 143, 30, 60, 120, 241, 235, 238, 112, 24 }; -/* R */ static const uint8_t Font_Unifont_Bold_16_glyph_82[] = { 7, 10, 8, 0, 10, 253, 143, 30, 60, 127, 182, 102, 199, 140 }; -/* S */ static const uint8_t Font_Unifont_Bold_16_glyph_83[] = { 7, 10, 8, 0, 10, 125, 143, 31, 7, 135, 131, 227, 198, 248 }; -/* T */ static const uint8_t Font_Unifont_Bold_16_glyph_84[] = { 7, 10, 8, 0, 10, 254, 48, 96, 193, 131, 6, 12, 24, 48 }; -/* U */ static const uint8_t Font_Unifont_Bold_16_glyph_85[] = { 7, 10, 8, 0, 10, 199, 143, 30, 60, 120, 241, 227, 238, 248 }; -/* V */ static const uint8_t Font_Unifont_Bold_16_glyph_86[] = { 7, 10, 8, 0, 10, 199, 143, 26, 38, 205, 155, 20, 40, 112 }; -/* W */ static const uint8_t Font_Unifont_Bold_16_glyph_87[] = { 7, 10, 8, 0, 10, 199, 143, 30, 189, 122, 245, 255, 238, 136 }; -/* X */ static const uint8_t Font_Unifont_Bold_16_glyph_88[] = { 7, 10, 8, 0, 10, 199, 141, 179, 99, 135, 27, 54, 199, 140 }; -/* Y */ static const uint8_t Font_Unifont_Bold_16_glyph_89[] = { 6, 10, 7, 0, 10, 207, 60, 243, 73, 227, 12, 48, 192 }; -/* Z */ static const uint8_t Font_Unifont_Bold_16_glyph_90[] = { 7, 10, 8, 0, 10, 254, 12, 56, 225, 135, 28, 112, 193, 252 }; -/* [ */ static const uint8_t Font_Unifont_Bold_16_glyph_91[] = { 4, 12, 7, 2, 11, 252, 204, 204, 204, 204, 207, 0 }; -/* \ */ static const uint8_t Font_Unifont_Bold_16_glyph_92[] = { 6, 10, 7, 0, 10, 195, 6, 8, 48, 193, 6, 12, 48 }; -/* ] */ static const uint8_t Font_Unifont_Bold_16_glyph_93[] = { 4, 12, 7, 0, 11, 243, 51, 51, 51, 51, 63, 0 }; -/* ^ */ static const uint8_t Font_Unifont_Bold_16_glyph_94[] = { 7, 3, 8, 0, 12, 56, 219, 24 }; -/* _ */ static const uint8_t Font_Unifont_Bold_16_glyph_95[] = { 7, 1, 7, 0, 0, 254 }; -/* ` */ static const uint8_t Font_Unifont_Bold_16_glyph_96[] = { 4, 3, 7, 0, 13, 198, 48 }; -/* a */ static const uint8_t Font_Unifont_Bold_16_glyph_97[] = { 7, 8, 8, 0, 8, 125, 140, 27, 252, 120, 243, 187, 0 }; -/* b */ static const uint8_t Font_Unifont_Bold_16_glyph_98[] = { 7, 11, 8, 0, 11, 193, 131, 6, 238, 120, 241, 227, 199, 207, 112 }; -/* c */ static const uint8_t Font_Unifont_Bold_16_glyph_99[] = { 7, 8, 8, 0, 8, 125, 143, 30, 12, 24, 241, 190, 0 }; -/* d */ static const uint8_t Font_Unifont_Bold_16_glyph_100[] = { 7, 11, 8, 0, 11, 6, 12, 25, 188, 248, 241, 227, 199, 156, 216 }; -/* e */ static const uint8_t Font_Unifont_Bold_16_glyph_101[] = { 7, 8, 8, 0, 8, 125, 143, 31, 252, 24, 241, 190, 0 }; -/* f */ static const uint8_t Font_Unifont_Bold_16_glyph_102[] = { 7, 11, 8, 0, 11, 30, 96, 193, 143, 230, 12, 24, 48, 97, 240 }; -/* g */ static const uint8_t Font_Unifont_Bold_16_glyph_103[] = { 7, 11, 8, 0, 9, 2, 247, 54, 108, 207, 8, 62, 207, 141, 240 }; -/* h */ static const uint8_t Font_Unifont_Bold_16_glyph_104[] = { 7, 11, 8, 0, 11, 193, 131, 6, 238, 120, 241, 227, 199, 143, 24 }; -/* i */ static const uint8_t Font_Unifont_Bold_16_glyph_105[] = { 6, 11, 7, 0, 11, 48, 192, 60, 48, 195, 12, 48, 207, 192 }; -/* j */ static const uint8_t Font_Unifont_Bold_16_glyph_106[] = { 6, 13, 8, 0, 11, 24, 96, 31, 12, 48, 195, 12, 60, 246, 112 }; -/* k */ static const uint8_t Font_Unifont_Bold_16_glyph_107[] = { 7, 11, 8, 0, 11, 193, 131, 6, 60, 251, 60, 120, 217, 159, 24 }; -/* l */ static const uint8_t Font_Unifont_Bold_16_glyph_108[] = { 6, 11, 7, 0, 11, 240, 195, 12, 48, 195, 12, 48, 207, 192 }; -/* m */ static const uint8_t Font_Unifont_Bold_16_glyph_109[] = { 7, 8, 8, 0, 8, 237, 175, 94, 189, 122, 245, 235, 0 }; -/* n */ static const uint8_t Font_Unifont_Bold_16_glyph_110[] = { 7, 8, 8, 0, 8, 221, 207, 30, 60, 120, 241, 227, 0 }; -/* o */ static const uint8_t Font_Unifont_Bold_16_glyph_111[] = { 7, 8, 8, 0, 8, 125, 143, 30, 60, 120, 241, 190, 0 }; -/* p */ static const uint8_t Font_Unifont_Bold_16_glyph_112[] = { 7, 10, 8, 0, 8, 221, 207, 30, 60, 120, 249, 238, 193, 128 }; -/* q */ static const uint8_t Font_Unifont_Bold_16_glyph_113[] = { 7, 10, 8, 0, 8, 119, 159, 30, 60, 120, 243, 187, 6, 12 }; -/* r */ static const uint8_t Font_Unifont_Bold_16_glyph_114[] = { 7, 8, 8, 0, 8, 221, 207, 30, 12, 24, 48, 96, 0 }; -/* s */ static const uint8_t Font_Unifont_Bold_16_glyph_115[] = { 7, 8, 8, 0, 8, 125, 143, 27, 129, 216, 241, 190, 0 }; -/* t */ static const uint8_t Font_Unifont_Bold_16_glyph_116[] = { 7, 10, 8, 0, 10, 48, 96, 199, 243, 6, 12, 24, 48, 60 }; -/* u */ static const uint8_t Font_Unifont_Bold_16_glyph_117[] = { 7, 8, 8, 0, 8, 199, 143, 30, 60, 120, 243, 187, 0 }; -/* v */ static const uint8_t Font_Unifont_Bold_16_glyph_118[] = { 7, 8, 8, 0, 8, 199, 143, 26, 38, 205, 142, 28, 0 }; -/* w */ static const uint8_t Font_Unifont_Bold_16_glyph_119[] = { 7, 8, 8, 0, 8, 199, 175, 94, 189, 122, 245, 182, 0 }; -/* x */ static const uint8_t Font_Unifont_Bold_16_glyph_120[] = { 7, 8, 8, 0, 8, 199, 141, 177, 195, 141, 177, 227, 0 }; -/* y */ static const uint8_t Font_Unifont_Bold_16_glyph_121[] = { 7, 10, 8, 0, 8, 199, 143, 30, 60, 109, 205, 131, 6, 248 }; -/* z */ static const uint8_t Font_Unifont_Bold_16_glyph_122[] = { 7, 8, 8, 0, 8, 254, 12, 56, 227, 142, 56, 127, 0 }; -/* { */ static const uint8_t Font_Unifont_Bold_16_glyph_123[] = { 5, 13, 7, 1, 11, 59, 24, 99, 51, 12, 49, 152, 195, 128 }; -/* | */ static const uint8_t Font_Unifont_Bold_16_glyph_124[] = { 2, 14, 7, 2, 12, 255, 255, 255, 240 }; -/* } */ static const uint8_t Font_Unifont_Bold_16_glyph_125[] = { 5, 13, 7, 0, 11, 225, 140, 198, 24, 102, 99, 12, 110, 0 }; -/* ~ */ static const uint8_t Font_Unifont_Bold_16_glyph_126[] = { 7, 3, 8, 0, 11, 99, 118, 48 }; - -/* ? */ static const uint8_t Font_Unifont_Bold_16_glyph_nonprintable[] = { 6, 10, 7, 0, 10, 5, 199, 60, 231, 60, 255, 207, 63 }; - -static const uint8_t * const Font_Unifont_Bold_16[126 + 1 - 32] = { - Font_Unifont_Bold_16_glyph_32, - Font_Unifont_Bold_16_glyph_33, - Font_Unifont_Bold_16_glyph_34, - Font_Unifont_Bold_16_glyph_35, - Font_Unifont_Bold_16_glyph_36, - Font_Unifont_Bold_16_glyph_37, - Font_Unifont_Bold_16_glyph_38, - Font_Unifont_Bold_16_glyph_39, - Font_Unifont_Bold_16_glyph_40, - Font_Unifont_Bold_16_glyph_41, - Font_Unifont_Bold_16_glyph_42, - Font_Unifont_Bold_16_glyph_43, - Font_Unifont_Bold_16_glyph_44, - Font_Unifont_Bold_16_glyph_45, - Font_Unifont_Bold_16_glyph_46, - Font_Unifont_Bold_16_glyph_47, - Font_Unifont_Bold_16_glyph_48, - Font_Unifont_Bold_16_glyph_49, - Font_Unifont_Bold_16_glyph_50, - Font_Unifont_Bold_16_glyph_51, - Font_Unifont_Bold_16_glyph_52, - Font_Unifont_Bold_16_glyph_53, - Font_Unifont_Bold_16_glyph_54, - Font_Unifont_Bold_16_glyph_55, - Font_Unifont_Bold_16_glyph_56, - Font_Unifont_Bold_16_glyph_57, - Font_Unifont_Bold_16_glyph_58, - Font_Unifont_Bold_16_glyph_59, - Font_Unifont_Bold_16_glyph_60, - Font_Unifont_Bold_16_glyph_61, - Font_Unifont_Bold_16_glyph_62, - Font_Unifont_Bold_16_glyph_63, - Font_Unifont_Bold_16_glyph_64, - Font_Unifont_Bold_16_glyph_65, - Font_Unifont_Bold_16_glyph_66, - Font_Unifont_Bold_16_glyph_67, - Font_Unifont_Bold_16_glyph_68, - Font_Unifont_Bold_16_glyph_69, - Font_Unifont_Bold_16_glyph_70, - Font_Unifont_Bold_16_glyph_71, - Font_Unifont_Bold_16_glyph_72, - Font_Unifont_Bold_16_glyph_73, - Font_Unifont_Bold_16_glyph_74, - Font_Unifont_Bold_16_glyph_75, - Font_Unifont_Bold_16_glyph_76, - Font_Unifont_Bold_16_glyph_77, - Font_Unifont_Bold_16_glyph_78, - Font_Unifont_Bold_16_glyph_79, - Font_Unifont_Bold_16_glyph_80, - Font_Unifont_Bold_16_glyph_81, - Font_Unifont_Bold_16_glyph_82, - Font_Unifont_Bold_16_glyph_83, - Font_Unifont_Bold_16_glyph_84, - Font_Unifont_Bold_16_glyph_85, - Font_Unifont_Bold_16_glyph_86, - Font_Unifont_Bold_16_glyph_87, - Font_Unifont_Bold_16_glyph_88, - Font_Unifont_Bold_16_glyph_89, - Font_Unifont_Bold_16_glyph_90, - Font_Unifont_Bold_16_glyph_91, - Font_Unifont_Bold_16_glyph_92, - Font_Unifont_Bold_16_glyph_93, - Font_Unifont_Bold_16_glyph_94, - Font_Unifont_Bold_16_glyph_95, - Font_Unifont_Bold_16_glyph_96, - Font_Unifont_Bold_16_glyph_97, - Font_Unifont_Bold_16_glyph_98, - Font_Unifont_Bold_16_glyph_99, - Font_Unifont_Bold_16_glyph_100, - Font_Unifont_Bold_16_glyph_101, - Font_Unifont_Bold_16_glyph_102, - Font_Unifont_Bold_16_glyph_103, - Font_Unifont_Bold_16_glyph_104, - Font_Unifont_Bold_16_glyph_105, - Font_Unifont_Bold_16_glyph_106, - Font_Unifont_Bold_16_glyph_107, - Font_Unifont_Bold_16_glyph_108, - Font_Unifont_Bold_16_glyph_109, - Font_Unifont_Bold_16_glyph_110, - Font_Unifont_Bold_16_glyph_111, - Font_Unifont_Bold_16_glyph_112, - Font_Unifont_Bold_16_glyph_113, - Font_Unifont_Bold_16_glyph_114, - Font_Unifont_Bold_16_glyph_115, - Font_Unifont_Bold_16_glyph_116, - Font_Unifont_Bold_16_glyph_117, - Font_Unifont_Bold_16_glyph_118, - Font_Unifont_Bold_16_glyph_119, - Font_Unifont_Bold_16_glyph_120, - Font_Unifont_Bold_16_glyph_121, - Font_Unifont_Bold_16_glyph_122, - Font_Unifont_Bold_16_glyph_123, - Font_Unifont_Bold_16_glyph_124, - Font_Unifont_Bold_16_glyph_125, - Font_Unifont_Bold_16_glyph_126, -}; - -const font_info_t Font_Unifont_Bold_16_info = { - .height = 16, - .max_height = 15, - .baseline = 2, - .glyph_data = Font_Unifont_Bold_16, - .glyph_nonprintable = Font_Unifont_Bold_16_glyph_nonprintable, -}; diff --git a/core/embed/gfx/fonts/font_unifont_bold_16.h b/core/embed/gfx/fonts/font_unifont_bold_16.h deleted file mode 100644 index 07fb226ba68..00000000000 --- a/core/embed/gfx/fonts/font_unifont_bold_16.h +++ /dev/null @@ -1,10 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -#if TREZOR_FONT_BPP != 1 -#error Wrong TREZOR_FONT_BPP (expected 1) -#endif - -extern const font_info_t Font_Unifont_Bold_16_info; diff --git a/core/embed/gfx/fonts/font_unifont_regular_16.c b/core/embed/gfx/fonts/font_unifont_regular_16.c deleted file mode 100644 index 380fa89306c..00000000000 --- a/core/embed/gfx/fonts/font_unifont_regular_16.c +++ /dev/null @@ -1,218 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -// clang-format off - -// - the first two bytes are width and height of the glyph -// - the third, fourth and fifth bytes are advance, bearingX and bearingY of the horizontal metrics of the glyph -// - the rest is packed 1-bit glyph data - -// MANUAL CHANGES! -// In cases where the width and advance were the same (usually 7 and 7), increasing -// the advance to 8, so that these wide letters do not collide with the following one. - -/* */ static const uint8_t Font_Unifont_Regular_16_glyph_32[] = { 0, 0, 8, 0, 0 }; -/* ! */ static const uint8_t Font_Unifont_Regular_16_glyph_33[] = { 1, 10, 7, 3, 10, 254, 192 }; -/* " */ static const uint8_t Font_Unifont_Regular_16_glyph_34[] = { 5, 4, 7, 1, 12, 140, 99, 16 }; -/* # */ static const uint8_t Font_Unifont_Regular_16_glyph_35[] = { 6, 10, 7, 0, 10, 36, 146, 127, 73, 47, 228, 146, 64 }; -/* $ */ static const uint8_t Font_Unifont_Regular_16_glyph_36[] = { 7, 10, 8, 0, 10, 16, 250, 76, 135, 3, 132, 201, 124, 32 }; // < --- advanced changed from 7 to 8 -/* % */ static const uint8_t Font_Unifont_Regular_16_glyph_37[] = { 7, 10, 8, 0, 10, 99, 42, 83, 65, 2, 11, 41, 83, 24 }; // < --- advanced changed from 7 to 8 -/* & */ static const uint8_t Font_Unifont_Regular_16_glyph_38[] = { 7, 10, 8, 0, 10, 56, 137, 17, 67, 10, 98, 194, 140, 228 }; // < --- advanced changed from 7 to 8 -/* ' */ static const uint8_t Font_Unifont_Regular_16_glyph_39[] = { 1, 4, 7, 3, 12, 240 }; -/* ( */ static const uint8_t Font_Unifont_Regular_16_glyph_40[] = { 3, 12, 7, 2, 11, 41, 73, 36, 137, 16 }; -/* ) */ static const uint8_t Font_Unifont_Regular_16_glyph_41[] = { 3, 12, 7, 1, 11, 137, 18, 73, 41, 64 }; -/* * */ static const uint8_t Font_Unifont_Regular_16_glyph_42[] = { 7, 7, 8, 0, 8, 17, 37, 81, 197, 82, 68, 0 }; // < --- advanced changed from 7 to 8 -/* + */ static const uint8_t Font_Unifont_Regular_16_glyph_43[] = { 7, 7, 8, 0, 8, 16, 32, 71, 241, 2, 4, 0 }; // < --- advanced changed from 7 to 8 -/* , */ static const uint8_t Font_Unifont_Regular_16_glyph_44[] = { 2, 4, 7, 2, 2, 214 }; -/* - */ static const uint8_t Font_Unifont_Regular_16_glyph_45[] = { 4, 1, 7, 1, 5, 240 }; -/* . */ static const uint8_t Font_Unifont_Regular_16_glyph_46[] = { 2, 2, 7, 2, 2, 240 }; -/* / */ static const uint8_t Font_Unifont_Regular_16_glyph_47[] = { 6, 10, 7, 0, 10, 4, 16, 132, 16, 130, 16, 130, 0 }; -/* 0 */ static const uint8_t Font_Unifont_Regular_16_glyph_48[] = { 6, 10, 7, 0, 10, 49, 40, 99, 150, 156, 97, 72, 192 }; -/* 1 */ static const uint8_t Font_Unifont_Regular_16_glyph_49[] = { 5, 10, 7, 1, 10, 35, 40, 66, 16, 132, 39, 192 }; -/* 2 */ static const uint8_t Font_Unifont_Regular_16_glyph_50[] = { 6, 10, 7, 0, 10, 122, 24, 65, 24, 132, 32, 131, 240 }; -/* 3 */ static const uint8_t Font_Unifont_Regular_16_glyph_51[] = { 6, 10, 7, 0, 10, 122, 24, 65, 56, 16, 97, 133, 224 }; -/* 4 */ static const uint8_t Font_Unifont_Regular_16_glyph_52[] = { 6, 10, 7, 0, 10, 8, 98, 146, 138, 47, 194, 8, 32 }; -/* 5 */ static const uint8_t Font_Unifont_Regular_16_glyph_53[] = { 6, 10, 7, 0, 10, 254, 8, 32, 248, 16, 65, 133, 224 }; -/* 6 */ static const uint8_t Font_Unifont_Regular_16_glyph_54[] = { 6, 10, 7, 0, 10, 57, 8, 32, 250, 24, 97, 133, 224 }; -/* 7 */ static const uint8_t Font_Unifont_Regular_16_glyph_55[] = { 6, 10, 7, 0, 10, 252, 16, 66, 8, 33, 4, 16, 64 }; -/* 8 */ static const uint8_t Font_Unifont_Regular_16_glyph_56[] = { 6, 10, 7, 0, 10, 122, 24, 97, 122, 24, 97, 133, 224 }; -/* 9 */ static const uint8_t Font_Unifont_Regular_16_glyph_57[] = { 6, 10, 7, 0, 10, 122, 24, 97, 124, 16, 65, 9, 192 }; -/* : */ static const uint8_t Font_Unifont_Regular_16_glyph_58[] = { 2, 7, 7, 2, 8, 240, 60 }; -/* ; */ static const uint8_t Font_Unifont_Regular_16_glyph_59[] = { 2, 9, 7, 2, 8, 240, 53, 128 }; -/* < */ static const uint8_t Font_Unifont_Regular_16_glyph_60[] = { 5, 9, 7, 1, 9, 8, 136, 136, 32, 130, 8 }; -/* = */ static const uint8_t Font_Unifont_Regular_16_glyph_61[] = { 6, 5, 7, 0, 7, 252, 0, 0, 252 }; -/* > */ static const uint8_t Font_Unifont_Regular_16_glyph_62[] = { 5, 9, 7, 0, 9, 130, 8, 32, 136, 136, 128 }; -/* ? */ static const uint8_t Font_Unifont_Regular_16_glyph_63[] = { 6, 10, 7, 0, 10, 122, 24, 65, 8, 65, 0, 16, 64 }; -/* @ */ static const uint8_t Font_Unifont_Regular_16_glyph_64[] = { 6, 10, 7, 0, 10, 57, 25, 107, 166, 154, 103, 64, 240 }; -/* A */ static const uint8_t Font_Unifont_Regular_16_glyph_65[] = { 6, 10, 7, 0, 10, 49, 36, 161, 135, 248, 97, 134, 16 }; -/* B */ static const uint8_t Font_Unifont_Regular_16_glyph_66[] = { 6, 10, 7, 0, 10, 250, 24, 97, 250, 24, 97, 135, 224 }; -/* C */ static const uint8_t Font_Unifont_Regular_16_glyph_67[] = { 6, 10, 7, 0, 10, 122, 24, 96, 130, 8, 33, 133, 224 }; -/* D */ static const uint8_t Font_Unifont_Regular_16_glyph_68[] = { 6, 10, 7, 0, 10, 242, 40, 97, 134, 24, 97, 139, 192 }; -/* E */ static const uint8_t Font_Unifont_Regular_16_glyph_69[] = { 6, 10, 7, 0, 10, 254, 8, 32, 250, 8, 32, 131, 240 }; -/* F */ static const uint8_t Font_Unifont_Regular_16_glyph_70[] = { 6, 10, 7, 0, 10, 254, 8, 32, 250, 8, 32, 130, 0 }; -/* G */ static const uint8_t Font_Unifont_Regular_16_glyph_71[] = { 6, 10, 7, 0, 10, 122, 24, 96, 130, 120, 97, 141, 208 }; -/* H */ static const uint8_t Font_Unifont_Regular_16_glyph_72[] = { 6, 10, 7, 0, 10, 134, 24, 97, 254, 24, 97, 134, 16 }; -/* I */ static const uint8_t Font_Unifont_Regular_16_glyph_73[] = { 5, 10, 7, 1, 10, 249, 8, 66, 16, 132, 39, 192 }; -/* J */ static const uint8_t Font_Unifont_Regular_16_glyph_74[] = { 7, 10, 8, 0, 10, 62, 16, 32, 64, 129, 2, 68, 136, 224 }; // < --- advanced changed from 7 to 8 -/* K */ static const uint8_t Font_Unifont_Regular_16_glyph_75[] = { 6, 10, 7, 0, 10, 134, 41, 40, 195, 10, 36, 138, 16 }; -/* L */ static const uint8_t Font_Unifont_Regular_16_glyph_76[] = { 6, 10, 7, 0, 10, 130, 8, 32, 130, 8, 32, 131, 240 }; -/* M */ static const uint8_t Font_Unifont_Regular_16_glyph_77[] = { 6, 10, 7, 0, 10, 134, 28, 243, 182, 216, 97, 134, 16 }; -/* N */ static const uint8_t Font_Unifont_Regular_16_glyph_78[] = { 6, 10, 7, 0, 10, 135, 28, 105, 166, 89, 99, 142, 16 }; -/* O */ static const uint8_t Font_Unifont_Regular_16_glyph_79[] = { 6, 10, 7, 0, 10, 122, 24, 97, 134, 24, 97, 133, 224 }; -/* P */ static const uint8_t Font_Unifont_Regular_16_glyph_80[] = { 6, 10, 7, 0, 10, 250, 24, 97, 250, 8, 32, 130, 0 }; -/* Q */ static const uint8_t Font_Unifont_Regular_16_glyph_81[] = { 7, 11, 8, 0, 10, 121, 10, 20, 40, 80, 161, 90, 204, 240, 24 }; // < --- advanced changed from 7 to 8 -/* R */ static const uint8_t Font_Unifont_Regular_16_glyph_82[] = { 6, 10, 7, 0, 10, 250, 24, 97, 250, 72, 162, 134, 16 }; -/* S */ static const uint8_t Font_Unifont_Regular_16_glyph_83[] = { 6, 10, 7, 0, 10, 122, 24, 96, 96, 96, 97, 133, 224 }; -/* T */ static const uint8_t Font_Unifont_Regular_16_glyph_84[] = { 7, 10, 8, 0, 10, 254, 32, 64, 129, 2, 4, 8, 16, 32 }; // < --- advanced changed from 7 to 8 -/* U */ static const uint8_t Font_Unifont_Regular_16_glyph_85[] = { 6, 10, 7, 0, 10, 134, 24, 97, 134, 24, 97, 133, 224 }; -/* V */ static const uint8_t Font_Unifont_Regular_16_glyph_86[] = { 7, 10, 8, 0, 10, 131, 6, 10, 36, 72, 138, 20, 16, 32 }; // < --- advanced changed from 7 to 8 -/* W */ static const uint8_t Font_Unifont_Regular_16_glyph_87[] = { 6, 10, 7, 0, 10, 134, 24, 97, 182, 220, 243, 134, 16 }; -/* X */ static const uint8_t Font_Unifont_Regular_16_glyph_88[] = { 6, 10, 7, 0, 10, 134, 20, 146, 48, 196, 146, 134, 16 }; -/* Y */ static const uint8_t Font_Unifont_Regular_16_glyph_89[] = { 7, 10, 8, 0, 10, 131, 5, 18, 34, 130, 4, 8, 16, 32 }; // < --- advanced changed from 7 to 8 -/* Z */ static const uint8_t Font_Unifont_Regular_16_glyph_90[] = { 6, 10, 7, 0, 10, 252, 16, 66, 16, 132, 32, 131, 240 }; -/* [ */ static const uint8_t Font_Unifont_Regular_16_glyph_91[] = { 3, 12, 7, 3, 11, 242, 73, 36, 146, 112 }; -/* \ */ static const uint8_t Font_Unifont_Regular_16_glyph_92[] = { 6, 10, 7, 0, 10, 130, 4, 8, 32, 65, 2, 4, 16 }; -/* ] */ static const uint8_t Font_Unifont_Regular_16_glyph_93[] = { 3, 12, 7, 0, 11, 228, 146, 73, 36, 240 }; -/* ^ */ static const uint8_t Font_Unifont_Regular_16_glyph_94[] = { 6, 3, 7, 0, 12, 49, 40, 64 }; -/* _ */ static const uint8_t Font_Unifont_Regular_16_glyph_95[] = { 7, 1, 8, 0, 0, 254 }; // < --- advanced changed from 7 to 8 -/* ` */ static const uint8_t Font_Unifont_Regular_16_glyph_96[] = { 3, 3, 7, 1, 13, 136, 128 }; -/* a */ static const uint8_t Font_Unifont_Regular_16_glyph_97[] = { 6, 8, 7, 0, 8, 122, 16, 95, 134, 24, 221 }; -/* b */ static const uint8_t Font_Unifont_Regular_16_glyph_98[] = { 6, 11, 7, 0, 11, 130, 8, 46, 198, 24, 97, 135, 27, 128 }; -/* c */ static const uint8_t Font_Unifont_Regular_16_glyph_99[] = { 6, 8, 7, 0, 8, 122, 24, 32, 130, 8, 94 }; -/* d */ static const uint8_t Font_Unifont_Regular_16_glyph_100[] = { 6, 11, 7, 0, 11, 4, 16, 93, 142, 24, 97, 134, 55, 64 }; -/* e */ static const uint8_t Font_Unifont_Regular_16_glyph_101[] = { 6, 8, 7, 0, 8, 122, 24, 127, 130, 8, 94 }; -/* f */ static const uint8_t Font_Unifont_Regular_16_glyph_102[] = { 5, 11, 7, 0, 11, 25, 8, 79, 144, 132, 33, 8 }; -/* g */ static const uint8_t Font_Unifont_Regular_16_glyph_103[] = { 6, 11, 7, 0, 9, 5, 216, 162, 137, 196, 30, 134, 23, 128 }; -/* h */ static const uint8_t Font_Unifont_Regular_16_glyph_104[] = { 6, 11, 7, 0, 11, 130, 8, 46, 198, 24, 97, 134, 24, 64 }; -/* i */ static const uint8_t Font_Unifont_Regular_16_glyph_105[] = { 5, 11, 7, 1, 11, 33, 0, 194, 16, 132, 33, 62 }; -/* j */ static const uint8_t Font_Unifont_Regular_16_glyph_106[] = { 5, 13, 7, 0, 11, 8, 64, 48, 132, 33, 8, 67, 38, 0 }; -/* k */ static const uint8_t Font_Unifont_Regular_16_glyph_107[] = { 6, 11, 7, 0, 11, 130, 8, 34, 146, 140, 40, 146, 40, 64 }; -/* l */ static const uint8_t Font_Unifont_Regular_16_glyph_108[] = { 5, 11, 7, 1, 11, 97, 8, 66, 16, 132, 33, 62 }; -/* m */ static const uint8_t Font_Unifont_Regular_16_glyph_109[] = { 7, 8, 8, 0, 8, 237, 38, 76, 153, 50, 100, 201, 0 }; // < --- advanced changed from 7 to 8 -/* n */ static const uint8_t Font_Unifont_Regular_16_glyph_110[] = { 6, 8, 7, 0, 8, 187, 24, 97, 134, 24, 97 }; -/* o */ static const uint8_t Font_Unifont_Regular_16_glyph_111[] = { 6, 8, 7, 0, 8, 122, 24, 97, 134, 24, 94 }; -/* p */ static const uint8_t Font_Unifont_Regular_16_glyph_112[] = { 6, 10, 7, 0, 8, 187, 24, 97, 134, 28, 110, 130, 0 }; -/* q */ static const uint8_t Font_Unifont_Regular_16_glyph_113[] = { 6, 10, 7, 0, 8, 118, 56, 97, 134, 24, 221, 4, 16 }; -/* r */ static const uint8_t Font_Unifont_Regular_16_glyph_114[] = { 6, 8, 7, 0, 8, 187, 24, 96, 130, 8, 32 }; -/* s */ static const uint8_t Font_Unifont_Regular_16_glyph_115[] = { 6, 8, 7, 0, 8, 122, 24, 24, 24, 24, 94 }; -/* t */ static const uint8_t Font_Unifont_Regular_16_glyph_116[] = { 5, 10, 7, 0, 10, 33, 9, 242, 16, 132, 32, 192 }; -/* u */ static const uint8_t Font_Unifont_Regular_16_glyph_117[] = { 6, 8, 7, 0, 8, 134, 24, 97, 134, 24, 221 }; -/* v */ static const uint8_t Font_Unifont_Regular_16_glyph_118[] = { 6, 8, 7, 0, 8, 134, 24, 82, 73, 35, 12 }; -/* w */ static const uint8_t Font_Unifont_Regular_16_glyph_119[] = { 7, 8, 8, 0, 8, 131, 38, 76, 153, 50, 100, 182, 0 }; // < --- advanced changed from 7 to 8 -/* x */ static const uint8_t Font_Unifont_Regular_16_glyph_120[] = { 6, 8, 7, 0, 8, 134, 20, 140, 49, 40, 97, 0 }; -/* y */ static const uint8_t Font_Unifont_Regular_16_glyph_121[] = { 6, 10, 7, 0, 8, 134, 24, 97, 133, 51, 65, 5, 224 }; -/* z */ static const uint8_t Font_Unifont_Regular_16_glyph_122[] = { 6, 8, 7, 0, 8, 252, 16, 132, 33, 8, 63 }; -/* { */ static const uint8_t Font_Unifont_Regular_16_glyph_123[] = { 4, 13, 7, 1, 11, 52, 66, 36, 132, 34, 68, 48 }; -/* | */ static const uint8_t Font_Unifont_Regular_16_glyph_124[] = { 1, 14, 7, 3, 12, 255, 252 }; -/* } */ static const uint8_t Font_Unifont_Regular_16_glyph_125[] = { 4, 13, 7, 1, 11, 194, 36, 66, 18, 68, 34, 192 }; -/* ~ */ static const uint8_t Font_Unifont_Regular_16_glyph_126[] = { 7, 3, 8, 0, 11, 99, 38, 48 }; // < --- advanced changed from 7 to 8 - -/* ? */ static const uint8_t Font_Unifont_Regular_16_glyph_nonprintable[] = { 6, 10, 7, 0, 10, 133, 231, 190, 247, 190, 255, 239, 191 }; - -static const uint8_t * const Font_Unifont_Regular_16[126 + 1 - 32] = { - Font_Unifont_Regular_16_glyph_32, - Font_Unifont_Regular_16_glyph_33, - Font_Unifont_Regular_16_glyph_34, - Font_Unifont_Regular_16_glyph_35, - Font_Unifont_Regular_16_glyph_36, - Font_Unifont_Regular_16_glyph_37, - Font_Unifont_Regular_16_glyph_38, - Font_Unifont_Regular_16_glyph_39, - Font_Unifont_Regular_16_glyph_40, - Font_Unifont_Regular_16_glyph_41, - Font_Unifont_Regular_16_glyph_42, - Font_Unifont_Regular_16_glyph_43, - Font_Unifont_Regular_16_glyph_44, - Font_Unifont_Regular_16_glyph_45, - Font_Unifont_Regular_16_glyph_46, - Font_Unifont_Regular_16_glyph_47, - Font_Unifont_Regular_16_glyph_48, - Font_Unifont_Regular_16_glyph_49, - Font_Unifont_Regular_16_glyph_50, - Font_Unifont_Regular_16_glyph_51, - Font_Unifont_Regular_16_glyph_52, - Font_Unifont_Regular_16_glyph_53, - Font_Unifont_Regular_16_glyph_54, - Font_Unifont_Regular_16_glyph_55, - Font_Unifont_Regular_16_glyph_56, - Font_Unifont_Regular_16_glyph_57, - Font_Unifont_Regular_16_glyph_58, - Font_Unifont_Regular_16_glyph_59, - Font_Unifont_Regular_16_glyph_60, - Font_Unifont_Regular_16_glyph_61, - Font_Unifont_Regular_16_glyph_62, - Font_Unifont_Regular_16_glyph_63, - Font_Unifont_Regular_16_glyph_64, - Font_Unifont_Regular_16_glyph_65, - Font_Unifont_Regular_16_glyph_66, - Font_Unifont_Regular_16_glyph_67, - Font_Unifont_Regular_16_glyph_68, - Font_Unifont_Regular_16_glyph_69, - Font_Unifont_Regular_16_glyph_70, - Font_Unifont_Regular_16_glyph_71, - Font_Unifont_Regular_16_glyph_72, - Font_Unifont_Regular_16_glyph_73, - Font_Unifont_Regular_16_glyph_74, - Font_Unifont_Regular_16_glyph_75, - Font_Unifont_Regular_16_glyph_76, - Font_Unifont_Regular_16_glyph_77, - Font_Unifont_Regular_16_glyph_78, - Font_Unifont_Regular_16_glyph_79, - Font_Unifont_Regular_16_glyph_80, - Font_Unifont_Regular_16_glyph_81, - Font_Unifont_Regular_16_glyph_82, - Font_Unifont_Regular_16_glyph_83, - Font_Unifont_Regular_16_glyph_84, - Font_Unifont_Regular_16_glyph_85, - Font_Unifont_Regular_16_glyph_86, - Font_Unifont_Regular_16_glyph_87, - Font_Unifont_Regular_16_glyph_88, - Font_Unifont_Regular_16_glyph_89, - Font_Unifont_Regular_16_glyph_90, - Font_Unifont_Regular_16_glyph_91, - Font_Unifont_Regular_16_glyph_92, - Font_Unifont_Regular_16_glyph_93, - Font_Unifont_Regular_16_glyph_94, - Font_Unifont_Regular_16_glyph_95, - Font_Unifont_Regular_16_glyph_96, - Font_Unifont_Regular_16_glyph_97, - Font_Unifont_Regular_16_glyph_98, - Font_Unifont_Regular_16_glyph_99, - Font_Unifont_Regular_16_glyph_100, - Font_Unifont_Regular_16_glyph_101, - Font_Unifont_Regular_16_glyph_102, - Font_Unifont_Regular_16_glyph_103, - Font_Unifont_Regular_16_glyph_104, - Font_Unifont_Regular_16_glyph_105, - Font_Unifont_Regular_16_glyph_106, - Font_Unifont_Regular_16_glyph_107, - Font_Unifont_Regular_16_glyph_108, - Font_Unifont_Regular_16_glyph_109, - Font_Unifont_Regular_16_glyph_110, - Font_Unifont_Regular_16_glyph_111, - Font_Unifont_Regular_16_glyph_112, - Font_Unifont_Regular_16_glyph_113, - Font_Unifont_Regular_16_glyph_114, - Font_Unifont_Regular_16_glyph_115, - Font_Unifont_Regular_16_glyph_116, - Font_Unifont_Regular_16_glyph_117, - Font_Unifont_Regular_16_glyph_118, - Font_Unifont_Regular_16_glyph_119, - Font_Unifont_Regular_16_glyph_120, - Font_Unifont_Regular_16_glyph_121, - Font_Unifont_Regular_16_glyph_122, - Font_Unifont_Regular_16_glyph_123, - Font_Unifont_Regular_16_glyph_124, - Font_Unifont_Regular_16_glyph_125, - Font_Unifont_Regular_16_glyph_126, -}; - -const font_info_t Font_Unifont_Regular_16_info = { - .height = 16, - .max_height = 15, - .baseline = 2, - .glyph_data = Font_Unifont_Regular_16, - .glyph_nonprintable = Font_Unifont_Regular_16_glyph_nonprintable, -}; diff --git a/core/embed/gfx/fonts/font_unifont_regular_16.h b/core/embed/gfx/fonts/font_unifont_regular_16.h deleted file mode 100644 index 752e8662323..00000000000 --- a/core/embed/gfx/fonts/font_unifont_regular_16.h +++ /dev/null @@ -1,10 +0,0 @@ -// This file is generated by core/tools/codegen/gen_font.py - -#include -#include "fonts.h" - -#if TREZOR_FONT_BPP != 1 -#error Wrong TREZOR_FONT_BPP (expected 1) -#endif - -extern const font_info_t Font_Unifont_Regular_16_info; diff --git a/core/embed/gfx/fonts/fonts.c b/core/embed/gfx/fonts/fonts.c index 446a8bfe24f..8a29e737f3d 100644 --- a/core/embed/gfx/fonts/fonts.c +++ b/core/embed/gfx/fonts/fonts.c @@ -25,27 +25,9 @@ #ifdef TREZOR_FONT_NORMAL_ENABLE #include TREZOR_FONT_NORMAL_INCLUDE #endif -#ifdef TREZOR_FONT_DEMIBOLD_ENABLE -#include TREZOR_FONT_DEMIBOLD_INCLUDE -#endif #ifdef TREZOR_FONT_BOLD_ENABLE #include TREZOR_FONT_BOLD_INCLUDE #endif -#ifdef TREZOR_FONT_NORMAL_UPPER_ENABLE -#include TREZOR_FONT_NORMAL_UPPER_INCLUDE -#endif -#ifdef TREZOR_FONT_BOLD_UPPER_ENABLE -#include TREZOR_FONT_BOLD_UPPER_INCLUDE -#endif -#ifdef TREZOR_FONT_MONO_ENABLE -#include TREZOR_FONT_MONO_INCLUDE -#endif -#ifdef TREZOR_FONT_BIG_ENABLE -#include TREZOR_FONT_BIG_INCLUDE -#endif -#ifdef TREZOR_FONT_SUB_ENABLE -#include TREZOR_FONT_SUB_INCLUDE -#endif #define PASTER(font_name) font_name##_info #define FONT_INFO(font_name) PASTER(font_name) @@ -59,30 +41,6 @@ const font_info_t *get_font_info(font_id_t font_id) { #ifdef TREZOR_FONT_BOLD_ENABLE case FONT_BOLD: return &FONT_INFO(TREZOR_FONT_BOLD_NAME); -#endif -#ifdef TREZOR_FONT_DEMIBOLD_ENABLE - case FONT_DEMIBOLD: - return &FONT_INFO(TREZOR_FONT_DEMIBOLD_NAME); -#endif -#ifdef TREZOR_FONT_MONO_ENABLE - case FONT_MONO: - return &FONT_INFO(TREZOR_FONT_MONO_NAME); -#endif -#ifdef TREZOR_FONT_BIG_ENABLE - case FONT_BIG: - return &FONT_INFO(TREZOR_FONT_BIG_NAME); -#endif -#ifdef TREZOR_FONT_NORMAL_UPPER_ENABLE - case FONT_NORMAL_UPPER: - return &FONT_INFO(TREZOR_FONT_NORMAL_UPPER_NAME); -#endif -#ifdef TREZOR_FONT_BOLD_UPPER_ENABLE - case FONT_BOLD_UPPER: - return &FONT_INFO(TREZOR_FONT_BOLD_UPPER_NAME); -#endif -#ifdef TREZOR_FONT_SUB_ENABLE - case FONT_SUB: - return &FONT_INFO(TREZOR_FONT_SUB_NAME); #endif default: return NULL; diff --git a/core/embed/gfx/fonts/fonts.h b/core/embed/gfx/fonts/fonts.h index 37eff857a2b..0fffabac387 100644 --- a/core/embed/gfx/fonts/fonts.h +++ b/core/embed/gfx/fonts/fonts.h @@ -30,6 +30,9 @@ #endif /// Font information structure containing metadata and pointers to font data +/// **This is now only used in `prodtest` and `bootloader_ci`** +/// For the main `bootloader` and `firmware`, `FontInfo` is used defined in +/// `core/embed/rust/src/ui/display/font.rs` typedef struct { int height; int max_height; @@ -38,17 +41,10 @@ typedef struct { const uint8_t *glyph_nonprintable; } font_info_t; -/// Font identifiers. Keep in sync with `enum font` definition in -/// `core/embed/rust/src/ui/display/font.rs`. +/// Font identifiers. typedef enum { FONT_NORMAL = -1, FONT_BOLD = -2, - FONT_MONO = -3, - FONT_BIG = -4, - FONT_DEMIBOLD = -5, - FONT_NORMAL_UPPER = -6, - FONT_BOLD_UPPER = -7, - FONT_SUB = -8, } font_id_t; const font_info_t *get_font_info(font_id_t font_id); diff --git a/core/embed/rust/build.rs b/core/embed/rust/build.rs index a0f904f2009..779ebb89753 100644 --- a/core/embed/rust/build.rs +++ b/core/embed/rust/build.rs @@ -355,10 +355,6 @@ fn generate_trezorhal_bindings() { .allowlist_function("gfx_mono8_blend_mono1p") .allowlist_function("gfx_mono8_blend_mono4") .allowlist_function("gfx_bitblt_wait") - // fonts - .allowlist_type("font_info_t") - .allowlist_function("get_font_info") - // .allowlist_function("font_get_glyph") // uzlib .allowlist_function("uzlib_uncompress_init") .allowlist_function("uzlib_uncompress") diff --git a/core/embed/rust/src/trezorhal/display.rs b/core/embed/rust/src/trezorhal/display.rs index 78d29f8bcf6..90d8ce73405 100644 --- a/core/embed/rust/src/trezorhal/display.rs +++ b/core/embed/rust/src/trezorhal/display.rs @@ -8,25 +8,10 @@ use ffi::{DISPLAY_RESX_, DISPLAY_RESY_}; pub const DISPLAY_RESX: u32 = DISPLAY_RESX_; pub const DISPLAY_RESY: u32 = DISPLAY_RESY_; -pub type FontInfo = ffi::font_info_t; - pub fn backlight(val: i32) -> i32 { unsafe { ffi::display_set_backlight(val) } } -pub fn get_font_info(font: i32) -> Option { - // SAFETY: - // - `ffi::get_font_info` returns either null (for invalid fonts) or a pointer - // to a static font_info_t struct - // - The font_info_t data is in ROM, making it immutable and static - // - The font_info_t contains pointers to static glyph data arrays also in ROM - // - All font data is generated at compile time and included in the binary - unsafe { - let font = ffi::get_font_info(font); - Some(*font.as_ref()?) - } -} - pub fn sync() { // NOTE: The sync operation is not called for tests because the linker // would otherwise report missing symbols if the tests are built with ASAN. diff --git a/core/embed/rust/src/ui/api/firmware_micropython.rs b/core/embed/rust/src/ui/api/firmware_micropython.rs index c72eed12034..60e24cc93f3 100644 --- a/core/embed/rust/src/ui/api/firmware_micropython.rs +++ b/core/embed/rust/src/ui/api/firmware_micropython.rs @@ -1258,7 +1258,7 @@ pub static mp_module_trezorui_api: Module = obj_module! { /// title: str, /// button: str, /// button_style_confirm: bool = False, - /// items: Iterable[tuple[int, str | bytes]], + /// items: Iterable[tuple[str | bytes, bool]], /// ) -> LayoutObj[UiResult]: /// """Confirm long content with the possibility to go back from any page. /// Meant to be used with confirm_with_info on UI Bolt and Caesar.""" @@ -1299,7 +1299,7 @@ pub static mp_module_trezorui_api: Module = obj_module! { /// button: str, /// info_button: str, /// verb_cancel: str | None = None, - /// items: Iterable[tuple[int, str | bytes]], + /// items: Iterable[tuple[str | bytes, bool]], /// ) -> LayoutObj[UiResult]: /// """Confirm given items but with third button. Always single page /// without scrolling. In Delizia, the button is placed in diff --git a/core/embed/rust/src/ui/component/connect.rs b/core/embed/rust/src/ui/component/connect.rs index e085b928b6f..df9fd5747f1 100644 --- a/core/embed/rust/src/ui/component/connect.rs +++ b/core/embed/rust/src/ui/component/connect.rs @@ -2,7 +2,7 @@ use crate::{ strutil::TString, ui::{ component::{Component, Event, EventCtx, Never, Pad}, - display::{Color, Font}, + display::{font::FONT_NORMAL, Color}, geometry::{Alignment, Offset, Rect}, shape::{self, Renderer}, }, @@ -43,7 +43,7 @@ impl Component for Connect { } fn render<'s>(&'s self, target: &mut impl Renderer<'s>) { - let font = Font::NORMAL; + let font = FONT_NORMAL; self.bg.render(target); diff --git a/core/embed/rust/src/ui/component/text/op.rs b/core/embed/rust/src/ui/component/text/op.rs index 101bfc8c227..3c199b46a45 100644 --- a/core/embed/rust/src/ui/component/text/op.rs +++ b/core/embed/rust/src/ui/component/text/op.rs @@ -1,7 +1,10 @@ use crate::{ strutil::TString, ui::{ - display::{Color, Font}, + display::{ + font::{FONT_BOLD, FONT_BOLD_UPPER, FONT_DEMIBOLD, FONT_MONO, FONT_NORMAL}, + Color, Font, + }, geometry::{Alignment, Offset, Rect}, util::ResultExt, }, @@ -241,24 +244,26 @@ impl<'a> OpTextLayout<'a> { // Op-adding aggregation operations impl<'a> OpTextLayout<'a> { + // TODO: use TextStyle instead because we do not want e.g. BOLD_UPPER in all + // layouts pub fn text_normal(self, text: impl Into>) -> Self { - self.font(Font::NORMAL).text(text.into()) + self.font(FONT_NORMAL).text(text.into()) } pub fn text_mono(self, text: impl Into>) -> Self { - self.font(Font::MONO).text(text.into()) + self.font(FONT_MONO).text(text.into()) } pub fn text_bold(self, text: impl Into>) -> Self { - self.font(Font::BOLD).text(text.into()) + self.font(FONT_BOLD).text(text.into()) } pub fn text_bold_upper(self, text: impl Into>) -> Self { - self.font(Font::BOLD_UPPER).text(text.into()) + self.font(FONT_BOLD_UPPER).text(text.into()) } pub fn text_demibold(self, text: impl Into>) -> Self { - self.font(Font::DEMIBOLD).text(text.into()) + self.font(FONT_DEMIBOLD).text(text.into()) } pub fn chunkify_text(self, chunks: Option<(Chunks, i16)>) -> Self { diff --git a/core/embed/rust/src/ui/component/text/paragraphs.rs b/core/embed/rust/src/ui/component/text/paragraphs.rs index 871fb8544eb..421ca94712f 100644 --- a/core/embed/rust/src/ui/component/text/paragraphs.rs +++ b/core/embed/rust/src/ui/component/text/paragraphs.rs @@ -4,10 +4,13 @@ use crate::{ strutil::TString, ui::{ component::{Component, Event, EventCtx, Never, Paginate}, - display::{toif::Icon, Color, Font}, + display::{ + font::{FONT_NORMAL, FONT_SUB}, + toif::Icon, + Color, + }, geometry::{Alignment, Dimensions, Insets, LinearPlacement, Offset, Point, Rect}, - shape, - shape::Renderer, + shape::{self, Renderer}, }, }; @@ -626,7 +629,7 @@ where } else { // current and future tasks - ordinal numbers or icon on current task if self.show_numerals { - let num_offset = Offset::new(4, Font::NORMAL.visible_text_height("1")); + let num_offset = Offset::new(4, FONT_NORMAL.visible_text_height("1")); self.render_numeral(base + num_offset, i, l.style.text_color, target); } else if i == current_visible { let color = l.style.text_color; @@ -645,7 +648,7 @@ where ) { let numeral = uformat!("{}.", n + 1); shape::Text::new(base_point, numeral.as_str()) - .with_font(Font::SUB) + .with_font(FONT_SUB) .with_fg(color) .render(target); } diff --git a/core/embed/rust/src/ui/display/font.rs b/core/embed/rust/src/ui/display/font.rs index 5ca49f0d93b..2ff732001cf 100644 --- a/core/embed/rust/src/ui/display/font.rs +++ b/core/embed/rust/src/ui/display/font.rs @@ -1,21 +1,34 @@ #[cfg(feature = "translations")] use spin::RwLockReadGuard; -use crate::{ - trezorhal::display::{self}, - ui::{ - constant, - geometry::Offset, - shape::{Bitmap, BitmapFormat}, - }, +use crate::ui::{ + constant, + geometry::Offset, + shape::{Bitmap, BitmapFormat}, }; -use core::slice; + +pub use super::super::fonts::*; #[cfg(feature = "translations")] use crate::translations::flash; #[cfg(feature = "translations")] use crate::translations::Translations; +/// Font information structure containing metadata and pointers to font data +#[derive(PartialEq, Eq)] +pub struct FontInfo { + pub height: i16, + pub max_height: i16, + pub baseline: i16, + pub glyph_data: &'static [&'static [u8]], + pub glyph_nonprintable: &'static [u8], +} +/// Convenience type for font references defined in the `fonts` module. +pub type Font = &'static FontInfo; + +// SAFETY: We are in a single-threaded environment. +unsafe impl Sync for FontInfo {} + /// Representation of a single glyph. /// We use standard typographic terms. For a nice explanation, see, e.g., /// the FreeType docs at https://www.freetype.org/freetype2/docs/glyphs/glyphs-3.html @@ -113,25 +126,25 @@ impl<'a> Glyph<'a> { /// Manages access to font resources and handles UTF-8 character glyphs /// /// The provider holds necessary lock for accessing translation data -/// and is typically used through the `Font::with_glyph_data` method +/// and is typically used through the `FontInfo::with_glyph_data` method /// to ensure proper resource cleanup. /// /// # Example /// ``` -/// let font = Font::NORMAL; +/// let font = FONT_NORMAL; /// font.with_glyph_data(|data| { /// let glyph = data.get_glyph('A'); /// // use glyph... /// }); /// ``` -pub struct GlyphData { - font: Font, +pub struct GlyphData<'g> { + font: &'g FontInfo, #[cfg(feature = "translations")] translations_guard: Option>>>, } -impl GlyphData { - fn new(font: Font) -> Self { +impl<'g> GlyphData<'g> { + fn new(font: &'g FontInfo) -> Self { #[cfg(feature = "translations")] let translations_guard = flash::get().ok(); @@ -148,56 +161,47 @@ impl GlyphData { c => c, }; let gl_data = self.get_glyph_data(ch as u16); - - Glyph::load(unwrap!(gl_data, "Failed to load glyph")) + Glyph::load(gl_data) } - fn get_glyph_data(&self, codepoint: u16) -> Option<&[u8]> { - display::get_font_info(self.font.into()).map(|font_info| { - if codepoint >= ' ' as u16 && codepoint < 0x7F { - // ASCII character - let offset = codepoint - ' ' as u16; - unsafe { - let ptr = *font_info.glyph_data.offset(offset as isize); - self.load_glyph_from_ptr(ptr) - } - } else { - #[cfg(feature = "translations")] - { - if codepoint >= 0x7F { - // UTF8 character from embedded blob - if let Some(glyph) = self - .translations_guard - .as_ref() - .and_then(|guard| guard.as_ref()) - .and_then(|translations| { - translations.get_utf8_glyph(codepoint, self.font as u16) - }) - { - return glyph; - } + fn get_glyph_data(&self, codepoint: u16) -> &[u8] { + if codepoint >= ' ' as u16 && codepoint < 0x7F { + // ASCII character + let offset = codepoint - ' ' as u16; + let slice = self.font.glyph_data[offset as usize]; + self.load_glyph_from_slice(slice) + } else { + #[cfg(feature = "translations")] + { + if codepoint >= 0x7F { + // UTF8 character from embedded blob + if let Some(glyph) = self + .translations_guard + .as_ref() + .and_then(|guard| guard.as_ref()) + .and_then(|translations| { + let font_id = font_to_font_id(self.font); + translations.get_utf8_glyph(codepoint, font_id) + }) + { + return glyph; } } - self.glyph_nonprintable() } - }) + self.glyph_nonprintable() + } } - /// Returns glyph data slice from a raw pointer by reading the header and - /// calculating full size. - unsafe fn load_glyph_from_ptr(&self, ptr: *const u8) -> &[u8] { - unsafe { - let header = slice::from_raw_parts(ptr, 2); - let full_size = calculate_glyph_size(header); - slice::from_raw_parts(ptr, full_size) - } + fn load_glyph_from_slice<'a>(&'a self, slice: &'a [u8]) -> &'a [u8] { + // TODO: can't we just check that `full_size == slize.len()`? + let header = &slice[0..2]; + let full_size = calculate_glyph_size(header); + &slice[0..full_size] } /// Returns glyph data slize for non-printable characters. fn glyph_nonprintable(&self) -> &[u8] { - display::get_font_info(self.font.into()) - .map(|font_info| unsafe { self.load_glyph_from_ptr(font_info.glyph_nonprintable) }) - .unwrap() + self.font.glyph_nonprintable } } @@ -216,31 +220,12 @@ fn calculate_glyph_size(header: &[u8]) -> usize { 5 + data_bytes as usize // header (5 bytes) + bitmap data } -/// Font constants. Keep in sync with `font_id_t` definition in -/// `core/embed/gfx/fonts/fonts.h`. -#[derive(Copy, Clone, PartialEq, Eq, FromPrimitive)] -#[repr(u8)] -#[allow(non_camel_case_types)] -pub enum Font { - NORMAL = 1, - BOLD = 2, - MONO = 3, - BIG = 4, - DEMIBOLD = 5, - NORMAL_UPPER = 6, - BOLD_UPPER = 7, - SUB = 8, -} - -impl From for i32 { - fn from(font: Font) -> i32 { - -(font as i32) - } -} - -impl Font { +impl FontInfo +where + Self: 'static, +{ /// Supports UTF8 characters - pub fn text_width(self, text: &str) -> i16 { + pub fn text_width(&self, text: &str) -> i16 { self.with_glyph_data(|data| { text.chars().fold(0, |acc, c| { let char_width = data.get_glyph(c).adv; @@ -251,7 +236,7 @@ impl Font { /// Width of the text that is visible. /// Not including the spaces before the first and after the last character. - pub fn visible_text_width(self, text: &str) -> i16 { + pub fn visible_text_width(&self, text: &str) -> i16 { if text.is_empty() { // No text, no width. return 0; @@ -278,7 +263,7 @@ impl Font { /// It determines this height by finding the highest /// pixel above the baseline and the lowest pixel below the baseline among /// the glyphs representing the characters in the provided text. - pub fn visible_text_height(self, text: &str) -> i16 { + pub fn visible_text_height(&self, text: &str) -> i16 { let (mut ascent, mut descent) = (0, 0); self.with_glyph_data(|data| { for c in text.chars() { @@ -295,13 +280,13 @@ impl Font { /// /// This function computes the height of a string containing both /// uppercase and lowercase characters of the given font. - pub fn allcase_text_height(self) -> i16 { + pub fn allcase_text_height(&self) -> i16 { self.visible_text_height("Ay") } /// Returning the x-bearing (offset) of the first character. /// Useful to enforce that the text is positioned correctly (e.g. centered). - pub fn start_x_bearing(self, text: &str) -> i16 { + pub fn start_x_bearing(&self, text: &str) -> i16 { if text.is_empty() { return 0; } @@ -311,23 +296,23 @@ impl Font { }) } - pub fn char_width(self, ch: char) -> i16 { + pub fn char_width(&self, ch: char) -> i16 { self.with_glyph_data(|data| data.get_glyph(ch).adv) } - pub fn text_height(self) -> i16 { - unwrap!(display::get_font_info(self.into())).height as i16 + pub fn text_height(&self) -> i16 { + self.height } - pub fn text_max_height(self) -> i16 { - unwrap!(display::get_font_info(self.into())).max_height as i16 + pub fn text_max_height(&self) -> i16 { + self.max_height } - pub fn text_baseline(self) -> i16 { - unwrap!(display::get_font_info(self.into())).baseline as i16 + pub fn text_baseline(&self) -> i16 { + self.baseline } - pub fn line_height(self) -> i16 { + pub fn line_height(&self) -> i16 { constant::LINE_SPACE + self.text_height() } @@ -358,13 +343,13 @@ impl Font { { // Create a new GlyphData instance that will be dropped at the end of this // function, releasing any translations lock - let glyph_data = GlyphData::new(*self); + let glyph_data = GlyphData::new(self); f(&glyph_data) } /// Get the longest prefix of a given `text` (breaking at word boundaries) /// that will fit into the area `width` pixels wide. - pub fn longest_prefix(self, width: i16, text: &str) -> &str { + pub fn longest_prefix<'a>(&self, width: i16, text: &'a str) -> &'a str { let mut prev_word_boundary = 0; let mut text_width = 0; self.with_glyph_data(|data| { @@ -386,7 +371,7 @@ impl Font { /// Get the length of the longest suffix from a given `text` /// that will fit into the area `width` pixels wide. - pub fn longest_suffix(self, width: i16, text: &str) -> usize { + pub fn longest_suffix(&self, width: i16, text: &str) -> usize { let mut text_width = 0; self.with_glyph_data(|data| { @@ -423,14 +408,14 @@ pub trait GlyphMetrics { impl GlyphMetrics for Font { fn char_width(&self, ch: char) -> i16 { - Font::char_width(*self, ch) + FontInfo::char_width(self, ch) } fn text_width(&self, text: &str) -> i16 { - Font::text_width(*self, text) + FontInfo::text_width(self, text) } fn line_height(&self) -> i16 { - Font::line_height(*self) + FontInfo::line_height(self) } } diff --git a/core/embed/rust/src/ui/layout_bolt/bootloader/mod.rs b/core/embed/rust/src/ui/layout_bolt/bootloader/mod.rs index a68129f0a8c..3ec988759b4 100644 --- a/core/embed/rust/src/ui/layout_bolt/bootloader/mod.rs +++ b/core/embed/rust/src/ui/layout_bolt/bootloader/mod.rs @@ -4,7 +4,7 @@ use crate::{ trezorhal::secbool::secbool, ui::{ component::{connect::Connect, Label}, - display::{self, Color, Font, Icon}, + display::{self, font, Color, Icon}, geometry::{Point, Rect}, layout::simplified::{run, show}, }, @@ -75,7 +75,7 @@ impl UIBolt { render_on_display(None, Some(bg_color), |target| { shape::Text::new(Point::new(SCREEN.width() / 2, SCREEN.height() - 45), text) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(fg_color) .render(target); @@ -381,7 +381,7 @@ impl BootloaderUI for UIBolt { let pos = Point::new(SCREEN.width() / 2, SCREEN.height() - 5 - 50); shape::Text::new(pos, text) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) //COLOR_BL_BG .render(target); @@ -398,7 +398,7 @@ impl BootloaderUI for UIBolt { shape::Text::new(pos, version_text.as_str()) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } @@ -413,7 +413,7 @@ impl BootloaderUI for UIBolt { let pos = Point::new(SCREEN.width() / 2, SCREEN.height() - 5); shape::Text::new(pos, text.as_str()) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } @@ -421,7 +421,7 @@ impl BootloaderUI for UIBolt { let pos = Point::new(SCREEN.width() / 2, SCREEN.height() - 5); shape::Text::new(pos, "click to continue ...") .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } diff --git a/core/embed/rust/src/ui/layout_bolt/bootloader/welcome.rs b/core/embed/rust/src/ui/layout_bolt/bootloader/welcome.rs index f62272334a0..7e6dbbdd525 100644 --- a/core/embed/rust/src/ui/layout_bolt/bootloader/welcome.rs +++ b/core/embed/rust/src/ui/layout_bolt/bootloader/welcome.rs @@ -1,7 +1,7 @@ use crate::ui::{ component::{Component, Event, EventCtx, Never, Pad}, constant::screen, - display::{toif::Toif, Font}, + display::{font, toif::Toif}, geometry::{Alignment, Alignment2D, Offset, Rect}, shape, shape::Renderer, @@ -41,13 +41,13 @@ impl Component for Welcome { shape::Text::new(screen().top_center() + Offset::y(102), "Get started with") .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(GREY_MEDIUM) .render(target); shape::Text::new(screen().top_center() + Offset::y(126), "your Trezor at") .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(GREY_MEDIUM) .render(target); diff --git a/core/embed/rust/src/ui/layout_bolt/component/homescreen.rs b/core/embed/rust/src/ui/layout_bolt/component/homescreen.rs index f9e7948b241..504f5c2480f 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/homescreen.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/homescreen.rs @@ -7,9 +7,10 @@ use crate::{ ui::{ component::{text::TextStyle, Component, Event, EventCtx, Pad, Timer}, display::{ + font, image::{ImageInfo, ToifFormat}, toif::Icon, - Color, Font, + Color, }, event::TouchEvent, geometry::{Alignment, Alignment2D, Insets, Offset, Point, Rect}, @@ -121,7 +122,7 @@ impl Homescreen { TR::progress__locking_device.map_translated(|t| { shape::Text::new(TOP_CENTER + Offset::y(HOLD_Y), t) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(theme::FG); }); self.loader.render(target) diff --git a/core/embed/rust/src/ui/layout_bolt/component/keyboard/pin.rs b/core/embed/rust/src/ui/layout_bolt/component/keyboard/pin.rs index 88dee381fa6..feba4d62629 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/keyboard/pin.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/keyboard/pin.rs @@ -9,7 +9,7 @@ use crate::{ base::ComponentExt, text::TextStyle, Child, Component, Event, EventCtx, Label, Maybe, Never, Pad, Timer, }, - display::Font, + display::font, event::TouchEvent, geometry::{Alignment, Alignment2D, Grid, Insets, Offset, Rect}, shape::{self, Renderer}, @@ -363,21 +363,22 @@ impl PinDots { } fn render_digits<'s>(&self, area: Rect, target: &mut impl Renderer<'s>) { - let center = area.center() + Offset::y(Font::MONO.text_height() / 2); - let right = center + Offset::x(Font::MONO.text_width("0") * (MAX_VISIBLE_DOTS as i16) / 2); + let center = area.center() + Offset::y(font::FONT_MONO.text_height() / 2); + let right = + center + Offset::x(font::FONT_MONO.text_width("0") * (MAX_VISIBLE_DOTS as i16) / 2); let digits = self.digits.len(); if digits <= MAX_VISIBLE_DOTS { shape::Text::new(center, &self.digits) .with_align(Alignment::Center) - .with_font(Font::MONO) + .with_font(font::FONT_MONO) .with_fg(self.style.text_color) .render(target); } else { let offset: usize = digits.saturating_sub(MAX_VISIBLE_DIGITS); shape::Text::new(right, &self.digits[offset..]) .with_align(Alignment::End) - .with_font(Font::MONO) + .with_font(font::FONT_MONO) .with_fg(self.style.text_color) .render(target); } @@ -421,11 +422,11 @@ impl PinDots { } if last_digit && digits > 0 { let last = &self.digits[(digits - 1)..digits]; - cursor.y = area.center().y + (Font::MONO.text_height() / 2); + cursor.y = area.center().y + (font::FONT_MONO.text_height() / 2); let offset = Offset::x(Self::DOT / 2); shape::Text::new(cursor + offset, last) .with_align(Alignment::Center) - .with_font(Font::MONO) + .with_font(font::FONT_MONO) .with_fg(self.style.text_color) .render(target); } else { diff --git a/core/embed/rust/src/ui/layout_bolt/component/number_input.rs b/core/embed/rust/src/ui/layout_bolt/component/number_input.rs index 278ac178cd1..f752f8b23cc 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/number_input.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/number_input.rs @@ -9,7 +9,7 @@ use crate::{ text::paragraphs::{Paragraph, Paragraphs}, Child, Component, Event, EventCtx, Pad, }, - display::Font, + display::font, geometry::{Alignment, Grid, Insets, Offset, Rect}, shape::{self, Renderer}, }, @@ -206,7 +206,7 @@ impl Component for NumberInput { let mut buf = [0u8; 10]; if let Some(text) = strutil::format_i64(self.value as i64, &mut buf) { - let digit_font = Font::DEMIBOLD; + let digit_font = font::FONT_DEMIBOLD; let y_offset = digit_font.text_height() / 2 + Button::BASELINE_OFFSET; shape::Bar::new(self.area).with_bg(theme::BG).render(target); diff --git a/core/embed/rust/src/ui/layout_bolt/component/progress.rs b/core/embed/rust/src/ui/layout_bolt/component/progress.rs index 7a75637565e..f938d4400f2 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/progress.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/progress.rs @@ -13,7 +13,7 @@ use crate::{ text::paragraphs::{Paragraph, Paragraphs}, Child, Component, Event, EventCtx, Label, Never, Pad, }, - display::{Font, LOADER_MAX}, + display::{font, LOADER_MAX}, geometry::{Insets, Offset, Rect}, shape::Renderer, util::animation_disabled, @@ -65,7 +65,7 @@ impl Component for Progress { .map(|t| t.chars().filter(|c| *c == '\n').count() as i16); let (title, rest) = Self::AREA.split_top(self.title.inner().max_size().y); let (loader, description) = - rest.split_bottom(Font::NORMAL.line_height() * description_lines); + rest.split_bottom(font::FONT_NORMAL.line_height() * description_lines); let loader = loader.inset(Insets::top(theme::CONTENT_BORDER)); self.title.place(title); self.loader_y_offset = loader.center().y - constant::screen().center().y; diff --git a/core/embed/rust/src/ui/layout_bolt/component/result.rs b/core/embed/rust/src/ui/layout_bolt/component/result.rs index f5de9e22633..a5435c6a118 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/result.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/result.rs @@ -3,7 +3,7 @@ use crate::{ ui::{ component::{text::TextStyle, Child, Component, Event, EventCtx, Label, Never, Pad}, constant::screen, - display::{Color, Font, Icon}, + display::{font, Color, Icon}, geometry::{Alignment2D, Insets, Offset, Point, Rect}, shape, shape::Renderer, @@ -34,11 +34,11 @@ impl ResultStyle { } pub const fn message_style(&self) -> TextStyle { - TextStyle::new(Font::NORMAL, self.fg_color, self.bg_color, FG, FG) + TextStyle::new(font::FONT_NORMAL, self.fg_color, self.bg_color, FG, FG) } pub const fn title_style(&self) -> TextStyle { - TextStyle::new(Font::BOLD_UPPER, self.fg_color, self.bg_color, FG, FG) + TextStyle::new(font::FONT_BOLD_UPPER, self.fg_color, self.bg_color, FG, FG) } } diff --git a/core/embed/rust/src/ui/layout_bolt/component/share_words.rs b/core/embed/rust/src/ui/layout_bolt/component/share_words.rs index 25d458bbfb9..9b385dff58d 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/share_words.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/share_words.rs @@ -2,7 +2,7 @@ use crate::{ strutil::TString, ui::{ component::{Component, Event, EventCtx, Never, Paginate}, - display::Font, + display::{font, Font}, geometry::{Offset, Rect}, shape::{self, Renderer}, }, @@ -16,7 +16,7 @@ use ufmt::uwrite; const WORDS_PER_PAGE: usize = 4; const TOP_PADDING_OFFSET: i16 = 13; -const WORD_FONT: Font = Font::MONO; +const WORD_FONT: Font = font::FONT_MONO; const MAX_WORDS: usize = 33; // super-shamir has 33 words, all other have less /// Showing the given share words. diff --git a/core/embed/rust/src/ui/layout_bolt/component/welcome_screen.rs b/core/embed/rust/src/ui/layout_bolt/component/welcome_screen.rs index 82cb957917b..bb4e5b5babe 100644 --- a/core/embed/rust/src/ui/layout_bolt/component/welcome_screen.rs +++ b/core/embed/rust/src/ui/layout_bolt/component/welcome_screen.rs @@ -14,12 +14,12 @@ use crate::ui::display::toif::Toif; const TEXT_BOTTOM_MARGIN: i16 = 24; // matching the homescreen label margin const ICON_TOP_MARGIN: i16 = 48; #[cfg(not(feature = "bootloader"))] -const MODEL_NAME_FONT: display::Font = display::Font::DEMIBOLD; -#[cfg(not(feature = "bootloader"))] use crate::{ trezorhal::model, ui::{display, geometry::Alignment}, }; +#[cfg(not(feature = "bootloader"))] +const MODEL_NAME_FONT: display::Font = display::font::FONT_DEMIBOLD; pub struct WelcomeScreen { area: Rect, diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_roboto_bold_20.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_roboto_bold_20.rs new file mode 100644 index 00000000000..d75dd89d0b0 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_roboto_bold_20.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_Roboto_Bold_20_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_Roboto_Bold_20_glyph_33: [u8; 33] = [ 4, 14, 5, 1, 14, 251, 79, 250, 63, 250, 63, 249, 47, 248, 31, 248, 31, 247, 15, 247, 15, 246, 15, 0, 0, 0, 0, 229, 28, 251, 79, 245, 28 ]; + +/// '"' (ASCII 34) +const Font_Roboto_Bold_20_glyph_34: [u8; 20] = [ 6, 5, 6, 0, 15, 246, 57, 207, 246, 57, 191, 246, 55, 175, 246, 53, 143, 246, 52, 127 ]; + +/// '#' (ASCII 35) +const Font_Roboto_Bold_20_glyph_35: [u8; 89] = [ 12, 14, 12, 0, 14, 0, 0, 247, 5, 252, 0, 0, 0, 250, 2, 223, 0, 0, 0, 253, 32, 175, 0, 0, 0, 207, 80, 127, 0, 160, 255, 255, 255, 255, 143, 112, 219, 223, 235, 191, 91, 0, 128, 63, 224, 14, 0, 0, 192, 15, 241, 11, 0, 246, 255, 255, 255, 255, 12, 180, 251, 189, 253, 188, 8, 0, 244, 7, 249, 2, 0, 0, 247, 5, 252, 0, 0, 0, 249, 2, 223, 0, 0, 0, 252, 16, 175, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_Roboto_Bold_20_glyph_36: [u8; 119] = [ 11, 19, 11, 0, 17, 0, 0, 0, 1, 0, 0, 0, 0, 176, 13, 0, 0, 0, 0, 176, 13, 0, 0, 0, 112, 252, 207, 6, 0, 0, 251, 255, 255, 143, 0, 80, 255, 93, 229, 255, 2, 128, 255, 5, 112, 255, 6, 112, 255, 7, 32, 102, 3, 32, 255, 159, 2, 0, 0, 0, 246, 255, 191, 3, 0, 0, 32, 250, 255, 111, 0, 0, 0, 16, 248, 255, 2, 112, 87, 0, 112, 255, 7, 240, 239, 0, 80, 255, 8, 176, 255, 74, 213, 255, 4, 32, 254, 255, 255, 191, 0, 0, 145, 253, 207, 7, 0, 0, 0, 224, 10, 0, 0, 0, 0, 208, 9, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_Roboto_Bold_20_glyph_37: [u8; 103] = [ 14, 14, 15, 0, 14, 0, 233, 158, 0, 0, 0, 0, 160, 207, 252, 10, 32, 60, 0, 240, 14, 224, 15, 192, 31, 0, 241, 12, 192, 31, 246, 7, 0, 240, 14, 224, 31, 222, 0, 0, 160, 207, 252, 170, 63, 0, 0, 0, 233, 174, 245, 9, 0, 0, 0, 0, 0, 237, 179, 239, 8, 0, 0, 112, 95, 253, 219, 127, 0, 0, 242, 43, 191, 16, 207, 0, 0, 251, 66, 159, 0, 239, 0, 80, 143, 32, 191, 16, 207, 0, 80, 12, 0, 253, 219, 127, 0, 0, 0, 0, 178, 239, 8 ]; + +/// '&' (ASCII 38) +const Font_Roboto_Bold_20_glyph_38: [u8; 103] = [ 13, 14, 13, 0, 14, 0, 80, 252, 158, 1, 0, 0, 0, 246, 255, 255, 13, 0, 0, 0, 254, 94, 248, 95, 0, 0, 0, 255, 7, 240, 111, 0, 0, 0, 254, 11, 247, 31, 0, 0, 0, 247, 223, 255, 6, 0, 0, 0, 224, 255, 78, 0, 0, 0, 16, 252, 255, 63, 80, 221, 0, 192, 255, 248, 239, 129, 255, 0, 243, 175, 64, 255, 237, 191, 0, 244, 175, 0, 244, 255, 95, 0, 241, 255, 72, 230, 255, 14, 0, 112, 255, 255, 255, 255, 159, 0, 0, 180, 254, 190, 181, 255, 7 ]; + +/// ''' (ASCII 39) +const Font_Roboto_Bold_20_glyph_39: [u8; 15] = [ 3, 5, 3, 0, 15, 246, 11, 246, 10, 246, 9, 246, 8, 246, 7 ]; + +/// '(' (ASCII 40) +const Font_Roboto_Bold_20_glyph_40: [u8; 65] = [ 6, 20, 7, 1, 16, 0, 16, 74, 0, 192, 127, 0, 250, 10, 64, 239, 0, 176, 143, 0, 241, 63, 0, 245, 15, 0, 249, 12, 0, 251, 11, 0, 252, 10, 0, 252, 10, 0, 251, 11, 0, 249, 12, 0, 245, 15, 0, 241, 63, 0, 176, 143, 0, 64, 239, 0, 0, 250, 9, 0, 192, 111, 0, 16, 74 ]; + +/// ')' (ASCII 41) +const Font_Roboto_Bold_20_glyph_41: [u8; 65] = [ 6, 20, 7, 0, 16, 163, 1, 0, 246, 29, 0, 160, 191, 0, 0, 254, 5, 0, 248, 13, 0, 243, 63, 0, 240, 127, 0, 192, 191, 0, 176, 223, 0, 144, 239, 0, 144, 239, 0, 176, 223, 0, 192, 191, 0, 224, 143, 0, 243, 63, 0, 248, 13, 0, 254, 5, 144, 191, 0, 246, 29, 0, 163, 1, 0 ]; + +/// '*' (ASCII 42) +const Font_Roboto_Bold_20_glyph_42: [u8; 50] = [ 9, 9, 9, 0, 14, 0, 64, 143, 0, 0, 0, 48, 143, 0, 0, 180, 53, 127, 147, 7, 247, 255, 255, 255, 10, 0, 228, 255, 21, 0, 0, 248, 251, 9, 0, 80, 207, 176, 111, 0, 48, 45, 32, 94, 0, 0, 0, 0, 0, 0 ]; + +/// '+' (ASCII 43) +const Font_Roboto_Bold_20_glyph_43: [u8; 71] = [ 11, 11, 11, 0, 12, 0, 0, 220, 10, 0, 0, 0, 0, 254, 12, 0, 0, 0, 0, 254, 12, 0, 0, 0, 0, 254, 12, 0, 0, 247, 255, 255, 255, 255, 4, 247, 255, 255, 255, 255, 4, 131, 136, 255, 142, 136, 2, 0, 0, 254, 12, 0, 0, 0, 0, 254, 12, 0, 0, 0, 0, 254, 12, 0, 0, 0, 0, 135, 6, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_Roboto_Bold_20_glyph_44: [u8; 19] = [ 4, 7, 5, 0, 3, 64, 70, 160, 191, 160, 191, 176, 175, 224, 111, 245, 14, 195, 4 ]; + +/// '-' (ASCII 45) +const Font_Roboto_Bold_20_glyph_45: [u8; 14] = [ 6, 3, 8, 1, 7, 254, 255, 159, 254, 255, 159, 68, 68, 36 ]; + +/// '.' (ASCII 46) +const Font_Roboto_Bold_20_glyph_46: [u8; 13] = [ 4, 4, 6, 1, 4, 0, 0, 245, 29, 251, 111, 229, 29 ]; + +/// '/' (ASCII 47) +const Font_Roboto_Bold_20_glyph_47: [u8; 80] = [ 9, 15, 8, 0, 14, 0, 0, 16, 255, 0, 0, 0, 96, 175, 0, 0, 0, 192, 95, 0, 0, 0, 241, 15, 0, 0, 0, 247, 10, 0, 0, 0, 253, 4, 0, 0, 32, 239, 0, 0, 0, 128, 159, 0, 0, 0, 208, 63, 0, 0, 0, 243, 14, 0, 0, 0, 248, 8, 0, 0, 0, 254, 3, 0, 0, 64, 223, 0, 0, 0, 144, 127, 0, 0, 0, 224, 47, 0, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_Roboto_Bold_20_glyph_48: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 128, 253, 190, 3, 0, 0, 252, 255, 255, 79, 0, 112, 255, 92, 248, 239, 0, 192, 255, 1, 144, 255, 4, 240, 223, 0, 80, 255, 7, 240, 207, 0, 64, 255, 8, 241, 207, 0, 64, 255, 8, 241, 207, 0, 64, 255, 8, 240, 207, 0, 64, 255, 8, 240, 223, 0, 80, 255, 6, 192, 255, 1, 144, 255, 3, 96, 255, 92, 247, 239, 0, 0, 252, 255, 255, 79, 0, 0, 128, 253, 190, 3, 0 ]; + +/// '1' (ASCII 49) +const Font_Roboto_Bold_20_glyph_49: [u8; 61] = [ 7, 14, 11, 1, 14, 0, 0, 165, 12, 64, 250, 255, 13, 246, 255, 255, 13, 246, 107, 255, 13, 1, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13, 0, 0, 255, 13 ]; + +/// '2' (ASCII 50) +const Font_Roboto_Bold_20_glyph_50: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 145, 253, 190, 4, 0, 32, 254, 255, 255, 127, 0, 192, 255, 89, 248, 255, 0, 242, 207, 0, 176, 255, 3, 130, 72, 0, 160, 255, 2, 0, 0, 0, 224, 239, 0, 0, 0, 0, 250, 111, 0, 0, 0, 144, 255, 10, 0, 0, 0, 248, 191, 0, 0, 0, 128, 255, 12, 0, 0, 0, 248, 207, 0, 0, 0, 112, 255, 94, 68, 68, 3, 240, 255, 255, 255, 255, 11, 240, 255, 255, 255, 255, 11 ]; + +/// '3' (ASCII 51) +const Font_Roboto_Bold_20_glyph_51: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 162, 254, 190, 3, 0, 80, 255, 255, 255, 111, 0, 224, 255, 88, 248, 255, 0, 177, 139, 0, 160, 255, 3, 0, 0, 0, 144, 255, 3, 0, 0, 0, 244, 223, 0, 0, 32, 255, 255, 28, 0, 0, 32, 255, 255, 60, 0, 0, 0, 51, 230, 255, 1, 0, 0, 0, 112, 255, 6, 228, 142, 0, 112, 255, 7, 241, 255, 88, 247, 255, 3, 112, 255, 255, 255, 143, 0, 0, 180, 254, 190, 4, 0 ]; + +/// '4' (ASCII 52) +const Font_Roboto_Bold_20_glyph_52: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 0, 0, 253, 95, 0, 0, 0, 112, 255, 95, 0, 0, 0, 242, 255, 95, 0, 0, 0, 251, 255, 95, 0, 0, 80, 255, 249, 95, 0, 0, 225, 127, 248, 95, 0, 0, 249, 13, 248, 95, 0, 48, 255, 4, 248, 95, 0, 208, 175, 0, 248, 95, 0, 246, 255, 255, 255, 255, 14, 246, 255, 255, 255, 255, 14, 65, 68, 68, 250, 143, 4, 0, 0, 0, 248, 95, 0, 0, 0, 0, 248, 95, 0 ]; + +/// '5' (ASCII 53) +const Font_Roboto_Bold_20_glyph_53: [u8; 75] = [ 10, 14, 11, 1, 14, 208, 255, 255, 255, 47, 240, 255, 255, 255, 47, 241, 175, 85, 85, 5, 243, 111, 0, 0, 0, 244, 79, 0, 0, 0, 246, 191, 254, 141, 0, 248, 255, 255, 255, 11, 131, 91, 82, 254, 79, 0, 0, 0, 245, 143, 0, 0, 0, 243, 159, 253, 14, 0, 246, 143, 249, 191, 101, 254, 63, 209, 255, 255, 255, 8, 0, 215, 239, 92, 0 ]; + +/// '6' (ASCII 54) +const Font_Roboto_Bold_20_glyph_54: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 0, 129, 236, 9, 0, 0, 96, 255, 255, 10, 0, 0, 246, 255, 123, 3, 0, 16, 255, 79, 0, 0, 0, 112, 255, 7, 0, 0, 0, 192, 255, 198, 239, 25, 0, 224, 255, 255, 255, 223, 0, 240, 255, 91, 230, 255, 6, 240, 223, 0, 64, 255, 10, 224, 223, 0, 16, 255, 11, 176, 255, 1, 64, 255, 10, 80, 255, 93, 230, 255, 4, 0, 249, 255, 255, 159, 0, 0, 80, 252, 207, 5, 0 ]; + +/// '7' (ASCII 55) +const Font_Roboto_Bold_20_glyph_55: [u8; 89] = [ 11, 14, 11, 0, 14, 246, 255, 255, 255, 255, 10, 246, 255, 255, 255, 255, 9, 65, 68, 68, 164, 255, 3, 0, 0, 0, 224, 207, 0, 0, 0, 0, 246, 95, 0, 0, 0, 0, 253, 14, 0, 0, 0, 80, 255, 7, 0, 0, 0, 192, 255, 1, 0, 0, 0, 244, 159, 0, 0, 0, 0, 251, 47, 0, 0, 0, 48, 255, 11, 0, 0, 0, 160, 255, 3, 0, 0, 0, 242, 207, 0, 0, 0, 0, 249, 95, 0, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_Roboto_Bold_20_glyph_56: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 145, 253, 191, 4, 0, 16, 253, 255, 255, 111, 0, 112, 255, 92, 248, 239, 0, 176, 255, 2, 176, 255, 3, 176, 255, 1, 160, 255, 2, 96, 255, 9, 243, 223, 0, 0, 249, 255, 255, 46, 0, 0, 247, 255, 255, 44, 0, 128, 255, 90, 231, 239, 1, 240, 223, 0, 96, 255, 6, 240, 223, 0, 96, 255, 7, 208, 255, 90, 230, 255, 4, 64, 255, 255, 255, 191, 0, 0, 162, 254, 206, 5, 0 ]; + +/// '9' (ASCII 57) +const Font_Roboto_Bold_20_glyph_57: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 128, 253, 158, 1, 0, 16, 253, 255, 255, 30, 0, 144, 255, 91, 249, 191, 0, 240, 239, 0, 176, 255, 1, 242, 191, 0, 112, 255, 5, 241, 207, 0, 96, 255, 6, 208, 255, 7, 210, 255, 6, 80, 255, 255, 255, 255, 5, 0, 230, 255, 188, 255, 3, 0, 0, 17, 208, 255, 0, 0, 0, 0, 248, 159, 0, 0, 96, 216, 255, 30, 0, 0, 240, 255, 223, 2, 0, 0, 240, 190, 6, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_Roboto_Bold_20_glyph_58: [u8; 27] = [ 4, 11, 6, 1, 11, 229, 29, 251, 95, 245, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 29, 251, 95, 245, 29 ]; + +/// ';' (ASCII 59) +const Font_Roboto_Bold_20_glyph_59: [u8; 50] = [ 5, 15, 5, 0, 11, 112, 191, 0, 224, 255, 3, 128, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 102, 0, 96, 255, 0, 96, 255, 0, 112, 223, 0, 176, 159, 0, 242, 47, 0, 177, 7, 0 ]; + +/// '<' (ASCII 60) +const Font_Roboto_Bold_20_glyph_60: [u8; 50] = [ 9, 9, 10, 0, 11, 0, 0, 0, 96, 12, 0, 0, 147, 255, 15, 0, 198, 255, 255, 11, 245, 255, 207, 23, 0, 247, 223, 3, 0, 0, 245, 255, 207, 22, 0, 0, 198, 255, 255, 11, 0, 0, 147, 255, 15, 0, 0, 0, 96, 12 ]; + +/// '=' (ASCII 61) +const Font_Roboto_Bold_20_glyph_61: [u8; 40] = [ 10, 7, 11, 1, 9, 250, 255, 255, 255, 31, 250, 255, 255, 255, 31, 83, 85, 85, 85, 5, 0, 0, 0, 0, 0, 250, 255, 255, 255, 31, 250, 255, 255, 255, 31, 83, 85, 85, 85, 5 ]; + +/// '>' (ASCII 62) +const Font_Roboto_Bold_20_glyph_62: [u8; 50] = [ 9, 9, 10, 1, 11, 123, 1, 0, 0, 0, 253, 175, 4, 0, 0, 249, 255, 223, 23, 0, 16, 181, 255, 255, 7, 0, 0, 194, 255, 10, 16, 182, 255, 255, 7, 249, 255, 223, 23, 0, 253, 175, 4, 0, 0, 123, 1, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_Roboto_Bold_20_glyph_63: [u8; 75] = [ 10, 14, 10, 0, 14, 0, 215, 239, 92, 0, 176, 255, 255, 255, 8, 244, 239, 118, 255, 15, 247, 95, 0, 250, 63, 0, 0, 0, 251, 47, 0, 0, 80, 255, 12, 0, 0, 245, 239, 2, 0, 16, 255, 46, 0, 0, 112, 255, 4, 0, 0, 144, 239, 0, 0, 0, 0, 0, 0, 0, 0, 96, 190, 0, 0, 0, 208, 255, 3, 0, 0, 112, 191, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_Roboto_Bold_20_glyph_64: [u8; 167] = [ 18, 18, 18, 0, 14, 0, 0, 16, 199, 254, 206, 23, 0, 0, 0, 0, 245, 239, 155, 235, 239, 4, 0, 0, 128, 239, 5, 0, 0, 228, 79, 0, 0, 244, 29, 0, 0, 0, 16, 238, 0, 0, 254, 3, 64, 252, 158, 1, 246, 7, 80, 159, 0, 245, 207, 254, 9, 240, 11, 176, 79, 0, 254, 4, 247, 8, 192, 15, 224, 15, 96, 191, 0, 248, 6, 176, 15, 240, 13, 176, 127, 0, 250, 5, 160, 15, 242, 12, 208, 79, 0, 251, 4, 192, 15, 241, 12, 224, 79, 0, 253, 2, 240, 12, 240, 14, 192, 143, 64, 255, 2, 246, 7, 192, 47, 96, 255, 253, 254, 172, 223, 0, 128, 143, 0, 249, 142, 177, 255, 26, 0, 16, 254, 4, 0, 0, 0, 0, 0, 0, 0, 245, 127, 1, 0, 48, 0, 0, 0, 0, 80, 255, 207, 203, 254, 3, 0, 0, 0, 0, 113, 236, 239, 140, 1, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_Roboto_Bold_20_glyph_65: [u8; 103] = [ 14, 14, 13, 0, 14, 0, 0, 208, 255, 4, 0, 0, 0, 0, 243, 255, 10, 0, 0, 0, 0, 249, 255, 31, 0, 0, 0, 0, 254, 254, 111, 0, 0, 0, 80, 255, 246, 207, 0, 0, 0, 176, 255, 161, 255, 2, 0, 0, 241, 207, 80, 255, 8, 0, 0, 247, 111, 0, 255, 14, 0, 0, 253, 31, 0, 250, 79, 0, 48, 255, 255, 255, 255, 191, 0, 144, 255, 255, 255, 255, 255, 1, 240, 255, 102, 102, 182, 255, 7, 245, 191, 0, 0, 64, 255, 13, 252, 95, 0, 0, 0, 254, 63 ]; + +/// 'B' (ASCII 66) +const Font_Roboto_Bold_20_glyph_66: [u8; 89] = [ 11, 14, 13, 1, 14, 251, 255, 255, 190, 5, 0, 251, 255, 255, 255, 175, 0, 251, 143, 102, 249, 255, 4, 251, 63, 0, 144, 255, 7, 251, 63, 0, 112, 255, 6, 251, 63, 0, 227, 255, 1, 251, 255, 255, 255, 78, 0, 251, 255, 255, 255, 143, 0, 251, 79, 17, 178, 255, 7, 251, 63, 0, 32, 255, 12, 251, 63, 0, 64, 255, 12, 251, 127, 85, 231, 255, 9, 251, 255, 255, 255, 239, 1, 251, 255, 255, 223, 24, 0 ]; + +/// 'C' (ASCII 67) +const Font_Roboto_Bold_20_glyph_67: [u8; 103] = [ 13, 14, 13, 0, 14, 0, 32, 216, 255, 108, 0, 0, 0, 244, 255, 255, 255, 12, 0, 16, 255, 191, 135, 253, 175, 0, 144, 255, 8, 0, 224, 255, 1, 224, 255, 1, 0, 144, 255, 5, 240, 223, 0, 0, 0, 0, 0, 242, 223, 0, 0, 0, 0, 0, 242, 223, 0, 0, 0, 0, 0, 241, 223, 0, 0, 0, 0, 0, 224, 255, 0, 0, 128, 255, 5, 144, 255, 7, 0, 224, 255, 2, 32, 255, 175, 119, 253, 191, 0, 0, 245, 255, 255, 255, 28, 0, 0, 32, 233, 255, 124, 0, 0 ]; + +/// 'D' (ASCII 68) +const Font_Roboto_Bold_20_glyph_68: [u8; 89] = [ 12, 14, 13, 1, 14, 251, 255, 239, 91, 0, 0, 251, 255, 255, 255, 28, 0, 251, 143, 118, 253, 207, 0, 251, 63, 0, 176, 255, 6, 251, 63, 0, 32, 255, 12, 251, 63, 0, 0, 254, 15, 251, 63, 0, 0, 253, 31, 251, 63, 0, 0, 253, 31, 251, 63, 0, 0, 255, 15, 251, 63, 0, 48, 255, 12, 251, 63, 0, 192, 255, 6, 251, 127, 117, 253, 207, 0, 251, 255, 255, 255, 28, 0, 251, 255, 239, 91, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_Roboto_Bold_20_glyph_69: [u8; 75] = [ 10, 14, 11, 1, 14, 251, 255, 255, 255, 207, 251, 255, 255, 255, 207, 251, 143, 102, 102, 70, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 255, 255, 255, 13, 251, 255, 255, 255, 13, 251, 127, 68, 68, 3, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 127, 85, 85, 69, 251, 255, 255, 255, 207, 251, 255, 255, 255, 207 ]; + +/// 'F' (ASCII 70) +const Font_Roboto_Bold_20_glyph_70: [u8; 75] = [ 10, 14, 11, 1, 14, 251, 255, 255, 255, 143, 251, 255, 255, 255, 143, 251, 143, 102, 102, 54, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 255, 255, 255, 13, 251, 255, 255, 255, 13, 251, 127, 85, 85, 4, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_Roboto_Bold_20_glyph_71: [u8; 103] = [ 13, 14, 14, 0, 14, 0, 16, 216, 255, 141, 1, 0, 0, 227, 255, 255, 255, 46, 0, 16, 254, 191, 102, 252, 223, 0, 112, 255, 10, 0, 192, 255, 3, 208, 255, 2, 0, 80, 204, 5, 240, 255, 0, 0, 0, 0, 0, 240, 239, 0, 0, 0, 0, 0, 241, 239, 0, 241, 255, 255, 8, 240, 255, 0, 241, 255, 255, 8, 208, 255, 3, 32, 114, 255, 8, 112, 255, 11, 0, 96, 255, 8, 16, 254, 207, 103, 216, 255, 8, 0, 227, 255, 255, 255, 239, 3, 0, 16, 199, 255, 190, 6, 0 ]; + +/// 'H' (ASCII 72) +const Font_Roboto_Bold_20_glyph_72: [u8; 89] = [ 12, 14, 14, 1, 14, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 255, 255, 255, 255, 223, 251, 255, 255, 255, 255, 223, 251, 127, 85, 85, 246, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223, 251, 63, 0, 0, 241, 223 ]; + +/// 'I' (ASCII 73) +const Font_Roboto_Bold_20_glyph_73: [u8; 33] = [ 4, 14, 6, 1, 14, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111, 248, 111 ]; + +/// 'J' (ASCII 74) +const Font_Roboto_Bold_20_glyph_74: [u8; 75] = [ 10, 14, 11, 0, 14, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 0, 0, 0, 240, 255, 99, 38, 0, 240, 239, 248, 143, 0, 243, 223, 244, 255, 103, 253, 127, 160, 255, 255, 255, 12, 0, 198, 255, 125, 0 ]; + +/// 'K' (ASCII 75) +const Font_Roboto_Bold_20_glyph_75: [u8; 89] = [ 12, 14, 13, 1, 14, 251, 63, 0, 64, 255, 95, 251, 63, 0, 226, 255, 8, 251, 63, 0, 253, 175, 0, 251, 63, 160, 255, 13, 0, 251, 63, 246, 239, 2, 0, 251, 111, 255, 79, 0, 0, 251, 255, 255, 13, 0, 0, 251, 255, 255, 143, 0, 0, 251, 255, 251, 255, 3, 0, 251, 175, 128, 255, 13, 0, 251, 63, 0, 253, 143, 0, 251, 63, 0, 244, 255, 3, 251, 63, 0, 144, 255, 13, 251, 63, 0, 0, 254, 143 ]; + +/// 'L' (ASCII 76) +const Font_Roboto_Bold_20_glyph_76: [u8; 75] = [ 10, 14, 11, 1, 14, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 63, 0, 0, 0, 251, 127, 85, 85, 37, 251, 255, 255, 255, 111, 251, 255, 255, 255, 111 ]; + +/// 'M' (ASCII 77) +const Font_Roboto_Bold_20_glyph_77: [u8; 117] = [ 16, 14, 18, 1, 14, 251, 255, 4, 0, 0, 192, 255, 63, 251, 255, 10, 0, 0, 242, 255, 63, 251, 255, 15, 0, 0, 248, 255, 63, 251, 255, 95, 0, 0, 253, 255, 63, 251, 207, 191, 0, 48, 255, 251, 63, 251, 111, 255, 1, 144, 223, 248, 63, 251, 31, 255, 6, 224, 143, 248, 63, 251, 31, 250, 12, 244, 47, 249, 63, 251, 47, 244, 47, 250, 12, 250, 63, 251, 47, 224, 159, 255, 6, 250, 63, 251, 63, 128, 255, 255, 1, 251, 63, 251, 63, 48, 255, 175, 0, 251, 63, 251, 63, 0, 253, 79, 0, 251, 63, 251, 63, 0, 247, 14, 0, 251, 63 ]; + +/// 'N' (ASCII 78) +const Font_Roboto_Bold_20_glyph_78: [u8; 89] = [ 12, 14, 14, 1, 14, 251, 143, 0, 0, 241, 223, 251, 255, 2, 0, 241, 223, 251, 255, 11, 0, 241, 223, 251, 255, 95, 0, 241, 223, 251, 255, 239, 1, 241, 223, 251, 143, 255, 9, 241, 223, 251, 63, 251, 63, 241, 223, 251, 63, 242, 223, 241, 223, 251, 63, 112, 255, 248, 223, 251, 63, 0, 253, 255, 223, 251, 63, 0, 244, 255, 223, 251, 63, 0, 160, 255, 223, 251, 63, 0, 16, 254, 223, 251, 63, 0, 0, 246, 223 ]; + +/// 'O' (ASCII 79) +const Font_Roboto_Bold_20_glyph_79: [u8; 103] = [ 13, 14, 14, 0, 14, 0, 16, 215, 239, 108, 0, 0, 0, 227, 255, 255, 255, 28, 0, 0, 254, 207, 135, 253, 191, 0, 128, 255, 10, 0, 208, 255, 4, 208, 255, 2, 0, 80, 255, 10, 240, 255, 0, 0, 16, 255, 13, 242, 223, 0, 0, 0, 255, 14, 242, 223, 0, 0, 0, 255, 14, 240, 255, 0, 0, 32, 255, 13, 208, 255, 2, 0, 96, 255, 10, 128, 255, 10, 0, 208, 255, 5, 16, 254, 207, 119, 253, 207, 0, 0, 227, 255, 255, 255, 28, 0, 0, 16, 215, 239, 108, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_Roboto_Bold_20_glyph_80: [u8; 89] = [ 12, 14, 13, 1, 14, 251, 255, 255, 206, 6, 0, 251, 255, 255, 255, 207, 0, 251, 143, 102, 231, 255, 9, 251, 63, 0, 32, 255, 15, 251, 63, 0, 0, 253, 31, 251, 63, 0, 0, 254, 31, 251, 63, 0, 145, 255, 13, 251, 255, 255, 255, 255, 4, 251, 255, 255, 255, 77, 0, 251, 143, 86, 37, 0, 0, 251, 63, 0, 0, 0, 0, 251, 63, 0, 0, 0, 0, 251, 63, 0, 0, 0, 0, 251, 63, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_Roboto_Bold_20_glyph_81: [u8; 124] = [ 13, 17, 14, 0, 14, 0, 16, 216, 239, 108, 0, 0, 0, 227, 255, 255, 255, 28, 0, 16, 254, 207, 135, 253, 191, 0, 128, 255, 10, 0, 208, 255, 4, 208, 255, 2, 0, 80, 255, 10, 240, 239, 0, 0, 32, 255, 13, 242, 223, 0, 0, 0, 255, 14, 242, 223, 0, 0, 0, 255, 14, 240, 239, 0, 0, 32, 255, 13, 224, 255, 2, 0, 96, 255, 10, 128, 255, 10, 0, 208, 255, 4, 16, 254, 207, 119, 253, 191, 0, 0, 227, 255, 255, 255, 29, 0, 0, 16, 216, 255, 255, 95, 0, 0, 0, 0, 0, 245, 255, 7, 0, 0, 0, 0, 32, 221, 1, 0, 0, 0, 0, 0, 17, 0 ]; + +/// 'R' (ASCII 82) +const Font_Roboto_Bold_20_glyph_82: [u8; 89] = [ 12, 14, 13, 1, 14, 251, 255, 255, 206, 6, 0, 251, 255, 255, 255, 191, 0, 251, 143, 102, 249, 255, 6, 251, 63, 0, 96, 255, 11, 251, 63, 0, 32, 255, 12, 251, 63, 0, 64, 255, 11, 251, 63, 0, 211, 255, 6, 251, 255, 255, 255, 191, 0, 251, 255, 255, 255, 9, 0, 251, 143, 134, 255, 12, 0, 251, 63, 0, 252, 95, 0, 251, 63, 0, 243, 239, 0, 251, 63, 0, 160, 255, 8, 251, 63, 0, 16, 255, 47 ]; + +/// 'S' (ASCII 83) +const Font_Roboto_Bold_20_glyph_83: [u8; 89] = [ 12, 14, 12, 0, 14, 0, 96, 236, 239, 58, 0, 16, 253, 255, 255, 255, 6, 144, 255, 109, 149, 255, 47, 208, 255, 2, 0, 248, 127, 192, 255, 6, 0, 49, 19, 80, 255, 207, 22, 0, 0, 0, 247, 255, 255, 59, 0, 0, 32, 233, 255, 255, 6, 0, 0, 0, 180, 255, 47, 114, 71, 0, 0, 249, 127, 242, 223, 0, 0, 247, 143, 192, 255, 108, 117, 255, 95, 16, 253, 255, 255, 255, 10, 0, 96, 235, 239, 91, 0 ]; + +/// 'T' (ASCII 84) +const Font_Roboto_Bold_20_glyph_84: [u8; 89] = [ 12, 14, 12, 0, 14, 249, 255, 255, 255, 255, 255, 249, 255, 255, 255, 255, 255, 99, 102, 249, 207, 102, 86, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 245, 175, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_Roboto_Bold_20_glyph_85: [u8; 89] = [ 12, 14, 13, 1, 14, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 254, 15, 253, 31, 0, 0, 255, 15, 250, 111, 0, 64, 255, 13, 244, 255, 105, 232, 255, 7, 128, 255, 255, 255, 175, 0, 0, 180, 254, 190, 5, 0 ]; + +/// 'V' (ASCII 86) +const Font_Roboto_Bold_20_glyph_86: [u8; 103] = [ 14, 14, 13, 0, 14, 252, 127, 0, 0, 96, 255, 13, 246, 207, 0, 0, 176, 255, 7, 241, 255, 1, 0, 240, 255, 2, 176, 255, 6, 0, 245, 207, 0, 80, 255, 11, 0, 250, 111, 0, 0, 255, 15, 0, 254, 31, 0, 0, 250, 79, 48, 255, 11, 0, 0, 244, 159, 128, 255, 5, 0, 0, 224, 239, 208, 255, 0, 0, 0, 144, 255, 245, 175, 0, 0, 0, 48, 255, 254, 79, 0, 0, 0, 0, 254, 255, 14, 0, 0, 0, 0, 248, 255, 9, 0, 0, 0, 0, 242, 255, 3, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_Roboto_Bold_20_glyph_87: [u8; 131] = [ 18, 14, 17, 0, 14, 248, 95, 0, 144, 255, 2, 0, 253, 31, 245, 143, 0, 208, 255, 5, 0, 255, 13, 241, 191, 0, 241, 255, 9, 48, 255, 9, 208, 239, 0, 244, 255, 13, 96, 255, 6, 160, 255, 2, 248, 255, 31, 144, 255, 2, 96, 255, 5, 252, 249, 79, 192, 239, 0, 48, 255, 8, 255, 196, 143, 240, 191, 0, 0, 255, 59, 255, 129, 207, 242, 127, 0, 0, 251, 126, 207, 64, 255, 246, 79, 0, 0, 248, 207, 159, 0, 255, 252, 15, 0, 0, 244, 255, 95, 0, 252, 255, 13, 0, 0, 241, 255, 31, 0, 248, 255, 9, 0, 0, 208, 255, 13, 0, 244, 255, 5, 0, 0, 144, 255, 9, 0, 240, 255, 2, 0 ]; + +/// 'X' (ASCII 88) +const Font_Roboto_Bold_20_glyph_88: [u8; 103] = [ 13, 14, 13, 0, 14, 246, 239, 0, 0, 243, 255, 2, 192, 255, 8, 0, 252, 127, 0, 48, 255, 31, 80, 255, 13, 0, 0, 249, 159, 224, 255, 4, 0, 0, 225, 255, 250, 191, 0, 0, 0, 96, 255, 255, 47, 0, 0, 0, 0, 252, 255, 8, 0, 0, 0, 0, 253, 255, 9, 0, 0, 0, 112, 255, 255, 63, 0, 0, 0, 241, 255, 249, 207, 0, 0, 0, 250, 159, 208, 255, 6, 0, 64, 255, 31, 64, 255, 30, 0, 208, 255, 7, 0, 251, 159, 0, 247, 223, 0, 0, 243, 255, 3 ]; + +/// 'Y' (ASCII 89) +const Font_Roboto_Bold_20_glyph_89: [u8; 103] = [ 13, 14, 12, 0, 14, 251, 127, 0, 0, 242, 255, 1, 243, 239, 0, 0, 249, 143, 0, 160, 255, 6, 16, 255, 31, 0, 32, 255, 13, 128, 255, 8, 0, 0, 250, 95, 224, 239, 0, 0, 0, 242, 207, 247, 127, 0, 0, 0, 144, 255, 255, 14, 0, 0, 0, 16, 255, 255, 6, 0, 0, 0, 0, 248, 223, 0, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 0, 245, 175, 0, 0, 0, 0, 0, 245, 175, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_Roboto_Bold_20_glyph_90: [u8; 89] = [ 12, 14, 12, 0, 14, 244, 255, 255, 255, 255, 111, 244, 255, 255, 255, 255, 95, 97, 102, 102, 166, 255, 12, 0, 0, 0, 225, 255, 2, 0, 0, 0, 251, 111, 0, 0, 0, 112, 255, 11, 0, 0, 0, 243, 239, 1, 0, 0, 0, 253, 79, 0, 0, 0, 144, 255, 9, 0, 0, 0, 244, 223, 0, 0, 0, 16, 254, 63, 0, 0, 0, 176, 255, 91, 85, 85, 53, 244, 255, 255, 255, 255, 143, 244, 255, 255, 255, 255, 143 ]; + +/// '[' (ASCII 91) +const Font_Roboto_Bold_20_glyph_91: [u8; 65] = [ 5, 20, 6, 1, 17, 253, 255, 6, 253, 255, 6, 253, 47, 1, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 15, 0, 253, 47, 1, 253, 255, 6, 253, 255, 6 ]; + +/// '\' (ASCII 92) +const Font_Roboto_Bold_20_glyph_92: [u8; 80] = [ 9, 15, 8, 0, 14, 252, 31, 0, 0, 0, 246, 127, 0, 0, 0, 240, 223, 0, 0, 0, 144, 255, 4, 0, 0, 48, 255, 10, 0, 0, 0, 253, 31, 0, 0, 0, 246, 127, 0, 0, 0, 241, 223, 0, 0, 0, 160, 255, 3, 0, 0, 64, 255, 10, 0, 0, 0, 253, 31, 0, 0, 0, 247, 111, 0, 0, 0, 241, 223, 0, 0, 0, 160, 255, 3, 0, 0, 64, 255, 9 ]; + +/// ']' (ASCII 93) +const Font_Roboto_Bold_20_glyph_93: [u8; 65] = [ 5, 20, 6, 0, 17, 254, 255, 5, 254, 255, 5, 130, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 112, 255, 5, 130, 255, 5, 254, 255, 5, 254, 255, 5 ]; + +/// '^' (ASCII 94) +const Font_Roboto_Bold_20_glyph_94: [u8; 40] = [ 9, 7, 9, 0, 14, 0, 208, 159, 0, 0, 0, 244, 255, 1, 0, 0, 251, 255, 7, 0, 16, 255, 245, 13, 0, 128, 175, 224, 79, 0, 224, 79, 128, 191, 0, 245, 13, 32, 255, 2 ]; + +/// '_' (ASCII 95) +const Font_Roboto_Bold_20_glyph_95: [u8; 20] = [ 9, 3, 9, 0, 0, 255, 255, 255, 255, 14, 255, 255, 255, 255, 14, 51, 51, 51, 51, 2 ]; + +/// '`' (ASCII 96) +const Font_Roboto_Bold_20_glyph_96: [u8; 14] = [ 6, 3, 7, 0, 15, 226, 223, 0, 48, 255, 8, 0, 244, 63 ]; + +/// 'a' (ASCII 97) +const Font_Roboto_Bold_20_glyph_97: [u8; 71] = [ 11, 11, 11, 0, 11, 0, 180, 254, 141, 1, 0, 112, 255, 255, 255, 13, 0, 240, 239, 35, 249, 111, 0, 0, 0, 0, 243, 159, 0, 0, 198, 254, 255, 175, 0, 144, 255, 190, 251, 175, 0, 242, 207, 0, 243, 175, 0, 244, 143, 0, 243, 175, 0, 243, 223, 67, 253, 175, 0, 192, 255, 255, 255, 191, 0, 0, 232, 207, 227, 239, 0 ]; + +/// 'b' (ASCII 98) +const Font_Roboto_Bold_20_glyph_98: [u8; 80] = [ 10, 15, 11, 1, 15, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 94, 253, 125, 0, 254, 255, 255, 255, 8, 254, 191, 117, 255, 31, 254, 15, 0, 248, 111, 254, 14, 0, 244, 143, 254, 14, 0, 243, 159, 254, 14, 0, 244, 143, 254, 14, 0, 248, 111, 254, 191, 117, 255, 31, 254, 255, 255, 255, 8, 254, 122, 253, 125, 0 ]; + +/// 'c' (ASCII 99) +const Font_Roboto_Bold_20_glyph_99: [u8; 60] = [ 10, 11, 10, 0, 11, 0, 145, 254, 158, 1, 32, 254, 255, 255, 30, 176, 255, 89, 250, 159, 241, 207, 0, 224, 223, 244, 143, 0, 16, 34, 245, 127, 0, 0, 0, 244, 143, 0, 0, 0, 241, 207, 0, 176, 189, 176, 255, 89, 249, 159, 32, 254, 255, 255, 30, 0, 145, 254, 158, 1 ]; + +/// 'd' (ASCII 100) +const Font_Roboto_Bold_20_glyph_100: [u8; 95] = [ 11, 15, 11, 0, 15, 0, 0, 0, 160, 255, 2, 0, 0, 0, 160, 255, 2, 0, 0, 0, 160, 255, 2, 0, 0, 0, 160, 255, 2, 0, 196, 239, 168, 255, 2, 64, 255, 255, 255, 255, 2, 208, 255, 90, 248, 255, 2, 242, 223, 0, 176, 255, 2, 244, 159, 0, 160, 255, 2, 245, 127, 0, 160, 255, 2, 244, 143, 0, 160, 255, 2, 241, 223, 0, 176, 255, 2, 192, 255, 90, 248, 255, 2, 48, 255, 255, 255, 255, 2, 0, 195, 239, 121, 255, 2 ]; + +/// 'e' (ASCII 101) +const Font_Roboto_Bold_20_glyph_101: [u8; 71] = [ 11, 11, 11, 0, 11, 0, 112, 253, 174, 2, 0, 0, 252, 255, 255, 63, 0, 144, 255, 89, 247, 223, 0, 240, 207, 0, 144, 255, 2, 243, 255, 255, 255, 255, 4, 244, 255, 238, 238, 238, 4, 243, 191, 0, 0, 0, 0, 240, 255, 2, 0, 23, 0, 160, 255, 110, 165, 191, 0, 16, 252, 255, 255, 143, 0, 0, 112, 253, 191, 4, 0 ]; + +/// 'f' (ASCII 102) +const Font_Roboto_Bold_20_glyph_102: [u8; 65] = [ 8, 15, 7, 0, 15, 0, 112, 253, 46, 0, 250, 255, 47, 0, 255, 111, 5, 32, 255, 11, 0, 251, 255, 255, 12, 251, 255, 255, 12, 48, 255, 27, 0, 32, 255, 11, 0, 32, 255, 11, 0, 32, 255, 11, 0, 32, 255, 11, 0, 32, 255, 11, 0, 32, 255, 11, 0, 32, 255, 11, 0, 32, 255, 11, 0 ]; + +/// 'g' (ASCII 103) +const Font_Roboto_Bold_20_glyph_103: [u8; 95] = [ 11, 15, 11, 0, 11, 0, 179, 255, 123, 255, 5, 32, 255, 255, 255, 255, 5, 176, 255, 91, 248, 255, 5, 241, 239, 0, 128, 255, 5, 244, 159, 0, 128, 255, 5, 245, 143, 0, 128, 255, 5, 244, 159, 0, 128, 255, 5, 241, 239, 0, 128, 255, 5, 176, 255, 91, 247, 255, 5, 32, 255, 255, 255, 255, 5, 0, 178, 255, 154, 255, 4, 0, 2, 0, 176, 255, 2, 32, 175, 68, 249, 223, 0, 96, 255, 255, 255, 63, 0, 0, 180, 254, 157, 1, 0 ]; + +/// 'h' (ASCII 104) +const Font_Roboto_Bold_20_glyph_104: [u8; 80] = [ 10, 15, 11, 1, 15, 255, 13, 0, 0, 0, 255, 13, 0, 0, 0, 255, 13, 0, 0, 0, 255, 13, 0, 0, 0, 255, 77, 252, 142, 0, 255, 255, 255, 255, 8, 255, 175, 133, 255, 14, 255, 14, 0, 252, 31, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47 ]; + +/// 'i' (ASCII 105) +const Font_Roboto_Bold_20_glyph_105: [u8; 35] = [ 4, 15, 5, 1, 15, 230, 10, 254, 47, 247, 11, 0, 0, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31 ]; + +/// 'j' (ASCII 106) +const Font_Roboto_Bold_20_glyph_106: [u8; 62] = [ 6, 19, 6, 0, 15, 0, 231, 9, 0, 255, 47, 0, 248, 11, 0, 0, 0, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 31, 0, 252, 15, 117, 255, 14, 254, 255, 7, 253, 109, 0 ]; + +/// 'k' (ASCII 107) +const Font_Roboto_Bold_20_glyph_107: [u8; 80] = [ 10, 15, 11, 1, 15, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 64, 255, 47, 254, 14, 226, 255, 4, 254, 14, 253, 127, 0, 254, 190, 255, 10, 0, 254, 255, 239, 0, 0, 254, 255, 255, 5, 0, 254, 239, 255, 30, 0, 254, 47, 248, 159, 0, 254, 14, 208, 255, 4, 254, 14, 64, 255, 13, 254, 14, 0, 250, 143 ]; + +/// 'l' (ASCII 108) +const Font_Roboto_Bold_20_glyph_108: [u8; 35] = [ 4, 15, 5, 1, 15, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31, 252, 31 ]; + +/// 'm' (ASCII 109) +const Font_Roboto_Bold_20_glyph_109: [u8; 93] = [ 16, 11, 17, 1, 11, 254, 60, 252, 158, 48, 252, 174, 0, 254, 254, 255, 255, 251, 255, 255, 10, 254, 175, 133, 255, 207, 117, 255, 15, 254, 14, 0, 253, 31, 0, 250, 63, 254, 14, 0, 252, 15, 0, 249, 63, 254, 14, 0, 252, 15, 0, 249, 63, 254, 14, 0, 252, 15, 0, 249, 63, 254, 14, 0, 252, 15, 0, 249, 63, 254, 14, 0, 252, 15, 0, 249, 63, 254, 14, 0, 252, 15, 0, 249, 63, 254, 14, 0, 252, 15, 0, 249, 63 ]; + +/// 'n' (ASCII 110) +const Font_Roboto_Bold_20_glyph_110: [u8; 60] = [ 10, 11, 11, 1, 11, 255, 91, 252, 158, 0, 255, 255, 255, 255, 8, 255, 175, 117, 255, 14, 255, 14, 0, 252, 31, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47, 255, 13, 0, 250, 47 ]; + +/// 'o' (ASCII 111) +const Font_Roboto_Bold_20_glyph_111: [u8; 71] = [ 11, 11, 11, 0, 11, 0, 129, 253, 174, 3, 0, 16, 253, 255, 255, 79, 0, 160, 255, 91, 248, 239, 0, 241, 223, 0, 144, 255, 6, 244, 159, 0, 64, 255, 9, 245, 127, 0, 48, 255, 10, 244, 159, 0, 64, 255, 9, 241, 223, 0, 144, 255, 6, 176, 255, 91, 248, 239, 0, 16, 253, 255, 255, 79, 0, 0, 129, 253, 174, 3, 0 ]; + +/// 'p' (ASCII 112) +const Font_Roboto_Bold_20_glyph_112: [u8; 80] = [ 10, 15, 11, 1, 11, 254, 124, 253, 109, 0, 254, 255, 255, 255, 7, 254, 175, 133, 255, 31, 254, 14, 0, 249, 111, 254, 14, 0, 244, 143, 254, 14, 0, 243, 159, 254, 14, 0, 245, 143, 254, 14, 0, 249, 95, 254, 175, 133, 255, 31, 254, 255, 255, 255, 7, 254, 94, 253, 109, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0, 254, 14, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_Roboto_Bold_20_glyph_113: [u8; 95] = [ 11, 15, 11, 0, 11, 0, 196, 239, 121, 255, 2, 64, 255, 255, 255, 255, 2, 208, 255, 90, 249, 255, 2, 242, 223, 0, 176, 255, 2, 244, 159, 0, 160, 255, 2, 245, 127, 0, 160, 255, 2, 244, 143, 0, 160, 255, 2, 242, 223, 0, 176, 255, 2, 192, 255, 90, 248, 255, 2, 48, 255, 255, 255, 255, 2, 0, 196, 239, 184, 255, 2, 0, 0, 0, 160, 255, 2, 0, 0, 0, 160, 255, 2, 0, 0, 0, 160, 255, 2, 0, 0, 0, 160, 255, 2 ]; + +/// 'r' (ASCII 114) +const Font_Roboto_Bold_20_glyph_114: [u8; 49] = [ 7, 11, 7, 1, 11, 254, 92, 254, 0, 254, 254, 255, 0, 254, 255, 205, 0, 254, 63, 0, 0, 254, 14, 0, 0, 254, 14, 0, 0, 254, 14, 0, 0, 254, 14, 0, 0, 254, 14, 0, 0, 254, 14, 0, 0, 254, 14, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_Roboto_Bold_20_glyph_115: [u8; 60] = [ 10, 11, 10, 0, 11, 0, 180, 254, 124, 0, 112, 255, 255, 255, 12, 240, 223, 18, 250, 95, 241, 191, 0, 98, 54, 192, 255, 157, 5, 0, 16, 251, 255, 239, 6, 0, 32, 183, 255, 63, 147, 41, 0, 245, 143, 243, 191, 1, 248, 111, 144, 255, 255, 255, 13, 0, 197, 255, 125, 1 ]; + +/// 't' (ASCII 116) +const Font_Roboto_Bold_20_glyph_116: [u8; 61] = [ 7, 14, 7, 0, 14, 80, 255, 7, 0, 80, 255, 7, 0, 80, 255, 7, 0, 254, 255, 255, 4, 254, 255, 255, 4, 97, 255, 24, 0, 80, 255, 7, 0, 80, 255, 7, 0, 80, 255, 7, 0, 80, 255, 7, 0, 80, 255, 7, 0, 64, 255, 92, 2, 16, 254, 255, 6, 0, 195, 239, 4 ]; + +/// 'u' (ASCII 117) +const Font_Roboto_Bold_20_glyph_117: [u8; 60] = [ 10, 11, 11, 1, 11, 255, 13, 0, 251, 47, 255, 13, 0, 251, 47, 255, 13, 0, 251, 47, 255, 13, 0, 251, 47, 255, 13, 0, 251, 47, 255, 13, 0, 251, 47, 255, 13, 0, 251, 47, 254, 14, 0, 251, 47, 252, 159, 132, 255, 47, 245, 255, 255, 255, 47, 96, 253, 125, 248, 47 ]; + +/// 'v' (ASCII 118) +const Font_Roboto_Bold_20_glyph_118: [u8; 60] = [ 10, 11, 10, 0, 11, 251, 63, 0, 242, 207, 246, 127, 0, 246, 127, 241, 191, 0, 250, 47, 176, 255, 0, 254, 13, 96, 255, 52, 255, 7, 16, 255, 120, 255, 2, 0, 252, 188, 223, 0, 0, 247, 255, 143, 0, 0, 242, 255, 63, 0, 0, 192, 255, 13, 0, 0, 112, 255, 8, 0 ]; + +/// 'w' (ASCII 119) +const Font_Roboto_Bold_20_glyph_119: [u8; 93] = [ 15, 11, 15, 0, 11, 249, 31, 0, 253, 7, 112, 255, 4, 245, 79, 16, 255, 12, 160, 255, 0, 241, 127, 96, 255, 15, 208, 207, 0, 208, 175, 160, 255, 79, 240, 143, 0, 144, 239, 224, 207, 159, 243, 79, 0, 96, 255, 244, 78, 223, 246, 15, 0, 32, 255, 252, 10, 255, 252, 12, 0, 0, 254, 255, 5, 250, 255, 8, 0, 0, 250, 255, 1, 246, 255, 4, 0, 0, 246, 207, 0, 241, 255, 1, 0, 0, 242, 127, 0, 208, 207, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_Roboto_Bold_20_glyph_120: [u8; 71] = [ 11, 11, 10, 0, 11, 246, 175, 0, 246, 159, 0, 208, 255, 2, 254, 31, 0, 64, 255, 123, 255, 8, 0, 0, 251, 255, 239, 0, 0, 0, 242, 255, 111, 0, 0, 0, 192, 255, 15, 0, 0, 0, 244, 255, 143, 0, 0, 0, 253, 239, 255, 1, 0, 96, 255, 89, 255, 10, 0, 224, 255, 1, 252, 63, 0, 248, 143, 0, 244, 191, 0 ]; + +/// 'y' (ASCII 121) +const Font_Roboto_Bold_20_glyph_121: [u8; 95] = [ 11, 15, 10, 0, 11, 252, 63, 0, 242, 223, 0, 247, 143, 0, 247, 127, 0, 241, 207, 0, 252, 47, 0, 192, 255, 17, 255, 12, 0, 96, 255, 86, 255, 7, 0, 16, 255, 171, 255, 2, 0, 0, 251, 239, 207, 0, 0, 0, 246, 255, 111, 0, 0, 0, 241, 255, 31, 0, 0, 0, 176, 255, 11, 0, 0, 0, 80, 255, 6, 0, 0, 0, 144, 255, 1, 0, 0, 64, 247, 191, 0, 0, 0, 208, 255, 47, 0, 0, 0, 176, 207, 4, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_Roboto_Bold_20_glyph_122: [u8; 60] = [ 10, 11, 10, 0, 11, 242, 255, 255, 255, 95, 242, 255, 255, 255, 79, 64, 68, 180, 255, 11, 0, 0, 243, 239, 1, 0, 0, 253, 95, 0, 0, 144, 255, 9, 0, 0, 244, 223, 0, 0, 16, 254, 63, 0, 0, 176, 255, 75, 68, 36, 244, 255, 255, 255, 143, 244, 255, 255, 255, 143 ]; + +/// '{' (ASCII 123) +const Font_Roboto_Bold_20_glyph_123: [u8; 85] = [ 7, 20, 7, 0, 16, 0, 0, 199, 0, 0, 160, 255, 1, 0, 244, 79, 0, 0, 250, 14, 0, 0, 252, 12, 0, 0, 252, 12, 0, 0, 252, 11, 0, 0, 254, 10, 0, 96, 255, 6, 0, 248, 159, 0, 0, 248, 159, 0, 0, 96, 255, 5, 0, 0, 254, 10, 0, 0, 252, 11, 0, 0, 252, 12, 0, 0, 252, 12, 0, 0, 250, 14, 0, 0, 244, 79, 0, 0, 160, 255, 1, 0, 0, 199, 0 ]; + +/// '|' (ASCII 124) +const Font_Roboto_Bold_20_glyph_124: [u8; 39] = [ 3, 17, 5, 1, 14, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6, 245, 6 ]; + +/// '}' (ASCII 125) +const Font_Roboto_Bold_20_glyph_125: [u8; 85] = [ 7, 20, 7, 0, 16, 180, 3, 0, 0, 248, 79, 0, 0, 176, 239, 0, 0, 64, 255, 3, 0, 32, 255, 5, 0, 32, 255, 6, 0, 32, 255, 6, 0, 16, 255, 7, 0, 0, 252, 45, 0, 0, 210, 255, 2, 0, 210, 255, 2, 0, 252, 45, 0, 16, 255, 7, 0, 32, 255, 6, 0, 32, 255, 6, 0, 32, 255, 5, 0, 64, 255, 3, 0, 176, 239, 0, 0, 248, 79, 0, 0, 180, 3, 0, 0 ]; + +/// '~' (ASCII 126) +const Font_Roboto_Bold_20_glyph_126: [u8; 35] = [ 11, 5, 13, 1, 8, 96, 254, 60, 0, 162, 9, 245, 255, 255, 6, 249, 12, 252, 108, 252, 255, 255, 6, 237, 3, 128, 255, 175, 0, 0, 0, 0, 65, 2, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_Roboto_Bold_20_glyph_nonprintable: [u8; 75] = [ 10, 14, 10, 0, 14, 255, 40, 16, 163, 255, 79, 0, 0, 0, 247, 11, 16, 137, 0, 240, 8, 160, 255, 5, 192, 255, 255, 255, 4, 208, 255, 255, 175, 0, 243, 255, 255, 10, 16, 253, 255, 239, 0, 209, 255, 255, 143, 0, 251, 255, 255, 111, 16, 255, 255, 255, 255, 255, 255, 255, 255, 159, 65, 255, 255, 255, 47, 0, 252, 255, 255, 143, 64, 255, 255 ]; + +/// Array of references for 'Roboto_Bold_20' normal ASCII glyphs +const Font_Roboto_Bold_20: [&[u8]; 95] = [ + &Font_Roboto_Bold_20_glyph_32, + &Font_Roboto_Bold_20_glyph_33, + &Font_Roboto_Bold_20_glyph_34, + &Font_Roboto_Bold_20_glyph_35, + &Font_Roboto_Bold_20_glyph_36, + &Font_Roboto_Bold_20_glyph_37, + &Font_Roboto_Bold_20_glyph_38, + &Font_Roboto_Bold_20_glyph_39, + &Font_Roboto_Bold_20_glyph_40, + &Font_Roboto_Bold_20_glyph_41, + &Font_Roboto_Bold_20_glyph_42, + &Font_Roboto_Bold_20_glyph_43, + &Font_Roboto_Bold_20_glyph_44, + &Font_Roboto_Bold_20_glyph_45, + &Font_Roboto_Bold_20_glyph_46, + &Font_Roboto_Bold_20_glyph_47, + &Font_Roboto_Bold_20_glyph_48, + &Font_Roboto_Bold_20_glyph_49, + &Font_Roboto_Bold_20_glyph_50, + &Font_Roboto_Bold_20_glyph_51, + &Font_Roboto_Bold_20_glyph_52, + &Font_Roboto_Bold_20_glyph_53, + &Font_Roboto_Bold_20_glyph_54, + &Font_Roboto_Bold_20_glyph_55, + &Font_Roboto_Bold_20_glyph_56, + &Font_Roboto_Bold_20_glyph_57, + &Font_Roboto_Bold_20_glyph_58, + &Font_Roboto_Bold_20_glyph_59, + &Font_Roboto_Bold_20_glyph_60, + &Font_Roboto_Bold_20_glyph_61, + &Font_Roboto_Bold_20_glyph_62, + &Font_Roboto_Bold_20_glyph_63, + &Font_Roboto_Bold_20_glyph_64, + &Font_Roboto_Bold_20_glyph_65, + &Font_Roboto_Bold_20_glyph_66, + &Font_Roboto_Bold_20_glyph_67, + &Font_Roboto_Bold_20_glyph_68, + &Font_Roboto_Bold_20_glyph_69, + &Font_Roboto_Bold_20_glyph_70, + &Font_Roboto_Bold_20_glyph_71, + &Font_Roboto_Bold_20_glyph_72, + &Font_Roboto_Bold_20_glyph_73, + &Font_Roboto_Bold_20_glyph_74, + &Font_Roboto_Bold_20_glyph_75, + &Font_Roboto_Bold_20_glyph_76, + &Font_Roboto_Bold_20_glyph_77, + &Font_Roboto_Bold_20_glyph_78, + &Font_Roboto_Bold_20_glyph_79, + &Font_Roboto_Bold_20_glyph_80, + &Font_Roboto_Bold_20_glyph_81, + &Font_Roboto_Bold_20_glyph_82, + &Font_Roboto_Bold_20_glyph_83, + &Font_Roboto_Bold_20_glyph_84, + &Font_Roboto_Bold_20_glyph_85, + &Font_Roboto_Bold_20_glyph_86, + &Font_Roboto_Bold_20_glyph_87, + &Font_Roboto_Bold_20_glyph_88, + &Font_Roboto_Bold_20_glyph_89, + &Font_Roboto_Bold_20_glyph_90, + &Font_Roboto_Bold_20_glyph_91, + &Font_Roboto_Bold_20_glyph_92, + &Font_Roboto_Bold_20_glyph_93, + &Font_Roboto_Bold_20_glyph_94, + &Font_Roboto_Bold_20_glyph_95, + &Font_Roboto_Bold_20_glyph_96, + &Font_Roboto_Bold_20_glyph_97, + &Font_Roboto_Bold_20_glyph_98, + &Font_Roboto_Bold_20_glyph_99, + &Font_Roboto_Bold_20_glyph_100, + &Font_Roboto_Bold_20_glyph_101, + &Font_Roboto_Bold_20_glyph_102, + &Font_Roboto_Bold_20_glyph_103, + &Font_Roboto_Bold_20_glyph_104, + &Font_Roboto_Bold_20_glyph_105, + &Font_Roboto_Bold_20_glyph_106, + &Font_Roboto_Bold_20_glyph_107, + &Font_Roboto_Bold_20_glyph_108, + &Font_Roboto_Bold_20_glyph_109, + &Font_Roboto_Bold_20_glyph_110, + &Font_Roboto_Bold_20_glyph_111, + &Font_Roboto_Bold_20_glyph_112, + &Font_Roboto_Bold_20_glyph_113, + &Font_Roboto_Bold_20_glyph_114, + &Font_Roboto_Bold_20_glyph_115, + &Font_Roboto_Bold_20_glyph_116, + &Font_Roboto_Bold_20_glyph_117, + &Font_Roboto_Bold_20_glyph_118, + &Font_Roboto_Bold_20_glyph_119, + &Font_Roboto_Bold_20_glyph_120, + &Font_Roboto_Bold_20_glyph_121, + &Font_Roboto_Bold_20_glyph_122, + &Font_Roboto_Bold_20_glyph_123, + &Font_Roboto_Bold_20_glyph_124, + &Font_Roboto_Bold_20_glyph_125, + &Font_Roboto_Bold_20_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_Roboto_Bold_20_info: FontInfo = FontInfo { + height: 20, + max_height: 21, + baseline: 4, + glyph_data: &Font_Roboto_Bold_20, + glyph_nonprintable: &Font_Roboto_Bold_20_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_roboto_regular_20.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_roboto_regular_20.rs new file mode 100644 index 00000000000..ab224a0da30 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_roboto_regular_20.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_Roboto_Regular_20_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_Roboto_Regular_20_glyph_33: [u8; 33] = [ 3, 14, 5, 1, 14, 245, 8, 245, 8, 245, 7, 245, 7, 245, 7, 244, 7, 244, 7, 244, 6, 244, 6, 243, 5, 0, 0, 0, 0, 244, 8, 244, 7 ]; + +/// '"' (ASCII 34) +const Font_Roboto_Regular_20_glyph_34: [u8; 20] = [ 5, 5, 6, 1, 15, 186, 240, 5, 170, 240, 5, 154, 240, 3, 138, 240, 2, 122, 240, 1 ]; + +/// '#' (ASCII 35) +const Font_Roboto_Regular_20_glyph_35: [u8; 89] = [ 12, 14, 12, 1, 14, 0, 0, 202, 0, 186, 0, 0, 0, 126, 0, 126, 0, 0, 32, 63, 48, 63, 0, 241, 255, 255, 255, 255, 31, 80, 197, 93, 197, 93, 5, 0, 192, 9, 192, 9, 0, 0, 240, 6, 240, 6, 0, 0, 242, 3, 243, 3, 0, 253, 255, 255, 255, 255, 5, 84, 235, 85, 235, 85, 1, 0, 187, 0, 171, 0, 0, 0, 141, 0, 142, 0, 0, 0, 95, 16, 95, 0, 0, 48, 63, 48, 47, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_Roboto_Regular_20_glyph_36: [u8; 100] = [ 10, 19, 11, 1, 17, 0, 0, 17, 0, 0, 0, 0, 158, 0, 0, 0, 0, 158, 0, 0, 0, 215, 255, 43, 0, 160, 223, 185, 255, 2, 242, 12, 0, 246, 10, 245, 7, 0, 224, 14, 243, 10, 0, 96, 8, 208, 143, 1, 0, 0, 32, 253, 191, 5, 0, 0, 96, 252, 207, 1, 0, 0, 32, 251, 11, 85, 0, 0, 208, 31, 253, 0, 0, 176, 31, 249, 7, 0, 242, 14, 225, 207, 169, 255, 6, 16, 233, 255, 75, 0, 0, 0, 111, 0, 0, 0, 0, 93, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_Roboto_Regular_20_glyph_37: [u8; 103] = [ 13, 14, 15, 1, 14, 144, 238, 7, 0, 0, 0, 0, 232, 84, 111, 0, 0, 0, 0, 125, 0, 185, 0, 193, 1, 0, 111, 0, 216, 0, 187, 0, 0, 125, 0, 185, 96, 31, 0, 0, 232, 84, 111, 241, 6, 0, 0, 144, 238, 8, 187, 0, 0, 0, 0, 0, 96, 46, 233, 126, 0, 0, 0, 241, 149, 78, 246, 5, 0, 0, 187, 240, 6, 160, 10, 0, 96, 30, 240, 4, 144, 12, 0, 241, 5, 240, 6, 160, 10, 0, 165, 0, 144, 77, 245, 5, 0, 0, 0, 0, 233, 126, 0 ]; + +/// '&' (ASCII 38) +const Font_Roboto_Regular_20_glyph_38: [u8; 103] = [ 13, 14, 12, 0, 14, 0, 80, 252, 142, 0, 0, 0, 0, 245, 142, 250, 10, 0, 0, 0, 251, 2, 176, 15, 0, 0, 0, 252, 0, 176, 15, 0, 0, 0, 249, 6, 247, 8, 0, 0, 0, 225, 207, 159, 0, 0, 0, 0, 144, 255, 6, 0, 0, 0, 0, 250, 252, 12, 0, 55, 0, 128, 159, 96, 191, 48, 127, 0, 224, 14, 0, 248, 121, 79, 0, 240, 13, 0, 160, 255, 14, 0, 192, 79, 0, 16, 255, 8, 0, 48, 255, 138, 233, 239, 63, 0, 0, 162, 254, 174, 51, 239, 1 ]; + +/// ''' (ASCII 39) +const Font_Roboto_Regular_20_glyph_39: [u8; 10] = [ 2, 5, 3, 1, 15, 127, 127, 111, 95, 79 ]; + +/// '(' (ASCII 40) +const Font_Roboto_Regular_20_glyph_40: [u8; 68] = [ 6, 21, 7, 1, 16, 0, 0, 56, 0, 144, 46, 0, 246, 4, 16, 174, 0, 112, 47, 0, 208, 13, 0, 242, 8, 0, 246, 5, 0, 249, 3, 0, 250, 2, 0, 251, 1, 0, 250, 2, 0, 249, 3, 0, 246, 5, 0, 243, 8, 0, 208, 13, 0, 112, 47, 0, 16, 174, 0, 0, 246, 4, 0, 144, 46, 0, 0, 56 ]; + +/// ')' (ASCII 41) +const Font_Roboto_Regular_20_glyph_41: [u8; 68] = [ 6, 21, 7, 0, 16, 102, 0, 0, 244, 7, 0, 112, 63, 0, 0, 205, 0, 0, 246, 5, 0, 240, 11, 0, 176, 15, 0, 128, 63, 0, 96, 111, 0, 80, 127, 0, 64, 143, 0, 80, 127, 0, 96, 111, 0, 128, 63, 0, 192, 15, 0, 240, 11, 0, 245, 5, 0, 204, 0, 96, 63, 0, 244, 7, 0, 102, 0, 0 ]; + +/// '*' (ASCII 42) +const Font_Roboto_Regular_20_glyph_42: [u8; 50] = [ 9, 9, 9, 0, 14, 0, 96, 15, 0, 0, 0, 96, 15, 0, 0, 132, 82, 15, 148, 0, 247, 239, 239, 239, 2, 0, 244, 191, 2, 0, 0, 248, 234, 1, 0, 64, 111, 224, 12, 0, 64, 11, 64, 11, 0, 0, 0, 0, 0, 0 ]; + +/// '+' (ASCII 43) +const Font_Roboto_Regular_20_glyph_43: [u8; 77] = [ 11, 12, 11, 0, 13, 0, 0, 32, 1, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 243, 255, 255, 255, 255, 8, 178, 187, 252, 189, 187, 5, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 244, 8, 0, 0, 0, 0, 48, 1, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_Roboto_Regular_20_glyph_44: [u8; 17] = [ 4, 6, 4, 0, 3, 16, 2, 192, 15, 192, 15, 240, 13, 245, 7, 181, 0 ]; + +/// '-' (ASCII 45) +const Font_Roboto_Regular_20_glyph_45: [u8; 11] = [ 6, 2, 6, 0, 7, 250, 255, 47, 116, 119, 7 ]; + +/// '.' (ASCII 46) +const Font_Roboto_Regular_20_glyph_46: [u8; 11] = [ 3, 3, 5, 1, 3, 16, 0, 247, 8, 245, 6 ]; + +/// '/' (ASCII 47) +const Font_Roboto_Regular_20_glyph_47: [u8; 65] = [ 8, 15, 8, 0, 14, 0, 0, 16, 127, 0, 0, 112, 31, 0, 0, 208, 10, 0, 0, 244, 4, 0, 0, 218, 0, 0, 16, 127, 0, 0, 112, 31, 0, 0, 208, 11, 0, 0, 244, 4, 0, 0, 234, 0, 0, 16, 143, 0, 0, 112, 31, 0, 0, 208, 11, 0, 0, 243, 5, 0, 0, 234, 0, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_Roboto_Regular_20_glyph_48: [u8; 75] = [ 10, 14, 11, 1, 14, 0, 216, 239, 42, 0, 192, 207, 168, 239, 1, 245, 10, 0, 246, 8, 250, 2, 0, 224, 13, 252, 0, 0, 192, 15, 253, 0, 0, 176, 31, 254, 0, 0, 176, 31, 254, 0, 0, 176, 31, 253, 0, 0, 176, 31, 252, 0, 0, 192, 15, 249, 3, 0, 240, 13, 244, 10, 0, 246, 8, 176, 191, 168, 239, 1, 0, 216, 239, 42, 0 ]; + +/// '1' (ASCII 49) +const Font_Roboto_Regular_20_glyph_49: [u8; 61] = [ 7, 14, 11, 1, 14, 0, 16, 215, 2, 80, 251, 255, 2, 245, 158, 252, 2, 83, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2, 0, 0, 251, 2 ]; + +/// '2' (ASCII 50) +const Font_Roboto_Regular_20_glyph_50: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 145, 254, 174, 2, 0, 32, 254, 138, 251, 47, 0, 176, 95, 0, 112, 175, 0, 240, 13, 0, 0, 223, 0, 96, 4, 0, 0, 191, 0, 0, 0, 0, 112, 95, 0, 0, 0, 0, 242, 12, 0, 0, 0, 16, 238, 2, 0, 0, 0, 209, 63, 0, 0, 0, 0, 252, 4, 0, 0, 0, 176, 95, 0, 0, 0, 0, 250, 5, 0, 0, 0, 144, 207, 119, 119, 119, 3, 208, 255, 255, 255, 255, 8 ]; + +/// '3' (ASCII 51) +const Font_Roboto_Regular_20_glyph_51: [u8; 75] = [ 10, 14, 11, 0, 14, 0, 145, 254, 157, 1, 32, 254, 138, 250, 30, 160, 95, 0, 112, 143, 208, 13, 0, 32, 175, 0, 0, 0, 64, 159, 0, 0, 0, 212, 30, 0, 48, 255, 223, 2, 0, 16, 135, 251, 28, 0, 0, 0, 96, 159, 0, 0, 0, 0, 223, 240, 12, 0, 0, 239, 192, 63, 0, 80, 175, 48, 255, 138, 250, 46, 0, 162, 254, 158, 1 ]; + +/// '4' (ASCII 52) +const Font_Roboto_Regular_20_glyph_52: [u8; 89] = [ 11, 14, 11, 0, 14, 0, 0, 0, 247, 13, 0, 0, 0, 32, 255, 13, 0, 0, 0, 192, 254, 13, 0, 0, 0, 247, 245, 13, 0, 0, 32, 175, 240, 13, 0, 0, 208, 14, 240, 13, 0, 0, 248, 4, 240, 13, 0, 48, 159, 0, 240, 13, 0, 208, 13, 0, 240, 13, 0, 246, 255, 255, 255, 255, 12, 115, 119, 119, 247, 126, 5, 0, 0, 0, 240, 13, 0, 0, 0, 0, 240, 13, 0, 0, 0, 0, 240, 13, 0 ]; + +/// '5' (ASCII 53) +const Font_Roboto_Regular_20_glyph_53: [u8; 75] = [ 10, 14, 11, 1, 14, 80, 255, 255, 255, 15, 96, 207, 170, 170, 10, 128, 47, 0, 0, 0, 144, 31, 0, 0, 0, 176, 15, 0, 0, 0, 208, 174, 254, 109, 0, 224, 223, 186, 255, 7, 64, 6, 0, 243, 31, 0, 0, 0, 128, 95, 0, 0, 0, 96, 111, 246, 5, 0, 128, 95, 242, 12, 0, 225, 31, 128, 223, 152, 254, 7, 0, 198, 255, 92, 0 ]; + +/// '6' (ASCII 54) +const Font_Roboto_Regular_20_glyph_54: [u8; 75] = [ 10, 14, 11, 1, 14, 0, 32, 217, 79, 0, 0, 247, 207, 41, 0, 80, 223, 2, 0, 0, 208, 31, 0, 0, 0, 244, 8, 0, 0, 0, 247, 166, 254, 92, 0, 250, 223, 152, 255, 5, 250, 10, 0, 242, 14, 251, 2, 0, 160, 63, 250, 3, 0, 128, 79, 246, 6, 0, 160, 47, 241, 29, 0, 242, 13, 96, 239, 153, 255, 4, 0, 196, 255, 59, 0 ]; + +/// '7' (ASCII 55) +const Font_Roboto_Regular_20_glyph_55: [u8; 89] = [ 11, 14, 11, 0, 14, 244, 255, 255, 255, 255, 5, 113, 119, 119, 119, 253, 2, 0, 0, 0, 16, 175, 0, 0, 0, 0, 112, 63, 0, 0, 0, 0, 224, 12, 0, 0, 0, 0, 246, 5, 0, 0, 0, 0, 222, 0, 0, 0, 0, 80, 111, 0, 0, 0, 0, 208, 14, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 252, 1, 0, 0, 0, 64, 159, 0, 0, 0, 0, 176, 47, 0, 0, 0, 0, 243, 11, 0, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_Roboto_Regular_20_glyph_56: [u8; 75] = [ 10, 14, 11, 1, 14, 0, 216, 223, 25, 0, 208, 207, 168, 239, 2, 246, 10, 0, 246, 9, 248, 4, 0, 240, 12, 247, 6, 0, 242, 10, 225, 78, 32, 252, 3, 32, 253, 255, 79, 0, 160, 191, 168, 207, 1, 247, 7, 0, 244, 10, 253, 0, 0, 192, 15, 253, 0, 0, 192, 31, 250, 6, 0, 242, 14, 226, 175, 152, 255, 4, 16, 233, 239, 59, 0 ]; + +/// '9' (ASCII 57) +const Font_Roboto_Regular_20_glyph_57: [u8; 75] = [ 10, 14, 11, 0, 14, 0, 145, 254, 125, 0, 16, 254, 139, 253, 10, 144, 111, 0, 176, 79, 224, 14, 0, 32, 175, 240, 12, 0, 0, 223, 224, 14, 0, 0, 238, 160, 111, 0, 112, 239, 32, 255, 138, 236, 223, 0, 178, 255, 43, 191, 0, 0, 0, 48, 143, 0, 0, 0, 160, 63, 0, 0, 0, 248, 11, 0, 128, 234, 207, 1, 0, 240, 190, 5, 0 ]; + +/// ':' (ASCII 58) +const Font_Roboto_Regular_20_glyph_58: [u8; 27] = [ 3, 11, 5, 1, 11, 247, 5, 248, 6, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 248, 6, 247, 5 ]; + +/// ';' (ASCII 59) +const Font_Roboto_Regular_20_glyph_59: [u8; 33] = [ 4, 14, 4, 0, 11, 160, 46, 192, 63, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 160, 47, 160, 31, 208, 14, 243, 9, 196, 1 ]; + +/// '<' (ASCII 60) +const Font_Roboto_Regular_20_glyph_60: [u8; 50] = [ 9, 9, 10, 0, 11, 0, 0, 0, 112, 9, 0, 0, 113, 254, 10, 0, 129, 255, 125, 1, 145, 255, 75, 0, 0, 244, 78, 0, 0, 0, 145, 255, 74, 0, 0, 0, 129, 255, 125, 1, 0, 0, 113, 254, 10, 0, 0, 0, 112, 9 ]; + +/// '=' (ASCII 61) +const Font_Roboto_Regular_20_glyph_61: [u8; 35] = [ 9, 6, 11, 1, 9, 248, 255, 255, 255, 10, 148, 153, 153, 153, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 10, 148, 153, 153, 153, 5 ]; + +/// '>' (ASCII 62) +const Font_Roboto_Regular_20_glyph_62: [u8; 50] = [ 9, 9, 10, 1, 11, 121, 1, 0, 0, 0, 250, 143, 1, 0, 0, 80, 252, 175, 3, 0, 0, 32, 233, 207, 3, 0, 0, 16, 252, 10, 0, 48, 249, 191, 3, 96, 252, 175, 3, 0, 250, 143, 1, 0, 0, 121, 0, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_Roboto_Regular_20_glyph_63: [u8; 75] = [ 9, 14, 9, 0, 14, 0, 198, 239, 42, 0, 144, 239, 186, 239, 1, 241, 13, 0, 247, 8, 130, 5, 0, 243, 10, 0, 0, 0, 245, 7, 0, 0, 16, 254, 1, 0, 0, 209, 95, 0, 0, 0, 252, 5, 0, 0, 64, 159, 0, 0, 0, 112, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 95, 0, 0, 0, 96, 95, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_Roboto_Regular_20_glyph_64: [u8; 167] = [ 17, 18, 18, 1, 14, 0, 0, 96, 236, 239, 124, 1, 0, 0, 0, 48, 254, 105, 101, 233, 62, 0, 0, 0, 244, 10, 0, 0, 0, 248, 3, 0, 16, 158, 0, 0, 0, 0, 144, 12, 0, 160, 13, 0, 178, 223, 8, 0, 78, 0, 241, 5, 32, 190, 100, 111, 0, 153, 0, 246, 0, 176, 13, 32, 79, 0, 214, 0, 201, 0, 242, 6, 48, 63, 0, 228, 0, 172, 0, 246, 2, 80, 31, 0, 244, 0, 157, 0, 248, 0, 96, 15, 0, 229, 0, 156, 0, 249, 0, 128, 15, 0, 184, 0, 187, 0, 248, 1, 225, 15, 0, 110, 0, 247, 0, 243, 124, 188, 127, 163, 13, 0, 242, 5, 112, 238, 7, 232, 175, 1, 0, 160, 13, 0, 0, 0, 0, 0, 0, 0, 16, 206, 1, 0, 0, 0, 0, 0, 0, 0, 210, 159, 69, 116, 44, 0, 0, 0, 0, 0, 182, 254, 206, 24, 0, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_Roboto_Regular_20_glyph_65: [u8; 103] = [ 13, 14, 13, 0, 14, 0, 0, 112, 143, 0, 0, 0, 0, 0, 208, 239, 0, 0, 0, 0, 0, 244, 253, 5, 0, 0, 0, 0, 250, 242, 11, 0, 0, 0, 16, 191, 160, 31, 0, 0, 0, 96, 95, 64, 127, 0, 0, 0, 208, 15, 0, 222, 0, 0, 0, 243, 10, 0, 249, 4, 0, 0, 249, 4, 0, 243, 10, 0, 0, 255, 255, 255, 255, 31, 0, 80, 207, 136, 136, 184, 111, 0, 192, 47, 0, 0, 32, 207, 0, 242, 12, 0, 0, 0, 251, 3, 248, 6, 0, 0, 0, 245, 9 ]; + +/// 'B' (ASCII 66) +const Font_Roboto_Regular_20_glyph_66: [u8; 89] = [ 11, 14, 12, 1, 14, 245, 255, 255, 174, 3, 0, 245, 140, 152, 251, 79, 0, 245, 8, 0, 80, 207, 0, 245, 8, 0, 0, 239, 0, 245, 8, 0, 16, 223, 0, 245, 8, 0, 195, 95, 0, 245, 255, 255, 255, 5, 0, 245, 140, 136, 233, 79, 0, 245, 8, 0, 16, 238, 0, 245, 8, 0, 0, 250, 4, 245, 8, 0, 0, 250, 4, 245, 8, 0, 32, 255, 1, 245, 140, 136, 250, 127, 0, 245, 255, 255, 190, 4, 0 ]; + +/// 'C' (ASCII 67) +const Font_Roboto_Regular_20_glyph_67: [u8; 89] = [ 12, 14, 13, 1, 14, 0, 112, 253, 207, 6, 0, 32, 253, 156, 234, 191, 0, 192, 111, 0, 0, 251, 6, 245, 10, 0, 0, 242, 13, 250, 4, 0, 0, 160, 12, 252, 1, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 253, 0, 0, 0, 0, 0, 252, 2, 0, 0, 0, 0, 250, 4, 0, 0, 144, 11, 245, 11, 0, 0, 241, 13, 208, 95, 0, 0, 250, 6, 32, 254, 140, 234, 175, 0, 0, 129, 253, 207, 6, 0 ]; + +/// 'D' (ASCII 68) +const Font_Roboto_Regular_20_glyph_68: [u8; 89] = [ 11, 14, 13, 1, 14, 245, 255, 239, 91, 0, 0, 245, 140, 168, 254, 27, 0, 245, 8, 0, 128, 191, 0, 245, 8, 0, 0, 250, 4, 245, 8, 0, 0, 243, 10, 245, 8, 0, 0, 240, 13, 245, 8, 0, 0, 224, 14, 245, 8, 0, 0, 224, 14, 245, 8, 0, 0, 240, 13, 245, 8, 0, 0, 243, 10, 245, 8, 0, 0, 250, 4, 245, 8, 0, 128, 191, 0, 245, 140, 168, 254, 27, 0, 245, 255, 239, 91, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_Roboto_Regular_20_glyph_69: [u8; 75] = [ 10, 14, 11, 1, 14, 245, 255, 255, 255, 159, 245, 140, 136, 136, 88, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 255, 255, 255, 11, 245, 140, 136, 136, 5, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 140, 136, 136, 88, 245, 255, 255, 255, 191 ]; + +/// 'F' (ASCII 70) +const Font_Roboto_Regular_20_glyph_70: [u8; 75] = [ 10, 14, 11, 1, 14, 245, 255, 255, 255, 127, 245, 140, 136, 136, 56, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 255, 255, 255, 8, 245, 140, 136, 136, 4, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_Roboto_Regular_20_glyph_71: [u8; 89] = [ 12, 14, 14, 1, 14, 0, 129, 253, 207, 7, 0, 32, 254, 156, 218, 207, 0, 208, 111, 0, 0, 250, 8, 245, 10, 0, 0, 240, 14, 249, 4, 0, 0, 64, 5, 252, 2, 0, 0, 0, 0, 252, 1, 0, 255, 255, 47, 252, 1, 0, 136, 216, 47, 251, 2, 0, 0, 176, 47, 248, 5, 0, 0, 176, 47, 243, 12, 0, 0, 176, 47, 176, 143, 0, 0, 226, 47, 16, 252, 157, 184, 255, 7, 0, 96, 236, 223, 58, 0 ]; + +/// 'H' (ASCII 72) +const Font_Roboto_Regular_20_glyph_72: [u8; 89] = [ 12, 14, 14, 1, 14, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 255, 255, 255, 255, 159, 245, 140, 136, 136, 168, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159, 245, 8, 0, 0, 80, 159 ]; + +/// 'I' (ASCII 73) +const Font_Roboto_Regular_20_glyph_73: [u8; 33] = [ 3, 14, 5, 1, 14, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10, 243, 10 ]; + +/// 'J' (ASCII 74) +const Font_Roboto_Regular_20_glyph_74: [u8; 75] = [ 10, 14, 11, 0, 14, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 0, 0, 0, 96, 143, 32, 0, 0, 96, 127, 246, 7, 0, 128, 111, 243, 13, 0, 225, 47, 160, 239, 153, 254, 9, 0, 215, 255, 108, 0 ]; + +/// 'K' (ASCII 75) +const Font_Roboto_Regular_20_glyph_75: [u8; 89] = [ 12, 14, 13, 1, 14, 245, 8, 0, 0, 249, 10, 245, 8, 0, 112, 191, 0, 245, 8, 0, 245, 12, 0, 245, 8, 64, 223, 1, 0, 245, 8, 242, 46, 0, 0, 245, 24, 254, 3, 0, 0, 245, 217, 207, 0, 0, 0, 245, 223, 248, 8, 0, 0, 245, 30, 176, 79, 0, 0, 245, 8, 16, 238, 2, 0, 245, 8, 0, 244, 12, 0, 245, 8, 0, 128, 159, 0, 245, 8, 0, 0, 252, 6, 245, 8, 0, 0, 242, 63 ]; + +/// 'L' (ASCII 76) +const Font_Roboto_Regular_20_glyph_76: [u8; 75] = [ 10, 14, 11, 1, 14, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 8, 0, 0, 0, 245, 140, 136, 136, 40, 245, 255, 255, 255, 79 ]; + +/// 'M' (ASCII 77) +const Font_Roboto_Regular_20_glyph_77: [u8; 117] = [ 15, 14, 17, 1, 14, 245, 79, 0, 0, 0, 0, 253, 12, 245, 191, 0, 0, 0, 48, 255, 12, 245, 255, 1, 0, 0, 160, 255, 12, 245, 251, 8, 0, 0, 241, 236, 12, 245, 230, 14, 0, 0, 247, 245, 12, 245, 134, 95, 0, 0, 237, 240, 12, 245, 23, 191, 0, 64, 143, 240, 12, 245, 7, 250, 2, 160, 47, 240, 12, 245, 8, 244, 8, 241, 11, 241, 12, 245, 8, 208, 14, 248, 4, 241, 12, 245, 8, 112, 95, 222, 0, 241, 12, 245, 8, 16, 239, 127, 0, 241, 12, 245, 8, 0, 249, 31, 0, 241, 12, 245, 8, 0, 243, 10, 0, 241, 12 ]; + +/// 'N' (ASCII 78) +const Font_Roboto_Regular_20_glyph_78: [u8; 89] = [ 12, 14, 14, 1, 14, 245, 13, 0, 0, 64, 159, 245, 143, 0, 0, 64, 159, 245, 255, 3, 0, 64, 159, 245, 252, 13, 0, 64, 159, 245, 152, 143, 0, 64, 159, 245, 24, 254, 3, 64, 159, 245, 8, 244, 13, 64, 159, 245, 8, 160, 143, 64, 159, 245, 8, 16, 254, 66, 159, 245, 8, 0, 244, 76, 159, 245, 8, 0, 160, 207, 159, 245, 8, 0, 16, 254, 159, 245, 8, 0, 0, 244, 159, 245, 8, 0, 0, 160, 159 ]; + +/// 'O' (ASCII 79) +const Font_Roboto_Regular_20_glyph_79: [u8; 89] = [ 12, 14, 14, 1, 14, 0, 112, 253, 206, 5, 0, 16, 253, 173, 234, 175, 0, 176, 127, 0, 0, 250, 8, 244, 12, 0, 0, 224, 15, 249, 4, 0, 0, 128, 95, 251, 2, 0, 0, 80, 127, 253, 0, 0, 0, 64, 159, 253, 0, 0, 0, 64, 159, 251, 1, 0, 0, 80, 127, 249, 4, 0, 0, 128, 95, 244, 11, 0, 0, 224, 15, 176, 127, 0, 0, 250, 8, 16, 253, 173, 234, 191, 0, 0, 112, 253, 206, 6, 0 ]; + +/// 'P' (ASCII 80) +const Font_Roboto_Regular_20_glyph_80: [u8; 89] = [ 11, 14, 13, 1, 14, 245, 255, 255, 207, 7, 0, 245, 140, 136, 234, 207, 0, 245, 8, 0, 0, 251, 7, 245, 8, 0, 0, 242, 12, 245, 8, 0, 0, 240, 13, 245, 8, 0, 0, 244, 11, 245, 8, 0, 81, 254, 5, 245, 255, 255, 255, 127, 0, 245, 140, 136, 87, 1, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0, 245, 8, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_Roboto_Regular_20_glyph_81: [u8; 107] = [ 12, 17, 14, 1, 14, 0, 129, 253, 190, 5, 0, 32, 254, 173, 251, 159, 0, 208, 111, 0, 16, 251, 6, 245, 10, 0, 0, 241, 14, 250, 3, 0, 0, 144, 79, 253, 1, 0, 0, 96, 111, 254, 0, 0, 0, 80, 127, 254, 0, 0, 0, 80, 143, 253, 0, 0, 0, 96, 111, 250, 3, 0, 0, 144, 79, 245, 9, 0, 0, 225, 15, 208, 111, 0, 0, 251, 7, 32, 253, 157, 234, 175, 0, 0, 129, 253, 254, 143, 0, 0, 0, 0, 16, 252, 28, 0, 0, 0, 0, 144, 46, 0, 0, 0, 0, 0, 0 ]; + +/// 'R' (ASCII 82) +const Font_Roboto_Regular_20_glyph_82: [u8; 89] = [ 11, 14, 12, 1, 14, 245, 255, 255, 190, 3, 0, 245, 140, 152, 251, 111, 0, 245, 8, 0, 48, 255, 0, 245, 8, 0, 0, 251, 4, 245, 8, 0, 0, 249, 4, 245, 8, 0, 0, 253, 2, 245, 8, 0, 178, 175, 0, 245, 255, 255, 255, 10, 0, 245, 140, 136, 223, 0, 0, 245, 8, 0, 249, 6, 0, 245, 8, 0, 241, 30, 0, 245, 8, 0, 112, 159, 0, 245, 8, 0, 0, 253, 2, 245, 8, 0, 0, 245, 11 ]; + +/// 'S' (ASCII 83) +const Font_Roboto_Regular_20_glyph_83: [u8; 89] = [ 12, 14, 12, 0, 14, 0, 112, 253, 207, 7, 0, 0, 252, 157, 217, 223, 1, 128, 159, 0, 0, 248, 9, 176, 47, 0, 0, 240, 15, 160, 111, 0, 0, 64, 5, 48, 255, 41, 0, 0, 0, 0, 211, 255, 141, 2, 0, 0, 0, 164, 254, 159, 0, 0, 0, 0, 64, 253, 9, 80, 3, 0, 0, 241, 15, 241, 13, 0, 0, 208, 31, 176, 127, 0, 0, 243, 14, 16, 253, 157, 185, 255, 4, 0, 112, 252, 223, 41, 0 ]; + +/// 'T' (ASCII 84) +const Font_Roboto_Regular_20_glyph_84: [u8; 89] = [ 12, 14, 12, 0, 14, 248, 255, 255, 255, 255, 127, 132, 136, 248, 143, 136, 72, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_Roboto_Regular_20_glyph_85: [u8; 89] = [ 11, 14, 13, 1, 14, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 250, 3, 0, 0, 243, 10, 249, 4, 0, 0, 244, 10, 247, 6, 0, 0, 246, 8, 242, 46, 0, 16, 254, 2, 112, 255, 154, 250, 127, 0, 0, 180, 254, 190, 3, 0 ]; + +/// 'V' (ASCII 86) +const Font_Roboto_Regular_20_glyph_86: [u8; 103] = [ 13, 14, 13, 0, 14, 248, 7, 0, 0, 0, 252, 4, 242, 13, 0, 0, 16, 239, 0, 192, 63, 0, 0, 112, 143, 0, 96, 143, 0, 0, 208, 47, 0, 16, 239, 0, 0, 242, 12, 0, 0, 250, 3, 0, 248, 6, 0, 0, 244, 9, 0, 253, 0, 0, 0, 224, 14, 48, 175, 0, 0, 0, 128, 79, 144, 79, 0, 0, 0, 32, 175, 224, 14, 0, 0, 0, 0, 252, 245, 8, 0, 0, 0, 0, 246, 254, 2, 0, 0, 0, 0, 241, 207, 0, 0, 0, 0, 0, 160, 111, 0, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_Roboto_Regular_20_glyph_87: [u8; 131] = [ 18, 14, 18, 0, 14, 244, 9, 0, 0, 238, 0, 0, 160, 63, 240, 13, 0, 48, 255, 3, 0, 224, 14, 192, 31, 0, 128, 255, 7, 0, 242, 11, 128, 79, 0, 192, 221, 12, 0, 246, 7, 64, 143, 0, 241, 153, 15, 0, 249, 3, 16, 207, 0, 246, 68, 95, 0, 253, 0, 0, 253, 0, 250, 0, 159, 16, 191, 0, 0, 249, 3, 175, 0, 235, 64, 127, 0, 0, 245, 55, 111, 0, 246, 130, 63, 0, 0, 241, 139, 31, 0, 242, 199, 15, 0, 0, 208, 205, 12, 0, 208, 235, 11, 0, 0, 144, 255, 7, 0, 128, 255, 7, 0, 0, 80, 255, 3, 0, 64, 255, 3, 0, 0, 16, 239, 0, 0, 0, 255, 0, 0 ]; + +/// 'X' (ASCII 88) +const Font_Roboto_Regular_20_glyph_88: [u8; 103] = [ 13, 14, 13, 0, 14, 225, 47, 0, 0, 144, 159, 0, 80, 207, 0, 0, 243, 14, 0, 0, 251, 6, 0, 252, 4, 0, 0, 241, 30, 96, 175, 0, 0, 0, 96, 159, 241, 30, 0, 0, 0, 0, 252, 252, 5, 0, 0, 0, 0, 242, 191, 0, 0, 0, 0, 0, 243, 207, 0, 0, 0, 0, 0, 253, 251, 6, 0, 0, 0, 128, 143, 224, 31, 0, 0, 0, 242, 14, 80, 191, 0, 0, 0, 252, 5, 0, 251, 6, 0, 112, 191, 0, 0, 242, 30, 0, 242, 47, 0, 0, 128, 175, 0 ]; + +/// 'Y' (ASCII 89) +const Font_Roboto_Regular_20_glyph_89: [u8; 89] = [ 12, 14, 12, 0, 14, 249, 8, 0, 0, 144, 143, 241, 31, 0, 0, 241, 30, 112, 159, 0, 0, 249, 6, 0, 253, 2, 32, 223, 0, 0, 245, 10, 160, 79, 0, 0, 192, 47, 243, 12, 0, 0, 48, 191, 251, 3, 0, 0, 0, 250, 175, 0, 0, 0, 0, 242, 31, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0, 0, 0, 240, 14, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_Roboto_Regular_20_glyph_90: [u8; 89] = [ 12, 14, 12, 0, 14, 240, 255, 255, 255, 255, 14, 128, 136, 136, 136, 252, 11, 0, 0, 0, 16, 254, 2, 0, 0, 0, 176, 111, 0, 0, 0, 0, 247, 10, 0, 0, 0, 32, 239, 1, 0, 0, 0, 208, 79, 0, 0, 0, 0, 249, 8, 0, 0, 0, 64, 223, 0, 0, 0, 0, 225, 47, 0, 0, 0, 0, 250, 7, 0, 0, 0, 96, 191, 0, 0, 0, 0, 241, 175, 136, 136, 136, 24, 242, 255, 255, 255, 255, 63 ]; + +/// '[' (ASCII 91) +const Font_Roboto_Regular_20_glyph_91: [u8; 62] = [ 5, 19, 5, 1, 16, 249, 255, 1, 249, 121, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 4, 0, 249, 121, 0, 249, 255, 1 ]; + +/// '\' (ASCII 92) +const Font_Roboto_Regular_20_glyph_92: [u8; 80] = [ 9, 15, 8, 0, 14, 246, 4, 0, 0, 0, 240, 11, 0, 0, 0, 144, 31, 0, 0, 0, 48, 127, 0, 0, 0, 0, 237, 0, 0, 0, 0, 246, 4, 0, 0, 0, 241, 10, 0, 0, 0, 160, 31, 0, 0, 0, 48, 127, 0, 0, 0, 0, 221, 0, 0, 0, 0, 247, 4, 0, 0, 0, 241, 10, 0, 0, 0, 160, 31, 0, 0, 0, 64, 127, 0, 0, 0, 0, 221, 0 ]; + +/// ']' (ASCII 93) +const Font_Roboto_Regular_20_glyph_93: [u8; 43] = [ 4, 19, 5, 0, 16, 254, 207, 135, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 0, 207, 135, 207, 254, 207 ]; + +/// '^' (ASCII 94) +const Font_Roboto_Regular_20_glyph_94: [u8; 33] = [ 8, 7, 8, 0, 14, 0, 160, 15, 0, 0, 241, 111, 0, 0, 247, 221, 0, 0, 190, 246, 3, 80, 79, 240, 10, 192, 14, 144, 31, 242, 8, 32, 127 ]; + +/// '_' (ASCII 95) +const Font_Roboto_Regular_20_glyph_95: [u8; 15] = [ 9, 2, 9, 0, 0, 255, 255, 255, 255, 15, 119, 119, 119, 119, 7 ]; + +/// '`' (ASCII 96) +const Font_Roboto_Regular_20_glyph_96: [u8; 14] = [ 5, 3, 6, 0, 15, 225, 47, 0, 48, 223, 0, 0, 213, 4 ]; + +/// 'a' (ASCII 97) +const Font_Roboto_Regular_20_glyph_97: [u8; 60] = [ 9, 11, 11, 1, 11, 32, 233, 223, 8, 0, 242, 159, 183, 191, 0, 232, 3, 0, 249, 3, 0, 0, 0, 246, 6, 32, 217, 255, 255, 6, 243, 142, 69, 248, 6, 251, 2, 0, 246, 6, 238, 0, 0, 246, 6, 252, 3, 32, 254, 6, 245, 175, 250, 254, 7, 80, 252, 142, 244, 10 ]; + +/// 'b' (ASCII 98) +const Font_Roboto_Regular_20_glyph_98: [u8; 80] = [ 10, 15, 11, 1, 15, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 164, 254, 60, 0, 250, 222, 169, 255, 3, 250, 10, 0, 244, 12, 250, 2, 0, 192, 31, 250, 2, 0, 144, 79, 250, 2, 0, 128, 79, 250, 2, 0, 144, 79, 250, 2, 0, 192, 31, 250, 10, 0, 244, 12, 250, 222, 169, 255, 3, 250, 162, 254, 60, 0 ]; + +/// 'c' (ASCII 99) +const Font_Roboto_Regular_20_glyph_99: [u8; 60] = [ 10, 11, 10, 0, 11, 0, 128, 253, 158, 1, 0, 252, 140, 251, 29, 112, 143, 0, 96, 143, 208, 15, 0, 0, 172, 240, 12, 0, 0, 0, 241, 11, 0, 0, 0, 240, 12, 0, 0, 0, 208, 15, 0, 0, 104, 112, 143, 0, 80, 143, 0, 252, 139, 250, 13, 0, 128, 253, 142, 0 ]; + +/// 'd' (ASCII 100) +const Font_Roboto_Regular_20_glyph_100: [u8; 80] = [ 10, 15, 11, 0, 15, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 161, 254, 59, 223, 0, 253, 140, 251, 223, 128, 159, 0, 96, 223, 208, 31, 0, 0, 223, 240, 13, 0, 0, 223, 241, 12, 0, 0, 223, 240, 13, 0, 0, 223, 208, 31, 0, 0, 223, 112, 143, 0, 96, 223, 0, 253, 140, 251, 223, 0, 161, 254, 60, 221 ]; + +/// 'e' (ASCII 101) +const Font_Roboto_Regular_20_glyph_101: [u8; 60] = [ 10, 11, 11, 0, 11, 0, 96, 253, 158, 1, 0, 250, 139, 251, 13, 96, 127, 0, 112, 127, 192, 14, 0, 0, 191, 240, 255, 255, 255, 223, 241, 125, 119, 119, 103, 240, 13, 0, 0, 0, 208, 47, 0, 0, 0, 112, 191, 0, 0, 58, 0, 252, 141, 232, 79, 0, 112, 253, 190, 3 ]; + +/// 'f' (ASCII 102) +const Font_Roboto_Regular_20_glyph_102: [u8; 65] = [ 7, 15, 7, 0, 15, 0, 96, 253, 13, 0, 245, 158, 8, 0, 250, 3, 0, 0, 251, 1, 0, 246, 255, 255, 5, 98, 253, 102, 1, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0, 0, 252, 1, 0 ]; + +/// 'g' (ASCII 103) +const Font_Roboto_Regular_20_glyph_103: [u8; 80] = [ 10, 15, 11, 0, 11, 0, 161, 254, 60, 221, 0, 253, 140, 251, 223, 128, 159, 0, 96, 223, 208, 31, 0, 0, 223, 240, 13, 0, 0, 223, 240, 12, 0, 0, 223, 240, 13, 0, 0, 223, 208, 31, 0, 0, 223, 112, 159, 0, 96, 223, 0, 253, 140, 251, 223, 0, 161, 254, 60, 223, 0, 0, 0, 16, 207, 16, 26, 0, 128, 127, 48, 239, 137, 251, 13, 0, 162, 254, 142, 0 ]; + +/// 'h' (ASCII 104) +const Font_Roboto_Regular_20_glyph_104: [u8; 80] = [ 9, 15, 11, 1, 15, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 131, 254, 76, 0, 250, 222, 169, 255, 1, 250, 11, 0, 247, 7, 250, 3, 0, 242, 9, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10 ]; + +/// 'i' (ASCII 105) +const Font_Roboto_Regular_20_glyph_105: [u8; 37] = [ 3, 16, 5, 1, 16, 0, 0, 247, 5, 246, 4, 0, 0, 0, 0, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5 ]; + +/// 'j' (ASCII 106) +const Font_Roboto_Regular_20_glyph_106: [u8; 65] = [ 5, 20, 6, 0, 16, 0, 0, 0, 0, 249, 3, 0, 248, 3, 0, 0, 0, 0, 0, 0, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 249, 3, 0, 250, 2, 150, 239, 0, 249, 60, 0 ]; + +/// 'k' (ASCII 107) +const Font_Roboto_Regular_20_glyph_107: [u8; 80] = [ 10, 15, 10, 1, 15, 250, 3, 0, 0, 0, 250, 3, 0, 0, 0, 250, 3, 0, 0, 0, 250, 3, 0, 0, 0, 250, 3, 16, 254, 3, 250, 3, 192, 79, 0, 250, 3, 251, 6, 0, 250, 147, 143, 0, 0, 250, 248, 11, 0, 0, 250, 223, 63, 0, 0, 250, 23, 222, 0, 0, 250, 3, 245, 9, 0, 250, 3, 160, 95, 0, 250, 3, 16, 238, 1, 250, 3, 0, 245, 12 ]; + +/// 'l' (ASCII 108) +const Font_Roboto_Regular_20_glyph_108: [u8; 35] = [ 3, 15, 5, 1, 15, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5, 247, 5 ]; + +/// 'm' (ASCII 109) +const Font_Roboto_Regular_20_glyph_109: [u8; 93] = [ 16, 11, 18, 1, 11, 250, 162, 254, 76, 96, 253, 141, 0, 250, 206, 185, 255, 250, 154, 253, 9, 250, 8, 0, 248, 63, 0, 224, 15, 250, 2, 0, 243, 12, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47, 250, 2, 0, 242, 10, 0, 160, 47 ]; + +/// 'n' (ASCII 110) +const Font_Roboto_Regular_20_glyph_110: [u8; 60] = [ 9, 11, 11, 1, 11, 250, 130, 254, 76, 0, 250, 221, 169, 255, 1, 250, 11, 0, 247, 7, 250, 3, 0, 242, 9, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10 ]; + +/// 'o' (ASCII 111) +const Font_Roboto_Regular_20_glyph_111: [u8; 71] = [ 11, 11, 11, 0, 11, 0, 112, 253, 174, 2, 0, 0, 251, 140, 250, 62, 0, 96, 159, 0, 48, 223, 0, 192, 31, 0, 0, 250, 3, 240, 13, 0, 0, 246, 6, 241, 11, 0, 0, 245, 7, 240, 13, 0, 0, 246, 6, 208, 31, 0, 0, 250, 3, 96, 159, 0, 48, 223, 0, 0, 251, 124, 249, 62, 0, 0, 112, 253, 174, 2, 0 ]; + +/// 'p' (ASCII 112) +const Font_Roboto_Regular_20_glyph_112: [u8; 80] = [ 10, 15, 11, 1, 11, 250, 162, 254, 60, 0, 250, 206, 185, 255, 3, 250, 9, 0, 246, 12, 250, 2, 0, 208, 31, 250, 2, 0, 160, 63, 250, 2, 0, 128, 79, 250, 2, 0, 160, 63, 250, 2, 0, 208, 31, 250, 7, 0, 245, 11, 250, 191, 167, 255, 3, 250, 165, 254, 60, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0, 250, 2, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_Roboto_Regular_20_glyph_113: [u8; 80] = [ 10, 15, 11, 0, 11, 0, 161, 254, 76, 221, 16, 253, 139, 250, 223, 128, 159, 0, 64, 223, 208, 31, 0, 0, 223, 240, 13, 0, 0, 223, 241, 12, 0, 0, 223, 240, 13, 0, 0, 223, 208, 31, 0, 0, 223, 128, 143, 0, 64, 223, 0, 253, 123, 250, 223, 0, 161, 254, 76, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223, 0, 0, 0, 0, 223 ]; + +/// 'r' (ASCII 114) +const Font_Roboto_Regular_20_glyph_114: [u8; 38] = [ 6, 11, 7, 1, 11, 250, 180, 111, 250, 238, 92, 250, 11, 0, 250, 3, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0, 250, 2, 0 ]; + +/// 's' (ASCII 115) +const Font_Roboto_Regular_20_glyph_115: [u8; 60] = [ 10, 11, 10, 0, 11, 0, 162, 254, 108, 0, 32, 255, 137, 253, 9, 144, 79, 0, 208, 31, 160, 63, 0, 32, 20, 64, 255, 73, 0, 0, 0, 179, 255, 175, 1, 0, 0, 64, 250, 13, 112, 5, 0, 160, 79, 224, 47, 0, 160, 63, 80, 239, 137, 251, 12, 0, 179, 254, 125, 0 ]; + +/// 't' (ASCII 116) +const Font_Roboto_Regular_20_glyph_116: [u8; 47] = [ 6, 14, 7, 0, 14, 0, 223, 0, 0, 223, 0, 0, 223, 0, 254, 255, 207, 101, 239, 70, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 223, 0, 0, 222, 0, 0, 251, 138, 0, 194, 191 ]; + +/// 'u' (ASCII 117) +const Font_Roboto_Regular_20_glyph_117: [u8; 60] = [ 9, 11, 11, 1, 11, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 250, 2, 0, 242, 10, 249, 3, 0, 242, 10, 247, 7, 0, 249, 10, 241, 175, 201, 255, 10, 48, 252, 191, 243, 10 ]; + +/// 'v' (ASCII 118) +const Font_Roboto_Regular_20_glyph_118: [u8; 60] = [ 10, 11, 10, 0, 11, 248, 5, 0, 176, 47, 242, 10, 0, 240, 12, 192, 15, 0, 244, 7, 112, 79, 0, 249, 1, 16, 159, 0, 206, 0, 0, 236, 48, 111, 0, 0, 246, 131, 31, 0, 0, 241, 216, 11, 0, 0, 176, 254, 6, 0, 0, 80, 255, 1, 0, 0, 0, 191, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_Roboto_Regular_20_glyph_119: [u8; 93] = [ 15, 11, 15, 0, 11, 247, 5, 0, 246, 5, 0, 245, 6, 242, 9, 0, 250, 10, 0, 249, 2, 224, 13, 0, 255, 15, 0, 221, 0, 144, 31, 64, 127, 79, 16, 159, 0, 80, 95, 144, 14, 143, 80, 79, 0, 16, 159, 224, 9, 218, 144, 15, 0, 0, 220, 242, 4, 245, 210, 11, 0, 0, 247, 249, 0, 241, 248, 7, 0, 0, 243, 191, 0, 192, 255, 2, 0, 0, 224, 111, 0, 112, 239, 0, 0, 0, 160, 31, 0, 32, 159, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_Roboto_Regular_20_glyph_120: [u8; 60] = [ 10, 11, 10, 0, 11, 242, 13, 0, 241, 31, 128, 127, 0, 250, 6, 0, 253, 49, 207, 0, 0, 244, 201, 47, 0, 0, 160, 255, 8, 0, 0, 48, 255, 1, 0, 0, 176, 255, 9, 0, 0, 245, 185, 63, 0, 16, 238, 33, 223, 0, 160, 111, 0, 248, 8, 244, 12, 0, 208, 47 ]; + +/// 'y' (ASCII 121) +const Font_Roboto_Regular_20_glyph_121: [u8; 80] = [ 10, 15, 9, 0, 11, 249, 5, 0, 208, 31, 243, 10, 0, 242, 11, 224, 15, 0, 247, 5, 128, 95, 0, 252, 0, 32, 175, 16, 175, 0, 0, 253, 96, 95, 0, 0, 247, 181, 15, 0, 0, 241, 251, 10, 0, 0, 176, 255, 4, 0, 0, 96, 239, 0, 0, 0, 16, 159, 0, 0, 0, 80, 79, 0, 0, 0, 208, 13, 0, 0, 145, 253, 5, 0, 0, 242, 110, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_Roboto_Regular_20_glyph_122: [u8; 60] = [ 10, 11, 10, 0, 11, 240, 255, 255, 255, 15, 128, 136, 136, 251, 12, 0, 0, 16, 254, 2, 0, 0, 176, 95, 0, 0, 0, 247, 10, 0, 0, 48, 239, 0, 0, 0, 208, 63, 0, 0, 0, 249, 8, 0, 0, 64, 207, 0, 0, 0, 224, 159, 119, 119, 23, 242, 255, 255, 255, 79 ]; + +/// '{' (ASCII 123) +const Font_Roboto_Regular_20_glyph_123: [u8; 85] = [ 7, 20, 7, 0, 16, 0, 0, 179, 5, 0, 64, 207, 2, 0, 208, 14, 0, 0, 242, 9, 0, 0, 244, 8, 0, 0, 244, 8, 0, 0, 244, 7, 0, 0, 246, 6, 0, 48, 253, 1, 0, 246, 79, 0, 0, 162, 191, 0, 0, 0, 249, 3, 0, 0, 245, 7, 0, 0, 244, 7, 0, 0, 244, 8, 0, 0, 243, 8, 0, 0, 241, 10, 0, 0, 192, 31, 0, 0, 48, 223, 2, 0, 0, 178, 5 ]; + +/// '|' (ASCII 124) +const Font_Roboto_Regular_20_glyph_124: [u8; 39] = [ 3, 17, 5, 1, 14, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2, 244, 2 ]; + +/// '}' (ASCII 125) +const Font_Roboto_Regular_20_glyph_125: [u8; 85] = [ 7, 20, 7, 0, 16, 152, 1, 0, 0, 228, 29, 0, 0, 48, 159, 0, 0, 0, 238, 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 250, 2, 0, 0, 244, 27, 0, 0, 112, 255, 1, 0, 209, 143, 0, 0, 248, 5, 0, 0, 251, 1, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 252, 0, 0, 0, 222, 0, 0, 80, 143, 0, 0, 229, 29, 0, 0, 152, 1, 0, 0 ]; + +/// '~' (ASCII 126) +const Font_Roboto_Regular_20_glyph_126: [u8; 29] = [ 12, 4, 14, 1, 8, 64, 253, 109, 0, 32, 59, 243, 173, 254, 43, 161, 31, 249, 1, 144, 255, 255, 7, 50, 0, 0, 115, 56, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_Roboto_Regular_20_glyph_nonprintable: [u8; 75] = [ 9, 14, 9, 0, 14, 255, 57, 16, 213, 255, 111, 16, 69, 16, 254, 14, 242, 255, 8, 247, 125, 250, 255, 12, 245, 255, 255, 255, 10, 248, 255, 255, 239, 1, 254, 255, 255, 46, 160, 255, 255, 255, 3, 250, 255, 255, 191, 96, 255, 255, 255, 143, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 159, 160, 255, 255, 255, 159, 160, 255, 255 ]; + +/// Array of references for 'Roboto_Regular_20' normal ASCII glyphs +const Font_Roboto_Regular_20: [&[u8]; 95] = [ + &Font_Roboto_Regular_20_glyph_32, + &Font_Roboto_Regular_20_glyph_33, + &Font_Roboto_Regular_20_glyph_34, + &Font_Roboto_Regular_20_glyph_35, + &Font_Roboto_Regular_20_glyph_36, + &Font_Roboto_Regular_20_glyph_37, + &Font_Roboto_Regular_20_glyph_38, + &Font_Roboto_Regular_20_glyph_39, + &Font_Roboto_Regular_20_glyph_40, + &Font_Roboto_Regular_20_glyph_41, + &Font_Roboto_Regular_20_glyph_42, + &Font_Roboto_Regular_20_glyph_43, + &Font_Roboto_Regular_20_glyph_44, + &Font_Roboto_Regular_20_glyph_45, + &Font_Roboto_Regular_20_glyph_46, + &Font_Roboto_Regular_20_glyph_47, + &Font_Roboto_Regular_20_glyph_48, + &Font_Roboto_Regular_20_glyph_49, + &Font_Roboto_Regular_20_glyph_50, + &Font_Roboto_Regular_20_glyph_51, + &Font_Roboto_Regular_20_glyph_52, + &Font_Roboto_Regular_20_glyph_53, + &Font_Roboto_Regular_20_glyph_54, + &Font_Roboto_Regular_20_glyph_55, + &Font_Roboto_Regular_20_glyph_56, + &Font_Roboto_Regular_20_glyph_57, + &Font_Roboto_Regular_20_glyph_58, + &Font_Roboto_Regular_20_glyph_59, + &Font_Roboto_Regular_20_glyph_60, + &Font_Roboto_Regular_20_glyph_61, + &Font_Roboto_Regular_20_glyph_62, + &Font_Roboto_Regular_20_glyph_63, + &Font_Roboto_Regular_20_glyph_64, + &Font_Roboto_Regular_20_glyph_65, + &Font_Roboto_Regular_20_glyph_66, + &Font_Roboto_Regular_20_glyph_67, + &Font_Roboto_Regular_20_glyph_68, + &Font_Roboto_Regular_20_glyph_69, + &Font_Roboto_Regular_20_glyph_70, + &Font_Roboto_Regular_20_glyph_71, + &Font_Roboto_Regular_20_glyph_72, + &Font_Roboto_Regular_20_glyph_73, + &Font_Roboto_Regular_20_glyph_74, + &Font_Roboto_Regular_20_glyph_75, + &Font_Roboto_Regular_20_glyph_76, + &Font_Roboto_Regular_20_glyph_77, + &Font_Roboto_Regular_20_glyph_78, + &Font_Roboto_Regular_20_glyph_79, + &Font_Roboto_Regular_20_glyph_80, + &Font_Roboto_Regular_20_glyph_81, + &Font_Roboto_Regular_20_glyph_82, + &Font_Roboto_Regular_20_glyph_83, + &Font_Roboto_Regular_20_glyph_84, + &Font_Roboto_Regular_20_glyph_85, + &Font_Roboto_Regular_20_glyph_86, + &Font_Roboto_Regular_20_glyph_87, + &Font_Roboto_Regular_20_glyph_88, + &Font_Roboto_Regular_20_glyph_89, + &Font_Roboto_Regular_20_glyph_90, + &Font_Roboto_Regular_20_glyph_91, + &Font_Roboto_Regular_20_glyph_92, + &Font_Roboto_Regular_20_glyph_93, + &Font_Roboto_Regular_20_glyph_94, + &Font_Roboto_Regular_20_glyph_95, + &Font_Roboto_Regular_20_glyph_96, + &Font_Roboto_Regular_20_glyph_97, + &Font_Roboto_Regular_20_glyph_98, + &Font_Roboto_Regular_20_glyph_99, + &Font_Roboto_Regular_20_glyph_100, + &Font_Roboto_Regular_20_glyph_101, + &Font_Roboto_Regular_20_glyph_102, + &Font_Roboto_Regular_20_glyph_103, + &Font_Roboto_Regular_20_glyph_104, + &Font_Roboto_Regular_20_glyph_105, + &Font_Roboto_Regular_20_glyph_106, + &Font_Roboto_Regular_20_glyph_107, + &Font_Roboto_Regular_20_glyph_108, + &Font_Roboto_Regular_20_glyph_109, + &Font_Roboto_Regular_20_glyph_110, + &Font_Roboto_Regular_20_glyph_111, + &Font_Roboto_Regular_20_glyph_112, + &Font_Roboto_Regular_20_glyph_113, + &Font_Roboto_Regular_20_glyph_114, + &Font_Roboto_Regular_20_glyph_115, + &Font_Roboto_Regular_20_glyph_116, + &Font_Roboto_Regular_20_glyph_117, + &Font_Roboto_Regular_20_glyph_118, + &Font_Roboto_Regular_20_glyph_119, + &Font_Roboto_Regular_20_glyph_120, + &Font_Roboto_Regular_20_glyph_121, + &Font_Roboto_Regular_20_glyph_122, + &Font_Roboto_Regular_20_glyph_123, + &Font_Roboto_Regular_20_glyph_124, + &Font_Roboto_Regular_20_glyph_125, + &Font_Roboto_Regular_20_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_Roboto_Regular_20_info: FontInfo = FontInfo { + height: 20, + max_height: 22, + baseline: 5, + glyph_data: &Font_Roboto_Regular_20, + glyph_nonprintable: &Font_Roboto_Regular_20_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs new file mode 100644 index 00000000000..1a7ca06a1f0 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_robotomono_medium_20.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_RobotoMono_Medium_20_glyph_32: [u8; 5] = [ 0, 0, 12, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_RobotoMono_Medium_20_glyph_33: [u8; 37] = [ 4, 16, 12, 4, 15, 48, 3, 244, 31, 244, 31, 243, 31, 243, 31, 243, 31, 243, 31, 243, 15, 243, 15, 242, 15, 48, 3, 0, 0, 96, 5, 246, 79, 243, 47, 16, 0 ]; + +/// '"' (ASCII 34) +const Font_RobotoMono_Medium_20_glyph_34: [u8; 20] = [ 6, 5, 12, 3, 15, 223, 32, 175, 207, 32, 159, 191, 32, 143, 175, 32, 127, 158, 32, 111 ]; + +/// '#' (ASCII 35) +const Font_RobotoMono_Medium_20_glyph_35: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 0, 49, 0, 49, 0, 0, 0, 247, 1, 234, 0, 0, 0, 234, 0, 189, 0, 0, 0, 189, 0, 143, 0, 16, 34, 175, 82, 127, 2, 192, 255, 255, 255, 255, 111, 64, 166, 127, 198, 111, 38, 0, 144, 15, 192, 13, 0, 0, 192, 12, 240, 10, 0, 132, 248, 141, 249, 140, 5, 248, 255, 255, 255, 255, 10, 0, 245, 4, 248, 1, 0, 0, 248, 1, 235, 0, 0, 0, 235, 0, 190, 0, 0, 0, 190, 16, 143, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_RobotoMono_Medium_20_glyph_36: [u8; 105] = [ 10, 20, 12, 1, 17, 0, 0, 130, 1, 0, 0, 0, 244, 3, 0, 0, 16, 248, 7, 0, 0, 249, 255, 255, 5, 128, 255, 138, 253, 63, 224, 143, 0, 208, 175, 240, 79, 0, 128, 223, 240, 159, 0, 16, 34, 128, 255, 58, 0, 0, 0, 249, 255, 93, 0, 0, 48, 250, 255, 11, 0, 0, 16, 248, 143, 83, 3, 0, 144, 223, 248, 13, 0, 96, 239, 244, 95, 0, 192, 207, 192, 255, 205, 255, 79, 0, 248, 255, 223, 4, 0, 0, 248, 1, 0, 0, 0, 247, 0, 0, 0, 0, 16, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_RobotoMono_Medium_20_glyph_37: [u8; 101] = [ 12, 16, 12, 0, 15, 0, 101, 1, 0, 0, 0, 225, 255, 63, 0, 0, 0, 248, 36, 175, 0, 6, 0, 249, 0, 205, 80, 63, 0, 249, 1, 206, 208, 10, 0, 244, 188, 111, 246, 2, 0, 80, 203, 23, 158, 0, 0, 0, 0, 128, 31, 0, 0, 0, 0, 241, 8, 0, 0, 0, 0, 233, 177, 255, 8, 0, 32, 111, 249, 167, 95, 0, 176, 13, 220, 16, 159, 0, 209, 5, 221, 0, 159, 0, 0, 0, 250, 117, 111, 0, 0, 0, 209, 255, 11, 0, 0, 0, 0, 34, 0 ]; + +/// '&' (ASCII 38) +const Font_RobotoMono_Medium_20_glyph_38: [u8; 101] = [ 12, 16, 12, 0, 15, 0, 0, 99, 5, 0, 0, 0, 176, 255, 239, 2, 0, 0, 248, 143, 252, 11, 0, 0, 252, 7, 241, 15, 0, 0, 253, 6, 242, 14, 0, 0, 249, 43, 253, 6, 0, 0, 242, 255, 127, 0, 0, 0, 192, 255, 6, 0, 0, 0, 252, 255, 13, 96, 108, 144, 223, 226, 175, 160, 111, 240, 95, 64, 255, 231, 63, 242, 63, 0, 247, 255, 13, 240, 159, 0, 224, 255, 4, 112, 255, 189, 254, 255, 11, 0, 247, 255, 175, 245, 143, 0, 0, 34, 0, 0, 0 ]; + +/// ''' (ASCII 39) +const Font_RobotoMono_Medium_20_glyph_39: [u8; 17] = [ 3, 6, 12, 4, 15, 246, 7, 246, 7, 246, 6, 246, 5, 246, 4, 0, 0 ]; + +/// '(' (ASCII 40) +const Font_RobotoMono_Medium_20_glyph_40: [u8; 68] = [ 6, 21, 12, 3, 16, 0, 0, 86, 0, 128, 143, 0, 245, 10, 0, 254, 1, 112, 143, 0, 208, 63, 0, 242, 14, 0, 245, 11, 0, 247, 9, 0, 248, 8, 0, 249, 8, 0, 248, 9, 0, 247, 10, 0, 244, 12, 0, 240, 15, 0, 176, 95, 0, 64, 191, 0, 0, 251, 3, 0, 225, 30, 0, 48, 158, 0, 0, 33 ]; + +/// ')' (ASCII 41) +const Font_RobotoMono_Medium_20_glyph_41: [u8; 68] = [ 6, 21, 12, 3, 16, 71, 0, 0, 250, 5, 0, 208, 63, 0, 48, 207, 0, 0, 252, 5, 0, 246, 11, 0, 241, 15, 0, 224, 63, 0, 192, 111, 0, 176, 127, 0, 176, 127, 0, 192, 111, 0, 208, 95, 0, 240, 47, 0, 243, 14, 0, 247, 8, 0, 253, 2, 96, 159, 0, 243, 13, 0, 220, 1, 0, 3, 0, 0 ]; + +/// '*' (ASCII 42) +const Font_RobotoMono_Medium_20_glyph_42: [u8; 71] = [ 11, 11, 12, 1, 15, 0, 0, 49, 1, 0, 0, 0, 0, 248, 5, 0, 0, 0, 0, 246, 4, 0, 0, 96, 0, 245, 3, 65, 0, 243, 159, 247, 148, 255, 0, 130, 252, 255, 255, 156, 1, 0, 16, 255, 12, 0, 0, 0, 192, 143, 111, 0, 0, 0, 249, 7, 253, 4, 0, 16, 222, 0, 244, 11, 0, 0, 49, 0, 80, 0, 0 ]; + +/// '+' (ASCII 43) +const Font_RobotoMono_Medium_20_glyph_43: [u8; 60] = [ 10, 11, 12, 1, 12, 0, 32, 204, 0, 0, 0, 48, 255, 0, 0, 0, 48, 255, 0, 0, 0, 48, 255, 0, 0, 204, 220, 255, 204, 172, 255, 255, 255, 255, 207, 101, 134, 255, 102, 86, 0, 48, 255, 0, 0, 0, 48, 255, 0, 0, 0, 48, 255, 0, 0, 0, 16, 153, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_RobotoMono_Medium_20_glyph_44: [u8; 19] = [ 4, 7, 12, 3, 3, 32, 36, 160, 175, 160, 175, 176, 159, 224, 79, 244, 12, 113, 1 ]; + +/// '-' (ASCII 45) +const Font_RobotoMono_Medium_20_glyph_45: [u8; 20] = [ 9, 3, 12, 2, 8, 49, 51, 51, 51, 1, 248, 255, 255, 255, 5, 181, 187, 187, 187, 4 ]; + +/// '.' (ASCII 46) +const Font_RobotoMono_Medium_20_glyph_46: [u8; 15] = [ 4, 5, 12, 4, 4, 0, 0, 227, 111, 248, 207, 244, 127, 16, 2 ]; + +/// '/' (ASCII 47) +const Font_RobotoMono_Medium_20_glyph_47: [u8; 73] = [ 8, 17, 12, 2, 15, 0, 0, 0, 51, 0, 0, 96, 191, 0, 0, 192, 111, 0, 0, 242, 15, 0, 0, 247, 10, 0, 0, 253, 4, 0, 48, 239, 0, 0, 144, 159, 0, 0, 224, 63, 0, 0, 244, 13, 0, 0, 250, 7, 0, 0, 255, 2, 0, 96, 207, 0, 0, 176, 111, 0, 0, 241, 31, 0, 0, 247, 10, 0, 0, 50, 1, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_RobotoMono_Medium_20_glyph_48: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 48, 102, 3, 0, 16, 251, 255, 191, 1, 176, 239, 136, 254, 11, 242, 63, 0, 243, 63, 247, 13, 0, 208, 127, 249, 11, 0, 226, 159, 249, 11, 80, 255, 175, 249, 11, 249, 203, 175, 249, 205, 127, 176, 175, 249, 239, 3, 176, 175, 249, 30, 0, 176, 159, 246, 14, 0, 224, 127, 241, 111, 0, 245, 47, 128, 255, 204, 255, 9, 0, 247, 255, 143, 0, 0, 0, 34, 0, 0 ]; + +/// '1' (ASCII 49) +const Font_RobotoMono_Medium_20_glyph_49: [u8; 65] = [ 7, 15, 12, 1, 15, 0, 0, 0, 1, 0, 16, 198, 13, 64, 250, 255, 13, 242, 255, 254, 13, 194, 22, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13, 0, 0, 248, 13 ]; + +/// '2' (ASCII 50) +const Font_RobotoMono_Medium_20_glyph_50: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 0, 100, 21, 0, 0, 0, 246, 255, 255, 8, 0, 96, 255, 139, 251, 111, 0, 224, 143, 0, 160, 223, 0, 243, 47, 0, 80, 255, 0, 16, 1, 0, 96, 239, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 249, 30, 0, 0, 0, 112, 255, 3, 0, 0, 0, 246, 95, 0, 0, 0, 80, 255, 6, 0, 0, 0, 244, 127, 0, 0, 0, 48, 255, 8, 0, 0, 0, 224, 255, 238, 238, 238, 8, 240, 255, 255, 255, 255, 9 ]; + +/// '3' (ASCII 51) +const Font_RobotoMono_Medium_20_glyph_51: [u8; 101] = [ 11, 16, 12, 0, 15, 0, 0, 100, 21, 0, 0, 0, 246, 255, 255, 10, 0, 64, 255, 140, 249, 159, 0, 192, 191, 0, 112, 255, 0, 112, 55, 0, 48, 255, 2, 0, 0, 0, 80, 255, 0, 0, 0, 34, 230, 143, 0, 0, 0, 255, 255, 8, 0, 0, 0, 170, 253, 95, 0, 0, 0, 0, 112, 255, 1, 0, 0, 0, 0, 255, 5, 208, 77, 0, 0, 255, 5, 208, 191, 0, 112, 255, 1, 64, 255, 190, 253, 159, 0, 0, 212, 255, 239, 7, 0, 0, 0, 49, 2, 0, 0 ]; + +/// '4' (ASCII 52) +const Font_RobotoMono_Medium_20_glyph_52: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 0, 0, 49, 3, 0, 0, 0, 0, 250, 63, 0, 0, 0, 80, 255, 63, 0, 0, 0, 224, 255, 63, 0, 0, 0, 249, 250, 63, 0, 0, 48, 223, 242, 63, 0, 0, 208, 63, 242, 63, 0, 0, 248, 9, 242, 63, 0, 32, 239, 0, 242, 63, 0, 192, 95, 17, 243, 63, 1, 244, 255, 255, 255, 255, 15, 212, 221, 221, 253, 223, 13, 0, 0, 0, 242, 63, 0, 0, 0, 0, 242, 63, 0, 0, 0, 0, 242, 63, 0 ]; + +/// '5' (ASCII 53) +const Font_RobotoMono_Medium_20_glyph_53: [u8; 85] = [ 10, 16, 12, 1, 15, 16, 51, 51, 51, 19, 112, 255, 255, 255, 79, 128, 239, 221, 221, 61, 160, 143, 0, 0, 0, 192, 111, 0, 0, 0, 224, 79, 67, 3, 0, 240, 255, 255, 223, 3, 241, 223, 169, 255, 14, 16, 4, 0, 243, 111, 0, 0, 0, 176, 175, 0, 0, 0, 160, 191, 215, 10, 0, 192, 175, 244, 79, 0, 243, 95, 176, 255, 188, 255, 12, 0, 248, 255, 175, 1, 0, 0, 34, 0, 0 ]; + +/// '6' (ASCII 54) +const Font_RobotoMono_Medium_20_glyph_54: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 0, 16, 35, 0, 0, 96, 253, 127, 0, 0, 250, 239, 91, 0, 112, 255, 6, 0, 0, 241, 111, 0, 0, 0, 246, 13, 100, 4, 0, 250, 203, 255, 239, 2, 252, 239, 152, 255, 13, 253, 29, 0, 244, 79, 253, 8, 0, 208, 127, 252, 9, 0, 192, 143, 249, 12, 0, 224, 127, 243, 95, 0, 246, 47, 144, 255, 204, 255, 9, 0, 247, 255, 127, 0, 0, 0, 34, 0, 0 ]; + +/// '7' (ASCII 55) +const Font_RobotoMono_Medium_20_glyph_55: [u8; 95] = [ 11, 15, 12, 0, 15, 48, 51, 51, 51, 51, 2, 242, 255, 255, 255, 255, 11, 177, 187, 187, 187, 255, 8, 0, 0, 0, 32, 255, 1, 0, 0, 0, 144, 175, 0, 0, 0, 0, 241, 63, 0, 0, 0, 0, 248, 11, 0, 0, 0, 0, 254, 4, 0, 0, 0, 112, 223, 0, 0, 0, 0, 224, 111, 0, 0, 0, 0, 246, 14, 0, 0, 0, 0, 253, 8, 0, 0, 0, 64, 255, 1, 0, 0, 0, 192, 175, 0, 0, 0, 0, 243, 63, 0, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_RobotoMono_Medium_20_glyph_56: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 48, 102, 3, 0, 16, 252, 255, 207, 2, 192, 255, 153, 255, 13, 243, 79, 0, 244, 63, 245, 15, 0, 240, 95, 242, 47, 0, 242, 63, 176, 223, 85, 253, 11, 0, 252, 255, 207, 0, 128, 255, 187, 255, 8, 244, 63, 0, 243, 79, 249, 12, 0, 176, 159, 250, 12, 0, 176, 175, 246, 63, 0, 243, 127, 208, 255, 204, 255, 13, 16, 250, 255, 175, 1, 0, 0, 34, 0, 0 ]; + +/// '9' (ASCII 57) +const Font_RobotoMono_Medium_20_glyph_57: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 64, 86, 1, 0, 32, 253, 255, 127, 0, 224, 239, 168, 255, 6, 247, 30, 0, 248, 14, 251, 9, 0, 241, 63, 253, 7, 0, 224, 111, 252, 9, 0, 224, 111, 248, 30, 0, 245, 111, 241, 239, 168, 255, 95, 64, 254, 255, 250, 63, 0, 64, 37, 243, 15, 0, 0, 0, 251, 10, 0, 0, 179, 255, 2, 0, 251, 255, 78, 0, 0, 252, 141, 1, 0, 0, 0, 0, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_RobotoMono_Medium_20_glyph_58: [u8; 44] = [ 5, 13, 12, 4, 12, 0, 0, 0, 192, 159, 0, 244, 255, 1, 225, 207, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 159, 0, 244, 255, 1, 225, 207, 0, 0, 2, 0 ]; + +/// ';' (ASCII 59) +const Font_RobotoMono_Medium_20_glyph_59: [u8; 53] = [ 5, 16, 12, 4, 12, 0, 0, 0, 160, 207, 0, 241, 255, 4, 192, 239, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 36, 0, 160, 175, 0, 160, 175, 0, 176, 143, 0, 224, 79, 0, 244, 12, 0, 129, 1, 0 ]; + +/// '<' (ASCII 60) +const Font_RobotoMono_Medium_20_glyph_60: [u8; 55] = [ 10, 10, 12, 1, 11, 0, 0, 0, 16, 8, 0, 0, 48, 250, 31, 0, 80, 252, 255, 12, 129, 254, 223, 40, 0, 246, 159, 3, 0, 0, 245, 239, 57, 0, 0, 32, 249, 255, 141, 2, 0, 0, 214, 255, 15, 0, 0, 0, 180, 31, 0, 0, 0, 0, 2 ]; + +/// '=' (ASCII 61) +const Font_RobotoMono_Medium_20_glyph_61: [u8; 40] = [ 10, 7, 12, 1, 10, 49, 51, 51, 51, 35, 246, 255, 255, 255, 175, 196, 204, 204, 204, 124, 0, 0, 0, 0, 0, 16, 17, 17, 17, 1, 246, 255, 255, 255, 175, 229, 238, 238, 238, 142 ]; + +/// '>' (ASCII 62) +const Font_RobotoMono_Medium_20_glyph_62: [u8; 55] = [ 10, 10, 12, 1, 11, 100, 0, 0, 0, 0, 245, 159, 2, 0, 0, 211, 255, 191, 5, 0, 0, 131, 254, 239, 23, 0, 0, 48, 250, 95, 0, 0, 164, 255, 79, 48, 233, 255, 142, 1, 245, 255, 92, 0, 0, 245, 57, 0, 0, 0, 1, 0, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_RobotoMono_Medium_20_glyph_63: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 48, 102, 4, 0, 16, 252, 255, 239, 5, 208, 255, 153, 253, 47, 243, 79, 0, 241, 127, 81, 5, 0, 208, 143, 0, 0, 0, 242, 95, 0, 0, 0, 252, 13, 0, 0, 176, 239, 2, 0, 0, 250, 46, 0, 0, 0, 255, 4, 0, 0, 0, 221, 1, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 80, 255, 5, 0, 0, 48, 255, 2, 0, 0, 0, 0, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_RobotoMono_Medium_20_glyph_64: [u8; 101] = [ 12, 16, 12, 0, 15, 0, 0, 0, 2, 0, 0, 0, 48, 251, 255, 43, 0, 0, 244, 92, 100, 236, 2, 16, 175, 0, 18, 192, 11, 144, 14, 227, 255, 70, 31, 240, 7, 206, 211, 9, 79, 244, 82, 47, 224, 7, 95, 246, 144, 14, 240, 6, 95, 247, 176, 12, 240, 4, 63, 247, 176, 13, 242, 67, 15, 245, 130, 159, 253, 200, 9, 241, 23, 235, 134, 190, 0, 176, 46, 0, 0, 0, 0, 16, 254, 88, 149, 4, 0, 0, 145, 254, 223, 4, 0, 0, 0, 0, 0, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_RobotoMono_Medium_20_glyph_65: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 0, 48, 3, 0, 0, 0, 0, 241, 111, 0, 0, 0, 0, 246, 207, 0, 0, 0, 0, 252, 255, 1, 0, 0, 16, 255, 252, 6, 0, 0, 96, 191, 247, 11, 0, 0, 176, 127, 242, 15, 0, 0, 241, 47, 208, 95, 0, 0, 246, 13, 144, 175, 0, 0, 251, 75, 132, 255, 0, 16, 255, 255, 255, 255, 4, 96, 255, 187, 187, 254, 10, 176, 175, 0, 0, 246, 14, 240, 111, 0, 0, 242, 79, 245, 31, 0, 0, 208, 159 ]; + +/// 'B' (ASCII 66) +const Font_RobotoMono_Medium_20_glyph_66: [u8; 95] = [ 11, 15, 12, 1, 15, 49, 51, 51, 1, 0, 0, 249, 255, 255, 207, 4, 0, 249, 191, 203, 255, 79, 0, 249, 12, 0, 209, 207, 0, 249, 12, 0, 112, 239, 0, 249, 12, 0, 144, 207, 0, 249, 61, 67, 249, 79, 0, 249, 255, 255, 255, 5, 0, 249, 158, 153, 252, 95, 0, 249, 12, 0, 128, 255, 0, 249, 12, 0, 32, 255, 3, 249, 12, 0, 48, 255, 3, 249, 12, 0, 194, 239, 0, 249, 255, 255, 255, 95, 0, 249, 255, 255, 174, 3, 0 ]; + +/// 'C' (ASCII 67) +const Font_RobotoMono_Medium_20_glyph_67: [u8; 101] = [ 12, 16, 12, 0, 15, 0, 0, 98, 70, 0, 0, 0, 177, 255, 255, 62, 0, 0, 252, 159, 216, 255, 2, 96, 255, 2, 0, 253, 10, 192, 159, 0, 0, 246, 14, 240, 111, 0, 0, 65, 4, 241, 79, 0, 0, 0, 0, 241, 79, 0, 0, 0, 0, 241, 79, 0, 0, 0, 0, 241, 79, 0, 0, 0, 0, 240, 111, 0, 0, 98, 6, 176, 175, 0, 0, 247, 14, 64, 255, 4, 32, 254, 8, 0, 250, 207, 252, 223, 1, 0, 128, 255, 255, 26, 0, 0, 0, 32, 2, 0, 0 ]; + +/// 'D' (ASCII 68) +const Font_RobotoMono_Medium_20_glyph_68: [u8; 95] = [ 11, 15, 12, 1, 15, 50, 51, 2, 0, 0, 0, 250, 255, 255, 42, 0, 0, 250, 190, 252, 255, 4, 0, 250, 11, 16, 251, 47, 0, 250, 11, 0, 224, 159, 0, 250, 11, 0, 128, 239, 0, 250, 11, 0, 80, 255, 0, 250, 11, 0, 64, 255, 1, 250, 11, 0, 64, 255, 1, 250, 11, 0, 80, 255, 0, 250, 11, 0, 144, 223, 0, 250, 11, 0, 241, 143, 0, 250, 11, 48, 253, 14, 0, 250, 239, 255, 239, 2, 0, 250, 255, 223, 23, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_RobotoMono_Medium_20_glyph_69: [u8; 80] = [ 10, 15, 12, 1, 15, 49, 51, 51, 51, 35, 246, 255, 255, 255, 207, 246, 191, 187, 187, 139, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 79, 68, 68, 3, 246, 255, 255, 255, 13, 246, 175, 170, 170, 8, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 255, 255, 255, 191, 246, 255, 255, 255, 207 ]; + +/// 'F' (ASCII 70) +const Font_RobotoMono_Medium_20_glyph_70: [u8; 80] = [ 10, 15, 12, 1, 15, 49, 51, 51, 51, 51, 246, 255, 255, 255, 239, 246, 191, 187, 187, 171, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 255, 255, 255, 15, 246, 255, 255, 255, 15, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0, 246, 15, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_RobotoMono_Medium_20_glyph_71: [u8; 101] = [ 11, 16, 12, 0, 15, 0, 0, 98, 70, 0, 0, 0, 160, 255, 255, 78, 0, 0, 251, 175, 216, 255, 2, 80, 255, 3, 0, 253, 10, 176, 175, 0, 0, 247, 14, 240, 111, 0, 0, 0, 0, 241, 79, 0, 0, 0, 0, 241, 79, 0, 50, 51, 2, 241, 79, 0, 254, 255, 15, 240, 79, 0, 169, 252, 15, 224, 127, 0, 0, 245, 15, 160, 207, 0, 0, 245, 15, 48, 255, 7, 0, 248, 15, 0, 248, 223, 236, 255, 11, 0, 96, 254, 255, 109, 0, 0, 0, 32, 19, 0, 0 ]; + +/// 'H' (ASCII 72) +const Font_RobotoMono_Medium_20_glyph_72: [u8; 80] = [ 10, 15, 12, 1, 15, 50, 1, 0, 32, 35, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 74, 68, 180, 175, 251, 255, 255, 255, 175, 251, 173, 170, 234, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175, 251, 9, 0, 160, 175 ]; + +/// 'I' (ASCII 73) +const Font_RobotoMono_Medium_20_glyph_73: [u8; 80] = [ 10, 15, 12, 1, 15, 48, 51, 51, 51, 3, 243, 255, 255, 255, 63, 178, 203, 255, 188, 43, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 0, 48, 255, 2, 0, 242, 255, 255, 255, 47, 243, 255, 255, 255, 63 ]; + +/// 'J' (ASCII 74) +const Font_RobotoMono_Medium_20_glyph_74: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 0, 0, 48, 19, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 0, 0, 0, 208, 143, 34, 1, 0, 208, 143, 254, 7, 0, 240, 111, 250, 30, 0, 248, 47, 242, 255, 220, 255, 7, 48, 252, 255, 110, 0, 0, 16, 35, 0, 0 ]; + +/// 'K' (ASCII 75) +const Font_RobotoMono_Medium_20_glyph_75: [u8; 95] = [ 11, 15, 12, 1, 15, 49, 2, 0, 0, 51, 2, 249, 13, 0, 160, 255, 3, 249, 13, 0, 246, 111, 0, 249, 13, 48, 255, 10, 0, 249, 13, 208, 223, 0, 0, 249, 13, 250, 47, 0, 0, 249, 125, 255, 5, 0, 0, 249, 254, 255, 3, 0, 0, 249, 255, 255, 12, 0, 0, 249, 191, 244, 127, 0, 0, 249, 14, 160, 255, 2, 0, 249, 13, 16, 254, 11, 0, 249, 13, 0, 246, 111, 0, 249, 13, 0, 176, 255, 1, 249, 13, 0, 32, 255, 10 ]; + +/// 'L' (ASCII 76) +const Font_RobotoMono_Medium_20_glyph_76: [u8; 80] = [ 10, 15, 12, 1, 15, 49, 3, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 15, 0, 0, 0, 245, 255, 255, 255, 191, 245, 255, 255, 255, 207 ]; + +/// 'M' (ASCII 77) +const Font_RobotoMono_Medium_20_glyph_77: [u8; 80] = [ 10, 15, 12, 1, 15, 50, 3, 0, 48, 51, 250, 127, 0, 244, 223, 250, 191, 0, 249, 223, 250, 255, 0, 254, 223, 250, 254, 53, 207, 223, 250, 249, 153, 143, 223, 250, 215, 238, 78, 223, 250, 151, 255, 73, 223, 250, 71, 255, 68, 223, 250, 8, 255, 80, 223, 250, 8, 103, 80, 223, 250, 8, 0, 80, 223, 250, 8, 0, 80, 223, 250, 8, 0, 80, 223, 250, 8, 0, 80, 223 ]; + +/// 'N' (ASCII 78) +const Font_RobotoMono_Medium_20_glyph_78: [u8; 80] = [ 10, 15, 12, 1, 15, 50, 2, 0, 32, 35, 251, 15, 0, 176, 175, 251, 127, 0, 176, 175, 251, 239, 0, 176, 175, 251, 255, 6, 176, 175, 251, 253, 13, 176, 175, 251, 186, 95, 192, 175, 251, 74, 223, 192, 175, 251, 10, 252, 196, 175, 251, 10, 245, 204, 175, 251, 10, 208, 239, 175, 251, 10, 96, 255, 175, 251, 10, 0, 254, 175, 251, 10, 0, 246, 175, 251, 10, 0, 224, 175 ]; + +/// 'O' (ASCII 79) +const Font_RobotoMono_Medium_20_glyph_79: [u8; 101] = [ 12, 16, 12, 0, 15, 0, 0, 99, 38, 0, 0, 0, 177, 255, 255, 27, 0, 0, 252, 175, 250, 207, 0, 96, 255, 2, 48, 255, 5, 192, 159, 0, 0, 250, 11, 240, 95, 0, 0, 246, 15, 241, 79, 0, 0, 244, 31, 241, 79, 0, 0, 244, 31, 241, 79, 0, 0, 244, 31, 241, 79, 0, 0, 244, 15, 240, 111, 0, 0, 247, 15, 176, 191, 0, 0, 251, 10, 64, 255, 5, 96, 255, 4, 0, 250, 223, 253, 159, 0, 0, 128, 255, 239, 7, 0, 0, 0, 32, 2, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_RobotoMono_Medium_20_glyph_80: [u8; 95] = [ 11, 15, 12, 1, 15, 49, 51, 51, 1, 0, 0, 246, 255, 255, 223, 4, 0, 246, 191, 187, 254, 111, 0, 246, 15, 0, 176, 239, 0, 246, 15, 0, 32, 255, 3, 246, 15, 0, 16, 255, 4, 246, 15, 0, 96, 255, 1, 246, 95, 85, 249, 175, 0, 246, 255, 255, 255, 10, 0, 246, 159, 153, 55, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_RobotoMono_Medium_20_glyph_81: [u8; 113] = [ 12, 18, 12, 0, 15, 0, 0, 98, 38, 0, 0, 0, 177, 255, 255, 27, 0, 0, 252, 175, 250, 207, 0, 96, 255, 2, 32, 255, 7, 192, 159, 0, 0, 248, 13, 240, 95, 0, 0, 244, 15, 241, 79, 0, 0, 243, 47, 242, 63, 0, 0, 242, 63, 242, 63, 0, 0, 242, 63, 241, 79, 0, 0, 243, 47, 240, 111, 0, 0, 245, 15, 176, 175, 0, 0, 250, 12, 64, 255, 5, 80, 255, 5, 0, 250, 223, 253, 191, 0, 0, 128, 255, 255, 207, 1, 0, 0, 32, 50, 254, 46, 0, 0, 0, 0, 209, 63, 0, 0, 0, 0, 16, 2 ]; + +/// 'R' (ASCII 82) +const Font_RobotoMono_Medium_20_glyph_82: [u8; 95] = [ 11, 15, 12, 1, 15, 49, 51, 51, 0, 0, 0, 248, 255, 255, 207, 3, 0, 248, 191, 187, 255, 63, 0, 248, 13, 0, 209, 207, 0, 248, 13, 0, 96, 255, 0, 248, 13, 0, 80, 255, 0, 248, 13, 0, 176, 207, 0, 248, 126, 119, 252, 79, 0, 248, 255, 255, 223, 4, 0, 248, 126, 215, 191, 0, 0, 248, 13, 64, 255, 3, 0, 248, 13, 0, 252, 11, 0, 248, 13, 0, 244, 79, 0, 248, 13, 0, 192, 207, 0, 248, 13, 0, 64, 255, 4 ]; + +/// 'S' (ASCII 83) +const Font_RobotoMono_Medium_20_glyph_83: [u8; 101] = [ 12, 16, 12, 0, 15, 0, 0, 82, 70, 0, 0, 0, 194, 255, 255, 110, 0, 0, 254, 158, 200, 255, 6, 96, 255, 2, 0, 250, 14, 144, 207, 0, 0, 227, 46, 96, 255, 3, 0, 0, 0, 0, 254, 159, 3, 0, 0, 0, 194, 255, 239, 7, 0, 0, 0, 164, 255, 223, 1, 0, 0, 0, 96, 255, 11, 64, 20, 0, 0, 245, 31, 224, 143, 0, 0, 242, 63, 144, 255, 3, 0, 249, 15, 16, 253, 223, 235, 255, 7, 0, 128, 254, 255, 93, 0, 0, 0, 32, 18, 0, 0 ]; + +/// 'T' (ASCII 84) +const Font_RobotoMono_Medium_20_glyph_84: [u8; 95] = [ 12, 15, 12, 0, 15, 49, 51, 51, 51, 51, 19, 248, 255, 255, 255, 255, 143, 182, 187, 252, 207, 187, 107, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_RobotoMono_Medium_20_glyph_85: [u8; 85] = [ 10, 16, 12, 1, 15, 50, 2, 0, 32, 35, 251, 9, 0, 144, 191, 251, 9, 0, 144, 191, 251, 9, 0, 144, 191, 251, 10, 0, 144, 191, 251, 10, 0, 144, 191, 251, 10, 0, 160, 191, 251, 10, 0, 160, 191, 251, 10, 0, 160, 191, 251, 10, 0, 160, 191, 251, 10, 0, 160, 191, 249, 12, 0, 208, 159, 244, 95, 0, 245, 79, 176, 255, 220, 255, 11, 0, 249, 255, 143, 0, 0, 0, 34, 0, 0 ]; + +/// 'V' (ASCII 86) +const Font_RobotoMono_Medium_20_glyph_86: [u8; 95] = [ 12, 15, 12, 0, 15, 49, 3, 0, 0, 48, 19, 244, 63, 0, 0, 243, 79, 240, 143, 0, 0, 248, 15, 176, 207, 0, 0, 252, 10, 96, 255, 1, 16, 255, 5, 16, 255, 5, 80, 255, 1, 0, 252, 9, 160, 191, 0, 0, 247, 14, 224, 111, 0, 0, 242, 47, 243, 31, 0, 0, 208, 127, 247, 13, 0, 0, 128, 191, 252, 8, 0, 0, 48, 255, 255, 3, 0, 0, 0, 254, 239, 0, 0, 0, 0, 249, 159, 0, 0, 0, 0, 244, 79, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_RobotoMono_Medium_20_glyph_87: [u8; 95] = [ 12, 15, 12, 0, 15, 49, 2, 48, 3, 16, 35, 247, 11, 240, 15, 144, 159, 245, 13, 242, 63, 176, 127, 243, 14, 244, 111, 192, 95, 241, 15, 247, 143, 224, 63, 224, 47, 249, 191, 240, 31, 192, 79, 236, 221, 242, 15, 160, 111, 206, 250, 244, 12, 128, 159, 159, 247, 248, 10, 96, 223, 111, 245, 253, 8, 64, 255, 79, 242, 255, 6, 32, 255, 31, 240, 255, 4, 0, 255, 14, 208, 255, 2, 0, 254, 12, 160, 255, 0, 0, 252, 9, 112, 239, 0 ]; + +/// 'X' (ASCII 88) +const Font_RobotoMono_Medium_20_glyph_88: [u8; 95] = [ 12, 15, 12, 0, 15, 49, 19, 0, 0, 48, 19, 224, 191, 0, 0, 248, 63, 80, 255, 4, 16, 255, 9, 0, 252, 12, 128, 255, 1, 0, 243, 79, 241, 127, 0, 0, 160, 207, 249, 13, 0, 0, 16, 255, 255, 5, 0, 0, 0, 248, 207, 0, 0, 0, 0, 251, 239, 0, 0, 0, 64, 255, 254, 8, 0, 0, 208, 175, 246, 47, 0, 0, 247, 47, 208, 175, 0, 16, 255, 9, 80, 255, 4, 144, 255, 1, 0, 253, 13, 243, 143, 0, 0, 244, 111 ]; + +/// 'Y' (ASCII 89) +const Font_RobotoMono_Medium_20_glyph_89: [u8; 95] = [ 12, 15, 12, 0, 15, 49, 3, 0, 0, 48, 35, 243, 95, 0, 0, 244, 79, 176, 207, 0, 0, 251, 12, 48, 255, 3, 32, 255, 4, 0, 252, 10, 144, 207, 0, 0, 244, 47, 241, 95, 0, 0, 192, 143, 247, 13, 0, 0, 64, 255, 254, 5, 0, 0, 0, 252, 223, 0, 0, 0, 0, 245, 111, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 242, 47, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_RobotoMono_Medium_20_glyph_90: [u8; 95] = [ 11, 15, 12, 0, 15, 48, 51, 51, 51, 51, 2, 240, 255, 255, 255, 255, 11, 176, 187, 187, 203, 255, 9, 0, 0, 0, 144, 239, 1, 0, 0, 0, 243, 95, 0, 0, 0, 0, 253, 10, 0, 0, 0, 128, 239, 1, 0, 0, 0, 243, 95, 0, 0, 0, 0, 252, 11, 0, 0, 0, 112, 255, 1, 0, 0, 0, 242, 111, 0, 0, 0, 0, 252, 12, 0, 0, 0, 96, 255, 2, 0, 0, 0, 240, 255, 255, 255, 255, 14, 240, 255, 255, 255, 255, 15 ]; + +/// '[' (ASCII 91) +const Font_RobotoMono_Medium_20_glyph_91: [u8; 68] = [ 5, 21, 12, 4, 17, 102, 102, 1, 255, 255, 2, 255, 121, 1, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 4, 0, 255, 172, 1, 255, 255, 2, 34, 34, 0 ]; + +/// '\' (ASCII 92) +const Font_RobotoMono_Medium_20_glyph_92: [u8; 90] = [ 9, 17, 12, 2, 15, 50, 1, 0, 0, 0, 246, 11, 0, 0, 0, 241, 31, 0, 0, 0, 176, 127, 0, 0, 0, 80, 223, 0, 0, 0, 0, 255, 2, 0, 0, 0, 249, 8, 0, 0, 0, 244, 14, 0, 0, 0, 224, 79, 0, 0, 0, 128, 159, 0, 0, 0, 32, 255, 0, 0, 0, 0, 253, 5, 0, 0, 0, 247, 11, 0, 0, 0, 241, 31, 0, 0, 0, 176, 111, 0, 0, 0, 80, 207, 0, 0, 0, 0, 51, 0 ]; + +/// ']' (ASCII 93) +const Font_RobotoMono_Medium_20_glyph_93: [u8; 68] = [ 6, 21, 12, 3, 17, 96, 102, 6, 241, 255, 31, 112, 248, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 0, 243, 31, 160, 251, 31, 241, 255, 31, 32, 34, 2 ]; + +/// '^' (ASCII 94) +const Font_RobotoMono_Medium_20_glyph_94: [u8; 50] = [ 9, 9, 12, 2, 15, 0, 32, 3, 0, 0, 0, 240, 63, 0, 0, 0, 246, 175, 0, 0, 0, 253, 252, 1, 0, 64, 159, 247, 7, 0, 160, 63, 241, 13, 0, 241, 13, 160, 79, 0, 248, 7, 64, 191, 0, 84, 1, 0, 85, 0 ]; + +/// '_' (ASCII 95) +const Font_RobotoMono_Medium_20_glyph_95: [u8; 15] = [ 10, 2, 12, 1, 0, 248, 255, 255, 255, 111, 215, 221, 221, 221, 93 ]; + +/// '`' (ASCII 96) +const Font_RobotoMono_Medium_20_glyph_96: [u8; 17] = [ 5, 4, 12, 4, 15, 117, 5, 0, 226, 79, 0, 48, 239, 0, 0, 50, 1 ]; + +/// 'a' (ASCII 97) +const Font_RobotoMono_Medium_20_glyph_97: [u8; 65] = [ 10, 12, 12, 1, 11, 0, 148, 187, 40, 0, 144, 255, 255, 255, 5, 244, 111, 33, 251, 15, 115, 6, 0, 242, 63, 0, 64, 118, 247, 79, 112, 255, 255, 255, 79, 245, 111, 1, 241, 79, 250, 10, 0, 241, 79, 250, 12, 0, 248, 79, 244, 223, 235, 255, 95, 96, 254, 239, 229, 143, 0, 32, 2, 0, 0 ]; + +/// 'b' (ASCII 98) +const Font_RobotoMono_Medium_20_glyph_98: [u8; 85] = [ 10, 16, 12, 1, 15, 247, 14, 0, 0, 0, 247, 14, 0, 0, 0, 247, 14, 0, 0, 0, 247, 14, 0, 0, 0, 247, 46, 201, 74, 0, 247, 255, 255, 255, 8, 247, 191, 51, 251, 47, 247, 15, 0, 224, 143, 247, 14, 0, 160, 191, 247, 14, 0, 128, 207, 247, 14, 0, 144, 207, 247, 14, 0, 192, 175, 247, 95, 0, 244, 95, 247, 255, 204, 255, 13, 247, 139, 255, 191, 1, 0, 0, 48, 1, 0 ]; + +/// 'c' (ASCII 99) +const Font_RobotoMono_Medium_20_glyph_99: [u8; 65] = [ 10, 12, 12, 1, 11, 0, 129, 187, 57, 0, 48, 255, 255, 255, 6, 225, 207, 35, 249, 47, 247, 15, 0, 208, 127, 250, 10, 0, 32, 19, 251, 9, 0, 0, 0, 251, 9, 0, 0, 0, 248, 13, 0, 80, 72, 243, 95, 0, 226, 95, 144, 255, 188, 255, 12, 0, 247, 255, 159, 0, 0, 0, 34, 0, 0 ]; + +/// 'd' (ASCII 100) +const Font_RobotoMono_Medium_20_glyph_100: [u8; 85] = [ 10, 16, 12, 1, 15, 0, 0, 0, 224, 127, 0, 0, 0, 224, 127, 0, 0, 0, 224, 127, 0, 0, 0, 224, 127, 0, 164, 156, 226, 127, 112, 255, 255, 255, 127, 242, 191, 51, 251, 127, 248, 14, 0, 240, 127, 251, 10, 0, 224, 127, 252, 8, 0, 224, 127, 252, 9, 0, 224, 127, 249, 12, 0, 224, 127, 245, 95, 0, 245, 127, 192, 255, 204, 255, 127, 16, 251, 255, 184, 127, 0, 16, 3, 0, 0 ]; + +/// 'e' (ASCII 101) +const Font_RobotoMono_Medium_20_glyph_101: [u8; 65] = [ 10, 12, 12, 1, 11, 0, 112, 187, 57, 0, 48, 254, 255, 255, 7, 224, 207, 35, 248, 63, 246, 31, 0, 176, 159, 251, 76, 68, 148, 223, 252, 255, 255, 255, 223, 252, 124, 119, 119, 103, 249, 13, 0, 0, 0, 243, 143, 0, 48, 27, 128, 255, 190, 252, 111, 0, 214, 255, 223, 5, 0, 0, 49, 1, 0 ]; + +/// 'f' (ASCII 102) +const Font_RobotoMono_Medium_20_glyph_102: [u8; 101] = [ 11, 16, 12, 1, 16, 0, 0, 16, 101, 53, 0, 0, 0, 246, 255, 255, 1, 0, 64, 255, 141, 168, 0, 0, 160, 223, 0, 0, 0, 0, 208, 143, 0, 0, 0, 149, 233, 207, 153, 57, 0, 250, 255, 255, 255, 127, 0, 49, 211, 159, 51, 19, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0, 0, 208, 143, 0, 0, 0 ]; + +/// 'g' (ASCII 103) +const Font_RobotoMono_Medium_20_glyph_103: [u8; 85] = [ 10, 16, 12, 1, 11, 0, 163, 172, 83, 73, 96, 255, 255, 239, 143, 242, 207, 51, 250, 143, 247, 31, 0, 208, 143, 251, 10, 0, 208, 143, 252, 9, 0, 208, 143, 251, 9, 0, 208, 143, 249, 13, 0, 208, 143, 244, 111, 0, 243, 143, 176, 255, 204, 255, 143, 0, 250, 255, 217, 143, 0, 16, 19, 224, 127, 112, 7, 0, 246, 63, 224, 239, 219, 255, 10, 32, 250, 255, 126, 0, 0, 0, 18, 0, 0 ]; + +/// 'h' (ASCII 104) +const Font_RobotoMono_Medium_20_glyph_104: [u8; 80] = [ 10, 15, 12, 1, 15, 247, 13, 0, 0, 0, 247, 13, 0, 0, 0, 247, 13, 0, 0, 0, 247, 13, 0, 0, 0, 247, 13, 183, 123, 0, 247, 205, 255, 255, 12, 247, 191, 51, 248, 95, 247, 14, 0, 208, 159, 247, 13, 0, 160, 175, 247, 13, 0, 160, 175, 247, 13, 0, 160, 175, 247, 13, 0, 160, 175, 247, 13, 0, 160, 175, 247, 13, 0, 160, 175, 247, 13, 0, 160, 175 ]; + +/// 'i' (ASCII 105) +const Font_RobotoMono_Medium_20_glyph_105: [u8; 80] = [ 9, 15, 12, 2, 15, 0, 48, 41, 0, 0, 0, 208, 175, 0, 0, 0, 112, 59, 0, 0, 0, 0, 0, 0, 0, 152, 153, 89, 0, 0, 255, 255, 175, 0, 0, 101, 214, 175, 0, 0, 0, 176, 175, 0, 0, 0, 176, 175, 0, 0, 0, 176, 175, 0, 0, 0, 176, 175, 0, 0, 0, 176, 175, 0, 0, 0, 176, 175, 0, 0, 254, 255, 255, 255, 11, 255, 255, 255, 255, 12 ]; + +/// 'j' (ASCII 106) +const Font_RobotoMono_Medium_20_glyph_106: [u8; 85] = [ 7, 20, 12, 2, 15, 0, 0, 134, 0, 0, 32, 255, 7, 0, 0, 236, 3, 0, 0, 0, 0, 144, 153, 153, 3, 240, 255, 255, 5, 96, 102, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 0, 255, 5, 0, 80, 255, 2, 185, 252, 207, 0, 253, 255, 27, 0, 66, 19, 0, 0 ]; + +/// 'k' (ASCII 107) +const Font_RobotoMono_Medium_20_glyph_107: [u8; 95] = [ 11, 15, 12, 1, 15, 247, 14, 0, 0, 0, 0, 247, 14, 0, 0, 0, 0, 247, 14, 0, 0, 0, 0, 247, 14, 0, 0, 0, 0, 247, 14, 0, 146, 89, 0, 247, 14, 32, 254, 12, 0, 247, 14, 209, 223, 1, 0, 247, 30, 253, 29, 0, 0, 247, 206, 239, 2, 0, 0, 247, 255, 255, 3, 0, 0, 247, 239, 252, 30, 0, 0, 247, 31, 225, 191, 0, 0, 247, 14, 80, 255, 8, 0, 247, 14, 0, 249, 79, 0, 247, 14, 0, 208, 239, 1 ]; + +/// 'l' (ASCII 108) +const Font_RobotoMono_Medium_20_glyph_108: [u8; 80] = [ 10, 15, 12, 1, 15, 240, 255, 255, 10, 0, 240, 255, 255, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 0, 0, 251, 10, 0, 240, 255, 255, 255, 207, 240, 255, 255, 255, 223 ]; + +/// 'm' (ASCII 109) +const Font_RobotoMono_Medium_20_glyph_109: [u8; 71] = [ 12, 11, 12, 0, 11, 145, 55, 187, 83, 171, 2, 243, 255, 255, 254, 255, 12, 243, 95, 246, 95, 245, 31, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47, 243, 15, 241, 15, 240, 47 ]; + +/// 'n' (ASCII 110) +const Font_RobotoMono_Medium_20_glyph_110: [u8; 60] = [ 10, 11, 12, 1, 11, 148, 5, 183, 139, 0, 247, 204, 255, 255, 12, 247, 191, 51, 248, 95, 247, 14, 0, 208, 159, 247, 13, 0, 176, 175, 247, 13, 0, 176, 175, 247, 13, 0, 176, 175, 247, 13, 0, 176, 175, 247, 13, 0, 176, 175, 247, 13, 0, 176, 175, 247, 13, 0, 176, 175 ]; + +/// 'o' (ASCII 111) +const Font_RobotoMono_Medium_20_glyph_111: [u8; 65] = [ 10, 12, 12, 1, 11, 0, 130, 187, 40, 0, 80, 255, 255, 255, 5, 242, 191, 51, 251, 47, 249, 13, 0, 208, 159, 253, 8, 0, 128, 207, 254, 6, 0, 112, 239, 254, 7, 0, 112, 223, 251, 11, 0, 176, 191, 245, 79, 0, 244, 95, 176, 255, 204, 255, 11, 0, 249, 255, 159, 0, 0, 0, 34, 0, 0 ]; + +/// 'p' (ASCII 112) +const Font_RobotoMono_Medium_20_glyph_112: [u8; 85] = [ 10, 16, 12, 1, 11, 148, 38, 201, 74, 0, 247, 254, 255, 255, 7, 247, 175, 51, 252, 47, 247, 14, 0, 240, 127, 247, 14, 0, 176, 191, 247, 14, 0, 144, 207, 247, 14, 0, 160, 191, 247, 14, 0, 208, 159, 247, 63, 0, 245, 79, 247, 255, 204, 255, 12, 247, 158, 255, 191, 1, 247, 14, 48, 1, 0, 247, 14, 0, 0, 0, 247, 14, 0, 0, 0, 247, 14, 0, 0, 0, 16, 0, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_RobotoMono_Medium_20_glyph_113: [u8; 85] = [ 10, 16, 12, 1, 11, 0, 164, 156, 98, 57, 112, 255, 255, 239, 127, 242, 191, 51, 250, 127, 248, 14, 0, 224, 127, 251, 10, 0, 224, 127, 252, 8, 0, 224, 127, 251, 9, 0, 224, 127, 249, 12, 0, 224, 127, 244, 95, 0, 243, 127, 192, 255, 204, 255, 127, 16, 251, 255, 233, 127, 0, 16, 19, 224, 127, 0, 0, 0, 224, 127, 0, 0, 0, 224, 127, 0, 0, 0, 224, 127, 0, 0, 0, 0, 1 ]; + +/// 'r' (ASCII 114) +const Font_RobotoMono_Medium_20_glyph_114: [u8; 60] = [ 9, 11, 12, 2, 11, 144, 25, 129, 187, 6, 240, 127, 254, 255, 9, 240, 255, 175, 169, 5, 240, 223, 1, 0, 0, 240, 95, 0, 0, 0, 240, 95, 0, 0, 0, 240, 95, 0, 0, 0, 240, 95, 0, 0, 0, 240, 95, 0, 0, 0, 240, 95, 0, 0, 0, 240, 95, 0, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_RobotoMono_Medium_20_glyph_115: [u8; 65] = [ 10, 12, 12, 1, 11, 0, 130, 187, 74, 0, 96, 255, 255, 255, 11, 241, 143, 1, 245, 111, 243, 31, 0, 112, 89, 224, 207, 38, 0, 0, 48, 253, 255, 175, 2, 0, 48, 200, 255, 63, 82, 3, 0, 209, 175, 247, 30, 0, 176, 175, 209, 239, 153, 252, 63, 16, 250, 255, 207, 4, 0, 0, 34, 1, 0 ]; + +/// 't' (ASCII 116) +const Font_RobotoMono_Medium_20_glyph_116: [u8; 80] = [ 10, 15, 12, 1, 14, 0, 32, 2, 0, 0, 0, 242, 63, 0, 0, 0, 242, 63, 0, 0, 150, 250, 175, 153, 25, 251, 255, 255, 255, 47, 50, 244, 95, 51, 3, 0, 242, 63, 0, 0, 0, 242, 63, 0, 0, 0, 242, 63, 0, 0, 0, 242, 63, 0, 0, 0, 242, 63, 0, 0, 0, 240, 143, 0, 0, 0, 176, 255, 205, 109, 0, 16, 251, 255, 111, 0, 0, 16, 35, 0 ]; + +/// 'u' (ASCII 117) +const Font_RobotoMono_Medium_20_glyph_117: [u8; 65] = [ 10, 12, 12, 1, 11, 147, 8, 0, 112, 89, 246, 14, 0, 192, 159, 246, 14, 0, 192, 159, 246, 14, 0, 192, 159, 246, 14, 0, 192, 159, 246, 14, 0, 192, 159, 246, 14, 0, 192, 159, 245, 15, 0, 192, 159, 243, 79, 0, 243, 159, 208, 255, 204, 239, 159, 32, 252, 255, 150, 159, 0, 32, 3, 0, 0 ]; + +/// 'v' (ASCII 118) +const Font_RobotoMono_Medium_20_glyph_118: [u8; 71] = [ 12, 11, 12, 0, 11, 144, 57, 0, 0, 147, 8, 192, 159, 0, 0, 249, 12, 96, 239, 0, 0, 254, 5, 0, 255, 4, 64, 255, 0, 0, 249, 9, 160, 159, 0, 0, 243, 14, 240, 63, 0, 0, 192, 79, 244, 12, 0, 0, 96, 175, 250, 6, 0, 0, 0, 239, 254, 0, 0, 0, 0, 250, 159, 0, 0, 0, 0, 243, 63, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_RobotoMono_Medium_20_glyph_119: [u8; 71] = [ 12, 11, 12, 0, 11, 149, 4, 112, 7, 80, 73, 246, 10, 240, 15, 176, 95, 243, 12, 243, 47, 208, 47, 240, 14, 247, 111, 240, 15, 208, 31, 202, 158, 242, 12, 160, 63, 158, 219, 244, 9, 112, 127, 111, 247, 247, 6, 64, 207, 47, 243, 252, 3, 16, 255, 14, 240, 255, 0, 0, 254, 11, 192, 223, 0, 0, 251, 7, 128, 175, 0 ]; + +/// 'x' (ASCII 120) +const Font_RobotoMono_Medium_20_glyph_120: [u8; 71] = [ 12, 11, 12, 0, 11, 96, 121, 0, 0, 148, 8, 48, 255, 6, 32, 255, 8, 0, 247, 47, 192, 207, 0, 0, 176, 207, 248, 47, 0, 0, 16, 254, 255, 5, 0, 0, 0, 246, 207, 0, 0, 0, 0, 252, 255, 3, 0, 0, 128, 239, 251, 13, 0, 0, 244, 95, 225, 159, 0, 16, 254, 9, 64, 255, 5, 176, 223, 0, 0, 248, 30 ]; + +/// 'y' (ASCII 121) +const Font_RobotoMono_Medium_20_glyph_121: [u8; 101] = [ 12, 16, 12, 0, 11, 146, 41, 0, 0, 128, 89, 224, 159, 0, 0, 244, 63, 128, 255, 0, 0, 250, 12, 16, 255, 6, 16, 255, 5, 0, 249, 12, 112, 239, 0, 0, 242, 63, 208, 127, 0, 0, 176, 159, 244, 31, 0, 0, 64, 255, 250, 9, 0, 0, 0, 253, 255, 2, 0, 0, 0, 246, 191, 0, 0, 0, 0, 240, 79, 0, 0, 0, 0, 246, 13, 0, 0, 0, 16, 254, 6, 0, 0, 16, 235, 223, 0, 0, 0, 64, 255, 44, 0, 0, 0, 0, 51, 0, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_RobotoMono_Medium_20_glyph_122: [u8; 60] = [ 10, 11, 12, 1, 11, 148, 153, 153, 153, 89, 248, 255, 255, 255, 159, 83, 85, 85, 254, 47, 0, 0, 144, 255, 4, 0, 0, 246, 111, 0, 0, 64, 255, 8, 0, 0, 243, 175, 0, 0, 16, 254, 12, 0, 0, 192, 239, 1, 0, 0, 249, 255, 238, 238, 206, 250, 255, 255, 255, 239 ]; + +/// '{' (ASCII 123) +const Font_RobotoMono_Medium_20_glyph_123: [u8; 85] = [ 7, 20, 12, 3, 16, 0, 0, 114, 3, 0, 48, 255, 6, 0, 208, 79, 0, 0, 242, 14, 0, 0, 245, 13, 0, 0, 245, 13, 0, 0, 245, 13, 0, 0, 247, 11, 0, 32, 254, 5, 0, 253, 111, 0, 0, 252, 127, 0, 0, 32, 254, 5, 0, 0, 247, 11, 0, 0, 245, 13, 0, 0, 245, 13, 0, 0, 245, 13, 0, 0, 242, 15, 0, 0, 192, 111, 0, 0, 32, 254, 7, 0, 0, 97, 3 ]; + +/// '|' (ASCII 124) +const Font_RobotoMono_Medium_20_glyph_124: [u8; 24] = [ 2, 19, 12, 5, 15, 34, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 203 ]; + +/// '}' (ASCII 125) +const Font_RobotoMono_Medium_20_glyph_125: [u8; 85] = [ 7, 20, 12, 3, 16, 117, 1, 0, 0, 249, 30, 0, 0, 112, 175, 0, 0, 16, 255, 0, 0, 0, 255, 2, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 254, 4, 0, 0, 248, 28, 0, 0, 144, 255, 11, 0, 144, 255, 10, 0, 248, 28, 0, 0, 254, 4, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 2, 0, 32, 255, 0, 0, 144, 159, 0, 0, 250, 29, 0, 0, 100, 0, 0, 0 ]; + +/// '~' (ASCII 126) +const Font_RobotoMono_Medium_20_glyph_126: [u8; 35] = [ 12, 5, 12, 0, 8, 64, 237, 76, 0, 32, 22, 242, 255, 255, 8, 144, 63, 248, 6, 229, 239, 253, 14, 149, 0, 32, 251, 239, 3, 0, 0, 0, 16, 2, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_RobotoMono_Medium_20_glyph_nonprintable: [u8; 85] = [ 10, 16, 12, 1, 15, 255, 207, 153, 251, 255, 239, 3, 0, 16, 250, 47, 0, 102, 2, 208, 12, 176, 255, 14, 128, 174, 250, 255, 47, 112, 255, 255, 255, 13, 160, 255, 255, 255, 3, 242, 255, 255, 79, 16, 253, 255, 255, 5, 209, 255, 255, 255, 0, 251, 255, 255, 255, 34, 254, 255, 255, 255, 255, 255, 255, 255, 255, 153, 255, 255, 255, 175, 0, 250, 255, 255, 207, 0, 253, 255, 255, 255, 255, 255, 255 ]; + +/// Array of references for 'RobotoMono_Medium_20' normal ASCII glyphs +const Font_RobotoMono_Medium_20: [&[u8]; 95] = [ + &Font_RobotoMono_Medium_20_glyph_32, + &Font_RobotoMono_Medium_20_glyph_33, + &Font_RobotoMono_Medium_20_glyph_34, + &Font_RobotoMono_Medium_20_glyph_35, + &Font_RobotoMono_Medium_20_glyph_36, + &Font_RobotoMono_Medium_20_glyph_37, + &Font_RobotoMono_Medium_20_glyph_38, + &Font_RobotoMono_Medium_20_glyph_39, + &Font_RobotoMono_Medium_20_glyph_40, + &Font_RobotoMono_Medium_20_glyph_41, + &Font_RobotoMono_Medium_20_glyph_42, + &Font_RobotoMono_Medium_20_glyph_43, + &Font_RobotoMono_Medium_20_glyph_44, + &Font_RobotoMono_Medium_20_glyph_45, + &Font_RobotoMono_Medium_20_glyph_46, + &Font_RobotoMono_Medium_20_glyph_47, + &Font_RobotoMono_Medium_20_glyph_48, + &Font_RobotoMono_Medium_20_glyph_49, + &Font_RobotoMono_Medium_20_glyph_50, + &Font_RobotoMono_Medium_20_glyph_51, + &Font_RobotoMono_Medium_20_glyph_52, + &Font_RobotoMono_Medium_20_glyph_53, + &Font_RobotoMono_Medium_20_glyph_54, + &Font_RobotoMono_Medium_20_glyph_55, + &Font_RobotoMono_Medium_20_glyph_56, + &Font_RobotoMono_Medium_20_glyph_57, + &Font_RobotoMono_Medium_20_glyph_58, + &Font_RobotoMono_Medium_20_glyph_59, + &Font_RobotoMono_Medium_20_glyph_60, + &Font_RobotoMono_Medium_20_glyph_61, + &Font_RobotoMono_Medium_20_glyph_62, + &Font_RobotoMono_Medium_20_glyph_63, + &Font_RobotoMono_Medium_20_glyph_64, + &Font_RobotoMono_Medium_20_glyph_65, + &Font_RobotoMono_Medium_20_glyph_66, + &Font_RobotoMono_Medium_20_glyph_67, + &Font_RobotoMono_Medium_20_glyph_68, + &Font_RobotoMono_Medium_20_glyph_69, + &Font_RobotoMono_Medium_20_glyph_70, + &Font_RobotoMono_Medium_20_glyph_71, + &Font_RobotoMono_Medium_20_glyph_72, + &Font_RobotoMono_Medium_20_glyph_73, + &Font_RobotoMono_Medium_20_glyph_74, + &Font_RobotoMono_Medium_20_glyph_75, + &Font_RobotoMono_Medium_20_glyph_76, + &Font_RobotoMono_Medium_20_glyph_77, + &Font_RobotoMono_Medium_20_glyph_78, + &Font_RobotoMono_Medium_20_glyph_79, + &Font_RobotoMono_Medium_20_glyph_80, + &Font_RobotoMono_Medium_20_glyph_81, + &Font_RobotoMono_Medium_20_glyph_82, + &Font_RobotoMono_Medium_20_glyph_83, + &Font_RobotoMono_Medium_20_glyph_84, + &Font_RobotoMono_Medium_20_glyph_85, + &Font_RobotoMono_Medium_20_glyph_86, + &Font_RobotoMono_Medium_20_glyph_87, + &Font_RobotoMono_Medium_20_glyph_88, + &Font_RobotoMono_Medium_20_glyph_89, + &Font_RobotoMono_Medium_20_glyph_90, + &Font_RobotoMono_Medium_20_glyph_91, + &Font_RobotoMono_Medium_20_glyph_92, + &Font_RobotoMono_Medium_20_glyph_93, + &Font_RobotoMono_Medium_20_glyph_94, + &Font_RobotoMono_Medium_20_glyph_95, + &Font_RobotoMono_Medium_20_glyph_96, + &Font_RobotoMono_Medium_20_glyph_97, + &Font_RobotoMono_Medium_20_glyph_98, + &Font_RobotoMono_Medium_20_glyph_99, + &Font_RobotoMono_Medium_20_glyph_100, + &Font_RobotoMono_Medium_20_glyph_101, + &Font_RobotoMono_Medium_20_glyph_102, + &Font_RobotoMono_Medium_20_glyph_103, + &Font_RobotoMono_Medium_20_glyph_104, + &Font_RobotoMono_Medium_20_glyph_105, + &Font_RobotoMono_Medium_20_glyph_106, + &Font_RobotoMono_Medium_20_glyph_107, + &Font_RobotoMono_Medium_20_glyph_108, + &Font_RobotoMono_Medium_20_glyph_109, + &Font_RobotoMono_Medium_20_glyph_110, + &Font_RobotoMono_Medium_20_glyph_111, + &Font_RobotoMono_Medium_20_glyph_112, + &Font_RobotoMono_Medium_20_glyph_113, + &Font_RobotoMono_Medium_20_glyph_114, + &Font_RobotoMono_Medium_20_glyph_115, + &Font_RobotoMono_Medium_20_glyph_116, + &Font_RobotoMono_Medium_20_glyph_117, + &Font_RobotoMono_Medium_20_glyph_118, + &Font_RobotoMono_Medium_20_glyph_119, + &Font_RobotoMono_Medium_20_glyph_120, + &Font_RobotoMono_Medium_20_glyph_121, + &Font_RobotoMono_Medium_20_glyph_122, + &Font_RobotoMono_Medium_20_glyph_123, + &Font_RobotoMono_Medium_20_glyph_124, + &Font_RobotoMono_Medium_20_glyph_125, + &Font_RobotoMono_Medium_20_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_RobotoMono_Medium_20_info: FontInfo = FontInfo { + height: 20, + max_height: 22, + baseline: 5, + glyph_data: &Font_RobotoMono_Medium_20, + glyph_nonprintable: &Font_RobotoMono_Medium_20_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs new file mode 100644 index 00000000000..da3ed30a668 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_bold_17.rs @@ -0,0 +1,328 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_TTHoves_Bold_17_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_TTHoves_Bold_17_glyph_33: [u8; 29] = [ 4, 12, 5, 1, 12, 250, 31, 250, 31, 250, 31, 250, 31, 250, 31, 248, 15, 247, 14, 245, 12, 16, 1, 200, 12, 250, 31, 250, 31 ]; + +/// '"' (ASCII 34) +const Font_TTHoves_Bold_17_glyph_34: [u8; 17] = [ 6, 4, 8, 1, 12, 255, 148, 191, 255, 148, 191, 255, 148, 191, 255, 148, 191 ]; + +/// '#' (ASCII 35) +const Font_TTHoves_Bold_17_glyph_35: [u8; 89] = [ 13, 12, 13, 0, 12, 0, 0, 254, 8, 251, 10, 0, 0, 16, 255, 4, 254, 7, 0, 16, 116, 255, 85, 255, 71, 1, 144, 255, 255, 255, 255, 255, 2, 192, 255, 255, 255, 255, 239, 0, 0, 224, 127, 192, 159, 0, 0, 0, 241, 79, 240, 95, 0, 0, 247, 255, 255, 255, 255, 79, 0, 250, 255, 255, 255, 255, 15, 0, 67, 253, 75, 251, 77, 4, 0, 0, 255, 6, 252, 8, 0, 0, 48, 255, 2, 255, 5, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_TTHoves_Bold_17_glyph_36: [u8; 101] = [ 11, 16, 11, 0, 14, 0, 0, 254, 9, 0, 0, 0, 0, 254, 10, 0, 0, 0, 248, 255, 223, 5, 0, 144, 255, 255, 255, 95, 0, 241, 239, 54, 248, 223, 0, 243, 159, 0, 160, 238, 0, 241, 239, 72, 1, 0, 0, 144, 255, 255, 223, 7, 0, 0, 198, 255, 255, 159, 0, 0, 0, 32, 247, 255, 0, 230, 78, 0, 144, 255, 2, 243, 239, 53, 229, 255, 0, 160, 255, 255, 255, 143, 0, 0, 248, 255, 239, 7, 0, 0, 0, 254, 10, 0, 0, 0, 0, 254, 9, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_TTHoves_Bold_17_glyph_37: [u8; 89] = [ 14, 12, 14, 0, 12, 48, 252, 43, 0, 176, 207, 0, 241, 239, 223, 0, 245, 47, 0, 245, 9, 252, 2, 254, 8, 0, 241, 223, 223, 144, 223, 0, 0, 64, 252, 43, 243, 79, 0, 0, 0, 0, 0, 252, 10, 0, 0, 0, 0, 96, 255, 81, 171, 3, 0, 0, 225, 127, 246, 255, 47, 0, 0, 250, 12, 253, 132, 143, 0, 64, 255, 3, 253, 64, 159, 0, 208, 159, 0, 248, 236, 79, 0, 247, 30, 0, 128, 222, 6 ]; + +/// '&' (ASCII 38) +const Font_TTHoves_Bold_17_glyph_38: [u8; 77] = [ 12, 12, 11, 0, 12, 0, 197, 223, 8, 0, 0, 80, 255, 255, 175, 0, 0, 176, 223, 165, 255, 0, 0, 176, 191, 80, 255, 0, 0, 80, 255, 250, 191, 0, 0, 0, 249, 255, 28, 0, 0, 64, 255, 255, 4, 135, 4, 242, 191, 249, 79, 255, 6, 245, 47, 144, 255, 255, 1, 244, 143, 66, 254, 159, 0, 192, 255, 255, 255, 239, 2, 16, 216, 223, 41, 252, 46 ]; + +/// ''' (ASCII 39) +const Font_TTHoves_Bold_17_glyph_39: [u8; 13] = [ 3, 4, 4, 1, 12, 255, 4, 255, 4, 255, 4, 255, 4 ]; + +/// '(' (ASCII 40) +const Font_TTHoves_Bold_17_glyph_40: [u8; 53] = [ 6, 16, 7, 1, 12, 0, 252, 13, 64, 255, 5, 176, 223, 0, 241, 143, 0, 245, 63, 0, 248, 15, 0, 250, 14, 0, 252, 12, 0, 252, 12, 0, 250, 14, 0, 248, 15, 0, 245, 63, 0, 241, 143, 0, 176, 223, 0, 64, 255, 5, 0, 252, 13 ]; + +/// ')' (ASCII 41) +const Font_TTHoves_Bold_17_glyph_41: [u8; 53] = [ 6, 16, 7, 0, 12, 245, 79, 0, 192, 223, 0, 80, 255, 4, 0, 255, 9, 0, 250, 14, 0, 247, 15, 0, 246, 47, 0, 244, 79, 0, 244, 79, 0, 246, 47, 0, 247, 15, 0, 250, 14, 0, 255, 9, 80, 255, 4, 192, 223, 0, 245, 79, 0 ]; + +/// '*' (ASCII 42) +const Font_TTHoves_Bold_17_glyph_42: [u8; 33] = [ 8, 7, 8, 0, 12, 0, 176, 15, 0, 48, 160, 15, 17, 242, 221, 191, 127, 162, 254, 255, 91, 0, 248, 207, 0, 80, 207, 248, 10, 16, 43, 176, 3 ]; + +/// '+' (ASCII 43) +const Font_TTHoves_Bold_17_glyph_43: [u8; 45] = [ 9, 8, 10, 0, 9, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 242, 255, 255, 255, 10, 242, 255, 255, 255, 10, 96, 166, 255, 102, 4, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_TTHoves_Bold_17_glyph_44: [u8; 15] = [ 4, 5, 5, 0, 3, 240, 207, 240, 143, 241, 79, 243, 31, 244, 13 ]; + +/// '-' (ASCII 45) +const Font_TTHoves_Bold_17_glyph_45: [u8; 17] = [ 7, 3, 8, 0, 6, 242, 255, 255, 11, 242, 255, 255, 11, 96, 102, 102, 4 ]; + +/// '.' (ASCII 46) +const Font_TTHoves_Bold_17_glyph_46: [u8; 11] = [ 3, 3, 5, 1, 3, 204, 10, 255, 12, 255, 12 ]; + +/// '/' (ASCII 47) +const Font_TTHoves_Bold_17_glyph_47: [u8; 69] = [ 8, 16, 7, 0, 12, 0, 0, 247, 31, 0, 0, 252, 12, 0, 16, 255, 7, 0, 80, 255, 3, 0, 160, 239, 0, 0, 224, 159, 0, 0, 243, 95, 0, 0, 248, 15, 0, 0, 252, 11, 0, 16, 255, 7, 0, 96, 255, 2, 0, 176, 223, 0, 0, 240, 159, 0, 0, 244, 79, 0, 0, 249, 15, 0, 0, 253, 11, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_TTHoves_Bold_17_glyph_48: [u8; 77] = [ 11, 12, 12, 0, 12, 0, 80, 235, 157, 1, 0, 0, 249, 255, 255, 62, 0, 80, 255, 191, 253, 223, 0, 208, 255, 3, 160, 255, 5, 240, 191, 0, 32, 255, 8, 242, 143, 0, 0, 255, 11, 242, 143, 0, 0, 255, 11, 240, 191, 0, 32, 255, 8, 208, 255, 3, 160, 255, 5, 80, 255, 191, 253, 223, 0, 0, 249, 255, 255, 62, 0, 0, 80, 235, 173, 1, 0 ]; + +/// '1' (ASCII 49) +const Font_TTHoves_Bold_17_glyph_49: [u8; 41] = [ 6, 12, 7, 0, 12, 0, 242, 159, 132, 251, 159, 247, 255, 159, 247, 255, 159, 0, 241, 159, 0, 241, 159, 0, 241, 159, 0, 241, 159, 0, 241, 159, 0, 241, 159, 0, 241, 159, 0, 241, 159 ]; + +/// '2' (ASCII 50) +const Font_TTHoves_Bold_17_glyph_50: [u8; 65] = [ 10, 12, 10, 0, 12, 0, 180, 238, 43, 0, 80, 255, 255, 255, 3, 224, 255, 253, 255, 12, 243, 175, 0, 254, 15, 49, 19, 0, 253, 15, 0, 0, 144, 255, 11, 0, 0, 250, 223, 1, 0, 193, 255, 29, 0, 32, 253, 207, 1, 0, 225, 255, 175, 153, 25, 242, 255, 255, 255, 47, 242, 255, 255, 255, 47 ]; + +/// '3' (ASCII 51) +const Font_TTHoves_Bold_17_glyph_51: [u8; 65] = [ 10, 12, 10, 0, 12, 0, 180, 238, 59, 0, 112, 255, 255, 255, 3, 241, 255, 202, 255, 12, 178, 107, 0, 253, 15, 0, 0, 99, 255, 11, 0, 0, 255, 223, 2, 0, 0, 255, 239, 3, 0, 0, 48, 254, 14, 197, 92, 0, 251, 31, 243, 255, 186, 255, 15, 144, 255, 255, 255, 6, 0, 197, 238, 75, 0 ]; + +/// '4' (ASCII 52) +const Font_TTHoves_Bold_17_glyph_52: [u8; 65] = [ 10, 12, 10, 0, 12, 0, 16, 255, 255, 5, 0, 144, 255, 255, 5, 0, 242, 255, 255, 5, 0, 251, 126, 255, 5, 64, 255, 103, 255, 5, 208, 239, 96, 255, 5, 246, 95, 96, 255, 5, 251, 255, 255, 255, 159, 251, 255, 255, 255, 159, 117, 119, 167, 255, 74, 0, 0, 96, 255, 5, 0, 0, 96, 255, 5 ]; + +/// '5' (ASCII 53) +const Font_TTHoves_Bold_17_glyph_53: [u8; 65] = [ 10, 12, 10, 0, 12, 112, 255, 255, 255, 13, 128, 255, 255, 255, 13, 160, 239, 119, 119, 6, 176, 207, 0, 0, 0, 208, 239, 253, 92, 0, 224, 255, 255, 255, 8, 240, 255, 169, 255, 31, 32, 18, 0, 247, 95, 145, 105, 0, 248, 95, 224, 255, 186, 255, 31, 64, 255, 255, 255, 7, 0, 180, 238, 92, 0 ]; + +/// '6' (ASCII 54) +const Font_TTHoves_Bold_17_glyph_54: [u8; 65] = [ 10, 12, 10, 0, 12, 0, 0, 249, 127, 0, 0, 48, 255, 13, 0, 0, 192, 255, 3, 0, 0, 246, 159, 0, 0, 16, 255, 255, 76, 0, 160, 255, 255, 255, 7, 242, 255, 170, 255, 31, 245, 143, 0, 247, 95, 244, 143, 0, 248, 79, 241, 255, 187, 255, 31, 80, 255, 255, 255, 6, 0, 179, 238, 59, 0 ]; + +/// '7' (ASCII 55) +const Font_TTHoves_Bold_17_glyph_55: [u8; 65] = [ 9, 12, 9, 0, 12, 247, 255, 255, 255, 10, 247, 255, 255, 255, 10, 165, 170, 218, 255, 9, 0, 0, 208, 255, 2, 0, 0, 244, 207, 0, 0, 0, 251, 95, 0, 0, 32, 255, 14, 0, 0, 128, 255, 7, 0, 0, 240, 255, 1, 0, 0, 246, 175, 0, 0, 0, 253, 63, 0, 0, 64, 255, 12, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_TTHoves_Bold_17_glyph_56: [u8; 65] = [ 10, 12, 10, 0, 12, 0, 180, 238, 75, 0, 96, 255, 255, 255, 6, 224, 255, 136, 255, 15, 241, 175, 0, 250, 31, 224, 239, 85, 254, 14, 64, 255, 255, 255, 4, 80, 254, 255, 255, 5, 241, 207, 34, 252, 31, 244, 143, 0, 248, 79, 241, 239, 136, 254, 47, 128, 255, 255, 255, 8, 0, 197, 238, 92, 0 ]; + +/// '9' (ASCII 57) +const Font_TTHoves_Bold_17_glyph_57: [u8; 65] = [ 10, 12, 10, 0, 12, 0, 179, 238, 59, 0, 80, 255, 255, 255, 5, 241, 255, 187, 255, 31, 244, 143, 0, 248, 79, 245, 143, 0, 247, 95, 241, 255, 153, 255, 47, 112, 255, 255, 255, 10, 0, 196, 255, 255, 1, 0, 0, 249, 127, 0, 0, 48, 255, 12, 0, 0, 208, 255, 3, 0, 0, 247, 159, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_TTHoves_Bold_17_glyph_58: [u8; 23] = [ 3, 9, 5, 1, 9, 255, 12, 255, 12, 204, 10, 0, 0, 0, 0, 0, 0, 204, 10, 255, 12, 255, 12 ]; + +/// ';' (ASCII 59) +const Font_TTHoves_Bold_17_glyph_59: [u8; 27] = [ 4, 11, 5, 0, 9, 224, 239, 224, 239, 176, 188, 0, 0, 0, 0, 0, 0, 160, 154, 240, 159, 241, 95, 243, 31, 244, 13 ]; + +/// '<' (ASCII 60) +const Font_TTHoves_Bold_17_glyph_60: [u8; 45] = [ 9, 8, 10, 0, 9, 0, 0, 0, 147, 8, 0, 32, 215, 255, 9, 96, 252, 255, 207, 4, 241, 255, 107, 1, 0, 241, 255, 107, 1, 0, 96, 252, 255, 191, 4, 0, 32, 216, 255, 9, 0, 0, 0, 147, 8 ]; + +/// '=' (ASCII 61) +const Font_TTHoves_Bold_17_glyph_61: [u8; 29] = [ 8, 6, 10, 1, 8, 252, 255, 255, 95, 252, 255, 255, 95, 50, 51, 51, 19, 50, 51, 51, 19, 252, 255, 255, 95, 252, 255, 255, 95 ]; + +/// '>' (ASCII 62) +const Font_TTHoves_Bold_17_glyph_62: [u8; 45] = [ 9, 8, 10, 0, 9, 193, 22, 0, 0, 0, 241, 255, 90, 0, 0, 144, 254, 255, 158, 2, 0, 64, 233, 255, 9, 0, 48, 233, 255, 9, 144, 254, 255, 158, 2, 241, 255, 91, 0, 0, 193, 22, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_TTHoves_Bold_17_glyph_63: [u8; 65] = [ 9, 12, 9, 0, 12, 0, 215, 223, 25, 0, 192, 255, 255, 239, 1, 245, 223, 216, 255, 7, 165, 42, 48, 255, 9, 0, 0, 160, 255, 6, 0, 32, 253, 159, 0, 0, 160, 255, 5, 0, 0, 208, 191, 0, 0, 0, 16, 17, 0, 0, 0, 192, 156, 0, 0, 0, 240, 207, 0, 0, 0, 240, 207, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_TTHoves_Bold_17_glyph_64: [u8; 117] = [ 16, 14, 16, 0, 12, 0, 0, 112, 236, 223, 74, 0, 0, 0, 48, 253, 255, 255, 255, 25, 0, 0, 244, 223, 38, 65, 249, 207, 0, 0, 254, 10, 0, 0, 48, 254, 7, 128, 223, 32, 251, 156, 94, 245, 31, 224, 95, 224, 255, 255, 95, 224, 95, 241, 47, 246, 46, 226, 95, 176, 127, 242, 15, 248, 9, 160, 95, 144, 127, 240, 47, 246, 46, 226, 159, 227, 95, 208, 127, 225, 255, 255, 255, 255, 13, 80, 255, 35, 251, 126, 231, 190, 2, 0, 250, 159, 19, 0, 0, 0, 0, 0, 144, 255, 255, 255, 143, 0, 0, 0, 0, 146, 235, 255, 143, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_TTHoves_Bold_17_glyph_65: [u8; 89] = [ 13, 12, 13, 0, 12, 0, 0, 243, 255, 31, 0, 0, 0, 0, 248, 255, 111, 0, 0, 0, 0, 253, 255, 191, 0, 0, 0, 48, 255, 168, 255, 1, 0, 0, 128, 255, 83, 255, 6, 0, 0, 224, 239, 0, 255, 12, 0, 0, 243, 159, 0, 251, 31, 0, 0, 249, 255, 255, 255, 111, 0, 0, 254, 255, 255, 255, 207, 0, 48, 255, 107, 102, 198, 255, 1, 144, 255, 5, 0, 112, 255, 7, 224, 255, 0, 0, 32, 255, 12 ]; + +/// 'B' (ASCII 66) +const Font_TTHoves_Bold_17_glyph_66: [u8; 65] = [ 10, 12, 11, 1, 12, 252, 255, 255, 174, 1, 252, 255, 255, 255, 13, 252, 111, 102, 253, 79, 252, 14, 0, 246, 111, 252, 95, 101, 253, 47, 252, 255, 255, 255, 7, 252, 255, 255, 255, 13, 252, 14, 0, 248, 111, 252, 14, 0, 243, 143, 252, 95, 101, 252, 127, 252, 255, 255, 255, 30, 252, 255, 255, 190, 2 ]; + +/// 'C' (ASCII 67) +const Font_TTHoves_Bold_17_glyph_67: [u8; 77] = [ 12, 12, 12, 0, 12, 0, 32, 201, 223, 41, 0, 0, 245, 255, 255, 255, 4, 32, 255, 223, 235, 255, 30, 192, 255, 7, 0, 248, 143, 240, 191, 0, 0, 112, 104, 243, 127, 0, 0, 0, 0, 243, 127, 0, 0, 0, 0, 240, 191, 0, 0, 128, 121, 192, 255, 6, 0, 248, 143, 32, 255, 223, 218, 255, 30, 0, 245, 255, 255, 255, 4, 0, 32, 217, 223, 41, 0 ]; + +/// 'D' (ASCII 68) +const Font_TTHoves_Bold_17_glyph_68: [u8; 77] = [ 11, 12, 12, 1, 12, 252, 255, 223, 41, 0, 0, 252, 255, 255, 255, 6, 0, 252, 175, 218, 255, 63, 0, 252, 14, 0, 246, 223, 0, 252, 14, 0, 176, 255, 1, 252, 14, 0, 96, 255, 4, 252, 14, 0, 96, 255, 4, 252, 14, 0, 176, 255, 1, 252, 14, 0, 246, 223, 0, 252, 159, 218, 255, 63, 0, 252, 255, 255, 255, 6, 0, 252, 255, 223, 41, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_TTHoves_Bold_17_glyph_69: [u8; 65] = [ 9, 12, 10, 1, 12, 252, 255, 255, 255, 5, 252, 255, 255, 255, 5, 252, 127, 119, 119, 2, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 255, 255, 255, 0, 252, 255, 255, 255, 0, 252, 111, 102, 102, 0, 252, 14, 0, 0, 0, 252, 127, 119, 119, 2, 252, 255, 255, 255, 5, 252, 255, 255, 255, 5 ]; + +/// 'F' (ASCII 70) +const Font_TTHoves_Bold_17_glyph_70: [u8; 65] = [ 9, 12, 10, 1, 12, 252, 255, 255, 255, 3, 252, 255, 255, 255, 3, 252, 127, 119, 119, 1, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 255, 255, 223, 0, 252, 255, 255, 223, 0, 252, 111, 102, 86, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_TTHoves_Bold_17_glyph_71: [u8; 77] = [ 12, 12, 13, 0, 12, 0, 16, 201, 223, 25, 0, 0, 245, 255, 255, 239, 2, 32, 255, 223, 235, 255, 30, 176, 255, 8, 0, 249, 143, 240, 207, 0, 0, 80, 69, 242, 143, 0, 0, 0, 0, 244, 127, 0, 245, 255, 255, 241, 175, 0, 213, 253, 255, 208, 255, 4, 0, 244, 255, 48, 255, 207, 202, 255, 255, 0, 246, 255, 255, 239, 255, 0, 32, 217, 223, 40, 255 ]; + +/// 'H' (ASCII 72) +const Font_TTHoves_Bold_17_glyph_72: [u8; 77] = [ 11, 12, 12, 1, 12, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3, 252, 207, 204, 236, 255, 3, 252, 255, 255, 255, 255, 3, 252, 255, 255, 255, 255, 3, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3, 252, 14, 0, 128, 255, 3 ]; + +/// 'I' (ASCII 73) +const Font_TTHoves_Bold_17_glyph_73: [u8; 29] = [ 3, 12, 5, 1, 12, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14, 252, 14 ]; + +/// 'J' (ASCII 74) +const Font_TTHoves_Bold_17_glyph_74: [u8; 53] = [ 7, 12, 7, 0, 12, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 0, 128, 255, 3, 152, 234, 255, 2, 253, 255, 239, 0, 253, 255, 77, 0 ]; + +/// 'K' (ASCII 75) +const Font_TTHoves_Bold_17_glyph_75: [u8; 77] = [ 11, 12, 11, 1, 12, 252, 14, 0, 254, 95, 0, 252, 14, 144, 255, 10, 0, 252, 14, 244, 239, 1, 0, 252, 30, 254, 79, 0, 0, 252, 174, 255, 9, 0, 0, 252, 255, 223, 0, 0, 0, 252, 255, 239, 1, 0, 0, 252, 126, 255, 12, 0, 0, 252, 14, 251, 127, 0, 0, 252, 14, 225, 255, 3, 0, 252, 14, 80, 255, 30, 0, 252, 14, 0, 250, 175, 0 ]; + +/// 'L' (ASCII 76) +const Font_TTHoves_Bold_17_glyph_76: [u8; 65] = [ 9, 12, 10, 1, 12, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 159, 153, 153, 2, 252, 255, 255, 255, 3, 252, 255, 255, 255, 3 ]; + +/// 'M' (ASCII 77) +const Font_TTHoves_Bold_17_glyph_77: [u8; 89] = [ 14, 12, 16, 1, 12, 252, 255, 7, 0, 176, 255, 159, 252, 255, 12, 0, 240, 255, 159, 252, 255, 31, 0, 245, 255, 159, 252, 255, 111, 0, 250, 255, 159, 252, 255, 191, 0, 254, 255, 159, 252, 158, 255, 64, 255, 247, 159, 252, 78, 255, 149, 255, 242, 159, 252, 14, 254, 235, 191, 241, 159, 252, 14, 249, 255, 95, 241, 159, 252, 14, 243, 255, 15, 241, 159, 252, 14, 224, 255, 10, 241, 159, 252, 14, 128, 255, 5, 241, 159 ]; + +/// 'N' (ASCII 78) +const Font_TTHoves_Bold_17_glyph_78: [u8; 77] = [ 11, 12, 13, 1, 12, 252, 207, 0, 96, 255, 4, 252, 255, 4, 96, 255, 4, 252, 255, 12, 96, 255, 4, 252, 255, 79, 96, 255, 4, 252, 255, 207, 96, 255, 4, 252, 126, 255, 100, 255, 4, 252, 14, 254, 108, 255, 4, 252, 14, 246, 223, 255, 4, 252, 14, 208, 255, 255, 4, 252, 14, 80, 255, 255, 4, 252, 14, 0, 253, 255, 4, 252, 14, 0, 244, 255, 4 ]; + +/// 'O' (ASCII 79) +const Font_TTHoves_Bold_17_glyph_79: [u8; 89] = [ 13, 12, 13, 0, 12, 0, 32, 201, 207, 25, 0, 0, 0, 245, 255, 255, 239, 4, 0, 32, 255, 223, 219, 255, 31, 0, 192, 255, 7, 0, 248, 175, 0, 240, 191, 0, 0, 208, 255, 0, 243, 127, 0, 0, 144, 255, 2, 243, 127, 0, 0, 144, 255, 2, 240, 191, 0, 0, 208, 255, 0, 192, 255, 6, 0, 248, 175, 0, 32, 255, 223, 218, 255, 31, 0, 0, 245, 255, 255, 239, 4, 0, 0, 32, 217, 207, 25, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_TTHoves_Bold_17_glyph_80: [u8; 65] = [ 10, 12, 11, 1, 12, 252, 255, 255, 141, 0, 252, 255, 255, 255, 11, 252, 175, 186, 255, 79, 252, 14, 0, 246, 127, 252, 14, 0, 243, 159, 252, 14, 0, 249, 111, 252, 255, 255, 255, 47, 252, 255, 255, 255, 6, 252, 175, 170, 55, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0, 252, 14, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_TTHoves_Bold_17_glyph_81: [u8; 96] = [ 13, 13, 13, 0, 12, 0, 32, 201, 207, 25, 0, 0, 0, 245, 255, 255, 239, 4, 0, 32, 255, 223, 219, 255, 31, 0, 192, 255, 7, 0, 248, 175, 0, 240, 191, 0, 0, 208, 255, 0, 243, 127, 0, 0, 144, 255, 2, 243, 127, 0, 0, 128, 255, 2, 240, 191, 0, 0, 192, 255, 0, 192, 255, 102, 255, 253, 175, 0, 32, 255, 207, 255, 255, 63, 0, 0, 245, 255, 255, 255, 9, 0, 0, 32, 217, 223, 253, 63, 0, 0, 0, 0, 0, 225, 239, 2 ]; + +/// 'R' (ASCII 82) +const Font_TTHoves_Bold_17_glyph_82: [u8; 77] = [ 11, 12, 12, 1, 12, 252, 255, 255, 157, 0, 0, 252, 255, 255, 255, 12, 0, 252, 143, 152, 254, 95, 0, 252, 14, 0, 244, 159, 0, 252, 14, 0, 241, 175, 0, 252, 14, 0, 248, 143, 0, 252, 255, 255, 255, 47, 0, 252, 255, 255, 223, 3, 0, 252, 175, 255, 12, 0, 0, 252, 14, 250, 175, 0, 0, 252, 14, 176, 255, 9, 0, 252, 14, 0, 252, 159, 0 ]; + +/// 'S' (ASCII 83) +const Font_TTHoves_Bold_17_glyph_83: [u8; 77] = [ 11, 12, 11, 0, 12, 0, 180, 254, 157, 1, 0, 96, 255, 255, 255, 47, 0, 240, 255, 121, 252, 207, 0, 243, 159, 0, 192, 255, 0, 241, 239, 54, 0, 0, 0, 144, 255, 255, 207, 6, 0, 0, 181, 254, 255, 159, 0, 0, 0, 16, 229, 255, 0, 246, 95, 0, 144, 255, 2, 242, 255, 104, 248, 239, 0, 112, 255, 255, 255, 95, 0, 0, 179, 253, 173, 3, 0 ]; + +/// 'T' (ASCII 84) +const Font_TTHoves_Bold_17_glyph_84: [u8; 65] = [ 10, 12, 10, 0, 12, 250, 255, 255, 255, 175, 250, 255, 255, 255, 175, 166, 202, 255, 172, 122, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0, 0, 80, 255, 5, 0 ]; + +/// 'U' (ASCII 85) +const Font_TTHoves_Bold_17_glyph_85: [u8; 77] = [ 11, 12, 12, 1, 12, 254, 12, 0, 144, 255, 1, 254, 12, 0, 144, 255, 1, 254, 12, 0, 144, 255, 1, 254, 12, 0, 144, 255, 1, 254, 12, 0, 144, 255, 1, 254, 12, 0, 144, 255, 1, 254, 13, 0, 144, 255, 1, 252, 14, 0, 176, 255, 0, 250, 111, 0, 243, 223, 0, 244, 255, 188, 255, 127, 0, 144, 255, 255, 255, 12, 0, 0, 180, 238, 124, 0, 0 ]; + +/// 'V' (ASCII 86) +const Font_TTHoves_Bold_17_glyph_86: [u8; 77] = [ 12, 12, 12, 0, 12, 253, 47, 0, 0, 246, 143, 248, 127, 0, 0, 251, 63, 243, 207, 0, 16, 255, 14, 208, 255, 1, 80, 255, 9, 128, 255, 6, 160, 255, 4, 48, 255, 11, 240, 239, 0, 0, 254, 15, 244, 159, 0, 0, 248, 95, 250, 79, 0, 0, 243, 207, 254, 14, 0, 0, 224, 255, 255, 9, 0, 0, 144, 255, 255, 4, 0, 0, 64, 255, 255, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_TTHoves_Bold_17_glyph_87: [u8; 113] = [ 17, 12, 17, 0, 12, 252, 47, 0, 242, 255, 0, 80, 255, 9, 248, 111, 0, 246, 255, 3, 144, 255, 5, 245, 159, 0, 250, 255, 7, 192, 255, 2, 241, 223, 0, 254, 255, 11, 240, 239, 0, 208, 255, 33, 255, 255, 15, 244, 175, 0, 144, 255, 100, 255, 246, 63, 247, 111, 0, 80, 255, 168, 223, 240, 127, 251, 47, 0, 16, 255, 253, 159, 192, 223, 255, 14, 0, 0, 254, 255, 95, 128, 255, 255, 10, 0, 0, 250, 255, 31, 64, 255, 255, 7, 0, 0, 246, 255, 13, 0, 255, 255, 3, 0, 0, 242, 255, 9, 0, 252, 255, 0, 0 ]; + +/// 'X' (ASCII 88) +const Font_TTHoves_Bold_17_glyph_88: [u8; 89] = [ 13, 12, 12, 0, 12, 160, 255, 8, 0, 247, 191, 0, 16, 255, 47, 16, 255, 47, 0, 0, 246, 191, 160, 255, 7, 0, 0, 192, 255, 249, 207, 0, 0, 0, 32, 255, 255, 47, 0, 0, 0, 0, 248, 255, 8, 0, 0, 0, 0, 251, 255, 11, 0, 0, 0, 80, 255, 255, 95, 0, 0, 0, 225, 255, 245, 239, 1, 0, 0, 250, 143, 112, 255, 10, 0, 64, 255, 13, 0, 253, 95, 0, 224, 255, 4, 0, 244, 239, 1 ]; + +/// 'Y' (ASCII 89) +const Font_TTHoves_Bold_17_glyph_89: [u8; 89] = [ 13, 12, 12, 0, 12, 225, 255, 1, 0, 242, 223, 0, 112, 255, 8, 0, 250, 95, 0, 0, 254, 31, 32, 255, 12, 0, 0, 246, 143, 160, 255, 4, 0, 0, 224, 255, 243, 207, 0, 0, 0, 96, 255, 255, 63, 0, 0, 0, 0, 253, 255, 11, 0, 0, 0, 0, 245, 255, 3, 0, 0, 0, 0, 224, 223, 0, 0, 0, 0, 0, 224, 207, 0, 0, 0, 0, 0, 224, 207, 0, 0, 0, 0, 0, 224, 207, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_TTHoves_Bold_17_glyph_90: [u8; 65] = [ 10, 12, 11, 0, 12, 243, 255, 255, 255, 207, 243, 255, 255, 255, 207, 162, 170, 170, 255, 175, 0, 0, 144, 255, 30, 0, 0, 245, 255, 3, 0, 32, 255, 111, 0, 0, 209, 255, 9, 0, 0, 251, 207, 0, 0, 128, 255, 30, 0, 0, 243, 255, 156, 153, 137, 245, 255, 255, 255, 223, 245, 255, 255, 255, 223 ]; + +/// '[' (ASCII 91) +const Font_TTHoves_Bold_17_glyph_91: [u8; 56] = [ 5, 17, 7, 1, 13, 83, 85, 5, 250, 255, 14, 250, 255, 14, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 14, 0, 250, 95, 5, 250, 255, 14, 250, 255, 14 ]; + +/// '\' (ASCII 92) +const Font_TTHoves_Bold_17_glyph_92: [u8; 69] = [ 8, 16, 7, 0, 12, 253, 11, 0, 0, 249, 15, 0, 0, 244, 79, 0, 0, 240, 159, 0, 0, 176, 223, 0, 0, 96, 255, 2, 0, 16, 255, 7, 0, 0, 252, 11, 0, 0, 248, 15, 0, 0, 243, 95, 0, 0, 224, 159, 0, 0, 160, 239, 0, 0, 80, 255, 3, 0, 16, 255, 7, 0, 0, 252, 12, 0, 0, 247, 31 ]; + +/// ']' (ASCII 93) +const Font_TTHoves_Bold_17_glyph_93: [u8; 56] = [ 6, 17, 7, 0, 13, 82, 85, 21, 246, 255, 47, 246, 255, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 0, 245, 47, 82, 249, 47, 246, 255, 47, 246, 255, 47 ]; + +/// '^' (ASCII 94) +const Font_TTHoves_Bold_17_glyph_94: [u8; 25] = [ 8, 5, 8, 0, 12, 0, 251, 159, 0, 16, 255, 255, 0, 112, 207, 253, 5, 192, 111, 248, 10, 242, 31, 242, 31 ]; + +/// '_' (ASCII 95) +const Font_TTHoves_Bold_17_glyph_95: [u8; 20] = [ 9, 3, 8, 0, 0, 82, 85, 85, 85, 0, 245, 255, 255, 255, 1, 245, 255, 255, 255, 1 ]; + +/// '`' (ASCII 96) +const Font_TTHoves_Bold_17_glyph_96: [u8; 14] = [ 5, 3, 5, 0, 13, 114, 23, 0, 176, 175, 0, 0, 253, 5 ]; + +/// '{' (ASCII 123) +const Font_TTHoves_Bold_17_glyph_123: [u8; 73] = [ 7, 17, 7, 0, 13, 0, 16, 67, 0, 0, 245, 255, 1, 0, 254, 255, 1, 16, 255, 10, 0, 32, 255, 6, 0, 32, 255, 6, 0, 48, 255, 6, 0, 211, 255, 3, 0, 245, 110, 0, 0, 245, 175, 0, 0, 177, 255, 4, 0, 32, 255, 6, 0, 32, 255, 6, 0, 32, 255, 6, 0, 16, 255, 76, 0, 0, 253, 255, 1, 0, 178, 255, 1 ]; + +/// '|' (ASCII 124) +const Font_TTHoves_Bold_17_glyph_124: [u8; 37] = [ 3, 16, 7, 2, 12, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9, 255, 9 ]; + +/// '}' (ASCII 125) +const Font_TTHoves_Bold_17_glyph_125: [u8; 73] = [ 7, 17, 7, 0, 13, 65, 3, 0, 0, 246, 223, 1, 0, 246, 255, 10, 0, 16, 254, 13, 0, 0, 251, 13, 0, 0, 251, 13, 0, 0, 251, 14, 0, 0, 248, 207, 0, 0, 128, 255, 0, 0, 210, 255, 0, 0, 249, 127, 0, 0, 251, 14, 0, 0, 251, 13, 0, 0, 251, 13, 0, 81, 255, 12, 0, 246, 255, 8, 0, 246, 158, 0, 0 ]; + +/// '~' (ASCII 126) +const Font_TTHoves_Bold_17_glyph_126: [u8; 25] = [ 10, 4, 10, 0, 7, 0, 98, 2, 0, 0, 128, 255, 159, 246, 143, 242, 255, 255, 255, 79, 245, 63, 180, 239, 7 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_TTHoves_Bold_17_glyph_nonprintable: [u8; 65] = [ 9, 12, 9, 0, 12, 255, 40, 32, 230, 255, 63, 0, 0, 16, 254, 10, 32, 39, 0, 248, 90, 213, 207, 0, 246, 255, 255, 95, 0, 249, 255, 223, 2, 96, 255, 255, 95, 0, 250, 255, 255, 47, 64, 255, 255, 255, 239, 238, 255, 255, 255, 63, 99, 255, 255, 255, 15, 48, 255, 255, 255, 15, 48, 255, 255 ]; + +/// Array of references for 'TTHoves_Bold_17' ASCII glyphs (forced uppercase) +const Font_TTHoves_Bold_17_upper: [&[u8]; 95] = [ + &Font_TTHoves_Bold_17_glyph_32, + &Font_TTHoves_Bold_17_glyph_33, + &Font_TTHoves_Bold_17_glyph_34, + &Font_TTHoves_Bold_17_glyph_35, + &Font_TTHoves_Bold_17_glyph_36, + &Font_TTHoves_Bold_17_glyph_37, + &Font_TTHoves_Bold_17_glyph_38, + &Font_TTHoves_Bold_17_glyph_39, + &Font_TTHoves_Bold_17_glyph_40, + &Font_TTHoves_Bold_17_glyph_41, + &Font_TTHoves_Bold_17_glyph_42, + &Font_TTHoves_Bold_17_glyph_43, + &Font_TTHoves_Bold_17_glyph_44, + &Font_TTHoves_Bold_17_glyph_45, + &Font_TTHoves_Bold_17_glyph_46, + &Font_TTHoves_Bold_17_glyph_47, + &Font_TTHoves_Bold_17_glyph_48, + &Font_TTHoves_Bold_17_glyph_49, + &Font_TTHoves_Bold_17_glyph_50, + &Font_TTHoves_Bold_17_glyph_51, + &Font_TTHoves_Bold_17_glyph_52, + &Font_TTHoves_Bold_17_glyph_53, + &Font_TTHoves_Bold_17_glyph_54, + &Font_TTHoves_Bold_17_glyph_55, + &Font_TTHoves_Bold_17_glyph_56, + &Font_TTHoves_Bold_17_glyph_57, + &Font_TTHoves_Bold_17_glyph_58, + &Font_TTHoves_Bold_17_glyph_59, + &Font_TTHoves_Bold_17_glyph_60, + &Font_TTHoves_Bold_17_glyph_61, + &Font_TTHoves_Bold_17_glyph_62, + &Font_TTHoves_Bold_17_glyph_63, + &Font_TTHoves_Bold_17_glyph_64, + &Font_TTHoves_Bold_17_glyph_65, + &Font_TTHoves_Bold_17_glyph_66, + &Font_TTHoves_Bold_17_glyph_67, + &Font_TTHoves_Bold_17_glyph_68, + &Font_TTHoves_Bold_17_glyph_69, + &Font_TTHoves_Bold_17_glyph_70, + &Font_TTHoves_Bold_17_glyph_71, + &Font_TTHoves_Bold_17_glyph_72, + &Font_TTHoves_Bold_17_glyph_73, + &Font_TTHoves_Bold_17_glyph_74, + &Font_TTHoves_Bold_17_glyph_75, + &Font_TTHoves_Bold_17_glyph_76, + &Font_TTHoves_Bold_17_glyph_77, + &Font_TTHoves_Bold_17_glyph_78, + &Font_TTHoves_Bold_17_glyph_79, + &Font_TTHoves_Bold_17_glyph_80, + &Font_TTHoves_Bold_17_glyph_81, + &Font_TTHoves_Bold_17_glyph_82, + &Font_TTHoves_Bold_17_glyph_83, + &Font_TTHoves_Bold_17_glyph_84, + &Font_TTHoves_Bold_17_glyph_85, + &Font_TTHoves_Bold_17_glyph_86, + &Font_TTHoves_Bold_17_glyph_87, + &Font_TTHoves_Bold_17_glyph_88, + &Font_TTHoves_Bold_17_glyph_89, + &Font_TTHoves_Bold_17_glyph_90, + &Font_TTHoves_Bold_17_glyph_91, + &Font_TTHoves_Bold_17_glyph_92, + &Font_TTHoves_Bold_17_glyph_93, + &Font_TTHoves_Bold_17_glyph_94, + &Font_TTHoves_Bold_17_glyph_95, + &Font_TTHoves_Bold_17_glyph_96, + &Font_TTHoves_Bold_17_glyph_65, // a -> A + &Font_TTHoves_Bold_17_glyph_66, // b -> B + &Font_TTHoves_Bold_17_glyph_67, // c -> C + &Font_TTHoves_Bold_17_glyph_68, // d -> D + &Font_TTHoves_Bold_17_glyph_69, // e -> E + &Font_TTHoves_Bold_17_glyph_70, // f -> F + &Font_TTHoves_Bold_17_glyph_71, // g -> G + &Font_TTHoves_Bold_17_glyph_72, // h -> H + &Font_TTHoves_Bold_17_glyph_73, // i -> I + &Font_TTHoves_Bold_17_glyph_74, // j -> J + &Font_TTHoves_Bold_17_glyph_75, // k -> K + &Font_TTHoves_Bold_17_glyph_76, // l -> L + &Font_TTHoves_Bold_17_glyph_77, // m -> M + &Font_TTHoves_Bold_17_glyph_78, // n -> N + &Font_TTHoves_Bold_17_glyph_79, // o -> O + &Font_TTHoves_Bold_17_glyph_80, // p -> P + &Font_TTHoves_Bold_17_glyph_81, // q -> Q + &Font_TTHoves_Bold_17_glyph_82, // r -> R + &Font_TTHoves_Bold_17_glyph_83, // s -> S + &Font_TTHoves_Bold_17_glyph_84, // t -> T + &Font_TTHoves_Bold_17_glyph_85, // u -> U + &Font_TTHoves_Bold_17_glyph_86, // v -> V + &Font_TTHoves_Bold_17_glyph_87, // w -> W + &Font_TTHoves_Bold_17_glyph_88, // x -> X + &Font_TTHoves_Bold_17_glyph_89, // y -> Y + &Font_TTHoves_Bold_17_glyph_90, // z -> Z + &Font_TTHoves_Bold_17_glyph_123, + &Font_TTHoves_Bold_17_glyph_124, + &Font_TTHoves_Bold_17_glyph_125, + &Font_TTHoves_Bold_17_glyph_126, +]; + +/// FontInfo struct for forced uppercase usage +pub const Font_TTHoves_Bold_17_upper_info: FontInfo = FontInfo { + height: 17, + max_height: 18, + baseline: 4, + glyph_data: &Font_TTHoves_Bold_17_upper, + glyph_nonprintable: &Font_TTHoves_Bold_17_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs new file mode 100644 index 00000000000..299d777e661 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_demibold_21.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_TTHoves_DemiBold_21_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_TTHoves_DemiBold_21_glyph_33: [u8; 35] = [ 4, 15, 6, 1, 15, 245, 111, 245, 111, 245, 111, 245, 111, 245, 111, 245, 111, 244, 95, 243, 79, 241, 47, 240, 31, 160, 10, 0, 0, 228, 110, 245, 111, 245, 111 ]; + +/// '"' (ASCII 34) +const Font_TTHoves_DemiBold_21_glyph_34: [u8; 25] = [ 7, 5, 9, 1, 15, 251, 10, 253, 8, 251, 10, 253, 8, 251, 10, 253, 8, 251, 10, 253, 8, 218, 9, 219, 7 ]; + +/// '#' (ASCII 35) +const Font_TTHoves_DemiBold_21_glyph_35: [u8; 125] = [ 15, 15, 15, 0, 15, 0, 0, 192, 175, 0, 251, 11, 0, 0, 0, 240, 127, 0, 254, 7, 0, 0, 0, 242, 63, 32, 255, 4, 0, 0, 68, 248, 95, 132, 255, 70, 3, 64, 255, 255, 255, 255, 255, 255, 9, 128, 255, 255, 255, 255, 255, 255, 6, 0, 0, 255, 6, 240, 111, 0, 0, 0, 48, 255, 2, 243, 63, 0, 0, 0, 112, 255, 0, 246, 15, 0, 0, 246, 255, 255, 255, 255, 255, 143, 0, 249, 255, 255, 255, 255, 255, 79, 0, 67, 246, 143, 84, 255, 72, 4, 0, 0, 244, 47, 48, 255, 2, 0, 0, 0, 247, 14, 112, 255, 0, 0, 0, 0, 251, 11, 160, 207, 0, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_TTHoves_DemiBold_21_glyph_36: [u8; 138] = [ 13, 19, 13, 0, 17, 0, 0, 208, 207, 0, 0, 0, 0, 0, 208, 207, 0, 0, 0, 0, 48, 248, 255, 73, 0, 0, 0, 248, 255, 255, 255, 9, 0, 80, 255, 207, 202, 255, 127, 0, 192, 255, 3, 0, 243, 239, 0, 224, 223, 0, 0, 144, 221, 1, 192, 255, 5, 0, 0, 0, 0, 80, 255, 255, 156, 38, 0, 0, 0, 246, 255, 255, 255, 26, 0, 0, 0, 116, 201, 255, 207, 0, 0, 0, 0, 0, 193, 255, 3, 210, 125, 0, 0, 96, 255, 5, 240, 239, 3, 0, 176, 255, 3, 128, 255, 207, 186, 254, 223, 0, 0, 249, 255, 255, 255, 45, 0, 0, 48, 248, 255, 106, 0, 0, 0, 0, 208, 207, 0, 0, 0, 0, 0, 208, 207, 0, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_TTHoves_DemiBold_21_glyph_37: [u8; 140] = [ 17, 15, 17, 0, 15, 0, 216, 190, 2, 0, 128, 255, 1, 0, 144, 255, 255, 30, 0, 242, 127, 0, 0, 241, 63, 176, 127, 0, 252, 13, 0, 0, 243, 12, 112, 159, 96, 255, 3, 0, 0, 241, 79, 194, 127, 225, 175, 0, 0, 0, 128, 255, 255, 14, 249, 30, 0, 0, 0, 0, 198, 157, 49, 255, 6, 0, 0, 0, 0, 0, 0, 192, 207, 0, 0, 0, 0, 0, 0, 0, 246, 63, 145, 188, 6, 0, 0, 0, 16, 255, 9, 254, 255, 143, 0, 0, 0, 160, 239, 113, 207, 82, 255, 1, 0, 0, 244, 95, 144, 111, 0, 253, 3, 0, 0, 253, 12, 112, 191, 48, 255, 1, 0, 112, 255, 2, 16, 254, 255, 159, 0, 0, 242, 143, 0, 0, 178, 222, 8, 0 ]; + +/// '&' (ASCII 38) +const Font_TTHoves_DemiBold_21_glyph_38: [u8; 110] = [ 14, 15, 14, 0, 15, 0, 96, 252, 173, 1, 0, 0, 0, 250, 255, 255, 47, 0, 0, 48, 255, 109, 249, 191, 0, 0, 96, 255, 5, 192, 239, 0, 0, 48, 255, 6, 224, 223, 0, 0, 0, 253, 95, 252, 111, 0, 0, 0, 226, 255, 255, 7, 0, 0, 0, 194, 255, 95, 0, 0, 0, 32, 254, 255, 207, 0, 251, 12, 208, 255, 68, 255, 11, 255, 10, 241, 175, 0, 246, 223, 255, 5, 241, 159, 0, 128, 255, 223, 0, 208, 255, 55, 149, 255, 159, 0, 48, 255, 255, 255, 207, 255, 7, 0, 162, 253, 174, 3, 250, 111 ]; + +/// ''' (ASCII 39) +const Font_TTHoves_DemiBold_21_glyph_39: [u8; 15] = [ 3, 5, 5, 1, 15, 251, 10, 251, 10, 251, 10, 251, 10, 218, 9 ]; + +/// '(' (ASCII 40) +const Font_TTHoves_DemiBold_21_glyph_40: [u8; 81] = [ 7, 19, 8, 1, 15, 0, 208, 207, 0, 0, 248, 63, 0, 0, 255, 11, 0, 96, 255, 3, 0, 176, 239, 0, 0, 240, 159, 0, 0, 243, 111, 0, 0, 245, 79, 0, 0, 247, 63, 0, 0, 248, 31, 0, 0, 247, 63, 0, 0, 245, 79, 0, 0, 244, 111, 0, 0, 240, 159, 0, 0, 176, 239, 0, 0, 96, 255, 3, 0, 0, 255, 10, 0, 0, 248, 63, 0, 0, 208, 207, 0 ]; + +/// ')' (ASCII 41) +const Font_TTHoves_DemiBold_21_glyph_41: [u8; 81] = [ 7, 19, 8, 0, 15, 244, 127, 0, 0, 160, 255, 1, 0, 32, 255, 8, 0, 0, 251, 14, 0, 0, 246, 79, 0, 0, 241, 143, 0, 0, 208, 207, 0, 0, 192, 239, 0, 0, 160, 255, 0, 0, 144, 255, 0, 0, 160, 255, 0, 0, 192, 239, 0, 0, 208, 207, 0, 0, 241, 143, 0, 0, 246, 79, 0, 0, 251, 14, 0, 32, 255, 8, 0, 160, 255, 1, 0, 244, 127, 0, 0 ]; + +/// '*' (ASCII 42) +const Font_TTHoves_DemiBold_21_glyph_42: [u8; 45] = [ 10, 8, 10, 0, 15, 0, 0, 253, 2, 0, 0, 0, 252, 1, 0, 144, 57, 251, 114, 12, 240, 255, 255, 255, 79, 16, 164, 255, 93, 2, 0, 225, 239, 79, 0, 0, 253, 55, 255, 2, 0, 180, 0, 120, 0 ]; + +/// '+' (ASCII 43) +const Font_TTHoves_DemiBold_21_glyph_43: [u8; 55] = [ 10, 10, 12, 1, 11, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 68, 148, 255, 68, 36, 255, 255, 255, 255, 127, 255, 255, 255, 255, 127, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_TTHoves_DemiBold_21_glyph_44: [u8; 20] = [ 5, 5, 5, 0, 3, 176, 255, 2, 192, 223, 0, 224, 159, 0, 240, 79, 0, 209, 13, 0 ]; + +/// '-' (ASCII 45) +const Font_TTHoves_DemiBold_21_glyph_45: [u8; 20] = [ 9, 3, 9, 0, 8, 96, 102, 102, 102, 0, 240, 255, 255, 255, 1, 240, 255, 255, 255, 1 ]; + +/// '.' (ASCII 46) +const Font_TTHoves_DemiBold_21_glyph_46: [u8; 11] = [ 4, 3, 5, 1, 3, 235, 46, 251, 47, 251, 47 ]; + +/// '/' (ASCII 47) +const Font_TTHoves_DemiBold_21_glyph_47: [u8; 100] = [ 9, 19, 8, 0, 15, 0, 0, 96, 255, 3, 0, 0, 176, 239, 0, 0, 0, 240, 175, 0, 0, 0, 244, 95, 0, 0, 0, 249, 15, 0, 0, 0, 254, 11, 0, 0, 48, 255, 6, 0, 0, 128, 255, 1, 0, 0, 208, 207, 0, 0, 0, 241, 127, 0, 0, 0, 246, 63, 0, 0, 0, 251, 14, 0, 0, 0, 255, 9, 0, 0, 80, 255, 4, 0, 0, 160, 255, 0, 0, 0, 224, 175, 0, 0, 0, 243, 95, 0, 0, 0, 248, 31, 0, 0, 0, 253, 12, 0, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_TTHoves_DemiBold_21_glyph_48: [u8; 110] = [ 14, 15, 14, 0, 15, 0, 0, 197, 255, 108, 0, 0, 0, 144, 255, 255, 255, 10, 0, 0, 249, 255, 187, 255, 159, 0, 32, 255, 46, 0, 210, 255, 2, 144, 255, 5, 0, 64, 255, 10, 192, 239, 0, 0, 0, 254, 12, 224, 207, 0, 0, 0, 251, 15, 240, 191, 0, 0, 0, 250, 31, 224, 207, 0, 0, 0, 251, 15, 192, 239, 0, 0, 0, 254, 12, 144, 255, 5, 0, 64, 255, 10, 32, 255, 46, 0, 210, 255, 2, 0, 249, 255, 187, 255, 159, 0, 0, 160, 255, 255, 255, 10, 0, 0, 0, 165, 238, 107, 0, 0 ]; + +/// '1' (ASCII 49) +const Font_TTHoves_DemiBold_21_glyph_49: [u8; 65] = [ 7, 15, 8, 0, 15, 0, 112, 255, 4, 148, 217, 255, 4, 247, 255, 255, 4, 247, 255, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4, 0, 96, 255, 4 ]; + +/// '2' (ASCII 50) +const Font_TTHoves_DemiBold_21_glyph_50: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 80, 235, 190, 5, 0, 0, 249, 255, 255, 159, 0, 80, 255, 191, 251, 255, 5, 192, 255, 4, 96, 255, 10, 240, 207, 0, 0, 255, 13, 32, 18, 0, 16, 255, 12, 0, 0, 0, 160, 255, 7, 0, 0, 0, 249, 207, 0, 0, 0, 160, 255, 29, 0, 0, 0, 250, 223, 1, 0, 0, 160, 255, 29, 0, 0, 0, 251, 223, 1, 0, 0, 160, 255, 191, 153, 153, 25, 208, 255, 255, 255, 255, 31, 208, 255, 255, 255, 255, 31 ]; + +/// '3' (ASCII 51) +const Font_TTHoves_DemiBold_21_glyph_51: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 112, 236, 190, 5, 0, 0, 253, 255, 255, 175, 0, 160, 255, 174, 251, 255, 5, 240, 223, 0, 48, 255, 10, 96, 70, 0, 0, 255, 11, 0, 0, 0, 145, 255, 7, 0, 0, 242, 255, 191, 0, 0, 0, 242, 255, 79, 0, 0, 0, 97, 232, 255, 4, 0, 0, 0, 16, 254, 12, 163, 73, 0, 0, 252, 15, 242, 207, 0, 32, 255, 13, 192, 255, 174, 251, 255, 8, 32, 254, 255, 255, 191, 0, 0, 128, 236, 190, 5, 0 ]; + +/// '4' (ASCII 52) +const Font_TTHoves_DemiBold_21_glyph_52: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 0, 176, 255, 191, 0, 0, 0, 244, 255, 191, 0, 0, 0, 252, 255, 191, 0, 0, 80, 255, 250, 191, 0, 0, 208, 239, 240, 191, 0, 0, 246, 127, 240, 191, 0, 0, 254, 14, 240, 191, 0, 112, 255, 5, 240, 191, 0, 241, 223, 0, 240, 191, 0, 248, 191, 136, 248, 239, 56, 250, 255, 255, 255, 255, 111, 250, 255, 255, 255, 255, 111, 0, 0, 0, 240, 191, 0, 0, 0, 0, 240, 191, 0, 0, 0, 0, 240, 191, 0 ]; + +/// '5' (ASCII 53) +const Font_TTHoves_DemiBold_21_glyph_53: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 255, 255, 255, 255, 9, 16, 255, 255, 255, 255, 9, 48, 255, 156, 153, 153, 5, 80, 255, 4, 0, 0, 0, 96, 255, 3, 0, 0, 0, 128, 255, 234, 207, 8, 0, 144, 255, 255, 255, 239, 2, 176, 255, 191, 217, 255, 11, 80, 119, 1, 0, 252, 47, 0, 0, 0, 0, 246, 95, 96, 70, 0, 0, 246, 95, 208, 255, 2, 0, 252, 47, 112, 255, 191, 234, 255, 11, 0, 251, 255, 255, 223, 1, 0, 96, 235, 207, 7, 0 ]; + +/// '6' (ASCII 54) +const Font_TTHoves_DemiBold_21_glyph_54: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 0, 80, 255, 12, 0, 0, 0, 225, 255, 3, 0, 0, 0, 249, 159, 0, 0, 0, 48, 255, 30, 0, 0, 0, 208, 255, 6, 0, 0, 0, 247, 255, 207, 7, 0, 32, 255, 255, 255, 207, 0, 160, 255, 175, 233, 255, 9, 240, 255, 2, 16, 253, 15, 242, 175, 0, 0, 247, 63, 241, 175, 0, 0, 247, 63, 224, 255, 2, 0, 253, 15, 96, 255, 159, 233, 255, 8, 0, 250, 255, 255, 207, 0, 0, 80, 235, 190, 6, 0 ]; + +/// '7' (ASCII 55) +const Font_TTHoves_DemiBold_21_glyph_55: [u8; 95] = [ 11, 15, 11, 0, 15, 247, 255, 255, 255, 255, 6, 247, 255, 255, 255, 255, 6, 148, 153, 153, 249, 255, 5, 0, 0, 0, 242, 239, 0, 0, 0, 0, 248, 143, 0, 0, 0, 0, 254, 47, 0, 0, 0, 80, 255, 11, 0, 0, 0, 176, 255, 4, 0, 0, 0, 242, 239, 0, 0, 0, 0, 248, 127, 0, 0, 0, 0, 254, 31, 0, 0, 0, 80, 255, 10, 0, 0, 0, 192, 255, 4, 0, 0, 0, 242, 223, 0, 0, 0, 0, 249, 111, 0, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_TTHoves_DemiBold_21_glyph_56: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 64, 235, 207, 7, 0, 0, 249, 255, 255, 223, 1, 80, 255, 142, 199, 255, 10, 144, 255, 3, 0, 253, 15, 160, 255, 0, 0, 250, 15, 80, 255, 26, 80, 255, 11, 0, 249, 255, 255, 223, 1, 0, 246, 255, 255, 175, 0, 80, 255, 109, 165, 255, 11, 208, 239, 0, 0, 249, 47, 240, 191, 0, 0, 245, 111, 224, 239, 1, 0, 250, 79, 128, 255, 142, 183, 255, 14, 0, 252, 255, 255, 239, 3, 0, 80, 235, 207, 24, 0 ]; + +/// '9' (ASCII 57) +const Font_TTHoves_DemiBold_21_glyph_57: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 64, 235, 190, 6, 0, 0, 250, 255, 255, 191, 0, 96, 255, 175, 233, 255, 8, 208, 255, 2, 16, 253, 15, 241, 175, 0, 0, 247, 63, 241, 175, 0, 0, 247, 79, 224, 255, 2, 0, 253, 47, 96, 255, 159, 233, 255, 12, 0, 250, 255, 255, 255, 4, 0, 80, 235, 255, 175, 0, 0, 0, 48, 255, 30, 0, 0, 0, 208, 255, 6, 0, 0, 0, 247, 207, 0, 0, 0, 16, 255, 47, 0, 0, 0, 160, 255, 8, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_TTHoves_DemiBold_21_glyph_58: [u8; 27] = [ 4, 11, 5, 1, 11, 251, 47, 251, 47, 251, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 46, 251, 47, 251, 47 ]; + +/// ';' (ASCII 59) +const Font_TTHoves_DemiBold_21_glyph_59: [u8; 44] = [ 5, 13, 5, 0, 11, 160, 255, 4, 160, 255, 4, 144, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 2, 192, 223, 0, 224, 159, 0, 240, 79, 0, 209, 13, 0 ]; + +/// '<' (ASCII 60) +const Font_TTHoves_DemiBold_21_glyph_60: [u8; 55] = [ 10, 10, 12, 1, 11, 0, 0, 0, 48, 90, 0, 0, 97, 253, 111, 0, 147, 255, 255, 79, 214, 255, 255, 108, 0, 253, 239, 40, 0, 0, 253, 223, 23, 0, 0, 214, 255, 255, 91, 0, 0, 163, 255, 255, 79, 0, 0, 113, 253, 111, 0, 0, 0, 48, 90 ]; + +/// '=' (ASCII 61) +const Font_TTHoves_DemiBold_21_glyph_61: [u8; 45] = [ 10, 8, 12, 1, 10, 66, 68, 68, 68, 4, 248, 255, 255, 255, 31, 248, 255, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 31, 248, 255, 255, 255, 31, 66, 68, 68, 68, 4 ]; + +/// '>' (ASCII 62) +const Font_TTHoves_DemiBold_21_glyph_62: [u8; 55] = [ 10, 10, 12, 1, 11, 123, 1, 0, 0, 0, 253, 175, 3, 0, 0, 251, 255, 223, 22, 0, 32, 233, 255, 255, 41, 0, 0, 181, 255, 111, 0, 0, 164, 255, 111, 32, 232, 255, 255, 42, 251, 255, 223, 23, 0, 253, 175, 3, 0, 0, 123, 1, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_TTHoves_DemiBold_21_glyph_63: [u8; 95] = [ 11, 15, 11, 0, 15, 0, 162, 253, 157, 1, 0, 80, 255, 255, 255, 63, 0, 225, 255, 155, 253, 239, 0, 244, 175, 0, 192, 255, 3, 98, 38, 0, 128, 255, 5, 0, 0, 0, 225, 255, 2, 0, 0, 96, 255, 175, 0, 0, 0, 246, 255, 7, 0, 0, 0, 253, 79, 0, 0, 0, 0, 255, 11, 0, 0, 0, 0, 170, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 238, 10, 0, 0, 0, 16, 255, 11, 0, 0, 0, 16, 255, 11, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_TTHoves_DemiBold_21_glyph_64: [u8; 167] = [ 18, 18, 20, 1, 15, 0, 0, 96, 218, 255, 173, 6, 0, 0, 0, 80, 254, 255, 255, 255, 223, 4, 0, 0, 248, 255, 122, 68, 151, 255, 175, 0, 80, 255, 44, 0, 0, 0, 145, 255, 8, 224, 207, 0, 198, 190, 214, 13, 249, 47, 246, 47, 144, 255, 255, 255, 15, 224, 143, 251, 11, 243, 127, 65, 254, 15, 144, 223, 253, 8, 247, 12, 0, 247, 15, 96, 239, 254, 6, 249, 9, 0, 244, 15, 80, 255, 253, 8, 248, 11, 0, 246, 15, 112, 223, 251, 11, 244, 95, 32, 254, 79, 226, 159, 247, 47, 176, 255, 255, 255, 255, 255, 47, 241, 191, 0, 232, 255, 41, 252, 207, 3, 112, 255, 9, 0, 1, 0, 0, 0, 0, 0, 251, 239, 55, 1, 0, 0, 0, 0, 0, 144, 255, 255, 255, 255, 47, 0, 0, 0, 0, 162, 254, 255, 255, 47, 0, 0, 0, 0, 0, 16, 50, 51, 3, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_TTHoves_DemiBold_21_glyph_65: [u8; 125] = [ 15, 15, 14, 0, 15, 0, 0, 224, 255, 111, 0, 0, 0, 0, 0, 244, 255, 207, 0, 0, 0, 0, 0, 250, 255, 255, 1, 0, 0, 0, 0, 255, 159, 255, 7, 0, 0, 0, 80, 255, 42, 255, 12, 0, 0, 0, 160, 255, 5, 253, 47, 0, 0, 0, 241, 255, 0, 248, 143, 0, 0, 0, 246, 175, 0, 243, 223, 0, 0, 0, 251, 95, 0, 224, 255, 3, 0, 16, 255, 159, 136, 216, 255, 8, 0, 96, 255, 255, 255, 255, 255, 14, 0, 192, 255, 255, 255, 255, 255, 79, 0, 242, 239, 0, 0, 0, 247, 159, 0, 247, 159, 0, 0, 0, 241, 239, 0, 253, 63, 0, 0, 0, 176, 255, 4 ]; + +/// 'B' (ASCII 66) +const Font_TTHoves_DemiBold_21_glyph_66: [u8; 95] = [ 12, 15, 14, 1, 15, 246, 255, 255, 255, 124, 0, 246, 255, 255, 255, 255, 10, 246, 159, 102, 150, 255, 79, 246, 79, 0, 0, 246, 127, 246, 79, 0, 0, 244, 143, 246, 79, 0, 32, 251, 79, 246, 255, 255, 255, 255, 11, 246, 255, 255, 255, 255, 6, 246, 159, 102, 118, 254, 63, 246, 79, 0, 0, 243, 159, 246, 79, 0, 0, 240, 191, 246, 79, 0, 0, 243, 175, 246, 159, 102, 118, 254, 111, 246, 255, 255, 255, 255, 13, 246, 255, 255, 255, 141, 0 ]; + +/// 'C' (ASCII 67) +const Font_TTHoves_DemiBold_21_glyph_67: [u8; 125] = [ 15, 15, 15, 0, 15, 0, 0, 112, 252, 223, 24, 0, 0, 0, 48, 253, 255, 255, 239, 4, 0, 0, 243, 255, 190, 235, 255, 79, 0, 0, 253, 143, 0, 0, 248, 239, 0, 112, 255, 9, 0, 0, 144, 255, 6, 192, 255, 1, 0, 0, 16, 85, 3, 240, 223, 0, 0, 0, 0, 0, 0, 240, 191, 0, 0, 0, 0, 0, 0, 240, 223, 0, 0, 0, 0, 0, 0, 192, 255, 1, 0, 0, 16, 102, 4, 112, 255, 9, 0, 0, 144, 255, 5, 0, 253, 143, 0, 0, 248, 223, 0, 0, 243, 255, 190, 234, 255, 79, 0, 0, 48, 253, 255, 255, 239, 4, 0, 0, 0, 128, 252, 223, 24, 0, 0 ]; + +/// 'D' (ASCII 68) +const Font_TTHoves_DemiBold_21_glyph_68: [u8; 110] = [ 14, 15, 15, 1, 15, 246, 255, 255, 206, 7, 0, 0, 246, 255, 255, 255, 223, 3, 0, 246, 191, 169, 251, 255, 63, 0, 246, 79, 0, 0, 249, 223, 0, 246, 79, 0, 0, 144, 255, 7, 246, 79, 0, 0, 16, 255, 12, 246, 79, 0, 0, 0, 253, 15, 246, 79, 0, 0, 0, 251, 15, 246, 79, 0, 0, 0, 253, 15, 246, 79, 0, 0, 16, 255, 12, 246, 79, 0, 0, 144, 255, 7, 246, 79, 0, 0, 248, 223, 0, 246, 191, 153, 235, 255, 63, 0, 246, 255, 255, 255, 223, 3, 0, 246, 255, 255, 207, 7, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_TTHoves_DemiBold_21_glyph_69: [u8; 95] = [ 11, 15, 13, 1, 15, 246, 255, 255, 255, 255, 6, 246, 255, 255, 255, 255, 6, 246, 175, 136, 136, 136, 3, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 175, 136, 136, 136, 0, 246, 255, 255, 255, 255, 0, 246, 255, 255, 255, 255, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 175, 136, 136, 136, 3, 246, 255, 255, 255, 255, 6, 246, 255, 255, 255, 255, 6 ]; + +/// 'F' (ASCII 70) +const Font_TTHoves_DemiBold_21_glyph_70: [u8; 95] = [ 11, 15, 12, 1, 15, 246, 255, 255, 255, 255, 5, 246, 255, 255, 255, 255, 5, 246, 175, 136, 136, 136, 2, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 255, 255, 255, 207, 0, 246, 255, 255, 255, 207, 0, 246, 175, 136, 136, 104, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_TTHoves_DemiBold_21_glyph_71: [u8; 125] = [ 15, 15, 16, 0, 15, 0, 0, 112, 252, 190, 24, 0, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 243, 255, 190, 235, 255, 79, 0, 0, 253, 143, 0, 0, 248, 239, 0, 112, 255, 9, 0, 0, 176, 255, 6, 192, 255, 0, 0, 0, 0, 51, 2, 240, 223, 0, 0, 0, 0, 0, 0, 240, 191, 0, 0, 249, 255, 255, 12, 240, 223, 0, 0, 249, 255, 255, 12, 192, 255, 1, 0, 17, 33, 255, 12, 112, 255, 9, 0, 0, 112, 255, 12, 0, 253, 143, 0, 0, 246, 255, 12, 0, 243, 255, 190, 235, 255, 255, 12, 0, 48, 253, 255, 255, 223, 249, 12, 0, 0, 112, 252, 206, 7, 245, 12 ]; + +/// 'H' (ASCII 72) +const Font_TTHoves_DemiBold_21_glyph_72: [u8; 110] = [ 13, 15, 15, 1, 15, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 255, 255, 255, 255, 255, 10, 246, 255, 255, 255, 255, 255, 10, 246, 223, 187, 187, 203, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10 ]; + +/// 'I' (ASCII 73) +const Font_TTHoves_DemiBold_21_glyph_73: [u8; 35] = [ 4, 15, 6, 1, 15, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79 ]; + +/// 'J' (ASCII 74) +const Font_TTHoves_DemiBold_21_glyph_74: [u8; 65] = [ 8, 15, 9, 0, 15, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 250, 31, 151, 169, 255, 15, 252, 255, 255, 13, 252, 255, 191, 2 ]; + +/// 'K' (ASCII 75) +const Font_TTHoves_DemiBold_21_glyph_75: [u8; 110] = [ 13, 15, 13, 1, 15, 246, 79, 0, 16, 254, 95, 0, 246, 79, 0, 192, 255, 8, 0, 246, 79, 0, 248, 207, 0, 0, 246, 79, 64, 255, 46, 0, 0, 246, 79, 225, 255, 4, 0, 0, 246, 79, 252, 143, 0, 0, 0, 246, 207, 255, 12, 0, 0, 0, 246, 255, 255, 5, 0, 0, 0, 246, 175, 255, 30, 0, 0, 0, 246, 79, 249, 207, 0, 0, 0, 246, 79, 192, 255, 8, 0, 0, 246, 79, 16, 254, 95, 0, 0, 246, 79, 0, 243, 255, 2, 0, 246, 79, 0, 96, 255, 29, 0, 246, 79, 0, 0, 250, 191, 0 ]; + +/// 'L' (ASCII 76) +const Font_TTHoves_DemiBold_21_glyph_76: [u8; 95] = [ 11, 15, 12, 1, 15, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 191, 153, 153, 153, 2, 246, 255, 255, 255, 255, 3, 246, 255, 255, 255, 255, 3 ]; + +/// 'M' (ASCII 77) +const Font_TTHoves_DemiBold_21_glyph_77: [u8; 140] = [ 17, 15, 19, 1, 15, 246, 255, 47, 0, 0, 0, 253, 255, 11, 246, 255, 127, 0, 0, 32, 255, 255, 11, 246, 255, 207, 0, 0, 112, 255, 255, 11, 246, 255, 255, 1, 0, 208, 255, 255, 11, 246, 223, 255, 7, 0, 242, 223, 255, 11, 246, 95, 255, 12, 0, 247, 79, 255, 11, 246, 79, 250, 31, 0, 253, 14, 255, 11, 246, 79, 245, 127, 32, 255, 9, 255, 11, 246, 79, 240, 207, 112, 255, 4, 255, 11, 246, 79, 160, 255, 193, 239, 0, 255, 11, 246, 79, 80, 255, 251, 159, 0, 255, 11, 246, 79, 0, 255, 255, 79, 0, 255, 11, 246, 79, 0, 250, 255, 14, 0, 255, 11, 246, 79, 0, 245, 255, 9, 0, 255, 11, 246, 79, 0, 240, 255, 4, 0, 255, 11 ]; + +/// 'N' (ASCII 78) +const Font_TTHoves_DemiBold_21_glyph_78: [u8; 110] = [ 13, 15, 15, 1, 15, 246, 255, 7, 0, 0, 255, 11, 246, 255, 31, 0, 0, 255, 11, 246, 255, 143, 0, 0, 255, 11, 246, 255, 255, 1, 0, 255, 11, 246, 207, 255, 8, 0, 255, 11, 246, 79, 253, 31, 0, 255, 11, 246, 79, 245, 159, 0, 255, 11, 246, 79, 192, 255, 1, 255, 11, 246, 79, 64, 255, 9, 255, 11, 246, 79, 0, 252, 47, 255, 11, 246, 79, 0, 243, 207, 255, 11, 246, 79, 0, 176, 255, 255, 11, 246, 79, 0, 48, 255, 255, 11, 246, 79, 0, 0, 251, 255, 11, 246, 79, 0, 0, 243, 255, 11 ]; + +/// 'O' (ASCII 79) +const Font_TTHoves_DemiBold_21_glyph_79: [u8; 125] = [ 16, 15, 16, 0, 15, 0, 0, 112, 252, 223, 24, 0, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 243, 255, 190, 235, 255, 111, 0, 0, 253, 143, 0, 0, 247, 239, 1, 112, 255, 9, 0, 0, 112, 255, 9, 192, 255, 1, 0, 0, 0, 254, 14, 240, 223, 0, 0, 0, 0, 250, 31, 240, 191, 0, 0, 0, 0, 248, 63, 240, 223, 0, 0, 0, 0, 250, 47, 192, 255, 1, 0, 0, 0, 254, 15, 112, 255, 9, 0, 0, 96, 255, 10, 0, 253, 143, 0, 0, 246, 239, 1, 0, 243, 255, 190, 235, 255, 111, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 0, 128, 252, 223, 24, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_TTHoves_DemiBold_21_glyph_80: [u8; 95] = [ 12, 15, 14, 1, 15, 246, 255, 255, 255, 92, 0, 246, 255, 255, 255, 255, 8, 246, 191, 153, 185, 255, 63, 246, 79, 0, 0, 245, 143, 246, 79, 0, 0, 240, 191, 246, 79, 0, 0, 240, 191, 246, 79, 0, 0, 245, 143, 246, 191, 153, 185, 255, 63, 246, 255, 255, 255, 255, 9, 246, 255, 255, 255, 92, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_TTHoves_DemiBold_21_glyph_81: [u8; 133] = [ 16, 16, 16, 0, 15, 0, 0, 112, 252, 223, 24, 0, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 243, 255, 190, 235, 255, 111, 0, 0, 253, 143, 0, 0, 247, 239, 1, 112, 255, 9, 0, 0, 112, 255, 9, 192, 255, 1, 0, 0, 0, 254, 14, 240, 223, 0, 0, 0, 0, 250, 31, 240, 191, 0, 0, 0, 0, 248, 63, 240, 223, 0, 0, 0, 0, 250, 31, 192, 255, 1, 48, 51, 0, 253, 15, 112, 255, 9, 128, 255, 105, 255, 10, 0, 253, 143, 0, 250, 255, 255, 2, 0, 243, 255, 190, 250, 255, 127, 0, 0, 48, 253, 255, 255, 255, 95, 0, 0, 0, 128, 252, 223, 233, 255, 3, 0, 0, 0, 0, 0, 32, 255, 30 ]; + +/// 'R' (ASCII 82) +const Font_TTHoves_DemiBold_21_glyph_82: [u8; 110] = [ 13, 15, 14, 1, 15, 246, 255, 255, 255, 92, 0, 0, 246, 255, 255, 255, 255, 9, 0, 246, 191, 153, 185, 255, 63, 0, 246, 79, 0, 0, 245, 175, 0, 246, 79, 0, 0, 224, 207, 0, 246, 79, 0, 0, 224, 223, 0, 246, 79, 0, 0, 244, 175, 0, 246, 175, 136, 152, 255, 95, 0, 246, 255, 255, 255, 255, 10, 0, 246, 255, 255, 255, 108, 0, 0, 246, 79, 246, 239, 2, 0, 0, 246, 79, 112, 255, 30, 0, 0, 246, 79, 0, 248, 223, 1, 0, 246, 79, 0, 128, 255, 29, 0, 246, 79, 0, 0, 249, 207, 0 ]; + +/// 'S' (ASCII 83) +const Font_TTHoves_DemiBold_21_glyph_83: [u8; 110] = [ 13, 15, 13, 0, 15, 0, 64, 219, 223, 91, 0, 0, 0, 250, 255, 255, 255, 11, 0, 96, 255, 175, 185, 255, 143, 0, 192, 255, 2, 0, 242, 239, 0, 224, 223, 0, 0, 128, 221, 1, 192, 255, 6, 0, 0, 0, 0, 80, 255, 255, 156, 22, 0, 0, 0, 247, 255, 255, 255, 26, 0, 0, 0, 116, 218, 255, 191, 0, 0, 0, 0, 0, 210, 255, 3, 194, 124, 0, 0, 96, 255, 5, 240, 239, 2, 0, 160, 255, 3, 128, 255, 191, 152, 253, 223, 0, 0, 251, 255, 255, 255, 46, 0, 0, 64, 218, 239, 140, 0, 0 ]; + +/// 'T' (ASCII 84) +const Font_TTHoves_DemiBold_21_glyph_84: [u8; 95] = [ 12, 15, 12, 0, 15, 249, 255, 255, 255, 255, 255, 249, 255, 255, 255, 255, 255, 149, 153, 251, 223, 153, 153, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_TTHoves_DemiBold_21_glyph_85: [u8; 110] = [ 13, 15, 15, 1, 15, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 63, 0, 0, 16, 255, 10, 246, 79, 0, 0, 48, 255, 8, 243, 159, 0, 0, 128, 255, 5, 224, 255, 6, 0, 245, 255, 1, 96, 255, 223, 202, 255, 127, 0, 0, 248, 255, 255, 255, 10, 0, 0, 48, 218, 223, 74, 0, 0 ]; + +/// 'V' (ASCII 86) +const Font_TTHoves_DemiBold_21_glyph_86: [u8; 125] = [ 15, 15, 14, 0, 15, 251, 79, 0, 0, 0, 241, 255, 0, 246, 175, 0, 0, 0, 245, 175, 0, 241, 239, 0, 0, 0, 251, 95, 0, 176, 255, 4, 0, 0, 255, 15, 0, 96, 255, 9, 0, 80, 255, 10, 0, 16, 255, 14, 0, 160, 255, 5, 0, 0, 251, 79, 0, 240, 255, 0, 0, 0, 246, 159, 0, 245, 175, 0, 0, 0, 241, 239, 0, 250, 79, 0, 0, 0, 176, 255, 3, 255, 15, 0, 0, 0, 80, 255, 73, 255, 10, 0, 0, 0, 16, 255, 190, 255, 4, 0, 0, 0, 0, 251, 255, 255, 0, 0, 0, 0, 0, 245, 255, 175, 0, 0, 0, 0, 0, 240, 255, 79, 0, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_TTHoves_DemiBold_21_glyph_87: [u8; 170] = [ 21, 15, 21, 0, 15, 252, 79, 0, 0, 246, 255, 0, 0, 176, 255, 5, 248, 127, 0, 0, 250, 255, 3, 0, 224, 255, 1, 244, 191, 0, 0, 254, 255, 7, 0, 242, 223, 0, 240, 255, 0, 32, 255, 255, 11, 0, 246, 159, 0, 192, 255, 3, 96, 255, 253, 15, 0, 250, 95, 0, 128, 255, 7, 160, 239, 245, 63, 0, 254, 31, 0, 80, 255, 11, 224, 175, 241, 127, 32, 255, 14, 0, 16, 255, 14, 242, 111, 208, 191, 80, 255, 10, 0, 0, 253, 47, 246, 47, 144, 255, 144, 255, 6, 0, 0, 249, 111, 250, 14, 80, 255, 211, 255, 2, 0, 0, 245, 207, 254, 10, 16, 255, 251, 239, 0, 0, 0, 241, 255, 255, 6, 0, 253, 255, 175, 0, 0, 0, 208, 255, 255, 2, 0, 249, 255, 111, 0, 0, 0, 144, 255, 239, 0, 0, 245, 255, 47, 0, 0, 0, 80, 255, 175, 0, 0, 241, 255, 14, 0, 0 ]; + +/// 'X' (ASCII 88) +const Font_TTHoves_DemiBold_21_glyph_88: [u8; 125] = [ 15, 15, 14, 0, 15, 144, 255, 10, 0, 0, 243, 239, 1, 0, 254, 79, 0, 0, 253, 95, 0, 0, 244, 239, 0, 128, 255, 11, 0, 0, 160, 255, 9, 242, 255, 1, 0, 0, 16, 254, 79, 252, 111, 0, 0, 0, 0, 245, 255, 255, 12, 0, 0, 0, 0, 176, 255, 255, 2, 0, 0, 0, 0, 80, 255, 207, 0, 0, 0, 0, 0, 225, 255, 255, 6, 0, 0, 0, 0, 249, 207, 255, 30, 0, 0, 0, 64, 255, 14, 248, 191, 0, 0, 0, 224, 255, 4, 208, 255, 5, 0, 0, 249, 175, 0, 48, 255, 30, 0, 48, 255, 30, 0, 0, 249, 175, 0, 208, 255, 5, 0, 0, 224, 255, 5 ]; + +/// 'Y' (ASCII 89) +const Font_TTHoves_DemiBold_21_glyph_89: [u8; 125] = [ 15, 15, 14, 0, 15, 224, 255, 1, 0, 0, 241, 239, 0, 96, 255, 10, 0, 0, 250, 111, 0, 0, 253, 47, 0, 32, 255, 13, 0, 0, 245, 191, 0, 176, 255, 5, 0, 0, 192, 255, 4, 243, 207, 0, 0, 0, 48, 255, 12, 252, 63, 0, 0, 0, 0, 250, 191, 255, 10, 0, 0, 0, 0, 242, 255, 255, 2, 0, 0, 0, 0, 144, 255, 159, 0, 0, 0, 0, 0, 16, 255, 31, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_TTHoves_DemiBold_21_glyph_90: [u8; 95] = [ 12, 15, 13, 0, 15, 242, 255, 255, 255, 255, 223, 242, 255, 255, 255, 255, 223, 145, 153, 153, 169, 255, 191, 0, 0, 0, 112, 255, 30, 0, 0, 0, 243, 255, 4, 0, 0, 16, 254, 143, 0, 0, 0, 176, 255, 12, 0, 0, 0, 247, 239, 2, 0, 0, 48, 255, 95, 0, 0, 0, 225, 255, 9, 0, 0, 0, 251, 207, 0, 0, 0, 112, 255, 47, 0, 0, 0, 242, 255, 157, 153, 153, 153, 244, 255, 255, 255, 255, 255, 244, 255, 255, 255, 255, 255 ]; + +/// '[' (ASCII 91) +const Font_TTHoves_DemiBold_21_glyph_91: [u8; 65] = [ 6, 20, 8, 1, 16, 98, 102, 86, 245, 255, 239, 245, 255, 239, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 159, 86, 245, 255, 239, 245, 255, 239 ]; + +/// '\' (ASCII 92) +const Font_TTHoves_DemiBold_21_glyph_92: [u8; 100] = [ 9, 19, 8, 0, 15, 253, 12, 0, 0, 0, 248, 31, 0, 0, 0, 243, 95, 0, 0, 0, 224, 175, 0, 0, 0, 160, 255, 0, 0, 0, 80, 255, 4, 0, 0, 0, 255, 9, 0, 0, 0, 251, 14, 0, 0, 0, 246, 63, 0, 0, 0, 241, 127, 0, 0, 0, 208, 207, 0, 0, 0, 128, 255, 1, 0, 0, 48, 255, 6, 0, 0, 0, 254, 11, 0, 0, 0, 249, 15, 0, 0, 0, 244, 95, 0, 0, 0, 240, 175, 0, 0, 0, 176, 239, 0, 0, 0, 96, 255, 3 ]; + +/// ']' (ASCII 93) +const Font_TTHoves_DemiBold_21_glyph_93: [u8; 65] = [ 6, 20, 8, 0, 16, 97, 102, 102, 244, 255, 255, 244, 255, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 97, 198, 255, 244, 255, 255, 244, 255, 255 ]; + +/// '^' (ASCII 94) +const Font_TTHoves_DemiBold_21_glyph_94: [u8; 35] = [ 9, 6, 9, 0, 15, 0, 241, 255, 5, 0, 0, 246, 255, 11, 0, 0, 252, 252, 31, 0, 32, 255, 210, 127, 0, 128, 207, 112, 223, 0, 208, 111, 16, 255, 3 ]; + +/// '_' (ASCII 95) +const Font_TTHoves_DemiBold_21_glyph_95: [u8; 20] = [ 10, 3, 9, 0, 0, 246, 255, 255, 255, 159, 246, 255, 255, 255, 159, 98, 102, 102, 102, 70 ]; + +/// '`' (ASCII 96) +const Font_TTHoves_DemiBold_21_glyph_96: [u8; 17] = [ 6, 4, 6, 0, 16, 0, 0, 0, 209, 191, 0, 32, 255, 5, 0, 244, 30 ]; + +/// 'a' (ASCII 97) +const Font_TTHoves_DemiBold_21_glyph_97: [u8; 71] = [ 11, 11, 12, 0, 11, 0, 112, 252, 173, 2, 0, 0, 252, 255, 255, 79, 0, 112, 255, 57, 229, 239, 0, 80, 119, 0, 96, 255, 3, 0, 180, 254, 255, 255, 4, 96, 255, 255, 255, 255, 4, 240, 239, 2, 96, 255, 4, 241, 143, 0, 144, 255, 4, 240, 239, 36, 247, 255, 4, 128, 255, 255, 239, 255, 4, 0, 198, 239, 25, 255, 4 ]; + +/// 'b' (ASCII 98) +const Font_TTHoves_DemiBold_21_glyph_98: [u8; 95] = [ 12, 15, 13, 1, 15, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 47, 233, 190, 5, 0, 248, 239, 255, 255, 159, 0, 248, 255, 124, 232, 255, 5, 248, 191, 0, 32, 255, 12, 248, 79, 0, 0, 249, 15, 248, 47, 0, 0, 247, 47, 248, 63, 0, 0, 249, 15, 248, 191, 0, 16, 255, 12, 248, 255, 124, 232, 255, 5, 248, 255, 255, 255, 159, 0, 248, 61, 235, 190, 5, 0 ]; + +/// 'c' (ASCII 99) +const Font_TTHoves_DemiBold_21_glyph_99: [u8; 71] = [ 12, 11, 12, 0, 11, 0, 48, 218, 207, 7, 0, 0, 247, 255, 255, 223, 1, 48, 255, 159, 183, 255, 10, 192, 255, 3, 0, 251, 31, 240, 175, 0, 0, 16, 1, 242, 127, 0, 0, 0, 0, 240, 175, 0, 0, 33, 2, 192, 255, 2, 0, 251, 31, 64, 255, 159, 183, 255, 10, 0, 247, 255, 255, 223, 1, 0, 48, 218, 207, 7, 0 ]; + +/// 'd' (ASCII 100) +const Font_TTHoves_DemiBold_21_glyph_100: [u8; 95] = [ 12, 15, 13, 0, 15, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 80, 235, 158, 242, 143, 0, 249, 255, 255, 254, 143, 64, 255, 142, 199, 255, 143, 192, 255, 2, 0, 251, 143, 240, 159, 0, 0, 243, 143, 242, 127, 0, 0, 241, 143, 240, 159, 0, 0, 243, 143, 208, 255, 1, 0, 250, 143, 80, 255, 142, 199, 255, 143, 0, 250, 255, 255, 254, 143, 0, 80, 251, 174, 209, 143 ]; + +/// 'e' (ASCII 101) +const Font_TTHoves_DemiBold_21_glyph_101: [u8; 71] = [ 12, 11, 12, 0, 11, 0, 48, 218, 207, 7, 0, 0, 248, 255, 255, 223, 1, 64, 255, 92, 132, 255, 11, 208, 239, 0, 0, 248, 63, 240, 239, 204, 204, 253, 127, 241, 255, 255, 255, 255, 127, 240, 159, 0, 0, 0, 0, 176, 239, 1, 0, 83, 5, 48, 255, 93, 148, 255, 12, 0, 246, 255, 255, 223, 2, 0, 48, 218, 207, 8, 0 ]; + +/// 'f' (ASCII 102) +const Font_TTHoves_DemiBold_21_glyph_102: [u8; 65] = [ 8, 15, 8, 0, 15, 0, 144, 254, 63, 0, 247, 255, 63, 0, 250, 111, 20, 0, 251, 14, 0, 247, 255, 255, 63, 247, 255, 255, 63, 132, 253, 143, 24, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0 ]; + +/// 'g' (ASCII 103) +const Font_TTHoves_DemiBold_21_glyph_103: [u8; 95] = [ 12, 15, 13, 0, 11, 0, 112, 252, 190, 244, 95, 0, 251, 255, 255, 255, 95, 112, 255, 109, 198, 255, 95, 224, 239, 0, 0, 252, 95, 241, 143, 0, 0, 246, 95, 241, 143, 0, 0, 246, 95, 224, 223, 0, 0, 252, 95, 112, 255, 109, 182, 255, 95, 0, 252, 255, 255, 255, 95, 0, 112, 252, 158, 245, 95, 0, 0, 0, 0, 245, 79, 160, 221, 1, 0, 250, 31, 96, 255, 109, 165, 255, 12, 0, 250, 255, 255, 239, 2, 0, 96, 236, 207, 8, 0 ]; + +/// 'h' (ASCII 104) +const Font_TTHoves_DemiBold_21_glyph_104: [u8; 95] = [ 11, 15, 13, 1, 15, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 63, 234, 190, 3, 0, 248, 239, 255, 255, 79, 0, 248, 255, 122, 251, 223, 0, 248, 127, 0, 160, 255, 2, 248, 47, 0, 80, 255, 4, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5 ]; + +/// 'i' (ASCII 105) +const Font_TTHoves_DemiBold_21_glyph_105: [u8; 35] = [ 4, 15, 5, 1, 15, 251, 31, 251, 31, 134, 8, 0, 0, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15 ]; + +/// 'j' (ASCII 106) +const Font_TTHoves_DemiBold_21_glyph_106: [u8; 81] = [ 7, 19, 7, 0, 15, 0, 176, 255, 1, 0, 176, 255, 1, 0, 96, 136, 0, 0, 0, 0, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 96, 230, 255, 0, 240, 255, 191, 0, 240, 255, 43, 0 ]; + +/// 'k' (ASCII 107) +const Font_TTHoves_DemiBold_21_glyph_107: [u8; 95] = [ 11, 15, 11, 1, 15, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 245, 191, 0, 248, 31, 32, 255, 13, 0, 248, 31, 209, 239, 2, 0, 248, 31, 251, 79, 0, 0, 248, 175, 255, 7, 0, 0, 248, 255, 239, 0, 0, 0, 248, 127, 255, 10, 0, 0, 248, 31, 248, 127, 0, 0, 248, 31, 176, 255, 4, 0, 248, 31, 16, 253, 47, 0, 248, 31, 0, 242, 223, 1 ]; + +/// 'l' (ASCII 108) +const Font_TTHoves_DemiBold_21_glyph_108: [u8; 35] = [ 4, 15, 6, 1, 15, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31 ]; + +/// 'm' (ASCII 109) +const Font_TTHoves_DemiBold_21_glyph_109: [u8; 101] = [ 16, 12, 18, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0, 250, 93, 254, 125, 64, 252, 141, 0, 250, 255, 255, 255, 251, 255, 255, 11, 250, 255, 136, 255, 255, 123, 253, 95, 250, 79, 0, 249, 175, 0, 242, 175, 250, 15, 0, 244, 111, 0, 224, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207 ]; + +/// 'n' (ASCII 110) +const Font_TTHoves_DemiBold_21_glyph_110: [u8; 77] = [ 11, 12, 13, 1, 12, 0, 0, 0, 0, 0, 0, 250, 77, 253, 190, 2, 0, 250, 255, 255, 255, 63, 0, 250, 255, 121, 252, 207, 0, 250, 95, 0, 192, 255, 0, 250, 15, 0, 112, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3 ]; + +/// 'o' (ASCII 111) +const Font_TTHoves_DemiBold_21_glyph_111: [u8; 71] = [ 12, 11, 13, 0, 11, 0, 48, 218, 207, 8, 0, 0, 247, 255, 255, 223, 2, 48, 255, 159, 199, 255, 12, 192, 255, 3, 0, 249, 95, 240, 175, 0, 0, 241, 143, 242, 127, 0, 0, 224, 191, 240, 175, 0, 0, 241, 143, 192, 255, 2, 0, 249, 95, 64, 255, 159, 183, 255, 12, 0, 247, 255, 255, 223, 2, 0, 48, 218, 207, 8, 0 ]; + +/// 'p' (ASCII 112) +const Font_TTHoves_DemiBold_21_glyph_112: [u8; 95] = [ 12, 15, 13, 1, 11, 250, 29, 234, 190, 4, 0, 250, 239, 255, 255, 127, 0, 250, 255, 123, 249, 255, 3, 250, 159, 0, 48, 255, 11, 250, 47, 0, 0, 251, 14, 250, 15, 0, 0, 249, 15, 250, 47, 0, 0, 251, 14, 250, 159, 0, 48, 255, 11, 250, 255, 123, 248, 255, 3, 250, 255, 255, 255, 143, 0, 250, 47, 235, 190, 4, 0, 250, 15, 0, 0, 0, 0, 250, 15, 0, 0, 0, 0, 250, 15, 0, 0, 0, 0, 250, 15, 0, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_TTHoves_DemiBold_21_glyph_113: [u8; 95] = [ 12, 15, 13, 0, 11, 0, 80, 235, 174, 242, 143, 0, 249, 255, 255, 255, 143, 80, 255, 142, 199, 255, 143, 192, 255, 2, 0, 251, 143, 240, 159, 0, 0, 243, 143, 242, 127, 0, 0, 241, 143, 240, 159, 0, 0, 243, 143, 208, 255, 1, 0, 250, 143, 80, 255, 142, 199, 255, 143, 0, 249, 255, 255, 255, 143, 0, 80, 235, 174, 243, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143 ]; + +/// 'r' (ASCII 114) +const Font_TTHoves_DemiBold_21_glyph_114: [u8; 49] = [ 7, 11, 8, 1, 11, 250, 154, 255, 13, 250, 255, 255, 13, 250, 255, 137, 7, 250, 63, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_TTHoves_DemiBold_21_glyph_115: [u8; 60] = [ 10, 11, 11, 0, 11, 0, 197, 238, 108, 0, 144, 255, 255, 255, 11, 242, 207, 52, 249, 95, 245, 111, 0, 112, 71, 241, 255, 156, 38, 0, 64, 254, 255, 255, 11, 0, 48, 150, 253, 143, 114, 23, 0, 224, 207, 242, 191, 19, 245, 191, 128, 255, 255, 255, 63, 0, 197, 254, 157, 2 ]; + +/// 't' (ASCII 116) +const Font_TTHoves_DemiBold_21_glyph_116: [u8; 61] = [ 8, 14, 8, 0, 14, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 247, 255, 255, 63, 247, 255, 255, 63, 132, 254, 142, 24, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 95, 20, 0, 249, 255, 63, 0, 161, 255, 63 ]; + +/// 'u' (ASCII 117) +const Font_TTHoves_DemiBold_21_glyph_117: [u8; 71] = [ 11, 11, 13, 1, 11, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 249, 15, 0, 112, 255, 3, 247, 95, 0, 176, 255, 3, 243, 255, 121, 252, 255, 3, 144, 255, 255, 239, 255, 3, 0, 198, 223, 71, 255, 3 ]; + +/// 'v' (ASCII 118) +const Font_TTHoves_DemiBold_21_glyph_118: [u8; 71] = [ 11, 11, 11, 0, 11, 253, 14, 0, 0, 255, 11, 248, 63, 0, 64, 255, 6, 242, 143, 0, 160, 255, 1, 208, 223, 0, 240, 191, 0, 112, 255, 3, 244, 111, 0, 32, 255, 8, 250, 31, 0, 0, 253, 13, 254, 11, 0, 0, 247, 159, 255, 6, 0, 0, 242, 255, 255, 1, 0, 0, 208, 255, 191, 0, 0, 0, 112, 255, 111, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_TTHoves_DemiBold_21_glyph_119: [u8; 104] = [ 17, 11, 17, 0, 11, 252, 15, 0, 245, 223, 0, 96, 255, 5, 248, 63, 0, 248, 255, 1, 144, 255, 1, 244, 127, 0, 252, 255, 5, 208, 223, 0, 240, 191, 0, 255, 255, 9, 241, 159, 0, 192, 239, 64, 239, 245, 13, 245, 95, 0, 128, 255, 130, 175, 241, 31, 249, 31, 0, 64, 255, 198, 111, 208, 95, 253, 13, 0, 0, 255, 254, 47, 144, 239, 255, 9, 0, 0, 252, 255, 14, 80, 255, 255, 5, 0, 0, 248, 255, 10, 16, 255, 255, 1, 0, 0, 244, 255, 6, 0, 253, 223, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_TTHoves_DemiBold_21_glyph_120: [u8; 71] = [ 12, 11, 12, 0, 11, 160, 255, 4, 0, 248, 111, 16, 255, 13, 48, 255, 11, 0, 246, 143, 192, 255, 2, 0, 192, 255, 251, 127, 0, 0, 32, 255, 255, 12, 0, 0, 0, 251, 255, 6, 0, 0, 64, 255, 255, 14, 0, 0, 208, 255, 248, 159, 0, 0, 248, 111, 176, 255, 3, 32, 255, 12, 32, 255, 13, 192, 255, 2, 0, 247, 127 ]; + +/// 'y' (ASCII 121) +const Font_TTHoves_DemiBold_21_glyph_121: [u8; 95] = [ 12, 15, 11, 0, 11, 252, 14, 0, 0, 252, 14, 246, 79, 0, 32, 255, 9, 241, 175, 0, 112, 255, 3, 160, 255, 0, 208, 239, 0, 64, 255, 6, 242, 143, 0, 0, 254, 12, 248, 63, 0, 0, 248, 47, 253, 13, 0, 0, 242, 223, 255, 7, 0, 0, 192, 255, 255, 2, 0, 0, 96, 255, 207, 0, 0, 0, 16, 255, 127, 0, 0, 0, 0, 251, 31, 0, 0, 64, 118, 255, 12, 0, 0, 176, 255, 255, 5, 0, 0, 176, 255, 126, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_TTHoves_DemiBold_21_glyph_122: [u8; 60] = [ 10, 11, 10, 0, 11, 244, 255, 255, 255, 63, 244, 255, 255, 255, 63, 97, 102, 166, 255, 30, 0, 0, 225, 255, 4, 0, 0, 253, 111, 0, 0, 176, 255, 9, 0, 0, 248, 191, 0, 0, 80, 255, 13, 0, 0, 243, 255, 104, 102, 38, 245, 255, 255, 255, 95, 245, 255, 255, 255, 95 ]; + +/// '{' (ASCII 123) +const Font_TTHoves_DemiBold_21_glyph_123: [u8; 85] = [ 7, 20, 8, 1, 16, 0, 48, 101, 0, 0, 250, 255, 1, 64, 255, 255, 1, 112, 255, 6, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 193, 255, 0, 0, 255, 143, 0, 0, 255, 7, 0, 0, 253, 191, 0, 0, 160, 255, 1, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 96, 255, 107, 0, 32, 255, 255, 1, 0, 196, 255, 1 ]; + +/// '|' (ASCII 124) +const Font_TTHoves_DemiBold_21_glyph_124: [u8; 43] = [ 4, 19, 8, 2, 15, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47 ]; + +/// '}' (ASCII 125) +const Font_TTHoves_DemiBold_21_glyph_125: [u8; 85] = [ 7, 20, 8, 0, 16, 97, 37, 0, 0, 244, 255, 8, 0, 244, 255, 47, 0, 0, 248, 79, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 242, 175, 1, 0, 160, 255, 12, 0, 0, 249, 12, 0, 208, 255, 10, 0, 243, 143, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 245, 95, 0, 97, 252, 79, 0, 244, 255, 14, 0, 244, 207, 3, 0 ]; + +/// '~' (ASCII 126) +const Font_TTHoves_DemiBold_21_glyph_126: [u8; 35] = [ 12, 5, 12, 0, 8, 0, 215, 158, 1, 144, 73, 112, 255, 255, 61, 245, 111, 224, 255, 254, 255, 255, 47, 241, 143, 64, 254, 255, 9, 64, 37, 0, 113, 72, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_TTHoves_DemiBold_21_glyph_nonprintable: [u8; 95] = [ 11, 15, 11, 0, 15, 255, 93, 2, 98, 254, 255, 175, 0, 0, 0, 192, 255, 30, 0, 100, 2, 16, 255, 11, 80, 255, 63, 0, 252, 157, 217, 255, 127, 0, 250, 255, 255, 255, 30, 0, 253, 255, 255, 159, 0, 80, 255, 255, 255, 9, 0, 248, 255, 255, 255, 2, 176, 255, 255, 255, 255, 0, 244, 255, 255, 255, 255, 85, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 17, 245, 255, 255, 255, 239, 0, 244, 255, 255, 255, 239, 0, 244, 255, 255 ]; + +/// Array of references for 'TTHoves_DemiBold_21' normal ASCII glyphs +const Font_TTHoves_DemiBold_21: [&[u8]; 95] = [ + &Font_TTHoves_DemiBold_21_glyph_32, + &Font_TTHoves_DemiBold_21_glyph_33, + &Font_TTHoves_DemiBold_21_glyph_34, + &Font_TTHoves_DemiBold_21_glyph_35, + &Font_TTHoves_DemiBold_21_glyph_36, + &Font_TTHoves_DemiBold_21_glyph_37, + &Font_TTHoves_DemiBold_21_glyph_38, + &Font_TTHoves_DemiBold_21_glyph_39, + &Font_TTHoves_DemiBold_21_glyph_40, + &Font_TTHoves_DemiBold_21_glyph_41, + &Font_TTHoves_DemiBold_21_glyph_42, + &Font_TTHoves_DemiBold_21_glyph_43, + &Font_TTHoves_DemiBold_21_glyph_44, + &Font_TTHoves_DemiBold_21_glyph_45, + &Font_TTHoves_DemiBold_21_glyph_46, + &Font_TTHoves_DemiBold_21_glyph_47, + &Font_TTHoves_DemiBold_21_glyph_48, + &Font_TTHoves_DemiBold_21_glyph_49, + &Font_TTHoves_DemiBold_21_glyph_50, + &Font_TTHoves_DemiBold_21_glyph_51, + &Font_TTHoves_DemiBold_21_glyph_52, + &Font_TTHoves_DemiBold_21_glyph_53, + &Font_TTHoves_DemiBold_21_glyph_54, + &Font_TTHoves_DemiBold_21_glyph_55, + &Font_TTHoves_DemiBold_21_glyph_56, + &Font_TTHoves_DemiBold_21_glyph_57, + &Font_TTHoves_DemiBold_21_glyph_58, + &Font_TTHoves_DemiBold_21_glyph_59, + &Font_TTHoves_DemiBold_21_glyph_60, + &Font_TTHoves_DemiBold_21_glyph_61, + &Font_TTHoves_DemiBold_21_glyph_62, + &Font_TTHoves_DemiBold_21_glyph_63, + &Font_TTHoves_DemiBold_21_glyph_64, + &Font_TTHoves_DemiBold_21_glyph_65, + &Font_TTHoves_DemiBold_21_glyph_66, + &Font_TTHoves_DemiBold_21_glyph_67, + &Font_TTHoves_DemiBold_21_glyph_68, + &Font_TTHoves_DemiBold_21_glyph_69, + &Font_TTHoves_DemiBold_21_glyph_70, + &Font_TTHoves_DemiBold_21_glyph_71, + &Font_TTHoves_DemiBold_21_glyph_72, + &Font_TTHoves_DemiBold_21_glyph_73, + &Font_TTHoves_DemiBold_21_glyph_74, + &Font_TTHoves_DemiBold_21_glyph_75, + &Font_TTHoves_DemiBold_21_glyph_76, + &Font_TTHoves_DemiBold_21_glyph_77, + &Font_TTHoves_DemiBold_21_glyph_78, + &Font_TTHoves_DemiBold_21_glyph_79, + &Font_TTHoves_DemiBold_21_glyph_80, + &Font_TTHoves_DemiBold_21_glyph_81, + &Font_TTHoves_DemiBold_21_glyph_82, + &Font_TTHoves_DemiBold_21_glyph_83, + &Font_TTHoves_DemiBold_21_glyph_84, + &Font_TTHoves_DemiBold_21_glyph_85, + &Font_TTHoves_DemiBold_21_glyph_86, + &Font_TTHoves_DemiBold_21_glyph_87, + &Font_TTHoves_DemiBold_21_glyph_88, + &Font_TTHoves_DemiBold_21_glyph_89, + &Font_TTHoves_DemiBold_21_glyph_90, + &Font_TTHoves_DemiBold_21_glyph_91, + &Font_TTHoves_DemiBold_21_glyph_92, + &Font_TTHoves_DemiBold_21_glyph_93, + &Font_TTHoves_DemiBold_21_glyph_94, + &Font_TTHoves_DemiBold_21_glyph_95, + &Font_TTHoves_DemiBold_21_glyph_96, + &Font_TTHoves_DemiBold_21_glyph_97, + &Font_TTHoves_DemiBold_21_glyph_98, + &Font_TTHoves_DemiBold_21_glyph_99, + &Font_TTHoves_DemiBold_21_glyph_100, + &Font_TTHoves_DemiBold_21_glyph_101, + &Font_TTHoves_DemiBold_21_glyph_102, + &Font_TTHoves_DemiBold_21_glyph_103, + &Font_TTHoves_DemiBold_21_glyph_104, + &Font_TTHoves_DemiBold_21_glyph_105, + &Font_TTHoves_DemiBold_21_glyph_106, + &Font_TTHoves_DemiBold_21_glyph_107, + &Font_TTHoves_DemiBold_21_glyph_108, + &Font_TTHoves_DemiBold_21_glyph_109, + &Font_TTHoves_DemiBold_21_glyph_110, + &Font_TTHoves_DemiBold_21_glyph_111, + &Font_TTHoves_DemiBold_21_glyph_112, + &Font_TTHoves_DemiBold_21_glyph_113, + &Font_TTHoves_DemiBold_21_glyph_114, + &Font_TTHoves_DemiBold_21_glyph_115, + &Font_TTHoves_DemiBold_21_glyph_116, + &Font_TTHoves_DemiBold_21_glyph_117, + &Font_TTHoves_DemiBold_21_glyph_118, + &Font_TTHoves_DemiBold_21_glyph_119, + &Font_TTHoves_DemiBold_21_glyph_120, + &Font_TTHoves_DemiBold_21_glyph_121, + &Font_TTHoves_DemiBold_21_glyph_122, + &Font_TTHoves_DemiBold_21_glyph_123, + &Font_TTHoves_DemiBold_21_glyph_124, + &Font_TTHoves_DemiBold_21_glyph_125, + &Font_TTHoves_DemiBold_21_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_TTHoves_DemiBold_21_info: FontInfo = FontInfo { + height: 21, + max_height: 21, + baseline: 4, + glyph_data: &Font_TTHoves_DemiBold_21, + glyph_nonprintable: &Font_TTHoves_DemiBold_21_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs new file mode 100644 index 00000000000..8ef5a8617e5 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/font_tthoves_regular_21.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_TTHoves_Regular_21_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_TTHoves_Regular_21_glyph_33: [u8; 35] = [ 3, 15, 5, 1, 15, 243, 7, 243, 7, 243, 7, 243, 7, 243, 7, 243, 7, 243, 7, 242, 6, 242, 5, 241, 5, 240, 4, 144, 2, 0, 0, 212, 7, 245, 8 ]; + +/// '"' (ASCII 34) +const Font_TTHoves_Regular_21_glyph_34: [u8; 20] = [ 5, 5, 7, 1, 15, 189, 176, 13, 189, 176, 13, 189, 176, 13, 189, 176, 13, 189, 176, 13 ]; + +/// '#' (ASCII 35) +const Font_TTHoves_Regular_21_glyph_35: [u8; 125] = [ 15, 15, 14, 0, 15, 0, 0, 128, 15, 0, 219, 0, 0, 0, 0, 176, 13, 0, 174, 0, 0, 0, 0, 224, 10, 16, 127, 0, 0, 0, 0, 241, 7, 64, 79, 0, 0, 32, 119, 249, 122, 167, 143, 119, 0, 96, 255, 255, 255, 255, 255, 223, 0, 0, 0, 219, 0, 208, 11, 0, 0, 0, 0, 174, 0, 241, 7, 0, 0, 0, 16, 127, 0, 244, 4, 0, 0, 0, 80, 63, 0, 248, 0, 0, 0, 247, 255, 255, 255, 255, 255, 12, 0, 116, 231, 126, 119, 207, 119, 4, 0, 0, 240, 9, 32, 111, 0, 0, 0, 0, 243, 5, 96, 47, 0, 0, 0, 0, 247, 1, 160, 14, 0, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_TTHoves_Regular_21_glyph_36: [u8; 119] = [ 12, 19, 13, 0, 17, 0, 0, 96, 31, 0, 0, 0, 0, 96, 31, 0, 0, 0, 96, 251, 239, 58, 0, 0, 250, 157, 168, 255, 7, 80, 159, 0, 0, 193, 63, 160, 31, 0, 0, 32, 143, 176, 15, 0, 0, 0, 70, 112, 143, 0, 0, 0, 0, 0, 253, 140, 37, 0, 0, 0, 112, 253, 255, 142, 1, 0, 0, 0, 99, 251, 30, 0, 0, 0, 0, 96, 159, 96, 4, 0, 0, 0, 206, 224, 13, 0, 0, 0, 191, 128, 143, 0, 0, 128, 127, 0, 251, 157, 152, 253, 12, 0, 80, 251, 239, 108, 0, 0, 0, 96, 31, 0, 0, 0, 0, 96, 31, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_TTHoves_Regular_21_glyph_37: [u8; 125] = [ 16, 15, 16, 0, 15, 0, 232, 174, 1, 0, 128, 47, 0, 144, 159, 232, 12, 0, 242, 8, 0, 240, 7, 64, 63, 0, 220, 0, 0, 241, 5, 48, 79, 96, 79, 0, 0, 208, 61, 178, 30, 225, 11, 0, 0, 48, 254, 239, 4, 249, 1, 0, 0, 0, 64, 20, 48, 127, 0, 0, 0, 0, 0, 0, 192, 13, 0, 0, 0, 0, 0, 0, 246, 4, 64, 4, 0, 0, 0, 16, 175, 64, 254, 239, 3, 0, 0, 160, 31, 224, 44, 195, 13, 0, 0, 244, 6, 243, 3, 80, 47, 0, 0, 205, 0, 242, 5, 96, 31, 0, 112, 63, 0, 176, 142, 249, 10, 0, 242, 9, 0, 16, 233, 158, 0 ]; + +/// '&' (ASCII 38) +const Font_TTHoves_Regular_21_glyph_38: [u8; 110] = [ 14, 15, 13, 0, 15, 0, 112, 253, 108, 0, 0, 0, 0, 250, 156, 253, 7, 0, 0, 32, 175, 0, 192, 15, 0, 0, 64, 111, 0, 128, 47, 0, 0, 16, 191, 0, 208, 15, 0, 0, 0, 248, 23, 251, 6, 0, 0, 0, 176, 239, 111, 0, 0, 0, 0, 144, 255, 5, 0, 0, 0, 0, 251, 200, 30, 0, 218, 0, 144, 111, 16, 221, 1, 205, 0, 240, 12, 0, 209, 77, 127, 0, 240, 11, 0, 32, 254, 31, 0, 192, 63, 0, 48, 253, 13, 0, 48, 255, 155, 252, 127, 191, 0, 0, 162, 253, 157, 1, 244, 11 ]; + +/// ''' (ASCII 39) +const Font_TTHoves_Regular_21_glyph_39: [u8; 10] = [ 2, 5, 4, 1, 15, 189, 189, 189, 189, 189 ]; + +/// '(' (ASCII 40) +const Font_TTHoves_Regular_21_glyph_40: [u8; 62] = [ 6, 19, 7, 1, 15, 0, 208, 12, 0, 247, 2, 0, 159, 0, 96, 63, 0, 192, 12, 0, 240, 8, 0, 243, 5, 0, 246, 2, 0, 247, 1, 0, 248, 0, 0, 247, 1, 0, 246, 2, 0, 243, 5, 0, 240, 8, 0, 192, 12, 0, 96, 63, 0, 0, 159, 0, 0, 247, 2, 0, 208, 12 ]; + +/// ')' (ASCII 41) +const Font_TTHoves_Regular_21_glyph_41: [u8; 62] = [ 6, 19, 7, 0, 15, 243, 7, 0, 144, 31, 0, 0, 159, 0, 0, 249, 0, 0, 243, 5, 0, 240, 9, 0, 176, 13, 0, 144, 15, 0, 128, 31, 0, 112, 31, 0, 128, 31, 0, 144, 15, 0, 176, 13, 0, 240, 9, 0, 243, 6, 0, 249, 0, 0, 159, 0, 144, 31, 0, 243, 7, 0 ]; + +/// '*' (ASCII 42) +const Font_TTHoves_Regular_21_glyph_42: [u8; 45] = [ 9, 8, 10, 0, 15, 0, 0, 142, 0, 0, 0, 0, 141, 0, 0, 144, 5, 125, 113, 6, 208, 239, 239, 255, 8, 0, 161, 255, 5, 0, 0, 225, 235, 9, 0, 0, 235, 81, 95, 0, 0, 88, 0, 74, 0 ]; + +/// '+' (ASCII 43) +const Font_TTHoves_Regular_21_glyph_43: [u8; 55] = [ 10, 10, 11, 1, 11, 0, 32, 111, 0, 0, 0, 32, 111, 0, 0, 0, 32, 111, 0, 0, 0, 32, 111, 0, 0, 255, 255, 255, 255, 47, 119, 151, 175, 119, 23, 0, 32, 111, 0, 0, 0, 32, 111, 0, 0, 0, 32, 111, 0, 0, 0, 32, 111, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_TTHoves_Regular_21_glyph_44: [u8; 13] = [ 4, 4, 4, 0, 2, 176, 47, 192, 14, 224, 10, 240, 6 ]; + +/// '-' (ASCII 45) +const Font_TTHoves_Regular_21_glyph_45: [u8; 13] = [ 8, 2, 9, 0, 7, 112, 119, 119, 71, 240, 255, 255, 175 ]; + +/// '.' (ASCII 46) +const Font_TTHoves_Regular_21_glyph_46: [u8; 9] = [ 3, 2, 4, 1, 2, 218, 1, 251, 2 ]; + +/// '/' (ASCII 47) +const Font_TTHoves_Regular_21_glyph_47: [u8; 81] = [ 8, 19, 7, 0, 15, 0, 0, 96, 63, 0, 0, 176, 14, 0, 0, 240, 9, 0, 0, 244, 4, 0, 0, 249, 0, 0, 0, 174, 0, 0, 48, 95, 0, 0, 128, 31, 0, 0, 208, 12, 0, 0, 241, 7, 0, 0, 246, 2, 0, 0, 219, 0, 0, 0, 143, 0, 0, 80, 63, 0, 0, 160, 14, 0, 0, 224, 9, 0, 0, 243, 5, 0, 0, 248, 0, 0, 0, 189, 0, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_TTHoves_Regular_21_glyph_48: [u8; 95] = [ 12, 15, 14, 1, 15, 0, 80, 235, 157, 2, 0, 0, 249, 174, 251, 79, 0, 112, 175, 0, 32, 254, 1, 225, 13, 0, 0, 243, 9, 246, 5, 0, 0, 176, 15, 249, 1, 0, 0, 112, 63, 251, 0, 0, 0, 80, 95, 221, 0, 0, 0, 48, 127, 251, 0, 0, 0, 80, 95, 249, 1, 0, 0, 112, 63, 246, 5, 0, 0, 176, 15, 225, 13, 0, 0, 242, 9, 112, 175, 0, 32, 253, 1, 0, 249, 174, 251, 95, 0, 0, 80, 235, 173, 2, 0 ]; + +/// '1' (ASCII 49) +const Font_TTHoves_Regular_21_glyph_49: [u8; 50] = [ 6, 15, 7, 0, 15, 0, 80, 95, 115, 183, 95, 247, 255, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95, 0, 80, 95 ]; + +/// '2' (ASCII 50) +const Font_TTHoves_Regular_21_glyph_50: [u8; 80] = [ 10, 15, 11, 1, 15, 0, 199, 223, 9, 0, 176, 223, 202, 239, 1, 246, 9, 0, 246, 9, 235, 0, 0, 192, 14, 154, 0, 0, 160, 15, 0, 0, 0, 208, 15, 0, 0, 0, 245, 9, 0, 0, 48, 223, 1, 0, 0, 226, 63, 0, 0, 32, 254, 3, 0, 0, 209, 79, 0, 0, 0, 253, 5, 0, 0, 192, 95, 0, 0, 0, 250, 141, 136, 136, 56, 253, 255, 255, 255, 111 ]; + +/// '3' (ASCII 51) +const Font_TTHoves_Regular_21_glyph_51: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 128, 252, 157, 1, 0, 16, 254, 156, 251, 47, 0, 160, 95, 0, 48, 207, 0, 208, 10, 0, 0, 249, 1, 0, 0, 0, 0, 249, 0, 0, 0, 0, 48, 191, 0, 0, 0, 147, 251, 28, 0, 0, 0, 246, 255, 6, 0, 0, 0, 0, 146, 143, 0, 0, 0, 0, 0, 250, 1, 16, 0, 0, 0, 245, 4, 242, 8, 0, 0, 247, 3, 208, 63, 0, 32, 238, 0, 48, 255, 155, 251, 63, 0, 0, 145, 253, 157, 1, 0 ]; + +/// '4' (ASCII 52) +const Font_TTHoves_Regular_21_glyph_52: [u8; 95] = [ 11, 15, 11, 0, 15, 0, 0, 32, 255, 14, 0, 0, 0, 160, 255, 14, 0, 0, 0, 243, 219, 14, 0, 0, 0, 252, 194, 14, 0, 0, 80, 143, 192, 14, 0, 0, 224, 30, 192, 14, 0, 0, 247, 6, 192, 14, 0, 16, 223, 0, 192, 14, 0, 144, 79, 0, 192, 14, 0, 243, 11, 0, 192, 14, 0, 249, 255, 255, 255, 255, 12, 116, 119, 119, 231, 127, 6, 0, 0, 0, 192, 14, 0, 0, 0, 0, 192, 14, 0, 0, 0, 0, 192, 14, 0 ]; + +/// '5' (ASCII 53) +const Font_TTHoves_Regular_21_glyph_53: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 255, 255, 255, 255, 0, 16, 207, 153, 153, 137, 0, 32, 111, 0, 0, 0, 0, 64, 79, 0, 0, 0, 0, 96, 63, 0, 0, 0, 0, 112, 79, 235, 190, 3, 0, 144, 255, 173, 251, 111, 0, 160, 142, 0, 16, 253, 2, 0, 0, 0, 0, 243, 8, 0, 0, 0, 0, 240, 11, 16, 0, 0, 0, 240, 11, 224, 13, 0, 0, 244, 8, 128, 143, 0, 32, 253, 2, 0, 252, 157, 251, 111, 0, 0, 112, 252, 173, 3, 0 ]; + +/// '6' (ASCII 54) +const Font_TTHoves_Regular_21_glyph_54: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 0, 16, 222, 0, 0, 0, 0, 176, 63, 0, 0, 0, 0, 246, 8, 0, 0, 0, 16, 222, 0, 0, 0, 0, 176, 63, 0, 0, 0, 0, 246, 239, 190, 5, 0, 16, 255, 123, 216, 143, 0, 144, 127, 0, 0, 251, 4, 240, 13, 0, 0, 241, 10, 241, 9, 0, 0, 208, 13, 241, 9, 0, 0, 224, 12, 208, 14, 0, 0, 242, 9, 96, 175, 0, 16, 252, 2, 0, 250, 174, 250, 111, 0, 0, 80, 235, 174, 3, 0 ]; + +/// '7' (ASCII 55) +const Font_TTHoves_Regular_21_glyph_55: [u8; 80] = [ 10, 15, 10, 0, 15, 247, 255, 255, 255, 191, 148, 153, 153, 169, 175, 0, 0, 0, 112, 95, 0, 0, 0, 208, 14, 0, 0, 0, 243, 8, 0, 0, 0, 249, 2, 0, 0, 0, 207, 0, 0, 0, 96, 111, 0, 0, 0, 192, 15, 0, 0, 0, 242, 9, 0, 0, 0, 248, 3, 0, 0, 0, 222, 0, 0, 0, 80, 127, 0, 0, 0, 176, 31, 0, 0, 0, 241, 11, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_TTHoves_Regular_21_glyph_56: [u8; 80] = [ 10, 15, 12, 1, 15, 0, 197, 238, 59, 0, 144, 239, 170, 255, 5, 244, 10, 0, 209, 15, 248, 2, 0, 96, 79, 248, 1, 0, 96, 79, 244, 9, 0, 192, 30, 128, 207, 152, 254, 4, 48, 254, 255, 207, 1, 242, 77, 17, 246, 13, 250, 2, 0, 80, 111, 206, 0, 0, 0, 159, 236, 0, 0, 32, 143, 248, 8, 0, 193, 63, 192, 223, 170, 254, 8, 0, 198, 238, 75, 0 ]; + +/// '9' (ASCII 57) +const Font_TTHoves_Regular_21_glyph_57: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 80, 235, 173, 2, 0, 0, 250, 174, 251, 111, 0, 96, 175, 0, 16, 253, 2, 208, 14, 0, 0, 243, 9, 240, 10, 0, 0, 224, 12, 241, 9, 0, 0, 208, 13, 224, 13, 0, 0, 241, 10, 128, 127, 0, 0, 251, 5, 0, 252, 123, 215, 207, 0, 0, 112, 252, 254, 47, 0, 0, 0, 0, 247, 7, 0, 0, 0, 32, 207, 0, 0, 0, 0, 192, 47, 0, 0, 0, 0, 247, 7, 0, 0, 0, 32, 207, 0, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_TTHoves_Regular_21_glyph_58: [u8; 27] = [ 3, 11, 4, 1, 11, 251, 2, 234, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 1, 251, 2 ]; + +/// ';' (ASCII 59) +const Font_TTHoves_Regular_21_glyph_59: [u8; 31] = [ 4, 13, 4, 0, 11, 160, 63, 144, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 29, 192, 14, 224, 10, 240, 6 ]; + +/// '<' (ASCII 60) +const Font_TTHoves_Regular_21_glyph_60: [u8; 50] = [ 10, 9, 11, 1, 11, 0, 0, 0, 80, 28, 0, 0, 113, 254, 12, 0, 163, 255, 57, 0, 197, 223, 6, 0, 0, 253, 7, 0, 0, 0, 197, 223, 6, 0, 0, 0, 163, 255, 41, 0, 0, 0, 113, 254, 12, 0, 0, 0, 80, 28 ]; + +/// '=' (ASCII 61) +const Font_TTHoves_Regular_21_glyph_61: [u8; 35] = [ 9, 6, 11, 1, 9, 115, 119, 119, 119, 4, 248, 255, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 8, 116, 119, 119, 119, 4 ]; + +/// '>' (ASCII 62) +const Font_TTHoves_Regular_21_glyph_62: [u8; 50] = [ 10, 9, 11, 1, 11, 107, 0, 0, 0, 0, 249, 159, 2, 0, 0, 16, 232, 191, 4, 0, 0, 0, 181, 223, 7, 0, 0, 0, 244, 31, 0, 0, 181, 239, 7, 16, 231, 191, 4, 0, 249, 159, 2, 0, 0, 107, 0, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_TTHoves_Regular_21_glyph_63: [u8; 80] = [ 10, 15, 11, 0, 15, 0, 179, 238, 92, 0, 96, 255, 171, 254, 9, 241, 29, 0, 176, 79, 245, 5, 0, 16, 159, 16, 0, 0, 0, 191, 0, 0, 0, 48, 159, 0, 0, 0, 209, 63, 0, 0, 80, 254, 4, 0, 0, 245, 44, 0, 0, 0, 251, 1, 0, 0, 0, 236, 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 254, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_TTHoves_Regular_21_glyph_64: [u8; 158] = [ 18, 17, 19, 1, 15, 0, 0, 96, 235, 239, 157, 3, 0, 0, 0, 80, 254, 157, 136, 251, 191, 1, 0, 0, 247, 77, 0, 0, 0, 249, 46, 0, 64, 191, 0, 0, 0, 0, 48, 223, 0, 208, 31, 0, 216, 207, 132, 9, 246, 7, 244, 6, 192, 191, 200, 255, 11, 192, 14, 248, 1, 246, 6, 0, 248, 11, 96, 47, 234, 0, 235, 0, 0, 240, 11, 64, 79, 219, 0, 205, 0, 0, 208, 11, 48, 95, 250, 0, 235, 0, 0, 240, 11, 80, 63, 247, 3, 246, 6, 0, 248, 13, 160, 15, 243, 8, 192, 175, 184, 223, 159, 250, 7, 192, 47, 0, 216, 207, 5, 234, 125, 0, 48, 207, 1, 0, 0, 0, 0, 0, 0, 0, 246, 78, 0, 0, 0, 0, 0, 0, 0, 64, 254, 157, 119, 119, 7, 0, 0, 0, 0, 96, 235, 255, 255, 15, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_TTHoves_Regular_21_glyph_65: [u8; 110] = [ 14, 15, 14, 0, 15, 0, 0, 144, 255, 4, 0, 0, 0, 0, 240, 254, 10, 0, 0, 0, 0, 245, 181, 15, 0, 0, 0, 0, 251, 80, 95, 0, 0, 0, 16, 159, 0, 191, 0, 0, 0, 112, 63, 0, 249, 1, 0, 0, 208, 13, 0, 243, 7, 0, 0, 243, 7, 0, 208, 13, 0, 0, 249, 1, 0, 112, 63, 0, 0, 238, 136, 136, 168, 159, 0, 80, 255, 255, 255, 255, 255, 0, 176, 15, 0, 0, 0, 245, 5, 241, 10, 0, 0, 0, 240, 11, 247, 4, 0, 0, 0, 160, 31, 237, 0, 0, 0, 0, 80, 127 ]; + +/// 'B' (ASCII 66) +const Font_TTHoves_Regular_21_glyph_66: [u8; 95] = [ 12, 15, 13, 1, 15, 245, 255, 255, 239, 25, 0, 245, 155, 153, 185, 239, 0, 245, 5, 0, 0, 245, 8, 245, 5, 0, 0, 208, 12, 245, 5, 0, 0, 192, 14, 245, 5, 0, 0, 240, 12, 245, 5, 0, 16, 251, 5, 245, 255, 255, 255, 175, 0, 245, 122, 119, 135, 254, 4, 245, 5, 0, 0, 225, 13, 245, 5, 0, 0, 144, 31, 245, 5, 0, 0, 144, 31, 245, 5, 0, 0, 242, 13, 245, 139, 136, 168, 254, 3, 245, 255, 255, 239, 59, 0 ]; + +/// 'C' (ASCII 67) +const Font_TTHoves_Regular_21_glyph_67: [u8; 110] = [ 14, 15, 15, 1, 15, 0, 0, 199, 239, 140, 1, 0, 0, 211, 239, 171, 252, 95, 0, 32, 255, 5, 0, 48, 253, 5, 192, 47, 0, 0, 0, 225, 14, 246, 7, 0, 0, 0, 96, 94, 251, 1, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 0, 246, 7, 0, 0, 0, 112, 95, 192, 47, 0, 0, 0, 225, 14, 48, 239, 5, 0, 48, 253, 4, 0, 211, 239, 154, 252, 95, 0, 0, 0, 199, 239, 140, 1, 0 ]; + +/// 'D' (ASCII 68) +const Font_TTHoves_Regular_21_glyph_68: [u8; 110] = [ 13, 15, 15, 1, 15, 245, 255, 255, 190, 5, 0, 0, 245, 155, 153, 252, 191, 1, 0, 245, 5, 0, 0, 248, 13, 0, 245, 5, 0, 0, 96, 143, 0, 245, 5, 0, 0, 0, 252, 1, 245, 5, 0, 0, 0, 246, 6, 245, 5, 0, 0, 0, 243, 8, 245, 5, 0, 0, 0, 241, 9, 245, 5, 0, 0, 0, 243, 8, 245, 5, 0, 0, 0, 246, 6, 245, 5, 0, 0, 0, 252, 1, 245, 5, 0, 0, 96, 143, 0, 245, 5, 0, 0, 248, 13, 0, 245, 139, 152, 235, 191, 1, 0, 245, 255, 255, 190, 5, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_TTHoves_Regular_21_glyph_69: [u8; 95] = [ 11, 15, 12, 1, 15, 245, 255, 255, 255, 255, 1, 245, 155, 153, 153, 153, 1, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 139, 136, 136, 104, 0, 245, 255, 255, 255, 191, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 139, 136, 136, 136, 1, 245, 255, 255, 255, 255, 1 ]; + +/// 'F' (ASCII 70) +const Font_TTHoves_Regular_21_glyph_70: [u8; 80] = [ 10, 15, 12, 1, 15, 245, 255, 255, 255, 239, 245, 155, 153, 153, 137, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 139, 136, 136, 72, 245, 255, 255, 255, 127, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_TTHoves_Regular_21_glyph_71: [u8; 110] = [ 14, 15, 16, 1, 15, 0, 0, 199, 238, 140, 1, 0, 0, 210, 239, 171, 253, 95, 0, 32, 255, 6, 0, 64, 254, 5, 176, 63, 0, 0, 0, 225, 14, 245, 9, 0, 0, 0, 64, 75, 250, 1, 0, 0, 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, 206, 0, 0, 48, 119, 119, 87, 222, 0, 0, 96, 255, 255, 175, 251, 0, 0, 0, 0, 16, 175, 247, 6, 0, 0, 0, 80, 175, 208, 31, 0, 0, 0, 225, 175, 48, 239, 4, 0, 48, 253, 175, 0, 212, 223, 170, 253, 78, 173, 0, 0, 200, 239, 124, 0, 171 ]; + +/// 'H' (ASCII 72) +const Font_TTHoves_Regular_21_glyph_72: [u8; 110] = [ 13, 15, 15, 1, 15, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 139, 136, 136, 136, 252, 3, 245, 255, 255, 255, 255, 255, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3, 245, 5, 0, 0, 0, 247, 3 ]; + +/// 'I' (ASCII 73) +const Font_TTHoves_Regular_21_glyph_73: [u8; 35] = [ 3, 15, 5, 1, 15, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5, 245, 5 ]; + +/// 'J' (ASCII 74) +const Font_TTHoves_Regular_21_glyph_74: [u8; 65] = [ 7, 15, 8, 0, 15, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 242, 7, 0, 0, 243, 7, 135, 152, 253, 5, 252, 255, 158, 0 ]; + +/// 'K' (ASCII 75) +const Font_TTHoves_Regular_21_glyph_75: [u8; 95] = [ 12, 15, 12, 1, 15, 245, 5, 0, 0, 253, 3, 245, 5, 0, 176, 95, 0, 245, 5, 0, 250, 7, 0, 245, 5, 128, 159, 0, 0, 245, 5, 246, 10, 0, 0, 245, 69, 207, 0, 0, 0, 245, 248, 29, 0, 0, 0, 245, 255, 5, 0, 0, 0, 245, 215, 63, 0, 0, 0, 245, 37, 238, 2, 0, 0, 245, 5, 242, 29, 0, 0, 245, 5, 48, 207, 0, 0, 245, 5, 0, 245, 12, 0, 245, 5, 0, 96, 175, 0, 245, 5, 0, 0, 247, 9 ]; + +/// 'L' (ASCII 76) +const Font_TTHoves_Regular_21_glyph_76: [u8; 80] = [ 10, 15, 11, 1, 15, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 5, 0, 0, 0, 245, 139, 136, 136, 104, 245, 255, 255, 255, 191 ]; + +/// 'M' (ASCII 77) +const Font_TTHoves_Regular_21_glyph_77: [u8; 140] = [ 17, 15, 19, 1, 15, 245, 239, 0, 0, 0, 0, 240, 255, 3, 245, 255, 3, 0, 0, 0, 245, 255, 3, 245, 249, 9, 0, 0, 0, 251, 250, 3, 245, 197, 14, 0, 0, 16, 175, 247, 3, 245, 117, 79, 0, 0, 96, 95, 247, 3, 245, 21, 159, 0, 0, 176, 15, 247, 3, 245, 5, 236, 0, 0, 241, 10, 247, 3, 245, 5, 246, 4, 0, 246, 4, 247, 3, 245, 5, 241, 10, 0, 236, 0, 247, 3, 245, 5, 176, 15, 16, 159, 0, 247, 3, 245, 5, 96, 95, 112, 79, 0, 247, 3, 245, 5, 0, 175, 192, 14, 0, 247, 3, 245, 5, 0, 250, 243, 9, 0, 247, 3, 245, 5, 0, 245, 255, 3, 0, 247, 3, 245, 5, 0, 240, 223, 0, 0, 247, 3 ]; + +/// 'N' (ASCII 78) +const Font_TTHoves_Regular_21_glyph_78: [u8; 110] = [ 13, 15, 15, 1, 15, 245, 207, 0, 0, 0, 247, 3, 245, 255, 4, 0, 0, 247, 3, 245, 247, 12, 0, 0, 247, 3, 245, 117, 79, 0, 0, 247, 3, 245, 5, 206, 0, 0, 247, 3, 245, 5, 247, 4, 0, 247, 3, 245, 5, 224, 13, 0, 247, 3, 245, 5, 112, 95, 0, 247, 3, 245, 5, 0, 222, 0, 247, 3, 245, 5, 0, 246, 5, 247, 3, 245, 5, 0, 224, 13, 247, 3, 245, 5, 0, 96, 95, 247, 3, 245, 5, 0, 0, 221, 247, 3, 245, 5, 0, 0, 246, 255, 3, 245, 5, 0, 0, 208, 255, 3 ]; + +/// 'O' (ASCII 79) +const Font_TTHoves_Regular_21_glyph_79: [u8; 125] = [ 15, 15, 16, 1, 15, 0, 0, 199, 255, 141, 1, 0, 0, 0, 211, 239, 171, 253, 78, 0, 0, 32, 255, 5, 0, 64, 254, 5, 0, 192, 47, 0, 0, 0, 225, 14, 0, 246, 7, 0, 0, 0, 80, 143, 0, 251, 1, 0, 0, 0, 0, 222, 0, 237, 0, 0, 0, 0, 0, 251, 0, 206, 0, 0, 0, 0, 0, 249, 1, 237, 0, 0, 0, 0, 0, 251, 0, 251, 1, 0, 0, 0, 0, 222, 0, 246, 7, 0, 0, 0, 80, 143, 0, 192, 47, 0, 0, 0, 225, 14, 0, 48, 239, 5, 0, 48, 254, 5, 0, 0, 211, 239, 170, 253, 78, 0, 0, 0, 0, 199, 255, 141, 1, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_TTHoves_Regular_21_glyph_80: [u8; 95] = [ 12, 15, 13, 1, 15, 245, 255, 255, 239, 42, 0, 245, 155, 153, 169, 255, 3, 245, 5, 0, 0, 242, 12, 245, 5, 0, 0, 144, 31, 245, 5, 0, 0, 112, 63, 245, 5, 0, 0, 144, 31, 245, 5, 0, 0, 242, 12, 245, 139, 136, 168, 255, 3, 245, 255, 255, 239, 43, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0, 245, 5, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_TTHoves_Regular_21_glyph_81: [u8; 125] = [ 15, 15, 16, 1, 15, 0, 0, 199, 255, 141, 1, 0, 0, 0, 211, 239, 171, 253, 78, 0, 0, 32, 255, 5, 0, 64, 254, 5, 0, 192, 47, 0, 0, 0, 225, 14, 0, 246, 7, 0, 0, 0, 80, 143, 0, 251, 1, 0, 0, 0, 0, 222, 0, 237, 0, 0, 0, 0, 0, 251, 0, 206, 0, 0, 0, 0, 0, 249, 1, 237, 0, 0, 0, 0, 0, 251, 0, 251, 1, 0, 149, 5, 0, 222, 0, 246, 7, 0, 160, 111, 64, 159, 0, 192, 47, 0, 0, 250, 215, 30, 0, 48, 239, 5, 0, 160, 255, 5, 0, 0, 211, 239, 154, 251, 255, 8, 0, 0, 0, 199, 255, 141, 113, 159, 0 ]; + +/// 'R' (ASCII 82) +const Font_TTHoves_Regular_21_glyph_82: [u8; 95] = [ 12, 15, 13, 1, 15, 245, 255, 255, 239, 42, 0, 245, 155, 153, 169, 255, 3, 245, 5, 0, 0, 242, 12, 245, 5, 0, 0, 144, 31, 245, 5, 0, 0, 112, 63, 245, 5, 0, 0, 144, 31, 245, 5, 0, 0, 242, 12, 245, 139, 136, 168, 255, 3, 245, 255, 255, 239, 43, 0, 245, 21, 253, 3, 0, 0, 245, 5, 209, 63, 0, 0, 245, 5, 16, 253, 3, 0, 245, 5, 0, 209, 63, 0, 245, 5, 0, 16, 237, 3, 245, 5, 0, 0, 226, 46 ]; + +/// 'S' (ASCII 83) +const Font_TTHoves_Regular_21_glyph_83: [u8; 95] = [ 12, 15, 13, 0, 15, 0, 64, 235, 207, 41, 0, 0, 249, 190, 201, 255, 6, 80, 175, 0, 0, 210, 63, 144, 31, 0, 0, 48, 143, 176, 15, 0, 0, 0, 87, 112, 127, 0, 0, 0, 0, 0, 253, 140, 37, 0, 0, 0, 128, 253, 255, 158, 1, 0, 0, 0, 99, 251, 30, 0, 0, 0, 0, 80, 159, 112, 5, 0, 0, 0, 206, 208, 13, 0, 0, 0, 191, 112, 159, 0, 0, 144, 111, 0, 250, 190, 169, 254, 11, 0, 64, 218, 223, 91, 0 ]; + +/// 'T' (ASCII 84) +const Font_TTHoves_Regular_21_glyph_84: [u8; 95] = [ 12, 15, 12, 0, 15, 247, 255, 255, 255, 255, 223, 148, 153, 217, 159, 153, 121, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 160, 15, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_TTHoves_Regular_21_glyph_85: [u8; 110] = [ 13, 15, 14, 1, 15, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 248, 2, 0, 0, 0, 250, 0, 247, 3, 0, 0, 0, 236, 0, 244, 6, 0, 0, 0, 190, 0, 241, 13, 0, 0, 96, 127, 0, 96, 175, 1, 0, 245, 13, 0, 0, 249, 190, 217, 223, 3, 0, 0, 64, 218, 207, 8, 0, 0 ]; + +/// 'V' (ASCII 86) +const Font_TTHoves_Regular_21_glyph_86: [u8; 110] = [ 14, 15, 14, 0, 15, 249, 2, 0, 0, 0, 128, 79, 244, 8, 0, 0, 0, 224, 14, 224, 13, 0, 0, 0, 243, 8, 128, 63, 0, 0, 0, 249, 2, 48, 143, 0, 0, 0, 222, 0, 0, 237, 0, 0, 64, 127, 0, 0, 247, 4, 0, 160, 31, 0, 0, 241, 9, 0, 240, 12, 0, 0, 192, 14, 0, 245, 6, 0, 0, 96, 95, 0, 250, 1, 0, 0, 16, 175, 0, 175, 0, 0, 0, 0, 251, 96, 95, 0, 0, 0, 0, 245, 181, 15, 0, 0, 0, 0, 240, 254, 9, 0, 0, 0, 0, 144, 255, 4, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_TTHoves_Regular_21_glyph_87: [u8; 170] = [ 21, 15, 21, 0, 15, 249, 3, 0, 0, 241, 175, 0, 0, 0, 250, 1, 245, 7, 0, 0, 245, 239, 0, 0, 0, 238, 0, 241, 10, 0, 0, 249, 251, 2, 0, 32, 175, 0, 208, 14, 0, 0, 222, 244, 6, 0, 80, 111, 0, 144, 47, 0, 32, 159, 240, 11, 0, 144, 47, 0, 80, 111, 0, 96, 79, 192, 14, 0, 208, 14, 0, 16, 175, 0, 160, 31, 128, 63, 0, 241, 10, 0, 0, 237, 0, 224, 12, 48, 127, 0, 245, 6, 0, 0, 249, 1, 242, 8, 0, 191, 0, 249, 2, 0, 0, 245, 5, 246, 4, 0, 251, 0, 236, 0, 0, 0, 241, 9, 250, 1, 0, 247, 3, 175, 0, 0, 0, 208, 13, 206, 0, 0, 243, 71, 111, 0, 0, 0, 160, 63, 143, 0, 0, 240, 139, 47, 0, 0, 0, 96, 239, 79, 0, 0, 176, 239, 14, 0, 0, 0, 32, 255, 15, 0, 0, 112, 255, 11, 0, 0 ]; + +/// 'X' (ASCII 88) +const Font_TTHoves_Regular_21_glyph_88: [u8; 110] = [ 13, 15, 13, 0, 15, 242, 11, 0, 0, 0, 251, 2, 128, 95, 0, 0, 96, 143, 0, 0, 237, 1, 0, 225, 13, 0, 0, 243, 10, 0, 250, 3, 0, 0, 128, 95, 64, 143, 0, 0, 0, 0, 237, 226, 13, 0, 0, 0, 0, 243, 255, 3, 0, 0, 0, 0, 208, 223, 0, 0, 0, 0, 0, 246, 253, 6, 0, 0, 0, 32, 207, 192, 47, 0, 0, 0, 192, 47, 32, 191, 0, 0, 0, 246, 7, 0, 247, 6, 0, 32, 207, 0, 0, 192, 47, 0, 192, 47, 0, 0, 32, 207, 0, 247, 6, 0, 0, 0, 246, 7 ]; + +/// 'Y' (ASCII 89) +const Font_TTHoves_Regular_21_glyph_89: [u8; 110] = [ 13, 15, 12, 0, 15, 251, 1, 0, 0, 0, 251, 1, 242, 10, 0, 0, 64, 143, 0, 144, 63, 0, 0, 208, 14, 0, 16, 206, 0, 0, 246, 5, 0, 0, 246, 5, 0, 206, 0, 0, 0, 208, 13, 128, 63, 0, 0, 0, 64, 127, 242, 10, 0, 0, 0, 0, 251, 252, 1, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 0, 176, 15, 0, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 0, 160, 15, 0, 0, 0, 0, 0, 160, 15, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_TTHoves_Regular_21_glyph_90: [u8; 95] = [ 12, 15, 12, 0, 15, 242, 255, 255, 255, 255, 63, 145, 153, 153, 153, 249, 31, 0, 0, 0, 0, 248, 6, 0, 0, 0, 48, 191, 0, 0, 0, 0, 208, 30, 0, 0, 0, 0, 249, 5, 0, 0, 0, 64, 175, 0, 0, 0, 0, 225, 30, 0, 0, 0, 0, 251, 4, 0, 0, 0, 96, 159, 0, 0, 0, 0, 242, 13, 0, 0, 0, 0, 252, 3, 0, 0, 0, 112, 127, 0, 0, 0, 0, 242, 159, 136, 136, 136, 40, 244, 255, 255, 255, 255, 95 ]; + +/// '[' (ASCII 91) +const Font_TTHoves_Regular_21_glyph_91: [u8; 65] = [ 5, 20, 7, 1, 16, 114, 119, 6, 245, 255, 13, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 3, 0, 245, 121, 6, 245, 255, 13 ]; + +/// '\' (ASCII 92) +const Font_TTHoves_Regular_21_glyph_92: [u8; 81] = [ 8, 19, 7, 0, 15, 189, 0, 0, 0, 248, 0, 0, 0, 243, 5, 0, 0, 224, 9, 0, 0, 160, 14, 0, 0, 80, 63, 0, 0, 0, 143, 0, 0, 0, 219, 0, 0, 0, 246, 2, 0, 0, 241, 7, 0, 0, 208, 12, 0, 0, 128, 31, 0, 0, 48, 95, 0, 0, 0, 174, 0, 0, 0, 249, 0, 0, 0, 244, 4, 0, 0, 240, 9, 0, 0, 176, 14, 0, 0, 96, 63 ]; + +/// ']' (ASCII 93) +const Font_TTHoves_Regular_21_glyph_93: [u8; 65] = [ 5, 20, 7, 0, 16, 113, 119, 6, 244, 255, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 0, 160, 14, 113, 199, 14, 244, 255, 14 ]; + +/// '^' (ASCII 94) +const Font_TTHoves_Regular_21_glyph_94: [u8; 29] = [ 7, 6, 9, 1, 15, 0, 251, 3, 0, 32, 239, 9, 0, 128, 110, 15, 0, 224, 24, 111, 0, 244, 2, 202, 0, 202, 0, 244, 2 ]; + +/// '_' (ASCII 95) +const Font_TTHoves_Regular_21_glyph_95: [u8; 15] = [ 9, 2, 9, 0, 0, 246, 255, 255, 255, 15, 115, 119, 119, 119, 7 ]; + +/// '`' (ASCII 96) +const Font_TTHoves_Regular_21_glyph_96: [u8; 14] = [ 5, 3, 5, 0, 15, 225, 13, 0, 48, 143, 0, 0, 245, 3 ]; + +/// 'a' (ASCII 97) +const Font_TTHoves_Regular_21_glyph_97: [u8; 60] = [ 9, 11, 11, 1, 11, 0, 216, 223, 8, 0, 192, 191, 184, 207, 0, 246, 5, 0, 247, 5, 99, 0, 0, 240, 8, 0, 83, 119, 247, 10, 193, 255, 255, 255, 10, 250, 22, 0, 240, 10, 174, 0, 0, 242, 10, 205, 0, 0, 251, 10, 246, 141, 217, 254, 10, 80, 252, 158, 193, 10 ]; + +/// 'b' (ASCII 98) +const Font_TTHoves_Regular_21_glyph_98: [u8; 95] = [ 11, 15, 12, 1, 15, 246, 2, 0, 0, 0, 0, 246, 2, 0, 0, 0, 0, 246, 2, 0, 0, 0, 0, 246, 2, 0, 0, 0, 0, 246, 82, 253, 124, 0, 0, 246, 248, 140, 252, 12, 0, 246, 111, 0, 96, 143, 0, 246, 11, 0, 0, 251, 0, 246, 5, 0, 0, 245, 3, 246, 2, 0, 0, 243, 6, 246, 4, 0, 0, 244, 4, 246, 9, 0, 0, 249, 1, 246, 79, 0, 64, 175, 0, 246, 252, 139, 251, 29, 0, 246, 96, 252, 141, 0, 0 ]; + +/// 'c' (ASCII 99) +const Font_TTHoves_Regular_21_glyph_99: [u8; 71] = [ 11, 11, 11, 0, 11, 0, 80, 235, 190, 3, 0, 0, 249, 157, 233, 95, 0, 80, 159, 0, 0, 251, 1, 192, 13, 0, 0, 146, 3, 240, 9, 0, 0, 0, 0, 242, 7, 0, 0, 0, 0, 240, 9, 0, 0, 0, 0, 208, 13, 0, 0, 162, 3, 80, 159, 0, 0, 251, 0, 0, 249, 141, 216, 95, 0, 0, 80, 235, 190, 3, 0 ]; + +/// 'd' (ASCII 100) +const Font_TTHoves_Regular_21_glyph_100: [u8; 95] = [ 11, 15, 12, 0, 15, 0, 0, 0, 0, 208, 11, 0, 0, 0, 0, 208, 11, 0, 0, 0, 0, 208, 11, 0, 0, 0, 0, 208, 11, 0, 80, 251, 142, 208, 11, 0, 248, 157, 250, 234, 11, 48, 175, 0, 48, 254, 11, 176, 14, 0, 0, 247, 11, 240, 9, 0, 0, 241, 11, 241, 7, 0, 0, 224, 11, 240, 8, 0, 0, 240, 11, 208, 13, 0, 0, 244, 11, 96, 143, 0, 32, 253, 11, 0, 251, 140, 249, 235, 11, 0, 96, 252, 140, 176, 11 ]; + +/// 'e' (ASCII 101) +const Font_TTHoves_Regular_21_glyph_101: [u8; 71] = [ 11, 11, 12, 0, 11, 0, 64, 235, 173, 2, 0, 0, 248, 157, 233, 79, 0, 64, 159, 0, 16, 237, 0, 192, 13, 0, 0, 244, 6, 240, 8, 0, 0, 240, 8, 241, 255, 255, 255, 255, 10, 240, 123, 119, 119, 119, 4, 208, 11, 0, 0, 0, 0, 96, 111, 0, 0, 252, 1, 0, 250, 140, 233, 111, 0, 0, 80, 235, 190, 4, 0 ]; + +/// 'f' (ASCII 102) +const Font_TTHoves_Regular_21_glyph_102: [u8; 50] = [ 6, 15, 7, 0, 15, 0, 211, 255, 0, 251, 120, 0, 204, 0, 0, 204, 0, 247, 255, 255, 115, 238, 119, 0, 204, 0, 0, 204, 0, 0, 204, 0, 0, 204, 0, 0, 204, 0, 0, 204, 0, 0, 204, 0, 0, 204, 0, 0, 204, 0 ]; + +/// 'g' (ASCII 103) +const Font_TTHoves_Regular_21_glyph_103: [u8; 95] = [ 11, 15, 12, 0, 11, 0, 80, 251, 142, 176, 11, 0, 249, 141, 250, 218, 11, 80, 143, 0, 32, 254, 11, 208, 13, 0, 0, 245, 11, 240, 8, 0, 0, 240, 11, 241, 7, 0, 0, 224, 11, 224, 11, 0, 0, 242, 11, 128, 95, 0, 0, 252, 11, 0, 252, 139, 233, 253, 11, 0, 112, 252, 157, 208, 11, 0, 0, 0, 0, 224, 10, 112, 10, 0, 0, 241, 8, 96, 111, 0, 0, 250, 3, 0, 251, 140, 216, 159, 0, 0, 96, 236, 206, 5, 0 ]; + +/// 'h' (ASCII 104) +const Font_TTHoves_Regular_21_glyph_104: [u8; 80] = [ 10, 15, 12, 1, 15, 246, 2, 0, 0, 0, 246, 2, 0, 0, 0, 246, 2, 0, 0, 0, 246, 2, 0, 0, 0, 246, 131, 253, 92, 0, 246, 254, 138, 253, 8, 246, 30, 0, 176, 47, 246, 6, 0, 48, 111, 246, 2, 0, 0, 159, 246, 2, 0, 0, 159, 246, 2, 0, 0, 159, 246, 2, 0, 0, 159, 246, 2, 0, 0, 159, 246, 2, 0, 0, 159, 246, 2, 0, 0, 159 ]; + +/// 'i' (ASCII 105) +const Font_TTHoves_Regular_21_glyph_105: [u8; 35] = [ 3, 15, 5, 1, 15, 248, 3, 198, 3, 0, 0, 0, 0, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2 ]; + +/// 'j' (ASCII 106) +const Font_TTHoves_Regular_21_glyph_106: [u8; 62] = [ 5, 19, 6, 0, 15, 0, 248, 3, 0, 198, 3, 0, 0, 0, 0, 0, 0, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 246, 2, 0, 247, 2, 116, 252, 1, 250, 126, 0 ]; + +/// 'k' (ASCII 107) +const Font_TTHoves_Regular_21_glyph_107: [u8; 80] = [ 10, 15, 10, 1, 15, 246, 2, 0, 0, 0, 246, 2, 0, 0, 0, 246, 2, 0, 0, 0, 246, 2, 0, 0, 0, 246, 2, 0, 249, 6, 246, 2, 128, 127, 0, 246, 2, 247, 8, 0, 246, 98, 159, 0, 0, 246, 247, 10, 0, 0, 246, 255, 1, 0, 0, 246, 245, 12, 0, 0, 246, 50, 207, 0, 0, 246, 2, 244, 11, 0, 246, 2, 80, 175, 0, 246, 2, 0, 246, 9 ]; + +/// 'l' (ASCII 108) +const Font_TTHoves_Regular_21_glyph_108: [u8; 35] = [ 3, 15, 5, 1, 15, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2, 246, 2 ]; + +/// 'm' (ASCII 109) +const Font_TTHoves_Regular_21_glyph_109: [u8; 93] = [ 16, 11, 18, 1, 11, 232, 161, 222, 8, 96, 252, 76, 0, 248, 222, 184, 159, 249, 139, 253, 5, 248, 12, 0, 248, 111, 0, 208, 14, 248, 3, 0, 241, 13, 0, 112, 47, 248, 0, 0, 224, 10, 0, 80, 79, 248, 0, 0, 224, 10, 0, 64, 79, 248, 0, 0, 224, 10, 0, 64, 79, 248, 0, 0, 224, 10, 0, 64, 79, 248, 0, 0, 224, 10, 0, 64, 79, 248, 0, 0, 224, 10, 0, 64, 79, 248, 0, 0, 224, 10, 0, 64, 79 ]; + +/// 'n' (ASCII 110) +const Font_TTHoves_Regular_21_glyph_110: [u8; 60] = [ 10, 11, 12, 1, 11, 232, 145, 253, 76, 0, 248, 238, 153, 254, 6, 248, 29, 0, 192, 31, 248, 4, 0, 64, 79, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127 ]; + +/// 'o' (ASCII 111) +const Font_TTHoves_Regular_21_glyph_111: [u8; 71] = [ 11, 11, 12, 0, 11, 0, 80, 235, 173, 2, 0, 0, 249, 157, 233, 95, 0, 80, 159, 0, 16, 252, 1, 192, 13, 0, 0, 242, 8, 240, 9, 0, 0, 208, 11, 242, 7, 0, 0, 176, 13, 240, 9, 0, 0, 208, 11, 208, 13, 0, 0, 242, 8, 80, 159, 0, 16, 252, 1, 0, 249, 141, 233, 95, 0, 0, 80, 235, 174, 2, 0 ]; + +/// 'p' (ASCII 112) +const Font_TTHoves_Regular_21_glyph_112: [u8; 95] = [ 11, 15, 12, 1, 11, 216, 96, 253, 108, 0, 0, 248, 247, 139, 252, 10, 0, 248, 95, 0, 128, 111, 0, 248, 9, 0, 0, 236, 0, 248, 3, 0, 0, 247, 2, 248, 1, 0, 0, 244, 4, 248, 2, 0, 0, 246, 2, 248, 7, 0, 0, 250, 0, 248, 63, 0, 96, 143, 0, 248, 250, 138, 251, 12, 0, 248, 96, 252, 140, 0, 0, 248, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0, 248, 0, 0, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_TTHoves_Regular_21_glyph_113: [u8; 95] = [ 11, 15, 12, 0, 11, 0, 80, 251, 142, 176, 11, 0, 248, 157, 250, 218, 11, 64, 175, 0, 48, 254, 11, 192, 14, 0, 0, 247, 11, 240, 9, 0, 0, 241, 11, 242, 7, 0, 0, 224, 11, 240, 8, 0, 0, 240, 11, 208, 13, 0, 0, 244, 11, 96, 143, 0, 32, 253, 11, 0, 251, 140, 249, 235, 11, 0, 96, 252, 140, 208, 11, 0, 0, 0, 0, 208, 11, 0, 0, 0, 0, 208, 11, 0, 0, 0, 0, 208, 11, 0, 0, 0, 0, 208, 11 ]; + +/// 'r' (ASCII 114) +const Font_TTHoves_Regular_21_glyph_114: [u8; 38] = [ 6, 11, 7, 1, 11, 232, 213, 239, 248, 175, 119, 248, 6, 0, 248, 1, 0, 248, 0, 0, 248, 0, 0, 248, 0, 0, 248, 0, 0, 248, 0, 0, 248, 0, 0, 248, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_TTHoves_Regular_21_glyph_115: [u8; 60] = [ 9, 11, 10, 0, 11, 0, 215, 223, 42, 0, 160, 191, 152, 254, 2, 241, 9, 0, 241, 10, 241, 9, 0, 48, 3, 192, 175, 54, 0, 0, 16, 250, 255, 142, 0, 0, 0, 82, 250, 8, 65, 1, 0, 208, 13, 243, 8, 0, 208, 12, 160, 191, 136, 253, 6, 0, 198, 239, 75, 0 ]; + +/// 't' (ASCII 116) +const Font_TTHoves_Regular_21_glyph_116: [u8; 61] = [ 7, 14, 7, 0, 14, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 247, 255, 255, 2, 115, 238, 119, 1, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 251, 119, 1, 0, 195, 255, 2 ]; + +/// 'u' (ASCII 117) +const Font_TTHoves_Regular_21_glyph_117: [u8; 60] = [ 10, 11, 12, 1, 11, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 248, 0, 0, 16, 127, 245, 3, 0, 64, 127, 242, 12, 0, 209, 127, 112, 223, 152, 238, 127, 0, 197, 223, 25, 127 ]; + +/// 'v' (ASCII 118) +const Font_TTHoves_Regular_21_glyph_118: [u8; 71] = [ 11, 11, 11, 0, 11, 250, 1, 0, 0, 249, 1, 244, 6, 0, 0, 206, 0, 224, 11, 0, 64, 111, 0, 144, 31, 0, 144, 31, 0, 64, 111, 0, 224, 11, 0, 0, 190, 0, 244, 6, 0, 0, 249, 1, 249, 1, 0, 0, 243, 6, 190, 0, 0, 0, 208, 76, 95, 0, 0, 0, 128, 239, 15, 0, 0, 0, 48, 255, 10, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_TTHoves_Regular_21_glyph_119: [u8; 104] = [ 17, 11, 17, 0, 11, 248, 1, 0, 241, 175, 0, 0, 248, 2, 244, 5, 0, 245, 239, 0, 0, 236, 0, 240, 9, 0, 249, 246, 2, 0, 159, 0, 192, 13, 0, 189, 242, 6, 64, 95, 0, 128, 31, 16, 127, 224, 10, 128, 31, 0, 64, 95, 80, 63, 160, 14, 192, 13, 0, 0, 159, 144, 15, 96, 47, 240, 9, 0, 0, 220, 208, 11, 32, 111, 244, 5, 0, 0, 248, 243, 7, 0, 174, 248, 1, 0, 0, 243, 254, 3, 0, 250, 222, 0, 0, 0, 240, 255, 0, 0, 246, 159, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_TTHoves_Regular_21_glyph_120: [u8; 60] = [ 10, 11, 10, 0, 11, 245, 8, 0, 112, 111, 176, 47, 0, 241, 12, 32, 207, 0, 251, 2, 0, 247, 86, 143, 0, 0, 192, 255, 13, 0, 0, 96, 255, 7, 0, 0, 224, 222, 30, 0, 0, 249, 52, 175, 0, 48, 175, 0, 249, 4, 208, 30, 0, 224, 13, 247, 6, 0, 80, 143 ]; + +/// 'y' (ASCII 121) +const Font_TTHoves_Regular_21_glyph_121: [u8; 95] = [ 11, 15, 10, 0, 11, 249, 1, 0, 0, 250, 0, 243, 6, 0, 0, 175, 0, 208, 12, 0, 80, 79, 0, 128, 47, 0, 160, 14, 0, 32, 143, 0, 240, 9, 0, 0, 236, 0, 244, 4, 0, 0, 246, 4, 234, 0, 0, 0, 240, 9, 143, 0, 0, 0, 160, 95, 63, 0, 0, 0, 64, 255, 13, 0, 0, 0, 0, 254, 8, 0, 0, 0, 0, 249, 2, 0, 0, 0, 0, 204, 0, 0, 0, 64, 151, 111, 0, 0, 0, 160, 255, 10, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_TTHoves_Regular_21_glyph_122: [u8; 60] = [ 9, 11, 9, 0, 11, 245, 255, 255, 255, 6, 114, 119, 119, 254, 4, 0, 0, 80, 159, 0, 0, 0, 241, 13, 0, 0, 0, 252, 2, 0, 0, 128, 111, 0, 0, 0, 243, 11, 0, 0, 16, 238, 1, 0, 0, 160, 79, 0, 0, 0, 245, 125, 119, 119, 3, 247, 255, 255, 255, 7 ]; + +/// '{' (ASCII 123) +const Font_TTHoves_Regular_21_glyph_123: [u8; 65] = [ 5, 20, 7, 1, 16, 0, 64, 5, 16, 253, 13, 96, 95, 0, 112, 31, 0, 112, 31, 0, 112, 31, 0, 112, 31, 0, 112, 31, 0, 144, 15, 0, 249, 9, 0, 173, 1, 0, 212, 13, 0, 128, 31, 0, 112, 31, 0, 112, 31, 0, 112, 31, 0, 112, 31, 0, 112, 31, 0, 64, 159, 5, 0, 249, 13 ]; + +/// '|' (ASCII 124) +const Font_TTHoves_Regular_21_glyph_124: [u8; 43] = [ 3, 19, 7, 2, 15, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1, 247, 1 ]; + +/// '}' (ASCII 125) +const Font_TTHoves_Regular_21_glyph_125: [u8; 65] = [ 6, 20, 7, 0, 16, 81, 3, 0, 244, 143, 0, 0, 250, 0, 0, 247, 1, 0, 247, 1, 0, 247, 1, 0, 247, 1, 0, 247, 1, 0, 246, 3, 0, 209, 77, 0, 48, 126, 0, 243, 25, 0, 247, 1, 0, 247, 1, 0, 247, 1, 0, 247, 1, 0, 247, 1, 0, 247, 1, 97, 237, 0, 244, 77, 0 ]; + +/// '~' (ASCII 126) +const Font_TTHoves_Regular_21_glyph_126: [u8; 29] = [ 11, 4, 12, 0, 8, 0, 97, 21, 0, 48, 5, 64, 255, 239, 3, 208, 12, 192, 61, 211, 159, 251, 7, 224, 8, 0, 233, 142, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_TTHoves_Regular_21_glyph_nonprintable: [u8; 80] = [ 10, 15, 11, 0, 15, 255, 76, 17, 163, 255, 159, 0, 84, 1, 246, 14, 226, 255, 79, 176, 10, 250, 255, 239, 96, 239, 255, 255, 255, 64, 255, 255, 255, 207, 96, 255, 255, 255, 46, 192, 255, 255, 175, 1, 251, 255, 255, 10, 211, 255, 255, 255, 4, 254, 255, 255, 255, 19, 255, 255, 255, 255, 119, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 255, 255, 255, 255, 1, 255, 255 ]; + +/// Array of references for 'TTHoves_Regular_21' normal ASCII glyphs +const Font_TTHoves_Regular_21: [&[u8]; 95] = [ + &Font_TTHoves_Regular_21_glyph_32, + &Font_TTHoves_Regular_21_glyph_33, + &Font_TTHoves_Regular_21_glyph_34, + &Font_TTHoves_Regular_21_glyph_35, + &Font_TTHoves_Regular_21_glyph_36, + &Font_TTHoves_Regular_21_glyph_37, + &Font_TTHoves_Regular_21_glyph_38, + &Font_TTHoves_Regular_21_glyph_39, + &Font_TTHoves_Regular_21_glyph_40, + &Font_TTHoves_Regular_21_glyph_41, + &Font_TTHoves_Regular_21_glyph_42, + &Font_TTHoves_Regular_21_glyph_43, + &Font_TTHoves_Regular_21_glyph_44, + &Font_TTHoves_Regular_21_glyph_45, + &Font_TTHoves_Regular_21_glyph_46, + &Font_TTHoves_Regular_21_glyph_47, + &Font_TTHoves_Regular_21_glyph_48, + &Font_TTHoves_Regular_21_glyph_49, + &Font_TTHoves_Regular_21_glyph_50, + &Font_TTHoves_Regular_21_glyph_51, + &Font_TTHoves_Regular_21_glyph_52, + &Font_TTHoves_Regular_21_glyph_53, + &Font_TTHoves_Regular_21_glyph_54, + &Font_TTHoves_Regular_21_glyph_55, + &Font_TTHoves_Regular_21_glyph_56, + &Font_TTHoves_Regular_21_glyph_57, + &Font_TTHoves_Regular_21_glyph_58, + &Font_TTHoves_Regular_21_glyph_59, + &Font_TTHoves_Regular_21_glyph_60, + &Font_TTHoves_Regular_21_glyph_61, + &Font_TTHoves_Regular_21_glyph_62, + &Font_TTHoves_Regular_21_glyph_63, + &Font_TTHoves_Regular_21_glyph_64, + &Font_TTHoves_Regular_21_glyph_65, + &Font_TTHoves_Regular_21_glyph_66, + &Font_TTHoves_Regular_21_glyph_67, + &Font_TTHoves_Regular_21_glyph_68, + &Font_TTHoves_Regular_21_glyph_69, + &Font_TTHoves_Regular_21_glyph_70, + &Font_TTHoves_Regular_21_glyph_71, + &Font_TTHoves_Regular_21_glyph_72, + &Font_TTHoves_Regular_21_glyph_73, + &Font_TTHoves_Regular_21_glyph_74, + &Font_TTHoves_Regular_21_glyph_75, + &Font_TTHoves_Regular_21_glyph_76, + &Font_TTHoves_Regular_21_glyph_77, + &Font_TTHoves_Regular_21_glyph_78, + &Font_TTHoves_Regular_21_glyph_79, + &Font_TTHoves_Regular_21_glyph_80, + &Font_TTHoves_Regular_21_glyph_81, + &Font_TTHoves_Regular_21_glyph_82, + &Font_TTHoves_Regular_21_glyph_83, + &Font_TTHoves_Regular_21_glyph_84, + &Font_TTHoves_Regular_21_glyph_85, + &Font_TTHoves_Regular_21_glyph_86, + &Font_TTHoves_Regular_21_glyph_87, + &Font_TTHoves_Regular_21_glyph_88, + &Font_TTHoves_Regular_21_glyph_89, + &Font_TTHoves_Regular_21_glyph_90, + &Font_TTHoves_Regular_21_glyph_91, + &Font_TTHoves_Regular_21_glyph_92, + &Font_TTHoves_Regular_21_glyph_93, + &Font_TTHoves_Regular_21_glyph_94, + &Font_TTHoves_Regular_21_glyph_95, + &Font_TTHoves_Regular_21_glyph_96, + &Font_TTHoves_Regular_21_glyph_97, + &Font_TTHoves_Regular_21_glyph_98, + &Font_TTHoves_Regular_21_glyph_99, + &Font_TTHoves_Regular_21_glyph_100, + &Font_TTHoves_Regular_21_glyph_101, + &Font_TTHoves_Regular_21_glyph_102, + &Font_TTHoves_Regular_21_glyph_103, + &Font_TTHoves_Regular_21_glyph_104, + &Font_TTHoves_Regular_21_glyph_105, + &Font_TTHoves_Regular_21_glyph_106, + &Font_TTHoves_Regular_21_glyph_107, + &Font_TTHoves_Regular_21_glyph_108, + &Font_TTHoves_Regular_21_glyph_109, + &Font_TTHoves_Regular_21_glyph_110, + &Font_TTHoves_Regular_21_glyph_111, + &Font_TTHoves_Regular_21_glyph_112, + &Font_TTHoves_Regular_21_glyph_113, + &Font_TTHoves_Regular_21_glyph_114, + &Font_TTHoves_Regular_21_glyph_115, + &Font_TTHoves_Regular_21_glyph_116, + &Font_TTHoves_Regular_21_glyph_117, + &Font_TTHoves_Regular_21_glyph_118, + &Font_TTHoves_Regular_21_glyph_119, + &Font_TTHoves_Regular_21_glyph_120, + &Font_TTHoves_Regular_21_glyph_121, + &Font_TTHoves_Regular_21_glyph_122, + &Font_TTHoves_Regular_21_glyph_123, + &Font_TTHoves_Regular_21_glyph_124, + &Font_TTHoves_Regular_21_glyph_125, + &Font_TTHoves_Regular_21_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_TTHoves_Regular_21_info: FontInfo = FontInfo { + height: 21, + max_height: 21, + baseline: 4, + glyph_data: &Font_TTHoves_Regular_21, + glyph_nonprintable: &Font_TTHoves_Regular_21_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_bolt/fonts/mod.rs b/core/embed/rust/src/ui/layout_bolt/fonts/mod.rs new file mode 100644 index 00000000000..ceba898c277 --- /dev/null +++ b/core/embed/rust/src/ui/layout_bolt/fonts/mod.rs @@ -0,0 +1,39 @@ +// mod font_roboto_bold_20; +// mod font_roboto_regular_20; +mod font_robotomono_medium_20; +mod font_tthoves_bold_17; +mod font_tthoves_demibold_21; +mod font_tthoves_regular_21; + +// use font_roboto_bold_20::Font_Roboto_Bold_20_info; +// use font_roboto_regular_20::Font_Roboto_Regular_20_info; +use font_robotomono_medium_20::Font_RobotoMono_Medium_20_info; +use font_tthoves_bold_17::Font_TTHoves_Bold_17_upper_info; +use font_tthoves_demibold_21::Font_TTHoves_DemiBold_21_info; +use font_tthoves_regular_21::Font_TTHoves_Regular_21_info; + +pub const FONT_NORMAL: crate::ui::display::Font = &Font_TTHoves_Regular_21_info; +// TODO: remove BOLD (points to the same font as BOLD_UPPER) +pub const FONT_BOLD: crate::ui::display::Font = &Font_TTHoves_Bold_17_upper_info; +pub const FONT_BOLD_UPPER: crate::ui::display::Font = &Font_TTHoves_Bold_17_upper_info; +pub const FONT_DEMIBOLD: crate::ui::display::Font = &Font_TTHoves_DemiBold_21_info; +pub const FONT_MONO: crate::ui::display::Font = &Font_RobotoMono_Medium_20_info; +// TODO: remove SUB (points to the same font as DEMIBOLD) +pub const FONT_SUB: crate::ui::display::Font = &Font_TTHoves_DemiBold_21_info; + +/// The function converts individual layout fonts to their respective IDs. The +/// IDs are defined in `.json` (e.g. `cs.json`) and are used for +/// translation blobs. +pub fn font_to_font_id(font: &crate::ui::display::font::FontInfo) -> u16 { + if core::ptr::eq(font, FONT_NORMAL) { + 1 + } else if core::ptr::eq(font, FONT_MONO) { + 3 + } else if core::ptr::eq(font, FONT_DEMIBOLD) { + 5 + } else if core::ptr::eq(font, FONT_BOLD_UPPER) { + 7 + } else { + 1 + } +} diff --git a/core/embed/rust/src/ui/layout_bolt/mod.rs b/core/embed/rust/src/ui/layout_bolt/mod.rs index 64d5446320b..f9214ebdfb8 100644 --- a/core/embed/rust/src/ui/layout_bolt/mod.rs +++ b/core/embed/rust/src/ui/layout_bolt/mod.rs @@ -4,6 +4,7 @@ use super::{geometry::Rect, CommonUI}; pub mod bootloader; pub mod component; pub mod constant; +pub mod fonts; pub mod theme; #[cfg(feature = "backlight")] diff --git a/core/embed/rust/src/ui/layout_bolt/theme/bootloader.rs b/core/embed/rust/src/ui/layout_bolt/theme/bootloader.rs index cbbbe2d0f9e..3569841f69f 100644 --- a/core/embed/rust/src/ui/layout_bolt/theme/bootloader.rs +++ b/core/embed/rust/src/ui/layout_bolt/theme/bootloader.rs @@ -1,7 +1,7 @@ use crate::ui::{ component::{text::TextStyle, LineBreaking::BreakWordsNoHyphen}, constant::{HEIGHT, WIDTH}, - display::{Color, Font}, + display::{font, Color}, geometry::{Offset, Point, Rect}, util::include_res, }; @@ -76,7 +76,7 @@ pub const START_URL: &[u8] = include_res!("layout_bolt/res/start.toif"); pub fn button_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_BG, button_color: WHITE, background_color: BLD_BG, @@ -85,7 +85,7 @@ pub fn button_confirm() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_BG, button_color: BLD_INSTALL_BTN_COLOR_ACTIVE, background_color: BLD_BG, @@ -94,7 +94,7 @@ pub fn button_confirm() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: GREY_DARK, background_color: FG, @@ -108,7 +108,7 @@ pub fn button_confirm() -> ButtonStyleSheet { pub fn button_wipe_cancel() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: WHITE, button_color: BLD_WIPE_CANCEL_BTN_COLOR, background_color: BLD_WIPE_COLOR, @@ -117,7 +117,7 @@ pub fn button_wipe_cancel() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: WHITE, button_color: BLD_WIPE_CANCEL_BTN_COLOR_ACTIVE, background_color: BLD_WIPE_COLOR, @@ -126,7 +126,7 @@ pub fn button_wipe_cancel() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: GREY_DARK, background_color: WHITE, @@ -140,7 +140,7 @@ pub fn button_wipe_cancel() -> ButtonStyleSheet { pub fn button_wipe_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_WIPE_COLOR, button_color: BLD_WIPE_BTN_COLOR, background_color: BLD_WIPE_COLOR, @@ -149,7 +149,7 @@ pub fn button_wipe_confirm() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_WIPE_COLOR, button_color: BLD_WIPE_BTN_COLOR_ACTIVE, background_color: BLD_WIPE_COLOR, @@ -158,7 +158,7 @@ pub fn button_wipe_confirm() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: GREY_DARK, background_color: FG, @@ -172,7 +172,7 @@ pub fn button_wipe_confirm() -> ButtonStyleSheet { pub fn button_bld_menu() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_FG, button_color: BLD_BG, background_color: BLD_BG, @@ -181,7 +181,7 @@ pub fn button_bld_menu() -> ButtonStyleSheet { border_width: 2, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_FG, button_color: BLD_BG, background_color: BLD_BG, @@ -190,7 +190,7 @@ pub fn button_bld_menu() -> ButtonStyleSheet { border_width: 2, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: BLD_BG, background_color: BLD_BG, @@ -204,7 +204,7 @@ pub fn button_bld_menu() -> ButtonStyleSheet { pub fn button_bld() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_FG, button_color: BLD_BTN_COLOR, background_color: BLD_BG, @@ -213,7 +213,7 @@ pub fn button_bld() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: BLD_FG, button_color: BLD_BTN_COLOR_ACTIVE, background_color: BLD_BG, @@ -222,7 +222,7 @@ pub fn button_bld() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: BLD_BTN_COLOR, background_color: BLD_BG, @@ -235,7 +235,7 @@ pub fn button_bld() -> ButtonStyleSheet { pub const fn text_title(bg: Color) -> TextStyle { TextStyle::new( - Font::BOLD_UPPER, + font::FONT_BOLD_UPPER, BLD_TITLE_COLOR, bg, BLD_TITLE_COLOR, @@ -243,27 +243,30 @@ pub const fn text_title(bg: Color) -> TextStyle { ) } -pub const TEXT_NORMAL: TextStyle = TextStyle::new(Font::NORMAL, BLD_FG, BLD_BG, BLD_FG, BLD_FG); +pub const TEXT_NORMAL: TextStyle = + TextStyle::new(font::FONT_NORMAL, BLD_FG, BLD_BG, BLD_FG, BLD_FG); pub const TEXT_WARNING: TextStyle = TextStyle::new( - Font::BOLD_UPPER, + font::FONT_BOLD_UPPER, BLD_WARN_COLOR, BLD_BG, BLD_WARN_COLOR, BLD_WARN_COLOR, ); pub const fn text_fingerprint(bg: Color) -> TextStyle { - TextStyle::new(Font::NORMAL, BLD_FG, bg, BLD_FG, BLD_FG).with_line_breaking(BreakWordsNoHyphen) + TextStyle::new(font::FONT_NORMAL, BLD_FG, bg, BLD_FG, BLD_FG) + .with_line_breaking(BreakWordsNoHyphen) } -pub const TEXT_BOLD: TextStyle = TextStyle::new(Font::BOLD_UPPER, BLD_FG, BLD_BG, BLD_FG, BLD_FG); +pub const TEXT_BOLD: TextStyle = + TextStyle::new(font::FONT_BOLD_UPPER, BLD_FG, BLD_BG, BLD_FG, BLD_FG); pub const TEXT_WIPE_BOLD: TextStyle = TextStyle::new( - Font::BOLD_UPPER, + font::FONT_BOLD_UPPER, BLD_WIPE_TEXT_COLOR, BLD_WIPE_COLOR, BLD_WIPE_TEXT_COLOR, BLD_WIPE_TEXT_COLOR, ); pub const TEXT_WIPE_NORMAL: TextStyle = TextStyle::new( - Font::NORMAL, + font::FONT_NORMAL, BLD_WIPE_TEXT_COLOR, BLD_WIPE_COLOR, BLD_WIPE_TEXT_COLOR, diff --git a/core/embed/rust/src/ui/layout_bolt/theme/mod.rs b/core/embed/rust/src/ui/layout_bolt/theme/mod.rs index 50e7fc3ff11..17a1f6e25dc 100644 --- a/core/embed/rust/src/ui/layout_bolt/theme/mod.rs +++ b/core/embed/rust/src/ui/layout_bolt/theme/mod.rs @@ -8,7 +8,7 @@ use crate::{ text::{layout::Chunks, LineBreaking, PageBreaking, TextStyle}, FixedHeightBar, }, - display::{Color, Font}, + display::{font, Color}, geometry::{Insets, Offset}, util::{include_icon, include_res}, }, @@ -16,8 +16,6 @@ use crate::{ use super::component::{ButtonStyle, ButtonStyleSheet, LoaderStyle, LoaderStyleSheet, ResultStyle}; -use num_traits::FromPrimitive; - pub const ERASE_HOLD_DURATION: Duration = Duration::from_millis(1500); // Color palette. @@ -120,15 +118,15 @@ pub const fn label_default() -> TextStyle { } pub const fn label_keyboard() -> TextStyle { - TextStyle::new(Font::DEMIBOLD, OFF_WHITE, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(font::FONT_DEMIBOLD, OFF_WHITE, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_keyboard_prompt() -> TextStyle { - TextStyle::new(Font::DEMIBOLD, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(font::FONT_DEMIBOLD, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_keyboard_warning() -> TextStyle { - TextStyle::new(Font::DEMIBOLD, RED, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(font::FONT_DEMIBOLD, RED, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_keyboard_minor() -> TextStyle { @@ -156,21 +154,27 @@ pub const fn label_progress() -> TextStyle { } pub const fn label_title() -> TextStyle { - TextStyle::new(Font::BOLD_UPPER, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new( + font::FONT_BOLD_UPPER, + GREY_LIGHT, + BG, + GREY_LIGHT, + GREY_LIGHT, + ) } pub const fn label_subtitle() -> TextStyle { - TextStyle::new(Font::MONO, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(font::FONT_MONO, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_coinjoin_progress() -> TextStyle { - TextStyle::new(Font::BOLD_UPPER, FG, YELLOW, FG, FG) + TextStyle::new(font::FONT_BOLD_UPPER, FG, YELLOW, FG, FG) } pub const fn button_default() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: GREY_DARK, background_color: BG, @@ -179,7 +183,7 @@ pub const fn button_default() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: GREY_MEDIUM, background_color: BG, @@ -188,7 +192,7 @@ pub const fn button_default() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: GREY_DARK, background_color: BG, @@ -202,7 +206,7 @@ pub const fn button_default() -> ButtonStyleSheet { pub const fn button_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: GREEN, background_color: BG, @@ -211,7 +215,7 @@ pub const fn button_confirm() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: GREEN_DARK, background_color: BG, @@ -220,7 +224,7 @@ pub const fn button_confirm() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: GREEN_DARK, background_color: BG, @@ -234,7 +238,7 @@ pub const fn button_confirm() -> ButtonStyleSheet { pub const fn button_cancel() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: RED, background_color: BG, @@ -243,7 +247,7 @@ pub const fn button_cancel() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: RED_DARK, background_color: BG, @@ -252,7 +256,7 @@ pub const fn button_cancel() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: RED, background_color: BG, @@ -270,7 +274,7 @@ pub const fn button_danger() -> ButtonStyleSheet { pub const fn button_reset() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: YELLOW, background_color: BG, @@ -279,7 +283,7 @@ pub const fn button_reset() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: YELLOW_DARK, background_color: BG, @@ -288,7 +292,7 @@ pub const fn button_reset() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: YELLOW, background_color: BG, @@ -302,7 +306,7 @@ pub const fn button_reset() -> ButtonStyleSheet { pub const fn button_moreinfo() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: BG, background_color: BG, @@ -311,7 +315,7 @@ pub const fn button_moreinfo() -> ButtonStyleSheet { border_width: 2, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: BG, background_color: BG, @@ -320,7 +324,7 @@ pub const fn button_moreinfo() -> ButtonStyleSheet { border_width: 2, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: BG, background_color: BG, @@ -334,7 +338,7 @@ pub const fn button_moreinfo() -> ButtonStyleSheet { pub const fn button_info() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: BLUE, background_color: BG, @@ -343,7 +347,7 @@ pub const fn button_info() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: FG, button_color: BLUE_DARK, background_color: BG, @@ -352,7 +356,7 @@ pub const fn button_info() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::BOLD_UPPER, + font: font::FONT_BOLD_UPPER, text_color: GREY_LIGHT, button_color: BLUE, background_color: BG, @@ -366,7 +370,7 @@ pub const fn button_info() -> ButtonStyleSheet { pub const fn button_pin() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREY_DARK, background_color: BG, @@ -375,7 +379,7 @@ pub const fn button_pin() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREY_MEDIUM, background_color: BG, @@ -384,7 +388,7 @@ pub const fn button_pin() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREY_LIGHT, button_color: BG, // so there is no "button" itself, just the text background_color: BG, @@ -398,7 +402,7 @@ pub const fn button_pin() -> ButtonStyleSheet { pub const fn button_pin_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREEN, background_color: BG, @@ -407,7 +411,7 @@ pub const fn button_pin_confirm() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREEN_DARK, background_color: BG, @@ -416,7 +420,7 @@ pub const fn button_pin_confirm() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREY_LIGHT, button_color: GREY_DARK, background_color: BG, @@ -430,7 +434,7 @@ pub const fn button_pin_confirm() -> ButtonStyleSheet { pub const fn button_pin_autocomplete() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREY_DARK, // same as PIN buttons background_color: BG, @@ -439,7 +443,7 @@ pub const fn button_pin_autocomplete() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREEN_DARK, background_color: BG, @@ -448,7 +452,7 @@ pub const fn button_pin_autocomplete() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREY_LIGHT, button_color: BG, background_color: BG, @@ -462,7 +466,7 @@ pub const fn button_pin_autocomplete() -> ButtonStyleSheet { pub const fn button_suggestion_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREEN_DARK, button_color: GREEN, background_color: BG, @@ -471,7 +475,7 @@ pub const fn button_suggestion_confirm() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREEN_DARK, background_color: BG, @@ -480,7 +484,7 @@ pub const fn button_suggestion_confirm() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREY_LIGHT, button_color: GREY_DARK, background_color: BG, @@ -494,7 +498,7 @@ pub const fn button_suggestion_confirm() -> ButtonStyleSheet { pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREY_LIGHT, button_color: GREY_DARK, // same as PIN buttons background_color: BG, @@ -503,7 +507,7 @@ pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: FG, button_color: GREEN_DARK, background_color: BG, @@ -512,7 +516,7 @@ pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::MONO, + font: font::FONT_MONO, text_color: GREY_LIGHT, button_color: BG, background_color: BG, @@ -526,7 +530,7 @@ pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { pub const fn button_counter() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: font::FONT_DEMIBOLD, text_color: FG, button_color: GREY_DARK, background_color: BG, @@ -535,7 +539,7 @@ pub const fn button_counter() -> ButtonStyleSheet { border_width: 0, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: font::FONT_DEMIBOLD, text_color: FG, button_color: GREY_MEDIUM, background_color: BG, @@ -544,7 +548,7 @@ pub const fn button_counter() -> ButtonStyleSheet { border_width: 0, }, disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: font::FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: GREY_DARK, background_color: BG, @@ -589,10 +593,13 @@ pub const fn loader_lock_icon() -> LoaderStyleSheet { } } -pub const TEXT_NORMAL: TextStyle = TextStyle::new(Font::NORMAL, FG, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_DEMIBOLD: TextStyle = TextStyle::new(Font::DEMIBOLD, FG, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_BOLD: TextStyle = TextStyle::new(Font::BOLD_UPPER, FG, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_MONO: TextStyle = TextStyle::new(Font::MONO, FG, BG, GREY_LIGHT, GREY_LIGHT) +pub const TEXT_NORMAL: TextStyle = + TextStyle::new(font::FONT_NORMAL, FG, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_DEMIBOLD: TextStyle = + TextStyle::new(font::FONT_DEMIBOLD, FG, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_BOLD: TextStyle = + TextStyle::new(font::FONT_BOLD_UPPER, FG, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_MONO: TextStyle = TextStyle::new(font::FONT_MONO, FG, BG, GREY_LIGHT, GREY_LIGHT) .with_line_breaking(LineBreaking::BreakWordsNoHyphen) .with_page_breaking(PageBreaking::CutAndInsertEllipsisBoth) .with_ellipsis_icon(ICON_PAGE_NEXT, 0) @@ -622,25 +629,14 @@ pub fn get_chunkified_text_style(character_length: usize) -> &'static TextStyle } } -/// Convert Python-side numeric id to a `TextStyle`. -pub fn textstyle_number(num: i32) -> &'static TextStyle { - let font = Font::from_i32(-num); - match font { - Some(Font::DEMIBOLD) => &TEXT_DEMIBOLD, - Some(Font::BOLD_UPPER) => &TEXT_BOLD, - Some(Font::MONO) => &TEXT_MONO, - _ => &TEXT_NORMAL, - } -} - pub const TEXT_NORMAL_OFF_WHITE: TextStyle = - TextStyle::new(Font::NORMAL, OFF_WHITE, BG, GREY_LIGHT, GREY_LIGHT); + TextStyle::new(font::FONT_NORMAL, OFF_WHITE, BG, GREY_LIGHT, GREY_LIGHT); pub const TEXT_CHECKLIST_DEFAULT: TextStyle = - TextStyle::new(Font::NORMAL, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT); + TextStyle::new(font::FONT_NORMAL, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT); pub const TEXT_CHECKLIST_SELECTED: TextStyle = - TextStyle::new(Font::NORMAL, FG, BG, GREY_LIGHT, GREY_LIGHT); + TextStyle::new(font::FONT_NORMAL, FG, BG, GREY_LIGHT, GREY_LIGHT); pub const TEXT_CHECKLIST_DONE: TextStyle = - TextStyle::new(Font::NORMAL, GREEN_DARK, BG, GREY_LIGHT, GREY_LIGHT); + TextStyle::new(font::FONT_NORMAL, GREEN_DARK, BG, GREY_LIGHT, GREY_LIGHT); pub const CONTENT_BORDER: i16 = 0; pub const BUTTON_HEIGHT: i16 = 50; diff --git a/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs b/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs index b2ab3e54d4e..60a6ff5656b 100644 --- a/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs +++ b/core/embed/rust/src/ui/layout_bolt/ui_firmware.rs @@ -340,8 +340,13 @@ impl FirmwareUI for UIBolt { let mut paragraphs = ParagraphVecLong::new(); for para in IterBuf::new().try_iterate(items)? { - let [font, text]: [Obj; 2] = util::iter_into_array(para)?; - let style: &TextStyle = theme::textstyle_number(font.try_into()?); + let [text, is_data]: [Obj; 2] = util::iter_into_array(para)?; + let is_data = is_data.try_into()?; + let style: &TextStyle = if is_data { + &theme::TEXT_MONO + } else { + &theme::TEXT_NORMAL + }; let text: TString = text.try_into()?; paragraphs.add(Paragraph::new(style, text)); } @@ -460,8 +465,13 @@ impl FirmwareUI for UIBolt { let mut paragraphs = ParagraphVecShort::new(); for para in IterBuf::new().try_iterate(items)? { - let [font, text]: [Obj; 2] = util::iter_into_array(para)?; - let style: &TextStyle = theme::textstyle_number(font.try_into()?); + let [text, is_data]: [Obj; 2] = util::iter_into_array(para)?; + let is_data = is_data.try_into()?; + let style: &TextStyle = if is_data { + &theme::TEXT_MONO + } else { + &theme::TEXT_NORMAL + }; let text: TString = text.try_into()?; paragraphs.add(Paragraph::new(style, text)); if paragraphs.is_full() { diff --git a/core/embed/rust/src/ui/layout_caesar/bootloader/menu.rs b/core/embed/rust/src/ui/layout_caesar/bootloader/menu.rs index 66ec2b9ebb6..56dd5437a1b 100644 --- a/core/embed/rust/src/ui/layout_caesar/bootloader/menu.rs +++ b/core/embed/rust/src/ui/layout_caesar/bootloader/menu.rs @@ -5,7 +5,7 @@ use crate::{ ui::{ component::{Child, Component, Event, EventCtx, Pad}, constant::screen, - display::{Font, Icon}, + display::{font, Icon}, geometry::{Alignment, Alignment2D, Offset, Point, Rect}, layout::simplified::ReturnToC, shape, @@ -60,13 +60,13 @@ impl Choice for MenuChoice { shape::Text::new(SCREEN_CENTER, self.first_line) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); shape::Text::new(SCREEN_CENTER + Offset::y(10), self.second_line) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } diff --git a/core/embed/rust/src/ui/layout_caesar/bootloader/mod.rs b/core/embed/rust/src/ui/layout_caesar/bootloader/mod.rs index bd12429423c..b4da01866fe 100644 --- a/core/embed/rust/src/ui/layout_caesar/bootloader/mod.rs +++ b/core/embed/rust/src/ui/layout_caesar/bootloader/mod.rs @@ -6,7 +6,7 @@ use crate::{ component::{connect::Connect, Label, LineBreaking::BreakWordsNoHyphen}, constant, constant::{HEIGHT, SCREEN}, - display::{self, Color, Font, Icon}, + display::{self, font, Color, Icon}, geometry::{Alignment2D, Offset, Point}, layout::simplified::{run, show, ReturnToC}, }, @@ -76,13 +76,13 @@ impl UICaesar { shape::Text::new(SCREEN.center() + Offset::y(8), text) .with_align(Alignment::Center) - .with_font(Font::BOLD) + .with_font(font::FONT_BOLD) .with_fg(fg_color) .render(target); shape::Text::new(SCREEN.center() + Offset::y(20), text2) .with_align(Alignment::Center) - .with_font(Font::BOLD) + .with_font(font::FONT_BOLD) .with_fg(fg_color) .render(target); }); @@ -326,7 +326,7 @@ impl BootloaderUI for UICaesar { let pos = Point::new(constant::WIDTH / 2, 36); shape::Text::new(pos, text) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) //COLOR_BL_BG .render(target); @@ -343,7 +343,7 @@ impl BootloaderUI for UICaesar { shape::Text::new(pos, version_text.as_str()) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } @@ -358,7 +358,7 @@ impl BootloaderUI for UICaesar { let pos = Point::new(constant::WIDTH / 2, HEIGHT - 5); shape::Text::new(pos, text.as_str()) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } diff --git a/core/embed/rust/src/ui/layout_caesar/bootloader/welcome.rs b/core/embed/rust/src/ui/layout_caesar/bootloader/welcome.rs index 6293d6ee068..11facb0d707 100644 --- a/core/embed/rust/src/ui/layout_caesar/bootloader/welcome.rs +++ b/core/embed/rust/src/ui/layout_caesar/bootloader/welcome.rs @@ -1,6 +1,6 @@ use crate::ui::{ component::{Component, Event, EventCtx, Never, Pad}, - display::Font, + display::font, geometry::{Alignment, Offset, Rect}, shape, shape::Renderer, @@ -39,19 +39,19 @@ impl Component for Welcome { shape::Text::new(top_center + Offset::y(24), "Get started with") .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); shape::Text::new(top_center + Offset::y(32), "your Trezor at") .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); shape::Text::new(top_center + Offset::y(48), "trezor.io/start") .with_align(Alignment::Center) - .with_font(Font::BOLD) + .with_font(font::FONT_BOLD) .with_fg(BLD_FG) .render(target); } diff --git a/core/embed/rust/src/ui/layout_caesar/component/bl_confirm.rs b/core/embed/rust/src/ui/layout_caesar/component/bl_confirm.rs index 12986b10f93..0de9d17ebd7 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/bl_confirm.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/bl_confirm.rs @@ -2,7 +2,7 @@ use crate::{ strutil::TString, ui::{ component::{Child, Component, ComponentExt, Event, EventCtx, Label, Pad}, - display::{Color, Font}, + display::{font, Color}, geometry::{Point, Rect}, shape, shape::Renderer, @@ -201,7 +201,7 @@ impl Component for Confirm<'_> { let mut display_top_left = |text: TString| { text.map(|t| { shape::Text::new(Point::zero(), t) - .with_font(Font::BOLD) + .with_font(font::FONT_BOLD) .with_fg(WHITE) .render(target); }); diff --git a/core/embed/rust/src/ui/layout_caesar/component/button.rs b/core/embed/rust/src/ui/layout_caesar/component/button.rs index 8218ea73cc5..fcb004b948e 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/button.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/button.rs @@ -4,7 +4,7 @@ use crate::{ ui::{ component::{Component, Event, EventCtx, Never}, constant, - display::{Color, Font, Icon}, + display::{font, Color, Font, Icon}, event::PhysicalButton, geometry::{Alignment2D, Offset, Point, Rect}, shape, @@ -367,7 +367,7 @@ impl ButtonDetails { pub fn text(text: TString<'static>) -> Self { Self { content: ButtonContent::Text(text), - font: Font::NORMAL_UPPER, + font: font::FONT_NORMAL_UPPER, duration: None, with_outline: true, with_arms: false, @@ -381,7 +381,7 @@ impl ButtonDetails { pub fn icon(icon: Icon) -> Self { Self { content: ButtonContent::Icon(icon), - font: Font::NORMAL_UPPER, + font: font::FONT_NORMAL_UPPER, duration: None, with_outline: false, with_arms: false, @@ -561,7 +561,7 @@ impl ButtonLayout { Some( ButtonDetails::text("i".into()) .with_fixed_width(theme::BUTTON_ICON_WIDTH) - .with_font(Font::NORMAL), + .with_font(font::FONT_NORMAL), ), ) } @@ -574,7 +574,7 @@ impl ButtonLayout { Some( ButtonDetails::text("i".into()) .with_fixed_width(theme::BUTTON_ICON_WIDTH) - .with_font(Font::NORMAL), + .with_font(font::FONT_NORMAL), ), ) } @@ -695,7 +695,7 @@ impl ButtonLayout { Some( ButtonDetails::text("i".into()) .with_fixed_width(theme::BUTTON_ICON_WIDTH) - .with_font(Font::NORMAL), + .with_font(font::FONT_NORMAL), ), ) } diff --git a/core/embed/rust/src/ui/layout_caesar/component/changing_text.rs b/core/embed/rust/src/ui/layout_caesar/component/changing_text.rs index fb8ac492e64..f153ec930c9 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/changing_text.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/changing_text.rs @@ -2,7 +2,7 @@ use crate::{ strutil::ShortString, ui::{ component::{Component, Event, EventCtx, Never, Pad}, - display::Font, + display::{font, Font}, geometry::{Alignment, Point, Rect}, shape::{self, Renderer}, util::long_line_content_with_ellipsis, @@ -43,11 +43,11 @@ impl ChangingTextLine { } pub fn center_mono(text: &str, max_len: usize) -> Self { - Self::new(text, Font::MONO, Alignment::Center, max_len) + Self::new(text, font::FONT_MONO, Alignment::Center, max_len) } pub fn center_bold(text: &str, max_len: usize) -> Self { - Self::new(text, Font::BOLD_UPPER, Alignment::Center, max_len) + Self::new(text, font::FONT_BOLD_UPPER, Alignment::Center, max_len) } /// Not showing ellipsis at the beginning of longer texts. diff --git a/core/embed/rust/src/ui/layout_caesar/component/coinjoin_progress.rs b/core/embed/rust/src/ui/layout_caesar/component/coinjoin_progress.rs index 63d68628847..f704bcd9f70 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/coinjoin_progress.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/coinjoin_progress.rs @@ -9,7 +9,7 @@ use crate::{ text::util::{text_multiline, text_multiline_bottom}, Component, Event, EventCtx, }, - display::Font, + display::font, geometry::{Alignment, Alignment2D, Insets, Offset, Rect}, shape, shape::Renderer, @@ -88,7 +88,7 @@ impl Component for CoinJoinProgress { target, self.area, TR::coinjoin__title_progress.into(), - Font::BOLD, + font::FONT_BOLD, theme::FG, theme::BG, Alignment::Center, @@ -111,7 +111,7 @@ impl Component for CoinJoinProgress { target, self.area, TR::coinjoin__do_not_disconnect.into(), - Font::BOLD, + font::FONT_BOLD, theme::FG, theme::BG, Alignment::Center, @@ -121,7 +121,7 @@ impl Component for CoinJoinProgress { target, rest.inset(Insets::bottom(FOOTER_TEXT_MARGIN)), self.text, - Font::NORMAL, + font::FONT_NORMAL, theme::FG, theme::BG, Alignment::Center, diff --git a/core/embed/rust/src/ui/layout_caesar/component/homescreen.rs b/core/embed/rust/src/ui/layout_caesar/component/homescreen.rs index 14e8aa8cf0f..1758db03b3f 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/homescreen.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/homescreen.rs @@ -7,6 +7,7 @@ use crate::{ component::{Child, Component, Event, EventCtx, Label}, constant::{HEIGHT, WIDTH}, display::{ + font, image::{ImageInfo, ToifFormat}, Font, Icon, }, @@ -32,7 +33,7 @@ const LOGO_ICON_TOP_MARGIN: i16 = 12; const LOCK_ICON_TOP_MARGIN: i16 = 12; const NOTIFICATION_HEIGHT: i16 = 12; const LABEL_OUTSET: i16 = 3; -const NOTIFICATION_FONT: Font = Font::NORMAL_UPPER; +const NOTIFICATION_FONT: Font = font::FONT_NORMAL_UPPER; const NOTIFICATION_ICON: Icon = theme::ICON_WARNING; const COINJOIN_CORNER: Point = AREA.top_right().ofs(Offset::new(-2, 2)); diff --git a/core/embed/rust/src/ui/layout_caesar/component/input_methods/pin.rs b/core/embed/rust/src/ui/layout_caesar/component/input_methods/pin.rs index 9899ec14796..bc94cbe78f6 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/input_methods/pin.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/input_methods/pin.rs @@ -7,7 +7,7 @@ use crate::{ component::{ text::common::TextBox, Child, Component, ComponentExt, Event, EventCtx, Timer, }, - display::{Font, Icon}, + display::{font, Icon}, geometry::Rect, shape::Renderer, }, @@ -164,7 +164,7 @@ impl<'a> PinEntry<'a> { let mut pin_line = pin_line_content .map(|s| ChangingTextLine::center_bold(s, MAX_PIN_LENGTH).without_ellipsis()); if show_subprompt { - pin_line.update_font(Font::NORMAL); + pin_line.update_font(font::FONT_NORMAL); } Self { @@ -202,10 +202,10 @@ impl<'a> PinEntry<'a> { let s = ShortString::new(); s.capacity() >= MAX_PIN_LENGTH }); - let mut used_font = Font::BOLD; + let mut used_font = font::FONT_BOLD; let pin_line_text = if self.is_empty() && !self.subprompt.is_empty() { // Showing the subprompt in NORMAL font - used_font = Font::NORMAL; + used_font = font::FONT_NORMAL; self.subprompt.map(|s| unwrap!(ShortString::try_from(s))) } else if self.is_empty() { unwrap!(ShortString::try_from(EMPTY_PIN_STR)) diff --git a/core/embed/rust/src/ui/layout_caesar/component/progress.rs b/core/embed/rust/src/ui/layout_caesar/component/progress.rs index ad19d569323..3aa7f3f047f 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/progress.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/progress.rs @@ -9,7 +9,7 @@ use crate::{ Child, Component, Event, EventCtx, Label, Never, Pad, }, constant, - display::{Font, Icon, LOADER_MAX}, + display::{font, Icon, LOADER_MAX}, geometry::{Alignment2D, Offset, Rect}, shape, shape::Renderer, @@ -99,7 +99,7 @@ impl Component for Progress { }; let (_loader, description) = rest.split_bottom( - BOTTOM_DESCRIPTION_MARGIN + Font::NORMAL.line_height() * description_lines, + BOTTOM_DESCRIPTION_MARGIN + font::FONT_NORMAL.line_height() * description_lines, ); self.title.place(title); self.loader_y_offset = loader_y_offset; diff --git a/core/embed/rust/src/ui/layout_caesar/component/share_words.rs b/core/embed/rust/src/ui/layout_caesar/component/share_words.rs index 77687cf7e69..5eae35b3637 100644 --- a/core/embed/rust/src/ui/layout_caesar/component/share_words.rs +++ b/core/embed/rust/src/ui/layout_caesar/component/share_words.rs @@ -5,7 +5,7 @@ use crate::{ component::{ text::util::text_multiline, Child, Component, Event, EventCtx, Never, Paginate, }, - display::Font, + display::{font, Font}, geometry::{Alignment, Offset, Rect}, shape::{self, Renderer}, }, @@ -21,8 +21,8 @@ const WORDS_PER_PAGE: usize = 3; const EXTRA_LINE_HEIGHT: i16 = -2; const NUMBER_X_OFFSET: i16 = 0; const WORD_X_OFFSET: i16 = 25; -const NUMBER_FONT: Font = Font::DEMIBOLD; -const WORD_FONT: Font = Font::BIG; +const NUMBER_FONT: Font = font::FONT_DEMIBOLD; +const WORD_FONT: Font = font::FONT_BIG; const INFO_TOP_OFFSET: i16 = 20; const MAX_WORDS: usize = 33; // super-shamir has 33 words, all other have less @@ -81,7 +81,7 @@ impl<'a> ShareWords<'a> { target, self.area.split_top(INFO_TOP_OFFSET).1, final_text.as_str().into(), - Font::NORMAL, + font::FONT_NORMAL, theme::FG, theme::BG, Alignment::Start, diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs new file mode 100644 index 00000000000..ec586a480ae --- /dev/null +++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_bold_8.rs @@ -0,0 +1,516 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 1-bit glyph data + +use crate::ui::display::font::FontInfo; + +// NOTE: hand-changed the width and advance of '_' to 5 + +/// ' ' (ASCII 32) +const Font_PixelOperator_Bold_8_glyph_32: [u8; 5] = [ 0, 0, 4, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_PixelOperator_Bold_8_glyph_33: [u8; 7] = [ 2, 7, 5, 1, 7, 255, 204 ]; + +/// '"' (ASCII 34) +const Font_PixelOperator_Bold_8_glyph_34: [u8; 7] = [ 5, 3, 6, 0, 7, 222, 246 ]; + +/// '#' (ASCII 35) +const Font_PixelOperator_Bold_8_glyph_35: [u8; 11] = [ 7, 6, 8, 0, 6, 109, 253, 179, 111, 237, 128 ]; + +/// '$' (ASCII 36) +const Font_PixelOperator_Bold_8_glyph_36: [u8; 12] = [ 7, 7, 8, 0, 7, 16, 251, 67, 225, 127, 132, 0 ]; + +/// '%' (ASCII 37) +const Font_PixelOperator_Bold_8_glyph_37: [u8; 16] = [ 12, 7, 13, 0, 7, 112, 141, 152, 219, 7, 110, 13, 177, 155, 16, 224 ]; + +/// '&' (ASCII 38) +const Font_PixelOperator_Bold_8_glyph_38: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 30, 207, 55, 192 ]; + +/// ''' (ASCII 39) +const Font_PixelOperator_Bold_8_glyph_39: [u8; 6] = [ 2, 3, 5, 1, 7, 252 ]; + +/// '(' (ASCII 40) +const Font_PixelOperator_Bold_8_glyph_40: [u8; 9] = [ 4, 7, 7, 2, 7, 54, 204, 198, 48 ]; + +/// ')' (ASCII 41) +const Font_PixelOperator_Bold_8_glyph_41: [u8; 9] = [ 4, 7, 7, 0, 7, 198, 51, 54, 192 ]; + +/// '*' (ASCII 42) +const Font_PixelOperator_Bold_8_glyph_42: [u8; 10] = [ 5, 7, 6, 0, 7, 37, 126, 239, 212, 128 ]; + +/// '+' (ASCII 43) +const Font_PixelOperator_Bold_8_glyph_43: [u8; 9] = [ 6, 5, 7, 0, 6, 48, 207, 204, 48 ]; + +/// ',' (ASCII 44) +const Font_PixelOperator_Bold_8_glyph_44: [u8; 7] = [ 3, 3, 5, 0, 2, 111, 0 ]; + +/// '-' (ASCII 45) +const Font_PixelOperator_Bold_8_glyph_45: [u8; 6] = [ 4, 1, 5, 0, 4, 240 ]; + +/// '.' (ASCII 46) +const Font_PixelOperator_Bold_8_glyph_46: [u8; 6] = [ 2, 1, 5, 1, 1, 192 ]; + +/// '/' (ASCII 47) +const Font_PixelOperator_Bold_8_glyph_47: [u8; 9] = [ 4, 7, 5, 0, 7, 51, 102, 108, 192 ]; + +/// '0' (ASCII 48) +const Font_PixelOperator_Bold_8_glyph_48: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 61, 255, 239, 55, 128 ]; + +/// '1' (ASCII 49) +const Font_PixelOperator_Bold_8_glyph_49: [u8; 9] = [ 4, 7, 7, 1, 7, 55, 251, 51, 48 ]; + +/// '2' (ASCII 50) +const Font_PixelOperator_Bold_8_glyph_50: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 48, 198, 49, 143, 192 ]; + +/// '3' (ASCII 51) +const Font_PixelOperator_Bold_8_glyph_51: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 48, 206, 15, 55, 128 ]; + +/// '4' (ASCII 52) +const Font_PixelOperator_Bold_8_glyph_52: [u8; 11] = [ 6, 7, 7, 0, 7, 28, 246, 243, 252, 48, 192 ]; + +/// '5' (ASCII 53) +const Font_PixelOperator_Bold_8_glyph_53: [u8; 11] = [ 6, 7, 7, 0, 7, 255, 15, 131, 15, 55, 128 ]; + +/// '6' (ASCII 54) +const Font_PixelOperator_Bold_8_glyph_54: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 62, 207, 55, 128 ]; + +/// '7' (ASCII 55) +const Font_PixelOperator_Bold_8_glyph_55: [u8; 11] = [ 6, 7, 7, 0, 7, 252, 49, 140, 99, 12, 0 ]; + +/// '8' (ASCII 56) +const Font_PixelOperator_Bold_8_glyph_56: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 222, 207, 55, 128 ]; + +/// '9' (ASCII 57) +const Font_PixelOperator_Bold_8_glyph_57: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 223, 15, 55, 128 ]; + +/// ':' (ASCII 58) +const Font_PixelOperator_Bold_8_glyph_58: [u8; 7] = [ 2, 5, 5, 1, 5, 192, 192 ]; + +/// ';' (ASCII 59) +const Font_PixelOperator_Bold_8_glyph_59: [u8; 8] = [ 3, 6, 5, 0, 5, 96, 55, 128 ]; + +/// '<' (ASCII 60) +const Font_PixelOperator_Bold_8_glyph_60: [u8; 8] = [ 4, 5, 5, 0, 6, 54, 198, 48 ]; + +/// '=' (ASCII 61) +const Font_PixelOperator_Bold_8_glyph_61: [u8; 7] = [ 4, 3, 5, 0, 5, 240, 240 ]; + +/// '>' (ASCII 62) +const Font_PixelOperator_Bold_8_glyph_62: [u8; 8] = [ 4, 5, 5, 0, 6, 198, 54, 192 ]; + +/// '?' (ASCII 63) +const Font_PixelOperator_Bold_8_glyph_63: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 48, 198, 48, 3, 0 ]; + +/// '@' (ASCII 64) +const Font_PixelOperator_Bold_8_glyph_64: [u8; 12] = [ 7, 8, 8, 0, 7, 125, 6, 109, 90, 179, 160, 62 ]; + +/// 'A' (ASCII 65) +const Font_PixelOperator_Bold_8_glyph_65: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 243, 255, 60, 192 ]; + +/// 'B' (ASCII 66) +const Font_PixelOperator_Bold_8_glyph_66: [u8; 11] = [ 6, 7, 7, 0, 7, 251, 60, 254, 207, 63, 128 ]; + +/// 'C' (ASCII 67) +const Font_PixelOperator_Bold_8_glyph_67: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 48, 195, 55, 128 ]; + +/// 'D' (ASCII 68) +const Font_PixelOperator_Bold_8_glyph_68: [u8; 11] = [ 6, 7, 7, 0, 7, 251, 60, 243, 207, 63, 128 ]; + +/// 'E' (ASCII 69) +const Font_PixelOperator_Bold_8_glyph_69: [u8; 11] = [ 6, 7, 7, 0, 7, 255, 12, 60, 195, 15, 192 ]; + +/// 'F' (ASCII 70) +const Font_PixelOperator_Bold_8_glyph_70: [u8; 11] = [ 6, 7, 7, 0, 7, 255, 12, 60, 195, 12, 0 ]; + +/// 'G' (ASCII 71) +const Font_PixelOperator_Bold_8_glyph_71: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 55, 207, 55, 192 ]; + +/// 'H' (ASCII 72) +const Font_PixelOperator_Bold_8_glyph_72: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 60, 255, 207, 60, 192 ]; + +/// 'I' (ASCII 73) +const Font_PixelOperator_Bold_8_glyph_73: [u8; 7] = [ 2, 7, 5, 1, 7, 255, 252 ]; + +/// 'J' (ASCII 74) +const Font_PixelOperator_Bold_8_glyph_74: [u8; 11] = [ 6, 7, 7, 0, 7, 12, 48, 195, 15, 55, 128 ]; + +/// 'K' (ASCII 75) +const Font_PixelOperator_Bold_8_glyph_75: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 111, 56, 243, 108, 192 ]; + +/// 'L' (ASCII 76) +const Font_PixelOperator_Bold_8_glyph_76: [u8; 11] = [ 6, 7, 7, 0, 7, 195, 12, 48, 195, 15, 192 ]; + +/// 'M' (ASCII 77) +const Font_PixelOperator_Bold_8_glyph_77: [u8; 12] = [ 7, 7, 8, 0, 7, 199, 143, 191, 253, 120, 241, 128 ]; + +/// 'N' (ASCII 78) +const Font_PixelOperator_Bold_8_glyph_78: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 62, 255, 223, 60, 192 ]; + +/// 'O' (ASCII 79) +const Font_PixelOperator_Bold_8_glyph_79: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 243, 207, 55, 128 ]; + +/// 'P' (ASCII 80) +const Font_PixelOperator_Bold_8_glyph_80: [u8; 11] = [ 6, 7, 7, 0, 7, 251, 60, 243, 251, 12, 0 ]; + +/// 'Q' (ASCII 81) +const Font_PixelOperator_Bold_8_glyph_81: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 251, 255, 102, 192 ]; + +/// 'R' (ASCII 82) +const Font_PixelOperator_Bold_8_glyph_82: [u8; 11] = [ 6, 7, 7, 0, 7, 251, 60, 243, 251, 108, 192 ]; + +/// 'S' (ASCII 83) +const Font_PixelOperator_Bold_8_glyph_83: [u8; 11] = [ 6, 7, 7, 0, 7, 123, 60, 30, 15, 55, 128 ]; + +/// 'T' (ASCII 84) +const Font_PixelOperator_Bold_8_glyph_84: [u8; 11] = [ 6, 7, 7, 0, 7, 252, 195, 12, 48, 195, 0 ]; + +/// 'U' (ASCII 85) +const Font_PixelOperator_Bold_8_glyph_85: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 60, 243, 207, 55, 128 ]; + +/// 'V' (ASCII 86) +const Font_PixelOperator_Bold_8_glyph_86: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 60, 243, 205, 227, 0 ]; + +/// 'W' (ASCII 87) +const Font_PixelOperator_Bold_8_glyph_87: [u8; 12] = [ 7, 7, 8, 0, 7, 199, 143, 94, 189, 122, 219, 0 ]; + +/// 'X' (ASCII 88) +const Font_PixelOperator_Bold_8_glyph_88: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 55, 140, 123, 60, 192 ]; + +/// 'Y' (ASCII 89) +const Font_PixelOperator_Bold_8_glyph_89: [u8; 11] = [ 6, 7, 7, 0, 7, 207, 55, 140, 48, 195, 0 ]; + +/// 'Z' (ASCII 90) +const Font_PixelOperator_Bold_8_glyph_90: [u8; 11] = [ 6, 7, 7, 0, 7, 252, 49, 140, 99, 15, 192 ]; + +/// '[' (ASCII 91) +const Font_PixelOperator_Bold_8_glyph_91: [u8; 9] = [ 4, 7, 7, 2, 7, 252, 204, 204, 240 ]; + +/// '\' (ASCII 92) +const Font_PixelOperator_Bold_8_glyph_92: [u8; 9] = [ 4, 7, 5, 0, 7, 204, 102, 99, 48 ]; + +/// ']' (ASCII 93) +const Font_PixelOperator_Bold_8_glyph_93: [u8; 9] = [ 4, 7, 6, 0, 7, 243, 51, 51, 240 ]; + +/// '^' (ASCII 94) +const Font_PixelOperator_Bold_8_glyph_94: [u8; 8] = [ 6, 4, 7, 0, 7, 49, 236, 225 ]; + +/// '_' (ASCII 95) +const Font_PixelOperator_Bold_8_glyph_95: [u8; 6] = [ 5, 1, 5, 0, 0, 248 ]; // width (1st), advance (3rd) changed to 5, last byte to 248 + +/// '`' (ASCII 96) +const Font_PixelOperator_Bold_8_glyph_96: [u8; 6] = [ 3, 2, 5, 0, 7, 204 ]; + +/// 'a' (ASCII 97) +const Font_PixelOperator_Bold_8_glyph_97: [u8; 9] = [ 6, 5, 7, 0, 5, 120, 55, 243, 124 ]; + +/// 'b' (ASCII 98) +const Font_PixelOperator_Bold_8_glyph_98: [u8; 11] = [ 6, 7, 7, 0, 7, 195, 15, 179, 207, 63, 128 ]; + +/// 'c' (ASCII 99) +const Font_PixelOperator_Bold_8_glyph_99: [u8; 9] = [ 6, 5, 7, 0, 5, 123, 60, 51, 120 ]; + +/// 'd' (ASCII 100) +const Font_PixelOperator_Bold_8_glyph_100: [u8; 11] = [ 6, 7, 7, 0, 7, 12, 55, 243, 207, 55, 192 ]; + +/// 'e' (ASCII 101) +const Font_PixelOperator_Bold_8_glyph_101: [u8; 9] = [ 6, 5, 7, 0, 5, 123, 63, 240, 120 ]; + +/// 'f' (ASCII 102) +const Font_PixelOperator_Bold_8_glyph_102: [u8; 10] = [ 5, 7, 6, 0, 7, 59, 62, 198, 49, 128 ]; + +/// 'g' (ASCII 103) +const Font_PixelOperator_Bold_8_glyph_103: [u8; 10] = [ 6, 6, 7, 0, 5, 127, 60, 223, 13, 224 ]; + +/// 'h' (ASCII 104) +const Font_PixelOperator_Bold_8_glyph_104: [u8; 11] = [ 6, 7, 7, 0, 7, 195, 15, 179, 207, 60, 192 ]; + +/// 'i' (ASCII 105) +const Font_PixelOperator_Bold_8_glyph_105: [u8; 7] = [ 2, 7, 5, 1, 7, 207, 252 ]; + +/// 'j' (ASCII 106) +const Font_PixelOperator_Bold_8_glyph_106: [u8; 11] = [ 6, 8, 7, 0, 7, 12, 0, 195, 12, 60, 222 ]; + +/// 'k' (ASCII 107) +const Font_PixelOperator_Bold_8_glyph_107: [u8; 11] = [ 6, 7, 7, 0, 7, 195, 13, 188, 243, 108, 192 ]; + +/// 'l' (ASCII 108) +const Font_PixelOperator_Bold_8_glyph_108: [u8; 8] = [ 3, 7, 5, 1, 7, 219, 109, 152 ]; + +/// 'm' (ASCII 109) +const Font_PixelOperator_Bold_8_glyph_109: [u8; 10] = [ 7, 5, 8, 0, 5, 237, 175, 94, 60, 96 ]; + +/// 'n' (ASCII 110) +const Font_PixelOperator_Bold_8_glyph_110: [u8; 9] = [ 6, 5, 7, 0, 5, 251, 60, 243, 204 ]; + +/// 'o' (ASCII 111) +const Font_PixelOperator_Bold_8_glyph_111: [u8; 9] = [ 6, 5, 7, 0, 5, 123, 60, 243, 120 ]; + +/// 'p' (ASCII 112) +const Font_PixelOperator_Bold_8_glyph_112: [u8; 10] = [ 6, 6, 7, 0, 5, 251, 60, 254, 195, 0 ]; + +/// 'q' (ASCII 113) +const Font_PixelOperator_Bold_8_glyph_113: [u8; 10] = [ 6, 6, 7, 0, 5, 127, 60, 223, 12, 48 ]; + +/// 'r' (ASCII 114) +const Font_PixelOperator_Bold_8_glyph_114: [u8; 9] = [ 6, 5, 7, 0, 5, 207, 126, 48, 192 ]; + +/// 's' (ASCII 115) +const Font_PixelOperator_Bold_8_glyph_115: [u8; 9] = [ 6, 5, 7, 0, 5, 123, 7, 131, 248 ]; + +/// 't' (ASCII 116) +const Font_PixelOperator_Bold_8_glyph_116: [u8; 9] = [ 5, 6, 6, 0, 6, 103, 216, 198, 28 ]; + +/// 'u' (ASCII 117) +const Font_PixelOperator_Bold_8_glyph_117: [u8; 9] = [ 6, 5, 7, 0, 5, 207, 60, 243, 120 ]; + +/// 'v' (ASCII 118) +const Font_PixelOperator_Bold_8_glyph_118: [u8; 9] = [ 6, 5, 7, 0, 5, 207, 60, 222, 48 ]; + +/// 'w' (ASCII 119) +const Font_PixelOperator_Bold_8_glyph_119: [u8; 10] = [ 7, 5, 8, 0, 5, 199, 143, 94, 182, 192 ]; + +/// 'x' (ASCII 120) +const Font_PixelOperator_Bold_8_glyph_120: [u8; 9] = [ 6, 5, 7, 0, 5, 205, 227, 30, 204 ]; + +/// 'y' (ASCII 121) +const Font_PixelOperator_Bold_8_glyph_121: [u8; 10] = [ 6, 6, 7, 0, 5, 207, 60, 223, 13, 224 ]; + +/// 'z' (ASCII 122) +const Font_PixelOperator_Bold_8_glyph_122: [u8; 9] = [ 6, 5, 7, 0, 5, 252, 99, 24, 252 ]; + +/// '{' (ASCII 123) +const Font_PixelOperator_Bold_8_glyph_123: [u8; 10] = [ 5, 7, 6, 0, 7, 59, 25, 134, 48, 224 ]; + +/// '|' (ASCII 124) +const Font_PixelOperator_Bold_8_glyph_124: [u8; 7] = [ 2, 7, 5, 1, 7, 255, 252 ]; + +/// '}' (ASCII 125) +const Font_PixelOperator_Bold_8_glyph_125: [u8; 10] = [ 5, 7, 6, 0, 7, 225, 140, 51, 27, 128 ]; + +/// '~' (ASCII 126) +const Font_PixelOperator_Bold_8_glyph_126: [u8; 7] = [ 7, 2, 8, 0, 7, 119, 184 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_PixelOperator_Bold_8_glyph_nonprintable: [u8; 11] = [ 6, 7, 7, 0, 7, 132, 207, 57, 207, 252, 255 ]; + +/// Array of references for 'PixelOperator_Bold_8' normal ASCII glyphs +const Font_PixelOperator_Bold_8: [&[u8]; 95] = [ + &Font_PixelOperator_Bold_8_glyph_32, + &Font_PixelOperator_Bold_8_glyph_33, + &Font_PixelOperator_Bold_8_glyph_34, + &Font_PixelOperator_Bold_8_glyph_35, + &Font_PixelOperator_Bold_8_glyph_36, + &Font_PixelOperator_Bold_8_glyph_37, + &Font_PixelOperator_Bold_8_glyph_38, + &Font_PixelOperator_Bold_8_glyph_39, + &Font_PixelOperator_Bold_8_glyph_40, + &Font_PixelOperator_Bold_8_glyph_41, + &Font_PixelOperator_Bold_8_glyph_42, + &Font_PixelOperator_Bold_8_glyph_43, + &Font_PixelOperator_Bold_8_glyph_44, + &Font_PixelOperator_Bold_8_glyph_45, + &Font_PixelOperator_Bold_8_glyph_46, + &Font_PixelOperator_Bold_8_glyph_47, + &Font_PixelOperator_Bold_8_glyph_48, + &Font_PixelOperator_Bold_8_glyph_49, + &Font_PixelOperator_Bold_8_glyph_50, + &Font_PixelOperator_Bold_8_glyph_51, + &Font_PixelOperator_Bold_8_glyph_52, + &Font_PixelOperator_Bold_8_glyph_53, + &Font_PixelOperator_Bold_8_glyph_54, + &Font_PixelOperator_Bold_8_glyph_55, + &Font_PixelOperator_Bold_8_glyph_56, + &Font_PixelOperator_Bold_8_glyph_57, + &Font_PixelOperator_Bold_8_glyph_58, + &Font_PixelOperator_Bold_8_glyph_59, + &Font_PixelOperator_Bold_8_glyph_60, + &Font_PixelOperator_Bold_8_glyph_61, + &Font_PixelOperator_Bold_8_glyph_62, + &Font_PixelOperator_Bold_8_glyph_63, + &Font_PixelOperator_Bold_8_glyph_64, + &Font_PixelOperator_Bold_8_glyph_65, + &Font_PixelOperator_Bold_8_glyph_66, + &Font_PixelOperator_Bold_8_glyph_67, + &Font_PixelOperator_Bold_8_glyph_68, + &Font_PixelOperator_Bold_8_glyph_69, + &Font_PixelOperator_Bold_8_glyph_70, + &Font_PixelOperator_Bold_8_glyph_71, + &Font_PixelOperator_Bold_8_glyph_72, + &Font_PixelOperator_Bold_8_glyph_73, + &Font_PixelOperator_Bold_8_glyph_74, + &Font_PixelOperator_Bold_8_glyph_75, + &Font_PixelOperator_Bold_8_glyph_76, + &Font_PixelOperator_Bold_8_glyph_77, + &Font_PixelOperator_Bold_8_glyph_78, + &Font_PixelOperator_Bold_8_glyph_79, + &Font_PixelOperator_Bold_8_glyph_80, + &Font_PixelOperator_Bold_8_glyph_81, + &Font_PixelOperator_Bold_8_glyph_82, + &Font_PixelOperator_Bold_8_glyph_83, + &Font_PixelOperator_Bold_8_glyph_84, + &Font_PixelOperator_Bold_8_glyph_85, + &Font_PixelOperator_Bold_8_glyph_86, + &Font_PixelOperator_Bold_8_glyph_87, + &Font_PixelOperator_Bold_8_glyph_88, + &Font_PixelOperator_Bold_8_glyph_89, + &Font_PixelOperator_Bold_8_glyph_90, + &Font_PixelOperator_Bold_8_glyph_91, + &Font_PixelOperator_Bold_8_glyph_92, + &Font_PixelOperator_Bold_8_glyph_93, + &Font_PixelOperator_Bold_8_glyph_94, + &Font_PixelOperator_Bold_8_glyph_95, + &Font_PixelOperator_Bold_8_glyph_96, + &Font_PixelOperator_Bold_8_glyph_97, + &Font_PixelOperator_Bold_8_glyph_98, + &Font_PixelOperator_Bold_8_glyph_99, + &Font_PixelOperator_Bold_8_glyph_100, + &Font_PixelOperator_Bold_8_glyph_101, + &Font_PixelOperator_Bold_8_glyph_102, + &Font_PixelOperator_Bold_8_glyph_103, + &Font_PixelOperator_Bold_8_glyph_104, + &Font_PixelOperator_Bold_8_glyph_105, + &Font_PixelOperator_Bold_8_glyph_106, + &Font_PixelOperator_Bold_8_glyph_107, + &Font_PixelOperator_Bold_8_glyph_108, + &Font_PixelOperator_Bold_8_glyph_109, + &Font_PixelOperator_Bold_8_glyph_110, + &Font_PixelOperator_Bold_8_glyph_111, + &Font_PixelOperator_Bold_8_glyph_112, + &Font_PixelOperator_Bold_8_glyph_113, + &Font_PixelOperator_Bold_8_glyph_114, + &Font_PixelOperator_Bold_8_glyph_115, + &Font_PixelOperator_Bold_8_glyph_116, + &Font_PixelOperator_Bold_8_glyph_117, + &Font_PixelOperator_Bold_8_glyph_118, + &Font_PixelOperator_Bold_8_glyph_119, + &Font_PixelOperator_Bold_8_glyph_120, + &Font_PixelOperator_Bold_8_glyph_121, + &Font_PixelOperator_Bold_8_glyph_122, + &Font_PixelOperator_Bold_8_glyph_123, + &Font_PixelOperator_Bold_8_glyph_124, + &Font_PixelOperator_Bold_8_glyph_125, + &Font_PixelOperator_Bold_8_glyph_126, +]; + +/// Array of references for 'PixelOperator_Bold_8' ASCII glyphs (forced uppercase) +const Font_PixelOperator_Bold_8_upper: [&[u8]; 95] = [ + &Font_PixelOperator_Bold_8_glyph_32, + &Font_PixelOperator_Bold_8_glyph_33, + &Font_PixelOperator_Bold_8_glyph_34, + &Font_PixelOperator_Bold_8_glyph_35, + &Font_PixelOperator_Bold_8_glyph_36, + &Font_PixelOperator_Bold_8_glyph_37, + &Font_PixelOperator_Bold_8_glyph_38, + &Font_PixelOperator_Bold_8_glyph_39, + &Font_PixelOperator_Bold_8_glyph_40, + &Font_PixelOperator_Bold_8_glyph_41, + &Font_PixelOperator_Bold_8_glyph_42, + &Font_PixelOperator_Bold_8_glyph_43, + &Font_PixelOperator_Bold_8_glyph_44, + &Font_PixelOperator_Bold_8_glyph_45, + &Font_PixelOperator_Bold_8_glyph_46, + &Font_PixelOperator_Bold_8_glyph_47, + &Font_PixelOperator_Bold_8_glyph_48, + &Font_PixelOperator_Bold_8_glyph_49, + &Font_PixelOperator_Bold_8_glyph_50, + &Font_PixelOperator_Bold_8_glyph_51, + &Font_PixelOperator_Bold_8_glyph_52, + &Font_PixelOperator_Bold_8_glyph_53, + &Font_PixelOperator_Bold_8_glyph_54, + &Font_PixelOperator_Bold_8_glyph_55, + &Font_PixelOperator_Bold_8_glyph_56, + &Font_PixelOperator_Bold_8_glyph_57, + &Font_PixelOperator_Bold_8_glyph_58, + &Font_PixelOperator_Bold_8_glyph_59, + &Font_PixelOperator_Bold_8_glyph_60, + &Font_PixelOperator_Bold_8_glyph_61, + &Font_PixelOperator_Bold_8_glyph_62, + &Font_PixelOperator_Bold_8_glyph_63, + &Font_PixelOperator_Bold_8_glyph_64, + &Font_PixelOperator_Bold_8_glyph_65, + &Font_PixelOperator_Bold_8_glyph_66, + &Font_PixelOperator_Bold_8_glyph_67, + &Font_PixelOperator_Bold_8_glyph_68, + &Font_PixelOperator_Bold_8_glyph_69, + &Font_PixelOperator_Bold_8_glyph_70, + &Font_PixelOperator_Bold_8_glyph_71, + &Font_PixelOperator_Bold_8_glyph_72, + &Font_PixelOperator_Bold_8_glyph_73, + &Font_PixelOperator_Bold_8_glyph_74, + &Font_PixelOperator_Bold_8_glyph_75, + &Font_PixelOperator_Bold_8_glyph_76, + &Font_PixelOperator_Bold_8_glyph_77, + &Font_PixelOperator_Bold_8_glyph_78, + &Font_PixelOperator_Bold_8_glyph_79, + &Font_PixelOperator_Bold_8_glyph_80, + &Font_PixelOperator_Bold_8_glyph_81, + &Font_PixelOperator_Bold_8_glyph_82, + &Font_PixelOperator_Bold_8_glyph_83, + &Font_PixelOperator_Bold_8_glyph_84, + &Font_PixelOperator_Bold_8_glyph_85, + &Font_PixelOperator_Bold_8_glyph_86, + &Font_PixelOperator_Bold_8_glyph_87, + &Font_PixelOperator_Bold_8_glyph_88, + &Font_PixelOperator_Bold_8_glyph_89, + &Font_PixelOperator_Bold_8_glyph_90, + &Font_PixelOperator_Bold_8_glyph_91, + &Font_PixelOperator_Bold_8_glyph_92, + &Font_PixelOperator_Bold_8_glyph_93, + &Font_PixelOperator_Bold_8_glyph_94, + &Font_PixelOperator_Bold_8_glyph_95, + &Font_PixelOperator_Bold_8_glyph_96, + &Font_PixelOperator_Bold_8_glyph_65, // a -> A + &Font_PixelOperator_Bold_8_glyph_66, // b -> B + &Font_PixelOperator_Bold_8_glyph_67, // c -> C + &Font_PixelOperator_Bold_8_glyph_68, // d -> D + &Font_PixelOperator_Bold_8_glyph_69, // e -> E + &Font_PixelOperator_Bold_8_glyph_70, // f -> F + &Font_PixelOperator_Bold_8_glyph_71, // g -> G + &Font_PixelOperator_Bold_8_glyph_72, // h -> H + &Font_PixelOperator_Bold_8_glyph_73, // i -> I + &Font_PixelOperator_Bold_8_glyph_74, // j -> J + &Font_PixelOperator_Bold_8_glyph_75, // k -> K + &Font_PixelOperator_Bold_8_glyph_76, // l -> L + &Font_PixelOperator_Bold_8_glyph_77, // m -> M + &Font_PixelOperator_Bold_8_glyph_78, // n -> N + &Font_PixelOperator_Bold_8_glyph_79, // o -> O + &Font_PixelOperator_Bold_8_glyph_80, // p -> P + &Font_PixelOperator_Bold_8_glyph_81, // q -> Q + &Font_PixelOperator_Bold_8_glyph_82, // r -> R + &Font_PixelOperator_Bold_8_glyph_83, // s -> S + &Font_PixelOperator_Bold_8_glyph_84, // t -> T + &Font_PixelOperator_Bold_8_glyph_85, // u -> U + &Font_PixelOperator_Bold_8_glyph_86, // v -> V + &Font_PixelOperator_Bold_8_glyph_87, // w -> W + &Font_PixelOperator_Bold_8_glyph_88, // x -> X + &Font_PixelOperator_Bold_8_glyph_89, // y -> Y + &Font_PixelOperator_Bold_8_glyph_90, // z -> Z + &Font_PixelOperator_Bold_8_glyph_123, + &Font_PixelOperator_Bold_8_glyph_124, + &Font_PixelOperator_Bold_8_glyph_125, + &Font_PixelOperator_Bold_8_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_PixelOperator_Bold_8_info: FontInfo = FontInfo { + height: 8, + max_height: 8, + baseline: 1, + glyph_data: &Font_PixelOperator_Bold_8, + glyph_nonprintable: &Font_PixelOperator_Bold_8_glyph_nonprintable, +}; + +/// FontInfo struct for forced uppercase usage +pub const Font_PixelOperator_Bold_8_upper_info: FontInfo = FontInfo { + height: 8, + max_height: 8, + baseline: 1, + glyph_data: &Font_PixelOperator_Bold_8_upper, + glyph_nonprintable: &Font_PixelOperator_Bold_8_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs new file mode 100644 index 00000000000..7470a1f8bac --- /dev/null +++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperator_regular_8.rs @@ -0,0 +1,516 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 1-bit glyph data + +use crate::ui::display::font::FontInfo; + +// NOTE: hand-changed the width and advance of '_' to 5 + +/// ' ' (ASCII 32) +const Font_PixelOperator_Regular_8_glyph_32: [u8; 5] = [ 0, 0, 4, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_PixelOperator_Regular_8_glyph_33: [u8; 6] = [ 1, 7, 4, 1, 7, 250 ]; + +/// '"' (ASCII 34) +const Font_PixelOperator_Regular_8_glyph_34: [u8; 7] = [ 3, 3, 6, 1, 7, 182, 128 ]; + +/// '#' (ASCII 35) +const Font_PixelOperator_Regular_8_glyph_35: [u8; 10] = [ 6, 6, 7, 0, 6, 75, 244, 146, 253, 32 ]; + +/// '$' (ASCII 36) +const Font_PixelOperator_Regular_8_glyph_36: [u8; 10] = [ 5, 7, 6, 0, 7, 35, 168, 226, 248, 128 ]; + +/// '%' (ASCII 37) +const Font_PixelOperator_Regular_8_glyph_37: [u8; 12] = [ 7, 7, 8, 0, 7, 65, 74, 162, 162, 169, 65, 0 ]; + +/// '&' (ASCII 38) +const Font_PixelOperator_Regular_8_glyph_38: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 96, 232, 197, 224 ]; + +/// ''' (ASCII 39) +const Font_PixelOperator_Regular_8_glyph_39: [u8; 6] = [ 1, 3, 4, 1, 7, 224 ]; + +/// '(' (ASCII 40) +const Font_PixelOperator_Regular_8_glyph_40: [u8; 8] = [ 3, 7, 6, 2, 7, 42, 72, 136 ]; + +/// ')' (ASCII 41) +const Font_PixelOperator_Regular_8_glyph_41: [u8; 8] = [ 3, 7, 6, 0, 7, 136, 146, 160 ]; + +/// '*' (ASCII 42) +const Font_PixelOperator_Regular_8_glyph_42: [u8; 9] = [ 5, 5, 6, 0, 7, 37, 93, 82, 0 ]; + +/// '+' (ASCII 43) +const Font_PixelOperator_Regular_8_glyph_43: [u8; 9] = [ 5, 5, 6, 0, 6, 33, 62, 66, 0 ]; + +/// ',' (ASCII 44) +const Font_PixelOperator_Regular_8_glyph_44: [u8; 6] = [ 2, 3, 4, 0, 2, 88 ]; + +/// '-' (ASCII 45) +const Font_PixelOperator_Regular_8_glyph_45: [u8; 6] = [ 4, 1, 5, 0, 4, 240 ]; + +/// '.' (ASCII 46) +const Font_PixelOperator_Regular_8_glyph_46: [u8; 6] = [ 1, 1, 4, 1, 1, 128 ]; + +/// '/' (ASCII 47) +const Font_PixelOperator_Regular_8_glyph_47: [u8; 8] = [ 3, 7, 4, 0, 7, 37, 37, 32 ]; + +/// '0' (ASCII 48) +const Font_PixelOperator_Regular_8_glyph_48: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 103, 92, 197, 192 ]; + +/// '1' (ASCII 49) +const Font_PixelOperator_Regular_8_glyph_49: [u8; 8] = [ 3, 7, 6, 1, 7, 46, 146, 72 ]; + +/// '2' (ASCII 50) +const Font_PixelOperator_Regular_8_glyph_50: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 66, 34, 35, 224 ]; + +/// '3' (ASCII 51) +const Font_PixelOperator_Regular_8_glyph_51: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 66, 96, 197, 192 ]; + +/// '4' (ASCII 52) +const Font_PixelOperator_Regular_8_glyph_52: [u8; 10] = [ 5, 7, 6, 0, 7, 25, 83, 31, 132, 32 ]; + +/// '5' (ASCII 53) +const Font_PixelOperator_Regular_8_glyph_53: [u8; 10] = [ 5, 7, 6, 0, 7, 252, 60, 16, 197, 192 ]; + +/// '6' (ASCII 54) +const Font_PixelOperator_Regular_8_glyph_54: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 97, 232, 197, 192 ]; + +/// '7' (ASCII 55) +const Font_PixelOperator_Regular_8_glyph_55: [u8; 10] = [ 5, 7, 6, 0, 7, 248, 68, 68, 66, 0 ]; + +/// '8' (ASCII 56) +const Font_PixelOperator_Regular_8_glyph_56: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 98, 232, 197, 192 ]; + +/// '9' (ASCII 57) +const Font_PixelOperator_Regular_8_glyph_57: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 98, 240, 197, 192 ]; + +/// ':' (ASCII 58) +const Font_PixelOperator_Regular_8_glyph_58: [u8; 6] = [ 1, 5, 4, 1, 5, 136 ]; + +/// ';' (ASCII 59) +const Font_PixelOperator_Regular_8_glyph_59: [u8; 7] = [ 2, 6, 4, 0, 5, 65, 96 ]; + +/// '<' (ASCII 60) +const Font_PixelOperator_Regular_8_glyph_60: [u8; 7] = [ 3, 5, 4, 0, 6, 42, 34 ]; + +/// '=' (ASCII 61) +const Font_PixelOperator_Regular_8_glyph_61: [u8; 7] = [ 4, 3, 5, 0, 5, 240, 240 ]; + +/// '>' (ASCII 62) +const Font_PixelOperator_Regular_8_glyph_62: [u8; 7] = [ 3, 5, 4, 0, 6, 136, 168 ]; + +/// '?' (ASCII 63) +const Font_PixelOperator_Regular_8_glyph_63: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 66, 34, 0, 128 ]; + +/// '@' (ASCII 64) +const Font_PixelOperator_Regular_8_glyph_64: [u8; 12] = [ 7, 8, 8, 0, 7, 125, 6, 109, 90, 179, 160, 62 ]; + +/// 'A' (ASCII 65) +const Font_PixelOperator_Regular_8_glyph_65: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 99, 31, 198, 32 ]; + +/// 'B' (ASCII 66) +const Font_PixelOperator_Regular_8_glyph_66: [u8; 10] = [ 5, 7, 6, 0, 7, 244, 99, 232, 199, 192 ]; + +/// 'C' (ASCII 67) +const Font_PixelOperator_Regular_8_glyph_67: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 97, 8, 69, 192 ]; + +/// 'D' (ASCII 68) +const Font_PixelOperator_Regular_8_glyph_68: [u8; 10] = [ 5, 7, 6, 0, 7, 244, 99, 24, 199, 192 ]; + +/// 'E' (ASCII 69) +const Font_PixelOperator_Regular_8_glyph_69: [u8; 10] = [ 5, 7, 6, 0, 7, 252, 33, 200, 67, 224 ]; + +/// 'F' (ASCII 70) +const Font_PixelOperator_Regular_8_glyph_70: [u8; 10] = [ 5, 7, 6, 0, 7, 252, 33, 200, 66, 0 ]; + +/// 'G' (ASCII 71) +const Font_PixelOperator_Regular_8_glyph_71: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 97, 56, 197, 224 ]; + +/// 'H' (ASCII 72) +const Font_PixelOperator_Regular_8_glyph_72: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 99, 248, 198, 32 ]; + +/// 'I' (ASCII 73) +const Font_PixelOperator_Regular_8_glyph_73: [u8; 6] = [ 1, 7, 4, 1, 7, 254 ]; + +/// 'J' (ASCII 74) +const Font_PixelOperator_Regular_8_glyph_74: [u8; 10] = [ 5, 7, 6, 0, 7, 8, 66, 16, 197, 192 ]; + +/// 'K' (ASCII 75) +const Font_PixelOperator_Regular_8_glyph_75: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 169, 138, 74, 32 ]; + +/// 'L' (ASCII 76) +const Font_PixelOperator_Regular_8_glyph_76: [u8; 10] = [ 5, 7, 6, 0, 7, 132, 33, 8, 67, 224 ]; + +/// 'M' (ASCII 77) +const Font_PixelOperator_Regular_8_glyph_77: [u8; 12] = [ 7, 7, 8, 0, 7, 131, 7, 29, 89, 48, 96, 128 ]; + +/// 'N' (ASCII 78) +const Font_PixelOperator_Regular_8_glyph_78: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 115, 89, 198, 32 ]; + +/// 'O' (ASCII 79) +const Font_PixelOperator_Regular_8_glyph_79: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 99, 24, 197, 192 ]; + +/// 'P' (ASCII 80) +const Font_PixelOperator_Regular_8_glyph_80: [u8; 10] = [ 5, 7, 6, 0, 7, 244, 99, 31, 66, 0 ]; + +/// 'Q' (ASCII 81) +const Font_PixelOperator_Regular_8_glyph_81: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 99, 26, 201, 160 ]; + +/// 'R' (ASCII 82) +const Font_PixelOperator_Regular_8_glyph_82: [u8; 10] = [ 5, 7, 6, 0, 7, 244, 99, 31, 74, 32 ]; + +/// 'S' (ASCII 83) +const Font_PixelOperator_Regular_8_glyph_83: [u8; 10] = [ 5, 7, 6, 0, 7, 116, 96, 224, 197, 192 ]; + +/// 'T' (ASCII 84) +const Font_PixelOperator_Regular_8_glyph_84: [u8; 10] = [ 5, 7, 6, 0, 7, 249, 8, 66, 16, 128 ]; + +/// 'U' (ASCII 85) +const Font_PixelOperator_Regular_8_glyph_85: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 99, 24, 197, 192 ]; + +/// 'V' (ASCII 86) +const Font_PixelOperator_Regular_8_glyph_86: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 99, 24, 168, 128 ]; + +/// 'W' (ASCII 87) +const Font_PixelOperator_Regular_8_glyph_87: [u8; 12] = [ 7, 7, 8, 0, 7, 131, 6, 76, 153, 50, 91, 0 ]; + +/// 'X' (ASCII 88) +const Font_PixelOperator_Regular_8_glyph_88: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 84, 69, 70, 32 ]; + +/// 'Y' (ASCII 89) +const Font_PixelOperator_Regular_8_glyph_89: [u8; 10] = [ 5, 7, 6, 0, 7, 140, 84, 66, 16, 128 ]; + +/// 'Z' (ASCII 90) +const Font_PixelOperator_Regular_8_glyph_90: [u8; 10] = [ 5, 7, 6, 0, 7, 248, 68, 68, 67, 224 ]; + +/// '[' (ASCII 91) +const Font_PixelOperator_Regular_8_glyph_91: [u8; 8] = [ 3, 7, 6, 2, 7, 242, 73, 56 ]; + +/// '\' (ASCII 92) +const Font_PixelOperator_Regular_8_glyph_92: [u8; 8] = [ 3, 7, 4, 0, 7, 145, 36, 72 ]; + +/// ']' (ASCII 93) +const Font_PixelOperator_Regular_8_glyph_93: [u8; 8] = [ 3, 7, 6, 0, 7, 228, 146, 120 ]; + +/// '^' (ASCII 94) +const Font_PixelOperator_Regular_8_glyph_94: [u8; 7] = [ 5, 3, 6, 0, 7, 34, 162 ]; + +/// '_' (ASCII 95) +const Font_PixelOperator_Regular_8_glyph_95: [u8; 6] = [ 5, 1, 5, 0, 0, 248 ]; // width (1st), advance (3rd) changed to 5, last byte to 248 + +/// '`' (ASCII 96) +const Font_PixelOperator_Regular_8_glyph_96: [u8; 6] = [ 2, 2, 4, 0, 7, 144 ]; + +/// 'a' (ASCII 97) +const Font_PixelOperator_Regular_8_glyph_97: [u8; 9] = [ 5, 5, 6, 0, 5, 112, 95, 23, 128 ]; + +/// 'b' (ASCII 98) +const Font_PixelOperator_Regular_8_glyph_98: [u8; 10] = [ 5, 7, 6, 0, 7, 132, 61, 24, 199, 192 ]; + +/// 'c' (ASCII 99) +const Font_PixelOperator_Regular_8_glyph_99: [u8; 9] = [ 5, 5, 6, 0, 5, 116, 97, 23, 0 ]; + +/// 'd' (ASCII 100) +const Font_PixelOperator_Regular_8_glyph_100: [u8; 10] = [ 5, 7, 6, 0, 7, 8, 95, 24, 197, 224 ]; + +/// 'e' (ASCII 101) +const Font_PixelOperator_Regular_8_glyph_101: [u8; 9] = [ 5, 5, 6, 0, 5, 116, 127, 7, 0 ]; + +/// 'f' (ASCII 102) +const Font_PixelOperator_Regular_8_glyph_102: [u8; 9] = [ 4, 7, 5, 0, 7, 52, 244, 68, 64 ]; + +/// 'g' (ASCII 103) +const Font_PixelOperator_Regular_8_glyph_103: [u8; 9] = [ 5, 6, 6, 0, 5, 124, 98, 240, 184 ]; + +/// 'h' (ASCII 104) +const Font_PixelOperator_Regular_8_glyph_104: [u8; 10] = [ 5, 7, 6, 0, 7, 132, 61, 24, 198, 32 ]; + +/// 'i' (ASCII 105) +const Font_PixelOperator_Regular_8_glyph_105: [u8; 6] = [ 1, 7, 4, 1, 7, 190 ]; + +/// 'j' (ASCII 106) +const Font_PixelOperator_Regular_8_glyph_106: [u8; 10] = [ 5, 8, 6, 0, 7, 8, 2, 16, 134, 46 ]; + +/// 'k' (ASCII 107) +const Font_PixelOperator_Regular_8_glyph_107: [u8; 10] = [ 5, 7, 6, 0, 7, 132, 37, 78, 74, 32 ]; + +/// 'l' (ASCII 108) +const Font_PixelOperator_Regular_8_glyph_108: [u8; 7] = [ 2, 7, 4, 1, 7, 170, 164 ]; + +/// 'm' (ASCII 109) +const Font_PixelOperator_Regular_8_glyph_109: [u8; 10] = [ 7, 5, 8, 0, 5, 237, 38, 76, 24, 32 ]; + +/// 'n' (ASCII 110) +const Font_PixelOperator_Regular_8_glyph_110: [u8; 9] = [ 5, 5, 6, 0, 5, 244, 99, 24, 128 ]; + +/// 'o' (ASCII 111) +const Font_PixelOperator_Regular_8_glyph_111: [u8; 9] = [ 5, 5, 6, 0, 5, 116, 99, 23, 0 ]; + +/// 'p' (ASCII 112) +const Font_PixelOperator_Regular_8_glyph_112: [u8; 9] = [ 5, 6, 6, 0, 5, 244, 99, 232, 64 ]; + +/// 'q' (ASCII 113) +const Font_PixelOperator_Regular_8_glyph_113: [u8; 9] = [ 5, 6, 6, 0, 5, 124, 98, 240, 132 ]; + +/// 'r' (ASCII 114) +const Font_PixelOperator_Regular_8_glyph_114: [u8; 9] = [ 5, 5, 6, 0, 5, 157, 49, 8, 0 ]; + +/// 's' (ASCII 115) +const Font_PixelOperator_Regular_8_glyph_115: [u8; 9] = [ 5, 5, 6, 0, 5, 116, 28, 31, 0 ]; + +/// 't' (ASCII 116) +const Font_PixelOperator_Regular_8_glyph_116: [u8; 8] = [ 4, 6, 5, 0, 6, 79, 68, 67 ]; + +/// 'u' (ASCII 117) +const Font_PixelOperator_Regular_8_glyph_117: [u8; 9] = [ 5, 5, 6, 0, 5, 140, 99, 23, 0 ]; + +/// 'v' (ASCII 118) +const Font_PixelOperator_Regular_8_glyph_118: [u8; 9] = [ 5, 5, 6, 0, 5, 140, 98, 162, 0 ]; + +/// 'w' (ASCII 119) +const Font_PixelOperator_Regular_8_glyph_119: [u8; 10] = [ 7, 5, 8, 0, 5, 131, 6, 76, 150, 192 ]; + +/// 'x' (ASCII 120) +const Font_PixelOperator_Regular_8_glyph_120: [u8; 9] = [ 5, 5, 6, 0, 5, 138, 136, 168, 128 ]; + +/// 'y' (ASCII 121) +const Font_PixelOperator_Regular_8_glyph_121: [u8; 9] = [ 5, 6, 6, 0, 5, 140, 98, 240, 184 ]; + +/// 'z' (ASCII 122) +const Font_PixelOperator_Regular_8_glyph_122: [u8; 9] = [ 5, 5, 6, 0, 5, 248, 136, 143, 128 ]; + +/// '{' (ASCII 123) +const Font_PixelOperator_Regular_8_glyph_123: [u8; 9] = [ 4, 7, 6, 1, 7, 52, 72, 68, 48 ]; + +/// '|' (ASCII 124) +const Font_PixelOperator_Regular_8_glyph_124: [u8; 6] = [ 1, 7, 4, 1, 7, 254 ]; + +/// '}' (ASCII 125) +const Font_PixelOperator_Regular_8_glyph_125: [u8; 9] = [ 4, 7, 6, 0, 7, 194, 33, 34, 192 ]; + +/// '~' (ASCII 126) +const Font_PixelOperator_Regular_8_glyph_126: [u8; 7] = [ 6, 2, 7, 0, 7, 102, 96 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_PixelOperator_Regular_8_glyph_nonprintable: [u8; 10] = [ 5, 7, 6, 0, 7, 139, 189, 221, 255, 127 ]; + +/// Array of references for 'PixelOperator_Regular_8' normal ASCII glyphs +const Font_PixelOperator_Regular_8: [&[u8]; 95] = [ + &Font_PixelOperator_Regular_8_glyph_32, + &Font_PixelOperator_Regular_8_glyph_33, + &Font_PixelOperator_Regular_8_glyph_34, + &Font_PixelOperator_Regular_8_glyph_35, + &Font_PixelOperator_Regular_8_glyph_36, + &Font_PixelOperator_Regular_8_glyph_37, + &Font_PixelOperator_Regular_8_glyph_38, + &Font_PixelOperator_Regular_8_glyph_39, + &Font_PixelOperator_Regular_8_glyph_40, + &Font_PixelOperator_Regular_8_glyph_41, + &Font_PixelOperator_Regular_8_glyph_42, + &Font_PixelOperator_Regular_8_glyph_43, + &Font_PixelOperator_Regular_8_glyph_44, + &Font_PixelOperator_Regular_8_glyph_45, + &Font_PixelOperator_Regular_8_glyph_46, + &Font_PixelOperator_Regular_8_glyph_47, + &Font_PixelOperator_Regular_8_glyph_48, + &Font_PixelOperator_Regular_8_glyph_49, + &Font_PixelOperator_Regular_8_glyph_50, + &Font_PixelOperator_Regular_8_glyph_51, + &Font_PixelOperator_Regular_8_glyph_52, + &Font_PixelOperator_Regular_8_glyph_53, + &Font_PixelOperator_Regular_8_glyph_54, + &Font_PixelOperator_Regular_8_glyph_55, + &Font_PixelOperator_Regular_8_glyph_56, + &Font_PixelOperator_Regular_8_glyph_57, + &Font_PixelOperator_Regular_8_glyph_58, + &Font_PixelOperator_Regular_8_glyph_59, + &Font_PixelOperator_Regular_8_glyph_60, + &Font_PixelOperator_Regular_8_glyph_61, + &Font_PixelOperator_Regular_8_glyph_62, + &Font_PixelOperator_Regular_8_glyph_63, + &Font_PixelOperator_Regular_8_glyph_64, + &Font_PixelOperator_Regular_8_glyph_65, + &Font_PixelOperator_Regular_8_glyph_66, + &Font_PixelOperator_Regular_8_glyph_67, + &Font_PixelOperator_Regular_8_glyph_68, + &Font_PixelOperator_Regular_8_glyph_69, + &Font_PixelOperator_Regular_8_glyph_70, + &Font_PixelOperator_Regular_8_glyph_71, + &Font_PixelOperator_Regular_8_glyph_72, + &Font_PixelOperator_Regular_8_glyph_73, + &Font_PixelOperator_Regular_8_glyph_74, + &Font_PixelOperator_Regular_8_glyph_75, + &Font_PixelOperator_Regular_8_glyph_76, + &Font_PixelOperator_Regular_8_glyph_77, + &Font_PixelOperator_Regular_8_glyph_78, + &Font_PixelOperator_Regular_8_glyph_79, + &Font_PixelOperator_Regular_8_glyph_80, + &Font_PixelOperator_Regular_8_glyph_81, + &Font_PixelOperator_Regular_8_glyph_82, + &Font_PixelOperator_Regular_8_glyph_83, + &Font_PixelOperator_Regular_8_glyph_84, + &Font_PixelOperator_Regular_8_glyph_85, + &Font_PixelOperator_Regular_8_glyph_86, + &Font_PixelOperator_Regular_8_glyph_87, + &Font_PixelOperator_Regular_8_glyph_88, + &Font_PixelOperator_Regular_8_glyph_89, + &Font_PixelOperator_Regular_8_glyph_90, + &Font_PixelOperator_Regular_8_glyph_91, + &Font_PixelOperator_Regular_8_glyph_92, + &Font_PixelOperator_Regular_8_glyph_93, + &Font_PixelOperator_Regular_8_glyph_94, + &Font_PixelOperator_Regular_8_glyph_95, + &Font_PixelOperator_Regular_8_glyph_96, + &Font_PixelOperator_Regular_8_glyph_97, + &Font_PixelOperator_Regular_8_glyph_98, + &Font_PixelOperator_Regular_8_glyph_99, + &Font_PixelOperator_Regular_8_glyph_100, + &Font_PixelOperator_Regular_8_glyph_101, + &Font_PixelOperator_Regular_8_glyph_102, + &Font_PixelOperator_Regular_8_glyph_103, + &Font_PixelOperator_Regular_8_glyph_104, + &Font_PixelOperator_Regular_8_glyph_105, + &Font_PixelOperator_Regular_8_glyph_106, + &Font_PixelOperator_Regular_8_glyph_107, + &Font_PixelOperator_Regular_8_glyph_108, + &Font_PixelOperator_Regular_8_glyph_109, + &Font_PixelOperator_Regular_8_glyph_110, + &Font_PixelOperator_Regular_8_glyph_111, + &Font_PixelOperator_Regular_8_glyph_112, + &Font_PixelOperator_Regular_8_glyph_113, + &Font_PixelOperator_Regular_8_glyph_114, + &Font_PixelOperator_Regular_8_glyph_115, + &Font_PixelOperator_Regular_8_glyph_116, + &Font_PixelOperator_Regular_8_glyph_117, + &Font_PixelOperator_Regular_8_glyph_118, + &Font_PixelOperator_Regular_8_glyph_119, + &Font_PixelOperator_Regular_8_glyph_120, + &Font_PixelOperator_Regular_8_glyph_121, + &Font_PixelOperator_Regular_8_glyph_122, + &Font_PixelOperator_Regular_8_glyph_123, + &Font_PixelOperator_Regular_8_glyph_124, + &Font_PixelOperator_Regular_8_glyph_125, + &Font_PixelOperator_Regular_8_glyph_126, +]; + +/// Array of references for 'PixelOperator_Regular_8' ASCII glyphs (forced uppercase) +const Font_PixelOperator_Regular_8_upper: [&[u8]; 95] = [ + &Font_PixelOperator_Regular_8_glyph_32, + &Font_PixelOperator_Regular_8_glyph_33, + &Font_PixelOperator_Regular_8_glyph_34, + &Font_PixelOperator_Regular_8_glyph_35, + &Font_PixelOperator_Regular_8_glyph_36, + &Font_PixelOperator_Regular_8_glyph_37, + &Font_PixelOperator_Regular_8_glyph_38, + &Font_PixelOperator_Regular_8_glyph_39, + &Font_PixelOperator_Regular_8_glyph_40, + &Font_PixelOperator_Regular_8_glyph_41, + &Font_PixelOperator_Regular_8_glyph_42, + &Font_PixelOperator_Regular_8_glyph_43, + &Font_PixelOperator_Regular_8_glyph_44, + &Font_PixelOperator_Regular_8_glyph_45, + &Font_PixelOperator_Regular_8_glyph_46, + &Font_PixelOperator_Regular_8_glyph_47, + &Font_PixelOperator_Regular_8_glyph_48, + &Font_PixelOperator_Regular_8_glyph_49, + &Font_PixelOperator_Regular_8_glyph_50, + &Font_PixelOperator_Regular_8_glyph_51, + &Font_PixelOperator_Regular_8_glyph_52, + &Font_PixelOperator_Regular_8_glyph_53, + &Font_PixelOperator_Regular_8_glyph_54, + &Font_PixelOperator_Regular_8_glyph_55, + &Font_PixelOperator_Regular_8_glyph_56, + &Font_PixelOperator_Regular_8_glyph_57, + &Font_PixelOperator_Regular_8_glyph_58, + &Font_PixelOperator_Regular_8_glyph_59, + &Font_PixelOperator_Regular_8_glyph_60, + &Font_PixelOperator_Regular_8_glyph_61, + &Font_PixelOperator_Regular_8_glyph_62, + &Font_PixelOperator_Regular_8_glyph_63, + &Font_PixelOperator_Regular_8_glyph_64, + &Font_PixelOperator_Regular_8_glyph_65, + &Font_PixelOperator_Regular_8_glyph_66, + &Font_PixelOperator_Regular_8_glyph_67, + &Font_PixelOperator_Regular_8_glyph_68, + &Font_PixelOperator_Regular_8_glyph_69, + &Font_PixelOperator_Regular_8_glyph_70, + &Font_PixelOperator_Regular_8_glyph_71, + &Font_PixelOperator_Regular_8_glyph_72, + &Font_PixelOperator_Regular_8_glyph_73, + &Font_PixelOperator_Regular_8_glyph_74, + &Font_PixelOperator_Regular_8_glyph_75, + &Font_PixelOperator_Regular_8_glyph_76, + &Font_PixelOperator_Regular_8_glyph_77, + &Font_PixelOperator_Regular_8_glyph_78, + &Font_PixelOperator_Regular_8_glyph_79, + &Font_PixelOperator_Regular_8_glyph_80, + &Font_PixelOperator_Regular_8_glyph_81, + &Font_PixelOperator_Regular_8_glyph_82, + &Font_PixelOperator_Regular_8_glyph_83, + &Font_PixelOperator_Regular_8_glyph_84, + &Font_PixelOperator_Regular_8_glyph_85, + &Font_PixelOperator_Regular_8_glyph_86, + &Font_PixelOperator_Regular_8_glyph_87, + &Font_PixelOperator_Regular_8_glyph_88, + &Font_PixelOperator_Regular_8_glyph_89, + &Font_PixelOperator_Regular_8_glyph_90, + &Font_PixelOperator_Regular_8_glyph_91, + &Font_PixelOperator_Regular_8_glyph_92, + &Font_PixelOperator_Regular_8_glyph_93, + &Font_PixelOperator_Regular_8_glyph_94, + &Font_PixelOperator_Regular_8_glyph_95, + &Font_PixelOperator_Regular_8_glyph_96, + &Font_PixelOperator_Regular_8_glyph_65, // a -> A + &Font_PixelOperator_Regular_8_glyph_66, // b -> B + &Font_PixelOperator_Regular_8_glyph_67, // c -> C + &Font_PixelOperator_Regular_8_glyph_68, // d -> D + &Font_PixelOperator_Regular_8_glyph_69, // e -> E + &Font_PixelOperator_Regular_8_glyph_70, // f -> F + &Font_PixelOperator_Regular_8_glyph_71, // g -> G + &Font_PixelOperator_Regular_8_glyph_72, // h -> H + &Font_PixelOperator_Regular_8_glyph_73, // i -> I + &Font_PixelOperator_Regular_8_glyph_74, // j -> J + &Font_PixelOperator_Regular_8_glyph_75, // k -> K + &Font_PixelOperator_Regular_8_glyph_76, // l -> L + &Font_PixelOperator_Regular_8_glyph_77, // m -> M + &Font_PixelOperator_Regular_8_glyph_78, // n -> N + &Font_PixelOperator_Regular_8_glyph_79, // o -> O + &Font_PixelOperator_Regular_8_glyph_80, // p -> P + &Font_PixelOperator_Regular_8_glyph_81, // q -> Q + &Font_PixelOperator_Regular_8_glyph_82, // r -> R + &Font_PixelOperator_Regular_8_glyph_83, // s -> S + &Font_PixelOperator_Regular_8_glyph_84, // t -> T + &Font_PixelOperator_Regular_8_glyph_85, // u -> U + &Font_PixelOperator_Regular_8_glyph_86, // v -> V + &Font_PixelOperator_Regular_8_glyph_87, // w -> W + &Font_PixelOperator_Regular_8_glyph_88, // x -> X + &Font_PixelOperator_Regular_8_glyph_89, // y -> Y + &Font_PixelOperator_Regular_8_glyph_90, // z -> Z + &Font_PixelOperator_Regular_8_glyph_123, + &Font_PixelOperator_Regular_8_glyph_124, + &Font_PixelOperator_Regular_8_glyph_125, + &Font_PixelOperator_Regular_8_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_PixelOperator_Regular_8_info: FontInfo = FontInfo { + height: 8, + max_height: 8, + baseline: 1, + glyph_data: &Font_PixelOperator_Regular_8, + glyph_nonprintable: &Font_PixelOperator_Regular_8_glyph_nonprintable, +}; + +/// FontInfo struct for forced uppercase usage +pub const Font_PixelOperator_Regular_8_upper_info: FontInfo = FontInfo { + height: 8, + max_height: 8, + baseline: 1, + glyph_data: &Font_PixelOperator_Regular_8_upper, + glyph_nonprintable: &Font_PixelOperator_Regular_8_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs new file mode 100644 index 00000000000..1913263ecc7 --- /dev/null +++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_pixeloperatormono_regular_8.rs @@ -0,0 +1,410 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 1-bit glyph data + +use crate::ui::display::font::FontInfo; + +// NOTE: hand-changed all the advances with 8 to 7 +// NOTE: hand-changed the visuals of "m", "w", "M" and "W" to make it narrower + + +/// ' ' (ASCII 32) +const Font_PixelOperatorMono_Regular_8_glyph_32: [u8; 5] = [ 0, 0, 7, 0, 0 ]; // width hand-changed from 8 to 7 to have 9px space between words + +/// '!' (ASCII 33) +const Font_PixelOperatorMono_Regular_8_glyph_33: [u8; 6] = [ 1, 7, 7, 2, 7, 250 ]; + +/// '"' (ASCII 34) +const Font_PixelOperatorMono_Regular_8_glyph_34: [u8; 7] = [ 3, 3, 7, 1, 7, 182, 128 ]; + +/// '#' (ASCII 35) +const Font_PixelOperatorMono_Regular_8_glyph_35: [u8; 10] = [ 6, 6, 7, 0, 6, 75, 244, 146, 253, 32 ]; + +/// '$' (ASCII 36) +const Font_PixelOperatorMono_Regular_8_glyph_36: [u8; 10] = [ 5, 7, 7, 0, 7, 35, 168, 226, 248, 128 ]; + +/// '%' (ASCII 37) +const Font_PixelOperatorMono_Regular_8_glyph_37: [u8; 12] = [ 7, 7, 7, 0, 7, 65, 74, 162, 162, 169, 65, 0 ]; + +/// '&' (ASCII 38) +const Font_PixelOperatorMono_Regular_8_glyph_38: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 96, 232, 197, 224 ]; + +/// ''' (ASCII 39) +const Font_PixelOperatorMono_Regular_8_glyph_39: [u8; 6] = [ 1, 3, 7, 2, 7, 224 ]; + +/// '(' (ASCII 40) +const Font_PixelOperatorMono_Regular_8_glyph_40: [u8; 8] = [ 3, 7, 7, 2, 7, 42, 72, 136 ]; + +/// ')' (ASCII 41) +const Font_PixelOperatorMono_Regular_8_glyph_41: [u8; 8] = [ 3, 7, 7, 0, 7, 136, 146, 160 ]; + +/// '*' (ASCII 42) +const Font_PixelOperatorMono_Regular_8_glyph_42: [u8; 9] = [ 5, 5, 7, 0, 7, 37, 93, 82, 0 ]; + +/// '+' (ASCII 43) +const Font_PixelOperatorMono_Regular_8_glyph_43: [u8; 9] = [ 5, 5, 7, 0, 6, 33, 62, 66, 0 ]; + +/// ',' (ASCII 44) +const Font_PixelOperatorMono_Regular_8_glyph_44: [u8; 6] = [ 2, 3, 7, 1, 2, 88 ]; + +/// '-' (ASCII 45) +const Font_PixelOperatorMono_Regular_8_glyph_45: [u8; 6] = [ 4, 1, 7, 1, 4, 240 ]; + +/// '.' (ASCII 46) +const Font_PixelOperatorMono_Regular_8_glyph_46: [u8; 6] = [ 1, 1, 7, 2, 1, 128 ]; + +/// '/' (ASCII 47) +const Font_PixelOperatorMono_Regular_8_glyph_47: [u8; 8] = [ 3, 7, 7, 1, 7, 37, 37, 32 ]; + +/// '0' (ASCII 48) +const Font_PixelOperatorMono_Regular_8_glyph_48: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 103, 92, 197, 192 ]; + +/// '1' (ASCII 49) +const Font_PixelOperatorMono_Regular_8_glyph_49: [u8; 10] = [ 5, 7, 7, 0, 7, 35, 40, 66, 19, 224 ]; + +/// '2' (ASCII 50) +const Font_PixelOperatorMono_Regular_8_glyph_50: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 66, 34, 35, 224 ]; + +/// '3' (ASCII 51) +const Font_PixelOperatorMono_Regular_8_glyph_51: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 66, 96, 197, 192 ]; + +/// '4' (ASCII 52) +const Font_PixelOperatorMono_Regular_8_glyph_52: [u8; 10] = [ 5, 7, 7, 0, 7, 25, 83, 31, 132, 32 ]; + +/// '5' (ASCII 53) +const Font_PixelOperatorMono_Regular_8_glyph_53: [u8; 10] = [ 5, 7, 7, 0, 7, 252, 60, 16, 197, 192 ]; + +/// '6' (ASCII 54) +const Font_PixelOperatorMono_Regular_8_glyph_54: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 97, 232, 197, 192 ]; + +/// '7' (ASCII 55) +const Font_PixelOperatorMono_Regular_8_glyph_55: [u8; 10] = [ 5, 7, 7, 0, 7, 248, 68, 68, 66, 0 ]; + +/// '8' (ASCII 56) +const Font_PixelOperatorMono_Regular_8_glyph_56: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 98, 232, 197, 192 ]; + +/// '9' (ASCII 57) +const Font_PixelOperatorMono_Regular_8_glyph_57: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 98, 240, 197, 192 ]; + +/// ':' (ASCII 58) +const Font_PixelOperatorMono_Regular_8_glyph_58: [u8; 6] = [ 1, 5, 7, 2, 5, 136 ]; + +/// ';' (ASCII 59) +const Font_PixelOperatorMono_Regular_8_glyph_59: [u8; 7] = [ 2, 6, 7, 1, 5, 65, 96 ]; + +/// '<' (ASCII 60) +const Font_PixelOperatorMono_Regular_8_glyph_60: [u8; 7] = [ 3, 5, 7, 1, 6, 42, 34 ]; + +/// '=' (ASCII 61) +const Font_PixelOperatorMono_Regular_8_glyph_61: [u8; 7] = [ 4, 3, 7, 1, 5, 240, 240 ]; + +/// '>' (ASCII 62) +const Font_PixelOperatorMono_Regular_8_glyph_62: [u8; 7] = [ 3, 5, 7, 1, 6, 136, 168 ]; + +/// '?' (ASCII 63) +const Font_PixelOperatorMono_Regular_8_glyph_63: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 66, 34, 0, 128 ]; + +/// '@' (ASCII 64) +const Font_PixelOperatorMono_Regular_8_glyph_64: [u8; 13] = [ 7, 8, 7, 0, 7, 125, 6, 109, 90, 179, 160, 62, 0 ]; + +/// 'A' (ASCII 65) +const Font_PixelOperatorMono_Regular_8_glyph_65: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 99, 31, 198, 32 ]; + +/// 'B' (ASCII 66) +const Font_PixelOperatorMono_Regular_8_glyph_66: [u8; 10] = [ 5, 7, 7, 0, 7, 244, 99, 232, 199, 192 ]; + +/// 'C' (ASCII 67) +const Font_PixelOperatorMono_Regular_8_glyph_67: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 97, 8, 69, 192 ]; + +/// 'D' (ASCII 68) +const Font_PixelOperatorMono_Regular_8_glyph_68: [u8; 10] = [ 5, 7, 7, 0, 7, 244, 99, 24, 199, 192 ]; + +/// 'E' (ASCII 69) +const Font_PixelOperatorMono_Regular_8_glyph_69: [u8; 10] = [ 5, 7, 7, 0, 7, 252, 33, 200, 67, 224 ]; + +/// 'F' (ASCII 70) +const Font_PixelOperatorMono_Regular_8_glyph_70: [u8; 10] = [ 5, 7, 7, 0, 7, 252, 33, 200, 66, 0 ]; + +/// 'G' (ASCII 71) +const Font_PixelOperatorMono_Regular_8_glyph_71: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 97, 56, 197, 224 ]; + +/// 'H' (ASCII 72) +const Font_PixelOperatorMono_Regular_8_glyph_72: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 99, 248, 198, 32 ]; + +/// 'I' (ASCII 73) +const Font_PixelOperatorMono_Regular_8_glyph_73: [u8; 10] = [ 5, 7, 7, 0, 7, 249, 8, 66, 19, 224 ]; + +/// 'J' (ASCII 74) +const Font_PixelOperatorMono_Regular_8_glyph_74: [u8; 11] = [ 6, 7, 7, 0, 7, 60, 32, 130, 10, 39, 0 ]; + +/// 'K' (ASCII 75) +const Font_PixelOperatorMono_Regular_8_glyph_75: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 169, 138, 74, 32 ]; + +/// 'L' (ASCII 76) +const Font_PixelOperatorMono_Regular_8_glyph_76: [u8; 10] = [ 5, 7, 7, 0, 7, 132, 33, 8, 67, 224 ]; + +/// 'M' (ASCII 77) +const Font_PixelOperatorMono_Regular_8_glyph_77: [u8; 10] = [ 5, 7, 7, 0, 7, 142, 235, 24, 198, 32 ]; + +/// 'N' (ASCII 78) +const Font_PixelOperatorMono_Regular_8_glyph_78: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 115, 89, 198, 32 ]; + +/// 'O' (ASCII 79) +const Font_PixelOperatorMono_Regular_8_glyph_79: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 99, 24, 197, 192 ]; + +/// 'P' (ASCII 80) +const Font_PixelOperatorMono_Regular_8_glyph_80: [u8; 10] = [ 5, 7, 7, 0, 7, 244, 99, 31, 66, 0 ]; + +/// 'Q' (ASCII 81) +const Font_PixelOperatorMono_Regular_8_glyph_81: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 99, 26, 201, 160 ]; + +/// 'R' (ASCII 82) +const Font_PixelOperatorMono_Regular_8_glyph_82: [u8; 10] = [ 5, 7, 7, 0, 7, 244, 99, 31, 74, 32 ]; + +/// 'S' (ASCII 83) +const Font_PixelOperatorMono_Regular_8_glyph_83: [u8; 10] = [ 5, 7, 7, 0, 7, 116, 96, 224, 197, 192 ]; + +/// 'T' (ASCII 84) +const Font_PixelOperatorMono_Regular_8_glyph_84: [u8; 10] = [ 5, 7, 7, 0, 7, 249, 8, 66, 16, 128 ]; + +/// 'U' (ASCII 85) +const Font_PixelOperatorMono_Regular_8_glyph_85: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 99, 24, 197, 192 ]; + +/// 'V' (ASCII 86) +const Font_PixelOperatorMono_Regular_8_glyph_86: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 99, 24, 168, 128 ]; + +/// 'W' (ASCII 87) +const Font_PixelOperatorMono_Regular_8_glyph_87: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 107, 90, 213, 64 ]; + +/// 'X' (ASCII 88) +const Font_PixelOperatorMono_Regular_8_glyph_88: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 84, 69, 70, 32 ]; + +/// 'Y' (ASCII 89) +const Font_PixelOperatorMono_Regular_8_glyph_89: [u8; 10] = [ 5, 7, 7, 0, 7, 140, 84, 66, 16, 128 ]; + +/// 'Z' (ASCII 90) +const Font_PixelOperatorMono_Regular_8_glyph_90: [u8; 10] = [ 5, 7, 7, 0, 7, 248, 68, 68, 67, 224 ]; + +/// '[' (ASCII 91) +const Font_PixelOperatorMono_Regular_8_glyph_91: [u8; 8] = [ 3, 7, 7, 2, 7, 242, 73, 56 ]; + +/// '\' (ASCII 92) +const Font_PixelOperatorMono_Regular_8_glyph_92: [u8; 8] = [ 3, 7, 7, 1, 7, 145, 36, 72 ]; + +/// ']' (ASCII 93) +const Font_PixelOperatorMono_Regular_8_glyph_93: [u8; 8] = [ 3, 7, 7, 0, 7, 228, 146, 120 ]; + +/// '^' (ASCII 94) +const Font_PixelOperatorMono_Regular_8_glyph_94: [u8; 7] = [ 5, 3, 7, 0, 7, 34, 162 ]; + +/// '_' (ASCII 95) +const Font_PixelOperatorMono_Regular_8_glyph_95: [u8; 6] = [ 7, 1, 7, 0, 0, 254 ]; + +/// '`' (ASCII 96) +const Font_PixelOperatorMono_Regular_8_glyph_96: [u8; 6] = [ 2, 2, 7, 1, 7, 144 ]; + +/// 'a' (ASCII 97) +const Font_PixelOperatorMono_Regular_8_glyph_97: [u8; 9] = [ 5, 5, 7, 0, 5, 112, 95, 23, 128 ]; + +/// 'b' (ASCII 98) +const Font_PixelOperatorMono_Regular_8_glyph_98: [u8; 10] = [ 5, 7, 7, 0, 7, 132, 61, 24, 199, 192 ]; + +/// 'c' (ASCII 99) +const Font_PixelOperatorMono_Regular_8_glyph_99: [u8; 9] = [ 5, 5, 7, 0, 5, 116, 97, 23, 0 ]; + +/// 'd' (ASCII 100) +const Font_PixelOperatorMono_Regular_8_glyph_100: [u8; 10] = [ 5, 7, 7, 0, 7, 8, 95, 24, 197, 224 ]; + +/// 'e' (ASCII 101) +const Font_PixelOperatorMono_Regular_8_glyph_101: [u8; 9] = [ 5, 5, 7, 0, 5, 116, 127, 7, 0 ]; + +/// 'f' (ASCII 102) +const Font_PixelOperatorMono_Regular_8_glyph_102: [u8; 9] = [ 4, 7, 7, 1, 7, 52, 244, 68, 64 ]; + +/// 'g' (ASCII 103) +const Font_PixelOperatorMono_Regular_8_glyph_103: [u8; 9] = [ 5, 6, 7, 0, 5, 124, 98, 240, 184 ]; + +/// 'h' (ASCII 104) +const Font_PixelOperatorMono_Regular_8_glyph_104: [u8; 10] = [ 5, 7, 7, 0, 7, 132, 61, 24, 198, 32 ]; + +/// 'i' (ASCII 105) +const Font_PixelOperatorMono_Regular_8_glyph_105: [u8; 10] = [ 5, 7, 7, 0, 7, 32, 56, 66, 19, 224 ]; + +/// 'j' (ASCII 106) +const Font_PixelOperatorMono_Regular_8_glyph_106: [u8; 10] = [ 5, 8, 7, 0, 7, 8, 14, 16, 134, 46 ]; + +/// 'k' (ASCII 107) +const Font_PixelOperatorMono_Regular_8_glyph_107: [u8; 10] = [ 5, 7, 7, 0, 7, 132, 37, 78, 74, 32 ]; + +/// 'l' (ASCII 108) +const Font_PixelOperatorMono_Regular_8_glyph_108: [u8; 10] = [ 5, 7, 7, 0, 7, 225, 8, 66, 19, 224 ]; + +/// 'm' (ASCII 109) +const Font_PixelOperatorMono_Regular_8_glyph_109: [u8; 9] = [ 5, 5, 7, 0, 5, 213, 107, 24, 128 ]; + +/// 'n' (ASCII 110) +const Font_PixelOperatorMono_Regular_8_glyph_110: [u8; 9] = [ 5, 5, 7, 0, 5, 244, 99, 24, 128 ]; + +/// 'o' (ASCII 111) +const Font_PixelOperatorMono_Regular_8_glyph_111: [u8; 9] = [ 5, 5, 7, 0, 5, 116, 99, 23, 0 ]; + +/// 'p' (ASCII 112) +const Font_PixelOperatorMono_Regular_8_glyph_112: [u8; 9] = [ 5, 6, 7, 0, 5, 244, 99, 232, 64 ]; + +/// 'q' (ASCII 113) +const Font_PixelOperatorMono_Regular_8_glyph_113: [u8; 9] = [ 5, 6, 7, 0, 5, 124, 98, 240, 132 ]; + +/// 'r' (ASCII 114) +const Font_PixelOperatorMono_Regular_8_glyph_114: [u8; 9] = [ 5, 5, 7, 0, 5, 157, 49, 8, 0 ]; + +/// 's' (ASCII 115) +const Font_PixelOperatorMono_Regular_8_glyph_115: [u8; 9] = [ 5, 5, 7, 0, 5, 116, 28, 31, 0 ]; + +/// 't' (ASCII 116) +const Font_PixelOperatorMono_Regular_8_glyph_116: [u8; 8] = [ 4, 6, 7, 1, 6, 79, 68, 67 ]; + +/// 'u' (ASCII 117) +const Font_PixelOperatorMono_Regular_8_glyph_117: [u8; 9] = [ 5, 5, 7, 0, 5, 140, 99, 23, 0 ]; + +/// 'v' (ASCII 118) +const Font_PixelOperatorMono_Regular_8_glyph_118: [u8; 9] = [ 5, 5, 7, 0, 5, 140, 98, 162, 0 ]; + +/// 'w' (ASCII 119) +const Font_PixelOperatorMono_Regular_8_glyph_119: [u8; 9] = [ 5, 5, 7, 0, 5, 140, 107, 85, 0 ]; + +/// 'x' (ASCII 120) +const Font_PixelOperatorMono_Regular_8_glyph_120: [u8; 9] = [ 5, 5, 7, 0, 5, 138, 136, 168, 128 ]; + +/// 'y' (ASCII 121) +const Font_PixelOperatorMono_Regular_8_glyph_121: [u8; 9] = [ 5, 6, 7, 0, 5, 140, 98, 240, 184 ]; + +/// 'z' (ASCII 122) +const Font_PixelOperatorMono_Regular_8_glyph_122: [u8; 9] = [ 5, 5, 7, 0, 5, 248, 136, 143, 128 ]; + +/// '{' (ASCII 123) +const Font_PixelOperatorMono_Regular_8_glyph_123: [u8; 9] = [ 4, 7, 7, 1, 7, 52, 72, 68, 48 ]; + +/// '|' (ASCII 124) +const Font_PixelOperatorMono_Regular_8_glyph_124: [u8; 6] = [ 1, 7, 7, 2, 7, 254 ]; + +/// '}' (ASCII 125) +const Font_PixelOperatorMono_Regular_8_glyph_125: [u8; 9] = [ 4, 7, 7, 0, 7, 194, 33, 34, 192 ]; + +/// '~' (ASCII 126) +const Font_PixelOperatorMono_Regular_8_glyph_126: [u8; 7] = [ 6, 2, 7, 0, 7, 102, 96 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_PixelOperatorMono_Regular_8_glyph_nonprintable: [u8; 10] = [ 5, 7, 7, 0, 7, 139, 189, 221, 255, 127 ]; + +/// Array of references for 'PixelOperatorMono_Regular_8' normal ASCII glyphs +const Font_PixelOperatorMono_Regular_8: [&[u8]; 95] = [ + &Font_PixelOperatorMono_Regular_8_glyph_32, + &Font_PixelOperatorMono_Regular_8_glyph_33, + &Font_PixelOperatorMono_Regular_8_glyph_34, + &Font_PixelOperatorMono_Regular_8_glyph_35, + &Font_PixelOperatorMono_Regular_8_glyph_36, + &Font_PixelOperatorMono_Regular_8_glyph_37, + &Font_PixelOperatorMono_Regular_8_glyph_38, + &Font_PixelOperatorMono_Regular_8_glyph_39, + &Font_PixelOperatorMono_Regular_8_glyph_40, + &Font_PixelOperatorMono_Regular_8_glyph_41, + &Font_PixelOperatorMono_Regular_8_glyph_42, + &Font_PixelOperatorMono_Regular_8_glyph_43, + &Font_PixelOperatorMono_Regular_8_glyph_44, + &Font_PixelOperatorMono_Regular_8_glyph_45, + &Font_PixelOperatorMono_Regular_8_glyph_46, + &Font_PixelOperatorMono_Regular_8_glyph_47, + &Font_PixelOperatorMono_Regular_8_glyph_48, + &Font_PixelOperatorMono_Regular_8_glyph_49, + &Font_PixelOperatorMono_Regular_8_glyph_50, + &Font_PixelOperatorMono_Regular_8_glyph_51, + &Font_PixelOperatorMono_Regular_8_glyph_52, + &Font_PixelOperatorMono_Regular_8_glyph_53, + &Font_PixelOperatorMono_Regular_8_glyph_54, + &Font_PixelOperatorMono_Regular_8_glyph_55, + &Font_PixelOperatorMono_Regular_8_glyph_56, + &Font_PixelOperatorMono_Regular_8_glyph_57, + &Font_PixelOperatorMono_Regular_8_glyph_58, + &Font_PixelOperatorMono_Regular_8_glyph_59, + &Font_PixelOperatorMono_Regular_8_glyph_60, + &Font_PixelOperatorMono_Regular_8_glyph_61, + &Font_PixelOperatorMono_Regular_8_glyph_62, + &Font_PixelOperatorMono_Regular_8_glyph_63, + &Font_PixelOperatorMono_Regular_8_glyph_64, + &Font_PixelOperatorMono_Regular_8_glyph_65, + &Font_PixelOperatorMono_Regular_8_glyph_66, + &Font_PixelOperatorMono_Regular_8_glyph_67, + &Font_PixelOperatorMono_Regular_8_glyph_68, + &Font_PixelOperatorMono_Regular_8_glyph_69, + &Font_PixelOperatorMono_Regular_8_glyph_70, + &Font_PixelOperatorMono_Regular_8_glyph_71, + &Font_PixelOperatorMono_Regular_8_glyph_72, + &Font_PixelOperatorMono_Regular_8_glyph_73, + &Font_PixelOperatorMono_Regular_8_glyph_74, + &Font_PixelOperatorMono_Regular_8_glyph_75, + &Font_PixelOperatorMono_Regular_8_glyph_76, + &Font_PixelOperatorMono_Regular_8_glyph_77, + &Font_PixelOperatorMono_Regular_8_glyph_78, + &Font_PixelOperatorMono_Regular_8_glyph_79, + &Font_PixelOperatorMono_Regular_8_glyph_80, + &Font_PixelOperatorMono_Regular_8_glyph_81, + &Font_PixelOperatorMono_Regular_8_glyph_82, + &Font_PixelOperatorMono_Regular_8_glyph_83, + &Font_PixelOperatorMono_Regular_8_glyph_84, + &Font_PixelOperatorMono_Regular_8_glyph_85, + &Font_PixelOperatorMono_Regular_8_glyph_86, + &Font_PixelOperatorMono_Regular_8_glyph_87, + &Font_PixelOperatorMono_Regular_8_glyph_88, + &Font_PixelOperatorMono_Regular_8_glyph_89, + &Font_PixelOperatorMono_Regular_8_glyph_90, + &Font_PixelOperatorMono_Regular_8_glyph_91, + &Font_PixelOperatorMono_Regular_8_glyph_92, + &Font_PixelOperatorMono_Regular_8_glyph_93, + &Font_PixelOperatorMono_Regular_8_glyph_94, + &Font_PixelOperatorMono_Regular_8_glyph_95, + &Font_PixelOperatorMono_Regular_8_glyph_96, + &Font_PixelOperatorMono_Regular_8_glyph_97, + &Font_PixelOperatorMono_Regular_8_glyph_98, + &Font_PixelOperatorMono_Regular_8_glyph_99, + &Font_PixelOperatorMono_Regular_8_glyph_100, + &Font_PixelOperatorMono_Regular_8_glyph_101, + &Font_PixelOperatorMono_Regular_8_glyph_102, + &Font_PixelOperatorMono_Regular_8_glyph_103, + &Font_PixelOperatorMono_Regular_8_glyph_104, + &Font_PixelOperatorMono_Regular_8_glyph_105, + &Font_PixelOperatorMono_Regular_8_glyph_106, + &Font_PixelOperatorMono_Regular_8_glyph_107, + &Font_PixelOperatorMono_Regular_8_glyph_108, + &Font_PixelOperatorMono_Regular_8_glyph_109, + &Font_PixelOperatorMono_Regular_8_glyph_110, + &Font_PixelOperatorMono_Regular_8_glyph_111, + &Font_PixelOperatorMono_Regular_8_glyph_112, + &Font_PixelOperatorMono_Regular_8_glyph_113, + &Font_PixelOperatorMono_Regular_8_glyph_114, + &Font_PixelOperatorMono_Regular_8_glyph_115, + &Font_PixelOperatorMono_Regular_8_glyph_116, + &Font_PixelOperatorMono_Regular_8_glyph_117, + &Font_PixelOperatorMono_Regular_8_glyph_118, + &Font_PixelOperatorMono_Regular_8_glyph_119, + &Font_PixelOperatorMono_Regular_8_glyph_120, + &Font_PixelOperatorMono_Regular_8_glyph_121, + &Font_PixelOperatorMono_Regular_8_glyph_122, + &Font_PixelOperatorMono_Regular_8_glyph_123, + &Font_PixelOperatorMono_Regular_8_glyph_124, + &Font_PixelOperatorMono_Regular_8_glyph_125, + &Font_PixelOperatorMono_Regular_8_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_PixelOperatorMono_Regular_8_info: FontInfo = FontInfo { + height: 8, + max_height: 8, + baseline: 1, + glyph_data: &Font_PixelOperatorMono_Regular_8, + glyph_nonprintable: &Font_PixelOperatorMono_Regular_8_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs new file mode 100644 index 00000000000..2d1952162af --- /dev/null +++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_bold_16.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 1-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_Unifont_Bold_16_glyph_32: [u8; 5] = [ 0, 0, 8, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_Unifont_Bold_16_glyph_33: [u8; 8] = [ 2, 10, 7, 2, 10, 255, 252, 240 ]; + +/// '"' (ASCII 34) +const Font_Unifont_Bold_16_glyph_34: [u8; 9] = [ 6, 4, 7, 0, 12, 207, 60, 209, 0 ]; + +/// '#' (ASCII 35) +const Font_Unifont_Bold_16_glyph_35: [u8; 14] = [ 7, 10, 8, 0, 10, 54, 108, 223, 246, 205, 191, 236, 217, 176 ]; + +/// '$' (ASCII 36) +const Font_Unifont_Bold_16_glyph_36: [u8; 14] = [ 7, 10, 8, 0, 10, 16, 251, 94, 183, 3, 181, 235, 124, 32 ]; + +/// '%' (ASCII 37) +const Font_Unifont_Bold_16_glyph_37: [u8; 14] = [ 7, 10, 8, 0, 10, 97, 102, 211, 65, 2, 11, 43, 150, 24 ]; + +/// '&' (ASCII 38) +const Font_Unifont_Bold_16_glyph_38: [u8; 16] = [ 8, 10, 8, 0, 10, 56, 108, 108, 104, 48, 107, 206, 204, 206, 122, 0 ]; + +/// ''' (ASCII 39) +const Font_Unifont_Bold_16_glyph_39: [u8; 7] = [ 2, 4, 7, 2, 12, 253, 0 ]; + +/// '(' (ASCII 40) +const Font_Unifont_Bold_16_glyph_40: [u8; 12] = [ 4, 12, 7, 2, 11, 54, 108, 204, 204, 198, 99, 0 ]; + +/// ')' (ASCII 41) +const Font_Unifont_Bold_16_glyph_41: [u8; 12] = [ 4, 12, 7, 0, 11, 198, 99, 51, 51, 54, 108, 0 ]; + +/// '*' (ASCII 42) +const Font_Unifont_Bold_16_glyph_42: [u8; 12] = [ 7, 7, 8, 0, 8, 17, 37, 81, 197, 82, 68, 0 ]; + +/// '+' (ASCII 43) +const Font_Unifont_Bold_16_glyph_43: [u8; 12] = [ 7, 7, 8, 0, 8, 16, 32, 71, 241, 2, 4, 0 ]; + +/// ',' (ASCII 44) +const Font_Unifont_Bold_16_glyph_44: [u8; 7] = [ 3, 4, 7, 1, 2, 237, 224 ]; + +/// '-' (ASCII 45) +const Font_Unifont_Bold_16_glyph_45: [u8; 6] = [ 5, 1, 7, 0, 5, 248 ]; + +/// '.' (ASCII 46) +const Font_Unifont_Bold_16_glyph_46: [u8; 6] = [ 2, 2, 7, 2, 2, 240 ]; + +/// '/' (ASCII 47) +const Font_Unifont_Bold_16_glyph_47: [u8; 13] = [ 6, 10, 7, 0, 10, 12, 49, 132, 48, 194, 24, 195, 0 ]; + +/// '0' (ASCII 48) +const Font_Unifont_Bold_16_glyph_48: [u8; 14] = [ 7, 10, 8, 0, 10, 56, 219, 30, 125, 122, 249, 227, 108, 112 ]; + +/// '1' (ASCII 49) +const Font_Unifont_Bold_16_glyph_49: [u8; 13] = [ 6, 10, 7, 0, 10, 51, 195, 12, 48, 195, 12, 51, 240 ]; + +/// '2' (ASCII 50) +const Font_Unifont_Bold_16_glyph_50: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 24, 48, 195, 12, 112, 193, 252 ]; + +/// '3' (ASCII 51) +const Font_Unifont_Bold_16_glyph_51: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 24, 49, 192, 193, 227, 198, 248 ]; + +/// '4' (ASCII 52) +const Font_Unifont_Bold_16_glyph_52: [u8; 14] = [ 7, 10, 8, 0, 10, 12, 120, 179, 100, 217, 191, 134, 12, 24 ]; + +/// '5' (ASCII 53) +const Font_Unifont_Bold_16_glyph_53: [u8; 14] = [ 7, 10, 8, 0, 10, 255, 131, 6, 15, 193, 193, 227, 198, 248 ]; + +/// '6' (ASCII 54) +const Font_Unifont_Bold_16_glyph_54: [u8; 14] = [ 7, 10, 8, 0, 10, 60, 195, 6, 15, 216, 241, 227, 198, 248 ]; + +/// '7' (ASCII 55) +const Font_Unifont_Bold_16_glyph_55: [u8; 13] = [ 6, 10, 7, 0, 10, 252, 48, 195, 24, 99, 12, 97, 128 ]; + +/// '8' (ASCII 56) +const Font_Unifont_Bold_16_glyph_56: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 30, 55, 216, 241, 227, 198, 248 ]; + +/// '9' (ASCII 57) +const Font_Unifont_Bold_16_glyph_57: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 30, 60, 111, 193, 131, 12, 240 ]; + +/// ':' (ASCII 58) +const Font_Unifont_Bold_16_glyph_58: [u8; 7] = [ 2, 7, 7, 2, 8, 240, 60 ]; + +/// ';' (ASCII 59) +const Font_Unifont_Bold_16_glyph_59: [u8; 8] = [ 2, 9, 7, 2, 8, 240, 61, 128 ]; + +/// '<' (ASCII 60) +const Font_Unifont_Bold_16_glyph_60: [u8; 12] = [ 6, 9, 7, 0, 9, 12, 99, 24, 193, 131, 6, 12 ]; + +/// '=' (ASCII 61) +const Font_Unifont_Bold_16_glyph_61: [u8; 9] = [ 6, 5, 7, 0, 7, 252, 0, 0, 252 ]; + +/// '>' (ASCII 62) +const Font_Unifont_Bold_16_glyph_62: [u8; 12] = [ 6, 9, 7, 0, 9, 193, 131, 6, 12, 99, 24, 192 ]; + +/// '?' (ASCII 63) +const Font_Unifont_Bold_16_glyph_63: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 24, 48, 195, 6, 0, 24, 48 ]; + +/// '@' (ASCII 64) +const Font_Unifont_Bold_16_glyph_64: [u8; 14] = [ 7, 10, 8, 0, 10, 60, 134, 109, 187, 118, 237, 205, 64, 124 ]; + +/// 'A' (ASCII 65) +const Font_Unifont_Bold_16_glyph_65: [u8; 14] = [ 7, 10, 8, 0, 10, 56, 249, 182, 60, 120, 255, 227, 199, 140 ]; + +/// 'B' (ASCII 66) +const Font_Unifont_Bold_16_glyph_66: [u8; 14] = [ 7, 10, 8, 0, 10, 253, 143, 30, 63, 216, 241, 227, 199, 248 ]; + +/// 'C' (ASCII 67) +const Font_Unifont_Bold_16_glyph_67: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 30, 12, 24, 48, 99, 198, 248 ]; + +/// 'D' (ASCII 68) +const Font_Unifont_Bold_16_glyph_68: [u8; 14] = [ 7, 10, 8, 0, 10, 241, 155, 30, 60, 120, 241, 227, 205, 224 ]; + +/// 'E' (ASCII 69) +const Font_Unifont_Bold_16_glyph_69: [u8; 13] = [ 6, 10, 7, 0, 10, 255, 12, 48, 251, 12, 48, 195, 240 ]; + +/// 'F' (ASCII 70) +const Font_Unifont_Bold_16_glyph_70: [u8; 13] = [ 6, 10, 7, 0, 10, 255, 12, 48, 195, 236, 48, 195, 0 ]; + +/// 'G' (ASCII 71) +const Font_Unifont_Bold_16_glyph_71: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 30, 12, 27, 241, 227, 206, 236 ]; + +/// 'H' (ASCII 72) +const Font_Unifont_Bold_16_glyph_72: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 143, 30, 63, 248, 241, 227, 199, 140 ]; + +/// 'I' (ASCII 73) +const Font_Unifont_Bold_16_glyph_73: [u8; 13] = [ 6, 10, 7, 0, 10, 252, 195, 12, 48, 195, 12, 51, 240 ]; + +/// 'J' (ASCII 74) +const Font_Unifont_Bold_16_glyph_74: [u8; 14] = [ 7, 10, 8, 0, 10, 62, 24, 48, 96, 193, 131, 102, 204, 240 ]; + +/// 'K' (ASCII 75) +const Font_Unifont_Bold_16_glyph_75: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 143, 54, 207, 28, 62, 110, 207, 140 ]; + +/// 'L' (ASCII 76) +const Font_Unifont_Bold_16_glyph_76: [u8; 13] = [ 6, 10, 7, 0, 10, 195, 12, 48, 195, 12, 48, 195, 240 ]; + +/// 'M' (ASCII 77) +const Font_Unifont_Bold_16_glyph_77: [u8; 14] = [ 7, 10, 8, 0, 10, 131, 143, 31, 127, 250, 245, 227, 199, 140 ]; + +/// 'N' (ASCII 78) +const Font_Unifont_Bold_16_glyph_78: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 207, 158, 189, 122, 245, 231, 207, 140 ]; + +/// 'O' (ASCII 79) +const Font_Unifont_Bold_16_glyph_79: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 30, 60, 120, 241, 227, 198, 248 ]; + +/// 'P' (ASCII 80) +const Font_Unifont_Bold_16_glyph_80: [u8; 14] = [ 7, 10, 8, 0, 10, 253, 143, 30, 60, 127, 176, 96, 193, 128 ]; + +/// 'Q' (ASCII 81) +const Font_Unifont_Bold_16_glyph_81: [u8; 15] = [ 7, 11, 8, 0, 10, 125, 143, 30, 60, 120, 241, 235, 238, 112, 24 ]; + +/// 'R' (ASCII 82) +const Font_Unifont_Bold_16_glyph_82: [u8; 14] = [ 7, 10, 8, 0, 10, 253, 143, 30, 60, 127, 182, 102, 199, 140 ]; + +/// 'S' (ASCII 83) +const Font_Unifont_Bold_16_glyph_83: [u8; 14] = [ 7, 10, 8, 0, 10, 125, 143, 31, 7, 135, 131, 227, 198, 248 ]; + +/// 'T' (ASCII 84) +const Font_Unifont_Bold_16_glyph_84: [u8; 14] = [ 7, 10, 8, 0, 10, 254, 48, 96, 193, 131, 6, 12, 24, 48 ]; + +/// 'U' (ASCII 85) +const Font_Unifont_Bold_16_glyph_85: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 143, 30, 60, 120, 241, 227, 238, 248 ]; + +/// 'V' (ASCII 86) +const Font_Unifont_Bold_16_glyph_86: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 143, 26, 38, 205, 155, 20, 40, 112 ]; + +/// 'W' (ASCII 87) +const Font_Unifont_Bold_16_glyph_87: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 143, 30, 189, 122, 245, 255, 238, 136 ]; + +/// 'X' (ASCII 88) +const Font_Unifont_Bold_16_glyph_88: [u8; 14] = [ 7, 10, 8, 0, 10, 199, 141, 179, 99, 135, 27, 54, 199, 140 ]; + +/// 'Y' (ASCII 89) +const Font_Unifont_Bold_16_glyph_89: [u8; 13] = [ 6, 10, 7, 0, 10, 207, 60, 243, 73, 227, 12, 48, 192 ]; + +/// 'Z' (ASCII 90) +const Font_Unifont_Bold_16_glyph_90: [u8; 14] = [ 7, 10, 8, 0, 10, 254, 12, 56, 225, 135, 28, 112, 193, 252 ]; + +/// '[' (ASCII 91) +const Font_Unifont_Bold_16_glyph_91: [u8; 12] = [ 4, 12, 7, 2, 11, 252, 204, 204, 204, 204, 207, 0 ]; + +/// '\' (ASCII 92) +const Font_Unifont_Bold_16_glyph_92: [u8; 13] = [ 6, 10, 7, 0, 10, 195, 6, 8, 48, 193, 6, 12, 48 ]; + +/// ']' (ASCII 93) +const Font_Unifont_Bold_16_glyph_93: [u8; 11] = [ 4, 12, 7, 0, 11, 243, 51, 51, 51, 51, 63 ]; + +/// '^' (ASCII 94) +const Font_Unifont_Bold_16_glyph_94: [u8; 8] = [ 7, 3, 8, 0, 12, 56, 219, 24 ]; + +/// '_' (ASCII 95) +const Font_Unifont_Bold_16_glyph_95: [u8; 6] = [ 7, 1, 7, 0, 0, 254 ]; + +/// '`' (ASCII 96) +const Font_Unifont_Bold_16_glyph_96: [u8; 7] = [ 4, 3, 7, 0, 13, 198, 48 ]; + +/// 'a' (ASCII 97) +const Font_Unifont_Bold_16_glyph_97: [u8; 13] = [ 7, 8, 8, 0, 8, 125, 140, 27, 252, 120, 243, 187, 0 ]; + +/// 'b' (ASCII 98) +const Font_Unifont_Bold_16_glyph_98: [u8; 15] = [ 7, 11, 8, 0, 11, 193, 131, 6, 238, 120, 241, 227, 199, 207, 112 ]; + +/// 'c' (ASCII 99) +const Font_Unifont_Bold_16_glyph_99: [u8; 13] = [ 7, 8, 8, 0, 8, 125, 143, 30, 12, 24, 241, 190, 0 ]; + +/// 'd' (ASCII 100) +const Font_Unifont_Bold_16_glyph_100: [u8; 15] = [ 7, 11, 8, 0, 11, 6, 12, 25, 188, 248, 241, 227, 199, 156, 216 ]; + +/// 'e' (ASCII 101) +const Font_Unifont_Bold_16_glyph_101: [u8; 13] = [ 7, 8, 8, 0, 8, 125, 143, 31, 252, 24, 241, 190, 0 ]; + +/// 'f' (ASCII 102) +const Font_Unifont_Bold_16_glyph_102: [u8; 15] = [ 7, 11, 8, 0, 11, 30, 96, 193, 143, 230, 12, 24, 48, 97, 240 ]; + +/// 'g' (ASCII 103) +const Font_Unifont_Bold_16_glyph_103: [u8; 15] = [ 7, 11, 8, 0, 9, 2, 247, 54, 108, 207, 8, 62, 207, 141, 240 ]; + +/// 'h' (ASCII 104) +const Font_Unifont_Bold_16_glyph_104: [u8; 15] = [ 7, 11, 8, 0, 11, 193, 131, 6, 238, 120, 241, 227, 199, 143, 24 ]; + +/// 'i' (ASCII 105) +const Font_Unifont_Bold_16_glyph_105: [u8; 14] = [ 6, 11, 7, 0, 11, 48, 192, 60, 48, 195, 12, 48, 207, 192 ]; + +/// 'j' (ASCII 106) +const Font_Unifont_Bold_16_glyph_106: [u8; 15] = [ 6, 13, 8, 0, 11, 24, 96, 31, 12, 48, 195, 12, 60, 246, 112 ]; + +/// 'k' (ASCII 107) +const Font_Unifont_Bold_16_glyph_107: [u8; 15] = [ 7, 11, 8, 0, 11, 193, 131, 6, 60, 251, 60, 120, 217, 159, 24 ]; + +/// 'l' (ASCII 108) +const Font_Unifont_Bold_16_glyph_108: [u8; 14] = [ 6, 11, 7, 0, 11, 240, 195, 12, 48, 195, 12, 48, 207, 192 ]; + +/// 'm' (ASCII 109) +const Font_Unifont_Bold_16_glyph_109: [u8; 13] = [ 7, 8, 8, 0, 8, 237, 175, 94, 189, 122, 245, 235, 0 ]; + +/// 'n' (ASCII 110) +const Font_Unifont_Bold_16_glyph_110: [u8; 13] = [ 7, 8, 8, 0, 8, 221, 207, 30, 60, 120, 241, 227, 0 ]; + +/// 'o' (ASCII 111) +const Font_Unifont_Bold_16_glyph_111: [u8; 13] = [ 7, 8, 8, 0, 8, 125, 143, 30, 60, 120, 241, 190, 0 ]; + +/// 'p' (ASCII 112) +const Font_Unifont_Bold_16_glyph_112: [u8; 14] = [ 7, 10, 8, 0, 8, 221, 207, 30, 60, 120, 249, 238, 193, 128 ]; + +/// 'q' (ASCII 113) +const Font_Unifont_Bold_16_glyph_113: [u8; 14] = [ 7, 10, 8, 0, 8, 119, 159, 30, 60, 120, 243, 187, 6, 12 ]; + +/// 'r' (ASCII 114) +const Font_Unifont_Bold_16_glyph_114: [u8; 13] = [ 7, 8, 8, 0, 8, 221, 207, 30, 12, 24, 48, 96, 0 ]; + +/// 's' (ASCII 115) +const Font_Unifont_Bold_16_glyph_115: [u8; 13] = [ 7, 8, 8, 0, 8, 125, 143, 27, 129, 216, 241, 190, 0 ]; + +/// 't' (ASCII 116) +const Font_Unifont_Bold_16_glyph_116: [u8; 14] = [ 7, 10, 8, 0, 10, 48, 96, 199, 243, 6, 12, 24, 48, 60 ]; + +/// 'u' (ASCII 117) +const Font_Unifont_Bold_16_glyph_117: [u8; 13] = [ 7, 8, 8, 0, 8, 199, 143, 30, 60, 120, 243, 187, 0 ]; + +/// 'v' (ASCII 118) +const Font_Unifont_Bold_16_glyph_118: [u8; 13] = [ 7, 8, 8, 0, 8, 199, 143, 26, 38, 205, 142, 28, 0 ]; + +/// 'w' (ASCII 119) +const Font_Unifont_Bold_16_glyph_119: [u8; 13] = [ 7, 8, 8, 0, 8, 199, 175, 94, 189, 122, 245, 182, 0 ]; + +/// 'x' (ASCII 120) +const Font_Unifont_Bold_16_glyph_120: [u8; 13] = [ 7, 8, 8, 0, 8, 199, 141, 177, 195, 141, 177, 227, 0 ]; + +/// 'y' (ASCII 121) +const Font_Unifont_Bold_16_glyph_121: [u8; 14] = [ 7, 10, 8, 0, 8, 199, 143, 30, 60, 109, 205, 131, 6, 248 ]; + +/// 'z' (ASCII 122) +const Font_Unifont_Bold_16_glyph_122: [u8; 13] = [ 7, 8, 8, 0, 8, 254, 12, 56, 227, 142, 56, 127, 0 ]; + +/// '{' (ASCII 123) +const Font_Unifont_Bold_16_glyph_123: [u8; 14] = [ 5, 13, 7, 1, 11, 59, 24, 99, 51, 12, 49, 152, 195, 128 ]; + +/// '|' (ASCII 124) +const Font_Unifont_Bold_16_glyph_124: [u8; 9] = [ 2, 14, 7, 2, 12, 255, 255, 255, 240 ]; + +/// '}' (ASCII 125) +const Font_Unifont_Bold_16_glyph_125: [u8; 14] = [ 5, 13, 7, 0, 11, 225, 140, 198, 24, 102, 99, 12, 110, 0 ]; + +/// '~' (ASCII 126) +const Font_Unifont_Bold_16_glyph_126: [u8; 8] = [ 7, 3, 8, 0, 11, 99, 118, 48 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_Unifont_Bold_16_glyph_nonprintable: [u8; 13] = [ 6, 10, 7, 0, 10, 5, 199, 60, 231, 60, 255, 207, 63 ]; + +/// Array of references for 'Unifont_Bold_16' normal ASCII glyphs +const Font_Unifont_Bold_16: [&[u8]; 95] = [ + &Font_Unifont_Bold_16_glyph_32, + &Font_Unifont_Bold_16_glyph_33, + &Font_Unifont_Bold_16_glyph_34, + &Font_Unifont_Bold_16_glyph_35, + &Font_Unifont_Bold_16_glyph_36, + &Font_Unifont_Bold_16_glyph_37, + &Font_Unifont_Bold_16_glyph_38, + &Font_Unifont_Bold_16_glyph_39, + &Font_Unifont_Bold_16_glyph_40, + &Font_Unifont_Bold_16_glyph_41, + &Font_Unifont_Bold_16_glyph_42, + &Font_Unifont_Bold_16_glyph_43, + &Font_Unifont_Bold_16_glyph_44, + &Font_Unifont_Bold_16_glyph_45, + &Font_Unifont_Bold_16_glyph_46, + &Font_Unifont_Bold_16_glyph_47, + &Font_Unifont_Bold_16_glyph_48, + &Font_Unifont_Bold_16_glyph_49, + &Font_Unifont_Bold_16_glyph_50, + &Font_Unifont_Bold_16_glyph_51, + &Font_Unifont_Bold_16_glyph_52, + &Font_Unifont_Bold_16_glyph_53, + &Font_Unifont_Bold_16_glyph_54, + &Font_Unifont_Bold_16_glyph_55, + &Font_Unifont_Bold_16_glyph_56, + &Font_Unifont_Bold_16_glyph_57, + &Font_Unifont_Bold_16_glyph_58, + &Font_Unifont_Bold_16_glyph_59, + &Font_Unifont_Bold_16_glyph_60, + &Font_Unifont_Bold_16_glyph_61, + &Font_Unifont_Bold_16_glyph_62, + &Font_Unifont_Bold_16_glyph_63, + &Font_Unifont_Bold_16_glyph_64, + &Font_Unifont_Bold_16_glyph_65, + &Font_Unifont_Bold_16_glyph_66, + &Font_Unifont_Bold_16_glyph_67, + &Font_Unifont_Bold_16_glyph_68, + &Font_Unifont_Bold_16_glyph_69, + &Font_Unifont_Bold_16_glyph_70, + &Font_Unifont_Bold_16_glyph_71, + &Font_Unifont_Bold_16_glyph_72, + &Font_Unifont_Bold_16_glyph_73, + &Font_Unifont_Bold_16_glyph_74, + &Font_Unifont_Bold_16_glyph_75, + &Font_Unifont_Bold_16_glyph_76, + &Font_Unifont_Bold_16_glyph_77, + &Font_Unifont_Bold_16_glyph_78, + &Font_Unifont_Bold_16_glyph_79, + &Font_Unifont_Bold_16_glyph_80, + &Font_Unifont_Bold_16_glyph_81, + &Font_Unifont_Bold_16_glyph_82, + &Font_Unifont_Bold_16_glyph_83, + &Font_Unifont_Bold_16_glyph_84, + &Font_Unifont_Bold_16_glyph_85, + &Font_Unifont_Bold_16_glyph_86, + &Font_Unifont_Bold_16_glyph_87, + &Font_Unifont_Bold_16_glyph_88, + &Font_Unifont_Bold_16_glyph_89, + &Font_Unifont_Bold_16_glyph_90, + &Font_Unifont_Bold_16_glyph_91, + &Font_Unifont_Bold_16_glyph_92, + &Font_Unifont_Bold_16_glyph_93, + &Font_Unifont_Bold_16_glyph_94, + &Font_Unifont_Bold_16_glyph_95, + &Font_Unifont_Bold_16_glyph_96, + &Font_Unifont_Bold_16_glyph_97, + &Font_Unifont_Bold_16_glyph_98, + &Font_Unifont_Bold_16_glyph_99, + &Font_Unifont_Bold_16_glyph_100, + &Font_Unifont_Bold_16_glyph_101, + &Font_Unifont_Bold_16_glyph_102, + &Font_Unifont_Bold_16_glyph_103, + &Font_Unifont_Bold_16_glyph_104, + &Font_Unifont_Bold_16_glyph_105, + &Font_Unifont_Bold_16_glyph_106, + &Font_Unifont_Bold_16_glyph_107, + &Font_Unifont_Bold_16_glyph_108, + &Font_Unifont_Bold_16_glyph_109, + &Font_Unifont_Bold_16_glyph_110, + &Font_Unifont_Bold_16_glyph_111, + &Font_Unifont_Bold_16_glyph_112, + &Font_Unifont_Bold_16_glyph_113, + &Font_Unifont_Bold_16_glyph_114, + &Font_Unifont_Bold_16_glyph_115, + &Font_Unifont_Bold_16_glyph_116, + &Font_Unifont_Bold_16_glyph_117, + &Font_Unifont_Bold_16_glyph_118, + &Font_Unifont_Bold_16_glyph_119, + &Font_Unifont_Bold_16_glyph_120, + &Font_Unifont_Bold_16_glyph_121, + &Font_Unifont_Bold_16_glyph_122, + &Font_Unifont_Bold_16_glyph_123, + &Font_Unifont_Bold_16_glyph_124, + &Font_Unifont_Bold_16_glyph_125, + &Font_Unifont_Bold_16_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_Unifont_Bold_16_info: FontInfo = FontInfo { + height: 16, + max_height: 15, + baseline: 2, + glyph_data: &Font_Unifont_Bold_16, + glyph_nonprintable: &Font_Unifont_Bold_16_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs new file mode 100644 index 00000000000..5a3a52e1d47 --- /dev/null +++ b/core/embed/rust/src/ui/layout_caesar/fonts/font_unifont_regular_16.rs @@ -0,0 +1,410 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 1-bit glyph data + +use crate::ui::display::font::FontInfo; + +// MANUAL CHANGES! +// In cases where the width and advance were the same (usually 7 and 7), increasing +// the advance to 8, so that these wide letters do not collide with the following one. + +/// ' ' (ASCII 32) +const Font_Unifont_Regular_16_glyph_32: [u8; 5] = [ 0, 0, 8, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_Unifont_Regular_16_glyph_33: [u8; 7] = [ 1, 10, 7, 3, 10, 254, 192 ]; + +/// '"' (ASCII 34) +const Font_Unifont_Regular_16_glyph_34: [u8; 8] = [ 5, 4, 7, 1, 12, 140, 99, 16 ]; + +/// '#' (ASCII 35) +const Font_Unifont_Regular_16_glyph_35: [u8; 13] = [ 6, 10, 7, 0, 10, 36, 146, 127, 73, 47, 228, 146, 64 ]; + +/// '$' (ASCII 36) +const Font_Unifont_Regular_16_glyph_36: [u8; 14] = [ 7, 10, 8, 0, 10, 16, 250, 76, 135, 3, 132, 201, 124, 32 ]; // < --- advanced changed from 7 to 8 + +/// '%' (ASCII 37) +const Font_Unifont_Regular_16_glyph_37: [u8; 14] = [ 7, 10, 8, 0, 10, 99, 42, 83, 65, 2, 11, 41, 83, 24 ]; // < --- advanced changed from 7 to 8 + +/// '&' (ASCII 38) +const Font_Unifont_Regular_16_glyph_38: [u8; 14] = [ 7, 10, 8, 0, 10, 56, 137, 17, 67, 10, 98, 194, 140, 228 ]; // < --- advanced changed from 7 to 8 + +/// ''' (ASCII 39) +const Font_Unifont_Regular_16_glyph_39: [u8; 6] = [ 1, 4, 7, 3, 12, 240 ]; + +/// '(' (ASCII 40) +const Font_Unifont_Regular_16_glyph_40: [u8; 10] = [ 3, 12, 7, 2, 11, 41, 73, 36, 137, 16 ]; + +/// ')' (ASCII 41) +const Font_Unifont_Regular_16_glyph_41: [u8; 10] = [ 3, 12, 7, 1, 11, 137, 18, 73, 41, 64 ]; + +/// '*' (ASCII 42) +const Font_Unifont_Regular_16_glyph_42: [u8; 12] = [ 7, 7, 8, 0, 8, 17, 37, 81, 197, 82, 68, 0 ]; // < --- advanced changed from 7 to 8 + +/// '+' (ASCII 43) +const Font_Unifont_Regular_16_glyph_43: [u8; 12] = [ 7, 7, 8, 0, 8, 16, 32, 71, 241, 2, 4, 0 ]; // < --- advanced changed from 7 to 8 + +/// ',' (ASCII 44) +const Font_Unifont_Regular_16_glyph_44: [u8; 6] = [ 2, 4, 7, 2, 2, 214 ]; + +/// '-' (ASCII 45) +const Font_Unifont_Regular_16_glyph_45: [u8; 6] = [ 4, 1, 7, 1, 5, 240 ]; + +/// '.' (ASCII 46) +const Font_Unifont_Regular_16_glyph_46: [u8; 6] = [ 2, 2, 7, 2, 2, 240 ]; + +/// '/' (ASCII 47) +const Font_Unifont_Regular_16_glyph_47: [u8; 13] = [ 6, 10, 7, 0, 10, 4, 16, 132, 16, 130, 16, 130, 0 ]; + +/// '0' (ASCII 48) +const Font_Unifont_Regular_16_glyph_48: [u8; 13] = [ 6, 10, 7, 0, 10, 49, 40, 99, 150, 156, 97, 72, 192 ]; + +/// '1' (ASCII 49) +const Font_Unifont_Regular_16_glyph_49: [u8; 12] = [ 5, 10, 7, 1, 10, 35, 40, 66, 16, 132, 39, 192 ]; + +/// '2' (ASCII 50) +const Font_Unifont_Regular_16_glyph_50: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 65, 24, 132, 32, 131, 240 ]; + +/// '3' (ASCII 51) +const Font_Unifont_Regular_16_glyph_51: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 65, 56, 16, 97, 133, 224 ]; + +/// '4' (ASCII 52) +const Font_Unifont_Regular_16_glyph_52: [u8; 13] = [ 6, 10, 7, 0, 10, 8, 98, 146, 138, 47, 194, 8, 32 ]; + +/// '5' (ASCII 53) +const Font_Unifont_Regular_16_glyph_53: [u8; 13] = [ 6, 10, 7, 0, 10, 254, 8, 32, 248, 16, 65, 133, 224 ]; + +/// '6' (ASCII 54) +const Font_Unifont_Regular_16_glyph_54: [u8; 13] = [ 6, 10, 7, 0, 10, 57, 8, 32, 250, 24, 97, 133, 224 ]; + +/// '7' (ASCII 55) +const Font_Unifont_Regular_16_glyph_55: [u8; 13] = [ 6, 10, 7, 0, 10, 252, 16, 66, 8, 33, 4, 16, 64 ]; + +/// '8' (ASCII 56) +const Font_Unifont_Regular_16_glyph_56: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 97, 122, 24, 97, 133, 224 ]; + +/// '9' (ASCII 57) +const Font_Unifont_Regular_16_glyph_57: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 97, 124, 16, 65, 9, 192 ]; + +/// ':' (ASCII 58) +const Font_Unifont_Regular_16_glyph_58: [u8; 7] = [ 2, 7, 7, 2, 8, 240, 60 ]; + +/// ';' (ASCII 59) +const Font_Unifont_Regular_16_glyph_59: [u8; 8] = [ 2, 9, 7, 2, 8, 240, 53, 128 ]; + +/// '<' (ASCII 60) +const Font_Unifont_Regular_16_glyph_60: [u8; 11] = [ 5, 9, 7, 1, 9, 8, 136, 136, 32, 130, 8 ]; + +/// '=' (ASCII 61) +const Font_Unifont_Regular_16_glyph_61: [u8; 9] = [ 6, 5, 7, 0, 7, 252, 0, 0, 252 ]; + +/// '>' (ASCII 62) +const Font_Unifont_Regular_16_glyph_62: [u8; 11] = [ 5, 9, 7, 0, 9, 130, 8, 32, 136, 136, 128 ]; + +/// '?' (ASCII 63) +const Font_Unifont_Regular_16_glyph_63: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 65, 8, 65, 0, 16, 64 ]; + +/// '@' (ASCII 64) +const Font_Unifont_Regular_16_glyph_64: [u8; 13] = [ 6, 10, 7, 0, 10, 57, 25, 107, 166, 154, 103, 64, 240 ]; + +/// 'A' (ASCII 65) +const Font_Unifont_Regular_16_glyph_65: [u8; 13] = [ 6, 10, 7, 0, 10, 49, 36, 161, 135, 248, 97, 134, 16 ]; + +/// 'B' (ASCII 66) +const Font_Unifont_Regular_16_glyph_66: [u8; 13] = [ 6, 10, 7, 0, 10, 250, 24, 97, 250, 24, 97, 135, 224 ]; + +/// 'C' (ASCII 67) +const Font_Unifont_Regular_16_glyph_67: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 96, 130, 8, 33, 133, 224 ]; + +/// 'D' (ASCII 68) +const Font_Unifont_Regular_16_glyph_68: [u8; 13] = [ 6, 10, 7, 0, 10, 242, 40, 97, 134, 24, 97, 139, 192 ]; + +/// 'E' (ASCII 69) +const Font_Unifont_Regular_16_glyph_69: [u8; 13] = [ 6, 10, 7, 0, 10, 254, 8, 32, 250, 8, 32, 131, 240 ]; + +/// 'F' (ASCII 70) +const Font_Unifont_Regular_16_glyph_70: [u8; 13] = [ 6, 10, 7, 0, 10, 254, 8, 32, 250, 8, 32, 130, 0 ]; + +/// 'G' (ASCII 71) +const Font_Unifont_Regular_16_glyph_71: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 96, 130, 120, 97, 141, 208 ]; + +/// 'H' (ASCII 72) +const Font_Unifont_Regular_16_glyph_72: [u8; 13] = [ 6, 10, 7, 0, 10, 134, 24, 97, 254, 24, 97, 134, 16 ]; + +/// 'I' (ASCII 73) +const Font_Unifont_Regular_16_glyph_73: [u8; 12] = [ 5, 10, 7, 1, 10, 249, 8, 66, 16, 132, 39, 192 ]; + +/// 'J' (ASCII 74) +const Font_Unifont_Regular_16_glyph_74: [u8; 14] = [ 7, 10, 8, 0, 10, 62, 16, 32, 64, 129, 2, 68, 136, 224 ]; // < --- advanced changed from 7 to 8 + +/// 'K' (ASCII 75) +const Font_Unifont_Regular_16_glyph_75: [u8; 13] = [ 6, 10, 7, 0, 10, 134, 41, 40, 195, 10, 36, 138, 16 ]; + +/// 'L' (ASCII 76) +const Font_Unifont_Regular_16_glyph_76: [u8; 13] = [ 6, 10, 7, 0, 10, 130, 8, 32, 130, 8, 32, 131, 240 ]; + +/// 'M' (ASCII 77) +const Font_Unifont_Regular_16_glyph_77: [u8; 13] = [ 6, 10, 7, 0, 10, 134, 28, 243, 182, 216, 97, 134, 16 ]; + +/// 'N' (ASCII 78) +const Font_Unifont_Regular_16_glyph_78: [u8; 13] = [ 6, 10, 7, 0, 10, 135, 28, 105, 166, 89, 99, 142, 16 ]; + +/// 'O' (ASCII 79) +const Font_Unifont_Regular_16_glyph_79: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 97, 134, 24, 97, 133, 224 ]; + +/// 'P' (ASCII 80) +const Font_Unifont_Regular_16_glyph_80: [u8; 13] = [ 6, 10, 7, 0, 10, 250, 24, 97, 250, 8, 32, 130, 0 ]; + +/// 'Q' (ASCII 81) +const Font_Unifont_Regular_16_glyph_81: [u8; 15] = [ 7, 11, 7, 0, 10, 121, 10, 20, 40, 80, 161, 90, 204, 240, 24 ]; + +/// 'R' (ASCII 82) +const Font_Unifont_Regular_16_glyph_82: [u8; 13] = [ 6, 10, 7, 0, 10, 250, 24, 97, 250, 72, 162, 134, 16 ]; + +/// 'S' (ASCII 83) +const Font_Unifont_Regular_16_glyph_83: [u8; 13] = [ 6, 10, 7, 0, 10, 122, 24, 96, 96, 96, 97, 133, 224 ]; + +/// 'T' (ASCII 84) +const Font_Unifont_Regular_16_glyph_84: [u8; 14] = [ 7, 10, 8, 0, 10, 254, 32, 64, 129, 2, 4, 8, 16, 32 ]; // < --- advanced changed from 7 to 8 + +/// 'U' (ASCII 85) +const Font_Unifont_Regular_16_glyph_85: [u8; 13] = [ 6, 10, 7, 0, 10, 134, 24, 97, 134, 24, 97, 133, 224 ]; + +/// 'V' (ASCII 86) +const Font_Unifont_Regular_16_glyph_86: [u8; 14] = [ 7, 10, 8, 0, 10, 131, 6, 10, 36, 72, 138, 20, 16, 32 ]; // < --- advanced changed from 7 to 8 + +/// 'W' (ASCII 87) +const Font_Unifont_Regular_16_glyph_87: [u8; 13] = [ 6, 10, 7, 0, 10, 134, 24, 97, 182, 220, 243, 134, 16 ]; + +/// 'X' (ASCII 88) +const Font_Unifont_Regular_16_glyph_88: [u8; 13] = [ 6, 10, 7, 0, 10, 134, 20, 146, 48, 196, 146, 134, 16 ]; + +/// 'Y' (ASCII 89) +const Font_Unifont_Regular_16_glyph_89: [u8; 14] = [ 7, 10, 8, 0, 10, 131, 5, 18, 34, 130, 4, 8, 16, 32 ]; // < --- advanced changed from 7 to 8 + +/// 'Z' (ASCII 90) +const Font_Unifont_Regular_16_glyph_90: [u8; 13] = [ 6, 10, 7, 0, 10, 252, 16, 66, 16, 132, 32, 131, 240 ]; + +/// '[' (ASCII 91) +const Font_Unifont_Regular_16_glyph_91: [u8; 10] = [ 3, 12, 7, 3, 11, 242, 73, 36, 146, 112 ]; + +/// '\' (ASCII 92) +const Font_Unifont_Regular_16_glyph_92: [u8; 13] = [ 6, 10, 7, 0, 10, 130, 4, 8, 32, 65, 2, 4, 16 ]; + +/// ']' (ASCII 93) +const Font_Unifont_Regular_16_glyph_93: [u8; 10] = [ 3, 12, 7, 0, 11, 228, 146, 73, 36, 240 ]; + +/// '^' (ASCII 94) +const Font_Unifont_Regular_16_glyph_94: [u8; 8] = [ 6, 3, 7, 0, 12, 49, 40, 64 ]; + +/// '_' (ASCII 95) +const Font_Unifont_Regular_16_glyph_95: [u8; 6] = [ 7, 1, 8, 0, 0, 254 ]; // < --- advanced changed from 7 to 8 + +/// '`' (ASCII 96) +const Font_Unifont_Regular_16_glyph_96: [u8; 7] = [ 3, 3, 7, 1, 13, 136, 128 ]; + +/// 'a' (ASCII 97) +const Font_Unifont_Regular_16_glyph_97: [u8; 11] = [ 6, 8, 7, 0, 8, 122, 16, 95, 134, 24, 221 ]; + +/// 'b' (ASCII 98) +const Font_Unifont_Regular_16_glyph_98: [u8; 14] = [ 6, 11, 7, 0, 11, 130, 8, 46, 198, 24, 97, 135, 27, 128 ]; + +/// 'c' (ASCII 99) +const Font_Unifont_Regular_16_glyph_99: [u8; 11] = [ 6, 8, 7, 0, 8, 122, 24, 32, 130, 8, 94 ]; + +/// 'd' (ASCII 100) +const Font_Unifont_Regular_16_glyph_100: [u8; 14] = [ 6, 11, 7, 0, 11, 4, 16, 93, 142, 24, 97, 134, 55, 64 ]; + +/// 'e' (ASCII 101) +const Font_Unifont_Regular_16_glyph_101: [u8; 11] = [ 6, 8, 7, 0, 8, 122, 24, 127, 130, 8, 94 ]; + +/// 'f' (ASCII 102) +const Font_Unifont_Regular_16_glyph_102: [u8; 12] = [ 5, 11, 7, 0, 11, 25, 8, 79, 144, 132, 33, 8 ]; + +/// 'g' (ASCII 103) +const Font_Unifont_Regular_16_glyph_103: [u8; 14] = [ 6, 11, 7, 0, 9, 5, 216, 162, 137, 196, 30, 134, 23, 128 ]; + +/// 'h' (ASCII 104) +const Font_Unifont_Regular_16_glyph_104: [u8; 14] = [ 6, 11, 7, 0, 11, 130, 8, 46, 198, 24, 97, 134, 24, 64 ]; + +/// 'i' (ASCII 105) +const Font_Unifont_Regular_16_glyph_105: [u8; 12] = [ 5, 11, 7, 1, 11, 33, 0, 194, 16, 132, 33, 62 ]; + +/// 'j' (ASCII 106) +const Font_Unifont_Regular_16_glyph_106: [u8; 14] = [ 5, 13, 7, 0, 11, 8, 64, 48, 132, 33, 8, 67, 38, 0 ]; + +/// 'k' (ASCII 107) +const Font_Unifont_Regular_16_glyph_107: [u8; 14] = [ 6, 11, 7, 0, 11, 130, 8, 34, 146, 140, 40, 146, 40, 64 ]; + +/// 'l' (ASCII 108) +const Font_Unifont_Regular_16_glyph_108: [u8; 12] = [ 5, 11, 7, 1, 11, 97, 8, 66, 16, 132, 33, 62 ]; + +/// 'm' (ASCII 109) +const Font_Unifont_Regular_16_glyph_109: [u8; 12] = [ 7, 8, 8, 0, 8, 237, 38, 76, 153, 50, 100, 201 ]; // < --- advanced changed from 7 to 8 + +/// 'n' (ASCII 110) +const Font_Unifont_Regular_16_glyph_110: [u8; 11] = [ 6, 8, 7, 0, 8, 187, 24, 97, 134, 24, 97 ]; + +/// 'o' (ASCII 111) +const Font_Unifont_Regular_16_glyph_111: [u8; 11] = [ 6, 8, 7, 0, 8, 122, 24, 97, 134, 24, 94 ]; + +/// 'p' (ASCII 112) +const Font_Unifont_Regular_16_glyph_112: [u8; 13] = [ 6, 10, 7, 0, 8, 187, 24, 97, 134, 28, 110, 130, 0 ]; + +/// 'q' (ASCII 113) +const Font_Unifont_Regular_16_glyph_113: [u8; 13] = [ 6, 10, 7, 0, 8, 118, 56, 97, 134, 24, 221, 4, 16 ]; + +/// 'r' (ASCII 114) +const Font_Unifont_Regular_16_glyph_114: [u8; 11] = [ 6, 8, 7, 0, 8, 187, 24, 96, 130, 8, 32 ]; + +/// 's' (ASCII 115) +const Font_Unifont_Regular_16_glyph_115: [u8; 11] = [ 6, 8, 7, 0, 8, 122, 24, 24, 24, 24, 94 ]; + +/// 't' (ASCII 116) +const Font_Unifont_Regular_16_glyph_116: [u8; 12] = [ 5, 10, 7, 0, 10, 33, 9, 242, 16, 132, 32, 192 ]; + +/// 'u' (ASCII 117) +const Font_Unifont_Regular_16_glyph_117: [u8; 11] = [ 6, 8, 7, 0, 8, 134, 24, 97, 134, 24, 221 ]; + +/// 'v' (ASCII 118) +const Font_Unifont_Regular_16_glyph_118: [u8; 11] = [ 6, 8, 7, 0, 8, 134, 24, 82, 73, 35, 12 ]; + +/// 'w' (ASCII 119) +const Font_Unifont_Regular_16_glyph_119: [u8; 12] = [ 7, 8, 8, 0, 8, 131, 38, 76, 153, 50, 100, 182 ]; // < --- advanced changed from 7 to 8 + +/// 'x' (ASCII 120) +const Font_Unifont_Regular_16_glyph_120: [u8; 11] = [ 6, 8, 7, 0, 8, 134, 20, 140, 49, 40, 97 ]; + +/// 'y' (ASCII 121) +const Font_Unifont_Regular_16_glyph_121: [u8; 13] = [ 6, 10, 7, 0, 8, 134, 24, 97, 133, 51, 65, 5, 224 ]; + +/// 'z' (ASCII 122) +const Font_Unifont_Regular_16_glyph_122: [u8; 11] = [ 6, 8, 7, 0, 8, 252, 16, 132, 33, 8, 63 ]; + +/// '{' (ASCII 123) +const Font_Unifont_Regular_16_glyph_123: [u8; 12] = [ 4, 13, 7, 1, 11, 52, 66, 36, 132, 34, 68, 48 ]; + +/// '|' (ASCII 124) +const Font_Unifont_Regular_16_glyph_124: [u8; 7] = [ 1, 14, 7, 3, 12, 255, 252 ]; + +/// '}' (ASCII 125) +const Font_Unifont_Regular_16_glyph_125: [u8; 12] = [ 4, 13, 7, 1, 11, 194, 36, 66, 18, 68, 34, 192 ]; + +/// '~' (ASCII 126) +const Font_Unifont_Regular_16_glyph_126: [u8; 8] = [ 7, 3, 8, 0, 11, 99, 38, 48 ]; // < --- advanced changed from 7 to 8 + +/// Nonprintable glyph (inverse colors of '?') +const Font_Unifont_Regular_16_glyph_nonprintable: [u8; 13] = [ 6, 10, 7, 0, 10, 133, 231, 190, 247, 190, 255, 239, 191 ]; + +/// Array of references for 'Unifont_Regular_16' normal ASCII glyphs +const Font_Unifont_Regular_16: [&[u8]; 95] = [ + &Font_Unifont_Regular_16_glyph_32, + &Font_Unifont_Regular_16_glyph_33, + &Font_Unifont_Regular_16_glyph_34, + &Font_Unifont_Regular_16_glyph_35, + &Font_Unifont_Regular_16_glyph_36, + &Font_Unifont_Regular_16_glyph_37, + &Font_Unifont_Regular_16_glyph_38, + &Font_Unifont_Regular_16_glyph_39, + &Font_Unifont_Regular_16_glyph_40, + &Font_Unifont_Regular_16_glyph_41, + &Font_Unifont_Regular_16_glyph_42, + &Font_Unifont_Regular_16_glyph_43, + &Font_Unifont_Regular_16_glyph_44, + &Font_Unifont_Regular_16_glyph_45, + &Font_Unifont_Regular_16_glyph_46, + &Font_Unifont_Regular_16_glyph_47, + &Font_Unifont_Regular_16_glyph_48, + &Font_Unifont_Regular_16_glyph_49, + &Font_Unifont_Regular_16_glyph_50, + &Font_Unifont_Regular_16_glyph_51, + &Font_Unifont_Regular_16_glyph_52, + &Font_Unifont_Regular_16_glyph_53, + &Font_Unifont_Regular_16_glyph_54, + &Font_Unifont_Regular_16_glyph_55, + &Font_Unifont_Regular_16_glyph_56, + &Font_Unifont_Regular_16_glyph_57, + &Font_Unifont_Regular_16_glyph_58, + &Font_Unifont_Regular_16_glyph_59, + &Font_Unifont_Regular_16_glyph_60, + &Font_Unifont_Regular_16_glyph_61, + &Font_Unifont_Regular_16_glyph_62, + &Font_Unifont_Regular_16_glyph_63, + &Font_Unifont_Regular_16_glyph_64, + &Font_Unifont_Regular_16_glyph_65, + &Font_Unifont_Regular_16_glyph_66, + &Font_Unifont_Regular_16_glyph_67, + &Font_Unifont_Regular_16_glyph_68, + &Font_Unifont_Regular_16_glyph_69, + &Font_Unifont_Regular_16_glyph_70, + &Font_Unifont_Regular_16_glyph_71, + &Font_Unifont_Regular_16_glyph_72, + &Font_Unifont_Regular_16_glyph_73, + &Font_Unifont_Regular_16_glyph_74, + &Font_Unifont_Regular_16_glyph_75, + &Font_Unifont_Regular_16_glyph_76, + &Font_Unifont_Regular_16_glyph_77, + &Font_Unifont_Regular_16_glyph_78, + &Font_Unifont_Regular_16_glyph_79, + &Font_Unifont_Regular_16_glyph_80, + &Font_Unifont_Regular_16_glyph_81, + &Font_Unifont_Regular_16_glyph_82, + &Font_Unifont_Regular_16_glyph_83, + &Font_Unifont_Regular_16_glyph_84, + &Font_Unifont_Regular_16_glyph_85, + &Font_Unifont_Regular_16_glyph_86, + &Font_Unifont_Regular_16_glyph_87, + &Font_Unifont_Regular_16_glyph_88, + &Font_Unifont_Regular_16_glyph_89, + &Font_Unifont_Regular_16_glyph_90, + &Font_Unifont_Regular_16_glyph_91, + &Font_Unifont_Regular_16_glyph_92, + &Font_Unifont_Regular_16_glyph_93, + &Font_Unifont_Regular_16_glyph_94, + &Font_Unifont_Regular_16_glyph_95, + &Font_Unifont_Regular_16_glyph_96, + &Font_Unifont_Regular_16_glyph_97, + &Font_Unifont_Regular_16_glyph_98, + &Font_Unifont_Regular_16_glyph_99, + &Font_Unifont_Regular_16_glyph_100, + &Font_Unifont_Regular_16_glyph_101, + &Font_Unifont_Regular_16_glyph_102, + &Font_Unifont_Regular_16_glyph_103, + &Font_Unifont_Regular_16_glyph_104, + &Font_Unifont_Regular_16_glyph_105, + &Font_Unifont_Regular_16_glyph_106, + &Font_Unifont_Regular_16_glyph_107, + &Font_Unifont_Regular_16_glyph_108, + &Font_Unifont_Regular_16_glyph_109, + &Font_Unifont_Regular_16_glyph_110, + &Font_Unifont_Regular_16_glyph_111, + &Font_Unifont_Regular_16_glyph_112, + &Font_Unifont_Regular_16_glyph_113, + &Font_Unifont_Regular_16_glyph_114, + &Font_Unifont_Regular_16_glyph_115, + &Font_Unifont_Regular_16_glyph_116, + &Font_Unifont_Regular_16_glyph_117, + &Font_Unifont_Regular_16_glyph_118, + &Font_Unifont_Regular_16_glyph_119, + &Font_Unifont_Regular_16_glyph_120, + &Font_Unifont_Regular_16_glyph_121, + &Font_Unifont_Regular_16_glyph_122, + &Font_Unifont_Regular_16_glyph_123, + &Font_Unifont_Regular_16_glyph_124, + &Font_Unifont_Regular_16_glyph_125, + &Font_Unifont_Regular_16_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_Unifont_Regular_16_info: FontInfo = FontInfo { + height: 16, + max_height: 15, + baseline: 2, + glyph_data: &Font_Unifont_Regular_16, + glyph_nonprintable: &Font_Unifont_Regular_16_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_caesar/fonts/mod.rs b/core/embed/rust/src/ui/layout_caesar/fonts/mod.rs new file mode 100644 index 00000000000..f0dd2abaa7c --- /dev/null +++ b/core/embed/rust/src/ui/layout_caesar/fonts/mod.rs @@ -0,0 +1,48 @@ +mod font_pixeloperator_bold_8; +mod font_pixeloperator_regular_8; +mod font_pixeloperatormono_regular_8; +mod font_unifont_bold_16; +mod font_unifont_regular_16; + +use font_pixeloperator_bold_8::{ + Font_PixelOperator_Bold_8_info, Font_PixelOperator_Bold_8_upper_info, +}; +use font_pixeloperator_regular_8::{ + Font_PixelOperator_Regular_8_info, Font_PixelOperator_Regular_8_upper_info, +}; +use font_pixeloperatormono_regular_8::Font_PixelOperatorMono_Regular_8_info; +use font_unifont_bold_16::Font_Unifont_Bold_16_info; +use font_unifont_regular_16::Font_Unifont_Regular_16_info; + +pub const FONT_NORMAL: crate::ui::display::Font = &Font_PixelOperator_Regular_8_info; +pub const FONT_BOLD: crate::ui::display::Font = &Font_PixelOperator_Bold_8_info; +pub const FONT_DEMIBOLD: crate::ui::display::Font = &Font_Unifont_Bold_16_info; +pub const FONT_MONO: crate::ui::display::Font = &Font_PixelOperatorMono_Regular_8_info; +pub const FONT_BIG: crate::ui::display::Font = &Font_Unifont_Regular_16_info; +pub const FONT_NORMAL_UPPER: crate::ui::display::Font = &Font_PixelOperator_Regular_8_upper_info; +pub const FONT_BOLD_UPPER: crate::ui::display::Font = &Font_PixelOperator_Bold_8_upper_info; +// TODO: remove SUB +pub const FONT_SUB: crate::ui::display::Font = &Font_PixelOperator_Regular_8_info; + +/// The function converts individual layout fonts to their respective IDs. The +/// IDs are defined in `.json` (e.g. `cs.json`) and are used for +/// translation blobs. +pub fn font_to_font_id(font: &crate::ui::display::font::FontInfo) -> u16 { + if core::ptr::eq(font, FONT_NORMAL) { + 1 + } else if core::ptr::eq(font, FONT_BOLD) { + 2 + } else if core::ptr::eq(font, FONT_MONO) { + 3 + } else if core::ptr::eq(font, FONT_BIG) { + 4 + } else if core::ptr::eq(font, FONT_DEMIBOLD) { + 5 + } else if core::ptr::eq(font, FONT_NORMAL_UPPER) { + 6 + } else if core::ptr::eq(font, FONT_BOLD_UPPER) { + 7 + } else { + 1 + } +} diff --git a/core/embed/rust/src/ui/layout_caesar/mod.rs b/core/embed/rust/src/ui/layout_caesar/mod.rs index 807ab172d8b..d5dffbc43db 100644 --- a/core/embed/rust/src/ui/layout_caesar/mod.rs +++ b/core/embed/rust/src/ui/layout_caesar/mod.rs @@ -8,6 +8,7 @@ pub mod component; pub mod component_msg_obj; pub mod constant; pub mod cshape; +pub mod fonts; mod screens; pub mod theme; diff --git a/core/embed/rust/src/ui/layout_caesar/theme/bootloader.rs b/core/embed/rust/src/ui/layout_caesar/theme/bootloader.rs index d008d26c7fe..c17b42c343b 100644 --- a/core/embed/rust/src/ui/layout_caesar/theme/bootloader.rs +++ b/core/embed/rust/src/ui/layout_caesar/theme/bootloader.rs @@ -1,6 +1,6 @@ use crate::ui::{ component::text::TextStyle, - display::{Color, Font}, + display::{font, Color}, util::include_icon, }; @@ -16,5 +16,6 @@ include_icon!(ICON_SUCCESS, "layout_caesar/res/success.toif"); include_icon!(ICON_REDO, "layout_caesar/res/redo.toif"); include_icon!(ICON_EXIT, "layout_caesar/res/exit.toif"); -pub const TEXT_NORMAL: TextStyle = TextStyle::new(Font::NORMAL, BLD_FG, BLD_BG, BLD_FG, BLD_FG); -pub const TEXT_BOLD: TextStyle = TextStyle::new(Font::BOLD, BLD_FG, BLD_BG, BLD_FG, BLD_FG); +pub const TEXT_NORMAL: TextStyle = + TextStyle::new(font::FONT_NORMAL, BLD_FG, BLD_BG, BLD_FG, BLD_FG); +pub const TEXT_BOLD: TextStyle = TextStyle::new(font::FONT_BOLD, BLD_FG, BLD_BG, BLD_FG, BLD_FG); diff --git a/core/embed/rust/src/ui/layout_caesar/theme/mod.rs b/core/embed/rust/src/ui/layout_caesar/theme/mod.rs index 608dc1fcdf0..a2d380d0110 100644 --- a/core/embed/rust/src/ui/layout_caesar/theme/mod.rs +++ b/core/embed/rust/src/ui/layout_caesar/theme/mod.rs @@ -3,13 +3,11 @@ use crate::ui::{ text::{layout::Chunks, TextStyle}, LineBreaking, PageBreaking, }, - display::{Color, Font}, + display::{font, Color, Font}, geometry::Offset, util::include_icon, }; -use num_traits::FromPrimitive; - pub mod bootloader; // Color palette. @@ -19,26 +17,26 @@ pub const FG: Color = WHITE; // Default foreground (text & icon) color. pub const BG: Color = BLACK; // Default background color. // Font constants. -pub const FONT_BUTTON: Font = Font::NORMAL_UPPER; -pub const FONT_HEADER: Font = Font::BOLD_UPPER; -pub const FONT_CHOICE_ITEMS: Font = Font::BIG; +pub const FONT_BUTTON: Font = font::FONT_NORMAL_UPPER; +pub const FONT_HEADER: Font = font::FONT_BOLD_UPPER; +pub const FONT_CHOICE_ITEMS: Font = font::FONT_BIG; // Text constants. -pub const TEXT_NORMAL: TextStyle = TextStyle::new(Font::NORMAL, FG, BG, FG, FG) +pub const TEXT_NORMAL: TextStyle = TextStyle::new(font::FONT_NORMAL, FG, BG, FG, FG) .with_page_breaking(PageBreaking::CutAndInsertEllipsisBoth) .with_ellipsis_icon(ICON_NEXT_PAGE, ELLIPSIS_ICON_MARGIN) .with_prev_page_icon(ICON_PREV_PAGE, PREV_PAGE_ICON_MARGIN); -pub const TEXT_BIG: TextStyle = TextStyle::new(Font::BIG, FG, BG, FG, FG); -pub const TEXT_DEMIBOLD: TextStyle = TextStyle::new(Font::DEMIBOLD, FG, BG, FG, FG); -pub const TEXT_BOLD: TextStyle = TextStyle::new(Font::BOLD, FG, BG, FG, FG) +pub const TEXT_BIG: TextStyle = TextStyle::new(font::FONT_BIG, FG, BG, FG, FG); +pub const TEXT_DEMIBOLD: TextStyle = TextStyle::new(font::FONT_DEMIBOLD, FG, BG, FG, FG); +pub const TEXT_BOLD: TextStyle = TextStyle::new(font::FONT_BOLD, FG, BG, FG, FG) .with_page_breaking(PageBreaking::CutAndInsertEllipsisBoth) .with_ellipsis_icon(ICON_NEXT_PAGE, ELLIPSIS_ICON_MARGIN) .with_prev_page_icon(ICON_PREV_PAGE, PREV_PAGE_ICON_MARGIN); -pub const TEXT_BOLD_UPPER: TextStyle = TextStyle::new(Font::BOLD_UPPER, FG, BG, FG, FG) +pub const TEXT_BOLD_UPPER: TextStyle = TextStyle::new(font::FONT_BOLD_UPPER, FG, BG, FG, FG) .with_page_breaking(PageBreaking::CutAndInsertEllipsisBoth) .with_ellipsis_icon(ICON_NEXT_PAGE, ELLIPSIS_ICON_MARGIN) .with_prev_page_icon(ICON_PREV_PAGE, PREV_PAGE_ICON_MARGIN); -pub const TEXT_MONO: TextStyle = TextStyle::new(Font::MONO, FG, BG, FG, FG) +pub const TEXT_MONO: TextStyle = TextStyle::new(font::FONT_MONO, FG, BG, FG, FG) .with_page_breaking(PageBreaking::CutAndInsertEllipsisBoth) .with_ellipsis_icon(ICON_NEXT_PAGE, ELLIPSIS_ICON_MARGIN) .with_prev_page_icon(ICON_PREV_PAGE, PREV_PAGE_ICON_MARGIN); @@ -53,17 +51,6 @@ pub const TEXT_MONO_ADDRESS_CHUNKS: TextStyle = TEXT_MONO_DATA // Chunks for this model pub const MONO_CHUNKS: Chunks = Chunks::new(4, 4); -/// Convert Python-side numeric id to a `TextStyle`. -pub fn textstyle_number(num: i32) -> &'static TextStyle { - let font = Font::from_i32(-num); - match font { - Some(Font::BOLD) => &TEXT_BOLD, - Some(Font::DEMIBOLD) => &TEXT_BOLD, - Some(Font::NORMAL) => &TEXT_NORMAL, - _ => &TEXT_MONO_DATA, - } -} - // Firmware icons include_icon!(ICON_ARM_LEFT, "layout_caesar/res/arm_left.toif"); // 10*6 include_icon!(ICON_ARM_RIGHT, "layout_caesar/res/arm_right.toif"); // 10*6 diff --git a/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs b/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs index c6737ca334b..337bf2a5d4c 100644 --- a/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs +++ b/core/embed/rust/src/ui/layout_caesar/ui_firmware.rs @@ -20,7 +20,7 @@ use crate::{ }, Component, ComponentExt, Empty, FormattedText, Label, LineBreaking, Paginate, Timeout, }, - display::Font, + display::font, geometry, layout::{ obj::{LayoutMaybeTrace, LayoutObj, RootComponent}, @@ -390,8 +390,13 @@ impl FirmwareUI for UICaesar { let mut paragraphs = ParagraphVecLong::new(); for para in IterBuf::new().try_iterate(items)? { - let [font, text]: [Obj; 2] = util::iter_into_array(para)?; - let style: &TextStyle = theme::textstyle_number(font.try_into()?); + let [text, is_data]: [Obj; 2] = util::iter_into_array(para)?; + let is_data = is_data.try_into()?; + let style: &TextStyle = if is_data { + &theme::TEXT_MONO_DATA + } else { + &theme::TEXT_NORMAL + }; let text: TString = text.try_into()?; paragraphs.add(Paragraph::new(style, text)); } @@ -509,7 +514,7 @@ impl FirmwareUI for UICaesar { let right_btn = has_pages_after.then(|| { ButtonDetails::text("i".into()) .with_fixed_width(theme::BUTTON_ICON_WIDTH) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) }); let middle_btn = Some(ButtonDetails::armed_text(TR::buttons__confirm.into())); @@ -599,8 +604,13 @@ impl FirmwareUI for UICaesar { let mut paragraphs = ParagraphVecShort::new(); for para in IterBuf::new().try_iterate(items)? { - let [font, text]: [Obj; 2] = util::iter_into_array(para)?; - let style: &TextStyle = theme::textstyle_number(font.try_into()?); + let [text, is_data]: [Obj; 2] = util::iter_into_array(para)?; + let is_data = is_data.try_into()?; + let style: &TextStyle = if is_data { + &theme::TEXT_MONO_DATA + } else { + &theme::TEXT_NORMAL + }; let text: TString = text.try_into()?; paragraphs.add(Paragraph::new(style, text)); if paragraphs.is_full() { diff --git a/core/embed/rust/src/ui/layout_delizia/bootloader/mod.rs b/core/embed/rust/src/ui/layout_delizia/bootloader/mod.rs index 8e42934d41b..4387a0157fb 100644 --- a/core/embed/rust/src/ui/layout_delizia/bootloader/mod.rs +++ b/core/embed/rust/src/ui/layout_delizia/bootloader/mod.rs @@ -4,7 +4,7 @@ use crate::{ trezorhal::secbool::secbool, ui::{ component::{connect::Connect, Label}, - display::{self, Color, Font, Icon}, + display::{self, font, Color, Icon}, geometry::{Alignment, Offset, Point, Rect}, layout::simplified::{run, show}, }, @@ -73,7 +73,7 @@ impl UIDelizia { render_on_display(None, Some(bg_color), |target| { shape::Text::new(PROGRESS_TEXT_ORIGIN, text) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); @@ -109,7 +109,7 @@ impl UIDelizia { center_text, ) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(GREY) .render(target); } @@ -421,7 +421,7 @@ impl BootloaderUI for UIDelizia { let pos = Point::new(SCREEN.width() / 2, SCREEN.height() - 5 - 50); shape::Text::new(pos, text) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) //COLOR_BL_BG .render(target); @@ -438,7 +438,7 @@ impl BootloaderUI for UIDelizia { shape::Text::new(pos, version_text.as_str()) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } @@ -453,7 +453,7 @@ impl BootloaderUI for UIDelizia { let pos = Point::new(SCREEN.width() / 2, SCREEN.height() - 5); shape::Text::new(pos, text.as_str()) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } @@ -461,7 +461,7 @@ impl BootloaderUI for UIDelizia { let pos = Point::new(SCREEN.width() / 2, SCREEN.height() - 5); shape::Text::new(pos, "click to continue ...") .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(BLD_FG) .render(target); } diff --git a/core/embed/rust/src/ui/layout_delizia/bootloader/welcome.rs b/core/embed/rust/src/ui/layout_delizia/bootloader/welcome.rs index 2779b14de1e..0e63ae0efe2 100644 --- a/core/embed/rust/src/ui/layout_delizia/bootloader/welcome.rs +++ b/core/embed/rust/src/ui/layout_delizia/bootloader/welcome.rs @@ -1,10 +1,9 @@ use crate::ui::{ component::{Component, Event, EventCtx, Never, Pad}, constant::screen, - display::Font, + display::font, geometry::{Offset, Point, Rect}, - shape, - shape::Renderer, + shape::{self, Renderer}, }; use super::super::theme::{BLACK, GREY, WHITE}; @@ -40,27 +39,27 @@ impl Component for Welcome { self.bg.render(target); shape::Text::new(TEXT_ORIGIN, "Get started") - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(GREY) .render(target); shape::Text::new(TEXT_ORIGIN + Offset::y(STRIDE), "with your Trezor") - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(GREY) .render(target); shape::Text::new(TEXT_ORIGIN + Offset::y(2 * STRIDE), "at") - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(GREY) .render(target); - let at_width = Font::NORMAL.text_width("at "); + let at_width = font::FONT_NORMAL.text_width("at "); shape::Text::new( TEXT_ORIGIN + Offset::new(at_width, 2 * STRIDE), "trezor.io/start", ) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(WHITE) .render(target); } diff --git a/core/embed/rust/src/ui/layout_delizia/component/footer.rs b/core/embed/rust/src/ui/layout_delizia/component/footer.rs index 8cef3673f1b..bc8d6ba3553 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/footer.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/footer.rs @@ -2,12 +2,11 @@ use crate::{ strutil::TString, ui::{ component::{text::TextStyle, Component, Event, EventCtx, Never}, - display::{Color, Font}, + display::{font::FONT_SUB, Color, Font}, event::SwipeEvent, geometry::{Alignment, Alignment2D, Direction, Offset, Point, Rect}, lerp::Lerp, - shape, - shape::{Renderer, Text}, + shape::{self, Renderer, Text}, }, }; @@ -325,7 +324,7 @@ impl PageCounter { instruction, page_curr: 0, page_max: 0, - font: Font::SUB, + font: FONT_SUB, } } diff --git a/core/embed/rust/src/ui/layout_delizia/component/homescreen.rs b/core/embed/rust/src/ui/layout_delizia/component/homescreen.rs index 3c66469ec04..fb4710796e5 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/homescreen.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/homescreen.rs @@ -7,7 +7,7 @@ use crate::{ trezorhal::usb::usb_configured, ui::{ component::{Component, Event, EventCtx, Timer}, - display::{image::ImageInfo, Color, Font}, + display::{font, image::ImageInfo, Color}, event::TouchEvent, geometry::{Alignment, Alignment2D, Offset, Point, Rect}, layout::util::get_user_custom_image, @@ -493,7 +493,7 @@ impl Homescreen { TR::progress__locking_device.map_translated(|t| { shape::Text::new(TOP_CENTER + Offset::y(HOLD_Y), t) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(theme::FG); }); self.loader.render(target) diff --git a/core/embed/rust/src/ui/layout_delizia/component/keyboard/pin.rs b/core/embed/rust/src/ui/layout_delizia/component/keyboard/pin.rs index 14435ff1724..e95ea62e557 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/keyboard/pin.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/keyboard/pin.rs @@ -10,7 +10,7 @@ use crate::{ text::TextStyle, Component, Event, EventCtx, Label, Never, Pad, Timer, }, - display::Font, + display::font::FONT_MONO, event::TouchEvent, geometry::{Alignment, Alignment2D, Direction, Grid, Insets, Offset, Rect}, shape::{self, Renderer}, @@ -605,20 +605,20 @@ impl PinDots { } fn render_digits<'s>(&self, area: Rect, target: &mut impl Renderer<'s>) { - let left = area.left_center() + Offset::y(Font::MONO.visible_text_height("1") / 2); + let left = area.left_center() + Offset::y(FONT_MONO.visible_text_height("1") / 2); let digits = self.digits.len(); if digits <= MAX_VISIBLE_DIGITS { shape::Text::new(left, &self.digits) .with_align(Alignment::Start) - .with_font(Font::MONO) + .with_font(FONT_MONO) .with_fg(self.style.text_color) .render(target); } else { let offset: usize = digits.saturating_sub(MAX_VISIBLE_DIGITS); shape::Text::new(left, &self.digits[offset..]) .with_align(Alignment::Start) - .with_font(Font::MONO) + .with_font(FONT_MONO) .with_fg(self.style.text_color) .render(target); } @@ -668,10 +668,10 @@ impl PinDots { if last_digit && digits > 0 { let last = &self.digits[(digits - 1)..digits]; - cursor.y = area.left_center().y + (Font::MONO.visible_text_height("1") / 2); + cursor.y = area.left_center().y + (FONT_MONO.visible_text_height("1") / 2); shape::Text::new(cursor, last) .with_align(Alignment::Start) - .with_font(Font::MONO) + .with_font(FONT_MONO) .with_fg(self.style.text_color) .render(target); } else { diff --git a/core/embed/rust/src/ui/layout_delizia/component/number_input.rs b/core/embed/rust/src/ui/layout_delizia/component/number_input.rs index 34c8cffd2a0..74f941faaf7 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/number_input.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/number_input.rs @@ -6,7 +6,7 @@ use crate::{ text::paragraphs::{Paragraph, Paragraphs}, Component, Event, EventCtx, Pad, }, - display::Font, + display::font::FONT_DEMIBOLD, event::SwipeEvent, geometry::{Alignment, Direction, Grid, Insets, Offset, Rect}, shape::{self, Renderer}, @@ -152,7 +152,7 @@ impl Component for NumberInput { let mut buf = [0u8; 10]; if let Some(text) = strutil::format_i64(self.value as i64, &mut buf) { - let digit_font = Font::DEMIBOLD; + let digit_font = FONT_DEMIBOLD; let y_offset = digit_font.text_height() / 2; shape::Bar::new(self.area).with_bg(theme::BG).render(target); diff --git a/core/embed/rust/src/ui/layout_delizia/component/progress.rs b/core/embed/rust/src/ui/layout_delizia/component/progress.rs index 6265b727ac3..71b270b2b95 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/progress.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/progress.rs @@ -8,7 +8,7 @@ use crate::{ text::paragraphs::{Paragraph, Paragraphs}, Component, Event, EventCtx, Label, Never, Pad, }, - display::{Font, LOADER_MAX}, + display::{font, LOADER_MAX}, geometry::{Insets, Offset, Rect}, shape::Renderer, util::animation_disabled, @@ -62,7 +62,7 @@ impl Component for Progress { .map(|t| t.chars().filter(|c| *c == '\n').count() as i16); let (title, rest) = Self::AREA.split_top(self.title.max_size().y); let (loader, description) = - rest.split_bottom(Font::NORMAL.line_height() * description_lines); + rest.split_bottom(font::FONT_NORMAL.line_height() * description_lines); let loader = loader.inset(Insets::top(theme::CONTENT_BORDER)); self.title.place(title); self.loader_y_offset = loader.center().y - constant::screen().center().y; diff --git a/core/embed/rust/src/ui/layout_delizia/component/result.rs b/core/embed/rust/src/ui/layout_delizia/component/result.rs index fcc4cc65bd1..577576a562b 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/result.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/result.rs @@ -3,10 +3,9 @@ use crate::{ ui::{ component::{text::TextStyle, Component, Event, EventCtx, Label, Never, Pad}, constant::screen, - display::{Color, Font, Icon}, + display::{font, Color, Icon}, geometry::{Alignment2D, Insets, Offset, Point, Rect}, - shape, - shape::Renderer, + shape::{self, Renderer}, }, }; @@ -34,11 +33,11 @@ impl ResultStyle { } pub const fn message_style(&self) -> TextStyle { - TextStyle::new(Font::NORMAL, self.fg_color, self.bg_color, FG, FG) + TextStyle::new(font::FONT_NORMAL, self.fg_color, self.bg_color, FG, FG) } pub const fn title_style(&self) -> TextStyle { - TextStyle::new(Font::BOLD, self.fg_color, self.bg_color, FG, FG) + TextStyle::new(font::FONT_BOLD, self.fg_color, self.bg_color, FG, FG) } } diff --git a/core/embed/rust/src/ui/layout_delizia/component/welcome_screen.rs b/core/embed/rust/src/ui/layout_delizia/component/welcome_screen.rs index 13f5ad0c726..96c25e83d02 100644 --- a/core/embed/rust/src/ui/layout_delizia/component/welcome_screen.rs +++ b/core/embed/rust/src/ui/layout_delizia/component/welcome_screen.rs @@ -1,17 +1,14 @@ use crate::ui::{ component::{Component, Event, EventCtx, Never}, - display::font::Font, + display::font, geometry::{Alignment, Alignment2D, Offset, Rect}, - shape, - shape::Renderer, + shape::{self, Renderer}, }; use super::theme; const TEXT_BOTTOM_MARGIN: i16 = 54; const ICON_TOP_MARGIN: i16 = 48; -#[cfg(not(feature = "bootloader"))] -const MODEL_NAME_FONT: Font = Font::DEMIBOLD; use crate::trezorhal::model; @@ -52,7 +49,7 @@ impl Component for WelcomeScreen { model::FULL_NAME, ) .with_align(Alignment::Center) - .with_font(Font::NORMAL) + .with_font(font::FONT_NORMAL) .with_fg(theme::FG) .render(target); } diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs new file mode 100644 index 00000000000..12c337e1230 --- /dev/null +++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_robotomono_medium_21.rs @@ -0,0 +1,406 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +/// ' ' (ASCII 32) +const Font_RobotoMono_Medium_21_glyph_32: [u8; 5] = [ 0, 0, 13, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_RobotoMono_Medium_21_glyph_33: [u8; 37] = [ 4, 16, 13, 4, 15, 240, 127, 240, 127, 240, 127, 240, 127, 240, 127, 240, 111, 240, 111, 240, 111, 240, 111, 208, 95, 0, 0, 0, 0, 96, 41, 242, 175, 225, 127, 0, 1 ]; + +/// '"' (ASCII 34) +const Font_RobotoMono_Medium_21_glyph_34: [u8; 29] = [ 7, 6, 13, 3, 16, 201, 0, 201, 0, 252, 1, 253, 0, 252, 0, 253, 0, 252, 0, 237, 0, 220, 0, 221, 0, 101, 0, 85, 0 ]; + +/// '#' (ASCII 35) +const Font_RobotoMono_Medium_21_glyph_35: [u8; 95] = [ 12, 15, 13, 0, 15, 0, 0, 243, 6, 243, 7, 0, 0, 246, 4, 246, 4, 0, 0, 249, 1, 249, 1, 0, 0, 236, 0, 236, 0, 112, 170, 239, 170, 239, 170, 160, 255, 255, 255, 255, 239, 0, 80, 95, 64, 111, 0, 0, 128, 47, 112, 63, 0, 0, 176, 15, 160, 15, 0, 198, 252, 207, 252, 207, 44, 198, 253, 206, 253, 206, 44, 0, 243, 7, 243, 7, 0, 0, 246, 4, 246, 4, 0, 0, 249, 1, 249, 1, 0, 0, 236, 0, 236, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_RobotoMono_Medium_21_glyph_36: [u8; 131] = [ 11, 21, 13, 1, 18, 0, 0, 80, 3, 0, 0, 0, 0, 240, 9, 0, 0, 0, 0, 240, 9, 0, 0, 0, 178, 255, 223, 5, 0, 32, 255, 239, 255, 127, 0, 176, 239, 2, 193, 255, 1, 224, 143, 0, 48, 255, 5, 224, 143, 0, 0, 187, 4, 176, 255, 4, 0, 0, 0, 32, 255, 207, 5, 0, 0, 0, 194, 255, 239, 6, 0, 0, 0, 147, 255, 159, 0, 0, 0, 0, 177, 255, 3, 132, 8, 0, 16, 255, 7, 247, 31, 0, 0, 255, 7, 242, 175, 0, 128, 255, 4, 144, 255, 223, 254, 191, 0, 0, 231, 255, 239, 8, 0, 0, 0, 244, 7, 0, 0, 0, 0, 243, 6, 0, 0, 0, 0, 32, 1, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_RobotoMono_Medium_21_glyph_37: [u8; 124] = [ 13, 17, 13, 0, 16, 0, 16, 0, 0, 0, 0, 0, 144, 255, 62, 0, 0, 0, 0, 245, 106, 223, 0, 0, 0, 0, 249, 2, 250, 1, 171, 0, 0, 249, 1, 250, 65, 95, 0, 0, 247, 39, 238, 192, 13, 0, 0, 208, 255, 111, 245, 4, 0, 0, 0, 100, 2, 190, 0, 0, 0, 0, 0, 112, 63, 0, 0, 0, 0, 0, 225, 10, 83, 2, 0, 0, 0, 248, 178, 255, 111, 0, 0, 16, 143, 245, 57, 253, 0, 0, 160, 31, 248, 3, 248, 2, 0, 160, 7, 248, 3, 248, 2, 0, 0, 0, 244, 75, 237, 0, 0, 0, 0, 144, 255, 79, 0, 0, 0, 0, 0, 33, 0, 0 ]; + +/// '&' (ASCII 38) +const Font_RobotoMono_Medium_21_glyph_38: [u8; 124] = [ 13, 17, 13, 0, 16, 0, 0, 16, 1, 0, 0, 0, 0, 64, 253, 223, 3, 0, 0, 0, 243, 255, 254, 30, 0, 0, 0, 249, 13, 208, 95, 0, 0, 0, 251, 9, 176, 111, 0, 0, 0, 250, 11, 242, 47, 0, 0, 0, 244, 143, 255, 6, 0, 0, 0, 176, 255, 95, 0, 0, 0, 0, 210, 255, 11, 0, 17, 0, 32, 254, 253, 127, 16, 255, 1, 176, 223, 129, 255, 51, 255, 0, 240, 127, 0, 252, 190, 191, 0, 241, 111, 0, 225, 255, 79, 0, 224, 223, 0, 144, 255, 12, 0, 96, 255, 206, 254, 255, 95, 0, 0, 230, 255, 223, 180, 255, 2, 0, 0, 50, 1, 0, 0, 0 ]; + +/// ''' (ASCII 39) +const Font_RobotoMono_Medium_21_glyph_39: [u8; 17] = [ 3, 6, 13, 4, 16, 193, 9, 242, 12, 242, 11, 242, 10, 242, 9, 129, 5 ]; + +/// '(' (ASCII 40) +const Font_RobotoMono_Medium_21_glyph_40: [u8; 93] = [ 7, 22, 13, 3, 17, 0, 0, 97, 0, 0, 16, 253, 0, 0, 192, 95, 0, 0, 247, 9, 0, 16, 255, 1, 0, 112, 175, 0, 0, 192, 95, 0, 0, 240, 31, 0, 0, 243, 15, 0, 0, 245, 13, 0, 0, 246, 12, 0, 0, 246, 12, 0, 0, 245, 13, 0, 0, 243, 15, 0, 0, 240, 31, 0, 0, 192, 95, 0, 0, 112, 175, 0, 0, 16, 255, 1, 0, 0, 248, 8, 0, 0, 208, 79, 0, 0, 16, 253, 0, 0, 0, 113, 0 ]; + +/// ')' (ASCII 41) +const Font_RobotoMono_Medium_21_glyph_41: [u8; 71] = [ 6, 22, 13, 3, 17, 51, 0, 0, 249, 5, 0, 209, 79, 0, 48, 239, 0, 0, 250, 7, 0, 244, 14, 0, 224, 63, 0, 176, 143, 0, 144, 191, 0, 112, 223, 0, 96, 239, 0, 96, 239, 0, 112, 223, 0, 128, 191, 0, 176, 143, 0, 224, 79, 0, 243, 14, 0, 249, 7, 32, 239, 0, 192, 79, 0, 249, 6, 0, 68, 0, 0 ]; + +/// '*' (ASCII 42) +const Font_RobotoMono_Medium_21_glyph_42: [u8; 71] = [ 11, 11, 13, 1, 15, 0, 0, 243, 11, 0, 0, 0, 0, 242, 10, 0, 0, 0, 0, 241, 9, 0, 0, 224, 58, 240, 8, 197, 6, 243, 255, 252, 236, 255, 10, 0, 132, 253, 191, 55, 0, 0, 32, 238, 95, 0, 0, 0, 208, 47, 253, 3, 0, 0, 251, 8, 244, 30, 0, 0, 233, 0, 176, 45, 0, 0, 16, 0, 16, 0, 0 ]; + +/// '+' (ASCII 43) +const Font_RobotoMono_Medium_21_glyph_43: [u8; 77] = [ 11, 12, 13, 1, 13, 0, 0, 85, 2, 0, 0, 0, 0, 255, 6, 0, 0, 0, 0, 255, 6, 0, 0, 0, 0, 255, 6, 0, 0, 50, 51, 255, 56, 51, 1, 254, 255, 255, 255, 255, 5, 254, 255, 255, 255, 255, 5, 17, 17, 255, 23, 17, 0, 0, 0, 255, 6, 0, 0, 0, 0, 255, 6, 0, 0, 0, 0, 255, 6, 0, 0, 0, 0, 135, 3, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_RobotoMono_Medium_21_glyph_44: [u8; 19] = [ 4, 7, 13, 3, 3, 32, 102, 96, 255, 96, 255, 112, 239, 160, 175, 241, 47, 145, 6 ]; + +/// '-' (ASCII 45) +const Font_RobotoMono_Medium_21_glyph_45: [u8; 20] = [ 9, 3, 13, 2, 8, 147, 153, 153, 153, 7, 246, 255, 255, 255, 14, 114, 119, 119, 119, 6 ]; + +/// '.' (ASCII 46) +const Font_RobotoMono_Medium_21_glyph_46: [u8; 20] = [ 5, 5, 13, 4, 4, 0, 2, 0, 225, 207, 0, 245, 255, 2, 225, 223, 0, 0, 2, 0 ]; + +/// '/' (ASCII 47) +const Font_RobotoMono_Medium_21_glyph_47: [u8; 90] = [ 9, 17, 13, 2, 15, 0, 0, 0, 253, 4, 0, 0, 64, 255, 0, 0, 0, 160, 159, 0, 0, 0, 240, 79, 0, 0, 0, 245, 14, 0, 0, 0, 251, 8, 0, 0, 16, 255, 2, 0, 0, 112, 223, 0, 0, 0, 192, 127, 0, 0, 0, 242, 31, 0, 0, 0, 248, 11, 0, 0, 0, 254, 5, 0, 0, 48, 255, 0, 0, 0, 144, 175, 0, 0, 0, 240, 79, 0, 0, 0, 245, 14, 0, 0, 0, 66, 3, 0, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_RobotoMono_Medium_21_glyph_48: [u8; 107] = [ 11, 17, 13, 1, 16, 0, 0, 33, 0, 0, 0, 0, 212, 255, 175, 1, 0, 80, 255, 223, 255, 30, 0, 224, 191, 0, 242, 143, 0, 244, 47, 0, 128, 239, 0, 247, 15, 0, 96, 255, 1, 248, 14, 0, 228, 255, 2, 248, 14, 128, 255, 255, 2, 248, 30, 251, 90, 255, 2, 248, 239, 111, 64, 255, 2, 248, 223, 2, 64, 255, 2, 247, 15, 0, 80, 255, 1, 244, 47, 0, 128, 239, 0, 224, 191, 0, 226, 159, 0, 80, 255, 206, 255, 30, 0, 0, 229, 255, 207, 2, 0, 0, 0, 50, 1, 0, 0 ]; + +/// '1' (ASCII 49) +const Font_RobotoMono_Medium_21_glyph_49: [u8; 65] = [ 8, 15, 13, 1, 15, 0, 0, 80, 59, 0, 147, 255, 63, 208, 255, 255, 63, 241, 158, 247, 63, 64, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63, 0, 0, 244, 63 ]; + +/// '2' (ASCII 50) +const Font_RobotoMono_Medium_21_glyph_50: [u8; 101] = [ 12, 16, 13, 0, 16, 0, 0, 16, 1, 0, 0, 0, 161, 255, 239, 8, 0, 32, 254, 239, 255, 175, 0, 176, 239, 3, 144, 255, 3, 241, 111, 0, 0, 255, 7, 162, 42, 0, 0, 255, 7, 0, 0, 0, 48, 255, 4, 0, 0, 0, 192, 223, 0, 0, 0, 0, 249, 63, 0, 0, 0, 128, 255, 5, 0, 0, 0, 247, 127, 0, 0, 0, 80, 255, 8, 0, 0, 0, 244, 159, 0, 0, 0, 48, 255, 9, 0, 0, 0, 224, 255, 255, 255, 255, 31, 224, 255, 255, 255, 255, 31 ]; + +/// '3' (ASCII 51) +const Font_RobotoMono_Medium_21_glyph_51: [u8; 107] = [ 11, 17, 13, 0, 16, 0, 0, 16, 1, 0, 0, 0, 145, 255, 255, 25, 0, 16, 253, 239, 254, 223, 0, 144, 255, 4, 96, 255, 6, 192, 175, 0, 0, 253, 10, 0, 0, 0, 0, 253, 10, 0, 0, 0, 64, 255, 5, 0, 0, 151, 251, 159, 0, 0, 0, 253, 255, 45, 0, 0, 0, 84, 215, 255, 2, 0, 0, 0, 0, 253, 10, 0, 0, 0, 0, 249, 14, 240, 143, 0, 0, 250, 13, 192, 239, 2, 48, 255, 9, 48, 255, 223, 253, 239, 1, 0, 179, 255, 255, 26, 0, 0, 0, 32, 2, 0, 0 ]; + +/// '4' (ASCII 52) +const Font_RobotoMono_Medium_21_glyph_52: [u8; 95] = [ 12, 15, 13, 0, 15, 0, 0, 0, 226, 159, 0, 0, 0, 0, 252, 175, 0, 0, 0, 96, 255, 175, 0, 0, 0, 241, 239, 175, 0, 0, 0, 251, 200, 175, 0, 0, 80, 223, 192, 175, 0, 0, 225, 63, 192, 175, 0, 0, 250, 9, 192, 175, 0, 64, 239, 0, 192, 175, 0, 208, 159, 85, 213, 207, 37, 244, 255, 255, 255, 255, 143, 163, 170, 170, 234, 239, 90, 0, 0, 0, 192, 175, 0, 0, 0, 0, 192, 175, 0, 0, 0, 0, 192, 175, 0 ]; + +/// '5' (ASCII 53) +const Font_RobotoMono_Medium_21_glyph_53: [u8; 101] = [ 11, 16, 13, 1, 15, 64, 255, 255, 255, 191, 0, 96, 255, 255, 255, 207, 0, 112, 223, 68, 68, 52, 0, 144, 175, 0, 0, 0, 0, 176, 143, 0, 0, 0, 0, 208, 175, 201, 123, 0, 0, 224, 255, 255, 255, 29, 0, 176, 175, 52, 249, 175, 0, 0, 0, 0, 144, 255, 1, 0, 0, 0, 64, 255, 3, 0, 0, 0, 48, 255, 4, 246, 15, 0, 96, 255, 2, 242, 159, 0, 209, 223, 0, 128, 255, 206, 255, 79, 0, 0, 230, 255, 223, 4, 0, 0, 0, 50, 1, 0, 0 ]; + +/// '6' (ASCII 54) +const Font_RobotoMono_Medium_21_glyph_54: [u8; 101] = [ 11, 16, 13, 1, 15, 0, 0, 199, 238, 0, 0, 0, 227, 255, 239, 0, 0, 32, 255, 126, 19, 0, 0, 176, 223, 1, 0, 0, 0, 242, 79, 0, 0, 0, 0, 247, 46, 218, 157, 1, 0, 250, 254, 255, 255, 29, 0, 251, 191, 35, 248, 159, 0, 252, 13, 0, 176, 239, 0, 252, 11, 0, 96, 255, 0, 250, 12, 0, 80, 255, 1, 247, 31, 0, 128, 239, 0, 241, 175, 0, 243, 159, 0, 96, 255, 222, 255, 30, 0, 0, 229, 255, 191, 2, 0, 0, 0, 50, 1, 0, 0 ]; + +/// '7' (ASCII 55) +const Font_RobotoMono_Medium_21_glyph_55: [u8; 95] = [ 12, 15, 13, 0, 15, 241, 255, 255, 255, 255, 63, 241, 255, 255, 255, 255, 47, 32, 34, 34, 34, 249, 12, 0, 0, 0, 0, 255, 4, 0, 0, 0, 112, 223, 0, 0, 0, 0, 224, 111, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 253, 8, 0, 0, 0, 80, 255, 2, 0, 0, 0, 192, 175, 0, 0, 0, 0, 243, 63, 0, 0, 0, 0, 251, 12, 0, 0, 0, 32, 255, 5, 0, 0, 0, 160, 239, 0, 0, 0, 0, 241, 127, 0, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_RobotoMono_Medium_21_glyph_56: [u8; 107] = [ 11, 17, 13, 1, 16, 0, 0, 33, 0, 0, 0, 0, 214, 255, 191, 2, 0, 112, 255, 239, 255, 47, 0, 240, 191, 0, 243, 159, 0, 243, 79, 0, 160, 223, 0, 243, 63, 0, 144, 223, 0, 224, 175, 0, 225, 143, 0, 64, 255, 173, 254, 12, 0, 0, 250, 255, 255, 4, 0, 176, 239, 87, 250, 95, 0, 244, 63, 0, 144, 239, 0, 248, 14, 0, 64, 255, 2, 248, 15, 0, 80, 255, 2, 244, 143, 0, 209, 239, 0, 176, 255, 206, 255, 95, 0, 0, 248, 255, 223, 5, 0, 0, 0, 50, 1, 0, 0 ]; + +/// '9' (ASCII 57) +const Font_RobotoMono_Medium_21_glyph_57: [u8; 90] = [ 10, 17, 13, 1, 16, 0, 0, 17, 0, 0, 0, 230, 255, 126, 0, 144, 255, 239, 255, 9, 243, 159, 0, 248, 63, 249, 14, 0, 208, 159, 251, 11, 0, 144, 223, 252, 11, 0, 112, 239, 250, 14, 0, 144, 255, 245, 143, 0, 245, 239, 176, 255, 238, 255, 223, 0, 249, 255, 169, 191, 0, 0, 1, 224, 111, 0, 0, 0, 247, 31, 0, 16, 164, 255, 6, 0, 249, 255, 143, 0, 0, 249, 174, 3, 0, 0, 0, 0, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_RobotoMono_Medium_21_glyph_58: [u8; 47] = [ 5, 14, 13, 4, 13, 0, 18, 0, 176, 255, 2, 240, 255, 7, 176, 255, 3, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 176, 255, 2, 240, 255, 7, 176, 255, 3, 0, 18, 0 ]; + +/// ';' (ASCII 59) +const Font_RobotoMono_Medium_21_glyph_59: [u8; 56] = [ 5, 17, 13, 4, 13, 0, 18, 0, 112, 255, 5, 208, 255, 10, 128, 255, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 102, 0, 96, 255, 0, 96, 255, 0, 96, 255, 0, 144, 175, 0, 224, 63, 0, 145, 6, 0 ]; + +/// '<' (ASCII 60) +const Font_RobotoMono_Medium_21_glyph_60: [u8; 60] = [ 10, 11, 13, 1, 12, 0, 0, 0, 0, 16, 0, 0, 0, 96, 157, 0, 0, 130, 255, 159, 0, 180, 255, 239, 40, 211, 255, 175, 4, 0, 245, 175, 1, 0, 0, 211, 255, 159, 4, 0, 0, 180, 255, 239, 40, 0, 0, 130, 255, 159, 0, 0, 0, 96, 157, 0, 0, 0, 0, 16 ]; + +/// '=' (ASCII 61) +const Font_RobotoMono_Medium_21_glyph_61: [u8; 47] = [ 11, 7, 13, 1, 10, 163, 170, 170, 170, 170, 1, 245, 255, 255, 255, 255, 2, 97, 102, 102, 102, 102, 0, 0, 0, 0, 0, 0, 0, 81, 85, 85, 85, 85, 0, 245, 255, 255, 255, 255, 2, 179, 187, 187, 187, 187, 1 ]; + +/// '>' (ASCII 62) +const Font_RobotoMono_Medium_21_glyph_62: [u8; 60] = [ 10, 11, 13, 1, 12, 1, 0, 0, 0, 0, 228, 40, 0, 0, 0, 244, 255, 91, 0, 0, 96, 251, 255, 126, 1, 0, 16, 199, 255, 159, 0, 0, 0, 229, 239, 0, 16, 215, 255, 159, 96, 252, 255, 126, 1, 244, 255, 75, 0, 0, 228, 40, 0, 0, 0, 1, 0, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_RobotoMono_Medium_21_glyph_63: [u8; 107] = [ 11, 17, 13, 1, 16, 0, 0, 33, 1, 0, 0, 0, 213, 255, 223, 5, 0, 112, 255, 255, 255, 111, 0, 240, 207, 1, 209, 239, 0, 194, 60, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 225, 175, 0, 0, 0, 0, 252, 30, 0, 0, 0, 193, 239, 3, 0, 0, 0, 248, 47, 0, 0, 0, 0, 252, 9, 0, 0, 0, 0, 151, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 2, 0, 0, 0, 16, 255, 11, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 16, 0, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_RobotoMono_Medium_21_glyph_64: [u8; 101] = [ 12, 16, 13, 0, 15, 0, 0, 165, 205, 41, 0, 0, 160, 207, 169, 254, 4, 0, 250, 5, 0, 176, 31, 64, 95, 64, 186, 21, 127, 192, 12, 245, 221, 15, 202, 241, 6, 190, 112, 15, 231, 244, 67, 79, 128, 13, 246, 246, 113, 31, 160, 12, 231, 247, 145, 15, 176, 11, 185, 246, 129, 47, 224, 9, 125, 244, 52, 239, 237, 190, 30, 240, 10, 199, 39, 187, 3, 144, 95, 0, 0, 0, 0, 0, 252, 123, 150, 10, 0, 0, 128, 254, 239, 8, 0, 0, 0, 0, 0, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_RobotoMono_Medium_21_glyph_65: [u8; 110] = [ 13, 15, 13, 0, 15, 0, 0, 176, 175, 0, 0, 0, 0, 0, 241, 255, 0, 0, 0, 0, 0, 246, 255, 5, 0, 0, 0, 0, 251, 255, 10, 0, 0, 0, 16, 255, 247, 15, 0, 0, 0, 96, 239, 240, 79, 0, 0, 0, 176, 159, 176, 159, 0, 0, 0, 241, 79, 96, 239, 0, 0, 0, 245, 15, 16, 255, 4, 0, 0, 251, 142, 136, 255, 9, 0, 0, 255, 255, 255, 255, 14, 0, 80, 255, 153, 153, 250, 63, 0, 160, 223, 0, 0, 224, 143, 0, 240, 143, 0, 0, 160, 223, 0, 245, 63, 0, 0, 80, 255, 2 ]; + +/// 'B' (ASCII 66) +const Font_RobotoMono_Medium_21_glyph_66: [u8; 95] = [ 11, 15, 13, 1, 15, 247, 255, 239, 173, 3, 0, 248, 255, 255, 255, 127, 0, 248, 31, 33, 212, 255, 2, 248, 15, 0, 32, 255, 6, 248, 15, 0, 0, 255, 6, 248, 15, 0, 112, 255, 2, 248, 175, 170, 253, 111, 0, 248, 255, 255, 255, 44, 0, 248, 79, 68, 197, 255, 2, 248, 15, 0, 0, 254, 10, 248, 15, 0, 0, 250, 12, 248, 15, 0, 0, 253, 11, 248, 15, 0, 146, 255, 6, 248, 255, 255, 255, 191, 0, 248, 255, 255, 207, 6, 0 ]; + +/// 'C' (ASCII 67) +const Font_RobotoMono_Medium_21_glyph_67: [u8; 107] = [ 12, 17, 13, 0, 16, 0, 0, 16, 2, 0, 0, 0, 64, 252, 255, 76, 0, 0, 246, 255, 254, 255, 5, 32, 255, 26, 16, 252, 14, 128, 239, 0, 0, 242, 95, 208, 175, 0, 0, 176, 124, 240, 127, 0, 0, 0, 0, 240, 111, 0, 0, 0, 0, 241, 111, 0, 0, 0, 0, 240, 111, 0, 0, 0, 0, 240, 127, 0, 0, 0, 0, 208, 159, 0, 0, 128, 89, 144, 239, 0, 0, 241, 111, 32, 255, 9, 0, 251, 31, 0, 247, 239, 253, 255, 5, 0, 96, 254, 255, 77, 0, 0, 0, 32, 19, 0, 0 ]; + +/// 'D' (ASCII 68) +const Font_RobotoMono_Medium_21_glyph_68: [u8; 95] = [ 11, 15, 13, 1, 15, 248, 255, 206, 24, 0, 0, 249, 255, 255, 255, 5, 0, 249, 30, 81, 252, 79, 0, 249, 14, 0, 208, 239, 0, 249, 14, 0, 64, 255, 4, 249, 14, 0, 0, 255, 8, 249, 14, 0, 0, 253, 10, 249, 14, 0, 0, 253, 10, 249, 14, 0, 0, 253, 10, 249, 14, 0, 0, 255, 8, 249, 14, 0, 48, 255, 5, 249, 14, 0, 176, 239, 0, 249, 14, 48, 251, 95, 0, 249, 255, 255, 255, 7, 0, 249, 255, 223, 41, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_RobotoMono_Medium_21_glyph_69: [u8; 95] = [ 11, 15, 13, 1, 15, 245, 255, 255, 255, 255, 4, 245, 255, 255, 255, 255, 4, 245, 63, 17, 17, 17, 0, 245, 47, 0, 0, 0, 0, 245, 47, 0, 0, 0, 0, 245, 47, 0, 0, 0, 0, 245, 191, 187, 187, 59, 0, 245, 255, 255, 255, 95, 0, 245, 111, 68, 68, 20, 0, 245, 47, 0, 0, 0, 0, 245, 47, 0, 0, 0, 0, 245, 47, 0, 0, 0, 0, 245, 47, 0, 0, 0, 0, 245, 255, 255, 255, 255, 5, 245, 255, 255, 255, 255, 5 ]; + +/// 'F' (ASCII 70) +const Font_RobotoMono_Medium_21_glyph_70: [u8; 95] = [ 11, 15, 13, 1, 15, 244, 255, 255, 255, 255, 6, 244, 255, 255, 255, 255, 6, 244, 79, 17, 17, 17, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 143, 102, 102, 54, 0, 244, 255, 255, 255, 143, 0, 244, 191, 170, 170, 90, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_RobotoMono_Medium_21_glyph_71: [u8; 107] = [ 12, 17, 13, 0, 16, 0, 0, 0, 2, 0, 0, 0, 64, 252, 255, 76, 0, 0, 245, 255, 254, 255, 6, 16, 255, 28, 16, 252, 31, 128, 255, 1, 0, 242, 95, 192, 191, 0, 0, 112, 55, 240, 143, 0, 0, 0, 0, 240, 127, 0, 0, 0, 0, 241, 127, 0, 133, 136, 72, 240, 127, 0, 249, 255, 143, 240, 127, 0, 99, 246, 143, 208, 175, 0, 0, 224, 143, 128, 255, 1, 0, 224, 143, 16, 255, 27, 0, 243, 143, 0, 246, 255, 237, 255, 63, 0, 64, 253, 255, 159, 1, 0, 0, 16, 35, 0, 0 ]; + +/// 'H' (ASCII 72) +const Font_RobotoMono_Medium_21_glyph_72: [u8; 95] = [ 11, 15, 13, 1, 15, 249, 11, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 190, 187, 203, 255, 2, 250, 255, 255, 255, 255, 2, 250, 93, 85, 117, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2, 250, 12, 0, 48, 255, 2 ]; + +/// 'I' (ASCII 73) +const Font_RobotoMono_Medium_21_glyph_73: [u8; 80] = [ 10, 15, 13, 1, 15, 241, 255, 255, 255, 175, 241, 255, 255, 255, 191, 16, 17, 255, 24, 17, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 0, 0, 255, 8, 0, 241, 255, 255, 255, 191, 241, 255, 255, 255, 191 ]; + +/// 'J' (ASCII 74) +const Font_RobotoMono_Medium_21_glyph_74: [u8; 101] = [ 11, 16, 13, 1, 15, 0, 0, 0, 96, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 0, 0, 0, 112, 255, 0, 85, 3, 0, 112, 255, 0, 253, 11, 0, 160, 239, 0, 248, 79, 0, 245, 159, 0, 225, 255, 238, 255, 29, 0, 16, 250, 255, 159, 1, 0, 0, 0, 34, 0, 0, 0 ]; + +/// 'K' (ASCII 75) +const Font_RobotoMono_Medium_21_glyph_75: [u8; 95] = [ 12, 15, 13, 1, 15, 247, 15, 0, 16, 253, 29, 248, 15, 0, 176, 255, 3, 248, 15, 0, 248, 127, 0, 248, 15, 64, 255, 10, 0, 248, 15, 225, 223, 0, 0, 248, 15, 252, 47, 0, 0, 248, 143, 255, 7, 0, 0, 248, 255, 255, 12, 0, 0, 248, 255, 253, 111, 0, 0, 248, 191, 192, 255, 1, 0, 248, 15, 32, 255, 11, 0, 248, 15, 0, 248, 95, 0, 248, 15, 0, 208, 239, 1, 248, 15, 0, 64, 255, 10, 248, 15, 0, 0, 250, 79 ]; + +/// 'L' (ASCII 76) +const Font_RobotoMono_Medium_21_glyph_76: [u8; 95] = [ 11, 15, 13, 1, 15, 243, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 63, 0, 0, 0, 0, 244, 255, 255, 255, 255, 5, 244, 255, 255, 255, 255, 5 ]; + +/// 'M' (ASCII 77) +const Font_RobotoMono_Medium_21_glyph_77: [u8; 95] = [ 11, 15, 13, 1, 15, 249, 143, 0, 192, 255, 6, 249, 223, 0, 241, 255, 6, 249, 255, 2, 246, 255, 6, 249, 255, 7, 252, 254, 6, 249, 251, 27, 223, 252, 6, 249, 217, 127, 143, 253, 6, 249, 138, 255, 63, 253, 6, 249, 58, 255, 13, 253, 6, 249, 10, 254, 8, 254, 6, 249, 11, 249, 3, 254, 6, 249, 11, 98, 0, 254, 6, 249, 11, 0, 0, 254, 6, 249, 11, 0, 0, 254, 6, 249, 11, 0, 0, 254, 6, 249, 11, 0, 0, 254, 6 ]; + +/// 'N' (ASCII 78) +const Font_RobotoMono_Medium_21_glyph_78: [u8; 95] = [ 11, 15, 13, 1, 15, 249, 30, 0, 64, 255, 2, 250, 143, 0, 80, 255, 2, 250, 255, 0, 80, 255, 2, 250, 255, 7, 80, 255, 2, 250, 255, 14, 80, 255, 2, 250, 205, 111, 80, 255, 2, 250, 93, 223, 80, 255, 2, 250, 13, 253, 85, 255, 2, 250, 13, 245, 93, 255, 2, 250, 13, 224, 175, 255, 2, 250, 13, 96, 255, 255, 2, 250, 13, 0, 254, 255, 2, 250, 13, 0, 247, 255, 2, 250, 13, 0, 241, 255, 2, 250, 13, 0, 128, 255, 2 ]; + +/// 'O' (ASCII 79) +const Font_RobotoMono_Medium_21_glyph_79: [u8; 107] = [ 12, 17, 13, 0, 16, 0, 0, 16, 1, 0, 0, 0, 80, 253, 255, 25, 0, 0, 246, 255, 255, 223, 1, 32, 255, 27, 80, 255, 10, 128, 239, 0, 0, 247, 47, 208, 175, 0, 0, 241, 111, 240, 127, 0, 0, 224, 159, 240, 111, 0, 0, 208, 175, 241, 111, 0, 0, 208, 175, 240, 111, 0, 0, 208, 175, 240, 127, 0, 0, 224, 159, 208, 159, 0, 0, 240, 111, 144, 239, 0, 0, 246, 47, 32, 255, 10, 48, 254, 11, 0, 247, 255, 254, 239, 1, 0, 96, 254, 255, 27, 0, 0, 0, 32, 2, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_RobotoMono_Medium_21_glyph_80: [u8; 95] = [ 11, 15, 13, 1, 15, 244, 255, 239, 174, 4, 0, 244, 255, 255, 255, 143, 0, 244, 63, 17, 179, 255, 5, 244, 47, 0, 0, 254, 11, 244, 47, 0, 0, 250, 13, 244, 47, 0, 0, 251, 12, 244, 47, 0, 80, 255, 8, 244, 207, 187, 253, 223, 1, 244, 255, 255, 255, 26, 0, 244, 111, 85, 20, 0, 0, 244, 47, 0, 0, 0, 0, 244, 47, 0, 0, 0, 0, 244, 47, 0, 0, 0, 0, 244, 47, 0, 0, 0, 0, 244, 47, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_RobotoMono_Medium_21_glyph_81: [u8; 138] = [ 13, 19, 13, 0, 16, 0, 0, 16, 2, 0, 0, 0, 0, 64, 253, 255, 26, 0, 0, 0, 246, 255, 255, 239, 1, 0, 32, 255, 27, 64, 254, 11, 0, 128, 239, 0, 0, 245, 63, 0, 208, 175, 0, 0, 240, 143, 0, 240, 127, 0, 0, 192, 175, 0, 241, 111, 0, 0, 176, 207, 0, 241, 111, 0, 0, 176, 207, 0, 241, 111, 0, 0, 176, 207, 0, 240, 127, 0, 0, 192, 191, 0, 224, 159, 0, 0, 224, 143, 0, 144, 239, 0, 0, 244, 79, 0, 32, 255, 10, 32, 254, 13, 0, 0, 247, 255, 254, 255, 2, 0, 0, 80, 254, 255, 255, 6, 0, 0, 0, 32, 19, 250, 143, 0, 0, 0, 0, 0, 144, 207, 0, 0, 0, 0, 0, 0, 5, 0 ]; + +/// 'R' (ASCII 82) +const Font_RobotoMono_Medium_21_glyph_82: [u8; 95] = [ 12, 15, 13, 1, 15, 246, 255, 239, 157, 3, 0, 247, 255, 255, 255, 111, 0, 247, 31, 17, 212, 255, 2, 247, 15, 0, 32, 255, 7, 247, 15, 0, 0, 254, 9, 247, 15, 0, 0, 255, 7, 247, 15, 0, 160, 255, 2, 247, 207, 220, 255, 127, 0, 247, 255, 255, 255, 4, 0, 247, 63, 99, 255, 4, 0, 247, 15, 0, 252, 12, 0, 247, 15, 0, 245, 95, 0, 247, 15, 0, 208, 223, 0, 247, 15, 0, 80, 255, 5, 247, 15, 0, 0, 253, 13 ]; + +/// 'S' (ASCII 83) +const Font_RobotoMono_Medium_21_glyph_83: [u8; 107] = [ 11, 17, 13, 1, 16, 0, 0, 32, 1, 0, 0, 0, 197, 255, 223, 6, 0, 128, 255, 239, 255, 159, 0, 243, 175, 1, 144, 255, 4, 247, 15, 0, 0, 254, 10, 247, 31, 0, 0, 100, 5, 243, 207, 2, 0, 0, 0, 112, 255, 207, 22, 0, 0, 0, 213, 255, 255, 8, 0, 0, 0, 148, 255, 191, 0, 0, 0, 0, 144, 255, 6, 135, 4, 0, 0, 253, 11, 253, 11, 0, 0, 252, 12, 247, 127, 0, 80, 255, 8, 176, 255, 223, 254, 223, 1, 0, 214, 255, 255, 25, 0, 0, 0, 33, 2, 0, 0 ]; + +/// 'T' (ASCII 84) +const Font_RobotoMono_Medium_21_glyph_84: [u8; 110] = [ 13, 15, 13, 0, 15, 247, 255, 255, 255, 255, 255, 1, 248, 255, 255, 255, 255, 255, 2, 16, 17, 241, 159, 17, 17, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 0, 240, 143, 0, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_RobotoMono_Medium_21_glyph_85: [u8; 101] = [ 11, 16, 13, 1, 15, 249, 11, 0, 32, 255, 3, 250, 12, 0, 48, 255, 3, 250, 12, 0, 48, 255, 3, 250, 12, 0, 48, 255, 3, 250, 12, 0, 48, 255, 3, 250, 12, 0, 48, 255, 3, 250, 13, 0, 48, 255, 4, 250, 13, 0, 48, 255, 4, 250, 13, 0, 48, 255, 4, 250, 13, 0, 48, 255, 4, 250, 13, 0, 64, 255, 3, 247, 31, 0, 112, 255, 1, 242, 175, 0, 226, 191, 0, 128, 255, 222, 255, 47, 0, 0, 231, 255, 191, 2, 0, 0, 0, 50, 1, 0, 0 ]; + +/// 'V' (ASCII 86) +const Font_RobotoMono_Medium_21_glyph_86: [u8; 110] = [ 13, 15, 13, 0, 15, 245, 79, 0, 0, 176, 223, 0, 241, 159, 0, 0, 240, 175, 0, 192, 223, 0, 0, 244, 95, 0, 112, 255, 2, 0, 249, 15, 0, 32, 255, 6, 0, 253, 11, 0, 0, 253, 10, 16, 255, 6, 0, 0, 248, 15, 96, 255, 1, 0, 0, 243, 63, 160, 207, 0, 0, 0, 224, 143, 224, 127, 0, 0, 0, 144, 207, 243, 47, 0, 0, 0, 64, 255, 249, 13, 0, 0, 0, 0, 255, 255, 8, 0, 0, 0, 0, 250, 255, 4, 0, 0, 0, 0, 245, 239, 0, 0, 0, 0, 0, 241, 175, 0, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_RobotoMono_Medium_21_glyph_87: [u8; 110] = [ 13, 15, 13, 0, 15, 247, 12, 160, 95, 16, 255, 3, 245, 14, 208, 143, 32, 255, 1, 243, 15, 240, 175, 64, 255, 0, 241, 47, 242, 223, 96, 223, 0, 240, 79, 244, 255, 128, 191, 0, 208, 95, 247, 254, 162, 159, 0, 176, 127, 250, 249, 197, 111, 0, 144, 159, 252, 244, 215, 79, 0, 96, 191, 223, 241, 250, 47, 0, 64, 239, 175, 240, 254, 15, 0, 32, 255, 127, 192, 255, 14, 0, 0, 255, 95, 144, 255, 12, 0, 0, 254, 47, 96, 255, 10, 0, 0, 252, 15, 64, 255, 8, 0, 0, 250, 13, 16, 255, 6, 0 ]; + +/// 'X' (ASCII 88) +const Font_RobotoMono_Medium_21_glyph_88: [u8; 110] = [ 13, 15, 13, 0, 15, 225, 191, 0, 0, 208, 223, 0, 128, 255, 4, 0, 247, 95, 0, 0, 254, 12, 0, 254, 12, 0, 0, 245, 79, 112, 255, 3, 0, 0, 192, 223, 241, 175, 0, 0, 0, 48, 255, 252, 31, 0, 0, 0, 0, 250, 255, 7, 0, 0, 0, 0, 243, 255, 1, 0, 0, 0, 0, 250, 255, 8, 0, 0, 0, 64, 255, 252, 47, 0, 0, 0, 208, 223, 224, 191, 0, 0, 0, 246, 79, 96, 255, 4, 0, 16, 254, 12, 0, 253, 13, 0, 144, 255, 4, 0, 245, 111, 0, 242, 191, 0, 0, 208, 239, 1 ]; + +/// 'Y' (ASCII 89) +const Font_RobotoMono_Medium_21_glyph_89: [u8; 110] = [ 13, 15, 13, 0, 15, 244, 111, 0, 0, 176, 239, 0, 208, 223, 0, 0, 242, 143, 0, 80, 255, 4, 0, 249, 31, 0, 0, 253, 11, 16, 255, 8, 0, 0, 246, 47, 112, 255, 1, 0, 0, 208, 159, 224, 159, 0, 0, 0, 96, 255, 246, 31, 0, 0, 0, 0, 254, 255, 9, 0, 0, 0, 0, 247, 255, 1, 0, 0, 0, 0, 240, 175, 0, 0, 0, 0, 0, 224, 143, 0, 0, 0, 0, 0, 224, 143, 0, 0, 0, 0, 0, 224, 143, 0, 0, 0, 0, 0, 224, 143, 0, 0, 0, 0, 0, 224, 143, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_RobotoMono_Medium_21_glyph_90: [u8; 95] = [ 11, 15, 13, 1, 15, 253, 255, 255, 255, 255, 4, 254, 255, 255, 255, 255, 4, 17, 17, 17, 226, 207, 0, 0, 0, 0, 249, 47, 0, 0, 0, 48, 255, 7, 0, 0, 0, 208, 207, 0, 0, 0, 0, 248, 47, 0, 0, 0, 48, 255, 8, 0, 0, 0, 192, 223, 0, 0, 0, 0, 247, 63, 0, 0, 0, 32, 255, 8, 0, 0, 0, 192, 223, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 255, 255, 255, 255, 255, 8, 255, 255, 255, 255, 255, 8 ]; + +/// '[' (ASCII 91) +const Font_RobotoMono_Medium_21_glyph_91: [u8; 71] = [ 5, 22, 13, 4, 18, 50, 51, 2, 252, 255, 9, 252, 190, 6, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 9, 0, 252, 157, 5, 252, 255, 9, 84, 85, 3 ]; + +/// '\' (ASCII 92) +const Font_RobotoMono_Medium_21_glyph_92: [u8; 90] = [ 9, 17, 13, 2, 15, 246, 12, 0, 0, 0, 241, 63, 0, 0, 0, 176, 159, 0, 0, 0, 80, 239, 0, 0, 0, 0, 255, 4, 0, 0, 0, 249, 10, 0, 0, 0, 244, 15, 0, 0, 0, 224, 111, 0, 0, 0, 128, 191, 0, 0, 0, 32, 255, 1, 0, 0, 0, 252, 7, 0, 0, 0, 247, 13, 0, 0, 0, 241, 47, 0, 0, 0, 176, 143, 0, 0, 0, 80, 239, 0, 0, 0, 0, 255, 4, 0, 0, 0, 67, 2 ]; + +/// ']' (ASCII 93) +const Font_RobotoMono_Medium_21_glyph_93: [u8; 71] = [ 5, 22, 13, 4, 18, 51, 51, 1, 254, 255, 8, 186, 255, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 0, 254, 8, 152, 255, 8, 254, 255, 8, 84, 85, 2 ]; + +/// '^' (ASCII 94) +const Font_RobotoMono_Medium_21_glyph_94: [u8; 45] = [ 9, 8, 13, 2, 15, 0, 144, 127, 0, 0, 0, 241, 223, 0, 0, 0, 247, 254, 4, 0, 0, 253, 246, 11, 0, 64, 191, 224, 31, 0, 176, 95, 128, 143, 0, 242, 14, 16, 239, 0, 248, 8, 0, 251, 5 ]; + +/// '_' (ASCII 95) +const Font_RobotoMono_Medium_21_glyph_95: [u8; 15] = [ 10, 2, 13, 1, 0, 247, 255, 255, 255, 239, 246, 255, 255, 255, 223 ]; + +/// '`' (ASCII 96) +const Font_RobotoMono_Medium_21_glyph_96: [u8; 17] = [ 5, 4, 13, 4, 16, 33, 2, 0, 243, 127, 0, 48, 255, 2, 0, 164, 6 ]; + +/// 'a' (ASCII 97) +const Font_RobotoMono_Medium_21_glyph_97: [u8; 83] = [ 11, 13, 13, 1, 12, 0, 16, 68, 2, 0, 0, 16, 251, 255, 223, 4, 0, 208, 255, 170, 254, 63, 0, 245, 63, 0, 225, 159, 0, 16, 1, 0, 176, 191, 0, 0, 131, 187, 236, 207, 0, 160, 255, 206, 252, 207, 0, 245, 95, 0, 176, 207, 0, 249, 13, 0, 176, 207, 0, 249, 47, 0, 245, 207, 0, 243, 255, 236, 255, 223, 0, 64, 253, 255, 137, 255, 1, 0, 32, 3, 0, 0, 0 ]; + +/// 'b' (ASCII 98) +const Font_RobotoMono_Medium_21_glyph_98: [u8; 107] = [ 11, 17, 13, 1, 16, 196, 12, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 65, 4, 0, 0, 246, 127, 255, 255, 7, 0, 246, 255, 189, 255, 95, 0, 246, 143, 0, 209, 223, 0, 246, 31, 0, 96, 255, 2, 246, 31, 0, 32, 255, 4, 246, 31, 0, 16, 255, 5, 246, 31, 0, 32, 255, 4, 246, 31, 0, 96, 255, 2, 246, 175, 0, 225, 223, 0, 246, 255, 223, 255, 79, 0, 246, 94, 254, 239, 5, 0, 0, 0, 32, 2, 0, 0 ]; + +/// 'c' (ASCII 99) +const Font_RobotoMono_Medium_21_glyph_99: [u8; 83] = [ 11, 13, 13, 1, 12, 0, 0, 67, 3, 0, 0, 0, 230, 255, 239, 5, 0, 112, 255, 189, 254, 95, 0, 242, 159, 0, 192, 223, 0, 247, 31, 0, 64, 238, 0, 250, 13, 0, 0, 0, 0, 250, 12, 0, 0, 0, 0, 250, 13, 0, 0, 0, 0, 246, 31, 0, 48, 170, 0, 241, 175, 0, 176, 223, 0, 96, 255, 206, 255, 79, 0, 0, 229, 255, 207, 3, 0, 0, 0, 50, 1, 0, 0 ]; + +/// 'd' (ASCII 100) +const Font_RobotoMono_Medium_21_glyph_100: [u8; 90] = [ 10, 17, 13, 1, 16, 0, 0, 0, 96, 188, 0, 0, 0, 128, 255, 0, 0, 0, 128, 255, 0, 0, 0, 128, 255, 0, 32, 52, 128, 255, 0, 250, 255, 173, 255, 176, 255, 189, 255, 255, 243, 159, 0, 209, 255, 248, 15, 0, 128, 255, 251, 12, 0, 128, 255, 251, 11, 0, 128, 255, 250, 12, 0, 128, 255, 248, 31, 0, 128, 255, 242, 175, 0, 226, 255, 144, 255, 222, 255, 255, 0, 249, 255, 124, 255, 0, 0, 19, 0, 0 ]; + +/// 'e' (ASCII 101) +const Font_RobotoMono_Medium_21_glyph_101: [u8; 83] = [ 11, 13, 13, 1, 12, 0, 0, 67, 3, 0, 0, 0, 229, 255, 239, 5, 0, 96, 255, 190, 254, 95, 0, 241, 175, 0, 160, 239, 0, 247, 31, 0, 32, 255, 3, 250, 158, 153, 153, 255, 5, 251, 255, 255, 255, 255, 6, 251, 61, 51, 51, 51, 1, 248, 47, 0, 0, 0, 0, 241, 223, 2, 16, 155, 0, 80, 255, 223, 253, 223, 0, 0, 196, 255, 255, 9, 0, 0, 0, 49, 2, 0, 0 ]; + +/// 'f' (ASCII 102) +const Font_RobotoMono_Medium_21_glyph_102: [u8; 107] = [ 11, 17, 13, 1, 17, 0, 0, 0, 32, 18, 0, 0, 0, 161, 255, 255, 10, 0, 0, 252, 239, 237, 9, 0, 80, 255, 7, 0, 0, 0, 144, 239, 0, 0, 0, 16, 161, 223, 17, 17, 0, 249, 255, 255, 255, 255, 0, 183, 235, 255, 187, 187, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 160, 223, 0, 0, 0 ]; + +/// 'g' (ASCII 103) +const Font_RobotoMono_Medium_21_glyph_103: [u8; 107] = [ 11, 17, 13, 1, 12, 0, 16, 52, 0, 17, 0, 0, 250, 255, 126, 255, 0, 160, 255, 190, 255, 255, 0, 243, 175, 0, 192, 255, 0, 248, 31, 0, 96, 255, 0, 250, 12, 0, 96, 255, 0, 251, 11, 0, 96, 255, 0, 250, 12, 0, 96, 255, 0, 248, 31, 0, 96, 255, 0, 242, 175, 0, 209, 255, 0, 144, 255, 223, 255, 255, 0, 0, 248, 255, 156, 255, 0, 0, 0, 34, 128, 255, 0, 64, 8, 0, 225, 191, 0, 224, 223, 169, 254, 63, 0, 48, 252, 255, 223, 4, 0, 0, 32, 85, 3, 0, 0 ]; + +/// 'h' (ASCII 104) +const Font_RobotoMono_Medium_21_glyph_104: [u8; 101] = [ 11, 16, 13, 1, 16, 196, 12, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 0, 0, 0, 0, 246, 15, 48, 36, 0, 0, 246, 63, 253, 255, 27, 0, 246, 239, 190, 254, 175, 0, 246, 127, 0, 176, 255, 0, 246, 15, 0, 80, 255, 2, 246, 15, 0, 64, 255, 3, 246, 15, 0, 64, 255, 3, 246, 15, 0, 64, 255, 3, 246, 15, 0, 64, 255, 3, 246, 15, 0, 64, 255, 3, 246, 15, 0, 64, 255, 3, 246, 15, 0, 64, 255, 3 ]; + +/// 'i' (ASCII 105) +const Font_RobotoMono_Medium_21_glyph_105: [u8; 85] = [ 10, 16, 13, 2, 16, 0, 0, 36, 0, 0, 0, 128, 255, 0, 0, 0, 128, 207, 0, 0, 0, 0, 2, 0, 0, 17, 17, 17, 0, 0, 253, 255, 255, 0, 0, 252, 255, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 1, 0, 253, 255, 255, 255, 79, 253, 255, 255, 255, 79 ]; + +/// 'j' (ASCII 106) +const Font_RobotoMono_Medium_21_glyph_106: [u8; 89] = [ 7, 21, 13, 2, 16, 0, 0, 65, 1, 0, 0, 252, 12, 0, 0, 252, 13, 0, 0, 81, 1, 16, 17, 17, 1, 224, 255, 255, 12, 208, 255, 255, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 12, 0, 0, 251, 11, 0, 16, 255, 9, 150, 233, 255, 3, 251, 255, 127, 0, 116, 87, 1, 0 ]; + +/// 'k' (ASCII 107) +const Font_RobotoMono_Medium_21_glyph_107: [u8; 101] = [ 11, 16, 13, 1, 16, 196, 12, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 16, 17, 0, 246, 31, 0, 243, 207, 0, 246, 31, 32, 254, 12, 0, 246, 31, 226, 223, 1, 0, 246, 63, 254, 30, 0, 0, 246, 239, 255, 3, 0, 0, 246, 255, 255, 12, 0, 0, 246, 239, 247, 143, 0, 0, 246, 47, 144, 255, 4, 0, 246, 31, 0, 253, 47, 0, 246, 31, 0, 243, 207, 0, 246, 31, 0, 96, 255, 9 ]; + +/// 'l' (ASCII 108) +const Font_RobotoMono_Medium_21_glyph_108: [u8; 85] = [ 10, 16, 13, 2, 16, 203, 204, 204, 0, 0, 255, 255, 255, 0, 0, 68, 148, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 0, 0, 0, 112, 255, 1, 0, 255, 255, 255, 255, 111, 255, 255, 255, 255, 111 ]; + +/// 'm' (ASCII 109) +const Font_RobotoMono_Medium_21_glyph_109: [u8; 77] = [ 12, 12, 13, 0, 12, 16, 1, 66, 0, 66, 0, 242, 143, 255, 141, 255, 30, 242, 239, 252, 255, 252, 143, 242, 47, 224, 127, 160, 175, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191, 242, 31, 208, 111, 144, 191 ]; + +/// 'n' (ASCII 110) +const Font_RobotoMono_Medium_21_glyph_110: [u8; 77] = [ 11, 12, 13, 1, 12, 16, 1, 48, 36, 0, 0, 246, 61, 253, 255, 28, 0, 246, 239, 190, 254, 175, 0, 246, 143, 0, 176, 255, 0, 246, 15, 0, 80, 255, 2, 246, 15, 0, 64, 255, 2, 246, 15, 0, 64, 255, 2, 246, 15, 0, 64, 255, 2, 246, 15, 0, 64, 255, 2, 246, 15, 0, 64, 255, 2, 246, 15, 0, 64, 255, 2, 246, 15, 0, 64, 255, 2 ]; + +/// 'o' (ASCII 111) +const Font_RobotoMono_Medium_21_glyph_111: [u8; 83] = [ 11, 13, 13, 1, 12, 0, 0, 67, 2, 0, 0, 0, 248, 255, 223, 3, 0, 160, 255, 189, 254, 63, 0, 244, 143, 0, 209, 223, 0, 249, 14, 0, 80, 255, 3, 252, 10, 0, 16, 255, 6, 253, 9, 0, 0, 255, 6, 252, 10, 0, 16, 255, 6, 249, 14, 0, 80, 255, 2, 243, 159, 0, 209, 207, 0, 128, 255, 206, 255, 63, 0, 0, 230, 255, 207, 3, 0, 0, 0, 50, 1, 0, 0 ]; + +/// 'p' (ASCII 112) +const Font_RobotoMono_Medium_21_glyph_112: [u8; 107] = [ 11, 17, 13, 1, 12, 16, 1, 65, 4, 0, 0, 246, 126, 255, 255, 6, 0, 246, 255, 205, 255, 95, 0, 246, 127, 0, 226, 223, 0, 246, 31, 0, 112, 255, 1, 246, 31, 0, 48, 255, 4, 246, 31, 0, 32, 255, 4, 246, 31, 0, 48, 255, 3, 246, 31, 0, 112, 255, 1, 246, 143, 0, 226, 207, 0, 246, 255, 206, 255, 63, 0, 246, 127, 254, 239, 4, 0, 246, 31, 32, 2, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 246, 31, 0, 0, 0, 0, 65, 4, 0, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_RobotoMono_Medium_21_glyph_113: [u8; 90] = [ 10, 17, 13, 1, 12, 0, 32, 52, 0, 17, 0, 251, 255, 125, 255, 176, 255, 189, 254, 255, 243, 159, 0, 192, 255, 248, 15, 0, 128, 255, 251, 12, 0, 128, 255, 251, 11, 0, 128, 255, 250, 12, 0, 128, 255, 248, 31, 0, 128, 255, 243, 175, 0, 209, 255, 144, 255, 206, 255, 255, 0, 249, 255, 172, 255, 0, 0, 35, 128, 255, 0, 0, 0, 128, 255, 0, 0, 0, 128, 255, 0, 0, 0, 128, 255, 0, 0, 0, 32, 68 ]; + +/// 'r' (ASCII 114) +const Font_RobotoMono_Medium_21_glyph_114: [u8; 65] = [ 9, 12, 13, 3, 12, 17, 0, 48, 52, 0, 254, 71, 254, 255, 3, 254, 252, 255, 255, 1, 254, 223, 37, 67, 0, 254, 14, 0, 0, 0, 254, 9, 0, 0, 0, 254, 9, 0, 0, 0, 254, 9, 0, 0, 0, 254, 9, 0, 0, 0, 254, 9, 0, 0, 0, 254, 9, 0, 0, 0, 254, 9, 0, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_RobotoMono_Medium_21_glyph_115: [u8; 83] = [ 11, 13, 13, 1, 12, 0, 0, 67, 3, 0, 0, 0, 249, 255, 255, 8, 0, 160, 255, 154, 251, 159, 0, 241, 111, 0, 128, 255, 1, 241, 127, 0, 16, 51, 0, 160, 255, 140, 21, 0, 0, 0, 231, 255, 255, 26, 0, 0, 0, 115, 251, 223, 0, 115, 6, 0, 80, 255, 3, 245, 79, 0, 80, 255, 2, 192, 255, 172, 252, 191, 0, 0, 232, 255, 239, 8, 0, 0, 0, 50, 2, 0, 0 ]; + +/// 't' (ASCII 116) +const Font_RobotoMono_Medium_21_glyph_116: [u8; 95] = [ 11, 15, 13, 1, 14, 0, 192, 108, 0, 0, 0, 0, 240, 143, 0, 0, 0, 16, 241, 159, 17, 17, 0, 250, 255, 255, 255, 191, 0, 183, 251, 223, 187, 139, 0, 0, 240, 143, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 240, 143, 0, 0, 0, 0, 208, 223, 1, 0, 0, 0, 112, 255, 223, 254, 0, 0, 0, 248, 255, 223, 0, 0, 0, 0, 35, 1, 0 ]; + +/// 'u' (ASCII 117) +const Font_RobotoMono_Medium_21_glyph_117: [u8; 83] = [ 11, 13, 13, 1, 12, 16, 1, 0, 0, 17, 0, 245, 47, 0, 96, 255, 1, 245, 47, 0, 96, 255, 1, 245, 47, 0, 96, 255, 1, 245, 47, 0, 96, 255, 1, 245, 47, 0, 96, 255, 1, 245, 47, 0, 96, 255, 1, 245, 47, 0, 96, 255, 1, 244, 63, 0, 96, 255, 1, 241, 159, 0, 210, 255, 1, 160, 255, 222, 239, 255, 1, 16, 251, 255, 58, 255, 1, 0, 16, 19, 0, 0, 0 ]; + +/// 'v' (ASCII 118) +const Font_RobotoMono_Medium_21_glyph_118: [u8; 77] = [ 12, 12, 13, 0, 12, 16, 1, 0, 0, 16, 17, 224, 159, 0, 0, 240, 143, 128, 239, 0, 0, 245, 31, 32, 255, 4, 0, 251, 11, 0, 251, 9, 0, 255, 5, 0, 245, 14, 80, 239, 0, 0, 224, 79, 176, 143, 0, 0, 128, 175, 241, 47, 0, 0, 32, 255, 246, 12, 0, 0, 0, 252, 254, 5, 0, 0, 0, 246, 255, 0, 0, 0, 0, 240, 159, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_RobotoMono_Medium_21_glyph_119: [u8; 89] = [ 13, 12, 13, 0, 12, 16, 0, 0, 1, 0, 17, 0, 248, 10, 160, 63, 32, 255, 0, 245, 13, 224, 111, 64, 223, 0, 242, 15, 241, 159, 112, 175, 0, 224, 47, 244, 222, 144, 127, 0, 176, 79, 248, 249, 176, 79, 0, 128, 111, 219, 245, 228, 31, 0, 80, 159, 159, 241, 248, 14, 0, 32, 223, 111, 208, 253, 11, 0, 0, 255, 47, 160, 255, 7, 0, 0, 252, 14, 96, 255, 4, 0, 0, 249, 11, 32, 255, 1, 0 ]; + +/// 'x' (ASCII 120) +const Font_RobotoMono_Medium_21_glyph_120: [u8; 77] = [ 11, 12, 13, 1, 12, 17, 1, 0, 0, 17, 1, 246, 79, 0, 80, 255, 6, 176, 239, 1, 225, 191, 0, 16, 254, 10, 251, 30, 0, 0, 244, 191, 255, 4, 0, 0, 144, 255, 159, 0, 0, 0, 32, 255, 47, 0, 0, 0, 192, 255, 191, 0, 0, 0, 247, 127, 255, 7, 0, 48, 255, 8, 248, 63, 0, 208, 207, 0, 192, 223, 0, 250, 47, 0, 32, 255, 9 ]; + +/// 'y' (ASCII 121) +const Font_RobotoMono_Medium_21_glyph_121: [u8; 124] = [ 13, 17, 13, 0, 12, 16, 1, 0, 0, 0, 17, 0, 242, 143, 0, 0, 160, 255, 1, 160, 239, 0, 0, 241, 159, 0, 48, 255, 5, 0, 247, 47, 0, 0, 252, 12, 0, 253, 11, 0, 0, 245, 47, 48, 255, 4, 0, 0, 224, 159, 144, 223, 0, 0, 0, 112, 255, 241, 111, 0, 0, 0, 0, 255, 251, 14, 0, 0, 0, 0, 248, 255, 8, 0, 0, 0, 0, 242, 255, 1, 0, 0, 0, 0, 192, 175, 0, 0, 0, 0, 0, 243, 63, 0, 0, 0, 0, 0, 252, 12, 0, 0, 0, 0, 201, 255, 3, 0, 0, 0, 32, 255, 111, 0, 0, 0, 0, 16, 119, 2, 0, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_RobotoMono_Medium_21_glyph_122: [u8; 77] = [ 11, 12, 13, 1, 12, 16, 17, 17, 17, 17, 0, 247, 255, 255, 255, 255, 1, 231, 238, 238, 254, 239, 0, 0, 0, 0, 251, 79, 0, 0, 0, 144, 255, 6, 0, 0, 0, 247, 143, 0, 0, 0, 64, 255, 10, 0, 0, 0, 243, 207, 0, 0, 0, 16, 254, 30, 0, 0, 0, 192, 255, 2, 0, 0, 0, 248, 255, 255, 255, 255, 6, 249, 255, 255, 255, 255, 6 ]; + +/// '{' (ASCII 123) +const Font_RobotoMono_Medium_21_glyph_123: [u8; 89] = [ 8, 21, 13, 3, 17, 0, 0, 32, 4, 0, 0, 248, 15, 0, 80, 223, 2, 0, 192, 111, 0, 0, 240, 79, 0, 0, 241, 63, 0, 0, 241, 63, 0, 0, 241, 63, 0, 0, 245, 15, 0, 115, 254, 6, 0, 252, 111, 0, 0, 199, 239, 3, 0, 0, 248, 13, 0, 0, 242, 47, 0, 0, 241, 63, 0, 0, 241, 63, 0, 0, 240, 63, 0, 0, 208, 111, 0, 0, 128, 207, 0, 0, 0, 252, 13, 0, 0, 112, 9 ]; + +/// '|' (ASCII 124) +const Font_RobotoMono_Medium_21_glyph_124: [u8; 45] = [ 3, 20, 13, 5, 15, 247, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 248, 2, 33, 0 ]; + +/// '}' (ASCII 125) +const Font_RobotoMono_Medium_21_glyph_125: [u8; 89] = [ 8, 21, 13, 3, 17, 66, 0, 0, 0, 248, 45, 0, 0, 128, 223, 0, 0, 0, 254, 4, 0, 0, 252, 7, 0, 0, 252, 8, 0, 0, 252, 8, 0, 0, 251, 9, 0, 0, 248, 12, 0, 0, 225, 175, 4, 0, 16, 253, 63, 0, 160, 239, 42, 0, 245, 30, 0, 0, 250, 9, 0, 0, 252, 8, 0, 0, 252, 8, 0, 0, 252, 8, 0, 0, 254, 5, 0, 80, 239, 0, 0, 246, 95, 0, 0, 148, 3, 0, 0 ]; + +/// '~' (ASCII 126) +const Font_RobotoMono_Medium_21_glyph_126: [u8; 41] = [ 12, 6, 13, 0, 9, 0, 82, 3, 0, 0, 0, 128, 255, 207, 2, 0, 155, 244, 191, 254, 111, 97, 191, 248, 5, 144, 255, 255, 79, 98, 0, 0, 197, 239, 6, 0, 0, 0, 0, 0, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_RobotoMono_Medium_21_glyph_nonprintable: [u8; 107] = [ 11, 17, 13, 1, 16, 255, 255, 222, 254, 255, 255, 255, 42, 0, 32, 250, 255, 143, 0, 0, 0, 144, 255, 15, 48, 254, 46, 16, 255, 61, 195, 255, 143, 0, 255, 255, 255, 255, 143, 0, 255, 255, 255, 255, 30, 80, 255, 255, 255, 255, 3, 225, 255, 255, 255, 62, 16, 252, 255, 255, 255, 7, 208, 255, 255, 255, 255, 3, 246, 255, 255, 255, 255, 104, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 253, 255, 255, 255, 239, 0, 244, 255, 255, 255, 255, 2, 248, 255, 255, 255, 255, 239, 255, 255, 255 ]; + +/// Array of references for 'RobotoMono_Medium_21' normal ASCII glyphs +const Font_RobotoMono_Medium_21: [&[u8]; 95] = [ + &Font_RobotoMono_Medium_21_glyph_32, + &Font_RobotoMono_Medium_21_glyph_33, + &Font_RobotoMono_Medium_21_glyph_34, + &Font_RobotoMono_Medium_21_glyph_35, + &Font_RobotoMono_Medium_21_glyph_36, + &Font_RobotoMono_Medium_21_glyph_37, + &Font_RobotoMono_Medium_21_glyph_38, + &Font_RobotoMono_Medium_21_glyph_39, + &Font_RobotoMono_Medium_21_glyph_40, + &Font_RobotoMono_Medium_21_glyph_41, + &Font_RobotoMono_Medium_21_glyph_42, + &Font_RobotoMono_Medium_21_glyph_43, + &Font_RobotoMono_Medium_21_glyph_44, + &Font_RobotoMono_Medium_21_glyph_45, + &Font_RobotoMono_Medium_21_glyph_46, + &Font_RobotoMono_Medium_21_glyph_47, + &Font_RobotoMono_Medium_21_glyph_48, + &Font_RobotoMono_Medium_21_glyph_49, + &Font_RobotoMono_Medium_21_glyph_50, + &Font_RobotoMono_Medium_21_glyph_51, + &Font_RobotoMono_Medium_21_glyph_52, + &Font_RobotoMono_Medium_21_glyph_53, + &Font_RobotoMono_Medium_21_glyph_54, + &Font_RobotoMono_Medium_21_glyph_55, + &Font_RobotoMono_Medium_21_glyph_56, + &Font_RobotoMono_Medium_21_glyph_57, + &Font_RobotoMono_Medium_21_glyph_58, + &Font_RobotoMono_Medium_21_glyph_59, + &Font_RobotoMono_Medium_21_glyph_60, + &Font_RobotoMono_Medium_21_glyph_61, + &Font_RobotoMono_Medium_21_glyph_62, + &Font_RobotoMono_Medium_21_glyph_63, + &Font_RobotoMono_Medium_21_glyph_64, + &Font_RobotoMono_Medium_21_glyph_65, + &Font_RobotoMono_Medium_21_glyph_66, + &Font_RobotoMono_Medium_21_glyph_67, + &Font_RobotoMono_Medium_21_glyph_68, + &Font_RobotoMono_Medium_21_glyph_69, + &Font_RobotoMono_Medium_21_glyph_70, + &Font_RobotoMono_Medium_21_glyph_71, + &Font_RobotoMono_Medium_21_glyph_72, + &Font_RobotoMono_Medium_21_glyph_73, + &Font_RobotoMono_Medium_21_glyph_74, + &Font_RobotoMono_Medium_21_glyph_75, + &Font_RobotoMono_Medium_21_glyph_76, + &Font_RobotoMono_Medium_21_glyph_77, + &Font_RobotoMono_Medium_21_glyph_78, + &Font_RobotoMono_Medium_21_glyph_79, + &Font_RobotoMono_Medium_21_glyph_80, + &Font_RobotoMono_Medium_21_glyph_81, + &Font_RobotoMono_Medium_21_glyph_82, + &Font_RobotoMono_Medium_21_glyph_83, + &Font_RobotoMono_Medium_21_glyph_84, + &Font_RobotoMono_Medium_21_glyph_85, + &Font_RobotoMono_Medium_21_glyph_86, + &Font_RobotoMono_Medium_21_glyph_87, + &Font_RobotoMono_Medium_21_glyph_88, + &Font_RobotoMono_Medium_21_glyph_89, + &Font_RobotoMono_Medium_21_glyph_90, + &Font_RobotoMono_Medium_21_glyph_91, + &Font_RobotoMono_Medium_21_glyph_92, + &Font_RobotoMono_Medium_21_glyph_93, + &Font_RobotoMono_Medium_21_glyph_94, + &Font_RobotoMono_Medium_21_glyph_95, + &Font_RobotoMono_Medium_21_glyph_96, + &Font_RobotoMono_Medium_21_glyph_97, + &Font_RobotoMono_Medium_21_glyph_98, + &Font_RobotoMono_Medium_21_glyph_99, + &Font_RobotoMono_Medium_21_glyph_100, + &Font_RobotoMono_Medium_21_glyph_101, + &Font_RobotoMono_Medium_21_glyph_102, + &Font_RobotoMono_Medium_21_glyph_103, + &Font_RobotoMono_Medium_21_glyph_104, + &Font_RobotoMono_Medium_21_glyph_105, + &Font_RobotoMono_Medium_21_glyph_106, + &Font_RobotoMono_Medium_21_glyph_107, + &Font_RobotoMono_Medium_21_glyph_108, + &Font_RobotoMono_Medium_21_glyph_109, + &Font_RobotoMono_Medium_21_glyph_110, + &Font_RobotoMono_Medium_21_glyph_111, + &Font_RobotoMono_Medium_21_glyph_112, + &Font_RobotoMono_Medium_21_glyph_113, + &Font_RobotoMono_Medium_21_glyph_114, + &Font_RobotoMono_Medium_21_glyph_115, + &Font_RobotoMono_Medium_21_glyph_116, + &Font_RobotoMono_Medium_21_glyph_117, + &Font_RobotoMono_Medium_21_glyph_118, + &Font_RobotoMono_Medium_21_glyph_119, + &Font_RobotoMono_Medium_21_glyph_120, + &Font_RobotoMono_Medium_21_glyph_121, + &Font_RobotoMono_Medium_21_glyph_122, + &Font_RobotoMono_Medium_21_glyph_123, + &Font_RobotoMono_Medium_21_glyph_124, + &Font_RobotoMono_Medium_21_glyph_125, + &Font_RobotoMono_Medium_21_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_RobotoMono_Medium_21_info: FontInfo = FontInfo { + height: 21, + max_height: 23, + baseline: 5, + glyph_data: &Font_RobotoMono_Medium_21, + glyph_nonprintable: &Font_RobotoMono_Medium_21_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs new file mode 100644 index 00000000000..c1cfce44b41 --- /dev/null +++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_18.rs @@ -0,0 +1,408 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +// NOTE: numeral chars ('0','1',..,'9') mapped to alternative style glyphs contained in the font (glyph indices: 1298-1307) + +/// ' ' (ASCII 32) +const Font_TTSatoshi_DemiBold_18_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_TTSatoshi_DemiBold_18_glyph_33: [u8; 31] = [ 3, 13, 5, 1, 13, 248, 12, 248, 12, 248, 12, 248, 12, 248, 12, 248, 11, 247, 10, 245, 8, 244, 7, 64, 1, 132, 6, 248, 12, 248, 12 ]; + +/// '"' (ASCII 34) +const Font_TTSatoshi_DemiBold_18_glyph_34: [u8; 20] = [ 6, 5, 8, 1, 13, 254, 146, 127, 254, 146, 127, 254, 146, 127, 254, 146, 127, 34, 16, 18 ]; + +/// '#' (ASCII 35) +const Font_TTSatoshi_DemiBold_18_glyph_35: [u8; 96] = [ 13, 13, 13, 0, 13, 0, 0, 248, 8, 243, 13, 0, 0, 0, 251, 5, 246, 10, 0, 0, 0, 254, 1, 250, 6, 0, 112, 255, 255, 255, 255, 255, 8, 176, 255, 255, 255, 255, 255, 5, 0, 144, 127, 64, 207, 0, 0, 0, 192, 79, 112, 159, 0, 0, 0, 240, 31, 160, 127, 0, 0, 247, 255, 255, 255, 255, 159, 0, 251, 255, 255, 255, 255, 95, 0, 0, 249, 7, 243, 12, 0, 0, 0, 252, 4, 247, 9, 0, 0, 0, 255, 1, 250, 6, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_TTSatoshi_DemiBold_18_glyph_36: [u8; 107] = [ 11, 17, 11, 0, 15, 0, 0, 249, 10, 0, 0, 0, 0, 249, 10, 0, 0, 0, 179, 255, 191, 5, 0, 64, 255, 255, 255, 127, 0, 208, 207, 2, 178, 255, 1, 240, 79, 0, 0, 255, 5, 240, 175, 0, 0, 0, 0, 160, 255, 207, 89, 1, 0, 16, 251, 255, 255, 111, 0, 0, 32, 134, 252, 255, 3, 0, 0, 0, 32, 255, 8, 244, 31, 0, 0, 252, 8, 241, 207, 3, 97, 255, 5, 96, 255, 255, 255, 191, 0, 0, 180, 255, 207, 7, 0, 0, 0, 249, 10, 0, 0, 0, 0, 249, 10, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_TTSatoshi_DemiBold_18_glyph_37: [u8; 96] = [ 14, 13, 15, 0, 13, 32, 252, 77, 0, 48, 239, 1, 224, 191, 255, 2, 208, 111, 0, 244, 8, 245, 7, 246, 12, 0, 244, 8, 245, 23, 255, 3, 0, 224, 191, 255, 162, 159, 0, 0, 48, 252, 77, 243, 30, 0, 0, 0, 0, 0, 253, 6, 0, 0, 0, 0, 112, 207, 144, 238, 8, 0, 0, 241, 63, 249, 221, 143, 0, 0, 250, 9, 238, 0, 222, 0, 48, 239, 1, 238, 0, 222, 0, 208, 111, 0, 249, 220, 143, 0, 247, 12, 0, 144, 238, 8 ]; + +/// '&' (ASCII 38) +const Font_TTSatoshi_DemiBold_18_glyph_38: [u8; 83] = [ 12, 13, 12, 0, 13, 0, 179, 238, 42, 0, 0, 32, 255, 255, 239, 1, 0, 128, 239, 50, 255, 6, 0, 144, 175, 0, 253, 7, 0, 64, 255, 116, 255, 3, 0, 0, 248, 255, 95, 0, 0, 0, 246, 255, 5, 0, 0, 112, 255, 253, 12, 243, 15, 241, 127, 192, 191, 247, 13, 243, 15, 16, 253, 255, 6, 241, 127, 0, 246, 239, 0, 160, 255, 255, 255, 255, 7, 0, 198, 239, 58, 243, 111 ]; + +/// ''' (ASCII 39) +const Font_TTSatoshi_DemiBold_18_glyph_39: [u8; 15] = [ 3, 5, 4, 1, 13, 254, 2, 254, 2, 254, 2, 254, 2, 34, 0 ]; + +/// '(' (ASCII 40) +const Font_TTSatoshi_DemiBold_18_glyph_40: [u8; 56] = [ 6, 17, 6, 1, 13, 0, 181, 10, 0, 254, 5, 112, 223, 0, 208, 127, 0, 242, 47, 0, 246, 13, 0, 248, 11, 0, 250, 9, 0, 251, 8, 0, 250, 9, 0, 249, 11, 0, 247, 12, 0, 243, 31, 0, 224, 95, 0, 128, 191, 0, 32, 255, 3, 0, 248, 12 ]; + +/// ')' (ASCII 41) +const Font_TTSatoshi_DemiBold_18_glyph_41: [u8; 56] = [ 6, 17, 6, 0, 13, 180, 10, 0, 208, 111, 0, 96, 239, 0, 0, 255, 5, 0, 250, 9, 0, 246, 13, 0, 244, 15, 0, 242, 31, 0, 240, 63, 0, 241, 47, 0, 243, 15, 0, 245, 14, 0, 249, 10, 0, 254, 6, 64, 255, 1, 192, 159, 0, 245, 30, 0 ]; + +/// '*' (ASCII 42) +const Font_TTSatoshi_DemiBold_18_glyph_42: [u8; 45] = [ 9, 8, 9, 0, 13, 0, 112, 79, 0, 0, 0, 96, 63, 0, 0, 224, 155, 143, 204, 0, 161, 254, 255, 173, 0, 0, 242, 223, 1, 0, 16, 253, 245, 11, 0, 16, 107, 144, 9, 0, 0, 0, 0, 0, 0 ]; + +/// '+' (ASCII 43) +const Font_TTSatoshi_DemiBold_18_glyph_43: [u8; 55] = [ 9, 10, 10, 0, 10, 0, 0, 69, 0, 0, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 241, 255, 255, 255, 15, 241, 255, 255, 255, 15, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 0, 0, 239, 0, 0, 0, 0, 68, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_TTSatoshi_DemiBold_18_glyph_44: [u8; 15] = [ 4, 5, 5, 0, 3, 16, 18, 224, 143, 240, 63, 241, 14, 243, 10 ]; + +/// '-' (ASCII 45) +const Font_TTSatoshi_DemiBold_18_glyph_45: [u8; 17] = [ 7, 3, 8, 0, 7, 0, 0, 0, 0, 243, 255, 255, 14, 243, 255, 255, 14 ]; + +/// '.' (ASCII 46) +const Font_TTSatoshi_DemiBold_18_glyph_46: [u8; 11] = [ 3, 3, 5, 1, 3, 135, 4, 254, 9, 254, 9 ]; + +/// '/' (ASCII 47) +const Font_TTSatoshi_DemiBold_18_glyph_47: [u8; 73] = [ 8, 17, 7, 0, 13, 0, 0, 178, 11, 0, 0, 246, 13, 0, 0, 251, 8, 0, 0, 255, 3, 0, 80, 239, 0, 0, 144, 175, 0, 0, 224, 95, 0, 0, 243, 31, 0, 0, 247, 12, 0, 0, 252, 7, 0, 16, 255, 2, 0, 96, 223, 0, 0, 160, 159, 0, 0, 240, 79, 0, 0, 244, 15, 0, 0, 248, 11, 0, 0, 253, 6, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_TTSatoshi_DemiBold_18_glyph_48: [u8; 83] = [ 11, 13, 10, 0, 13, 0, 145, 237, 91, 0, 0, 64, 254, 255, 255, 9, 0, 224, 239, 87, 251, 95, 0, 247, 47, 0, 176, 223, 0, 251, 10, 0, 48, 255, 2, 253, 7, 0, 0, 255, 4, 255, 5, 0, 0, 255, 6, 253, 7, 0, 0, 255, 4, 251, 10, 0, 48, 255, 2, 247, 47, 0, 176, 239, 0, 224, 239, 86, 251, 95, 0, 64, 254, 255, 255, 9, 0, 0, 162, 237, 91, 0, 0 ]; + +/// '1' (ASCII 49) +const Font_TTSatoshi_DemiBold_18_glyph_49: [u8; 70] = [ 9, 13, 10, 1, 13, 0, 224, 127, 0, 0, 253, 255, 127, 0, 0, 253, 255, 127, 0, 0, 67, 228, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 0, 208, 127, 0, 0, 84, 229, 175, 85, 2, 253, 255, 255, 255, 8, 253, 255, 255, 255, 8 ]; + +/// '2' (ASCII 50) +const Font_TTSatoshi_DemiBold_18_glyph_50: [u8; 70] = [ 10, 13, 10, 0, 13, 0, 145, 253, 92, 0, 16, 254, 255, 255, 8, 160, 255, 87, 252, 31, 224, 127, 0, 243, 95, 112, 39, 0, 241, 111, 0, 0, 0, 248, 47, 0, 0, 112, 255, 8, 0, 0, 247, 175, 0, 0, 112, 255, 10, 0, 0, 247, 175, 0, 0, 112, 255, 77, 51, 35, 224, 255, 255, 255, 159, 224, 255, 255, 255, 159 ]; + +/// '3' (ASCII 51) +const Font_TTSatoshi_DemiBold_18_glyph_51: [u8; 70] = [ 10, 13, 10, 0, 13, 0, 162, 253, 108, 0, 48, 255, 255, 255, 10, 208, 223, 87, 250, 63, 160, 58, 0, 240, 111, 0, 0, 0, 247, 63, 0, 0, 250, 255, 7, 0, 0, 250, 255, 6, 0, 0, 32, 248, 63, 16, 1, 0, 208, 127, 242, 63, 0, 208, 143, 224, 223, 70, 250, 95, 80, 255, 255, 255, 11, 0, 179, 254, 108, 0 ]; + +/// '4' (ASCII 52) +const Font_TTSatoshi_DemiBold_18_glyph_52: [u8; 83] = [ 11, 13, 10, 0, 13, 0, 0, 243, 255, 10, 0, 0, 0, 252, 255, 10, 0, 0, 80, 255, 255, 10, 0, 0, 208, 143, 251, 10, 0, 0, 247, 30, 251, 10, 0, 16, 254, 7, 251, 10, 0, 128, 239, 0, 251, 10, 0, 241, 95, 0, 251, 10, 0, 247, 255, 255, 255, 255, 1, 247, 255, 255, 255, 255, 1, 33, 34, 34, 252, 43, 0, 0, 0, 0, 251, 10, 0, 0, 0, 0, 251, 10, 0 ]; + +/// '5' (ASCII 53) +const Font_TTSatoshi_DemiBold_18_glyph_53: [u8; 70] = [ 10, 13, 10, 0, 13, 96, 255, 255, 255, 15, 112, 255, 255, 255, 15, 144, 191, 68, 68, 4, 160, 159, 0, 0, 0, 192, 127, 16, 0, 0, 224, 239, 255, 175, 1, 240, 255, 255, 255, 13, 128, 104, 2, 246, 127, 0, 0, 0, 176, 175, 146, 41, 0, 192, 159, 240, 223, 85, 250, 79, 80, 255, 255, 255, 10, 0, 179, 254, 108, 0 ]; + +/// '6' (ASCII 54) +const Font_TTSatoshi_DemiBold_18_glyph_54: [u8; 70] = [ 10, 13, 10, 0, 13, 0, 0, 243, 127, 0, 0, 0, 253, 13, 0, 0, 128, 255, 3, 0, 0, 243, 143, 0, 0, 0, 253, 255, 108, 0, 112, 255, 255, 255, 9, 224, 239, 53, 250, 63, 243, 79, 0, 208, 143, 243, 31, 0, 160, 175, 241, 79, 0, 208, 143, 192, 239, 53, 250, 63, 32, 255, 255, 255, 9, 0, 161, 253, 92, 0 ]; + +/// '7' (ASCII 55) +const Font_TTSatoshi_DemiBold_18_glyph_55: [u8; 70] = [ 10, 13, 10, 0, 13, 240, 255, 255, 255, 111, 240, 255, 255, 255, 111, 64, 68, 68, 248, 79, 0, 0, 0, 251, 13, 0, 0, 32, 255, 7, 0, 0, 128, 255, 1, 0, 0, 224, 175, 0, 0, 0, 245, 63, 0, 0, 0, 252, 13, 0, 0, 32, 255, 7, 0, 0, 144, 255, 1, 0, 0, 224, 175, 0, 0, 0, 246, 63, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_TTSatoshi_DemiBold_18_glyph_56: [u8; 70] = [ 10, 13, 10, 0, 13, 0, 162, 254, 108, 0, 48, 255, 255, 255, 10, 192, 223, 36, 248, 63, 240, 111, 0, 240, 111, 176, 207, 19, 247, 47, 32, 253, 255, 255, 6, 32, 253, 255, 255, 7, 208, 191, 2, 246, 79, 242, 47, 0, 176, 159, 243, 47, 0, 176, 175, 240, 207, 19, 247, 111, 80, 255, 255, 255, 12, 0, 179, 254, 124, 0 ]; + +/// '9' (ASCII 57) +const Font_TTSatoshi_DemiBold_18_glyph_57: [u8; 70] = [ 10, 13, 10, 0, 13, 0, 161, 237, 92, 0, 32, 255, 255, 255, 8, 192, 239, 53, 250, 63, 241, 79, 0, 208, 143, 243, 31, 0, 160, 175, 241, 79, 0, 208, 175, 192, 239, 53, 250, 111, 48, 255, 255, 255, 14, 0, 162, 254, 255, 4, 0, 0, 242, 159, 0, 0, 0, 252, 14, 0, 0, 96, 255, 4, 0, 0, 241, 175, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_TTSatoshi_DemiBold_18_glyph_58: [u8; 25] = [ 3, 10, 5, 1, 10, 254, 9, 254, 9, 135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 135, 4, 254, 9, 254, 9 ]; + +/// ';' (ASCII 59) +const Font_TTSatoshi_DemiBold_18_glyph_59: [u8; 29] = [ 4, 12, 5, 0, 10, 208, 175, 208, 175, 112, 88, 0, 0, 0, 0, 0, 0, 0, 0, 224, 143, 240, 79, 241, 15, 243, 11, 32, 1 ]; + +/// '<' (ASCII 60) +const Font_TTSatoshi_DemiBold_18_glyph_60: [u8; 50] = [ 9, 9, 10, 0, 10, 0, 0, 0, 0, 3, 0, 0, 16, 231, 14, 0, 64, 251, 255, 13, 112, 254, 255, 91, 0, 240, 255, 23, 0, 0, 240, 255, 142, 2, 0, 16, 215, 255, 207, 6, 0, 0, 164, 255, 14, 0, 0, 0, 113, 11 ]; + +/// '=' (ASCII 61) +const Font_TTSatoshi_DemiBold_18_glyph_61: [u8; 29] = [ 8, 6, 10, 1, 8, 251, 255, 255, 175, 251, 255, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 175, 251, 255, 255, 175 ]; + +/// '>' (ASCII 62) +const Font_TTSatoshi_DemiBold_18_glyph_62: [u8; 50] = [ 9, 9, 10, 0, 10, 48, 0, 0, 0, 0, 240, 125, 1, 0, 0, 240, 255, 175, 4, 0, 0, 181, 255, 223, 6, 0, 0, 129, 255, 14, 0, 32, 232, 255, 14, 112, 252, 255, 109, 0, 240, 255, 57, 0, 0, 192, 6, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_TTSatoshi_DemiBold_18_glyph_63: [u8; 70] = [ 9, 13, 10, 0, 13, 0, 199, 223, 26, 0, 176, 255, 255, 255, 2, 244, 175, 116, 255, 10, 214, 12, 0, 249, 13, 0, 0, 0, 252, 12, 0, 0, 194, 255, 6, 0, 16, 254, 95, 0, 0, 112, 255, 2, 0, 0, 144, 191, 0, 0, 0, 32, 36, 0, 0, 0, 80, 104, 0, 0, 0, 160, 191, 0, 0, 0, 160, 191, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_TTSatoshi_DemiBold_18_glyph_64: [u8; 140] = [ 17, 15, 17, 0, 13, 0, 0, 80, 235, 239, 124, 0, 0, 0, 0, 16, 251, 255, 255, 255, 61, 0, 0, 0, 226, 223, 21, 16, 180, 255, 5, 0, 0, 251, 10, 0, 0, 0, 246, 30, 0, 80, 239, 0, 216, 174, 252, 144, 175, 0, 192, 95, 160, 239, 252, 255, 16, 255, 0, 240, 31, 242, 29, 96, 255, 0, 254, 2, 241, 14, 245, 8, 0, 255, 0, 251, 4, 240, 15, 245, 9, 0, 255, 0, 252, 2, 224, 47, 241, 79, 145, 255, 67, 239, 0, 144, 159, 128, 255, 255, 255, 255, 127, 0, 16, 255, 5, 165, 140, 113, 172, 5, 0, 0, 245, 175, 3, 0, 0, 0, 0, 0, 0, 80, 254, 255, 222, 221, 1, 0, 0, 0, 0, 112, 236, 255, 255, 2, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_TTSatoshi_DemiBold_18_glyph_65: [u8; 96] = [ 13, 13, 12, 0, 13, 0, 0, 250, 255, 1, 0, 0, 0, 0, 255, 255, 7, 0, 0, 0, 80, 255, 253, 12, 0, 0, 0, 176, 207, 245, 47, 0, 0, 0, 241, 127, 240, 127, 0, 0, 0, 246, 47, 176, 223, 0, 0, 0, 252, 12, 96, 255, 2, 0, 16, 255, 7, 16, 255, 8, 0, 112, 255, 255, 255, 255, 13, 0, 192, 255, 255, 255, 255, 63, 0, 242, 143, 34, 34, 243, 143, 0, 247, 31, 0, 0, 176, 239, 0, 253, 12, 0, 0, 80, 255, 3 ]; + +/// 'B' (ASCII 66) +const Font_TTSatoshi_DemiBold_18_glyph_66: [u8; 70] = [ 10, 13, 12, 1, 13, 250, 255, 255, 191, 3, 250, 255, 255, 255, 47, 250, 27, 17, 228, 159, 250, 10, 0, 160, 207, 250, 10, 0, 227, 159, 250, 255, 255, 255, 30, 250, 255, 255, 255, 29, 250, 27, 17, 227, 159, 250, 10, 0, 128, 223, 250, 10, 0, 128, 239, 250, 11, 0, 227, 191, 250, 255, 255, 255, 79, 250, 255, 255, 207, 4 ]; + +/// 'C' (ASCII 67) +const Font_TTSatoshi_DemiBold_18_glyph_67: [u8; 96] = [ 13, 13, 13, 0, 13, 0, 0, 183, 238, 90, 0, 0, 0, 194, 255, 255, 255, 11, 0, 0, 253, 159, 85, 251, 159, 0, 112, 255, 3, 0, 128, 255, 3, 208, 159, 0, 0, 0, 153, 4, 240, 79, 0, 0, 0, 0, 0, 242, 47, 0, 0, 0, 0, 0, 240, 79, 0, 0, 0, 0, 0, 208, 159, 0, 0, 0, 170, 5, 112, 255, 3, 0, 128, 255, 3, 0, 253, 159, 85, 250, 159, 0, 0, 194, 255, 255, 255, 10, 0, 0, 0, 183, 254, 108, 0, 0 ]; + +/// 'D' (ASCII 68) +const Font_TTSatoshi_DemiBold_18_glyph_68: [u8; 83] = [ 12, 13, 13, 1, 13, 250, 255, 239, 90, 0, 0, 250, 255, 255, 255, 27, 0, 250, 76, 100, 250, 191, 0, 250, 10, 0, 96, 255, 5, 250, 10, 0, 0, 251, 11, 250, 10, 0, 0, 247, 14, 250, 10, 0, 0, 245, 15, 250, 10, 0, 0, 247, 14, 250, 10, 0, 0, 251, 11, 250, 10, 0, 96, 255, 5, 250, 60, 84, 250, 191, 0, 250, 255, 255, 255, 27, 0, 250, 255, 239, 107, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_TTSatoshi_DemiBold_18_glyph_69: [u8; 70] = [ 9, 13, 11, 1, 13, 250, 255, 255, 255, 12, 250, 255, 255, 255, 12, 250, 43, 34, 34, 2, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 43, 34, 34, 1, 250, 255, 255, 255, 6, 250, 255, 255, 255, 6, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 43, 34, 34, 2, 250, 255, 255, 255, 12, 250, 255, 255, 255, 12 ]; + +/// 'F' (ASCII 70) +const Font_TTSatoshi_DemiBold_18_glyph_70: [u8; 70] = [ 9, 13, 11, 1, 13, 250, 255, 255, 255, 11, 250, 255, 255, 255, 11, 250, 43, 34, 34, 1, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 255, 255, 255, 4, 250, 255, 255, 255, 4, 250, 43, 34, 34, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_TTSatoshi_DemiBold_18_glyph_71: [u8; 96] = [ 13, 13, 14, 0, 13, 0, 0, 183, 238, 91, 0, 0, 0, 194, 255, 255, 255, 11, 0, 0, 253, 159, 85, 251, 159, 0, 112, 255, 4, 0, 144, 255, 3, 208, 159, 0, 0, 0, 136, 4, 240, 79, 0, 0, 0, 0, 0, 242, 47, 0, 160, 204, 204, 8, 240, 79, 0, 192, 255, 255, 10, 208, 143, 0, 0, 0, 252, 10, 128, 255, 3, 0, 80, 255, 10, 0, 253, 159, 85, 250, 255, 10, 0, 194, 255, 255, 255, 251, 10, 0, 0, 183, 238, 75, 242, 10 ]; + +/// 'H' (ASCII 72) +const Font_TTSatoshi_DemiBold_18_glyph_72: [u8; 83] = [ 11, 13, 13, 1, 13, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 255, 255, 255, 255, 11, 250, 255, 255, 255, 255, 11, 250, 92, 85, 85, 252, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11, 250, 10, 0, 0, 250, 11 ]; + +/// 'I' (ASCII 73) +const Font_TTSatoshi_DemiBold_18_glyph_73: [u8; 31] = [ 3, 13, 5, 1, 13, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10, 250, 10 ]; + +/// 'J' (ASCII 74) +const Font_TTSatoshi_DemiBold_18_glyph_74: [u8; 57] = [ 7, 13, 7, 0, 13, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 0, 48, 255, 1, 51, 148, 255, 1, 253, 255, 239, 0, 253, 255, 77, 0 ]; + +/// 'K' (ASCII 75) +const Font_TTSatoshi_DemiBold_18_glyph_75: [u8; 83] = [ 11, 13, 11, 1, 13, 250, 10, 0, 245, 143, 0, 250, 10, 32, 255, 12, 0, 250, 10, 192, 239, 1, 0, 250, 10, 249, 79, 0, 0, 250, 90, 255, 8, 0, 0, 250, 236, 207, 0, 0, 0, 250, 255, 79, 0, 0, 0, 250, 219, 239, 1, 0, 0, 250, 42, 255, 11, 0, 0, 250, 10, 245, 143, 0, 0, 250, 10, 144, 255, 4, 0, 250, 10, 0, 252, 46, 0, 250, 10, 0, 225, 223, 0 ]; + +/// 'L' (ASCII 76) +const Font_TTSatoshi_DemiBold_18_glyph_76: [u8; 70] = [ 9, 13, 10, 1, 13, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 60, 51, 51, 2, 250, 255, 255, 255, 9, 250, 255, 255, 255, 9 ]; + +/// 'M' (ASCII 77) +const Font_TTSatoshi_DemiBold_18_glyph_77: [u8; 109] = [ 15, 13, 17, 1, 13, 250, 255, 4, 0, 0, 251, 255, 3, 250, 255, 9, 0, 16, 255, 255, 3, 250, 255, 14, 0, 96, 255, 255, 3, 250, 255, 63, 0, 176, 255, 255, 3, 250, 202, 159, 0, 240, 111, 255, 3, 250, 106, 239, 0, 245, 47, 255, 3, 250, 26, 255, 3, 250, 42, 255, 3, 250, 10, 252, 8, 255, 37, 255, 3, 250, 10, 247, 93, 255, 32, 255, 3, 250, 10, 242, 239, 175, 32, 255, 3, 250, 10, 192, 255, 95, 32, 255, 3, 250, 10, 112, 255, 15, 32, 255, 3, 250, 10, 32, 255, 11, 32, 255, 3 ]; + +/// 'N' (ASCII 78) +const Font_TTSatoshi_DemiBold_18_glyph_78: [u8; 83] = [ 11, 13, 13, 1, 13, 250, 191, 0, 0, 248, 12, 250, 255, 3, 0, 248, 12, 250, 255, 12, 0, 248, 12, 250, 255, 63, 0, 248, 12, 250, 170, 207, 0, 248, 12, 250, 42, 255, 4, 248, 12, 250, 10, 250, 12, 248, 12, 250, 10, 242, 79, 248, 12, 250, 10, 160, 207, 249, 12, 250, 10, 32, 255, 255, 12, 250, 10, 0, 249, 255, 12, 250, 10, 0, 242, 255, 12, 250, 10, 0, 144, 255, 12 ]; + +/// 'O' (ASCII 79) +const Font_TTSatoshi_DemiBold_18_glyph_79: [u8; 96] = [ 14, 13, 14, 0, 13, 0, 0, 183, 238, 90, 0, 0, 0, 194, 255, 255, 255, 27, 0, 0, 253, 159, 101, 250, 191, 0, 112, 255, 3, 0, 96, 255, 5, 208, 159, 0, 0, 0, 251, 10, 240, 79, 0, 0, 0, 247, 13, 242, 47, 0, 0, 0, 245, 15, 240, 79, 0, 0, 0, 247, 13, 208, 159, 0, 0, 0, 251, 10, 112, 255, 3, 0, 80, 255, 5, 0, 253, 159, 85, 250, 191, 0, 0, 194, 255, 255, 255, 27, 0, 0, 0, 183, 238, 107, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_TTSatoshi_DemiBold_18_glyph_80: [u8; 70] = [ 10, 13, 12, 1, 13, 250, 255, 255, 174, 2, 250, 255, 255, 255, 31, 250, 76, 68, 247, 159, 250, 10, 0, 128, 223, 250, 10, 0, 96, 239, 250, 10, 0, 128, 223, 250, 60, 67, 246, 159, 250, 255, 255, 255, 31, 250, 255, 255, 190, 2, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0, 250, 10, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_TTSatoshi_DemiBold_18_glyph_81: [u8; 103] = [ 14, 14, 14, 0, 13, 0, 0, 183, 238, 90, 0, 0, 0, 194, 255, 255, 255, 27, 0, 0, 253, 159, 101, 250, 191, 0, 112, 255, 3, 0, 96, 255, 5, 208, 159, 0, 0, 0, 251, 10, 240, 79, 0, 0, 0, 247, 13, 242, 47, 0, 0, 0, 245, 15, 240, 79, 0, 0, 0, 247, 15, 208, 159, 0, 119, 6, 251, 11, 112, 255, 3, 244, 175, 255, 5, 0, 253, 159, 165, 255, 175, 0, 0, 194, 255, 255, 255, 95, 0, 0, 0, 183, 238, 186, 255, 2, 0, 0, 0, 0, 0, 185, 10 ]; + +/// 'R' (ASCII 82) +const Font_TTSatoshi_DemiBold_18_glyph_82: [u8; 83] = [ 11, 13, 12, 1, 13, 250, 255, 255, 190, 2, 0, 250, 255, 255, 255, 47, 0, 250, 76, 68, 230, 191, 0, 250, 10, 0, 112, 239, 0, 250, 10, 0, 80, 255, 0, 250, 10, 0, 194, 207, 0, 250, 255, 255, 255, 79, 0, 250, 255, 255, 239, 5, 0, 250, 107, 255, 11, 0, 0, 250, 10, 247, 127, 0, 0, 250, 10, 160, 255, 5, 0, 250, 10, 0, 252, 63, 0, 250, 10, 0, 225, 239, 1 ]; + +/// 'S' (ASCII 83) +const Font_TTSatoshi_DemiBold_18_glyph_83: [u8; 83] = [ 11, 13, 11, 0, 13, 0, 145, 253, 189, 3, 0, 48, 255, 255, 255, 111, 0, 192, 223, 53, 213, 255, 1, 240, 95, 0, 16, 255, 4, 240, 159, 0, 0, 34, 1, 160, 255, 174, 55, 0, 0, 16, 250, 255, 255, 78, 0, 0, 16, 116, 250, 255, 2, 32, 2, 0, 16, 254, 7, 243, 47, 0, 0, 252, 8, 224, 239, 54, 147, 255, 5, 64, 255, 255, 255, 191, 0, 0, 145, 253, 206, 6, 0 ]; + +/// 'T' (ASCII 84) +const Font_TTSatoshi_DemiBold_18_glyph_84: [u8; 83] = [ 11, 13, 11, 0, 13, 250, 255, 255, 255, 255, 3, 250, 255, 255, 255, 255, 3, 66, 68, 254, 73, 68, 1, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0, 0, 0, 253, 7, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_TTSatoshi_DemiBold_18_glyph_85: [u8; 83] = [ 11, 13, 13, 1, 13, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 251, 9, 0, 0, 250, 11, 249, 11, 0, 0, 252, 8, 247, 63, 0, 48, 255, 6, 225, 255, 71, 247, 239, 0, 64, 255, 255, 255, 79, 0, 0, 162, 253, 157, 1, 0 ]; + +/// 'V' (ASCII 86) +const Font_TTSatoshi_DemiBold_18_glyph_86: [u8; 96] = [ 13, 13, 12, 0, 13, 252, 13, 0, 0, 160, 255, 0, 246, 47, 0, 0, 224, 175, 0, 241, 127, 0, 0, 244, 79, 0, 192, 207, 0, 0, 249, 15, 0, 96, 255, 2, 0, 254, 10, 0, 16, 255, 7, 48, 255, 5, 0, 0, 252, 12, 128, 255, 0, 0, 0, 246, 31, 208, 175, 0, 0, 0, 241, 111, 242, 95, 0, 0, 0, 192, 191, 248, 15, 0, 0, 0, 96, 255, 255, 10, 0, 0, 0, 16, 255, 255, 5, 0, 0, 0, 0, 252, 255, 0, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_TTSatoshi_DemiBold_18_glyph_87: [u8; 122] = [ 18, 13, 18, 0, 13, 252, 12, 0, 160, 255, 4, 0, 242, 111, 248, 15, 0, 224, 255, 8, 0, 246, 47, 245, 79, 0, 242, 255, 12, 0, 250, 14, 241, 143, 0, 246, 255, 15, 0, 254, 11, 208, 191, 0, 250, 216, 79, 16, 255, 7, 144, 255, 0, 253, 164, 143, 80, 255, 3, 80, 255, 19, 255, 96, 207, 144, 255, 0, 16, 255, 87, 207, 32, 255, 208, 191, 0, 0, 253, 154, 143, 0, 254, 244, 127, 0, 0, 249, 255, 79, 0, 250, 254, 63, 0, 0, 245, 255, 31, 0, 247, 255, 15, 0, 0, 242, 255, 13, 0, 243, 255, 12, 0, 0, 224, 255, 9, 0, 240, 255, 8, 0 ]; + +/// 'X' (ASCII 88) +const Font_TTSatoshi_DemiBold_18_glyph_88: [u8; 96] = [ 13, 13, 13, 0, 13, 144, 255, 3, 0, 160, 255, 2, 0, 254, 12, 0, 244, 127, 0, 0, 245, 127, 0, 254, 12, 0, 0, 160, 255, 146, 255, 3, 0, 0, 16, 254, 253, 143, 0, 0, 0, 0, 246, 255, 13, 0, 0, 0, 0, 241, 255, 8, 0, 0, 0, 0, 249, 255, 47, 0, 0, 0, 64, 255, 233, 207, 0, 0, 0, 208, 223, 80, 255, 6, 0, 0, 249, 63, 0, 251, 47, 0, 48, 255, 9, 0, 241, 191, 0, 208, 239, 0, 0, 96, 255, 6 ]; + +/// 'Y' (ASCII 89) +const Font_TTSatoshi_DemiBold_18_glyph_89: [u8; 96] = [ 13, 13, 12, 0, 13, 224, 175, 0, 0, 128, 255, 1, 96, 255, 3, 0, 241, 143, 0, 0, 253, 12, 0, 249, 14, 0, 0, 244, 79, 32, 255, 7, 0, 0, 192, 207, 160, 239, 0, 0, 0, 48, 255, 249, 111, 0, 0, 0, 0, 251, 255, 13, 0, 0, 0, 0, 242, 255, 4, 0, 0, 0, 0, 160, 223, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_TTSatoshi_DemiBold_18_glyph_90: [u8; 83] = [ 11, 13, 11, 0, 13, 244, 255, 255, 255, 255, 2, 244, 255, 255, 255, 255, 2, 65, 68, 68, 247, 223, 0, 0, 0, 0, 253, 47, 0, 0, 0, 160, 255, 6, 0, 0, 0, 245, 175, 0, 0, 0, 32, 255, 13, 0, 0, 0, 208, 255, 3, 0, 0, 0, 249, 111, 0, 0, 0, 80, 255, 10, 0, 0, 0, 225, 255, 53, 51, 51, 0, 245, 255, 255, 255, 255, 3, 245, 255, 255, 255, 255, 3 ]; + +/// '[' (ASCII 91) +const Font_TTSatoshi_DemiBold_18_glyph_91: [u8; 59] = [ 5, 18, 7, 1, 14, 0, 0, 0, 248, 255, 14, 248, 255, 14, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 10, 0, 248, 11, 0, 248, 255, 14, 248, 255, 14 ]; + +/// '\' (ASCII 92) +const Font_TTSatoshi_DemiBold_18_glyph_92: [u8; 73] = [ 8, 17, 7, 0, 13, 186, 4, 0, 0, 250, 9, 0, 0, 245, 14, 0, 0, 241, 63, 0, 0, 192, 127, 0, 0, 112, 207, 0, 0, 32, 255, 1, 0, 0, 253, 6, 0, 0, 249, 10, 0, 0, 244, 15, 0, 0, 240, 79, 0, 0, 160, 143, 0, 0, 96, 223, 0, 0, 16, 255, 2, 0, 0, 252, 7, 0, 0, 248, 11, 0, 0, 243, 15 ]; + +/// ']' (ASCII 93) +const Font_TTSatoshi_DemiBold_18_glyph_93: [u8; 59] = [ 6, 18, 7, 0, 14, 0, 0, 0, 245, 255, 31, 245, 255, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 241, 31, 0, 242, 31, 245, 255, 31, 245, 255, 31 ]; + +/// '^' (ASCII 94) +const Font_TTSatoshi_DemiBold_18_glyph_94: [u8; 29] = [ 8, 6, 8, 0, 13, 0, 247, 127, 0, 0, 253, 223, 0, 48, 207, 252, 3, 144, 111, 246, 9, 224, 15, 240, 14, 32, 1, 16, 2 ]; + +/// '_' (ASCII 95) +const Font_TTSatoshi_DemiBold_18_glyph_95: [u8; 20] = [ 9, 3, 8, 0, 0, 0, 0, 0, 0, 0, 245, 255, 255, 255, 5, 245, 255, 255, 255, 5 ]; + +/// '`' (ASCII 96) +const Font_TTSatoshi_DemiBold_18_glyph_96: [u8; 14] = [ 5, 3, 5, 0, 13, 226, 63, 0, 64, 223, 0, 0, 149, 3 ]; + +/// 'a' (ASCII 97) +const Font_TTSatoshi_DemiBold_18_glyph_97: [u8; 55] = [ 9, 10, 10, 0, 10, 0, 180, 238, 42, 0, 64, 255, 239, 255, 1, 176, 191, 0, 253, 9, 32, 18, 0, 248, 12, 16, 217, 255, 255, 12, 192, 255, 188, 253, 12, 242, 63, 0, 248, 12, 243, 63, 16, 254, 12, 208, 255, 253, 255, 12, 32, 234, 190, 244, 12 ]; + +/// 'b' (ASCII 98) +const Font_TTSatoshi_DemiBold_18_glyph_98: [u8; 70] = [ 10, 13, 11, 1, 13, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 136, 238, 59, 0, 251, 255, 255, 255, 4, 251, 159, 50, 252, 13, 251, 13, 0, 242, 63, 251, 9, 0, 224, 95, 251, 9, 0, 224, 95, 251, 13, 0, 242, 63, 251, 159, 50, 252, 13, 251, 255, 255, 255, 4, 251, 149, 238, 59, 0 ]; + +/// 'c' (ASCII 99) +const Font_TTSatoshi_DemiBold_18_glyph_99: [u8; 55] = [ 10, 10, 10, 0, 10, 0, 144, 253, 124, 0, 16, 254, 255, 255, 10, 160, 239, 37, 246, 79, 240, 95, 0, 112, 106, 243, 15, 0, 0, 0, 243, 15, 0, 0, 0, 240, 95, 0, 128, 107, 160, 239, 20, 246, 79, 16, 254, 255, 255, 10, 0, 145, 253, 124, 0 ]; + +/// 'd' (ASCII 100) +const Font_TTSatoshi_DemiBold_18_glyph_100: [u8; 70] = [ 10, 13, 11, 0, 13, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 162, 238, 105, 239, 32, 255, 255, 255, 239, 176, 239, 36, 247, 239, 240, 79, 0, 176, 239, 243, 15, 0, 96, 239, 243, 15, 0, 96, 239, 240, 79, 0, 160, 239, 176, 239, 20, 247, 239, 32, 255, 255, 255, 239, 0, 162, 238, 74, 239 ]; + +/// 'e' (ASCII 101) +const Font_TTSatoshi_DemiBold_18_glyph_101: [u8; 55] = [ 10, 10, 11, 0, 10, 0, 145, 253, 108, 0, 16, 254, 255, 255, 10, 176, 207, 1, 243, 95, 240, 63, 0, 144, 175, 243, 255, 255, 255, 223, 242, 143, 136, 136, 120, 240, 79, 0, 0, 0, 144, 223, 2, 244, 111, 16, 253, 255, 255, 11, 0, 144, 253, 124, 0 ]; + +/// 'f' (ASCII 102) +const Font_TTSatoshi_DemiBold_18_glyph_102: [u8; 57] = [ 7, 13, 7, 0, 13, 0, 212, 255, 3, 0, 254, 255, 3, 0, 255, 4, 0, 248, 255, 255, 3, 248, 255, 255, 3, 49, 255, 37, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0, 0, 255, 3, 0 ]; + +/// 'g' (ASCII 103) +const Font_TTSatoshi_DemiBold_18_glyph_103: [u8; 75] = [ 10, 14, 11, 0, 10, 0, 179, 238, 121, 191, 48, 255, 255, 255, 191, 208, 207, 2, 247, 191, 241, 63, 0, 192, 191, 243, 15, 0, 144, 191, 241, 47, 0, 176, 191, 208, 207, 2, 247, 191, 64, 255, 255, 255, 191, 0, 179, 238, 153, 191, 0, 0, 0, 144, 175, 160, 91, 0, 192, 143, 176, 239, 2, 246, 79, 32, 254, 255, 255, 11, 0, 161, 254, 124, 0 ]; + +/// 'h' (ASCII 104) +const Font_TTSatoshi_DemiBold_18_glyph_104: [u8; 70] = [ 9, 13, 11, 1, 13, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 152, 238, 26, 0, 251, 255, 255, 239, 0, 251, 111, 98, 255, 7, 251, 10, 0, 250, 10, 251, 8, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11, 251, 7, 0, 248, 11 ]; + +/// 'i' (ASCII 105) +const Font_TTSatoshi_DemiBold_18_glyph_105: [u8; 31] = [ 3, 13, 5, 1, 13, 254, 7, 254, 7, 34, 1, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6 ]; + +/// 'j' (ASCII 106) +const Font_TTSatoshi_DemiBold_18_glyph_106: [u8; 56] = [ 5, 17, 6, 0, 13, 0, 254, 7, 0, 254, 7, 0, 34, 1, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 16, 254, 6, 254, 255, 4, 254, 142, 0 ]; + +/// 'k' (ASCII 107) +const Font_TTSatoshi_DemiBold_18_glyph_107: [u8; 70] = [ 9, 13, 9, 1, 13, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 0, 0, 0, 251, 7, 112, 255, 2, 251, 7, 243, 95, 0, 251, 23, 254, 9, 0, 251, 184, 207, 0, 0, 251, 254, 47, 0, 0, 251, 252, 63, 0, 0, 251, 151, 239, 1, 0, 251, 7, 252, 12, 0, 251, 7, 225, 143, 0, 251, 7, 64, 255, 5 ]; + +/// 'l' (ASCII 108) +const Font_TTSatoshi_DemiBold_18_glyph_108: [u8; 31] = [ 3, 13, 5, 1, 13, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7, 251, 7 ]; + +/// 'm' (ASCII 109) +const Font_TTSatoshi_DemiBold_18_glyph_109: [u8; 75] = [ 14, 10, 15, 1, 10, 253, 182, 223, 22, 234, 142, 0, 253, 255, 255, 239, 255, 255, 10, 253, 78, 210, 255, 41, 247, 47, 253, 9, 128, 255, 1, 240, 95, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111, 253, 6, 80, 239, 0, 208, 111 ]; + +/// 'n' (ASCII 110) +const Font_TTSatoshi_DemiBold_18_glyph_110: [u8; 55] = [ 9, 10, 11, 1, 10, 253, 166, 238, 26, 0, 253, 255, 255, 223, 0, 253, 95, 114, 255, 5, 253, 8, 0, 252, 8, 253, 6, 0, 250, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9 ]; + +/// 'o' (ASCII 111) +const Font_TTSatoshi_DemiBold_18_glyph_111: [u8; 65] = [ 11, 10, 11, 0, 10, 0, 144, 253, 124, 0, 0, 16, 254, 255, 255, 12, 0, 160, 239, 37, 247, 127, 0, 240, 95, 0, 128, 223, 0, 243, 15, 0, 64, 255, 0, 243, 15, 0, 64, 255, 0, 240, 95, 0, 128, 223, 0, 160, 239, 20, 246, 127, 0, 16, 254, 255, 255, 12, 0, 0, 145, 253, 124, 0, 0 ]; + +/// 'p' (ASCII 112) +const Font_TTSatoshi_DemiBold_18_glyph_112: [u8; 75] = [ 10, 14, 11, 1, 10, 253, 149, 238, 43, 0, 253, 255, 255, 255, 3, 253, 143, 66, 253, 12, 253, 11, 0, 243, 31, 253, 7, 0, 240, 79, 253, 7, 0, 240, 79, 253, 11, 0, 243, 31, 253, 143, 50, 253, 12, 253, 255, 255, 255, 3, 253, 167, 238, 43, 0, 253, 6, 0, 0, 0, 253, 6, 0, 0, 0, 253, 6, 0, 0, 0, 253, 6, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_TTSatoshi_DemiBold_18_glyph_113: [u8; 75] = [ 10, 14, 11, 0, 10, 0, 162, 238, 90, 239, 32, 255, 255, 255, 239, 176, 239, 36, 247, 239, 240, 79, 0, 176, 239, 243, 15, 0, 96, 239, 243, 15, 0, 96, 239, 240, 79, 0, 160, 239, 176, 239, 20, 247, 239, 32, 255, 255, 255, 239, 0, 162, 238, 122, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239, 0, 0, 0, 80, 239 ]; + +/// 'r' (ASCII 114) +const Font_TTSatoshi_DemiBold_18_glyph_114: [u8; 35] = [ 6, 10, 7, 1, 10, 253, 216, 191, 253, 255, 191, 253, 110, 34, 253, 7, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0, 253, 6, 0 ]; + +/// 's' (ASCII 115) +const Font_TTSatoshi_DemiBold_18_glyph_115: [u8; 55] = [ 9, 10, 9, 0, 10, 16, 217, 207, 7, 0, 225, 255, 254, 175, 0, 245, 31, 64, 255, 2, 245, 95, 0, 0, 0, 225, 255, 223, 25, 0, 16, 200, 255, 239, 1, 0, 0, 64, 255, 5, 245, 30, 16, 254, 5, 208, 255, 253, 239, 1, 0, 217, 239, 42, 0 ]; + +/// 't' (ASCII 116) +const Font_TTSatoshi_DemiBold_18_glyph_116: [u8; 57] = [ 7, 13, 7, 0, 13, 16, 153, 1, 0, 16, 255, 2, 0, 16, 255, 2, 0, 248, 255, 255, 3, 248, 255, 255, 3, 65, 255, 36, 0, 16, 255, 2, 0, 16, 255, 2, 0, 16, 255, 2, 0, 16, 255, 2, 0, 16, 255, 3, 0, 0, 255, 255, 3, 0, 229, 255, 3 ]; + +/// 'u' (ASCII 117) +const Font_TTSatoshi_DemiBold_18_glyph_117: [u8; 55] = [ 9, 10, 11, 1, 10, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 249, 9, 253, 6, 0, 250, 9, 252, 8, 0, 252, 9, 249, 95, 113, 255, 9, 241, 255, 255, 255, 9, 32, 251, 142, 248, 9 ]; + +/// 'v' (ASCII 118) +const Font_TTSatoshi_DemiBold_18_glyph_118: [u8; 55] = [ 10, 10, 9, 0, 10, 253, 7, 0, 242, 63, 248, 12, 0, 246, 14, 243, 31, 0, 251, 9, 224, 111, 0, 255, 4, 144, 175, 80, 239, 0, 64, 255, 160, 159, 0, 0, 255, 228, 79, 0, 0, 250, 254, 15, 0, 0, 245, 255, 10, 0, 0, 240, 255, 5, 0 ]; + +/// 'w' (ASCII 119) +const Font_TTSatoshi_DemiBold_18_glyph_119: [u8; 85] = [ 15, 10, 14, 0, 10, 252, 8, 64, 255, 7, 80, 255, 0, 249, 12, 112, 255, 11, 128, 207, 0, 245, 15, 176, 255, 14, 192, 143, 0, 241, 63, 224, 190, 47, 240, 79, 0, 208, 111, 242, 106, 95, 243, 31, 0, 160, 175, 246, 54, 159, 247, 13, 0, 96, 239, 250, 2, 223, 251, 9, 0, 32, 255, 255, 0, 252, 255, 5, 0, 0, 254, 191, 0, 248, 255, 2, 0, 0, 251, 143, 0, 244, 239, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_TTSatoshi_DemiBold_18_glyph_120: [u8; 65] = [ 11, 10, 10, 0, 10, 160, 207, 0, 160, 223, 0, 16, 255, 7, 244, 63, 0, 0, 246, 47, 254, 9, 0, 0, 176, 255, 239, 0, 0, 0, 48, 255, 95, 0, 0, 0, 128, 255, 191, 0, 0, 0, 242, 127, 255, 4, 0, 0, 250, 11, 249, 13, 0, 48, 255, 3, 241, 111, 0, 192, 175, 0, 128, 239, 0 ]; + +/// 'y' (ASCII 121) +const Font_TTSatoshi_DemiBold_18_glyph_121: [u8; 75] = [ 10, 14, 10, 0, 10, 253, 7, 0, 240, 95, 247, 13, 0, 244, 31, 242, 47, 0, 249, 11, 192, 143, 0, 254, 6, 112, 223, 48, 255, 1, 32, 255, 131, 207, 0, 0, 252, 216, 127, 0, 0, 247, 255, 47, 0, 0, 241, 255, 13, 0, 0, 192, 255, 8, 0, 0, 96, 255, 3, 0, 0, 129, 239, 0, 0, 224, 255, 143, 0, 0, 224, 255, 10, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_TTSatoshi_DemiBold_18_glyph_122: [u8; 45] = [ 8, 10, 9, 0, 10, 245, 255, 255, 239, 245, 255, 255, 239, 16, 17, 245, 143, 0, 16, 254, 12, 0, 192, 239, 1, 0, 248, 79, 0, 80, 255, 7, 0, 226, 207, 1, 0, 247, 255, 255, 255, 247, 255, 255, 255 ]; + +/// '{' (ASCII 123) +const Font_TTSatoshi_DemiBold_18_glyph_123: [u8; 77] = [ 7, 18, 7, 0, 14, 0, 0, 0, 0, 0, 177, 255, 1, 0, 249, 255, 1, 0, 253, 9, 0, 0, 253, 6, 0, 0, 253, 6, 0, 0, 253, 6, 0, 32, 255, 5, 0, 241, 207, 0, 0, 241, 30, 0, 0, 128, 255, 1, 0, 0, 254, 5, 0, 0, 253, 6, 0, 0, 253, 6, 0, 0, 253, 6, 0, 0, 252, 25, 0, 0, 249, 255, 1, 0, 161, 255, 1 ]; + +/// '|' (ASCII 124) +const Font_TTSatoshi_DemiBold_18_glyph_124: [u8; 39] = [ 3, 17, 7, 2, 13, 185, 4, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6, 253, 6 ]; + +/// '}' (ASCII 125) +const Font_TTSatoshi_DemiBold_18_glyph_125: [u8; 59] = [ 6, 18, 7, 0, 14, 0, 0, 0, 245, 159, 0, 245, 255, 5, 0, 252, 8, 0, 250, 9, 0, 250, 9, 0, 250, 9, 0, 249, 28, 0, 210, 223, 0, 128, 223, 0, 247, 110, 0, 250, 9, 0, 250, 9, 0, 250, 9, 0, 250, 9, 16, 253, 8, 245, 255, 5, 245, 142, 0 ]; + +/// '~' (ASCII 126) +const Font_TTSatoshi_DemiBold_18_glyph_126: [u8; 25] = [ 10, 4, 11, 0, 7, 32, 251, 44, 48, 137, 192, 255, 239, 182, 191, 242, 127, 250, 255, 111, 146, 9, 112, 238, 8 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_TTSatoshi_DemiBold_18_glyph_nonprintable: [u8; 70] = [ 9, 13, 10, 0, 13, 255, 56, 32, 229, 255, 79, 0, 0, 0, 253, 11, 80, 139, 0, 245, 41, 243, 255, 6, 242, 255, 255, 255, 3, 243, 255, 255, 61, 0, 249, 255, 239, 1, 160, 255, 255, 143, 0, 253, 255, 255, 111, 64, 255, 255, 255, 223, 219, 255, 255, 255, 175, 151, 255, 255, 255, 95, 64, 255, 255, 255, 95, 64, 255, 255 ]; + +/// Array of references for 'TTSatoshi_DemiBold_18' normal ASCII glyphs +const Font_TTSatoshi_DemiBold_18: [&[u8]; 95] = [ + &Font_TTSatoshi_DemiBold_18_glyph_32, + &Font_TTSatoshi_DemiBold_18_glyph_33, + &Font_TTSatoshi_DemiBold_18_glyph_34, + &Font_TTSatoshi_DemiBold_18_glyph_35, + &Font_TTSatoshi_DemiBold_18_glyph_36, + &Font_TTSatoshi_DemiBold_18_glyph_37, + &Font_TTSatoshi_DemiBold_18_glyph_38, + &Font_TTSatoshi_DemiBold_18_glyph_39, + &Font_TTSatoshi_DemiBold_18_glyph_40, + &Font_TTSatoshi_DemiBold_18_glyph_41, + &Font_TTSatoshi_DemiBold_18_glyph_42, + &Font_TTSatoshi_DemiBold_18_glyph_43, + &Font_TTSatoshi_DemiBold_18_glyph_44, + &Font_TTSatoshi_DemiBold_18_glyph_45, + &Font_TTSatoshi_DemiBold_18_glyph_46, + &Font_TTSatoshi_DemiBold_18_glyph_47, + &Font_TTSatoshi_DemiBold_18_glyph_48, + &Font_TTSatoshi_DemiBold_18_glyph_49, + &Font_TTSatoshi_DemiBold_18_glyph_50, + &Font_TTSatoshi_DemiBold_18_glyph_51, + &Font_TTSatoshi_DemiBold_18_glyph_52, + &Font_TTSatoshi_DemiBold_18_glyph_53, + &Font_TTSatoshi_DemiBold_18_glyph_54, + &Font_TTSatoshi_DemiBold_18_glyph_55, + &Font_TTSatoshi_DemiBold_18_glyph_56, + &Font_TTSatoshi_DemiBold_18_glyph_57, + &Font_TTSatoshi_DemiBold_18_glyph_58, + &Font_TTSatoshi_DemiBold_18_glyph_59, + &Font_TTSatoshi_DemiBold_18_glyph_60, + &Font_TTSatoshi_DemiBold_18_glyph_61, + &Font_TTSatoshi_DemiBold_18_glyph_62, + &Font_TTSatoshi_DemiBold_18_glyph_63, + &Font_TTSatoshi_DemiBold_18_glyph_64, + &Font_TTSatoshi_DemiBold_18_glyph_65, + &Font_TTSatoshi_DemiBold_18_glyph_66, + &Font_TTSatoshi_DemiBold_18_glyph_67, + &Font_TTSatoshi_DemiBold_18_glyph_68, + &Font_TTSatoshi_DemiBold_18_glyph_69, + &Font_TTSatoshi_DemiBold_18_glyph_70, + &Font_TTSatoshi_DemiBold_18_glyph_71, + &Font_TTSatoshi_DemiBold_18_glyph_72, + &Font_TTSatoshi_DemiBold_18_glyph_73, + &Font_TTSatoshi_DemiBold_18_glyph_74, + &Font_TTSatoshi_DemiBold_18_glyph_75, + &Font_TTSatoshi_DemiBold_18_glyph_76, + &Font_TTSatoshi_DemiBold_18_glyph_77, + &Font_TTSatoshi_DemiBold_18_glyph_78, + &Font_TTSatoshi_DemiBold_18_glyph_79, + &Font_TTSatoshi_DemiBold_18_glyph_80, + &Font_TTSatoshi_DemiBold_18_glyph_81, + &Font_TTSatoshi_DemiBold_18_glyph_82, + &Font_TTSatoshi_DemiBold_18_glyph_83, + &Font_TTSatoshi_DemiBold_18_glyph_84, + &Font_TTSatoshi_DemiBold_18_glyph_85, + &Font_TTSatoshi_DemiBold_18_glyph_86, + &Font_TTSatoshi_DemiBold_18_glyph_87, + &Font_TTSatoshi_DemiBold_18_glyph_88, + &Font_TTSatoshi_DemiBold_18_glyph_89, + &Font_TTSatoshi_DemiBold_18_glyph_90, + &Font_TTSatoshi_DemiBold_18_glyph_91, + &Font_TTSatoshi_DemiBold_18_glyph_92, + &Font_TTSatoshi_DemiBold_18_glyph_93, + &Font_TTSatoshi_DemiBold_18_glyph_94, + &Font_TTSatoshi_DemiBold_18_glyph_95, + &Font_TTSatoshi_DemiBold_18_glyph_96, + &Font_TTSatoshi_DemiBold_18_glyph_97, + &Font_TTSatoshi_DemiBold_18_glyph_98, + &Font_TTSatoshi_DemiBold_18_glyph_99, + &Font_TTSatoshi_DemiBold_18_glyph_100, + &Font_TTSatoshi_DemiBold_18_glyph_101, + &Font_TTSatoshi_DemiBold_18_glyph_102, + &Font_TTSatoshi_DemiBold_18_glyph_103, + &Font_TTSatoshi_DemiBold_18_glyph_104, + &Font_TTSatoshi_DemiBold_18_glyph_105, + &Font_TTSatoshi_DemiBold_18_glyph_106, + &Font_TTSatoshi_DemiBold_18_glyph_107, + &Font_TTSatoshi_DemiBold_18_glyph_108, + &Font_TTSatoshi_DemiBold_18_glyph_109, + &Font_TTSatoshi_DemiBold_18_glyph_110, + &Font_TTSatoshi_DemiBold_18_glyph_111, + &Font_TTSatoshi_DemiBold_18_glyph_112, + &Font_TTSatoshi_DemiBold_18_glyph_113, + &Font_TTSatoshi_DemiBold_18_glyph_114, + &Font_TTSatoshi_DemiBold_18_glyph_115, + &Font_TTSatoshi_DemiBold_18_glyph_116, + &Font_TTSatoshi_DemiBold_18_glyph_117, + &Font_TTSatoshi_DemiBold_18_glyph_118, + &Font_TTSatoshi_DemiBold_18_glyph_119, + &Font_TTSatoshi_DemiBold_18_glyph_120, + &Font_TTSatoshi_DemiBold_18_glyph_121, + &Font_TTSatoshi_DemiBold_18_glyph_122, + &Font_TTSatoshi_DemiBold_18_glyph_123, + &Font_TTSatoshi_DemiBold_18_glyph_124, + &Font_TTSatoshi_DemiBold_18_glyph_125, + &Font_TTSatoshi_DemiBold_18_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_TTSatoshi_DemiBold_18_info: FontInfo = FontInfo { + height: 18, + max_height: 19, + baseline: 4, + glyph_data: &Font_TTSatoshi_DemiBold_18, + glyph_nonprintable: &Font_TTSatoshi_DemiBold_18_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs new file mode 100644 index 00000000000..c9f3ecf4a54 --- /dev/null +++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_21.rs @@ -0,0 +1,408 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +// NOTE: numeral chars ('0','1',..,'9') mapped to alternative style glyphs contained in the font (glyph indices: 1298-1307) + +/// ' ' (ASCII 32) +const Font_TTSatoshi_DemiBold_21_glyph_32: [u8; 5] = [ 0, 0, 5, 0, 0 ]; + +/// '!' (ASCII 33) +const Font_TTSatoshi_DemiBold_21_glyph_33: [u8; 35] = [ 4, 15, 6, 1, 15, 245, 111, 245, 111, 245, 111, 245, 111, 245, 111, 245, 111, 244, 95, 243, 79, 241, 47, 240, 31, 160, 10, 0, 0, 228, 110, 245, 111, 245, 111 ]; + +/// '"' (ASCII 34) +const Font_TTSatoshi_DemiBold_21_glyph_34: [u8; 25] = [ 7, 5, 9, 1, 15, 251, 10, 253, 8, 251, 10, 253, 8, 251, 10, 253, 8, 251, 10, 253, 8, 218, 9, 219, 7 ]; + +/// '#' (ASCII 35) +const Font_TTSatoshi_DemiBold_21_glyph_35: [u8; 125] = [ 15, 15, 15, 0, 15, 0, 0, 192, 175, 0, 251, 11, 0, 0, 0, 240, 127, 0, 254, 7, 0, 0, 0, 242, 63, 32, 255, 4, 0, 0, 68, 248, 95, 132, 255, 70, 3, 64, 255, 255, 255, 255, 255, 255, 9, 128, 255, 255, 255, 255, 255, 255, 6, 0, 0, 255, 6, 240, 111, 0, 0, 0, 48, 255, 2, 243, 63, 0, 0, 0, 112, 255, 0, 246, 15, 0, 0, 246, 255, 255, 255, 255, 255, 143, 0, 249, 255, 255, 255, 255, 255, 79, 0, 67, 246, 143, 84, 255, 72, 4, 0, 0, 244, 47, 48, 255, 2, 0, 0, 0, 247, 14, 112, 255, 0, 0, 0, 0, 251, 11, 160, 207, 0, 0, 0 ]; + +/// '$' (ASCII 36) +const Font_TTSatoshi_DemiBold_21_glyph_36: [u8; 138] = [ 13, 19, 13, 0, 17, 0, 0, 208, 207, 0, 0, 0, 0, 0, 208, 207, 0, 0, 0, 0, 96, 252, 255, 124, 0, 0, 0, 251, 255, 255, 255, 12, 0, 112, 255, 207, 202, 255, 143, 0, 208, 255, 3, 0, 244, 255, 0, 224, 223, 0, 0, 144, 238, 1, 176, 255, 5, 0, 0, 0, 0, 64, 255, 239, 139, 5, 0, 0, 0, 212, 255, 255, 255, 9, 0, 0, 0, 82, 184, 255, 191, 0, 0, 0, 0, 0, 193, 255, 2, 226, 142, 0, 0, 96, 255, 5, 240, 255, 3, 0, 176, 255, 3, 144, 255, 207, 186, 254, 239, 0, 16, 252, 255, 255, 255, 79, 0, 0, 112, 252, 255, 157, 1, 0, 0, 0, 208, 207, 0, 0, 0, 0, 0, 208, 207, 0, 0, 0 ]; + +/// '%' (ASCII 37) +const Font_TTSatoshi_DemiBold_21_glyph_37: [u8; 140] = [ 17, 15, 17, 0, 15, 0, 216, 190, 2, 0, 128, 255, 1, 0, 144, 255, 255, 30, 0, 242, 127, 0, 0, 241, 63, 176, 127, 0, 252, 13, 0, 0, 243, 12, 112, 159, 96, 255, 3, 0, 0, 241, 79, 194, 127, 225, 175, 0, 0, 0, 128, 255, 255, 14, 249, 30, 0, 0, 0, 0, 198, 157, 49, 255, 6, 0, 0, 0, 0, 0, 0, 192, 207, 0, 0, 0, 0, 0, 0, 0, 246, 63, 145, 188, 6, 0, 0, 0, 16, 255, 9, 254, 255, 143, 0, 0, 0, 160, 239, 113, 207, 82, 255, 1, 0, 0, 244, 95, 144, 111, 0, 253, 3, 0, 0, 253, 12, 112, 191, 48, 255, 1, 0, 112, 255, 2, 16, 254, 255, 159, 0, 0, 242, 143, 0, 0, 178, 222, 8, 0 ]; + +/// '&' (ASCII 38) +const Font_TTSatoshi_DemiBold_21_glyph_38: [u8; 110] = [ 14, 15, 14, 0, 15, 0, 96, 252, 173, 2, 0, 0, 0, 250, 255, 255, 47, 0, 0, 48, 255, 109, 249, 191, 0, 0, 96, 255, 5, 192, 239, 0, 0, 48, 255, 7, 224, 223, 0, 0, 0, 252, 95, 252, 111, 0, 0, 0, 225, 255, 255, 6, 0, 0, 0, 210, 255, 95, 0, 0, 0, 32, 254, 255, 207, 0, 250, 12, 208, 255, 68, 255, 11, 254, 11, 241, 175, 0, 245, 223, 255, 5, 241, 159, 0, 80, 255, 223, 0, 208, 255, 55, 165, 255, 159, 0, 48, 255, 255, 255, 207, 255, 7, 0, 162, 253, 174, 3, 250, 111 ]; + +/// ''' (ASCII 39) +const Font_TTSatoshi_DemiBold_21_glyph_39: [u8; 15] = [ 3, 5, 5, 1, 15, 251, 10, 251, 10, 251, 10, 251, 10, 218, 9 ]; + +/// '(' (ASCII 40) +const Font_TTSatoshi_DemiBold_21_glyph_40: [u8; 85] = [ 7, 20, 8, 1, 16, 0, 96, 120, 0, 0, 243, 127, 0, 0, 251, 14, 0, 32, 255, 7, 0, 144, 255, 1, 0, 208, 207, 0, 0, 241, 143, 0, 0, 244, 95, 0, 0, 246, 79, 0, 0, 247, 47, 0, 0, 248, 31, 0, 0, 246, 63, 0, 0, 245, 95, 0, 0, 243, 111, 0, 0, 240, 175, 0, 0, 176, 255, 0, 0, 96, 255, 4, 0, 0, 254, 11, 0, 0, 247, 63, 0, 0, 208, 207, 0 ]; + +/// ')' (ASCII 41) +const Font_TTSatoshi_DemiBold_21_glyph_41: [u8; 85] = [ 7, 20, 8, 0, 16, 131, 40, 0, 0, 224, 191, 0, 0, 96, 255, 4, 0, 0, 254, 11, 0, 0, 249, 31, 0, 0, 244, 111, 0, 0, 240, 175, 0, 0, 208, 223, 0, 0, 176, 239, 0, 0, 160, 255, 0, 0, 144, 255, 0, 0, 160, 255, 0, 0, 192, 223, 0, 0, 224, 207, 0, 0, 241, 143, 0, 0, 246, 63, 0, 0, 251, 14, 0, 48, 255, 7, 0, 160, 255, 1, 0, 244, 127, 0, 0 ]; + +/// '*' (ASCII 42) +const Font_TTSatoshi_DemiBold_21_glyph_42: [u8; 50] = [ 10, 9, 10, 0, 15, 0, 0, 254, 2, 0, 0, 0, 252, 1, 0, 128, 40, 251, 97, 11, 240, 255, 255, 255, 63, 64, 199, 255, 141, 20, 0, 208, 255, 47, 0, 0, 250, 106, 223, 1, 0, 232, 1, 187, 1, 0, 16, 0, 1, 0 ]; + +/// '+' (ASCII 43) +const Font_TTSatoshi_DemiBold_21_glyph_43: [u8; 60] = [ 10, 11, 12, 1, 12, 0, 16, 34, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 68, 148, 255, 68, 36, 255, 255, 255, 255, 127, 255, 255, 255, 255, 127, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 96, 239, 0, 0, 0, 80, 222, 0, 0 ]; + +/// ',' (ASCII 44) +const Font_TTSatoshi_DemiBold_21_glyph_44: [u8; 20] = [ 5, 5, 5, 0, 3, 176, 255, 2, 192, 223, 0, 224, 159, 0, 240, 79, 0, 209, 13, 0 ]; + +/// '-' (ASCII 45) +const Font_TTSatoshi_DemiBold_21_glyph_45: [u8; 20] = [ 9, 3, 9, 0, 8, 96, 102, 102, 102, 0, 240, 255, 255, 255, 1, 240, 255, 255, 255, 1 ]; + +/// '.' (ASCII 46) +const Font_TTSatoshi_DemiBold_21_glyph_46: [u8; 11] = [ 4, 3, 5, 1, 3, 235, 46, 251, 47, 251, 47 ]; + +/// '/' (ASCII 47) +const Font_TTSatoshi_DemiBold_21_glyph_47: [u8; 105] = [ 9, 20, 8, 0, 16, 0, 0, 32, 136, 2, 0, 0, 128, 255, 1, 0, 0, 208, 207, 0, 0, 0, 242, 127, 0, 0, 0, 246, 63, 0, 0, 0, 251, 14, 0, 0, 0, 255, 9, 0, 0, 64, 255, 4, 0, 0, 144, 255, 0, 0, 0, 224, 191, 0, 0, 0, 243, 111, 0, 0, 0, 247, 47, 0, 0, 0, 252, 13, 0, 0, 16, 255, 8, 0, 0, 96, 255, 3, 0, 0, 160, 239, 0, 0, 0, 240, 175, 0, 0, 0, 244, 95, 0, 0, 0, 248, 31, 0, 0, 0, 253, 12, 0, 0, 0 ]; + +/// '0' (ASCII 48) +const Font_TTSatoshi_DemiBold_21_glyph_48: [u8; 110] = [ 13, 15, 12, 0, 15, 0, 80, 236, 207, 6, 0, 0, 0, 249, 255, 255, 191, 1, 0, 128, 255, 207, 251, 255, 10, 0, 241, 239, 3, 32, 253, 63, 0, 248, 111, 0, 0, 243, 191, 0, 251, 15, 0, 0, 208, 223, 0, 253, 13, 0, 0, 176, 255, 0, 255, 11, 0, 0, 144, 255, 2, 253, 13, 0, 0, 176, 255, 0, 251, 15, 0, 0, 208, 223, 0, 248, 111, 0, 0, 243, 191, 0, 241, 239, 3, 16, 253, 63, 0, 128, 255, 191, 251, 255, 10, 0, 0, 249, 255, 255, 191, 1, 0, 0, 80, 234, 190, 6, 0, 0 ]; + +/// '1' (ASCII 49) +const Font_TTSatoshi_DemiBold_21_glyph_49: [u8; 95] = [ 11, 15, 12, 1, 15, 0, 32, 255, 8, 0, 0, 150, 201, 255, 8, 0, 0, 250, 255, 255, 8, 0, 0, 250, 255, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 0, 32, 255, 8, 0, 0, 183, 203, 255, 189, 187, 1, 250, 255, 255, 255, 255, 1, 250, 255, 255, 255, 255, 1 ]; + +/// '2' (ASCII 50) +const Font_TTSatoshi_DemiBold_21_glyph_50: [u8; 95] = [ 11, 15, 12, 1, 15, 0, 180, 238, 108, 0, 0, 128, 255, 255, 255, 11, 0, 243, 255, 188, 255, 111, 0, 250, 111, 0, 244, 207, 0, 253, 14, 0, 208, 255, 0, 34, 2, 0, 240, 239, 0, 0, 0, 0, 248, 159, 0, 0, 0, 128, 255, 29, 0, 0, 0, 248, 239, 2, 0, 0, 144, 255, 46, 0, 0, 0, 249, 239, 2, 0, 0, 144, 255, 46, 0, 0, 0, 249, 255, 155, 153, 153, 2, 251, 255, 255, 255, 255, 3, 251, 255, 255, 255, 255, 3 ]; + +/// '3' (ASCII 51) +const Font_TTSatoshi_DemiBold_21_glyph_51: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 80, 235, 207, 7, 0, 0, 250, 255, 255, 223, 0, 112, 255, 191, 234, 255, 9, 192, 255, 2, 16, 254, 13, 64, 69, 0, 0, 252, 15, 0, 0, 0, 97, 255, 10, 0, 0, 240, 255, 223, 1, 0, 0, 240, 255, 127, 0, 0, 0, 96, 199, 255, 7, 0, 0, 0, 0, 252, 15, 161, 106, 0, 0, 248, 47, 240, 239, 2, 0, 253, 15, 144, 255, 191, 234, 255, 11, 0, 252, 255, 255, 223, 1, 0, 96, 235, 206, 7, 0 ]; + +/// '4' (ASCII 52) +const Font_TTSatoshi_DemiBold_21_glyph_52: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 0, 96, 255, 255, 1, 0, 0, 224, 255, 255, 1, 0, 0, 247, 255, 255, 1, 0, 16, 255, 188, 255, 1, 0, 128, 255, 164, 255, 1, 0, 242, 191, 160, 255, 1, 0, 250, 63, 160, 255, 1, 48, 255, 10, 160, 255, 1, 176, 255, 2, 160, 255, 1, 243, 239, 136, 216, 255, 104, 245, 255, 255, 255, 255, 191, 245, 255, 255, 255, 255, 191, 0, 0, 0, 160, 255, 1, 0, 0, 0, 160, 255, 1, 0, 0, 0, 160, 255, 1 ]; + +/// '5' (ASCII 53) +const Font_TTSatoshi_DemiBold_21_glyph_53: [u8; 95] = [ 12, 15, 12, 0, 15, 32, 255, 255, 255, 255, 7, 48, 255, 255, 255, 255, 7, 80, 255, 155, 153, 153, 4, 96, 255, 3, 0, 0, 0, 128, 255, 1, 0, 0, 0, 144, 255, 99, 71, 1, 0, 176, 255, 255, 255, 111, 0, 192, 255, 255, 255, 255, 5, 208, 255, 39, 97, 255, 15, 0, 0, 0, 0, 249, 63, 48, 35, 0, 0, 247, 79, 240, 239, 1, 0, 253, 31, 144, 255, 191, 234, 255, 10, 0, 252, 255, 255, 223, 1, 0, 112, 235, 206, 7, 0 ]; + +/// '6' (ASCII 54) +const Font_TTSatoshi_DemiBold_21_glyph_54: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 0, 80, 255, 12, 0, 0, 0, 225, 255, 3, 0, 0, 0, 249, 159, 0, 0, 0, 48, 255, 30, 0, 0, 0, 208, 255, 6, 0, 0, 0, 247, 255, 207, 7, 0, 32, 255, 255, 255, 207, 0, 160, 255, 175, 233, 255, 9, 240, 255, 2, 16, 254, 15, 242, 175, 0, 0, 248, 63, 241, 175, 0, 0, 248, 63, 224, 255, 2, 16, 253, 15, 96, 255, 159, 233, 255, 8, 0, 250, 255, 255, 207, 0, 0, 80, 235, 190, 6, 0 ]; + +/// '7' (ASCII 55) +const Font_TTSatoshi_DemiBold_21_glyph_55: [u8; 95] = [ 11, 15, 12, 1, 15, 253, 255, 255, 255, 255, 0, 253, 255, 255, 255, 255, 0, 152, 153, 153, 251, 255, 0, 0, 0, 0, 247, 159, 0, 0, 0, 0, 254, 47, 0, 0, 0, 64, 255, 12, 0, 0, 0, 176, 255, 5, 0, 0, 0, 242, 239, 0, 0, 0, 0, 248, 143, 0, 0, 0, 0, 254, 47, 0, 0, 0, 80, 255, 11, 0, 0, 0, 176, 255, 4, 0, 0, 0, 242, 239, 0, 0, 0, 0, 248, 127, 0, 0, 0, 0, 254, 31, 0, 0, 0 ]; + +/// '8' (ASCII 56) +const Font_TTSatoshi_DemiBold_21_glyph_56: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 80, 235, 206, 7, 0, 0, 251, 255, 255, 223, 0, 96, 255, 142, 215, 255, 9, 176, 255, 1, 0, 254, 14, 192, 255, 0, 0, 252, 14, 112, 255, 25, 112, 255, 10, 0, 251, 255, 255, 207, 1, 0, 247, 255, 255, 159, 0, 112, 255, 108, 182, 255, 9, 224, 223, 0, 0, 251, 31, 241, 159, 0, 0, 247, 79, 240, 223, 0, 0, 251, 47, 160, 255, 125, 199, 255, 12, 16, 253, 255, 255, 239, 2, 0, 96, 236, 206, 8, 0 ]; + +/// '9' (ASCII 57) +const Font_TTSatoshi_DemiBold_21_glyph_57: [u8; 95] = [ 12, 15, 12, 0, 15, 0, 64, 235, 190, 6, 0, 0, 250, 255, 255, 191, 0, 96, 255, 175, 233, 255, 8, 208, 255, 2, 16, 254, 15, 241, 175, 0, 0, 248, 63, 241, 175, 0, 0, 248, 79, 224, 255, 2, 16, 253, 47, 96, 255, 159, 233, 255, 12, 0, 250, 255, 255, 255, 4, 0, 80, 235, 255, 175, 0, 0, 0, 48, 255, 30, 0, 0, 0, 208, 255, 6, 0, 0, 0, 247, 207, 0, 0, 0, 16, 255, 47, 0, 0, 0, 160, 255, 8, 0, 0 ]; + +/// ':' (ASCII 58) +const Font_TTSatoshi_DemiBold_21_glyph_58: [u8; 27] = [ 4, 11, 5, 1, 11, 251, 47, 251, 47, 251, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 46, 251, 47, 251, 47 ]; + +/// ';' (ASCII 59) +const Font_TTSatoshi_DemiBold_21_glyph_59: [u8; 44] = [ 5, 13, 5, 0, 11, 160, 255, 4, 160, 255, 4, 144, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 2, 192, 223, 0, 224, 159, 0, 240, 79, 0, 209, 13, 0 ]; + +/// '<' (ASCII 60) +const Font_TTSatoshi_DemiBold_21_glyph_60: [u8; 55] = [ 10, 10, 12, 1, 11, 0, 0, 0, 48, 90, 0, 0, 113, 253, 111, 0, 163, 255, 255, 78, 214, 255, 255, 91, 0, 253, 223, 23, 0, 0, 253, 239, 57, 0, 0, 181, 255, 255, 125, 1, 0, 130, 254, 255, 95, 0, 0, 80, 251, 111, 0, 0, 0, 32, 72 ]; + +/// '=' (ASCII 61) +const Font_TTSatoshi_DemiBold_21_glyph_61: [u8; 45] = [ 10, 8, 12, 1, 10, 66, 68, 68, 68, 4, 248, 255, 255, 255, 31, 248, 255, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 31, 248, 255, 255, 255, 31, 66, 68, 68, 68, 4 ]; + +/// '>' (ASCII 62) +const Font_TTSatoshi_DemiBold_21_glyph_62: [u8; 55] = [ 10, 10, 12, 1, 11, 123, 1, 0, 0, 0, 253, 175, 4, 0, 0, 250, 255, 223, 23, 0, 32, 216, 255, 255, 42, 0, 0, 148, 255, 111, 0, 0, 181, 255, 111, 64, 250, 255, 239, 24, 252, 255, 191, 5, 0, 253, 142, 2, 0, 0, 89, 0, 0, 0, 0 ]; + +/// '?' (ASCII 63) +const Font_TTSatoshi_DemiBold_21_glyph_63: [u8; 95] = [ 11, 15, 11, 0, 15, 0, 162, 253, 157, 1, 0, 80, 255, 255, 255, 79, 0, 225, 255, 155, 253, 239, 0, 244, 175, 0, 192, 255, 3, 99, 38, 0, 128, 255, 5, 0, 0, 0, 209, 255, 3, 0, 0, 96, 255, 175, 0, 0, 0, 246, 255, 7, 0, 0, 0, 253, 79, 0, 0, 0, 0, 255, 11, 0, 0, 0, 0, 170, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 238, 10, 0, 0, 0, 16, 255, 11, 0, 0, 0, 16, 255, 11, 0, 0 ]; + +/// '@' (ASCII 64) +const Font_TTSatoshi_DemiBold_21_glyph_64: [u8; 167] = [ 18, 18, 20, 1, 15, 0, 0, 96, 218, 255, 173, 6, 0, 0, 0, 80, 254, 255, 255, 255, 223, 4, 0, 0, 248, 255, 122, 68, 151, 255, 175, 0, 80, 255, 44, 0, 0, 0, 145, 255, 8, 224, 207, 0, 198, 223, 165, 11, 249, 47, 246, 47, 144, 255, 255, 255, 15, 224, 143, 251, 11, 243, 127, 65, 254, 15, 144, 223, 253, 8, 247, 12, 0, 247, 15, 96, 239, 254, 6, 249, 9, 0, 244, 15, 80, 255, 253, 8, 248, 12, 0, 247, 15, 128, 223, 251, 11, 244, 127, 64, 254, 79, 226, 159, 247, 47, 176, 255, 255, 255, 255, 255, 31, 241, 191, 0, 232, 255, 41, 252, 207, 3, 112, 255, 9, 0, 1, 0, 0, 0, 0, 0, 251, 239, 55, 1, 0, 0, 0, 0, 0, 144, 255, 255, 255, 255, 47, 0, 0, 0, 0, 162, 254, 255, 255, 47, 0, 0, 0, 0, 0, 16, 50, 51, 3, 0, 0 ]; + +/// 'A' (ASCII 65) +const Font_TTSatoshi_DemiBold_21_glyph_65: [u8; 125] = [ 15, 15, 14, 0, 15, 0, 0, 224, 255, 111, 0, 0, 0, 0, 0, 244, 255, 207, 0, 0, 0, 0, 0, 250, 255, 255, 1, 0, 0, 0, 0, 255, 126, 255, 7, 0, 0, 0, 80, 255, 25, 255, 12, 0, 0, 0, 160, 255, 3, 252, 47, 0, 0, 0, 241, 239, 0, 246, 143, 0, 0, 0, 246, 143, 0, 241, 223, 0, 0, 0, 251, 63, 0, 176, 255, 3, 0, 16, 255, 255, 255, 255, 255, 8, 0, 96, 255, 255, 255, 255, 255, 14, 0, 192, 255, 137, 136, 136, 252, 79, 0, 242, 223, 0, 0, 0, 245, 159, 0, 247, 143, 0, 0, 0, 241, 239, 0, 253, 63, 0, 0, 0, 176, 255, 4 ]; + +/// 'B' (ASCII 66) +const Font_TTSatoshi_DemiBold_21_glyph_66: [u8; 95] = [ 12, 15, 14, 1, 15, 246, 255, 255, 255, 124, 0, 246, 255, 255, 255, 255, 10, 246, 159, 102, 150, 255, 79, 246, 79, 0, 0, 246, 127, 246, 79, 0, 0, 244, 143, 246, 79, 0, 32, 251, 79, 246, 255, 255, 255, 255, 11, 246, 255, 255, 255, 255, 7, 246, 159, 102, 118, 254, 63, 246, 79, 0, 0, 243, 159, 246, 79, 0, 0, 240, 191, 246, 79, 0, 0, 243, 175, 246, 159, 102, 118, 254, 111, 246, 255, 255, 255, 255, 13, 246, 255, 255, 255, 141, 0 ]; + +/// 'C' (ASCII 67) +const Font_TTSatoshi_DemiBold_21_glyph_67: [u8; 125] = [ 15, 15, 15, 0, 15, 0, 0, 112, 236, 223, 24, 0, 0, 0, 48, 253, 255, 255, 239, 4, 0, 0, 243, 255, 190, 235, 255, 79, 0, 0, 253, 143, 0, 0, 248, 239, 0, 112, 255, 9, 0, 0, 144, 255, 6, 192, 255, 1, 0, 0, 16, 85, 3, 240, 223, 0, 0, 0, 0, 0, 0, 240, 191, 0, 0, 0, 0, 0, 0, 240, 223, 0, 0, 0, 0, 0, 0, 192, 255, 1, 0, 0, 16, 102, 4, 112, 255, 9, 0, 0, 144, 255, 5, 0, 253, 143, 0, 0, 247, 223, 0, 0, 243, 255, 190, 234, 255, 79, 0, 0, 48, 253, 255, 255, 239, 4, 0, 0, 0, 112, 252, 223, 24, 0, 0 ]; + +/// 'D' (ASCII 68) +const Font_TTSatoshi_DemiBold_21_glyph_68: [u8; 110] = [ 14, 15, 15, 1, 15, 246, 255, 255, 206, 7, 0, 0, 246, 255, 255, 255, 223, 3, 0, 246, 191, 169, 251, 255, 63, 0, 246, 79, 0, 0, 249, 223, 0, 246, 79, 0, 0, 144, 255, 7, 246, 79, 0, 0, 16, 255, 12, 246, 79, 0, 0, 0, 253, 15, 246, 79, 0, 0, 0, 251, 15, 246, 79, 0, 0, 0, 253, 15, 246, 79, 0, 0, 16, 255, 12, 246, 79, 0, 0, 144, 255, 7, 246, 79, 0, 0, 248, 223, 0, 246, 191, 153, 235, 255, 63, 0, 246, 255, 255, 255, 223, 3, 0, 246, 255, 255, 207, 7, 0, 0 ]; + +/// 'E' (ASCII 69) +const Font_TTSatoshi_DemiBold_21_glyph_69: [u8; 95] = [ 11, 15, 13, 1, 15, 246, 255, 255, 255, 255, 6, 246, 255, 255, 255, 255, 6, 246, 175, 136, 136, 136, 3, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 175, 136, 136, 136, 0, 246, 255, 255, 255, 255, 0, 246, 255, 255, 255, 255, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 175, 136, 136, 136, 3, 246, 255, 255, 255, 255, 6, 246, 255, 255, 255, 255, 6 ]; + +/// 'F' (ASCII 70) +const Font_TTSatoshi_DemiBold_21_glyph_70: [u8; 95] = [ 11, 15, 12, 1, 15, 246, 255, 255, 255, 255, 5, 246, 255, 255, 255, 255, 5, 246, 175, 136, 136, 136, 2, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 255, 255, 255, 207, 0, 246, 255, 255, 255, 207, 0, 246, 175, 136, 136, 104, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0 ]; + +/// 'G' (ASCII 71) +const Font_TTSatoshi_DemiBold_21_glyph_71: [u8; 125] = [ 15, 15, 16, 0, 15, 0, 0, 112, 252, 190, 24, 0, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 243, 255, 190, 235, 255, 79, 0, 0, 253, 143, 0, 0, 248, 239, 1, 112, 255, 9, 0, 0, 160, 255, 6, 192, 255, 0, 0, 0, 0, 34, 1, 240, 223, 0, 0, 0, 0, 0, 0, 240, 191, 0, 0, 249, 255, 255, 12, 240, 223, 0, 0, 249, 255, 255, 12, 192, 255, 1, 0, 17, 33, 255, 12, 112, 255, 9, 0, 0, 112, 255, 12, 0, 253, 143, 0, 0, 246, 255, 12, 0, 243, 255, 190, 235, 255, 255, 12, 0, 48, 253, 255, 255, 223, 249, 12, 0, 0, 112, 252, 206, 7, 245, 12 ]; + +/// 'H' (ASCII 72) +const Font_TTSatoshi_DemiBold_21_glyph_72: [u8; 110] = [ 13, 15, 15, 1, 15, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 255, 255, 255, 255, 255, 10, 246, 255, 255, 255, 255, 255, 10, 246, 223, 187, 187, 203, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10, 246, 79, 0, 0, 16, 255, 10 ]; + +/// 'I' (ASCII 73) +const Font_TTSatoshi_DemiBold_21_glyph_73: [u8; 35] = [ 4, 15, 6, 1, 15, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79, 246, 79 ]; + +/// 'J' (ASCII 74) +const Font_TTSatoshi_DemiBold_21_glyph_74: [u8; 65] = [ 8, 15, 9, 0, 15, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 249, 31, 0, 0, 250, 31, 151, 169, 255, 31, 252, 255, 255, 13, 252, 255, 207, 2 ]; + +/// 'K' (ASCII 75) +const Font_TTSatoshi_DemiBold_21_glyph_75: [u8; 110] = [ 13, 15, 13, 1, 15, 246, 79, 0, 16, 254, 95, 0, 246, 79, 0, 192, 255, 8, 0, 246, 79, 0, 248, 207, 0, 0, 246, 79, 64, 255, 46, 0, 0, 246, 79, 225, 255, 4, 0, 0, 246, 79, 252, 143, 0, 0, 0, 246, 207, 255, 12, 0, 0, 0, 246, 255, 255, 5, 0, 0, 0, 246, 175, 255, 30, 0, 0, 0, 246, 79, 249, 207, 0, 0, 0, 246, 79, 192, 255, 8, 0, 0, 246, 79, 16, 254, 95, 0, 0, 246, 79, 0, 243, 255, 2, 0, 246, 79, 0, 96, 255, 29, 0, 246, 79, 0, 0, 250, 191, 0 ]; + +/// 'L' (ASCII 76) +const Font_TTSatoshi_DemiBold_21_glyph_76: [u8; 95] = [ 11, 15, 12, 1, 15, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 191, 153, 153, 153, 2, 246, 255, 255, 255, 255, 3, 246, 255, 255, 255, 255, 3 ]; + +/// 'M' (ASCII 77) +const Font_TTSatoshi_DemiBold_21_glyph_77: [u8; 140] = [ 17, 15, 19, 1, 15, 246, 255, 47, 0, 0, 0, 253, 255, 11, 246, 255, 127, 0, 0, 32, 255, 255, 11, 246, 255, 207, 0, 0, 112, 255, 255, 11, 246, 255, 255, 1, 0, 208, 255, 255, 11, 246, 207, 255, 7, 0, 242, 207, 255, 11, 246, 95, 254, 12, 0, 247, 79, 255, 11, 246, 79, 250, 31, 0, 252, 14, 255, 11, 246, 79, 244, 111, 32, 255, 9, 255, 11, 246, 79, 240, 191, 112, 255, 4, 255, 11, 246, 79, 160, 255, 193, 239, 0, 255, 11, 246, 79, 64, 255, 250, 159, 0, 255, 11, 246, 79, 0, 255, 255, 79, 0, 255, 11, 246, 79, 0, 250, 255, 14, 0, 255, 11, 246, 79, 0, 244, 255, 9, 0, 255, 11, 246, 79, 0, 240, 255, 4, 0, 255, 11 ]; + +/// 'N' (ASCII 78) +const Font_TTSatoshi_DemiBold_21_glyph_78: [u8; 110] = [ 13, 15, 15, 1, 15, 246, 255, 7, 0, 0, 255, 11, 246, 255, 30, 0, 0, 255, 11, 246, 255, 143, 0, 0, 255, 11, 246, 255, 255, 1, 0, 255, 11, 246, 191, 255, 8, 0, 255, 11, 246, 79, 252, 31, 0, 255, 11, 246, 79, 244, 143, 0, 255, 11, 246, 79, 192, 255, 1, 255, 11, 246, 79, 48, 255, 9, 255, 11, 246, 79, 0, 251, 31, 255, 11, 246, 79, 0, 243, 191, 255, 11, 246, 79, 0, 176, 255, 255, 11, 246, 79, 0, 48, 255, 255, 11, 246, 79, 0, 0, 251, 255, 11, 246, 79, 0, 0, 242, 255, 11 ]; + +/// 'O' (ASCII 79) +const Font_TTSatoshi_DemiBold_21_glyph_79: [u8; 125] = [ 16, 15, 16, 0, 15, 0, 0, 112, 236, 223, 24, 0, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 243, 255, 190, 235, 255, 111, 0, 0, 253, 143, 0, 0, 246, 239, 1, 112, 255, 9, 0, 0, 112, 255, 9, 192, 255, 1, 0, 0, 0, 254, 14, 240, 223, 0, 0, 0, 0, 250, 31, 240, 191, 0, 0, 0, 0, 248, 63, 240, 223, 0, 0, 0, 0, 250, 31, 192, 255, 1, 0, 0, 0, 254, 14, 112, 255, 9, 0, 0, 96, 255, 9, 0, 253, 143, 0, 0, 246, 239, 1, 0, 243, 255, 190, 235, 255, 111, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 0, 112, 252, 223, 24, 0, 0 ]; + +/// 'P' (ASCII 80) +const Font_TTSatoshi_DemiBold_21_glyph_80: [u8; 95] = [ 12, 15, 14, 1, 15, 246, 255, 255, 255, 92, 0, 246, 255, 255, 255, 255, 8, 246, 191, 153, 185, 255, 63, 246, 79, 0, 0, 246, 143, 246, 79, 0, 0, 240, 191, 246, 79, 0, 0, 240, 191, 246, 79, 0, 0, 245, 143, 246, 191, 153, 185, 255, 63, 246, 255, 255, 255, 255, 9, 246, 255, 255, 255, 92, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0, 246, 79, 0, 0, 0, 0 ]; + +/// 'Q' (ASCII 81) +const Font_TTSatoshi_DemiBold_21_glyph_81: [u8; 133] = [ 16, 16, 16, 0, 15, 0, 0, 112, 236, 223, 24, 0, 0, 0, 48, 253, 255, 255, 239, 5, 0, 0, 243, 255, 190, 235, 255, 111, 0, 0, 253, 143, 0, 0, 246, 239, 1, 112, 255, 9, 0, 0, 112, 255, 9, 192, 255, 1, 0, 0, 0, 254, 14, 240, 223, 0, 0, 0, 0, 250, 31, 240, 191, 0, 0, 0, 0, 248, 63, 240, 223, 0, 0, 0, 0, 250, 31, 192, 255, 1, 48, 51, 0, 254, 15, 112, 255, 9, 128, 255, 105, 255, 10, 0, 253, 143, 0, 250, 255, 239, 1, 0, 243, 255, 190, 250, 255, 95, 0, 0, 48, 253, 255, 255, 255, 95, 0, 0, 0, 112, 252, 223, 217, 255, 3, 0, 0, 0, 0, 0, 32, 220, 28 ]; + +/// 'R' (ASCII 82) +const Font_TTSatoshi_DemiBold_21_glyph_82: [u8; 110] = [ 13, 15, 14, 1, 15, 246, 255, 255, 255, 92, 0, 0, 246, 255, 255, 255, 255, 9, 0, 246, 191, 153, 185, 255, 79, 0, 246, 79, 0, 0, 245, 175, 0, 246, 79, 0, 0, 224, 207, 0, 246, 79, 0, 0, 224, 223, 0, 246, 79, 0, 0, 244, 175, 0, 246, 175, 136, 152, 255, 95, 0, 246, 255, 255, 255, 255, 10, 0, 246, 255, 255, 255, 108, 0, 0, 246, 79, 246, 239, 2, 0, 0, 246, 79, 112, 255, 30, 0, 0, 246, 79, 0, 248, 223, 1, 0, 246, 79, 0, 128, 255, 29, 0, 246, 79, 0, 0, 249, 207, 0 ]; + +/// 'S' (ASCII 83) +const Font_TTSatoshi_DemiBold_21_glyph_83: [u8; 110] = [ 13, 15, 13, 0, 15, 0, 64, 219, 223, 91, 0, 0, 0, 250, 255, 255, 255, 11, 0, 96, 255, 175, 185, 255, 143, 0, 192, 255, 2, 0, 242, 239, 0, 224, 223, 0, 0, 128, 204, 1, 192, 255, 6, 0, 0, 0, 0, 80, 255, 255, 172, 38, 0, 0, 0, 246, 255, 255, 255, 26, 0, 0, 0, 116, 218, 255, 207, 0, 0, 0, 0, 0, 210, 255, 2, 194, 124, 0, 0, 96, 255, 5, 240, 239, 2, 0, 160, 255, 3, 128, 255, 191, 152, 253, 223, 0, 0, 250, 255, 255, 255, 46, 0, 0, 64, 218, 239, 140, 0, 0 ]; + +/// 'T' (ASCII 84) +const Font_TTSatoshi_DemiBold_21_glyph_84: [u8; 95] = [ 12, 15, 12, 0, 15, 249, 255, 255, 255, 255, 255, 249, 255, 255, 255, 255, 255, 149, 153, 251, 223, 153, 153, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0, 0, 0, 242, 143, 0, 0 ]; + +/// 'U' (ASCII 85) +const Font_TTSatoshi_DemiBold_21_glyph_85: [u8; 110] = [ 13, 15, 15, 1, 15, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 47, 0, 0, 16, 255, 10, 248, 63, 0, 0, 16, 255, 10, 246, 79, 0, 0, 48, 255, 8, 243, 159, 0, 0, 128, 255, 5, 224, 255, 6, 0, 245, 255, 1, 96, 255, 223, 202, 255, 127, 0, 0, 248, 255, 255, 255, 9, 0, 0, 48, 218, 223, 74, 0, 0 ]; + +/// 'V' (ASCII 86) +const Font_TTSatoshi_DemiBold_21_glyph_86: [u8; 125] = [ 15, 15, 14, 0, 15, 251, 79, 0, 0, 0, 240, 255, 0, 246, 175, 0, 0, 0, 245, 175, 0, 241, 239, 0, 0, 0, 251, 95, 0, 176, 255, 4, 0, 0, 255, 15, 0, 96, 255, 9, 0, 80, 255, 10, 0, 16, 255, 14, 0, 160, 255, 5, 0, 0, 251, 63, 0, 240, 255, 0, 0, 0, 246, 159, 0, 245, 175, 0, 0, 0, 241, 239, 0, 250, 79, 0, 0, 0, 176, 255, 3, 255, 15, 0, 0, 0, 80, 255, 72, 255, 10, 0, 0, 0, 16, 255, 190, 255, 4, 0, 0, 0, 0, 251, 255, 255, 0, 0, 0, 0, 0, 245, 255, 175, 0, 0, 0, 0, 0, 240, 255, 79, 0, 0, 0 ]; + +/// 'W' (ASCII 87) +const Font_TTSatoshi_DemiBold_21_glyph_87: [u8; 170] = [ 21, 15, 21, 0, 15, 252, 79, 0, 0, 246, 255, 0, 0, 176, 255, 5, 248, 127, 0, 0, 250, 255, 3, 0, 224, 255, 1, 244, 191, 0, 0, 254, 255, 7, 0, 242, 223, 0, 240, 255, 0, 32, 255, 255, 11, 0, 246, 159, 0, 192, 255, 3, 96, 255, 253, 15, 0, 250, 95, 0, 128, 255, 7, 160, 223, 244, 63, 0, 254, 31, 0, 80, 255, 10, 224, 159, 241, 127, 16, 255, 14, 0, 16, 255, 14, 242, 95, 208, 191, 80, 255, 10, 0, 0, 253, 47, 246, 47, 144, 255, 144, 255, 6, 0, 0, 249, 111, 250, 14, 80, 255, 211, 255, 2, 0, 0, 245, 207, 254, 10, 16, 255, 250, 239, 0, 0, 0, 241, 255, 255, 6, 0, 253, 255, 175, 0, 0, 0, 208, 255, 255, 2, 0, 249, 255, 111, 0, 0, 0, 144, 255, 239, 0, 0, 245, 255, 47, 0, 0, 0, 80, 255, 175, 0, 0, 241, 255, 14, 0, 0 ]; + +/// 'X' (ASCII 88) +const Font_TTSatoshi_DemiBold_21_glyph_88: [u8; 125] = [ 15, 15, 14, 0, 15, 144, 255, 10, 0, 0, 243, 239, 1, 0, 254, 79, 0, 0, 253, 95, 0, 0, 244, 239, 0, 128, 255, 11, 0, 0, 160, 255, 9, 242, 255, 1, 0, 0, 16, 254, 79, 252, 111, 0, 0, 0, 0, 245, 255, 255, 12, 0, 0, 0, 0, 176, 255, 255, 2, 0, 0, 0, 0, 80, 255, 207, 0, 0, 0, 0, 0, 225, 255, 255, 6, 0, 0, 0, 0, 249, 207, 255, 30, 0, 0, 0, 64, 255, 14, 248, 191, 0, 0, 0, 224, 255, 4, 208, 255, 5, 0, 0, 249, 175, 0, 48, 255, 30, 0, 48, 255, 30, 0, 0, 249, 175, 0, 208, 255, 5, 0, 0, 224, 255, 5 ]; + +/// 'Y' (ASCII 89) +const Font_TTSatoshi_DemiBold_21_glyph_89: [u8; 125] = [ 15, 15, 14, 0, 15, 224, 255, 1, 0, 0, 241, 239, 0, 96, 255, 10, 0, 0, 250, 111, 0, 0, 253, 47, 0, 32, 255, 13, 0, 0, 245, 191, 0, 176, 255, 5, 0, 0, 192, 255, 4, 243, 207, 0, 0, 0, 48, 255, 12, 252, 63, 0, 0, 0, 0, 250, 191, 255, 10, 0, 0, 0, 0, 242, 255, 255, 2, 0, 0, 0, 0, 144, 255, 159, 0, 0, 0, 0, 0, 16, 255, 31, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0, 0, 0, 0, 253, 13, 0, 0, 0 ]; + +/// 'Z' (ASCII 90) +const Font_TTSatoshi_DemiBold_21_glyph_90: [u8; 95] = [ 12, 15, 13, 0, 15, 242, 255, 255, 255, 255, 223, 242, 255, 255, 255, 255, 223, 145, 153, 153, 169, 255, 191, 0, 0, 0, 112, 255, 30, 0, 0, 0, 243, 255, 4, 0, 0, 16, 254, 143, 0, 0, 0, 176, 255, 12, 0, 0, 0, 247, 239, 2, 0, 0, 48, 255, 95, 0, 0, 0, 225, 255, 9, 0, 0, 0, 251, 207, 0, 0, 0, 112, 255, 47, 0, 0, 0, 242, 255, 157, 153, 153, 153, 244, 255, 255, 255, 255, 255, 244, 255, 255, 255, 255, 255 ]; + +/// '[' (ASCII 91) +const Font_TTSatoshi_DemiBold_21_glyph_91: [u8; 65] = [ 6, 20, 8, 1, 16, 98, 102, 86, 245, 255, 239, 245, 255, 239, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 79, 0, 245, 159, 86, 245, 255, 239, 245, 255, 239 ]; + +/// '\' (ASCII 92) +const Font_TTSatoshi_DemiBold_21_glyph_92: [u8; 105] = [ 9, 20, 8, 0, 16, 135, 5, 0, 0, 0, 251, 14, 0, 0, 0, 246, 63, 0, 0, 0, 241, 127, 0, 0, 0, 208, 207, 0, 0, 0, 128, 255, 1, 0, 0, 48, 255, 6, 0, 0, 0, 254, 10, 0, 0, 0, 250, 15, 0, 0, 0, 245, 79, 0, 0, 0, 240, 159, 0, 0, 0, 176, 223, 0, 0, 0, 112, 255, 2, 0, 0, 32, 255, 7, 0, 0, 0, 253, 12, 0, 0, 0, 249, 31, 0, 0, 0, 244, 95, 0, 0, 0, 240, 175, 0, 0, 0, 160, 239, 0, 0, 0, 96, 255, 3 ]; + +/// ']' (ASCII 93) +const Font_TTSatoshi_DemiBold_21_glyph_93: [u8; 65] = [ 6, 20, 8, 0, 16, 97, 102, 102, 244, 255, 255, 244, 255, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 0, 160, 255, 97, 198, 255, 244, 255, 255, 244, 255, 255 ]; + +/// '^' (ASCII 94) +const Font_TTSatoshi_DemiBold_21_glyph_94: [u8; 35] = [ 9, 6, 9, 0, 15, 0, 241, 255, 5, 0, 0, 246, 255, 11, 0, 0, 252, 251, 31, 0, 32, 255, 210, 127, 0, 128, 207, 112, 223, 0, 208, 111, 16, 255, 3 ]; + +/// '_' (ASCII 95) +const Font_TTSatoshi_DemiBold_21_glyph_95: [u8; 20] = [ 10, 3, 9, 0, 0, 246, 255, 255, 255, 159, 246, 255, 255, 255, 159, 98, 102, 102, 102, 70 ]; + +/// '`' (ASCII 96) +const Font_TTSatoshi_DemiBold_21_glyph_96: [u8; 17] = [ 6, 4, 6, 0, 16, 0, 0, 0, 209, 191, 0, 32, 255, 5, 0, 244, 30 ]; + +/// 'a' (ASCII 97) +const Font_TTSatoshi_DemiBold_21_glyph_97: [u8; 71] = [ 11, 11, 12, 0, 11, 0, 112, 252, 173, 2, 0, 0, 252, 255, 255, 79, 0, 112, 255, 57, 229, 239, 0, 48, 68, 0, 96, 255, 3, 0, 180, 254, 255, 255, 4, 96, 255, 255, 255, 255, 4, 224, 239, 2, 96, 255, 4, 241, 159, 0, 144, 255, 4, 240, 239, 36, 247, 255, 4, 128, 255, 255, 255, 255, 4, 0, 198, 239, 41, 255, 4 ]; + +/// 'b' (ASCII 98) +const Font_TTSatoshi_DemiBold_21_glyph_98: [u8; 95] = [ 12, 15, 13, 1, 15, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 47, 233, 190, 5, 0, 248, 239, 255, 255, 159, 0, 248, 255, 124, 232, 255, 5, 248, 191, 0, 32, 255, 12, 248, 79, 0, 0, 249, 15, 248, 47, 0, 0, 247, 47, 248, 63, 0, 0, 249, 15, 248, 191, 0, 32, 255, 12, 248, 255, 124, 232, 255, 5, 248, 239, 255, 255, 159, 0, 248, 29, 234, 190, 5, 0 ]; + +/// 'c' (ASCII 99) +const Font_TTSatoshi_DemiBold_21_glyph_99: [u8; 71] = [ 12, 11, 12, 0, 11, 0, 48, 218, 207, 7, 0, 0, 247, 255, 255, 223, 1, 48, 255, 159, 183, 255, 10, 192, 255, 3, 0, 250, 47, 240, 175, 0, 0, 0, 0, 242, 127, 0, 0, 0, 0, 240, 175, 0, 0, 32, 2, 192, 255, 2, 0, 251, 31, 64, 255, 159, 183, 255, 10, 0, 247, 255, 255, 223, 1, 0, 48, 218, 207, 7, 0 ]; + +/// 'd' (ASCII 100) +const Font_TTSatoshi_DemiBold_21_glyph_100: [u8; 95] = [ 12, 15, 13, 0, 15, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 80, 235, 158, 242, 143, 0, 249, 255, 255, 254, 143, 64, 255, 142, 199, 255, 143, 192, 255, 2, 0, 251, 143, 240, 159, 0, 0, 243, 143, 242, 127, 0, 0, 241, 143, 240, 159, 0, 0, 243, 143, 208, 255, 1, 0, 251, 143, 80, 255, 142, 199, 255, 143, 0, 250, 255, 255, 254, 143, 0, 80, 251, 174, 209, 143 ]; + +/// 'e' (ASCII 101) +const Font_TTSatoshi_DemiBold_21_glyph_101: [u8; 71] = [ 12, 11, 12, 0, 11, 0, 48, 218, 207, 7, 0, 0, 248, 255, 255, 223, 1, 64, 255, 92, 132, 255, 11, 208, 239, 0, 0, 246, 63, 240, 239, 204, 204, 252, 127, 241, 255, 255, 255, 255, 143, 240, 159, 0, 0, 0, 0, 176, 239, 1, 0, 117, 7, 48, 255, 93, 148, 255, 12, 0, 246, 255, 255, 223, 1, 0, 48, 218, 207, 8, 0 ]; + +/// 'f' (ASCII 102) +const Font_TTSatoshi_DemiBold_21_glyph_102: [u8; 65] = [ 8, 15, 8, 0, 15, 0, 144, 254, 63, 0, 247, 255, 63, 0, 250, 111, 20, 0, 251, 14, 0, 247, 255, 255, 63, 247, 255, 255, 63, 132, 253, 143, 24, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0, 0, 251, 14, 0 ]; + +/// 'g' (ASCII 103) +const Font_TTSatoshi_DemiBold_21_glyph_103: [u8; 95] = [ 12, 15, 13, 0, 11, 0, 96, 252, 158, 242, 95, 0, 251, 255, 255, 255, 95, 112, 255, 109, 198, 255, 95, 224, 239, 0, 0, 252, 95, 241, 143, 0, 0, 246, 95, 241, 143, 0, 0, 246, 95, 224, 223, 0, 0, 252, 95, 112, 255, 109, 182, 255, 95, 0, 252, 255, 255, 255, 95, 0, 112, 252, 158, 246, 95, 0, 0, 0, 0, 245, 79, 160, 221, 1, 0, 250, 31, 96, 255, 109, 165, 255, 12, 0, 250, 255, 255, 239, 2, 0, 96, 236, 207, 8, 0 ]; + +/// 'h' (ASCII 104) +const Font_TTSatoshi_DemiBold_21_glyph_104: [u8; 95] = [ 11, 15, 13, 1, 15, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 63, 234, 190, 3, 0, 248, 255, 255, 255, 79, 0, 248, 255, 122, 251, 223, 0, 248, 127, 0, 160, 255, 2, 248, 47, 0, 80, 255, 4, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5, 248, 31, 0, 64, 255, 5 ]; + +/// 'i' (ASCII 105) +const Font_TTSatoshi_DemiBold_21_glyph_105: [u8; 35] = [ 4, 15, 5, 1, 15, 251, 31, 251, 31, 134, 8, 0, 0, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15, 250, 15 ]; + +/// 'j' (ASCII 106) +const Font_TTSatoshi_DemiBold_21_glyph_106: [u8; 81] = [ 7, 19, 7, 0, 15, 0, 176, 255, 1, 0, 176, 255, 1, 0, 96, 136, 0, 0, 0, 0, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 0, 160, 255, 0, 96, 230, 255, 0, 240, 255, 191, 0, 240, 255, 27, 0 ]; + +/// 'k' (ASCII 107) +const Font_TTSatoshi_DemiBold_21_glyph_107: [u8; 95] = [ 11, 15, 11, 1, 15, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 0, 0, 0, 248, 31, 0, 245, 191, 0, 248, 31, 32, 255, 13, 0, 248, 31, 209, 239, 2, 0, 248, 31, 251, 79, 0, 0, 248, 175, 255, 7, 0, 0, 248, 255, 239, 0, 0, 0, 248, 127, 255, 10, 0, 0, 248, 31, 248, 127, 0, 0, 248, 31, 176, 255, 4, 0, 248, 31, 16, 253, 47, 0, 248, 31, 0, 242, 223, 1 ]; + +/// 'l' (ASCII 108) +const Font_TTSatoshi_DemiBold_21_glyph_108: [u8; 35] = [ 4, 15, 6, 1, 15, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31, 248, 31 ]; + +/// 'm' (ASCII 109) +const Font_TTSatoshi_DemiBold_21_glyph_109: [u8; 93] = [ 16, 11, 18, 1, 11, 250, 61, 252, 125, 64, 252, 141, 0, 250, 255, 255, 255, 252, 255, 255, 11, 250, 255, 136, 255, 255, 123, 253, 95, 250, 79, 0, 249, 191, 0, 242, 175, 250, 15, 0, 244, 111, 0, 224, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207, 250, 15, 0, 243, 111, 0, 208, 207 ]; + +/// 'n' (ASCII 110) +const Font_TTSatoshi_DemiBold_21_glyph_110: [u8; 71] = [ 11, 11, 13, 1, 11, 250, 45, 234, 190, 2, 0, 250, 255, 255, 255, 63, 0, 250, 255, 121, 252, 207, 0, 250, 95, 0, 192, 255, 0, 250, 15, 0, 112, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3 ]; + +/// 'o' (ASCII 111) +const Font_TTSatoshi_DemiBold_21_glyph_111: [u8; 71] = [ 12, 11, 13, 0, 11, 0, 48, 218, 207, 8, 0, 0, 247, 255, 255, 223, 2, 48, 255, 159, 199, 255, 12, 192, 255, 3, 0, 249, 95, 240, 175, 0, 0, 241, 143, 242, 127, 0, 0, 224, 191, 240, 175, 0, 0, 241, 143, 192, 255, 2, 0, 249, 95, 64, 255, 159, 183, 255, 12, 0, 247, 255, 255, 223, 2, 0, 48, 218, 207, 8, 0 ]; + +/// 'p' (ASCII 112) +const Font_TTSatoshi_DemiBold_21_glyph_112: [u8; 95] = [ 12, 15, 13, 1, 11, 250, 29, 234, 190, 4, 0, 250, 239, 255, 255, 127, 0, 250, 255, 123, 249, 255, 3, 250, 159, 0, 48, 255, 11, 250, 47, 0, 0, 251, 14, 250, 15, 0, 0, 249, 15, 250, 47, 0, 0, 251, 14, 250, 175, 0, 48, 255, 11, 250, 255, 123, 249, 255, 3, 250, 255, 255, 255, 143, 0, 250, 47, 235, 190, 4, 0, 250, 15, 0, 0, 0, 0, 250, 15, 0, 0, 0, 0, 250, 15, 0, 0, 0, 0, 250, 15, 0, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_TTSatoshi_DemiBold_21_glyph_113: [u8; 95] = [ 12, 15, 13, 0, 11, 0, 80, 235, 158, 241, 143, 0, 249, 255, 255, 255, 143, 80, 255, 142, 199, 255, 143, 192, 255, 2, 0, 251, 143, 240, 159, 0, 0, 243, 143, 242, 127, 0, 0, 241, 143, 240, 159, 0, 0, 243, 143, 208, 255, 1, 0, 251, 143, 80, 255, 142, 199, 255, 143, 0, 249, 255, 255, 255, 143, 0, 80, 235, 174, 243, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143, 0, 0, 0, 0, 241, 143 ]; + +/// 'r' (ASCII 114) +const Font_TTSatoshi_DemiBold_21_glyph_114: [u8; 49] = [ 7, 11, 8, 1, 11, 250, 138, 254, 13, 250, 255, 255, 13, 250, 239, 137, 7, 250, 63, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0, 250, 15, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_TTSatoshi_DemiBold_21_glyph_115: [u8; 60] = [ 10, 11, 11, 0, 11, 0, 197, 238, 108, 0, 144, 255, 255, 255, 11, 242, 207, 52, 249, 111, 245, 111, 0, 96, 71, 241, 255, 156, 38, 0, 64, 253, 255, 255, 11, 0, 32, 134, 253, 143, 98, 22, 0, 224, 207, 242, 191, 19, 245, 191, 128, 255, 255, 255, 63, 0, 197, 254, 173, 2 ]; + +/// 't' (ASCII 116) +const Font_TTSatoshi_DemiBold_21_glyph_116: [u8; 65] = [ 8, 15, 8, 0, 15, 0, 0, 0, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 247, 255, 255, 63, 247, 255, 255, 63, 132, 254, 142, 24, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 13, 0, 0, 252, 95, 20, 0, 249, 255, 63, 0, 161, 255, 63 ]; + +/// 'u' (ASCII 117) +const Font_TTSatoshi_DemiBold_21_glyph_117: [u8; 71] = [ 11, 11, 13, 1, 11, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 250, 15, 0, 96, 255, 3, 249, 15, 0, 112, 255, 3, 247, 95, 0, 176, 255, 3, 243, 255, 121, 252, 255, 3, 144, 255, 255, 255, 255, 3, 0, 198, 223, 71, 255, 3 ]; + +/// 'v' (ASCII 118) +const Font_TTSatoshi_DemiBold_21_glyph_118: [u8; 71] = [ 11, 11, 11, 0, 11, 253, 14, 0, 0, 255, 11, 248, 63, 0, 64, 255, 6, 242, 143, 0, 160, 255, 1, 208, 223, 0, 224, 191, 0, 112, 255, 2, 244, 111, 0, 32, 255, 8, 249, 31, 0, 0, 253, 13, 254, 11, 0, 0, 247, 143, 255, 6, 0, 0, 242, 255, 255, 1, 0, 0, 208, 255, 191, 0, 0, 0, 112, 255, 111, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_TTSatoshi_DemiBold_21_glyph_119: [u8; 104] = [ 17, 11, 17, 0, 11, 252, 15, 0, 244, 223, 0, 80, 255, 5, 248, 63, 0, 248, 255, 1, 144, 255, 1, 244, 111, 0, 252, 255, 5, 208, 223, 0, 240, 175, 0, 255, 254, 9, 241, 159, 0, 192, 239, 64, 239, 245, 13, 245, 95, 0, 128, 255, 130, 175, 241, 31, 249, 31, 0, 64, 255, 198, 111, 208, 95, 253, 13, 0, 0, 255, 253, 47, 144, 223, 255, 9, 0, 0, 252, 255, 14, 80, 255, 255, 5, 0, 0, 248, 255, 10, 16, 255, 255, 1, 0, 0, 244, 255, 6, 0, 253, 223, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_TTSatoshi_DemiBold_21_glyph_120: [u8; 71] = [ 12, 11, 12, 0, 11, 160, 255, 4, 0, 249, 95, 16, 254, 30, 64, 255, 10, 0, 245, 175, 224, 239, 1, 0, 160, 255, 253, 95, 0, 0, 16, 254, 255, 10, 0, 0, 0, 252, 255, 7, 0, 0, 96, 255, 255, 31, 0, 0, 225, 223, 242, 175, 0, 0, 249, 79, 144, 255, 4, 48, 255, 11, 16, 254, 13, 192, 255, 2, 0, 246, 143 ]; + +/// 'y' (ASCII 121) +const Font_TTSatoshi_DemiBold_21_glyph_121: [u8; 95] = [ 12, 15, 11, 0, 11, 252, 14, 0, 0, 252, 14, 246, 79, 0, 32, 255, 9, 241, 175, 0, 112, 255, 3, 160, 255, 0, 208, 239, 0, 64, 255, 6, 242, 143, 0, 0, 254, 12, 248, 63, 0, 0, 248, 47, 253, 13, 0, 0, 242, 223, 255, 7, 0, 0, 192, 255, 255, 2, 0, 0, 96, 255, 207, 0, 0, 0, 16, 255, 127, 0, 0, 0, 0, 251, 31, 0, 0, 64, 118, 255, 12, 0, 0, 176, 255, 255, 5, 0, 0, 176, 255, 126, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_TTSatoshi_DemiBold_21_glyph_122: [u8; 60] = [ 10, 11, 10, 0, 11, 244, 255, 255, 255, 63, 244, 255, 255, 255, 63, 97, 102, 166, 255, 30, 0, 0, 225, 255, 4, 0, 0, 253, 111, 0, 0, 176, 255, 9, 0, 0, 248, 191, 0, 0, 80, 255, 13, 0, 0, 243, 255, 104, 102, 38, 245, 255, 255, 255, 95, 245, 255, 255, 255, 95 ]; + +/// '{' (ASCII 123) +const Font_TTSatoshi_DemiBold_21_glyph_123: [u8; 85] = [ 7, 20, 8, 1, 16, 0, 48, 101, 0, 0, 250, 255, 1, 64, 255, 255, 1, 112, 255, 6, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 193, 255, 0, 0, 255, 143, 0, 0, 255, 9, 0, 0, 253, 207, 0, 0, 160, 255, 1, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 112, 255, 2, 0, 96, 255, 107, 0, 32, 255, 255, 1, 0, 196, 255, 1 ]; + +/// '|' (ASCII 124) +const Font_TTSatoshi_DemiBold_21_glyph_124: [u8; 45] = [ 4, 20, 8, 2, 16, 131, 24, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47, 247, 47 ]; + +/// '}' (ASCII 125) +const Font_TTSatoshi_DemiBold_21_glyph_125: [u8; 85] = [ 7, 20, 8, 0, 16, 97, 37, 0, 0, 244, 255, 7, 0, 244, 255, 47, 0, 0, 248, 79, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 242, 175, 1, 0, 160, 255, 12, 0, 0, 250, 12, 0, 208, 255, 10, 0, 243, 143, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 0, 244, 95, 0, 97, 252, 79, 0, 244, 255, 14, 0, 244, 191, 3, 0 ]; + +/// '~' (ASCII 126) +const Font_TTSatoshi_DemiBold_21_glyph_126: [u8; 35] = [ 12, 5, 12, 0, 8, 0, 215, 158, 1, 144, 73, 112, 255, 255, 61, 246, 111, 224, 255, 251, 255, 255, 47, 241, 127, 64, 254, 255, 9, 48, 19, 0, 113, 72, 0 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_TTSatoshi_DemiBold_21_glyph_nonprintable: [u8; 95] = [ 11, 15, 11, 0, 15, 255, 93, 2, 98, 254, 255, 175, 0, 0, 0, 176, 255, 30, 0, 100, 2, 16, 255, 11, 80, 255, 63, 0, 252, 156, 217, 255, 127, 0, 250, 255, 255, 255, 46, 0, 252, 255, 255, 159, 0, 80, 255, 255, 255, 9, 0, 248, 255, 255, 255, 2, 176, 255, 255, 255, 255, 0, 244, 255, 255, 255, 255, 85, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 17, 245, 255, 255, 255, 239, 0, 244, 255, 255, 255, 239, 0, 244, 255, 255 ]; + +/// Array of references for 'TTSatoshi_DemiBold_21' normal ASCII glyphs +const Font_TTSatoshi_DemiBold_21: [&[u8]; 95] = [ + &Font_TTSatoshi_DemiBold_21_glyph_32, + &Font_TTSatoshi_DemiBold_21_glyph_33, + &Font_TTSatoshi_DemiBold_21_glyph_34, + &Font_TTSatoshi_DemiBold_21_glyph_35, + &Font_TTSatoshi_DemiBold_21_glyph_36, + &Font_TTSatoshi_DemiBold_21_glyph_37, + &Font_TTSatoshi_DemiBold_21_glyph_38, + &Font_TTSatoshi_DemiBold_21_glyph_39, + &Font_TTSatoshi_DemiBold_21_glyph_40, + &Font_TTSatoshi_DemiBold_21_glyph_41, + &Font_TTSatoshi_DemiBold_21_glyph_42, + &Font_TTSatoshi_DemiBold_21_glyph_43, + &Font_TTSatoshi_DemiBold_21_glyph_44, + &Font_TTSatoshi_DemiBold_21_glyph_45, + &Font_TTSatoshi_DemiBold_21_glyph_46, + &Font_TTSatoshi_DemiBold_21_glyph_47, + &Font_TTSatoshi_DemiBold_21_glyph_48, + &Font_TTSatoshi_DemiBold_21_glyph_49, + &Font_TTSatoshi_DemiBold_21_glyph_50, + &Font_TTSatoshi_DemiBold_21_glyph_51, + &Font_TTSatoshi_DemiBold_21_glyph_52, + &Font_TTSatoshi_DemiBold_21_glyph_53, + &Font_TTSatoshi_DemiBold_21_glyph_54, + &Font_TTSatoshi_DemiBold_21_glyph_55, + &Font_TTSatoshi_DemiBold_21_glyph_56, + &Font_TTSatoshi_DemiBold_21_glyph_57, + &Font_TTSatoshi_DemiBold_21_glyph_58, + &Font_TTSatoshi_DemiBold_21_glyph_59, + &Font_TTSatoshi_DemiBold_21_glyph_60, + &Font_TTSatoshi_DemiBold_21_glyph_61, + &Font_TTSatoshi_DemiBold_21_glyph_62, + &Font_TTSatoshi_DemiBold_21_glyph_63, + &Font_TTSatoshi_DemiBold_21_glyph_64, + &Font_TTSatoshi_DemiBold_21_glyph_65, + &Font_TTSatoshi_DemiBold_21_glyph_66, + &Font_TTSatoshi_DemiBold_21_glyph_67, + &Font_TTSatoshi_DemiBold_21_glyph_68, + &Font_TTSatoshi_DemiBold_21_glyph_69, + &Font_TTSatoshi_DemiBold_21_glyph_70, + &Font_TTSatoshi_DemiBold_21_glyph_71, + &Font_TTSatoshi_DemiBold_21_glyph_72, + &Font_TTSatoshi_DemiBold_21_glyph_73, + &Font_TTSatoshi_DemiBold_21_glyph_74, + &Font_TTSatoshi_DemiBold_21_glyph_75, + &Font_TTSatoshi_DemiBold_21_glyph_76, + &Font_TTSatoshi_DemiBold_21_glyph_77, + &Font_TTSatoshi_DemiBold_21_glyph_78, + &Font_TTSatoshi_DemiBold_21_glyph_79, + &Font_TTSatoshi_DemiBold_21_glyph_80, + &Font_TTSatoshi_DemiBold_21_glyph_81, + &Font_TTSatoshi_DemiBold_21_glyph_82, + &Font_TTSatoshi_DemiBold_21_glyph_83, + &Font_TTSatoshi_DemiBold_21_glyph_84, + &Font_TTSatoshi_DemiBold_21_glyph_85, + &Font_TTSatoshi_DemiBold_21_glyph_86, + &Font_TTSatoshi_DemiBold_21_glyph_87, + &Font_TTSatoshi_DemiBold_21_glyph_88, + &Font_TTSatoshi_DemiBold_21_glyph_89, + &Font_TTSatoshi_DemiBold_21_glyph_90, + &Font_TTSatoshi_DemiBold_21_glyph_91, + &Font_TTSatoshi_DemiBold_21_glyph_92, + &Font_TTSatoshi_DemiBold_21_glyph_93, + &Font_TTSatoshi_DemiBold_21_glyph_94, + &Font_TTSatoshi_DemiBold_21_glyph_95, + &Font_TTSatoshi_DemiBold_21_glyph_96, + &Font_TTSatoshi_DemiBold_21_glyph_97, + &Font_TTSatoshi_DemiBold_21_glyph_98, + &Font_TTSatoshi_DemiBold_21_glyph_99, + &Font_TTSatoshi_DemiBold_21_glyph_100, + &Font_TTSatoshi_DemiBold_21_glyph_101, + &Font_TTSatoshi_DemiBold_21_glyph_102, + &Font_TTSatoshi_DemiBold_21_glyph_103, + &Font_TTSatoshi_DemiBold_21_glyph_104, + &Font_TTSatoshi_DemiBold_21_glyph_105, + &Font_TTSatoshi_DemiBold_21_glyph_106, + &Font_TTSatoshi_DemiBold_21_glyph_107, + &Font_TTSatoshi_DemiBold_21_glyph_108, + &Font_TTSatoshi_DemiBold_21_glyph_109, + &Font_TTSatoshi_DemiBold_21_glyph_110, + &Font_TTSatoshi_DemiBold_21_glyph_111, + &Font_TTSatoshi_DemiBold_21_glyph_112, + &Font_TTSatoshi_DemiBold_21_glyph_113, + &Font_TTSatoshi_DemiBold_21_glyph_114, + &Font_TTSatoshi_DemiBold_21_glyph_115, + &Font_TTSatoshi_DemiBold_21_glyph_116, + &Font_TTSatoshi_DemiBold_21_glyph_117, + &Font_TTSatoshi_DemiBold_21_glyph_118, + &Font_TTSatoshi_DemiBold_21_glyph_119, + &Font_TTSatoshi_DemiBold_21_glyph_120, + &Font_TTSatoshi_DemiBold_21_glyph_121, + &Font_TTSatoshi_DemiBold_21_glyph_122, + &Font_TTSatoshi_DemiBold_21_glyph_123, + &Font_TTSatoshi_DemiBold_21_glyph_124, + &Font_TTSatoshi_DemiBold_21_glyph_125, + &Font_TTSatoshi_DemiBold_21_glyph_126, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_TTSatoshi_DemiBold_21_info: FontInfo = FontInfo { + height: 21, + max_height: 21, + baseline: 4, + glyph_data: &Font_TTSatoshi_DemiBold_21, + glyph_nonprintable: &Font_TTSatoshi_DemiBold_21_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs new file mode 100644 index 00000000000..e002425ff17 --- /dev/null +++ b/core/embed/rust/src/ui/layout_delizia/fonts/font_ttsatoshi_demibold_42.rs @@ -0,0 +1,204 @@ +//! This file is generated by core/tools/codegen/gen_font.py +#![cfg_attr(any(), rustfmt::skip)] +#![allow(non_upper_case_globals)] +// Each glyph: +// - first two bytes: width, height +// - next three bytes: advance, bearingX, bearingY +// - rest is packed 4-bit glyph data + +use crate::ui::display::font::FontInfo; + +// NOTE: glyphs of uppercase and special characters removed to save space as they are not used + +/// ' ' (ASCII 32) +const Font_TTSatoshi_DemiBold_42_glyph_32: [u8; 5] = [ 0, 0, 11, 0, 0 ]; + +/// 'a' (ASCII 97) +const Font_TTSatoshi_DemiBold_42_glyph_97: [u8; 235] = [ 20, 23, 23, 1, 22, 0, 0, 0, 147, 237, 239, 140, 3, 0, 0, 0, 0, 161, 255, 255, 255, 255, 191, 2, 0, 0, 48, 255, 255, 255, 255, 255, 255, 62, 0, 0, 225, 255, 255, 255, 255, 255, 255, 239, 1, 0, 250, 255, 255, 108, 100, 252, 255, 255, 9, 0, 255, 255, 159, 0, 0, 176, 255, 255, 15, 64, 255, 255, 15, 0, 0, 32, 255, 255, 95, 16, 34, 34, 2, 0, 0, 0, 253, 255, 127, 0, 0, 0, 0, 0, 0, 0, 251, 255, 159, 0, 0, 96, 218, 254, 255, 255, 255, 255, 159, 0, 96, 255, 255, 255, 255, 255, 255, 255, 159, 0, 249, 255, 255, 255, 255, 255, 255, 255, 159, 80, 255, 255, 255, 255, 255, 255, 255, 255, 159, 208, 255, 255, 143, 2, 0, 0, 250, 255, 159, 242, 255, 255, 5, 0, 0, 0, 252, 255, 159, 244, 255, 255, 0, 0, 0, 0, 255, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 159, 242, 255, 255, 6, 0, 0, 244, 255, 255, 159, 224, 255, 255, 159, 52, 166, 255, 255, 255, 159, 80, 255, 255, 255, 255, 255, 255, 255, 255, 159, 0, 250, 255, 255, 255, 255, 255, 251, 255, 159, 0, 112, 255, 255, 255, 255, 111, 240, 255, 159, 0, 0, 129, 236, 223, 123, 0, 0, 0, 0 ]; + +/// 'b' (ASCII 98) +const Font_TTSatoshi_DemiBold_42_glyph_98: [u8; 365] = [ 23, 30, 26, 2, 29, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 96, 218, 239, 124, 1, 0, 0, 0, 240, 255, 255, 82, 254, 255, 255, 255, 143, 0, 0, 0, 240, 255, 255, 249, 255, 255, 255, 255, 255, 11, 0, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 240, 255, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 240, 255, 255, 255, 94, 1, 48, 252, 255, 255, 31, 0, 240, 255, 255, 223, 1, 0, 0, 144, 255, 255, 127, 0, 240, 255, 255, 63, 0, 0, 0, 0, 254, 255, 207, 0, 240, 255, 255, 11, 0, 0, 0, 0, 246, 255, 255, 0, 240, 255, 255, 7, 0, 0, 0, 0, 242, 255, 255, 3, 240, 255, 255, 5, 0, 0, 0, 0, 240, 255, 255, 4, 240, 255, 255, 3, 0, 0, 0, 0, 224, 255, 255, 5, 240, 255, 255, 5, 0, 0, 0, 0, 240, 255, 255, 4, 240, 255, 255, 7, 0, 0, 0, 0, 242, 255, 255, 3, 240, 255, 255, 11, 0, 0, 0, 0, 246, 255, 255, 0, 240, 255, 255, 63, 0, 0, 0, 0, 254, 255, 207, 0, 240, 255, 255, 207, 1, 0, 0, 144, 255, 255, 127, 0, 240, 255, 255, 255, 94, 1, 48, 252, 255, 255, 31, 0, 240, 255, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 240, 255, 239, 250, 255, 255, 255, 255, 255, 28, 0, 0, 240, 255, 175, 112, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 113, 219, 239, 124, 1, 0, 0, 0 ]; + +/// 'c' (ASCII 99) +const Font_TTSatoshi_DemiBold_42_glyph_99: [u8; 258] = [ 22, 23, 24, 1, 22, 0, 0, 0, 48, 200, 254, 222, 73, 0, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 61, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 6, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 2, 0, 253, 255, 255, 94, 1, 48, 252, 255, 255, 10, 80, 255, 255, 207, 1, 0, 0, 160, 255, 255, 31, 176, 255, 255, 47, 0, 0, 0, 0, 254, 255, 111, 240, 255, 255, 8, 0, 0, 0, 0, 100, 102, 54, 242, 255, 255, 3, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 3, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 8, 0, 0, 0, 0, 150, 153, 89, 176, 255, 255, 31, 0, 0, 0, 16, 255, 255, 95, 80, 255, 255, 207, 1, 0, 0, 176, 255, 255, 15, 0, 253, 255, 255, 94, 1, 48, 252, 255, 255, 10, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 1, 0, 112, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 6, 0, 0, 0, 48, 252, 255, 255, 255, 255, 61, 0, 0, 0, 0, 0, 64, 200, 254, 222, 73, 0, 0, 0 ]; + +/// 'd' (ASCII 100) +const Font_TTSatoshi_DemiBold_42_glyph_100: [u8; 365] = [ 23, 30, 26, 1, 29, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 113, 236, 223, 123, 0, 242, 255, 255, 1, 0, 0, 128, 255, 255, 255, 255, 94, 242, 255, 255, 1, 0, 16, 252, 255, 255, 255, 255, 255, 249, 255, 255, 1, 0, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 248, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 16, 255, 255, 255, 60, 0, 81, 254, 255, 255, 255, 1, 112, 255, 255, 175, 0, 0, 0, 193, 255, 255, 255, 1, 192, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 251, 255, 255, 1, 243, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 244, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 244, 255, 255, 0, 0, 0, 0, 0, 243, 255, 255, 1, 243, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 242, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 250, 255, 255, 1, 176, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 96, 255, 255, 159, 0, 0, 0, 193, 255, 255, 255, 1, 0, 254, 255, 255, 60, 0, 64, 254, 255, 255, 255, 1, 0, 246, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 0, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 251, 255, 255, 255, 255, 255, 234, 255, 255, 1, 0, 0, 128, 255, 255, 255, 255, 127, 160, 255, 255, 1, 0, 0, 0, 113, 236, 223, 123, 1, 0, 0, 0, 0 ]; + +/// 'e' (ASCII 101) +const Font_TTSatoshi_DemiBold_42_glyph_101: [u8; 281] = [ 23, 23, 25, 1, 22, 0, 0, 0, 48, 200, 254, 206, 56, 0, 0, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 59, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 0, 244, 255, 255, 223, 121, 217, 255, 255, 255, 2, 0, 0, 253, 255, 255, 6, 0, 0, 246, 255, 255, 11, 0, 96, 255, 255, 95, 0, 0, 0, 96, 255, 255, 63, 0, 176, 255, 255, 10, 0, 0, 0, 0, 252, 255, 143, 0, 240, 255, 255, 4, 0, 0, 0, 0, 246, 255, 223, 0, 242, 255, 255, 137, 136, 136, 136, 136, 250, 255, 255, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 127, 0, 0, 0, 64, 255, 255, 79, 0, 0, 253, 255, 255, 8, 0, 0, 245, 255, 255, 13, 0, 0, 243, 255, 255, 223, 121, 200, 255, 255, 255, 4, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 0, 0, 246, 255, 255, 255, 255, 255, 255, 8, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 77, 0, 0, 0, 0, 0, 0, 48, 200, 254, 222, 73, 0, 0, 0, 0 ]; + +/// 'f' (ASCII 102) +const Font_TTSatoshi_DemiBold_42_glyph_102: [u8; 215] = [ 14, 30, 16, 1, 30, 0, 0, 0, 199, 254, 255, 127, 0, 0, 193, 255, 255, 255, 127, 0, 0, 249, 255, 255, 255, 127, 0, 16, 255, 255, 255, 255, 127, 0, 48, 255, 255, 255, 154, 73, 0, 96, 255, 255, 47, 0, 0, 0, 96, 255, 255, 14, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 96, 255, 255, 13, 0, 0 ]; + +/// 'g' (ASCII 103) +const Font_TTSatoshi_DemiBold_42_glyph_103: [u8; 346] = [ 22, 31, 25, 1, 22, 0, 0, 0, 131, 236, 223, 90, 0, 0, 0, 0, 0, 0, 161, 255, 255, 255, 255, 61, 240, 255, 175, 0, 48, 254, 255, 255, 255, 255, 255, 245, 255, 175, 0, 225, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 252, 255, 255, 255, 188, 254, 255, 255, 255, 175, 64, 255, 255, 255, 7, 0, 48, 254, 255, 255, 175, 176, 255, 255, 79, 0, 0, 0, 224, 255, 255, 175, 240, 255, 255, 10, 0, 0, 0, 64, 255, 255, 175, 242, 255, 255, 3, 0, 0, 0, 0, 254, 255, 175, 244, 255, 255, 1, 0, 0, 0, 0, 251, 255, 175, 244, 255, 255, 0, 0, 0, 0, 0, 250, 255, 175, 243, 255, 255, 2, 0, 0, 0, 0, 252, 255, 175, 241, 255, 255, 5, 0, 0, 0, 0, 255, 255, 175, 208, 255, 255, 13, 0, 0, 0, 128, 255, 255, 175, 144, 255, 255, 159, 0, 0, 0, 244, 255, 255, 175, 16, 255, 255, 255, 93, 18, 148, 255, 255, 255, 175, 0, 248, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 176, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 250, 255, 255, 255, 255, 223, 251, 255, 175, 0, 0, 80, 253, 255, 255, 255, 25, 249, 255, 175, 0, 0, 0, 32, 135, 121, 21, 0, 249, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 249, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 159, 144, 238, 238, 13, 0, 0, 0, 16, 255, 255, 127, 96, 255, 255, 111, 0, 0, 0, 160, 255, 255, 47, 16, 255, 255, 255, 7, 0, 16, 250, 255, 255, 13, 0, 248, 255, 255, 239, 172, 252, 255, 255, 255, 5, 0, 208, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 16, 253, 255, 255, 255, 255, 255, 255, 10, 0, 0, 0, 128, 255, 255, 255, 255, 255, 110, 0, 0, 0, 0, 0, 97, 219, 254, 222, 89, 0, 0, 0 ]; + +/// 'h' (ASCII 104) +const Font_TTSatoshi_DemiBold_42_glyph_104: [u8; 324] = [ 21, 29, 25, 2, 29, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 129, 235, 239, 91, 0, 0, 0, 240, 255, 255, 115, 255, 255, 255, 255, 61, 0, 0, 240, 255, 255, 252, 255, 255, 255, 255, 255, 4, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 30, 0, 240, 255, 255, 255, 255, 254, 255, 255, 255, 175, 0, 240, 255, 255, 255, 23, 0, 178, 255, 255, 255, 1, 240, 255, 255, 79, 0, 0, 0, 250, 255, 255, 5, 240, 255, 255, 10, 0, 0, 0, 241, 255, 255, 8, 240, 255, 255, 5, 0, 0, 0, 192, 255, 255, 9, 240, 255, 255, 3, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10, 240, 255, 255, 2, 0, 0, 0, 144, 255, 255, 10 ]; + +/// 'i' (ASCII 105) +const Font_TTSatoshi_DemiBold_42_glyph_105: [u8; 125] = [ 7, 30, 11, 2, 30, 247, 255, 255, 2, 247, 255, 255, 2, 247, 255, 255, 2, 247, 255, 255, 2, 247, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0, 244, 255, 255, 0 ]; + +/// 'j' (ASCII 106) +const Font_TTSatoshi_DemiBold_42_glyph_106: [u8; 233] = [ 12, 38, 14, 0, 30, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 0, 0, 112, 255, 255, 47, 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, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 64, 255, 255, 15, 0, 0, 128, 255, 255, 15, 209, 221, 254, 255, 255, 13, 241, 255, 255, 255, 255, 10, 241, 255, 255, 255, 255, 3, 241, 255, 255, 255, 127, 0, 241, 255, 255, 173, 3, 0 ]; + +/// 'k' (ASCII 107) +const Font_TTSatoshi_DemiBold_42_glyph_107: [u8; 324] = [ 21, 29, 22, 2, 29, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 2, 0, 0, 64, 255, 255, 207, 0, 240, 255, 255, 2, 0, 0, 226, 255, 255, 29, 0, 240, 255, 255, 2, 0, 16, 253, 255, 255, 2, 0, 240, 255, 255, 2, 0, 192, 255, 255, 79, 0, 0, 240, 255, 255, 2, 0, 249, 255, 255, 6, 0, 0, 240, 255, 255, 2, 112, 255, 255, 143, 0, 0, 0, 240, 255, 255, 2, 245, 255, 255, 10, 0, 0, 0, 240, 255, 255, 50, 255, 255, 207, 0, 0, 0, 0, 240, 255, 255, 228, 255, 255, 30, 0, 0, 0, 0, 240, 255, 255, 254, 255, 255, 2, 0, 0, 0, 0, 240, 255, 255, 255, 255, 175, 0, 0, 0, 0, 0, 240, 255, 255, 250, 255, 255, 7, 0, 0, 0, 0, 240, 255, 255, 163, 255, 255, 95, 0, 0, 0, 0, 240, 255, 255, 2, 252, 255, 255, 3, 0, 0, 0, 240, 255, 255, 2, 209, 255, 255, 46, 0, 0, 0, 240, 255, 255, 2, 32, 254, 255, 223, 1, 0, 0, 240, 255, 255, 2, 0, 244, 255, 255, 12, 0, 0, 240, 255, 255, 2, 0, 96, 255, 255, 175, 0, 0, 240, 255, 255, 2, 0, 0, 248, 255, 255, 8, 0, 240, 255, 255, 2, 0, 0, 176, 255, 255, 111, 0, 240, 255, 255, 2, 0, 0, 0, 252, 255, 255, 4 ]; + +/// 'l' (ASCII 108) +const Font_TTSatoshi_DemiBold_42_glyph_108: [u8; 121] = [ 7, 29, 11, 2, 29, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2, 240, 255, 255, 2 ]; + +/// 'm' (ASCII 109) +const Font_TTSatoshi_DemiBold_42_glyph_109: [u8; 357] = [ 32, 22, 36, 2, 22, 0, 0, 0, 0, 181, 253, 156, 3, 0, 0, 166, 253, 190, 6, 0, 0, 244, 255, 175, 176, 255, 255, 255, 175, 0, 212, 255, 255, 255, 223, 3, 0, 244, 255, 255, 252, 255, 255, 255, 255, 91, 255, 255, 255, 255, 255, 63, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 7, 244, 255, 255, 207, 3, 48, 253, 255, 255, 255, 26, 0, 229, 255, 255, 15, 244, 255, 255, 13, 0, 0, 242, 255, 255, 175, 0, 0, 80, 255, 255, 95, 244, 255, 255, 4, 0, 0, 176, 255, 255, 31, 0, 0, 0, 254, 255, 127, 244, 255, 255, 1, 0, 0, 128, 255, 255, 14, 0, 0, 0, 251, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159, 244, 255, 255, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 250, 255, 159 ]; + +/// 'n' (ASCII 110) +const Font_TTSatoshi_DemiBold_42_glyph_110: [u8; 247] = [ 21, 22, 25, 2, 22, 0, 0, 0, 0, 146, 236, 223, 73, 0, 0, 0, 244, 255, 175, 144, 255, 255, 255, 255, 28, 0, 0, 244, 255, 255, 252, 255, 255, 255, 255, 239, 2, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 244, 255, 255, 255, 255, 254, 255, 255, 255, 111, 0, 244, 255, 255, 239, 5, 0, 212, 255, 255, 223, 0, 244, 255, 255, 30, 0, 0, 0, 253, 255, 255, 2, 244, 255, 255, 6, 0, 0, 0, 243, 255, 255, 5, 244, 255, 255, 2, 0, 0, 0, 240, 255, 255, 6, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7 ]; + +/// 'o' (ASCII 111) +const Font_TTSatoshi_DemiBold_42_glyph_111: [u8; 281] = [ 23, 23, 25, 1, 22, 0, 0, 0, 48, 200, 254, 222, 73, 0, 0, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 93, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 9, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 0, 253, 255, 255, 94, 1, 64, 252, 255, 255, 31, 0, 80, 255, 255, 207, 1, 0, 0, 160, 255, 255, 143, 0, 176, 255, 255, 47, 0, 0, 0, 0, 254, 255, 239, 0, 240, 255, 255, 8, 0, 0, 0, 0, 245, 255, 255, 2, 242, 255, 255, 3, 0, 0, 0, 0, 241, 255, 255, 5, 243, 255, 255, 1, 0, 0, 0, 0, 224, 255, 255, 6, 244, 255, 255, 0, 0, 0, 0, 0, 192, 255, 255, 7, 243, 255, 255, 1, 0, 0, 0, 0, 224, 255, 255, 6, 242, 255, 255, 3, 0, 0, 0, 0, 240, 255, 255, 5, 240, 255, 255, 8, 0, 0, 0, 0, 245, 255, 255, 2, 176, 255, 255, 31, 0, 0, 0, 0, 253, 255, 239, 0, 80, 255, 255, 207, 1, 0, 0, 144, 255, 255, 143, 0, 0, 253, 255, 255, 94, 1, 48, 252, 255, 255, 31, 0, 0, 244, 255, 255, 255, 239, 255, 255, 255, 255, 7, 0, 0, 112, 255, 255, 255, 255, 255, 255, 255, 175, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 9, 0, 0, 0, 0, 48, 252, 255, 255, 255, 255, 93, 0, 0, 0, 0, 0, 0, 64, 200, 254, 222, 73, 0, 0, 0, 0 ]; + +/// 'p' (ASCII 112) +const Font_TTSatoshi_DemiBold_42_glyph_112: [u8; 365] = [ 23, 30, 26, 2, 22, 0, 0, 0, 0, 129, 219, 223, 107, 0, 0, 0, 0, 244, 255, 175, 112, 255, 255, 255, 255, 110, 0, 0, 0, 244, 255, 239, 249, 255, 255, 255, 255, 255, 9, 0, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 244, 255, 255, 255, 255, 239, 255, 255, 255, 255, 4, 0, 244, 255, 255, 255, 77, 0, 65, 254, 255, 255, 12, 0, 244, 255, 255, 191, 0, 0, 0, 193, 255, 255, 79, 0, 244, 255, 255, 31, 0, 0, 0, 32, 255, 255, 143, 0, 244, 255, 255, 8, 0, 0, 0, 0, 250, 255, 223, 0, 244, 255, 255, 4, 0, 0, 0, 0, 246, 255, 255, 0, 244, 255, 255, 2, 0, 0, 0, 0, 244, 255, 255, 0, 244, 255, 255, 0, 0, 0, 0, 0, 242, 255, 255, 1, 244, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 0, 244, 255, 255, 3, 0, 0, 0, 0, 246, 255, 255, 0, 244, 255, 255, 6, 0, 0, 0, 0, 249, 255, 223, 0, 244, 255, 255, 14, 0, 0, 0, 32, 255, 255, 159, 0, 244, 255, 255, 159, 0, 0, 0, 176, 255, 255, 79, 0, 244, 255, 255, 255, 60, 0, 64, 253, 255, 255, 12, 0, 244, 255, 255, 255, 255, 239, 255, 255, 255, 255, 4, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 244, 255, 255, 252, 255, 255, 255, 255, 255, 9, 0, 0, 244, 255, 255, 160, 255, 255, 255, 255, 110, 0, 0, 0, 244, 255, 255, 0, 146, 236, 239, 107, 1, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; + +/// 'q' (ASCII 113) +const Font_TTSatoshi_DemiBold_42_glyph_113: [u8; 365] = [ 23, 30, 26, 1, 22, 0, 0, 0, 113, 236, 223, 106, 0, 0, 0, 0, 0, 0, 0, 128, 255, 255, 255, 255, 78, 208, 255, 255, 1, 0, 0, 251, 255, 255, 255, 255, 255, 243, 255, 255, 1, 0, 176, 255, 255, 255, 255, 255, 255, 254, 255, 255, 1, 0, 247, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 0, 255, 255, 255, 60, 0, 81, 254, 255, 255, 255, 1, 112, 255, 255, 175, 0, 0, 0, 193, 255, 255, 255, 1, 192, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 251, 255, 255, 1, 242, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 243, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 244, 255, 255, 0, 0, 0, 0, 0, 243, 255, 255, 1, 243, 255, 255, 1, 0, 0, 0, 0, 244, 255, 255, 1, 242, 255, 255, 3, 0, 0, 0, 0, 247, 255, 255, 1, 240, 255, 255, 7, 0, 0, 0, 0, 250, 255, 255, 1, 192, 255, 255, 14, 0, 0, 0, 48, 255, 255, 255, 1, 112, 255, 255, 159, 0, 0, 0, 193, 255, 255, 255, 1, 0, 255, 255, 255, 60, 0, 64, 254, 255, 255, 255, 1, 0, 247, 255, 255, 255, 239, 255, 255, 255, 255, 255, 1, 0, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 251, 255, 255, 255, 255, 255, 252, 255, 255, 1, 0, 0, 128, 255, 255, 255, 255, 143, 242, 255, 255, 1, 0, 0, 0, 113, 236, 223, 139, 1, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1 ]; + +/// 'r' (ASCII 114) +const Font_TTSatoshi_DemiBold_42_glyph_114: [u8; 152] = [ 14, 21, 16, 2, 21, 244, 255, 63, 112, 252, 255, 191, 244, 255, 143, 252, 255, 255, 191, 244, 255, 255, 255, 255, 255, 191, 244, 255, 255, 255, 255, 255, 191, 244, 255, 255, 255, 255, 255, 191, 244, 255, 255, 175, 19, 0, 0, 244, 255, 255, 10, 0, 0, 0, 244, 255, 255, 2, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0 ]; + +/// 's' (ASCII 115) +const Font_TTSatoshi_DemiBold_42_glyph_115: [u8; 235] = [ 19, 23, 21, 1, 22, 0, 0, 113, 219, 255, 206, 40, 0, 0, 0, 0, 144, 255, 255, 255, 255, 255, 26, 0, 0, 16, 253, 255, 255, 255, 255, 255, 239, 2, 0, 176, 255, 255, 255, 255, 255, 255, 255, 29, 0, 244, 255, 255, 143, 69, 198, 255, 255, 159, 0, 249, 255, 239, 2, 0, 0, 247, 255, 255, 0, 251, 255, 159, 0, 0, 0, 224, 255, 255, 3, 250, 255, 191, 0, 0, 0, 0, 17, 17, 0, 247, 255, 255, 75, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 239, 155, 21, 0, 0, 0, 112, 255, 255, 255, 255, 255, 255, 76, 0, 0, 0, 247, 255, 255, 255, 255, 255, 255, 10, 0, 0, 16, 216, 255, 255, 255, 255, 255, 143, 0, 0, 0, 0, 81, 168, 253, 255, 255, 255, 2, 0, 0, 0, 0, 0, 16, 248, 255, 255, 6, 0, 0, 0, 0, 0, 0, 176, 255, 255, 9, 251, 255, 127, 0, 0, 0, 144, 255, 255, 11, 247, 255, 239, 2, 0, 0, 208, 255, 255, 9, 241, 255, 255, 159, 53, 116, 253, 255, 255, 5, 112, 255, 255, 255, 255, 255, 255, 255, 223, 0, 0, 250, 255, 255, 255, 255, 255, 255, 46, 0, 0, 96, 254, 255, 255, 255, 255, 175, 1, 0, 0, 0, 81, 218, 254, 223, 123, 2, 0, 0 ]; + +/// 't' (ASCII 116) +const Font_TTSatoshi_DemiBold_42_glyph_116: [u8; 201] = [ 14, 28, 16, 1, 28, 0, 0, 17, 17, 0, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 127, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 144, 255, 255, 13, 0, 0, 0, 128, 255, 255, 207, 153, 73, 0, 80, 255, 255, 255, 255, 127, 0, 16, 254, 255, 255, 255, 127, 0, 0, 244, 255, 255, 255, 127, 0, 0, 16, 201, 255, 255, 127 ]; + +/// 'u' (ASCII 117) +const Font_TTSatoshi_DemiBold_42_glyph_117: [u8; 247] = [ 21, 22, 25, 2, 21, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 192, 255, 255, 7, 244, 255, 255, 0, 0, 0, 0, 208, 255, 255, 7, 243, 255, 255, 2, 0, 0, 0, 240, 255, 255, 7, 242, 255, 255, 6, 0, 0, 0, 244, 255, 255, 7, 240, 255, 255, 30, 0, 0, 0, 253, 255, 255, 7, 160, 255, 255, 239, 5, 0, 211, 255, 255, 255, 7, 48, 255, 255, 255, 255, 253, 255, 255, 255, 255, 7, 0, 250, 255, 255, 255, 255, 255, 255, 255, 255, 7, 0, 208, 255, 255, 255, 255, 255, 222, 255, 255, 7, 0, 0, 250, 255, 255, 255, 191, 113, 255, 255, 7, 0, 0, 48, 217, 255, 172, 3, 0, 0, 0, 0 ]; + +/// 'v' (ASCII 118) +const Font_TTSatoshi_DemiBold_42_glyph_118: [u8; 236] = [ 22, 21, 22, 0, 21, 253, 255, 159, 0, 0, 0, 0, 0, 252, 255, 175, 247, 255, 255, 0, 0, 0, 0, 32, 255, 255, 95, 242, 255, 255, 5, 0, 0, 0, 112, 255, 255, 15, 192, 255, 255, 10, 0, 0, 0, 208, 255, 255, 9, 96, 255, 255, 15, 0, 0, 0, 243, 255, 255, 4, 16, 255, 255, 95, 0, 0, 0, 248, 255, 239, 0, 0, 251, 255, 191, 0, 0, 0, 254, 255, 143, 0, 0, 246, 255, 255, 1, 0, 48, 255, 255, 63, 0, 0, 240, 255, 255, 6, 0, 144, 255, 255, 13, 0, 0, 160, 255, 255, 12, 0, 224, 255, 255, 8, 0, 0, 80, 255, 255, 31, 0, 244, 255, 255, 2, 0, 0, 0, 255, 255, 127, 0, 250, 255, 207, 0, 0, 0, 0, 250, 255, 207, 0, 255, 255, 127, 0, 0, 0, 0, 244, 255, 255, 82, 255, 255, 31, 0, 0, 0, 0, 224, 255, 255, 203, 255, 255, 12, 0, 0, 0, 0, 144, 255, 255, 255, 255, 255, 6, 0, 0, 0, 0, 48, 255, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 254, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 95, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 10, 0, 0, 0 ]; + +/// 'w' (ASCII 119) +const Font_TTSatoshi_DemiBold_42_glyph_119: [u8; 362] = [ 33, 21, 33, 0, 21, 250, 255, 207, 0, 0, 0, 112, 255, 255, 175, 0, 0, 0, 160, 255, 255, 13, 246, 255, 255, 0, 0, 0, 192, 255, 255, 239, 0, 0, 0, 224, 255, 255, 9, 242, 255, 255, 4, 0, 0, 240, 255, 255, 255, 2, 0, 0, 242, 255, 255, 5, 224, 255, 255, 9, 0, 0, 244, 255, 255, 255, 7, 0, 0, 246, 255, 255, 1, 160, 255, 255, 13, 0, 0, 248, 255, 255, 255, 11, 0, 0, 250, 255, 207, 0, 80, 255, 255, 31, 0, 0, 252, 255, 255, 255, 15, 0, 0, 254, 255, 143, 0, 16, 255, 255, 95, 0, 16, 255, 255, 255, 255, 63, 0, 48, 255, 255, 79, 0, 0, 253, 255, 159, 0, 80, 255, 255, 249, 255, 127, 0, 112, 255, 255, 15, 0, 0, 249, 255, 239, 0, 144, 255, 239, 192, 255, 191, 0, 176, 255, 255, 12, 0, 0, 245, 255, 255, 2, 208, 255, 175, 112, 255, 255, 0, 240, 255, 255, 7, 0, 0, 241, 255, 255, 6, 241, 255, 111, 48, 255, 255, 4, 243, 255, 255, 3, 0, 0, 192, 255, 255, 10, 245, 255, 31, 0, 255, 255, 8, 248, 255, 255, 0, 0, 0, 128, 255, 255, 14, 249, 255, 13, 0, 250, 255, 12, 252, 255, 191, 0, 0, 0, 64, 255, 255, 127, 254, 255, 9, 0, 246, 255, 95, 255, 255, 127, 0, 0, 0, 0, 255, 255, 255, 255, 255, 5, 0, 242, 255, 255, 255, 255, 63, 0, 0, 0, 0, 252, 255, 255, 255, 255, 1, 0, 224, 255, 255, 255, 255, 14, 0, 0, 0, 0, 248, 255, 255, 255, 207, 0, 0, 144, 255, 255, 255, 255, 10, 0, 0, 0, 0, 244, 255, 255, 255, 143, 0, 0, 80, 255, 255, 255, 255, 6, 0, 0, 0, 0, 240, 255, 255, 255, 79, 0, 0, 16, 255, 255, 255, 255, 2, 0, 0, 0, 0, 176, 255, 255, 255, 15, 0, 0, 0, 253, 255, 255, 239, 0, 0, 0, 0, 0, 112, 255, 255, 255, 11, 0, 0, 0, 248, 255, 255, 175, 0, 0, 0 ]; + +/// 'x' (ASCII 120) +const Font_TTSatoshi_DemiBold_42_glyph_120: [u8; 257] = [ 23, 21, 22, 0, 21, 160, 255, 255, 63, 0, 0, 0, 0, 252, 255, 255, 2, 16, 254, 255, 223, 0, 0, 0, 112, 255, 255, 111, 0, 0, 244, 255, 255, 9, 0, 0, 243, 255, 255, 11, 0, 0, 160, 255, 255, 79, 0, 0, 253, 255, 255, 1, 0, 0, 16, 254, 255, 239, 0, 128, 255, 255, 95, 0, 0, 0, 0, 244, 255, 255, 10, 243, 255, 255, 11, 0, 0, 0, 0, 144, 255, 255, 159, 253, 255, 239, 1, 0, 0, 0, 0, 0, 254, 255, 255, 255, 255, 95, 0, 0, 0, 0, 0, 0, 244, 255, 255, 255, 255, 10, 0, 0, 0, 0, 0, 0, 144, 255, 255, 255, 239, 1, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 249, 255, 255, 255, 255, 30, 0, 0, 0, 0, 0, 64, 255, 255, 255, 255, 255, 175, 0, 0, 0, 0, 0, 208, 255, 255, 14, 248, 255, 255, 5, 0, 0, 0, 0, 249, 255, 255, 4, 208, 255, 255, 30, 0, 0, 0, 48, 255, 255, 175, 0, 48, 255, 255, 175, 0, 0, 0, 208, 255, 255, 30, 0, 0, 249, 255, 255, 4, 0, 0, 248, 255, 255, 4, 0, 0, 208, 255, 255, 30, 0, 48, 255, 255, 175, 0, 0, 0, 48, 255, 255, 175, 0, 208, 255, 255, 30, 0, 0, 0, 0, 249, 255, 255, 4 ]; + +/// 'y' (ASCII 121) +const Font_TTSatoshi_DemiBold_42_glyph_121: [u8; 353] = [ 23, 29, 22, 0, 21, 252, 255, 175, 0, 0, 0, 0, 0, 246, 255, 255, 1, 246, 255, 255, 1, 0, 0, 0, 0, 251, 255, 191, 0, 240, 255, 255, 6, 0, 0, 0, 16, 255, 255, 95, 0, 160, 255, 255, 13, 0, 0, 0, 112, 255, 255, 15, 0, 48, 255, 255, 63, 0, 0, 0, 208, 255, 255, 9, 0, 0, 253, 255, 159, 0, 0, 0, 242, 255, 255, 3, 0, 0, 247, 255, 255, 0, 0, 0, 248, 255, 239, 0, 0, 0, 241, 255, 255, 6, 0, 0, 254, 255, 143, 0, 0, 0, 160, 255, 255, 12, 0, 64, 255, 255, 47, 0, 0, 0, 64, 255, 255, 47, 0, 144, 255, 255, 12, 0, 0, 0, 0, 253, 255, 143, 0, 240, 255, 255, 6, 0, 0, 0, 0, 247, 255, 239, 0, 245, 255, 255, 1, 0, 0, 0, 0, 241, 255, 255, 5, 251, 255, 191, 0, 0, 0, 0, 0, 176, 255, 255, 27, 255, 255, 95, 0, 0, 0, 0, 0, 64, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 255, 9, 0, 0, 0, 0, 0, 0, 248, 255, 255, 255, 255, 3, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 16, 253, 255, 191, 0, 0, 0, 0, 0, 0, 214, 221, 253, 255, 255, 95, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 14, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 6, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 175, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 189, 4, 0, 0, 0, 0, 0, 0 ]; + +/// 'z' (ASCII 122) +const Font_TTSatoshi_DemiBold_42_glyph_122: [u8; 194] = [ 18, 21, 20, 1, 21, 248, 255, 255, 255, 255, 255, 255, 255, 127, 248, 255, 255, 255, 255, 255, 255, 255, 127, 248, 255, 255, 255, 255, 255, 255, 255, 127, 248, 255, 255, 255, 255, 255, 255, 255, 127, 215, 221, 221, 221, 221, 254, 255, 255, 111, 0, 0, 0, 0, 0, 252, 255, 255, 10, 0, 0, 0, 0, 176, 255, 255, 191, 0, 0, 0, 0, 0, 250, 255, 255, 12, 0, 0, 0, 0, 144, 255, 255, 223, 1, 0, 0, 0, 0, 247, 255, 255, 46, 0, 0, 0, 0, 96, 255, 255, 255, 2, 0, 0, 0, 0, 245, 255, 255, 63, 0, 0, 0, 0, 48, 255, 255, 255, 5, 0, 0, 0, 0, 242, 255, 255, 111, 0, 0, 0, 0, 32, 254, 255, 255, 7, 0, 0, 0, 0, 209, 255, 255, 159, 0, 0, 0, 0, 0, 250, 255, 255, 223, 221, 221, 221, 221, 157, 251, 255, 255, 255, 255, 255, 255, 255, 175, 251, 255, 255, 255, 255, 255, 255, 255, 175, 251, 255, 255, 255, 255, 255, 255, 255, 175, 251, 255, 255, 255, 255, 255, 255, 255, 175 ]; + +/// Nonprintable glyph (inverse colors of '?') +const Font_TTSatoshi_DemiBold_42_glyph_nonprintable: [u8; 305] = [ 20, 30, 22, 1, 30, 255, 255, 223, 55, 1, 32, 132, 253, 255, 255, 255, 223, 4, 0, 0, 0, 0, 80, 254, 255, 255, 11, 0, 0, 0, 0, 0, 0, 193, 255, 207, 0, 0, 0, 0, 0, 0, 0, 16, 253, 63, 0, 0, 0, 0, 0, 0, 0, 0, 244, 11, 0, 0, 80, 235, 157, 1, 0, 0, 192, 6, 0, 0, 247, 255, 255, 63, 0, 0, 112, 2, 0, 0, 255, 255, 255, 207, 0, 0, 80, 35, 34, 82, 255, 255, 255, 255, 0, 0, 48, 255, 255, 255, 255, 255, 255, 255, 0, 0, 80, 255, 255, 255, 255, 255, 255, 175, 0, 0, 112, 255, 255, 255, 255, 255, 255, 10, 0, 0, 192, 255, 255, 255, 255, 255, 77, 0, 0, 0, 243, 255, 255, 255, 255, 143, 0, 0, 0, 16, 253, 255, 255, 255, 255, 9, 0, 0, 0, 211, 255, 255, 255, 255, 223, 0, 0, 0, 161, 255, 255, 255, 255, 255, 127, 0, 0, 48, 254, 255, 255, 255, 255, 255, 47, 0, 0, 241, 255, 255, 255, 255, 255, 255, 31, 0, 0, 248, 255, 255, 255, 255, 255, 255, 15, 0, 0, 251, 255, 255, 255, 255, 255, 255, 15, 0, 0, 252, 255, 255, 255, 255, 255, 255, 175, 170, 170, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 44, 34, 34, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255, 255, 255, 255, 12, 0, 0, 249, 255, 255, 255 ]; + +/// Array of references for 'TTSatoshi_DemiBold_42' normal ASCII glyphs +const Font_TTSatoshi_DemiBold_42: [&[u8]; 95] = [ + &Font_TTSatoshi_DemiBold_42_glyph_32, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_97, + &Font_TTSatoshi_DemiBold_42_glyph_98, + &Font_TTSatoshi_DemiBold_42_glyph_99, + &Font_TTSatoshi_DemiBold_42_glyph_100, + &Font_TTSatoshi_DemiBold_42_glyph_101, + &Font_TTSatoshi_DemiBold_42_glyph_102, + &Font_TTSatoshi_DemiBold_42_glyph_103, + &Font_TTSatoshi_DemiBold_42_glyph_104, + &Font_TTSatoshi_DemiBold_42_glyph_105, + &Font_TTSatoshi_DemiBold_42_glyph_106, + &Font_TTSatoshi_DemiBold_42_glyph_107, + &Font_TTSatoshi_DemiBold_42_glyph_108, + &Font_TTSatoshi_DemiBold_42_glyph_109, + &Font_TTSatoshi_DemiBold_42_glyph_110, + &Font_TTSatoshi_DemiBold_42_glyph_111, + &Font_TTSatoshi_DemiBold_42_glyph_112, + &Font_TTSatoshi_DemiBold_42_glyph_113, + &Font_TTSatoshi_DemiBold_42_glyph_114, + &Font_TTSatoshi_DemiBold_42_glyph_115, + &Font_TTSatoshi_DemiBold_42_glyph_116, + &Font_TTSatoshi_DemiBold_42_glyph_117, + &Font_TTSatoshi_DemiBold_42_glyph_118, + &Font_TTSatoshi_DemiBold_42_glyph_119, + &Font_TTSatoshi_DemiBold_42_glyph_120, + &Font_TTSatoshi_DemiBold_42_glyph_121, + &Font_TTSatoshi_DemiBold_42_glyph_122, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_97, + &Font_TTSatoshi_DemiBold_42_glyph_98, + &Font_TTSatoshi_DemiBold_42_glyph_99, + &Font_TTSatoshi_DemiBold_42_glyph_100, + &Font_TTSatoshi_DemiBold_42_glyph_101, + &Font_TTSatoshi_DemiBold_42_glyph_102, + &Font_TTSatoshi_DemiBold_42_glyph_103, + &Font_TTSatoshi_DemiBold_42_glyph_104, + &Font_TTSatoshi_DemiBold_42_glyph_105, + &Font_TTSatoshi_DemiBold_42_glyph_106, + &Font_TTSatoshi_DemiBold_42_glyph_107, + &Font_TTSatoshi_DemiBold_42_glyph_108, + &Font_TTSatoshi_DemiBold_42_glyph_109, + &Font_TTSatoshi_DemiBold_42_glyph_110, + &Font_TTSatoshi_DemiBold_42_glyph_111, + &Font_TTSatoshi_DemiBold_42_glyph_112, + &Font_TTSatoshi_DemiBold_42_glyph_113, + &Font_TTSatoshi_DemiBold_42_glyph_114, + &Font_TTSatoshi_DemiBold_42_glyph_115, + &Font_TTSatoshi_DemiBold_42_glyph_116, + &Font_TTSatoshi_DemiBold_42_glyph_117, + &Font_TTSatoshi_DemiBold_42_glyph_118, + &Font_TTSatoshi_DemiBold_42_glyph_119, + &Font_TTSatoshi_DemiBold_42_glyph_120, + &Font_TTSatoshi_DemiBold_42_glyph_121, + &Font_TTSatoshi_DemiBold_42_glyph_122, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, + &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, +]; + +/// FontInfo struct for normal ASCII usage +pub const Font_TTSatoshi_DemiBold_42_info: FontInfo = FontInfo { + height: 42, + max_height: 44, + baseline: 9, + glyph_data: &Font_TTSatoshi_DemiBold_42, + glyph_nonprintable: &Font_TTSatoshi_DemiBold_42_glyph_nonprintable, +}; + diff --git a/core/embed/rust/src/ui/layout_delizia/fonts/mod.rs b/core/embed/rust/src/ui/layout_delizia/fonts/mod.rs new file mode 100644 index 00000000000..300397ac4f0 --- /dev/null +++ b/core/embed/rust/src/ui/layout_delizia/fonts/mod.rs @@ -0,0 +1,37 @@ +mod font_robotomono_medium_21; +mod font_ttsatoshi_demibold_18; +mod font_ttsatoshi_demibold_21; +mod font_ttsatoshi_demibold_42; + +use font_robotomono_medium_21::Font_RobotoMono_Medium_21_info; +use font_ttsatoshi_demibold_18::Font_TTSatoshi_DemiBold_18_info; +use font_ttsatoshi_demibold_21::Font_TTSatoshi_DemiBold_21_info; +use font_ttsatoshi_demibold_42::Font_TTSatoshi_DemiBold_42_info; + +pub const FONT_NORMAL: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_21_info; +pub const FONT_BOLD: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_21_info; +pub const FONT_DEMIBOLD: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_21_info; +pub const FONT_MONO: crate::ui::display::Font = &Font_RobotoMono_Medium_21_info; +pub const FONT_BIG: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_42_info; +pub const FONT_NORMAL_UPPER: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_21_info; +pub const FONT_BOLD_UPPER: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_21_info; +pub const FONT_SUB: crate::ui::display::Font = &Font_TTSatoshi_DemiBold_18_info; + +/// The function converts individual layout fonts to their respective IDs. The +/// IDs are defined in `.json` (e.g. `cs.json`) and are used for +/// translation blobs. +pub fn font_to_font_id(font: &crate::ui::display::font::FontInfo) -> u16 { + if core::ptr::eq(font, FONT_NORMAL) { + 1 + } else if core::ptr::eq(font, FONT_BOLD) { + 2 + } else if core::ptr::eq(font, FONT_MONO) { + 3 + } else if core::ptr::eq(font, FONT_DEMIBOLD) { + 5 + } else if core::ptr::eq(font, FONT_SUB) { + 8 + } else { + 1 + } +} diff --git a/core/embed/rust/src/ui/layout_delizia/mod.rs b/core/embed/rust/src/ui/layout_delizia/mod.rs index 7541222d27a..b9f84b31057 100644 --- a/core/embed/rust/src/ui/layout_delizia/mod.rs +++ b/core/embed/rust/src/ui/layout_delizia/mod.rs @@ -12,6 +12,7 @@ pub mod component_msg_obj; pub mod cshape; #[cfg(feature = "micropython")] pub mod flow; +pub mod fonts; pub mod screens; #[cfg(feature = "micropython")] pub mod ui_firmware; diff --git a/core/embed/rust/src/ui/layout_delizia/theme/bootloader.rs b/core/embed/rust/src/ui/layout_delizia/theme/bootloader.rs index 6f15404bce4..9cbb08f995b 100644 --- a/core/embed/rust/src/ui/layout_delizia/theme/bootloader.rs +++ b/core/embed/rust/src/ui/layout_delizia/theme/bootloader.rs @@ -1,7 +1,7 @@ use crate::ui::{ component::{text::TextStyle, LineBreaking::BreakWordsNoHyphen}, constant::{HEIGHT, WIDTH}, - display::{Color, Font}, + display::{font, Color}, geometry::{Offset, Point, Rect}, util::include_res, }; @@ -73,21 +73,21 @@ pub const CHECK40: &[u8] = include_res!("layout_delizia/res/check40.toif"); pub fn button_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_BG, button_color: WHITE, icon_color: BLD_BG, background_color: BLD_BG, }, active: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_BG, button_color: BLD_INSTALL_BTN_COLOR_ACTIVE, icon_color: BLD_BG, background_color: BLD_BG, }, disabled: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: FG, button_color: GREY_DARK, icon_color: BLD_BG, @@ -99,21 +99,21 @@ pub fn button_confirm() -> ButtonStyleSheet { pub fn button_wipe_cancel() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: WHITE, button_color: BLD_WIPE_CANCEL_BTN_COLOR, icon_color: WHITE, background_color: BLD_WIPE_COLOR, }, active: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: WHITE, button_color: BLD_WIPE_CANCEL_BTN_COLOR_ACTIVE, icon_color: WHITE, background_color: BLD_WIPE_COLOR, }, disabled: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: GREY_LIGHT, button_color: GREY_DARK, icon_color: GREY_LIGHT, @@ -125,21 +125,21 @@ pub fn button_wipe_cancel() -> ButtonStyleSheet { pub fn button_wipe_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_WIPE_COLOR, button_color: BLD_WIPE_BTN_COLOR, icon_color: BLD_WIPE_COLOR, background_color: BLD_WIPE_COLOR, }, active: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_WIPE_COLOR, button_color: BLD_WIPE_BTN_COLOR_ACTIVE, icon_color: BLD_WIPE_COLOR, background_color: BLD_WIPE_COLOR, }, disabled: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: FG, button_color: GREY_DARK, icon_color: FG, @@ -151,21 +151,21 @@ pub fn button_wipe_confirm() -> ButtonStyleSheet { pub fn button_bld_menu() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_FG, button_color: BLD_BG, icon_color: BLD_FG, background_color: BLD_BG, }, active: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_FG, button_color: BLD_BG, icon_color: BLD_FG, background_color: BLD_BG, }, disabled: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: GREY_LIGHT, button_color: BLD_BG, icon_color: GREY_LIGHT, @@ -177,21 +177,21 @@ pub fn button_bld_menu() -> ButtonStyleSheet { pub fn button_bld() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_FG, button_color: BLD_BTN_COLOR, icon_color: BLD_FG, background_color: BLD_BG, }, active: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: BLD_FG, button_color: BLD_BTN_COLOR_ACTIVE, icon_color: BLD_FG, background_color: BLD_BG, }, disabled: &ButtonStyle { - font: Font::BOLD, + font: font::FONT_BOLD, text_color: GREY_LIGHT, button_color: BLD_BTN_COLOR, icon_color: GREY_LIGHT, @@ -202,7 +202,7 @@ pub fn button_bld() -> ButtonStyleSheet { pub const fn text_title(bg: Color) -> TextStyle { TextStyle::new( - Font::BOLD, + font::FONT_BOLD, BLD_TITLE_COLOR, bg, BLD_TITLE_COLOR, @@ -210,27 +210,29 @@ pub const fn text_title(bg: Color) -> TextStyle { ) } -pub const TEXT_NORMAL: TextStyle = TextStyle::new(Font::NORMAL, BLD_FG, BLD_BG, BLD_FG, BLD_FG); +pub const TEXT_NORMAL: TextStyle = + TextStyle::new(font::FONT_NORMAL, BLD_FG, BLD_BG, BLD_FG, BLD_FG); pub const TEXT_WARNING: TextStyle = TextStyle::new( - Font::BOLD, + font::FONT_BOLD, BLD_WARN_COLOR, BLD_BG, BLD_WARN_COLOR, BLD_WARN_COLOR, ); pub const fn text_fingerprint(bg: Color) -> TextStyle { - TextStyle::new(Font::NORMAL, BLD_FG, bg, BLD_FG, BLD_FG).with_line_breaking(BreakWordsNoHyphen) + TextStyle::new(font::FONT_NORMAL, BLD_FG, bg, BLD_FG, BLD_FG) + .with_line_breaking(BreakWordsNoHyphen) } -pub const TEXT_BOLD: TextStyle = TextStyle::new(Font::BOLD, BLD_FG, BLD_BG, BLD_FG, BLD_FG); +pub const TEXT_BOLD: TextStyle = TextStyle::new(font::FONT_BOLD, BLD_FG, BLD_BG, BLD_FG, BLD_FG); pub const TEXT_WIPE_BOLD: TextStyle = TextStyle::new( - Font::BOLD, + font::FONT_BOLD, BLD_WIPE_TEXT_COLOR, BLD_WIPE_COLOR, BLD_WIPE_TEXT_COLOR, BLD_WIPE_TEXT_COLOR, ); pub const TEXT_WIPE_NORMAL: TextStyle = TextStyle::new( - Font::NORMAL, + font::FONT_NORMAL, BLD_WIPE_TEXT_COLOR, BLD_WIPE_COLOR, BLD_WIPE_TEXT_COLOR, diff --git a/core/embed/rust/src/ui/layout_delizia/theme/mod.rs b/core/embed/rust/src/ui/layout_delizia/theme/mod.rs index 22a58244fb7..c4f9c34dfd8 100644 --- a/core/embed/rust/src/ui/layout_delizia/theme/mod.rs +++ b/core/embed/rust/src/ui/layout_delizia/theme/mod.rs @@ -9,7 +9,10 @@ use crate::{ text::{layout::Chunks, LineBreaking, PageBreaking, TextStyle}, FixedHeightBar, }, - display::{Color, Font}, + display::{ + font::{FONT_BIG, FONT_BOLD, FONT_DEMIBOLD, FONT_MONO, FONT_NORMAL, FONT_SUB}, + Color, + }, geometry::{Insets, Offset}, util::include_icon, }, @@ -17,8 +20,6 @@ use crate::{ use super::component::{ButtonStyle, ButtonStyleSheet, LoaderStyle, LoaderStyleSheet, ResultStyle}; -use num_traits::FromPrimitive; - pub const ERASE_HOLD_DURATION: Duration = Duration::from_millis(1500); // Color palette. @@ -139,15 +140,15 @@ pub const fn label_default() -> TextStyle { } pub const fn label_keyboard() -> TextStyle { - TextStyle::new(Font::DEMIBOLD, GREY_EXTRA_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(FONT_DEMIBOLD, GREY_EXTRA_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_keyboard_prompt() -> TextStyle { - TextStyle::new(Font::DEMIBOLD, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(FONT_DEMIBOLD, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_keyboard_warning() -> TextStyle { - TextStyle::new(Font::DEMIBOLD, ORANGE_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(FONT_DEMIBOLD, ORANGE_LIGHT, BG, GREY_LIGHT, GREY_LIGHT) } pub const fn label_keyboard_minor() -> TextStyle { @@ -176,7 +177,7 @@ pub const fn label_progress() -> TextStyle { pub const fn label_title_main() -> TextStyle { TextStyle::new( - Font::NORMAL, + FONT_NORMAL, GREY_EXTRA_LIGHT, GREY_DARK, GREY_LIGHT, @@ -185,41 +186,35 @@ pub const fn label_title_main() -> TextStyle { } pub const fn label_title_danger() -> TextStyle { - TextStyle::new( - Font::NORMAL, - ORANGE_LIGHT, - GREY_DARK, - GREY_LIGHT, - GREY_LIGHT, - ) + TextStyle::new(FONT_NORMAL, ORANGE_LIGHT, GREY_DARK, GREY_LIGHT, GREY_LIGHT) } pub const fn label_title_sub() -> TextStyle { - TextStyle::new(Font::SUB, GREY, GREY_DARK, GREY_LIGHT, GREY_LIGHT) + TextStyle::new(FONT_SUB, GREY, GREY_DARK, GREY_LIGHT, GREY_LIGHT) } pub const fn label_coinjoin_progress() -> TextStyle { - TextStyle::new(Font::BOLD, FG, ORANGE_DIMMED, FG, FG) + TextStyle::new(FONT_BOLD, FG, ORANGE_DIMMED, FG, FG) } pub const fn button_default() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: GREY, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_EXTRA_LIGHT, button_color: BG, icon_color: GREY_EXTRA_LIGHT, background_color: BG, }, disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: GREY_LIGHT, @@ -231,21 +226,21 @@ pub const fn button_default() -> ButtonStyleSheet { pub const fn button_warning_high() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: BG, icon_color: ORANGE_DIMMED, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: BG, icon_color: ORANGE_DIMMED, background_color: BG, }, disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: BG, icon_color: ORANGE_DIMMED, @@ -257,21 +252,21 @@ pub const fn button_warning_high() -> ButtonStyleSheet { pub const fn button_warning_low() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: GREEN_LIME, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: GREEN_LIME, background_color: BG, }, disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: GREEN_LIME, @@ -284,14 +279,14 @@ pub const fn button_warning_low() -> ButtonStyleSheet { pub const fn button_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_LIME, button_color: GREEN_DARK, icon_color: GREEN_LIME, background_color: GREEN_DARK, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_LIME, button_color: GREEN_LIGHT, icon_color: GREEN_DARK, @@ -299,7 +294,7 @@ pub const fn button_confirm() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: BG, icon_color: BG, @@ -311,14 +306,14 @@ pub const fn button_confirm() -> ButtonStyleSheet { pub const fn button_cancel() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: ORANGE_DARK, icon_color: ORANGE_LIGHT, background_color: GREEN_DARK, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_DARK, button_color: ORANGE_LIGHT, icon_color: ORANGE_DARK, @@ -326,7 +321,7 @@ pub const fn button_cancel() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: BG, icon_color: BG, @@ -338,21 +333,21 @@ pub const fn button_cancel() -> ButtonStyleSheet { pub const fn button_danger() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: BG, icon_color: ORANGE_DIMMED, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: BG, icon_color: ORANGE_LIGHT, background_color: BG, }, disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: ORANGE_LIGHT, button_color: BG, icon_color: ORANGE_LIGHT, @@ -365,21 +360,21 @@ pub const fn button_danger() -> ButtonStyleSheet { pub const fn button_keyboard() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::NORMAL, + font: FONT_NORMAL, text_color: GREY_LIGHT, button_color: GREY_EXTRA_DARK, icon_color: GREY_LIGHT, background_color: BG, }, active: &ButtonStyle { - font: Font::NORMAL, + font: FONT_NORMAL, text_color: BG, button_color: GREY_LIGHT, icon_color: BG, background_color: BG, }, disabled: &ButtonStyle { - font: Font::NORMAL, + font: FONT_NORMAL, text_color: GREY_DARK, button_color: BG, // so there is no "button" itself, just the text icon_color: GREY_LIGHT, @@ -391,14 +386,14 @@ pub const fn button_keyboard() -> ButtonStyleSheet { pub const fn button_keyboard_cancel() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: BG, // TODO: gradient icon_color: ORANGE_LIGHT, background_color: BG, }, active: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: ORANGE_LIGHT, icon_color: BG, @@ -406,7 +401,7 @@ pub const fn button_keyboard_cancel() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: BG, icon_color: GREEN_LIGHT, @@ -418,14 +413,14 @@ pub const fn button_keyboard_cancel() -> ButtonStyleSheet { pub const fn button_keyboard_erase() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: BG, // TODO: gradient icon_color: GREY, background_color: BG, }, active: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: GREY_LIGHT, icon_color: BG, @@ -433,7 +428,7 @@ pub const fn button_keyboard_erase() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: BG, icon_color: GREEN_LIGHT, @@ -447,21 +442,21 @@ pub const fn button_keyboard_erase() -> ButtonStyleSheet { pub const fn button_pin_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: GREEN_DARK, icon_color: GREEN_LIME, background_color: BG, }, active: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: FG, button_color: GREEN_LIGHT, icon_color: GREEN_DARK, background_color: BG, }, disabled: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: GREY_DARK, button_color: BG, icon_color: GREY_DARK, @@ -473,14 +468,14 @@ pub const fn button_pin_confirm() -> ButtonStyleSheet { pub const fn button_passphrase_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_LIME, button_color: GREEN_LIGHT, icon_color: GREEN_LIME, background_color: GREEN_DARK, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_LIME, button_color: GREEN_LIGHT, icon_color: GREEN_DARK, @@ -488,7 +483,7 @@ pub const fn button_passphrase_confirm() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: BG, icon_color: BG, @@ -500,14 +495,14 @@ pub const fn button_passphrase_confirm() -> ButtonStyleSheet { pub const fn button_passphrase_confirm_empty() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY, button_color: GREY_EXTRA_DARK, icon_color: GREY, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: GREY_LIGHT, icon_color: BG, @@ -515,7 +510,7 @@ pub const fn button_passphrase_confirm_empty() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: BG, icon_color: BG, @@ -527,14 +522,14 @@ pub const fn button_passphrase_confirm_empty() -> ButtonStyleSheet { pub const fn button_passphrase_next() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, // TODO: gradient icon_color: GREY_LIGHT, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, // TODO: gradient icon_color: GREY_LIGHT, @@ -542,7 +537,7 @@ pub const fn button_passphrase_next() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: GREY_LIGHT, @@ -554,14 +549,14 @@ pub const fn button_passphrase_next() -> ButtonStyleSheet { pub const fn button_recovery_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_LIME, button_color: GREEN_LIGHT, icon_color: GREEN_LIME, background_color: GREEN_DARK, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_DARK, button_color: GREEN_LIGHT, icon_color: GREEN_DARK, @@ -569,7 +564,7 @@ pub const fn button_recovery_confirm() -> ButtonStyleSheet { }, // used in SLIP-39 recovery for "*" disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: BG, icon_color: BG, @@ -581,14 +576,14 @@ pub const fn button_recovery_confirm() -> ButtonStyleSheet { pub const fn button_suggestion_confirm() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, // difference button_color: GREEN_LIGHT, icon_color: GREEN_LIME, background_color: GREEN_DARK, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREEN_LIME, button_color: GREEN_LIGHT, icon_color: GREEN_DARK, @@ -596,7 +591,7 @@ pub const fn button_suggestion_confirm() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: BG, icon_color: BG, @@ -608,14 +603,14 @@ pub const fn button_suggestion_confirm() -> ButtonStyleSheet { pub const fn button_recovery_autocomplete() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_LIGHT, button_color: GREY_EXTRA_DARK, icon_color: GREY_LIGHT, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: FG, icon_color: BG, @@ -623,7 +618,7 @@ pub const fn button_recovery_autocomplete() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: BG, icon_color: BG, @@ -635,14 +630,14 @@ pub const fn button_recovery_autocomplete() -> ButtonStyleSheet { pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY, button_color: BG, icon_color: BG, background_color: BG, }, active: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: BG, button_color: FG, icon_color: BG, @@ -650,7 +645,7 @@ pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { }, // not used disabled: &ButtonStyle { - font: Font::MONO, + font: FONT_MONO, text_color: BG, button_color: BG, icon_color: BG, @@ -662,21 +657,21 @@ pub const fn button_suggestion_autocomplete() -> ButtonStyleSheet { pub const fn button_counter() -> ButtonStyleSheet { ButtonStyleSheet { normal: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY, button_color: GREY_EXTRA_DARK, icon_color: GREY, background_color: BG, }, active: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: BG, button_color: GREY_LIGHT, icon_color: BG, background_color: BG, }, disabled: &ButtonStyle { - font: Font::DEMIBOLD, + font: FONT_DEMIBOLD, text_color: GREY_DARK, button_color: BG, icon_color: GREY_DARK, @@ -711,17 +706,16 @@ pub const fn loader_lock_icon() -> LoaderStyleSheet { } } -pub const TEXT_SUPER: TextStyle = TextStyle::new(Font::BIG, GREY_EXTRA_LIGHT, BG, GREY, GREY); +pub const TEXT_SUPER: TextStyle = TextStyle::new(FONT_BIG, GREY_EXTRA_LIGHT, BG, GREY, GREY); pub const TEXT_MAIN_GREY_EXTRA_LIGHT: TextStyle = - TextStyle::new(Font::NORMAL, GREY_EXTRA_LIGHT, BG, GREY, GREY); -pub const TEXT_MAIN_GREY_LIGHT: TextStyle = - TextStyle::new(Font::NORMAL, GREY_LIGHT, BG, GREY, GREY); -pub const TEXT_SUB_GREY_LIGHT: TextStyle = TextStyle::new(Font::SUB, GREY_LIGHT, BG, GREY, GREY); -pub const TEXT_SUB_GREY: TextStyle = TextStyle::new(Font::SUB, GREY, BG, GREY, GREY); + TextStyle::new(FONT_NORMAL, GREY_EXTRA_LIGHT, BG, GREY, GREY); +pub const TEXT_MAIN_GREY_LIGHT: TextStyle = TextStyle::new(FONT_NORMAL, GREY_LIGHT, BG, GREY, GREY); +pub const TEXT_SUB_GREY_LIGHT: TextStyle = TextStyle::new(FONT_SUB, GREY_LIGHT, BG, GREY, GREY); +pub const TEXT_SUB_GREY: TextStyle = TextStyle::new(FONT_SUB, GREY, BG, GREY, GREY); pub const TEXT_SUB_GREEN_LIME: TextStyle = - TextStyle::new(Font::SUB, GREEN_LIME, BG, GREEN_LIME, GREEN_LIME); -pub const TEXT_WARNING: TextStyle = TextStyle::new(Font::NORMAL, ORANGE_LIGHT, BG, GREY, GREY); -pub const TEXT_MONO: TextStyle = TextStyle::new(Font::MONO, GREY_EXTRA_LIGHT, BG, GREY, GREY) + TextStyle::new(FONT_SUB, GREEN_LIME, BG, GREEN_LIME, GREEN_LIME); +pub const TEXT_WARNING: TextStyle = TextStyle::new(FONT_NORMAL, ORANGE_LIGHT, BG, GREY, GREY); +pub const TEXT_MONO: TextStyle = TextStyle::new(FONT_MONO, GREY_EXTRA_LIGHT, BG, GREY, GREY) .with_line_breaking(LineBreaking::BreakWordsNoHyphen) .with_page_breaking(PageBreaking::CutAndInsertEllipsisBoth) .with_ellipsis_icon(ICON_PAGE_NEXT, 0) @@ -744,9 +738,9 @@ pub const TEXT_MONO_ADDRESS_CHUNKS_SMALLER_X_OFFSET: TextStyle = TEXT_MONO .with_ellipsis_icon(ICON_PAGE_NEXT, -12); // TODO: remove TextStyles below when ui-t3t1 done -pub const TEXT_NORMAL: TextStyle = TextStyle::new(Font::NORMAL, FG, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_DEMIBOLD: TextStyle = TextStyle::new(Font::DEMIBOLD, FG, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_BOLD: TextStyle = TextStyle::new(Font::BOLD, FG, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_NORMAL: TextStyle = TextStyle::new(FONT_NORMAL, FG, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_DEMIBOLD: TextStyle = TextStyle::new(FONT_DEMIBOLD, FG, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_BOLD: TextStyle = TextStyle::new(FONT_BOLD, FG, BG, GREY_LIGHT, GREY_LIGHT); /// Decide the text style of chunkified text according to its length. pub fn get_chunkified_text_style(character_length: usize) -> &'static TextStyle { @@ -760,23 +754,12 @@ pub fn get_chunkified_text_style(character_length: usize) -> &'static TextStyle } } -/// Convert Python-side numeric id to a `TextStyle`. -pub fn textstyle_number(num: i32) -> &'static TextStyle { - let font = Font::from_i32(-num); - match font { - Some(Font::DEMIBOLD) => &TEXT_DEMIBOLD, - Some(Font::BOLD) => &TEXT_BOLD, - Some(Font::MONO) => &TEXT_MONO, - _ => &TEXT_NORMAL, - } -} - pub const TEXT_NORMAL_GREY_EXTRA_LIGHT: TextStyle = - TextStyle::new(Font::NORMAL, GREY_EXTRA_LIGHT, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_CHECKLIST_DEFAULT: TextStyle = TextStyle::new(Font::SUB, GREY, BG, GREY, GREY); + TextStyle::new(FONT_NORMAL, GREY_EXTRA_LIGHT, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_CHECKLIST_DEFAULT: TextStyle = TextStyle::new(FONT_SUB, GREY, BG, GREY, GREY); pub const TEXT_CHECKLIST_SELECTED: TextStyle = - TextStyle::new(Font::NORMAL, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT); -pub const TEXT_CHECKLIST_DONE: TextStyle = TextStyle::new(Font::SUB, GREY, BG, GREY, GREY); + TextStyle::new(FONT_NORMAL, GREY_LIGHT, BG, GREY_LIGHT, GREY_LIGHT); +pub const TEXT_CHECKLIST_DONE: TextStyle = TextStyle::new(FONT_SUB, GREY, BG, GREY, GREY); /// Spacing between components (e.g. header and main content) and offsets from /// the side of the screen. Generally applied everywhere except the top side of diff --git a/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs b/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs index 4f05852da27..aa4af5f4979 100644 --- a/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs +++ b/core/embed/rust/src/ui/layout_delizia/ui_firmware.rs @@ -447,8 +447,13 @@ impl FirmwareUI for UIDelizia { let mut paragraphs = ParagraphVecShort::new(); for para in IterBuf::new().try_iterate(items)? { - let [font, text]: [Obj; 2] = util::iter_into_array(para)?; - let style: &TextStyle = theme::textstyle_number(font.try_into()?); + let [text, is_data]: [Obj; 2] = util::iter_into_array(para)?; + let is_data = is_data.try_into()?; + let style: &TextStyle = if is_data { + &theme::TEXT_MONO + } else { + &theme::TEXT_NORMAL + }; let text: TString = text.try_into()?; paragraphs.add(Paragraph::new(style, text)); if paragraphs.is_full() { diff --git a/core/embed/rust/src/ui/mod.rs b/core/embed/rust/src/ui/mod.rs index 4fe5b62b775..188a131fc3c 100644 --- a/core/embed/rust/src/ui/mod.rs +++ b/core/embed/rust/src/ui/mod.rs @@ -44,3 +44,16 @@ pub type ModelUI = crate::ui::layout_caesar::UICaesar; #[cfg(feature = "layout_bolt")] pub type ModelUI = crate::ui::layout_bolt::UIBolt; + +// Re-export fonts for each layout +#[cfg(all( + feature = "layout_bolt", + not(feature = "layout_delizia"), + not(feature = "layout_caesar") +))] +#[cfg(feature = "layout_bolt")] +pub use layout_bolt::fonts; + #[cfg(all(feature = "layout_caesar", not(feature = "layout_delizia")))] +pub use layout_caesar::fonts; +#[cfg(feature = "layout_delizia")] +pub use layout_delizia::fonts; diff --git a/core/embed/rust/src/ui/shape/text.rs b/core/embed/rust/src/ui/shape/text.rs index 7707920f025..82c9f830851 100644 --- a/core/embed/rust/src/ui/shape/text.rs +++ b/core/embed/rust/src/ui/shape/text.rs @@ -1,5 +1,5 @@ use crate::ui::{ - display::{Color, Font}, + display::{font::FONT_NORMAL, Color, Font}, geometry::{Alignment, Offset, Point, Rect}, }; @@ -34,7 +34,7 @@ impl<'a> Text<'a> { text, color: Color::white(), alpha: 255, - font: Font::NORMAL, + font: FONT_NORMAL, align: Alignment::Start, bounds: Rect::zero(), } diff --git a/core/embed/upymod/modtrezorui/modtrezorui-display.h b/core/embed/upymod/modtrezorui/modtrezorui-display.h index 637d49b5d90..14fe61f27c5 100644 --- a/core/embed/upymod/modtrezorui/modtrezorui-display.h +++ b/core/embed/upymod/modtrezorui/modtrezorui-display.h @@ -29,10 +29,6 @@ /// """ /// WIDTH: int # display width in pixels /// HEIGHT: int # display height in pixels -/// FONT_MONO: int # id of monospace font -/// FONT_NORMAL: int # id of normal-width font -/// FONT_DEMIBOLD: int # id of demibold font -/// FONT_BOLD_UPPER: int # id of bold-width-uppercased font typedef struct _mp_obj_Display_t { mp_obj_base_t base; @@ -144,14 +140,6 @@ STATIC const mp_rom_map_elem_t mod_trezorui_Display_locals_dict_table[] = { MP_ROM_PTR(&mod_trezorui_Display_clear_save_obj)}, {MP_ROM_QSTR(MP_QSTR_WIDTH), MP_ROM_INT(DISPLAY_RESX)}, {MP_ROM_QSTR(MP_QSTR_HEIGHT), MP_ROM_INT(DISPLAY_RESY)}, - {MP_ROM_QSTR(MP_QSTR_FONT_NORMAL), MP_ROM_INT(FONT_NORMAL)}, - {MP_ROM_QSTR(MP_QSTR_FONT_DEMIBOLD), MP_ROM_INT(FONT_DEMIBOLD)}, - {MP_ROM_QSTR(MP_QSTR_FONT_MONO), MP_ROM_INT(FONT_MONO)}, -#ifdef FONT_BOLD_UPPER - {MP_ROM_QSTR(MP_QSTR_FONT_BOLD_UPPER), MP_ROM_INT(FONT_BOLD_UPPER)}, -#else - {MP_ROM_QSTR(MP_QSTR_FONT_BOLD_UPPER), MP_ROM_INT(FONT_BOLD)}, -#endif }; STATIC MP_DEFINE_CONST_DICT(mod_trezorui_Display_locals_dict, mod_trezorui_Display_locals_dict_table); diff --git a/core/mocks/generated/trezorui.pyi b/core/mocks/generated/trezorui.pyi index aa4527178c7..b8941a36785 100644 --- a/core/mocks/generated/trezorui.pyi +++ b/core/mocks/generated/trezorui.pyi @@ -8,10 +8,6 @@ class Display: """ WIDTH: int # display width in pixels HEIGHT: int # display height in pixels - FONT_MONO: int # id of monospace font - FONT_NORMAL: int # id of normal-width font - FONT_DEMIBOLD: int # id of demibold font - FONT_BOLD_UPPER: int # id of bold-width-uppercased font def __init__(self) -> None: """ diff --git a/core/mocks/generated/trezorui_api.pyi b/core/mocks/generated/trezorui_api.pyi index a111edd163e..e10e8ae2f60 100644 --- a/core/mocks/generated/trezorui_api.pyi +++ b/core/mocks/generated/trezorui_api.pyi @@ -241,7 +241,7 @@ def confirm_more( title: str, button: str, button_style_confirm: bool = False, - items: Iterable[tuple[int, str | bytes]], + items: Iterable[tuple[str | bytes, bool]], ) -> LayoutObj[UiResult]: """Confirm long content with the possibility to go back from any page. Meant to be used with confirm_with_info on UI Bolt and Caesar.""" @@ -286,7 +286,7 @@ def confirm_with_info( button: str, info_button: str, verb_cancel: str | None = None, - items: Iterable[tuple[int, str | bytes]], + items: Iterable[tuple[str | bytes, bool]], ) -> LayoutObj[UiResult]: """Confirm given items but with third button. Always single page without scrolling. In Delizia, the button is placed in diff --git a/core/site_scons/ui/common.py b/core/site_scons/ui/common.py index 96241239782..8cd38587779 100644 --- a/core/site_scons/ui/common.py +++ b/core/site_scons/ui/common.py @@ -7,6 +7,11 @@ def add_font( defines: list[str | tuple[str, str]], sources: list[str], ) -> None: + """Add font to the build. + + This way is currently only used in `bootloader_ci` and `prodtest`. + The main `bootloader` and `firmware` both use font implementation in Rust. + """ if font is not None: font_filename = font.replace("_upper", "").lower() defines += [ diff --git a/core/site_scons/ui/ui_bolt.py b/core/site_scons/ui/ui_bolt.py index 0974a979c18..be726c0337a 100644 --- a/core/site_scons/ui/ui_bolt.py +++ b/core/site_scons/ui/ui_bolt.py @@ -13,41 +13,17 @@ def init_ui( rust_features.append("layout_bolt") - font_normal = None - font_demibold = None - font_bold = None - font_mono = None - font_big = None - font_normal_upper = None - font_bold_upper = None - font_sub = None - if stage == "bootloader": - font_normal = "Font_TTHoves_Regular_21" - font_demibold = "Font_TTHoves_Regular_21" - font_bold = "Font_TTHoves_Bold_17_upper" - font_mono = "Font_TTHoves_Regular_21" - font_bold_upper = "Font_TTHoves_Bold_17_upper" + pass + if stage == "bootloader_ci": + add_font("NORMAL", "Font_TTHoves_Regular_21", defines, sources) + add_font("BOLD", "Font_TTHoves_Bold_17_upper", defines, sources) if stage == "prodtest": - font_bold = "Font_Roboto_Bold_20" + add_font("BOLD", "Font_Roboto_Bold_20", defines, sources) if stage == "firmware": - font_normal = "Font_TTHoves_Regular_21" - font_demibold = "Font_TTHoves_DemiBold_21" - font_mono = "Font_RobotoMono_Medium_20" - font_bold_upper = "Font_TTHoves_Bold_17_upper" rust_features.append("ui_blurring") rust_features.append("ui_jpeg_decoder") - # fonts - add_font("NORMAL", font_normal, defines, sources) - add_font("BOLD", font_bold, defines, sources) - add_font("DEMIBOLD", font_demibold, defines, sources) - add_font("MONO", font_mono, defines, sources) - add_font("BIG", font_big, defines, sources) - add_font("NORMAL_UPPER", font_normal_upper, defines, sources) - add_font("BOLD_UPPER", font_bold_upper, defines, sources) - add_font("SUB", font_sub, defines, sources) - def get_ui_layout() -> str: return "UI_LAYOUT_BOLT" diff --git a/core/site_scons/ui/ui_caesar.py b/core/site_scons/ui/ui_caesar.py index 961b8d35de1..913893ba78e 100644 --- a/core/site_scons/ui/ui_caesar.py +++ b/core/site_scons/ui/ui_caesar.py @@ -13,44 +13,14 @@ def init_ui( rust_features.append("layout_caesar") - font_normal = None - font_demibold = None - font_bold = None - font_mono = None - font_big = None - font_normal_upper = None - font_bold_upper = None - font_sub = None - if stage == "bootloader": - font_normal = "Font_PixelOperator_Regular_8" - font_demibold = "Font_PixelOperator_Regular_8" - font_bold = "Font_PixelOperator_Bold_8" - font_mono = "Font_PixelOperator_Regular_8" - font_big = "Font_PixelOperator_Regular_8" - font_normal_upper = "Font_PixelOperator_Regular_8_upper" if "bootloader_empty_lock" in config: rust_features.append("ui_empty_lock") - if stage == "prodtest": - font_bold = "Font_PixelOperator_Bold_8" + if stage in ("bootloader_ci", "prodtest"): + add_font("NORMAL", "Font_PixelOperator_Regular_8", defines, sources) + add_font("BOLD", "Font_PixelOperator_Bold_8", defines, sources) if stage == "firmware": - font_normal = "Font_PixelOperator_Regular_8" - font_demibold = "Font_Unifont_Bold_16" - font_bold = "Font_PixelOperator_Bold_8" - font_mono = "Font_PixelOperatorMono_Regular_8" - font_big = "Font_Unifont_Regular_16" - font_normal_upper = "Font_PixelOperator_Regular_8_upper" - font_bold_upper = "Font_PixelOperator_Bold_8_upper" - - # fonts - add_font("NORMAL", font_normal, defines, sources) - add_font("BOLD", font_bold, defines, sources) - add_font("DEMIBOLD", font_demibold, defines, sources) - add_font("MONO", font_mono, defines, sources) - add_font("BIG", font_big, defines, sources) - add_font("NORMAL_UPPER", font_normal_upper, defines, sources) - add_font("BOLD_UPPER", font_bold_upper, defines, sources) - add_font("SUB", font_sub, defines, sources) + pass def get_ui_layout() -> str: diff --git a/core/site_scons/ui/ui_delizia.py b/core/site_scons/ui/ui_delizia.py index 6a6e53cbb97..128ccd882f2 100644 --- a/core/site_scons/ui/ui_delizia.py +++ b/core/site_scons/ui/ui_delizia.py @@ -13,47 +13,19 @@ def init_ui( rust_features.append("layout_delizia") - font_normal = None - font_demibold = None - font_bold = None - font_mono = None - font_big = None - font_normal_upper = None - font_bold_upper = None - font_sub = None - if stage == "bootloader": - font_normal = "Font_TTSatoshi_DemiBold_21" - font_demibold = "Font_TTSatoshi_DemiBold_21" - font_bold = "Font_TTHoves_Bold_17_upper" - font_mono = "Font_TTSatoshi_DemiBold_21" - font_bold_upper = "Font_TTHoves_Bold_17_upper" + pass + if stage == "bootloader_ci": + add_font("NORMAL", "Font_TTSatoshi_DemiBold_21", defines, sources) + add_font("BOLD", "Font_TTHoves_Bold_17_upper", defines, sources) if stage == "prodtest": - font_normal = "Font_TTSatoshi_DemiBold_21" - font_bold = "Font_TTSatoshi_DemiBold_21" - font_mono = "Font_RobotoMono_Medium_21" + add_font("BOLD", "Font_TTSatoshi_DemiBold_21", defines, sources) if stage == "firmware": - font_normal = "Font_TTSatoshi_DemiBold_21" - font_demibold = "Font_TTSatoshi_DemiBold_21" - font_bold = "Font_TTSatoshi_DemiBold_21" - font_mono = "Font_RobotoMono_Medium_21" - font_big = "Font_TTSatoshi_DemiBold_42" - font_sub = "Font_TTSatoshi_DemiBold_18" rust_features.append("ui_blurring") rust_features.append("ui_jpeg_decoder") rust_features.append("ui_image_buffer") rust_features.append("ui_overlay") - # fonts - add_font("NORMAL", font_normal, defines, sources) - add_font("BOLD", font_bold, defines, sources) - add_font("DEMIBOLD", font_demibold, defines, sources) - add_font("MONO", font_mono, defines, sources) - add_font("BIG", font_big, defines, sources) - add_font("NORMAL_UPPER", font_normal_upper, defines, sources) - add_font("BOLD_UPPER", font_bold_upper, defines, sources) - add_font("SUB", font_sub, defines, sources) - def get_ui_layout() -> str: return "UI_LAYOUT_DELIZIA" diff --git a/core/src/apps/cardano/layout.py b/core/src/apps/cardano/layout.py index 55b1052b6f4..d43f92cb5d6 100644 --- a/core/src/apps/cardano/layout.py +++ b/core/src/apps/cardano/layout.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING -from trezor import TR, ui +from trezor import TR from trezor.enums import ( ButtonRequestType, CardanoAddressType, @@ -189,11 +189,8 @@ async def show_tx_init(title: str) -> bool: should_show_details = await layouts.should_show_more( TR.cardano__confirm_transaction, ( - ( - ui.DEMIBOLD, - title, - ), - (ui.NORMAL, TR.cardano__choose_level_of_details), + (title, False), + (TR.cardano__choose_level_of_details, False), ), TR.buttons__show_all, confirm=TR.cardano__show_simple, diff --git a/core/src/apps/ethereum/layout.py b/core/src/apps/ethereum/layout.py index 7e4517ff591..f4e97651fd6 100644 --- a/core/src/apps/ethereum/layout.py +++ b/core/src/apps/ethereum/layout.py @@ -1,6 +1,6 @@ from typing import TYPE_CHECKING -from trezor import TR, ui +from trezor import TR from trezor.enums import ButtonRequestType from trezor.ui.layouts import ( confirm_blob, @@ -214,9 +214,9 @@ async def should_show_domain(name: bytes, version: bytes) -> bool: domain_version = decode_typed_data(version, "string") para = ( - (ui.NORMAL, TR.ethereum__name_and_version), - (ui.DEMIBOLD, domain_name), - (ui.DEMIBOLD, domain_version), + (TR.ethereum__name_and_version, False), + (domain_name, False), + (domain_version, False), ) return await should_show_more( TR.ethereum__title_confirm_domain, @@ -243,12 +243,9 @@ async def should_show_struct( contains_plural = f"{TR.words__contains} {plural}" para = ( - (ui.DEMIBOLD, description), - ( - ui.NORMAL, - contains_plural, - ), - (ui.NORMAL, ", ".join(field.name for field in data_members)), + (description, False), + (contains_plural, False), + (", ".join(field.name for field in data_members), False), ) return await should_show_more( title, @@ -268,7 +265,7 @@ async def should_show_array( # Leaving english plural form because of dynamic noun - data_type plural = format_plural_english("{count} {plural}", size, data_type) array_of_plural = f"{TR.words__array_of} {plural}" - para = ((ui.NORMAL, array_of_plural),) + para = ((array_of_plural, False),) return await should_show_more( limit_str(".".join(parent_objects)), para, diff --git a/core/src/apps/solana/layout.py b/core/src/apps/solana/layout.py index 1b212abef75..c03c0c8c96c 100644 --- a/core/src/apps/solana/layout.py +++ b/core/src/apps/solana/layout.py @@ -177,17 +177,16 @@ async def confirm_unsupported_instruction_details( signer_path: list[int], signer_public_key: bytes, ) -> None: - from trezor.ui import NORMAL from trezor.ui.layouts import confirm_properties, should_show_more should_show_instruction_details = await should_show_more( title, ( ( - NORMAL, TR.solana__instruction_accounts_template.format( len(instruction.accounts), len(instruction.instruction_data) ), + False, ), ), TR.buttons__show_details, diff --git a/core/src/trezor/ui/__init__.py b/core/src/trezor/ui/__init__.py index 698f0abfa08..3cd5ffe6e49 100644 --- a/core/src/trezor/ui/__init__.py +++ b/core/src/trezor/ui/__init__.py @@ -38,10 +38,6 @@ display = Display() # re-export constants from modtrezorui -NORMAL: int = Display.FONT_NORMAL -DEMIBOLD: int = Display.FONT_DEMIBOLD -BOLD_UPPER: int = Display.FONT_BOLD_UPPER -MONO: int = Display.FONT_MONO WIDTH: int = Display.WIDTH HEIGHT: int = Display.HEIGHT diff --git a/core/src/trezor/ui/layouts/bolt/__init__.py b/core/src/trezor/ui/layouts/bolt/__init__.py index 0232fa7daff..8d603a86096 100644 --- a/core/src/trezor/ui/layouts/bolt/__init__.py +++ b/core/src/trezor/ui/layouts/bolt/__init__.py @@ -474,8 +474,8 @@ async def should_show_payment_request_details( result = await interact( trezorui_api.confirm_with_info( title=TR.send__title_sending, - items=[(ui.NORMAL, f"{amount} to\n{recipient_name}")] - + [(ui.NORMAL, memo) for memo in memos], + items=[(f"{amount} to\n{recipient_name}", False)] + + [(memo, False) for memo in memos], button=TR.buttons__confirm, info_button=TR.buttons__details, ), @@ -493,7 +493,7 @@ async def should_show_payment_request_details( async def should_show_more( title: str, - para: Iterable[tuple[int, str | bytes]], + para: Iterable[tuple[str | bytes, bool]], button_text: str | None = None, br_name: str = "should_show_more", br_code: ButtonRequestType = BR_CODE_OTHER, @@ -544,12 +544,12 @@ async def _confirm_ask_pagination( title=title, button=TR.buttons__confirm, button_style_confirm=True, - items=[(ui.MONO, data)], + items=[(data, True)], ) while True: if not await should_show_more( title, - para=[(ui.NORMAL, description), (ui.MONO, data)], + para=[(description, False), (data, True)], br_name=br_name, br_code=br_code, ): diff --git a/core/src/trezor/ui/layouts/caesar/__init__.py b/core/src/trezor/ui/layouts/caesar/__init__.py index b766e233304..a04f1ffd934 100644 --- a/core/src/trezor/ui/layouts/caesar/__init__.py +++ b/core/src/trezor/ui/layouts/caesar/__init__.py @@ -538,7 +538,7 @@ async def should_show_payment_request_details( async def should_show_more( title: str, - para: Iterable[tuple[int, str]], + para: Iterable[tuple[str, bool]], button_text: str | None = None, br_name: str = "should_show_more", br_code: ButtonRequestType = BR_CODE_OTHER, @@ -625,13 +625,13 @@ async def _confirm_ask_pagination( confirm_more_layout = trezorui_api.confirm_more( title=title, button=TR.buttons__confirm, - items=[(ui.NORMAL, description), (ui.MONO, data)], + items=[(description, False), (data, True)], ) while True: if not await should_show_more( title, - para=[(ui.NORMAL, description), (ui.MONO, data)], + para=[(description, False), (data, True)], verb_cancel=None, br_name=br_name, br_code=br_code, @@ -778,7 +778,7 @@ async def confirm_value( result = await interact( trezorui_api.confirm_with_info( title=title, - items=((ui.NORMAL, value),), + items=((value, False),), button=verb or TR.buttons__confirm, info_button=TR.buttons__info, ), diff --git a/core/src/trezor/ui/layouts/delizia/__init__.py b/core/src/trezor/ui/layouts/delizia/__init__.py index 700238ce5ee..3269cff5195 100644 --- a/core/src/trezor/ui/layouts/delizia/__init__.py +++ b/core/src/trezor/ui/layouts/delizia/__init__.py @@ -425,8 +425,8 @@ async def should_show_payment_request_details( result = await interact( trezorui_api.confirm_with_info( title=TR.send__title_sending, - items=[(ui.NORMAL, f"{amount} to\n{recipient_name}")] - + [(ui.NORMAL, memo) for memo in memos], + items=[(f"{amount} to\n{recipient_name}", False)] + + [(memo, False) for memo in memos], button=TR.buttons__confirm, info_button=TR.buttons__details, ), @@ -444,7 +444,7 @@ async def should_show_payment_request_details( async def should_show_more( title: str, - para: Iterable[tuple[int, str | bytes]], + para: Iterable[tuple[str | bytes, bool]], button_text: str | None = None, br_name: str = "should_show_more", br_code: ButtonRequestType = BR_CODE_OTHER, diff --git a/core/tools/codegen/gen_font.py b/core/tools/codegen/gen_font.py index dccaaf75b07..faec8d9e734 100755 --- a/core/tools/codegen/gen_font.py +++ b/core/tools/codegen/gen_font.py @@ -8,8 +8,8 @@ from dataclasses import dataclass from pathlib import Path from typing import TextIO +import click import json -import sys # pip install freetype-py import freetype @@ -27,6 +27,8 @@ def _normalize(s: str) -> str: OUT_DIR = HERE / ".." / ".." / "embed" / "gfx" / "fonts" C_FONTS_DEST = CORE_ROOT / "embed" / "gfx" / "fonts" JSON_FONTS_DEST = CORE_ROOT / "translations" / "fonts" +RUST_FONTS_DEST = CORE_ROOT / "embed" / "rust" / "src" / "ui" +LAYOUT_NAME = "" MIN_GLYPH = ord(" ") MAX_GLYPH = ord("~") @@ -182,6 +184,7 @@ def from_face( print(f"normalizing bearingY {bearingY} for '{c}'") bearingY = 0 assert bearingY >= 0 and bearingY <= 255 + buf = list(bitmap.buffer) # discard non-space pixels on the left side if remove_left > 0 and width > 0: @@ -275,6 +278,7 @@ def __init__( self.ext = ext self.gen_normal = gen_normal self.gen_upper = gen_upper + self.face = freetype.Face(str(FONTS_DIR / f"{name}-{style}.{ext}")) self.face.set_pixel_sizes(0, size) # type: ignore self.fontname = f"{name.lower()}_{style.lower()}_{size}" @@ -293,14 +297,22 @@ def _c_file_name(self) -> Path: def _h_file_name(self) -> Path: return C_FONTS_DEST / f"font_{self.fontname}.h" - def write_files(self) -> None: + @property + def _rs_file_name(self) -> Path: + return RUST_FONTS_DEST / f"layout_{LAYOUT_NAME}" / "fonts" / f"font_{self.fontname}.rs" + + def write_files(self, gen_rust: bool = False) -> None: + # C files: self.write_c_files() + # JSON files: if self.gen_normal: self.write_foreign_json(upper_cased=False) if self.gen_upper: self.write_foreign_json(upper_cased=True) if WRITE_WIDTHS: self.write_char_widths_files() + if gen_rust: + self.write_rust_file() def write_c_files(self) -> None: self._write_c_file() @@ -468,22 +480,157 @@ def _write_h_file(self) -> None: f"extern const font_info_t Font_{self._name_style_size}_upper_info;\n" ) + # -------------------------------------------------------------------- + # Rust code generation + # -------------------------------------------------------------------- + def write_rust_file(self) -> None: + """ + Write a Rust source file containing equivalent data structures to + what we generate in C. This includes: + - One static array per ASCII glyph + - One array of references for normal ASCII + - One array of references for uppercase ASCII (if gen_upper) + - A struct with metadata analogous to font_info_t + """ + with open(self._rs_file_name, "wt") as f: + self._write_rust_file_header(f) + self._write_rust_file_content(f) + + def _write_rust_file_header(self, f: TextIO) -> None: + f.write("//! This file is generated by core/tools/codegen/gen_font.py\n") + f.write("#![cfg_attr(any(), rustfmt::skip)]\n") + f.write("#![allow(non_upper_case_globals)]\n") + f.write("// Each glyph:\n") + f.write("// - first two bytes: width, height\n") + f.write("// - next three bytes: advance, bearingX, bearingY\n") + f.write(f"// - rest is packed {self.bpp}-bit glyph data\n\n") + + f.write("use crate::ui::display::font::FontInfo;\n\n") + + def _write_rust_file_content(self, f: TextIO) -> None: + # 1) Write normal ASCII glyph definitions + for i in range(MIN_GLYPH, MAX_GLYPH + 1): + c = chr(i) + if c.islower() and not self.gen_normal: + continue + self._load_char(c) + glyph = Glyph.from_face(self.face, c, self.shaveX) + glyph.print_metrics() + arr_bytes = glyph.to_bytes(self.bpp) + arr_len = len(arr_bytes) + arr_content = ", ".join(str(n) for n in arr_bytes) + f.write(f"/// '{glyph.char}' (ASCII {i})\n") + f.write( + f"const Font_{self._name_style_size}_glyph_{i}: [u8; {arr_len}] = [ {arr_content} ];\n\n" + ) -if __name__ == "__main__": - if len(sys.argv) > 1 and "width" in sys.argv[1]: - WRITE_WIDTHS = True # type: ignore + # 2) Write nonprintable glyph + c = "?" + self._load_char(c) + glyph_np = Glyph.from_face(self.face, c, self.shaveX, inverse_colors=True) + arr_bytes_np = glyph_np.to_bytes(self.bpp) + arr_len_np = len(arr_bytes_np) + arr_content_np = ", ".join(str(n) for n in arr_bytes_np) + f.write(f"/// Nonprintable glyph (inverse colors of '?')\n") + f.write( + f"const Font_{self._name_style_size}_glyph_nonprintable: [u8; {arr_len_np}] = [ {arr_content_np} ];\n\n" + ) - FaceProcessor("Roboto", "Regular", 20).write_files() - FaceProcessor("Roboto", "Bold", 20).write_files() + # 3) Write array of references for normal glyphs if gen_normal + if self.gen_normal: + f.write( + f"/// Array of references for '{self._name_style_size}' normal ASCII glyphs\n" + ) + f.write( + f"const Font_{self._name_style_size}: [&[u8]; {MAX_GLYPH + 1 - MIN_GLYPH}] = [\n" + ) + for i in range(MIN_GLYPH, MAX_GLYPH + 1): + f.write(f" &Font_{self._name_style_size}_glyph_{i},\n") + f.write("];\n\n") - FaceProcessor("TTHoves", "Regular", 21, ext="otf").write_files() - FaceProcessor("TTHoves", "DemiBold", 21, ext="otf").write_files() + # 4) Write array of references for uppercase glyphs if gen_upper + if self.gen_upper: + f.write( + f"/// Array of references for '{self._name_style_size}' ASCII glyphs (forced uppercase)\n" + ) + f.write( + f"const Font_{self._name_style_size}_upper: [&[u8]; {MAX_GLYPH + 1 - MIN_GLYPH}] = [\n" + ) + for i in range(MIN_GLYPH, MAX_GLYPH + 1): + char_lower = chr(i) + if char_lower.islower(): + c_to = char_lower.upper() + i_mapped = ord(c_to) + f.write( + f" &Font_{self._name_style_size}_glyph_{i_mapped}, // {char_lower} -> {c_to}\n" + ) + else: + f.write(f" &Font_{self._name_style_size}_glyph_{i},\n") + f.write("];\n\n") + + # We need the final min/max Y computations as well + self.font_ymin = 0 + self.font_ymax = 0 + + # Re-check all ASCII again (to get baseline, etc.) + # We'll do the same pass to find min and max. + for i in range(MIN_GLYPH, MAX_GLYPH + 1): + c = chr(i) + if c.islower() and not self.gen_normal: + continue + self._load_char(c) + glyph = Glyph.from_face(self.face, c, self.shaveX) + yMin = glyph.bearingY - glyph.rows + yMax = yMin + glyph.rows + self.font_ymin = min(self.font_ymin, yMin) + self.font_ymax = max(self.font_ymax, yMax) + + # 5) Finally, define the FontInfo struct instance(s) + if self.gen_normal: + f.write(f"/// FontInfo struct for normal ASCII usage\n") + f.write( + f"pub const Font_{self._name_style_size}_info: FontInfo = FontInfo {{\n" + ) + f.write(f" height: {self.size},\n") + f.write(f" max_height: {self.font_ymax - self.font_ymin},\n") + f.write(f" baseline: {-self.font_ymin},\n") + f.write(f" glyph_data: &Font_{self._name_style_size},\n") + f.write( + f" glyph_nonprintable: &Font_{self._name_style_size}_glyph_nonprintable,\n" + ) + f.write("};\n\n") + + if self.gen_upper: + f.write(f"/// FontInfo struct for forced uppercase usage\n") + f.write( + f"pub const Font_{self._name_style_size}_upper_info: FontInfo = FontInfo {{\n" + ) + f.write(f" height: {self.size},\n") + f.write(f" max_height: {self.font_ymax - self.font_ymin},\n") + f.write(f" baseline: {-self.font_ymin},\n") + f.write(f" glyph_data: &Font_{self._name_style_size}_upper,\n") + f.write( + f" glyph_nonprintable: &Font_{self._name_style_size}_glyph_nonprintable,\n" + ) + f.write("};\n\n") + + +def gen_layout_bolt(gen_rust: bool = False): + global LAYOUT_NAME + LAYOUT_NAME = "bolt" + FaceProcessor("Roboto", "Regular", 20).write_files(gen_rust) + FaceProcessor("Roboto", "Bold", 20).write_files(gen_rust) + FaceProcessor("TTHoves", "Regular", 21, ext="otf").write_files(gen_rust) + FaceProcessor("TTHoves", "DemiBold", 21, ext="otf").write_files(gen_rust) FaceProcessor( "TTHoves", "Bold", 17, ext="otf", gen_normal=False, gen_upper=True - ).write_files() - FaceProcessor("RobotoMono", "Medium", 20).write_files() + ).write_files(gen_rust) + FaceProcessor("RobotoMono", "Medium", 20).write_files(gen_rust) - # layout caesar + +def gen_layout_caesar(gen_rust: bool = False): + global LAYOUT_NAME + LAYOUT_NAME = "caesar" FaceProcessor( "PixelOperator", "Regular", @@ -492,7 +639,7 @@ def _write_h_file(self) -> None: shaveX=1, gen_normal=True, gen_upper=True, - ).write_files() + ).write_files(gen_rust) FaceProcessor( "PixelOperator", "Bold", @@ -501,14 +648,69 @@ def _write_h_file(self) -> None: shaveX=1, gen_normal=True, gen_upper=True, - ).write_files() - FaceProcessor("PixelOperatorMono", "Regular", 8, bpp=1, shaveX=1).write_files() - FaceProcessor("Unifont", "Regular", 16, bpp=1, shaveX=1, ext="otf").write_files() + ).write_files(gen_rust) + FaceProcessor("PixelOperatorMono", "Regular", 8, bpp=1, shaveX=1).write_files( + gen_rust + ) + FaceProcessor("Unifont", "Regular", 16, bpp=1, shaveX=1, ext="otf").write_files( + gen_rust + ) # NOTE: Unifont Bold does not seem to have czech characters - FaceProcessor("Unifont", "Bold", 16, bpp=1, shaveX=1, ext="otf").write_files() + FaceProcessor("Unifont", "Bold", 16, bpp=1, shaveX=1, ext="otf").write_files( + gen_rust + ) - # layout delizia - FaceProcessor("TTSatoshi", "DemiBold", 42, ext="otf").write_files() - FaceProcessor("TTSatoshi", "DemiBold", 21, ext="otf").write_files() - FaceProcessor("TTSatoshi", "DemiBold", 18, ext="otf").write_files() - FaceProcessor("RobotoMono", "Medium", 21).write_files() + +def gen_layout_delizia(gen_rust: bool = False): + global LAYOUT_NAME + LAYOUT_NAME = "delizia" + FaceProcessor("TTSatoshi", "DemiBold", 42, ext="otf").write_files(gen_rust) + FaceProcessor("TTSatoshi", "DemiBold", 21, ext="otf").write_files(gen_rust) + FaceProcessor("TTSatoshi", "DemiBold", 18, ext="otf").write_files(gen_rust) + FaceProcessor("RobotoMono", "Medium", 21).write_files(gen_rust) + + +LAYOUTS = { + "bolt": gen_layout_bolt, + "caesar": gen_layout_caesar, + "delizia": gen_layout_delizia, +} + + +@click.command() +@click.option( + "--layout", + "-l", + help="Generate fonts only for specified layout", + type=click.Choice(list(LAYOUTS.keys())), +) +@click.option( + "--write-widths", + "-w", + is_flag=True, + default=False, + help="Generate character width files", +) +@click.option( + "--rust", + is_flag=True, + default=False, + help="Also generate Rust files", +) +def main(layout: str | None, write_widths: bool, rust: bool): + """Generate font files for Trezor firmware.""" + global WRITE_WIDTHS + WRITE_WIDTHS = write_widths + + if layout: + click.echo(f"Generating fonts for layout: {layout}") + LAYOUTS[layout](rust) + else: + click.echo("Generating all fonts") + for layout_name, layout_func in LAYOUTS.items(): + click.echo(f"\nGenerating {layout_name} layout:") + layout_func(rust) + + +if __name__ == "__main__": + main() diff --git a/tdl.rs b/tdl.rs new file mode 100644 index 00000000000..62e1486c1c3 --- /dev/null +++ b/tdl.rs @@ -0,0 +1,21 @@ +#[cfg(all( + feature = "layout_bolt", + not(feature = "layout_delizia"), + not(feature = "layout_caesar") +))] +mod bolt; +#[cfg(all(feature = "layout_caesar", not(feature = "layout_delizia")))] +mod caesar; +#[cfg(feature = "layout_delizia")] +mod delizia; + +#[cfg(all( + feature = "layout_bolt", + not(feature = "layout_delizia"), + not(feature = "layout_caesar") +))] +pub use bolt::*; +#[cfg(all(feature = "layout_caesar", not(feature = "layout_delizia")))] +pub use caesar::*; +#[cfg(feature = "layout_delizia")] +pub use delizia::*;