├── tab5_arduino_basic ├── SLS_Project │ ├── assets │ │ ├── flip1.jpg │ │ ├── ui_font_Font1.bin │ │ ├── digital-7 (mono).ttf │ │ ├── ui_font_sevenSeg.bin │ │ ├── Conthrax-SemiBold.otf │ │ ├── ui_font_conthrax24.bin │ │ ├── ui_font_Font1.fcfg │ │ ├── ui_font_sevenSeg.fcfg │ │ ├── ui_font_conthrax24.fcfg │ │ └── ui_font_conthrax24.c │ ├── Themes.slt │ ├── backup │ │ └── Tab5_Basic_backup08.zip │ ├── Tab5_Basic.sll │ └── Tab5_Basic.spj ├── filelist.txt ├── ui_comp_hook.c ├── CMakeLists.txt ├── partitions.csv ├── ui_events.h ├── ui.h ├── pins_config.h ├── ui.c ├── tab5_arduino_basic.ino ├── ui_helpers.h ├── ui_Screen1.c ├── ui_helpers.c └── ui_font_conthrax24.c └── README.md /tab5_arduino_basic/SLS_Project/assets/flip1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/assets/flip1.jpg -------------------------------------------------------------------------------- /tab5_arduino_basic/filelist.txt: -------------------------------------------------------------------------------- 1 | ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | fonts/ui_font_conthrax24.c 6 | fonts/ui_font_Font1.c 7 | fonts/ui_font_sevenSeg.c 8 | -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/Themes.slt: -------------------------------------------------------------------------------- 1 | { 2 | "deftheme": { 3 | "name": "Default", 4 | "properties": [] 5 | }, 6 | "themes": [], 7 | "selected_theme": "Default" 8 | } -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_Font1.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/assets/ui_font_Font1.bin -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/digital-7 (mono).ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/assets/digital-7 (mono).ttf -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_sevenSeg.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/assets/ui_font_sevenSeg.bin -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/Conthrax-SemiBold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/assets/Conthrax-SemiBold.otf -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_conthrax24.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/assets/ui_font_conthrax24.bin -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/backup/Tab5_Basic_backup08.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nikthefix/M5Stack_Tab5_Arduino_Basic_LVGL_Demo/HEAD/tab5_arduino_basic/SLS_Project/backup/Tab5_Basic_backup08.zip -------------------------------------------------------------------------------- /tab5_arduino_basic/ui_comp_hook.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | -------------------------------------------------------------------------------- /tab5_arduino_basic/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | SET(SOURCES ui_Screen1.c 2 | ui.c 3 | ui_comp_hook.c 4 | ui_helpers.c 5 | fonts/ui_font_conthrax24.c 6 | fonts/ui_font_Font1.c 7 | fonts/ui_font_sevenSeg.c) 8 | 9 | add_library(ui ${SOURCES}) 10 | -------------------------------------------------------------------------------- /tab5_arduino_basic/partitions.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | nvs, data, nvs, 0x9000, 0x5000, 3 | otadata, data, ota, 0xe000, 0x2000, 4 | app0, app, factory, 0x10000, 0x7E0000, 5 | coredump, data, coredump,0x7F0000,0x10000, 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a basic Arduino demo of the M5Stack Tab5 using display and touch features only. 2 | It uses LVGL as gui framework and a Square Line Studio project is included. 3 | Other peripheral features - audio, camera, gyro etc will be added soon. 4 | 5 | Please see the notes at the top of the .ino file 6 | 7 | -------------------------------------------------------------------------------- /tab5_arduino_basic/ui_events.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _UI_EVENTS_H 7 | #define _UI_EVENTS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #ifdef __cplusplus 14 | } /*extern "C"*/ 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_Font1.fcfg: -------------------------------------------------------------------------------- 1 | { 2 | "codename": "Font1", 3 | "ttf_path": "\\assets\\digital-7 (mono).ttf", 4 | "bin_path": "\\assets\\ui_font_Font1.bin", 5 | "c_path": "\\assets\\ui_font_Font1.c", 6 | "cfg_path": "\\assets\\ui_font_Font1.fcfg", 7 | "size": 75, 8 | "bpp": 1, 9 | "letters": 0, 10 | "ranges": [ 11 | "0x20-0x7f" 12 | ], 13 | "symbols": "", 14 | "customparams": "--no-compress --no-prefilter", 15 | "uploaded": false 16 | } -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_sevenSeg.fcfg: -------------------------------------------------------------------------------- 1 | { 2 | "codename": "sevenSeg", 3 | "ttf_path": "/assets/digital-7 (mono).ttf", 4 | "bin_path": "/assets\\ui_font_sevenSeg.bin", 5 | "c_path": "/assets\\ui_font_sevenSeg.c", 6 | "cfg_path": "/assets\\ui_font_sevenSeg.fcfg", 7 | "size": 75, 8 | "bpp": 1, 9 | "letters": 0, 10 | "ranges": [ 11 | "0x20-0x7f" 12 | ], 13 | "symbols": "", 14 | "customparams": "--no-compress --no-prefilter", 15 | "uploaded": false 16 | } -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_conthrax24.fcfg: -------------------------------------------------------------------------------- 1 | { 2 | "codename": "conthrax24", 3 | "ttf_path": "/assets/Conthrax-SemiBold.otf", 4 | "bin_path": "/assets\\ui_font_conthrax24.bin", 5 | "c_path": "/assets\\ui_font_conthrax24.c", 6 | "cfg_path": "/assets\\ui_font_conthrax24.fcfg", 7 | "size": 24, 8 | "bpp": 1, 9 | "letters": 0, 10 | "ranges": [ 11 | "0x20-0x7f" 12 | ], 13 | "symbols": "", 14 | "customparams": "--no-compress --no-prefilter", 15 | "uploaded": false 16 | } -------------------------------------------------------------------------------- /tab5_arduino_basic/ui.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_H 7 | #define _SQUARELINE_PROJECT_UI_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #if defined __has_include 14 | #if __has_include("lvgl.h") 15 | #include "lvgl.h" 16 | #elif __has_include("lvgl/lvgl.h") 17 | #include "lvgl/lvgl.h" 18 | #else 19 | #include "lvgl.h" 20 | #endif 21 | #else 22 | #include "lvgl.h" 23 | #endif 24 | 25 | #include "ui_helpers.h" 26 | #include "ui_events.h" 27 | 28 | // SCREEN: ui_Screen1 29 | void ui_Screen1_screen_init(void); 30 | extern lv_obj_t * ui_Screen1; 31 | void ui_event_Arc1(lv_event_t * e); 32 | extern lv_obj_t * ui_Arc1; 33 | extern lv_obj_t * ui_Label1; 34 | extern lv_obj_t * ui_Button1; 35 | extern lv_obj_t * ui_Label2; 36 | extern lv_obj_t * ui_Label3; 37 | extern lv_obj_t * ui_Spinner2; 38 | extern lv_obj_t * ui_Slider1; 39 | extern lv_obj_t * ui_Label4; 40 | // CUSTOM VARIABLES 41 | 42 | // EVENTS 43 | 44 | extern lv_obj_t * ui____initial_actions0; 45 | 46 | // FONTS 47 | LV_FONT_DECLARE(ui_font_conthrax24); 48 | LV_FONT_DECLARE(ui_font_Font1); 49 | LV_FONT_DECLARE(ui_font_sevenSeg); 50 | 51 | // UI INIT 52 | void ui_init(void); 53 | 54 | #ifdef __cplusplus 55 | } /*extern "C"*/ 56 | #endif 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /tab5_arduino_basic/pins_config.h: -------------------------------------------------------------------------------- 1 | //pin assignments for Waveshare 1.8" amoled esp32-s3 module 2 | 3 | #pragma once 4 | 5 | /***********************config*************************/ 6 | 7 | //#define SPI_FREQUENCY 20000000 // at 40MHz we get artifacts when using software rotation 8 | //#define TFT_SPI_MODE SPI_MODE0 9 | //#define TFT_SPI_HOST SPI2_HOST 10 | 11 | 12 | // Display 13 | #define EXAMPLE_LCD_H_RES 720 14 | #define EXAMPLE_LCD_V_RES 1280 15 | 16 | // #define TFT_QSPI_CS 12 17 | // #define TFT_QSPI_SCK 11 18 | // #define TFT_QSPI_D0 4 19 | // #define TFT_QSPI_D1 5 20 | // #define TFT_QSPI_D2 6 21 | // #define TFT_QSPI_D3 7 22 | // #define TFT_QSPI_RST -1 //done using port expander 23 | 24 | #define LVGL_LCD_BUF_SIZE (EXAMPLE_LCD_H_RES * EXAMPLE_LCD_V_RES) 25 | #define SEND_BUF_SIZE (EXAMPLE_LCD_H_RES * 10) 26 | 27 | 28 | 29 | 30 | 31 | // ES8311 32 | // #define I2S_MCK_IO 16 33 | // #define I2S_BCK_IO 9 34 | // #define I2S_DI_IO 10 35 | // #define I2S_WS_IO 45 36 | // #define I2S_DO_IO 8 37 | 38 | // #define MCLKPIN 16 39 | // #define BCLKPIN 9 40 | // #define WSPIN 45 41 | // #define DOPIN 10 42 | // #define DIPIN 8 43 | // #define PA 46 44 | 45 | // Battery Voltage ADC 46 | //#define BATTERY_VOLTAGE_ADC_DATA -1 47 | 48 | // SD 49 | //#define SD_CS -1 50 | //#define SD_MOSI -1 51 | //#define SD_MISO -1 52 | //#define SD_SCLK -1 53 | 54 | // RTC 55 | //#define PCF8563_INT -1 56 | 57 | //IMU 58 | //#define IMU_INT -1 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /tab5_arduino_basic/ui.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | #include "ui_helpers.h" 8 | 9 | ///////////////////// VARIABLES //////////////////// 10 | 11 | // SCREEN: ui_Screen1 12 | void ui_Screen1_screen_init(void); 13 | lv_obj_t * ui_Screen1; 14 | void ui_event_Arc1(lv_event_t * e); 15 | lv_obj_t * ui_Arc1; 16 | lv_obj_t * ui_Label1; 17 | lv_obj_t * ui_Button1; 18 | lv_obj_t * ui_Label2; 19 | lv_obj_t * ui_Label3; 20 | lv_obj_t * ui_Spinner2; 21 | lv_obj_t * ui_Slider1; 22 | lv_obj_t * ui_Label4; 23 | // CUSTOM VARIABLES 24 | 25 | // EVENTS 26 | lv_obj_t * ui____initial_actions0; 27 | 28 | // IMAGES AND IMAGE SETS 29 | 30 | ///////////////////// TEST LVGL SETTINGS //////////////////// 31 | #if LV_COLOR_DEPTH != 16 32 | #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" 33 | #endif 34 | #if LV_COLOR_16_SWAP !=1 35 | #error "LV_COLOR_16_SWAP should be 1 to match SquareLine Studio's settings" 36 | #endif 37 | 38 | ///////////////////// ANIMATIONS //////////////////// 39 | 40 | ///////////////////// FUNCTIONS //////////////////// 41 | void ui_event_Arc1(lv_event_t * e) 42 | { 43 | lv_event_code_t event_code = lv_event_get_code(e); 44 | lv_obj_t * target = lv_event_get_target(e); 45 | 46 | if(event_code == LV_EVENT_VALUE_CHANGED) { 47 | _ui_arc_set_text_value(ui_Label1, target, "", ""); 48 | } 49 | } 50 | 51 | ///////////////////// SCREENS //////////////////// 52 | 53 | void ui_init(void) 54 | { 55 | lv_disp_t * dispp = lv_disp_get_default(); 56 | lv_theme_t * theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), 57 | true, LV_FONT_DEFAULT); 58 | lv_disp_set_theme(dispp, theme); 59 | ui_Screen1_screen_init(); 60 | ui____initial_actions0 = lv_obj_create(NULL); 61 | lv_disp_load_scr(ui_Screen1); 62 | } 63 | -------------------------------------------------------------------------------- /tab5_arduino_basic/tab5_arduino_basic.ino: -------------------------------------------------------------------------------- 1 | /* 2 | M5Stack Tab5 LVGL / SLS Initial Test - 23.05.25 - nikthefix 3 | 4 | This preliminary demo just uses the display and touch features. 5 | Peripherals like audio, gyro, camera etc will be added soon. 6 | 7 | Dependencies: 8 | 9 | ESP-Arduino >= V3.2 (tested also working with 3.3.0-alpha1) 10 | M5GFX >= V0.2.8 11 | LVGL = V8.3.11 12 | 13 | lv_conf.h: 14 | 15 | #define LV_COLOR_DEPTH 16 16 | #define LV_COLOR_16_SWAP 1 17 | #define LV_MEM_CUSTOM 1 18 | #define LV_TICK_CUSTOM 1 19 | 20 | Build Options: 21 | 22 | Board: "ESP32P4 Dev Module" 23 | USB CDC on boot: "Enabled" 24 | Flash Size: "16MB (128Mb)" 25 | Partition Scheme: "Custom" (the supplied partitions.csv file allows almost full use of the flash for the main app) 26 | PSRAM: "Enabled" 27 | Upload Mode: "UART / Hardware CDC" 28 | USB Mode: "Hardware CDC and JTAG" 29 | 30 | Notes: 31 | 32 | This demo uses a software rotate in order to give us landscape mode (disp_drv.rotated = LV_DISP_ROT_90;) 33 | I've not been able to find the make and model of the display unit used in the Tab5 so I can't be sure if it supports a hardware accelerated rotation. 34 | The display driver chip is ili9881c with native portrait orientation. 35 | 36 | A Square Line Studio V1.5.1 project is included so that you can experiment with your own exported UI files. 37 | 38 | */ 39 | 40 | 41 | 42 | #include 43 | #include "lvgl.h" 44 | #include "ui.h" 45 | #include "pins_config.h" 46 | 47 | M5GFX display; 48 | 49 | uint16_t count = 0; 50 | bool automate = false; 51 | 52 | static lv_disp_draw_buf_t draw_buf; 53 | static lv_color_t *buf; 54 | 55 | 56 | 57 | void lv_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p) 58 | { 59 | uint32_t w = (area->x2 - area->x1 + 1); 60 | uint32_t h = (area->y2 - area->y1 + 1); 61 | display.pushImageDMA(area->x1, area->y1, w, h, (uint16_t *)&color_p->full); 62 | lv_disp_flush_ready(disp); 63 | } 64 | 65 | 66 | 67 | void my_rounder(lv_disp_drv_t *disp_drv, lv_area_t *area) 68 | { 69 | if (area->x1 % 2 != 0) 70 | area->x1 += 1; 71 | if (area->y1 % 2 != 0) 72 | area->y1 += 1; 73 | 74 | uint32_t w = (area->x2 - area->x1 + 1); 75 | uint32_t h = (area->y2 - area->y1 + 1); 76 | if (w % 2 != 0) 77 | area->x2 -= 1; 78 | if (h % 2 != 0) 79 | area->y2 -= 1; 80 | } 81 | 82 | 83 | 84 | static void lv_indev_read(lv_indev_drv_t *indev_driver, lv_indev_data_t *data) 85 | { 86 | lgfx::touch_point_t tp[3]; 87 | uint8_t touchpad = display.getTouchRaw(tp,3); 88 | if (touchpad > 0) 89 | { 90 | data->state = LV_INDEV_STATE_PR; 91 | data->point.x = tp[0].x; 92 | data->point.y = tp[0].y; 93 | //Serial.printf("X: %d Y: %d\n", tp[0].x, tp[0].y); //for testing 94 | } 95 | else 96 | { 97 | data->state = LV_INDEV_STATE_REL; 98 | } 99 | } 100 | 101 | 102 | 103 | void setup() 104 | { 105 | /*Initialize Tab5 MIPI-DSI display*/ 106 | display.init(); 107 | 108 | Serial.begin(115200);//for debug 109 | 110 | /*Initialize LVGL*/ 111 | lv_init(); 112 | buf = (lv_color_t *)heap_caps_malloc(sizeof(lv_color_t) * LVGL_LCD_BUF_SIZE, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); 113 | lv_disp_draw_buf_init(&draw_buf, buf, NULL, LVGL_LCD_BUF_SIZE); 114 | static lv_disp_drv_t disp_drv; 115 | lv_disp_drv_init(&disp_drv); 116 | disp_drv.hor_res = EXAMPLE_LCD_H_RES; 117 | disp_drv.ver_res = EXAMPLE_LCD_V_RES; 118 | //disp_drv.rounder_cb = my_rounder; 119 | disp_drv.flush_cb = lv_disp_flush; 120 | disp_drv.draw_buf = &draw_buf; 121 | disp_drv.sw_rotate = 1; 122 | disp_drv.rotated = LV_DISP_ROT_90; 123 | lv_disp_drv_register(&disp_drv); 124 | 125 | 126 | 127 | /*Initialize touch*/ 128 | static lv_indev_drv_t indev_drv; 129 | lv_indev_drv_init(&indev_drv); 130 | indev_drv.type = LV_INDEV_TYPE_POINTER; 131 | indev_drv.read_cb = lv_indev_read; 132 | lv_indev_drv_register(&indev_drv); 133 | 134 | 135 | 136 | /*Start UI*/ 137 | ui_init(); 138 | display.setBrightness(255); 139 | } 140 | 141 | 142 | 143 | void loop() 144 | { 145 | lv_timer_handler(); 146 | delay(1); 147 | 148 | if(lv_obj_has_state(ui_Button1, LV_STATE_CHECKED)) automate = true; 149 | else automate = false; 150 | 151 | if(automate == true) 152 | { 153 | lv_arc_set_value(ui_Arc1, count); 154 | lv_label_set_text_fmt(ui_Label1, "%d", count); 155 | count++; 156 | if (count == 1000) count = 0; 157 | } 158 | 159 | uint8_t brightness = lv_slider_get_value(ui_Slider1) ; 160 | display.setBrightness(brightness); 161 | 162 | } 163 | -------------------------------------------------------------------------------- /tab5_arduino_basic/ui_helpers.h: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #ifndef _SQUARELINE_PROJECT_UI_HELPERS_H 7 | #define _SQUARELINE_PROJECT_UI_HELPERS_H 8 | 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | 13 | #include "ui.h" 14 | 15 | #define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 16 | #define _UI_BAR_PROPERTY_VALUE 0 17 | #define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 18 | void _ui_bar_set_property(lv_obj_t * target, int id, int val); 19 | 20 | #define _UI_BASIC_PROPERTY_POSITION_X 0 21 | #define _UI_BASIC_PROPERTY_POSITION_Y 1 22 | #define _UI_BASIC_PROPERTY_WIDTH 2 23 | #define _UI_BASIC_PROPERTY_HEIGHT 3 24 | void _ui_basic_set_property(lv_obj_t * target, int id, int val); 25 | 26 | #define _UI_DROPDOWN_PROPERTY_SELECTED 0 27 | void _ui_dropdown_set_property(lv_obj_t * target, int id, int val); 28 | 29 | #define _UI_IMAGE_PROPERTY_IMAGE 0 30 | void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val); 31 | 32 | #define _UI_LABEL_PROPERTY_TEXT 0 33 | void _ui_label_set_property(lv_obj_t * target, int id, const char * val); 34 | 35 | #define _UI_ROLLER_PROPERTY_SELECTED 0 36 | #define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 37 | void _ui_roller_set_property(lv_obj_t * target, int id, int val); 38 | 39 | #define _UI_SLIDER_PROPERTY_VALUE 0 40 | #define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 41 | void _ui_slider_set_property(lv_obj_t * target, int id, int val); 42 | 43 | void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); 44 | 45 | void _ui_screen_delete(lv_obj_t ** target); 46 | 47 | void _ui_arc_increment(lv_obj_t * target, int val); 48 | 49 | void _ui_bar_increment(lv_obj_t * target, int val, int anm); 50 | 51 | void _ui_slider_increment(lv_obj_t * target, int val, int anm); 52 | 53 | void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea); 54 | 55 | #define _UI_MODIFY_FLAG_ADD 0 56 | #define _UI_MODIFY_FLAG_REMOVE 1 57 | #define _UI_MODIFY_FLAG_TOGGLE 2 58 | void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value); 59 | 60 | #define _UI_MODIFY_STATE_ADD 0 61 | #define _UI_MODIFY_STATE_REMOVE 1 62 | #define _UI_MODIFY_STATE_TOGGLE 2 63 | void _ui_state_modify(lv_obj_t * target, int32_t state, int value); 64 | 65 | #define UI_MOVE_CURSOR_UP 0 66 | #define UI_MOVE_CURSOR_RIGHT 1 67 | #define UI_MOVE_CURSOR_DOWN 2 68 | #define UI_MOVE_CURSOR_LEFT 3 69 | void _ui_textarea_move_cursor(lv_obj_t * target, int val) 70 | ; 71 | 72 | 73 | void scr_unloaded_delete_cb(lv_event_t * e); 74 | 75 | void _ui_opacity_set(lv_obj_t * target, int val); 76 | 77 | /** Describes an animation*/ 78 | typedef struct _ui_anim_user_data_t { 79 | lv_obj_t * target; 80 | lv_img_dsc_t ** imgset; 81 | int32_t imgset_size; 82 | int32_t val; 83 | } ui_anim_user_data_t; 84 | void _ui_anim_callback_free_user_data(lv_anim_t * a); 85 | 86 | void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v); 87 | 88 | void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v); 89 | 90 | void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v); 91 | 92 | void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v); 93 | 94 | 95 | void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v); 96 | 97 | 98 | void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v); 99 | 100 | 101 | void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v); 102 | 103 | 104 | void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v); 105 | 106 | 107 | int32_t _ui_anim_callback_get_x(lv_anim_t * a); 108 | 109 | int32_t _ui_anim_callback_get_y(lv_anim_t * a); 110 | 111 | int32_t _ui_anim_callback_get_width(lv_anim_t * a); 112 | 113 | 114 | int32_t _ui_anim_callback_get_height(lv_anim_t * a); 115 | 116 | 117 | int32_t _ui_anim_callback_get_opacity(lv_anim_t * a); 118 | 119 | 120 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a); 121 | 122 | 123 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a); 124 | 125 | 126 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a); 127 | 128 | 129 | void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); 130 | 131 | void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); 132 | 133 | void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off); 134 | 135 | void _ui_spinbox_step(lv_obj_t * target, int val) 136 | ; 137 | 138 | 139 | void _ui_switch_theme(int val) 140 | ; 141 | 142 | 143 | 144 | #ifdef __cplusplus 145 | } /*extern "C"*/ 146 | #endif 147 | 148 | #endif 149 | -------------------------------------------------------------------------------- /tab5_arduino_basic/ui_Screen1.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui.h" 7 | 8 | void ui_Screen1_screen_init(void) 9 | { 10 | ui_Screen1 = lv_obj_create(NULL); 11 | lv_obj_clear_flag(ui_Screen1, LV_OBJ_FLAG_SCROLLABLE); /// Flags 12 | lv_obj_set_style_bg_color(ui_Screen1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); 13 | lv_obj_set_style_bg_opa(ui_Screen1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); 14 | lv_obj_set_style_text_color(ui_Screen1, lv_color_hex(0x808080), LV_PART_MAIN | LV_STATE_DEFAULT); 15 | lv_obj_set_style_text_opa(ui_Screen1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); 16 | 17 | ui_Arc1 = lv_arc_create(ui_Screen1); 18 | lv_obj_set_width(ui_Arc1, 400); 19 | lv_obj_set_height(ui_Arc1, 400); 20 | lv_obj_set_align(ui_Arc1, LV_ALIGN_CENTER); 21 | lv_arc_set_range(ui_Arc1, 0, 1000); 22 | lv_arc_set_value(ui_Arc1, 0); 23 | 24 | ui_Label1 = lv_label_create(ui_Screen1); 25 | lv_obj_set_width(ui_Label1, LV_SIZE_CONTENT); /// 1 26 | lv_obj_set_height(ui_Label1, LV_SIZE_CONTENT); /// 1 27 | lv_obj_set_align(ui_Label1, LV_ALIGN_CENTER); 28 | lv_label_set_long_mode(ui_Label1, LV_LABEL_LONG_SCROLL); 29 | lv_label_set_text(ui_Label1, "0"); 30 | lv_obj_set_style_text_color(ui_Label1, lv_color_hex(0xEEFB02), LV_PART_MAIN | LV_STATE_DEFAULT); 31 | lv_obj_set_style_text_opa(ui_Label1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); 32 | lv_obj_set_style_text_align(ui_Label1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT); 33 | lv_obj_set_style_text_decor(ui_Label1, LV_TEXT_DECOR_NONE, LV_PART_MAIN | LV_STATE_DEFAULT); 34 | lv_obj_set_style_text_font(ui_Label1, &ui_font_sevenSeg, LV_PART_MAIN | LV_STATE_DEFAULT); 35 | lv_obj_set_style_pad_left(ui_Label1, 0, LV_PART_MAIN | LV_STATE_DEFAULT); 36 | lv_obj_set_style_pad_right(ui_Label1, 0, LV_PART_MAIN | LV_STATE_DEFAULT); 37 | lv_obj_set_style_pad_top(ui_Label1, 0, LV_PART_MAIN | LV_STATE_DEFAULT); 38 | lv_obj_set_style_pad_bottom(ui_Label1, 0, LV_PART_MAIN | LV_STATE_DEFAULT); 39 | 40 | ui_Button1 = lv_btn_create(ui_Screen1); 41 | lv_obj_set_width(ui_Button1, 146); 42 | lv_obj_set_height(ui_Button1, 36); 43 | lv_obj_set_x(ui_Button1, 0); 44 | lv_obj_set_y(ui_Button1, 105); 45 | lv_obj_set_align(ui_Button1, LV_ALIGN_CENTER); 46 | lv_obj_add_flag(ui_Button1, LV_OBJ_FLAG_CHECKABLE); /// Flags 47 | lv_obj_set_style_bg_color(ui_Button1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); 48 | lv_obj_set_style_bg_opa(ui_Button1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); 49 | lv_obj_set_style_border_color(ui_Button1, lv_color_hex(0x919191), LV_PART_MAIN | LV_STATE_DEFAULT); 50 | lv_obj_set_style_border_opa(ui_Button1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); 51 | lv_obj_set_style_border_width(ui_Button1, 2, LV_PART_MAIN | LV_STATE_DEFAULT); 52 | lv_obj_set_style_border_side(ui_Button1, LV_BORDER_SIDE_FULL, LV_PART_MAIN | LV_STATE_DEFAULT); 53 | lv_obj_set_style_bg_color(ui_Button1, lv_color_hex(0x6A3F63), LV_PART_MAIN | LV_STATE_CHECKED); 54 | lv_obj_set_style_bg_opa(ui_Button1, 255, LV_PART_MAIN | LV_STATE_CHECKED); 55 | 56 | ui_Label2 = lv_label_create(ui_Button1); 57 | lv_obj_set_width(ui_Label2, LV_SIZE_CONTENT); /// 1 58 | lv_obj_set_height(ui_Label2, LV_SIZE_CONTENT); /// 1 59 | lv_obj_set_align(ui_Label2, LV_ALIGN_CENTER); 60 | lv_label_set_text(ui_Label2, "Automate"); 61 | 62 | ui_Label3 = lv_label_create(ui_Screen1); 63 | lv_obj_set_width(ui_Label3, LV_SIZE_CONTENT); /// 1 64 | lv_obj_set_height(ui_Label3, LV_SIZE_CONTENT); /// 1 65 | lv_obj_set_x(ui_Label3, 0); 66 | lv_obj_set_y(ui_Label3, -105); 67 | lv_obj_set_align(ui_Label3, LV_ALIGN_CENTER); 68 | lv_label_set_text(ui_Label3, "nikthefix"); 69 | lv_obj_set_style_text_font(ui_Label3, &ui_font_conthrax24, LV_PART_MAIN | LV_STATE_DEFAULT); 70 | 71 | ui_Spinner2 = lv_spinner_create(ui_Screen1, 1000, 90); 72 | lv_obj_set_width(ui_Spinner2, 50); 73 | lv_obj_set_height(ui_Spinner2, 50); 74 | lv_obj_set_x(ui_Spinner2, -583); 75 | lv_obj_set_y(ui_Spinner2, -303); 76 | lv_obj_set_align(ui_Spinner2, LV_ALIGN_CENTER); 77 | lv_obj_clear_flag(ui_Spinner2, LV_OBJ_FLAG_CLICKABLE); /// Flags 78 | 79 | ui_Slider1 = lv_slider_create(ui_Screen1); 80 | lv_slider_set_range(ui_Slider1, 1, 255); 81 | lv_slider_set_value(ui_Slider1, 255, LV_ANIM_OFF); 82 | if(lv_slider_get_mode(ui_Slider1) == LV_SLIDER_MODE_RANGE) lv_slider_set_left_value(ui_Slider1, 0, LV_ANIM_OFF); 83 | lv_obj_set_width(ui_Slider1, 11); 84 | lv_obj_set_height(ui_Slider1, 432); 85 | lv_obj_set_x(ui_Slider1, 402); 86 | lv_obj_set_y(ui_Slider1, -35); 87 | lv_obj_set_align(ui_Slider1, LV_ALIGN_CENTER); 88 | 89 | ui_Label4 = lv_label_create(ui_Screen1); 90 | lv_obj_set_width(ui_Label4, LV_SIZE_CONTENT); /// 1 91 | lv_obj_set_height(ui_Label4, LV_SIZE_CONTENT); /// 1 92 | lv_obj_set_x(ui_Label4, 404); 93 | lv_obj_set_y(ui_Label4, 200); 94 | lv_obj_set_align(ui_Label4, LV_ALIGN_CENTER); 95 | lv_label_set_text(ui_Label4, "Brightness"); 96 | lv_obj_set_style_text_color(ui_Label4, lv_color_hex(0xDA88EA), LV_PART_MAIN | LV_STATE_DEFAULT); 97 | lv_obj_set_style_text_opa(ui_Label4, 255, LV_PART_MAIN | LV_STATE_DEFAULT); 98 | 99 | lv_obj_add_event_cb(ui_Arc1, ui_event_Arc1, LV_EVENT_ALL, NULL); 100 | 101 | } 102 | -------------------------------------------------------------------------------- /tab5_arduino_basic/ui_helpers.c: -------------------------------------------------------------------------------- 1 | // This file was generated by SquareLine Studio 2 | // SquareLine Studio version: SquareLine Studio 1.5.1 3 | // LVGL version: 8.3.6 4 | // Project name: SquareLine_Project 5 | 6 | #include "ui_helpers.h" 7 | 8 | void _ui_bar_set_property(lv_obj_t * target, int id, int val) 9 | { 10 | if(id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); 11 | if(id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); 12 | } 13 | 14 | void _ui_basic_set_property(lv_obj_t * target, int id, int val) 15 | { 16 | if(id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); 17 | if(id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); 18 | if(id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); 19 | if(id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); 20 | } 21 | 22 | 23 | void _ui_dropdown_set_property(lv_obj_t * target, int id, int val) 24 | { 25 | if(id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); 26 | } 27 | 28 | void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val) 29 | { 30 | if(id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); 31 | } 32 | 33 | void _ui_label_set_property(lv_obj_t * target, int id, const char * val) 34 | { 35 | if(id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); 36 | } 37 | 38 | 39 | void _ui_roller_set_property(lv_obj_t * target, int id, int val) 40 | { 41 | if(id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); 42 | if(id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); 43 | } 44 | 45 | void _ui_slider_set_property(lv_obj_t * target, int id, int val) 46 | { 47 | if(id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); 48 | if(id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); 49 | } 50 | 51 | 52 | void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) 53 | { 54 | if(*target == NULL) 55 | target_init(); 56 | lv_scr_load_anim(*target, fademode, spd, delay, false); 57 | } 58 | 59 | void _ui_screen_delete(lv_obj_t ** target) 60 | { 61 | if(*target == NULL) { 62 | lv_obj_del(*target); 63 | target = NULL; 64 | } 65 | } 66 | 67 | void _ui_arc_increment(lv_obj_t * target, int val) 68 | { 69 | int old = lv_arc_get_value(target); 70 | lv_arc_set_value(target, old + val); 71 | lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); 72 | } 73 | 74 | void _ui_bar_increment(lv_obj_t * target, int val, int anm) 75 | { 76 | int old = lv_bar_get_value(target); 77 | lv_bar_set_value(target, old + val, anm); 78 | } 79 | 80 | void _ui_slider_increment(lv_obj_t * target, int val, int anm) 81 | { 82 | int old = lv_slider_get_value(target); 83 | lv_slider_set_value(target, old + val, anm); 84 | lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); 85 | } 86 | 87 | void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea) 88 | { 89 | lv_keyboard_set_textarea(keyboard, textarea); 90 | } 91 | 92 | void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value) 93 | { 94 | if(value == _UI_MODIFY_FLAG_TOGGLE) { 95 | if(lv_obj_has_flag(target, flag)) lv_obj_clear_flag(target, flag); 96 | else lv_obj_add_flag(target, flag); 97 | } 98 | else if(value == _UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target, flag); 99 | else lv_obj_clear_flag(target, flag); 100 | } 101 | void _ui_state_modify(lv_obj_t * target, int32_t state, int value) 102 | { 103 | if(value == _UI_MODIFY_STATE_TOGGLE) { 104 | if(lv_obj_has_state(target, state)) lv_obj_clear_state(target, state); 105 | else lv_obj_add_state(target, state); 106 | } 107 | else if(value == _UI_MODIFY_STATE_ADD) lv_obj_add_state(target, state); 108 | else lv_obj_clear_state(target, state); 109 | } 110 | 111 | 112 | void _ui_textarea_move_cursor(lv_obj_t * target, int val) 113 | 114 | { 115 | 116 | if(val == UI_MOVE_CURSOR_UP) lv_textarea_cursor_up(target); 117 | if(val == UI_MOVE_CURSOR_RIGHT) lv_textarea_cursor_right(target); 118 | if(val == UI_MOVE_CURSOR_DOWN) lv_textarea_cursor_down(target); 119 | if(val == UI_MOVE_CURSOR_LEFT) lv_textarea_cursor_left(target); 120 | lv_obj_add_state(target, LV_STATE_FOCUSED); 121 | } 122 | 123 | void scr_unloaded_delete_cb(lv_event_t * e) 124 | 125 | { 126 | 127 | lv_obj_t ** var = lv_event_get_user_data(e); 128 | lv_obj_del(*var); 129 | (*var) = NULL; 130 | 131 | } 132 | 133 | void _ui_opacity_set(lv_obj_t * target, int val) 134 | { 135 | lv_obj_set_style_opa(target, val, 0); 136 | } 137 | 138 | void _ui_anim_callback_free_user_data(lv_anim_t * a) 139 | { 140 | lv_mem_free(a->user_data); 141 | a->user_data = NULL; 142 | } 143 | 144 | void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v) 145 | 146 | { 147 | 148 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 149 | lv_obj_set_x(usr->target, v); 150 | 151 | } 152 | 153 | 154 | void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v) 155 | 156 | { 157 | 158 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 159 | lv_obj_set_y(usr->target, v); 160 | 161 | } 162 | 163 | 164 | void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v) 165 | 166 | { 167 | 168 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 169 | lv_obj_set_width(usr->target, v); 170 | 171 | } 172 | 173 | 174 | void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v) 175 | 176 | { 177 | 178 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 179 | lv_obj_set_height(usr->target, v); 180 | 181 | } 182 | 183 | 184 | void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v) 185 | 186 | { 187 | 188 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 189 | lv_obj_set_style_opa(usr->target, v, 0); 190 | 191 | } 192 | 193 | 194 | void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v) 195 | 196 | { 197 | 198 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 199 | lv_img_set_zoom(usr->target, v); 200 | 201 | } 202 | 203 | 204 | void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v) 205 | 206 | { 207 | 208 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 209 | lv_img_set_angle(usr->target, v); 210 | 211 | } 212 | 213 | 214 | void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v) 215 | 216 | { 217 | 218 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 219 | usr->val = v; 220 | 221 | if(v < 0) v = 0; 222 | if(v >= usr->imgset_size) v = usr->imgset_size - 1; 223 | lv_img_set_src(usr->target, usr->imgset[v]); 224 | } 225 | 226 | int32_t _ui_anim_callback_get_x(lv_anim_t * a) 227 | 228 | { 229 | 230 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 231 | return lv_obj_get_x_aligned(usr->target); 232 | 233 | } 234 | 235 | 236 | int32_t _ui_anim_callback_get_y(lv_anim_t * a) 237 | 238 | { 239 | 240 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 241 | return lv_obj_get_y_aligned(usr->target); 242 | 243 | } 244 | 245 | 246 | int32_t _ui_anim_callback_get_width(lv_anim_t * a) 247 | 248 | { 249 | 250 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 251 | return lv_obj_get_width(usr->target); 252 | 253 | } 254 | 255 | 256 | int32_t _ui_anim_callback_get_height(lv_anim_t * a) 257 | 258 | { 259 | 260 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 261 | return lv_obj_get_height(usr->target); 262 | 263 | } 264 | 265 | 266 | int32_t _ui_anim_callback_get_opacity(lv_anim_t * a) 267 | 268 | { 269 | 270 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 271 | return lv_obj_get_style_opa(usr->target, 0); 272 | 273 | } 274 | 275 | int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a) 276 | 277 | { 278 | 279 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 280 | return lv_img_get_zoom(usr->target); 281 | 282 | } 283 | 284 | int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a) 285 | 286 | { 287 | 288 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 289 | return lv_img_get_angle(usr->target); 290 | 291 | } 292 | 293 | int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a) 294 | 295 | { 296 | 297 | ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; 298 | return usr->val; 299 | 300 | } 301 | 302 | void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) 303 | { 304 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 305 | 306 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); 307 | 308 | lv_label_set_text(trg, buf); 309 | } 310 | 311 | void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) 312 | { 313 | char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; 314 | 315 | lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); 316 | 317 | lv_label_set_text(trg, buf); 318 | } 319 | void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off) 320 | { 321 | if(lv_obj_has_state(src, LV_STATE_CHECKED)) lv_label_set_text(trg, txt_on); 322 | else lv_label_set_text(trg, txt_off); 323 | } 324 | 325 | 326 | void _ui_spinbox_step(lv_obj_t * target, int val) 327 | 328 | { 329 | 330 | if(val > 0) lv_spinbox_increment(target); 331 | 332 | else lv_spinbox_decrement(target); 333 | 334 | 335 | lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); 336 | } 337 | 338 | void _ui_switch_theme(int val) 339 | 340 | { 341 | 342 | #ifdef UI_THEME_ACTIVE 343 | ui_theme_set(val); 344 | #endif 345 | } 346 | 347 | 348 | -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/Tab5_Basic.sll: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SquareLine_Project.spj", 3 | "depth": 2, 4 | "width": 1280, 5 | "height": 720, 6 | "rotation": 0, 7 | "offset_x": 0, 8 | "offset_y": 0, 9 | "shape": "RECTANGLE", 10 | "multilang": "DISABLE", 11 | "description": "", 12 | "board": "Arduino with TFT_eSPI", 13 | "board_version": "v1.1.2", 14 | "editor_version": "1.5.1", 15 | "image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCALQBQADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5/ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiitjw7ptrqV7creCcwwWktxtgcKzFFzjJB6/Smld2Q0ruxj0V0Nxpem3GhXeo2MN/atavGrLdusiybjjCsFXDDrjB4zUn/CPWn/CbnRfMn+zDPzbhv8A9Xv64x19qr2bK9mzmqK7XTtSXQNH02K51C+iN4pnVLVIxHHGXKgyAjMuSp+UkcYGaqa7olpFf+KJIg0YsblBDGmAoDuQRjHQDpTdPS6/rqN09Lo5WiuisvD1veXHh2HzpEOpK7THg7dsrr8o+i9+9V/sGnXWm6tfWguo47XyfJSWRWJ3HDbiFGenGMUuR/194uR/195i0V02n+GItRfRVSWYG8tprifau9gI3cYRRySQgwPU0l/oMEE1ky6Tr9tBLN5UguIQzOT90IcKNx5+XH4mj2crXD2crXOaorsLjw1p0VxZoINSE8zujacssUtwQFBDfKPkGcg7hkYJ5rJ8RaVaaXNbC2kcNLGWlt5JUleA7iAGZODkYOMAjPNDptK7B02ldmLRRRUEBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVteGNWg0fUZp55LmJZLaWFZbYAyRswwGGWHTr1rFopxbi7oadndHTaz4ggvdD/ALPF7qeoyG4WYT6hgGIBSCFwzHnPPOOBxSx+KZb/AF+1v7xLG1liDA3C27HI2bQGAbLegPXn0rmKKv2kr3K9pK9zYtPEdxa2UFtJZ2V0LYk20lxFuaHJzgcgEZ5wwIrStfFIaLxBd3cdtJdag8TfZ3iZo5MMSw9scHqD6GuVopKpJAqkkdLpvipYvEtlqV7ZQG2tU8qOCBCBEvJ+Qbhk5J+8T1NVLXxFJZm+SDTrAW16EEtsyO0eF5AGWJHPPXOemKxaKPaSDnka8viK8fUre9jjt4Ps8XkxQRx/uljOcptOcg7mzkknJp7eJrtJbV7KC1sUtphOkduh2mT+824knjjk4HOOtYtFLnl3Fzy7myviJ4ruO4tdN0+22rIjxxRttlVxhlfcxJGPQjGeKoX94t7MsiWdtaKq7RHbqwXqTk7iSTz1zVWihybBybCiiipJCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACtHRNIm1vU47OJtgILPIRkIo6n+n1IrOrr/hz/yMNx/16t/6GldGFpxqVowls2c+KqSp0ZTjukaGp/DuKLT2lsLmZ7iNCxSQAiQjsMDg9fX+tcBXvteBV35rhqdFxdNWvf8ACxw5VialZSVR3tb8bhRRRXkHrBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFdf8Of8AkYbj/r1b/wBDSuQrr/hz/wAjDcf9erf+hpXXgP8AeYepyY7/AHafoenV4FXvteBV6ed/8u/n+h5uSf8ALz5fqFFFFeCe6FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABVvTtOudVvUtLSPfI35KO5J7Cqlej/AA3tUXTbu7wPMebys+gAB/8AZq6sHh/rFZQexy4zEOhRc1uFr8N7JYh9rvbh5O/lYUD8wazNb8ATWdu9zp0z3CoMtCw+fHtjr9K9Jor6OeWYaUeVRt5nzsMyxMZczlfyPAqK2PFVqln4nvoYwAm8OAO24Bv61j18rUg4TcH0dj6mnNTgprqrhRRRUFhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFaelWUc4aaUbgDtCnpmr11pkEyHy1WOQdCowPxFOwrnPUU6SN4pCjqVYdRTaQwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuv+HP/Iw3H/Xq3/oaVyFdf8Of+RhuP+vVv/Q0rrwH+8w9Tkx3+7T9D06vAq99rwKvTzv/AJd/P9Dzck/5efL9QooorwT3QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo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aXxRpSoMkXcbfgGBP6CotekWXxFqciEMj3crKR3Bc1vwwxeC7eS5uZY5NekQpBBGwYWoIwXYj+LHQfzzxyHU5NABRRRQAUUUUAFFFFABRRRQAVPaXLWtwsg6dGHqKgooA6xHWRFdTlWGQaoata+bB5yj54+vuKi0e6yDbMenKf1FaxGRg9KZGzORoqzfW/2a6ZAPlPK/Sq1IsKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK6/4c/8jDcf9erf+hpXIV1/w5/5GG4/69W/9DSuvAf7zD1OTHf7tP0PTq8Cr32vAq9PO/8Al38/0PNyT/l58v1CiiivBPdCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK39Jt/KtfMI+aTn8O1Y1rCbi5SLsTz9O9dQAAABwBTRLGTSrBC8jdFGa5aSRpZGkY5Zjk1razcYCW6nr8zf0rHoY0gooopDCiiigAooooAKKKKACiiigAo6HIoooA0I9e1iJAkerXyIOAq3DgD9ad/wkWt/wDQZ1D/AMCn/wAazaKANL/hItb/AOgzqH/gU/8AjR/wkWt/9BnUP/Ap/wDGs2igDS/4SLW/+gzqH/gU/wDjR/wkWt/9BnUP/Ap/8azaKANL/hItb/6DOof+BT/40f8ACRa3/wBBnUP/AAKf/Gs2igDS/wCEi1v/AKDOof8AgU/+NH/CRa3/ANBnUP8AwKf/ABrNooA0v+Ei1v8A6DOof+BT/wCNH/CRa3/0GdQ/8Cn/AMazaKANL/hItb/6DOof+BT/AONH/CRa3/0GdQ/8Cn/xrNooA0v+Ei1v/oM6h/4FP/jTZNe1iVCkmrXzoeCrXDkH9az6KADqcmiiigAooooAKKKKACiiigAooooAKKKKAHRyNFIsinDKciuphlWeFJF6MM1ylbGjXGQ9ux6fMv8AWmhNE+rW/m2vmAfNHz+HesCuuIBBB5Brl7qE29y8XYHj6dqGJENFFFIoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArr/hz/wAjDcf9erf+hpXIV1/w5/5GG4/69W/9DSuvAf7zD1OTHf7tP0PTq8Cr32vAq9PO/wDl38/0PNyT/l58v1CiiivBPdCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA19Fh/1k5H+yP6/0rWJABJOAOtQ2UPkWkaY5xk/U1Fqk3lWTAHl/lH9f0pkbswrmYz3Dyn+I8fTtUVFFIsKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqW2mMFwko/hPP071FRQB1oIIBByD0rJ1qH/AFc4H+yf6f1q3pc3m2SgnlPlP9P0qW9h8+0kTHOMj6imRszmKKKKRYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXX/AA5/5GG4/wCvVv8A0NK5Cuv+HP8AyMNx/wBerf8AoaV14D/eYepyY7/dp+h6dXgVe+14FXp53/y7+f6Hm5J/y8+X6hRRRXgnuhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVNaReddxR4yC3P071DWlo0e66Zz/Av6n/ACaAZuVia1LunjiHRRk/U1t1zF7J5t5K/bdgfQcU2SiCiiikUFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU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IoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuv8Ahz/yMNx/16t/6GlchXX/AA5/5GG4/wCvVv8A0NK68B/vMPU5Md/u0/Q9OrwKvfa8Cr087/5d/P8AQ83JP+Xny/UKKKK8E90KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACusjOYkPqBXJ11Fo26zhP+wP5U0TIoa2P3UJ9CRWNW7rK5s1Po4/kawqTGtgooooGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfRHhT/k3W4/7Bt//wChTV871738PY9c8Q/CyLRLNdNtLBvtNpPeSzNPLsfeTthXaFbMgA3P0GdpBGaP/DPf/U0f+SH/ANsr5HA5hhcBiMRHEzs5TbW70u+yf3bmsouSVjxKvojxX/ybrb/9g2w/9ChrE/4Z7/6mj/yQ/wDtlaniu6RP2fhbXA+z3EUUFg0UrLuM0Eyxuq4JDcxORjsM0swzDDY6vhvq8ublqRvo1u/NLswjFxTufP1FFFfXmQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVs6IP3Ux9SBWNW7oy4s2Pq5/kKaE9i/IcROfQGuTrqLtttnMf9g/yrl6GKIUUUUigooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK6/4c/8AIw3H/Xq3/oaVyFdf8Of+RhuP+vVv/Q0rrwH+8w9Tkx3+7T9D06vAq99rwKvTzv8A5d/P9Dzck/5efL9QooorwT3QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK6LTG3afH6jI/Wudrb0V828if3Wz+f/AOqmhMsakm/T5fUYP61zldXKnmQun95SK5ShiiFFFFIoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAvafrOqaR5n9m6leWXm48z7NO0e/GcZ2kZxk/mau/8Jl4p/6GXWP/AAOl/wDiqxKKylQpSfNKKb9EO7Nv/hMvFP8A0Musf+B0v/xVZdxe3V1n7RczTZleY+ZIWzI+Nzc/xHaMnqcD0qCinCjTg7xil8hXCiiitACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuj01Nmnxepyf1rnK6uJPLhRP7qgU0TIram23T5PU4H61ztbetPi3jT+82fy//AF1iUMaCiiikMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuv+HP/Iw3H/Xq3/oaVyFdf8Of+RhuP+vVv/Q0rrwH+8w9Tkx3+7T9D06vAq99rwKvTzv/AJd/P9Dzck/5efL9QooorwT3QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK0tGk23TIf41/Uf5NZtTWkvk3cUmcANz9O9AM6iuYvY/KvJU7bsj6HmunrE1qLbPHKOjDB+opslGZRRRSKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAJ7KPzbyJO27J+g5rp6xNFi3TySnoowPqa26aJZh6zJuulQfwL+p/yKzamu5fOu5ZM5Bbj6dqhpFIKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArr/hz/wAjDcf9erf+hpXIV1/w5/5GG4/69W/9DSuvAf7zD1OTHf7tP0PTq8Cr32vAq9PO/wDl38/0PNyT/l58v1CiiivBPdCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6eym8+0jfPOMH6iotUh82yYgcp8w/r+lVNFm/1kBP8AtD+v9K1iAQQRkHrTI2ZyVFS3MJguHiP8J4+naoqRYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRUttCZ7hIh/Eefp3oA3dLh8qyUkcv8AMf6fpUt7N5FpI+ecYH1NTAAAADAHSsnWpv8AVwA/7R/p/WmRuzIooopFhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFdf8ADn/kYbj/AK9W/wDQ0rkK6/4c/wDIw3H/AF6t/wChpXXgP95h6nJjv92n6Hp1eBV77XgVennf/Lv5/oebkn/Lz5fqFFFFeCe6FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBNazG3uUl7A8/TvXUAggEcg1yNb+k3Hm2vlk/NHx+HamiWQazb5CXCjp8rf0rHrq5olnheNujDFctJG0UjRsMMpwaGNMbRRRSGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWxo1vgPcMOvyr/AFrJjjaWRY1GWY4FdTDEsEKRr0UYpoTY8kAEngCuXupjcXLy9iePp2rZ1a48q18sH5pOPw71gUMSCiiikUFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV1/w5/5GG4/69W/9DSuQrr/AIc/8jDcf9erf+hpXXgP95h6nJjv92n6Hp1eBV77XgVennf/AC7+f6Hm5J/y8+X6hRRRXgnuhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFWbG4+zXSuT8p4b6VWooA64HIyOlZOsWuQLlR04f+hqXSbrzYPJY/PH09xV90WRGRhlWGCKZGzOToqe7tmtbhoz06qfUVBSLCiiigAooooAKKKKACiiigAoorsfht/wAjFcf9ejf+hpQBx1FFdj4O/wCRd8Uf9en/ALJJQBx1Fdjp3/JLdX/6+1/nFWla6Jc698OtLtbV4kdJ3kJlJAwGkHYH1FAHnlFei6N4TTw19p1fWBHc/ZU3wrb7nwRnJIIHI4weg5JxjI5JL2bxD4otJNSbzRPcRxsgJCqhYDaPQcn+fXmgDHorvfFXiq80+9vtCt7e0WzEQhX5CGVWjHTBwMZ44qn4x/5F3wv/ANen/skdAHHUUV63PaQXXxGhM8SyGHTRLHu/hcSkA/hk/wA6APJKK9h/4rH/AKgX/kasfxV/wkn/AAjd3/aH9k/Zfk3/AGfzN/31xjPHXFAHm1Fdjp3/ACS3V/8Ar7X+cVHw2/5GK4/69G/9DSgDjqK6Dw/4qudI22lwPtOltuWS3YA4Ddduf5dDk+ua6c+DtL0y6n1qfzZdMijE8dp5TF89cMDzgccHH+1wDkA84orW13xDe69dNJO7Jb5zHbqx2JjOPqeTz79hxWTQAUUUUAFFFFABRRRQAUUUUAFFFT2ls11cLGOnVj6CgDR0e1wDcsOvCf1NaxOBk9KaiLGioowqjAFUNWuvKg8lT88nX2FMjdmXfXH2m6ZwflHC/Sq1FFIsKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK6/4c/8AIw3H/Xq3/oaVyFdf8Of+RhuP+vVv/Q0rrwH+8w9Tkx3+7T9D06vAq99rwKvTzv8A5d/P9Dzck/5efL9QooorwT3QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCSCZreZZU6qenrXTwyrPEsiHKsM1ylaGl3vkSeVIf3bnr6GmhNGnf2guoMD/WLyp/pXOkEEgjBHUGutrJ1Wxzm5jHI++B/OhiTMeiiikUFFFFABRRRQAUUUUAFbHhnXP7A1cXbRebE6GKVR97aSDke/A6/p1rHooA7OTVPA0kjSNot6CxJIU7Rz6ASYH0FFx4o0Oz0S8sdC0yWF7sFJGm/ukEE53EnjoOgyT7HjKKAOlstQ8vwDqNj9ju28y4DfaFizEnMfDNng8fqKuaj/yS3SP+vtv5y1zUeq3sWlTaYk2LOZ97x7Ry3HOcZ/hHftRJqt7LpUOmPNmzhfeke0cNzznGf4j370AaXhnxEdFuHhuQ02mzgieDaGzxjIBIHoD6j6Cr+gXPhxfErYsrtkluIfsG5uYmzzuw3I3EY68CuSp0cjxSLJG7I6EMrKcFSOhBoA73xdd+Gk1HUIbnT7l9U8sATKx2byg2nG/tx27d6tanc6Fb+HfD/wDbdlPc7rRfK8piNvyJuz8y+35V51PcTXUzTXEsksrfeeRizHtyTVi81W91C3tbe6m8yK1TZCu0DauAMcDnoOtAHTx6p4GjkWRdFvSVIIDHcOPUGTB+hpv/AAnH/FXf2r9l/wBF8r7Nsz8/l7t27rjdnnHTt71x1FAHY/2j4E/6At9/32f/AI5TdT8RaGPDVxpOjWFzALiRXbzTwMEEn7zE/dAxx/jyFFAHqemvoF34SvPsOk3r2HngSWqZaR3+TkYYn+737GsnTbuy0jxU0ljoWrRRNYlTb+QWk3bx8+Cx+XgDOetchpms6ho8kklhctCZBhxgMD6cEEfj7n1q1/wlWtf2j/aH23/SvK8nf5SfczuxjGOtAE3hjUNF0q6+2alDcz3CH9ykaKUT/aOWGT6enXrjFv8A4TvVf7d/tDP+j/d+x7vk2en+9/tf04rlqKANTXp9Jur83GkRTwRyZLwyIoVW/wBnBPB9O3bjgZdFFABRRRQAUUUUAFFFFABRRRQAoBJAAyT0ArorC0FrBg/6xuWP9KqaVY4xcyDk/cB/nWtTRLYyaVYImkc4VRmuYnma4maV+rHp6Vc1S98+Tyoz+7Q9fU1n0MaQUUUUhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXX/Dn/AJGG4/69W/8AQ0rkK6/4c/8AIw3H/Xq3/oaV14D/AHmHqcmO/wB2n6Hp1eBV77XgVennf/Lv5/oebkn/AC8+X6hRRRXgnuhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBt6XfeaogkPzqPlJ7itOuSVijBlJBByCK6Gwvlu49rYEq9R6+9NEtGbqVh9nYyxj90TyP7p/wrPrrWUMpVgCDwQawdQ082p8yPJiJ/wC+aGNMoUUUUhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWhpth9oYSyD90DwP7x/wpNP083R8yTIiB/wC+q3lUKoVQABwAKaE2LWZql95SmCM/Ow+YjsKnv75bSPauDK3QenvXPMxdizEkk5JNDEkJRRRSKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArr/hz/wAjDcf9erf+hpXIV1/w5/5GG4/69W/9DSuvAf7zD1OTHf7tP0PTq8Cr32vAq9PO/wDl38/0PNyT/l58v1CiiivBPdCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAp0cjxSB0Yqw6Gm0UAdJZXqXcf92QfeX+oqyyhlKsAQeCDXKRyPFIHRirDoa6Cxv0u12thZR1X1+lMlozb/TTb5kiBMXcd1/+tWfXXVk32lZzJbDB7p/hRYEzHopSCCQRgjqDSUigooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopQCSABknoBQAlaFhppuMSSgiLsO7f/AFqsWOlYxJcjJ7J/jWtTsS2IqhVCqAAOABVa9vUtI/70h+6v9TTb6/S0XauGlPRfT61z8kjyyF3Ysx6mgEgkkeWQu7FmPU02iikUFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV1/w5/wCRhuP+vVv/AENK5Cuv+HP/ACMNx/16t/6GldeA/wB5h6nJjv8Adp+h6dXgVe+14FXp53/y7+f6Hm5J/wAvPl+oUUUV4J7oUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSqxRgykgjoRSUUAbdjqiy4jnIV+zdj/hWnXI1oWWqPBiOXLx9vUU7ktGnd2EV0Mn5ZOzD+tYdzaS2r4kXjsw6GukimjnQPGwZT6UrosilXUMp6giiwJ2OTorYutHBy1s2P9hj/I1kyRvE5WRSrDsRSHcbRRRQMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKdHG8rhY1LMewFa1ro4GGuWz/sKf5mgVzOtrSW6fEa8d2PQVuWlhFajI+aTux/pVlEWNQqKFUdABSSzRwIXkYKo9adhN3H1mX2qLFmOAhn7t2H+NVL3VHnzHFlI+/qaz6LgkKzF2LMSSepNJRRSKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuv+HP/Iw3H/Xq3/oaVyFdf8Of+RhuP+vVv/Q0rrwH+8w9Tkx3+7T9D06vAq99rwKvTzv/AJd/P9Dzck/5efL9QooorwT3QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAkhnlt33xOVPf3rZtdWilws2I39ex/wrCooE0dcDkZHSmSwxzptkQMPeudt76e24Rsr/dbkVrW+rQS4En7pvfp+dO5NiC40YHLW74/2W/xrMmtpoDiWNl9+3511IIIyDkUhAIwQCD2NFh3OSoroptLtZeQmw+qcfpVCXRZV5ikVx6Hg0rDuZlFTyWVzF9+F8eoGR+lQUDCiiigAooooAKKKKACiiigAooqeOyuZfuQvj1IwP1oAgorTi0WVuZZFQeg5NX4dLtYuSm8+r8/pRYV0YUNtNOcRRs3v2/OtO30YDDXD5/2V/wAa1QABgAADsKUkAZJwKdhXGRQxwJtjQKPank4GT0qhcatBFkR/vW9un51k3F9Pc8O2F/urwKLhY1LrVoosrDiR/XsP8axpp5bh98rlj29qjopDSCiiigYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFdf8Of8AkYbj/r1b/wBDSuQrr/hz/wAjDcf9erf+hpXXgP8AeYepyY7/AHafoenV4FXvteBV6ed/8u/n+h5uSf8ALz5fqFFFFeCe6FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA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igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK94tp47m1iniIMciB1x6EZrweun8O+MrjRYRaTxfaLQH5RnDJ9PUe1enlmLhh5tT2Z5mZ4SdeCcN0erVxfxHnjXSbSAkeY8+8D2CkH/0IUT/ABH09YiYLK6eTsJNqj8wT/KuF1fV7rWr5rq6YbsYVV+6g9BXoZhmFGVF06bu2cGAwFaNZVKiskUKKKK+cPogooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK1LLw5q+oxiS2sJWjPRmwoP0JIqebwhr0Cbn06Qj/YZXP5Amtlh6rXMou3ozJ4iknyuSv6oxKKfLFJBI0csbRuvBVxgj8KZWOxruFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA+KJ5pVjQZZq63w5pNquq2qXAVyWySw4yBkAfiKzNIthHb+cR88nT2H+f6VoGXyB5u/Zs+bdnpWlOSjNSavYyqpyi4p2ueodKK8vm+IGrGMxQCEcYErJl/r1x+lR2Xj7WbeQG5aK6TPKugU49iuP5GvpFnGHulr9x87/AGRiLN6feejano9jrEBivIFfjCuOGT6GvKvEXh240C7CsTJbSf6qXHX2Poa9T0fWLXW7EXNsT1w6N95D6GnaxpkWsaXNZygfOMoxH3G7GrxeEp4unzw36PuRhMXUwtTknt1XY8Qop8sTwTPFIpV0YqwPYjg0yvlNj6rcKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOsiTy4kQdFUCs3WpSsMcY6OST+H/wCur9vJ5ttHJnO5QT9e9VNWtzNbB1GWjOfw70yFuYNFFFIs6nwDevb+I1tgTsuY2UjtkAsD+h/OvVK8a8Pebb36XycGE/KT3P8A+r+dehf8JdB5Gfs0nnY+7kbfz/8ArV72WY2lSpOFR2szwszwdSpVU6avc4DxfCsHiu/RehcP+LKGP6msSrmq3j6hqtzdSEFpHJyOmOg/SqdeLWkp1JSjs2z2aMXGnGMt0kFFFFZmgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBraRdgZtnOMnKZ/lWxXIgkHIOCK1rTV8KEuQT/tj+tNMlosXGkwTMWQmNj6DI/Ko4tFjVsySs49AMVfjuIZceXKjZ7A8/lT3ljjGXdVH+0cUCuwRFjQIihVHQCquo3YtoCqn964wvt71Fc6vDGCIf3j+vYViyyvNIXkYsx70XGkMooopFBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2Q==", 16 | "export_temp_image": false, 17 | "force_export_images": false, 18 | "flat_export": true, 19 | "advanced_alpha": false, 20 | "pointfilter": false, 21 | "theme_simplified": false, 22 | "theme_dark": true, 23 | "theme_color1": 5, 24 | "theme_color2": 0, 25 | "uiExportFolderPath": "D:\\Users\\Administrator\\Desktop\\New folder", 26 | "projectExportFolderPath": "D:\\Users\\Administrator\\Desktop\\New folder", 27 | "custom_variable_prefix": "uic", 28 | "backup_cnt": 38, 29 | "autosave_cnt": 0, 30 | "group_color_cnt": 0, 31 | "lvgl_version": "8.3.6", 32 | "callfuncsexport": "C_FILE", 33 | "imageexport": "SOURCE", 34 | "lvgl_include_path": "", 35 | "drive_stdio": "-", 36 | "drive_stdio_path": "", 37 | "drive_posix": "-", 38 | "drive_posix_path": "", 39 | "drive_win32": "-", 40 | "drive_win32_path": "", 41 | "drive_fatfs": "-", 42 | "drive_fatfs_path": "", 43 | "naming": "Name", 44 | "naming_force_lowercase": false, 45 | "nidcnt": 1000412 46 | } -------------------------------------------------------------------------------- /tab5_arduino_basic/ui_font_conthrax24.c: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Size: 24 px 3 | * Bpp: 1 4 | * Opts: --bpp 1 --size 24 --font C:/Users/Administrator/Desktop/experiment/sls_project/assets/Conthrax-SemiBold.otf -o C:/Users/Administrator/Desktop/experiment/sls_project/assets\ui_font_conthrax24.c --format lvgl -r 0x20-0x7f --no-compress --no-prefilter 5 | ******************************************************************************/ 6 | 7 | #include "ui.h" 8 | 9 | #ifndef UI_FONT_CONTHRAX24 10 | #define UI_FONT_CONTHRAX24 1 11 | #endif 12 | 13 | #if UI_FONT_CONTHRAX24 14 | 15 | /*----------------- 16 | * BITMAPS 17 | *----------------*/ 18 | 19 | /*Store the image of the glyphs*/ 20 | static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { 21 | /* U+0020 " " */ 22 | 0x0, 23 | 24 | /* U+0021 "!" */ 25 | 0xff, 0xff, 0xff, 0xff, 0x80, 0x7, 0xfc, 26 | 27 | /* U+0022 "\"" */ 28 | 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8e, 29 | 30 | /* U+0023 "#" */ 31 | 0x1c, 0x1c, 0x7, 0x7, 0x1, 0xc1, 0xc0, 0x70, 32 | 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 33 | 0x70, 0x70, 0x1c, 0x1c, 0x7, 0x7, 0x1, 0xc1, 34 | 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 35 | 0xc1, 0xc0, 0x70, 0x70, 0x1c, 0x1c, 0x0, 36 | 37 | /* U+0024 "$" */ 38 | 0x1, 0x80, 0x0, 0xc0, 0x1f, 0xff, 0xff, 0xff, 39 | 0xff, 0xff, 0xff, 0xc, 0x3, 0x86, 0x1, 0xc3, 40 | 0x0, 0xff, 0xfe, 0x3f, 0xff, 0x8f, 0xff, 0xe0, 41 | 0x30, 0x70, 0x18, 0x38, 0xc, 0x1f, 0xff, 0xff, 42 | 0xff, 0xfe, 0xff, 0xfe, 0x0, 0xc0, 0x0, 0x60, 43 | 0x0, 44 | 45 | /* U+0025 "%" */ 46 | 0x7f, 0x80, 0x30, 0xff, 0xc0, 0x60, 0xc0, 0xc0, 47 | 0xe0, 0xc0, 0xc1, 0xc0, 0xc0, 0xc1, 0x80, 0xc0, 48 | 0xc3, 0x0, 0xc0, 0xc7, 0x0, 0xc0, 0xce, 0x0, 49 | 0x7f, 0x9d, 0xfe, 0x0, 0x1b, 0x3, 0x0, 0x33, 50 | 0x3, 0x0, 0x73, 0x3, 0x0, 0xe3, 0x3, 0x0, 51 | 0xc3, 0x3, 0x1, 0x83, 0x3, 0x3, 0x3, 0xff, 52 | 0x7, 0x1, 0xfe, 53 | 54 | /* U+0026 "&" */ 55 | 0xf, 0xf0, 0x1, 0xff, 0x80, 0x1f, 0xf8, 0x1, 56 | 0xc3, 0x80, 0x1c, 0x38, 0x1, 0xe7, 0x80, 0x1f, 57 | 0xf8, 0x0, 0xff, 0x1e, 0x1f, 0xc3, 0xc7, 0xfe, 58 | 0x78, 0x7c, 0xff, 0xf, 0x7, 0xf0, 0xe0, 0x3e, 59 | 0xe, 0x3, 0xe0, 0xe0, 0x7f, 0xf, 0xff, 0xf8, 60 | 0xff, 0xe3, 0xc7, 0xfc, 0x1e, 61 | 62 | /* U+0027 "'" */ 63 | 0xff, 0xff, 0xf8, 64 | 65 | /* U+0028 "(" */ 66 | 0x1e, 0x7d, 0xc3, 0x8e, 0x1c, 0x38, 0x70, 0xe1, 67 | 0xc3, 0x87, 0xe, 0x1c, 0x38, 0x70, 0xe1, 0xc3, 68 | 0x87, 0xe, 0x1e, 0x1c, 0x3f, 0x3e, 0x3c, 69 | 70 | /* U+0029 ")" */ 71 | 0xf0, 0xfc, 0x1e, 0xe, 0x7, 0x7, 0x7, 0x7, 72 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 73 | 0x7, 0x7, 0x7, 0x7, 0xf, 0xe, 0x1e, 0xfe, 74 | 0xfc, 0xf0, 75 | 76 | /* U+002A "*" */ 77 | 0x3, 0x0, 0xc, 0x0, 0x30, 0x0, 0xc0, 0x73, 78 | 0x39, 0xff, 0xe0, 0xfc, 0x1, 0xe0, 0xf, 0xc0, 79 | 0x33, 0x81, 0x86, 0x6, 0x18, 80 | 81 | /* U+002B "+" */ 82 | 0x7, 0x0, 0x38, 0x1, 0xc0, 0xe, 0xf, 0xff, 83 | 0xff, 0xff, 0xff, 0xe0, 0xe0, 0x7, 0x0, 0x38, 84 | 0x1, 0xc0, 0xe, 0x0, 85 | 86 | /* U+002C "," */ 87 | 0xff, 0xb7, 0xb0, 88 | 89 | /* U+002D "-" */ 90 | 0xff, 0xff, 0xff, 91 | 92 | /* U+002E "." */ 93 | 0xff, 0x80, 94 | 95 | /* U+002F "/" */ 96 | 0x1, 0xc0, 0x60, 0x18, 0xe, 0x3, 0x0, 0xc0, 97 | 0x70, 0x18, 0x6, 0x3, 0x80, 0xe0, 0x30, 0x1c, 98 | 0x7, 0x1, 0x80, 0xe0, 0x38, 0xc, 0x7, 0x1, 99 | 0xc0, 0x60, 0x38, 0xe, 0x0, 100 | 101 | /* U+0030 "0" */ 102 | 0x1f, 0xff, 0xf, 0xff, 0xf1, 0xff, 0xff, 0x78, 103 | 0x0, 0xfe, 0x0, 0xf, 0xc0, 0x1, 0xf8, 0x0, 104 | 0x3f, 0x0, 0x7, 0xe0, 0x0, 0xfc, 0x0, 0x1f, 105 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xe0, 106 | 0x3, 0xdf, 0xff, 0xf3, 0xff, 0xfc, 0x1f, 0xff, 107 | 0x0, 108 | 109 | /* U+0031 "1" */ 110 | 0xff, 0xff, 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 111 | 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 112 | 113 | /* U+0032 "2" */ 114 | 0xff, 0xff, 0x3f, 0xff, 0xef, 0xff, 0xfc, 0x0, 115 | 0x7, 0x0, 0x1, 0xc0, 0x0, 0x70, 0x0, 0x1c, 116 | 0xff, 0xff, 0x7f, 0xff, 0xbf, 0xff, 0xce, 0x0, 117 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 0xf, 118 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 119 | 120 | /* U+0033 "3" */ 121 | 0xff, 0xfe, 0x7f, 0xff, 0xbf, 0xff, 0xe0, 0x0, 122 | 0x70, 0x0, 0x38, 0x0, 0x1c, 0x0, 0xf, 0xff, 123 | 0xfe, 0xff, 0xff, 0x7f, 0xff, 0xc0, 0x0, 0xe0, 124 | 0x0, 0x70, 0x0, 0x38, 0x0, 0x1f, 0xff, 0xff, 125 | 0xff, 0xfe, 0xff, 0xfe, 0x0, 126 | 127 | /* U+0034 "4" */ 128 | 0x0, 0x1f, 0x0, 0x3, 0xf8, 0x0, 0x7f, 0x80, 129 | 0x1f, 0xb8, 0x3, 0xf3, 0x80, 0x7c, 0x38, 0x1f, 130 | 0x83, 0x83, 0xf0, 0x38, 0x7c, 0x3, 0x8f, 0x80, 131 | 0x38, 0xf0, 0x3, 0x8f, 0xff, 0xff, 0xff, 0xff, 132 | 0xff, 0xff, 0xff, 0x0, 0x3, 0x80, 0x0, 0x38, 133 | 0x0, 0x3, 0x80, 134 | 135 | /* U+0035 "5" */ 136 | 0xff, 0xff, 0xbf, 0xff, 0xef, 0xff, 0xfb, 0x80, 137 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 138 | 0xff, 0xfc, 0xff, 0xff, 0x9f, 0xff, 0xf0, 0x0, 139 | 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 0x7f, 140 | 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x0, 141 | 142 | /* U+0036 "6" */ 143 | 0x1f, 0xff, 0x9f, 0xff, 0xe7, 0xff, 0xfb, 0xc0, 144 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 145 | 0xff, 0xfc, 0xff, 0xff, 0xbf, 0xff, 0xfe, 0x0, 146 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0x77, 147 | 0xff, 0xfd, 0xff, 0xfe, 0x1f, 0xff, 0x0, 148 | 149 | /* U+0037 "7" */ 150 | 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x80, 151 | 0x1, 0xe0, 0x0, 0x3c, 0x0, 0xf, 0x80, 0x3, 152 | 0xe0, 0x0, 0xf8, 0x0, 0x3e, 0x0, 0xf, 0x80, 153 | 0x3, 0xe0, 0x0, 0xf8, 0x0, 0x3e, 0x0, 0xf, 154 | 0x80, 0x3, 0xe0, 0x0, 0xf8, 0x0, 0x1e, 0x0, 155 | 0x0, 156 | 157 | /* U+0038 "8" */ 158 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0x80, 159 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1d, 160 | 0xff, 0xfe, 0x7f, 0xff, 0xbf, 0xff, 0xfe, 0x0, 161 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7f, 162 | 0xff, 0xfd, 0xff, 0xfe, 0x3f, 0xff, 0x0, 163 | 164 | /* U+0039 "9" */ 165 | 0x3f, 0xfe, 0x1f, 0xff, 0xef, 0xff, 0xfb, 0x80, 166 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 167 | 0xff, 0xff, 0x7f, 0xff, 0xcf, 0xff, 0xf0, 0x0, 168 | 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 0xff, 169 | 0xff, 0xfb, 0xff, 0xfe, 0xff, 0xfe, 0x0, 170 | 171 | /* U+003A ":" */ 172 | 0xff, 0x80, 0x7, 0xfc, 173 | 174 | /* U+003B ";" */ 175 | 0xff, 0x80, 0x7, 0xfd, 0xbd, 0x80, 176 | 177 | /* U+003C "<" */ 178 | 0x0, 0x0, 0x3, 0xc0, 0x7c, 0x1f, 0xc7, 0xf0, 179 | 0x7c, 0x3, 0x80, 0x1e, 0x0, 0xfe, 0x0, 0xfe, 180 | 0x0, 0xfc, 0x0, 0xf0, 0x1, 0x0, 181 | 182 | /* U+003D "=" */ 183 | 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 184 | 0x7f, 0xff, 0xff, 0xff, 0xff, 185 | 186 | /* U+003E ">" */ 187 | 0x0, 0x7, 0x0, 0x3f, 0x0, 0x7e, 0x0, 0x7e, 188 | 0x0, 0xf8, 0x0, 0xe0, 0x1e, 0x3, 0xf0, 0xfc, 189 | 0x3f, 0x81, 0xe0, 0x8, 0x0, 0x0, 190 | 191 | /* U+003F "?" */ 192 | 0xff, 0xfb, 0xff, 0xff, 0xff, 0xc0, 0x7, 0x0, 193 | 0x1c, 0x0, 0x70, 0x7, 0xc0, 0x7e, 0x7, 0xe0, 194 | 0x1e, 0x0, 0xe0, 0x3, 0x80, 0x0, 0x0, 0x0, 195 | 0x0, 0x0, 0x3, 0x80, 0xe, 0x0, 0x38, 0x0, 196 | 197 | /* U+0040 "@" */ 198 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0x80, 199 | 0x7, 0xe0, 0x1, 0xf8, 0x7f, 0xfe, 0x3f, 0xff, 200 | 0x8e, 0x7, 0xe3, 0x81, 0xf8, 0xe0, 0x7e, 0x38, 201 | 0x1f, 0x8f, 0xff, 0xe3, 0xff, 0xb8, 0x7f, 0xee, 202 | 0x0, 0x3, 0x80, 0x0, 0xf0, 0x0, 0x1f, 0xff, 203 | 0xf3, 0xff, 0xfc, 0x7f, 0xff, 204 | 205 | /* U+0041 "A" */ 206 | 0x0, 0x7c, 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 207 | 0x0, 0xf, 0x78, 0x0, 0x1e, 0x70, 0x0, 0x78, 208 | 0xf0, 0x0, 0xf0, 0xf0, 0x3, 0xc1, 0xe0, 0x7, 209 | 0x81, 0xe0, 0x1e, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 210 | 0xff, 0xff, 0x81, 0xff, 0xff, 0x87, 0xff, 0xff, 211 | 0x1f, 0x0, 0xf, 0x3c, 0x0, 0x1e, 0xf8, 0x0, 212 | 0x1e, 213 | 214 | /* U+0042 "B" */ 215 | 0xff, 0xff, 0x9f, 0xff, 0xfb, 0xff, 0xff, 0xf0, 216 | 0x0, 0x7e, 0x0, 0xf, 0xc0, 0x1, 0xf8, 0x0, 217 | 0x3f, 0xff, 0xfe, 0xff, 0xff, 0xdf, 0xff, 0xff, 218 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xc0, 219 | 0x1, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 220 | 0x80, 221 | 222 | /* U+0043 "C" */ 223 | 0x1f, 0xff, 0xdf, 0xff, 0xf7, 0xff, 0xff, 0xc0, 224 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 225 | 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 226 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x3c, 0x0, 0x7, 227 | 0xff, 0xfd, 0xff, 0xff, 0x1f, 0xff, 0xc0, 228 | 229 | /* U+0044 "D" */ 230 | 0xff, 0xfe, 0x1f, 0xff, 0xf3, 0xff, 0xff, 0x70, 231 | 0x0, 0xfe, 0x0, 0xf, 0xc0, 0x1, 0xf8, 0x0, 232 | 0x3f, 0x0, 0x7, 0xe0, 0x0, 0xfc, 0x0, 0x1f, 233 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xc0, 234 | 0x3, 0xbf, 0xff, 0xf7, 0xff, 0xfc, 0xff, 0xfe, 235 | 0x0, 236 | 237 | /* U+0045 "E" */ 238 | 0x1f, 0xff, 0xcf, 0xff, 0xf7, 0xff, 0xff, 0xc0, 239 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 240 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 241 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x3c, 0x0, 0x7, 242 | 0xff, 0xfc, 0xff, 0xff, 0x1f, 0xff, 0xc0, 243 | 244 | /* U+0046 "F" */ 245 | 0x1f, 0xff, 0xdf, 0xff, 0xf7, 0xff, 0xff, 0xc0, 246 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 247 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 248 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 249 | 0x0, 0x3, 0x80, 0x0, 0xe0, 0x0, 0x0, 250 | 251 | /* U+0047 "G" */ 252 | 0x1f, 0xff, 0xef, 0xff, 0xfd, 0xff, 0xff, 0xf8, 253 | 0x0, 0xe, 0x0, 0x1, 0xc0, 0x0, 0x38, 0x0, 254 | 0x7, 0x7, 0xff, 0xe0, 0xff, 0xfc, 0x1f, 0xff, 255 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xe0, 256 | 0x1, 0xdf, 0xff, 0xfb, 0xff, 0xff, 0x1f, 0xff, 257 | 0xc0, 258 | 259 | /* U+0048 "H" */ 260 | 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 0x80, 261 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 262 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 263 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 264 | 0x0, 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xc0, 265 | 266 | /* U+0049 "I" */ 267 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 268 | 269 | /* U+004A "J" */ 270 | 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 271 | 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 272 | 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 273 | 0x0, 0x7, 0x0, 0xf, 0xff, 0xfe, 0xff, 0xfe, 274 | 0xff, 0xf8, 275 | 276 | /* U+004B "K" */ 277 | 0xe0, 0x7, 0xb8, 0x3, 0xce, 0x0, 0xf3, 0x80, 278 | 0x78, 0xe0, 0x3c, 0x38, 0x1e, 0xe, 0x7, 0x83, 279 | 0xff, 0xc0, 0xff, 0xe0, 0x3f, 0xfc, 0xe, 0x7, 280 | 0x83, 0x80, 0xf0, 0xe0, 0x3e, 0x38, 0x7, 0xce, 281 | 0x0, 0xf3, 0x80, 0x1e, 0xe0, 0x3, 0xc0, 282 | 283 | /* U+004C "L" */ 284 | 0xe0, 0x0, 0x70, 0x0, 0x38, 0x0, 0x1c, 0x0, 285 | 0xe, 0x0, 0x7, 0x0, 0x3, 0x80, 0x1, 0xc0, 286 | 0x0, 0xe0, 0x0, 0x70, 0x0, 0x38, 0x0, 0x1c, 287 | 0x0, 0xe, 0x0, 0x7, 0x80, 0x1, 0xff, 0xfe, 288 | 0xff, 0xff, 0x1f, 0xff, 0x80, 289 | 290 | /* U+004D "M" */ 291 | 0xfc, 0x0, 0x1f, 0xff, 0x0, 0x1f, 0xff, 0xc0, 292 | 0xf, 0xfd, 0xe0, 0xf, 0x7e, 0xf0, 0x7, 0xbf, 293 | 0x3c, 0x7, 0x9f, 0x9e, 0x3, 0xcf, 0xc7, 0x81, 294 | 0xc7, 0xe3, 0xc1, 0xe3, 0xf1, 0xe0, 0xf1, 0xf8, 295 | 0x78, 0xf0, 0xfc, 0x3c, 0x78, 0x7e, 0xf, 0x38, 296 | 0x3f, 0x7, 0xbc, 0x1f, 0x81, 0xfc, 0xf, 0xc0, 297 | 0xfe, 0x7, 0xe0, 0x3e, 0x3, 0x80, 298 | 299 | /* U+004E "N" */ 300 | 0x7c, 0x0, 0x7f, 0xe0, 0x7, 0xff, 0x0, 0x7e, 301 | 0xf8, 0x7, 0xe7, 0x80, 0x7e, 0x7c, 0x7, 0xe3, 302 | 0xe0, 0x7e, 0x1f, 0x7, 0xe0, 0xf0, 0x7e, 0xf, 303 | 0x87, 0xe0, 0x7c, 0x7e, 0x3, 0xe7, 0xe0, 0x1e, 304 | 0x7e, 0x1, 0xf7, 0xe0, 0xf, 0xfe, 0x0, 0x7f, 305 | 0xe0, 0x3, 0xe0, 306 | 307 | /* U+004F "O" */ 308 | 0x1f, 0xff, 0x87, 0xff, 0xfe, 0x7f, 0xff, 0xef, 309 | 0x0, 0xf, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 310 | 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 311 | 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 312 | 0x7f, 0x0, 0xf, 0x7f, 0xff, 0xe7, 0xff, 0xfe, 313 | 0x1f, 0xff, 0x80, 314 | 315 | /* U+0050 "P" */ 316 | 0xff, 0xff, 0x3f, 0xff, 0xef, 0xff, 0xff, 0x80, 317 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 318 | 0x80, 0x7, 0xe0, 0x3, 0xff, 0xff, 0xff, 0xff, 319 | 0xfb, 0xff, 0xfc, 0xe0, 0x0, 0x38, 0x0, 0xe, 320 | 0x0, 0x3, 0x80, 0x0, 0xe0, 0x0, 0x0, 321 | 322 | /* U+0051 "Q" */ 323 | 0x1f, 0xff, 0x87, 0xff, 0xfe, 0x7f, 0xff, 0xef, 324 | 0x0, 0xf, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 325 | 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 326 | 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 327 | 0x7f, 0x0, 0xf, 0x7f, 0xff, 0xe7, 0xff, 0xfe, 328 | 0x1f, 0xff, 0x80, 0x0, 0xf0, 0x0, 0x7, 0x80, 329 | 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0, 0x1c, 330 | 331 | /* U+0052 "R" */ 332 | 0xff, 0xff, 0x1f, 0xff, 0xf3, 0xff, 0xff, 0x70, 333 | 0x1, 0xee, 0x0, 0x1d, 0xc0, 0x3, 0xb8, 0x0, 334 | 0x77, 0x0, 0xe, 0xe0, 0x3, 0xdf, 0xff, 0xfb, 335 | 0xff, 0xfe, 0x7f, 0xff, 0xe, 0x1, 0xf1, 0xc0, 336 | 0x1f, 0x38, 0x1, 0xf7, 0x0, 0x1e, 0xe0, 0x1, 337 | 0xe0, 338 | 339 | /* U+0053 "S" */ 340 | 0x3f, 0xff, 0x9f, 0xff, 0xef, 0xff, 0xfb, 0x80, 341 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 342 | 0xff, 0xfc, 0x7f, 0xff, 0x8f, 0xff, 0xf0, 0x0, 343 | 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 0x7f, 344 | 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x0, 345 | 346 | /* U+0054 "T" */ 347 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 348 | 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 349 | 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 350 | 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 351 | 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 352 | 0x0, 0xe0, 0x0, 353 | 354 | /* U+0055 "U" */ 355 | 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 356 | 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 357 | 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 358 | 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 359 | 0x7f, 0x0, 0xf, 0x7f, 0xff, 0xe7, 0xff, 0xfe, 360 | 0x1f, 0xff, 0x80, 361 | 362 | /* U+0056 "V" */ 363 | 0xf8, 0x0, 0x1e, 0xf0, 0x0, 0x79, 0xf0, 0x0, 364 | 0xf1, 0xe0, 0x3, 0xc1, 0xe0, 0x7, 0x83, 0xc0, 365 | 0x1e, 0x3, 0xc0, 0x3c, 0x7, 0x80, 0xf0, 0x7, 366 | 0x81, 0xe0, 0xf, 0x7, 0x80, 0xf, 0xf, 0x0, 367 | 0x1e, 0x3c, 0x0, 0x1e, 0x78, 0x0, 0x3d, 0xe0, 368 | 0x0, 0x3f, 0x80, 0x0, 0x3f, 0x0, 0x0, 0x7c, 369 | 0x0, 370 | 371 | /* U+0057 "W" */ 372 | 0x70, 0x7, 0xc0, 0x1e, 0xf0, 0x1f, 0xc0, 0x39, 373 | 0xe0, 0x3f, 0x80, 0xf3, 0xc0, 0x77, 0x1, 0xe3, 374 | 0x80, 0xef, 0x3, 0xc7, 0x83, 0xce, 0x7, 0xf, 375 | 0x7, 0x1c, 0x1e, 0xe, 0xe, 0x3c, 0x3c, 0x1e, 376 | 0x3c, 0x78, 0x70, 0x3c, 0x70, 0x71, 0xe0, 0x38, 377 | 0xe0, 0xf3, 0xc0, 0x73, 0xc1, 0xe7, 0x0, 0xf7, 378 | 0x1, 0xde, 0x1, 0xee, 0x3, 0xbc, 0x1, 0xfc, 379 | 0x7, 0xf0, 0x3, 0xf8, 0x7, 0xe0, 0x3, 0xe0, 380 | 0xf, 0xc0, 381 | 382 | /* U+0058 "X" */ 383 | 0x7c, 0x0, 0xf9, 0xf0, 0xf, 0x87, 0xc0, 0xf8, 384 | 0x1f, 0xf, 0x80, 0x7c, 0xf8, 0x1, 0xff, 0x80, 385 | 0x7, 0xf8, 0x0, 0x1f, 0x80, 0x0, 0xf8, 0x0, 386 | 0xf, 0xe0, 0x0, 0xff, 0x80, 0xf, 0x9e, 0x0, 387 | 0xf8, 0xf8, 0xf, 0x83, 0xe0, 0xf8, 0xf, 0x8f, 388 | 0x80, 0x3e, 0x78, 0x0, 0xf8, 389 | 390 | /* U+0059 "Y" */ 391 | 0xf8, 0x0, 0xfb, 0xe0, 0x7, 0x8f, 0x0, 0x78, 392 | 0x3c, 0x7, 0x81, 0xf0, 0x3c, 0x7, 0x83, 0xc0, 393 | 0x1e, 0x3c, 0x0, 0x7b, 0xc0, 0x1, 0xde, 0x0, 394 | 0xf, 0xe0, 0x0, 0x3e, 0x0, 0x0, 0xe0, 0x0, 395 | 0x7, 0x0, 0x0, 0x38, 0x0, 0x1, 0xc0, 0x0, 396 | 0xe, 0x0, 0x0, 0x70, 0x0, 397 | 398 | /* U+005A "Z" */ 399 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 400 | 0xf, 0x0, 0xf, 0xc0, 0x7, 0xf0, 0x7, 0xf8, 401 | 0x7, 0xf8, 0x7, 0xf8, 0x7, 0xf8, 0x7, 0xf8, 402 | 0x3, 0xf8, 0x0, 0xf8, 0x0, 0x3c, 0x0, 0xf, 403 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 404 | 405 | /* U+005B "[" */ 406 | 0xff, 0xff, 0xff, 0xe, 0x1c, 0x38, 0x70, 0xe1, 407 | 0xc3, 0x87, 0xe, 0x1c, 0x38, 0x70, 0xe1, 0xc3, 408 | 0x87, 0xe, 0x1c, 0x38, 0x70, 0xff, 0xff, 0xf8, 409 | 410 | /* U+005C "\\" */ 411 | 0xe0, 0x38, 0x6, 0x1, 0xc0, 0x70, 0xc, 0x3, 412 | 0x80, 0xe0, 0x18, 0x7, 0x1, 0xc0, 0x30, 0xc, 413 | 0x3, 0x80, 0x60, 0x18, 0x7, 0x0, 0xc0, 0x30, 414 | 0xe, 0x1, 0x80, 0x60, 0x1c, 415 | 416 | /* U+005D "]" */ 417 | 0xfe, 0xff, 0xff, 0x7, 0x7, 0x7, 0x7, 0x7, 418 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 419 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 420 | 0xff, 0xff, 0xfe, 421 | 422 | /* U+005E "^" */ 423 | 0x7, 0x0, 0x7c, 0x3, 0xe0, 0x3b, 0x1, 0xdc, 424 | 0xc, 0x60, 0xe3, 0x6, 0x1c, 0x30, 0x63, 0x83, 425 | 0x18, 0x1d, 0xc0, 0x6e, 0x3, 0x80, 426 | 427 | /* U+005F "_" */ 428 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 429 | 430 | /* U+0060 "`" */ 431 | 0xe3, 0x87, 0x1c, 0x38, 0x60, 432 | 433 | /* U+0061 "a" */ 434 | 0xff, 0xfe, 0x7f, 0xff, 0xbf, 0xff, 0xe0, 0x0, 435 | 0xf0, 0x0, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 436 | 0xff, 0xe0, 0x3, 0xf0, 0x1, 0xff, 0xff, 0xff, 437 | 0xff, 0xf7, 0xff, 0xf8, 438 | 439 | /* U+0062 "b" */ 440 | 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 0x80, 441 | 0x0, 0xe0, 0x0, 0x3f, 0xff, 0xcf, 0xff, 0xfb, 442 | 0xff, 0xff, 0xe0, 0x3, 0xf8, 0x0, 0x7e, 0x0, 443 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7f, 444 | 0x0, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0x8f, 0xff, 445 | 0xc0, 446 | 447 | /* U+0063 "c" */ 448 | 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x0, 449 | 0xe0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 450 | 0xe0, 0x0, 0xf0, 0x0, 0xff, 0xff, 0x7f, 0xff, 451 | 0x3f, 0xff, 452 | 453 | /* U+0064 "d" */ 454 | 0x0, 0x1, 0xc0, 0x0, 0x70, 0x0, 0x1c, 0x0, 455 | 0x7, 0x0, 0x1, 0xcf, 0xff, 0xf7, 0xff, 0xff, 456 | 0xff, 0xff, 0xf0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 457 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7f, 458 | 0x0, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0x8f, 0xff, 459 | 0xc0, 460 | 461 | /* U+0065 "e" */ 462 | 0x3f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0, 463 | 0x7e, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 464 | 0xff, 0xe0, 0x0, 0x70, 0x0, 0x3f, 0xff, 0xef, 465 | 0xff, 0xf3, 0xff, 0xf8, 466 | 467 | /* U+0066 "f" */ 468 | 0x7, 0xe1, 0xfc, 0x7f, 0x8e, 0x1, 0xc1, 0xff, 469 | 0xff, 0xff, 0xff, 0x1c, 0x3, 0x80, 0x70, 0xe, 470 | 0x1, 0xc0, 0x38, 0x7, 0x0, 0xe0, 0x1c, 0x3, 471 | 0x80, 472 | 473 | /* U+0067 "g" */ 474 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0x80, 475 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 476 | 0x80, 0x7, 0xf0, 0x1, 0xff, 0xff, 0xf7, 0xff, 477 | 0xfc, 0x7f, 0xff, 0x0, 0x1, 0xc0, 0x0, 0x70, 478 | 0x0, 0x3d, 0xff, 0xff, 0x7f, 0xff, 0x9f, 0xff, 479 | 0xc0, 480 | 481 | /* U+0068 "h" */ 482 | 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 0x80, 483 | 0x0, 0xe0, 0x0, 0x3f, 0xff, 0xcf, 0xff, 0xfb, 484 | 0xff, 0xff, 0xe0, 0x3, 0xf8, 0x0, 0x7e, 0x0, 485 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 486 | 0x0, 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 487 | 0x70, 488 | 489 | /* U+0069 "i" */ 490 | 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xfc, 491 | 492 | /* U+006A "j" */ 493 | 0x7, 0x7, 0x7, 0x0, 0x0, 0x7, 0x7, 0x7, 494 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 495 | 0x7, 0x7, 0x7, 0x7, 0xff, 0xfe, 0xfc, 496 | 497 | /* U+006B "k" */ 498 | 0xe0, 0x0, 0x70, 0x0, 0x38, 0x0, 0x1c, 0x0, 499 | 0xe, 0x0, 0x7, 0x0, 0x7b, 0x80, 0x3d, 0xc0, 500 | 0x3c, 0xe0, 0x3c, 0x70, 0x3c, 0x3f, 0xfe, 0x1f, 501 | 0xfe, 0xf, 0xff, 0x87, 0x1, 0xe3, 0x80, 0xf1, 502 | 0xc0, 0x3c, 0xe0, 0xf, 0x70, 0x3, 0xc0, 503 | 504 | /* U+006C "l" */ 505 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 506 | 507 | /* U+006D "m" */ 508 | 0x3f, 0xff, 0xf8, 0xff, 0xff, 0xfb, 0xff, 0xff, 509 | 0xff, 0x81, 0xc0, 0xfe, 0x3, 0x80, 0xfc, 0x7, 510 | 0x1, 0xf8, 0xe, 0x3, 0xf0, 0x1c, 0x7, 0xe0, 511 | 0x38, 0xf, 0xc0, 0x70, 0x1f, 0x80, 0xe0, 0x3f, 512 | 0x1, 0xc0, 0x7e, 0x3, 0x80, 0xe0, 513 | 514 | /* U+006E "n" */ 515 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 516 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 517 | 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 518 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xc0, 519 | 520 | /* U+006F "o" */ 521 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 522 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 523 | 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0xff, 0xff, 524 | 0xfd, 0xff, 0xfe, 0x3f, 0xff, 0x0, 525 | 526 | /* U+0070 "p" */ 527 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 528 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 529 | 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0xff, 0xff, 530 | 0xff, 0xff, 0xfe, 0xff, 0xff, 0x38, 0x0, 0xe, 531 | 0x0, 0x3, 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 532 | 0x0, 533 | 534 | /* U+0071 "q" */ 535 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 536 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 537 | 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0x7f, 0xff, 538 | 0xfd, 0xff, 0xff, 0x3f, 0xff, 0xc0, 0x0, 0x70, 539 | 0x0, 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 540 | 0x70, 541 | 542 | /* U+0072 "r" */ 543 | 0x3f, 0xfb, 0xff, 0xff, 0xff, 0xe0, 0xe, 0x0, 544 | 0x70, 0x3, 0x80, 0x1c, 0x0, 0xe0, 0x7, 0x0, 545 | 0x38, 0x1, 0xc0, 0xe, 0x0, 0x0, 546 | 547 | /* U+0073 "s" */ 548 | 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 549 | 0xe0, 0x0, 0xff, 0xfe, 0xff, 0xff, 0x7f, 0xff, 550 | 0x0, 0x7, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 551 | 0xff, 0xfe, 552 | 553 | /* U+0074 "t" */ 554 | 0x1c, 0x3, 0x80, 0x70, 0xe, 0xf, 0xff, 0xff, 555 | 0xff, 0xf8, 0xe0, 0x1c, 0x3, 0x80, 0x70, 0xe, 556 | 0x1, 0xc0, 0x38, 0x7, 0xf8, 0x7f, 0x7, 0xe0, 557 | 558 | /* U+0075 "u" */ 559 | 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 0x80, 560 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 561 | 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0xff, 0xff, 562 | 0xfd, 0xff, 0xfe, 0x3f, 0xff, 0x0, 563 | 564 | /* U+0076 "v" */ 565 | 0xf0, 0x0, 0xf7, 0x80, 0x1e, 0x38, 0x1, 0xc3, 566 | 0xc0, 0x3c, 0x1e, 0x3, 0x81, 0xe0, 0x78, 0xf, 567 | 0xf, 0x0, 0xf0, 0xf0, 0x7, 0x9e, 0x0, 0x3d, 568 | 0xc0, 0x3, 0xfc, 0x0, 0x1f, 0x80, 0x1, 0xf8, 569 | 0x0, 570 | 571 | /* U+0077 "w" */ 572 | 0xf0, 0x1f, 0x80, 0xf7, 0x1, 0xf8, 0xe, 0x78, 573 | 0x3f, 0xc1, 0xe7, 0x83, 0xfc, 0x1e, 0x38, 0x39, 574 | 0xc1, 0xc3, 0xc7, 0x9e, 0x3c, 0x3c, 0x71, 0xe3, 575 | 0x81, 0xc7, 0xe, 0x38, 0x1e, 0xf0, 0xf7, 0x81, 576 | 0xee, 0x7, 0x70, 0xf, 0xe0, 0x7f, 0x0, 0xfe, 577 | 0x7, 0xf0, 0x7, 0xc0, 0x3e, 0x0, 578 | 579 | /* U+0078 "x" */ 580 | 0x7c, 0x3, 0xc7, 0xc0, 0xf0, 0x7c, 0x3c, 0x7, 581 | 0xcf, 0x0, 0x7f, 0xc0, 0x7, 0xf0, 0x0, 0x7c, 582 | 0x0, 0x1f, 0xc0, 0x7, 0xbc, 0x1, 0xe3, 0xc0, 583 | 0x78, 0x3c, 0x3e, 0x3, 0xcf, 0x80, 0x3e, 584 | 585 | /* U+0079 "y" */ 586 | 0xf0, 0x1, 0xef, 0x0, 0x3d, 0xe0, 0xf, 0x1e, 587 | 0x1, 0xc1, 0xc0, 0x78, 0x3c, 0xe, 0x3, 0xc3, 588 | 0xc0, 0x78, 0x70, 0x7, 0x9e, 0x0, 0xf7, 0x80, 589 | 0xf, 0xe0, 0x0, 0xfc, 0x0, 0x1f, 0x0, 0x1, 590 | 0xe0, 0x0, 0x78, 0x0, 0x7e, 0x0, 0xf, 0xc0, 591 | 0x1, 0xf0, 0x0, 592 | 593 | /* U+007A "z" */ 594 | 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 595 | 0x0, 0x3e, 0x1, 0xfc, 0xf, 0xe0, 0x3f, 0x80, 596 | 0xfc, 0x0, 0xf0, 0x0, 0xff, 0xff, 0xff, 0xff, 597 | 0xff, 0xff, 598 | 599 | /* U+007B "{" */ 600 | 0x7, 0x87, 0xc7, 0xe3, 0x81, 0xc0, 0xe0, 0x70, 601 | 0x38, 0x1c, 0xe, 0x7, 0x3, 0x87, 0xc7, 0xc3, 602 | 0xf0, 0x38, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 603 | 0xe0, 0x70, 0x38, 0x1f, 0x87, 0xc1, 0xe0, 604 | 605 | /* U+007C "|" */ 606 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 607 | 0xf8, 608 | 609 | /* U+007D "}" */ 610 | 0xf8, 0x7e, 0x3f, 0x81, 0xc0, 0xe0, 0x70, 0x38, 611 | 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xf8, 0x3c, 612 | 0x3e, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xe0, 613 | 0x70, 0x38, 0x1c, 0xfe, 0x7e, 0x3e, 0x0, 614 | 615 | /* U+007E "~" */ 616 | 0x78, 0x7, 0xf8, 0xf1, 0xfe, 0x3, 0xe0 617 | }; 618 | 619 | 620 | /*--------------------- 621 | * GLYPH DESCRIPTION 622 | *--------------------*/ 623 | 624 | static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { 625 | {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, 626 | {.bitmap_index = 0, .adv_w = 129, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0}, 627 | {.bitmap_index = 1, .adv_w = 102, .box_w = 3, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 628 | {.bitmap_index = 8, .adv_w = 189, .box_w = 9, .box_h = 7, .ofs_x = 1, .ofs_y = 11}, 629 | {.bitmap_index = 16, .adv_w = 328, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 630 | {.bitmap_index = 55, .adv_w = 313, .box_w = 17, .box_h = 19, .ofs_x = 1, .ofs_y = -1}, 631 | {.bitmap_index = 96, .adv_w = 438, .box_w = 24, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 632 | {.bitmap_index = 147, .adv_w = 336, .box_w = 20, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 633 | {.bitmap_index = 192, .adv_w = 104, .box_w = 3, .box_h = 7, .ofs_x = 1, .ofs_y = 11}, 634 | {.bitmap_index = 195, .adv_w = 174, .box_w = 7, .box_h = 26, .ofs_x = 3, .ofs_y = -5}, 635 | {.bitmap_index = 218, .adv_w = 174, .box_w = 8, .box_h = 26, .ofs_x = 0, .ofs_y = -5}, 636 | {.bitmap_index = 244, .adv_w = 223, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = 6}, 637 | {.bitmap_index = 265, .adv_w = 236, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = 2}, 638 | {.bitmap_index = 285, .adv_w = 103, .box_w = 3, .box_h = 7, .ofs_x = 2, .ofs_y = -4}, 639 | {.bitmap_index = 288, .adv_w = 146, .box_w = 8, .box_h = 3, .ofs_x = 1, .ofs_y = 7}, 640 | {.bitmap_index = 291, .adv_w = 103, .box_w = 3, .box_h = 3, .ofs_x = 2, .ofs_y = 0}, 641 | {.bitmap_index = 293, .adv_w = 159, .box_w = 10, .box_h = 23, .ofs_x = 0, .ofs_y = -3}, 642 | {.bitmap_index = 322, .adv_w = 348, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 643 | {.bitmap_index = 363, .adv_w = 130, .box_w = 6, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 644 | {.bitmap_index = 376, .adv_w = 331, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 645 | {.bitmap_index = 415, .adv_w = 324, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 646 | {.bitmap_index = 452, .adv_w = 348, .box_w = 20, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 647 | {.bitmap_index = 495, .adv_w = 331, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 648 | {.bitmap_index = 534, .adv_w = 333, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 649 | {.bitmap_index = 573, .adv_w = 318, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 650 | {.bitmap_index = 614, .adv_w = 347, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 651 | {.bitmap_index = 653, .adv_w = 333, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 652 | {.bitmap_index = 692, .adv_w = 103, .box_w = 3, .box_h = 10, .ofs_x = 2, .ofs_y = 2}, 653 | {.bitmap_index = 696, .adv_w = 103, .box_w = 3, .box_h = 14, .ofs_x = 2, .ofs_y = -2}, 654 | {.bitmap_index = 702, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 2}, 655 | {.bitmap_index = 724, .adv_w = 236, .box_w = 13, .box_h = 8, .ofs_x = 1, .ofs_y = 4}, 656 | {.bitmap_index = 737, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 2}, 657 | {.bitmap_index = 759, .adv_w = 242, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 658 | {.bitmap_index = 791, .adv_w = 336, .box_w = 18, .box_h = 20, .ofs_x = 1, .ofs_y = -5}, 659 | {.bitmap_index = 836, .adv_w = 374, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 660 | {.bitmap_index = 885, .adv_w = 353, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 661 | {.bitmap_index = 926, .adv_w = 327, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 662 | {.bitmap_index = 965, .adv_w = 356, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 663 | {.bitmap_index = 1006, .adv_w = 326, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 664 | {.bitmap_index = 1045, .adv_w = 320, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 665 | {.bitmap_index = 1084, .adv_w = 356, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 666 | {.bitmap_index = 1125, .adv_w = 348, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 667 | {.bitmap_index = 1164, .adv_w = 110, .box_w = 3, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 668 | {.bitmap_index = 1171, .adv_w = 300, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 669 | {.bitmap_index = 1205, .adv_w = 328, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 670 | {.bitmap_index = 1244, .adv_w = 308, .box_w = 17, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 671 | {.bitmap_index = 1281, .adv_w = 458, .box_w = 25, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 672 | {.bitmap_index = 1335, .adv_w = 376, .box_w = 20, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 673 | {.bitmap_index = 1378, .adv_w = 379, .box_w = 20, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 674 | {.bitmap_index = 1421, .adv_w = 338, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 675 | {.bitmap_index = 1460, .adv_w = 379, .box_w = 20, .box_h = 22, .ofs_x = 1, .ofs_y = -5}, 676 | {.bitmap_index = 1515, .adv_w = 348, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 677 | {.bitmap_index = 1556, .adv_w = 329, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 678 | {.bitmap_index = 1595, .adv_w = 335, .box_w = 20, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 679 | {.bitmap_index = 1638, .adv_w = 375, .box_w = 20, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 680 | {.bitmap_index = 1681, .adv_w = 374, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 681 | {.bitmap_index = 1730, .adv_w = 500, .box_w = 31, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 682 | {.bitmap_index = 1796, .adv_w = 343, .box_w = 21, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 683 | {.bitmap_index = 1841, .adv_w = 344, .box_w = 21, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 684 | {.bitmap_index = 1886, .adv_w = 328, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 685 | {.bitmap_index = 1925, .adv_w = 174, .box_w = 7, .box_h = 27, .ofs_x = 3, .ofs_y = -5}, 686 | {.bitmap_index = 1949, .adv_w = 159, .box_w = 10, .box_h = 23, .ofs_x = 0, .ofs_y = -3}, 687 | {.bitmap_index = 1978, .adv_w = 174, .box_w = 8, .box_h = 27, .ofs_x = 0, .ofs_y = -5}, 688 | {.bitmap_index = 2005, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 4}, 689 | {.bitmap_index = 2027, .adv_w = 247, .box_w = 15, .box_h = 3, .ofs_x = 1, .ofs_y = -4}, 690 | {.bitmap_index = 2033, .adv_w = 151, .box_w = 6, .box_h = 6, .ofs_x = 2, .ofs_y = 14}, 691 | {.bitmap_index = 2038, .adv_w = 303, .box_w = 17, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 692 | {.bitmap_index = 2066, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 693 | {.bitmap_index = 2107, .adv_w = 280, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 694 | {.bitmap_index = 2133, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 695 | {.bitmap_index = 2174, .adv_w = 303, .box_w = 17, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 696 | {.bitmap_index = 2202, .adv_w = 188, .box_w = 11, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 697 | {.bitmap_index = 2227, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, 698 | {.bitmap_index = 2268, .adv_w = 338, .box_w = 18, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 699 | {.bitmap_index = 2309, .adv_w = 104, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 700 | {.bitmap_index = 2316, .adv_w = 108, .box_w = 8, .box_h = 23, .ofs_x = -3, .ofs_y = -5}, 701 | {.bitmap_index = 2339, .adv_w = 305, .box_w = 17, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 702 | {.bitmap_index = 2378, .adv_w = 104, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 703 | {.bitmap_index = 2385, .adv_w = 425, .box_w = 23, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 704 | {.bitmap_index = 2423, .adv_w = 339, .box_w = 18, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 705 | {.bitmap_index = 2453, .adv_w = 333, .box_w = 18, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 706 | {.bitmap_index = 2483, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, 707 | {.bitmap_index = 2524, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, 708 | {.bitmap_index = 2565, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 709 | {.bitmap_index = 2587, .adv_w = 301, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 710 | {.bitmap_index = 2613, .adv_w = 188, .box_w = 11, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 711 | {.bitmap_index = 2637, .adv_w = 336, .box_w = 18, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 712 | {.bitmap_index = 2667, .adv_w = 319, .box_w = 20, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, 713 | {.bitmap_index = 2700, .adv_w = 447, .box_w = 28, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, 714 | {.bitmap_index = 2746, .adv_w = 304, .box_w = 19, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, 715 | {.bitmap_index = 2777, .adv_w = 310, .box_w = 19, .box_h = 18, .ofs_x = 0, .ofs_y = -5}, 716 | {.bitmap_index = 2820, .adv_w = 281, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 717 | {.bitmap_index = 2846, .adv_w = 174, .box_w = 9, .box_h = 27, .ofs_x = 1, .ofs_y = -5}, 718 | {.bitmap_index = 2877, .adv_w = 162, .box_w = 3, .box_h = 23, .ofs_x = 4, .ofs_y = -3}, 719 | {.bitmap_index = 2886, .adv_w = 174, .box_w = 9, .box_h = 27, .ofs_x = 0, .ofs_y = -5}, 720 | {.bitmap_index = 2917, .adv_w = 236, .box_w = 13, .box_h = 4, .ofs_x = 1, .ofs_y = 7} 721 | }; 722 | 723 | /*--------------------- 724 | * CHARACTER MAPPING 725 | *--------------------*/ 726 | 727 | 728 | 729 | /*Collect the unicode lists and glyph_id offsets*/ 730 | static const lv_font_fmt_txt_cmap_t cmaps[] = 731 | { 732 | { 733 | .range_start = 32, .range_length = 95, .glyph_id_start = 1, 734 | .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY 735 | } 736 | }; 737 | 738 | /*----------------- 739 | * KERNING 740 | *----------------*/ 741 | 742 | 743 | /*Map glyph_ids to kern left classes*/ 744 | static const uint8_t kern_left_class_mapping[] = 745 | { 746 | 0, 0, 0, 1, 0, 0, 0, 2, 747 | 1, 3, 0, 0, 0, 4, 5, 4, 748 | 6, 7, 8, 0, 9, 10, 11, 12, 749 | 13, 14, 15, 0, 0, 0, 0, 0, 750 | 0, 3, 16, 9, 17, 18, 0, 19, 751 | 20, 0, 0, 21, 22, 23, 24, 0, 752 | 18, 25, 18, 26, 27, 28, 21, 29, 753 | 30, 22, 31, 32, 3, 0, 0, 0, 754 | 0, 0, 33, 34, 35, 0, 36, 37, 755 | 38, 38, 0, 39, 40, 0, 38, 38, 756 | 34, 34, 0, 41, 42, 43, 44, 45, 757 | 46, 40, 45, 47, 3, 0, 0, 0 758 | }; 759 | 760 | /*Map glyph_ids to kern right classes*/ 761 | static const uint8_t kern_right_class_mapping[] = 762 | { 763 | 0, 0, 0, 1, 0, 0, 0, 2, 764 | 1, 0, 0, 0, 0, 3, 4, 3, 765 | 5, 6, 7, 0, 0, 8, 0, 9, 766 | 10, 11, 12, 0, 0, 0, 0, 0, 767 | 13, 0, 14, 0, 15, 0, 15, 16, 768 | 15, 0, 0, 17, 0, 18, 19, 0, 769 | 15, 0, 15, 0, 20, 21, 18, 22, 770 | 23, 24, 25, 26, 0, 0, 0, 0, 771 | 0, 0, 27, 0, 28, 28, 28, 29, 772 | 28, 0, 0, 30, 0, 0, 31, 31, 773 | 28, 31, 28, 31, 32, 33, 34, 35, 774 | 36, 37, 38, 39, 0, 0, 0, 0 775 | }; 776 | 777 | /*Kern values between classes*/ 778 | static const int8_t kern_class_values[] = 779 | { 780 | 0, 0, -23, 0, 0, 0, 0, -15, 781 | -8, 0, -8, 0, 0, -46, -8, 0, 782 | -38, 0, 0, 0, 0, 0, 0, 0, 783 | 0, 0, 0, -12, 0, 0, -12, -14, 784 | 0, 0, 0, 0, 0, 0, 0, 0, 785 | 0, 0, 0, 0, 0, 0, 0, 0, 786 | 0, 0, 0, 0, 0, 0, 0, 0, 787 | 0, 0, 0, -12, -31, -19, 0, -42, 788 | 0, 0, -8, 0, 0, 0, 0, 0, 789 | -14, -12, 0, 0, -12, 0, 0, 0, 790 | 0, 0, 0, 0, 0, 0, 0, 0, 791 | 0, 0, 0, 0, 0, 0, 0, 0, 792 | 0, 0, 0, 0, 0, 0, 0, 0, 793 | 0, 0, 0, 42, 0, 0, 0, 0, 794 | 0, 0, 0, 0, 0, -23, 0, 0, 795 | 0, 0, -8, -12, -8, 0, -23, -8, 796 | 0, 0, 0, -8, 0, 0, -8, 0, 797 | 0, -38, -38, -38, 0, -46, 0, 0, 798 | 0, -26, 19, 0, 0, -43, -8, -46, 799 | 0, 0, -46, 0, 0, 0, 0, 0, 800 | 0, 0, 0, 0, 0, -31, 0, 0, 801 | 0, -31, 0, 0, -15, 0, 0, 0, 802 | -38, -31, -15, -38, -38, 0, 0, 0, 803 | 4, 0, 0, 0, 0, 0, -12, 0, 804 | -20, -12, 0, 0, -27, 0, 0, 0, 805 | 0, 0, 0, 0, 0, 0, 0, 0, 806 | -58, -15, -15, -46, 0, -8, -15, 0, 807 | 0, 0, 0, 0, 0, -15, -23, 0, 808 | 0, -23, -23, 0, -15, 0, 0, 0, 809 | 0, -15, 0, 0, -8, 0, 0, 0, 810 | -4, 0, 0, -4, 0, 0, 0, 0, 811 | 0, 0, 0, 0, 0, 0, 0, 0, 812 | 0, 0, 0, 0, 0, 0, 0, 0, 813 | 0, 0, 0, 0, 0, 0, 0, 0, 814 | 0, -8, 0, 0, 0, 0, 0, 0, 815 | 0, 0, 0, 0, 0, 0, 0, 0, 816 | 0, 0, 0, 0, 0, 0, 0, 0, 817 | 0, 0, 0, 0, 0, 0, 0, 0, 818 | 0, 0, 0, 0, 0, 0, 0, 0, 819 | 0, 0, 0, 0, 0, 0, 0, 0, 820 | 0, 0, 0, 0, 0, -13, 0, 0, 821 | 0, 0, 0, 0, 0, -17, -11, -11, 822 | -12, 0, 0, 0, 0, 0, 0, 0, 823 | 0, 0, 0, 0, -5, 0, 0, -28, 824 | 0, 0, 0, 0, 0, -10, 0, 0, 825 | -15, 0, 0, 0, 0, 0, 0, 0, 826 | 0, 0, 0, 0, 0, 0, 0, 0, 827 | 0, 0, 0, 0, 0, 0, 0, 0, 828 | 0, 0, 0, 0, 0, 0, 0, 0, 829 | -8, 0, 0, 0, -7, 0, 0, -8, 830 | 0, -11, 0, 0, 0, 0, 0, 0, 831 | 0, 0, 0, 0, 0, 0, 0, 0, 832 | 0, 0, 0, 0, 0, 0, 0, 0, 833 | 0, 0, 0, 0, 0, -12, 0, -12, 834 | 0, 0, 0, -7, 0, 0, -8, 0, 835 | 0, 0, 0, 0, 0, 0, 0, 0, 836 | 0, 0, 0, 0, 0, 0, 0, 0, 837 | 0, 0, 0, 0, 0, 0, 0, 0, 838 | 0, 0, 0, 0, 0, 0, -42, 0, 839 | 0, -4, 0, -19, -7, 0, -4, -3, 840 | 0, 0, 0, 0, 0, 0, 0, 0, 841 | 0, 0, 0, 0, 0, 0, 0, 0, 842 | 0, 0, 0, 0, 0, 0, 0, 0, 843 | 0, 0, 0, -8, 0, -8, 0, 0, 844 | 0, 0, 0, 0, -4, 0, 0, 0, 845 | 0, 0, 0, 0, 0, 0, 0, 0, 846 | 0, 0, 0, 0, 0, 0, 0, 0, 847 | 0, 0, 0, 0, 0, 0, 0, 0, 848 | 0, 0, -8, 0, -12, 0, 0, 0, 849 | 0, 0, 0, -8, 0, 0, 0, 0, 850 | 0, 0, 0, 0, 0, 0, 0, 0, 851 | 0, 0, 0, 0, 0, 0, 0, 0, 852 | 0, 0, 0, 0, 0, 0, 0, 0, 853 | 0, -46, -5, 0, -31, 0, 0, 0, 854 | 0, 0, 0, 0, 0, -38, 8, -15, 855 | 0, 0, -15, 0, 0, -50, -73, -42, 856 | 0, -65, 0, -7, -12, -20, 15, 0, 857 | 0, -36, -12, -46, 0, 0, -40, 0, 858 | 0, 0, 0, -15, 0, 0, 0, 0, 859 | 0, 0, 0, 0, 0, 0, 0, 0, 860 | 0, 0, 0, 0, 0, 0, 0, 0, 861 | 0, 0, 0, 0, 0, 0, 0, 0, 862 | 0, 0, 0, 0, 0, 0, 0, -8, 863 | 0, -8, 0, -15, 0, 0, 0, 0, 864 | 0, 0, 0, 0, -15, 0, 0, 0, 865 | 0, 0, 0, -8, -15, -8, -12, -19, 866 | 0, 0, 0, 0, 0, 0, 0, 0, 867 | 0, 0, 0, -7, 0, 0, 0, -7, 868 | 0, 8, -27, 0, 0, 0, 0, 0, 869 | 0, 0, 0, -25, 0, 0, -31, 0, 870 | 0, 0, 0, 0, 0, 0, 5, 0, 871 | 0, 0, 0, 0, 0, 0, 0, 0, 872 | 0, 0, 0, 0, 0, 0, 0, 0, 873 | 0, -12, 0, 0, 0, 0, 0, 0, 874 | 0, 0, -8, 0, 0, 0, 0, 0, 875 | 0, 0, 0, 0, -7, 0, 0, 0, 876 | 0, 0, 0, 0, 0, 0, 0, 0, 877 | 0, 0, 0, 0, 0, 0, -8, 0, 878 | -15, 0, 0, 0, 0, 0, 0, 0, 879 | 0, -15, 0, 0, -5, 0, 0, 0, 880 | 0, 0, 0, 0, 0, 0, 0, 0, 881 | 0, 0, 0, 0, 0, 0, 0, 0, 882 | -7, 0, 0, 0, -7, 0, -38, 0, 883 | 0, 0, 0, 0, 0, 0, 0, 0, 884 | 0, -12, 0, 0, 0, 0, 0, 0, 885 | 0, -4, 0, 0, 0, -7, -15, -15, 886 | 0, 0, 0, -19, -15, -24, 0, 0, 887 | -24, -3, 0, 0, 0, -23, 0, 0, 888 | 0, 0, 0, 0, 0, 0, -31, 0, 889 | 0, 0, 0, -5, 0, 0, -73, -69, 890 | -31, 0, -81, 0, 0, -4, 0, 0, 891 | 0, 0, -27, -4, -42, -16, 0, -42, 892 | 0, 0, 0, 0, 0, 0, 0, 0, 893 | 0, 0, 0, 0, 0, -4, 0, 0, 894 | 0, 0, 0, 0, 0, 0, -5, -11, 895 | 0, -12, 0, 0, 0, 0, 0, 0, 896 | 0, 0, 0, 0, 0, 0, 0, 0, 897 | 0, -7, -27, 4, -34, 0, 0, 0, 898 | 0, 0, 0, 0, -4, -38, 0, 0, 899 | -24, 0, 0, 0, 0, 0, -7, -20, 900 | -11, 0, 0, 0, 0, 0, -4, 0, 901 | 0, 0, 0, 0, 0, 0, 0, 0, 902 | -8, 0, 0, 0, 0, 0, 0, 0, 903 | 0, 0, 0, -4, 0, -7, 0, 0, 904 | -3, 0, -4, -5, -20, -11, 0, -22, 905 | -7, -6, -12, 0, 0, 0, 0, 0, 906 | -11, 0, 0, 0, 0, 0, 0, 0, 907 | 0, 0, -15, 0, 0, 0, 0, 0, 908 | 0, 0, 0, -15, 0, 0, 0, 0, 909 | 0, 0, 0, -3, -4, -10, 0, 0, 910 | 0, 0, 0, 0, 0, 0, 0, 0, 911 | -5, 0, -7, -7, 0, 0, -23, -38, 912 | -38, -54, 0, 0, 0, 0, 0, 0, 913 | 0, 0, -50, -8, -8, -69, 4, 0, 914 | 0, 6, 4, 0, 0, 3, 0, 0, 915 | -8, 0, 0, -8, -8, 0, 0, 0, 916 | 0, 0, 0, 0, 0, -31, -38, -31, 917 | -50, 0, 0, 0, 0, 0, 0, 0, 918 | 0, -73, -15, -20, -58, 0, -5, -12, 919 | 4, 8, 5, -4, 8, 0, -13, -35, 920 | 0, 0, -35, -30, 0, -19, 0, 0, 921 | -12, 0, 0, 0, -27, -38, -15, -35, 922 | 0, 0, 0, 0, 0, 0, 0, 0, 923 | -42, -8, -20, -39, 0, -12, -13, 0, 924 | 5, 2, -6, 4, 0, -12, -24, 0, 925 | 0, -24, -22, 0, -15, 0, 0, -8, 926 | 0, 0, 0, -23, -46, -38, -54, 0, 927 | 0, 0, 0, 0, 0, 0, 0, -65, 928 | -19, -26, -79, 0, -8, -13, 3, 8, 929 | 4, 0, 10, 0, -27, -42, 0, 0, 930 | -42, -38, -12, -23, -8, 0, -12, -8, 931 | -12, 0, 0, 0, 0, 0, 0, 0, 932 | 0, 0, 0, 0, 0, 0, 0, -7, 933 | 0, 0, 0, 0, 0, 0, 0, 0, 934 | 0, 0, 0, 0, 0, 0, 0, 0, 935 | 0, 0, 0, 0, 0, 0, 0, 0, 936 | -8, 0, 0, 0, 0, 0, 0, 0, 937 | 0, 0, 0, 0, -15, 0, 0, 0, 938 | 0, 0, 0, 0, 0, 0, 0, 0, 939 | 0, 0, 0, 0, 0, 0, 0, 0, 940 | 0, 0, -12, -7, 0, -10, 0, -12, 941 | 0, 0, 0, -15, 0, 0, 0, 0, 942 | 0, 0, 0, -23, 0, 0, 0, 0, 943 | 0, 0, 0, 0, 0, 0, 0, 0, 944 | 0, 0, 0, 0, 0, 0, 0, -6, 945 | 0, -11, -7, -8, -11, 0, 0, 0, 946 | 0, 0, 0, 0, 0, 0, 0, 0, 947 | 0, 0, 0, 0, 0, 0, 0, 0, 948 | 0, 0, 0, 0, 0, 0, 0, 0, 949 | 0, -7, 0, 0, 0, 0, 8, 0, 950 | 0, 0, 0, 0, 0, -8, 0, 0, 951 | 0, 0, 0, 0, 0, 0, 0, 0, 952 | 0, -15, 0, 0, 0, 0, 0, 0, 953 | 0, 0, 0, 0, 0, 0, 0, 0, 954 | 0, 0, 0, 0, 0, 0, 0, -6, 955 | 0, 0, -6, 0, 12, -12, -46, 8, 956 | -15, 0, 0, 0, 0, 0, 0, 0, 957 | 12, 0, 0, 0, 0, 0, 0, 0, 958 | 0, 0, 0, 0, 0, 0, 0, 0, 959 | 8, 0, 0, 0, 8, 0, 0, 0, 960 | 0, 0, 0, -12, 0, 0, 0, 0, 961 | 0, 0, 0, 0, 0, 0, 0, -23, 962 | 0, 0, 0, 0, 0, 0, 0, 0, 963 | 0, 0, 0, 0, 0, 0, 0, 0, 964 | 29, 0, 0, 0, 0, -11, 0, 0, 965 | -11, 0, 0, 0, 0, 0, 0, 0, 966 | 0, 0, 0, 0, 0, 0, 0, 0, 967 | 0, 0, 0, 0, 0, 0, 0, 0, 968 | 0, 0, 0, 0, 0, 0, 0, 27, 969 | 0, 0, 0, 0, 0, 0, 0, 0, 970 | 0, 0, -5, 0, -20, 0, 0, 0, 971 | 0, 0, 0, 0, 0, 0, 0, 0, 972 | 0, 0, 0, 0, 0, 0, 0, 0, 973 | 0, 0, 0, 0, -12, 0, 0, 0, 974 | 0, 0, 0, 0, 0, 0, 0, 0, 975 | 0, -15, 0, 0, 0, 0, 0, 0, 976 | 0, 0, 0, 0, 0, 0, 0, 0, 977 | 0, 0, 0, 0, 0, 0, 0, 0, 978 | 0, 0, 0, 0, 8, 0, 0, 0, 979 | 8, 0, 0, 0, 0, 0, 0, -8, 980 | 0, -8, -7, -12, 0, 0, 0, 0, 981 | 0, 0, 0, -8, 0, 0, 0, 0, 982 | 0, 0, 0, 0, 0, 0, 0, 0, 983 | 0, 0, 0, 0, 0, 0, 0, 0, 984 | 0, -5, 0, 0, -5, 0, 0, 0, 985 | 0, 0, 0, 0, 0, 0, 0, 0, 986 | 0, 0, 0, 0, 0, 0, 0, 0, 987 | 0, 0, 0, 0, 0, 0, 0, 0, 988 | 0, 0, 8, 0, 0, 0, 8, 0, 989 | 0, 0, 0, 0, 0, 0, 0, -8, 990 | 0, 0, 0, 0, 0, 0, 0, 0, 991 | 0, 0, 0, 0, 0, 0, 0, 0, 992 | 0, 0, 0, 0, 0, 0, 0, 0, 993 | 0, 0, 0, 0, 0, 0, 0, 0, 994 | 0, 0, 0, 0, 0, -27, -46, -12, 995 | -35, 0, 0, 0, 0, 0, 0, 0, 996 | 0, 0, 0, 0, 0, 0, 0, 0, 997 | 0, 0, 0, 0, 0, 0, 0, -13, 998 | 0, 0, -17, 0, 0, 0, 0, 0, 999 | 0, 0, 0, 0, -19, 0, 0, -19, 1000 | 0, 0, 0, 0, 0, 0, 0, 0, 1001 | 0, 0, 0, 0, 0, 0, 0, 0, 1002 | 0, 0, 0, 0, 0, -4, -7, 0, 1003 | 0, -7, 0, 0, 0, 0, 0, 0, 1004 | 0, 0, 0, 0, 0, 0, 0, 0, 1005 | 0, 0, 0, 0, 0, 0, -8, 0, 1006 | 0, 0, 0, 0, 0, 0, 0, 0, 1007 | 0, 0, 0, 0, 0, 0, 0, 0, 1008 | 0, 0, 0, 0, 0, 0, 0, 0, 1009 | 0 1010 | }; 1011 | 1012 | 1013 | /*Collect the kern class' data in one place*/ 1014 | static const lv_font_fmt_txt_kern_classes_t kern_classes = 1015 | { 1016 | .class_pair_values = kern_class_values, 1017 | .left_class_mapping = kern_left_class_mapping, 1018 | .right_class_mapping = kern_right_class_mapping, 1019 | .left_class_cnt = 47, 1020 | .right_class_cnt = 39, 1021 | }; 1022 | 1023 | /*-------------------- 1024 | * ALL CUSTOM DATA 1025 | *--------------------*/ 1026 | 1027 | #if LVGL_VERSION_MAJOR == 8 1028 | /*Store all the custom data of the font*/ 1029 | static lv_font_fmt_txt_glyph_cache_t cache; 1030 | #endif 1031 | 1032 | #if LVGL_VERSION_MAJOR >= 8 1033 | static const lv_font_fmt_txt_dsc_t font_dsc = { 1034 | #else 1035 | static lv_font_fmt_txt_dsc_t font_dsc = { 1036 | #endif 1037 | .glyph_bitmap = glyph_bitmap, 1038 | .glyph_dsc = glyph_dsc, 1039 | .cmaps = cmaps, 1040 | .kern_dsc = &kern_classes, 1041 | .kern_scale = 16, 1042 | .cmap_num = 1, 1043 | .bpp = 1, 1044 | .kern_classes = 1, 1045 | .bitmap_format = 0, 1046 | #if LVGL_VERSION_MAJOR == 8 1047 | .cache = &cache 1048 | #endif 1049 | }; 1050 | 1051 | 1052 | 1053 | /*----------------- 1054 | * PUBLIC FONT 1055 | *----------------*/ 1056 | 1057 | /*Initialize a public general font descriptor*/ 1058 | #if LVGL_VERSION_MAJOR >= 8 1059 | const lv_font_t ui_font_conthrax24 = { 1060 | #else 1061 | lv_font_t ui_font_conthrax24 = { 1062 | #endif 1063 | .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ 1064 | .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ 1065 | .line_height = 27, /*The maximum line height required by the font*/ 1066 | .base_line = 5, /*Baseline measured from the bottom of the line*/ 1067 | #if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) 1068 | .subpx = LV_FONT_SUBPX_NONE, 1069 | #endif 1070 | #if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 1071 | .underline_position = -2, 1072 | .underline_thickness = 2, 1073 | #endif 1074 | .dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ 1075 | #if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9 1076 | .fallback = NULL, 1077 | #endif 1078 | .user_data = NULL, 1079 | }; 1080 | 1081 | 1082 | 1083 | #endif /*#if UI_FONT_CONTHRAX24*/ 1084 | 1085 | -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/assets/ui_font_conthrax24.c: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Size: 24 px 3 | * Bpp: 1 4 | * Opts: --bpp 1 --size 24 --font C:/Users/Administrator/Desktop/experiment/sls_project/assets/Conthrax-SemiBold.otf -o C:/Users/Administrator/Desktop/experiment/sls_project/assets\ui_font_conthrax24.c --format lvgl -r 0x20-0x7f --no-compress --no-prefilter 5 | ******************************************************************************/ 6 | 7 | #include "ui.h" 8 | 9 | #ifndef UI_FONT_CONTHRAX24 10 | #define UI_FONT_CONTHRAX24 1 11 | #endif 12 | 13 | #if UI_FONT_CONTHRAX24 14 | 15 | /*----------------- 16 | * BITMAPS 17 | *----------------*/ 18 | 19 | /*Store the image of the glyphs*/ 20 | static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = { 21 | /* U+0020 " " */ 22 | 0x0, 23 | 24 | /* U+0021 "!" */ 25 | 0xff, 0xff, 0xff, 0xff, 0x80, 0x7, 0xfc, 26 | 27 | /* U+0022 "\"" */ 28 | 0xe3, 0xf1, 0xf8, 0xfc, 0x7e, 0x3f, 0x1f, 0x8e, 29 | 30 | /* U+0023 "#" */ 31 | 0x1c, 0x1c, 0x7, 0x7, 0x1, 0xc1, 0xc0, 0x70, 32 | 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 33 | 0x70, 0x70, 0x1c, 0x1c, 0x7, 0x7, 0x1, 0xc1, 34 | 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 35 | 0xc1, 0xc0, 0x70, 0x70, 0x1c, 0x1c, 0x0, 36 | 37 | /* U+0024 "$" */ 38 | 0x1, 0x80, 0x0, 0xc0, 0x1f, 0xff, 0xff, 0xff, 39 | 0xff, 0xff, 0xff, 0xc, 0x3, 0x86, 0x1, 0xc3, 40 | 0x0, 0xff, 0xfe, 0x3f, 0xff, 0x8f, 0xff, 0xe0, 41 | 0x30, 0x70, 0x18, 0x38, 0xc, 0x1f, 0xff, 0xff, 42 | 0xff, 0xfe, 0xff, 0xfe, 0x0, 0xc0, 0x0, 0x60, 43 | 0x0, 44 | 45 | /* U+0025 "%" */ 46 | 0x7f, 0x80, 0x30, 0xff, 0xc0, 0x60, 0xc0, 0xc0, 47 | 0xe0, 0xc0, 0xc1, 0xc0, 0xc0, 0xc1, 0x80, 0xc0, 48 | 0xc3, 0x0, 0xc0, 0xc7, 0x0, 0xc0, 0xce, 0x0, 49 | 0x7f, 0x9d, 0xfe, 0x0, 0x1b, 0x3, 0x0, 0x33, 50 | 0x3, 0x0, 0x73, 0x3, 0x0, 0xe3, 0x3, 0x0, 51 | 0xc3, 0x3, 0x1, 0x83, 0x3, 0x3, 0x3, 0xff, 52 | 0x7, 0x1, 0xfe, 53 | 54 | /* U+0026 "&" */ 55 | 0xf, 0xf0, 0x1, 0xff, 0x80, 0x1f, 0xf8, 0x1, 56 | 0xc3, 0x80, 0x1c, 0x38, 0x1, 0xe7, 0x80, 0x1f, 57 | 0xf8, 0x0, 0xff, 0x1e, 0x1f, 0xc3, 0xc7, 0xfe, 58 | 0x78, 0x7c, 0xff, 0xf, 0x7, 0xf0, 0xe0, 0x3e, 59 | 0xe, 0x3, 0xe0, 0xe0, 0x7f, 0xf, 0xff, 0xf8, 60 | 0xff, 0xe3, 0xc7, 0xfc, 0x1e, 61 | 62 | /* U+0027 "'" */ 63 | 0xff, 0xff, 0xf8, 64 | 65 | /* U+0028 "(" */ 66 | 0x1e, 0x7d, 0xc3, 0x8e, 0x1c, 0x38, 0x70, 0xe1, 67 | 0xc3, 0x87, 0xe, 0x1c, 0x38, 0x70, 0xe1, 0xc3, 68 | 0x87, 0xe, 0x1e, 0x1c, 0x3f, 0x3e, 0x3c, 69 | 70 | /* U+0029 ")" */ 71 | 0xf0, 0xfc, 0x1e, 0xe, 0x7, 0x7, 0x7, 0x7, 72 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 73 | 0x7, 0x7, 0x7, 0x7, 0xf, 0xe, 0x1e, 0xfe, 74 | 0xfc, 0xf0, 75 | 76 | /* U+002A "*" */ 77 | 0x3, 0x0, 0xc, 0x0, 0x30, 0x0, 0xc0, 0x73, 78 | 0x39, 0xff, 0xe0, 0xfc, 0x1, 0xe0, 0xf, 0xc0, 79 | 0x33, 0x81, 0x86, 0x6, 0x18, 80 | 81 | /* U+002B "+" */ 82 | 0x7, 0x0, 0x38, 0x1, 0xc0, 0xe, 0xf, 0xff, 83 | 0xff, 0xff, 0xff, 0xe0, 0xe0, 0x7, 0x0, 0x38, 84 | 0x1, 0xc0, 0xe, 0x0, 85 | 86 | /* U+002C "," */ 87 | 0xff, 0xb7, 0xb0, 88 | 89 | /* U+002D "-" */ 90 | 0xff, 0xff, 0xff, 91 | 92 | /* U+002E "." */ 93 | 0xff, 0x80, 94 | 95 | /* U+002F "/" */ 96 | 0x1, 0xc0, 0x60, 0x18, 0xe, 0x3, 0x0, 0xc0, 97 | 0x70, 0x18, 0x6, 0x3, 0x80, 0xe0, 0x30, 0x1c, 98 | 0x7, 0x1, 0x80, 0xe0, 0x38, 0xc, 0x7, 0x1, 99 | 0xc0, 0x60, 0x38, 0xe, 0x0, 100 | 101 | /* U+0030 "0" */ 102 | 0x1f, 0xff, 0xf, 0xff, 0xf1, 0xff, 0xff, 0x78, 103 | 0x0, 0xfe, 0x0, 0xf, 0xc0, 0x1, 0xf8, 0x0, 104 | 0x3f, 0x0, 0x7, 0xe0, 0x0, 0xfc, 0x0, 0x1f, 105 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xe0, 106 | 0x3, 0xdf, 0xff, 0xf3, 0xff, 0xfc, 0x1f, 0xff, 107 | 0x0, 108 | 109 | /* U+0031 "1" */ 110 | 0xff, 0xff, 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 0x71, 111 | 0xc7, 0x1c, 0x71, 0xc7, 0x1c, 112 | 113 | /* U+0032 "2" */ 114 | 0xff, 0xff, 0x3f, 0xff, 0xef, 0xff, 0xfc, 0x0, 115 | 0x7, 0x0, 0x1, 0xc0, 0x0, 0x70, 0x0, 0x1c, 116 | 0xff, 0xff, 0x7f, 0xff, 0xbf, 0xff, 0xce, 0x0, 117 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 0xf, 118 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 119 | 120 | /* U+0033 "3" */ 121 | 0xff, 0xfe, 0x7f, 0xff, 0xbf, 0xff, 0xe0, 0x0, 122 | 0x70, 0x0, 0x38, 0x0, 0x1c, 0x0, 0xf, 0xff, 123 | 0xfe, 0xff, 0xff, 0x7f, 0xff, 0xc0, 0x0, 0xe0, 124 | 0x0, 0x70, 0x0, 0x38, 0x0, 0x1f, 0xff, 0xff, 125 | 0xff, 0xfe, 0xff, 0xfe, 0x0, 126 | 127 | /* U+0034 "4" */ 128 | 0x0, 0x1f, 0x0, 0x3, 0xf8, 0x0, 0x7f, 0x80, 129 | 0x1f, 0xb8, 0x3, 0xf3, 0x80, 0x7c, 0x38, 0x1f, 130 | 0x83, 0x83, 0xf0, 0x38, 0x7c, 0x3, 0x8f, 0x80, 131 | 0x38, 0xf0, 0x3, 0x8f, 0xff, 0xff, 0xff, 0xff, 132 | 0xff, 0xff, 0xff, 0x0, 0x3, 0x80, 0x0, 0x38, 133 | 0x0, 0x3, 0x80, 134 | 135 | /* U+0035 "5" */ 136 | 0xff, 0xff, 0xbf, 0xff, 0xef, 0xff, 0xfb, 0x80, 137 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 138 | 0xff, 0xfc, 0xff, 0xff, 0x9f, 0xff, 0xf0, 0x0, 139 | 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 0x7f, 140 | 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x0, 141 | 142 | /* U+0036 "6" */ 143 | 0x1f, 0xff, 0x9f, 0xff, 0xe7, 0xff, 0xfb, 0xc0, 144 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 145 | 0xff, 0xfc, 0xff, 0xff, 0xbf, 0xff, 0xfe, 0x0, 146 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0x77, 147 | 0xff, 0xfd, 0xff, 0xfe, 0x1f, 0xff, 0x0, 148 | 149 | /* U+0037 "7" */ 150 | 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0x80, 151 | 0x1, 0xe0, 0x0, 0x3c, 0x0, 0xf, 0x80, 0x3, 152 | 0xe0, 0x0, 0xf8, 0x0, 0x3e, 0x0, 0xf, 0x80, 153 | 0x3, 0xe0, 0x0, 0xf8, 0x0, 0x3e, 0x0, 0xf, 154 | 0x80, 0x3, 0xe0, 0x0, 0xf8, 0x0, 0x1e, 0x0, 155 | 0x0, 156 | 157 | /* U+0038 "8" */ 158 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0x80, 159 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1d, 160 | 0xff, 0xfe, 0x7f, 0xff, 0xbf, 0xff, 0xfe, 0x0, 161 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7f, 162 | 0xff, 0xfd, 0xff, 0xfe, 0x3f, 0xff, 0x0, 163 | 164 | /* U+0039 "9" */ 165 | 0x3f, 0xfe, 0x1f, 0xff, 0xef, 0xff, 0xfb, 0x80, 166 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 167 | 0xff, 0xff, 0x7f, 0xff, 0xcf, 0xff, 0xf0, 0x0, 168 | 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 0xff, 169 | 0xff, 0xfb, 0xff, 0xfe, 0xff, 0xfe, 0x0, 170 | 171 | /* U+003A ":" */ 172 | 0xff, 0x80, 0x7, 0xfc, 173 | 174 | /* U+003B ";" */ 175 | 0xff, 0x80, 0x7, 0xfd, 0xbd, 0x80, 176 | 177 | /* U+003C "<" */ 178 | 0x0, 0x0, 0x3, 0xc0, 0x7c, 0x1f, 0xc7, 0xf0, 179 | 0x7c, 0x3, 0x80, 0x1e, 0x0, 0xfe, 0x0, 0xfe, 180 | 0x0, 0xfc, 0x0, 0xf0, 0x1, 0x0, 181 | 182 | /* U+003D "=" */ 183 | 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 184 | 0x7f, 0xff, 0xff, 0xff, 0xff, 185 | 186 | /* U+003E ">" */ 187 | 0x0, 0x7, 0x0, 0x3f, 0x0, 0x7e, 0x0, 0x7e, 188 | 0x0, 0xf8, 0x0, 0xe0, 0x1e, 0x3, 0xf0, 0xfc, 189 | 0x3f, 0x81, 0xe0, 0x8, 0x0, 0x0, 190 | 191 | /* U+003F "?" */ 192 | 0xff, 0xfb, 0xff, 0xff, 0xff, 0xc0, 0x7, 0x0, 193 | 0x1c, 0x0, 0x70, 0x7, 0xc0, 0x7e, 0x7, 0xe0, 194 | 0x1e, 0x0, 0xe0, 0x3, 0x80, 0x0, 0x0, 0x0, 195 | 0x0, 0x0, 0x3, 0x80, 0xe, 0x0, 0x38, 0x0, 196 | 197 | /* U+0040 "@" */ 198 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0x80, 199 | 0x7, 0xe0, 0x1, 0xf8, 0x7f, 0xfe, 0x3f, 0xff, 200 | 0x8e, 0x7, 0xe3, 0x81, 0xf8, 0xe0, 0x7e, 0x38, 201 | 0x1f, 0x8f, 0xff, 0xe3, 0xff, 0xb8, 0x7f, 0xee, 202 | 0x0, 0x3, 0x80, 0x0, 0xf0, 0x0, 0x1f, 0xff, 203 | 0xf3, 0xff, 0xfc, 0x7f, 0xff, 204 | 205 | /* U+0041 "A" */ 206 | 0x0, 0x7c, 0x0, 0x1, 0xfc, 0x0, 0x3, 0xf8, 207 | 0x0, 0xf, 0x78, 0x0, 0x1e, 0x70, 0x0, 0x78, 208 | 0xf0, 0x0, 0xf0, 0xf0, 0x3, 0xc1, 0xe0, 0x7, 209 | 0x81, 0xe0, 0x1e, 0x3, 0xc0, 0x3c, 0x3, 0xc0, 210 | 0xff, 0xff, 0x81, 0xff, 0xff, 0x87, 0xff, 0xff, 211 | 0x1f, 0x0, 0xf, 0x3c, 0x0, 0x1e, 0xf8, 0x0, 212 | 0x1e, 213 | 214 | /* U+0042 "B" */ 215 | 0xff, 0xff, 0x9f, 0xff, 0xfb, 0xff, 0xff, 0xf0, 216 | 0x0, 0x7e, 0x0, 0xf, 0xc0, 0x1, 0xf8, 0x0, 217 | 0x3f, 0xff, 0xfe, 0xff, 0xff, 0xdf, 0xff, 0xff, 218 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xc0, 219 | 0x1, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 220 | 0x80, 221 | 222 | /* U+0043 "C" */ 223 | 0x1f, 0xff, 0xdf, 0xff, 0xf7, 0xff, 0xff, 0xc0, 224 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 225 | 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 226 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x3c, 0x0, 0x7, 227 | 0xff, 0xfd, 0xff, 0xff, 0x1f, 0xff, 0xc0, 228 | 229 | /* U+0044 "D" */ 230 | 0xff, 0xfe, 0x1f, 0xff, 0xf3, 0xff, 0xff, 0x70, 231 | 0x0, 0xfe, 0x0, 0xf, 0xc0, 0x1, 0xf8, 0x0, 232 | 0x3f, 0x0, 0x7, 0xe0, 0x0, 0xfc, 0x0, 0x1f, 233 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xc0, 234 | 0x3, 0xbf, 0xff, 0xf7, 0xff, 0xfc, 0xff, 0xfe, 235 | 0x0, 236 | 237 | /* U+0045 "E" */ 238 | 0x1f, 0xff, 0xcf, 0xff, 0xf7, 0xff, 0xff, 0xc0, 239 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 240 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 241 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x3c, 0x0, 0x7, 242 | 0xff, 0xfc, 0xff, 0xff, 0x1f, 0xff, 0xc0, 243 | 244 | /* U+0046 "F" */ 245 | 0x1f, 0xff, 0xdf, 0xff, 0xf7, 0xff, 0xff, 0xc0, 246 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 247 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 248 | 0x3, 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 249 | 0x0, 0x3, 0x80, 0x0, 0xe0, 0x0, 0x0, 250 | 251 | /* U+0047 "G" */ 252 | 0x1f, 0xff, 0xef, 0xff, 0xfd, 0xff, 0xff, 0xf8, 253 | 0x0, 0xe, 0x0, 0x1, 0xc0, 0x0, 0x38, 0x0, 254 | 0x7, 0x7, 0xff, 0xe0, 0xff, 0xfc, 0x1f, 0xff, 255 | 0x80, 0x3, 0xf0, 0x0, 0x7e, 0x0, 0xf, 0xe0, 256 | 0x1, 0xdf, 0xff, 0xfb, 0xff, 0xff, 0x1f, 0xff, 257 | 0xc0, 258 | 259 | /* U+0048 "H" */ 260 | 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 0x80, 261 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 262 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 263 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 264 | 0x0, 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xc0, 265 | 266 | /* U+0049 "I" */ 267 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 268 | 269 | /* U+004A "J" */ 270 | 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 271 | 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 272 | 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 273 | 0x0, 0x7, 0x0, 0xf, 0xff, 0xfe, 0xff, 0xfe, 274 | 0xff, 0xf8, 275 | 276 | /* U+004B "K" */ 277 | 0xe0, 0x7, 0xb8, 0x3, 0xce, 0x0, 0xf3, 0x80, 278 | 0x78, 0xe0, 0x3c, 0x38, 0x1e, 0xe, 0x7, 0x83, 279 | 0xff, 0xc0, 0xff, 0xe0, 0x3f, 0xfc, 0xe, 0x7, 280 | 0x83, 0x80, 0xf0, 0xe0, 0x3e, 0x38, 0x7, 0xce, 281 | 0x0, 0xf3, 0x80, 0x1e, 0xe0, 0x3, 0xc0, 282 | 283 | /* U+004C "L" */ 284 | 0xe0, 0x0, 0x70, 0x0, 0x38, 0x0, 0x1c, 0x0, 285 | 0xe, 0x0, 0x7, 0x0, 0x3, 0x80, 0x1, 0xc0, 286 | 0x0, 0xe0, 0x0, 0x70, 0x0, 0x38, 0x0, 0x1c, 287 | 0x0, 0xe, 0x0, 0x7, 0x80, 0x1, 0xff, 0xfe, 288 | 0xff, 0xff, 0x1f, 0xff, 0x80, 289 | 290 | /* U+004D "M" */ 291 | 0xfc, 0x0, 0x1f, 0xff, 0x0, 0x1f, 0xff, 0xc0, 292 | 0xf, 0xfd, 0xe0, 0xf, 0x7e, 0xf0, 0x7, 0xbf, 293 | 0x3c, 0x7, 0x9f, 0x9e, 0x3, 0xcf, 0xc7, 0x81, 294 | 0xc7, 0xe3, 0xc1, 0xe3, 0xf1, 0xe0, 0xf1, 0xf8, 295 | 0x78, 0xf0, 0xfc, 0x3c, 0x78, 0x7e, 0xf, 0x38, 296 | 0x3f, 0x7, 0xbc, 0x1f, 0x81, 0xfc, 0xf, 0xc0, 297 | 0xfe, 0x7, 0xe0, 0x3e, 0x3, 0x80, 298 | 299 | /* U+004E "N" */ 300 | 0x7c, 0x0, 0x7f, 0xe0, 0x7, 0xff, 0x0, 0x7e, 301 | 0xf8, 0x7, 0xe7, 0x80, 0x7e, 0x7c, 0x7, 0xe3, 302 | 0xe0, 0x7e, 0x1f, 0x7, 0xe0, 0xf0, 0x7e, 0xf, 303 | 0x87, 0xe0, 0x7c, 0x7e, 0x3, 0xe7, 0xe0, 0x1e, 304 | 0x7e, 0x1, 0xf7, 0xe0, 0xf, 0xfe, 0x0, 0x7f, 305 | 0xe0, 0x3, 0xe0, 306 | 307 | /* U+004F "O" */ 308 | 0x1f, 0xff, 0x87, 0xff, 0xfe, 0x7f, 0xff, 0xef, 309 | 0x0, 0xf, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 310 | 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 311 | 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 312 | 0x7f, 0x0, 0xf, 0x7f, 0xff, 0xe7, 0xff, 0xfe, 313 | 0x1f, 0xff, 0x80, 314 | 315 | /* U+0050 "P" */ 316 | 0xff, 0xff, 0x3f, 0xff, 0xef, 0xff, 0xff, 0x80, 317 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 318 | 0x80, 0x7, 0xe0, 0x3, 0xff, 0xff, 0xff, 0xff, 319 | 0xfb, 0xff, 0xfc, 0xe0, 0x0, 0x38, 0x0, 0xe, 320 | 0x0, 0x3, 0x80, 0x0, 0xe0, 0x0, 0x0, 321 | 322 | /* U+0051 "Q" */ 323 | 0x1f, 0xff, 0x87, 0xff, 0xfe, 0x7f, 0xff, 0xef, 324 | 0x0, 0xf, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 325 | 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 326 | 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 327 | 0x7f, 0x0, 0xf, 0x7f, 0xff, 0xe7, 0xff, 0xfe, 328 | 0x1f, 0xff, 0x80, 0x0, 0xf0, 0x0, 0x7, 0x80, 329 | 0x0, 0x7c, 0x0, 0x3, 0xc0, 0x0, 0x1c, 330 | 331 | /* U+0052 "R" */ 332 | 0xff, 0xff, 0x1f, 0xff, 0xf3, 0xff, 0xff, 0x70, 333 | 0x1, 0xee, 0x0, 0x1d, 0xc0, 0x3, 0xb8, 0x0, 334 | 0x77, 0x0, 0xe, 0xe0, 0x3, 0xdf, 0xff, 0xfb, 335 | 0xff, 0xfe, 0x7f, 0xff, 0xe, 0x1, 0xf1, 0xc0, 336 | 0x1f, 0x38, 0x1, 0xf7, 0x0, 0x1e, 0xe0, 0x1, 337 | 0xe0, 338 | 339 | /* U+0053 "S" */ 340 | 0x3f, 0xff, 0x9f, 0xff, 0xef, 0xff, 0xfb, 0x80, 341 | 0x0, 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 342 | 0xff, 0xfc, 0x7f, 0xff, 0x8f, 0xff, 0xf0, 0x0, 343 | 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 0x7f, 344 | 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x0, 345 | 346 | /* U+0054 "T" */ 347 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 348 | 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 349 | 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 350 | 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 351 | 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 352 | 0x0, 0xe0, 0x0, 353 | 354 | /* U+0055 "U" */ 355 | 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 356 | 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 357 | 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 0x7e, 0x0, 358 | 0x7, 0xe0, 0x0, 0x7e, 0x0, 0x7, 0xe0, 0x0, 359 | 0x7f, 0x0, 0xf, 0x7f, 0xff, 0xe7, 0xff, 0xfe, 360 | 0x1f, 0xff, 0x80, 361 | 362 | /* U+0056 "V" */ 363 | 0xf8, 0x0, 0x1e, 0xf0, 0x0, 0x79, 0xf0, 0x0, 364 | 0xf1, 0xe0, 0x3, 0xc1, 0xe0, 0x7, 0x83, 0xc0, 365 | 0x1e, 0x3, 0xc0, 0x3c, 0x7, 0x80, 0xf0, 0x7, 366 | 0x81, 0xe0, 0xf, 0x7, 0x80, 0xf, 0xf, 0x0, 367 | 0x1e, 0x3c, 0x0, 0x1e, 0x78, 0x0, 0x3d, 0xe0, 368 | 0x0, 0x3f, 0x80, 0x0, 0x3f, 0x0, 0x0, 0x7c, 369 | 0x0, 370 | 371 | /* U+0057 "W" */ 372 | 0x70, 0x7, 0xc0, 0x1e, 0xf0, 0x1f, 0xc0, 0x39, 373 | 0xe0, 0x3f, 0x80, 0xf3, 0xc0, 0x77, 0x1, 0xe3, 374 | 0x80, 0xef, 0x3, 0xc7, 0x83, 0xce, 0x7, 0xf, 375 | 0x7, 0x1c, 0x1e, 0xe, 0xe, 0x3c, 0x3c, 0x1e, 376 | 0x3c, 0x78, 0x70, 0x3c, 0x70, 0x71, 0xe0, 0x38, 377 | 0xe0, 0xf3, 0xc0, 0x73, 0xc1, 0xe7, 0x0, 0xf7, 378 | 0x1, 0xde, 0x1, 0xee, 0x3, 0xbc, 0x1, 0xfc, 379 | 0x7, 0xf0, 0x3, 0xf8, 0x7, 0xe0, 0x3, 0xe0, 380 | 0xf, 0xc0, 381 | 382 | /* U+0058 "X" */ 383 | 0x7c, 0x0, 0xf9, 0xf0, 0xf, 0x87, 0xc0, 0xf8, 384 | 0x1f, 0xf, 0x80, 0x7c, 0xf8, 0x1, 0xff, 0x80, 385 | 0x7, 0xf8, 0x0, 0x1f, 0x80, 0x0, 0xf8, 0x0, 386 | 0xf, 0xe0, 0x0, 0xff, 0x80, 0xf, 0x9e, 0x0, 387 | 0xf8, 0xf8, 0xf, 0x83, 0xe0, 0xf8, 0xf, 0x8f, 388 | 0x80, 0x3e, 0x78, 0x0, 0xf8, 389 | 390 | /* U+0059 "Y" */ 391 | 0xf8, 0x0, 0xfb, 0xe0, 0x7, 0x8f, 0x0, 0x78, 392 | 0x3c, 0x7, 0x81, 0xf0, 0x3c, 0x7, 0x83, 0xc0, 393 | 0x1e, 0x3c, 0x0, 0x7b, 0xc0, 0x1, 0xde, 0x0, 394 | 0xf, 0xe0, 0x0, 0x3e, 0x0, 0x0, 0xe0, 0x0, 395 | 0x7, 0x0, 0x0, 0x38, 0x0, 0x1, 0xc0, 0x0, 396 | 0xe, 0x0, 0x0, 0x70, 0x0, 397 | 398 | /* U+005A "Z" */ 399 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 400 | 0xf, 0x0, 0xf, 0xc0, 0x7, 0xf0, 0x7, 0xf8, 401 | 0x7, 0xf8, 0x7, 0xf8, 0x7, 0xf8, 0x7, 0xf8, 402 | 0x3, 0xf8, 0x0, 0xf8, 0x0, 0x3c, 0x0, 0xf, 403 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 404 | 405 | /* U+005B "[" */ 406 | 0xff, 0xff, 0xff, 0xe, 0x1c, 0x38, 0x70, 0xe1, 407 | 0xc3, 0x87, 0xe, 0x1c, 0x38, 0x70, 0xe1, 0xc3, 408 | 0x87, 0xe, 0x1c, 0x38, 0x70, 0xff, 0xff, 0xf8, 409 | 410 | /* U+005C "\\" */ 411 | 0xe0, 0x38, 0x6, 0x1, 0xc0, 0x70, 0xc, 0x3, 412 | 0x80, 0xe0, 0x18, 0x7, 0x1, 0xc0, 0x30, 0xc, 413 | 0x3, 0x80, 0x60, 0x18, 0x7, 0x0, 0xc0, 0x30, 414 | 0xe, 0x1, 0x80, 0x60, 0x1c, 415 | 416 | /* U+005D "]" */ 417 | 0xfe, 0xff, 0xff, 0x7, 0x7, 0x7, 0x7, 0x7, 418 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 419 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 420 | 0xff, 0xff, 0xfe, 421 | 422 | /* U+005E "^" */ 423 | 0x7, 0x0, 0x7c, 0x3, 0xe0, 0x3b, 0x1, 0xdc, 424 | 0xc, 0x60, 0xe3, 0x6, 0x1c, 0x30, 0x63, 0x83, 425 | 0x18, 0x1d, 0xc0, 0x6e, 0x3, 0x80, 426 | 427 | /* U+005F "_" */ 428 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 429 | 430 | /* U+0060 "`" */ 431 | 0xe3, 0x87, 0x1c, 0x38, 0x60, 432 | 433 | /* U+0061 "a" */ 434 | 0xff, 0xfe, 0x7f, 0xff, 0xbf, 0xff, 0xe0, 0x0, 435 | 0xf0, 0x0, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xff, 436 | 0xff, 0xe0, 0x3, 0xf0, 0x1, 0xff, 0xff, 0xff, 437 | 0xff, 0xf7, 0xff, 0xf8, 438 | 439 | /* U+0062 "b" */ 440 | 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 0x80, 441 | 0x0, 0xe0, 0x0, 0x3f, 0xff, 0xcf, 0xff, 0xfb, 442 | 0xff, 0xff, 0xe0, 0x3, 0xf8, 0x0, 0x7e, 0x0, 443 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7f, 444 | 0x0, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0x8f, 0xff, 445 | 0xc0, 446 | 447 | /* U+0063 "c" */ 448 | 0x3f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0x0, 449 | 0xe0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 450 | 0xe0, 0x0, 0xf0, 0x0, 0xff, 0xff, 0x7f, 0xff, 451 | 0x3f, 0xff, 452 | 453 | /* U+0064 "d" */ 454 | 0x0, 0x1, 0xc0, 0x0, 0x70, 0x0, 0x1c, 0x0, 455 | 0x7, 0x0, 0x1, 0xcf, 0xff, 0xf7, 0xff, 0xff, 456 | 0xff, 0xff, 0xf0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 457 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7f, 458 | 0x0, 0x3f, 0xff, 0xff, 0x7f, 0xff, 0x8f, 0xff, 459 | 0xc0, 460 | 461 | /* U+0065 "e" */ 462 | 0x3f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0, 463 | 0x7e, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 464 | 0xff, 0xe0, 0x0, 0x70, 0x0, 0x3f, 0xff, 0xef, 465 | 0xff, 0xf3, 0xff, 0xf8, 466 | 467 | /* U+0066 "f" */ 468 | 0x7, 0xe1, 0xfc, 0x7f, 0x8e, 0x1, 0xc1, 0xff, 469 | 0xff, 0xff, 0xff, 0x1c, 0x3, 0x80, 0x70, 0xe, 470 | 0x1, 0xc0, 0x38, 0x7, 0x0, 0xe0, 0x1c, 0x3, 471 | 0x80, 472 | 473 | /* U+0067 "g" */ 474 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0x80, 475 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 476 | 0x80, 0x7, 0xf0, 0x1, 0xff, 0xff, 0xf7, 0xff, 477 | 0xfc, 0x7f, 0xff, 0x0, 0x1, 0xc0, 0x0, 0x70, 478 | 0x0, 0x3d, 0xff, 0xff, 0x7f, 0xff, 0x9f, 0xff, 479 | 0xc0, 480 | 481 | /* U+0068 "h" */ 482 | 0xe0, 0x0, 0x38, 0x0, 0xe, 0x0, 0x3, 0x80, 483 | 0x0, 0xe0, 0x0, 0x3f, 0xff, 0xcf, 0xff, 0xfb, 484 | 0xff, 0xff, 0xe0, 0x3, 0xf8, 0x0, 0x7e, 0x0, 485 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 486 | 0x0, 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 487 | 0x70, 488 | 489 | /* U+0069 "i" */ 490 | 0xff, 0x81, 0xff, 0xff, 0xff, 0xff, 0xfc, 491 | 492 | /* U+006A "j" */ 493 | 0x7, 0x7, 0x7, 0x0, 0x0, 0x7, 0x7, 0x7, 494 | 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 495 | 0x7, 0x7, 0x7, 0x7, 0xff, 0xfe, 0xfc, 496 | 497 | /* U+006B "k" */ 498 | 0xe0, 0x0, 0x70, 0x0, 0x38, 0x0, 0x1c, 0x0, 499 | 0xe, 0x0, 0x7, 0x0, 0x7b, 0x80, 0x3d, 0xc0, 500 | 0x3c, 0xe0, 0x3c, 0x70, 0x3c, 0x3f, 0xfe, 0x1f, 501 | 0xfe, 0xf, 0xff, 0x87, 0x1, 0xe3, 0x80, 0xf1, 502 | 0xc0, 0x3c, 0xe0, 0xf, 0x70, 0x3, 0xc0, 503 | 504 | /* U+006C "l" */ 505 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 506 | 507 | /* U+006D "m" */ 508 | 0x3f, 0xff, 0xf8, 0xff, 0xff, 0xfb, 0xff, 0xff, 509 | 0xff, 0x81, 0xc0, 0xfe, 0x3, 0x80, 0xfc, 0x7, 510 | 0x1, 0xf8, 0xe, 0x3, 0xf0, 0x1c, 0x7, 0xe0, 511 | 0x38, 0xf, 0xc0, 0x70, 0x1f, 0x80, 0xe0, 0x3f, 512 | 0x1, 0xc0, 0x7e, 0x3, 0x80, 0xe0, 513 | 514 | /* U+006E "n" */ 515 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 516 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 517 | 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 518 | 0x1f, 0x80, 0x7, 0xe0, 0x1, 0xc0, 519 | 520 | /* U+006F "o" */ 521 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 522 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 523 | 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0xff, 0xff, 524 | 0xfd, 0xff, 0xfe, 0x3f, 0xff, 0x0, 525 | 526 | /* U+0070 "p" */ 527 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 528 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 529 | 0x80, 0x7, 0xe0, 0x1, 0xf8, 0x0, 0xff, 0xff, 530 | 0xff, 0xff, 0xfe, 0xff, 0xff, 0x38, 0x0, 0xe, 531 | 0x0, 0x3, 0x80, 0x0, 0xe0, 0x0, 0x38, 0x0, 532 | 0x0, 533 | 534 | /* U+0071 "q" */ 535 | 0x3f, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xc0, 536 | 0xf, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 537 | 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0x7f, 0xff, 538 | 0xfd, 0xff, 0xff, 0x3f, 0xff, 0xc0, 0x0, 0x70, 539 | 0x0, 0x1c, 0x0, 0x7, 0x0, 0x1, 0xc0, 0x0, 540 | 0x70, 541 | 542 | /* U+0072 "r" */ 543 | 0x3f, 0xfb, 0xff, 0xff, 0xff, 0xe0, 0xe, 0x0, 544 | 0x70, 0x3, 0x80, 0x1c, 0x0, 0xe0, 0x7, 0x0, 545 | 0x38, 0x1, 0xc0, 0xe, 0x0, 0x0, 546 | 547 | /* U+0073 "s" */ 548 | 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 549 | 0xe0, 0x0, 0xff, 0xfe, 0xff, 0xff, 0x7f, 0xff, 550 | 0x0, 0x7, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 551 | 0xff, 0xfe, 552 | 553 | /* U+0074 "t" */ 554 | 0x1c, 0x3, 0x80, 0x70, 0xe, 0xf, 0xff, 0xff, 555 | 0xff, 0xf8, 0xe0, 0x1c, 0x3, 0x80, 0x70, 0xe, 556 | 0x1, 0xc0, 0x38, 0x7, 0xf8, 0x7f, 0x7, 0xe0, 557 | 558 | /* U+0075 "u" */ 559 | 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 0x80, 560 | 0x7, 0xe0, 0x1, 0xf8, 0x0, 0x7e, 0x0, 0x1f, 561 | 0x80, 0x7, 0xe0, 0x1, 0xfc, 0x0, 0xff, 0xff, 562 | 0xfd, 0xff, 0xfe, 0x3f, 0xff, 0x0, 563 | 564 | /* U+0076 "v" */ 565 | 0xf0, 0x0, 0xf7, 0x80, 0x1e, 0x38, 0x1, 0xc3, 566 | 0xc0, 0x3c, 0x1e, 0x3, 0x81, 0xe0, 0x78, 0xf, 567 | 0xf, 0x0, 0xf0, 0xf0, 0x7, 0x9e, 0x0, 0x3d, 568 | 0xc0, 0x3, 0xfc, 0x0, 0x1f, 0x80, 0x1, 0xf8, 569 | 0x0, 570 | 571 | /* U+0077 "w" */ 572 | 0xf0, 0x1f, 0x80, 0xf7, 0x1, 0xf8, 0xe, 0x78, 573 | 0x3f, 0xc1, 0xe7, 0x83, 0xfc, 0x1e, 0x38, 0x39, 574 | 0xc1, 0xc3, 0xc7, 0x9e, 0x3c, 0x3c, 0x71, 0xe3, 575 | 0x81, 0xc7, 0xe, 0x38, 0x1e, 0xf0, 0xf7, 0x81, 576 | 0xee, 0x7, 0x70, 0xf, 0xe0, 0x7f, 0x0, 0xfe, 577 | 0x7, 0xf0, 0x7, 0xc0, 0x3e, 0x0, 578 | 579 | /* U+0078 "x" */ 580 | 0x7c, 0x3, 0xc7, 0xc0, 0xf0, 0x7c, 0x3c, 0x7, 581 | 0xcf, 0x0, 0x7f, 0xc0, 0x7, 0xf0, 0x0, 0x7c, 582 | 0x0, 0x1f, 0xc0, 0x7, 0xbc, 0x1, 0xe3, 0xc0, 583 | 0x78, 0x3c, 0x3e, 0x3, 0xcf, 0x80, 0x3e, 584 | 585 | /* U+0079 "y" */ 586 | 0xf0, 0x1, 0xef, 0x0, 0x3d, 0xe0, 0xf, 0x1e, 587 | 0x1, 0xc1, 0xc0, 0x78, 0x3c, 0xe, 0x3, 0xc3, 588 | 0xc0, 0x78, 0x70, 0x7, 0x9e, 0x0, 0xf7, 0x80, 589 | 0xf, 0xe0, 0x0, 0xfc, 0x0, 0x1f, 0x0, 0x1, 590 | 0xe0, 0x0, 0x78, 0x0, 0x7e, 0x0, 0xf, 0xc0, 591 | 0x1, 0xf0, 0x0, 592 | 593 | /* U+007A "z" */ 594 | 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 595 | 0x0, 0x3e, 0x1, 0xfc, 0xf, 0xe0, 0x3f, 0x80, 596 | 0xfc, 0x0, 0xf0, 0x0, 0xff, 0xff, 0xff, 0xff, 597 | 0xff, 0xff, 598 | 599 | /* U+007B "{" */ 600 | 0x7, 0x87, 0xc7, 0xe3, 0x81, 0xc0, 0xe0, 0x70, 601 | 0x38, 0x1c, 0xe, 0x7, 0x3, 0x87, 0xc7, 0xc3, 602 | 0xf0, 0x38, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 603 | 0xe0, 0x70, 0x38, 0x1f, 0x87, 0xc1, 0xe0, 604 | 605 | /* U+007C "|" */ 606 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 607 | 0xf8, 608 | 609 | /* U+007D "}" */ 610 | 0xf8, 0x7e, 0x3f, 0x81, 0xc0, 0xe0, 0x70, 0x38, 611 | 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xf8, 0x3c, 612 | 0x3e, 0x1c, 0xe, 0x7, 0x3, 0x81, 0xc0, 0xe0, 613 | 0x70, 0x38, 0x1c, 0xfe, 0x7e, 0x3e, 0x0, 614 | 615 | /* U+007E "~" */ 616 | 0x78, 0x7, 0xf8, 0xf1, 0xfe, 0x3, 0xe0 617 | }; 618 | 619 | 620 | /*--------------------- 621 | * GLYPH DESCRIPTION 622 | *--------------------*/ 623 | 624 | static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = { 625 | {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */, 626 | {.bitmap_index = 0, .adv_w = 129, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0}, 627 | {.bitmap_index = 1, .adv_w = 102, .box_w = 3, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 628 | {.bitmap_index = 8, .adv_w = 189, .box_w = 9, .box_h = 7, .ofs_x = 1, .ofs_y = 11}, 629 | {.bitmap_index = 16, .adv_w = 328, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 630 | {.bitmap_index = 55, .adv_w = 313, .box_w = 17, .box_h = 19, .ofs_x = 1, .ofs_y = -1}, 631 | {.bitmap_index = 96, .adv_w = 438, .box_w = 24, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 632 | {.bitmap_index = 147, .adv_w = 336, .box_w = 20, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 633 | {.bitmap_index = 192, .adv_w = 104, .box_w = 3, .box_h = 7, .ofs_x = 1, .ofs_y = 11}, 634 | {.bitmap_index = 195, .adv_w = 174, .box_w = 7, .box_h = 26, .ofs_x = 3, .ofs_y = -5}, 635 | {.bitmap_index = 218, .adv_w = 174, .box_w = 8, .box_h = 26, .ofs_x = 0, .ofs_y = -5}, 636 | {.bitmap_index = 244, .adv_w = 223, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = 6}, 637 | {.bitmap_index = 265, .adv_w = 236, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = 2}, 638 | {.bitmap_index = 285, .adv_w = 103, .box_w = 3, .box_h = 7, .ofs_x = 2, .ofs_y = -4}, 639 | {.bitmap_index = 288, .adv_w = 146, .box_w = 8, .box_h = 3, .ofs_x = 1, .ofs_y = 7}, 640 | {.bitmap_index = 291, .adv_w = 103, .box_w = 3, .box_h = 3, .ofs_x = 2, .ofs_y = 0}, 641 | {.bitmap_index = 293, .adv_w = 159, .box_w = 10, .box_h = 23, .ofs_x = 0, .ofs_y = -3}, 642 | {.bitmap_index = 322, .adv_w = 348, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 643 | {.bitmap_index = 363, .adv_w = 130, .box_w = 6, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 644 | {.bitmap_index = 376, .adv_w = 331, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 645 | {.bitmap_index = 415, .adv_w = 324, .box_w = 17, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 646 | {.bitmap_index = 452, .adv_w = 348, .box_w = 20, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 647 | {.bitmap_index = 495, .adv_w = 331, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 648 | {.bitmap_index = 534, .adv_w = 333, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 649 | {.bitmap_index = 573, .adv_w = 318, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 650 | {.bitmap_index = 614, .adv_w = 347, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 651 | {.bitmap_index = 653, .adv_w = 333, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 652 | {.bitmap_index = 692, .adv_w = 103, .box_w = 3, .box_h = 10, .ofs_x = 2, .ofs_y = 2}, 653 | {.bitmap_index = 696, .adv_w = 103, .box_w = 3, .box_h = 14, .ofs_x = 2, .ofs_y = -2}, 654 | {.bitmap_index = 702, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 2}, 655 | {.bitmap_index = 724, .adv_w = 236, .box_w = 13, .box_h = 8, .ofs_x = 1, .ofs_y = 4}, 656 | {.bitmap_index = 737, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 2}, 657 | {.bitmap_index = 759, .adv_w = 242, .box_w = 14, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 658 | {.bitmap_index = 791, .adv_w = 336, .box_w = 18, .box_h = 20, .ofs_x = 1, .ofs_y = -5}, 659 | {.bitmap_index = 836, .adv_w = 374, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 660 | {.bitmap_index = 885, .adv_w = 353, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 661 | {.bitmap_index = 926, .adv_w = 327, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 662 | {.bitmap_index = 965, .adv_w = 356, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 663 | {.bitmap_index = 1006, .adv_w = 326, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 664 | {.bitmap_index = 1045, .adv_w = 320, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 665 | {.bitmap_index = 1084, .adv_w = 356, .box_w = 19, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 666 | {.bitmap_index = 1125, .adv_w = 348, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 667 | {.bitmap_index = 1164, .adv_w = 110, .box_w = 3, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 668 | {.bitmap_index = 1171, .adv_w = 300, .box_w = 16, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 669 | {.bitmap_index = 1205, .adv_w = 328, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 670 | {.bitmap_index = 1244, .adv_w = 308, .box_w = 17, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 671 | {.bitmap_index = 1281, .adv_w = 458, .box_w = 25, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 672 | {.bitmap_index = 1335, .adv_w = 376, .box_w = 20, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 673 | {.bitmap_index = 1378, .adv_w = 379, .box_w = 20, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 674 | {.bitmap_index = 1421, .adv_w = 338, .box_w = 18, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 675 | {.bitmap_index = 1460, .adv_w = 379, .box_w = 20, .box_h = 22, .ofs_x = 1, .ofs_y = -5}, 676 | {.bitmap_index = 1515, .adv_w = 348, .box_w = 19, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 677 | {.bitmap_index = 1556, .adv_w = 329, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 678 | {.bitmap_index = 1595, .adv_w = 335, .box_w = 20, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 679 | {.bitmap_index = 1638, .adv_w = 375, .box_w = 20, .box_h = 17, .ofs_x = 2, .ofs_y = 0}, 680 | {.bitmap_index = 1681, .adv_w = 374, .box_w = 23, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 681 | {.bitmap_index = 1730, .adv_w = 500, .box_w = 31, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 682 | {.bitmap_index = 1796, .adv_w = 343, .box_w = 21, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 683 | {.bitmap_index = 1841, .adv_w = 344, .box_w = 21, .box_h = 17, .ofs_x = 0, .ofs_y = 0}, 684 | {.bitmap_index = 1886, .adv_w = 328, .box_w = 18, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 685 | {.bitmap_index = 1925, .adv_w = 174, .box_w = 7, .box_h = 27, .ofs_x = 3, .ofs_y = -5}, 686 | {.bitmap_index = 1949, .adv_w = 159, .box_w = 10, .box_h = 23, .ofs_x = 0, .ofs_y = -3}, 687 | {.bitmap_index = 1978, .adv_w = 174, .box_w = 8, .box_h = 27, .ofs_x = 0, .ofs_y = -5}, 688 | {.bitmap_index = 2005, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 4}, 689 | {.bitmap_index = 2027, .adv_w = 247, .box_w = 15, .box_h = 3, .ofs_x = 1, .ofs_y = -4}, 690 | {.bitmap_index = 2033, .adv_w = 151, .box_w = 6, .box_h = 6, .ofs_x = 2, .ofs_y = 14}, 691 | {.bitmap_index = 2038, .adv_w = 303, .box_w = 17, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 692 | {.bitmap_index = 2066, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 693 | {.bitmap_index = 2107, .adv_w = 280, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 694 | {.bitmap_index = 2133, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 695 | {.bitmap_index = 2174, .adv_w = 303, .box_w = 17, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 696 | {.bitmap_index = 2202, .adv_w = 188, .box_w = 11, .box_h = 18, .ofs_x = 1, .ofs_y = 0}, 697 | {.bitmap_index = 2227, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, 698 | {.bitmap_index = 2268, .adv_w = 338, .box_w = 18, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 699 | {.bitmap_index = 2309, .adv_w = 104, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 700 | {.bitmap_index = 2316, .adv_w = 108, .box_w = 8, .box_h = 23, .ofs_x = -3, .ofs_y = -5}, 701 | {.bitmap_index = 2339, .adv_w = 305, .box_w = 17, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 702 | {.bitmap_index = 2378, .adv_w = 104, .box_w = 3, .box_h = 18, .ofs_x = 2, .ofs_y = 0}, 703 | {.bitmap_index = 2385, .adv_w = 425, .box_w = 23, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 704 | {.bitmap_index = 2423, .adv_w = 339, .box_w = 18, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 705 | {.bitmap_index = 2453, .adv_w = 333, .box_w = 18, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 706 | {.bitmap_index = 2483, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, 707 | {.bitmap_index = 2524, .adv_w = 334, .box_w = 18, .box_h = 18, .ofs_x = 1, .ofs_y = -5}, 708 | {.bitmap_index = 2565, .adv_w = 236, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 709 | {.bitmap_index = 2587, .adv_w = 301, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 710 | {.bitmap_index = 2613, .adv_w = 188, .box_w = 11, .box_h = 17, .ofs_x = 1, .ofs_y = 0}, 711 | {.bitmap_index = 2637, .adv_w = 336, .box_w = 18, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 712 | {.bitmap_index = 2667, .adv_w = 319, .box_w = 20, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, 713 | {.bitmap_index = 2700, .adv_w = 447, .box_w = 28, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, 714 | {.bitmap_index = 2746, .adv_w = 304, .box_w = 19, .box_h = 13, .ofs_x = 0, .ofs_y = 0}, 715 | {.bitmap_index = 2777, .adv_w = 310, .box_w = 19, .box_h = 18, .ofs_x = 0, .ofs_y = -5}, 716 | {.bitmap_index = 2820, .adv_w = 281, .box_w = 16, .box_h = 13, .ofs_x = 1, .ofs_y = 0}, 717 | {.bitmap_index = 2846, .adv_w = 174, .box_w = 9, .box_h = 27, .ofs_x = 1, .ofs_y = -5}, 718 | {.bitmap_index = 2877, .adv_w = 162, .box_w = 3, .box_h = 23, .ofs_x = 4, .ofs_y = -3}, 719 | {.bitmap_index = 2886, .adv_w = 174, .box_w = 9, .box_h = 27, .ofs_x = 0, .ofs_y = -5}, 720 | {.bitmap_index = 2917, .adv_w = 236, .box_w = 13, .box_h = 4, .ofs_x = 1, .ofs_y = 7} 721 | }; 722 | 723 | /*--------------------- 724 | * CHARACTER MAPPING 725 | *--------------------*/ 726 | 727 | 728 | 729 | /*Collect the unicode lists and glyph_id offsets*/ 730 | static const lv_font_fmt_txt_cmap_t cmaps[] = 731 | { 732 | { 733 | .range_start = 32, .range_length = 95, .glyph_id_start = 1, 734 | .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY 735 | } 736 | }; 737 | 738 | /*----------------- 739 | * KERNING 740 | *----------------*/ 741 | 742 | 743 | /*Map glyph_ids to kern left classes*/ 744 | static const uint8_t kern_left_class_mapping[] = 745 | { 746 | 0, 0, 0, 1, 0, 0, 0, 2, 747 | 1, 3, 0, 0, 0, 4, 5, 4, 748 | 6, 7, 8, 0, 9, 10, 11, 12, 749 | 13, 14, 15, 0, 0, 0, 0, 0, 750 | 0, 3, 16, 9, 17, 18, 0, 19, 751 | 20, 0, 0, 21, 22, 23, 24, 0, 752 | 18, 25, 18, 26, 27, 28, 21, 29, 753 | 30, 22, 31, 32, 3, 0, 0, 0, 754 | 0, 0, 33, 34, 35, 0, 36, 37, 755 | 38, 38, 0, 39, 40, 0, 38, 38, 756 | 34, 34, 0, 41, 42, 43, 44, 45, 757 | 46, 40, 45, 47, 3, 0, 0, 0 758 | }; 759 | 760 | /*Map glyph_ids to kern right classes*/ 761 | static const uint8_t kern_right_class_mapping[] = 762 | { 763 | 0, 0, 0, 1, 0, 0, 0, 2, 764 | 1, 0, 0, 0, 0, 3, 4, 3, 765 | 5, 6, 7, 0, 0, 8, 0, 9, 766 | 10, 11, 12, 0, 0, 0, 0, 0, 767 | 13, 0, 14, 0, 15, 0, 15, 16, 768 | 15, 0, 0, 17, 0, 18, 19, 0, 769 | 15, 0, 15, 0, 20, 21, 18, 22, 770 | 23, 24, 25, 26, 0, 0, 0, 0, 771 | 0, 0, 27, 0, 28, 28, 28, 29, 772 | 28, 0, 0, 30, 0, 0, 31, 31, 773 | 28, 31, 28, 31, 32, 33, 34, 35, 774 | 36, 37, 38, 39, 0, 0, 0, 0 775 | }; 776 | 777 | /*Kern values between classes*/ 778 | static const int8_t kern_class_values[] = 779 | { 780 | 0, 0, -23, 0, 0, 0, 0, -15, 781 | -8, 0, -8, 0, 0, -46, -8, 0, 782 | -38, 0, 0, 0, 0, 0, 0, 0, 783 | 0, 0, 0, -12, 0, 0, -12, -14, 784 | 0, 0, 0, 0, 0, 0, 0, 0, 785 | 0, 0, 0, 0, 0, 0, 0, 0, 786 | 0, 0, 0, 0, 0, 0, 0, 0, 787 | 0, 0, 0, -12, -31, -19, 0, -42, 788 | 0, 0, -8, 0, 0, 0, 0, 0, 789 | -14, -12, 0, 0, -12, 0, 0, 0, 790 | 0, 0, 0, 0, 0, 0, 0, 0, 791 | 0, 0, 0, 0, 0, 0, 0, 0, 792 | 0, 0, 0, 0, 0, 0, 0, 0, 793 | 0, 0, 0, 42, 0, 0, 0, 0, 794 | 0, 0, 0, 0, 0, -23, 0, 0, 795 | 0, 0, -8, -12, -8, 0, -23, -8, 796 | 0, 0, 0, -8, 0, 0, -8, 0, 797 | 0, -38, -38, -38, 0, -46, 0, 0, 798 | 0, -26, 19, 0, 0, -43, -8, -46, 799 | 0, 0, -46, 0, 0, 0, 0, 0, 800 | 0, 0, 0, 0, 0, -31, 0, 0, 801 | 0, -31, 0, 0, -15, 0, 0, 0, 802 | -38, -31, -15, -38, -38, 0, 0, 0, 803 | 4, 0, 0, 0, 0, 0, -12, 0, 804 | -20, -12, 0, 0, -27, 0, 0, 0, 805 | 0, 0, 0, 0, 0, 0, 0, 0, 806 | -58, -15, -15, -46, 0, -8, -15, 0, 807 | 0, 0, 0, 0, 0, -15, -23, 0, 808 | 0, -23, -23, 0, -15, 0, 0, 0, 809 | 0, -15, 0, 0, -8, 0, 0, 0, 810 | -4, 0, 0, -4, 0, 0, 0, 0, 811 | 0, 0, 0, 0, 0, 0, 0, 0, 812 | 0, 0, 0, 0, 0, 0, 0, 0, 813 | 0, 0, 0, 0, 0, 0, 0, 0, 814 | 0, -8, 0, 0, 0, 0, 0, 0, 815 | 0, 0, 0, 0, 0, 0, 0, 0, 816 | 0, 0, 0, 0, 0, 0, 0, 0, 817 | 0, 0, 0, 0, 0, 0, 0, 0, 818 | 0, 0, 0, 0, 0, 0, 0, 0, 819 | 0, 0, 0, 0, 0, 0, 0, 0, 820 | 0, 0, 0, 0, 0, -13, 0, 0, 821 | 0, 0, 0, 0, 0, -17, -11, -11, 822 | -12, 0, 0, 0, 0, 0, 0, 0, 823 | 0, 0, 0, 0, -5, 0, 0, -28, 824 | 0, 0, 0, 0, 0, -10, 0, 0, 825 | -15, 0, 0, 0, 0, 0, 0, 0, 826 | 0, 0, 0, 0, 0, 0, 0, 0, 827 | 0, 0, 0, 0, 0, 0, 0, 0, 828 | 0, 0, 0, 0, 0, 0, 0, 0, 829 | -8, 0, 0, 0, -7, 0, 0, -8, 830 | 0, -11, 0, 0, 0, 0, 0, 0, 831 | 0, 0, 0, 0, 0, 0, 0, 0, 832 | 0, 0, 0, 0, 0, 0, 0, 0, 833 | 0, 0, 0, 0, 0, -12, 0, -12, 834 | 0, 0, 0, -7, 0, 0, -8, 0, 835 | 0, 0, 0, 0, 0, 0, 0, 0, 836 | 0, 0, 0, 0, 0, 0, 0, 0, 837 | 0, 0, 0, 0, 0, 0, 0, 0, 838 | 0, 0, 0, 0, 0, 0, -42, 0, 839 | 0, -4, 0, -19, -7, 0, -4, -3, 840 | 0, 0, 0, 0, 0, 0, 0, 0, 841 | 0, 0, 0, 0, 0, 0, 0, 0, 842 | 0, 0, 0, 0, 0, 0, 0, 0, 843 | 0, 0, 0, -8, 0, -8, 0, 0, 844 | 0, 0, 0, 0, -4, 0, 0, 0, 845 | 0, 0, 0, 0, 0, 0, 0, 0, 846 | 0, 0, 0, 0, 0, 0, 0, 0, 847 | 0, 0, 0, 0, 0, 0, 0, 0, 848 | 0, 0, -8, 0, -12, 0, 0, 0, 849 | 0, 0, 0, -8, 0, 0, 0, 0, 850 | 0, 0, 0, 0, 0, 0, 0, 0, 851 | 0, 0, 0, 0, 0, 0, 0, 0, 852 | 0, 0, 0, 0, 0, 0, 0, 0, 853 | 0, -46, -5, 0, -31, 0, 0, 0, 854 | 0, 0, 0, 0, 0, -38, 8, -15, 855 | 0, 0, -15, 0, 0, -50, -73, -42, 856 | 0, -65, 0, -7, -12, -20, 15, 0, 857 | 0, -36, -12, -46, 0, 0, -40, 0, 858 | 0, 0, 0, -15, 0, 0, 0, 0, 859 | 0, 0, 0, 0, 0, 0, 0, 0, 860 | 0, 0, 0, 0, 0, 0, 0, 0, 861 | 0, 0, 0, 0, 0, 0, 0, 0, 862 | 0, 0, 0, 0, 0, 0, 0, -8, 863 | 0, -8, 0, -15, 0, 0, 0, 0, 864 | 0, 0, 0, 0, -15, 0, 0, 0, 865 | 0, 0, 0, -8, -15, -8, -12, -19, 866 | 0, 0, 0, 0, 0, 0, 0, 0, 867 | 0, 0, 0, -7, 0, 0, 0, -7, 868 | 0, 8, -27, 0, 0, 0, 0, 0, 869 | 0, 0, 0, -25, 0, 0, -31, 0, 870 | 0, 0, 0, 0, 0, 0, 5, 0, 871 | 0, 0, 0, 0, 0, 0, 0, 0, 872 | 0, 0, 0, 0, 0, 0, 0, 0, 873 | 0, -12, 0, 0, 0, 0, 0, 0, 874 | 0, 0, -8, 0, 0, 0, 0, 0, 875 | 0, 0, 0, 0, -7, 0, 0, 0, 876 | 0, 0, 0, 0, 0, 0, 0, 0, 877 | 0, 0, 0, 0, 0, 0, -8, 0, 878 | -15, 0, 0, 0, 0, 0, 0, 0, 879 | 0, -15, 0, 0, -5, 0, 0, 0, 880 | 0, 0, 0, 0, 0, 0, 0, 0, 881 | 0, 0, 0, 0, 0, 0, 0, 0, 882 | -7, 0, 0, 0, -7, 0, -38, 0, 883 | 0, 0, 0, 0, 0, 0, 0, 0, 884 | 0, -12, 0, 0, 0, 0, 0, 0, 885 | 0, -4, 0, 0, 0, -7, -15, -15, 886 | 0, 0, 0, -19, -15, -24, 0, 0, 887 | -24, -3, 0, 0, 0, -23, 0, 0, 888 | 0, 0, 0, 0, 0, 0, -31, 0, 889 | 0, 0, 0, -5, 0, 0, -73, -69, 890 | -31, 0, -81, 0, 0, -4, 0, 0, 891 | 0, 0, -27, -4, -42, -16, 0, -42, 892 | 0, 0, 0, 0, 0, 0, 0, 0, 893 | 0, 0, 0, 0, 0, -4, 0, 0, 894 | 0, 0, 0, 0, 0, 0, -5, -11, 895 | 0, -12, 0, 0, 0, 0, 0, 0, 896 | 0, 0, 0, 0, 0, 0, 0, 0, 897 | 0, -7, -27, 4, -34, 0, 0, 0, 898 | 0, 0, 0, 0, -4, -38, 0, 0, 899 | -24, 0, 0, 0, 0, 0, -7, -20, 900 | -11, 0, 0, 0, 0, 0, -4, 0, 901 | 0, 0, 0, 0, 0, 0, 0, 0, 902 | -8, 0, 0, 0, 0, 0, 0, 0, 903 | 0, 0, 0, -4, 0, -7, 0, 0, 904 | -3, 0, -4, -5, -20, -11, 0, -22, 905 | -7, -6, -12, 0, 0, 0, 0, 0, 906 | -11, 0, 0, 0, 0, 0, 0, 0, 907 | 0, 0, -15, 0, 0, 0, 0, 0, 908 | 0, 0, 0, -15, 0, 0, 0, 0, 909 | 0, 0, 0, -3, -4, -10, 0, 0, 910 | 0, 0, 0, 0, 0, 0, 0, 0, 911 | -5, 0, -7, -7, 0, 0, -23, -38, 912 | -38, -54, 0, 0, 0, 0, 0, 0, 913 | 0, 0, -50, -8, -8, -69, 4, 0, 914 | 0, 6, 4, 0, 0, 3, 0, 0, 915 | -8, 0, 0, -8, -8, 0, 0, 0, 916 | 0, 0, 0, 0, 0, -31, -38, -31, 917 | -50, 0, 0, 0, 0, 0, 0, 0, 918 | 0, -73, -15, -20, -58, 0, -5, -12, 919 | 4, 8, 5, -4, 8, 0, -13, -35, 920 | 0, 0, -35, -30, 0, -19, 0, 0, 921 | -12, 0, 0, 0, -27, -38, -15, -35, 922 | 0, 0, 0, 0, 0, 0, 0, 0, 923 | -42, -8, -20, -39, 0, -12, -13, 0, 924 | 5, 2, -6, 4, 0, -12, -24, 0, 925 | 0, -24, -22, 0, -15, 0, 0, -8, 926 | 0, 0, 0, -23, -46, -38, -54, 0, 927 | 0, 0, 0, 0, 0, 0, 0, -65, 928 | -19, -26, -79, 0, -8, -13, 3, 8, 929 | 4, 0, 10, 0, -27, -42, 0, 0, 930 | -42, -38, -12, -23, -8, 0, -12, -8, 931 | -12, 0, 0, 0, 0, 0, 0, 0, 932 | 0, 0, 0, 0, 0, 0, 0, -7, 933 | 0, 0, 0, 0, 0, 0, 0, 0, 934 | 0, 0, 0, 0, 0, 0, 0, 0, 935 | 0, 0, 0, 0, 0, 0, 0, 0, 936 | -8, 0, 0, 0, 0, 0, 0, 0, 937 | 0, 0, 0, 0, -15, 0, 0, 0, 938 | 0, 0, 0, 0, 0, 0, 0, 0, 939 | 0, 0, 0, 0, 0, 0, 0, 0, 940 | 0, 0, -12, -7, 0, -10, 0, -12, 941 | 0, 0, 0, -15, 0, 0, 0, 0, 942 | 0, 0, 0, -23, 0, 0, 0, 0, 943 | 0, 0, 0, 0, 0, 0, 0, 0, 944 | 0, 0, 0, 0, 0, 0, 0, -6, 945 | 0, -11, -7, -8, -11, 0, 0, 0, 946 | 0, 0, 0, 0, 0, 0, 0, 0, 947 | 0, 0, 0, 0, 0, 0, 0, 0, 948 | 0, 0, 0, 0, 0, 0, 0, 0, 949 | 0, -7, 0, 0, 0, 0, 8, 0, 950 | 0, 0, 0, 0, 0, -8, 0, 0, 951 | 0, 0, 0, 0, 0, 0, 0, 0, 952 | 0, -15, 0, 0, 0, 0, 0, 0, 953 | 0, 0, 0, 0, 0, 0, 0, 0, 954 | 0, 0, 0, 0, 0, 0, 0, -6, 955 | 0, 0, -6, 0, 12, -12, -46, 8, 956 | -15, 0, 0, 0, 0, 0, 0, 0, 957 | 12, 0, 0, 0, 0, 0, 0, 0, 958 | 0, 0, 0, 0, 0, 0, 0, 0, 959 | 8, 0, 0, 0, 8, 0, 0, 0, 960 | 0, 0, 0, -12, 0, 0, 0, 0, 961 | 0, 0, 0, 0, 0, 0, 0, -23, 962 | 0, 0, 0, 0, 0, 0, 0, 0, 963 | 0, 0, 0, 0, 0, 0, 0, 0, 964 | 29, 0, 0, 0, 0, -11, 0, 0, 965 | -11, 0, 0, 0, 0, 0, 0, 0, 966 | 0, 0, 0, 0, 0, 0, 0, 0, 967 | 0, 0, 0, 0, 0, 0, 0, 0, 968 | 0, 0, 0, 0, 0, 0, 0, 27, 969 | 0, 0, 0, 0, 0, 0, 0, 0, 970 | 0, 0, -5, 0, -20, 0, 0, 0, 971 | 0, 0, 0, 0, 0, 0, 0, 0, 972 | 0, 0, 0, 0, 0, 0, 0, 0, 973 | 0, 0, 0, 0, -12, 0, 0, 0, 974 | 0, 0, 0, 0, 0, 0, 0, 0, 975 | 0, -15, 0, 0, 0, 0, 0, 0, 976 | 0, 0, 0, 0, 0, 0, 0, 0, 977 | 0, 0, 0, 0, 0, 0, 0, 0, 978 | 0, 0, 0, 0, 8, 0, 0, 0, 979 | 8, 0, 0, 0, 0, 0, 0, -8, 980 | 0, -8, -7, -12, 0, 0, 0, 0, 981 | 0, 0, 0, -8, 0, 0, 0, 0, 982 | 0, 0, 0, 0, 0, 0, 0, 0, 983 | 0, 0, 0, 0, 0, 0, 0, 0, 984 | 0, -5, 0, 0, -5, 0, 0, 0, 985 | 0, 0, 0, 0, 0, 0, 0, 0, 986 | 0, 0, 0, 0, 0, 0, 0, 0, 987 | 0, 0, 0, 0, 0, 0, 0, 0, 988 | 0, 0, 8, 0, 0, 0, 8, 0, 989 | 0, 0, 0, 0, 0, 0, 0, -8, 990 | 0, 0, 0, 0, 0, 0, 0, 0, 991 | 0, 0, 0, 0, 0, 0, 0, 0, 992 | 0, 0, 0, 0, 0, 0, 0, 0, 993 | 0, 0, 0, 0, 0, 0, 0, 0, 994 | 0, 0, 0, 0, 0, -27, -46, -12, 995 | -35, 0, 0, 0, 0, 0, 0, 0, 996 | 0, 0, 0, 0, 0, 0, 0, 0, 997 | 0, 0, 0, 0, 0, 0, 0, -13, 998 | 0, 0, -17, 0, 0, 0, 0, 0, 999 | 0, 0, 0, 0, -19, 0, 0, -19, 1000 | 0, 0, 0, 0, 0, 0, 0, 0, 1001 | 0, 0, 0, 0, 0, 0, 0, 0, 1002 | 0, 0, 0, 0, 0, -4, -7, 0, 1003 | 0, -7, 0, 0, 0, 0, 0, 0, 1004 | 0, 0, 0, 0, 0, 0, 0, 0, 1005 | 0, 0, 0, 0, 0, 0, -8, 0, 1006 | 0, 0, 0, 0, 0, 0, 0, 0, 1007 | 0, 0, 0, 0, 0, 0, 0, 0, 1008 | 0, 0, 0, 0, 0, 0, 0, 0, 1009 | 0 1010 | }; 1011 | 1012 | 1013 | /*Collect the kern class' data in one place*/ 1014 | static const lv_font_fmt_txt_kern_classes_t kern_classes = 1015 | { 1016 | .class_pair_values = kern_class_values, 1017 | .left_class_mapping = kern_left_class_mapping, 1018 | .right_class_mapping = kern_right_class_mapping, 1019 | .left_class_cnt = 47, 1020 | .right_class_cnt = 39, 1021 | }; 1022 | 1023 | /*-------------------- 1024 | * ALL CUSTOM DATA 1025 | *--------------------*/ 1026 | 1027 | #if LVGL_VERSION_MAJOR == 8 1028 | /*Store all the custom data of the font*/ 1029 | static lv_font_fmt_txt_glyph_cache_t cache; 1030 | #endif 1031 | 1032 | #if LVGL_VERSION_MAJOR >= 8 1033 | static const lv_font_fmt_txt_dsc_t font_dsc = { 1034 | #else 1035 | static lv_font_fmt_txt_dsc_t font_dsc = { 1036 | #endif 1037 | .glyph_bitmap = glyph_bitmap, 1038 | .glyph_dsc = glyph_dsc, 1039 | .cmaps = cmaps, 1040 | .kern_dsc = &kern_classes, 1041 | .kern_scale = 16, 1042 | .cmap_num = 1, 1043 | .bpp = 1, 1044 | .kern_classes = 1, 1045 | .bitmap_format = 0, 1046 | #if LVGL_VERSION_MAJOR == 8 1047 | .cache = &cache 1048 | #endif 1049 | }; 1050 | 1051 | 1052 | 1053 | /*----------------- 1054 | * PUBLIC FONT 1055 | *----------------*/ 1056 | 1057 | /*Initialize a public general font descriptor*/ 1058 | #if LVGL_VERSION_MAJOR >= 8 1059 | const lv_font_t ui_font_conthrax24 = { 1060 | #else 1061 | lv_font_t ui_font_conthrax24 = { 1062 | #endif 1063 | .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/ 1064 | .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/ 1065 | .line_height = 27, /*The maximum line height required by the font*/ 1066 | .base_line = 5, /*Baseline measured from the bottom of the line*/ 1067 | #if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0) 1068 | .subpx = LV_FONT_SUBPX_NONE, 1069 | #endif 1070 | #if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8 1071 | .underline_position = -2, 1072 | .underline_thickness = 2, 1073 | #endif 1074 | .dsc = &font_dsc, /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */ 1075 | #if LV_VERSION_CHECK(8, 2, 0) || LVGL_VERSION_MAJOR >= 9 1076 | .fallback = NULL, 1077 | #endif 1078 | .user_data = NULL, 1079 | }; 1080 | 1081 | 1082 | 1083 | #endif /*#if UI_FONT_CONTHRAX24*/ 1084 | 1085 | -------------------------------------------------------------------------------- /tab5_arduino_basic/SLS_Project/Tab5_Basic.spj: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "guid": "GUID27511814-20248S1151220", 4 | "deepid": 0, 5 | "children": [ 6 | { 7 | "guid": "GUID73542797-20249S3631220", 8 | "deepid": 0, 9 | "children": [ 10 | { 11 | "guid": "GUID30245247-20435S3801220", 12 | "deepid": 0, 13 | "dont_export": false, 14 | "locked": false, 15 | "properties": [ 16 | { 17 | "nid": 254466162, 18 | "strtype": "OBJECT/Name", 19 | "strval": "Arc1", 20 | "InheritedType": 10 21 | }, 22 | { 23 | "nid": -644950197, 24 | "strtype": "ARC/Layout", 25 | "InheritedType": 1 26 | }, 27 | { 28 | "Flow": 0, 29 | "Wrap": false, 30 | "Reversed": false, 31 | "MainAlignment": 0, 32 | "CrossAlignment": 0, 33 | "TrackAlignment": 0, 34 | "LayoutType": 0, 35 | "nid": -1244901573, 36 | "strtype": "ARC/Layout_type", 37 | "strval": "No_layout", 38 | "InheritedType": 13 39 | }, 40 | { 41 | "nid": -914643970, 42 | "strtype": "OBJECT/Transform", 43 | "InheritedType": 1 44 | }, 45 | { 46 | "nid": 690290457, 47 | "flags": 17, 48 | "strtype": "OBJECT/Position", 49 | "intarray": [ 50 | 0, 51 | 0 52 | ], 53 | "InheritedType": 7 54 | }, 55 | { 56 | "nid": 1731408348, 57 | "flags": 17, 58 | "strtype": "OBJECT/Size", 59 | "intarray": [ 60 | 400, 61 | 400 62 | ], 63 | "InheritedType": 7 64 | }, 65 | { 66 | "nid": -1334218779, 67 | "strtype": "OBJECT/Align", 68 | "strval": "CENTER", 69 | "InheritedType": 3 70 | }, 71 | { 72 | "nid": -671172416, 73 | "flags": 1048576, 74 | "strtype": "OBJECT/Flags", 75 | "InheritedType": 1 76 | }, 77 | { 78 | "nid": 839415395, 79 | "strtype": "ARC/Overflow_visible", 80 | "strval": "False", 81 | "InheritedType": 2 82 | }, 83 | { 84 | "nid": 1645593308, 85 | "strtype": "ARC/Flex_in_new_track", 86 | "strval": "False", 87 | "InheritedType": 2 88 | }, 89 | { 90 | "nid": 225, 91 | "flags": 1048576, 92 | "strtype": "OBJECT/Scrolling", 93 | "InheritedType": 1 94 | }, 95 | { 96 | "nid": -884176288, 97 | "strtype": "ARC/Scroll_with_arrow", 98 | "strval": "False", 99 | "InheritedType": 2 100 | }, 101 | { 102 | "nid": -901534188, 103 | "strtype": "OBJECT/Scrollbar_mode", 104 | "strval": "AUTO", 105 | "InheritedType": 3 106 | }, 107 | { 108 | "nid": -1894764928, 109 | "strtype": "OBJECT/Scroll_direction", 110 | "strval": "ALL", 111 | "InheritedType": 3 112 | }, 113 | { 114 | "nid": 314, 115 | "strtype": "OBJECT/Scroll_snap_x", 116 | "strval": "NONE", 117 | "InheritedType": 3 118 | }, 119 | { 120 | "nid": 315, 121 | "strtype": "OBJECT/Scroll_snap_y", 122 | "strval": "NONE", 123 | "InheritedType": 3 124 | }, 125 | { 126 | "nid": 2057839452, 127 | "strtype": "OBJECT/States", 128 | "InheritedType": 1 129 | }, 130 | { 131 | "nid": -424027134, 132 | "strtype": "ARC/Edited", 133 | "strval": "False", 134 | "InheritedType": 2 135 | }, 136 | { 137 | "nid": 888901162, 138 | "strtype": "ARC/User_1", 139 | "strval": "False", 140 | "InheritedType": 2 141 | }, 142 | { 143 | "nid": 210529057, 144 | "strtype": "ARC/User_2", 145 | "strval": "False", 146 | "InheritedType": 2 147 | }, 148 | { 149 | "nid": 185929341, 150 | "strtype": "ARC/User_3", 151 | "strval": "False", 152 | "InheritedType": 2 153 | }, 154 | { 155 | "nid": 1196727185, 156 | "strtype": "ARC/User_4", 157 | "strval": "False", 158 | "InheritedType": 2 159 | }, 160 | { 161 | "nid": -331828304, 162 | "strtype": "ARC/Arc", 163 | "InheritedType": 1 164 | }, 165 | { 166 | "nid": -115636669, 167 | "strtype": "ARC/Range", 168 | "intarray": [ 169 | 0, 170 | 1000 171 | ], 172 | "InheritedType": 7 173 | }, 174 | { 175 | "nid": -460714004, 176 | "strtype": "ARC/Value", 177 | "InheritedType": 6 178 | }, 179 | { 180 | "nid": -1486143225, 181 | "strtype": "ARC/Bg_angles", 182 | "intarray": [ 183 | 120, 184 | 60 185 | ], 186 | "InheritedType": 7 187 | }, 188 | { 189 | "nid": -462217714, 190 | "strtype": "ARC/Mode", 191 | "strval": "NORMAL", 192 | "InheritedType": 3 193 | }, 194 | { 195 | "nid": 319582253, 196 | "strtype": "ARC/Rotation", 197 | "InheritedType": 6 198 | }, 199 | { 200 | "part": "lv.PART.MAIN", 201 | "childs": [], 202 | "nid": -1241342873, 203 | "strtype": "ARC/Style_main", 204 | "strval": "lv.PART.MAIN, Rectangle, Pad, Arc, Transform", 205 | "InheritedType": 11 206 | }, 207 | { 208 | "part": "lv.PART.INDICATOR", 209 | "childs": [], 210 | "nid": -1067532500, 211 | "strtype": "ARC/Style_indicator", 212 | "strval": "lv.PART.INDICATOR, Rectangle, Pad, Arc", 213 | "InheritedType": 11 214 | }, 215 | { 216 | "part": "lv.PART.KNOB", 217 | "childs": [], 218 | "nid": 1464364560, 219 | "strtype": "ARC/Style_knob", 220 | "strval": "lv.PART.KNOB, Rectangle, Pad", 221 | "InheritedType": 11 222 | }, 223 | { 224 | "disabled": false, 225 | "nid": -310330310, 226 | "strtype": "_event/EventHandler", 227 | "strval": "VALUE_CHANGED", 228 | "childs": [ 229 | { 230 | "nid": -2097145677, 231 | "strtype": "_custom/name", 232 | "strval": "Event1", 233 | "InheritedType": 10 234 | }, 235 | { 236 | "nid": -76513154, 237 | "strtype": "_custom/condition_C", 238 | "strval": "", 239 | "InheritedType": 10 240 | }, 241 | { 242 | "nid": 1818945863, 243 | "strtype": "_custom/condition_P", 244 | "strval": "", 245 | "InheritedType": 10 246 | }, 247 | { 248 | "nid": -936405356, 249 | "strtype": "_event/action", 250 | "strval": "SET TEXT VALUE FROM ARC", 251 | "childs": [ 252 | { 253 | "nid": 287216140, 254 | "strtype": "SET TEXT VALUE FROM ARC/Name", 255 | "strval": "SET TEXT VALUE FROM ARC", 256 | "InheritedType": 10 257 | }, 258 | { 259 | "nid": -262663044, 260 | "strtype": "SET TEXT VALUE FROM ARC/Call", 261 | "strval": "SetTextValueArc( <{Target}>, event_struct.get_target(), \"<{Prefix}>\", \"<{Postfix}>\")", 262 | "InheritedType": 10 263 | }, 264 | { 265 | "nid": -1493002577, 266 | "strtype": "SET TEXT VALUE FROM ARC/CallC", 267 | "strval": "_ui_arc_set_text_value( <{Target}>, target, \"<{Prefix}>\", \"<{Postfix}>\");", 268 | "InheritedType": 10 269 | }, 270 | { 271 | "nid": 256033284, 272 | "strtype": "SET TEXT VALUE FROM ARC/Target", 273 | "strval": "GUID20961896-21610S5691220", 274 | "InheritedType": 9 275 | }, 276 | { 277 | "nid": 1493412486, 278 | "strtype": "SET TEXT VALUE FROM ARC/Prefix", 279 | "strval": "", 280 | "InheritedType": 10 281 | }, 282 | { 283 | "nid": -993348474, 284 | "strtype": "SET TEXT VALUE FROM ARC/Postfix", 285 | "strval": "", 286 | "InheritedType": 10 287 | } 288 | ], 289 | "InheritedType": 10 290 | } 291 | ], 292 | "InheritedType": 4 293 | } 294 | ], 295 | "saved_objtypeKey": "ARC" 296 | }, 297 | { 298 | "guid": "GUID20961896-21610S5691220", 299 | "deepid": 0, 300 | "dont_export": false, 301 | "locked": false, 302 | "properties": [ 303 | { 304 | "nid": 2059884593, 305 | "strtype": "OBJECT/Name", 306 | "strval": "Label1", 307 | "InheritedType": 10 308 | }, 309 | { 310 | "nid": 7484080, 311 | "strtype": "LABEL/Layout", 312 | "InheritedType": 1 313 | }, 314 | { 315 | "Flow": 0, 316 | "Wrap": false, 317 | "Reversed": false, 318 | "MainAlignment": 0, 319 | "CrossAlignment": 0, 320 | "TrackAlignment": 0, 321 | "LayoutType": 0, 322 | "nid": 1660778559, 323 | "strtype": "LABEL/Layout_type", 324 | "strval": "No_layout", 325 | "InheritedType": 13 326 | }, 327 | { 328 | "nid": -1284133532, 329 | "strtype": "OBJECT/Transform", 330 | "InheritedType": 1 331 | }, 332 | { 333 | "nid": -386384546, 334 | "flags": 17, 335 | "strtype": "OBJECT/Position", 336 | "intarray": [ 337 | 0, 338 | 0 339 | ], 340 | "InheritedType": 7 341 | }, 342 | { 343 | "nid": -432479958, 344 | "flags": 51, 345 | "strtype": "OBJECT/Size", 346 | "intarray": [ 347 | 1, 348 | 1 349 | ], 350 | "InheritedType": 7 351 | }, 352 | { 353 | "nid": 1863037422, 354 | "strtype": "OBJECT/Align", 355 | "strval": "CENTER", 356 | "InheritedType": 3 357 | }, 358 | { 359 | "nid": 492759919, 360 | "flags": 1048576, 361 | "strtype": "OBJECT/Flags", 362 | "InheritedType": 1 363 | }, 364 | { 365 | "nid": 946509253, 366 | "strtype": "OBJECT/Clickable", 367 | "strval": "False", 368 | "InheritedType": 2 369 | }, 370 | { 371 | "nid": 1231782209, 372 | "strtype": "LABEL/Overflow_visible", 373 | "strval": "False", 374 | "InheritedType": 2 375 | }, 376 | { 377 | "nid": -1850203605, 378 | "strtype": "LABEL/Flex_in_new_track", 379 | "strval": "False", 380 | "InheritedType": 2 381 | }, 382 | { 383 | "nid": 225, 384 | "flags": 1048576, 385 | "strtype": "OBJECT/Scrolling", 386 | "InheritedType": 1 387 | }, 388 | { 389 | "nid": -494254618, 390 | "strtype": "LABEL/Scroll_with_arrow", 391 | "strval": "False", 392 | "InheritedType": 2 393 | }, 394 | { 395 | "nid": -262537453, 396 | "strtype": "OBJECT/Scrollbar_mode", 397 | "strval": "AUTO", 398 | "InheritedType": 3 399 | }, 400 | { 401 | "nid": -1505259263, 402 | "strtype": "OBJECT/Scroll_direction", 403 | "strval": "ALL", 404 | "InheritedType": 3 405 | }, 406 | { 407 | "nid": 314, 408 | "strtype": "OBJECT/Scroll_snap_x", 409 | "strval": "NONE", 410 | "InheritedType": 3 411 | }, 412 | { 413 | "nid": 315, 414 | "strtype": "OBJECT/Scroll_snap_y", 415 | "strval": "NONE", 416 | "InheritedType": 3 417 | }, 418 | { 419 | "nid": 2080683029, 420 | "flags": 1048576, 421 | "strtype": "OBJECT/States", 422 | "InheritedType": 1 423 | }, 424 | { 425 | "nid": -1950921345, 426 | "strtype": "LABEL/Edited", 427 | "strval": "False", 428 | "InheritedType": 2 429 | }, 430 | { 431 | "nid": 984257178, 432 | "strtype": "LABEL/User_1", 433 | "strval": "False", 434 | "InheritedType": 2 435 | }, 436 | { 437 | "nid": -1977824510, 438 | "strtype": "LABEL/User_2", 439 | "strval": "False", 440 | "InheritedType": 2 441 | }, 442 | { 443 | "nid": 4939232, 444 | "strtype": "LABEL/User_3", 445 | "strval": "False", 446 | "InheritedType": 2 447 | }, 448 | { 449 | "nid": -1105104616, 450 | "strtype": "LABEL/User_4", 451 | "strval": "False", 452 | "InheritedType": 2 453 | }, 454 | { 455 | "nid": -529811795, 456 | "strtype": "LABEL/Label", 457 | "InheritedType": 1 458 | }, 459 | { 460 | "nid": -1105361612, 461 | "strtype": "LABEL/Long_mode", 462 | "strval": "SCROLL", 463 | "InheritedType": 3 464 | }, 465 | { 466 | "nid": -1929897270, 467 | "strtype": "LABEL/Text", 468 | "strval": "0", 469 | "InheritedType": 10 470 | }, 471 | { 472 | "part": "lv.PART.MAIN", 473 | "childs": [ 474 | { 475 | "nid": 1453689766, 476 | "strtype": "_style/StyleState", 477 | "strval": "DEFAULT", 478 | "childs": [ 479 | { 480 | "nid": 1041152280, 481 | "strtype": "_style/Text_Color", 482 | "intarray": [ 483 | 238, 484 | 251, 485 | 2, 486 | 255 487 | ], 488 | "InheritedType": 7 489 | }, 490 | { 491 | "nid": -2130854564, 492 | "strtype": "_style/Text_Align", 493 | "strval": "CENTER", 494 | "InheritedType": 3 495 | }, 496 | { 497 | "nid": -488528837, 498 | "strtype": "_style/Text_Decor", 499 | "strval": "NONE", 500 | "InheritedType": 3 501 | }, 502 | { 503 | "nid": 1793980008, 504 | "strtype": "_style/Text_Font", 505 | "strval": "sevenSeg", 506 | "InheritedType": 3 507 | }, 508 | { 509 | "nid": 1172983421, 510 | "strtype": "_style/Padding", 511 | "intarray": [ 512 | 0, 513 | 0, 514 | 0, 515 | 0 516 | ], 517 | "InheritedType": 7 518 | } 519 | ], 520 | "InheritedType": 1 521 | } 522 | ], 523 | "nid": -134917963, 524 | "strtype": "LABEL/Style_main", 525 | "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", 526 | "InheritedType": 11 527 | }, 528 | { 529 | "nid": 1050, 530 | "strtype": "LABEL/Recolor", 531 | "strval": "False", 532 | "InheritedType": 2 533 | } 534 | ], 535 | "saved_objtypeKey": "LABEL" 536 | }, 537 | { 538 | "guid": "GUID49905476-888565S18698435", 539 | "deepid": -791354396, 540 | "children": [ 541 | { 542 | "guid": "GUID24212992-888567S438435", 543 | "deepid": -630029393, 544 | "dont_export": false, 545 | "locked": false, 546 | "properties": [ 547 | { 548 | "nid": 10, 549 | "strtype": "OBJECT/Name", 550 | "strval": "Label2", 551 | "InheritedType": 10 552 | }, 553 | { 554 | "nid": 20, 555 | "strtype": "OBJECT/Layout", 556 | "InheritedType": 1 557 | }, 558 | { 559 | "Flow": 0, 560 | "Wrap": false, 561 | "Reversed": false, 562 | "MainAlignment": 0, 563 | "CrossAlignment": 0, 564 | "TrackAlignment": 0, 565 | "LayoutType": 0, 566 | "nid": 30, 567 | "strtype": "OBJECT/Layout_type", 568 | "strval": "No_layout", 569 | "InheritedType": 13 570 | }, 571 | { 572 | "nid": 40, 573 | "strtype": "OBJECT/Transform", 574 | "InheritedType": 1 575 | }, 576 | { 577 | "nid": 50, 578 | "flags": 17, 579 | "strtype": "OBJECT/Position", 580 | "intarray": [ 581 | 0, 582 | 0 583 | ], 584 | "InheritedType": 7 585 | }, 586 | { 587 | "nid": 60, 588 | "flags": 51, 589 | "strtype": "OBJECT/Size", 590 | "intarray": [ 591 | 1, 592 | 1 593 | ], 594 | "InheritedType": 7 595 | }, 596 | { 597 | "nid": 70, 598 | "strtype": "OBJECT/Align", 599 | "strval": "CENTER", 600 | "InheritedType": 3 601 | }, 602 | { 603 | "nid": 90, 604 | "flags": 1048576, 605 | "strtype": "OBJECT/Flags", 606 | "InheritedType": 1 607 | }, 608 | { 609 | "nid": 110, 610 | "strtype": "OBJECT/Clickable", 611 | "strval": "False", 612 | "InheritedType": 2 613 | }, 614 | { 615 | "nid": 225, 616 | "flags": 1048576, 617 | "strtype": "OBJECT/Scrolling", 618 | "InheritedType": 1 619 | }, 620 | { 621 | "nid": 300, 622 | "strtype": "OBJECT/Scrollbar_mode", 623 | "strval": "AUTO", 624 | "InheritedType": 3 625 | }, 626 | { 627 | "nid": 310, 628 | "strtype": "OBJECT/Scroll_direction", 629 | "strval": "ALL", 630 | "InheritedType": 3 631 | }, 632 | { 633 | "nid": 314, 634 | "strtype": "OBJECT/Scroll_snap_x", 635 | "strval": "NONE", 636 | "InheritedType": 3 637 | }, 638 | { 639 | "nid": 315, 640 | "strtype": "OBJECT/Scroll_snap_y", 641 | "strval": "NONE", 642 | "InheritedType": 3 643 | }, 644 | { 645 | "nid": 320, 646 | "flags": 1048576, 647 | "strtype": "OBJECT/States", 648 | "InheritedType": 1 649 | }, 650 | { 651 | "nid": 1010, 652 | "strtype": "LABEL/Label", 653 | "InheritedType": 1 654 | }, 655 | { 656 | "nid": 1020, 657 | "strtype": "LABEL/Long_mode", 658 | "strval": "WRAP", 659 | "InheritedType": 3 660 | }, 661 | { 662 | "nid": 1030, 663 | "strtype": "LABEL/Text", 664 | "strval": "Automate", 665 | "InheritedType": 10 666 | }, 667 | { 668 | "part": "lv.PART.MAIN", 669 | "childs": [], 670 | "nid": 1040, 671 | "strtype": "LABEL/Style_main", 672 | "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", 673 | "InheritedType": 11 674 | }, 675 | { 676 | "nid": 1050, 677 | "strtype": "LABEL/Recolor", 678 | "strval": "False", 679 | "InheritedType": 2 680 | } 681 | ], 682 | "saved_objtypeKey": "LABEL" 683 | } 684 | ], 685 | "dont_export": false, 686 | "locked": false, 687 | "properties": [ 688 | { 689 | "nid": 10, 690 | "strtype": "OBJECT/Name", 691 | "strval": "Button1", 692 | "InheritedType": 10 693 | }, 694 | { 695 | "nid": 20, 696 | "strtype": "OBJECT/Layout", 697 | "InheritedType": 1 698 | }, 699 | { 700 | "Flow": 0, 701 | "Wrap": false, 702 | "Reversed": false, 703 | "MainAlignment": 0, 704 | "CrossAlignment": 0, 705 | "TrackAlignment": 0, 706 | "LayoutType": 0, 707 | "nid": 30, 708 | "strtype": "OBJECT/Layout_type", 709 | "strval": "No_layout", 710 | "InheritedType": 13 711 | }, 712 | { 713 | "nid": 40, 714 | "strtype": "OBJECT/Transform", 715 | "InheritedType": 1 716 | }, 717 | { 718 | "nid": 50, 719 | "flags": 17, 720 | "strtype": "OBJECT/Position", 721 | "intarray": [ 722 | 0, 723 | 105 724 | ], 725 | "InheritedType": 7 726 | }, 727 | { 728 | "nid": 60, 729 | "flags": 17, 730 | "strtype": "OBJECT/Size", 731 | "intarray": [ 732 | 146, 733 | 36 734 | ], 735 | "InheritedType": 7 736 | }, 737 | { 738 | "nid": 70, 739 | "strtype": "OBJECT/Align", 740 | "strval": "CENTER", 741 | "InheritedType": 3 742 | }, 743 | { 744 | "nid": 90, 745 | "strtype": "OBJECT/Flags", 746 | "InheritedType": 1 747 | }, 748 | { 749 | "nid": 120, 750 | "strtype": "OBJECT/Checkable", 751 | "strval": "True", 752 | "InheritedType": 2 753 | }, 754 | { 755 | "nid": 225, 756 | "flags": 1048576, 757 | "strtype": "OBJECT/Scrolling", 758 | "InheritedType": 1 759 | }, 760 | { 761 | "nid": 300, 762 | "strtype": "OBJECT/Scrollbar_mode", 763 | "strval": "AUTO", 764 | "InheritedType": 3 765 | }, 766 | { 767 | "nid": 310, 768 | "strtype": "OBJECT/Scroll_direction", 769 | "strval": "ALL", 770 | "InheritedType": 3 771 | }, 772 | { 773 | "nid": 314, 774 | "strtype": "OBJECT/Scroll_snap_x", 775 | "strval": "NONE", 776 | "InheritedType": 3 777 | }, 778 | { 779 | "nid": 315, 780 | "strtype": "OBJECT/Scroll_snap_y", 781 | "strval": "NONE", 782 | "InheritedType": 3 783 | }, 784 | { 785 | "nid": 320, 786 | "strtype": "OBJECT/States", 787 | "InheritedType": 1 788 | }, 789 | { 790 | "part": "lv.PART.MAIN", 791 | "childs": [ 792 | { 793 | "nid": 10000, 794 | "strtype": "_style/StyleState", 795 | "strval": "DEFAULT", 796 | "childs": [ 797 | { 798 | "nid": 10520, 799 | "strtype": "_style/Bg_Color", 800 | "intarray": [ 801 | 0, 802 | 0, 803 | 0, 804 | 255 805 | ], 806 | "InheritedType": 7 807 | }, 808 | { 809 | "nid": 10710, 810 | "strtype": "_style/Border_Color", 811 | "intarray": [ 812 | 145, 813 | 145, 814 | 145, 815 | 255 816 | ], 817 | "InheritedType": 7 818 | }, 819 | { 820 | "nid": 10720, 821 | "strtype": "_style/Border width", 822 | "integer": 2, 823 | "InheritedType": 6 824 | }, 825 | { 826 | "nid": 10730, 827 | "strtype": "_style/Border side", 828 | "strval": "FULL", 829 | "InheritedType": 3 830 | } 831 | ], 832 | "InheritedType": 1 833 | }, 834 | { 835 | "nid": 20000, 836 | "strtype": "_style/StyleState", 837 | "strval": "CHECKED", 838 | "childs": [ 839 | { 840 | "nid": 20520, 841 | "strtype": "_style/Bg_Color", 842 | "intarray": [ 843 | 106, 844 | 63, 845 | 99, 846 | 255 847 | ], 848 | "InheritedType": 7 849 | } 850 | ], 851 | "InheritedType": 1 852 | } 853 | ], 854 | "nid": 1010, 855 | "strtype": "BUTTON/Style_main", 856 | "strval": "lv.PART.MAIN, Rectangle, Pad, Text, Transform", 857 | "InheritedType": 11 858 | } 859 | ], 860 | "saved_objtypeKey": "BUTTON" 861 | }, 862 | { 863 | "guid": "GUID20462889-426311S10890435", 864 | "deepid": -303788870, 865 | "dont_export": false, 866 | "locked": false, 867 | "properties": [ 868 | { 869 | "nid": 10, 870 | "strtype": "OBJECT/Name", 871 | "strval": "Label3", 872 | "InheritedType": 10 873 | }, 874 | { 875 | "nid": 20, 876 | "strtype": "OBJECT/Layout", 877 | "InheritedType": 1 878 | }, 879 | { 880 | "Flow": 0, 881 | "Wrap": false, 882 | "Reversed": false, 883 | "MainAlignment": 0, 884 | "CrossAlignment": 0, 885 | "TrackAlignment": 0, 886 | "LayoutType": 0, 887 | "nid": 30, 888 | "strtype": "OBJECT/Layout_type", 889 | "strval": "No_layout", 890 | "InheritedType": 13 891 | }, 892 | { 893 | "nid": 40, 894 | "strtype": "OBJECT/Transform", 895 | "InheritedType": 1 896 | }, 897 | { 898 | "nid": 50, 899 | "flags": 17, 900 | "strtype": "OBJECT/Position", 901 | "intarray": [ 902 | 0, 903 | -105 904 | ], 905 | "InheritedType": 7 906 | }, 907 | { 908 | "nid": 60, 909 | "flags": 51, 910 | "strtype": "OBJECT/Size", 911 | "intarray": [ 912 | 1, 913 | 1 914 | ], 915 | "InheritedType": 7 916 | }, 917 | { 918 | "nid": 70, 919 | "strtype": "OBJECT/Align", 920 | "strval": "CENTER", 921 | "InheritedType": 3 922 | }, 923 | { 924 | "nid": 90, 925 | "flags": 1048576, 926 | "strtype": "OBJECT/Flags", 927 | "InheritedType": 1 928 | }, 929 | { 930 | "nid": 110, 931 | "strtype": "OBJECT/Clickable", 932 | "strval": "False", 933 | "InheritedType": 2 934 | }, 935 | { 936 | "nid": 225, 937 | "flags": 1048576, 938 | "strtype": "OBJECT/Scrolling", 939 | "InheritedType": 1 940 | }, 941 | { 942 | "nid": 300, 943 | "strtype": "OBJECT/Scrollbar_mode", 944 | "strval": "AUTO", 945 | "InheritedType": 3 946 | }, 947 | { 948 | "nid": 310, 949 | "strtype": "OBJECT/Scroll_direction", 950 | "strval": "ALL", 951 | "InheritedType": 3 952 | }, 953 | { 954 | "nid": 314, 955 | "strtype": "OBJECT/Scroll_snap_x", 956 | "strval": "NONE", 957 | "InheritedType": 3 958 | }, 959 | { 960 | "nid": 315, 961 | "strtype": "OBJECT/Scroll_snap_y", 962 | "strval": "NONE", 963 | "InheritedType": 3 964 | }, 965 | { 966 | "nid": 320, 967 | "flags": 1048576, 968 | "strtype": "OBJECT/States", 969 | "InheritedType": 1 970 | }, 971 | { 972 | "nid": 1010, 973 | "strtype": "LABEL/Label", 974 | "InheritedType": 1 975 | }, 976 | { 977 | "nid": 1020, 978 | "strtype": "LABEL/Long_mode", 979 | "strval": "WRAP", 980 | "InheritedType": 3 981 | }, 982 | { 983 | "nid": 1030, 984 | "strtype": "LABEL/Text", 985 | "strval": "nikthefix", 986 | "InheritedType": 10 987 | }, 988 | { 989 | "part": "lv.PART.MAIN", 990 | "childs": [ 991 | { 992 | "nid": 10000, 993 | "strtype": "_style/StyleState", 994 | "strval": "DEFAULT", 995 | "childs": [ 996 | { 997 | "nid": 10450, 998 | "strtype": "_style/Text_Font", 999 | "strval": "conthrax24", 1000 | "InheritedType": 3 1001 | } 1002 | ], 1003 | "InheritedType": 1 1004 | } 1005 | ], 1006 | "nid": 1040, 1007 | "strtype": "LABEL/Style_main", 1008 | "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", 1009 | "InheritedType": 11 1010 | }, 1011 | { 1012 | "nid": 1050, 1013 | "strtype": "LABEL/Recolor", 1014 | "strval": "False", 1015 | "InheritedType": 2 1016 | } 1017 | ], 1018 | "saved_objtypeKey": "LABEL" 1019 | }, 1020 | { 1021 | "guid": "GUID4974585-611353S60134143", 1022 | "deepid": -1057297531, 1023 | "dont_export": false, 1024 | "locked": false, 1025 | "properties": [ 1026 | { 1027 | "nid": 10, 1028 | "strtype": "OBJECT/Name", 1029 | "strval": "Spinner2", 1030 | "InheritedType": 10 1031 | }, 1032 | { 1033 | "nid": 20, 1034 | "strtype": "OBJECT/Layout", 1035 | "InheritedType": 1 1036 | }, 1037 | { 1038 | "Flow": 0, 1039 | "Wrap": false, 1040 | "Reversed": false, 1041 | "MainAlignment": 0, 1042 | "CrossAlignment": 0, 1043 | "TrackAlignment": 0, 1044 | "LayoutType": 0, 1045 | "nid": 30, 1046 | "strtype": "OBJECT/Layout_type", 1047 | "strval": "No_layout", 1048 | "InheritedType": 13 1049 | }, 1050 | { 1051 | "nid": 40, 1052 | "strtype": "OBJECT/Transform", 1053 | "InheritedType": 1 1054 | }, 1055 | { 1056 | "nid": 50, 1057 | "flags": 17, 1058 | "strtype": "OBJECT/Position", 1059 | "intarray": [ 1060 | -583, 1061 | -303 1062 | ], 1063 | "InheritedType": 7 1064 | }, 1065 | { 1066 | "nid": 60, 1067 | "flags": 17, 1068 | "strtype": "OBJECT/Size", 1069 | "intarray": [ 1070 | 50, 1071 | 50 1072 | ], 1073 | "InheritedType": 7 1074 | }, 1075 | { 1076 | "nid": 70, 1077 | "strtype": "OBJECT/Align", 1078 | "strval": "CENTER", 1079 | "InheritedType": 3 1080 | }, 1081 | { 1082 | "nid": 90, 1083 | "flags": 1048576, 1084 | "strtype": "OBJECT/Flags", 1085 | "InheritedType": 1 1086 | }, 1087 | { 1088 | "nid": 110, 1089 | "strtype": "OBJECT/Clickable", 1090 | "strval": "False", 1091 | "InheritedType": 2 1092 | }, 1093 | { 1094 | "nid": 225, 1095 | "flags": 1048576, 1096 | "strtype": "OBJECT/Scrolling", 1097 | "InheritedType": 1 1098 | }, 1099 | { 1100 | "nid": 314, 1101 | "strtype": "OBJECT/Scroll_snap_x", 1102 | "strval": "NONE", 1103 | "InheritedType": 3 1104 | }, 1105 | { 1106 | "nid": 315, 1107 | "strtype": "OBJECT/Scroll_snap_y", 1108 | "strval": "NONE", 1109 | "InheritedType": 3 1110 | }, 1111 | { 1112 | "nid": 320, 1113 | "flags": 1048576, 1114 | "strtype": "OBJECT/States", 1115 | "InheritedType": 1 1116 | }, 1117 | { 1118 | "part": "lv.PART.MAIN", 1119 | "childs": [], 1120 | "nid": 1010, 1121 | "strtype": "SPINNER/Style_main", 1122 | "strval": "lv.PART.MAIN, Rectangle, Arc, Pad, Transform", 1123 | "InheritedType": 11 1124 | }, 1125 | { 1126 | "part": "lv.PART.INDICATOR", 1127 | "childs": [], 1128 | "nid": 1020, 1129 | "strtype": "SPINNER/Style_indicator", 1130 | "strval": "lv.PART.INDICATOR, Arc", 1131 | "InheritedType": 11 1132 | }, 1133 | { 1134 | "nid": 1030, 1135 | "strtype": "SPINNER/Spinner", 1136 | "InheritedType": 1 1137 | } 1138 | ], 1139 | "saved_objtypeKey": "SPINNER" 1140 | }, 1141 | { 1142 | "guid": "GUID50079356-38702S240694143", 1143 | "deepid": -440226156, 1144 | "dont_export": false, 1145 | "locked": false, 1146 | "properties": [ 1147 | { 1148 | "nid": 10, 1149 | "strtype": "OBJECT/Name", 1150 | "strval": "Slider1", 1151 | "InheritedType": 10 1152 | }, 1153 | { 1154 | "nid": 20, 1155 | "strtype": "OBJECT/Layout", 1156 | "InheritedType": 1 1157 | }, 1158 | { 1159 | "Flow": 0, 1160 | "Wrap": false, 1161 | "Reversed": false, 1162 | "MainAlignment": 0, 1163 | "CrossAlignment": 0, 1164 | "TrackAlignment": 0, 1165 | "LayoutType": 0, 1166 | "nid": 30, 1167 | "strtype": "OBJECT/Layout_type", 1168 | "strval": "No_layout", 1169 | "InheritedType": 13 1170 | }, 1171 | { 1172 | "nid": 40, 1173 | "strtype": "OBJECT/Transform", 1174 | "InheritedType": 1 1175 | }, 1176 | { 1177 | "nid": 50, 1178 | "flags": 17, 1179 | "strtype": "OBJECT/Position", 1180 | "intarray": [ 1181 | 402, 1182 | -35 1183 | ], 1184 | "InheritedType": 7 1185 | }, 1186 | { 1187 | "nid": 60, 1188 | "flags": 17, 1189 | "strtype": "OBJECT/Size", 1190 | "intarray": [ 1191 | 11, 1192 | 432 1193 | ], 1194 | "InheritedType": 7 1195 | }, 1196 | { 1197 | "nid": 70, 1198 | "strtype": "OBJECT/Align", 1199 | "strval": "CENTER", 1200 | "InheritedType": 3 1201 | }, 1202 | { 1203 | "nid": 90, 1204 | "flags": 1048576, 1205 | "strtype": "OBJECT/Flags", 1206 | "InheritedType": 1 1207 | }, 1208 | { 1209 | "nid": 225, 1210 | "flags": 1048576, 1211 | "strtype": "OBJECT/Scrolling", 1212 | "InheritedType": 1 1213 | }, 1214 | { 1215 | "nid": 314, 1216 | "strtype": "OBJECT/Scroll_snap_x", 1217 | "strval": "NONE", 1218 | "InheritedType": 3 1219 | }, 1220 | { 1221 | "nid": 315, 1222 | "strtype": "OBJECT/Scroll_snap_y", 1223 | "strval": "NONE", 1224 | "InheritedType": 3 1225 | }, 1226 | { 1227 | "nid": 320, 1228 | "flags": 1048576, 1229 | "strtype": "OBJECT/States", 1230 | "InheritedType": 1 1231 | }, 1232 | { 1233 | "nid": 1010, 1234 | "strtype": "SLIDER/Slider", 1235 | "InheritedType": 1 1236 | }, 1237 | { 1238 | "nid": 1020, 1239 | "strtype": "SLIDER/Range", 1240 | "intarray": [ 1241 | 1, 1242 | 255 1243 | ], 1244 | "InheritedType": 7 1245 | }, 1246 | { 1247 | "nid": 1030, 1248 | "strtype": "SLIDER/Mode", 1249 | "strval": "NORMAL", 1250 | "InheritedType": 3 1251 | }, 1252 | { 1253 | "nid": 1040, 1254 | "strtype": "SLIDER/Value", 1255 | "integer": 255, 1256 | "InheritedType": 6 1257 | }, 1258 | { 1259 | "nid": 1050, 1260 | "strtype": "SLIDER/Value_left", 1261 | "InheritedType": 6 1262 | }, 1263 | { 1264 | "part": "lv.PART.MAIN", 1265 | "childs": [], 1266 | "nid": 1060, 1267 | "strtype": "SLIDER/Style_main", 1268 | "strval": "lv.PART.MAIN, Rectangle, Pad, Transform", 1269 | "InheritedType": 11 1270 | }, 1271 | { 1272 | "part": "lv.PART.INDICATOR", 1273 | "childs": [], 1274 | "nid": 1070, 1275 | "strtype": "SLIDER/Style_indicator", 1276 | "strval": "lv.PART.INDICATOR, Rectangle", 1277 | "InheritedType": 11 1278 | }, 1279 | { 1280 | "part": "lv.PART.KNOB", 1281 | "childs": [], 1282 | "nid": 1080, 1283 | "strtype": "SLIDER/Style_knob", 1284 | "strval": "lv.PART.KNOB, Rectangle, Pad", 1285 | "InheritedType": 11 1286 | } 1287 | ], 1288 | "saved_objtypeKey": "SLIDER" 1289 | }, 1290 | { 1291 | "guid": "GUID77414504-38716S9294143", 1292 | "deepid": -1500580136, 1293 | "dont_export": false, 1294 | "locked": false, 1295 | "properties": [ 1296 | { 1297 | "nid": 10, 1298 | "strtype": "OBJECT/Name", 1299 | "strval": "Label4", 1300 | "InheritedType": 10 1301 | }, 1302 | { 1303 | "nid": 20, 1304 | "strtype": "OBJECT/Layout", 1305 | "InheritedType": 1 1306 | }, 1307 | { 1308 | "Flow": 0, 1309 | "Wrap": false, 1310 | "Reversed": false, 1311 | "MainAlignment": 0, 1312 | "CrossAlignment": 0, 1313 | "TrackAlignment": 0, 1314 | "LayoutType": 0, 1315 | "nid": 30, 1316 | "strtype": "OBJECT/Layout_type", 1317 | "strval": "No_layout", 1318 | "InheritedType": 13 1319 | }, 1320 | { 1321 | "nid": 40, 1322 | "strtype": "OBJECT/Transform", 1323 | "InheritedType": 1 1324 | }, 1325 | { 1326 | "nid": 50, 1327 | "flags": 17, 1328 | "strtype": "OBJECT/Position", 1329 | "intarray": [ 1330 | 404, 1331 | 200 1332 | ], 1333 | "InheritedType": 7 1334 | }, 1335 | { 1336 | "nid": 60, 1337 | "flags": 51, 1338 | "strtype": "OBJECT/Size", 1339 | "intarray": [ 1340 | 1, 1341 | 1 1342 | ], 1343 | "InheritedType": 7 1344 | }, 1345 | { 1346 | "nid": 70, 1347 | "strtype": "OBJECT/Align", 1348 | "strval": "CENTER", 1349 | "InheritedType": 3 1350 | }, 1351 | { 1352 | "nid": 90, 1353 | "flags": 1048576, 1354 | "strtype": "OBJECT/Flags", 1355 | "InheritedType": 1 1356 | }, 1357 | { 1358 | "nid": 110, 1359 | "strtype": "OBJECT/Clickable", 1360 | "strval": "False", 1361 | "InheritedType": 2 1362 | }, 1363 | { 1364 | "nid": 225, 1365 | "flags": 1048576, 1366 | "strtype": "OBJECT/Scrolling", 1367 | "InheritedType": 1 1368 | }, 1369 | { 1370 | "nid": 300, 1371 | "strtype": "OBJECT/Scrollbar_mode", 1372 | "strval": "AUTO", 1373 | "InheritedType": 3 1374 | }, 1375 | { 1376 | "nid": 310, 1377 | "strtype": "OBJECT/Scroll_direction", 1378 | "strval": "ALL", 1379 | "InheritedType": 3 1380 | }, 1381 | { 1382 | "nid": 314, 1383 | "strtype": "OBJECT/Scroll_snap_x", 1384 | "strval": "NONE", 1385 | "InheritedType": 3 1386 | }, 1387 | { 1388 | "nid": 315, 1389 | "strtype": "OBJECT/Scroll_snap_y", 1390 | "strval": "NONE", 1391 | "InheritedType": 3 1392 | }, 1393 | { 1394 | "nid": 320, 1395 | "flags": 1048576, 1396 | "strtype": "OBJECT/States", 1397 | "InheritedType": 1 1398 | }, 1399 | { 1400 | "nid": 1010, 1401 | "strtype": "LABEL/Label", 1402 | "InheritedType": 1 1403 | }, 1404 | { 1405 | "nid": 1020, 1406 | "strtype": "LABEL/Long_mode", 1407 | "strval": "WRAP", 1408 | "InheritedType": 3 1409 | }, 1410 | { 1411 | "nid": 1030, 1412 | "strtype": "LABEL/Text", 1413 | "strval": "Brightness", 1414 | "InheritedType": 10 1415 | }, 1416 | { 1417 | "part": "lv.PART.MAIN", 1418 | "childs": [ 1419 | { 1420 | "nid": 10000, 1421 | "strtype": "_style/StyleState", 1422 | "strval": "DEFAULT", 1423 | "childs": [ 1424 | { 1425 | "nid": 10410, 1426 | "strtype": "_style/Text_Color", 1427 | "intarray": [ 1428 | 218, 1429 | 136, 1430 | 234, 1431 | 255 1432 | ], 1433 | "InheritedType": 7 1434 | } 1435 | ], 1436 | "InheritedType": 1 1437 | } 1438 | ], 1439 | "nid": 1040, 1440 | "strtype": "LABEL/Style_main", 1441 | "strval": "lv.PART.MAIN, Text, Rectangle, Pad, Transform", 1442 | "InheritedType": 11 1443 | }, 1444 | { 1445 | "nid": 1050, 1446 | "strtype": "LABEL/Recolor", 1447 | "strval": "False", 1448 | "InheritedType": 2 1449 | } 1450 | ], 1451 | "saved_objtypeKey": "LABEL" 1452 | } 1453 | ], 1454 | "isPage": true, 1455 | "editor_posx": 1600, 1456 | "editor_posy": -1600, 1457 | "dont_export": false, 1458 | "locked": false, 1459 | "properties": [ 1460 | { 1461 | "nid": 27086455, 1462 | "strtype": "OBJECT/Name", 1463 | "strval": "Screen1", 1464 | "InheritedType": 10 1465 | }, 1466 | { 1467 | "nid": 1414085941, 1468 | "strtype": "SCREEN/Layout", 1469 | "InheritedType": 1 1470 | }, 1471 | { 1472 | "Flow": 0, 1473 | "Wrap": false, 1474 | "Reversed": false, 1475 | "MainAlignment": 0, 1476 | "CrossAlignment": 0, 1477 | "TrackAlignment": 0, 1478 | "LayoutType": 0, 1479 | "nid": -408906213, 1480 | "strtype": "SCREEN/Layout_type", 1481 | "strval": "No_layout", 1482 | "InheritedType": 13 1483 | }, 1484 | { 1485 | "nid": 725945425, 1486 | "strtype": "OBJECT/Transform", 1487 | "InheritedType": 1 1488 | }, 1489 | { 1490 | "nid": 758979276, 1491 | "flags": 1048576, 1492 | "strtype": "OBJECT/Flags", 1493 | "InheritedType": 1 1494 | }, 1495 | { 1496 | "nid": 1127042903, 1497 | "strtype": "SCREEN/Overflow_visible", 1498 | "strval": "False", 1499 | "InheritedType": 2 1500 | }, 1501 | { 1502 | "nid": 1191801611, 1503 | "strtype": "SCREEN/Flex_in_new_track", 1504 | "strval": "False", 1505 | "InheritedType": 2 1506 | }, 1507 | { 1508 | "nid": 225, 1509 | "flags": 1048576, 1510 | "strtype": "OBJECT/Scrolling", 1511 | "InheritedType": 1 1512 | }, 1513 | { 1514 | "nid": -2024459505, 1515 | "strtype": "OBJECT/Scrollable", 1516 | "strval": "False", 1517 | "InheritedType": 2 1518 | }, 1519 | { 1520 | "nid": -1830564300, 1521 | "strtype": "SCREEN/Scroll_with_arrow", 1522 | "strval": "False", 1523 | "InheritedType": 2 1524 | }, 1525 | { 1526 | "nid": 835749771, 1527 | "strtype": "OBJECT/Scrollbar_mode", 1528 | "strval": "AUTO", 1529 | "InheritedType": 3 1530 | }, 1531 | { 1532 | "nid": -942628013, 1533 | "strtype": "OBJECT/Scroll_direction", 1534 | "strval": "ALL", 1535 | "InheritedType": 3 1536 | }, 1537 | { 1538 | "nid": 314, 1539 | "strtype": "OBJECT/Scroll_snap_x", 1540 | "strval": "NONE", 1541 | "InheritedType": 3 1542 | }, 1543 | { 1544 | "nid": 315, 1545 | "strtype": "OBJECT/Scroll_snap_y", 1546 | "strval": "NONE", 1547 | "InheritedType": 3 1548 | }, 1549 | { 1550 | "nid": -584022355, 1551 | "flags": 1048576, 1552 | "strtype": "OBJECT/States", 1553 | "InheritedType": 1 1554 | }, 1555 | { 1556 | "nid": 1373764548, 1557 | "strtype": "SCREEN/Edited", 1558 | "strval": "False", 1559 | "InheritedType": 2 1560 | }, 1561 | { 1562 | "nid": 24874231, 1563 | "strtype": "SCREEN/User_1", 1564 | "strval": "False", 1565 | "InheritedType": 2 1566 | }, 1567 | { 1568 | "nid": -519870312, 1569 | "strtype": "SCREEN/User_2", 1570 | "strval": "False", 1571 | "InheritedType": 2 1572 | }, 1573 | { 1574 | "nid": -627183576, 1575 | "strtype": "SCREEN/User_3", 1576 | "strval": "False", 1577 | "InheritedType": 2 1578 | }, 1579 | { 1580 | "nid": -1382494712, 1581 | "strtype": "SCREEN/User_4", 1582 | "strval": "False", 1583 | "InheritedType": 2 1584 | }, 1585 | { 1586 | "nid": 1130455852, 1587 | "strtype": "SCREEN/Screen", 1588 | "InheritedType": 1 1589 | }, 1590 | { 1591 | "nid": 1367625894, 1592 | "strtype": "SCREEN/Temporary", 1593 | "strval": "False", 1594 | "InheritedType": 2 1595 | }, 1596 | { 1597 | "part": "lv.PART.MAIN", 1598 | "childs": [ 1599 | { 1600 | "nid": -1935940092, 1601 | "strtype": "_style/StyleState", 1602 | "strval": "DEFAULT", 1603 | "childs": [ 1604 | { 1605 | "nid": -20259885, 1606 | "strtype": "_style/Bg_Color", 1607 | "intarray": [ 1608 | 0, 1609 | 0, 1610 | 0, 1611 | 255 1612 | ], 1613 | "InheritedType": 7 1614 | }, 1615 | { 1616 | "nid": -1605668919, 1617 | "strtype": "_style/Text_Color", 1618 | "intarray": [ 1619 | 128, 1620 | 128, 1621 | 128, 1622 | 255 1623 | ], 1624 | "InheritedType": 7 1625 | } 1626 | ], 1627 | "InheritedType": 1 1628 | } 1629 | ], 1630 | "nid": -992371285, 1631 | "strtype": "SCREEN/Style_main", 1632 | "strval": "lv.PART.MAIN, Rectangle, Pad, Text", 1633 | "InheritedType": 11 1634 | }, 1635 | { 1636 | "part": "lv.PART.SCROLLBAR", 1637 | "childs": [], 1638 | "nid": -1031448916, 1639 | "strtype": "SCREEN/Style_scrollbar", 1640 | "strval": "lv.PART.SCROLLBAR, Rectangle, Pad", 1641 | "InheritedType": 11 1642 | } 1643 | ], 1644 | "saved_objtypeKey": "SCREEN" 1645 | } 1646 | ], 1647 | "dont_export": false, 1648 | "locked": false, 1649 | "properties": [ 1650 | { 1651 | "nid": 1342832917, 1652 | "strtype": "STARTEVENTS/Name", 1653 | "strval": "___initial_actions0", 1654 | "InheritedType": 10 1655 | } 1656 | ], 1657 | "saved_objtypeKey": "STARTEVENTS" 1658 | }, 1659 | "animations": [], 1660 | "selected_theme": "Default", 1661 | "info": { 1662 | "name": "SquareLine_Project.spj", 1663 | "depth": 2, 1664 | "width": 1280, 1665 | "height": 720, 1666 | "rotation": 0, 1667 | "offset_x": 0, 1668 | "offset_y": 0, 1669 | "shape": "RECTANGLE", 1670 | "multilang": "DISABLE", 1671 | "description": "", 1672 | "board": "Arduino with TFT_eSPI", 1673 | "board_version": "v1.1.2", 1674 | "editor_version": "1.5.1", 1675 | "image": "", 1676 | "export_temp_image": false, 1677 | "force_export_images": false, 1678 | "flat_export": true, 1679 | "advanced_alpha": false, 1680 | "pointfilter": false, 1681 | "theme_simplified": false, 1682 | "theme_dark": true, 1683 | "theme_color1": 5, 1684 | "theme_color2": 0, 1685 | "uiExportFolderPath": "D:\\Users\\Administrator\\Desktop\\New folder", 1686 | "projectExportFolderPath": "D:\\Users\\Administrator\\Desktop\\New folder", 1687 | "custom_variable_prefix": "uic", 1688 | "backup_cnt": 37, 1689 | "autosave_cnt": 0, 1690 | "group_color_cnt": 0, 1691 | "lvgl_version": "8.3.6", 1692 | "callfuncsexport": "C_FILE", 1693 | "imageexport": "SOURCE", 1694 | "lvgl_include_path": "", 1695 | "drive_stdio": "-", 1696 | "drive_stdio_path": "", 1697 | "drive_posix": "-", 1698 | "drive_posix_path": "", 1699 | "drive_win32": "-", 1700 | "drive_win32_path": "", 1701 | "drive_fatfs": "-", 1702 | "drive_fatfs_path": "", 1703 | "naming": "Name", 1704 | "naming_force_lowercase": false, 1705 | "nidcnt": 1000412, 1706 | "BitDepth": 16, 1707 | "Name": "SquareLine_Project" 1708 | } 1709 | } --------------------------------------------------------------------------------