Add icon rendering and list scroll gesture support

Implement orientation-aware icon rendering using freeink::Icon format that applies rotation transforms per-pixel. Add wasListScroll helper for touch-based list navigation with swipe gestures. Switch vertical centering from x-height to cap-height for better visual alignment with capital-led UI labels.
This commit is contained in:
Justin Mitchell
2026-06-15 23:37:49 -04:00
parent e103cdfd11
commit 4a5b45409f
20 changed files with 339 additions and 96 deletions
+4 -4
View File
@@ -50,10 +50,10 @@ ThemeMetrics scaleThemeMetrics(const ThemeMetrics& b, float s) {
m.homeMenuTopOffset = sp(b.homeMenuTopOffset, s);
m.buttonHintsHeight = sp(b.buttonHintsHeight, s);
m.sideButtonHintsWidth = sp(b.sideButtonHintsWidth, s);
m.progressBarHeight = sp(b.progressBarHeight, s);
m.progressBarMarginTop = sp(b.progressBarMarginTop, s);
m.statusBarHorizontalMargin = sp(b.statusBarHorizontalMargin, s);
m.statusBarVerticalMargin = sp(b.statusBarVerticalMargin, s);
// Status-bar metrics are intentionally NOT scaled: it's compact reader chrome
// (with the un-remapped SMALL font), and scaling it would eat reading area and
// bloat the customise-status-bar preview. progressBarHeight / progressBarMarginTop
// / statusBar*Margin keep their base values.
m.keyboardKeyWidth = sp(b.keyboardKeyWidth, s);
m.keyboardKeyHeight = sp(b.keyboardKeyHeight, s);
m.keyboardKeySpacing = sp(b.keyboardKeySpacing, s);
+126
View File
@@ -0,0 +1,126 @@
#pragma once
#include "Icon.h"
// Generated by libs/assets/Icons/tools/gen_icons.py from Lucide SVGs. Do not edit.
// Sizes: 24, 32, 40, 48px. Icons: 12.
// folder (lucide: folder)
static const uint8_t icon_folder_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xC0, 0x3F, 0xFF, 0x9F, 0x9F, 0xFF, 0x9F, 0xC0, 0x07, 0x9F, 0xE0, 0x03, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_folder_24 = {24, 24, 12, icon_folder_24_bits};
static const uint8_t icon_folder_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xC7, 0xE1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF8, 0x00, 0x07, 0x8F, 0xFC, 0x00, 0x03, 0x8F, 0xFF, 0xFF, 0xE3, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0xCF, 0xFF, 0xFF, 0xF3, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_folder_32 = {32, 32, 16, icon_folder_32_bits};
static const uint8_t icon_folder_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x00, 0x3F, 0xFF, 0xFF, 0xC7, 0xFE, 0x1F, 0xFF, 0xFF, 0xC7, 0xFE, 0x00, 0x00, 0x3F, 0xC7, 0xFF, 0x00, 0x00, 0x0F, 0xC7, 0xFF, 0x80, 0x00, 0x07, 0xC7, 0xFF, 0xE0, 0x00, 0x03, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC3, 0xFF, 0xFF, 0xFF, 0xC3, 0xE0, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_folder_40 = {40, 40, 19, icon_folder_40_bits};
static const uint8_t icon_folder_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0x83, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xE0, 0x00, 0x00, 0x3F, 0xC3, 0xFF, 0xE0, 0x00, 0x00, 0x0F, 0xC3, 0xFF, 0xF0, 0x00, 0x00, 0x07, 0xC3, 0xFF, 0xFC, 0x00, 0x00, 0x07, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_folder_48 = {48, 48, 24, icon_folder_48_bits};
// text (lucide: file-text)
static const uint8_t icon_text_24_bits[] = {0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xE7, 0xF8, 0x3F, 0xE7, 0xF9, 0x1F, 0xE7, 0xF9, 0x8F, 0xE7, 0xF9, 0xC7, 0xE7, 0xF8, 0x07, 0xE6, 0x1C, 0x07, 0xE6, 0x1F, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE6, 0x00, 0x67, 0xE6, 0x00, 0x67, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE6, 0x00, 0x67, 0xE6, 0x00, 0x67, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_text_24 = {24, 24, 12, icon_text_24_bits};
static const uint8_t icon_text_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xF1, 0xFF, 0x80, 0xFF, 0xF1, 0xFF, 0x88, 0x7F, 0xF1, 0xFF, 0x8C, 0x3F, 0xF1, 0xFF, 0x8E, 0x1F, 0xF1, 0xFF, 0x8F, 0x1F, 0xF1, 0xFF, 0x80, 0x0F, 0xF1, 0xFF, 0xC0, 0x0F, 0xF1, 0xC3, 0xE0, 0x0F, 0xF1, 0xC3, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xC0, 0x03, 0x8F, 0xF1, 0x80, 0x01, 0x8F, 0xF1, 0xC0, 0x03, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xC0, 0x03, 0x8F, 0xF1, 0x80, 0x01, 0x8F, 0xF1, 0xC0, 0x03, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF8, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_text_32 = {32, 32, 16, icon_text_32_bits};
static const uint8_t icon_text_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x00, 0x0F, 0xFF, 0xF8, 0x7F, 0xFC, 0x07, 0xFF, 0xF8, 0xFF, 0xFC, 0x43, 0xFF, 0xF8, 0xFF, 0xFC, 0x61, 0xFF, 0xF8, 0xFF, 0xFC, 0x70, 0xFF, 0xF8, 0xFF, 0xFC, 0x78, 0x7F, 0xF8, 0xFF, 0xFC, 0x7C, 0x3F, 0xF8, 0xFF, 0xFC, 0x7E, 0x1F, 0xF8, 0xFF, 0xFC, 0x00, 0x1F, 0xF8, 0xF8, 0x7C, 0x00, 0x1F, 0xF8, 0xF0, 0x3E, 0x00, 0x1F, 0xF8, 0xF0, 0x3F, 0xFF, 0x1F, 0xF8, 0xF8, 0x7F, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0xF8, 0xF0, 0x00, 0x0F, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x7F, 0xFF, 0xFE, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_text_40 = {40, 40, 20, icon_text_40_bits};
static const uint8_t icon_text_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xC0, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xC2, 0x0F, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0x83, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC1, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xE0, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xF0, 0x7F, 0xFC, 0x3F, 0xFF, 0xC3, 0xF8, 0x7F, 0xFC, 0x3F, 0xFF, 0xC0, 0x00, 0x3F, 0xFC, 0x3F, 0xFF, 0xC0, 0x00, 0x3F, 0xFC, 0x3E, 0x07, 0xE0, 0x00, 0x3F, 0xFC, 0x3C, 0x03, 0xF0, 0x00, 0x3F, 0xFC, 0x3C, 0x03, 0xFF, 0xFC, 0x3F, 0xFC, 0x3E, 0x07, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3E, 0x00, 0x00, 0x7C, 0x3F, 0xFC, 0x3C, 0x00, 0x00, 0x3C, 0x3F, 0xFC, 0x3C, 0x00, 0x00, 0x3C, 0x3F, 0xFC, 0x3E, 0x00, 0x00, 0x7C, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3E, 0x00, 0x00, 0x7C, 0x3F, 0xFC, 0x3C, 0x00, 0x00, 0x3C, 0x3F, 0xFC, 0x3C, 0x00, 0x00, 0x3C, 0x3F, 0xFC, 0x3E, 0x00, 0x00, 0x7C, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x1F, 0xFF, 0xFF, 0xF8, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_text_48 = {48, 48, 24, icon_text_48_bits};
// image (lucide: image)
static const uint8_t icon_image_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xCF, 0xFF, 0xF3, 0xCF, 0xFF, 0xF3, 0xCF, 0x3F, 0xF3, 0xCE, 0x1F, 0xF3, 0xCC, 0xCF, 0xF3, 0xCC, 0xCF, 0xF3, 0xCE, 0x1F, 0x73, 0xCF, 0x3C, 0x13, 0xCF, 0xF8, 0x83, 0xCF, 0xF1, 0xC3, 0xCF, 0xE3, 0xE3, 0xCF, 0xC7, 0xF3, 0xCF, 0x8F, 0xF3, 0xCF, 0x1F, 0xF3, 0xCE, 0x3F, 0xF3, 0xCC, 0x7F, 0xF3, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_image_24 = {24, 24, 12, icon_image_24_bits};
static const uint8_t icon_image_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x07, 0xE3, 0xFF, 0xFF, 0xC7, 0xE7, 0xFF, 0xFF, 0xE7, 0xE7, 0xFF, 0xFF, 0xE7, 0xE7, 0xC3, 0xFF, 0xE7, 0xE7, 0x81, 0xFF, 0xE7, 0xE7, 0x00, 0xFF, 0xE7, 0xE7, 0x18, 0xFF, 0xE7, 0xE7, 0x18, 0xFF, 0xE7, 0xE7, 0x00, 0xFF, 0xE7, 0xE7, 0x81, 0xF0, 0xE7, 0xE7, 0xC3, 0xE0, 0x67, 0xE7, 0xFF, 0xC0, 0x07, 0xE7, 0xFF, 0x8F, 0x07, 0xE7, 0xFF, 0x1F, 0x87, 0xE7, 0xFE, 0x3F, 0xC7, 0xE7, 0xFC, 0x7F, 0xC7, 0xE7, 0xF8, 0xFF, 0xE7, 0xE7, 0xF1, 0xFF, 0xE7, 0xE7, 0xE3, 0xFF, 0xE7, 0xE7, 0xC7, 0xFF, 0xE7, 0xE7, 0x8F, 0xFF, 0xE7, 0xE2, 0x0F, 0xFF, 0xC7, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_image_32 = {32, 32, 16, icon_image_32_bits};
static const uint8_t icon_image_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF1, 0xFF, 0xFF, 0xFF, 0x8F, 0xE1, 0xFF, 0xFF, 0xFF, 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0x87, 0xE1, 0xF8, 0x7F, 0xFF, 0x87, 0xE1, 0xF0, 0x3F, 0xFF, 0x87, 0xE1, 0xE0, 0x1F, 0xFF, 0x87, 0xE1, 0xC3, 0x0F, 0xFF, 0x87, 0xE1, 0xC7, 0x8F, 0xFF, 0x87, 0xE1, 0xC7, 0x8F, 0xFF, 0x87, 0xE1, 0xC3, 0x0F, 0xFF, 0x87, 0xE1, 0xE0, 0x1F, 0xC7, 0x87, 0xE1, 0xF0, 0x3F, 0x01, 0x87, 0xE1, 0xF8, 0x7E, 0x00, 0x87, 0xE1, 0xFF, 0xFC, 0x00, 0x07, 0xE1, 0xFF, 0xF8, 0x38, 0x07, 0xE1, 0xFF, 0xF0, 0x7C, 0x07, 0xE1, 0xFF, 0xE0, 0xFE, 0x07, 0xE1, 0xFF, 0xC1, 0xFF, 0x07, 0xE1, 0xFF, 0x83, 0xFF, 0x87, 0xE1, 0xFF, 0x07, 0xFF, 0x87, 0xE1, 0xFE, 0x0F, 0xFF, 0x87, 0xE1, 0xFC, 0x1F, 0xFF, 0x87, 0xE1, 0xF8, 0x3F, 0xFF, 0x87, 0xE1, 0xF0, 0x7F, 0xFF, 0x87, 0xE1, 0xE0, 0xFF, 0xFF, 0x87, 0xF1, 0xC1, 0xFF, 0xFF, 0x8F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_image_40 = {40, 40, 20, icon_image_40_bits};
static const uint8_t icon_image_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x7F, 0xFF, 0xFF, 0xFE, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0x0F, 0xFF, 0xFF, 0x0F, 0xF0, 0xFC, 0x03, 0xFF, 0xFF, 0x0F, 0xF0, 0xF8, 0x01, 0xFF, 0xFF, 0x0F, 0xF0, 0xF8, 0x01, 0xFF, 0xFF, 0x0F, 0xF0, 0xF0, 0x60, 0xFF, 0xFF, 0x0F, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0x0F, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0x0F, 0xF0, 0xF0, 0x60, 0xFF, 0xFF, 0x0F, 0xF0, 0xF8, 0x01, 0xFF, 0xFF, 0x0F, 0xF0, 0xF8, 0x01, 0xFC, 0x0F, 0x0F, 0xF0, 0xFC, 0x03, 0xF8, 0x07, 0x0F, 0xF0, 0xFF, 0x0F, 0xF0, 0x03, 0x0F, 0xF0, 0xFF, 0xFF, 0xE0, 0x01, 0x0F, 0xF0, 0xFF, 0xFF, 0xC1, 0xE0, 0x0F, 0xF0, 0xFF, 0xFF, 0x83, 0xF0, 0x0F, 0xF0, 0xFF, 0xFF, 0x07, 0xF8, 0x0F, 0xF0, 0xFF, 0xFE, 0x0F, 0xFC, 0x0F, 0xF0, 0xFF, 0xFC, 0x1F, 0xFE, 0x0F, 0xF0, 0xFF, 0xF8, 0x3F, 0xFF, 0x0F, 0xF0, 0xFF, 0xF0, 0x7F, 0xFF, 0x0F, 0xF0, 0xFF, 0xE0, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xC1, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0x83, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0x07, 0xFF, 0xFF, 0x0F, 0xF0, 0xFE, 0x0F, 0xFF, 0xFF, 0x0F, 0xF0, 0xFC, 0x1F, 0xFF, 0xFF, 0x0F, 0xF0, 0xF8, 0x3F, 0xFF, 0xFF, 0x0F, 0xF0, 0x70, 0x7F, 0xFF, 0xFE, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_image_48 = {48, 48, 24, icon_image_48_bits};
// book (lucide: book-open)
static const uint8_t icon_book_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3C, 0x03, 0x80, 0x18, 0x01, 0x9F, 0xC3, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x80, 0x00, 0x01, 0xC0, 0x00, 0x03, 0xFF, 0xC3, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_book_24 = {24, 24, 11, icon_book_24_bits};
static const uint8_t icon_book_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xC0, 0x03, 0xC0, 0x01, 0x80, 0x03, 0x8F, 0xF0, 0x0F, 0xF1, 0x8F, 0xFC, 0x3F, 0xF1, 0x8F, 0xFC, 0x3F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0x8F, 0xFE, 0x7F, 0xF1, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_book_32 = {32, 32, 14, icon_book_32_bits};
static const uint8_t icon_book_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0xC0, 0x1F, 0xE0, 0x00, 0x7E, 0x00, 0x07, 0xC0, 0x00, 0x18, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xC7, 0xFF, 0x00, 0xFF, 0xE3, 0xC7, 0xFF, 0x81, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC0, 0x00, 0xC3, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_book_40 = {40, 40, 18, icon_book_40_bits};
static const uint8_t icon_book_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x1F, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x03, 0xC0, 0x00, 0x01, 0x80, 0x00, 0x03, 0xC3, 0xFF, 0xC0, 0x07, 0xFF, 0xC3, 0xC3, 0xFF, 0xF0, 0x0F, 0xFF, 0xC3, 0xC3, 0xFF, 0xF8, 0x1F, 0xFF, 0xC3, 0xC3, 0xFF, 0xF8, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC0, 0x00, 0x0C, 0x30, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_book_48 = {48, 48, 21, icon_book_48_bits};
// file (lucide: file)
static const uint8_t icon_file_24_bits[] = {0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0xFF, 0xF0, 0x00, 0x7F, 0xE7, 0xF8, 0x3F, 0xE7, 0xF9, 0x1F, 0xE7, 0xF9, 0x8F, 0xE7, 0xF9, 0xC7, 0xE7, 0xF8, 0x07, 0xE7, 0xFC, 0x07, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xE7, 0xFF, 0xE7, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_file_24 = {24, 24, 11, icon_file_24_bits};
static const uint8_t icon_file_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xF8, 0x00, 0x03, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xF1, 0xFF, 0x80, 0xFF, 0xF1, 0xFF, 0x88, 0x7F, 0xF1, 0xFF, 0x8C, 0x3F, 0xF1, 0xFF, 0x8E, 0x1F, 0xF1, 0xFF, 0x8F, 0x1F, 0xF1, 0xFF, 0x80, 0x0F, 0xF1, 0xFF, 0xC0, 0x0F, 0xF1, 0xFF, 0xE0, 0x0F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x8F, 0xF8, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_file_32 = {32, 32, 15, icon_file_32_bits};
static const uint8_t icon_file_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x00, 0x00, 0x1F, 0xFF, 0xFC, 0x00, 0x00, 0x0F, 0xFF, 0xF8, 0x7F, 0xFC, 0x07, 0xFF, 0xF8, 0xFF, 0xFC, 0x43, 0xFF, 0xF8, 0xFF, 0xFC, 0x61, 0xFF, 0xF8, 0xFF, 0xFC, 0x70, 0xFF, 0xF8, 0xFF, 0xFC, 0x78, 0x7F, 0xF8, 0xFF, 0xFC, 0x7C, 0x3F, 0xF8, 0xFF, 0xFC, 0x7E, 0x1F, 0xF8, 0xFF, 0xFC, 0x00, 0x1F, 0xF8, 0xFF, 0xFC, 0x00, 0x1F, 0xF8, 0xFF, 0xFE, 0x00, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0xFF, 0x1F, 0xF8, 0x7F, 0xFF, 0xFE, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_file_40 = {40, 40, 19, icon_file_40_bits};
static const uint8_t icon_file_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xC0, 0x1F, 0xFF, 0xFC, 0x3F, 0xFF, 0xC2, 0x0F, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0x83, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC1, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xE0, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xF0, 0x7F, 0xFC, 0x3F, 0xFF, 0xC3, 0xF8, 0x7F, 0xFC, 0x3F, 0xFF, 0xC0, 0x00, 0x3F, 0xFC, 0x3F, 0xFF, 0xC0, 0x00, 0x3F, 0xFC, 0x3F, 0xFF, 0xE0, 0x00, 0x3F, 0xFC, 0x3F, 0xFF, 0xF0, 0x00, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xFC, 0x1F, 0xFF, 0xFF, 0xF8, 0x3F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_file_48 = {48, 48, 23, icon_file_48_bits};
// recent (lucide: clock)
static const uint8_t icon_recent_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xFF, 0xFE, 0x00, 0x7F, 0xF8, 0x7E, 0x1F, 0xF1, 0xFF, 0x8F, 0xE3, 0xE7, 0xC7, 0xE7, 0xE7, 0xE7, 0xCF, 0xE7, 0xF3, 0xCF, 0xE7, 0xF3, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE7, 0xF9, 0x9F, 0xE1, 0xF9, 0x9F, 0xF8, 0x79, 0x9F, 0xFE, 0x79, 0xCF, 0xFF, 0xF3, 0xCF, 0xFF, 0xF3, 0xE7, 0xFF, 0xE7, 0xE3, 0xFF, 0xC7, 0xF1, 0xFF, 0x8F, 0xF8, 0x7E, 0x1F, 0xFE, 0x00, 0x7F, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_recent_24 = {24, 24, 11, icon_recent_24_bits};
static const uint8_t icon_recent_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFE, 0x07, 0xE0, 0x7F, 0xFC, 0x3F, 0xFC, 0x3F, 0xF8, 0x7F, 0xFE, 0x1F, 0xF1, 0xFE, 0x7F, 0x8F, 0xF1, 0xFE, 0x7F, 0x8F, 0xE3, 0xFE, 0x7F, 0xC7, 0xC7, 0xFE, 0x7F, 0xE7, 0xC7, 0xFE, 0x7F, 0xE3, 0xCF, 0xFE, 0x7F, 0xE3, 0xCF, 0xFE, 0x7F, 0xF3, 0xCF, 0xFE, 0x7F, 0xF3, 0x8F, 0xFE, 0x3F, 0xF1, 0x8F, 0xFE, 0x0F, 0xF1, 0xCF, 0xFF, 0x03, 0xF3, 0xCF, 0xFF, 0xC1, 0xF3, 0xC7, 0xFF, 0xF3, 0xE3, 0xC7, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xE7, 0xE3, 0xFF, 0xFF, 0xC7, 0xF1, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0x0F, 0xF8, 0x7F, 0xFE, 0x1F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFE, 0x07, 0xE0, 0x7F, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_recent_32 = {32, 32, 15, icon_recent_32_bits};
static const uint8_t icon_recent_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0xFF, 0x01, 0xFF, 0xFF, 0x07, 0xFF, 0xE0, 0xFF, 0xFE, 0x0F, 0xFF, 0xF0, 0x7F, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0xF8, 0x7F, 0xE7, 0xFE, 0x1F, 0xF0, 0xFF, 0xC3, 0xFF, 0x0F, 0xF0, 0xFF, 0xC3, 0xFF, 0x0F, 0xE1, 0xFF, 0xC3, 0xFF, 0x87, 0xE3, 0xFF, 0xC3, 0xFF, 0xC7, 0xE3, 0xFF, 0xC3, 0xFF, 0xC7, 0xC3, 0xFF, 0xC3, 0xFF, 0xC3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC3, 0xFF, 0xE3, 0xC7, 0xFF, 0xC1, 0xFF, 0xE3, 0xC7, 0xFF, 0xE0, 0x7F, 0xE3, 0xC7, 0xFF, 0xE0, 0x1F, 0xE3, 0xC7, 0xFF, 0xF8, 0x0F, 0xE3, 0xC7, 0xFF, 0xFE, 0x0F, 0xE3, 0xC3, 0xFF, 0xFF, 0x8F, 0xC3, 0xE3, 0xFF, 0xFF, 0xFF, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xC7, 0xE1, 0xFF, 0xFF, 0xFF, 0x87, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0x0F, 0xF8, 0x7F, 0xFF, 0xFE, 0x1F, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0xFE, 0x0F, 0xFF, 0xF0, 0x7F, 0xFF, 0x07, 0xFF, 0xE0, 0xFF, 0xFF, 0x80, 0xFF, 0x01, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_recent_40 = {40, 40, 19, icon_recent_40_bits};
static const uint8_t icon_recent_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xF0, 0x07, 0xFF, 0xFF, 0xC0, 0x7F, 0xFE, 0x03, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFE, 0x0F, 0xFE, 0x7F, 0xF0, 0x7F, 0xFC, 0x1F, 0xFC, 0x3F, 0xF8, 0x3F, 0xF8, 0x3F, 0xFC, 0x3F, 0xFC, 0x1F, 0xF8, 0x7F, 0xFC, 0x3F, 0xFE, 0x1F, 0xF0, 0x7F, 0xFC, 0x3F, 0xFE, 0x0F, 0xF0, 0xFF, 0xFC, 0x3F, 0xFF, 0x0F, 0xE0, 0xFF, 0xFC, 0x3F, 0xFF, 0x07, 0xE1, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xE1, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xE1, 0xFF, 0xFC, 0x3F, 0xFF, 0x87, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x3F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x1F, 0xFF, 0xC3, 0xC3, 0xFF, 0xFC, 0x07, 0xFF, 0xC3, 0xC3, 0xFF, 0xFE, 0x01, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0x80, 0x7F, 0xC3, 0xC3, 0xFF, 0xFF, 0xE0, 0x3F, 0xC3, 0xE1, 0xFF, 0xFF, 0xF8, 0x3F, 0x87, 0xE1, 0xFF, 0xFF, 0xFE, 0x7F, 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0x7F, 0xFF, 0xFF, 0xFE, 0x0F, 0xF8, 0x7F, 0xFF, 0xFF, 0xFE, 0x1F, 0xF8, 0x3F, 0xFF, 0xFF, 0xFC, 0x1F, 0xFC, 0x1F, 0xFF, 0xFF, 0xF8, 0x3F, 0xFE, 0x0F, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xC0, 0x7F, 0xFE, 0x03, 0xFF, 0xFF, 0xE0, 0x0F, 0xF0, 0x07, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_recent_48 = {48, 48, 23, icon_recent_48_bits};
// settings (lucide: settings)
static const uint8_t icon_settings_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0x99, 0xFF, 0xF0, 0x3C, 0x0F, 0xE0, 0x7E, 0x07, 0xCF, 0xFF, 0xF3, 0xCF, 0xC3, 0xF3, 0xC7, 0x81, 0xE3, 0xE3, 0x18, 0xC7, 0xF3, 0x3C, 0xCF, 0xF3, 0x3C, 0xCF, 0xE3, 0x18, 0xC7, 0xC7, 0x81, 0xE3, 0xCF, 0xC3, 0xF3, 0xCF, 0xFF, 0xF3, 0xE0, 0x7E, 0x07, 0xF0, 0x3C, 0x0F, 0xFF, 0x99, 0xFF, 0xFF, 0x99, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_settings_24 = {24, 24, 11, icon_settings_24_bits};
static const uint8_t icon_settings_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF3, 0xCF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xF0, 0x03, 0xC0, 0x0F, 0xF0, 0x07, 0xE0, 0x0F, 0xE3, 0x9F, 0xF9, 0xC7, 0xE7, 0xFF, 0xFF, 0xE7, 0xE7, 0xF8, 0x1F, 0xE7, 0xE3, 0xF0, 0x0F, 0xC7, 0xF1, 0xE1, 0x87, 0x8F, 0xF8, 0xE3, 0xC7, 0x1F, 0xF8, 0xE7, 0xE7, 0x1F, 0xF8, 0xE7, 0xE7, 0x1F, 0xF8, 0xE3, 0xC7, 0x1F, 0xF1, 0xE1, 0x87, 0x8F, 0xE3, 0xF0, 0x0F, 0xC7, 0xE7, 0xF8, 0x1F, 0xE7, 0xE7, 0xFF, 0xFF, 0xE7, 0xE3, 0x9F, 0xF9, 0xC7, 0xF0, 0x07, 0xE0, 0x0F, 0xF0, 0x03, 0xC0, 0x1F, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xF3, 0xCF, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_settings_32 = {32, 32, 15, icon_settings_32_bits};
static const uint8_t icon_settings_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0xFE, 0x18, 0x7F, 0xFF, 0xFF, 0xFE, 0x3C, 0x7F, 0xFF, 0xFF, 0xFC, 0x3C, 0x3F, 0xFF, 0xFE, 0x18, 0x7E, 0x18, 0x7F, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xF0, 0xC1, 0xFF, 0x83, 0x0F, 0xF1, 0xFF, 0xFF, 0xFF, 0x8F, 0xF1, 0xFF, 0xE7, 0xFF, 0x8F, 0xF1, 0xFF, 0x00, 0xFF, 0x8F, 0xF0, 0xFE, 0x00, 0x7F, 0x0F, 0xF0, 0x7C, 0x00, 0x3E, 0x0F, 0xF8, 0x7C, 0x3C, 0x3E, 0x1F, 0xFC, 0x3C, 0x7E, 0x3C, 0x3F, 0xFE, 0x38, 0x7E, 0x1C, 0x7F, 0xFE, 0x38, 0x7E, 0x1C, 0x7F, 0xFC, 0x3C, 0x7E, 0x3C, 0x3F, 0xF8, 0x7C, 0x3C, 0x3E, 0x1F, 0xF0, 0x7C, 0x00, 0x3E, 0x0F, 0xF0, 0xFE, 0x00, 0x7F, 0x0F, 0xF1, 0xFF, 0x00, 0xFF, 0x8F, 0xF1, 0xFF, 0xE7, 0xFF, 0x8F, 0xF1, 0xFF, 0xFF, 0xFF, 0x8F, 0xF0, 0xC1, 0xFF, 0x83, 0x0F, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0x7E, 0x00, 0x1F, 0xFE, 0x18, 0x7E, 0x18, 0x7F, 0xFF, 0xFC, 0x3C, 0x3F, 0xFF, 0xFF, 0xFE, 0x3C, 0x7F, 0xFF, 0xFF, 0xFE, 0x18, 0x7F, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_settings_40 = {40, 40, 20, icon_settings_40_bits};
static const uint8_t icon_settings_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0x02, 0x07, 0xE0, 0x40, 0xFF, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xF0, 0x7F, 0xFF, 0xFF, 0xFE, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xFC, 0x3F, 0xFF, 0x0F, 0xF0, 0xFF, 0xE0, 0x07, 0xFF, 0x0F, 0xF8, 0x7F, 0xC0, 0x03, 0xFE, 0x1F, 0xF8, 0x3F, 0x80, 0x01, 0xFC, 0x1F, 0xFC, 0x1F, 0x83, 0xC1, 0xF8, 0x3F, 0xFE, 0x1F, 0x87, 0xE1, 0xF8, 0x7F, 0xFF, 0x0F, 0x0F, 0xF0, 0xF0, 0xFF, 0xFF, 0x0F, 0x0F, 0xF0, 0xF0, 0xFF, 0xFF, 0x0F, 0x0F, 0xF0, 0xF0, 0xFF, 0xFF, 0x0F, 0x0F, 0xF0, 0xF0, 0xFF, 0xFE, 0x1F, 0x87, 0xE1, 0xF8, 0x7F, 0xFC, 0x1F, 0x83, 0xC1, 0xF8, 0x3F, 0xF8, 0x3F, 0x80, 0x01, 0xFC, 0x1F, 0xF8, 0x7F, 0xC0, 0x03, 0xFE, 0x1F, 0xF0, 0xFF, 0xE0, 0x07, 0xFF, 0x0F, 0xF0, 0xFF, 0xFC, 0x3F, 0xFF, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xF0, 0x7F, 0xFF, 0xFF, 0xFE, 0x0F, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x1F, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xFF, 0x02, 0x07, 0xE0, 0x40, 0xFF, 0xFF, 0xFF, 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_settings_48 = {48, 48, 24, icon_settings_48_bits};
// transfer (lucide: arrow-down-up)
static const uint8_t icon_transfer_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0x3F, 0xFC, 0xFE, 0x1F, 0xFC, 0xFC, 0x0F, 0xFC, 0xF8, 0x07, 0xFC, 0xF1, 0x23, 0xFC, 0xF3, 0x33, 0xFC, 0xFF, 0x3F, 0xFC, 0xFF, 0x3F, 0xFC, 0xFF, 0x3F, 0xFC, 0xFF, 0x3F, 0xFC, 0xFF, 0x3F, 0xFC, 0xFF, 0x3F, 0xCC, 0xCF, 0x3F, 0xC4, 0x8F, 0x3F, 0xE0, 0x1F, 0x3F, 0xF0, 0x3F, 0x3F, 0xF8, 0x7F, 0x3F, 0xFC, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_transfer_24 = {24, 24, 12, icon_transfer_24_bits};
static const uint8_t icon_transfer_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0x7F, 0xFF, 0x1F, 0xF0, 0x3F, 0xFF, 0x1F, 0xE0, 0x1F, 0xFF, 0x1F, 0xC0, 0x0F, 0xFF, 0x1F, 0x88, 0x87, 0xFF, 0x1F, 0x18, 0xC7, 0xFF, 0x1F, 0x38, 0xE7, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xE7, 0x1C, 0xF8, 0xFF, 0xE3, 0x18, 0xF8, 0xFF, 0xE1, 0x11, 0xF8, 0xFF, 0xF0, 0x03, 0xF8, 0xFF, 0xF8, 0x07, 0xF8, 0xFF, 0xFC, 0x0F, 0xF8, 0xFF, 0xFE, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_transfer_32 = {32, 32, 16, icon_transfer_32_bits};
static const uint8_t icon_transfer_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xC3, 0xFF, 0xFF, 0xC7, 0xFF, 0x81, 0xFF, 0xFF, 0xC7, 0xFF, 0x00, 0xFF, 0xFF, 0xC7, 0xFE, 0x00, 0x7F, 0xFF, 0xC7, 0xFC, 0x00, 0x3F, 0xFF, 0xC7, 0xF8, 0x22, 0x1F, 0xFF, 0xC7, 0xF0, 0x63, 0x0F, 0xFF, 0xC7, 0xF0, 0xE3, 0x87, 0xFF, 0xC7, 0xF9, 0xE3, 0xCF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE3, 0xFF, 0xF3, 0xC7, 0x9F, 0xE3, 0xFF, 0xE1, 0xC7, 0x0F, 0xE3, 0xFF, 0xF0, 0xC6, 0x0F, 0xE3, 0xFF, 0xF8, 0x44, 0x1F, 0xE3, 0xFF, 0xFC, 0x00, 0x3F, 0xE3, 0xFF, 0xFE, 0x00, 0x7F, 0xE3, 0xFF, 0xFF, 0x00, 0xFF, 0xE3, 0xFF, 0xFF, 0x81, 0xFF, 0xE3, 0xFF, 0xFF, 0xC3, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_transfer_40 = {40, 40, 20, icon_transfer_40_bits};
static const uint8_t icon_transfer_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xF0, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xF0, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF0, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0xF0, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0xF0, 0xFF, 0xC1, 0x08, 0x3F, 0xFF, 0xF0, 0xFF, 0x83, 0x0C, 0x1F, 0xFF, 0xF0, 0xFF, 0x07, 0x0E, 0x0F, 0xFF, 0xF0, 0xFF, 0x0F, 0x0F, 0x0F, 0xFF, 0xF0, 0xFF, 0x9F, 0x0F, 0x9F, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xF9, 0xF0, 0xF9, 0xFF, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0xFF, 0x0F, 0xFF, 0xF0, 0x70, 0xE0, 0xFF, 0x0F, 0xFF, 0xF8, 0x30, 0xC1, 0xFF, 0x0F, 0xFF, 0xFC, 0x10, 0x83, 0xFF, 0x0F, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0x0F, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0x0F, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0x0F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0x0F, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_transfer_48 = {48, 48, 24, icon_transfer_48_bits};
// library (lucide: library-big)
static const uint8_t icon_library_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x19, 0xFF, 0xC0, 0x00, 0xFF, 0xCC, 0xC4, 0xFF, 0xCC, 0xCE, 0x7F, 0xCC, 0xC6, 0x7F, 0xCC, 0xC6, 0x7F, 0xCC, 0xC7, 0x3F, 0xCC, 0xC3, 0x3F, 0xCC, 0xC3, 0x3F, 0xCC, 0xC3, 0x9F, 0xCC, 0xC9, 0x9F, 0xCC, 0xC9, 0x9F, 0xCC, 0xCD, 0xCF, 0xCC, 0xCC, 0xCF, 0xCC, 0xCC, 0xE7, 0xCC, 0xCE, 0x67, 0xCC, 0xCE, 0x67, 0xCC, 0xCE, 0x67, 0xC0, 0x0F, 0x07, 0xE0, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_24 = {24, 24, 12, icon_library_24_bits};
static const uint8_t icon_library_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0x0F, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xE7, 0x18, 0x07, 0xFF, 0xE7, 0x18, 0xE3, 0xFF, 0xE7, 0x18, 0xE3, 0xFF, 0xE7, 0x18, 0x71, 0xFF, 0xE7, 0x18, 0x71, 0xFF, 0xE7, 0x18, 0x79, 0xFF, 0xE7, 0x18, 0x38, 0xFF, 0xE7, 0x18, 0x38, 0xFF, 0xE7, 0x18, 0x1C, 0xFF, 0xE7, 0x18, 0x1C, 0x7F, 0xE7, 0x18, 0x9C, 0x7F, 0xE7, 0x18, 0x8E, 0x7F, 0xE7, 0x18, 0x8E, 0x3F, 0xE7, 0x18, 0xCE, 0x3F, 0xE7, 0x18, 0xC7, 0x3F, 0xE7, 0x18, 0xC7, 0x1F, 0xE7, 0x18, 0xE7, 0x9F, 0xE7, 0x18, 0xE3, 0x8F, 0xE7, 0x18, 0xE3, 0x8F, 0xE7, 0x18, 0xF1, 0xCF, 0xE7, 0x18, 0xF1, 0xCF, 0xE7, 0x18, 0xF8, 0x0F, 0xE0, 0x00, 0xF8, 0x0F, 0xF0, 0x01, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_32 = {32, 32, 16, icon_library_32_bits};
static const uint8_t icon_library_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0xF0, 0x00, 0x10, 0x3F, 0xFF, 0xF0, 0x00, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x00, 0x1F, 0xFF, 0xE1, 0xC7, 0x87, 0x1F, 0xFF, 0xE1, 0xC7, 0x8F, 0x1F, 0xFF, 0xE1, 0xC7, 0x87, 0x0F, 0xFF, 0xE1, 0xC7, 0x87, 0x8F, 0xFF, 0xE1, 0xC7, 0x87, 0x8F, 0xFF, 0xE1, 0xC7, 0x83, 0x87, 0xFF, 0xE1, 0xC7, 0x83, 0xC7, 0xFF, 0xE1, 0xC7, 0x83, 0xC3, 0xFF, 0xE1, 0xC7, 0x81, 0xE3, 0xFF, 0xE1, 0xC7, 0x81, 0xE3, 0xFF, 0xE1, 0xC7, 0x81, 0xE1, 0xFF, 0xE1, 0xC7, 0x80, 0xF1, 0xFF, 0xE1, 0xC7, 0x88, 0xF1, 0xFF, 0xE1, 0xC7, 0x88, 0x70, 0xFF, 0xE1, 0xC7, 0x8C, 0x78, 0xFF, 0xE1, 0xC7, 0x8C, 0x78, 0xFF, 0xE1, 0xC7, 0x8C, 0x38, 0x7F, 0xE1, 0xC7, 0x8E, 0x3C, 0x7F, 0xE1, 0xC7, 0x8E, 0x3C, 0x3F, 0xE1, 0xC7, 0x8E, 0x1C, 0x3F, 0xE1, 0xC7, 0x8F, 0x1E, 0x3F, 0xE1, 0xC7, 0x8F, 0x1E, 0x1F, 0xE1, 0xC7, 0x8F, 0x0F, 0x1F, 0xE1, 0xC7, 0x8F, 0x8F, 0x1F, 0xE1, 0xC7, 0x8F, 0x87, 0x0F, 0xE1, 0xC7, 0x8F, 0x87, 0x0F, 0xE0, 0x00, 0x0F, 0xC0, 0x1F, 0xF0, 0x00, 0x0F, 0xC0, 0x1F, 0xF0, 0x00, 0x1F, 0xE0, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_40 = {40, 40, 20, icon_library_40_bits};
static const uint8_t icon_library_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x03, 0xC7, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0x10, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF8, 0x7F, 0xFF, 0xF0, 0xF0, 0xF0, 0xF8, 0x7F, 0xFF, 0xF0, 0xF0, 0xF0, 0x78, 0x7F, 0xFF, 0xF0, 0xF0, 0xF0, 0x7C, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0x7C, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0x3C, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0x3E, 0x1F, 0xFF, 0xF0, 0xF0, 0xF0, 0x1E, 0x1F, 0xFF, 0xF0, 0xF0, 0xF0, 0x1E, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0x1F, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0x0F, 0x07, 0xFF, 0xF0, 0xF0, 0xF0, 0x0F, 0x87, 0xFF, 0xF0, 0xF0, 0xF0, 0x87, 0x87, 0xFF, 0xF0, 0xF0, 0xF0, 0x87, 0xC3, 0xFF, 0xF0, 0xF0, 0xF0, 0x87, 0xC3, 0xFF, 0xF0, 0xF0, 0xF0, 0xC3, 0xC3, 0xFF, 0xF0, 0xF0, 0xF0, 0xC3, 0xE1, 0xFF, 0xF0, 0xF0, 0xF0, 0xC1, 0xE1, 0xFF, 0xF0, 0xF0, 0xF0, 0xE1, 0xE1, 0xFF, 0xF0, 0xF0, 0xF0, 0xE1, 0xF0, 0xFF, 0xF0, 0xF0, 0xF0, 0xE0, 0xF0, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x7F, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, 0x7F, 0xF0, 0xF0, 0xF0, 0xF8, 0x78, 0x7F, 0xF0, 0xF0, 0xF0, 0xF8, 0x7C, 0x3F, 0xF0, 0xF0, 0xF0, 0xF8, 0x7C, 0x3F, 0xF0, 0xF0, 0xF0, 0xFC, 0x3C, 0x3F, 0xF0, 0xF0, 0xF0, 0xFC, 0x3E, 0x1F, 0xF0, 0xF0, 0xF0, 0xFC, 0x3E, 0x1F, 0xF0, 0xF0, 0xF0, 0xFE, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0xFF, 0x00, 0x7F, 0xF8, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_48 = {48, 48, 24, icon_library_48_bits};
// wifi (lucide: wifi)
static const uint8_t icon_wifi_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0xF0, 0xFF, 0x0F, 0xC3, 0xFF, 0xC3, 0x8F, 0xFF, 0xF1, 0x9F, 0x81, 0xF9, 0xFE, 0x00, 0x7F, 0xF8, 0x7E, 0x1F, 0xF1, 0xFF, 0x8F, 0xF3, 0xFF, 0xCF, 0xFF, 0xC3, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_wifi_24 = {24, 24, 10, icon_wifi_24_bits};
static const uint8_t icon_wifi_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xF8, 0x1F, 0xF8, 0x1F, 0xE0, 0x7F, 0xFE, 0x07, 0xC1, 0xFF, 0xFF, 0x83, 0x87, 0xFF, 0xFF, 0xE1, 0xCF, 0xF8, 0x1F, 0xF3, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFE, 0x1F, 0xF8, 0x7F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFC, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xC7, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_wifi_32 = {32, 32, 13, icon_wifi_32_bits};
static const uint8_t icon_wifi_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xC0, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0x80, 0x3F, 0xF8, 0x0F, 0xFF, 0xF0, 0x1F, 0xE0, 0x7F, 0xFF, 0xFE, 0x07, 0xC0, 0xFF, 0xFF, 0xFF, 0x03, 0xC3, 0xFF, 0xFF, 0xFF, 0xC3, 0xC7, 0xFF, 0x00, 0xFF, 0xE3, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0x80, 0x7E, 0x01, 0xFF, 0xFF, 0x03, 0xFF, 0xC0, 0xFF, 0xFE, 0x0F, 0xFF, 0xF0, 0x7F, 0xFE, 0x1F, 0xFF, 0xF8, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0xF8, 0x7E, 0x1F, 0xFF, 0xFF, 0xF9, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_wifi_40 = {40, 40, 16, icon_wifi_40_bits};
static const uint8_t icon_wifi_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0x80, 0x3F, 0xF8, 0x0F, 0xFF, 0xFF, 0xF0, 0x1F, 0xF0, 0x3F, 0xFF, 0xFF, 0xFC, 0x0F, 0xC0, 0x7F, 0xFF, 0xFF, 0xFE, 0x03, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xC3, 0xFF, 0xF0, 0x0F, 0xFF, 0xC3, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xE0, 0x0F, 0xF0, 0x07, 0xFF, 0xFF, 0xC0, 0x7F, 0xFE, 0x03, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0x07, 0xE0, 0x7F, 0xFF, 0xFF, 0xFE, 0x1F, 0xF8, 0x7F, 0xFF, 0xFF, 0xFF, 0x3F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_wifi_48 = {48, 48, 20, icon_wifi_48_bits};
// hotspot (lucide: router)
static const uint8_t icon_hotspot_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0x8F, 0xC7, 0xFF, 0x1F, 0xE3, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xE7, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x03, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0x99, 0x9F, 0xF9, 0x99, 0x9F, 0xF9, 0x9F, 0xFF, 0xF9, 0x9F, 0xFF, 0xF9, 0xC0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_hotspot_24 = {24, 24, 13, icon_hotspot_24_bits};
static const uint8_t icon_hotspot_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xF0, 0x7E, 0x0F, 0xFF, 0xE1, 0xFF, 0x87, 0xFF, 0xE3, 0xFF, 0xC7, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFE, 0x18, 0x7F, 0xFF, 0xFE, 0x7E, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xCF, 0xFF, 0xFF, 0xF3, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8E, 0x73, 0xFF, 0xF1, 0x8E, 0x73, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0x8F, 0xFF, 0xFF, 0xF1, 0xCF, 0xFF, 0xFF, 0xF3, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_hotspot_32 = {32, 32, 18, icon_hotspot_32_bits};
static const uint8_t icon_hotspot_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x3F, 0xFF, 0xFE, 0x03, 0xF0, 0x1F, 0xFF, 0xFC, 0x1F, 0xFE, 0x0F, 0xFF, 0xFC, 0x3F, 0xFF, 0x0F, 0xFF, 0xFE, 0x7F, 0x3F, 0xDF, 0xFF, 0xFF, 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xF0, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0x01, 0xFF, 0xFF, 0xFF, 0xE3, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0x7F, 0xFF, 0xE3, 0xC7, 0x9E, 0x3F, 0xFF, 0xE3, 0xC7, 0x9E, 0x3F, 0xFF, 0xE3, 0xC7, 0xFF, 0x7F, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC7, 0xFF, 0xFF, 0xFF, 0xE3, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_hotspot_40 = {40, 40, 22, icon_hotspot_40_bits};
static const uint8_t icon_hotspot_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xC0, 0x3F, 0xC0, 0x3F, 0xFF, 0xFF, 0x80, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xDF, 0xE0, 0x7F, 0xBF, 0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFC, 0x0F, 0x83, 0xFF, 0xFF, 0xFF, 0xFE, 0x3F, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xE7, 0xE7, 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF, 0xC3, 0xC3, 0xE7, 0xE7, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0x83, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_hotspot_48 = {48, 48, 28, icon_hotspot_48_bits};
// bookmark (lucide: bookmark)
static const uint8_t icon_bookmark_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x3F, 0xF8, 0x00, 0x1F, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xFF, 0xCF, 0xF3, 0xE7, 0xCF, 0xF3, 0x81, 0xCF, 0xF2, 0x18, 0x4F, 0xF0, 0x7E, 0x0F, 0xF9, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_bookmark_24 = {24, 24, 12, icon_bookmark_24_bits};
static const uint8_t icon_bookmark_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x3F, 0xFC, 0x7F, 0xFE, 0x3F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFF, 0xFF, 0x1F, 0xF8, 0xFC, 0x3F, 0x1F, 0xF8, 0xF0, 0x0F, 0x1F, 0xF8, 0xC1, 0x83, 0x1F, 0xF8, 0x03, 0xC0, 0x1F, 0xFC, 0x0F, 0xF0, 0x3F, 0xFC, 0x3F, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_bookmark_32 = {32, 32, 16, icon_bookmark_32_bits};
static const uint8_t icon_bookmark_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFE, 0x3F, 0x81, 0xFC, 0x7F, 0xFE, 0x3E, 0x00, 0x7C, 0x7F, 0xFE, 0x38, 0x00, 0x1C, 0x7F, 0xFE, 0x30, 0x3C, 0x0C, 0x7F, 0xFE, 0x00, 0xFF, 0x00, 0x7F, 0xFE, 0x01, 0xFF, 0x80, 0x7F, 0xFF, 0x07, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_bookmark_40 = {40, 40, 19, icon_bookmark_40_bits};
static const uint8_t icon_bookmark_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0x0F, 0xFC, 0x3F, 0xF0, 0xFF, 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0xFF, 0xFF, 0x0F, 0xC0, 0x03, 0xF0, 0xFF, 0xFF, 0x0F, 0x80, 0x00, 0xF0, 0xFF, 0xFF, 0x0E, 0x01, 0x80, 0x70, 0xFF, 0xFF, 0x08, 0x07, 0xE0, 0x10, 0xFF, 0xFF, 0x00, 0x1F, 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_bookmark_48 = {48, 48, 24, icon_bookmark_48_bits};
+68 -75
View File
@@ -14,21 +14,8 @@
#include "RecentBooksStore.h"
#include "components/TouchRegistry.h"
#include "components/UITheme.h"
#include "components/icons/book.h"
#include "components/icons/book24.h"
#include "components/icons/bookmark.h"
#include "components/icons/cover.h"
#include "components/icons/file24.h"
#include "components/icons/folder.h"
#include "components/icons/folder24.h"
#include "components/icons/hotspot.h"
#include "components/icons/image24.h"
#include "components/icons/library.h"
#include "components/icons/recent.h"
#include "components/icons/settings2.h"
#include "components/icons/text24.h"
#include "components/icons/transfer.h"
#include "components/icons/wifi.h"
#include "components/icons/generated_icons.h" // Lucide icons (freeink::Icon) generated via the SDK Icons lib
#include "fontIds.h"
// Internal constants
@@ -47,55 +34,60 @@ constexpr int listIconSize = 24;
constexpr int mainMenuColumns = 2;
int coverWidth = 0;
const uint8_t* iconForName(UIIcon icon, int size) {
if (size == 24) {
switch (icon) {
case UIIcon::Folder:
return Folder24Icon;
case UIIcon::Text:
return Text24Icon;
case UIIcon::Image:
return Image24Icon;
case UIIcon::Book:
return Book24Icon;
case UIIcon::File:
return File24Icon;
default:
return nullptr;
}
} else if (size == 32) {
switch (icon) {
case UIIcon::Folder:
return FolderIcon;
case UIIcon::Book:
return BookIcon;
case UIIcon::Recent:
return RecentIcon;
case UIIcon::Settings:
return Settings2Icon;
case UIIcon::Transfer:
return TransferIcon;
case UIIcon::Library:
return LibraryIcon;
case UIIcon::Wifi:
return WifiIcon;
case UIIcon::Hotspot:
return HotspotIcon;
case UIIcon::Bookmark:
return BookmarkIcon;
default:
return nullptr;
// Pick the generated Lucide icon variant nearest to targetPx for a UIIcon. The
// generator emits 24/32/40/48px with each icon's optical center baked in, so a
// scaled UI gets a crisp larger asset (not an upscaled one) and exact alignment.
const freeink::Icon* pickIcon(UIIcon icon, int targetPx) {
const freeink::Icon* const* v = nullptr;
#define VARIANTS(n) \
{ \
static const freeink::Icon* a[] = {&icon_##n##_24, &icon_##n##_32, &icon_##n##_40, \
&icon_##n##_48}; \
v = a; \
}
switch (icon) {
case UIIcon::Folder: VARIANTS(folder) break;
case UIIcon::Text: VARIANTS(text) break;
case UIIcon::Image: VARIANTS(image) break;
case UIIcon::Book: VARIANTS(book) break;
case UIIcon::File: VARIANTS(file) break;
case UIIcon::Recent: VARIANTS(recent) break;
case UIIcon::Settings: VARIANTS(settings) break;
case UIIcon::Transfer: VARIANTS(transfer) break;
case UIIcon::Library: VARIANTS(library) break;
case UIIcon::Wifi: VARIANTS(wifi) break;
case UIIcon::Hotspot: VARIANTS(hotspot) break;
case UIIcon::Bookmark: VARIANTS(bookmark) break;
default: return nullptr;
}
#undef VARIANTS
static constexpr int kSizes[] = {24, 32, 40, 48};
int best = 0, bestDist = 1 << 30;
for (int i = 0; i < 4; ++i) {
const int d = kSizes[i] > targetPx ? kSizes[i] - targetPx : targetPx - kSizes[i];
if (d < bestDist) {
bestDist = d;
best = i;
}
}
return nullptr;
return v[best];
}
// Top-left Y to box-center an icon on a line of text whose top is at textTop. The
// UI icons are already centered in their boxes, so this just box-centers the icon
// on the text's optical middle, which the renderer derives from the real font
// metrics (x-height) — no per-size fraction to tweak.
int iconYForText(const GfxRenderer& renderer, int fontId, int textTop, int boxSize) {
return textTop + renderer.getTextVisualCenterOffset(fontId) - boxSize / 2;
// Scale a base icon size by the board uiScale.
int scaledIcon(int base) { return static_cast<int>(base * UITheme::uiScale() + 0.5f); }
// Nearest generated icon size (24/32/40/48) to targetPx.
int nearestIconSize(int targetPx) {
static constexpr int kSizes[] = {24, 32, 40, 48};
int best = kSizes[0], bestDist = 1 << 30;
for (int s : kSizes) {
const int d = s > targetPx ? s - targetPx : targetPx - s;
if (d < bestDist) {
bestDist = d;
best = s;
}
}
return best;
}
} // namespace
@@ -281,11 +273,12 @@ void LyraTheme::drawList(const GfxRenderer& renderer, Rect rect, int itemCount,
int textX = rect.x + M().contentSidePadding + hPaddingInSelection;
int textWidth = contentWidth - M().contentSidePadding * 2 - hPaddingInSelection * 2;
int iconSize = 0;
int drawnIconPx = 0; // chosen generated icon size (scaled by uiScale)
if (rowIcon != nullptr) {
iconSize = (rowSubtitle != nullptr) ? mainMenuIconSize : listIconSize;
textX += iconSize + hPaddingInSelection;
textWidth -= iconSize + hPaddingInSelection;
const int base = (rowSubtitle != nullptr) ? mainMenuIconSize : listIconSize;
drawnIconPx = nearestIconSize(scaledIcon(base));
textX += drawnIconPx + hPaddingInSelection;
textWidth -= drawnIconPx + hPaddingInSelection;
}
// Title baseline-top offset within the row. Single-line rows center the title
@@ -327,12 +320,12 @@ void LyraTheme::drawList(const GfxRenderer& renderer, Rect rect, int itemCount,
}
if (rowIcon != nullptr) {
UIIcon icon = rowIcon(i);
const uint8_t* iconBitmap = iconForName(icon, iconSize);
if (iconBitmap != nullptr) {
const int iconDrawY = iconYForText(renderer, UI_10_FONT_ID, titleTop, iconSize);
renderer.drawIcon(iconBitmap, rect.x + M().contentSidePadding + hPaddingInSelection, iconDrawY, iconSize,
iconSize);
const freeink::Icon* ic = pickIcon(rowIcon(i), drawnIconPx);
if (ic != nullptr) {
// Place the icon's baked-in optical center on the title's optical center.
const int textCenter = titleTop + renderer.getTextVisualCenterOffset(UI_10_FONT_ID);
renderer.drawIcon(*ic, rect.x + M().contentSidePadding + hPaddingInSelection,
textCenter - ic->opticalCenterY);
}
}
@@ -591,12 +584,12 @@ void LyraTheme::drawButtonMenu(GfxRenderer& renderer, Rect rect, int buttonCount
const int textY = tileRect.y + (rowHeight - lineHeight) / 2;
if (rowIcon != nullptr) {
UIIcon icon = rowIcon(i);
const uint8_t* iconBitmap = iconForName(icon, mainMenuIconSize);
if (iconBitmap != nullptr) {
const int iconY = iconYForText(renderer, UI_12_FONT_ID, textY, mainMenuIconSize);
renderer.drawIcon(iconBitmap, textX, iconY, mainMenuIconSize, mainMenuIconSize);
textX += mainMenuIconSize + hPaddingInSelection + 2;
const freeink::Icon* ic = pickIcon(rowIcon(i), scaledIcon(mainMenuIconSize));
if (ic != nullptr) {
// Place the icon's baked-in optical center on the label's optical center.
const int textCenter = textY + renderer.getTextVisualCenterOffset(UI_12_FONT_ID);
renderer.drawIcon(*ic, textX, textCenter - ic->opticalCenterY);
textX += ic->w + hPaddingInSelection + 2;
}
}