1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

tests/pkg/mcufont: Initial include of MCUFont test

This commit is contained in:
Koen Zandberg 2023-06-11 22:13:49 +02:00
parent a17afa7b7a
commit e2e9c0ccc8
No known key found for this signature in database
GPG Key ID: BA1718B37D79F51C
9 changed files with 921 additions and 0 deletions

View File

@ -0,0 +1,6 @@
include ../Makefile.pkg_common
USEPKG += mcufont
CFLAGS += -I$(CURDIR)/fonts
include $(RIOTBASE)/Makefile.include

View File

@ -0,0 +1,4 @@
# Boards with a screen can use disp_dev
ifneq (,$(filter stm32f429i-disc% stm32f746g-disco stm32f7508-dk pinetime adafruit-clue adafruit-pybadge esp32-wrover-kit,$(BOARD)))
USEMODULE += disp_dev
endif

View File

@ -0,0 +1,4 @@
BOARD_INSUFFICIENT_MEMORY := \
atmega8 \
nucleo-l011k4 \
#

View File

@ -0,0 +1,19 @@
mcufont
=======
The mcufont test application renders a string inside a pixel buffer after which
the pixel buffer is rendered using one ASCII Block symbol per pixel. This gives
a figlet-like effect.
A default black and white only font is included in this test. It has been
generated from the MCUFont tools and fonts.
When a display is present on the board with disp_dev support, the text string is
also shown on the display. In that case another font with aliasing support is
included in the build. This adds about 10 KiB to the build (including the
display driver)
Usage
=====
Compile the application and run the test.

View File

@ -0,0 +1,421 @@
/* Start of automatically generated font definition for DejaVuSans12. */
#ifndef MF_RLEFONT_INTERNALS
#define MF_RLEFONT_INTERNALS
#endif
#include "mf_rlefont.h"
#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
#error The font file is not compatible with this version of mcufont.
#endif
static const uint8_t mf_rlefont_DejaVuSans12_dictionary_data[943] PROGMEM = {
0x0a, 0xc5, 0x09, 0x28, 0xce, 0xc4, 0x05, 0x03, 0x2b, 0x06, 0x09, 0x1c, 0x07, 0xcc, 0xc5, 0x01,
0x08, 0x02, 0x29, 0xcb, 0x09, 0xd8, 0xcc, 0xc6, 0x84, 0x07, 0xcb, 0x85, 0xcc, 0xce, 0xc7, 0xc3,
0xcd, 0x04, 0xc6, 0xc7, 0x0b, 0xc7, 0xc8, 0x0c, 0x11, 0xd9, 0x04, 0xc2, 0x80, 0xcc, 0xc5, 0x0b,
0xcc, 0xc5, 0x09, 0x16, 0x10, 0xc5, 0xce, 0xc1, 0xc6, 0xcb, 0xc4, 0xca, 0xc3, 0x01, 0xc5, 0x0b,
0xc4, 0xce, 0xc1, 0x01, 0xcd, 0xc7, 0xcc, 0xc3, 0xc3, 0xcc, 0x80, 0xc3, 0xc1, 0xcc, 0x06, 0xcc,
0xcd, 0xc1, 0x40, 0x03, 0xc1, 0xc5, 0xce, 0xc2, 0xc3, 0xce, 0x40, 0x02, 0x07, 0xc1, 0xc7, 0xcb,
0x01, 0xc6, 0xca, 0x06, 0xc2, 0xce, 0xc8, 0xcc, 0xc2, 0xc3, 0xca, 0xc2, 0xc1, 0x81, 0xda, 0xc8,
0xce, 0xc1, 0x02, 0x06, 0xcc, 0xc5, 0x01, 0x01, 0xc1, 0xce, 0xc3, 0x01, 0xcc, 0xde, 0xca, 0xc8,
0x02, 0xce, 0xc5, 0xcb, 0x04, 0x05, 0xce, 0xc4, 0x03, 0xcb, 0xc1, 0xca, 0xc4, 0xcb, 0xc7, 0xc2,
0xcc, 0xc8, 0xc1, 0x01, 0xc6, 0xc7, 0xc9, 0xc6, 0xcd, 0x06, 0xc5, 0xc8, 0xc9, 0x06, 0xc1, 0x82,
0x01, 0xc2, 0xc1, 0xc2, 0xce, 0xcb, 0xcc, 0xc5, 0xcc, 0xc4, 0xc4, 0xcb, 0x01, 0xce, 0xcc, 0x80,
0xc1, 0x02, 0xcc, 0xc7, 0xcd, 0xc9, 0x81, 0xce, 0xce, 0x80, 0xc9, 0xca, 0xd7, 0xc9, 0xc4, 0xca,
0xc6, 0x01, 0xc3, 0xc6, 0xcd, 0xc4, 0xcd, 0xc3, 0xc5, 0xcd, 0xcb, 0xc8, 0xc3, 0xcb, 0x80, 0xc2,
0xc6, 0xcc, 0xc5, 0xc7, 0xc4, 0xca, 0xcb, 0xcc, 0xc6, 0xc8, 0xc6, 0xcb, 0x01, 0xc4, 0xcd, 0xc6,
0xc3, 0x80, 0x01, 0x40, 0x28, 0x01, 0xc9, 0xcd, 0xc2, 0xcb, 0xc3, 0xc2, 0xca, 0xcc, 0xc8, 0x80,
0xc8, 0x01, 0xcd, 0xc5, 0x01, 0x02, 0xc1, 0xcb, 0xca, 0xcb, 0xce, 0xc6, 0xc9, 0xc5, 0xca, 0xce,
0xc6, 0x02, 0xc1, 0xc4, 0x40, 0x08, 0xce, 0xca, 0xce, 0xc9, 0xc9, 0xc8, 0xcc, 0xc9, 0x15, 0x07,
0xc9, 0xca, 0x02, 0xc7, 0xcc, 0x06, 0xc1, 0xce, 0x84, 0xc3, 0x05, 0xc5, 0xce, 0x04, 0xcb, 0xc8,
0x05, 0xcb, 0xc8, 0x03, 0x18, 0xcd, 0xc8, 0x1e, 0x51, 0x0e, 0x0e, 0x3b, 0x1d, 0x9c, 0x66, 0x0c,
0x1d, 0x07, 0x0a, 0x1f, 0x49, 0x1d, 0x9c, 0x2a, 0xa1, 0x98, 0x58, 0x4e, 0x94, 0x0c, 0x53, 0x40,
0x18, 0x39, 0x90, 0x1c, 0x49, 0x1d, 0x7e, 0x66, 0x0c, 0x1d, 0x9c, 0x1f, 0x49, 0x1d, 0x7e, 0x2a,
0xa1, 0x47, 0x90, 0x1f, 0x41, 0x6c, 0x5a, 0x2c, 0x0d, 0x9a, 0x23, 0x6c, 0x02, 0x02, 0x88, 0x2a,
0x1b, 0x24, 0x27, 0x2a, 0x58, 0x00, 0x64, 0x2a, 0x58, 0x00, 0x64, 0x2a, 0x58, 0x00, 0x64, 0x2a,
0x58, 0x00, 0x64, 0x08, 0x2a, 0x71, 0x27, 0x2a, 0x71, 0x27, 0x2a, 0x71, 0x27, 0x2a, 0x48, 0x24,
0x5a, 0x1c, 0x24, 0x35, 0x24, 0x35, 0x24, 0x35, 0x24, 0x6d, 0x00, 0x58, 0x18, 0x58, 0x18, 0x58,
0x18, 0x34, 0x06, 0x18, 0x49, 0x01, 0x18, 0x33, 0x1c, 0x0c, 0x0f, 0x9b, 0x01, 0x1c, 0x63, 0x5b,
0x6b, 0x84, 0x1d, 0x92, 0x97, 0x57, 0x97, 0x00, 0x87, 0x71, 0x24, 0x31, 0x8c, 0x2a, 0x65, 0x69,
0x04, 0x4e, 0x58, 0x00, 0x7b, 0x1f, 0x49, 0x52, 0x07, 0x0f, 0x04, 0x2a, 0x08, 0x0e, 0x9b, 0x6e,
0x9d, 0x22, 0x00, 0x07, 0x0c, 0x22, 0x02, 0x9d, 0x00, 0x44, 0x53, 0x9a, 0x01, 0x22, 0x18, 0x0f,
0x0b, 0x22, 0x18, 0x35, 0x24, 0x0c, 0xf3, 0x08, 0x22, 0x18, 0x35, 0x24, 0x0c, 0xf3, 0x0c, 0x1f,
0x21, 0x30, 0x30, 0x1d, 0x9c, 0x68, 0x55, 0x58, 0x1f, 0x0a, 0x07, 0x00, 0x7d, 0x24, 0x66, 0x0c,
0x00, 0x60, 0x20, 0x1b, 0x80, 0x20, 0x08, 0x6c, 0x0a, 0x0e, 0x3f, 0x23, 0x9d, 0x6b, 0x7b, 0x1f,
0x49, 0x1d, 0x95, 0x66, 0x29, 0x0b, 0x1f, 0x2d, 0x1f, 0x44, 0x62, 0x39, 0x06, 0x4b, 0x0a, 0x0e,
0x9b, 0x01, 0x1c, 0x1a, 0x6a, 0x94, 0x0a, 0x07, 0x26, 0x0d, 0x05, 0x34, 0x01, 0x2a, 0x3e, 0x72,
0x9f, 0x00, 0x38, 0x0a, 0x3d, 0x07, 0x0a, 0x3d, 0x07, 0x0a, 0x3d, 0x07, 0x0a, 0x3d, 0x07, 0x0a,
0x1f, 0x83, 0x24, 0x07, 0x77, 0x1f, 0x50, 0x87, 0x03, 0x2f, 0x1c, 0x77, 0x24, 0x0c, 0x69, 0x04,
0x1d, 0x61, 0x1c, 0x2f, 0x3c, 0x59, 0x0a, 0x02, 0x1c, 0x63, 0x0e, 0x06, 0x01, 0x47, 0x09, 0x1d,
0x92, 0x97, 0x2a, 0x87, 0x71, 0x23, 0x38, 0x18, 0x87, 0x71, 0x00, 0x4b, 0x97, 0x23, 0x63, 0x0e,
0x06, 0x01, 0x47, 0x09, 0x00, 0x66, 0x59, 0x0a, 0x02, 0x88, 0x2a, 0x65, 0x00, 0x08, 0x26, 0x93,
0x48, 0x20, 0x38, 0x1c, 0x08, 0x5c, 0x04, 0x71, 0x24, 0x76, 0x24, 0x92, 0x97, 0x57, 0x97, 0x24,
0x63, 0x5b, 0x6b, 0x84, 0x2a, 0x81, 0x0f, 0x9b, 0x01, 0x1e, 0x46, 0x8e, 0x0e, 0x7b, 0x23, 0x9d,
0x6b, 0x08, 0x2a, 0x49, 0x1c, 0x66, 0x0c, 0x3d, 0x49, 0x31, 0x9d, 0x6b, 0x08, 0x56, 0x24, 0x7d,
0x3d, 0x80, 0x3d, 0x80, 0x23, 0xec, 0x25, 0x0c, 0x1d, 0x3e, 0x1d, 0x6a, 0x1b, 0x57, 0x1a, 0x03,
0x0f, 0x0e, 0x2e, 0x7f, 0x1f, 0x0d, 0x2e, 0x50, 0x1f, 0x0d, 0x1d, 0x77, 0x2a, 0x0d, 0x24, 0x61,
0x68, 0x53, 0x80, 0x5f, 0x05, 0x0c, 0x1f, 0x72, 0x0e, 0x01, 0x3c, 0x0c, 0x1f, 0x6d, 0x09, 0x09,
0x3c, 0x0c, 0x1f, 0x6d, 0x02, 0x48, 0x05, 0x0c, 0x56, 0x09, 0x09, 0x05, 0x0c, 0x56, 0x02, 0x2c,
0x0c, 0x56, 0x8b, 0x70, 0x56, 0x57, 0x70, 0x03, 0x09, 0x3d, 0x1b, 0x3d, 0x1b, 0x3d, 0x1b, 0x3d,
0x18, 0x89, 0x94, 0x18, 0x34, 0x0d, 0x19, 0x07, 0x1d, 0x4e, 0x53, 0x9a, 0x01, 0x22, 0x02, 0x1b,
0x1d, 0x4c, 0x5d, 0x4c, 0x5d, 0x4c, 0x5d, 0x4c, 0x5d, 0x4c, 0x5d, 0x4c, 0x1c, 0x28, 0x1d, 0x33,
0x24, 0x07, 0x7c, 0x98, 0x1b, 0x2a, 0x07, 0x0d, 0x0e, 0x6d, 0x21, 0x76, 0x2e, 0x0b, 0x06, 0x3d,
0x02, 0x94, 0x91, 0x2a, 0xa1, 0x98, 0x58, 0x1c, 0x49, 0x9b, 0x23, 0x0e, 0x50, 0x02, 0x72, 0x2a,
0x5b, 0x24, 0x7d, 0x2a, 0x58, 0x00, 0x49, 0x2a, 0x5b, 0x24, 0x7d, 0x2a, 0x0e, 0x50, 0x02, 0x72,
0x2a, 0x2c, 0x0d, 0x9b, 0x7c, 0x3d, 0x7c, 0x3d, 0x7c, 0x3d, 0x8f, 0x98, 0x4f, 0x2a, 0x41, 0x0e,
0x76, 0x3d, 0x76, 0x20, 0x21, 0x71, 0x08, 0x07, 0x08, 0x01, 0x2a, 0x00, 0x79, 0x63, 0x06, 0x23,
0x09, 0x5e, 0x0b, 0x02, 0x2f, 0x19, 0x07, 0x2f, 0x19, 0x0d, 0x0b, 0x3d, 0x28, 0x1d, 0x4b, 0x18,
0x07, 0x55, 0x05, 0x0c, 0x44, 0x4f, 0x24, 0x0a, 0x0b, 0x18, 0x8a, 0x63, 0x53, 0x00, 0x92, 0x04,
0x6d, 0x01, 0x47, 0x40, 0x1c, 0x2f, 0x05, 0x01, 0x80, 0x2e, 0x4b, 0x00, 0x6a, 0x8c, 0x09, 0x19,
0x01, 0x0f, 0x8c, 0x6c, 0x5a, 0x1c, 0xa1, 0x47, 0x5c, 0x87, 0x0d, 0x05, 0x01, 0x47, 0x7c, 0x1f,
0x03, 0x94, 0x0e, 0x8d, 0x24, 0xa0, 0x2a, 0x33, 0x2a, 0x0b, 0x53, 0x06, 0x0f, 0x08, 0x0a,
};
static const uint16_t mf_rlefont_DejaVuSans12_dictionary_offsets[212] PROGMEM = {
0x0000, 0x0001, 0x0003, 0x0004, 0x0006, 0x0007, 0x0008, 0x0009,
0x000a, 0x000b, 0x000c, 0x0010, 0x0011, 0x0012, 0x0013, 0x0015,
0x0016, 0x0018, 0x0019, 0x001a, 0x001d, 0x001f, 0x0021, 0x0022,
0x0024, 0x0027, 0x0028, 0x0029, 0x002b, 0x002d, 0x0033, 0x0034,
0x0035, 0x0037, 0x0039, 0x003b, 0x003d, 0x003f, 0x0040, 0x0044,
0x0046, 0x0048, 0x004a, 0x004c, 0x004e, 0x0050, 0x0052, 0x0054,
0x0056, 0x0058, 0x005a, 0x005c, 0x005e, 0x0061, 0x0063, 0x0065,
0x0067, 0x0069, 0x006b, 0x006d, 0x006e, 0x0070, 0x0073, 0x0077,
0x0079, 0x007c, 0x007e, 0x0081, 0x0083, 0x0085, 0x0089, 0x008b,
0x008d, 0x008f, 0x0091, 0x0093, 0x0095, 0x0097, 0x0099, 0x009b,
0x009d, 0x009f, 0x00a0, 0x00a2, 0x00a4, 0x00a6, 0x00a8, 0x00aa,
0x00ad, 0x00af, 0x00b2, 0x00b4, 0x00b6, 0x00b8, 0x00ba, 0x00bc,
0x00bd, 0x00bf, 0x00c2, 0x00c4, 0x00c6, 0x00c8, 0x00ca, 0x00cc,
0x00ce, 0x00d0, 0x00d2, 0x00d4, 0x00d6, 0x00d8, 0x00da, 0x00dc,
0x00de, 0x00e0, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00eb, 0x00ed,
0x00ef, 0x00f2, 0x00f5, 0x00f7, 0x00f9, 0x00fb, 0x00fd, 0x00ff,
0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c, 0x010e, 0x010f,
0x0124, 0x0125, 0x0127, 0x012c, 0x013d, 0x0142, 0x0157, 0x0173,
0x0182, 0x018b, 0x0190, 0x0199, 0x01ab, 0x01c0, 0x01cf, 0x01e1,
0x01e3, 0x01f8, 0x0213, 0x0216, 0x0223, 0x0230, 0x0244, 0x0269,
0x0272, 0x028a, 0x029d, 0x02a0, 0x02a6, 0x02a8, 0x02ae, 0x02c4,
0x02e7, 0x02e9, 0x02f0, 0x02f2, 0x02f8, 0x02fa, 0x02ff, 0x031b,
0x031d, 0x0320, 0x0329, 0x0344, 0x034a, 0x0350, 0x0355, 0x0357,
0x0359, 0x035b, 0x035e, 0x0360, 0x0362, 0x0364, 0x0369, 0x036b,
0x036d, 0x036f, 0x0371, 0x0377, 0x037a, 0x037d, 0x037f, 0x0385,
0x0387, 0x0389, 0x038b, 0x038d, 0x0390, 0x0393, 0x0398, 0x03a6,
0x03a9, 0x03ab, 0x03ad, 0x03af,
};
static const uint8_t mf_rlefont_DejaVuSans12_glyph_data_0[2008] PROGMEM = {
0x04, 0x00, 0x10, 0x05, 0x25, 0x89, 0xc2, 0xc2, 0xc2, 0x18, 0x34, 0xe1, 0x0e, 0xa0, 0x89, 0xc2,
0x10, 0x06, 0x25, 0xe3, 0xe3, 0xe3, 0x10, 0x0a, 0x37, 0x25, 0x45, 0x7f, 0x23, 0x61, 0x00, 0x77,
0x1f, 0xe9, 0x29, 0x80, 0x1f, 0x0a, 0x05, 0x00, 0x0e, 0x20, 0x45, 0x7f, 0x68, 0x53, 0x29, 0x07,
0x1f, 0x85, 0x00, 0x8d, 0x23, 0x5f, 0x01, 0x0d, 0x10, 0x08, 0x1e, 0x62, 0x20, 0x41, 0x0f, 0x0d,
0xd2, 0x0d, 0xcf, 0xc0, 0x02, 0x2a, 0x48, 0x62, 0x20, 0x07, 0x0c, 0x3a, 0x18, 0x8e, 0x0a, 0x8c,
0x20, 0x62, 0x67, 0x2a, 0x3b, 0x08, 0x03, 0x60, 0x1f, 0x87, 0x0c, 0x0f, 0x9b, 0x18, 0x62, 0x3d,
0x62, 0x10, 0x0b, 0x25, 0x08, 0x0e, 0x5e, 0x00, 0x3c, 0x09, 0x24, 0xe2, 0x45, 0x27, 0x00, 0x43,
0x01, 0x1d, 0x3c, 0x09, 0x00, 0x83, 0x00, 0x08, 0x06, 0x1c, 0x03, 0x45, 0x27, 0x7f, 0x2a, 0x08,
0x70, 0x01, 0x8d, 0x07, 0x70, 0x01, 0x1f, 0x85, 0x02, 0x45, 0x27, 0x1c, 0x43, 0x01, 0x83, 0x87,
0x5c, 0x8b, 0x05, 0x6a, 0x45, 0x27, 0x2e, 0x7f, 0x1d, 0x07, 0x0e, 0x50, 0x10, 0x09, 0x25, 0x63,
0x0e, 0x2c, 0x24, 0x4e, 0x42, 0x01, 0x09, 0xd0, 0x02, 0x55, 0x20, 0xd6, 0x18, 0x0a, 0x64, 0x0b,
0x00, 0x8b, 0x07, 0x24, 0xe2, 0xf5, 0xd3, 0x7c, 0x2e, 0x03, 0x71, 0x0a, 0x0d, 0x0a, 0x1f, 0x0d,
0x0a, 0x52, 0x07, 0x0f, 0x0b, 0x1f, 0x8e, 0x0e, 0x0e, 0x3b, 0x8f, 0x10, 0x03, 0x25, 0x8c, 0x3d,
0x8c, 0x3d, 0x8c, 0x10, 0x05, 0x00, 0x21, 0x77, 0xd8, 0x55, 0x23, 0x4d, 0x3d, 0xc8, 0x7b, 0x3d,
0x58, 0x18, 0x7b, 0x3d, 0xc8, 0x4d, 0xe1, 0x45, 0x3d, 0x77, 0x10, 0x05, 0x21, 0x40, 0x3d, 0x96,
0x31, 0x48, 0x3d, 0xc8, 0x67, 0x3d, 0xea, 0x3d, 0x67, 0x3d, 0xc8, 0x48, 0x18, 0x96, 0x3d, 0x40,
0x10, 0x06, 0x25, 0x3c, 0x19, 0xdf, 0x82, 0xd2, 0x81, 0x28, 0x20, 0x81, 0x0c, 0xd2, 0xdf, 0x82,
0xd2, 0x3c, 0x05, 0x10, 0x0a, 0x37, 0x1e, 0x30, 0xaf, 0x23, 0x2b, 0x23, 0xcf, 0xaf, 0x10, 0x04,
0x21, 0x8a, 0x76, 0x3d, 0xc8, 0x0d, 0x10, 0x04, 0xdc, 0x0b, 0x10, 0x04, 0x21, 0x8a, 0x7e, 0x3d,
0x7e, 0x10, 0x04, 0x1a, 0xe2, 0x0d, 0x3d, 0x95, 0x3d, 0x3a, 0xd8, 0x0e, 0x3d, 0x96, 0x3d, 0x79,
0x18, 0x55, 0x23, 0x6f, 0x18, 0x08, 0x07, 0x3d, 0x8c, 0x10, 0x08, 0x1a, 0x57, 0x0a, 0x0e, 0x0d,
0xd2, 0xd3, 0x04, 0x1b, 0x2a, 0x1b, 0x24, 0x33, 0xe2, 0x71, 0x81, 0x1f, 0x03, 0xf5, 0x3c, 0x0c,
0x4e, 0x71, 0x81, 0x2a, 0x1b, 0x24, 0x33, 0x1d, 0xd3, 0x04, 0x1b, 0x4b, 0x0a, 0x0e, 0x97, 0x10,
0x08, 0x25, 0x0a, 0x53, 0x09, 0x3d, 0x33, 0xe7, 0x33, 0xe7, 0x33, 0xe7, 0x33, 0x1c, 0x08, 0xf3,
0x08, 0x10, 0x08, 0x1a, 0x3c, 0x0c, 0x0e, 0x6d, 0x4b, 0x3b, 0x39, 0x80, 0x3d, 0x0d, 0x05, 0xd8,
0x42, 0x18, 0x0b, 0x09, 0x18, 0xdb, 0xdb, 0x0a, 0x5e, 0xc4, 0x29, 0x07, 0x10, 0x08, 0x25, 0x03,
0x94, 0x0d, 0xd2, 0x78, 0x98, 0x1b, 0x3d, 0x0b, 0x06, 0x20, 0x87, 0x58, 0x1f, 0x8b, 0x53, 0x07,
0x3d, 0x03, 0x88, 0x3d, 0x67, 0x68, 0x09, 0x02, 0x00, 0x03, 0x88, 0x00, 0x66, 0x0c, 0x0e, 0x3f,
0x10, 0x08, 0x25, 0xe2, 0x6c, 0x18, 0x0b, 0x0b, 0x26, 0x96, 0x4c, 0x4b, 0x8c, 0x4c, 0x1f, 0x8b,
0x07, 0x00, 0x4c, 0x1f, 0x41, 0x24, 0x4c, 0x1f, 0xe9, 0x29, 0x18, 0x4c, 0xd9, 0x0b, 0x10, 0x08,
0x25, 0x0b, 0x0f, 0x74, 0x23, 0xc8, 0xc8, 0x94, 0x0e, 0x6d, 0x18, 0x39, 0x42, 0x3d, 0x5a, 0x20,
0x0a, 0x08, 0x68, 0x09, 0x02, 0x39, 0x42, 0x2a, 0x65, 0x0e, 0x6d, 0x10, 0x08, 0x00, 0x25, 0x65,
0x9b, 0xd0, 0x04, 0x7b, 0x39, 0x04, 0x00, 0x44, 0xd2, 0xec, 0x07, 0x0e, 0x9b, 0x2a, 0x34, 0xd4,
0x02, 0x8f, 0x68, 0x0f, 0x05, 0x24, 0x81, 0x2a, 0x5b, 0x24, 0x81, 0x2a, 0x08, 0x50, 0x02, 0x72,
0x2a, 0x8b, 0x0e, 0x4f, 0x10, 0x08, 0x25, 0x29, 0x08, 0xd8, 0x1b, 0x18, 0x65, 0x3d, 0x60, 0x00,
0xc4, 0x80, 0xd9, 0x0b, 0x3d, 0x88, 0x18, 0x3e, 0x20, 0x33, 0x10, 0x08, 0xb2, 0x4f, 0x23, 0x9d,
0x6b, 0x88, 0x2a, 0x1b, 0x24, 0x9c, 0x2a, 0x0a, 0x09, 0x6b, 0x7b, 0x00, 0x4e, 0x0d, 0x53, 0x09,
0x23, 0x3f, 0x6b, 0x72, 0x4e, 0x71, 0x81, 0x2a, 0x2c, 0x6b, 0x9d, 0x1f, 0x87, 0x59, 0x09, 0x01,
0x10, 0x08, 0xb2, 0x91, 0x2a, 0xa1, 0x98, 0x58, 0x1c, 0x03, 0x71, 0x5a, 0x2e, 0x03, 0x71, 0x0a,
0x0b, 0x2a, 0xa1, 0x98, 0x70, 0x2a, 0x41, 0x70, 0x76, 0x3d, 0x60, 0x2a, 0x07, 0x03, 0x01, 0x07,
0x0e, 0xd0, 0x41, 0x0e, 0xd4, 0x10, 0x04, 0x23, 0x99, 0xcd, 0xcd, 0x10, 0x04, 0x23, 0x99, 0xcd,
0x76, 0x3d, 0xc8, 0x0d, 0x10, 0x0a, 0x99, 0x03, 0xea, 0x2a, 0x03, 0x08, 0xd6, 0x06, 0x02, 0x2e,
0x63, 0xd6, 0x06, 0xd0, 0x63, 0xd6, 0x06, 0x01, 0x18, 0x03, 0x08, 0xd6, 0x06, 0x01, 0x18, 0x03,
0x76, 0x10, 0x0a, 0x9e, 0x99, 0x2b, 0x00, 0x32, 0x2b, 0x10, 0x0a, 0x46, 0x0a, 0x78, 0xd8, 0x86,
0xa1, 0x03, 0xd8, 0x86, 0x3f, 0x00, 0x4b, 0x86, 0x3f, 0x24, 0xdd, 0x86, 0x73, 0x03, 0x2a, 0x0a,
0x78, 0x10, 0x06, 0x25, 0x65, 0x9a, 0x24, 0x4e, 0x09, 0x6b, 0x88, 0xd7, 0x20, 0x8b, 0x0b, 0xd9,
0x0b, 0x3d, 0x0a, 0x07, 0xa0, 0x60, 0x3d, 0x60, 0x10, 0x0c, 0x31, 0x1e, 0x87, 0x94, 0x0e, 0x28,
0x1f, 0x08, 0x6d, 0x52, 0x51, 0x5e, 0x24, 0x3c, 0x5e, 0x1c, 0x27, 0x1d, 0x50, 0x00, 0x08, 0x0e,
0x0d, 0x27, 0x00, 0x0d, 0x92, 0x0b, 0x87, 0x50, 0x02, 0x8f, 0x00, 0xd4, 0x00, 0x51, 0x00, 0x85,
0x24, 0xcf, 0x00, 0x0c, 0xe2, 0x0b, 0x87, 0x0c, 0x52, 0x8f, 0x64, 0x1d, 0x50, 0x00, 0x08, 0x0e,
0x8f, 0xa1, 0x2e, 0x86, 0x31, 0x08, 0x6e, 0x01, 0x98, 0x8d, 0x66, 0x94, 0x0e, 0x72, 0x01, 0x10,
0x08, 0x1e, 0xc3, 0xb3, 0x10, 0x08, 0xbc, 0x74, 0x8d, 0x22, 0x01, 0x09, 0x0c, 0x22, 0x00, 0x89,
0x56, 0x01, 0x09, 0x0b, 0x00, 0x44, 0x69, 0x58, 0x56, 0x3c, 0x48, 0x56, 0x24, 0x5b, 0x56, 0x3c,
0x42, 0x44, 0x69, 0x88, 0x10, 0x08, 0x25, 0xb6, 0x10, 0x09, 0xbc, 0x74, 0x28, 0x22, 0x01, 0x7d,
0x0a, 0x56, 0x24, 0x03, 0x42, 0x1c, 0x6d, 0x2e, 0x3f, 0x1c, 0x6d, 0x2e, 0x7e, 0x1c, 0x6d, 0x2e,
0x3f, 0x1c, 0x6d, 0x1d, 0x03, 0x42, 0x1c, 0x6d, 0x57, 0x7d, 0x0a, 0x44, 0x74, 0x28, 0x10, 0x08,
0xbc, 0x69, 0xae, 0x10, 0x07, 0xbc, 0x69, 0x42, 0x22, 0x18, 0x35, 0x24, 0x0c, 0x69, 0x0c, 0x23,
0x35, 0x24, 0x35, 0x10, 0x09, 0x25, 0x3c, 0x59, 0x0b, 0x05, 0x1c, 0x63, 0x0e, 0x06, 0x52, 0x83,
0x01, 0x00, 0xdd, 0x97, 0x2a, 0x87, 0x71, 0x23, 0x38, 0x1d, 0x0c, 0x53, 0x05, 0x1d, 0x87, 0x71,
0x24, 0x91, 0xdd, 0x97, 0x24, 0x91, 0x1d, 0x63, 0x0e, 0x06, 0x01, 0x01, 0x03, 0x5b, 0x66, 0x59,
0x28, 0x10, 0x09, 0x2a, 0x21, 0xba, 0xba, 0xba, 0xba, 0x44, 0x29, 0x0d, 0xba, 0xba, 0xba, 0xba,
0x10, 0x04, 0x25, 0x35, 0xa8, 0x10, 0x04, 0xbc, 0x19, 0xa8, 0x18, 0x0d, 0x19, 0x87, 0x80, 0x23,
0x8b, 0x3f, 0x10, 0x08, 0x1f, 0x21, 0x22, 0x87, 0x5b, 0x56, 0x04, 0x1b, 0x2a, 0x6d, 0x05, 0x1b,
0x24, 0x44, 0x0a, 0x1b, 0x1d, 0x44, 0x70, 0x2e, 0x44, 0x81, 0x26, 0x6d, 0x43, 0x0a, 0x00, 0x22,
0x43, 0x0a, 0x22, 0x57, 0x73, 0x10, 0x07, 0xbc, 0x19, 0xa8, 0x2e, 0x44, 0xf3, 0x09, 0x10, 0x0a,
0xbc, 0x80, 0x1d, 0x0c, 0x42, 0x2e, 0x0c, 0xa1, 0xe2, 0x0d, 0x42, 0x2e, 0x72, 0x0d, 0x24, 0x08,
0x07, 0x42, 0x2e, 0x6d, 0x3a, 0x00, 0x8c, 0x42, 0x2e, 0x6d, 0x4d, 0x6f, 0x42, 0x2e, 0x6d, 0x01,
0x6c, 0x05, 0x00, 0x42, 0x2e, 0x6d, 0x8b, 0x0e, 0x24, 0x42, 0x2e, 0x6d, 0x1c, 0x42, 0x2e, 0x6d,
0x1c, 0x42, 0x10, 0x09, 0xbc, 0xda, 0xbf, 0x10, 0x09, 0x25, 0x3c, 0xab, 0xc7, 0xb8, 0x07, 0xbc,
0xc5, 0xad, 0x35, 0x24, 0x6d, 0x10, 0x09, 0x25, 0x3c, 0xab, 0xc7, 0x38, 0x1c, 0x08, 0x5c, 0x04,
0x71, 0x24, 0xc7, 0x01, 0x97, 0x57, 0x97, 0x24, 0x63, 0x5b, 0x6b, 0x84, 0x00, 0x66, 0x0c, 0x53,
0x5e, 0xd9, 0x45, 0x3d, 0x9d, 0x10, 0x08, 0xbc, 0xc5, 0x9d, 0x22, 0x00, 0x07, 0x0c, 0x22, 0x02,
0x9d, 0x00, 0x44, 0x69, 0x5e, 0x22, 0x03, 0x1b, 0x22, 0x00, 0x07, 0x0c, 0x22, 0x57, 0x5b, 0x56,
0x24, 0x08, 0x0c, 0x10, 0x08, 0x25, 0x03, 0x94, 0xa1, 0xd0, 0x2c, 0x6b, 0x07, 0x06, 0x1f, 0x34,
0xe1, 0x4f, 0x02, 0x18, 0x8e, 0x0e, 0x9b, 0x01, 0x00, 0xc4, 0x93, 0x3d, 0x38, 0x4e, 0x3b, 0x6b,
0x0b, 0x0b, 0x00, 0x66, 0x59, 0x0a, 0x01, 0x10, 0x07, 0x1a, 0x53, 0x29, 0x05, 0x23, 0x1b, 0xc1,
0x1b, 0xc1, 0x10, 0x09, 0x25, 0xc6, 0x10, 0x08, 0x1a, 0x7e, 0x2e, 0x38, 0x1c, 0x7d, 0x2e, 0x5a,
0xdd, 0x1b, 0x92, 0x42, 0x1c, 0x8b, 0x09, 0x24, 0x81, 0x2a, 0x3e, 0x72, 0x23, 0x0d, 0x05, 0x34,
0x01, 0x23, 0x07, 0x60, 0x26, 0x34, 0x91, 0x20, 0x94, 0x10, 0x0c, 0x1a, 0x4c, 0x24, 0xd6, 0x1d,
0x91, 0x49, 0x92, 0x0d, 0x0e, 0x24, 0xe0, 0x24, 0x58, 0x05, 0x09, 0x8d, 0x00, 0x7d, 0x1d, 0x60,
0x8b, 0x85, 0x07, 0x8b, 0x09, 0x1d, 0xea, 0x00, 0x50, 0x83, 0x00, 0x28, 0x24, 0x87, 0x0e, 0x01,
0x0e, 0x57, 0x0e, 0xe0, 0xdd, 0x0f, 0x07, 0x0a, 0x24, 0x72, 0x0d, 0x1c, 0x0c, 0x97, 0x09, 0x9a,
0x1c, 0x08, 0x42, 0x00, 0x3c, 0x0f, 0x06, 0x10, 0x08, 0x1a, 0x01, 0x91, 0x57, 0x91, 0x1c, 0x3e,
0x76, 0x23, 0x0a, 0x0a, 0x3e, 0x4b, 0x0e, 0x5b, 0x18, 0x0a, 0x55, 0x00, 0x66, 0x6c, 0x09, 0x00,
0x4b, 0x5b, 0x01, 0x1b, 0x2a, 0x0a, 0x0a, 0x24, 0x65, 0x66, 0x55, 0x00, 0x7e, 0x10, 0x07, 0x1a,
0x0b, 0x09, 0xbd, 0xb7, 0x34, 0x07, 0xc1, 0x1b, 0x10, 0x08, 0x1a, 0x05, 0x29, 0x90, 0x1d, 0x66,
0x48, 0xc4, 0x5b, 0x24, 0x4b, 0xa1, 0x18, 0xdb, 0x07, 0x45, 0x23, 0x87, 0x0e, 0x03, 0xc4, 0x0e,
0x06, 0xd9, 0x0f, 0x29, 0x0a, 0x10, 0x05, 0x1a, 0xfa, 0x08, 0x18, 0x80, 0xbb, 0x02, 0xbb, 0x02,
0xbb, 0x90, 0x10, 0x04, 0x1a, 0x8c, 0x3d, 0x08, 0x07, 0x3d, 0x6f, 0x3d, 0x55, 0x20, 0x79, 0x18,
0x96, 0xe1, 0x0e, 0x31, 0x3a, 0x3d, 0x95, 0x24, 0xc4, 0x0d, 0x10, 0x05, 0xbc, 0x0f, 0xb4, 0x00,
0xd9, 0xb4, 0x2e, 0x44, 0x0f, 0x0a, 0x10, 0x0a, 0x1e, 0x2d, 0x58, 0x2a, 0x2d, 0x05, 0x04, 0x7b,
0x1c, 0x87, 0x40, 0xe2, 0x6e, 0x10, 0x06, 0x99, 0x8a, 0x4e, 0x29, 0x80, 0x10, 0x06, 0x21, 0x27,
0x3d, 0x8b, 0x06, 0x10, 0x07, 0x46, 0xa4, 0x0d, 0xac, 0x10, 0x08, 0x21, 0xa9, 0x18, 0x2c, 0x0d,
0xca, 0x10, 0x07, 0xb9, 0x23, 0x8e, 0x0e, 0x7b, 0x10, 0x08, 0x2e, 0x21, 0x27, 0x3d, 0x27, 0x3d,
0x27, 0x2a, 0x61, 0xe5, 0xa5, 0x10, 0x07, 0x4a, 0x57, 0xb1, 0x10, 0x04, 0x21, 0x61, 0x0f, 0x07,
0x20, 0x67, 0x3d, 0x79, 0x20, 0xe8, 0x42, 0x20, 0x79, 0x18, 0x79, 0x18, 0x79, 0x18, 0x79, 0x18,
0x79, 0x18, 0x79, 0x10, 0x08, 0x46, 0x41, 0x6c, 0x5a, 0x1c, 0x3f, 0x47, 0x90, 0x1c, 0x49, 0x1d,
0x0a, 0x08, 0x66, 0x0c, 0x1d, 0x9c, 0x1f, 0x49, 0x1d, 0x5a, 0x1c, 0x3f, 0x47, 0x90, 0x1f, 0x41,
0x6c, 0x5a, 0x20, 0x0b, 0x06, 0x1f, 0x63, 0x04, 0x39, 0x48, 0x00, 0x4e, 0x94, 0x6e, 0x10, 0x08,
0x21, 0xa9, 0x18, 0xa6, 0x10, 0x03, 0x25, 0x7c, 0xa0, 0xcb, 0xcb, 0x7c, 0x10, 0x03, 0x25, 0x7c,
0xa0, 0x7c, 0x3d, 0xcb, 0xcb, 0x7c, 0x00, 0xc4, 0x55, 0x2a, 0x03, 0x4f, 0x10, 0x07, 0x21, 0x58,
0x18, 0xa9, 0x03, 0x7b, 0x2a, 0x0e, 0x03, 0x04, 0x7c, 0x23, 0x2c, 0x7c, 0x20, 0x0e, 0x9b, 0x18,
0x1b, 0x3f, 0x20, 0x0e, 0x03, 0x01, 0x3f, 0x23, 0x58, 0x02, 0x3f, 0x10, 0x03, 0x21, 0xcb, 0xcb,
0xcb, 0x7c, 0x10, 0x0c, 0x46, 0x4f, 0x0d, 0x9b, 0x41, 0x0e, 0x5e, 0x1d, 0x6c, 0x6b, 0x0e, 0x7c,
0x01, 0x60, 0x1d, 0x1b, 0x24, 0x0a, 0x07, 0x24, 0x07, 0x0a, 0x1d, 0x58, 0xd1, 0x0a, 0x1d, 0x58,
0xd1, 0x0a, 0x1d, 0x58, 0xd1, 0x0a, 0x1d, 0x58, 0xd1, 0x0a, 0x10, 0x08, 0x46, 0xa6, 0x10, 0x07,
0x46, 0xc9, 0xa3, 0x91, 0x10, 0x08, 0x46, 0x2c, 0x0d, 0xca, 0x23, 0xa9, 0x10, 0x08, 0x46, 0x61,
0xe5, 0xa5, 0x20, 0x27, 0x3d, 0x27, 0x3d, 0x27, 0x10, 0x05, 0x46, 0x2c, 0x0c, 0x0e, 0x20, 0x0e,
0x50, 0x18, 0x1b, 0x3d, 0x58, 0x18, 0xa9, 0x10, 0x06, 0x46, 0x08, 0x0e, 0x9b, 0xd0, 0x03, 0x48,
0x39, 0x04, 0x2a, 0x03, 0x45, 0x3d, 0x86, 0x72, 0x01, 0xd8, 0x5a, 0x1c, 0x82, 0x52, 0x0a, 0x09,
0x4b, 0x08, 0x0d, 0x9a, 0x01, 0x10, 0x05, 0x25, 0x7c, 0x3d, 0x7c, 0x18, 0x0a, 0x69, 0x06, 0x20,
0xcb, 0x7c, 0xd7, 0x3d, 0x7d, 0x0f, 0x06, 0x10, 0x08, 0x46, 0xce, 0xa7, 0xcc, 0x54, 0x10, 0x07,
0x4a, 0x07, 0x0a, 0x1d, 0x33, 0xe2, 0x55, 0x58, 0x1f, 0x28, 0x87, 0x0d, 0x23, 0x86, 0x00, 0x9c,
0x23, 0xe0, 0x48, 0x20, 0x0b, 0x84, 0x2e, 0x66, 0x0f, 0x07, 0x10, 0x0a, 0x4a, 0x86, 0x24, 0x0d,
0x0a, 0x24, 0x7c, 0x00, 0xe2, 0x0e, 0x57, 0x0d, 0x0d, 0x6a, 0x0e, 0x1c, 0x7c, 0x05, 0x09, 0x50,
0x4d, 0x1c, 0x0a, 0x64, 0x05, 0x08, 0x95, 0x07, 0x1c, 0x4d, 0x50, 0x83, 0x7c, 0x1d, 0xe2, 0x0e,
0x0d, 0x57, 0x0e, 0x0e, 0x2a, 0x9b, 0x24, 0x0c, 0x0b, 0x10, 0x07, 0x4a, 0x02, 0x58, 0x01, 0x1b,
0x1f, 0x63, 0x45, 0x7e, 0x20, 0x0a, 0x0c, 0x0c, 0x2e, 0x66, 0x0f, 0xd2, 0x57, 0x73, 0x45, 0x23,
0x76, 0x00, 0x76, 0x00, 0x66, 0x45, 0x57, 0x91, 0x10, 0x07, 0x4a, 0x07, 0x0a, 0xb0, 0xaa, 0xe4,
0x10, 0x06, 0x4a, 0x05, 0xf3, 0x0c, 0xd7, 0x18, 0x0a, 0x09, 0xd9, 0x26, 0x87, 0x45, 0xc4, 0x0e,
0x03, 0xd9, 0xf3, 0x0c, 0x10, 0x08, 0x1e, 0x41, 0x80, 0x24, 0xe7, 0x79, 0x18, 0x79, 0xc4, 0x7b,
0x20, 0x08, 0x0f, 0x26, 0xe2, 0x7b, 0x3d, 0x79, 0x18, 0x79, 0x1d, 0xe7, 0x2d, 0x80, 0x10, 0x04,
0x24, 0x21, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0x10, 0x08, 0x25, 0x07, 0x9a, 0xe1, 0x7c, 0x3d,
0x6d, 0x3d, 0x0b, 0x05, 0x3d, 0x0a, 0x09, 0x3d, 0x49, 0x80, 0x20, 0x0a, 0x09, 0x01, 0x18, 0x0b,
0x05, 0x3d, 0x6d, 0xd8, 0x7c, 0x20, 0x07, 0x9a, 0x10, 0x0a, 0x9e, 0x99, 0x7f, 0x6c, 0x05, 0x01,
0xc0, 0x1c, 0x07, 0x03, 0x47, 0x94, 0x40, 0x10,
};
static const uint16_t mf_rlefont_DejaVuSans12_glyph_offsets_0[95] PROGMEM = {
0x0000, 0x0003, 0x0011, 0x0017, 0x0039, 0x0062, 0x009d, 0x00cc,
0x00d4, 0x00eb, 0x0101, 0x0114, 0x011f, 0x0127, 0x012b, 0x0132,
0x014a, 0x0170, 0x0182, 0x019d, 0x01c1, 0x01df, 0x01fc, 0x0225,
0x023b, 0x0261, 0x0286, 0x028c, 0x0295, 0x02b2, 0x02ba, 0x02d2,
0x02e9, 0x0330, 0x0335, 0x0355, 0x0359, 0x037f, 0x0384, 0x0394,
0x03c2, 0x03d1, 0x03d6, 0x03e3, 0x0406, 0x040f, 0x0443, 0x0448,
0x044e, 0x0456, 0x0476, 0x0494, 0x04b8, 0x04c3, 0x04c7, 0x04ea,
0x0528, 0x054e, 0x0559, 0x0576, 0x0583, 0x059b, 0x05a7, 0x05b6,
0x05bd, 0x05c4, 0x05ca, 0x05d2, 0x05d9, 0x05e6, 0x05eb, 0x0604,
0x062f, 0x0635, 0x063d, 0x064d, 0x066c, 0x0673, 0x069b, 0x069f,
0x06a5, 0x06ad, 0x06b9, 0x06c8, 0x06e6, 0x06f8, 0x06ff, 0x071b,
0x074a, 0x0769, 0x0771, 0x0785, 0x079f, 0x07a9, 0x07c9,
};
static const uint8_t mf_rlefont_DejaVuSans12_glyph_data_1[1628] PROGMEM = {
0x04, 0x00, 0x10, 0x05, 0x25, 0x89, 0xc2, 0x31, 0xe1, 0x0e, 0x24, 0xc4, 0xfd, 0xc2, 0xc2, 0xc2,
0xc2, 0x10, 0x08, 0x1e, 0x8b, 0x3d, 0x8b, 0xd9, 0x0d, 0x90, 0x2a, 0x07, 0x7b, 0x09, 0x06, 0x03,
0x2a, 0x91, 0x09, 0x20, 0x58, 0x09, 0x20, 0x91, 0x09, 0x20, 0x07, 0x0d, 0xc0, 0x07, 0x03, 0x23,
0x07, 0x0d, 0x0f, 0x09, 0x18, 0x8b, 0x3d, 0x8b, 0x10, 0x08, 0x1a, 0x92, 0x94, 0x5e, 0x23, 0xd3,
0x04, 0x05, 0x23, 0x6d, 0x3d, 0x91, 0x20, 0xf3, 0x09, 0x20, 0x91, 0x18, 0x91, 0x18, 0x91, 0x2a,
0x87, 0x29, 0x09, 0x10, 0x08, 0x4a, 0xc0, 0xdd, 0x0b, 0x1f, 0x43, 0x94, 0x0d, 0x72, 0x2a, 0x4d,
0x01, 0x2d, 0xd0, 0x78, 0x24, 0x5f, 0x2a, 0x4d, 0x01, 0x03, 0x45, 0x1f, 0x43, 0x94, 0x0d, 0x8f,
0x1f, 0xc0, 0xdd, 0x0a, 0x10, 0x08, 0x1a, 0x2d, 0x24, 0x87, 0x0c, 0x1f, 0x8b, 0x07, 0x24, 0x40,
0x4b, 0x45, 0x95, 0x2a, 0x03, 0x53, 0x09, 0x75, 0x0c, 0x00, 0x4b, 0x9b, 0x23, 0x03, 0x29, 0x0c,
0x20, 0x28, 0xd7, 0xd7, 0x10, 0x04, 0x1e, 0xaf, 0xaf, 0x24, 0xa0, 0xaf, 0xaf, 0x10, 0x06, 0x25,
0x07, 0x75, 0x0d, 0x20, 0x42, 0x3d, 0x93, 0x02, 0xc4, 0x72, 0x0e, 0xd2, 0x85, 0x6a, 0x7b, 0x2a,
0x49, 0x03, 0x8b, 0xd2, 0x04, 0x73, 0x0c, 0xd0, 0x92, 0x09, 0x0b, 0x00, 0xc2, 0x23, 0x74, 0x06,
0x10, 0x06, 0x25, 0x60, 0x4c, 0x10, 0x0c, 0xa2, 0x1f, 0xde, 0x5e, 0x08, 0x75, 0x5e, 0x5c, 0x7a,
0x05, 0x50, 0x24, 0x63, 0x03, 0x24, 0x3c, 0x04, 0x08, 0x06, 0x1d, 0x87, 0x05, 0x1d, 0x7a, 0x05,
0x50, 0x24, 0x63, 0x03, 0x2e, 0x5e, 0x08, 0x75, 0x5e, 0xe6, 0x10, 0x06, 0x1a, 0xfa, 0x7c, 0x3d,
0x83, 0x00, 0x4b, 0x0a, 0x75, 0x0c, 0x2a, 0x87, 0x0b, 0x47, 0x0c, 0x23, 0x43, 0x2c, 0x0c, 0x9e,
0x03, 0x69, 0x0d, 0x10, 0x07, 0x99, 0xc4, 0x07, 0x63, 0x03, 0x2a, 0x03, 0x40, 0x76, 0x4b, 0x0e,
0x03, 0x07, 0x26, 0x03, 0x40, 0x76, 0xc4, 0x07, 0x63, 0x03, 0x10, 0x0a, 0x9e, 0x99, 0x2b, 0x3d,
0x41, 0x3d, 0x41, 0x10, 0x04, 0xdc, 0x0b, 0x10, 0x0c, 0xa2, 0x1f, 0xde, 0x0b, 0x43, 0x0f, 0x2c,
0x01, 0x5c, 0x7a, 0x00, 0x50, 0x2d, 0x63, 0x03, 0x24, 0x3c, 0x04, 0x00, 0x0c, 0x0f, 0x5b, 0x87,
0x05, 0x1d, 0x7a, 0x00, 0x50, 0x79, 0x06, 0x03, 0x2e, 0x0b, 0x43, 0x52, 0x7c, 0xe6, 0x10, 0x06,
0x25, 0xe8, 0x0b, 0x10, 0x06, 0x25, 0x2d, 0x7c, 0x20, 0x8d, 0x03, 0x26, 0xd4, 0x7f, 0x23, 0x87,
0x0d, 0x7c, 0x10, 0x0a, 0x37, 0x1e, 0xaf, 0x23, 0x2b, 0x23, 0xcf, 0x30, 0x9e, 0x2b, 0x10, 0x05,
0x1a, 0xe9, 0x4f, 0x24, 0xc4, 0x0d, 0x00, 0xd9, 0x04, 0x24, 0x4b, 0x78, 0xd9, 0x69, 0x01, 0x10,
0x05, 0x1a, 0x04, 0x53, 0x09, 0x24, 0xc4, 0x0e, 0xd9, 0x90, 0xd8, 0x8c, 0x23, 0xe9, 0x9a, 0x10,
0x06, 0x24, 0x21, 0x9c, 0x18, 0x85, 0x10, 0x08, 0x46, 0x71, 0x27, 0x2a, 0x71, 0x27, 0x2a, 0x71,
0x27, 0x2a, 0x71, 0x27, 0x2a, 0x80, 0x24, 0x9c, 0x2e, 0xec, 0x62, 0x03, 0x9b, 0x2e, 0xec, 0x08,
0x0e, 0x28, 0x1b, 0x1f, 0x71, 0x20, 0x71, 0x20, 0x71, 0x10, 0x08, 0xb2, 0x53, 0x05, 0x00, 0x44,
0x53, 0xdf, 0x1f, 0xf2, 0xdf, 0x2a, 0x0d, 0x53, 0xdf, 0x2a, 0x2d, 0x0f, 0xd5, 0x07, 0xd5, 0x07,
0xd5, 0x10, 0x04, 0x9e, 0x99, 0x7e, 0x3d, 0x7e, 0x10, 0x06, 0x37, 0x1a, 0x8a, 0x26, 0x87, 0x0f,
0x45, 0x10, 0x05, 0x1a, 0x03, 0x0f, 0x0e, 0x31, 0x0d, 0x31, 0x0d, 0x31, 0x0d, 0xd8, 0x53, 0x80,
0x10, 0x06, 0x25, 0x08, 0x0e, 0x7b, 0x2a, 0x87, 0x0c, 0x98, 0x0d, 0x23, 0x85, 0x24, 0x45, 0x1f,
0x87, 0x0c, 0x98, 0x0d, 0x20, 0x08, 0x0e, 0x7b, 0x9e, 0x03, 0x69, 0x0d, 0x10, 0x07, 0x23, 0x99,
0x08, 0x98, 0x19, 0x05, 0x40, 0x60, 0x20, 0x81, 0x00, 0x91, 0x66, 0x40, 0x60, 0x23, 0x08, 0x98,
0x05, 0x10, 0x0c, 0xbe, 0x24, 0x72, 0xb5, 0x10, 0x0c, 0xbe, 0x09, 0x0f, 0x97, 0x2e, 0x83, 0x1d,
0x6f, 0x1c, 0x50, 0x24, 0x8b, 0x02, 0x1c, 0x77, 0x24, 0x8e, 0x02, 0x1c, 0x61, 0x1d, 0x0a, 0x53,
0x0d, 0x10, 0x0c, 0x1a, 0x04, 0x53, 0x09, 0x1d, 0x7f, 0x4e, 0x0e, 0x1d, 0x50, 0x1c, 0x07, 0x90,
0x00, 0x77, 0x4b, 0x8c, 0x61, 0x1f, 0xe9, 0x9a, 0x00, 0x5f, 0x24, 0x72, 0xb5, 0x10, 0x06, 0x1a,
0xe2, 0x71, 0x23, 0x34, 0x01, 0x31, 0xe1, 0x71, 0x23, 0x7d, 0x20, 0x63, 0x50, 0x20, 0xe0, 0xd8,
0x0f, 0x05, 0x47, 0xd2, 0x65, 0x9a, 0x01, 0x10, 0x08, 0x1c, 0xe1, 0x45, 0x1c, 0x66, 0x09, 0x3d,
0xc3, 0xb3, 0x10, 0x08, 0x00, 0x32, 0x40, 0x18, 0x85, 0x3d, 0xc3, 0xb3, 0x10, 0x08, 0x32, 0x84,
0x01, 0x1d, 0x66, 0x08, 0x04, 0x09, 0x18, 0xc3, 0xb3, 0x10, 0x08, 0x37, 0x06, 0x1b, 0x0c, 0x20,
0x8d, 0x9d, 0x18, 0xc3, 0xb3, 0x10, 0x08, 0x37, 0x9c, 0x7d, 0x00, 0x36, 0xc3, 0xb3, 0x10, 0x08,
0x1d, 0x43, 0x7c, 0x20, 0x2f, 0x51, 0x20, 0x2f, 0xc0, 0x18, 0x0e, 0x80, 0xc4, 0x70, 0x19, 0xea,
0x07, 0x26, 0x0d, 0x05, 0x02, 0x80, 0x2a, 0x3e, 0x72, 0x9f, 0x00, 0x38, 0x10, 0x0c, 0x1e, 0x08,
0x0f, 0x29, 0x0c, 0x1c, 0x0d, 0x05, 0x60, 0x23, 0x38, 0x00, 0x60, 0x23, 0x7e, 0x00, 0x60, 0x00,
0x4e, 0x42, 0x00, 0x0b, 0xf3, 0x0a, 0x1d, 0x08, 0x0c, 0x24, 0x60, 0x2a, 0x0e, 0xf3, 0x07, 0x66,
0x55, 0x60, 0x1f, 0x60, 0x1d, 0xe8, 0x74, 0x10, 0x08, 0x25, 0xb6, 0xc4, 0x09, 0xd9, 0x0f, 0x0a,
0x10, 0x08, 0x37, 0x41, 0x31, 0x08, 0x07, 0x1d, 0x44, 0x69, 0xae, 0x10, 0x08, 0x1f, 0xe1, 0x45,
0x20, 0x8b, 0x19, 0x0c, 0x69, 0xae, 0x10, 0x08, 0x37, 0x43, 0x0b, 0x18, 0x08, 0x82, 0xd2, 0x0c,
0x69, 0xae, 0x10, 0x08, 0x1c, 0xd7, 0xea, 0x9e, 0x0c, 0x69, 0xae, 0x10, 0x04, 0x23, 0x66, 0x0b,
0x31, 0x0a, 0x05, 0x3d, 0x35, 0xa8, 0x10, 0x04, 0x1d, 0x31, 0x41, 0x3d, 0x8d, 0x3d, 0x35, 0xa8,
0x10, 0x04, 0x1c, 0xc4, 0x73, 0x18, 0x3b, 0x78, 0x18, 0x35, 0xa8, 0x10, 0x04, 0x24, 0x31, 0x1b,
0x5a, 0x9e, 0x35, 0xa8, 0x10, 0x09, 0xbc, 0x74, 0x72, 0x2a, 0x28, 0x00, 0x98, 0xd6, 0x1f, 0x28,
0x1d, 0x34, 0x04, 0x1c, 0x28, 0x2e, 0x8f, 0x2e, 0x0e, 0x69, 0x06, 0x24, 0x0a, 0x09, 0x1c, 0x28,
0x2e, 0x8f, 0x1c, 0x28, 0x1d, 0x34, 0x04, 0x1c, 0x28, 0x00, 0x98, 0xd6, 0x44, 0x74, 0x72, 0x10,
0x09, 0x2a, 0xc4, 0x4f, 0x07, 0x05, 0x2a, 0x63, 0x95, 0x45, 0x00, 0x44, 0xda, 0xbf, 0x10, 0x09,
0x32, 0x4d, 0x31, 0x5f, 0x1d, 0x66, 0xab, 0xc7, 0xb8, 0x09, 0x00, 0x32, 0x41, 0x3d, 0x50, 0x1d,
0x66, 0xab, 0xc7, 0xb8, 0x09, 0x23, 0xc4, 0x73, 0x18, 0xd4, 0x3b, 0x24, 0x66, 0xab, 0xc7, 0xb8,
0x09, 0x3d, 0x44, 0x3a, 0x09, 0x23, 0x8e, 0x06, 0x1b, 0x24, 0x66, 0xab, 0xc7, 0xb8, 0x09, 0x32,
0x42, 0x60, 0x9e, 0x05, 0xab, 0xc7, 0xb8, 0x0a, 0x4a, 0x6a, 0x5e, 0x1d, 0x3b, 0x1f, 0xd3, 0x00,
0x93, 0x23, 0x0a, 0x93, 0x0a, 0x18, 0x0e, 0x55, 0x2a, 0x0a, 0x93, 0x0a, 0x23, 0xd3, 0x00, 0x93,
0x4e, 0x5e, 0x1d, 0x3b, 0x10, 0x09, 0xa0, 0xe1, 0x66, 0x0c, 0x0f, 0xa1, 0x95, 0x2e, 0x63, 0x5b,
0x6b, 0x0b, 0x55, 0x92, 0x97, 0x61, 0x5b, 0x1d, 0x87, 0x0f, 0x01, 0x57, 0x40, 0x33, 0x38, 0x24,
0x3a, 0x00, 0x07, 0x5c, 0x03, 0x0f, 0x01, 0x79, 0x00, 0x76, 0x1c, 0x0d, 0x8f, 0x92, 0x97, 0x1d,
0x08, 0x0f, 0x05, 0x6b, 0x84, 0x1d, 0xe2, 0x0b, 0x05, 0x59, 0x09, 0x01, 0x68, 0x10, 0x09, 0x32,
0x0b, 0x05, 0x3d, 0x61, 0x01, 0x23, 0xc6, 0x10, 0x09, 0x32, 0x8b, 0x07, 0x00, 0xc4, 0x26, 0xc6,
0x10, 0x09, 0x2a, 0xd9, 0x1b, 0xc4, 0xd4, 0x0b, 0x23, 0xc6, 0x10, 0x09, 0x37, 0x7d, 0xe0, 0x1d,
0x32, 0xc6, 0x10, 0x07, 0x32, 0x6f, 0x18, 0x50, 0x23, 0x0b, 0x09, 0xbd, 0xb7, 0x34, 0x07, 0xc1,
0x1b, 0x10, 0x07, 0x25, 0x6d, 0x1c, 0x44, 0xc5, 0xad, 0x35, 0x10, 0x08, 0x32, 0xe1, 0x94, 0x91,
0x2a, 0x0a, 0x09, 0x98, 0x0e, 0xd0, 0x7c, 0x87, 0x58, 0x1f, 0x0e, 0x03, 0x05, 0x50, 0x23, 0x0e,
0xc0, 0x07, 0x20, 0x0e, 0x7a, 0x58, 0x2a, 0x58, 0x07, 0x97, 0x1c, 0x58, 0x87, 0x0e, 0x2a, 0x58,
0x00, 0x7d, 0x2a, 0x5b, 0x53, 0x7b, 0x10, 0x07, 0x36, 0x4e, 0x50, 0x3d, 0x03, 0x5e, 0x36, 0xa4,
0x0d, 0xac, 0x10, 0x07, 0x9e, 0xc4, 0x50, 0x24, 0x4b, 0xd4, 0x36, 0xa4, 0x0d, 0xac, 0x10, 0x07,
0x21, 0x3c, 0x1b, 0xc4, 0x5e, 0x5e, 0x9e, 0xa4, 0x0d, 0xac, 0x10, 0x07, 0x1a, 0x6a, 0x2c, 0x06,
0x05, 0x2a, 0x63, 0x85, 0x45, 0x23, 0xa4, 0x0d, 0xac, 0x10, 0x07, 0x1a, 0x87, 0x0e, 0x00, 0x42,
0x9e, 0xa4, 0x0d, 0xac, 0x10, 0x07, 0x1d, 0x07, 0x2c, 0x20, 0x43, 0x43, 0x20, 0x43, 0x43, 0xd9,
0x2c, 0x36, 0xa4, 0x0d, 0xac, 0x10, 0x0c, 0x46, 0x0c, 0x53, 0x0d, 0x82, 0x0d, 0x9a, 0x01, 0x24,
0xdd, 0xe9, 0x7c, 0x01, 0xea, 0x2a, 0x91, 0xf8, 0x1d, 0x65, 0x53, 0x29, 0x80, 0x6a, 0x58, 0x00,
0x5b, 0x1f, 0x49, 0x52, 0x08, 0x0f, 0x40, 0x01, 0x51, 0x1d, 0x08, 0x0e, 0x9a, 0xc0, 0x0d, 0x0e,
0x6e, 0x10, 0x07, 0xb9, 0x23, 0x8e, 0x0e, 0x7b, 0xd8, 0x0a, 0x18, 0xe9, 0x0b, 0x10, 0x07, 0x00,
0x21, 0x79, 0x3d, 0x8d, 0x3d, 0xe1, 0xb1, 0x10, 0x07, 0x1d, 0x21, 0x0b, 0x19, 0x8b, 0x05, 0x3d,
0xe1, 0xb1, 0x10, 0x07, 0x36, 0x4b, 0x73, 0x18, 0x3b, 0x08, 0x05, 0x18, 0xe1, 0xb1, 0x10, 0x07,
0x00, 0x25, 0x1b, 0x5a, 0x23, 0xe1, 0xb1, 0x10, 0x03, 0x37, 0xd8, 0x6e, 0xe1, 0xd4, 0xa0, 0xcb,
0xcb, 0x7c, 0x10, 0x03, 0x32, 0xe1, 0x40, 0x18, 0x5f, 0xa0, 0xcb, 0xcb, 0x7c, 0x10, 0x03, 0x9e,
0x4e, 0x3f, 0x18, 0xd4, 0x3b, 0x00, 0x36, 0xcb, 0xcb, 0x7c, 0x10, 0x03, 0x3d, 0x21, 0xe0, 0x28,
0x00, 0x36, 0xcb, 0xcb, 0x7c, 0x10, 0x07, 0x00, 0x25, 0x7e, 0x04, 0x09, 0x24, 0x4e, 0x09, 0x0f,
0x0a, 0xd0, 0x3c, 0x03, 0x04, 0x48, 0x23, 0x41, 0x75, 0x0d, 0x4b, 0x2c, 0x01, 0x01, 0x88, 0x1c,
0x87, 0x0d, 0x1d, 0xea, 0x1c, 0x87, 0x0d, 0x1d, 0x67, 0x68, 0x3f, 0x01, 0x03, 0x1b, 0x2a, 0x03,
0x94, 0x88, 0x10, 0x08, 0x25, 0x8b, 0x50, 0x26, 0x0b, 0x2d, 0xd2, 0xa6, 0x10, 0x07, 0x32, 0xe1,
0x6e, 0xe1, 0xd4, 0x36, 0xc9, 0xa3, 0x91, 0x10, 0x07, 0xa0, 0x68, 0x40, 0x18, 0x5f, 0x36, 0xc9,
0xa3, 0x91, 0x10, 0x07, 0x21, 0x6a, 0x3f, 0x18, 0xd4, 0x3b, 0x9e, 0xc9, 0xa3, 0x91, 0x10, 0x07,
0x00, 0xbc, 0x5f, 0x08, 0x23, 0x03, 0x08, 0x38, 0x03, 0x23, 0xc9, 0xa3, 0x91, 0x10, 0x07, 0x25,
0xe0, 0x28, 0x9e, 0xc9, 0xa3, 0x91, 0x10, 0x0a, 0x3d, 0x99, 0xdb, 0x3d, 0x2b, 0x9e, 0xdb, 0x10,
0x07, 0x2a, 0x1e, 0xc4, 0x00, 0x4e, 0x94, 0x0d, 0x67, 0x2a, 0xa1, 0x39, 0x42, 0x1f, 0x49, 0x57,
0x93, 0x08, 0x66, 0x0c, 0x00, 0x8d, 0x07, 0x0a, 0x1f, 0x03, 0x9b, 0x05, 0x00, 0x9c, 0x2a, 0xd6,
0x98, 0x58, 0x1c, 0x51, 0x94, 0x91, 0x1f, 0x52, 0x10, 0x08, 0x32, 0xe1, 0x3a, 0xe1, 0xd4, 0x36,
0xce, 0xa7, 0xcc, 0x54, 0x10, 0x08, 0xa0, 0x68, 0x6e, 0x18, 0x5f, 0x36, 0xce, 0xa7, 0xcc, 0x54,
0x10, 0x08, 0x21, 0x6a, 0xa1, 0x18, 0xd4, 0x78, 0x9e, 0xce, 0xa7, 0xcc, 0x54, 0x10, 0x08, 0x00,
0x25, 0x42, 0x60, 0x9e, 0xce, 0xa7, 0xcc, 0x54, 0x10, 0x07, 0x9e, 0xc4, 0x50, 0x24, 0x4b, 0x8d,
0x3d, 0xd9, 0x0a, 0xb0, 0xaa, 0xe4, 0x10, 0x08, 0x21, 0xa9, 0x18, 0x2c, 0x0d, 0xca, 0x23, 0xa9,
0x10, 0x07, 0x25, 0x89, 0x1b, 0x18, 0xd9, 0x0a, 0xb0, 0xaa, 0xe4, 0x10,
};
static const uint16_t mf_rlefont_DejaVuSans12_glyph_offsets_1[96] PROGMEM = {
0x0000, 0x0003, 0x0012, 0x0039, 0x0054, 0x0075, 0x0095, 0x009e,
0x00c1, 0x00c6, 0x00eb, 0x0104, 0x011b, 0x0124, 0x0128, 0x014f,
0x0154, 0x0163, 0x016f, 0x0180, 0x0190, 0x0197, 0x01ba, 0x01d2,
0x01d9, 0x01e2, 0x01f1, 0x020d, 0x0222, 0x0228, 0x0242, 0x025e,
0x0278, 0x0283, 0x028d, 0x029a, 0x02a6, 0x02af, 0x02cd, 0x02f8,
0x0301, 0x030c, 0x0317, 0x0323, 0x032c, 0x0337, 0x0341, 0x034c,
0x0355, 0x0380, 0x038f, 0x0399, 0x03a4, 0x03b0, 0x03be, 0x03c7,
0x03e5, 0x041e, 0x0428, 0x0431, 0x043b, 0x0443, 0x0452, 0x045b,
0x0487, 0x0493, 0x049f, 0x04ab, 0x04ba, 0x04c5, 0x04d6, 0x0502,
0x050e, 0x0518, 0x0523, 0x052f, 0x0538, 0x0543, 0x054e, 0x055b,
0x0566, 0x0593, 0x059d, 0x05a8, 0x05b3, 0x05bf, 0x05ce, 0x05d7,
0x05e0, 0x0609, 0x0615, 0x0621, 0x062e, 0x0639, 0x0647, 0x0651,
};
static const uint8_t mf_rlefont_DejaVuSans12_glyph_data_2[26] PROGMEM = {
0x04, 0xdc, 0x0b, 0x10, 0x08, 0xdc, 0xf3, 0x01, 0x10, 0x06, 0xdc, 0x53, 0x06, 0x10, 0x0c, 0xdc,
0x69, 0x29, 0x06, 0x10, 0x0c, 0x8a, 0xfa, 0x29, 0x29, 0x10,
};
static const uint16_t mf_rlefont_DejaVuSans12_glyph_offsets_2[6] PROGMEM = {
0x0000, 0x0000, 0x0004, 0x0009, 0x000e, 0x0014,
};
static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans12_char_ranges[] = {
{32, 95, mf_rlefont_DejaVuSans12_glyph_offsets_0, mf_rlefont_DejaVuSans12_glyph_data_0},
{160, 96, mf_rlefont_DejaVuSans12_glyph_offsets_1, mf_rlefont_DejaVuSans12_glyph_data_1},
{8208, 6, mf_rlefont_DejaVuSans12_glyph_offsets_2, mf_rlefont_DejaVuSans12_glyph_data_2},
};
const struct mf_rlefont_s mf_rlefont_DejaVuSans12 = {
{
"DejaVu Sans Book 12",
"DejaVuSans12",
13, /* width */
15, /* height */
3, /* min x advance */
12, /* max x advance */
1, /* baseline x */
12, /* baseline y */
14, /* line height */
0, /* flags */
63, /* fallback character */
&mf_rlefont_character_width,
&mf_rlefont_render_character,
},
4, /* version */
mf_rlefont_DejaVuSans12_dictionary_data,
mf_rlefont_DejaVuSans12_dictionary_offsets,
138, /* rle dict count */
211, /* total dict count */
3, /* char range count */
mf_rlefont_DejaVuSans12_char_ranges,
};
#ifdef MF_INCLUDED_FONTS
/* List entry for searching fonts by name. */
static const struct mf_font_list_s mf_rlefont_DejaVuSans12_listentry = {
MF_INCLUDED_FONTS,
(struct mf_font_s*)&mf_rlefont_DejaVuSans12
};
#undef MF_INCLUDED_FONTS
#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans12_listentry)
#endif
/* End of automatically generated font definition for DejaVuSans12. */

View File

@ -0,0 +1,250 @@
/* Start of automatically generated font definition for DejaVuSans12bw. */
#ifndef MF_RLEFONT_INTERNALS
#define MF_RLEFONT_INTERNALS
#endif
#include "mf_rlefont.h"
#ifndef MF_RLEFONT_VERSION_4_SUPPORTED
#error The font file is not compatible with this version of mcufont.
#endif
static const uint8_t mf_rlefont_DejaVuSans12bw_dictionary_data[416] PROGMEM = {
0x0b, 0x81, 0x05, 0x80, 0x02, 0x0c, 0x80, 0x0c, 0x80, 0x0c, 0x80, 0x0c, 0x80, 0x06, 0x80, 0x04,
0x2b, 0x0c, 0x80, 0x0b, 0x04, 0x80, 0x02, 0x05, 0x80, 0x0c, 0x80, 0x0c, 0x80, 0x02, 0x09, 0x80,
0x0a, 0x16, 0x1e, 0x81, 0x09, 0x01, 0x83, 0x02, 0x0a, 0x80, 0x01, 0x80, 0x01, 0x80, 0x02, 0x80,
0x0c, 0x80, 0x81, 0x01, 0x10, 0x40, 0x07, 0x80, 0x04, 0x80, 0x07, 0x80, 0x29, 0x0b, 0x80, 0x03,
0x83, 0x02, 0x15, 0x40, 0x04, 0x02, 0x82, 0x80, 0x02, 0x81, 0x07, 0x80, 0x01, 0x80, 0x09, 0x02,
0x80, 0x85, 0x80, 0x04, 0x80, 0x03, 0x80, 0x02, 0x08, 0x0d, 0x03, 0x81, 0x03, 0x84, 0x01, 0x1d,
0x80, 0x14, 0x81, 0x01, 0x80, 0x02, 0x40, 0x1d, 0x80, 0x02, 0x80, 0x06, 0x80, 0x0a, 0x03, 0x80,
0x06, 0x80, 0x05, 0x80, 0x03, 0x01, 0x80, 0x09, 0x82, 0x0a, 0x08, 0x83, 0x02, 0x0c, 0x04, 0x80,
0x07, 0x82, 0x09, 0x80, 0x01, 0x82, 0x06, 0x80, 0x04, 0x80, 0x80, 0x02, 0x01, 0x81, 0x02, 0x81,
0x01, 0x01, 0x80, 0x02, 0x03, 0x80, 0x26, 0x1b, 0xdd, 0x2c, 0x2c, 0x2c, 0x2d, 0x9d, 0x2d, 0x1b,
0x21, 0x37, 0x2c, 0x2c, 0x2c, 0x2c, 0xae, 0x1b, 0xae, 0x1b, 0xae, 0x2d, 0xcc, 0x2d, 0x3a, 0x45,
0x3a, 0x45, 0x51, 0xb5, 0x2d, 0x30, 0x23, 0x28, 0x1a, 0x1e, 0x52, 0x37, 0x3b, 0x43, 0x3a, 0x44,
0x35, 0x26, 0x28, 0x1e, 0xd3, 0x2c, 0x3b, 0x49, 0xc2, 0x2c, 0x2d, 0x9c, 0x2d, 0x41, 0x45, 0xd4,
0x3a, 0xc4, 0xa0, 0xf3, 0x3b, 0xb7, 0x2d, 0x49, 0x38, 0x2d, 0x48, 0xa7, 0x47, 0x2d, 0x30, 0x36,
0x28, 0xb5, 0x1b, 0x21, 0x26, 0xf3, 0x3b, 0xb7, 0x2c, 0x2c, 0x2d, 0x49, 0xb7, 0x2d, 0x4a, 0xc8,
0x19, 0x45, 0xcc, 0x94, 0x19, 0x48, 0x3f, 0x30, 0xd4, 0xa6, 0x1b, 0xa8, 0x1b, 0xac, 0x1b, 0xac,
0x4c, 0x4d, 0x94, 0x9c, 0xfe, 0xc7, 0x4e, 0x18, 0x26, 0x3a, 0xb4, 0x1f, 0xb4, 0x26, 0x35, 0x26,
0x2d, 0x21, 0x26, 0xe3, 0x2d, 0x21, 0x26, 0x3e, 0x21, 0x26, 0x1a, 0x1c, 0x49, 0x1f, 0x3b, 0x43,
0x3a, 0x3a, 0x2d, 0x50, 0xc4, 0xac, 0x29, 0xc5, 0x94, 0xcb, 0x2a, 0x2e, 0x28, 0xf4, 0x23, 0x28,
0x1d, 0x4a, 0x37, 0x2d, 0x1a, 0x3b, 0x19, 0x46, 0x00, 0x28, 0xc4, 0x9c, 0x2f, 0x36, 0x28, 0x00,
0x3e, 0xc9, 0xc4, 0xb8, 0xfc, 0xc5, 0x19, 0xcc, 0x2d, 0xfc, 0x39, 0x2c, 0x2d, 0x9c, 0x2d, 0x41,
0x50, 0x2d, 0x3a, 0x19, 0x45, 0xcc, 0x94, 0x19, 0x4e, 0x36, 0x3f, 0x3b, 0x19, 0x52, 0xdc, 0xb4,
0x4c, 0x2d, 0x3a, 0xc4, 0xa6, 0x2d, 0x41, 0x39, 0x2c, 0x2c, 0x2c, 0x2c, 0xfe, 0xc8, 0x3b, 0xca,
0x44, 0x29, 0x52, 0x3a, 0x23, 0x22, 0x50, 0x37, 0x3a, 0xc6, 0xa6, 0x3a, 0x50, 0x19, 0xc4, 0xa8,
0x36, 0xca, 0xf6, 0x2d, 0x2d, 0xdc, 0x1b, 0xac, 0x1b, 0xbc, 0x39, 0x1b, 0x4c, 0x2c, 0x2c, 0x2d,
0x30, 0x2e, 0xa2, 0x2c, 0x29, 0x2f, 0x0f, 0x3b, 0x96, 0x2d, 0x49, 0x38, 0x2c, 0x1b, 0x1b, 0x2a,
};
static const uint16_t mf_rlefont_DejaVuSans12bw_dictionary_offsets[125] PROGMEM = {
0x0000, 0x0002, 0x0005, 0x000d, 0x000f, 0x0010, 0x0011, 0x0014,
0x0017, 0x0019, 0x001e, 0x0021, 0x0022, 0x0025, 0x0028, 0x002a,
0x002f, 0x0032, 0x0034, 0x0035, 0x0036, 0x003a, 0x003c, 0x003d,
0x0040, 0x0042, 0x0043, 0x0045, 0x0047, 0x004b, 0x004e, 0x004f,
0x0051, 0x0052, 0x0055, 0x0058, 0x0059, 0x005a, 0x005d, 0x005f,
0x0061, 0x0062, 0x0066, 0x0068, 0x006c, 0x006e, 0x0075, 0x007a,
0x007d, 0x007e, 0x0081, 0x0085, 0x0086, 0x008a, 0x008c, 0x008e,
0x0091, 0x0094, 0x0096, 0x0097, 0x009f, 0x00a1, 0x00a6, 0x00af,
0x00b6, 0x00ba, 0x00bc, 0x00c4, 0x00ce, 0x00d3, 0x00dd, 0x00df,
0x00e1, 0x00e2, 0x00e5, 0x00ee, 0x00f5, 0x00f8, 0x0104, 0x0106,
0x0109, 0x010c, 0x010e, 0x0110, 0x0118, 0x011b, 0x011e, 0x0121,
0x0123, 0x0126, 0x012b, 0x012d, 0x0130, 0x0138, 0x013a, 0x013c,
0x013f, 0x0141, 0x0144, 0x0147, 0x0149, 0x014c, 0x0150, 0x0152,
0x0154, 0x0158, 0x015a, 0x015d, 0x0167, 0x016c, 0x016e, 0x0170,
0x0172, 0x0174, 0x0177, 0x017c, 0x017e, 0x0180, 0x0182, 0x0184,
0x018c, 0x0191, 0x0194, 0x0196, 0x01a0,
};
static const uint8_t mf_rlefont_DejaVuSans12bw_glyph_data_0[823] PROGMEM = {
0x04, 0x00, 0x10, 0x05, 0x00, 0x72, 0x1a, 0x73, 0x10, 0x05, 0x2e, 0x6a, 0x70, 0x10, 0x0a, 0x48,
0x2e, 0x94, 0x7e, 0x8e, 0x38, 0x2d, 0x7a, 0xc5, 0xbc, 0x30, 0xc4, 0x27, 0x8c, 0x10, 0x08, 0x48,
0x40, 0x1e, 0x4a, 0x35, 0x3b, 0x6a, 0x29, 0x18, 0x44, 0x35, 0xc4, 0xac, 0x46, 0x75, 0x10, 0x0b,
0x52, 0xdc, 0x94, 0x94, 0x96, 0x19, 0x43, 0xad, 0x76, 0xdf, 0x3b, 0xa9, 0x1b, 0xa8, 0x1b, 0xa8,
0x20, 0xb4, 0x10, 0x0a, 0x1d, 0xe7, 0x6e, 0xfc, 0x76, 0x26, 0xa6, 0x19, 0x96, 0x94, 0x3d, 0xdc,
0x7b, 0xbb, 0x10, 0x03, 0x72, 0x1e, 0x10, 0x05, 0x40, 0x86, 0x5f, 0x77, 0x21, 0x77, 0x0f, 0x10,
0x05, 0x00, 0x2a, 0x18, 0x21, 0x77, 0x21, 0x5f, 0x18, 0x10, 0x06, 0x00, 0x2e, 0x70, 0x46, 0x4a,
0x6a, 0x10, 0x0a, 0x2b, 0x54, 0x2d, 0xf3, 0xc7, 0x54, 0x10, 0x04, 0x3b, 0x40, 0x42, 0x77, 0x10,
0x04, 0x48, 0x42, 0xf2, 0x10, 0x04, 0x1d, 0x2b, 0x73, 0x10, 0x04, 0xfc, 0x72, 0x77, 0xc4, 0x54,
0x5f, 0x10, 0x08, 0x2e, 0x25, 0x8c, 0x3b, 0x84, 0x3b, 0xcd, 0x47, 0x10, 0x08, 0x52, 0xbc, 0x6c,
0x36, 0xc2, 0x10, 0x08, 0x2e, 0xe2, 0x3b, 0xb5, 0x21, 0x22, 0xc6, 0x6d, 0x36, 0x38, 0x10, 0x08,
0x91, 0x1e, 0x46, 0xfc, 0x75, 0x2c, 0x47, 0x10, 0x08, 0x1d, 0x67, 0xf6, 0x6e, 0xfd, 0x2d, 0x7b,
0x0f, 0x30, 0x5f, 0x10, 0x08, 0x64, 0x1b, 0x1e, 0x78, 0x18, 0x21, 0xc4, 0xb5, 0x47, 0x10, 0x08,
0x1d, 0xcb, 0x2d, 0x7f, 0x36, 0xbe, 0x3b, 0xb7, 0xc4, 0x7c, 0x3b, 0x34, 0xe2, 0x10, 0x08, 0x2e,
0x38, 0x1e, 0x28, 0x2f, 0x22, 0x75, 0x2f, 0x10, 0x08, 0x91, 0xc4, 0x7c, 0x47, 0x4c, 0xc4, 0x7c,
0x47, 0x10, 0x08, 0x2e, 0xa2, 0x2d, 0x43, 0x7c, 0x2d, 0x34, 0xb2, 0x36, 0x7f, 0x46, 0x10, 0x04,
0x00, 0x52, 0x72, 0x3c, 0x73, 0x10, 0x04, 0x32, 0x21, 0xf4, 0x23, 0x77, 0x10, 0x0a, 0x31, 0x2e,
0x18, 0x47, 0xb4, 0x44, 0x4b, 0x48, 0xa2, 0x18, 0x10, 0x0a, 0x42, 0xf3, 0x30, 0xc4, 0x18, 0x38,
0x10, 0x0a, 0x52, 0x3f, 0xc5, 0x47, 0x18, 0x44, 0xff, 0xc5, 0xc0, 0x76, 0x10, 0x06, 0x2e, 0x4a,
0xfc, 0xc5, 0x6d, 0x5f, 0x73, 0x10, 0x0d, 0xf4, 0x64, 0x19, 0x9c, 0x7f, 0x50, 0xa2, 0x85, 0x95,
0x85, 0x95, 0x85, 0x95, 0x95, 0xc0, 0xc5, 0xc6, 0x26, 0x20, 0x5e, 0x10, 0x08, 0x2e, 0x4f, 0x8d,
0x6e, 0x93, 0x10, 0x08, 0x64, 0x90, 0x90, 0x10, 0x08, 0x74, 0x10, 0x09, 0x64, 0xfc, 0x94, 0x7f,
0x80, 0x45, 0x51, 0x49, 0xe3, 0x10, 0x08, 0x2e, 0x38, 0x6b, 0x10, 0x07, 0x64, 0x61, 0x30, 0x61,
0x10, 0x09, 0x00, 0x91, 0x54, 0xd2, 0x19, 0x45, 0xd4, 0x49, 0xe2, 0x10, 0x09, 0x88, 0x80, 0x3a,
0xb4, 0x3e, 0x19, 0x80, 0x51, 0x10, 0x03, 0x72, 0x6c, 0x10, 0x03, 0x72, 0x6c, 0x48, 0x87, 0x10,
0x07, 0x00, 0x59, 0x49, 0x95, 0x8c, 0x36, 0x6a, 0x44, 0x27, 0x6e, 0xf6, 0x2c, 0x10, 0x06, 0x72,
0x6c, 0xf3, 0x10, 0x0a, 0x88, 0x1f, 0x3d, 0xca, 0x9c, 0x3d, 0x98, 0x27, 0xac, 0x98, 0x94, 0xca,
0xc5, 0xb6, 0xc8, 0x45, 0x51, 0x10, 0x09, 0x52, 0x9c, 0x68, 0x00, 0xac, 0x3a, 0x65, 0x10, 0x09,
0x1d, 0x63, 0x5c, 0x10, 0x08, 0x64, 0x90, 0x61, 0x10, 0x09, 0x1d, 0x63, 0x5c, 0x2f, 0x26, 0x10,
0x08, 0x64, 0x90, 0x1b, 0xcc, 0xc4, 0x7c, 0x2d, 0x20, 0x10, 0x08, 0x91, 0x2d, 0x1e, 0x33, 0xc5,
0x5f, 0x2c, 0x47, 0x10, 0x07, 0x52, 0x33, 0x30, 0x2d, 0x6c, 0x10, 0x09, 0x88, 0x80, 0x57, 0x10,
0x08, 0x59, 0x1b, 0x20, 0x1b, 0x4c, 0xc4, 0x7c, 0x6e, 0x87, 0x8d, 0x10, 0x0b, 0x59, 0xd4, 0x94,
0x8a, 0xc8, 0xa9, 0x20, 0x56, 0x10, 0x07, 0x59, 0xb5, 0x2d, 0x6f, 0x70, 0x2f, 0x3b, 0x6a, 0x7e,
0x7f, 0x51, 0x10, 0x07, 0x59, 0x20, 0x2d, 0x7b, 0x6f, 0x70, 0xc4, 0x61, 0x10, 0x09, 0x2e, 0x38,
0xc5, 0x6d, 0x22, 0xc6, 0x6d, 0x5f, 0x38, 0x10, 0x05, 0x52, 0xb4, 0x77, 0x6c, 0x0f, 0x10, 0x04,
0x59, 0x3b, 0x49, 0x54, 0x77, 0x1c, 0x5f, 0x10, 0x05, 0x52, 0x3d, 0x5f, 0x6c, 0x18, 0x10, 0x0a,
0x1d, 0x81, 0x96, 0x2c, 0x10, 0x06, 0x23, 0x32, 0x42, 0x38, 0x10, 0x06, 0x82, 0x10, 0x08, 0x32,
0x5b, 0x10, 0x08, 0x2a, 0x1a, 0x62, 0xf3, 0x10, 0x07, 0x32, 0xeb, 0x76, 0x50, 0x61, 0x43, 0xbc,
0x10, 0x08, 0x23, 0x77, 0x3b, 0x3e, 0x53, 0xf3, 0x10, 0x08, 0x32, 0x5d, 0x10, 0x04, 0x3f, 0x44,
0xe5, 0x22, 0xa2, 0x5f, 0x1a, 0x10, 0x08, 0x32, 0x3e, 0x53, 0x4b, 0x28, 0x3b, 0x34, 0x33, 0x10,
0x08, 0x2a, 0x1a, 0xf2, 0x76, 0x55, 0x2c, 0x10, 0x03, 0x2e, 0xe5, 0x58, 0x10, 0x03, 0x00, 0x59,
0x73, 0x6c, 0x18, 0x10, 0x07, 0x2a, 0x1a, 0xcc, 0x8c, 0x36, 0x6a, 0x44, 0x27, 0x6e, 0xfe, 0x10,
0x03, 0x00, 0x2a, 0x77, 0x6c, 0x10, 0x0b, 0x00, 0x2b, 0xc0, 0x66, 0x8a, 0x8a, 0x8a, 0x10, 0x08,
0xfc, 0x2b, 0xbe, 0x76, 0x55, 0x2c, 0x10, 0x08, 0x32, 0x30, 0x53, 0x4b, 0x10, 0x08, 0x52, 0x3f,
0x62, 0x30, 0x54, 0x10, 0x08, 0x32, 0x3e, 0x53, 0xd3, 0x77, 0x10, 0x05, 0xfc, 0x2b, 0x9e, 0x76,
0x26, 0x1a, 0x10, 0x07, 0x32, 0xcb, 0x2d, 0x7b, 0x3c, 0xcb, 0x2f, 0x19, 0x46, 0x10, 0x05, 0x72,
0x18, 0x29, 0x5f, 0x1a, 0xff, 0x10, 0x08, 0xf4, 0x2b, 0x84, 0x7d, 0x10, 0x06, 0x2b, 0x7c, 0x3b,
0xcd, 0x6e, 0x87, 0x8d, 0x10, 0x09, 0x2b, 0x8a, 0x51, 0x56, 0x10, 0x06, 0x2b, 0x37, 0x49, 0x85,
0x8c, 0x8d, 0x6e, 0xfd, 0x2c, 0x10, 0x06, 0x2b, 0x7c, 0x5a, 0x87, 0x10, 0x05, 0x2b, 0xc0, 0x28,
0x2f, 0x6d, 0x5f, 0xf3, 0x10, 0x08, 0x1d, 0xd2, 0x5f, 0x21, 0x76, 0x1a, 0x36, 0xbc, 0x10, 0x04,
0xfc, 0x59, 0x1a, 0x6c, 0x10, 0x08, 0x52, 0xbc, 0x1a, 0xc4, 0x76, 0x5f, 0x21, 0xc4, 0xbc, 0x10,
0x0a, 0x42, 0xfe, 0xa7, 0x20, 0xbc, 0x10,
};
static const uint16_t mf_rlefont_DejaVuSans12bw_glyph_offsets_0[95] PROGMEM = {
0x0000, 0x0003, 0x0009, 0x000e, 0x001e, 0x002f, 0x0043, 0x0053,
0x0057, 0x0060, 0x006a, 0x0072, 0x007a, 0x0080, 0x0085, 0x008a,
0x0092, 0x009c, 0x00a3, 0x00af, 0x00b8, 0x00c4, 0x00cf, 0x00de,
0x00e8, 0x00f2, 0x00ff, 0x0106, 0x010d, 0x0119, 0x0121, 0x012d,
0x0136, 0x014c, 0x0153, 0x0158, 0x015b, 0x0166, 0x016b, 0x0171,
0x017c, 0x0186, 0x018a, 0x0190, 0x019e, 0x01a3, 0x01b6, 0x01bf,
0x01c4, 0x01c9, 0x01d0, 0x01da, 0x01e4, 0x01eb, 0x01f0, 0x01fc,
0x0206, 0x0213, 0x021d, 0x0228, 0x022f, 0x0238, 0x023f, 0x0245,
0x024b, 0x024e, 0x0252, 0x0258, 0x0261, 0x0269, 0x026d, 0x0276,
0x0280, 0x0288, 0x028d, 0x0294, 0x02a0, 0x02a6, 0x02af, 0x02b7,
0x02bd, 0x02c4, 0x02cb, 0x02d3, 0x02de, 0x02e6, 0x02ec, 0x02f5,
0x02fb, 0x0306, 0x030c, 0x0315, 0x031f, 0x0325, 0x0330,
};
static const uint8_t mf_rlefont_DejaVuSans12bw_glyph_data_1[812] PROGMEM = {
0x04, 0x00, 0x10, 0x05, 0x00, 0x72, 0x73, 0x1a, 0x10, 0x08, 0xf4, 0x59, 0x1e, 0x4a, 0x0f, 0x8e,
0x70, 0x26, 0x70, 0x46, 0x75, 0x10, 0x08, 0x1d, 0xca, 0x6e, 0x00, 0x22, 0xa2, 0x5f, 0x1e, 0xe3,
0x10, 0x08, 0x2b, 0xe8, 0x49, 0x3e, 0x2d, 0x7b, 0x7b, 0x7b, 0xf3, 0x2d, 0x20, 0x10, 0x08, 0x88,
0x7f, 0x7e, 0x7e, 0xd1, 0x22, 0xf3, 0xc5, 0x54, 0x10, 0x04, 0x1d, 0x1a, 0x1c, 0x23, 0x1a, 0x10,
0x06, 0x2e, 0xf3, 0x3b, 0xc5, 0x76, 0x26, 0x81, 0x34, 0xaa, 0x3b, 0x9a, 0x26, 0x28, 0x47, 0x10,
0x06, 0x2e, 0xee, 0x10, 0x0c, 0xf4, 0x64, 0xc4, 0xa7, 0xc5, 0xba, 0x30, 0x98, 0x94, 0xac, 0x19,
0x98, 0x94, 0x9c, 0x38, 0x20, 0xb5, 0x5e, 0x10, 0x06, 0x2e, 0x66, 0x26, 0x3b, 0xa2, 0x2d, 0x7b,
0xf3, 0x40, 0xc2, 0x10, 0x07, 0x2e, 0x88, 0xc5, 0xb4, 0xca, 0x19, 0x87, 0xe7, 0x8c, 0x10, 0x0a,
0x42, 0x38, 0xc7, 0x5f, 0x10, 0x04, 0x48, 0x42, 0xf2, 0x10, 0x0c, 0x1d, 0x78, 0xc4, 0xca, 0xca,
0xbc, 0x38, 0x94, 0x95, 0xc5, 0xc1, 0xc8, 0x98, 0x96, 0xbc, 0xbc, 0x20, 0xb5, 0x5e, 0x10, 0x06,
0x2e, 0xf3, 0x10, 0x06, 0x2e, 0xca, 0x6e, 0x87, 0x10, 0x0a, 0x2b, 0x2d, 0x36, 0x6f, 0x38, 0x5f,
0x48, 0x26, 0x38, 0x10, 0x05, 0x52, 0xbc, 0x21, 0x22, 0xf2, 0x10, 0x05, 0x52, 0xbc, 0x28, 0x36,
0x81, 0x49, 0xc0, 0x10, 0x06, 0x23, 0x6d, 0x10, 0x08, 0x52, 0x3f, 0x49, 0x84, 0x2d, 0x38, 0x54,
0x10, 0x08, 0x2e, 0xa2, 0x2d, 0x41, 0xc4, 0xb2, 0x3b, 0x9b, 0x76, 0x44, 0x6a, 0x70, 0x26, 0x70,
0x10, 0x04, 0x32, 0x73, 0x10, 0x06, 0x52, 0x42, 0x3f, 0x18, 0x10, 0x05, 0x52, 0x9c, 0x77, 0x3b,
0xbc, 0x10, 0x06, 0x2e, 0x66, 0x1b, 0x7b, 0x7b, 0x6f, 0xff, 0x31, 0xc2, 0x10, 0x07, 0x48, 0x32,
0x43, 0xdc, 0x81, 0x85, 0xc4, 0x9f, 0x8c, 0x10, 0x0c, 0x83, 0x37, 0x8f, 0x10, 0x0c, 0x83, 0x4b,
0x2c, 0x4c, 0x2d, 0x3d, 0xcc, 0xbc, 0x10, 0x0c, 0x2e, 0x30, 0xc7, 0x19, 0xc5, 0x9c, 0x70, 0x5e,
0x37, 0x8f, 0x10, 0x06, 0xfc, 0x72, 0x73, 0x3b, 0x3a, 0x5f, 0x6f, 0xff, 0x10, 0x08, 0x1c, 0x92,
0x40, 0x67, 0x7a, 0x93, 0x10, 0x08, 0x20, 0x2f, 0x31, 0x67, 0x7a, 0x93, 0x10, 0x08, 0x69, 0x37,
0x23, 0x67, 0x7a, 0x93, 0x10, 0x08, 0x51, 0x79, 0x23, 0x67, 0x7a, 0x93, 0x10, 0x08, 0x36, 0x8c,
0x23, 0x67, 0x7a, 0x93, 0x10, 0x08, 0x69, 0x7a, 0x87, 0x8d, 0x6e, 0x93, 0x10, 0x0c, 0x2e, 0xc0,
0x30, 0xac, 0x3b, 0x98, 0x6e, 0xf3, 0xa7, 0x7b, 0xd3, 0x2d, 0x7f, 0xfc, 0x38, 0x10, 0x08, 0x74,
0xf6, 0x18, 0x10, 0x08, 0x49, 0x1b, 0x23, 0x38, 0x6b, 0x10, 0x08, 0x20, 0x2f, 0x40, 0x38, 0x6b,
0x10, 0x08, 0x69, 0x37, 0x31, 0x38, 0x6b, 0x10, 0x08, 0x3c, 0xac, 0x23, 0x38, 0x6b, 0x10, 0x03,
0xc8, 0x2f, 0x48, 0x5f, 0x6c, 0x10, 0x03, 0xcc, 0x26, 0x73, 0x6c, 0x10, 0x03, 0xf2, 0x36, 0x9f,
0x58, 0x75, 0x10, 0x03, 0x3c, 0x27, 0x58, 0x75, 0x10, 0x09, 0x64, 0xfc, 0x94, 0x7f, 0x45, 0xc0,
0x80, 0x37, 0x5e, 0x10, 0x09, 0x51, 0x71, 0x4f, 0x68, 0x00, 0xac, 0x3a, 0x65, 0x10, 0x09, 0x19,
0x2f, 0x40, 0x63, 0x5c, 0x10, 0x09, 0x1b, 0x2f, 0x31, 0x63, 0x5c, 0x10, 0x09, 0x20, 0x36, 0x98,
0x23, 0x63, 0x5c, 0x10, 0x09, 0x51, 0x71, 0x1c, 0x63, 0x5c, 0x10, 0x09, 0x2a, 0xce, 0x23, 0x63,
0x5c, 0x10, 0x0a, 0x2b, 0x1f, 0x7f, 0x7e, 0x50, 0x22, 0xfe, 0x7e, 0x7f, 0x51, 0x10, 0x09, 0x1d,
0xdb, 0x2d, 0x7f, 0x4f, 0x19, 0xce, 0x19, 0x43, 0x35, 0x68, 0xc4, 0x95, 0xc4, 0xbe, 0x10, 0x09,
0x20, 0x1e, 0x3b, 0x3a, 0x80, 0x57, 0x10, 0x09, 0x20, 0x3b, 0xac, 0x2a, 0x19, 0x80, 0x57, 0x10,
0x09, 0x2a, 0xee, 0x2a, 0x19, 0x80, 0x57, 0x10, 0x07, 0x19, 0x22, 0x3b, 0x1f, 0x7f, 0x8e, 0x6f,
0x70, 0xc4, 0x61, 0x10, 0x08, 0x72, 0x30, 0x90, 0x54, 0x10, 0x08, 0x3f, 0xe7, 0x2d, 0x7b, 0x7b,
0x81, 0x6a, 0x81, 0x95, 0x2c, 0x2d, 0x49, 0xe1, 0x10, 0x08, 0x00, 0x82, 0x31, 0x5b, 0x10, 0x08,
0x00, 0x89, 0x31, 0x5b, 0x10, 0x08, 0x24, 0xd6, 0x23, 0x5b, 0x10, 0x08, 0x3f, 0x79, 0x23, 0x5b,
0x10, 0x08, 0x2e, 0xd6, 0x23, 0x5b, 0x10, 0x08, 0x69, 0x7a, 0x87, 0x23, 0x5b, 0x10, 0x0c, 0x32,
0xbb, 0xc7, 0xa6, 0x34, 0xc5, 0x39, 0x38, 0xc7, 0x95, 0x8c, 0xa7, 0xb4, 0xc1, 0x10, 0x07, 0x32,
0xeb, 0x76, 0x50, 0x61, 0x43, 0xdc, 0x28, 0x18, 0x10, 0x08, 0x82, 0x23, 0x5d, 0x10, 0x08, 0x89,
0x23, 0x5d, 0x10, 0x08, 0x24, 0xd6, 0x23, 0x5d, 0x10, 0x08, 0x2e, 0xd8, 0x23, 0x5d, 0x10, 0x03,
0x23, 0x19, 0x2f, 0x58, 0x10, 0x03, 0x3f, 0x2f, 0x58, 0x10, 0x03, 0xfc, 0x23, 0xbc, 0x36, 0x9f,
0x58, 0x10, 0x03, 0x59, 0x50, 0x58, 0x10, 0x08, 0x52, 0x94, 0x46, 0xc8, 0x47, 0x1b, 0xd5, 0xc4,
0x7c, 0x2d, 0x34, 0xe2, 0x10, 0x08, 0x3f, 0x43, 0xb8, 0x40, 0xbe, 0x76, 0x55, 0x2c, 0x10, 0x08,
0x82, 0x31, 0x25, 0x53, 0x4b, 0x10, 0x08, 0x89, 0x31, 0x25, 0x53, 0x4b, 0x10, 0x08, 0x24, 0x96,
0x3c, 0x47, 0x53, 0x4b, 0x10, 0x08, 0x3f, 0x79, 0x31, 0x25, 0x53, 0x4b, 0x10, 0x08, 0x2e, 0x96,
0x3c, 0x47, 0x53, 0x4b, 0x10, 0x0a, 0x1d, 0x59, 0x23, 0x38, 0x44, 0x1e, 0x10, 0x08, 0x32, 0xe3,
0x2d, 0x34, 0xad, 0x2d, 0x85, 0xc4, 0xa9, 0x2d, 0x34, 0xe3, 0x10, 0x08, 0x82, 0x31, 0x84, 0x7d,
0x10, 0x08, 0x89, 0x31, 0x84, 0x7d, 0x10, 0x08, 0x24, 0xd6, 0x31, 0x84, 0x7d, 0x10, 0x08, 0x2e,
0xd6, 0x31, 0x84, 0x7d, 0x10, 0x06, 0x89, 0xfc, 0x2a, 0x7c, 0x5a, 0x87, 0x10, 0x08, 0x2a, 0x1a,
0x62, 0x30, 0x54, 0x10, 0x06, 0x88, 0xe5, 0x2a, 0x7c, 0x5a, 0x87, 0x10,
};
static const uint16_t mf_rlefont_DejaVuSans12bw_glyph_offsets_1[96] PROGMEM = {
0x0000, 0x0003, 0x0009, 0x0016, 0x0021, 0x002e, 0x0039, 0x0040,
0x0050, 0x0054, 0x0068, 0x0074, 0x007f, 0x0085, 0x008a, 0x009f,
0x00a3, 0x00a9, 0x00b4, 0x00bb, 0x00c4, 0x00c8, 0x00d1, 0x00e1,
0x00e5, 0x00eb, 0x00f2, 0x00fd, 0x0108, 0x010d, 0x0117, 0x0123,
0x012d, 0x0135, 0x013d, 0x0145, 0x014d, 0x0155, 0x015d, 0x016e,
0x0173, 0x017a, 0x0181, 0x0188, 0x018f, 0x0196, 0x019c, 0x01a3,
0x01a9, 0x01b4, 0x01be, 0x01c5, 0x01cc, 0x01d4, 0x01db, 0x01e2,
0x01ee, 0x01ff, 0x01ff, 0x0207, 0x0210, 0x0218, 0x0224, 0x022a,
0x0239, 0x023f, 0x0245, 0x024b, 0x0251, 0x0257, 0x025e, 0x026e,
0x0279, 0x027e, 0x0283, 0x0289, 0x028f, 0x0295, 0x029a, 0x02a2,
0x02a7, 0x02b5, 0x02bf, 0x02c6, 0x02cd, 0x02d5, 0x02dd, 0x02e5,
0x02ed, 0x02fb, 0x0301, 0x0307, 0x030e, 0x0315, 0x031d, 0x0324,
};
static const uint8_t mf_rlefont_DejaVuSans12bw_glyph_data_2[27] PROGMEM = {
0x04, 0x48, 0x42, 0xf2, 0x10, 0x08, 0x3c, 0x42, 0x38, 0x10, 0x06, 0x48, 0x42, 0xc2, 0x10, 0x0c,
0x48, 0x42, 0xc2, 0x38, 0x10, 0x0c, 0x48, 0x42, 0x38, 0x38, 0x10,
};
static const uint16_t mf_rlefont_DejaVuSans12bw_glyph_offsets_2[6] PROGMEM = {
0x0000, 0x0000, 0x0005, 0x000a, 0x000f, 0x0015,
};
static const struct mf_rlefont_char_range_s mf_rlefont_DejaVuSans12bw_char_ranges[] = {
{32, 95, mf_rlefont_DejaVuSans12bw_glyph_offsets_0, mf_rlefont_DejaVuSans12bw_glyph_data_0},
{160, 96, mf_rlefont_DejaVuSans12bw_glyph_offsets_1, mf_rlefont_DejaVuSans12bw_glyph_data_1},
{8208, 6, mf_rlefont_DejaVuSans12bw_glyph_offsets_2, mf_rlefont_DejaVuSans12bw_glyph_data_2},
};
const struct mf_rlefont_s mf_rlefont_DejaVuSans12bw = {
{
"DejaVu Sans Book 12",
"DejaVuSans12bw",
13, /* width */
15, /* height */
3, /* min x advance */
13, /* max x advance */
1, /* baseline x */
12, /* baseline y */
14, /* line height */
2, /* flags */
63, /* fallback character */
&mf_rlefont_character_width,
&mf_rlefont_render_character,
},
4, /* version */
mf_rlefont_DejaVuSans12bw_dictionary_data,
mf_rlefont_DejaVuSans12bw_dictionary_offsets,
59, /* rle dict count */
124, /* total dict count */
3, /* char range count */
mf_rlefont_DejaVuSans12bw_char_ranges,
};
#ifdef MF_INCLUDED_FONTS
/* List entry for searching fonts by name. */
static const struct mf_font_list_s mf_rlefont_DejaVuSans12bw_listentry = {
MF_INCLUDED_FONTS,
(struct mf_font_s*)&mf_rlefont_DejaVuSans12bw
};
#undef MF_INCLUDED_FONTS
#define MF_INCLUDED_FONTS (&mf_rlefont_DejaVuSans12bw_listentry)
#endif
/* End of automatically generated font definition for DejaVuSans12bw. */

View File

@ -0,0 +1,15 @@
#ifndef FONTS_H
#define FONTS_H
#ifdef __cplusplus
extern "C" {
#endif
#include "DejaVuSans12bw.c"
#include "DejaVuSans12.c"
#ifdef __cplusplus
}
#endif
#endif /* FONTS_H */

168
tests/pkg/mcufont/main.c Normal file
View File

@ -0,0 +1,168 @@
/*
* Copyright (C) 2023 Koen Zandberg
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @ingroup tests
* @{
*
* @file
* @brief Test application for the MCUFont package
*
* @author Koen Zandberg <koen@bergzand.net>
*
* @}
*/
#include <stdio.h>
#include <string.h>
#include "mcufont.h"
#include "disp_dev.h"
#include "byteorder.h"
#define ENABLE_DEBUG 0
#include "debug.h"
#ifdef MODULE_DISP_DEV
#ifdef LCD_SCREEN_WIDTH
#define DISPLAY_BUFFER_MAX_SIZE (LCD_SCREEN_WIDTH)
#else
#define DISPLAY_BUFFER_MAX_SIZE (320)
#endif
static uint16_t display_buffer[DISPLAY_BUFFER_MAX_SIZE] = { 0 };
#endif
#define PIXBUF_NUM_ROWS 15
#define PIXBUF_NUM_COLS 16
#define PIXBUF_ALPHA_THRESHOLD 80
#define MCUFONT_FIG_TEST_FONT mf_rlefont_DejaVuSans12bw
#define MCUFONT_DISP_TEST_FONT mf_rlefont_DejaVuSans12
extern const struct mf_rlefont_s MCUFONT_FIG_TEST_FONT;
extern const struct mf_rlefont_s MCUFONT_DISP_TEST_FONT;
static const char input[] = "Hello, RIOT!";
static uint8_t fig_buf[PIXBUF_NUM_ROWS][PIXBUF_NUM_COLS] = { 0 };
static disp_dev_reg_t *init_display(void)
{
disp_dev_reg_t *disp_dev = NULL;
#ifdef MODULE_DISP_DEV
/* Use the first screen */
disp_dev = disp_dev_reg_find_screen(0);
if (!disp_dev) {
puts("No screen found!");
return NULL;
}
disp_dev_backlight_on();
/* Clear the screen */
disp_dev_area_t area;
for (uint16_t y = 0; y < disp_dev_height(disp_dev->dev); y ++) {
area.x1 = 0;
area.x2 = disp_dev_width(disp_dev->dev) - 1;
area.y1 = area.y2 = y;
disp_dev_map(disp_dev->dev, &area, display_buffer);
}
#endif
return disp_dev;
}
static void fig_callback(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *state)
{
(void)state;
DEBUG("[draw] x: %"PRIi16", y: %"PRIi16", count: %u, color: %u\n", x, y, count, alpha);
if (y >= PIXBUF_NUM_ROWS || ((x + count) >= (PIXBUF_NUM_COLS * 8))) {
return;
}
while (count--) {
uint8_t bitpos = x % 8;
uint8_t bytepos = x / 8;
if (alpha > PIXBUF_ALPHA_THRESHOLD) {
fig_buf[y][bytepos] |= (1 << (7 - bitpos));
}
x++;
}
}
static uint16_t _alpha2rgb(uint8_t alpha)
{
/* Assumes RGB 565 */
return (alpha / 8) | ((alpha / 7) << 5) | ((alpha / 8) << 11);
}
static void disp_callback(int16_t x, int16_t y, uint8_t count, uint8_t alpha, void *disp)
{
DEBUG("[disp_draw] x: %"PRIi16", y: %"PRIi16", count: %u, color: %u\n", x, y, count, alpha);
while (count--) {
uint16_t color = htons(_alpha2rgb(alpha));
disp_dev_area_t area = {
.x1 = x,
.y1 = y,
.x2 = x,
.y2 = y,
};
disp_dev_map(disp, &area, &color);
x++;
}
}
static void print_fig_buf(void)
{
for (size_t y = 0; y < PIXBUF_NUM_ROWS; y++) {
for (size_t x = 0; x < PIXBUF_NUM_COLS; x++) {
for (int bitpos = 7; bitpos >= 0; bitpos--) {
if (fig_buf[y][x] & (1 << bitpos)) {
printf("");
}
else {
printf(" ");
}
}
}
puts("");
}
}
static uint8_t char_callback(int16_t x0, int16_t y0, mf_char character, void *state)
{
return mf_render_character(&MCUFONT_FIG_TEST_FONT.font, x0, y0, character, &fig_callback, state);
}
static uint8_t disp_char_callback(int16_t x0, int16_t y0, mf_char character, void *state)
{
return mf_render_character(&MCUFONT_DISP_TEST_FONT.font, x0, y0, character, &disp_callback, state);
}
int main(void)
{
puts("mcufont package test application");
mf_render_aligned(
&MCUFONT_FIG_TEST_FONT.font,
0, 0,
MF_ALIGN_LEFT,
input, strlen(input),
&char_callback, NULL);
print_fig_buf();
if (IS_ACTIVE(MODULE_DISP_DEV)) {
disp_dev_reg_t *display = init_display();
puts("mcufont package test application");
int16_t width = mf_get_string_width(&MCUFONT_DISP_TEST_FONT.font, input, 0, true);
mf_render_aligned(
&MCUFONT_DISP_TEST_FONT.font,
(disp_dev_width(display->dev) - width) / 2,
(disp_dev_height(display->dev) - MCUFONT_DISP_TEST_FONT.font.line_height) / 2,
MF_ALIGN_LEFT,
input, strlen(input),
&disp_char_callback, display->dev);
}
return 0;
}

View File

@ -0,0 +1,34 @@
#!/usr/bin/env python3
# Copyright (C) 2023 Koen Zandberg
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
import sys
from testrunner import run
FONT_RENDER = """
"""
def testfunc(child):
for line in FONT_RENDER.splitlines():
child.expect_exact(line)
print("\nSUCCESS")
if __name__ == "__main__":
sys.exit(run(testfunc))