Compare commits
62 Commits
ab503102d6
...
6dbb8c8d1a
Author | SHA1 | Date |
---|---|---|
Ioan Bizău | 6dbb8c8d1a | 2 weeks ago |
Ioan Bizău | b799ca2e05 | 2 weeks ago |
Ioan Bizău | 25e9198da0 | 2 weeks ago |
Ioan Bizău | 39e10c48c0 | 2 weeks ago |
Ioan Bizău | a279d9bcbc | 2 weeks ago |
Ioan Bizău | 1f524eb814 | 2 weeks ago |
Ioan Bizău | 990e6bfe5c | 2 weeks ago |
Ioan Bizău | 788f9fe115 | 2 weeks ago |
Ioan Bizău | e0e143c796 | 2 weeks ago |
Ioan Bizău | 9edfa305f6 | 2 weeks ago |
Ioan Bizău | 2269749984 | 2 weeks ago |
Ioan Bizău | 8ee6bd65f5 | 2 weeks ago |
Ioan Bizău | e9dda08859 | 2 weeks ago |
Ioan Bizău | 01729c34c3 | 2 weeks ago |
Ioan Bizău | f7378c4ee4 | 2 weeks ago |
Ioan Bizău | 4f29ab3bda | 2 weeks ago |
Ioan Bizău | ba49b9e760 | 2 weeks ago |
tychovrahe | 91a783ee37 | 2 weeks ago |
Andrew Kozlik | 27f54eec9c | 2 weeks ago |
tychovrahe | d349c44a58 | 2 weeks ago |
tychovrahe | c635b945e1 | 2 weeks ago |
tychovrahe | d9590cbe90 | 2 weeks ago |
tychovrahe | ab11afa442 | 2 weeks ago |
matejcik | 39e1085295 | 2 weeks ago |
matejcik | 66b96bc279 | 2 weeks ago |
matejcik | f0c7cc4e8e | 2 weeks ago |
matejcik | c01302dd31 | 2 weeks ago |
tychovrahe | e5e40cf4a8 | 2 weeks ago |
Ondřej Vejpustek | db3b7563b2 | 3 weeks ago |
Ondřej Vejpustek | 057b927e99 | 3 weeks ago |
Ondřej Vejpustek | 80029823be | 3 weeks ago |
tychovrahe | 916dbdff9c | 3 weeks ago |
Pavol Rusnak | caa3c035e7 | 3 weeks ago |
matejcik | 90afd9c96a | 3 weeks ago |
matejcik | af6c4efed5 | 3 weeks ago |
matejcik | 4728b14bcc | 3 weeks ago |
matejcik | 5b0b145f12 | 3 weeks ago |
tychovrahe | dfe5ee67f1 | 3 weeks ago |
tychovrahe | 9a212a22bd | 3 weeks ago |
tychovrahe | 457e5956c8 | 3 weeks ago |
Ondřej Vejpustek | e9f6eb0b2b | 3 weeks ago |
Pavol Rusnak | 5ec23c1c95 | 3 weeks ago |
obrusvit | a47ae5da1a | 3 weeks ago |
M1nd3r | ad848eefc5 | 3 weeks ago |
matejcik | 89fdaed31e | 4 weeks ago |
matejcik | 0109ab2232 | 4 weeks ago |
matejcik | 867300b8c6 | 4 weeks ago |
matejcik | 5d9bb0ebfc | 4 weeks ago |
matejcik | 729d7c59e1 | 4 weeks ago |
Martin Milata | 4baa4d95a4 | 4 weeks ago |
Martin Milata | 5c5433ada2 | 4 weeks ago |
Martin Milata | 906c00e4e5 | 4 weeks ago |
Martin Milata | 804d97c9d8 | 4 weeks ago |
tychovrahe | c277dbcfcb | 4 weeks ago |
Martin Milata | cf00726152 | 4 weeks ago |
Martin Milata | b5fa5a3f3a | 4 weeks ago |
dependabot[bot] | d5da0f2d4c | 4 weeks ago |
tychovrahe | 72146c2ae2 | 4 weeks ago |
tychovrahe | 165238b78e | 4 weeks ago |
tychovrahe | 1600759457 | 4 weeks ago |
tychovrahe | 89c6590e45 | 4 weeks ago |
tychovrahe | c8e18dd4d2 | 4 weeks ago |
@ -0,0 +1 @@
|
||||
Added ability to request Shamir backups with any number of groups/shares.
|
@ -1,2 +0,0 @@
|
||||
Added firmware update without interaction.
|
||||
Split builds of different parts to use simple util.s assembler, while FW+bootloader use interconnected ones.
|
@ -1 +0,0 @@
|
||||
Added basic support for STM32U5
|
@ -1,4 +1,4 @@
|
||||
#define VERSION_MAJOR 2
|
||||
#define VERSION_MINOR 1
|
||||
#define VERSION_PATCH 2
|
||||
#define VERSION_PATCH 3
|
||||
#define VERSION_BUILD 0
|
||||
|
@ -1 +0,0 @@
|
||||
Added basic support for STM32U5
|
@ -1 +0,0 @@
|
||||
Speed-up device boot
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,203 @@
|
||||
#include <stdint.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_RobotoMono_Medium_21_glyph_32[] = { 0, 0, 13, 0, 0 };
|
||||
/* ! */ static const uint8_t Font_RobotoMono_Medium_21_glyph_33[] = { 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 };
|
||||
/* " */ static const uint8_t Font_RobotoMono_Medium_21_glyph_34[] = { 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 };
|
||||
/* # */ static const uint8_t Font_RobotoMono_Medium_21_glyph_35[] = { 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 };
|
||||
/* $ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_36[] = { 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 };
|
||||
/* % */ static const uint8_t Font_RobotoMono_Medium_21_glyph_37[] = { 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 };
|
||||
/* & */ static const uint8_t Font_RobotoMono_Medium_21_glyph_38[] = { 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 };
|
||||
/* ' */ static const uint8_t Font_RobotoMono_Medium_21_glyph_39[] = { 3, 6, 13, 4, 16, 193, 9, 242, 12, 242, 11, 242, 10, 242, 9, 129, 5 };
|
||||
/* ( */ static const uint8_t Font_RobotoMono_Medium_21_glyph_40[] = { 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 };
|
||||
/* ) */ static const uint8_t Font_RobotoMono_Medium_21_glyph_41[] = { 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 };
|
||||
/* * */ static const uint8_t Font_RobotoMono_Medium_21_glyph_42[] = { 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 };
|
||||
/* + */ static const uint8_t Font_RobotoMono_Medium_21_glyph_43[] = { 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 };
|
||||
/* , */ static const uint8_t Font_RobotoMono_Medium_21_glyph_44[] = { 4, 7, 13, 3, 3, 32, 102, 96, 255, 96, 255, 112, 239, 160, 175, 241, 47, 145, 6 };
|
||||
/* - */ static const uint8_t Font_RobotoMono_Medium_21_glyph_45[] = { 9, 3, 13, 2, 8, 147, 153, 153, 153, 7, 246, 255, 255, 255, 14, 114, 119, 119, 119, 6 };
|
||||
/* . */ static const uint8_t Font_RobotoMono_Medium_21_glyph_46[] = { 5, 5, 13, 4, 4, 0, 2, 0, 225, 207, 0, 245, 255, 2, 225, 223, 0, 0, 2, 0 };
|
||||
/* / */ static const uint8_t Font_RobotoMono_Medium_21_glyph_47[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_48[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_49[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_50[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_51[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_52[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_53[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_54[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_55[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_56[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_57[] = { 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 };
|
||||
/* : */ static const uint8_t Font_RobotoMono_Medium_21_glyph_58[] = { 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 };
|
||||
/* ; */ static const uint8_t Font_RobotoMono_Medium_21_glyph_59[] = { 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 };
|
||||
/* < */ static const uint8_t Font_RobotoMono_Medium_21_glyph_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 };
|
||||
/* = */ static const uint8_t Font_RobotoMono_Medium_21_glyph_61[] = { 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 };
|
||||
/* > */ static const uint8_t Font_RobotoMono_Medium_21_glyph_62[] = { 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 };
|
||||
/* ? */ static const uint8_t Font_RobotoMono_Medium_21_glyph_63[] = { 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 };
|
||||
/* @ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_64[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_65[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_66[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_67[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_68[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_69[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_70[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_71[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_72[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_73[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_74[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_75[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_76[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_77[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_78[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_79[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_80[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_81[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_82[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_83[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_84[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_85[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_86[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_87[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_88[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_89[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_90[] = { 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 };
|
||||
/* [ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_91[] = { 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 };
|
||||
/* \ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_92[] = { 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 };
|
||||
/* ] */ static const uint8_t Font_RobotoMono_Medium_21_glyph_93[] = { 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 };
|
||||
/* ^ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_94[] = { 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 };
|
||||
/* _ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_95[] = { 10, 2, 13, 1, 0, 247, 255, 255, 255, 239, 246, 255, 255, 255, 223 };
|
||||
/* ` */ static const uint8_t Font_RobotoMono_Medium_21_glyph_96[] = { 5, 4, 13, 4, 16, 33, 2, 0, 243, 127, 0, 48, 255, 2, 0, 164, 6 };
|
||||
/* a */ static const uint8_t Font_RobotoMono_Medium_21_glyph_97[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_98[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_99[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_100[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_101[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_102[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_103[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_104[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_105[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_106[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_107[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_108[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_109[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_110[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_111[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_112[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_113[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_114[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_115[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_116[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_117[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_118[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_119[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_120[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_121[] = { 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 */ static const uint8_t Font_RobotoMono_Medium_21_glyph_122[] = { 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 };
|
||||
/* { */ static const uint8_t Font_RobotoMono_Medium_21_glyph_123[] = { 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 };
|
||||
/* | */ static const uint8_t Font_RobotoMono_Medium_21_glyph_124[] = { 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 };
|
||||
/* } */ static const uint8_t Font_RobotoMono_Medium_21_glyph_125[] = { 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 };
|
||||
/* ~ */ static const uint8_t Font_RobotoMono_Medium_21_glyph_126[] = { 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 };
|
||||
|
||||
/* ? */ const uint8_t Font_RobotoMono_Medium_21_glyph_nonprintable[] = { 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 };
|
||||
|
||||
const uint8_t * const Font_RobotoMono_Medium_21[126 + 1 - 32] = {
|
||||
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,
|
||||
};
|
@ -0,0 +1,10 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#if TREZOR_FONT_BPP != 4
|
||||
#error Wrong TREZOR_FONT_BPP (expected 4)
|
||||
#endif
|
||||
#define Font_RobotoMono_Medium_21_HEIGHT 21
|
||||
#define Font_RobotoMono_Medium_21_MAX_HEIGHT 23
|
||||
#define Font_RobotoMono_Medium_21_BASELINE 5
|
||||
extern const uint8_t* const Font_RobotoMono_Medium_21[126 + 1 - 32];
|
||||
extern const uint8_t Font_RobotoMono_Medium_21_glyph_nonprintable[];
|
@ -0,0 +1,203 @@
|
||||
#include <stdint.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_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[] = { 12, 13, 12, 0, 13, 0, 48, 234, 174, 3, 0, 0, 246, 255, 255, 127, 0, 32, 255, 109, 198, 255, 2, 160, 239, 0, 0, 253, 11, 224, 127, 0, 0, 246, 15, 240, 79, 0, 0, 243, 31, 242, 47, 0, 0, 242, 63, 240, 79, 0, 0, 243, 31, 224, 127, 0, 0, 246, 15, 160, 239, 0, 0, 253, 11, 32, 255, 93, 197, 255, 2, 0, 246, 255, 255, 127, 0, 0, 48, 234, 190, 4, 0 };
|
||||
/* 1 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_49[] = { 6, 13, 7, 0, 13, 0, 240, 111, 248, 255, 111, 248, 255, 111, 66, 244, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111, 0, 240, 111 };
|
||||
/* 2 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_50[] = { 10, 13, 10, 0, 13, 0, 162, 238, 76, 0, 32, 255, 255, 255, 6, 192, 255, 86, 253, 15, 240, 111, 0, 244, 63, 113, 23, 0, 242, 79, 0, 0, 0, 249, 31, 0, 0, 128, 255, 7, 0, 0, 248, 143, 0, 0, 128, 255, 9, 0, 0, 248, 159, 0, 0, 144, 255, 76, 51, 35, 240, 255, 255, 255, 143, 240, 255, 255, 255, 143 };
|
||||
/* 3 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_51[] = { 10, 13, 10, 0, 13, 0, 179, 238, 92, 0, 96, 255, 255, 255, 7, 240, 207, 102, 252, 15, 162, 26, 0, 243, 63, 0, 0, 16, 249, 15, 0, 0, 253, 255, 5, 0, 0, 253, 239, 4, 0, 0, 33, 250, 30, 16, 1, 0, 240, 79, 245, 31, 0, 240, 95, 242, 207, 85, 251, 47, 112, 255, 255, 255, 8, 0, 196, 238, 92, 0 };
|
||||
/* 4 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_52[] = { 10, 13, 10, 0, 13, 0, 0, 248, 255, 5, 0, 16, 255, 255, 5, 0, 144, 239, 255, 5, 0, 242, 79, 255, 5, 0, 251, 11, 255, 5, 64, 255, 3, 255, 5, 192, 175, 0, 255, 5, 245, 47, 0, 255, 5, 251, 255, 255, 255, 207, 251, 255, 255, 255, 207, 34, 34, 34, 255, 39, 0, 0, 0, 255, 5, 0, 0, 0, 255, 5 };
|
||||
/* 5 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_53[] = { 10, 13, 11, 0, 13, 80, 255, 255, 255, 31, 96, 255, 255, 255, 31, 128, 207, 68, 68, 4, 144, 175, 0, 0, 0, 176, 159, 16, 0, 0, 192, 239, 255, 175, 1, 224, 255, 255, 255, 30, 128, 120, 2, 245, 143, 0, 0, 0, 144, 191, 145, 57, 0, 160, 175, 224, 239, 86, 250, 111, 64, 255, 255, 255, 11, 0, 162, 253, 124, 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[] = { 9, 13, 9, 0, 13, 248, 255, 255, 255, 14, 248, 255, 255, 255, 14, 66, 68, 68, 255, 11, 0, 0, 64, 255, 5, 0, 0, 176, 239, 0, 0, 0, 241, 143, 0, 0, 0, 248, 47, 0, 0, 0, 254, 11, 0, 0, 64, 255, 5, 0, 0, 176, 239, 0, 0, 0, 242, 143, 0, 0, 0, 248, 31, 0, 0, 0, 254, 11, 0, 0 };
|
||||
/* 8 */ static const uint8_t Font_TTSatoshi_DemiBold_18_glyph_56[] = { 10, 13, 11, 0, 13, 0, 162, 253, 124, 0, 32, 255, 255, 255, 11, 176, 223, 37, 248, 79, 208, 127, 0, 208, 127, 160, 207, 3, 246, 79, 16, 252, 255, 255, 8, 32, 253, 255, 255, 9, 192, 207, 2, 245, 95, 241, 63, 0, 160, 175, 242, 79, 0, 160, 191, 224, 223, 19, 246, 143, 64, 255, 255, 255, 13, 0, 162, 253, 140, 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 };
|
||||
|
||||
/* ? */ 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 };
|
||||
|
||||
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,
|
||||
};
|
@ -0,0 +1,10 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#if TREZOR_FONT_BPP != 4
|
||||
#error Wrong TREZOR_FONT_BPP (expected 4)
|
||||
#endif
|
||||
#define Font_TTSatoshi_DemiBold_18_HEIGHT 18
|
||||
#define Font_TTSatoshi_DemiBold_18_MAX_HEIGHT 19
|
||||
#define Font_TTSatoshi_DemiBold_18_BASELINE 4
|
||||
extern const uint8_t* const Font_TTSatoshi_DemiBold_18[126 + 1 - 32];
|
||||
extern const uint8_t Font_TTSatoshi_DemiBold_18_glyph_nonprintable[];
|
@ -0,0 +1,203 @@
|
||||
#include <stdint.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_TTSatoshi_DemiBold_21_glyph_32[] = { 0, 0, 5, 0, 0 };
|
||||
/* ! */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_33[] = { 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 };
|
||||
/* " */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_34[] = { 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 };
|
||||
/* # */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_35[] = { 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 };
|
||||
/* $ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_36[] = { 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 };
|
||||
/* % */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_37[] = { 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 };
|
||||
/* & */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_38[] = { 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 };
|
||||
/* ' */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_39[] = { 3, 5, 5, 1, 15, 251, 10, 251, 10, 251, 10, 251, 10, 218, 9 };
|
||||
/* ( */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_40[] = { 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 };
|
||||
/* ) */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_41[] = { 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 };
|
||||
/* * */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_42[] = { 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 };
|
||||
/* + */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_43[] = { 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 };
|
||||
/* , */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_44[] = { 5, 5, 5, 0, 3, 176, 255, 2, 192, 223, 0, 224, 159, 0, 240, 79, 0, 209, 13, 0 };
|
||||
/* - */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_45[] = { 9, 3, 9, 0, 8, 96, 102, 102, 102, 0, 240, 255, 255, 255, 1, 240, 255, 255, 255, 1 };
|
||||
/* . */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_46[] = { 4, 3, 5, 1, 3, 235, 46, 251, 47, 251, 47 };
|
||||
/* / */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_47[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_48[] = { 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, 3, 0, 249, 255, 187, 255, 175, 0, 0, 160, 255, 255, 255, 10, 0, 0, 0, 165, 238, 107, 0, 0 };
|
||||
/* 1 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_49[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_50[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_51[] = { 12, 15, 12, 0, 15, 0, 112, 236, 190, 5, 0, 16, 253, 255, 255, 175, 0, 160, 255, 174, 251, 255, 5, 240, 223, 0, 48, 255, 10, 80, 53, 0, 0, 255, 11, 0, 0, 0, 145, 255, 7, 0, 0, 242, 255, 191, 0, 0, 0, 242, 255, 95, 0, 0, 0, 97, 232, 255, 4, 0, 0, 0, 16, 254, 12, 163, 74, 0, 0, 252, 15, 242, 207, 0, 32, 255, 13, 192, 255, 174, 251, 255, 8, 32, 254, 255, 255, 191, 0, 0, 128, 252, 190, 5, 0 };
|
||||
/* 4 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_52[] = { 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, 249, 191, 0, 0, 208, 239, 240, 191, 0, 0, 246, 111, 240, 191, 0, 0, 254, 13, 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_53[] = { 12, 15, 12, 0, 15, 0, 255, 255, 255, 255, 9, 16, 255, 255, 255, 255, 9, 48, 255, 156, 153, 153, 5, 64, 255, 5, 0, 0, 0, 96, 255, 3, 0, 0, 0, 112, 255, 100, 87, 1, 0, 144, 255, 255, 255, 127, 0, 160, 255, 255, 255, 255, 7, 176, 255, 40, 80, 255, 31, 0, 0, 0, 0, 247, 79, 48, 35, 0, 0, 245, 95, 224, 239, 2, 0, 251, 47, 112, 255, 191, 234, 255, 11, 0, 251, 255, 255, 223, 1, 0, 96, 235, 207, 8, 0 };
|
||||
/* 6 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_54[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_55[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_56[] = { 12, 15, 12, 0, 15, 0, 64, 235, 207, 8, 0, 0, 249, 255, 255, 239, 1, 80, 255, 142, 199, 255, 11, 144, 255, 3, 0, 253, 15, 160, 255, 0, 0, 250, 15, 96, 255, 26, 80, 255, 11, 0, 249, 255, 255, 223, 2, 0, 246, 255, 255, 191, 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_57[] = { 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 };
|
||||
/* : */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_58[] = { 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 };
|
||||
/* ; */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_59[] = { 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 };
|
||||
/* < */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_60[] = { 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 };
|
||||
/* = */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_61[] = { 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 };
|
||||
/* > */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_62[] = { 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 };
|
||||
/* ? */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_63[] = { 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 };
|
||||
/* @ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_64[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_65[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_66[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_67[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_68[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_69[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_70[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_71[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_72[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_73[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_74[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_75[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_76[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_77[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_78[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_79[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_80[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_81[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_82[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_83[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_84[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_85[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_86[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_87[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_88[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_89[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_90[] = { 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 };
|
||||
/* [ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_91[] = { 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 };
|
||||
/* \ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_92[] = { 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 };
|
||||
/* ] */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_93[] = { 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 };
|
||||
/* ^ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_94[] = { 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 };
|
||||
/* _ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_95[] = { 10, 3, 9, 0, 0, 246, 255, 255, 255, 159, 246, 255, 255, 255, 159, 98, 102, 102, 102, 70 };
|
||||
/* ` */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_96[] = { 6, 4, 6, 0, 16, 0, 0, 0, 209, 191, 0, 32, 255, 5, 0, 244, 30 };
|
||||
/* a */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_97[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_98[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_99[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_100[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_101[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_102[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_103[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_104[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_105[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_106[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_107[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_108[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_109[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_110[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_111[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_112[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_113[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_114[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_115[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_116[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_117[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_118[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_119[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_120[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_121[] = { 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 */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_122[] = { 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 };
|
||||
/* { */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_123[] = { 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 };
|
||||
/* | */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_124[] = { 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 };
|
||||
/* } */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_125[] = { 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 };
|
||||
/* ~ */ static const uint8_t Font_TTSatoshi_DemiBold_21_glyph_126[] = { 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 };
|
||||
|
||||
/* ? */ const uint8_t Font_TTSatoshi_DemiBold_21_glyph_nonprintable[] = { 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 };
|
||||
|
||||
const uint8_t * const Font_TTSatoshi_DemiBold_21[126 + 1 - 32] = {
|
||||
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,
|
||||
};
|
@ -0,0 +1,10 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#if TREZOR_FONT_BPP != 4
|
||||
#error Wrong TREZOR_FONT_BPP (expected 4)
|
||||
#endif
|
||||
#define Font_TTSatoshi_DemiBold_21_HEIGHT 21
|
||||
#define Font_TTSatoshi_DemiBold_21_MAX_HEIGHT 21
|
||||
#define Font_TTSatoshi_DemiBold_21_BASELINE 4
|
||||
extern const uint8_t* const Font_TTSatoshi_DemiBold_21[126 + 1 - 32];
|
||||
extern const uint8_t Font_TTSatoshi_DemiBold_21_glyph_nonprintable[];
|
@ -0,0 +1,203 @@
|
||||
#include <stdint.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_TTSatoshi_DemiBold_42_glyph_32[] = { 0, 0, 11, 0, 0 };
|
||||
/* ! */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_33[] = { 6, 29, 12, 3, 29, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 249, 255, 207, 248, 255, 191, 247, 255, 159, 245, 255, 143, 244, 255, 111, 242, 255, 95, 241, 255, 63, 240, 255, 47, 224, 255, 15, 80, 102, 6, 0, 0, 0, 0, 0, 0, 216, 221, 189, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207, 250, 255, 207 };
|
||||
/* " */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_34[] = { 14, 10, 18, 2, 29, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 247, 255, 95, 0, 251, 255, 31, 165, 170, 58, 0, 167, 170, 26 };
|
||||
/* # */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_35[] = { 30, 29, 30, 0, 29, 0, 0, 0, 0, 0, 246, 255, 111, 0, 0, 245, 255, 127, 0, 0, 0, 0, 0, 0, 0, 249, 255, 63, 0, 0, 248, 255, 79, 0, 0, 0, 0, 0, 0, 0, 253, 255, 15, 0, 0, 252, 255, 31, 0, 0, 0, 0, 0, 0, 0, 255, 255, 12, 0, 0, 255, 255, 13, 0, 0, 0, 0, 0, 0, 48, 255, 255, 8, 0, 48, 255, 255, 10, 0, 0, 0, 0, 0, 0, 112, 255, 255, 5, 0, 96, 255, 255, 6, 0, 0, 0, 0, 0, 0, 160, 255, 255, 1, 0, 160, 255, 255, 3, 0, 0, 0, 80, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 144, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 0, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 146, 153, 153, 255, 255, 175, 153, 153, 254, 255, 175, 153, 153, 6, 0, 0, 0, 0, 255, 255, 13, 0, 0, 254, 255, 14, 0, 0, 0, 0, 0, 0, 48, 255, 255, 9, 0, 32, 255, 255, 10, 0, 0, 0, 0, 0, 0, 112, 255, 255, 6, 0, 80, 255, 255, 7, 0, 0, 0, 0, 0, 0, 160, 255, 255, 2, 0, 144, 255, 255, 4, 0, 0, 0, 0, 0, 0, 224, 255, 239, 0, 0, 192, 255, 255, 0, 0, 0, 0, 80, 153, 153, 249, 255, 239, 153, 153, 249, 255, 255, 153, 153, 41, 0, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 0, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 32, 255, 255, 10, 0, 16, 255, 255, 11, 0, 0, 0, 0, 0, 0, 96, 255, 255, 6, 0, 64, 255, 255, 8, 0, 0, 0, 0, 0, 0, 144, 255, 255, 3, 0, 128, 255, 255, 4, 0, 0, 0, 0, 0, 0, 208, 255, 255, 0, 0, 176, 255, 255, 1, 0, 0, 0, 0, 0, 0, 240, 255, 207, 0, 0, 240, 255, 223, 0, 0, 0, 0, 0, 0, 0, 244, 255, 143, 0, 0, 242, 255, 175, 0, 0, 0, 0, 0, 0, 0, 247, 255, 95, 0, 0, 246, 255, 111, 0, 0, 0, 0, 0 };
|
||||
/* $ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_36[] = { 24, 40, 27, 1, 35, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 97, 251, 255, 255, 207, 40, 0, 0, 0, 0, 0, 160, 255, 255, 255, 255, 255, 255, 43, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 242, 255, 255, 255, 255, 255, 255, 255, 255, 95, 0, 0, 252, 255, 255, 175, 87, 117, 250, 255, 255, 255, 1, 64, 255, 255, 207, 2, 0, 0, 32, 252, 255, 255, 9, 144, 255, 255, 31, 0, 0, 0, 0, 225, 255, 255, 15, 192, 255, 255, 11, 0, 0, 0, 0, 112, 255, 255, 63, 224, 255, 255, 9, 0, 0, 0, 0, 48, 255, 255, 79, 192, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 96, 255, 255, 255, 108, 2, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 239, 139, 37, 0, 0, 0, 0, 0, 245, 255, 255, 255, 255, 255, 255, 174, 4, 0, 0, 0, 80, 255, 255, 255, 255, 255, 255, 255, 207, 3, 0, 0, 0, 162, 255, 255, 255, 255, 255, 255, 255, 111, 0, 0, 0, 0, 64, 201, 254, 255, 255, 255, 255, 255, 4, 0, 0, 0, 0, 0, 16, 116, 251, 255, 255, 255, 13, 0, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 143, 148, 153, 153, 0, 0, 0, 0, 0, 0, 253, 255, 191, 247, 255, 255, 3, 0, 0, 0, 0, 0, 252, 255, 207, 244, 255, 255, 10, 0, 0, 0, 0, 0, 255, 255, 191, 240, 255, 255, 159, 0, 0, 0, 0, 176, 255, 255, 159, 144, 255, 255, 255, 126, 20, 16, 115, 254, 255, 255, 95, 32, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 31, 0, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 0, 80, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 0, 178, 255, 255, 255, 255, 255, 255, 255, 28, 0, 0, 0, 0, 97, 251, 255, 255, 255, 255, 126, 0, 0, 0, 0, 0, 0, 176, 255, 255, 223, 90, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 32, 51, 51, 2, 0, 0, 0, 0 };
|
||||
/* % */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_37[] = { 32, 31, 34, 1, 30, 0, 0, 181, 254, 174, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 255, 255, 255, 159, 0, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 253, 255, 255, 255, 255, 11, 0, 0, 0, 96, 255, 255, 12, 0, 0, 128, 255, 255, 223, 255, 255, 95, 0, 0, 0, 241, 255, 255, 3, 0, 0, 241, 255, 143, 0, 177, 255, 239, 0, 0, 0, 251, 255, 143, 0, 0, 0, 245, 255, 12, 0, 16, 255, 255, 2, 0, 80, 255, 255, 14, 0, 0, 0, 247, 255, 8, 0, 0, 252, 255, 4, 0, 224, 255, 255, 4, 0, 0, 0, 247, 255, 8, 0, 0, 252, 255, 4, 0, 249, 255, 175, 0, 0, 0, 0, 245, 255, 12, 0, 16, 255, 255, 2, 48, 255, 255, 31, 0, 0, 0, 0, 241, 255, 143, 0, 177, 255, 239, 0, 208, 255, 255, 6, 0, 0, 0, 0, 144, 255, 255, 222, 255, 255, 95, 0, 247, 255, 207, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 11, 32, 255, 255, 47, 0, 0, 0, 0, 0, 0, 177, 255, 255, 255, 159, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 181, 254, 174, 4, 0, 245, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 254, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 239, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 95, 0, 48, 234, 239, 91, 0, 0, 0, 0, 0, 0, 0, 128, 255, 255, 11, 0, 249, 255, 255, 255, 27, 0, 0, 0, 0, 0, 0, 242, 255, 255, 2, 160, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 252, 255, 127, 0, 245, 255, 255, 253, 255, 255, 8, 0, 0, 0, 0, 96, 255, 255, 13, 0, 253, 255, 27, 0, 248, 255, 31, 0, 0, 0, 0, 225, 255, 255, 3, 32, 255, 255, 1, 0, 192, 255, 95, 0, 0, 0, 0, 250, 255, 159, 0, 64, 255, 207, 0, 0, 128, 255, 127, 0, 0, 0, 64, 255, 255, 14, 0, 64, 255, 207, 0, 0, 128, 255, 143, 0, 0, 0, 208, 255, 255, 5, 0, 32, 255, 255, 1, 0, 192, 255, 111, 0, 0, 0, 248, 255, 191, 0, 0, 0, 254, 255, 27, 0, 248, 255, 31, 0, 0, 48, 255, 255, 31, 0, 0, 0, 245, 255, 255, 237, 255, 255, 9, 0, 0, 192, 255, 255, 7, 0, 0, 0, 176, 255, 255, 255, 255, 223, 0, 0, 0, 246, 255, 207, 0, 0, 0, 0, 0, 249, 255, 255, 255, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 234, 239, 91, 0, 0 };
|
||||
/* & */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_38[] = { 27, 31, 27, 1, 30, 0, 0, 0, 130, 236, 239, 140, 1, 0, 0, 0, 0, 0, 0, 0, 0, 128, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 16, 253, 255, 255, 255, 255, 255, 29, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 244, 255, 255, 223, 202, 255, 255, 255, 4, 0, 0, 0, 0, 0, 249, 255, 255, 5, 0, 244, 255, 255, 10, 0, 0, 0, 0, 0, 252, 255, 175, 0, 0, 144, 255, 255, 13, 0, 0, 0, 0, 0, 253, 255, 127, 0, 0, 80, 255, 255, 14, 0, 0, 0, 0, 0, 251, 255, 159, 0, 0, 112, 255, 255, 12, 0, 0, 0, 0, 0, 248, 255, 239, 0, 0, 208, 255, 255, 9, 0, 0, 0, 0, 0, 242, 255, 255, 11, 16, 252, 255, 255, 3, 0, 0, 0, 0, 0, 112, 255, 255, 159, 211, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 255, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 255, 191, 1, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 255, 239, 6, 0, 0, 0, 0, 0, 0, 0, 0, 210, 255, 255, 255, 111, 0, 0, 0, 0, 0, 0, 0, 0, 64, 254, 255, 255, 255, 255, 4, 0, 64, 238, 238, 11, 0, 0, 244, 255, 255, 255, 255, 255, 63, 0, 96, 255, 255, 9, 0, 32, 255, 255, 255, 156, 255, 255, 239, 2, 160, 255, 255, 7, 0, 160, 255, 255, 191, 0, 250, 255, 255, 30, 240, 255, 255, 4, 0, 240, 255, 255, 12, 0, 176, 255, 255, 223, 248, 255, 239, 0, 0, 242, 255, 255, 3, 0, 0, 252, 255, 255, 255, 255, 143, 0, 0, 244, 255, 255, 0, 0, 0, 209, 255, 255, 255, 255, 31, 0, 0, 244, 255, 255, 0, 0, 0, 32, 254, 255, 255, 255, 7, 0, 0, 243, 255, 255, 6, 0, 0, 0, 243, 255, 255, 239, 0, 0, 0, 224, 255, 255, 79, 0, 0, 16, 249, 255, 255, 255, 8, 0, 0, 128, 255, 255, 255, 140, 134, 251, 255, 255, 255, 255, 127, 0, 0, 0, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 0, 0, 226, 255, 255, 255, 255, 255, 255, 143, 246, 255, 255, 95, 0, 0, 16, 250, 255, 255, 255, 255, 191, 2, 64, 254, 255, 255, 4, 0, 0, 16, 183, 254, 223, 138, 2, 0, 0, 0, 0, 0, 0 };
|
||||
/* ' */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_39[] = { 6, 10, 10, 2, 29, 247, 255, 95, 247, 255, 95, 247, 255, 95, 247, 255, 95, 247, 255, 95, 247, 255, 95, 247, 255, 95, 247, 255, 95, 247, 255, 95, 165, 170, 58 };
|
||||
/* ( */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_40[] = { 13, 40, 15, 2, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 223, 0, 0, 0, 48, 255, 255, 79, 0, 0, 0, 192, 255, 255, 10, 0, 0, 0, 244, 255, 255, 2, 0, 0, 0, 252, 255, 159, 0, 0, 0, 48, 255, 255, 47, 0, 0, 0, 160, 255, 255, 11, 0, 0, 0, 240, 255, 255, 5, 0, 0, 0, 245, 255, 255, 0, 0, 0, 0, 250, 255, 175, 0, 0, 0, 0, 254, 255, 111, 0, 0, 0, 32, 255, 255, 47, 0, 0, 0, 96, 255, 255, 14, 0, 0, 0, 128, 255, 255, 11, 0, 0, 0, 176, 255, 255, 9, 0, 0, 0, 208, 255, 255, 6, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 3, 0, 0, 0, 240, 255, 255, 3, 0, 0, 0, 240, 255, 255, 3, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 208, 255, 255, 6, 0, 0, 0, 160, 255, 255, 9, 0, 0, 0, 128, 255, 255, 11, 0, 0, 0, 80, 255, 255, 14, 0, 0, 0, 32, 255, 255, 47, 0, 0, 0, 0, 254, 255, 111, 0, 0, 0, 0, 250, 255, 175, 0, 0, 0, 0, 245, 255, 255, 0, 0, 0, 0, 240, 255, 255, 5, 0, 0, 0, 144, 255, 255, 11, 0, 0, 0, 48, 255, 255, 47, 0, 0, 0, 0, 251, 255, 159, 0, 0, 0, 0, 244, 255, 255, 2, 0, 0, 0, 176, 255, 255, 10, 0, 0, 0, 32, 255, 255, 79, 0, 0, 0, 0, 248, 255, 239, 0 };
|
||||
/* ) */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_41[] = { 13, 40, 15, 0, 32, 0, 0, 0, 0, 0, 0, 0, 192, 255, 255, 10, 0, 0, 0, 32, 255, 255, 79, 0, 0, 0, 0, 248, 255, 223, 0, 0, 0, 0, 241, 255, 255, 6, 0, 0, 0, 128, 255, 255, 13, 0, 0, 0, 16, 255, 255, 95, 0, 0, 0, 0, 249, 255, 191, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 224, 255, 255, 7, 0, 0, 0, 128, 255, 255, 12, 0, 0, 0, 64, 255, 255, 15, 0, 0, 0, 0, 255, 255, 79, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 250, 255, 175, 0, 0, 0, 0, 247, 255, 207, 0, 0, 0, 0, 245, 255, 239, 0, 0, 0, 0, 243, 255, 255, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 241, 255, 255, 2, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 243, 255, 255, 0, 0, 0, 0, 245, 255, 239, 0, 0, 0, 0, 247, 255, 207, 0, 0, 0, 0, 250, 255, 175, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 255, 255, 63, 0, 0, 0, 64, 255, 255, 15, 0, 0, 0, 144, 255, 255, 11, 0, 0, 0, 224, 255, 255, 6, 0, 0, 0, 244, 255, 255, 1, 0, 0, 0, 250, 255, 191, 0, 0, 0, 16, 255, 255, 79, 0, 0, 0, 128, 255, 255, 13, 0, 0, 0, 241, 255, 255, 5, 0, 0, 0, 249, 255, 223, 0, 0, 0, 48, 255, 255, 79, 0, 0, 0, 208, 255, 255, 9, 0, 0, 0 };
|
||||
/* * */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_42[] = { 18, 17, 21, 1, 29, 0, 0, 0, 192, 255, 95, 0, 0, 0, 0, 0, 0, 176, 255, 79, 0, 0, 0, 0, 0, 0, 160, 255, 63, 0, 0, 0, 0, 0, 0, 144, 255, 47, 0, 0, 0, 32, 57, 0, 128, 255, 31, 0, 80, 8, 112, 255, 125, 113, 255, 15, 164, 255, 31, 192, 255, 255, 239, 255, 239, 255, 255, 95, 241, 255, 255, 255, 255, 255, 255, 255, 175, 97, 201, 255, 255, 255, 255, 255, 190, 71, 0, 0, 48, 252, 255, 255, 39, 0, 0, 0, 0, 80, 255, 255, 255, 13, 0, 0, 0, 0, 242, 255, 223, 255, 175, 0, 0, 0, 16, 253, 255, 42, 255, 255, 8, 0, 0, 176, 255, 239, 1, 246, 255, 95, 0, 0, 160, 255, 95, 0, 192, 255, 95, 0, 0, 0, 247, 10, 0, 32, 223, 2, 0, 0, 0, 64, 1, 0, 0, 4, 0, 0 };
|
||||
/* + */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_43[] = { 19, 21, 23, 2, 23, 0, 0, 0, 64, 102, 86, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 152, 153, 153, 233, 255, 255, 153, 153, 153, 9, 254, 255, 255, 255, 255, 255, 255, 255, 255, 15, 254, 255, 255, 255, 255, 255, 255, 255, 255, 15, 254, 255, 255, 255, 255, 255, 255, 255, 255, 15, 254, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 192, 255, 223, 0, 0, 0, 0, 0, 0, 0, 144, 204, 172, 0, 0, 0, 0 };
|
||||
/* , */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_44[] = { 8, 10, 11, 1, 6, 80, 255, 255, 127, 112, 255, 255, 47, 128, 255, 255, 14, 160, 255, 255, 9, 192, 255, 255, 5, 224, 255, 255, 1, 240, 255, 207, 0, 241, 255, 127, 0, 243, 255, 63, 0, 163, 170, 10, 0 };
|
||||
/* - */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_45[] = { 16, 5, 18, 1, 15, 209, 221, 221, 221, 221, 221, 221, 45, 241, 255, 255, 255, 255, 255, 255, 47, 241, 255, 255, 255, 255, 255, 255, 47, 241, 255, 255, 255, 255, 255, 255, 47, 241, 255, 255, 255, 255, 255, 255, 47 };
|
||||
/* . */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_46[] = { 7, 6, 11, 2, 6, 214, 221, 221, 5, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6 };
|
||||
/* / */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_47[] = { 17, 40, 17, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 0, 0, 243, 255, 255, 0, 0, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 0, 16, 255, 255, 47, 0, 0, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 249, 255, 175, 0, 0, 0, 0, 0, 0, 253, 255, 111, 0, 0, 0, 0, 0, 32, 255, 255, 31, 0, 0, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 0, 0, 192, 255, 255, 7, 0, 0, 0, 0, 0, 241, 255, 255, 3, 0, 0, 0, 0, 0, 245, 255, 239, 0, 0, 0, 0, 0, 0, 250, 255, 159, 0, 0, 0, 0, 0, 0, 254, 255, 79, 0, 0, 0, 0, 0, 48, 255, 255, 15, 0, 0, 0, 0, 0, 128, 255, 255, 11, 0, 0, 0, 0, 0, 208, 255, 255, 6, 0, 0, 0, 0, 0, 241, 255, 255, 2, 0, 0, 0, 0, 0, 246, 255, 223, 0, 0, 0, 0, 0, 0, 251, 255, 143, 0, 0, 0, 0, 0, 0, 255, 255, 63, 0, 0, 0, 0, 0, 64, 255, 255, 14, 0, 0, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 0, 0, 247, 255, 207, 0, 0, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 0, 16, 255, 255, 47, 0, 0, 0, 0, 0, 80, 255, 255, 13, 0, 0, 0, 0, 0, 160, 255, 255, 9, 0, 0, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 0, 0, 253, 255, 111, 0, 0, 0, 0, 0, 0 };
|
||||
/* 0 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_48[] = { 26, 31, 28, 1, 30, 0, 0, 0, 0, 81, 219, 255, 189, 22, 0, 0, 0, 0, 0, 0, 0, 112, 255, 255, 255, 255, 255, 8, 0, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 239, 3, 0, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 62, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 239, 1, 0, 0, 144, 255, 255, 255, 142, 85, 215, 255, 255, 255, 11, 0, 0, 242, 255, 255, 159, 0, 0, 0, 248, 255, 255, 79, 0, 0, 249, 255, 255, 9, 0, 0, 0, 112, 255, 255, 191, 0, 0, 255, 255, 239, 0, 0, 0, 0, 0, 252, 255, 255, 2, 80, 255, 255, 111, 0, 0, 0, 0, 0, 244, 255, 255, 6, 128, 255, 255, 31, 0, 0, 0, 0, 0, 224, 255, 255, 10, 192, 255, 255, 12, 0, 0, 0, 0, 0, 160, 255, 255, 14, 224, 255, 255, 9, 0, 0, 0, 0, 0, 112, 255, 255, 15, 240, 255, 255, 7, 0, 0, 0, 0, 0, 80, 255, 255, 31, 240, 255, 255, 6, 0, 0, 0, 0, 0, 64, 255, 255, 47, 241, 255, 255, 5, 0, 0, 0, 0, 0, 48, 255, 255, 63, 240, 255, 255, 6, 0, 0, 0, 0, 0, 64, 255, 255, 47, 240, 255, 255, 7, 0, 0, 0, 0, 0, 80, 255, 255, 31, 224, 255, 255, 9, 0, 0, 0, 0, 0, 112, 255, 255, 15, 192, 255, 255, 12, 0, 0, 0, 0, 0, 160, 255, 255, 14, 128, 255, 255, 31, 0, 0, 0, 0, 0, 224, 255, 255, 10, 80, 255, 255, 111, 0, 0, 0, 0, 0, 244, 255, 255, 7, 16, 255, 255, 239, 0, 0, 0, 0, 0, 252, 255, 255, 2, 0, 249, 255, 255, 9, 0, 0, 0, 112, 255, 255, 191, 0, 0, 242, 255, 255, 159, 0, 0, 0, 247, 255, 255, 79, 0, 0, 144, 255, 255, 255, 142, 68, 215, 255, 255, 255, 11, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 239, 1, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 63, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 239, 3, 0, 0, 0, 0, 0, 112, 255, 255, 255, 255, 255, 9, 0, 0, 0, 0, 0, 0, 0, 97, 219, 255, 189, 22, 0, 0, 0, 0 };
|
||||
/* 1 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_49[] = { 12, 29, 16, 1, 29, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 48, 255, 255, 159, 255, 255, 255, 255, 255, 159, 255, 255, 255, 255, 255, 159, 255, 255, 255, 255, 255, 159, 255, 255, 255, 255, 255, 159, 255, 255, 255, 255, 255, 159, 68, 68, 68, 254, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159, 0, 0, 0, 253, 255, 159 };
|
||||
/* 2 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_50[] = { 22, 30, 24, 1, 30, 0, 0, 0, 97, 219, 255, 189, 23, 0, 0, 0, 0, 0, 128, 255, 255, 255, 255, 255, 9, 0, 0, 0, 16, 252, 255, 255, 255, 255, 255, 223, 1, 0, 0, 192, 255, 255, 255, 255, 255, 255, 255, 12, 0, 0, 248, 255, 255, 255, 255, 255, 255, 255, 143, 0, 16, 255, 255, 255, 159, 85, 249, 255, 255, 255, 1, 112, 255, 255, 223, 2, 0, 32, 254, 255, 255, 6, 192, 255, 255, 63, 0, 0, 0, 245, 255, 255, 10, 240, 255, 255, 11, 0, 0, 0, 240, 255, 255, 12, 240, 255, 255, 7, 0, 0, 0, 208, 255, 255, 12, 80, 85, 85, 2, 0, 0, 0, 240, 255, 255, 10, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 4, 0, 0, 0, 0, 0, 0, 176, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 63, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 4, 0, 0, 0, 0, 0, 0, 251, 255, 255, 111, 0, 0, 0, 0, 0, 0, 192, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 252, 255, 255, 127, 0, 0, 0, 0, 0, 0, 193, 255, 255, 255, 7, 0, 0, 0, 0, 0, 16, 252, 255, 255, 111, 0, 0, 0, 0, 0, 0, 209, 255, 255, 255, 6, 0, 0, 0, 0, 0, 16, 253, 255, 255, 111, 0, 0, 0, 0, 0, 0, 209, 255, 255, 255, 5, 0, 0, 0, 0, 0, 32, 254, 255, 255, 159, 51, 51, 51, 51, 51, 3, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63 };
|
||||
/* 3 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_51[] = { 22, 31, 24, 1, 30, 0, 0, 0, 115, 236, 255, 189, 23, 0, 0, 0, 0, 0, 178, 255, 255, 255, 255, 255, 8, 0, 0, 0, 80, 255, 255, 255, 255, 255, 255, 223, 1, 0, 0, 245, 255, 255, 255, 255, 255, 255, 255, 12, 0, 16, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 128, 255, 255, 255, 123, 100, 232, 255, 255, 255, 0, 224, 255, 255, 79, 0, 0, 16, 252, 255, 255, 4, 242, 255, 255, 8, 0, 0, 0, 242, 255, 255, 7, 244, 255, 255, 4, 0, 0, 0, 224, 255, 255, 9, 32, 34, 34, 0, 0, 0, 0, 224, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 252, 255, 255, 2, 0, 0, 0, 0, 0, 32, 213, 255, 255, 191, 0, 0, 0, 0, 0, 245, 255, 255, 255, 255, 30, 0, 0, 0, 0, 0, 245, 255, 255, 255, 207, 2, 0, 0, 0, 0, 0, 245, 255, 255, 255, 29, 0, 0, 0, 0, 0, 0, 245, 255, 255, 255, 239, 4, 0, 0, 0, 0, 0, 212, 253, 255, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 130, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 13, 67, 68, 52, 0, 0, 0, 0, 128, 255, 255, 15, 250, 255, 239, 0, 0, 0, 0, 128, 255, 255, 15, 249, 255, 255, 4, 0, 0, 0, 208, 255, 255, 14, 244, 255, 255, 62, 0, 0, 0, 249, 255, 255, 11, 224, 255, 255, 255, 122, 84, 232, 255, 255, 255, 5, 96, 255, 255, 255, 255, 255, 255, 255, 255, 223, 0, 0, 250, 255, 255, 255, 255, 255, 255, 255, 46, 0, 0, 160, 255, 255, 255, 255, 255, 255, 239, 3, 0, 0, 0, 230, 255, 255, 255, 255, 255, 25, 0, 0, 0, 0, 0, 149, 236, 255, 189, 23, 0, 0, 0 };
|
||||
/* 4 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_52[] = { 23, 29, 24, 0, 29, 0, 0, 0, 0, 0, 242, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 16, 254, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 144, 255, 255, 143, 255, 255, 143, 0, 0, 0, 0, 0, 242, 255, 255, 10, 254, 255, 143, 0, 0, 0, 0, 0, 251, 255, 255, 1, 254, 255, 143, 0, 0, 0, 0, 64, 255, 255, 127, 0, 254, 255, 143, 0, 0, 0, 0, 208, 255, 255, 14, 0, 254, 255, 143, 0, 0, 0, 0, 246, 255, 255, 5, 0, 254, 255, 143, 0, 0, 0, 16, 254, 255, 207, 0, 0, 254, 255, 143, 0, 0, 0, 144, 255, 255, 63, 0, 0, 254, 255, 143, 0, 0, 0, 242, 255, 255, 9, 0, 0, 254, 255, 143, 0, 0, 0, 251, 255, 255, 1, 0, 0, 254, 255, 143, 0, 0, 64, 255, 255, 127, 0, 0, 0, 254, 255, 143, 0, 0, 208, 255, 255, 14, 0, 0, 0, 254, 255, 143, 0, 0, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 143, 0, 0 };
|
||||
/* 5 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_53[] = { 22, 30, 25, 1, 29, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 3, 0, 241, 255, 255, 255, 255, 255, 255, 255, 255, 3, 0, 242, 255, 255, 255, 255, 255, 255, 255, 255, 3, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 3, 0, 246, 255, 255, 255, 255, 255, 255, 255, 255, 3, 0, 247, 255, 223, 68, 68, 68, 68, 68, 68, 0, 0, 249, 255, 175, 0, 0, 0, 0, 0, 0, 0, 0, 250, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 95, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 95, 199, 254, 239, 107, 1, 0, 0, 16, 255, 255, 255, 255, 255, 255, 255, 126, 0, 0, 32, 255, 255, 255, 255, 255, 255, 255, 255, 10, 0, 64, 255, 255, 255, 255, 255, 255, 255, 255, 175, 0, 80, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 112, 255, 255, 255, 75, 1, 99, 254, 255, 255, 14, 128, 238, 238, 94, 0, 0, 0, 209, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 48, 255, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 207, 0, 0, 0, 0, 0, 0, 0, 0, 250, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 250, 255, 223, 208, 221, 221, 6, 0, 0, 0, 0, 253, 255, 191, 224, 255, 255, 13, 0, 0, 0, 80, 255, 255, 143, 160, 255, 255, 191, 1, 0, 0, 227, 255, 255, 79, 64, 255, 255, 255, 158, 70, 166, 255, 255, 255, 13, 0, 251, 255, 255, 255, 255, 255, 255, 255, 255, 4, 0, 225, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 9, 0, 0, 0, 145, 255, 255, 255, 255, 255, 93, 0, 0, 0, 0, 0, 97, 219, 254, 206, 73, 0, 0, 0 };
|
||||
/* 6 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_54[] = { 22, 30, 24, 1, 29, 0, 0, 0, 0, 0, 245, 255, 255, 14, 0, 0, 0, 0, 0, 0, 16, 254, 255, 255, 5, 0, 0, 0, 0, 0, 0, 144, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 8, 0, 0, 0, 0, 0, 0, 128, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 252, 255, 255, 10, 0, 0, 0, 0, 0, 0, 96, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 225, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 250, 255, 255, 255, 223, 57, 0, 0, 0, 0, 64, 255, 255, 255, 255, 255, 255, 43, 0, 0, 0, 208, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 248, 255, 255, 255, 255, 255, 255, 255, 79, 0, 16, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1, 128, 255, 255, 255, 76, 17, 147, 255, 255, 255, 9, 208, 255, 255, 143, 0, 0, 0, 243, 255, 255, 15, 241, 255, 255, 12, 0, 0, 0, 112, 255, 255, 95, 243, 255, 255, 6, 0, 0, 0, 16, 255, 255, 143, 244, 255, 255, 3, 0, 0, 0, 0, 253, 255, 159, 244, 255, 255, 3, 0, 0, 0, 0, 254, 255, 159, 242, 255, 255, 6, 0, 0, 0, 16, 255, 255, 143, 240, 255, 255, 13, 0, 0, 0, 112, 255, 255, 95, 160, 255, 255, 159, 0, 0, 0, 244, 255, 255, 15, 48, 255, 255, 255, 92, 18, 148, 255, 255, 255, 9, 0, 250, 255, 255, 255, 255, 255, 255, 255, 239, 1, 0, 208, 255, 255, 255, 255, 255, 255, 255, 63, 0, 0, 16, 252, 255, 255, 255, 255, 255, 239, 4, 0, 0, 0, 112, 254, 255, 255, 255, 255, 26, 0, 0, 0, 0, 0, 96, 218, 255, 206, 39, 0, 0, 0 };
|
||||
/* 7 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_55[] = { 20, 29, 22, 1, 29, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 68, 68, 68, 68, 68, 68, 196, 255, 255, 127, 0, 0, 0, 0, 0, 0, 241, 255, 255, 31, 0, 0, 0, 0, 0, 0, 247, 255, 255, 10, 0, 0, 0, 0, 0, 0, 254, 255, 255, 3, 0, 0, 0, 0, 0, 80, 255, 255, 207, 0, 0, 0, 0, 0, 0, 176, 255, 255, 95, 0, 0, 0, 0, 0, 0, 242, 255, 255, 14, 0, 0, 0, 0, 0, 0, 249, 255, 255, 8, 0, 0, 0, 0, 0, 0, 255, 255, 255, 1, 0, 0, 0, 0, 0, 112, 255, 255, 175, 0, 0, 0, 0, 0, 0, 208, 255, 255, 63, 0, 0, 0, 0, 0, 0, 244, 255, 255, 13, 0, 0, 0, 0, 0, 0, 251, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 239, 0, 0, 0, 0, 0, 0, 128, 255, 255, 143, 0, 0, 0, 0, 0, 0, 240, 255, 255, 47, 0, 0, 0, 0, 0, 0, 246, 255, 255, 11, 0, 0, 0, 0, 0, 0, 253, 255, 255, 4, 0, 0, 0, 0, 0, 64, 255, 255, 223, 0, 0, 0, 0, 0, 0, 160, 255, 255, 111, 0, 0, 0, 0, 0, 0, 241, 255, 255, 15, 0, 0, 0, 0, 0, 0, 248, 255, 255, 8, 0, 0, 0, 0, 0, 0, 254, 255, 255, 2, 0, 0, 0, 0, 0, 96, 255, 255, 191, 0, 0, 0, 0, 0 };
|
||||
/* 8 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_56[] = { 22, 31, 25, 1, 30, 0, 0, 0, 96, 218, 254, 206, 73, 0, 0, 0, 0, 0, 112, 254, 255, 255, 255, 255, 77, 0, 0, 0, 0, 251, 255, 255, 255, 255, 255, 255, 8, 0, 0, 176, 255, 255, 255, 255, 255, 255, 255, 127, 0, 0, 245, 255, 255, 255, 239, 255, 255, 255, 255, 2, 0, 253, 255, 255, 60, 0, 80, 254, 255, 255, 9, 32, 255, 255, 223, 0, 0, 0, 242, 255, 255, 14, 80, 255, 255, 79, 0, 0, 0, 128, 255, 255, 47, 112, 255, 255, 15, 0, 0, 0, 64, 255, 255, 63, 96, 255, 255, 31, 0, 0, 0, 80, 255, 255, 47, 64, 255, 255, 95, 0, 0, 0, 144, 255, 255, 15, 0, 254, 255, 239, 1, 0, 0, 243, 255, 255, 11, 0, 245, 255, 255, 110, 2, 131, 255, 255, 255, 2, 0, 160, 255, 255, 255, 255, 255, 255, 255, 127, 0, 0, 0, 249, 255, 255, 255, 255, 255, 255, 6, 0, 0, 0, 227, 255, 255, 255, 255, 255, 207, 1, 0, 0, 96, 255, 255, 255, 255, 255, 255, 255, 78, 0, 0, 246, 255, 255, 239, 172, 252, 255, 255, 255, 3, 32, 255, 255, 239, 6, 0, 0, 248, 255, 255, 13, 144, 255, 255, 63, 0, 0, 0, 112, 255, 255, 95, 224, 255, 255, 10, 0, 0, 0, 0, 254, 255, 175, 240, 255, 255, 6, 0, 0, 0, 0, 250, 255, 207, 241, 255, 255, 7, 0, 0, 0, 0, 251, 255, 223, 240, 255, 255, 11, 0, 0, 0, 0, 254, 255, 207, 192, 255, 255, 111, 0, 0, 0, 144, 255, 255, 143, 112, 255, 255, 255, 41, 0, 48, 251, 255, 255, 63, 0, 253, 255, 255, 255, 223, 255, 255, 255, 255, 10, 0, 243, 255, 255, 255, 255, 255, 255, 255, 223, 1, 0, 64, 254, 255, 255, 255, 255, 255, 255, 28, 0, 0, 0, 161, 255, 255, 255, 255, 255, 142, 0, 0, 0, 0, 0, 97, 218, 254, 222, 90, 0, 0, 0 };
|
||||
/* 9 */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_57[] = { 22, 30, 24, 1, 30, 0, 0, 0, 80, 218, 254, 189, 39, 0, 0, 0, 0, 0, 112, 254, 255, 255, 255, 255, 26, 0, 0, 0, 16, 252, 255, 255, 255, 255, 255, 239, 4, 0, 0, 192, 255, 255, 255, 255, 255, 255, 255, 63, 0, 0, 250, 255, 255, 255, 255, 255, 255, 255, 239, 1, 48, 255, 255, 255, 93, 18, 148, 255, 255, 255, 8, 160, 255, 255, 159, 0, 0, 0, 244, 255, 255, 15, 240, 255, 255, 13, 0, 0, 0, 128, 255, 255, 95, 242, 255, 255, 6, 0, 0, 0, 16, 255, 255, 143, 244, 255, 255, 3, 0, 0, 0, 0, 254, 255, 159, 244, 255, 255, 3, 0, 0, 0, 0, 253, 255, 175, 242, 255, 255, 6, 0, 0, 0, 16, 255, 255, 143, 240, 255, 255, 12, 0, 0, 0, 112, 255, 255, 127, 176, 255, 255, 143, 0, 0, 0, 243, 255, 255, 63, 64, 255, 255, 255, 76, 17, 147, 255, 255, 255, 14, 0, 251, 255, 255, 255, 255, 255, 255, 255, 255, 7, 0, 209, 255, 255, 255, 255, 255, 255, 255, 223, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 79, 0, 0, 0, 144, 255, 255, 255, 255, 255, 255, 10, 0, 0, 0, 0, 114, 236, 255, 255, 255, 239, 1, 0, 0, 0, 0, 0, 0, 242, 255, 255, 111, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 11, 0, 0, 0, 0, 0, 0, 80, 255, 255, 255, 2, 0, 0, 0, 0, 0, 0, 224, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 13, 0, 0, 0, 0, 0, 0, 32, 255, 255, 255, 3, 0, 0, 0, 0, 0, 0, 192, 255, 255, 159, 0, 0, 0, 0, 0, 0, 0, 246, 255, 255, 30, 0, 0, 0, 0, 0, 0, 16, 254, 255, 255, 5, 0, 0, 0, 0, 0, 0, 144, 255, 255, 191, 0, 0, 0, 0, 0 };
|
||||
/* : */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_58[] = { 7, 21, 11, 2, 21, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 230, 238, 238, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 214, 221, 221, 5, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6, 247, 255, 255, 6 };
|
||||
/* ; */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_59[] = { 8, 25, 11, 1, 21, 64, 255, 255, 159, 64, 255, 255, 159, 64, 255, 255, 159, 64, 255, 255, 159, 64, 255, 255, 159, 64, 238, 238, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 127, 112, 255, 255, 47, 128, 255, 255, 14, 160, 255, 255, 9, 192, 255, 255, 5, 224, 255, 255, 1, 240, 255, 207, 0, 241, 255, 127, 0, 243, 255, 63, 0, 163, 170, 10, 0 };
|
||||
/* < */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_60[] = { 19, 20, 23, 2, 22, 0, 0, 0, 0, 0, 0, 0, 0, 113, 10, 0, 0, 0, 0, 0, 0, 0, 180, 255, 12, 0, 0, 0, 0, 0, 16, 231, 255, 255, 12, 0, 0, 0, 0, 64, 251, 255, 255, 255, 12, 0, 0, 0, 129, 254, 255, 255, 255, 255, 12, 0, 0, 180, 255, 255, 255, 255, 255, 191, 5, 32, 232, 255, 255, 255, 255, 255, 125, 1, 0, 248, 255, 255, 255, 255, 255, 57, 0, 0, 0, 251, 255, 255, 255, 191, 5, 0, 0, 0, 0, 251, 255, 255, 126, 1, 0, 0, 0, 0, 0, 251, 255, 255, 191, 5, 0, 0, 0, 0, 0, 251, 255, 255, 255, 239, 57, 0, 0, 0, 0, 230, 255, 255, 255, 255, 255, 125, 1, 0, 0, 0, 164, 255, 255, 255, 255, 255, 191, 5, 0, 0, 0, 113, 253, 255, 255, 255, 255, 255, 8, 0, 0, 0, 64, 250, 255, 255, 255, 255, 12, 0, 0, 0, 0, 16, 215, 255, 255, 255, 12, 0, 0, 0, 0, 0, 0, 164, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 113, 253, 12, 0, 0, 0, 0, 0, 0, 0, 0, 48, 7 };
|
||||
/* = */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_61[] = { 19, 14, 23, 2, 19, 144, 153, 153, 153, 153, 153, 153, 153, 153, 1, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 240, 255, 255, 255, 255, 255, 255, 255, 255, 2, 144, 153, 153, 153, 153, 153, 153, 153, 153, 1 };
|
||||
/* > */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_62[] = { 19, 20, 23, 2, 22, 137, 2, 0, 0, 0, 0, 0, 0, 0, 0, 251, 191, 5, 0, 0, 0, 0, 0, 0, 0, 251, 255, 239, 40, 0, 0, 0, 0, 0, 0, 251, 255, 255, 255, 91, 0, 0, 0, 0, 0, 251, 255, 255, 255, 255, 142, 2, 0, 0, 0, 180, 255, 255, 255, 255, 255, 191, 5, 0, 0, 0, 113, 253, 255, 255, 255, 255, 239, 40, 0, 0, 0, 48, 233, 255, 255, 255, 255, 255, 9, 0, 0, 0, 0, 181, 255, 255, 255, 255, 12, 0, 0, 0, 0, 0, 97, 253, 255, 255, 12, 0, 0, 0, 0, 0, 164, 255, 255, 255, 12, 0, 0, 0, 32, 232, 255, 255, 255, 255, 12, 0, 0, 113, 253, 255, 255, 255, 255, 239, 7, 0, 181, 255, 255, 255, 255, 255, 191, 5, 0, 231, 255, 255, 255, 255, 255, 142, 1, 0, 0, 251, 255, 255, 255, 255, 75, 0, 0, 0, 0, 251, 255, 255, 239, 23, 0, 0, 0, 0, 0, 251, 255, 175, 4, 0, 0, 0, 0, 0, 0, 251, 125, 1, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
/* ? */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_63[] = { 20, 30, 22, 1, 30, 0, 0, 32, 200, 254, 223, 123, 2, 0, 0, 0, 32, 251, 255, 255, 255, 255, 175, 1, 0, 0, 244, 255, 255, 255, 255, 255, 255, 62, 0, 48, 255, 255, 255, 255, 255, 255, 255, 239, 2, 192, 255, 255, 255, 255, 255, 255, 255, 255, 11, 244, 255, 255, 175, 20, 98, 254, 255, 255, 63, 249, 255, 255, 8, 0, 0, 192, 255, 255, 143, 253, 255, 255, 0, 0, 0, 48, 255, 255, 175, 220, 221, 173, 0, 0, 0, 0, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 255, 255, 175, 0, 0, 0, 0, 0, 0, 80, 255, 255, 143, 0, 0, 0, 0, 0, 0, 245, 255, 255, 63, 0, 0, 0, 0, 0, 178, 255, 255, 255, 12, 0, 0, 0, 0, 112, 255, 255, 255, 239, 2, 0, 0, 0, 0, 246, 255, 255, 255, 44, 0, 0, 0, 0, 32, 255, 255, 255, 94, 0, 0, 0, 0, 0, 128, 255, 255, 207, 1, 0, 0, 0, 0, 0, 208, 255, 255, 14, 0, 0, 0, 0, 0, 0, 224, 255, 255, 7, 0, 0, 0, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 0, 0, 0, 240, 255, 255, 3, 0, 0, 0, 0, 0, 0, 80, 85, 85, 1, 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, 211, 221, 221, 6, 0, 0, 0, 0, 0, 0, 243, 255, 255, 6, 0, 0, 0, 0, 0, 0, 243, 255, 255, 6, 0, 0, 0, 0, 0, 0, 243, 255, 255, 6, 0, 0, 0, 0, 0, 0, 243, 255, 255, 6, 0, 0, 0, 0, 0, 0, 243, 255, 255, 6, 0, 0, 0 };
|
||||
/* @ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_64[] = { 37, 34, 40, 2, 29, 0, 0, 0, 0, 0, 0, 98, 202, 253, 223, 172, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 255, 255, 255, 255, 255, 255, 158, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 255, 255, 255, 255, 255, 255, 255, 255, 159, 1, 0, 0, 0, 0, 0, 0, 0, 193, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 0, 0, 0, 0, 0, 0, 48, 254, 255, 255, 255, 174, 121, 135, 218, 255, 255, 255, 255, 7, 0, 0, 0, 0, 0, 243, 255, 255, 255, 56, 0, 0, 0, 0, 97, 253, 255, 255, 143, 0, 0, 0, 0, 32, 254, 255, 255, 26, 0, 0, 0, 0, 0, 0, 80, 254, 255, 255, 6, 0, 0, 0, 208, 255, 255, 111, 0, 0, 0, 0, 0, 0, 0, 0, 193, 255, 255, 63, 0, 0, 0, 247, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 191, 0, 0, 16, 254, 255, 111, 0, 0, 48, 217, 255, 140, 2, 252, 239, 0, 225, 255, 255, 4, 0, 128, 255, 255, 11, 0, 16, 250, 255, 255, 255, 175, 255, 239, 0, 80, 255, 255, 12, 0, 208, 255, 255, 2, 0, 209, 255, 255, 255, 255, 255, 255, 239, 0, 0, 252, 255, 31, 0, 242, 255, 175, 0, 0, 252, 255, 255, 255, 255, 255, 255, 239, 0, 0, 245, 255, 111, 0, 247, 255, 95, 0, 80, 255, 255, 127, 2, 179, 255, 255, 239, 0, 0, 241, 255, 175, 0, 250, 255, 31, 0, 192, 255, 255, 3, 0, 0, 249, 255, 239, 0, 0, 208, 255, 207, 0, 251, 255, 14, 0, 241, 255, 159, 0, 0, 0, 224, 255, 239, 0, 0, 176, 255, 239, 0, 253, 255, 12, 0, 243, 255, 79, 0, 0, 0, 160, 255, 239, 0, 0, 160, 255, 255, 0, 254, 255, 11, 0, 244, 255, 47, 0, 0, 0, 128, 255, 239, 0, 0, 176, 255, 255, 0, 252, 255, 13, 0, 243, 255, 79, 0, 0, 0, 160, 255, 239, 0, 0, 192, 255, 239, 0, 251, 255, 14, 0, 241, 255, 159, 0, 0, 0, 224, 255, 239, 0, 0, 241, 255, 191, 0, 249, 255, 47, 0, 192, 255, 255, 3, 0, 0, 249, 255, 255, 1, 0, 249, 255, 127, 0, 245, 255, 127, 0, 80, 255, 255, 127, 2, 179, 255, 255, 255, 76, 164, 255, 255, 47, 0, 240, 255, 223, 0, 0, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 0, 176, 255, 255, 7, 0, 209, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 223, 0, 0, 48, 255, 255, 63, 0, 16, 251, 255, 255, 255, 191, 65, 255, 255, 255, 255, 27, 0, 0, 0, 250, 255, 239, 2, 0, 48, 217, 255, 172, 3, 0, 129, 252, 223, 73, 0, 0, 0, 0, 242, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 255, 255, 255, 157, 37, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 193, 255, 255, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 255, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 251, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 101, 102, 102, 102, 102, 2, 0, 0, 0, 0, 0 };
|
||||
/* A */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_65[] = { 29, 29, 29, 0, 29, 0, 0, 0, 0, 0, 250, 255, 255, 255, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 255, 255, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 255, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 255, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 245, 255, 255, 13, 0, 0, 0, 0, 0, 0, 0, 48, 255, 255, 175, 176, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 79, 80, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 224, 255, 255, 15, 0, 255, 255, 239, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 10, 0, 250, 255, 255, 4, 0, 0, 0, 0, 0, 0, 250, 255, 255, 4, 0, 245, 255, 255, 10, 0, 0, 0, 0, 0, 0, 255, 255, 239, 0, 0, 240, 255, 255, 15, 0, 0, 0, 0, 0, 96, 255, 255, 159, 0, 0, 160, 255, 255, 95, 0, 0, 0, 0, 0, 192, 255, 255, 79, 0, 0, 64, 255, 255, 191, 0, 0, 0, 0, 0, 241, 255, 255, 14, 0, 0, 0, 254, 255, 255, 1, 0, 0, 0, 0, 247, 255, 255, 9, 0, 0, 0, 249, 255, 255, 7, 0, 0, 0, 0, 253, 255, 255, 4, 0, 0, 0, 244, 255, 255, 12, 0, 0, 0, 48, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 47, 0, 0, 0, 128, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 143, 0, 0, 0, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 0, 0, 0, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, 0, 0, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 10, 0, 0, 255, 255, 255, 2, 0, 0, 0, 0, 0, 242, 255, 255, 15, 0, 80, 255, 255, 207, 0, 0, 0, 0, 0, 0, 192, 255, 255, 95, 0, 176, 255, 255, 111, 0, 0, 0, 0, 0, 0, 96, 255, 255, 191, 0, 241, 255, 255, 15, 0, 0, 0, 0, 0, 0, 16, 255, 255, 255, 1, 247, 255, 255, 10, 0, 0, 0, 0, 0, 0, 0, 250, 255, 255, 7, 253, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 12 };
|
||||
/* B */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_66[] = { 23, 29, 28, 3, 29, 253, 255, 255, 255, 255, 255, 255, 222, 73, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 27, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 2, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 253, 255, 255, 221, 221, 221, 237, 255, 255, 255, 111, 0, 253, 255, 159, 0, 0, 0, 0, 177, 255, 255, 207, 0, 253, 255, 159, 0, 0, 0, 0, 0, 253, 255, 255, 0, 253, 255, 159, 0, 0, 0, 0, 0, 247, 255, 255, 2, 253, 255, 159, 0, 0, 0, 0, 0, 244, 255, 255, 2, 253, 255, 159, 0, 0, 0, 0, 0, 247, 255, 255, 0, 253, 255, 159, 0, 0, 0, 0, 0, 253, 255, 207, 0, 253, 255, 159, 0, 0, 0, 0, 196, 255, 255, 111, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 6, 0, 253, 255, 255, 221, 221, 221, 221, 255, 255, 255, 63, 0, 253, 255, 159, 0, 0, 0, 0, 128, 255, 255, 207, 0, 253, 255, 159, 0, 0, 0, 0, 0, 248, 255, 255, 3, 253, 255, 159, 0, 0, 0, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 0, 224, 255, 255, 9, 253, 255, 159, 0, 0, 0, 0, 0, 240, 255, 255, 8, 253, 255, 159, 0, 0, 0, 0, 0, 248, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 112, 255, 255, 255, 3, 253, 255, 239, 221, 221, 221, 221, 255, 255, 255, 223, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 7, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 94, 0, 0, 253, 255, 255, 255, 255, 255, 255, 239, 107, 0, 0, 0 };
|
||||
/* C */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_67[] = { 29, 31, 31, 1, 30, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 126, 0, 0, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 45, 0, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 4, 0, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 0, 0, 0, 0, 253, 255, 255, 255, 123, 69, 166, 255, 255, 255, 239, 1, 0, 0, 160, 255, 255, 255, 26, 0, 0, 0, 177, 255, 255, 255, 9, 0, 0, 242, 255, 255, 127, 0, 0, 0, 0, 0, 247, 255, 255, 47, 0, 0, 250, 255, 255, 8, 0, 0, 0, 0, 0, 160, 255, 255, 159, 0, 16, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 0, 80, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 231, 238, 238, 3, 160, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 16, 17, 17, 0, 96, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 3, 16, 255, 255, 207, 0, 0, 0, 0, 0, 0, 16, 255, 255, 239, 0, 0, 250, 255, 255, 7, 0, 0, 0, 0, 0, 160, 255, 255, 159, 0, 0, 242, 255, 255, 111, 0, 0, 0, 0, 0, 247, 255, 255, 47, 0, 0, 160, 255, 255, 255, 26, 0, 0, 0, 177, 255, 255, 255, 9, 0, 0, 0, 253, 255, 255, 255, 107, 69, 150, 255, 255, 255, 223, 1, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 4, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 61, 0, 0, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 0, 0, 0, 0, 0 };
|
||||
/* D */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_68[] = { 26, 29, 30, 3, 29, 253, 255, 255, 255, 255, 239, 189, 39, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 93, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 44, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 4, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 0, 0, 253, 255, 191, 68, 68, 84, 166, 255, 255, 255, 239, 2, 0, 253, 255, 159, 0, 0, 0, 0, 129, 255, 255, 255, 12, 0, 253, 255, 159, 0, 0, 0, 0, 0, 244, 255, 255, 95, 0, 253, 255, 159, 0, 0, 0, 0, 0, 64, 255, 255, 223, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 249, 255, 255, 3, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 8, 253, 255, 159, 0, 0, 0, 0, 0, 0, 192, 255, 255, 13, 253, 255, 159, 0, 0, 0, 0, 0, 0, 128, 255, 255, 15, 253, 255, 159, 0, 0, 0, 0, 0, 0, 96, 255, 255, 15, 253, 255, 159, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 253, 255, 159, 0, 0, 0, 0, 0, 0, 96, 255, 255, 15, 253, 255, 159, 0, 0, 0, 0, 0, 0, 128, 255, 255, 15, 253, 255, 159, 0, 0, 0, 0, 0, 0, 192, 255, 255, 13, 253, 255, 159, 0, 0, 0, 0, 0, 0, 241, 255, 255, 8, 253, 255, 159, 0, 0, 0, 0, 0, 0, 249, 255, 255, 3, 253, 255, 159, 0, 0, 0, 0, 0, 64, 255, 255, 223, 0, 253, 255, 159, 0, 0, 0, 0, 0, 244, 255, 255, 95, 0, 253, 255, 159, 0, 0, 0, 0, 128, 255, 255, 255, 13, 0, 253, 255, 191, 51, 51, 68, 166, 255, 255, 255, 239, 2, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 4, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 44, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 93, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 189, 55, 0, 0, 0, 0, 0 };
|
||||
/* E */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_69[] = { 20, 29, 25, 3, 29, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 175, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 15, 253, 255, 255, 255, 255, 255, 255, 255, 255, 15, 253, 255, 255, 255, 255, 255, 255, 255, 255, 15, 253, 255, 255, 255, 255, 255, 255, 255, 255, 15, 253, 255, 255, 255, 255, 255, 255, 255, 255, 15, 253, 255, 175, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239 };
|
||||
/* F */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_70[] = { 20, 29, 25, 3, 29, 253, 255, 255, 255, 255, 255, 255, 255, 255, 175, 253, 255, 255, 255, 255, 255, 255, 255, 255, 175, 253, 255, 255, 255, 255, 255, 255, 255, 255, 175, 253, 255, 255, 255, 255, 255, 255, 255, 255, 175, 253, 255, 255, 255, 255, 255, 255, 255, 255, 175, 253, 255, 175, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 253, 255, 175, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0 };
|
||||
/* G */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_71[] = { 29, 31, 32, 1, 30, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 110, 0, 0, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 45, 0, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 4, 0, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 63, 0, 0, 0, 0, 253, 255, 255, 255, 123, 85, 167, 255, 255, 255, 239, 1, 0, 0, 144, 255, 255, 255, 26, 0, 0, 0, 162, 255, 255, 255, 10, 0, 0, 242, 255, 255, 127, 0, 0, 0, 0, 0, 248, 255, 255, 63, 0, 0, 250, 255, 255, 8, 0, 0, 0, 0, 0, 160, 255, 255, 175, 0, 16, 255, 255, 223, 0, 0, 0, 0, 0, 0, 16, 254, 255, 255, 0, 80, 255, 255, 111, 0, 0, 0, 0, 0, 0, 0, 198, 204, 204, 3, 144, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 6, 0, 0, 0, 0, 34, 34, 34, 34, 34, 34, 1, 241, 255, 255, 5, 0, 0, 0, 48, 255, 255, 255, 255, 255, 255, 9, 240, 255, 255, 6, 0, 0, 0, 48, 255, 255, 255, 255, 255, 255, 9, 240, 255, 255, 7, 0, 0, 0, 48, 255, 255, 255, 255, 255, 255, 9, 224, 255, 255, 10, 0, 0, 0, 48, 255, 255, 255, 255, 255, 255, 9, 160, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 224, 255, 255, 9, 96, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 9, 16, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 9, 0, 251, 255, 255, 7, 0, 0, 0, 0, 0, 48, 255, 255, 255, 9, 0, 243, 255, 255, 111, 0, 0, 0, 0, 0, 227, 255, 255, 255, 9, 0, 160, 255, 255, 255, 25, 0, 0, 0, 112, 255, 255, 255, 255, 9, 0, 0, 253, 255, 255, 255, 107, 68, 150, 254, 255, 255, 255, 255, 9, 0, 0, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 0, 0, 32, 254, 255, 255, 255, 255, 255, 255, 255, 159, 255, 255, 9, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 7, 253, 255, 9, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 60, 0, 250, 255, 9, 0, 0, 0, 0, 0, 114, 219, 254, 206, 56, 0, 0, 0, 0, 0 };
|
||||
/* H */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_72[] = { 25, 29, 30, 3, 29, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 207, 119, 119, 119, 119, 119, 119, 248, 255, 255, 4, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 0, 242, 255, 255, 4 };
|
||||
/* I */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_73[] = { 6, 29, 12, 3, 29, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159, 253, 255, 159 };
|
||||
/* J */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_74[] = { 15, 29, 17, 0, 29, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 242, 255, 255, 4, 0, 0, 0, 0, 243, 255, 255, 4, 0, 0, 0, 0, 245, 255, 255, 4, 50, 51, 51, 84, 253, 255, 255, 3, 249, 255, 255, 255, 255, 255, 255, 1, 249, 255, 255, 255, 255, 255, 239, 0, 249, 255, 255, 255, 255, 255, 127, 0, 249, 255, 255, 255, 255, 255, 11, 0, 249, 255, 255, 255, 223, 91, 0, 0 };
|
||||
/* K */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_75[] = { 24, 29, 25, 3, 29, 253, 255, 159, 0, 0, 0, 0, 176, 255, 255, 239, 1, 253, 255, 159, 0, 0, 0, 0, 247, 255, 255, 79, 0, 253, 255, 159, 0, 0, 0, 64, 255, 255, 255, 7, 0, 253, 255, 159, 0, 0, 0, 225, 255, 255, 175, 0, 0, 253, 255, 159, 0, 0, 0, 252, 255, 255, 13, 0, 0, 253, 255, 159, 0, 0, 128, 255, 255, 255, 2, 0, 0, 253, 255, 159, 0, 0, 245, 255, 255, 95, 0, 0, 0, 253, 255, 159, 0, 32, 255, 255, 255, 9, 0, 0, 0, 253, 255, 159, 0, 208, 255, 255, 207, 0, 0, 0, 0, 253, 255, 159, 0, 250, 255, 255, 30, 0, 0, 0, 0, 253, 255, 159, 96, 255, 255, 255, 3, 0, 0, 0, 0, 253, 255, 159, 243, 255, 255, 127, 0, 0, 0, 0, 0, 253, 255, 175, 254, 255, 255, 10, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 143, 0, 0, 0, 0, 0, 0, 253, 255, 239, 255, 255, 255, 4, 0, 0, 0, 0, 0, 253, 255, 159, 249, 255, 255, 46, 0, 0, 0, 0, 0, 253, 255, 159, 192, 255, 255, 223, 0, 0, 0, 0, 0, 253, 255, 159, 16, 254, 255, 255, 11, 0, 0, 0, 0, 253, 255, 159, 0, 243, 255, 255, 143, 0, 0, 0, 0, 253, 255, 159, 0, 80, 255, 255, 255, 5, 0, 0, 0, 253, 255, 159, 0, 0, 248, 255, 255, 47, 0, 0, 0, 253, 255, 159, 0, 0, 176, 255, 255, 239, 1, 0, 0, 253, 255, 159, 0, 0, 16, 253, 255, 255, 12, 0, 0, 253, 255, 159, 0, 0, 0, 242, 255, 255, 159, 0, 0, 253, 255, 159, 0, 0, 0, 80, 255, 255, 255, 6, 0, 253, 255, 159, 0, 0, 0, 0, 247, 255, 255, 63, 0, 253, 255, 159, 0, 0, 0, 0, 160, 255, 255, 239, 1, 253, 255, 159, 0, 0, 0, 0, 0, 253, 255, 255, 12 };
|
||||
/* L */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_76[] = { 20, 29, 23, 3, 29, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 253, 255, 191, 51, 51, 51, 51, 51, 51, 19, 253, 255, 255, 255, 255, 255, 255, 255, 255, 127, 253, 255, 255, 255, 255, 255, 255, 255, 255, 127, 253, 255, 255, 255, 255, 255, 255, 255, 255, 127, 253, 255, 255, 255, 255, 255, 255, 255, 255, 127, 253, 255, 255, 255, 255, 255, 255, 255, 255, 127 };
|
||||
/* M */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_77[] = { 33, 29, 39, 3, 29, 253, 255, 255, 255, 47, 0, 0, 0, 0, 0, 0, 128, 255, 255, 255, 255, 7, 253, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 255, 7, 253, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 255, 7, 253, 255, 255, 255, 255, 2, 0, 0, 0, 0, 0, 248, 255, 255, 255, 255, 7, 253, 255, 255, 255, 255, 8, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 7, 253, 255, 255, 255, 255, 13, 0, 0, 0, 0, 48, 255, 255, 255, 255, 255, 7, 253, 255, 255, 255, 255, 63, 0, 0, 0, 0, 128, 255, 255, 255, 255, 255, 7, 253, 255, 255, 255, 255, 143, 0, 0, 0, 0, 224, 255, 255, 255, 255, 255, 7, 253, 255, 255, 255, 255, 239, 0, 0, 0, 0, 243, 255, 255, 255, 255, 255, 7, 253, 255, 175, 246, 255, 255, 3, 0, 0, 0, 249, 255, 255, 241, 255, 255, 7, 253, 255, 159, 241, 255, 255, 9, 0, 0, 0, 254, 255, 175, 240, 255, 255, 7, 253, 255, 159, 176, 255, 255, 14, 0, 0, 64, 255, 255, 95, 240, 255, 255, 7, 253, 255, 159, 80, 255, 255, 79, 0, 0, 144, 255, 255, 15, 240, 255, 255, 7, 253, 255, 159, 0, 255, 255, 159, 0, 0, 240, 255, 255, 10, 240, 255, 255, 7, 253, 255, 159, 0, 250, 255, 239, 0, 0, 244, 255, 255, 4, 240, 255, 255, 7, 253, 255, 159, 0, 245, 255, 255, 4, 0, 250, 255, 239, 0, 240, 255, 255, 7, 253, 255, 159, 0, 240, 255, 255, 9, 0, 255, 255, 159, 0, 240, 255, 255, 7, 253, 255, 159, 0, 160, 255, 255, 15, 80, 255, 255, 63, 0, 240, 255, 255, 7, 253, 255, 159, 0, 64, 255, 255, 79, 160, 255, 255, 14, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 254, 255, 175, 240, 255, 255, 8, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 249, 255, 255, 253, 255, 255, 3, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 243, 255, 255, 255, 255, 223, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 224, 255, 255, 255, 255, 143, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 128, 255, 255, 255, 255, 47, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 48, 255, 255, 255, 255, 13, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 0, 253, 255, 255, 255, 7, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 0, 247, 255, 255, 255, 1, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 0, 242, 255, 255, 207, 0, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 0, 192, 255, 255, 111, 0, 0, 0, 240, 255, 255, 7 };
|
||||
/* N */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_78[] = { 25, 29, 31, 3, 29, 253, 255, 255, 207, 0, 0, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 4, 0, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 13, 0, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 95, 0, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 239, 0, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 255, 7, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 255, 14, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 255, 143, 0, 0, 0, 240, 255, 255, 7, 253, 255, 255, 255, 255, 255, 1, 0, 0, 240, 255, 255, 7, 253, 255, 175, 245, 255, 255, 9, 0, 0, 240, 255, 255, 7, 253, 255, 159, 192, 255, 255, 47, 0, 0, 240, 255, 255, 7, 253, 255, 159, 48, 255, 255, 175, 0, 0, 240, 255, 255, 7, 253, 255, 159, 0, 251, 255, 255, 3, 0, 240, 255, 255, 7, 253, 255, 159, 0, 242, 255, 255, 11, 0, 240, 255, 255, 7, 253, 255, 159, 0, 160, 255, 255, 79, 0, 240, 255, 255, 7, 253, 255, 159, 0, 16, 255, 255, 207, 0, 240, 255, 255, 7, 253, 255, 159, 0, 0, 248, 255, 255, 5, 240, 255, 255, 7, 253, 255, 159, 0, 0, 241, 255, 255, 13, 240, 255, 255, 7, 253, 255, 159, 0, 0, 112, 255, 255, 111, 240, 255, 255, 7, 253, 255, 159, 0, 0, 0, 254, 255, 239, 241, 255, 255, 7, 253, 255, 159, 0, 0, 0, 246, 255, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 208, 255, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 80, 255, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 252, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 244, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 176, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 48, 255, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 0, 250, 255, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 0, 242, 255, 255, 255, 7 };
|
||||
/* O */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_79[] = { 30, 31, 32, 1, 30, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 126, 0, 0, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 77, 0, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 0, 0, 0, 0, 253, 255, 255, 255, 123, 69, 150, 254, 255, 255, 255, 3, 0, 0, 160, 255, 255, 255, 26, 0, 0, 0, 112, 255, 255, 255, 14, 0, 0, 242, 255, 255, 127, 0, 0, 0, 0, 0, 227, 255, 255, 127, 0, 0, 250, 255, 255, 8, 0, 0, 0, 0, 0, 48, 255, 255, 239, 0, 16, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 6, 80, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 241, 255, 255, 11, 160, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 15, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 96, 255, 255, 47, 240, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 16, 255, 255, 95, 241, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 111, 240, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 16, 255, 255, 95, 240, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 79, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 47, 160, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 15, 96, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 241, 255, 255, 11, 16, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 6, 0, 250, 255, 255, 7, 0, 0, 0, 0, 0, 48, 255, 255, 239, 0, 0, 242, 255, 255, 111, 0, 0, 0, 0, 0, 226, 255, 255, 127, 0, 0, 160, 255, 255, 255, 26, 0, 0, 0, 96, 255, 255, 255, 14, 0, 0, 0, 253, 255, 255, 255, 107, 69, 150, 254, 255, 255, 255, 3, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 6, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 77, 0, 0, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 0, 0, 0, 0, 0 };
|
||||
/* P */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_80[] = { 23, 29, 27, 3, 29, 253, 255, 255, 255, 255, 255, 255, 206, 39, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 207, 1, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 95, 0, 253, 255, 191, 68, 68, 68, 84, 248, 255, 255, 223, 0, 253, 255, 159, 0, 0, 0, 0, 16, 254, 255, 255, 2, 253, 255, 159, 0, 0, 0, 0, 0, 245, 255, 255, 6, 253, 255, 159, 0, 0, 0, 0, 0, 240, 255, 255, 8, 253, 255, 159, 0, 0, 0, 0, 0, 224, 255, 255, 9, 253, 255, 159, 0, 0, 0, 0, 0, 240, 255, 255, 8, 253, 255, 159, 0, 0, 0, 0, 0, 243, 255, 255, 7, 253, 255, 159, 0, 0, 0, 0, 0, 252, 255, 255, 3, 253, 255, 159, 0, 0, 0, 0, 196, 255, 255, 239, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 3, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 45, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 108, 0, 0, 0, 253, 255, 191, 68, 68, 68, 52, 2, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
/* Q */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_81[] = { 30, 33, 32, 1, 30, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 126, 0, 0, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 77, 0, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 5, 0, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 0, 0, 0, 0, 253, 255, 255, 255, 123, 69, 150, 254, 255, 255, 255, 3, 0, 0, 160, 255, 255, 255, 26, 0, 0, 0, 112, 255, 255, 255, 14, 0, 0, 242, 255, 255, 127, 0, 0, 0, 0, 0, 227, 255, 255, 127, 0, 0, 250, 255, 255, 8, 0, 0, 0, 0, 0, 48, 255, 255, 239, 0, 16, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 6, 80, 255, 255, 95, 0, 0, 0, 0, 0, 0, 0, 241, 255, 255, 11, 160, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 15, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 96, 255, 255, 47, 240, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 16, 255, 255, 95, 241, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 111, 240, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 16, 255, 255, 95, 240, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 79, 208, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 47, 160, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 15, 96, 255, 255, 95, 0, 0, 161, 170, 170, 42, 0, 240, 255, 255, 11, 16, 255, 255, 207, 0, 0, 80, 255, 255, 239, 1, 247, 255, 255, 6, 0, 250, 255, 255, 7, 0, 0, 247, 255, 255, 60, 255, 255, 255, 1, 0, 242, 255, 255, 111, 0, 0, 144, 255, 255, 255, 255, 255, 143, 0, 0, 160, 255, 255, 255, 26, 0, 0, 251, 255, 255, 255, 255, 14, 0, 0, 0, 253, 255, 255, 255, 107, 69, 247, 255, 255, 255, 255, 4, 0, 0, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 111, 0, 0, 0, 0, 32, 253, 255, 255, 255, 255, 255, 255, 255, 255, 79, 0, 0, 0, 0, 0, 177, 255, 255, 255, 255, 255, 255, 255, 255, 255, 2, 0, 0, 0, 0, 0, 196, 255, 255, 255, 255, 255, 255, 255, 255, 30, 0, 0, 0, 0, 0, 0, 114, 219, 254, 205, 73, 96, 255, 255, 223, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 170, 170, 106 };
|
||||
/* R */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_82[] = { 24, 29, 28, 3, 29, 253, 255, 255, 255, 255, 255, 255, 206, 40, 0, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 9, 0, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 207, 1, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 12, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 0, 253, 255, 191, 68, 68, 68, 68, 232, 255, 255, 239, 0, 253, 255, 159, 0, 0, 0, 0, 16, 253, 255, 255, 5, 253, 255, 159, 0, 0, 0, 0, 0, 243, 255, 255, 9, 253, 255, 159, 0, 0, 0, 0, 0, 208, 255, 255, 11, 253, 255, 159, 0, 0, 0, 0, 0, 176, 255, 255, 12, 253, 255, 159, 0, 0, 0, 0, 0, 192, 255, 255, 12, 253, 255, 159, 0, 0, 0, 0, 0, 241, 255, 255, 10, 253, 255, 159, 0, 0, 0, 0, 0, 250, 255, 255, 6, 253, 255, 159, 0, 0, 0, 0, 179, 255, 255, 255, 1, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 159, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 239, 3, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 27, 0, 0, 253, 255, 255, 255, 255, 255, 255, 223, 73, 0, 0, 0, 253, 255, 175, 80, 255, 255, 255, 10, 0, 0, 0, 0, 253, 255, 159, 0, 245, 255, 255, 159, 0, 0, 0, 0, 253, 255, 159, 0, 96, 255, 255, 255, 8, 0, 0, 0, 253, 255, 159, 0, 0, 247, 255, 255, 127, 0, 0, 0, 253, 255, 159, 0, 0, 112, 255, 255, 255, 7, 0, 0, 253, 255, 159, 0, 0, 0, 248, 255, 255, 111, 0, 0, 253, 255, 159, 0, 0, 0, 144, 255, 255, 255, 5, 0, 253, 255, 159, 0, 0, 0, 0, 250, 255, 255, 95, 0, 253, 255, 159, 0, 0, 0, 0, 160, 255, 255, 255, 4, 253, 255, 159, 0, 0, 0, 0, 0, 251, 255, 255, 63 };
|
||||
/* S */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_83[] = { 24, 31, 27, 1, 30, 0, 0, 0, 64, 201, 254, 239, 156, 21, 0, 0, 0, 0, 0, 96, 254, 255, 255, 255, 255, 255, 24, 0, 0, 0, 16, 252, 255, 255, 255, 255, 255, 255, 239, 3, 0, 0, 192, 255, 255, 255, 255, 255, 255, 255, 255, 47, 0, 0, 249, 255, 255, 255, 255, 255, 255, 255, 255, 223, 0, 32, 255, 255, 255, 109, 19, 65, 231, 255, 255, 255, 6, 128, 255, 255, 175, 0, 0, 0, 0, 250, 255, 255, 12, 192, 255, 255, 14, 0, 0, 0, 0, 208, 255, 255, 31, 208, 255, 255, 10, 0, 0, 0, 0, 96, 255, 255, 63, 208, 255, 255, 9, 0, 0, 0, 0, 32, 221, 221, 77, 160, 255, 255, 14, 0, 0, 0, 0, 0, 0, 0, 0, 128, 255, 255, 207, 2, 0, 0, 0, 0, 0, 0, 0, 48, 255, 255, 255, 223, 89, 2, 0, 0, 0, 0, 0, 0, 250, 255, 255, 255, 255, 255, 156, 21, 0, 0, 0, 0, 209, 255, 255, 255, 255, 255, 255, 255, 75, 0, 0, 0, 0, 250, 255, 255, 255, 255, 255, 255, 255, 27, 0, 0, 0, 64, 234, 255, 255, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 99, 201, 255, 255, 255, 255, 255, 10, 0, 0, 0, 0, 0, 0, 32, 166, 255, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 211, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 175, 214, 221, 221, 0, 0, 0, 0, 0, 0, 252, 255, 191, 246, 255, 255, 3, 0, 0, 0, 0, 0, 252, 255, 191, 243, 255, 255, 12, 0, 0, 0, 0, 16, 255, 255, 175, 224, 255, 255, 175, 1, 0, 0, 0, 192, 255, 255, 111, 112, 255, 255, 255, 143, 36, 32, 132, 254, 255, 255, 31, 0, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 9, 0, 226, 255, 255, 255, 255, 255, 255, 255, 255, 207, 0, 0, 32, 252, 255, 255, 255, 255, 255, 255, 255, 28, 0, 0, 0, 112, 253, 255, 255, 255, 255, 255, 110, 0, 0, 0, 0, 0, 64, 200, 237, 239, 189, 72, 0, 0, 0 };
|
||||
/* T */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_84[] = { 24, 29, 25, 0, 29, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 64, 68, 68, 68, 132, 255, 255, 95, 68, 68, 68, 52, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 31, 0, 0, 0, 0 };
|
||||
/* U */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_85[] = { 26, 30, 30, 2, 29, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 6, 0, 0, 0, 0, 0, 32, 255, 255, 79, 240, 255, 255, 7, 0, 0, 0, 0, 0, 48, 255, 255, 63, 224, 255, 255, 10, 0, 0, 0, 0, 0, 96, 255, 255, 47, 192, 255, 255, 14, 0, 0, 0, 0, 0, 176, 255, 255, 15, 128, 255, 255, 143, 0, 0, 0, 0, 0, 245, 255, 255, 11, 48, 255, 255, 255, 3, 0, 0, 0, 16, 254, 255, 255, 7, 0, 252, 255, 255, 127, 0, 0, 0, 228, 255, 255, 255, 1, 0, 245, 255, 255, 255, 124, 68, 182, 255, 255, 255, 143, 0, 0, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 0, 0, 0, 252, 255, 255, 255, 255, 255, 255, 255, 239, 2, 0, 0, 0, 160, 255, 255, 255, 255, 255, 255, 255, 28, 0, 0, 0, 0, 0, 213, 255, 255, 255, 255, 255, 110, 0, 0, 0, 0, 0, 0, 0, 131, 220, 255, 206, 73, 0, 0, 0, 0 };
|
||||
/* V */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_86[] = { 29, 29, 29, 0, 29, 250, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 2, 244, 255, 255, 12, 0, 0, 0, 0, 0, 0, 64, 255, 255, 223, 0, 224, 255, 255, 47, 0, 0, 0, 0, 0, 0, 144, 255, 255, 127, 0, 144, 255, 255, 127, 0, 0, 0, 0, 0, 0, 224, 255, 255, 47, 0, 48, 255, 255, 223, 0, 0, 0, 0, 0, 0, 244, 255, 255, 12, 0, 0, 254, 255, 255, 2, 0, 0, 0, 0, 0, 249, 255, 255, 6, 0, 0, 248, 255, 255, 8, 0, 0, 0, 0, 0, 254, 255, 255, 1, 0, 0, 243, 255, 255, 13, 0, 0, 0, 0, 64, 255, 255, 191, 0, 0, 0, 208, 255, 255, 47, 0, 0, 0, 0, 160, 255, 255, 111, 0, 0, 0, 112, 255, 255, 143, 0, 0, 0, 0, 240, 255, 255, 31, 0, 0, 0, 32, 255, 255, 223, 0, 0, 0, 0, 245, 255, 255, 11, 0, 0, 0, 0, 252, 255, 255, 3, 0, 0, 0, 250, 255, 255, 5, 0, 0, 0, 0, 247, 255, 255, 8, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 0, 241, 255, 255, 13, 0, 0, 80, 255, 255, 175, 0, 0, 0, 0, 0, 192, 255, 255, 63, 0, 0, 160, 255, 255, 79, 0, 0, 0, 0, 0, 96, 255, 255, 143, 0, 0, 240, 255, 255, 14, 0, 0, 0, 0, 0, 16, 255, 255, 239, 0, 0, 245, 255, 255, 9, 0, 0, 0, 0, 0, 0, 251, 255, 255, 3, 0, 251, 255, 255, 4, 0, 0, 0, 0, 0, 0, 245, 255, 255, 9, 0, 255, 255, 239, 0, 0, 0, 0, 0, 0, 0, 240, 255, 255, 14, 80, 255, 255, 159, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 79, 176, 255, 255, 63, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 159, 241, 255, 255, 13, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 252, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 250, 255, 255, 255, 255, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 255, 255, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, 255, 6, 0, 0, 0, 0, 0 };
|
||||
/* W */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_87[] = { 41, 29, 41, 0, 29, 250, 255, 255, 6, 0, 0, 0, 0, 176, 255, 255, 223, 0, 0, 0, 0, 0, 244, 255, 255, 13, 246, 255, 255, 10, 0, 0, 0, 0, 240, 255, 255, 255, 1, 0, 0, 0, 0, 248, 255, 255, 9, 242, 255, 255, 14, 0, 0, 0, 0, 243, 255, 255, 255, 5, 0, 0, 0, 0, 252, 255, 255, 5, 224, 255, 255, 47, 0, 0, 0, 0, 247, 255, 255, 255, 10, 0, 0, 0, 0, 255, 255, 255, 1, 160, 255, 255, 111, 0, 0, 0, 0, 251, 255, 255, 255, 14, 0, 0, 0, 64, 255, 255, 207, 0, 96, 255, 255, 175, 0, 0, 0, 0, 255, 255, 255, 255, 47, 0, 0, 0, 128, 255, 255, 143, 0, 32, 255, 255, 239, 0, 0, 0, 64, 255, 255, 255, 255, 111, 0, 0, 0, 192, 255, 255, 79, 0, 0, 254, 255, 255, 2, 0, 0, 128, 255, 255, 255, 255, 175, 0, 0, 0, 240, 255, 255, 15, 0, 0, 250, 255, 255, 6, 0, 0, 192, 255, 255, 255, 255, 239, 0, 0, 0, 244, 255, 255, 12, 0, 0, 246, 255, 255, 10, 0, 0, 240, 255, 255, 228, 255, 255, 3, 0, 0, 248, 255, 255, 8, 0, 0, 242, 255, 255, 14, 0, 0, 244, 255, 223, 160, 255, 255, 7, 0, 0, 252, 255, 255, 4, 0, 0, 224, 255, 255, 47, 0, 0, 249, 255, 159, 96, 255, 255, 11, 0, 0, 255, 255, 255, 0, 0, 0, 160, 255, 255, 111, 0, 0, 253, 255, 95, 32, 255, 255, 15, 0, 64, 255, 255, 207, 0, 0, 0, 96, 255, 255, 175, 0, 16, 255, 255, 31, 0, 254, 255, 63, 0, 128, 255, 255, 143, 0, 0, 0, 32, 255, 255, 239, 0, 80, 255, 255, 12, 0, 250, 255, 127, 0, 192, 255, 255, 79, 0, 0, 0, 0, 253, 255, 255, 2, 144, 255, 255, 8, 0, 246, 255, 207, 0, 240, 255, 255, 15, 0, 0, 0, 0, 249, 255, 255, 6, 208, 255, 255, 4, 0, 242, 255, 255, 0, 244, 255, 255, 12, 0, 0, 0, 0, 245, 255, 255, 10, 242, 255, 255, 0, 0, 224, 255, 255, 4, 248, 255, 255, 8, 0, 0, 0, 0, 241, 255, 255, 14, 246, 255, 207, 0, 0, 160, 255, 255, 8, 252, 255, 255, 4, 0, 0, 0, 0, 208, 255, 255, 47, 250, 255, 143, 0, 0, 96, 255, 255, 12, 255, 255, 255, 0, 0, 0, 0, 0, 144, 255, 255, 223, 255, 255, 79, 0, 0, 32, 255, 255, 223, 255, 255, 191, 0, 0, 0, 0, 0, 80, 255, 255, 255, 255, 255, 15, 0, 0, 0, 254, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 16, 255, 255, 255, 255, 255, 12, 0, 0, 0, 250, 255, 255, 255, 255, 63, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 8, 0, 0, 0, 245, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 249, 255, 255, 255, 255, 4, 0, 0, 0, 241, 255, 255, 255, 255, 11, 0, 0, 0, 0, 0, 0, 245, 255, 255, 255, 255, 0, 0, 0, 0, 208, 255, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 241, 255, 255, 255, 191, 0, 0, 0, 0, 144, 255, 255, 255, 255, 3, 0, 0, 0, 0, 0, 0, 208, 255, 255, 255, 127, 0, 0, 0, 0, 80, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 144, 255, 255, 255, 63, 0, 0, 0, 0, 16, 255, 255, 255, 191, 0, 0, 0, 0 };
|
||||
/* X */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_88[] = { 29, 29, 28, 0, 29, 112, 255, 255, 255, 1, 0, 0, 0, 0, 0, 243, 255, 255, 95, 0, 0, 252, 255, 255, 11, 0, 0, 0, 0, 0, 253, 255, 255, 10, 0, 0, 242, 255, 255, 95, 0, 0, 0, 0, 112, 255, 255, 239, 1, 0, 0, 112, 255, 255, 239, 1, 0, 0, 0, 242, 255, 255, 95, 0, 0, 0, 0, 252, 255, 255, 11, 0, 0, 0, 252, 255, 255, 10, 0, 0, 0, 0, 242, 255, 255, 95, 0, 0, 112, 255, 255, 239, 1, 0, 0, 0, 0, 112, 255, 255, 239, 1, 0, 242, 255, 255, 79, 0, 0, 0, 0, 0, 0, 252, 255, 255, 10, 0, 252, 255, 255, 10, 0, 0, 0, 0, 0, 0, 242, 255, 255, 95, 112, 255, 255, 239, 1, 0, 0, 0, 0, 0, 0, 96, 255, 255, 239, 247, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 252, 255, 255, 255, 255, 255, 10, 0, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 255, 255, 239, 1, 0, 0, 0, 0, 0, 0, 0, 0, 96, 255, 255, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 255, 255, 255, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 255, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 255, 255, 255, 255, 255, 8, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 255, 250, 255, 255, 63, 0, 0, 0, 0, 0, 0, 0, 225, 255, 255, 127, 144, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 250, 255, 255, 12, 0, 253, 255, 255, 8, 0, 0, 0, 0, 0, 80, 255, 255, 255, 2, 0, 243, 255, 255, 63, 0, 0, 0, 0, 0, 225, 255, 255, 111, 0, 0, 144, 255, 255, 223, 0, 0, 0, 0, 0, 251, 255, 255, 12, 0, 0, 0, 253, 255, 255, 9, 0, 0, 0, 96, 255, 255, 255, 2, 0, 0, 0, 243, 255, 255, 79, 0, 0, 0, 241, 255, 255, 111, 0, 0, 0, 0, 128, 255, 255, 239, 0, 0, 0, 251, 255, 255, 11, 0, 0, 0, 0, 0, 253, 255, 255, 9, 0, 96, 255, 255, 255, 2, 0, 0, 0, 0, 0, 243, 255, 255, 79, 0, 242, 255, 255, 111, 0, 0, 0, 0, 0, 0, 128, 255, 255, 239, 1 };
|
||||
/* Y */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_89[] = { 28, 29, 27, 0, 29, 242, 255, 255, 14, 0, 0, 0, 0, 0, 0, 224, 255, 255, 47, 144, 255, 255, 127, 0, 0, 0, 0, 0, 0, 247, 255, 255, 9, 16, 255, 255, 255, 1, 0, 0, 0, 0, 16, 255, 255, 255, 1, 0, 247, 255, 255, 9, 0, 0, 0, 0, 144, 255, 255, 127, 0, 0, 208, 255, 255, 47, 0, 0, 0, 0, 242, 255, 255, 14, 0, 0, 80, 255, 255, 191, 0, 0, 0, 0, 251, 255, 255, 5, 0, 0, 0, 252, 255, 255, 4, 0, 0, 64, 255, 255, 207, 0, 0, 0, 0, 243, 255, 255, 13, 0, 0, 192, 255, 255, 63, 0, 0, 0, 0, 160, 255, 255, 111, 0, 0, 245, 255, 255, 10, 0, 0, 0, 0, 16, 255, 255, 239, 0, 0, 254, 255, 255, 2, 0, 0, 0, 0, 0, 248, 255, 255, 8, 112, 255, 255, 143, 0, 0, 0, 0, 0, 0, 224, 255, 255, 31, 241, 255, 255, 30, 0, 0, 0, 0, 0, 0, 96, 255, 255, 207, 252, 255, 255, 6, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 244, 255, 255, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 32, 255, 255, 255, 255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 11, 0, 0, 0, 0, 0 };
|
||||
/* Z */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_90[] = { 23, 29, 25, 1, 29, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 11, 65, 68, 68, 68, 68, 68, 68, 228, 255, 255, 255, 3, 0, 0, 0, 0, 0, 0, 0, 249, 255, 255, 111, 0, 0, 0, 0, 0, 0, 0, 96, 255, 255, 255, 9, 0, 0, 0, 0, 0, 0, 0, 243, 255, 255, 207, 0, 0, 0, 0, 0, 0, 0, 16, 254, 255, 255, 30, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 4, 0, 0, 0, 0, 0, 0, 0, 248, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 80, 255, 255, 255, 10, 0, 0, 0, 0, 0, 0, 0, 242, 255, 255, 223, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 176, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 247, 255, 255, 143, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 255, 11, 0, 0, 0, 0, 0, 0, 0, 226, 255, 255, 239, 1, 0, 0, 0, 0, 0, 0, 0, 252, 255, 255, 63, 0, 0, 0, 0, 0, 0, 0, 160, 255, 255, 255, 5, 0, 0, 0, 0, 0, 0, 0, 246, 255, 255, 159, 0, 0, 0, 0, 0, 0, 0, 48, 255, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 225, 255, 255, 255, 53, 51, 51, 51, 51, 51, 51, 3, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 14 };
|
||||
/* [ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_91[] = { 11, 39, 15, 3, 31, 216, 221, 221, 221, 221, 11, 250, 255, 255, 255, 255, 13, 250, 255, 255, 255, 255, 13, 250, 255, 255, 255, 255, 13, 250, 255, 255, 255, 255, 13, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 159, 0, 0, 0, 250, 255, 239, 221, 221, 11, 250, 255, 255, 255, 255, 13, 250, 255, 255, 255, 255, 13, 250, 255, 255, 255, 255, 13, 250, 255, 255, 255, 255, 13 };
|
||||
/* \ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_92[] = { 17, 40, 17, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 253, 255, 111, 0, 0, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 0, 0, 243, 255, 255, 0, 0, 0, 0, 0, 0, 224, 255, 255, 4, 0, 0, 0, 0, 0, 160, 255, 255, 9, 0, 0, 0, 0, 0, 80, 255, 255, 14, 0, 0, 0, 0, 0, 16, 255, 255, 47, 0, 0, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 0, 0, 247, 255, 207, 0, 0, 0, 0, 0, 0, 242, 255, 255, 1, 0, 0, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 0, 0, 144, 255, 255, 10, 0, 0, 0, 0, 0, 64, 255, 255, 15, 0, 0, 0, 0, 0, 0, 255, 255, 79, 0, 0, 0, 0, 0, 0, 251, 255, 143, 0, 0, 0, 0, 0, 0, 246, 255, 223, 0, 0, 0, 0, 0, 0, 241, 255, 255, 2, 0, 0, 0, 0, 0, 192, 255, 255, 7, 0, 0, 0, 0, 0, 128, 255, 255, 11, 0, 0, 0, 0, 0, 48, 255, 255, 15, 0, 0, 0, 0, 0, 0, 254, 255, 95, 0, 0, 0, 0, 0, 0, 250, 255, 159, 0, 0, 0, 0, 0, 0, 245, 255, 239, 0, 0, 0, 0, 0, 0, 240, 255, 255, 3, 0, 0, 0, 0, 0, 176, 255, 255, 8, 0, 0, 0, 0, 0, 112, 255, 255, 12, 0, 0, 0, 0, 0, 32, 255, 255, 31, 0, 0, 0, 0, 0, 0, 253, 255, 111, 0, 0, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 0, 0, 244, 255, 255, 0, 0, 0, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 0, 0, 160, 255, 255, 9, 0, 0, 0, 0, 0, 96, 255, 255, 13, 0, 0, 0, 0, 0, 16, 255, 255, 47, 0, 0, 0, 0, 0, 0, 252, 255, 127, 0, 0, 0, 0, 0, 0, 247, 255, 207, 0, 0, 0, 0, 0, 0, 243, 255, 255, 1, 0, 0, 0, 0, 0, 224, 255, 255, 5, 0, 0, 0, 0, 0, 144, 255, 255, 10 };
|
||||
/* ] */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_93[] = { 11, 39, 15, 1, 31, 215, 221, 221, 221, 221, 12, 248, 255, 255, 255, 255, 15, 248, 255, 255, 255, 255, 15, 248, 255, 255, 255, 255, 15, 248, 255, 255, 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, 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, 215, 221, 237, 255, 255, 15, 248, 255, 255, 255, 255, 15, 248, 255, 255, 255, 255, 15, 248, 255, 255, 255, 255, 15, 248, 255, 255, 255, 255, 15 };
|
||||
/* ^ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_94[] = { 16, 12, 19, 1, 29, 0, 0, 224, 255, 255, 159, 0, 0, 0, 0, 244, 255, 255, 239, 0, 0, 0, 0, 250, 255, 255, 255, 4, 0, 0, 0, 255, 255, 255, 255, 10, 0, 0, 80, 255, 255, 253, 255, 31, 0, 0, 176, 255, 239, 244, 255, 111, 0, 0, 241, 255, 143, 208, 255, 207, 0, 0, 247, 255, 47, 112, 255, 255, 2, 0, 253, 255, 12, 32, 255, 255, 8, 48, 255, 255, 6, 0, 252, 255, 14, 144, 255, 255, 1, 0, 246, 255, 63, 224, 255, 175, 0, 0, 240, 255, 159 };
|
||||
/* _ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_95[] = { 19, 5, 17, 0, 0, 219, 221, 221, 221, 221, 221, 221, 221, 221, 2, 253, 255, 255, 255, 255, 255, 255, 255, 255, 3, 253, 255, 255, 255, 255, 255, 255, 255, 255, 3, 253, 255, 255, 255, 255, 255, 255, 255, 255, 3, 253, 255, 255, 255, 255, 255, 255, 255, 255, 3 };
|
||||
/* ` */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_96[] = { 10, 7, 12, 1, 31, 245, 255, 255, 1, 0, 128, 255, 255, 11, 0, 0, 250, 255, 95, 0, 0, 192, 255, 239, 1, 0, 16, 254, 255, 10, 0, 0, 243, 255, 95, 0, 0, 16, 17, 17 };
|
||||
/* 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_123[] = { 13, 39, 16, 2, 31, 0, 0, 0, 132, 219, 221, 3, 0, 0, 177, 255, 255, 255, 4, 0, 0, 252, 255, 255, 255, 4, 0, 96, 255, 255, 255, 255, 4, 0, 160, 255, 255, 255, 255, 4, 0, 208, 255, 255, 44, 0, 0, 0, 240, 255, 255, 5, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 242, 255, 255, 3, 0, 0, 48, 252, 255, 255, 1, 0, 0, 254, 255, 255, 143, 0, 0, 0, 254, 255, 255, 8, 0, 0, 0, 254, 255, 9, 0, 0, 0, 0, 254, 255, 191, 3, 0, 0, 0, 254, 255, 255, 79, 0, 0, 0, 183, 255, 255, 239, 0, 0, 0, 0, 246, 255, 255, 3, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 4, 0, 0, 0, 240, 255, 255, 5, 0, 0, 0, 224, 255, 255, 11, 0, 0, 0, 176, 255, 255, 255, 221, 3, 0, 112, 255, 255, 255, 255, 4, 0, 0, 253, 255, 255, 255, 4, 0, 0, 211, 255, 255, 255, 4, 0, 0, 0, 183, 253, 255, 4 };
|
||||
/* | */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_124[] = { 6, 40, 15, 5, 32, 0, 0, 0, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79, 255, 255, 79 };
|
||||
/* } */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_125[] = { 13, 39, 16, 1, 31, 215, 205, 122, 2, 0, 0, 0, 248, 255, 255, 143, 0, 0, 0, 248, 255, 255, 255, 7, 0, 0, 248, 255, 255, 255, 47, 0, 0, 248, 255, 255, 255, 111, 0, 0, 0, 64, 255, 255, 159, 0, 0, 0, 0, 250, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 247, 255, 239, 0, 0, 0, 0, 245, 255, 255, 41, 0, 0, 0, 192, 255, 255, 255, 10, 0, 0, 0, 251, 255, 255, 10, 0, 0, 0, 32, 253, 255, 10, 0, 0, 0, 163, 255, 255, 10, 0, 0, 96, 255, 255, 255, 10, 0, 0, 242, 255, 255, 159, 5, 0, 0, 247, 255, 255, 2, 0, 0, 0, 248, 255, 207, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 248, 255, 191, 0, 0, 0, 0, 249, 255, 191, 0, 0, 0, 16, 254, 255, 159, 0, 0, 215, 253, 255, 255, 127, 0, 0, 248, 255, 255, 255, 63, 0, 0, 248, 255, 255, 255, 9, 0, 0, 248, 255, 255, 191, 1, 0, 0, 248, 255, 173, 5, 0, 0, 0 };
|
||||
/* ~ */ static const uint8_t Font_TTSatoshi_DemiBold_42_glyph_126[] = { 23, 9, 25, 1, 16, 0, 0, 182, 254, 157, 1, 0, 0, 80, 102, 102, 0, 0, 193, 255, 255, 255, 78, 0, 0, 240, 255, 255, 0, 0, 251, 255, 255, 255, 255, 7, 0, 244, 255, 255, 0, 80, 255, 255, 255, 255, 255, 175, 84, 254, 255, 207, 0, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 143, 0, 240, 255, 255, 92, 214, 255, 255, 255, 255, 255, 47, 0, 243, 255, 255, 1, 0, 251, 255, 255, 255, 255, 8, 0, 244, 255, 207, 0, 0, 112, 255, 255, 255, 159, 0, 0, 98, 102, 70, 0, 0, 0, 163, 254, 174, 4, 0, 0 };
|
||||
|
||||
/* ? */ 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 };
|
||||
|
||||
const uint8_t * const Font_TTSatoshi_DemiBold_42[126 + 1 - 32] = {
|
||||
Font_TTSatoshi_DemiBold_42_glyph_32,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_33,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_34,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_35,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_36,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_37,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_38,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_39,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_40,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_41,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_42,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_43,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_44,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_45,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_46,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_47,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_48,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_49,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_50,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_51,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_52,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_53,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_54,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_55,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_56,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_57,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_58,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_59,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_60,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_61,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_62,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_63,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_64,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_65,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_66,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_67,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_68,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_69,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_70,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_71,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_72,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_73,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_74,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_75,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_76,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_77,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_78,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_79,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_80,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_81,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_82,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_83,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_84,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_85,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_86,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_87,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_88,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_89,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_90,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_91,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_92,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_93,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_94,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_95,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_96,
|
||||
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_123,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_124,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_125,
|
||||
Font_TTSatoshi_DemiBold_42_glyph_126,
|
||||
};
|
@ -0,0 +1,10 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#if TREZOR_FONT_BPP != 4
|
||||
#error Wrong TREZOR_FONT_BPP (expected 4)
|
||||
#endif
|
||||
#define Font_TTSatoshi_DemiBold_42_HEIGHT 42
|
||||
#define Font_TTSatoshi_DemiBold_42_MAX_HEIGHT 44
|
||||
#define Font_TTSatoshi_DemiBold_42_BASELINE 9
|
||||
extern const uint8_t* const Font_TTSatoshi_DemiBold_42[126 + 1 - 32];
|
||||
extern const uint8_t Font_TTSatoshi_DemiBold_42_glyph_nonprintable[];
|
@ -1 +0,0 @@
|
||||
Added basic support for STM32U5
|
@ -0,0 +1,333 @@
|
||||
use crate::ui::{
|
||||
constant,
|
||||
constant::{screen, LOADER_INNER, LOADER_OUTER},
|
||||
display,
|
||||
display::{toif::Icon, Color},
|
||||
geometry::{Offset, Point, Rect},
|
||||
};
|
||||
|
||||
use crate::trezorhal::{
|
||||
buffers,
|
||||
dma2d::{dma2d_setup_4bpp_over_4bpp, dma2d_start_blend, dma2d_wait_for_transfer},
|
||||
};
|
||||
|
||||
const ICON_MAX_SIZE: i16 = constant::LOADER_ICON_MAX_SIZE;
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct LoaderDimensions {
|
||||
in_inner_anti: i32,
|
||||
inner_min: i32,
|
||||
outer_out_anti: i32,
|
||||
outer_max: i32,
|
||||
}
|
||||
|
||||
impl LoaderDimensions {
|
||||
pub fn new(outer: i16, inner: i16) -> Self {
|
||||
let outer: f32 = outer.into();
|
||||
let inner: f32 = inner.into();
|
||||
Self {
|
||||
in_inner_anti: ((inner + 0.5) * (inner + 0.5)) as i32,
|
||||
inner_min: ((inner + 1.5) * (inner + 1.5)) as i32,
|
||||
outer_out_anti: ((outer - 1.5) * (outer - 1.5)) as i32,
|
||||
outer_max: ((outer - 0.5) * (outer - 0.5)) as i32,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn loader_circular_uncompress(
|
||||
dim: LoaderDimensions,
|
||||
y_offset: i16,
|
||||
fg_color: Color,
|
||||
bg_color: Color,
|
||||
progress: u16,
|
||||
indeterminate: bool,
|
||||
icon: Option<(Icon, Color)>,
|
||||
) {
|
||||
if let Some((icon, color)) = icon {
|
||||
let toif_size = icon.toif.size();
|
||||
if toif_size.x <= ICON_MAX_SIZE && toif_size.y <= ICON_MAX_SIZE {
|
||||
let mut icon_data = [0_u8; ((ICON_MAX_SIZE * ICON_MAX_SIZE) / 2) as usize];
|
||||
icon.toif.uncompress(&mut icon_data);
|
||||
let i = Some((icon_data.as_ref(), color, toif_size));
|
||||
loader_rust(
|
||||
dim,
|
||||
y_offset,
|
||||
fg_color,
|
||||
bg_color,
|
||||
progress,
|
||||
indeterminate,
|
||||
i,
|
||||
);
|
||||
} else {
|
||||
loader_rust(
|
||||
dim,
|
||||
y_offset,
|
||||
fg_color,
|
||||
bg_color,
|
||||
progress,
|
||||
indeterminate,
|
||||
None,
|
||||
);
|
||||
}
|
||||
} else {
|
||||
loader_rust(
|
||||
dim,
|
||||
y_offset,
|
||||
fg_color,
|
||||
bg_color,
|
||||
progress,
|
||||
indeterminate,
|
||||
None,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn loader_circular(
|
||||
progress: u16,
|
||||
y_offset: i16,
|
||||
fg_color: Color,
|
||||
bg_color: Color,
|
||||
icon: Option<(Icon, Color)>,
|
||||
) {
|
||||
loader_circular_uncompress(
|
||||
LoaderDimensions::new(LOADER_OUTER, LOADER_INNER),
|
||||
y_offset,
|
||||
fg_color,
|
||||
bg_color,
|
||||
progress,
|
||||
false,
|
||||
icon,
|
||||
);
|
||||
}
|
||||
|
||||
pub fn loader_circular_indeterminate(
|
||||
progress: u16,
|
||||
y_offset: i16,
|
||||
fg_color: Color,
|
||||
bg_color: Color,
|
||||
icon: Option<(Icon, Color)>,
|
||||
) {
|
||||
loader_circular_uncompress(
|
||||
LoaderDimensions::new(LOADER_OUTER, LOADER_INNER),
|
||||
y_offset,
|
||||
fg_color,
|
||||
bg_color,
|
||||
progress,
|
||||
true,
|
||||
icon,
|
||||
);
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn get_loader_vectors(indeterminate: bool, progress: u16) -> (Point, Point) {
|
||||
let (start_progress, end_progress) = if indeterminate {
|
||||
const LOADER_INDETERMINATE_WIDTH: u16 = 100;
|
||||
(
|
||||
(progress + 1000 - LOADER_INDETERMINATE_WIDTH) % 1000,
|
||||
(progress + LOADER_INDETERMINATE_WIDTH) % 1000,
|
||||
)
|
||||
} else {
|
||||
(0, progress)
|
||||
};
|
||||
|
||||
let start = ((360 * start_progress as i32) / 1000) % 360;
|
||||
let end = ((360 * end_progress as i32) / 1000) % 360;
|
||||
|
||||
let start_vector;
|
||||
let end_vector;
|
||||
|
||||
if indeterminate {
|
||||
start_vector = display::get_vector(start as _);
|
||||
end_vector = display::get_vector(end as _);
|
||||
} else if progress >= 1000 {
|
||||
start_vector = Point::zero();
|
||||
end_vector = Point::zero();
|
||||
} else if progress > 500 {
|
||||
start_vector = display::get_vector(end as _);
|
||||
end_vector = display::get_vector(start as _);
|
||||
} else {
|
||||
start_vector = display::get_vector(start as _);
|
||||
end_vector = display::get_vector(end as _);
|
||||
}
|
||||
|
||||
(start_vector, end_vector)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn loader_get_pixel_color_idx(
|
||||
show_all: bool,
|
||||
inverted: bool,
|
||||
end_vector: Point,
|
||||
n_start: Point,
|
||||
c: Point,
|
||||
center: Point,
|
||||
dim: LoaderDimensions,
|
||||
) -> u8 {
|
||||
let y_p = -(c.y - center.y);
|
||||
let x_p = c.x - center.x;
|
||||
|
||||
let vx = Point::new(x_p, y_p);
|
||||
let n_vx = Point::new(-y_p, x_p);
|
||||
|
||||
let d = y_p as i32 * y_p as i32 + x_p as i32 * x_p as i32;
|
||||
|
||||
let included = if inverted {
|
||||
!display::is_clockwise_or_equal(n_start, vx)
|
||||
|| !display::is_clockwise_or_equal_inc(n_vx, end_vector)
|
||||
} else {
|
||||
display::is_clockwise_or_equal(n_start, vx)
|
||||
&& display::is_clockwise_or_equal_inc(n_vx, end_vector)
|
||||
};
|
||||
|
||||
// The antialiasing calculation below uses simplified distance difference
|
||||
// calculation. Optimally, SQRT should be used, but assuming
|
||||
// diameter large enough and antialiasing over distance
|
||||
// r_outer-r_inner = 1, the difference between simplified:
|
||||
// (d^2-r_inner^2)/(r_outer^2-r_inner^2) and precise: (sqrt(d^2)
|
||||
// - r_inner)/(r_outer-r_inner) is negligible
|
||||
if show_all || included {
|
||||
//active part
|
||||
if d <= dim.in_inner_anti {
|
||||
0
|
||||
} else if d <= dim.inner_min {
|
||||
((15 * (d - dim.in_inner_anti)) / (dim.inner_min - dim.in_inner_anti)) as u8
|
||||
} else if d <= dim.outer_out_anti {
|
||||
15
|
||||
} else if d <= dim.outer_max {
|
||||
(15 - ((15 * (d - dim.outer_out_anti)) / (dim.outer_max - dim.outer_out_anti))) as u8
|
||||
} else {
|
||||
0
|
||||
}
|
||||
} else {
|
||||
//inactive part
|
||||
if d <= dim.in_inner_anti {
|
||||
0
|
||||
} else if d <= dim.inner_min {
|
||||
((4 * (d - dim.in_inner_anti)) / (dim.inner_min - dim.in_inner_anti)) as u8
|
||||
} else if d <= dim.outer_out_anti {
|
||||
4
|
||||
} else if d <= dim.outer_max {
|
||||
4 - ((4 * (d - dim.outer_out_anti)) / (dim.outer_max - dim.outer_out_anti)) as u8
|
||||
} else {
|
||||
0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn loader_rust(
|
||||
dim: LoaderDimensions,
|
||||
y_offset: i16,
|
||||
fg_color: Color,
|
||||
bg_color: Color,
|
||||
progress: u16,
|
||||
indeterminate: bool,
|
||||
icon: Option<(&[u8], Color, Offset)>,
|
||||
) {
|
||||
let center = screen().center() + Offset::new(0, y_offset);
|
||||
let r = Rect::from_center_and_size(center, Offset::uniform(LOADER_OUTER * 2));
|
||||
let clamped = r.clamp(constant::screen());
|
||||
display::set_window(clamped);
|
||||
|
||||
let center = r.center();
|
||||
|
||||
let mut use_icon = false;
|
||||
let mut icon_area = Rect::zero();
|
||||
|
||||
let mut icon_area_clamped = Rect::zero();
|
||||
let mut icon_width = 0;
|
||||
let mut icon_offset = 0;
|
||||
let mut icon_color = Color::from_u16(0);
|
||||
let mut icon_data = [].as_ref();
|
||||
|
||||
if let Some((data, color, size)) = icon {
|
||||
if size.x <= ICON_MAX_SIZE && size.y <= ICON_MAX_SIZE {
|
||||
icon_width = size.x;
|
||||
icon_area = Rect::from_center_and_size(center, size);
|
||||
icon_area_clamped = icon_area.clamp(constant::screen());
|
||||
icon_offset = (icon_area_clamped.x0 - r.x0) / 2;
|
||||
icon_color = color;
|
||||
icon_data = data;
|
||||
use_icon = true;
|
||||
}
|
||||
}
|
||||
|
||||
let show_all = !indeterminate && progress >= 1000;
|
||||
let inverted = !indeterminate && progress > 500;
|
||||
let (start_vector, end_vector) = get_loader_vectors(indeterminate, progress);
|
||||
|
||||
let n_start = Point::new(-start_vector.y, start_vector.x);
|
||||
|
||||
let mut b1 = buffers::BufferLine16bpp::get();
|
||||
let mut b2 = buffers::BufferLine16bpp::get();
|
||||
let mut ib1 = buffers::BufferLine4bpp::get_cleared();
|
||||
let mut ib2 = buffers::BufferLine4bpp::get_cleared();
|
||||
let mut empty_line = buffers::BufferLine4bpp::get_cleared();
|
||||
|
||||
dma2d_setup_4bpp_over_4bpp(fg_color.into(), bg_color.into(), icon_color.into());
|
||||
|
||||
for y_c in r.y0..r.y1 {
|
||||
let mut icon_buffer = &mut *empty_line;
|
||||
let icon_buffer_used;
|
||||
let loader_buffer;
|
||||
|
||||
if y_c % 2 == 0 {
|
||||
icon_buffer_used = &mut *ib1;
|
||||
loader_buffer = &mut *b1;
|
||||
} else {
|
||||
icon_buffer_used = &mut *ib2;
|
||||
loader_buffer = &mut *b2;
|
||||
}
|
||||
|
||||
if use_icon && y_c >= icon_area_clamped.y0 && y_c < icon_area_clamped.y1 {
|
||||
let y_i = y_c - icon_area.y0;
|
||||
|
||||
// Optimally, we should cut corners of the icon if it happens to be large enough
|
||||
// to invade loader area. but this would require calculation of circle chord
|
||||
// length (since we need to limit data copied to the buffer),
|
||||
// which requires expensive SQRT. Therefore, when using this method of loader
|
||||
// drawing, special care needs to be taken to ensure that the icons
|
||||
// have transparent corners.
|
||||
|
||||
icon_buffer_used.buffer[icon_offset as usize..(icon_offset + icon_width / 2) as usize]
|
||||
.copy_from_slice(
|
||||
&icon_data[(y_i * (icon_width / 2)) as usize
|
||||
..((y_i + 1) * (icon_width / 2)) as usize],
|
||||
);
|
||||
icon_buffer = icon_buffer_used;
|
||||
}
|
||||
|
||||
let mut pix_c_idx_prev: u8 = 0;
|
||||
|
||||
for x_c in r.x0..r.x1 {
|
||||
let p = Point::new(x_c, y_c);
|
||||
|
||||
let pix_c_idx = if clamped.contains(p) {
|
||||
loader_get_pixel_color_idx(
|
||||
show_all,
|
||||
inverted,
|
||||
end_vector,
|
||||
n_start,
|
||||
Point::new(x_c, y_c),
|
||||
center,
|
||||
dim,
|
||||
)
|
||||
} else {
|
||||
0
|
||||
};
|
||||
|
||||
let x = x_c - r.x0;
|
||||
if x % 2 == 0 {
|
||||
pix_c_idx_prev = pix_c_idx;
|
||||
} else {
|
||||
loader_buffer.buffer[(x >> 1) as usize] = pix_c_idx_prev | pix_c_idx << 4;
|
||||
}
|
||||
}
|
||||
|
||||
dma2d_wait_for_transfer();
|
||||
unsafe {
|
||||
dma2d_start_blend(&icon_buffer.buffer, &loader_buffer.buffer, clamped.width());
|
||||
}
|
||||
}
|
||||
|
||||
dma2d_wait_for_transfer();
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
use crate::{
|
||||
strutil::TString,
|
||||
ui::{
|
||||
component::{Child, Component, Event, EventCtx, Label, Pad},
|
||||
constant::screen,
|
||||
display::Icon,
|
||||
geometry::{Alignment, Insets, Point, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::super::{
|
||||
component::{Button, ButtonMsg::Clicked},
|
||||
constant::WIDTH,
|
||||
theme::bootloader::{
|
||||
button_bld, button_bld_menu, text_title, BLD_BG, BUTTON_AREA_START, BUTTON_HEIGHT,
|
||||
CONTENT_PADDING, CORNER_BUTTON_AREA, MENU32, TEXT_NORMAL, TEXT_WARNING, TITLE_AREA,
|
||||
},
|
||||
};
|
||||
|
||||
#[repr(u32)]
|
||||
#[derive(Copy, Clone, ToPrimitive)]
|
||||
pub enum IntroMsg {
|
||||
Menu = 1,
|
||||
Host = 2,
|
||||
}
|
||||
|
||||
pub struct Intro<'a> {
|
||||
bg: Pad,
|
||||
title: Child<Label<'a>>,
|
||||
menu: Child<Button>,
|
||||
host: Child<Button>,
|
||||
text: Child<Label<'a>>,
|
||||
warn: Option<Child<Label<'a>>>,
|
||||
}
|
||||
|
||||
impl<'a> Intro<'a> {
|
||||
pub fn new(title: TString<'a>, content: TString<'a>, fw_ok: bool) -> Self {
|
||||
Self {
|
||||
bg: Pad::with_background(BLD_BG).with_clear(),
|
||||
title: Child::new(Label::left_aligned(title, text_title(BLD_BG)).vertically_centered()),
|
||||
menu: Child::new(
|
||||
Button::with_icon(Icon::new(MENU32))
|
||||
.styled(button_bld_menu())
|
||||
.with_expanded_touch_area(Insets::uniform(13)),
|
||||
),
|
||||
host: Child::new(Button::with_text("INSTALL FIRMWARE".into()).styled(button_bld())),
|
||||
text: Child::new(Label::left_aligned(content, TEXT_NORMAL).vertically_centered()),
|
||||
warn: (!fw_ok).then_some(Child::new(
|
||||
Label::new("FIRMWARE CORRUPTED".into(), Alignment::Start, TEXT_WARNING)
|
||||
.vertically_centered(),
|
||||
)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Component for Intro<'a> {
|
||||
type Msg = IntroMsg;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.bg.place(screen());
|
||||
|
||||
self.title.place(TITLE_AREA);
|
||||
self.menu.place(CORNER_BUTTON_AREA);
|
||||
self.host.place(Rect::new(
|
||||
Point::new(CONTENT_PADDING, BUTTON_AREA_START),
|
||||
Point::new(WIDTH - CONTENT_PADDING, BUTTON_AREA_START + BUTTON_HEIGHT),
|
||||
));
|
||||
if self.warn.is_some() {
|
||||
self.warn.place(Rect::new(
|
||||
Point::new(CONTENT_PADDING, TITLE_AREA.y1 + CONTENT_PADDING),
|
||||
Point::new(
|
||||
WIDTH - CONTENT_PADDING,
|
||||
TITLE_AREA.y1 + CONTENT_PADDING + 30,
|
||||
),
|
||||
));
|
||||
self.text.place(Rect::new(
|
||||
Point::new(CONTENT_PADDING, TITLE_AREA.y1 + CONTENT_PADDING + 30),
|
||||
Point::new(WIDTH - CONTENT_PADDING, BUTTON_AREA_START - CONTENT_PADDING),
|
||||
));
|
||||
} else {
|
||||
self.text.place(Rect::new(
|
||||
Point::new(CONTENT_PADDING, TITLE_AREA.y1 + CONTENT_PADDING),
|
||||
Point::new(WIDTH - CONTENT_PADDING, BUTTON_AREA_START - CONTENT_PADDING),
|
||||
));
|
||||
}
|
||||
|
||||
bounds
|
||||
}
|
||||
|
||||
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
|
||||
if let Some(Clicked) = self.menu.event(ctx, event) {
|
||||
return Some(Self::Msg::Menu);
|
||||
};
|
||||
if let Some(Clicked) = self.host.event(ctx, event) {
|
||||
return Some(Self::Msg::Host);
|
||||
};
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
self.bg.paint();
|
||||
self.title.paint();
|
||||
self.text.paint();
|
||||
self.warn.paint();
|
||||
self.host.paint();
|
||||
self.menu.paint();
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_bounds")]
|
||||
fn bounds(&self, sink: &mut dyn FnMut(Rect)) {
|
||||
self.menu.bounds(sink);
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
use crate::{
|
||||
trezorhal::secbool::{secbool, sectrue},
|
||||
ui::{
|
||||
component::{Child, Component, Event, EventCtx, Label, Pad},
|
||||
constant::{screen, WIDTH},
|
||||
display::Icon,
|
||||
geometry::{Insets, Point, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::super::{
|
||||
component::{Button, ButtonMsg::Clicked, IconText},
|
||||
theme::bootloader::{
|
||||
button_bld, button_bld_menu, text_title, BLD_BG, BUTTON_HEIGHT, CONTENT_PADDING,
|
||||
CORNER_BUTTON_AREA, CORNER_BUTTON_TOUCH_EXPANSION, FIRE24, REFRESH24, TITLE_AREA, X32,
|
||||
},
|
||||
};
|
||||
|
||||
const BUTTON_AREA_START: i16 = 56;
|
||||
const BUTTON_SPACING: i16 = 8;
|
||||
|
||||
#[repr(u32)]
|
||||
#[derive(Copy, Clone, ToPrimitive)]
|
||||
pub enum MenuMsg {
|
||||
Close = 0xAABBCCDD,
|
||||
Reboot = 0x11223344,
|
||||
FactoryReset = 0x55667788,
|
||||
}
|
||||
|
||||
pub struct Menu {
|
||||
bg: Pad,
|
||||
title: Child<Label<'static>>,
|
||||
close: Child<Button>,
|
||||
reboot: Child<Button>,
|
||||
reset: Child<Button>,
|
||||
}
|
||||
|
||||
impl Menu {
|
||||
pub fn new(firmware_present: secbool) -> Self {
|
||||
let content_reboot = IconText::new("REBOOT TREZOR", Icon::new(REFRESH24));
|
||||
let content_reset = IconText::new("FACTORY RESET", Icon::new(FIRE24));
|
||||
|
||||
let mut instance = Self {
|
||||
bg: Pad::with_background(BLD_BG),
|
||||
title: Child::new(
|
||||
Label::left_aligned("BOOTLOADER".into(), text_title(BLD_BG)).vertically_centered(),
|
||||
),
|
||||
close: Child::new(
|
||||
Button::with_icon(Icon::new(X32))
|
||||
.styled(button_bld_menu())
|
||||
.with_expanded_touch_area(Insets::uniform(CORNER_BUTTON_TOUCH_EXPANSION)),
|
||||
),
|
||||
reboot: Child::new(
|
||||
Button::with_icon_and_text(content_reboot)
|
||||
.styled(button_bld())
|
||||
.initially_enabled(sectrue == firmware_present),
|
||||
),
|
||||
reset: Child::new(Button::with_icon_and_text(content_reset).styled(button_bld())),
|
||||
};
|
||||
instance.bg.clear();
|
||||
instance
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for Menu {
|
||||
type Msg = MenuMsg;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.bg.place(screen());
|
||||
self.title.place(TITLE_AREA);
|
||||
self.close.place(CORNER_BUTTON_AREA);
|
||||
self.reboot.place(Rect::new(
|
||||
Point::new(CONTENT_PADDING, BUTTON_AREA_START),
|
||||
Point::new(WIDTH - CONTENT_PADDING, BUTTON_AREA_START + BUTTON_HEIGHT),
|
||||
));
|
||||
self.reset.place(Rect::new(
|
||||
Point::new(
|
||||
CONTENT_PADDING,
|
||||
BUTTON_AREA_START + BUTTON_HEIGHT + BUTTON_SPACING,
|
||||
),
|
||||
Point::new(
|
||||
WIDTH - CONTENT_PADDING,
|
||||
BUTTON_AREA_START + 2 * BUTTON_HEIGHT + BUTTON_SPACING,
|
||||
),
|
||||
));
|
||||
bounds
|
||||
}
|
||||
|
||||
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
|
||||
if let Some(Clicked) = self.close.event(ctx, event) {
|
||||
return Some(Self::Msg::Close);
|
||||
}
|
||||
if let Some(Clicked) = self.reboot.event(ctx, event) {
|
||||
return Some(Self::Msg::Reboot);
|
||||
}
|
||||
if let Some(Clicked) = self.reset.event(ctx, event) {
|
||||
return Some(Self::Msg::FactoryReset);
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
self.bg.paint();
|
||||
self.title.paint();
|
||||
self.close.paint();
|
||||
self.reboot.paint();
|
||||
self.reset.paint();
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_bounds")]
|
||||
fn bounds(&self, sink: &mut dyn FnMut(Rect)) {
|
||||
self.close.bounds(sink);
|
||||
self.reboot.bounds(sink);
|
||||
self.reset.bounds(sink);
|
||||
}
|
||||
}
|
@ -0,0 +1,325 @@
|
||||
use heapless::String;
|
||||
|
||||
use crate::{
|
||||
trezorhal::secbool::secbool,
|
||||
ui::{
|
||||
component::{connect::Connect, Label},
|
||||
display::{self, Color, Font, Icon},
|
||||
geometry::{Offset, Point, Rect},
|
||||
layout::simplified::{run, show},
|
||||
},
|
||||
};
|
||||
|
||||
use super::{
|
||||
bootloader::welcome::Welcome,
|
||||
component::{
|
||||
bl_confirm::{Confirm, ConfirmTitle},
|
||||
Button, ResultScreen, WelcomeScreen,
|
||||
},
|
||||
theme::{
|
||||
bootloader::{
|
||||
button_bld, button_bld_menu, button_confirm, button_wipe_cancel, button_wipe_confirm,
|
||||
BLD_BG, BLD_FG, BLD_TITLE_COLOR, BLD_WIPE_COLOR, CHECK24, CHECK40, DOWNLOAD24, FIRE32,
|
||||
FIRE40, RESULT_FW_INSTALL, RESULT_WIPE, TEXT_BOLD, TEXT_NORMAL, TEXT_WIPE_BOLD,
|
||||
TEXT_WIPE_NORMAL, WARNING40, WELCOME_COLOR, X24,
|
||||
},
|
||||
BACKLIGHT_NORMAL, BLACK, GREEN_LIGHT, GREY, WHITE,
|
||||
},
|
||||
ModelMercuryFeatures,
|
||||
};
|
||||
|
||||
use crate::ui::{ui_features::UIFeaturesBootloader, UIFeaturesCommon};
|
||||
use intro::Intro;
|
||||
use menu::Menu;
|
||||
|
||||
pub mod intro;
|
||||
pub mod menu;
|
||||
pub mod welcome;
|
||||
|
||||
pub type BootloaderString = String<128>;
|
||||
|
||||
const RECONNECT_MESSAGE: &str = "PLEASE RECONNECT\nTHE DEVICE";
|
||||
|
||||
const SCREEN: Rect = ModelMercuryFeatures::SCREEN;
|
||||
const PROGRESS_TEXT_ORIGIN: Point = Point::new(2, 28);
|
||||
|
||||
impl ModelMercuryFeatures {
|
||||
fn screen_progress(
|
||||
text: &str,
|
||||
progress: u16,
|
||||
initialize: bool,
|
||||
fg_color: Color,
|
||||
bg_color: Color,
|
||||
icon: Option<(Icon, Color)>,
|
||||
center_text: Option<&str>,
|
||||
) {
|
||||
let loader_offset: i16 = 19;
|
||||
let center_text_offset: i16 = 10;
|
||||
|
||||
if initialize {
|
||||
Self::fadeout();
|
||||
display::rect_fill(SCREEN, bg_color);
|
||||
}
|
||||
|
||||
display::text_left(PROGRESS_TEXT_ORIGIN, text, Font::NORMAL, BLD_FG, bg_color);
|
||||
display::loader(progress, 19, fg_color, bg_color, icon);
|
||||
if let Some(center_text) = center_text {
|
||||
display::text_center(
|
||||
SCREEN.center() + Offset::y(loader_offset + center_text_offset),
|
||||
center_text,
|
||||
Font::NORMAL,
|
||||
GREY,
|
||||
bg_color,
|
||||
);
|
||||
}
|
||||
display::refresh();
|
||||
if initialize {
|
||||
Self::fadein();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl UIFeaturesBootloader for ModelMercuryFeatures {
|
||||
fn screen_welcome() {
|
||||
let mut frame = Welcome::new();
|
||||
show(&mut frame, true);
|
||||
}
|
||||
|
||||
fn bld_continue_label(bg_color: Color) {
|
||||
display::text_center(
|
||||
Point::new(SCREEN.width() / 2, SCREEN.height() - 5),
|
||||
"click to continue ...",
|
||||
Font::NORMAL,
|
||||
WHITE,
|
||||
bg_color,
|
||||
);
|
||||
}
|
||||
|
||||
fn screen_install_success(restart_seconds: u8, initial_setup: bool, complete_draw: bool) {
|
||||
let mut reboot_msg = BootloaderString::new();
|
||||
|
||||
let bg_color = if initial_setup { WELCOME_COLOR } else { BLD_BG };
|
||||
let fg_color = if initial_setup { GREEN_LIGHT } else { BLD_FG };
|
||||
|
||||
if restart_seconds >= 1 {
|
||||
// in practice, restart_seconds is 5 or less so this is fine
|
||||
let seconds_char = b'0' + restart_seconds % 10;
|
||||
unwrap!(reboot_msg.push(seconds_char as char));
|
||||
let progress = (5 - (restart_seconds as u16)).clamp(0, 5) * 200;
|
||||
|
||||
Self::screen_progress(
|
||||
"Restarting device",
|
||||
progress,
|
||||
complete_draw,
|
||||
fg_color,
|
||||
bg_color,
|
||||
None,
|
||||
Some(reboot_msg.as_str()),
|
||||
);
|
||||
} else {
|
||||
Self::screen_progress(
|
||||
"Firmware installed",
|
||||
1000,
|
||||
complete_draw,
|
||||
fg_color,
|
||||
bg_color,
|
||||
Some((Icon::new(CHECK24), BLD_FG)),
|
||||
None,
|
||||
);
|
||||
}
|
||||
|
||||
display::refresh();
|
||||
}
|
||||
|
||||
fn screen_install_fail() {
|
||||
let mut frame = ResultScreen::new(
|
||||
&RESULT_FW_INSTALL,
|
||||
Icon::new(WARNING40),
|
||||
"Firmware installation was not successful".into(),
|
||||
Label::centered(RECONNECT_MESSAGE.into(), RESULT_FW_INSTALL.title_style())
|
||||
.vertically_centered(),
|
||||
true,
|
||||
);
|
||||
show(&mut frame, true);
|
||||
}
|
||||
|
||||
fn screen_install_confirm(
|
||||
vendor: &str,
|
||||
version: &str,
|
||||
fingerprint: &str,
|
||||
should_keep_seed: bool,
|
||||
is_newvendor: bool,
|
||||
version_cmp: i32,
|
||||
) -> u32 {
|
||||
let mut version_str: BootloaderString = String::new();
|
||||
unwrap!(version_str.push_str("Firmware version "));
|
||||
unwrap!(version_str.push_str(version));
|
||||
unwrap!(version_str.push_str("\nby "));
|
||||
unwrap!(version_str.push_str(vendor));
|
||||
|
||||
let title_str = if is_newvendor {
|
||||
"CHANGE FW\nVENDOR"
|
||||
} else if version_cmp > 0 {
|
||||
"UPDATE FIRMWARE"
|
||||
} else if version_cmp == 0 {
|
||||
"REINSTALL FW"
|
||||
} else {
|
||||
"DOWNGRADE FW"
|
||||
};
|
||||
let title = Label::left_aligned(title_str.into(), TEXT_BOLD).vertically_centered();
|
||||
let msg = Label::left_aligned(version_str.as_str().into(), TEXT_NORMAL);
|
||||
let alert = (!should_keep_seed).then_some(Label::left_aligned(
|
||||
"SEED WILL BE ERASED!".into(),
|
||||
TEXT_BOLD,
|
||||
));
|
||||
|
||||
let (left, right) = if should_keep_seed {
|
||||
let l = Button::with_text("CANCEL".into()).styled(button_bld());
|
||||
let r = Button::with_text("INSTALL".into()).styled(button_confirm());
|
||||
(l, r)
|
||||
} else {
|
||||
let l = Button::with_icon(Icon::new(X24)).styled(button_bld());
|
||||
let r = Button::with_icon(Icon::new(CHECK24)).styled(button_confirm());
|
||||
(l, r)
|
||||
};
|
||||
|
||||
let mut frame = Confirm::new(BLD_BG, left, right, ConfirmTitle::Text(title), msg)
|
||||
.with_info(
|
||||
"FW FINGERPRINT".into(),
|
||||
fingerprint.into(),
|
||||
button_bld_menu(),
|
||||
);
|
||||
|
||||
if let Some(alert) = alert {
|
||||
frame = frame.with_alert(alert);
|
||||
}
|
||||
|
||||
run(&mut frame)
|
||||
}
|
||||
|
||||
fn screen_wipe_confirm() -> u32 {
|
||||
let icon = Icon::new(FIRE40);
|
||||
|
||||
let msg = Label::centered(
|
||||
"Are you sure you want to factory reset the device?".into(),
|
||||
TEXT_WIPE_NORMAL,
|
||||
);
|
||||
let alert = Label::centered("SEED AND FIRMWARE\nWILL BE ERASED!".into(), TEXT_WIPE_BOLD);
|
||||
|
||||
let right = Button::with_text("RESET".into()).styled(button_wipe_confirm());
|
||||
let left = Button::with_text("CANCEL".into()).styled(button_wipe_cancel());
|
||||
|
||||
let mut frame = Confirm::new(BLD_WIPE_COLOR, left, right, ConfirmTitle::Icon(icon), msg)
|
||||
.with_alert(alert);
|
||||
|
||||
run(&mut frame)
|
||||
}
|
||||
|
||||
fn screen_unlock_bootloader_confirm() -> u32 {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
fn screen_unlock_bootloader_success() {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
fn screen_menu(firmware_present: secbool) -> u32 {
|
||||
run(&mut Menu::new(firmware_present))
|
||||
}
|
||||
|
||||
fn screen_intro(bld_version: &str, vendor: &str, version: &str, fw_ok: bool) -> u32 {
|
||||
let mut title_str: BootloaderString = String::new();
|
||||
unwrap!(title_str.push_str("BOOTLOADER "));
|
||||
unwrap!(title_str.push_str(bld_version));
|
||||
|
||||
let mut version_str: BootloaderString = String::new();
|
||||
unwrap!(version_str.push_str("Firmware version "));
|
||||
unwrap!(version_str.push_str(version));
|
||||
unwrap!(version_str.push_str("\nby "));
|
||||
unwrap!(version_str.push_str(vendor));
|
||||
|
||||
let mut frame = Intro::new(
|
||||
title_str.as_str().into(),
|
||||
version_str.as_str().into(),
|
||||
fw_ok,
|
||||
);
|
||||
|
||||
run(&mut frame)
|
||||
}
|
||||
|
||||
fn screen_boot_stage_1(fading: bool) {
|
||||
if fading {
|
||||
Self::fadeout();
|
||||
}
|
||||
|
||||
display::rect_fill(SCREEN, BLACK);
|
||||
|
||||
let mut frame = WelcomeScreen::new();
|
||||
show(&mut frame, false);
|
||||
|
||||
if fading {
|
||||
Self::fadein();
|
||||
} else {
|
||||
display::set_backlight(BACKLIGHT_NORMAL);
|
||||
}
|
||||
display::refresh();
|
||||
}
|
||||
|
||||
fn screen_wipe_progress(progress: u16, initialize: bool) {
|
||||
Self::screen_progress(
|
||||
"Resetting Trezor",
|
||||
progress,
|
||||
initialize,
|
||||
BLD_FG,
|
||||
BLD_WIPE_COLOR,
|
||||
Some((Icon::new(FIRE32), BLD_FG)),
|
||||
None,
|
||||
)
|
||||
}
|
||||
|
||||
fn screen_install_progress(progress: u16, initialize: bool, initial_setup: bool) {
|
||||
let bg_color = if initial_setup { WELCOME_COLOR } else { BLD_BG };
|
||||
let fg_color = if initial_setup { GREEN_LIGHT } else { BLD_FG };
|
||||
let icon_color = BLD_FG;
|
||||
|
||||
Self::screen_progress(
|
||||
"Installing firmware",
|
||||
progress,
|
||||
initialize,
|
||||
fg_color,
|
||||
bg_color,
|
||||
Some((Icon::new(DOWNLOAD24), icon_color)),
|
||||
None,
|
||||
)
|
||||
}
|
||||
|
||||
fn screen_connect(initial_setup: bool) {
|
||||
let bg = if initial_setup { WELCOME_COLOR } else { BLD_BG };
|
||||
let mut frame = Connect::new("Waiting for host...", BLD_TITLE_COLOR, bg);
|
||||
show(&mut frame, true);
|
||||
}
|
||||
|
||||
fn screen_wipe_success() {
|
||||
let mut frame = ResultScreen::new(
|
||||
&RESULT_WIPE,
|
||||
Icon::new(CHECK40),
|
||||
"Trezor reset\nsuccessfully".into(),
|
||||
Label::centered(RECONNECT_MESSAGE.into(), RESULT_WIPE.title_style())
|
||||
.vertically_centered(),
|
||||
true,
|
||||
);
|
||||
show(&mut frame, true);
|
||||
}
|
||||
|
||||
fn screen_wipe_fail() {
|
||||
let mut frame = ResultScreen::new(
|
||||
&RESULT_WIPE,
|
||||
Icon::new(WARNING40),
|
||||
"Trezor reset was\nnot successful".into(),
|
||||
Label::centered(RECONNECT_MESSAGE.into(), RESULT_WIPE.title_style())
|
||||
.vertically_centered(),
|
||||
true,
|
||||
);
|
||||
show(&mut frame, true);
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
use crate::ui::{
|
||||
component::{Component, Event, EventCtx, Never, Pad},
|
||||
constant::screen,
|
||||
display::{self, Font},
|
||||
geometry::{Offset, Point, Rect},
|
||||
};
|
||||
|
||||
use super::super::theme::{BLACK, GREY, WHITE};
|
||||
|
||||
const TEXT_ORIGIN: Point = Point::new(0, 105);
|
||||
const STRIDE: i16 = 22;
|
||||
|
||||
pub struct Welcome {
|
||||
bg: Pad,
|
||||
}
|
||||
|
||||
impl Welcome {
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
bg: Pad::with_background(BLACK).with_clear(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for Welcome {
|
||||
type Msg = Never;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.bg.place(screen());
|
||||
bounds
|
||||
}
|
||||
|
||||
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
let at_width = Font::NORMAL.text_width("at ");
|
||||
|
||||
self.bg.paint();
|
||||
display::text_left(TEXT_ORIGIN, "Get started", Font::NORMAL, GREY, BLACK);
|
||||
display::text_left(
|
||||
TEXT_ORIGIN + Offset::y(STRIDE),
|
||||
"with your Trezor",
|
||||
Font::NORMAL,
|
||||
GREY,
|
||||
BLACK,
|
||||
);
|
||||
display::text_left(
|
||||
TEXT_ORIGIN + Offset::y(2 * STRIDE),
|
||||
"at",
|
||||
Font::NORMAL,
|
||||
GREY,
|
||||
BLACK,
|
||||
);
|
||||
display::text_left(
|
||||
TEXT_ORIGIN + Offset::new(at_width, 2 * STRIDE),
|
||||
"trezor.io/start",
|
||||
Font::NORMAL,
|
||||
WHITE,
|
||||
BLACK,
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,254 @@
|
||||
use crate::{
|
||||
strutil::TString,
|
||||
ui::{
|
||||
component::{Child, Component, ComponentExt, Event, EventCtx, Label, Pad},
|
||||
constant,
|
||||
constant::screen,
|
||||
display::{Color, Icon},
|
||||
geometry::{Alignment2D, Insets, Offset, Point, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::{
|
||||
constant::WIDTH,
|
||||
theme::{
|
||||
bootloader::{
|
||||
text_fingerprint, text_title, BUTTON_AREA_START, BUTTON_HEIGHT, CONTENT_PADDING,
|
||||
CORNER_BUTTON_AREA, CORNER_BUTTON_TOUCH_EXPANSION, INFO32, TITLE_AREA, X32,
|
||||
},
|
||||
WHITE,
|
||||
},
|
||||
Button,
|
||||
ButtonMsg::Clicked,
|
||||
ButtonStyleSheet,
|
||||
};
|
||||
|
||||
const ICON_TOP: i16 = 17;
|
||||
const CONTENT_START: i16 = 72;
|
||||
|
||||
const CONTENT_AREA: Rect = Rect::new(
|
||||
Point::new(CONTENT_PADDING, CONTENT_START),
|
||||
Point::new(WIDTH - CONTENT_PADDING, BUTTON_AREA_START - CONTENT_PADDING),
|
||||
);
|
||||
|
||||
#[derive(Copy, Clone, ToPrimitive)]
|
||||
pub enum ConfirmMsg {
|
||||
Cancel = 1,
|
||||
Confirm = 2,
|
||||
}
|
||||
|
||||
pub enum ConfirmTitle {
|
||||
Text(Label<'static>),
|
||||
Icon(Icon),
|
||||
}
|
||||
|
||||
pub struct ConfirmInfo<'a> {
|
||||
pub title: Child<Label<'a>>,
|
||||
pub text: Child<Label<'a>>,
|
||||
pub info_button: Child<Button>,
|
||||
pub close_button: Child<Button>,
|
||||
}
|
||||
|
||||
pub struct Confirm<'a> {
|
||||
bg: Pad,
|
||||
content_pad: Pad,
|
||||
bg_color: Color,
|
||||
title: ConfirmTitle,
|
||||
message: Child<Label<'a>>,
|
||||
alert: Option<Child<Label<'static>>>,
|
||||
left_button: Child<Button>,
|
||||
right_button: Child<Button>,
|
||||
info: Option<ConfirmInfo<'a>>,
|
||||
show_info: bool,
|
||||
}
|
||||
|
||||
impl<'a> Confirm<'a> {
|
||||
pub fn new(
|
||||
bg_color: Color,
|
||||
left_button: Button,
|
||||
right_button: Button,
|
||||
title: ConfirmTitle,
|
||||
message: Label<'a>,
|
||||
) -> Self {
|
||||
Self {
|
||||
bg: Pad::with_background(bg_color).with_clear(),
|
||||
content_pad: Pad::with_background(bg_color),
|
||||
bg_color,
|
||||
title,
|
||||
message: Child::new(message.vertically_centered()),
|
||||
left_button: Child::new(left_button),
|
||||
right_button: Child::new(right_button),
|
||||
alert: None,
|
||||
info: None,
|
||||
show_info: false,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn with_alert(mut self, alert: Label<'static>) -> Self {
|
||||
self.alert = Some(Child::new(alert.vertically_centered()));
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_info(
|
||||
mut self,
|
||||
title: TString<'a>,
|
||||
text: TString<'a>,
|
||||
menu_button: ButtonStyleSheet,
|
||||
) -> Self {
|
||||
self.info = Some(ConfirmInfo {
|
||||
title: Child::new(
|
||||
Label::left_aligned(title, text_title(self.bg_color)).vertically_centered(),
|
||||
),
|
||||
text: Child::new(
|
||||
Label::left_aligned(text, text_fingerprint(self.bg_color)).vertically_centered(),
|
||||
),
|
||||
info_button: Child::new(
|
||||
Button::with_icon(Icon::new(INFO32))
|
||||
.styled(menu_button)
|
||||
.with_expanded_touch_area(Insets::uniform(CORNER_BUTTON_TOUCH_EXPANSION)),
|
||||
),
|
||||
close_button: Child::new(
|
||||
Button::with_icon(Icon::new(X32))
|
||||
.styled(menu_button)
|
||||
.with_expanded_touch_area(Insets::uniform(CORNER_BUTTON_TOUCH_EXPANSION)),
|
||||
),
|
||||
});
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for Confirm<'_> {
|
||||
type Msg = ConfirmMsg;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.bg.place(constant::screen());
|
||||
self.content_pad.place(Rect::new(
|
||||
Point::zero(),
|
||||
Point::new(WIDTH, BUTTON_AREA_START),
|
||||
));
|
||||
|
||||
let mut content_area = CONTENT_AREA;
|
||||
|
||||
match &mut self.title {
|
||||
ConfirmTitle::Icon(_) => {
|
||||
// XXX HACK: when icon is present (wipe device screen), we know the
|
||||
// string is long and we need to go outside the content padding
|
||||
content_area = content_area.inset(Insets::sides(-CONTENT_PADDING));
|
||||
}
|
||||
ConfirmTitle::Text(title) => {
|
||||
title.place(TITLE_AREA);
|
||||
}
|
||||
};
|
||||
|
||||
if self.alert.is_some() {
|
||||
let message_height = self.message.inner().text_height(content_area.width());
|
||||
self.message.place(Rect::from_top_left_and_size(
|
||||
content_area.top_left(),
|
||||
Offset::new(content_area.width(), message_height),
|
||||
));
|
||||
|
||||
let (_, alert_bounds) = content_area.split_top(message_height);
|
||||
|
||||
self.alert.place(alert_bounds);
|
||||
} else {
|
||||
self.message.place(content_area);
|
||||
}
|
||||
|
||||
let button_size = Offset::new((WIDTH - 3 * CONTENT_PADDING) / 2, BUTTON_HEIGHT);
|
||||
self.left_button.place(Rect::from_top_left_and_size(
|
||||
Point::new(CONTENT_PADDING, BUTTON_AREA_START),
|
||||
button_size,
|
||||
));
|
||||
self.right_button.place(Rect::from_top_left_and_size(
|
||||
Point::new(2 * CONTENT_PADDING + button_size.x, BUTTON_AREA_START),
|
||||
button_size,
|
||||
));
|
||||
|
||||
if let Some(info) = self.info.as_mut() {
|
||||
info.info_button.place(CORNER_BUTTON_AREA);
|
||||
info.close_button.place(CORNER_BUTTON_AREA);
|
||||
info.title.place(TITLE_AREA);
|
||||
info.text.place(Rect::new(
|
||||
Point::new(CONTENT_PADDING, TITLE_AREA.y1),
|
||||
Point::new(WIDTH - CONTENT_PADDING, BUTTON_AREA_START),
|
||||
));
|
||||
}
|
||||
bounds
|
||||
}
|
||||
|
||||
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
|
||||
if let Some(info) = self.info.as_mut() {
|
||||
if self.show_info {
|
||||
if let Some(Clicked) = info.close_button.event(ctx, event) {
|
||||
self.show_info = false;
|
||||
self.content_pad.clear();
|
||||
self.message.request_complete_repaint(ctx);
|
||||
self.alert.request_complete_repaint(ctx);
|
||||
return None;
|
||||
}
|
||||
} else if let Some(Clicked) = info.info_button.event(ctx, event) {
|
||||
self.show_info = true;
|
||||
info.text.request_complete_repaint(ctx);
|
||||
info.title.request_complete_repaint(ctx);
|
||||
self.content_pad.clear();
|
||||
return None;
|
||||
}
|
||||
}
|
||||
if let Some(Clicked) = self.left_button.event(ctx, event) {
|
||||
return Some(Self::Msg::Cancel);
|
||||
};
|
||||
if let Some(Clicked) = self.right_button.event(ctx, event) {
|
||||
return Some(Self::Msg::Confirm);
|
||||
};
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
self.bg.paint();
|
||||
self.content_pad.paint();
|
||||
|
||||
if let Some(info) = self.info.as_mut() {
|
||||
if self.show_info {
|
||||
info.close_button.paint();
|
||||
info.title.paint();
|
||||
info.text.paint();
|
||||
self.left_button.paint();
|
||||
self.right_button.paint();
|
||||
// short-circuit before painting the main components
|
||||
return;
|
||||
} else {
|
||||
info.info_button.paint();
|
||||
// pass through to the rest of the paint
|
||||
}
|
||||
}
|
||||
|
||||
self.message.paint();
|
||||
self.alert.paint();
|
||||
self.left_button.paint();
|
||||
self.right_button.paint();
|
||||
match &mut self.title {
|
||||
ConfirmTitle::Text(label) => label.paint(),
|
||||
ConfirmTitle::Icon(icon) => {
|
||||
icon.draw(
|
||||
Point::new(screen().center().x, ICON_TOP),
|
||||
Alignment2D::TOP_CENTER,
|
||||
WHITE,
|
||||
self.bg_color,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_bounds")]
|
||||
fn bounds(&self, sink: &mut dyn FnMut(Rect)) {
|
||||
self.left_button.bounds(sink);
|
||||
self.right_button.bounds(sink);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_debug")]
|
||||
impl crate::trace::Trace for Confirm<'_> {
|
||||
fn trace(&self, t: &mut dyn crate::trace::Tracer) {
|
||||
t.component("BlConfirm");
|
||||
}
|
||||
}
|
@ -0,0 +1,440 @@
|
||||
#[cfg(feature = "haptic")]
|
||||
use crate::trezorhal::haptic::{play, HapticEffect};
|
||||
use crate::{
|
||||
strutil::TString,
|
||||
time::Duration,
|
||||
ui::{
|
||||
component::{Component, Event, EventCtx, TimerToken},
|
||||
display::{self, toif::Icon, Color, Font},
|
||||
event::TouchEvent,
|
||||
geometry::{Alignment2D, Insets, Offset, Point, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::theme;
|
||||
|
||||
pub enum ButtonMsg {
|
||||
Pressed,
|
||||
Released,
|
||||
Clicked,
|
||||
LongPressed,
|
||||
}
|
||||
|
||||
pub struct Button {
|
||||
area: Rect,
|
||||
touch_expand: Option<Insets>,
|
||||
content: ButtonContent,
|
||||
styles: ButtonStyleSheet,
|
||||
state: State,
|
||||
long_press: Option<Duration>,
|
||||
long_timer: Option<TimerToken>,
|
||||
}
|
||||
|
||||
impl Button {
|
||||
/// Offsets the baseline of the button text either up (negative) or down
|
||||
/// (positive).
|
||||
pub const BASELINE_OFFSET: i16 = -2;
|
||||
|
||||
pub const fn new(content: ButtonContent) -> Self {
|
||||
Self {
|
||||
content,
|
||||
area: Rect::zero(),
|
||||
touch_expand: None,
|
||||
styles: theme::button_default(),
|
||||
state: State::Initial,
|
||||
long_press: None,
|
||||
long_timer: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub const fn with_text(text: TString<'static>) -> Self {
|
||||
Self::new(ButtonContent::Text(text))
|
||||
}
|
||||
|
||||
pub const fn with_icon(icon: Icon) -> Self {
|
||||
Self::new(ButtonContent::Icon(icon))
|
||||
}
|
||||
|
||||
pub const fn with_icon_and_text(content: IconText) -> Self {
|
||||
Self::new(ButtonContent::IconAndText(content))
|
||||
}
|
||||
|
||||
pub const fn with_icon_blend(bg: Icon, fg: Icon, fg_offset: Offset) -> Self {
|
||||
Self::new(ButtonContent::IconBlend(bg, fg, fg_offset))
|
||||
}
|
||||
|
||||
pub const fn empty() -> Self {
|
||||
Self::new(ButtonContent::Empty)
|
||||
}
|
||||
|
||||
pub const fn styled(mut self, styles: ButtonStyleSheet) -> Self {
|
||||
self.styles = styles;
|
||||
self
|
||||
}
|
||||
|
||||
pub const fn with_expanded_touch_area(mut self, expand: Insets) -> Self {
|
||||
self.touch_expand = Some(expand);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_long_press(mut self, duration: Duration) -> Self {
|
||||
self.long_press = Some(duration);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn enable_if(&mut self, ctx: &mut EventCtx, enabled: bool) {
|
||||
if enabled {
|
||||
self.enable(ctx);
|
||||
} else {
|
||||
self.disable(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
pub fn initially_enabled(mut self, enabled: bool) -> Self {
|
||||
if !enabled {
|
||||
self.state = State::Disabled;
|
||||
}
|
||||
self
|
||||
}
|
||||
|
||||
pub fn enable(&mut self, ctx: &mut EventCtx) {
|
||||
self.set(ctx, State::Initial)
|
||||
}
|
||||
|
||||
pub fn disable(&mut self, ctx: &mut EventCtx) {
|
||||
self.set(ctx, State::Disabled)
|
||||
}
|
||||
|
||||
pub fn is_enabled(&self) -> bool {
|
||||
matches!(
|
||||
self.state,
|
||||
State::Initial | State::Pressed | State::Released
|
||||
)
|
||||
}
|
||||
|
||||
pub fn is_disabled(&self) -> bool {
|
||||
matches!(self.state, State::Disabled)
|
||||
}
|
||||
|
||||
pub fn set_content(&mut self, ctx: &mut EventCtx, content: ButtonContent) {
|
||||
if self.content != content {
|
||||
self.content = content;
|
||||
ctx.request_paint();
|
||||
}
|
||||
}
|
||||
|
||||
pub fn content(&self) -> &ButtonContent {
|
||||
&self.content
|
||||
}
|
||||
|
||||
pub fn set_stylesheet(&mut self, ctx: &mut EventCtx, styles: ButtonStyleSheet) {
|
||||
if self.styles != styles {
|
||||
self.styles = styles;
|
||||
ctx.request_paint();
|
||||
}
|
||||
}
|
||||
|
||||
pub fn style(&self) -> &ButtonStyle {
|
||||
match self.state {
|
||||
State::Initial | State::Released => self.styles.normal,
|
||||
State::Pressed => self.styles.active,
|
||||
State::Disabled => self.styles.disabled,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn area(&self) -> Rect {
|
||||
self.area
|
||||
}
|
||||
|
||||
fn set(&mut self, ctx: &mut EventCtx, state: State) {
|
||||
if self.state != state {
|
||||
self.state = state;
|
||||
ctx.request_paint();
|
||||
}
|
||||
}
|
||||
|
||||
pub fn paint_background(&self, style: &ButtonStyle) {
|
||||
match &self.content {
|
||||
ButtonContent::IconBlend(_, _, _) => {}
|
||||
_ => {
|
||||
if style.border_width > 0 {
|
||||
// Paint the border and a smaller background on top of it.
|
||||
display::rect_fill_rounded(
|
||||
self.area,
|
||||
style.border_color,
|
||||
style.background_color,
|
||||
style.border_radius,
|
||||
);
|
||||
display::rect_fill_rounded(
|
||||
self.area.inset(Insets::uniform(style.border_width)),
|
||||
style.button_color,
|
||||
style.border_color,
|
||||
style.border_radius,
|
||||
);
|
||||
} else {
|
||||
// We do not need to draw an explicit border in this case, just a
|
||||
// bigger background.
|
||||
display::rect_fill_rounded(
|
||||
self.area,
|
||||
style.button_color,
|
||||
style.background_color,
|
||||
style.border_radius,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn paint_content(&self, style: &ButtonStyle) {
|
||||
match &self.content {
|
||||
ButtonContent::Empty => {}
|
||||
ButtonContent::Text(text) => {
|
||||
let width = text.map(|c| style.font.text_width(c));
|
||||
let height = style.font.text_height();
|
||||
let start_of_baseline = self.area.center()
|
||||
+ Offset::new(-width / 2, height / 2)
|
||||
+ Offset::y(Self::BASELINE_OFFSET);
|
||||
text.map(|text| {
|
||||
display::text_left(
|
||||
start_of_baseline,
|
||||
text,
|
||||
style.font,
|
||||
style.text_color,
|
||||
style.button_color,
|
||||
);
|
||||
});
|
||||
}
|
||||
ButtonContent::Icon(icon) => {
|
||||
icon.draw(
|
||||
self.area.center(),
|
||||
Alignment2D::CENTER,
|
||||
style.text_color,
|
||||
style.button_color,
|
||||
);
|
||||
}
|
||||
ButtonContent::IconAndText(child) => {
|
||||
child.paint(self.area, self.style(), Self::BASELINE_OFFSET);
|
||||
}
|
||||
ButtonContent::IconBlend(bg, fg, offset) => display::icon_over_icon(
|
||||
Some(self.area),
|
||||
(*bg, Offset::zero(), style.button_color),
|
||||
(*fg, *offset, style.text_color),
|
||||
style.background_color,
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for Button {
|
||||
type Msg = ButtonMsg;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.area = bounds;
|
||||
self.area
|
||||
}
|
||||
|
||||
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
|
||||
let touch_area = if let Some(expand) = self.touch_expand {
|
||||
self.area.outset(expand)
|
||||
} else {
|
||||
self.area
|
||||
};
|
||||
|
||||
match event {
|
||||
Event::Touch(TouchEvent::TouchStart(pos)) => {
|
||||
match self.state {
|
||||
State::Disabled => {
|
||||
// Do nothing.
|
||||
}
|
||||
_ => {
|
||||
// Touch started in our area, transform to `Pressed` state.
|
||||
if touch_area.contains(pos) {
|
||||
#[cfg(feature = "haptic")]
|
||||
play(HapticEffect::ButtonPress);
|
||||
self.set(ctx, State::Pressed);
|
||||
if let Some(duration) = self.long_press {
|
||||
self.long_timer = Some(ctx.request_timer(duration));
|
||||
}
|
||||
return Some(ButtonMsg::Pressed);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Event::Touch(TouchEvent::TouchMove(pos)) => {
|
||||
match self.state {
|
||||
State::Pressed if !touch_area.contains(pos) => {
|
||||
// Touch is leaving our area, transform to `Released` state.
|
||||
self.set(ctx, State::Released);
|
||||
return Some(ButtonMsg::Released);
|
||||
}
|
||||
_ => {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
}
|
||||
Event::Touch(TouchEvent::TouchEnd(pos)) => {
|
||||
match self.state {
|
||||
State::Initial | State::Disabled => {
|
||||
// Do nothing.
|
||||
}
|
||||
State::Pressed if touch_area.contains(pos) => {
|
||||
// Touch finished in our area, we got clicked.
|
||||
self.set(ctx, State::Initial);
|
||||
return Some(ButtonMsg::Clicked);
|
||||
}
|
||||
_ => {
|
||||
// Touch finished outside our area.
|
||||
self.set(ctx, State::Initial);
|
||||
self.long_timer = None;
|
||||
}
|
||||
}
|
||||
}
|
||||
Event::Timer(token) => {
|
||||
if self.long_timer == Some(token) {
|
||||
self.long_timer = None;
|
||||
if matches!(self.state, State::Pressed) {
|
||||
#[cfg(feature = "haptic")]
|
||||
play(HapticEffect::ButtonPress);
|
||||
self.set(ctx, State::Initial);
|
||||
return Some(ButtonMsg::LongPressed);
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
};
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
let style = self.style();
|
||||
self.paint_background(style);
|
||||
self.paint_content(style);
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_bounds")]
|
||||
fn bounds(&self, sink: &mut dyn FnMut(Rect)) {
|
||||
sink(self.area);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_debug")]
|
||||
impl crate::trace::Trace for Button {
|
||||
fn trace(&self, t: &mut dyn crate::trace::Tracer) {
|
||||
t.component("Button");
|
||||
match &self.content {
|
||||
ButtonContent::Empty => {}
|
||||
ButtonContent::Text(text) => t.string("text", *text),
|
||||
ButtonContent::Icon(_) => t.bool("icon", true),
|
||||
ButtonContent::IconAndText(content) => {
|
||||
t.string("text", content.text.into());
|
||||
t.bool("icon", true);
|
||||
}
|
||||
ButtonContent::IconBlend(_, _, _) => t.bool("icon", true),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
enum State {
|
||||
Initial,
|
||||
Pressed,
|
||||
Released,
|
||||
Disabled,
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
pub enum ButtonContent {
|
||||
Empty,
|
||||
Text(TString<'static>),
|
||||
Icon(Icon),
|
||||
IconAndText(IconText),
|
||||
IconBlend(Icon, Icon, Offset),
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq, Clone, Copy)]
|
||||
pub struct ButtonStyleSheet {
|
||||
pub normal: &'static ButtonStyle,
|
||||
pub active: &'static ButtonStyle,
|
||||
pub disabled: &'static ButtonStyle,
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
pub struct ButtonStyle {
|
||||
pub font: Font,
|
||||
pub text_color: Color,
|
||||
pub button_color: Color,
|
||||
pub background_color: Color,
|
||||
pub border_color: Color,
|
||||
pub border_radius: u8,
|
||||
pub border_width: i16,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
pub enum CancelInfoConfirmMsg {
|
||||
Cancelled,
|
||||
Info,
|
||||
Confirmed,
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
pub struct IconText {
|
||||
text: &'static str,
|
||||
icon: Icon,
|
||||
}
|
||||
|
||||
impl IconText {
|
||||
const ICON_SPACE: i16 = 46;
|
||||
const ICON_MARGIN: i16 = 4;
|
||||
const TEXT_MARGIN: i16 = 6;
|
||||
|
||||
pub fn new(text: &'static str, icon: Icon) -> Self {
|
||||
Self { text, icon }
|
||||
}
|
||||
|
||||
pub fn paint(&self, area: Rect, style: &ButtonStyle, baseline_offset: i16) {
|
||||
let width = style.font.text_width(self.text);
|
||||
let height = style.font.text_height();
|
||||
|
||||
let mut use_icon = false;
|
||||
let mut use_text = false;
|
||||
|
||||
let mut icon_pos = Point::new(
|
||||
area.top_left().x + ((Self::ICON_SPACE + Self::ICON_MARGIN) / 2),
|
||||
area.center().y,
|
||||
);
|
||||
let mut text_pos =
|
||||
area.center() + Offset::new(-width / 2, height / 2) + Offset::y(baseline_offset);
|
||||
|
||||
if area.width() > (Self::ICON_SPACE + Self::TEXT_MARGIN + width) {
|
||||
//display both icon and text
|
||||
text_pos = Point::new(area.top_left().x + Self::ICON_SPACE, text_pos.y);
|
||||
use_text = true;
|
||||
use_icon = true;
|
||||
} else if area.width() > (width + Self::TEXT_MARGIN) {
|
||||
use_text = true;
|
||||
} else {
|
||||
//if we can't fit the text, retreat to centering the icon
|
||||
icon_pos = area.center();
|
||||
use_icon = true;
|
||||
}
|
||||
|
||||
if use_text {
|
||||
display::text_left(
|
||||
text_pos,
|
||||
self.text,
|
||||
style.font,
|
||||
style.text_color,
|
||||
style.button_color,
|
||||
);
|
||||
}
|
||||
|
||||
if use_icon {
|
||||
self.icon.draw(
|
||||
icon_pos,
|
||||
Alignment2D::CENTER,
|
||||
style.text_color,
|
||||
style.button_color,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
use crate::{
|
||||
strutil::TString,
|
||||
ui::{
|
||||
component::{Child, Component, Event, EventCtx, Label, Never, Pad},
|
||||
constant::screen,
|
||||
geometry::{Alignment2D, Point, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::{
|
||||
constant::WIDTH,
|
||||
theme::{FATAL_ERROR_COLOR, ICON_WARNING40, RESULT_FOOTER_START, RESULT_PADDING, WHITE},
|
||||
ResultFooter, ResultStyle,
|
||||
};
|
||||
|
||||
const ICON_TOP: i16 = 23;
|
||||
const TITLE_AREA_START: i16 = 70;
|
||||
const MESSAGE_AREA_START: i16 = 116;
|
||||
|
||||
#[cfg(feature = "bootloader")]
|
||||
const STYLE: &ResultStyle = &crate::ui::model_mercury::theme::bootloader::RESULT_WIPE;
|
||||
#[cfg(not(feature = "bootloader"))]
|
||||
const STYLE: &ResultStyle = &super::theme::RESULT_ERROR;
|
||||
|
||||
pub struct ErrorScreen<'a> {
|
||||
bg: Pad,
|
||||
title: Child<Label<'a>>,
|
||||
message: Child<Label<'a>>,
|
||||
footer: Child<ResultFooter<'a>>,
|
||||
}
|
||||
|
||||
impl<'a> ErrorScreen<'a> {
|
||||
pub fn new(title: TString<'a>, message: TString<'a>, footer: TString<'a>) -> Self {
|
||||
let title = Label::centered(title, STYLE.title_style());
|
||||
let message = Label::centered(message, STYLE.message_style());
|
||||
let footer = ResultFooter::new(
|
||||
Label::centered(footer, STYLE.title_style()).vertically_centered(),
|
||||
STYLE,
|
||||
);
|
||||
|
||||
Self {
|
||||
bg: Pad::with_background(FATAL_ERROR_COLOR).with_clear(),
|
||||
title: Child::new(title),
|
||||
message: Child::new(message),
|
||||
footer: Child::new(footer),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Component for ErrorScreen<'a> {
|
||||
type Msg = Never;
|
||||
|
||||
fn place(&mut self, _bounds: Rect) -> Rect {
|
||||
self.bg.place(screen());
|
||||
|
||||
let title_area = Rect::new(
|
||||
Point::new(RESULT_PADDING, TITLE_AREA_START),
|
||||
Point::new(WIDTH - RESULT_PADDING, MESSAGE_AREA_START),
|
||||
);
|
||||
self.title.place(title_area);
|
||||
|
||||
let message_area = Rect::new(
|
||||
Point::new(RESULT_PADDING, MESSAGE_AREA_START),
|
||||
Point::new(WIDTH - RESULT_PADDING, RESULT_FOOTER_START),
|
||||
);
|
||||
self.message.place(message_area);
|
||||
|
||||
let (_, bottom_area) = ResultFooter::<'a>::split_bounds();
|
||||
self.footer.place(bottom_area);
|
||||
|
||||
screen()
|
||||
}
|
||||
|
||||
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
self.bg.paint();
|
||||
|
||||
let icon = ICON_WARNING40;
|
||||
icon.draw(
|
||||
Point::new(screen().center().x, ICON_TOP),
|
||||
Alignment2D::TOP_CENTER,
|
||||
WHITE,
|
||||
FATAL_ERROR_COLOR,
|
||||
);
|
||||
self.title.paint();
|
||||
self.message.paint();
|
||||
self.footer.paint();
|
||||
}
|
||||
}
|
@ -0,0 +1,204 @@
|
||||
use super::theme;
|
||||
use crate::{
|
||||
strutil::TString,
|
||||
ui::{
|
||||
component::{
|
||||
base::ComponentExt, label::Label, text::TextStyle, Child, Component, Event, EventCtx,
|
||||
},
|
||||
display::Icon,
|
||||
geometry::{Alignment, Insets, Offset, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::{Button, ButtonMsg, CancelInfoConfirmMsg};
|
||||
|
||||
pub struct Frame<T> {
|
||||
border: Insets,
|
||||
title: Child<Label<'static>>,
|
||||
subtitle: Option<Child<Label<'static>>>,
|
||||
button: Option<Child<Button>>,
|
||||
button_msg: CancelInfoConfirmMsg,
|
||||
content: Child<T>,
|
||||
}
|
||||
|
||||
pub enum FrameMsg<T> {
|
||||
Content(T),
|
||||
Button(CancelInfoConfirmMsg),
|
||||
}
|
||||
|
||||
impl<T> Frame<T>
|
||||
where
|
||||
T: Component,
|
||||
{
|
||||
pub fn new(
|
||||
style: TextStyle,
|
||||
alignment: Alignment,
|
||||
title: TString<'static>,
|
||||
content: T,
|
||||
) -> Self {
|
||||
Self {
|
||||
title: Child::new(Label::new(title, alignment, style)),
|
||||
subtitle: None,
|
||||
border: theme::borders(),
|
||||
button: None,
|
||||
button_msg: CancelInfoConfirmMsg::Cancelled,
|
||||
content: Child::new(content),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn left_aligned(style: TextStyle, title: TString<'static>, content: T) -> Self {
|
||||
Self::new(style, Alignment::Start, title, content)
|
||||
}
|
||||
|
||||
pub fn right_aligned(style: TextStyle, title: TString<'static>, content: T) -> Self {
|
||||
Self::new(style, Alignment::End, title, content)
|
||||
}
|
||||
|
||||
pub fn centered(style: TextStyle, title: TString<'static>, content: T) -> Self {
|
||||
Self::new(style, Alignment::Center, title, content)
|
||||
}
|
||||
|
||||
pub fn with_border(mut self, border: Insets) -> Self {
|
||||
self.border = border;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_subtitle(mut self, style: TextStyle, subtitle: TString<'static>) -> Self {
|
||||
self.subtitle = Some(Child::new(Label::new(
|
||||
subtitle,
|
||||
self.title.inner().alignment(),
|
||||
style,
|
||||
)));
|
||||
self
|
||||
}
|
||||
|
||||
fn with_button(mut self, icon: Icon, msg: CancelInfoConfirmMsg) -> Self {
|
||||
let touch_area = Insets {
|
||||
left: self.border.left * 4,
|
||||
bottom: self.border.bottom * 4,
|
||||
..self.border
|
||||
};
|
||||
self.button = Some(Child::new(
|
||||
Button::with_icon(icon)
|
||||
.with_expanded_touch_area(touch_area)
|
||||
.styled(theme::button_moreinfo()),
|
||||
));
|
||||
self.button_msg = msg;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn with_cancel_button(self) -> Self {
|
||||
self.with_button(theme::ICON_CORNER_CANCEL, CancelInfoConfirmMsg::Cancelled)
|
||||
}
|
||||
|
||||
pub fn with_info_button(self) -> Self {
|
||||
self.with_button(theme::ICON_CORNER_INFO, CancelInfoConfirmMsg::Info)
|
||||
}
|
||||
|
||||
pub fn inner(&self) -> &T {
|
||||
self.content.inner()
|
||||
}
|
||||
|
||||
pub fn update_title(&mut self, ctx: &mut EventCtx, new_title: TString<'static>) {
|
||||
self.title.mutate(ctx, |ctx, t| {
|
||||
t.set_text(new_title);
|
||||
t.request_complete_repaint(ctx)
|
||||
})
|
||||
}
|
||||
|
||||
pub fn update_content<F, R>(&mut self, ctx: &mut EventCtx, update_fn: F) -> R
|
||||
where
|
||||
F: Fn(&mut T) -> R,
|
||||
{
|
||||
self.content.mutate(ctx, |ctx, c| {
|
||||
let res = update_fn(c);
|
||||
c.request_complete_repaint(ctx);
|
||||
res
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> Component for Frame<T>
|
||||
where
|
||||
T: Component,
|
||||
{
|
||||
type Msg = FrameMsg<T::Msg>;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
const TITLE_SPACE: i16 = theme::BUTTON_SPACING;
|
||||
|
||||
let bounds = bounds.inset(self.border);
|
||||
// Allowing for little longer titles to fit in
|
||||
const TITLE_EXTRA_SPACE: Insets = Insets::right(2);
|
||||
if let Some(b) = &mut self.button {
|
||||
let button_side = theme::CORNER_BUTTON_SIDE;
|
||||
let (header_area, button_area) = bounds.split_right(button_side);
|
||||
let (button_area, _) = button_area.split_top(button_side);
|
||||
b.place(button_area);
|
||||
let title_area = self.title.place(header_area.outset(TITLE_EXTRA_SPACE));
|
||||
let remaining = header_area.inset(Insets::top(title_area.height()));
|
||||
let subtitle_area = self.subtitle.place(remaining);
|
||||
|
||||
let title_height = title_area.height() + subtitle_area.height();
|
||||
let header_height = title_height.max(button_side);
|
||||
if title_height < button_side {
|
||||
self.title
|
||||
.place(title_area.translate(Offset::y((button_side - title_height) / 2)));
|
||||
self.subtitle
|
||||
.place(subtitle_area.translate(Offset::y((button_side - title_height) / 2)));
|
||||
}
|
||||
let content_area = bounds.inset(Insets::top(header_height + TITLE_SPACE));
|
||||
self.content.place(content_area);
|
||||
} else {
|
||||
let title_area = self.title.place(bounds.outset(TITLE_EXTRA_SPACE));
|
||||
let remaining = bounds.inset(Insets::top(title_area.height()));
|
||||
let subtitle_area = self.subtitle.place(remaining);
|
||||
let remaining = remaining.inset(Insets::top(subtitle_area.height()));
|
||||
let content_area = remaining.inset(Insets::top(TITLE_SPACE));
|
||||
self.content.place(content_area);
|
||||
}
|
||||
bounds
|
||||
}
|
||||
|
||||
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
|
||||
self.title.event(ctx, event);
|
||||
self.subtitle.event(ctx, event);
|
||||
if let Some(ButtonMsg::Clicked) = self.button.event(ctx, event) {
|
||||
return Some(FrameMsg::Button(self.button_msg));
|
||||
}
|
||||
self.content.event(ctx, event).map(FrameMsg::Content)
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
self.title.paint();
|
||||
self.subtitle.paint();
|
||||
self.button.paint();
|
||||
self.content.paint();
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_bounds")]
|
||||
fn bounds(&self, sink: &mut dyn FnMut(Rect)) {
|
||||
self.title.bounds(sink);
|
||||
self.subtitle.bounds(sink);
|
||||
self.button.bounds(sink);
|
||||
self.content.bounds(sink);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_debug")]
|
||||
impl<T> crate::trace::Trace for Frame<T>
|
||||
where
|
||||
T: crate::trace::Trace,
|
||||
{
|
||||
fn trace(&self, t: &mut dyn crate::trace::Tracer) {
|
||||
t.component("Frame");
|
||||
t.child("title", &self.title);
|
||||
t.child("content", &self.content);
|
||||
if let Some(subtitle) = &self.subtitle {
|
||||
t.child("subtitle", subtitle);
|
||||
}
|
||||
if let Some(button) = &self.button {
|
||||
t.child("button", button);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,253 @@
|
||||
#[cfg(feature = "haptic")]
|
||||
use crate::trezorhal::haptic::{play, HapticEffect};
|
||||
use crate::{
|
||||
time::{Duration, Instant},
|
||||
ui::{
|
||||
animation::Animation,
|
||||
component::{Component, Event, EventCtx, Pad},
|
||||
display::{self, toif::Icon, Color},
|
||||
geometry::{Offset, Rect},
|
||||
util::animation_disabled,
|
||||
},
|
||||
};
|
||||
|
||||
use super::{constant, theme};
|
||||
|
||||
const GROWING_DURATION_MS: u32 = 1000;
|
||||
const SHRINKING_DURATION_MS: u32 = 500;
|
||||
|
||||
pub enum LoaderMsg {
|
||||
GrownCompletely,
|
||||
ShrunkCompletely,
|
||||
}
|
||||
|
||||
enum State {
|
||||
Initial,
|
||||
Growing(Animation<u16>),
|
||||
Shrinking(Animation<u16>),
|
||||
}
|
||||
|
||||
pub struct Loader {
|
||||
pub pad: Pad,
|
||||
state: State,
|
||||
growing_duration: Duration,
|
||||
shrinking_duration: Duration,
|
||||
styles: LoaderStyleSheet,
|
||||
offset_y: i16,
|
||||
}
|
||||
|
||||
impl Loader {
|
||||
pub const SIZE: Offset = Offset::new(120, 120);
|
||||
|
||||
pub fn new() -> Self {
|
||||
let styles = theme::loader_default();
|
||||
Self::with_styles(styles)
|
||||
}
|
||||
|
||||
pub fn with_lock_icon() -> Self {
|
||||
let styles = theme::loader_lock_icon();
|
||||
Self::with_styles(styles)
|
||||
}
|
||||
|
||||
pub fn with_styles(styles: LoaderStyleSheet) -> Self {
|
||||
Self {
|
||||
pad: Pad::with_background(styles.normal.background_color),
|
||||
state: State::Initial,
|
||||
growing_duration: Duration::from_millis(GROWING_DURATION_MS),
|
||||
shrinking_duration: Duration::from_millis(SHRINKING_DURATION_MS),
|
||||
styles,
|
||||
offset_y: 0,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn with_durations(
|
||||
mut self,
|
||||
growing_duration: Duration,
|
||||
shrinking_duration: Duration,
|
||||
) -> Self {
|
||||
self.growing_duration = growing_duration;
|
||||
self.shrinking_duration = shrinking_duration;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn start_growing(&mut self, ctx: &mut EventCtx, now: Instant) {
|
||||
let mut anim = Animation::new(
|
||||
display::LOADER_MIN,
|
||||
display::LOADER_MAX,
|
||||
self.growing_duration,
|
||||
now,
|
||||
);
|
||||
if let State::Shrinking(shrinking) = &self.state {
|
||||
anim.seek_to_value(shrinking.value(now));
|
||||
}
|
||||
self.state = State::Growing(anim);
|
||||
|
||||
// The animation is starting, request an animation frame event.
|
||||
ctx.request_anim_frame();
|
||||
|
||||
// We don't have to wait for the animation frame event with the first paint,
|
||||
// let's do that now.
|
||||
ctx.request_paint();
|
||||
}
|
||||
|
||||
pub fn start_shrinking(&mut self, ctx: &mut EventCtx, now: Instant) {
|
||||
let mut anim = Animation::new(
|
||||
display::LOADER_MAX,
|
||||
display::LOADER_MIN,
|
||||
self.shrinking_duration,
|
||||
now,
|
||||
);
|
||||
if let State::Growing(growing) = &self.state {
|
||||
anim.seek_to_value(display::LOADER_MAX.saturating_sub(growing.value(now)));
|
||||
}
|
||||
self.state = State::Shrinking(anim);
|
||||
|
||||
// Request anim frame as the animation may not be running, e.g. when already
|
||||
// grown completely.
|
||||
ctx.request_anim_frame();
|
||||
|
||||
// We don't have to wait for the animation frame event with next paint,
|
||||
// let's do that now.
|
||||
ctx.request_paint();
|
||||
}
|
||||
|
||||
pub fn reset(&mut self) {
|
||||
self.state = State::Initial;
|
||||
}
|
||||
|
||||
pub fn animation(&self) -> Option<&Animation<u16>> {
|
||||
match &self.state {
|
||||
State::Initial => None,
|
||||
State::Growing(a) | State::Shrinking(a) => Some(a),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn progress(&self, now: Instant) -> Option<u16> {
|
||||
self.animation().map(|a| a.value(now))
|
||||
}
|
||||
|
||||
pub fn is_animating(&self) -> bool {
|
||||
self.animation().is_some()
|
||||
}
|
||||
|
||||
pub fn is_completely_grown(&self, now: Instant) -> bool {
|
||||
matches!(self.progress(now), Some(display::LOADER_MAX))
|
||||
}
|
||||
|
||||
pub fn is_completely_shrunk(&self, now: Instant) -> bool {
|
||||
matches!(self.progress(now), Some(display::LOADER_MIN))
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for Loader {
|
||||
type Msg = LoaderMsg;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
// Current loader API only takes Y-offset relative to screen center, which we
|
||||
// compute from the bounds center point.
|
||||
let screen_center = constant::screen().center();
|
||||
self.offset_y = bounds.center().y - screen_center.y;
|
||||
|
||||
// FIXME: avoid umlauts rendering outside bounds
|
||||
let mut bounds_up_to_top = bounds;
|
||||
bounds_up_to_top.y0 = 0;
|
||||
self.pad.place(bounds_up_to_top);
|
||||
Rect::from_center_and_size(bounds.center(), Self::SIZE)
|
||||
}
|
||||
|
||||
fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option<Self::Msg> {
|
||||
let now = Instant::now();
|
||||
|
||||
if let Event::Timer(EventCtx::ANIM_FRAME_TIMER) = event {
|
||||
if self.is_animating() {
|
||||
// We have something to paint, so request to be painted in the next pass.
|
||||
if !animation_disabled() {
|
||||
ctx.request_paint();
|
||||
}
|
||||
|
||||
if self.is_completely_grown(now) {
|
||||
#[cfg(feature = "haptic")]
|
||||
play(HapticEffect::HoldToConfirm);
|
||||
return Some(LoaderMsg::GrownCompletely);
|
||||
} else if self.is_completely_shrunk(now) {
|
||||
return Some(LoaderMsg::ShrunkCompletely);
|
||||
} else {
|
||||
// There is further progress in the animation, request an animation frame event.
|
||||
ctx.request_anim_frame();
|
||||
}
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
// TODO: Consider passing the current instant along with the event -- that way,
|
||||
// we could synchronize painting across the component tree. Also could be useful
|
||||
// in automated tests.
|
||||
// In practice, taking the current instant here is more precise in case some
|
||||
// other component in the tree takes a long time to draw.
|
||||
let now = Instant::now();
|
||||
|
||||
if let Some(progress) = self.progress(now) {
|
||||
let style = if progress < display::LOADER_MAX {
|
||||
self.styles.normal
|
||||
} else {
|
||||
self.styles.active
|
||||
};
|
||||
|
||||
self.pad.paint();
|
||||
display::loader(
|
||||
progress,
|
||||
self.offset_y,
|
||||
style.loader_color,
|
||||
style.background_color,
|
||||
style.icon,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct LoaderStyleSheet {
|
||||
pub normal: &'static LoaderStyle,
|
||||
pub active: &'static LoaderStyle,
|
||||
}
|
||||
|
||||
pub struct LoaderStyle {
|
||||
pub icon: Option<(Icon, Color)>,
|
||||
pub loader_color: Color,
|
||||
pub background_color: Color,
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_debug")]
|
||||
impl crate::trace::Trace for Loader {
|
||||
fn trace(&self, t: &mut dyn crate::trace::Tracer) {
|
||||
t.component("Loader");
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn loader_yields_expected_progress() {
|
||||
let mut ctx = EventCtx::new();
|
||||
let mut l = Loader::new();
|
||||
let t = Instant::now();
|
||||
assert_eq!(l.progress(t), None);
|
||||
l.start_growing(&mut ctx, t);
|
||||
assert_eq!(l.progress(t), Some(0));
|
||||
let t = add_millis(t, 500);
|
||||
assert_eq!(l.progress(t), Some(500));
|
||||
l.start_shrinking(&mut ctx, t);
|
||||
assert_eq!(l.progress(t), Some(500));
|
||||
let t = add_millis(t, 125);
|
||||
assert_eq!(l.progress(t), Some(250));
|
||||
let t = add_millis(t, 125);
|
||||
assert_eq!(l.progress(t), Some(0));
|
||||
}
|
||||
|
||||
fn add_millis(inst: Instant, millis: u32) -> Instant {
|
||||
inst.checked_add(Duration::from_millis(millis)).unwrap()
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
pub mod bl_confirm;
|
||||
mod button;
|
||||
mod error;
|
||||
mod frame;
|
||||
mod loader;
|
||||
mod result;
|
||||
mod welcome_screen;
|
||||
|
||||
pub use button::{
|
||||
Button, ButtonContent, ButtonMsg, ButtonStyle, ButtonStyleSheet, CancelInfoConfirmMsg, IconText,
|
||||
};
|
||||
pub use error::ErrorScreen;
|
||||
pub use frame::{Frame, FrameMsg};
|
||||
pub use loader::{Loader, LoaderMsg, LoaderStyle, LoaderStyleSheet};
|
||||
pub use result::{ResultFooter, ResultScreen, ResultStyle};
|
||||
pub use welcome_screen::WelcomeScreen;
|
||||
|
||||
use super::{constant, theme};
|
@ -0,0 +1,168 @@
|
||||
use crate::{
|
||||
strutil::TString,
|
||||
ui::{
|
||||
component::{text::TextStyle, Child, Component, Event, EventCtx, Label, Never, Pad},
|
||||
constant::screen,
|
||||
display::{self, Color, Font, Icon},
|
||||
geometry::{Alignment2D, Insets, Offset, Point, Rect},
|
||||
},
|
||||
};
|
||||
|
||||
use super::{
|
||||
constant::WIDTH,
|
||||
theme::{FG, RESULT_FOOTER_START, RESULT_PADDING},
|
||||
};
|
||||
|
||||
const MESSAGE_AREA_START: i16 = 97;
|
||||
const ICON_CENTER_Y: i16 = 62;
|
||||
|
||||
pub struct ResultStyle {
|
||||
pub fg_color: Color,
|
||||
pub bg_color: Color,
|
||||
pub divider_color: Color,
|
||||
}
|
||||
|
||||
impl ResultStyle {
|
||||
pub const fn new(fg_color: Color, bg_color: Color, divider_color: Color) -> Self {
|
||||
Self {
|
||||
fg_color,
|
||||
bg_color,
|
||||
divider_color,
|
||||
}
|
||||
}
|
||||
|
||||
pub const fn message_style(&self) -> TextStyle {
|
||||
TextStyle::new(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)
|
||||
}
|
||||
}
|
||||
|
||||
pub struct ResultFooter<'a> {
|
||||
style: &'a ResultStyle,
|
||||
text: Label<'a>,
|
||||
area: Rect,
|
||||
}
|
||||
|
||||
impl<'a> ResultFooter<'a> {
|
||||
pub fn new(text: Label<'a>, style: &'a ResultStyle) -> Self {
|
||||
Self {
|
||||
style,
|
||||
text,
|
||||
area: Rect::zero(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ResultFooter<'_> {
|
||||
pub const fn split_bounds() -> (Rect, Rect) {
|
||||
let main_area = Rect::new(
|
||||
Point::new(RESULT_PADDING, 0),
|
||||
Point::new(WIDTH - RESULT_PADDING, RESULT_FOOTER_START),
|
||||
);
|
||||
let footer_area = Rect::new(
|
||||
Point::new(RESULT_PADDING, RESULT_FOOTER_START),
|
||||
Point::new(WIDTH - RESULT_PADDING, screen().height()),
|
||||
);
|
||||
(main_area, footer_area)
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for ResultFooter<'_> {
|
||||
type Msg = Never;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.area = bounds;
|
||||
self.text.place(bounds);
|
||||
bounds
|
||||
}
|
||||
|
||||
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
// divider line
|
||||
let bar = Rect::from_center_and_size(
|
||||
Point::new(self.area.center().x, self.area.y0),
|
||||
Offset::new(self.area.width(), 1),
|
||||
);
|
||||
display::rect_fill(bar, self.style.divider_color);
|
||||
|
||||
// footer text
|
||||
self.text.paint();
|
||||
}
|
||||
}
|
||||
|
||||
pub struct ResultScreen<'a> {
|
||||
bg: Pad,
|
||||
footer_pad: Pad,
|
||||
style: &'a ResultStyle,
|
||||
icon: Icon,
|
||||
message: Child<Label<'a>>,
|
||||
footer: Child<ResultFooter<'a>>,
|
||||
}
|
||||
|
||||
impl<'a> ResultScreen<'a> {
|
||||
pub fn new(
|
||||
style: &'a ResultStyle,
|
||||
icon: Icon,
|
||||
message: TString<'a>,
|
||||
footer: Label<'a>,
|
||||
complete_draw: bool,
|
||||
) -> Self {
|
||||
let mut instance = Self {
|
||||
bg: Pad::with_background(style.bg_color),
|
||||
footer_pad: Pad::with_background(style.bg_color),
|
||||
style,
|
||||
icon,
|
||||
message: Child::new(Label::centered(message, style.message_style())),
|
||||
footer: Child::new(ResultFooter::new(footer, style)),
|
||||
};
|
||||
|
||||
if complete_draw {
|
||||
instance.bg.clear();
|
||||
} else {
|
||||
instance.footer_pad.clear();
|
||||
}
|
||||
instance
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Component for ResultScreen<'a> {
|
||||
type Msg = Never;
|
||||
|
||||
fn place(&mut self, _bounds: Rect) -> Rect {
|
||||
self.bg.place(screen());
|
||||
|
||||
let (main_area, footer_area) = ResultFooter::split_bounds();
|
||||
|
||||
self.footer_pad.place(footer_area);
|
||||
self.footer.place(footer_area);
|
||||
|
||||
let message_area = main_area.inset(Insets::top(MESSAGE_AREA_START));
|
||||
self.message.place(message_area);
|
||||
|
||||
screen()
|
||||
}
|
||||
|
||||
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
self.bg.paint();
|
||||
self.footer_pad.paint();
|
||||
|
||||
self.icon.draw(
|
||||
Point::new(screen().center().x, ICON_CENTER_Y),
|
||||
Alignment2D::CENTER,
|
||||
self.style.fg_color,
|
||||
self.style.bg_color,
|
||||
);
|
||||
self.message.paint();
|
||||
self.footer.paint();
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
use crate::ui::{
|
||||
component::{Component, Event, EventCtx, Never},
|
||||
display,
|
||||
geometry::{Alignment2D, Offset, Rect},
|
||||
};
|
||||
|
||||
use super::theme;
|
||||
|
||||
const TEXT_BOTTOM_MARGIN: i16 = 54;
|
||||
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;
|
||||
|
||||
pub struct WelcomeScreen {
|
||||
area: Rect,
|
||||
}
|
||||
|
||||
impl WelcomeScreen {
|
||||
pub fn new() -> Self {
|
||||
Self { area: Rect::zero() }
|
||||
}
|
||||
}
|
||||
|
||||
impl Component for WelcomeScreen {
|
||||
type Msg = Never;
|
||||
|
||||
fn place(&mut self, bounds: Rect) -> Rect {
|
||||
self.area = bounds;
|
||||
self.area
|
||||
}
|
||||
|
||||
fn event(&mut self, _ctx: &mut EventCtx, _event: Event) -> Option<Self::Msg> {
|
||||
None
|
||||
}
|
||||
|
||||
fn paint(&mut self) {
|
||||
theme::ICON_LOGO.draw(
|
||||
self.area.top_center() + Offset::y(ICON_TOP_MARGIN),
|
||||
Alignment2D::TOP_CENTER,
|
||||
theme::FG,
|
||||
theme::BG,
|
||||
);
|
||||
display::text_center(
|
||||
self.area.bottom_center() - Offset::y(TEXT_BOTTOM_MARGIN),
|
||||
"Trezor Safe 5",
|
||||
display::Font::NORMAL,
|
||||
theme::FG,
|
||||
theme::BG,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "ui_debug")]
|
||||
impl crate::trace::Trace for WelcomeScreen {
|
||||
fn trace(&self, t: &mut dyn crate::trace::Tracer) {
|
||||
t.component("WelcomeScreen");
|
||||
#[cfg(not(feature = "bootloader"))]
|
||||
t.string("model", model::FULL_NAME.into());
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
use crate::ui::geometry::{Offset, Point, Rect};
|
||||
|
||||
use crate::trezorhal::display::{DISPLAY_RESX, DISPLAY_RESY};
|
||||
|
||||
pub const WIDTH: i16 = DISPLAY_RESX as _;
|
||||
pub const HEIGHT: i16 = DISPLAY_RESY as _;
|
||||
pub const LINE_SPACE: i16 = 4;
|
||||
pub const FONT_BPP: i16 = 4;
|
||||
|
||||
pub const LOADER_OUTER: i16 = 60;
|
||||
pub const LOADER_INNER: i16 = 52;
|
||||
pub const LOADER_ICON_MAX_SIZE: i16 = 64;
|
||||
|
||||
pub const fn size() -> Offset {
|
||||
Offset::new(WIDTH, HEIGHT)
|
||||
}
|
||||
pub const SIZE: Offset = size();
|
||||
|
||||
pub const fn screen() -> Rect {
|
||||
Rect::from_top_left_and_size(Point::zero(), SIZE)
|
||||
}
|
||||
pub const SCREEN: Rect = screen();
|
@ -0,0 +1,38 @@
|
||||
use super::{geometry::Rect, UIFeaturesCommon};
|
||||
|
||||
#[cfg(feature = "bootloader")]
|
||||
pub mod bootloader;
|
||||
pub mod component;
|
||||
pub mod constant;
|
||||
pub mod theme;
|
||||
|
||||
mod screens;
|
||||
|
||||
pub struct ModelMercuryFeatures;
|
||||
|
||||
impl UIFeaturesCommon for ModelMercuryFeatures {
|
||||
fn fadein() {
|
||||
#[cfg(feature = "backlight")]
|
||||
crate::ui::display::fade_backlight_duration(theme::BACKLIGHT_NORMAL, 150);
|
||||
}
|
||||
|
||||
fn fadeout() {
|
||||
#[cfg(feature = "backlight")]
|
||||
crate::ui::display::fade_backlight_duration(theme::BACKLIGHT_DIM, 150);
|
||||
}
|
||||
|
||||
fn backlight_on() {
|
||||
#[cfg(feature = "backlight")]
|
||||
crate::ui::display::set_backlight(theme::BACKLIGHT_NORMAL);
|
||||
}
|
||||
|
||||
const SCREEN: Rect = constant::SCREEN;
|
||||
|
||||
fn screen_fatal_error(title: &str, msg: &str, footer: &str) {
|
||||
screens::screen_fatal_error(title, msg, footer);
|
||||
}
|
||||
|
||||
fn screen_boot_stage_2() {
|
||||
screens::screen_boot_stage_2();
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,21 @@
|
||||
use crate::ui::{component::Component, constant::screen, display};
|
||||
|
||||
use super::{
|
||||
component::{ErrorScreen, WelcomeScreen},
|
||||
constant,
|
||||
};
|
||||
|
||||
pub fn screen_fatal_error(title: &str, msg: &str, footer: &str) {
|
||||
let mut frame = ErrorScreen::new(title.into(), msg.into(), footer.into());
|
||||
frame.place(constant::screen());
|
||||
frame.paint();
|
||||
display::refresh();
|
||||
}
|
||||
|
||||
pub fn screen_boot_stage_2() {
|
||||
let mut frame = WelcomeScreen::new();
|
||||
frame.place(screen());
|
||||
display::sync();
|
||||
frame.paint();
|
||||
display::refresh();
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue