feature:add demos for ESP-Box

This commit is contained in:
Yu Zhe
2021-10-25 14:43:50 +08:00
parent 10f8a00161
commit 0f4a5eb467
161 changed files with 23545 additions and 12360 deletions
+28 -6
View File
@@ -3,7 +3,10 @@ stages:
- deploy
variables:
ESP_HMI_PATH: "$CI_PROJECT_DIR"
ESP_CUBE_PATH: "$CI_PROJECT_DIR"
BATCH_BUILD: "1"
V: "0"
IDF_CI_BUILD: "1"
before_script:
# add gitlab ssh key
@@ -16,13 +19,32 @@ before_script:
- git --version
- git submodule update --init --recursive --force
.build_template: &build_template
.build_examples_template: &build_examples_template
stage: build
image: espressif/idf:master
image: espressif/idf:latest
tags:
- build
build_demo_cmake:
<<: *build_examples_template
script:
-
- cd examples/factory_demo
- idf.py fullclean
- idf.py build
- cd ../
- cd freetype
- idf.py fullclean
- idf.py build
- cd ../
- cd image_display
- idf.py fullclean
- idf.py build
- cd ../
- cd lv_demos
- idf.py fullclean
- idf.py build
- cd ../../
push_to_github:
stage: deploy
@@ -43,5 +65,5 @@ push_to_github:
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- git remote remove github &>/dev/null || true
- git remote add github [email protected]:espressif/esp-hmi.git
- ${ESP_HMI_PATH}/tools/ci/push_to_github.sh
- git remote add github [email protected]:espressif/esp-box.git
- ${ESP_CUBE_PATH}/tools/ci/push_to_github.sh
+6
View File
@@ -34,3 +34,9 @@
[submodule "components/esp-sr"]
path = components/esp-sr
url = https://github.com/espressif/esp-sr.git
[submodule "examples/freetype/main/lib/freetype"]
path = examples/freetype/main/lib/freetype
url = https://gitlab.freedesktop.org/freetype/freetype.git
[submodule "components/lvgl/lv_lib/lv_lib_qrcode"]
path = components/lvgl/lv_lib/lv_lib_qrcode
url = https://github.com/lvgl/lv_lib_qrcode.git
+4 -28
View File
@@ -1,31 +1,3 @@
if(CONFIG_ESP32_WROVER_KIT_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_wrover_kit.c")
endif()
if(CONFIG_ESP32_S2_KALUGA_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_s2_kaluga.c")
endif()
if(CONFIG_ESP32_S2_HMI_DEVKIT_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_s2_hmi_devkit.c")
endif()
if(CONFIG_ESP32_S3_HMI_DEVKIT_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_s3_hmi_devkit.c")
endif()
if(CONFIG_ESP32_S3_LCD_CAM_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_s3_lcd_cam.c")
endif()
if(CONFIG_ESP32_S3_CUBE_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_s3_cube.c")
endif()
if(CONFIG_ESP32_C3_DEVKIT_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_c3_devkit.c")
endif()
file(GLOB_RECURSE BSP_SRCS
"src/lcd/bsp_lcd.c"
"src/lcd/bsp_lcd_spi.c"
@@ -36,6 +8,10 @@ file(GLOB_RECURSE BSP_SRCS
"src/bsp_storage.c"
"src/bsp_tp.c")
if(CONFIG_ESP32_S3_CUBE_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp32_s3_cube.c")
endif()
if(CONFIG_ESP_CUSTOM_BOARD)
list(APPEND BSP_BOARD_SRC "./boards/esp_custom_board.c")
endif()
+1 -31
View File
@@ -2,30 +2,12 @@ menu "HMI Board Config"
choice HMI_BOARD
prompt "HMI board"
default ESP32_S2_HMI_DEVKIT_BOARD
default ESP32_S3_CUBE_BOARD
help
Select an HMI board to use with the HMI project
config ESP32_WROVER_KIT_BOARD
bool "ESP32-WROVER-KIT"
depends on IDF_TARGET_ESP32
config ESP32_S2_KALUGA_BOARD
bool "ESP32-S2-Kaluga-1"
depends on IDF_TARGET_ESP32S2
config ESP32_S2_HMI_DEVKIT_BOARD
bool "ESP32-S2-HMI-DevKit-1"
depends on IDF_TARGET_ESP32S2
config ESP32_S3_HMI_DEVKIT_BOARD
bool "ESP32-S3-HMI-DevKit"
depends on IDF_TARGET_ESP32S3
config ESP32_S3_LCD_CAM_BOARD
bool "ESP32-S3 LCD_CAM Board"
depends on IDF_TARGET_ESP32S3
config ESP32_S3_CUBE_BOARD
bool "ESP32-S3 Cube Dev Board"
depends on IDF_TARGET_ESP32S3
config ESP32_C3_DEVKIT_BOARD
bool "ESP32-C3 DevKit Board"
depends on IDF_TARGET_ESP32C3
config ESP_CUSTOM_BOARD
bool "Custom HMI board"
endchoice
@@ -175,18 +157,6 @@ menu "HMI Board Config"
default 39
endmenu
menu "TWAI GPIO configuration"
depends on ESP_CUSTOM_BOARD
config TWAI_TX_GPIO
int "TWAI TX GPIO"
range 0 48
default 41
config TWAI_RX_GPIO
int "TWAI RX GPIO"
range 0 48
default 42
endmenu
menu "Touch Panel Drivers"
depends on ESP_CUSTOM_BOARD
@@ -1,116 +0,0 @@
/**
* @file bsp_board_esp32_c3_devkit.h
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP32-S2-HMI-DevKit LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_BUS_WIDTH (1)
#define LCD_WIDTH (320)
#define LCD_HEIGHT (240)
#define LCD_HOST (SPI2_HOST)
#define LCD_DISP_IC_ST (1)
#define LCD_FREQ (20 * 1000 * 1000)
#define LCD_HOST (SPI2_HOST)
#define LCD_SWAP_XY (true)
#define LCD_MIRROR_X (false)
#define LCD_MIRROR_Y (true)
#define LCD_COLOR_INV (true)
#define GPIO_LCD_BL (GPIO_NUM_8)
#define GPIO_LCD_BL_ON (1)
#define GPIO_LCD_CS (GPIO_NUM_5)
#define GPIO_LCD_RST (GPIO_NUM_9)
#define GPIO_LCD_DC (GPIO_NUM_4)
#define GPIO_LCD_WR (GPIO_NUM_6)
#define GPIO_LCD_CLK (GPIO_LCD_WR)
#define GPIO_LCD_DIN (GPIO_NUM_7)
#define GPIO_LCD_DOUT (GPIO_NUM_2)
/**
* @brief ESP32-S2-HMI-DevKit I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_0)
#define GPIO_I2C_SDA (GPIO_NUM_1)
/**
* @brief ESP32-S2-HMI-DevKit SDMMC GPIO defination
*
*/
#define FUNC_SDMMC_EN (0)
/**
* @brief ESP32-S2-HMI-DevKit SDSPI GPIO definationv
*
*/
#define FUNC_SDCARD_EN (1)
#define FUNC_SDSPI_EN (1)
#define GPIO_SDSPI_CS (GPIO_NUM_4)
#define GPIO_SDSPI_SCLK (GPIO_NUM_6)
#define GPIO_SDSPI_MISO (GPIO_NUM_2)
#define GPIO_SDSPI_MOSI (GPIO_NUM_7)
/**
* @brief ESP32-S2-HMI-DevKit SPI GPIO defination
*
*/
#define FUNC_SPI_EN (1)
#define GPIO_SPI_CS (GPIO_NUM_4)
#define GPIO_SPI_MISO (GPIO_NUM_2)
#define GPIO_SPI_MOSI (GPIO_NUM_7)
#define GPIO_SPI_SCLK (GPIO_NUM_6)
/**
* @brief ESP32-S2-HMI-DevKit RMT GPIO defination
*
*/
#define FUNC_RMT_EN (1)
#define GPIO_RMT_IR (GPIO_NUM_NC)
#define GPIO_RMT_LED (GPIO_NUM_10)
/**
* @brief ESP32-S2-HMI-DevKit I2S GPIO defination
*
*/
#define FUNC_I2S_EN (0)
#define GPIO_I2S_LRCK (GPIO_NUM_NC)
#define GPIO_I2S_MCLK (GPIO_NUM_NC)
#define GPIO_I2S_SCLK (GPIO_NUM_NC)
#define GPIO_I2S_SDIN (GPIO_NUM_NC)
#define GPIO_I2S_DOUT (GPIO_NUM_NC)
/**
* @brief ESP32-S3-HMI-DevKit power control IO
*
*/
#define FUNC_PWR_CTRL (0)
/**
* @brief ESP32-S3-HMI-DevKit camrea control IO
*
*/
#define FUNC_CAM_EN (0)
@@ -1,140 +0,0 @@
/**
* @file bsp_board_esp32_wrover_kit.h
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP32-S2-HMI-DevKit LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_BUS_WIDTH (1)
#define LCD_IFACE_SPI (1)
#define LCD_DISP_IC_ST (1)
#define LCD_WIDTH (320)
#define LCD_HEIGHT (240)
#define LCD_FREQ (20 * 1000 * 1000)
#define LCD_HOST (SPI2_HOST)
#define LCD_SWAP_XY (1)
#define LCD_MIRROR_X (0)
#define LCD_MIRROR_Y (0)
#define LCD_COLOR_INV (false)
#define GPIO_LCD_BL (GPIO_NUM_5)
#define GPIO_LCD_BL_ON (0)
#define GPIO_LCD_CS (GPIO_NUM_22)
#define GPIO_LCD_RST (GPIO_NUM_18)
#define GPIO_LCD_DC (GPIO_NUM_21)
#define GPIO_LCD_CLK (GPIO_NUM_19)
#define GPIO_LCD_DIN (GPIO_NUM_23)
#define GPIO_LCD_DOUT (GPIO_NUM_25)
/**
* @brief ESP32-S2-HMI-DevKit I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_27)
#define GPIO_I2C_SDA (GPIO_NUM_26)
/**
* @brief ESP32-S2-HMI-DevKit SDMMC GPIO defination
*
*/
#define FUNC_SDMMC_EN (1)
#define SDMMC_BUS_WIDTH (1)
#define GPIO_SDMMC_CLK (GPIO_NUM_14)
#define GPIO_SDMMC_CMD (GPIO_NUM_15)
#define GPIO_SDMMC_D0 (GPIO_NUM_2)
#define GPIO_SDMMC_D1 (GPIO_NUM_4)
#define GPIO_SDMMC_D2 (GPIO_NUM_12)
#define GPIO_SDMMC_D3 (GPIO_NUM_13)
#define GPIO_SDMMC_DET (GPIO_NUM_NC) // GPIO_NUM_21 if R167 not removed
/**
* @brief ESP32-S2-HMI-DevKit SDSPI GPIO definationv
*
*/
#define FUNC_SDSPI_EN (0)
#define GPIO_SDSPI_CS (GPIO_NUM_NC)
#define GPIO_SDSPI_SCLK (GPIO_NUM_NC)
#define GPIO_SDSPI_MISO (GPIO_NUM_NC)
#define GPIO_SDSPI_MOSI (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit SPI GPIO defination
*
*/
#define FUNC_SPI_EN (0)
#define GPIO_SPI_CS (GPIO_NUM_34)
#define GPIO_SPI_MISO (GPIO_NUM_37)
#define GPIO_SPI_MOSI (GPIO_NUM_35)
#define GPIO_SPI_SCLK (GPIO_NUM_36)
/**
* @brief ESP32-S2-HMI-DevKit RMT GPIO defination
*
*/
#define FUNC_RMT_EN (0)
#define GPIO_RMT_IR (GPIO_NUM_NC)
#define GPIO_RMT_LED (GPIO_NUM_0)
/**
* @brief ESP32-S2-HMI-DevKit I2S GPIO defination
*
*/
#define FUNC_I2S_EN (0)
#define GPIO_I2S_LRCK (GPIO_NUM_NC)
#define GPIO_I2S_MCLK (GPIO_NUM_NC)
#define GPIO_I2S_SCLK (GPIO_NUM_NC)
#define GPIO_I2S_SDIN (GPIO_NUM_NC)
#define GPIO_I2S_DOUT (GPIO_NUM_NC)
/**
* @brief ESP32-S3-HMI-DevKit power control IO
*
*/
#define FUNC_PWR_CTRL (0)
#define GPIO_PWR_CTRL (GPIO_NUM_NC)
#define GPIO_PWR_ON_LEVEL (0)
/**
* @brief ESP32-S3-HMI-DevKit camrea control IO
*
*/
#define FUNC_CAM_EN (1)
#define GPIO_CAM_SCL (GPIO_I2C_SCL)
#define GPIO_CAM_SDA (GPIO_I2C_SDA)
#define GPIO_CAM_PCLK (GPIO_NUM_22)
#define GPIO_CAM_XCLK (GPIO_NUM_21)
#define GPIO_CAM_HSYNC (GPIO_NUM_23)
#define GPIO_CAM_VSYNC (GPIO_NUM_25)
#define GPIO_CAM_RST (GPIO_NUM_0)
#define GPIO_CAM_PWDN (GPIO_NUM_NC)
#define GPIO_CAM_Y2 (GPIO_NUM_4)
#define GPIO_CAM_Y3 (GPIO_NUM_5)
#define GPIO_CAM_Y4 (GPIO_NUM_18)
#define GPIO_CAM_Y5 (GPIO_NUM_19)
#define GPIO_CAM_Y6 (GPIO_NUM_36)
#define GPIO_CAM_Y7 (GPIO_NUM_39)
#define GPIO_CAM_Y8 (GPIO_NUM_34)
#define GPIO_CAM_Y9 (GPIO_NUM_35)
@@ -1,138 +0,0 @@
/**
* @file bsp_board_esp32s2_hmi_devkit_1.h
* @brief
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP32-S2-HMI-DevKit LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_IFACE_I80 (1)
#define LCD_DISP_IC_NT (1)
#define LCD_BUS_WIDTH (16)
#define LCD_WIDTH (800)
#define LCD_HEIGHT (480)
#define LCD_FREQ (20 * 1000 * 1000)
#define LCD_SWAP_XY (true)
#define LCD_MIRROR_X (true)
#define LCD_MIRROR_Y (false)
#define LCD_COLOR_INV (false)
#define TOUCH_PANEL_SWAP_XY (1)
#define TOUCH_PANEL_INVERSE_Y (1)
#define GPIO_LCD_BL (GPIO_NUM_NC)
#define GPIO_LCD_BL_ON (0)
#define GPIO_LCD_CS (GPIO_NUM_NC)
#define GPIO_LCD_RST (GPIO_NUM_NC)
#define GPIO_LCD_DC (GPIO_NUM_38)
#define GPIO_LCD_WR (GPIO_NUM_33)
#define GPIO_LCD_CLK (GPIO_LCD_WR)
#define GPIO_LCD_D00 (GPIO_NUM_1)
#define GPIO_LCD_D01 (GPIO_NUM_10)
#define GPIO_LCD_D02 (GPIO_NUM_2)
#define GPIO_LCD_D03 (GPIO_NUM_11)
#define GPIO_LCD_D04 (GPIO_NUM_3)
#define GPIO_LCD_D05 (GPIO_NUM_12)
#define GPIO_LCD_D06 (GPIO_NUM_4)
#define GPIO_LCD_D07 (GPIO_NUM_13)
#define GPIO_LCD_D08 (GPIO_NUM_5)
#define GPIO_LCD_D09 (GPIO_NUM_14)
#define GPIO_LCD_D10 (GPIO_NUM_6)
#define GPIO_LCD_D11 (GPIO_NUM_15)
#define GPIO_LCD_D12 (GPIO_NUM_7)
#define GPIO_LCD_D13 (GPIO_NUM_16)
#define GPIO_LCD_D14 (GPIO_NUM_8)
#define GPIO_LCD_D15 (GPIO_NUM_17)
/**
* @brief ESP32-S2-HMI-DevKit I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_39)
#define GPIO_I2C_SDA (GPIO_NUM_40)
/**
* @brief ESP32-S2-HMI-DevKit SDMMC GPIO defination
*
*/
#define FUNC_SDMMC_EN (0)
#define SDMMC_BUS_WIDTH (0)
#define GPIO_SDMMC_CLK (GPIO_NUM_NC)
#define GPIO_SDMMC_CMD (GPIO_NUM_NC)
#define GPIO_SDMMC_D0 (GPIO_NUM_NC)
#define GPIO_SDMMC_D1 (GPIO_NUM_NC)
#define GPIO_SDMMC_D2 (GPIO_NUM_NC)
#define GPIO_SDMMC_D3 (GPIO_NUM_NC)
#define GPIO_SDMMC_DET (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit SDSPI GPIO definationv
*
*/
#define FUNC_SDSPI_EN (1)
#define GPIO_SDSPI_CS (GPIO_NUM_34)
#define GPIO_SDSPI_SCLK (GPIO_NUM_36)
#define GPIO_SDSPI_MISO (GPIO_NUM_37)
#define GPIO_SDSPI_MOSI (GPIO_NUM_35)
/**
* @brief ESP32-S2-HMI-DevKit RMT GPIO defination
*
*/
#define FUNC_RMT_EN (1)
#define GPIO_RMT_IR (GPIO_NUM_21)
#define GPIO_RMT_LED (GPIO_NUM_21)
/**
* @brief ESP32-S2-HMI-DevKit I2S GPIO defination
*
*/
#define FUNC_I2S_EN (0)
#define GPIO_I2S_LRCK (GPIO_NUM_NC)
#define GPIO_I2S_MCLK (GPIO_NUM_NC)
#define GPIO_I2S_SCLK (GPIO_NUM_NC)
#define GPIO_I2S_SDIN (GPIO_NUM_NC)
#define GPIO_I2S_DOUT (GPIO_NUM_NC)
#define FUNC_CAM_EN (0)
#define GPIO_CAM_SCL (GPIO_I2C_SCL)
#define GPIO_CAM_SDA (GPIO_I2C_SDA)
#define GPIO_CAM_PCLK (GPIO_NUM_NC)
#define GPIO_CAM_XCLK (GPIO_NUM_NC)
#define GPIO_CAM_HSYNC (GPIO_NUM_NC)
#define GPIO_CAM_VSYNC (GPIO_NUM_NC)
#define GPIO_CAM_RST (GPIO_NUM_NC)
#define GPIO_CAM_PWDN (GPIO_NUM_NC)
#define GPIO_CAM_Y2 (GPIO_NUM_NC)
#define GPIO_CAM_Y3 (GPIO_NUM_NC)
#define GPIO_CAM_Y4 (GPIO_NUM_NC)
#define GPIO_CAM_Y5 (GPIO_NUM_NC)
#define GPIO_CAM_Y6 (GPIO_NUM_NC)
#define GPIO_CAM_Y7 (GPIO_NUM_NC)
#define GPIO_CAM_Y8 (GPIO_NUM_NC)
#define GPIO_CAM_Y9 (GPIO_NUM_NC)
@@ -1,127 +0,0 @@
/**
* @file bsp_board_esp32s2_kaluga_1.h
* @brief
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP32-S2-HMI-DevKit LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_IFACE_SPI (1)
#define LCD_DISP_IC_ST (1)
#define LCD_BUS_WIDTH (1)
#define LCD_WIDTH (320)
#define LCD_HEIGHT (240)
#define LCD_FREQ (40 * 1000 * 1000)
#define LCD_HOST (SPI2_HOST)
#define LCD_SWAP_XY (true)
#define LCD_MIRROR_X (true)
#define LCD_MIRROR_Y (false)
#define LCD_COLOR_INV (false)
#define GPIO_LCD_BL (GPIO_NUM_6)
#define GPIO_LCD_BL_ON (0)
#define GPIO_LCD_CS (GPIO_NUM_11)
#define GPIO_LCD_RST (GPIO_NUM_16)
#define GPIO_LCD_DC (GPIO_NUM_13)
#define GPIO_LCD_CLK (GPIO_NUM_15)
#define GPIO_LCD_DIN (GPIO_NUM_9)
#define GPIO_LCD_DOUT (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_7)
#define GPIO_I2C_SDA (GPIO_NUM_8)
/**
* @brief ESP32-S2-HMI-DevKit SDMMC GPIO defination
*
*/
#define FUNC_SDMMC_EN (0)
#define SDMMC_BUS_WIDTH (0)
#define GPIO_SDMMC_CLK (GPIO_NUM_NC)
#define GPIO_SDMMC_CMD (GPIO_NUM_NC)
#define GPIO_SDMMC_D0 (GPIO_NUM_NC)
#define GPIO_SDMMC_D1 (GPIO_NUM_NC)
#define GPIO_SDMMC_D2 (GPIO_NUM_NC)
#define GPIO_SDMMC_D3 (GPIO_NUM_NC)
#define GPIO_SDMMC_DET (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit SDSPI GPIO definationv
*
*/
#define FUNC_SDSPI_EN (0)
#define GPIO_SDSPI_CS (GPIO_NUM_34)
#define GPIO_SDSPI_SCLK (GPIO_NUM_36)
#define GPIO_SDSPI_MISO (GPIO_NUM_37)
#define GPIO_SDSPI_MOSI (GPIO_NUM_35)
/**
* @brief ESP32-S2-HMI-DevKit RMT GPIO defination
*
*/
#define FUNC_RMT_EN (1)
#define GPIO_RMT_IR (GPIO_NUM_45)
#define GPIO_RMT_LED (GPIO_NUM_45)
/**
* @brief ESP32-S3-HMI-DevKit PA power control IO
*
*/
#define FUNC_PWR_CTRL (1)
#define GPIO_PWR_CTRL (GPIO_NUM_10)
#define GPIO_PWR_ON_LEVEL (1)
/**
* @brief ESP32-S2-HMI-DevKit I2S GPIO defination
*
*/
#define FUNC_I2S_EN (0)
#define GPIO_I2S_LRCK (GPIO_NUM_17)
#define GPIO_I2S_MCLK (GPIO_NUM_35)
#define GPIO_I2S_SCLK (GPIO_NUM_18)
#define GPIO_I2S_SDIN (GPIO_NUM_34)
#define GPIO_I2S_DOUT (GPIO_NUM_12)
#define FUNC_CAM_EN (1)
#define GPIO_CAM_SCL (GPIO_NUM_7)
#define GPIO_CAM_SDA (GPIO_NUM_8)
#define GPIO_CAM_PCLK (GPIO_NUM_33)
#define GPIO_CAM_XCLK (GPIO_NUM_1)
#define GPIO_CAM_HSYNC (GPIO_NUM_3)
#define GPIO_CAM_VSYNC (GPIO_NUM_2)
#define GPIO_CAM_RST (GPIO_NUM_NC)
#define GPIO_CAM_PWDN (GPIO_NUM_NC)
#define GPIO_CAM_Y2 (GPIO_NUM_36)
#define GPIO_CAM_Y3 (GPIO_NUM_37)
#define GPIO_CAM_Y4 (GPIO_NUM_41)
#define GPIO_CAM_Y5 (GPIO_NUM_42)
#define GPIO_CAM_Y6 (GPIO_NUM_39)
#define GPIO_CAM_Y7 (GPIO_NUM_40)
#define GPIO_CAM_Y8 (GPIO_NUM_21)
#define GPIO_CAM_Y9 (GPIO_NUM_38)
@@ -1,151 +0,0 @@
/**
* @file bsp_board_esp32s3_hmi_devkit_1.h
* @brief
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP32-S2-HMI-DevKit LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_BIT_WIDTH (8)
#define LCD_WIDTH (800)
#define LCD_HEIGHT (480)
#define LCD_FREQ (40 * 1000 * 1000)
#define LCD_SWAP_XY (true)
#define LCD_MIRROR_X (true)
#define LCD_MIRROR_Y (false)
#define LCD_COLOR_INV (false)
#define TOUCH_PANEL_SWAP_XY (1)
#define TOUCH_PANEL_INVERSE_Y (1)
#define GPIO_LCD_BL (GPIO_NUM_45)
#define GPIO_LCD_BL_ON (1)
#define GPIO_LCD_CS (GPIO_NUM_NC)
#define GPIO_LCD_RST (GPIO_NUM_1)
#define GPIO_LCD_DC (GPIO_NUM_15)
#define GPIO_LCD_WR (GPIO_NUM_7)
#define GPIO_LCD_D00 (GPIO_NUM_16)
#define GPIO_LCD_D01 (GPIO_NUM_17)
#define GPIO_LCD_D02 (GPIO_NUM_18)
#define GPIO_LCD_D03 (GPIO_NUM_8)
#define GPIO_LCD_D04 (GPIO_NUM_9)
#define GPIO_LCD_D05 (GPIO_NUM_10)
#define GPIO_LCD_D06 (GPIO_NUM_11)
#define GPIO_LCD_D07 (GPIO_NUM_12)
#define GPIO_LCD_D08 (GPIO_NUM_NC)
#define GPIO_LCD_D09 (GPIO_NUM_NC)
#define GPIO_LCD_D10 (GPIO_NUM_NC)
#define GPIO_LCD_D11 (GPIO_NUM_NC)
#define GPIO_LCD_D12 (GPIO_NUM_NC)
#define GPIO_LCD_D13 (GPIO_NUM_NC)
#define GPIO_LCD_D14 (GPIO_NUM_NC)
#define GPIO_LCD_D15 (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_4)
#define GPIO_I2C_SDA (GPIO_NUM_5)
/**
* @brief ESP32-S2-HMI-DevKit SDMMC GPIO defination
*
*/
#define FUNC_SDMMC_EN (1)
#define SDMMC_BUS_WIDTH (4)
#define GPIO_SDMMC_CLK (GPIO_NUM_39)
#define GPIO_SDMMC_CMD (GPIO_NUM_40)
#define GPIO_SDMMC_D0 (GPIO_NUM_41)
#define GPIO_SDMMC_D1 (GPIO_NUM_42)
#define GPIO_SDMMC_D2 (GPIO_NUM_36)
#define GPIO_SDMMC_D3 (GPIO_NUM_37)
#define GPIO_SDMMC_DET (GPIO_NUM_35)
/**
* @brief ESP32-S2-HMI-DevKit SDSPI GPIO definationv
*
*/
#define FUNC_SDSPI_EN (0)
#define GPIO_SDSPI_CS (GPIO_NUM_NC)
#define GPIO_SDSPI_SCLK (GPIO_NUM_NC)
#define GPIO_SDSPI_MISO (GPIO_NUM_NC)
#define GPIO_SDSPI_MOSI (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit SPI GPIO defination
*
*/
#define FUNC_SPI_EN (1)
#define GPIO_SPI_CS (GPIO_NUM_34)
#define GPIO_SPI_MISO (GPIO_NUM_37)
#define GPIO_SPI_MOSI (GPIO_NUM_35)
#define GPIO_SPI_SCLK (GPIO_NUM_36)
/**
* @brief ESP32-S2-HMI-DevKit RMT GPIO defination
*
*/
#define FUNC_RMT_EN (1)
#define GPIO_RMT_IR (GPIO_NUM_13)
#define GPIO_RMT_LED (GPIO_NUM_0)
/**
* @brief ESP32-S2-HMI-DevKit I2S GPIO defination
*
*/
#define FUNC_I2S_EN (1)
#define GPIO_I2S_LRCK (GPIO_NUM_47)
#define GPIO_I2S_MCLK (GPIO_NUM_14)
#define GPIO_I2S_SCLK (GPIO_NUM_21)
#define GPIO_I2S_SDIN (GPIO_NUM_38)
#define GPIO_I2S_DOUT (GPIO_NUM_48)
/**
* @brief ESP32-S3-HMI-DevKit power control IO
*
*/
#define GPIO_PWR_CTRL (GPIO_NUM_2)
#define GPIO_PWR_ON_LEVEL (0)
#define FUNC_CAM_EN (1)
#define GPIO_CAM_SCL (GPIO_I2C_SCL)
#define GPIO_CAM_SDA (GPIO_I2C_SDA)
#define GPIO_CAM_PCLK (GPIO_NUM_11)
#define GPIO_CAM_XCLK (GPIO_NUM_40)
#define GPIO_CAM_HSYNC (GPIO_NUM_38)
#define GPIO_CAM_VSYNC (GPIO_NUM_21)
#define GPIO_CAM_RST (GPIO_NUM_NC)
#define GPIO_CAM_PWDN (GPIO_NUM_NC)
#define GPIO_CAM_Y2 (GPIO_NUM_13)
#define GPIO_CAM_Y3 (GPIO_NUM_47)
#define GPIO_CAM_Y4 (GPIO_NUM_14)
#define GPIO_CAM_Y5 (GPIO_NUM_3)
#define GPIO_CAM_Y6 (GPIO_NUM_12)
#define GPIO_CAM_Y7 (GPIO_NUM_42)
#define GPIO_CAM_Y8 (GPIO_NUM_41)
#define GPIO_CAM_Y9 (GPIO_NUM_39)
@@ -1,158 +0,0 @@
/**
* @file bsp_board_esp32s3_lcd_cam.h
* @brief
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP32-S2-HMI-DevKit LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_IFACE_SPI (1)
#define LCD_HOST (SPI2_HOST)
#define LCD_BUS_WIDTH (8)
#define LCD_DISP_IC_ST (1)
#define LCD_WIDTH (480)
#define LCD_HEIGHT (320)
#define LCD_FREQ (40 * 1000 * 1000)
#define LCD_SWAP_XY (true)
#define LCD_MIRROR_X (false)
#define LCD_MIRROR_Y (false)
#define LCD_COLOR_INV (false)
#define TOUCH_PANEL_SWAP_XY (1)
#define TOUCH_PANEL_INVERSE_Y (1)
#define GPIO_LCD_BL (GPIO_NUM_NC)
#define GPIO_LCD_BL_ON (0)
#define GPIO_LCD_CS (GPIO_NUM_NC)
#define GPIO_LCD_RST (GPIO_NUM_NC)
#define GPIO_LCD_DC (GPIO_NUM_2)
#define GPIO_LCD_CLK (GPIO_NUM_4)
#define GPIO_LCD_D00 (GPIO_NUM_45)
#define GPIO_LCD_D01 (GPIO_NUM_16)
#define GPIO_LCD_D02 (GPIO_NUM_15)
#define GPIO_LCD_D03 (GPIO_NUM_10)
#define GPIO_LCD_D04 (GPIO_NUM_8)
#define GPIO_LCD_D05 (GPIO_NUM_7)
#define GPIO_LCD_D06 (GPIO_NUM_6)
#define GPIO_LCD_D07 (GPIO_NUM_5)
#define GPIO_LCD_D08 (GPIO_NUM_NC)
#define GPIO_LCD_D09 (GPIO_NUM_NC)
#define GPIO_LCD_D10 (GPIO_NUM_NC)
#define GPIO_LCD_D11 (GPIO_NUM_NC)
#define GPIO_LCD_D12 (GPIO_NUM_NC)
#define GPIO_LCD_D13 (GPIO_NUM_NC)
#define GPIO_LCD_D14 (GPIO_NUM_NC)
#define GPIO_LCD_D15 (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_18)
#define GPIO_I2C_SDA (GPIO_NUM_17)
/**
* @brief ESP32-S2-HMI-DevKit SDMMC GPIO defination
*
*/
#define FUNC_SDMMC_EN (1)
#define SDMMC_BUS_WIDTH (1)
#define GPIO_SDMMC_CLK (GPIO_NUM_9)
#define GPIO_SDMMC_CMD (GPIO_NUM_20)
#define GPIO_SDMMC_D0 (GPIO_NUM_19)
#define GPIO_SDMMC_D1 (GPIO_NUM_NC)
#define GPIO_SDMMC_D2 (GPIO_NUM_NC)
#define GPIO_SDMMC_D3 (GPIO_NUM_NC)
#define GPIO_SDMMC_DET (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit SDSPI GPIO definationv
*
*/
#define FUNC_SDSPI_EN (0)
#define GPIO_SDSPI_CS (GPIO_NUM_NC)
#define GPIO_SDSPI_SCLK (GPIO_NUM_NC)
#define GPIO_SDSPI_MISO (GPIO_NUM_NC)
#define GPIO_SDSPI_MOSI (GPIO_NUM_NC)
/**
* @brief ESP32-S2-HMI-DevKit SPI GPIO defination
*
*/
#define FUNC_SPI_EN (0)
#define GPIO_SPI_CS (GPIO_NUM_34)
#define GPIO_SPI_MISO (GPIO_NUM_37)
#define GPIO_SPI_MOSI (GPIO_NUM_35)
#define GPIO_SPI_SCLK (GPIO_NUM_36)
/**
* @brief ESP32-S2-HMI-DevKit RMT GPIO defination
*
*/
#define FUNC_RMT_EN (0)
#define GPIO_RMT_IR (GPIO_NUM_NC)
#define GPIO_RMT_LED (GPIO_NUM_0)
/**
* @brief ESP32-S2-HMI-DevKit I2S GPIO defination
*
*/
#define FUNC_I2S_EN (1)
#define GPIO_I2S_LRCK (GPIO_NUM_NC)
#define GPIO_I2S_MCLK (GPIO_NUM_NC)
#define GPIO_I2S_SCLK (GPIO_NUM_0)
#define GPIO_I2S_SDIN (GPIO_NUM_1)
#define GPIO_I2S_DOUT (GPIO_NUM_48)
/**
* @brief ESP32-S3-HMI-DevKit power control IO
*
*/
#define GPIO_PWR_CTRL (GPIO_NUM_NC)
#define GPIO_PWR_ON_LEVEL (1)
/**
* @brief ESP32-S3-HMI-DevKit camrea control IO
*
*/
#define FUNC_CAM_EN (1)
#define GPIO_CAM_SCL (GPIO_I2C_SCL)
#define GPIO_CAM_SDA (GPIO_I2C_SDA)
#define GPIO_CAM_PCLK (GPIO_NUM_11)
#define GPIO_CAM_XCLK (GPIO_NUM_40)
#define GPIO_CAM_HSYNC (GPIO_NUM_38)
#define GPIO_CAM_VSYNC (GPIO_NUM_21)
#define GPIO_CAM_RST (GPIO_NUM_NC)
#define GPIO_CAM_PWDN (GPIO_NUM_NC)
#define GPIO_CAM_Y2 (GPIO_NUM_13)
#define GPIO_CAM_Y3 (GPIO_NUM_47)
#define GPIO_CAM_Y4 (GPIO_NUM_14)
#define GPIO_CAM_Y5 (GPIO_NUM_3)
#define GPIO_CAM_Y6 (GPIO_NUM_12)
#define GPIO_CAM_Y7 (GPIO_NUM_42)
#define GPIO_CAM_Y8 (GPIO_NUM_41)
#define GPIO_CAM_Y9 (GPIO_NUM_39)
-37
View File
@@ -1,37 +0,0 @@
/**
* @file esp32_c3_devkit.c
* @author your name ([email protected])
* @brief
* @version 0.1
* @date 2021-07-27
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "esp_err.h"
#include "bsp_board.h"
esp_err_t bsp_board_init(void)
{
return ESP_OK;
}
esp_err_t bsp_board_power_ctrl(power_module_t module, bool on)
{
(void) module;
(void) on;
return ESP_ERR_NOT_SUPPORTED;
}
-113
View File
@@ -1,113 +0,0 @@
/**
* @file esp32_s2_hmi_devkit.c
* @brief
* @version 0.1
* @date 2021-07-05
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdbool.h>
#include "bsp_board.h"
#include "bsp_i2c.h"
#include "esp_log.h"
#include "tca9554.h"
#if (!CONFIG_IDF_TARGET_ESP32S2)
/* Check for IDF target. This dev board uses ESP32-S2 */
#error "Please set idf target to `ESP32-S2`"
#endif
#define PWR_PA_BIT (1 << 3)
#define PWR_PA_ON_LEVEL (1)
#define PWR_ALL_BIT (1 << 4)
#define PWR_ALL_ON_LEVEL (0)
#define PWR_LCD_BL (1 << 7)
#define PWR_LCD_ON_LEVEL (1)
static const char *TAG = "board";
esp_err_t bsp_board_init(void)
{
/* Init I2C bus */
ESP_ERROR_CHECK(bsp_i2c_init(I2C_NUM_0, 400 * 1000));
/* Open all periphral power */
ESP_ERROR_CHECK(bsp_board_power_ctrl(POWER_MODULE_ALL, true));
ESP_ERROR_CHECK(bsp_board_power_ctrl(POWER_MODULE_LCD, true));
return ESP_OK;
}
esp_err_t bsp_board_power_ctrl(power_module_t module, bool on)
{
/* Config power control IO */
static esp_err_t bsp_io_config_state = ESP_FAIL;
if (ESP_OK != bsp_io_config_state) {
bsp_io_config_state = ESP_OK;
bsp_io_config_state |= tca9554_init();
bsp_io_config_state |= tca9554_set_configuration(0b00000101);
bsp_io_config_state |= tca9554_write_output_pins(0b11000111);
}
/* Checko IO config result */
if (ESP_OK != bsp_io_config_state) {
ESP_LOGE(TAG, "Failed initialize power control IO");
return bsp_io_config_state;
}
/* Get output level of IO expander */
uint8_t io_level;
esp_err_t ret_val = tca9554_read_output_pins(&io_level);
if (ESP_OK != ret_val) {
ESP_LOGE(TAG, "Fail read IO expander's output level");
return ret_val;
} else {
ESP_LOGD(TAG, "Output IO level read: %02X", io_level);
}
/* Control independent power domain */
switch (module) {
case POWER_MODULE_LCD:
if (on ^ PWR_LCD_ON_LEVEL) {
io_level &= ~PWR_LCD_BL;
} else {
io_level |= PWR_LCD_BL;
}
break;
case POWER_MODULE_AUDIO:
if (on ^ PWR_PA_ON_LEVEL) {
io_level &= ~PWR_PA_BIT;
} else {
io_level |= PWR_PA_BIT;
}
break;
case POWER_MODULE_ALL:
if (on ^ PWR_ALL_ON_LEVEL) {
io_level &= ~PWR_ALL_BIT;
} else {
io_level |= PWR_ALL_BIT;
}
break;
default:
return ESP_ERR_INVALID_ARG;
}
/* Write expected output level to IO expander */
ESP_LOGD(TAG, "Output IO level write : %02X", io_level);
ret_val = tca9554_write_output_pins(io_level);
return ret_val;
}
-74
View File
@@ -1,74 +0,0 @@
/**
* @file esp32_s2_kaluga.c
* @brief
* @version 0.1
* @date 2021-07-05
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bsp_board.h"
#include "bsp_i2c.h"
#include "driver/gpio.h"
#include "esp_err.h"
#include "esp_log.h"
static const char *TAG = "board";
esp_err_t bsp_board_init(void)
{
bsp_board_power_ctrl(POWER_MODULE_ALL, true);
bsp_i2c_init(I2C_NUM_0, 400 * 1000);
return ESP_OK;
}
esp_err_t bsp_board_power_ctrl(power_module_t module, bool on)
{
/* Config power control IO */
static esp_err_t bsp_io_config_state = ESP_FAIL;
if (ESP_OK != bsp_io_config_state) {
gpio_config_t io_conf;
io_conf.intr_type = GPIO_INTR_DISABLE;
io_conf.mode = GPIO_MODE_OUTPUT;
io_conf.pin_bit_mask = 1ULL << GPIO_PWR_CTRL;
io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
io_conf.pull_up_en = GPIO_PULLUP_DISABLE;
bsp_io_config_state = gpio_config(&io_conf);
}
/* Checko IO config result */
if (ESP_OK != bsp_io_config_state) {
ESP_LOGE(TAG, "Failed initialize power control IO");
return bsp_io_config_state;
}
/* Control independent power domain */
switch (module) {
case POWER_MODULE_LCD:
// gpio_set_level(GPIO_LCD_BL, on ? (GPIO_LCD_BL_ON) : (!GPIO_LCD_BL_ON));
break;
case POWER_MODULE_AUDIO:
gpio_set_level(GPIO_PWR_CTRL, on ? (GPIO_PWR_ON_LEVEL) : (!GPIO_PWR_ON_LEVEL));
break;
case POWER_MODULE_ALL:
break;
default:
return ESP_ERR_INVALID_ARG;
}
return ESP_OK;
}
+6 -4
View File
@@ -23,15 +23,17 @@
#include "esp_log.h"
#include "bsp_board.h"
#include "bsp_i2c.h"
#include "bsp_storage.h"
#include "mpu6050.h"
#include "nvs_flash.h"
static const char *TAG = "board";
static IRAM_ATTR void gpio_isr_handler(void *arg)
__attribute__((weak)) void gpio_isr_handler(void *arg)
{
// gpio_set_level(GPIO_PWR_CTRL, gpio_get_level(GPIO_NUM_1) ? (GPIO_PWR_ON_LEVEL) : (!GPIO_PWR_ON_LEVEL));
if (gpio_get_level(GPIO_NUM_1)) {
esp_rom_printf(DRAM_STR("Mute Off"));
} else {
esp_rom_printf(DRAM_STR("Mute On"));
}
}
esp_err_t bsp_board_init(void)
@@ -1,5 +1,5 @@
/**
* @file bsp_board_esp32_s3_cube.h
* @file esp32_s3_cube.h
* @version 0.1
* @date 2021-06-25
*
@@ -102,7 +102,7 @@
*/
#define FUNC_RMT_EN (0)
#define GPIO_RMT_IR (GPIO_NUM_NC)
#define GPIO_RMT_LED (GPIO_NUM_NC)
#define GPIO_RMT_LED (GPIO_NUM_39)
/**
* @brief ESP32-S3-Cube I2S GPIO defination
@@ -124,27 +124,3 @@
#define FUNC_PWR_CTRL (1)
#define GPIO_PWR_CTRL (GPIO_NUM_46)
#define GPIO_PWR_ON_LEVEL (1)
/**
* @brief ESP32-S3-HMI-DevKit camrea control IO
*
* @note Currently not used for this repo
*
*/
#define FUNC_CAM_EN (0)
#define GPIO_CAM_SCL (GPIO_NUM_NC)
#define GPIO_CAM_SDA (GPIO_NUM_NC)
#define GPIO_CAM_PCLK (GPIO_NUM_NC)
#define GPIO_CAM_XCLK (GPIO_NUM_NC)
#define GPIO_CAM_HSYNC (GPIO_NUM_NC)
#define GPIO_CAM_VSYNC (GPIO_NUM_NC)
#define GPIO_CAM_RST (GPIO_NUM_NC)
#define GPIO_CAM_PWDN (GPIO_NUM_NC)
#define GPIO_CAM_Y2 (GPIO_NUM_NC)
#define GPIO_CAM_Y3 (GPIO_NUM_NC)
#define GPIO_CAM_Y4 (GPIO_NUM_NC)
#define GPIO_CAM_Y5 (GPIO_NUM_NC)
#define GPIO_CAM_Y6 (GPIO_NUM_NC)
#define GPIO_CAM_Y7 (GPIO_NUM_NC)
#define GPIO_CAM_Y8 (GPIO_NUM_NC)
#define GPIO_CAM_Y9 (GPIO_NUM_NC)
@@ -1,91 +0,0 @@
/**
* @file esp32_s3_hmi_devkit.c
* @brief
* @version 0.1
* @date 2021-07-05
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdbool.h>
#include "bsp_board.h"
#include "bsp_i2c.h"
#include "bsp_storage.h"
#include "bsp_tp.h"
#include "driver/gpio.h"
#include "esp_log.h"
#if (!CONFIG_IDF_TARGET_ESP32S3)
/* Check for IDF target. This dev board uses ESP32-S3 */
#error "Please set idf target to `ESP32-S3`"
#endif
static const char *TAG = "board";
esp_err_t bsp_board_init(void)
{
/* Open all periphral power */
ESP_ERROR_CHECK(bsp_board_power_ctrl(POWER_MODULE_ALL, true));
/* Wait for power stable */
vTaskDelay(pdMS_TO_TICKS(10));
/* Init I2C bus */
ESP_ERROR_CHECK(bsp_i2c_init(I2C_NUM_0, 400 * 1000));
/* Init input device */
ESP_ERROR_CHECK(bsp_tp_init());
/* Init SDMMC card */
ESP_ERROR_CHECK(bsp_storage_init(BSP_STORAGE_SD_CARD));
return ESP_OK;
}
esp_err_t bsp_board_power_ctrl(power_module_t module, bool on)
{
/* Config power control IO */
static esp_err_t bsp_io_config_state = ESP_FAIL;
if (ESP_OK != bsp_io_config_state) {
gpio_config_t io_conf;
io_conf.intr_type = GPIO_INTR_DISABLE;
io_conf.mode = GPIO_MODE_OUTPUT;
io_conf.pin_bit_mask = 1ULL << GPIO_PWR_CTRL;
io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE;
io_conf.pull_up_en = GPIO_PULLUP_DISABLE;
bsp_io_config_state = gpio_config(&io_conf);
}
/* Checko IO config result */
if (ESP_OK != bsp_io_config_state) {
ESP_LOGE(TAG, "Failed initialize power control IO");
return bsp_io_config_state;
}
/* Control independent power domain */
switch (module) {
case POWER_MODULE_LCD:
case POWER_MODULE_AUDIO:
// gpio_set_level(GPIO_NUM_46, on ? (GPIO_PWR_ON_LEVEL) : (!GPIO_PWR_ON_LEVEL));
break;
case POWER_MODULE_ALL:
gpio_set_level(GPIO_PWR_CTRL, on ? (GPIO_PWR_ON_LEVEL) : (!GPIO_PWR_ON_LEVEL));
break;
default:
return ESP_ERR_INVALID_ARG;
}
return ESP_OK;
}
-36
View File
@@ -1,36 +0,0 @@
/**
* @file esp32_s3_hmi_devkit.c
* @brief
* @version 0.1
* @date 2021-07-05
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdbool.h>
#include "bsp_board.h"
#include "bsp_i2c.h"
#include "bsp_storage.h"
#include "bsp_tp.h"
#include "driver/gpio.h"
#include "esp_log.h"
esp_err_t bsp_board_init(void)
{
/* Init I2C bus */
ESP_ERROR_CHECK(bsp_i2c_init(I2C_NUM_0, 400 * 1000));
return ESP_OK;
}
+12 -14
View File
@@ -2,7 +2,7 @@
* @file esp_custom_board.c
* @brief
* @version 0.1
* @date 2021-07-05
* @date 2021-10-20
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
@@ -19,23 +19,21 @@
* limitations under the License.
*/
#include "esp_err.h"
#include <stdbool.h>
#include "bsp_board.h"
#include "bsp_board_esp_custom.h"
#include "esp_err.h"
static const char *TAG = "board";
static bsp_board_t bsp_board = {
.init = board_init,
.pwr_ctrl = board_pwr_ctrl,
.enter_low_power = board_enter_low_power,
}
esp_err_t board_init(void *data)
esp_err_t bsp_board_init(void)
{
(void) data;
/* **************** ADD BOARD INITIAL CODE HERE **************** */
/*!< Place your own initialize code hera */
ESP_LOGE(TAG, "Please replace with your own board initialize code.")
return ESP_ERR_NOT_SUPPORTED;
}
esp_err_t bsp_board_power_ctrl(power_module_t module, bool on)
{
/* **************** ADD BOARD POWER CONTROL CODE HERE **************** */
return ESP_ERR_NOT_SUPPORTED;
}
+126
View File
@@ -0,0 +1,126 @@
/**
* @file esp_custom_board.h
* @version 0.1
* @date 2021-06-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "driver/gpio.h"
/**
* @brief ESP-Dev-Board LCD GPIO defination and config
*
*/
#define FUNC_LCD_EN (1)
#define LCD_BUS_WIDTH (1)
#define LCD_IFACE_SPI (1)
#define LCD_DISP_IC_ST (1)
#define LCD_WIDTH (320)
#define LCD_HEIGHT (240)
#define LCD_FREQ (40 * 1000 * 1000)
#define LCD_HOST (SPI2_HOST)
#define LCD_SWAP_XY (0)
#define LCD_MIRROR_X (false)
#define LCD_MIRROR_Y (false)
#define LCD_COLOR_INV (false)
#define GPIO_LCD_BL (GPIO_NUM_NC)
#define GPIO_LCD_BL_ON (1)
#define GPIO_LCD_CS (GPIO_NUM_NC)
#define GPIO_LCD_RST (GPIO_NUM_NC)
#define GPIO_LCD_DC (GPIO_NUM_NC)
#define GPIO_LCD_CLK (GPIO_NUM_NC)
#define GPIO_LCD_DIN (GPIO_NUM_NC)
#define GPIO_LCD_DOUT (GPIO_NUM_NC)
#define TOUCH_PANEL_SWAP_XY (0)
#define TOUCH_PANEL_INVERSE_X (1)
#define TOUCH_PANEL_INVERSE_Y (0)
/**
* @brief ESP-Dev-Board I2C GPIO defineation
*
*/
#define FUNC_I2C_EN (1)
#define GPIO_I2C_SCL (GPIO_NUM_NC)
#define GPIO_I2C_SDA (GPIO_NUM_NC)
/**
* @brief ESP-Dev-Board SDMMC GPIO defination
*
* @note Only avaliable when PMOD connected
*/
#define FUNC_SDMMC_EN (1)
#define SDMMC_BUS_WIDTH (4)
#define GPIO_SDMMC_CLK (GPIO_NUM_NC)
#define GPIO_SDMMC_CMD (GPIO_NUM_NC)
#define GPIO_SDMMC_D0 (GPIO_NUM_NC)
#define GPIO_SDMMC_D1 (GPIO_NUM_NC)
#define GPIO_SDMMC_D2 (GPIO_NUM_NC)
#define GPIO_SDMMC_D3 (GPIO_NUM_NC)
#define GPIO_SDMMC_DET (GPIO_NUM_NC)
/**
* @brief ESP-Dev-Board SDSPI GPIO definationv
*
*/
#define FUNC_SDSPI_EN (0)
#define GPIO_SDSPI_CS (GPIO_NUM_NC)
#define GPIO_SDSPI_SCLK (GPIO_NUM_NC)
#define GPIO_SDSPI_MISO (GPIO_NUM_NC)
#define GPIO_SDSPI_MOSI (GPIO_NUM_NC)
/**
* @brief ESP-Dev-Board SPI GPIO defination
*
*/
#define FUNC_SPI_EN (0)
#define GPIO_SPI_CS (GPIO_NUM_NC)
#define GPIO_SPI_MISO (GPIO_NUM_NC)
#define GPIO_SPI_MOSI (GPIO_NUM_NC)
#define GPIO_SPI_SCLK (GPIO_NUM_NC)
/**
* @brief ESP-Dev-Board RMT GPIO defination
*
*/
#define FUNC_RMT_EN (0)
#define GPIO_RMT_IR (GPIO_NUM_NC)
#define GPIO_RMT_LED (GPIO_NUM_39)
/**
* @brief ESP-Dev-Board I2S GPIO defination
*
*/
#define FUNC_I2S_EN (1)
#define GPIO_I2S_LRCK (GPIO_NUM_NC)
#define GPIO_I2S_MCLK (GPIO_NUM_NC)
#define GPIO_I2S_SCLK (GPIO_NUM_NC)
#define GPIO_I2S_SDIN (GPIO_NUM_NC)
#define GPIO_I2S_DOUT (GPIO_NUM_NC)
/**
* @brief ESP32-S3-HMI-DevKit power control IO
*
* @note Some power control pins might not be listed yet
*
*/
#define FUNC_PWR_CTRL (1)
#define GPIO_PWR_CTRL (GPIO_NUM_NC)
#define GPIO_PWR_ON_LEVEL (1)
+14 -26
View File
@@ -29,23 +29,12 @@
*
*/
#if CONFIG_ESP32_S3_HMI_DEVKIT_BOARD
#include "bsp_board_esp32s3_hmi_devkit_1.h"
#elif CONFIG_ESP32_S3_LCD_CAM_BOARD
#include "bsp_board_esp32s3_lcd_cam.h"
#elif CONFIG_ESP32_S2_HMI_DEVKIT_BOARD
#include "bsp_board_esp32s2_hmi_devkit_1.h"
#elif CONFIG_ESP32_S2_KALUGA_BOARD
#include "bsp_board_esp32s2_kaluga_1.h"
#elif CONFIG_ESP32_WROVER_KIT_BOARD
#include "bsp_board_esp32_wrover_kit.h"
#elif CONFIG_ESP32_C3_DEVKIT_BOARD
#include "bsp_board_esp32_c3_devkit.h"
#elif CONFIG_ESP32_S3_CUBE_BOARD
#include "bsp_board_esp32_s3_cube.h"
#if CONFIG_ESP32_S3_CUBE_BOARD
#include "esp32_s3_cube.h"
#elif CONFIG_ESP_CUSTOM_BOARD
#include "esp_custom_board.h"
#else
//CONFIG_ESP_CUSTOM_BOARD
// #include ""
#error "Please select type of dev board"
#endif
#ifdef __cplusplus
@@ -54,7 +43,7 @@ extern "C" {
/**
* @brief Power module of dev board.
* This can be expanded in the future use.
* This can be expanded in the future.
*
*/
typedef enum {
@@ -72,23 +61,22 @@ typedef struct {
typedef bsp_board_t *bsp_board_handle_t; /*!< Handle to board control object */
/**
* @brief Borad initialize.
* It will call dev board's
* @brief Special config for dev board
*
* @return
* - ESP_OK Success
* - Others: Refer to error code `esp_err.h`.
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_board_init(void);
/**
* @brief Control power of dev board.
* @brief Control power of dev board
*
* @param module Refer to `power_module_t`.
* @param on Turn on or off specified power module. On if true.
* @param module Refer to `power_module_t`
* @param on Turn on or off specified power module. On if true
* @return
* - ESP_OK Success
* - Others: Refer to error code `esp_err.h`.
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_board_power_ctrl(power_module_t module, bool on);
+6 -2
View File
@@ -29,10 +29,14 @@ extern "C" {
#endif
/**
* @brief
* @brief Initialize Codec on dev board
*
* @param sample_rate
* @return esp_err_t
* @return
* - ESP_OK: Success
* - ESP_ERR_NOT_FOUND: Codec not detected on I2C bus
* - ESP_ERR_NOT_SUPPORTED: Unsupported Codec or t
* - Others: Fail
*/
esp_err_t bsp_codec_init(audio_hal_iface_samples_t sample_rate);
+17 -27
View File
@@ -38,43 +38,33 @@ extern "C" {
#endif
/**
* @brief Initialize I2C bus of dev board.
* @brief Initialize I2C bus of dev board
*
* @return
* - ESP_OK Success
* - Others: Refer to error code `esp_err.h`.
*/
// esp_err_t bsp_i2c_init(void);
/**
* @brief
*
* @param i2c_num
* @param clk_speed
* @return esp_err_t
* @param i2c_num I2C port num
* @param clk_speed I2C clock speed
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_i2c_init(i2c_port_t i2c_num, uint32_t clk_speed);
/**
* @brief
* @brief Prob given address on I2C bus
*
* @return esp_err_t
*/
esp_err_t bsp_i2c_probe(void);
/**
* @brief
*
* @param addr
* @return esp_err_t
* @param addr 7 bit Address to prob
* @return
* - ESP_OK: Device found on I2C bus
* - ESP_ERR_INVALID_ARG: Invalid I2C address
* - ESP_ERR_INVALID_STATE: I2C bus not initialized
* - Others: Device not found on I2C bus or error occurred during I2C transmission
*/
esp_err_t bsp_i2c_probe_addr(uint8_t addr);
/**
* @brief Add device to I2C bus.
* @brief Add device to I2C bus
*
* @param i2c_device_handle
* @param dev_addr
* @param i2c_device_handle Handle of I2C device
* @param dev_addr 7 bit address of device
* @return
* - ESP_OK Success
* - Others: Refer to error code `esp_err.h`.
@@ -82,7 +72,7 @@ esp_err_t bsp_i2c_probe_addr(uint8_t addr);
esp_err_t bsp_i2c_add_device(i2c_bus_device_handle_t *i2c_device_handle, uint8_t dev_addr);
/**
* @brief Get handle of I2C bus.
* @brief Get handle of I2C bus
*
* @return Handle of i2c bus. NULL if not or failed initialized.
*/
+11 -7
View File
@@ -29,19 +29,23 @@ extern "C" {
#endif
/**
* @brief
* @brief Init I2S bus
*
* @param i2s_num
* @param sample_rate
* @return esp_err_t
* @param i2s_num I2S port num
* @param sample_rate Audio sample rate. For I2S signal, it refers to LRCK/WS frequency
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_i2s_init(i2s_port_t i2s_num, uint32_t sample_rate);
/**
* @brief
* @brief Deinit I2S bus
*
* @param i2s_num
* @return esp_err_t
* @param i2s_num I2S port num
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_i2s_deinit(i2s_port_t i2s_num);
+42 -50
View File
@@ -24,6 +24,7 @@
#include <stdbool.h>
#include "bsp_board.h"
#include "esp_err.h"
#include "esp_lcd_panel_io.h"
#include "esp_lcd_types.h"
#include "freertos/FreeRTOS.h"
@@ -31,92 +32,83 @@
extern "C" {
#endif
typedef bool (*bsp_lcd_trans_cb_t)(esp_lcd_panel_io_handle_t, void *, void *);
typedef bool (*bsp_lcd_trans_cb_t)(esp_lcd_panel_io_handle_t, esp_lcd_panel_io_event_data_t *, void *);
/**
* @brief Initialize LCD
* @brief Init LCD
*
* @return esp_err_t
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_lcd_init(void);
/**
* @brief
* @brief Deinit LCD
*
* @return esp_err_t
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_lcd_deinit(void);
/**
* @brief
* @brief Flush LCD
*
* @param x1
* @param y1
* @param x2
* @param y2
* @param p_data
* @param ticks_to_wait
* @return esp_err_t
* @param x1 Start index on x-axis (x1 included)
* @param y1 Start index on y-axis (y1 included)
* @param x2 End index on x-axis (x2 not included)
* @param y2 End index on y-axis (y2 not included)
* @param p_data RGB color data that will be dumped to the specific range
* @param ticks_to_wait Maximum blocking time
* @return
* - ESP_OK: Success
* - ESP_ERR_TIMEOUT: Timeout waiting for previous transaction finished
* - Others: Fail
*/
esp_err_t bsp_lcd_flush(int x1, int y1, int x2, int y2, const void *p_data, TickType_t ticks_to_wait);
/**
* @brief
* @brief Wait for a a single flush transaction finished
*
* @param ticks_to_wait
* @return esp_err_t
* @param ticks_to_wait Maximum blocking time
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_lcd_flush_wait_done(TickType_t ticks_to_wait);
/**
* @brief
* @brief Set callback function when a single flush transaction is finished
*
* @param trans_done_cb
* @param data
* @return esp_err_t
* @param trans_done_cb Callback function
* @param data User data
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_lcd_set_cb(bool (*trans_done_cb)(void *), void *data);
#if LCD_IFACE_SPI
/**
* @brief
* @brief Init LCD with SPI interface
*
* @param p_io_handle
* @param trans_done_cb
* @return esp_err_t
* @param p_io_handle LCD panel IO handle
* @param trans_done_cb callback function when a single flush transaction is finished
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_spi_lcd_init(esp_lcd_panel_io_handle_t *p_io_handle, bsp_lcd_trans_cb_t trans_done_cb);
/**
* @brief
* @brief Deinit LCD with SPI interface
*
* @return esp_err_t
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_spi_lcd_deinit(void);
#endif
#if LCD_IFACE_I80
/**
* @brief
*
* @param p_io_handle
* @param trans_done_cb
* @return esp_err_t
*/
esp_err_t bsp_i80_lcd_init(esp_lcd_panel_io_handle_t *p_io_handle, bsp_lcd_trans_cb_t trans_done_cb);
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t bsp_i80_lcd_deinit(void);
#endif
#ifdef __cplusplus
}
#endif
+55 -4
View File
@@ -4,8 +4,19 @@
* @version 0.1
* @date 2021-07-06
*
* @copyright Copyright (c) 2021
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
@@ -23,10 +34,50 @@ typedef enum {
BSP_STORAGE_SEMIHOST,
} bsp_storage_dev_t;
esp_err_t bsp_storage_init(bsp_storage_dev_t dev);
/**
* @brief Init given storage device with default config
*
* @param dev Storage device. See `bsp_storage_dev_t`.
* @return
* - ESP_OK: Success
* - ESP_ERR_NOT_SUPPORTED: Unsupported storage device
* - Others: Fail
*/
esp_err_t bsp_storage_init_default(bsp_storage_dev_t dev);
esp_err_t bsp_storage_deinit(bsp_storage_dev_t dev);
/**
* @brief Init given storage device
*
* @param dev Storage device. See `bsp_storage_dev_t`.
* @param conf Config string list
* @return
* - ESP_OK: Success
* - ESP_ERR_NOT_SUPPORTED: Unsupported storage device
* - Others: Fail
*/
esp_err_t bsp_storage_init(bsp_storage_dev_t dev, void *conf);
/**
* @brief Deinit given storage device initialized by default config
*
* @param dev Storage device. See `bsp_storage_dev_t`.
* @return
* - ESP_OK: Success
* - ESP_ERR_NOT_SUPPORTED: Unsupported storage device
* - Others: Fail
*/
esp_err_t bsp_storage_deinit_default(bsp_storage_dev_t dev);
/**
* @brief Get mount point of given storage device
*
* @param dev Storage device. See `bsp_storage_dev_t`.
* @param p_mont_point Poniter to string pointer
* @return
* - ESP_OK: Success
* - ESP_ERR_NOT_SUPPORTED: Unsupported storage device
* - Others: Fail
*/
esp_err_t bsp_storage_get_mount_point(bsp_storage_dev_t dev, char **p_mont_point);
#ifdef __cplusplus
+12 -7
View File
@@ -29,19 +29,24 @@ extern "C" {
#endif
/**
* @brief
* @brief Init touch panel
*
* @return esp_err_t
* @return
* - ESP_OK: Success
* - ESP_ERR_NOT_SUPPORTED: Unsupported touch panel
* - Others: Fail
*/
esp_err_t bsp_tp_init(void);
/**
* @brief
* @brief Read data from touch panel
*
* @param tp_num
* @param x
* @param y
* @return esp_err_t
* @param tp_num Touch point number
* @param x X coordinate
* @param y Y coordinate
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t bsp_tp_read(uint8_t *tp_num, uint16_t *x, uint16_t *y);
+18 -4
View File
@@ -4,8 +4,19 @@
* @version 0.1
* @date 2021-07-20
*
* @copyright Copyright (c) 2021
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bsp_codec.h"
@@ -71,10 +82,13 @@ esp_err_t bsp_codec_adc_init(audio_hal_iface_samples_t sample_rate)
ret_val |= es7210_adc_init(&cfg);
ret_val |= es7210_adc_config_i2s(cfg.codec_mode, &cfg.i2s_iface);
ret_val |= es7210_adc_set_gain(ES7210_INPUT_MIC1 | ES7210_INPUT_MIC2, GAIN_0DB);
ret_val |= es7210_adc_set_gain(ES7210_INPUT_MIC3, GAIN_0DB);
ret_val |= es7210_adc_set_gain(ES7210_INPUT_MIC1 | ES7210_INPUT_MIC2 | ES7210_INPUT_MIC3, GAIN_0DB);
ret_val |= es7210_adc_ctrl_state(cfg.codec_mode, AUDIO_HAL_CTRL_START);
// for (uint8_t i = 0; i <= 0x7f; i++) {
// ESP_LOGI(TAG, "Reg : %02X, Val = %02X", i, es7210_read_reg(i));
// }
if (ESP_OK != ret_val) {
ESP_LOGE(TAG, "Failed initialize codec");
}
-1
View File
@@ -27,7 +27,6 @@
#define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/
static const char *TAG= "bsp_i2c";
static i2c_bus_handle_t i2c_bus_handle = NULL;
/* Make sure unused member(s) zero. Especially `clk_flags` */
+3 -1
View File
@@ -77,6 +77,8 @@ esp_err_t bsp_i2s_init(i2s_port_t i2s_num, uint32_t sample_rate)
ret_val |= i2s_driver_install(i2s_num, &i2s_config, 0, NULL);
ret_val |= i2s_set_pin(i2s_num, &pin_config);
ret_val |= i2s_stop(I2S_NUM_0);
/* Config I2S channel format of TX and RX */
i2s_ll_rx_enable_big_endian(&I2S0, true);
i2s_ll_tx_enable_big_endian(&I2S0, false);
@@ -86,7 +88,7 @@ esp_err_t bsp_i2s_init(i2s_port_t i2s_num, uint32_t sample_rate)
/* Inverse DSP mode WS signal polarity */
gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[GPIO_I2S_LRCK], PIN_FUNC_GPIO);
gpio_set_direction(GPIO_I2S_LRCK, GPIO_MODE_OUTPUT);
esp_rom_gpio_connect_out_signal(GPIO_I2S_LRCK, i2s_periph_signal[I2S_NUM_0].tx_ws_sig, true, false);
esp_rom_gpio_connect_out_signal(GPIO_I2S_LRCK, i2s_periph_signal[I2S_NUM_0].m_tx_ws_sig, true, false);
ret_val |= i2s_start(I2S_NUM_0);
+49 -7
View File
@@ -32,7 +32,7 @@
#include "driver/sdmmc_host.h"
#endif /* SOC_SDMMC_HOST_SUPPORTED */
static const char *TAG = "bsp_sdcard";
static const char *TAG = "bsp_storage";
const char sd_mount_point[] = "/sdcard";
const char spiffs_mount_point[] = "/spiffs";
const char host_mount_point[] = "/host";
@@ -40,7 +40,7 @@ const char host_mount_point[] = "/host";
/* SD/MMC card information structure */
static sdmmc_card_t *card;
static esp_err_t bsp_sdcard_init(void)
static esp_err_t bsp_sdcard_init_default(void)
{
esp_err_t ret_val = ESP_OK;
@@ -166,7 +166,7 @@ static esp_err_t bsp_sdcard_deinit(void)
return ret_val;
}
static esp_err_t bsp_spiffs_init(void)
static esp_err_t bsp_spiffs_init_default(void)
{
esp_vfs_spiffs_conf_t conf = {
.base_path = spiffs_mount_point,
@@ -190,14 +190,43 @@ static esp_err_t bsp_spiffs_init(void)
return ret_val;
}
esp_err_t bsp_storage_init(bsp_storage_dev_t dev)
static esp_err_t bsp_spiffs_init(void *cfg)
{
char **cfg_str = (char **) cfg;
ESP_LOGI(TAG, "Partation Name : %s", cfg_str[0]);
ESP_LOGI(TAG, "Mount Point : %s", cfg_str[1]);
esp_vfs_spiffs_conf_t conf = {
.base_path = cfg_str[1],
.partition_label = cfg_str[0],
.max_files = 2,
.format_if_mount_failed = false,
};
esp_err_t ret_val = esp_vfs_spiffs_register(&conf);
if (ESP_OK != ret_val) {
if (ESP_FAIL == ret_val) {
ESP_LOGE(TAG, "Failed to mount or format filesystem");
} else if (ESP_ERR_NOT_FOUND == ret_val) {
ESP_LOGE(TAG, "Failed to find SPIFFS partition");
} else {
ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret_val));
}
}
return ret_val;
}
esp_err_t bsp_storage_init_default(bsp_storage_dev_t dev)
{
switch (dev) {
case BSP_STORAGE_SD_CARD:
return bsp_sdcard_init();
return bsp_sdcard_init_default();
break;
case BSP_STORAGE_SPIFFS:
return bsp_spiffs_init();
return bsp_spiffs_init_default();
break;
case BSP_STORAGE_SEMIHOST:
return esp_vfs_semihost_register(host_mount_point, NULL);
@@ -209,7 +238,20 @@ esp_err_t bsp_storage_init(bsp_storage_dev_t dev)
return ESP_ERR_NOT_SUPPORTED;
}
esp_err_t bsp_storage_deinit(bsp_storage_dev_t dev)
esp_err_t bsp_storage_init(bsp_storage_dev_t dev, void *conf)
{
switch (dev) {
case BSP_STORAGE_SPIFFS:
return bsp_spiffs_init(conf);
break;
default:
break;
}
return ESP_ERR_NOT_SUPPORTED;
}
esp_err_t bsp_storage_deinit_default(bsp_storage_dev_t dev)
{
switch (dev) {
case BSP_STORAGE_SD_CARD:
+1 -10
View File
@@ -27,7 +27,6 @@
#include "i2c_bus.h"
#include "ft5x06.h"
#include "goodix.h"
#include "tt21100.h"
static const char *TAG = "bsp_tp";
@@ -48,7 +47,6 @@ typedef struct {
static tp_dev_t tp_dev_list[] = {
{ "Parade Tech", 0x24, TP_VENDOR_TT },
{ "Focal Tech", 0x38, TP_VENDOR_FT },
{ "Goodix", 0x14, TP_VENDOR_GT },
};
static tp_vendor_t tp_vendor = TP_VENDOR_NONE;
@@ -82,11 +80,7 @@ esp_err_t bsp_tp_init(void)
case TP_VENDOR_FT:
ret_val |= ft5x06_init();
break;
case TP_VENDOR_GT:
ret_val |= goodix_tp_init();
break;
default:
ret_val = ESP_OK; // ESP_ERR_NOT_FOUND;
break;
}
@@ -104,11 +98,8 @@ esp_err_t bsp_tp_read(uint8_t *tp_num, uint16_t *x, uint16_t *y)
case TP_VENDOR_FT:
ret_val |= ft5x06_read_pos(tp_num, x, y);
break;
case TP_VENDOR_GT:
ret_val |= goodix_tp_read(tp_num, x, y);
break;
default:
return ESP_OK; // ESP_ERR_NOT_FOUND;
return ESP_ERR_NOT_FOUND;
break;
}
-47
View File
@@ -1,47 +0,0 @@
/**
* @file bsp_indev.c
* @brief
* @version 0.1
* @date 2021-08-24
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bsp_board.h"
#include "esp_err.h"
typedef enum {
INDEV_MOUSE,
INDEV_TOUCH,
INDEV_KEYBOARD,
} indev_type_t;
typedef void *bsp_indev_handle_t;
typedef uint32_t bsp_indev_data_t;
esp_err_t bsp_indev_init(void)
{
return ESP_OK;
}
esp_err_t bsp_indev_send_data(bsp_indev_handle_t handle, bsp_indev_data_t *data)
{
return ESP_OK;
}
esp_err_t bsp_indev_recv_data(bsp_indev_handle_t handle, bsp_indev_data_t *data)
{
//
}
-95
View File
@@ -1,95 +0,0 @@
/**
* @file indev_mouse.c
* @brief
* @version 0.1
* @date 2021-08-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <string.h>
#include "esp_err.h"
#include "esp_log.h"
static const char *TAG = "indev_mouse";
static indev_mouse_satatus_data_t indev_mouse_satatus_data;
static indev_mouse_config_t indev_mouse_config = { .x_range = 65535, .y_range = 65535, };
esp_err_t indev_mouse_init(void)
{
return ESP_OK;
}
esp_err_t indev_mouse_set_range(uint16_t x_range, uint16_t y_range)
{
indev_mouse_config.x_range = x_range ? x_range : (uint16_t) 0xffff;
indev_mouse_config.y_range = y_range ? y_range : (uint16_t) 0xffff;
return ESP_OK;
}
esp_err_t indev_mouse_get_range(uint16_t *x_range, uint16_t *y_range)
{
if (NULL == x_range || NULL == y_range) {
return ESP_ERR_INVALID_ARG;
}
*x_range = indev_mouse_config.x_range;
*y_range = indev_mouse_config.y_range;
return ESP_OK;
}
esp_err_t indev_mouse_report_data(indev_mouse_report_data_t *data)
{
if (NULL == data) {
return ESP_ERR_INVALID_ARG;
}
/* Expand data range to `int32_t` */
int32_t x = indev_mouse_satatus_data.x;
int32_t y = indev_mouse_satatus_data.y;
int32_t z = indev_mouse_satatus_data.z;
/* Add delta value to status data */
x += data->dx;
y += data->dy;
z += data->dz;
/* Check for coordinate range */
x = x < 0 ? 0 : x;
x = x > indev_mouse_config.x_range ? indev_mouse_config.x_range : x;
y = y < 0 ? 0 : y;
y = y > indev_mouse_config.y_range ? indev_mouse_config.y_range : y;
/* Store value to `indev_mouse_satatus_data` */
indev_mouse_satatus_data.x = x;
indev_mouse_satatus_data.y = y;
indev_mouse_satatus_data.z = z;
return ESP_OK;
}
esp_err_t indev_mouse_get_status_data(indev_mouse_satatus_data_t *data)
{
if (NULL == data) {
return ESP_ERR_INVALID_ARG;
}
memcpy(data, &indev_mouse_satatus_data, sizeof(indev_mouse_satatus_data));
return ESP_OK;
}
-93
View File
@@ -1,93 +0,0 @@
/**
* @file indev_mouse.h
* @author your name ([email protected])
* @brief
* @version 0.1
* @date 2021-08-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef strcuct {
uint16_t x_range;
uint16_t y_range;
} indev_mouse_config_t;
typedef struct {
int16_t dx;
int16_t dy;
int16_t dz;
int16_t key;
} indev_mouse_report_data_t;
typedef struct {
uint16_t x;
uint16_t y;
int16_t z;
int16_t key;
} indev_mouse_satatus_data_t;
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t indev_mouse_init(void);
/**
* @brief
*
* @param x_range
* @param y_range
* @return esp_err_t
*/
esp_err_t indev_mouse_set_range(uint16_t x_range, uint16_t y_range);
/**
* @brief
*
* @param x_range
* @param y_range
* @return esp_err_t
*/
esp_err_t indev_mouse_get_range(uint16_t *x_range, uint16_t *y_range);
/**
* @brief
*
* @param data
* @return esp_err_t
*/
esp_err_t indev_mouse_report_data(indev_mouse_report_data_t *data);
/**
* @brief
*
* @param data
* @return esp_err_t
*/
esp_err_t indev_mouse_get_status_data(indev_mouse_satatus_data_t *data);
#ifdef __cplusplus
}
#endif
-137
View File
@@ -1,137 +0,0 @@
/**
* @file indev_tp.c
* @brief
* @version 0.1
* @date 2021-08-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdbool.h>
#include "esp_err.h"
#include "esp_log.h"
#include "bsp_i2c.h"
typedef struct {
tp_type_t dev_id;
uint8_t dev_addr;
char * dev_name;
} tp_prob_t;
typedef enum {
TP_TYPE_FT = 0,
TP_TYPE_GT,
TP_TYPE_MAX,
} tp_type_t;
typedef struct {
uint16_t x;
uint16_t y;
bool pressed;
tp_gesture_t gesture;
} indev_tp_data_t;
static const tp_prob_t indev_tp_list[] = {
{ TP_TYPE_FT, 0x38, "FT" }, /*!< FocalTech */
{ TP_TYPE_GT, 0x14, "GT" }, /*!< Goodix */
{ TP_TYPE_MAX, 0xff, "MAX" }, /*!< Used for warning prevent */
};
typedef strcut {
esp_err_t (*init)(void); /*!< Touch panel initialize */
esp_err_t (*read)(uint16_t *, uint16_t *, bool *); /*!< Read touch point(s) of touch panel */
esp_err_t (*read_gesture)(uint8_t *); /*!< Read gesture of touch panel */
} indev_tp_t;
static indev_tp_t indev_tp = NULL;
static const char *TAG = __FILE__;
static esp_err_t indev_tp_prob(void)
{
size_t i = 0;
for (; i < TP_TYPE_MAX; i++) {
if (ESP_OK == bsp_i2c_probe_addr(indev_tp_list[i].dev_addr)) {
ESP_LOGI(TAG, "Touch panel detected : %s", indev_tp_list[i].dev_name);
break;
}
}
if (TP_TYPE_MAX == i) {
return ESP_ERR_NOT_FOUND;
}
/* Set indev_handle */
return ESP_OK;
}
esp_err_t indev_tp_init(void)
{
esp_err_t ret_val = indev_tp_prob();
if (ESP_OK != ret_val) {
ESP_LOGE(TAG, "Touch panel not found");
return ret_val;
}
indev_tp.init();
return ESP_OK;
}
typedef enum {
TP_GESTURE_NONE = 0,
TP_GESTURE_UP,
TP_GESTURE_DOWN,
TP_GESTURE_LEFT,
TP_GESTURE_RIGHT,
TP_GESTURE_ZOOM_IN,
TP_GESTURE_ZOOM_OUT,
} tp_gesture_t;
esp_err_t indev_tp_read(indev_tp_data_t *data)
{
uint16_t x, y;
bool p;
esp_err_t ret_val = indev_tp.read(&x, &y, &p);
if (ESP_OK != ret_val) {
data->x = 0;
data->y = 0;
data->pressed = false;
data->gesture = TP_GESTURE_NONE;
return ret_val;
}
data->x = x;
data->y = y;
data->pressed = p;
/* Currently not ported */
data->gesture = TP_GESTURE_NONE;
return ESP_OK;
}
esp_err_t indev_tp_config_swap_reverse(bool swap, bool x_reverse, bool y_reverse)
{
return ESP_OK;
}
esp_err_t indev_tp_read(indev_tp_data_t *data)
{
return ESP_OK;
}
+3 -15
View File
@@ -41,17 +41,12 @@ static esp_lcd_panel_handle_t panel_handle = NULL;
static void *p_user_data = NULL;
static bool (*p_on_trans_done_cb)(void *) = NULL;
static SemaphoreHandle_t bsp_lcd_flush_done_sem = NULL;
static bool lcd_trans_done_cb(esp_lcd_panel_io_handle_t, void *, void *);
static bool lcd_trans_done_cb(esp_lcd_panel_io_handle_t, esp_lcd_panel_io_event_data_t *, void *);
esp_err_t bsp_lcd_init(void)
{
#if LCD_IFACE_I80
bsp_i80_lcd_init(&io_handle, lcd_trans_done_cb);
#elif LCD_IFACE_SPI
bsp_spi_lcd_init(&io_handle, lcd_trans_done_cb);
#else
#error "Please specify LCD interface type"
#endif
esp_lcd_panel_dev_config_t panel_config = {
.reset_gpio_num = GPIO_LCD_RST,
@@ -120,14 +115,7 @@ esp_err_t bsp_lcd_deinit(void)
ret_val |= esp_lcd_panel_del(panel_handle);
ret_val |= esp_lcd_panel_io_del(io_handle);
#if LCD_IFACE_I80
ret_val |= bsp_i80_lcd_deinit();
#elif LCD_IFACE_SPI
ret_val |= bsp_spi_lcd_deinit();
#else
#error "Please specify LCD interface type"
#endif
return ret_val;
}
@@ -166,7 +154,7 @@ esp_err_t bsp_lcd_set_cb(bool (*trans_done_cb)(void *), void *data)
return ESP_OK;
}
static bool lcd_trans_done_cb(esp_lcd_panel_io_handle_t panel_io, void *user_data, void *event_data)
static bool lcd_trans_done_cb(esp_lcd_panel_io_handle_t panel_io, esp_lcd_panel_io_event_data_t *user_data, void *event_data)
{
(void) panel_io;
(void) user_data;
-97
View File
@@ -1,97 +0,0 @@
/**
* @file bsp_lcd_i80.c
* @brief
* @version 0.1
* @date 2021-08-20
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bsp_lcd.h"
#include "bsp_board.h"
#include "driver/gpio.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_lcd_panel_io.h"
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/task.h"
#if LCD_IFACE_I80
static const char *TAG = "bsp_lcd_i80";
static esp_lcd_i80_bus_handle_t i80_bus = NULL;
esp_err_t bsp_i80_lcd_init(esp_lcd_panel_io_handle_t *p_io_handle, bsp_lcd_trans_cb_t trans_done_cb)
{
esp_err_t ret_val = ESP_OK;
if (NULL == p_io_handle) {
ESP_LOGE(TAG, "Invalid LCD IO handle");
return ESP_ERR_INVALID_ARG;
}
esp_lcd_i80_bus_config_t bus_config = {
.dc_gpio_num = GPIO_LCD_DC,
.wr_gpio_num = GPIO_LCD_WR,
.data_gpio_nums = {
GPIO_LCD_D00, GPIO_LCD_D01, GPIO_LCD_D02, GPIO_LCD_D03,
GPIO_LCD_D04, GPIO_LCD_D05, GPIO_LCD_D06, GPIO_LCD_D07,
GPIO_LCD_D08, GPIO_LCD_D09, GPIO_LCD_D10, GPIO_LCD_D11,
GPIO_LCD_D12, GPIO_LCD_D13, GPIO_LCD_D14, GPIO_LCD_D15,
},
.bus_width = LCD_BUS_WIDTH,
.max_transfer_bytes = LCD_WIDTH * LCD_HEIGHT * sizeof(uint16_t) + 32,
};
ret_val |= esp_lcd_new_i80_bus(&bus_config, &i80_bus);
esp_lcd_panel_io_i80_config_t io_config = {
.cs_gpio_num = GPIO_LCD_CS,
.pclk_hz = LCD_FREQ,
.trans_queue_depth = 4,
.dc_levels = {
.dc_idle_level = 0,
.dc_cmd_level = 0,
.dc_dummy_level = 0,
.dc_data_level = 1,
},
.flags = {
.swap_color_bytes = 1,
},
.on_color_trans_done = trans_done_cb,
.user_data = NULL,
.lcd_cmd_bits = 8,
.lcd_param_bits = 8,
};
ret_val |= esp_lcd_new_panel_io_i80(i80_bus, &io_config, p_io_handle);
ESP_LOGD(TAG,
"LCD Initialized with Intel - 8080 - %d Bit interface. Clock speed : %d",
bus_config.bus_width, io_config.pclk_hz);
return ret_val;
}
esp_err_t bsp_i80_lcd_deinit(void)
{
esp_err_t ret_val = ESP_OK;
ret_val |= esp_lcd_del_i80_bus(i80_bus);
return ret_val;
}
#endif /* LCD_IFACE_I80 */
+1 -5
View File
@@ -34,8 +34,6 @@
#include "freertos/task.h"
#include "soc/soc_memory_layout.h"
#if LCD_IFACE_SPI
static const char *TAG = "bsp_lcd_spi";
esp_err_t bsp_spi_lcd_init(esp_lcd_panel_io_handle_t *p_io_handle, bsp_lcd_trans_cb_t trans_done_cb)
@@ -94,7 +92,7 @@ esp_err_t bsp_spi_lcd_init(esp_lcd_panel_io_handle_t *p_io_handle, bsp_lcd_trans
8, /* TBD */
#endif
.on_color_trans_done = trans_done_cb,
.user_data = NULL,
.user_ctx = NULL,
};
#if (LCD_BUS_WIDTH == 8)
@@ -114,5 +112,3 @@ esp_err_t bsp_spi_lcd_deinit(void)
return ret_val;
}
#endif /* LCD_IFACE_SPI */
+14 -13
View File
@@ -28,8 +28,8 @@
#include "es7210.h"
#include "bsp_i2c.h"
#define I2S_DSP_MODE_A 0
#define MCLK_DIV_FRE 256
#define I2S_DSP_MODE_A 0
#define MCLK_DIV_FRE 256
/* ES7210 address*/
#define ES7210_ADDR ES7210_AD1_AD0_00
@@ -55,7 +55,7 @@ struct _coeff_div {
static const char *TAG = "ES7210";
static i2c_bus_handle_t i2c_handle;
static es7210_input_mics_t mic_select = ES7210_INPUT_MIC1 | ES7210_INPUT_MIC2 | ES7210_INPUT_MIC3 | ES7210_INPUT_MIC4; /* Number of microphones */
static es7210_input_mics_t mic_select = ES7210_INPUT_MIC1 | ES7210_INPUT_MIC2 | ES7210_INPUT_MIC3 | ES7210_INPUT_MIC4;
/* Codec hifi mclk clock divider coefficients
* MEMBER REG
@@ -270,16 +270,17 @@ esp_err_t es7210_adc_init(audio_hal_codec_config_t *codec_cfg)
ret |= es7210_write_reg(ES7210_CLOCK_OFF_REG01, 0x1f);
ret |= es7210_write_reg(ES7210_TIME_CONTROL0_REG09, 0x30); /* Set chip state cycle */
ret |= es7210_write_reg(ES7210_TIME_CONTROL1_REG0A, 0x30); /* Set power on state cycle */
ret |= es7210_write_reg(ES7210_ADC12_HPF2_REG23, 0x2a); /* Quick setup */
ret |= es7210_write_reg(ES7210_ADC12_HPF1_REG22, 0x0a);
ret |= es7210_write_reg(ES7210_ADC34_HPF2_REG20, 0x0a);
ret |= es7210_write_reg(ES7210_ADC34_HPF1_REG21, 0x2a);
// ret |= es7210_write_reg(ES7210_ADC12_HPF2_REG23, 0x2a); /* Quick setup */
// ret |= es7210_write_reg(ES7210_ADC12_HPF1_REG22, 0x0a);
// ret |= es7210_write_reg(ES7210_ADC34_HPF2_REG20, 0x0a);
// ret |= es7210_write_reg(ES7210_ADC34_HPF1_REG21, 0x2a);
/* Set master/slave audio interface */
audio_hal_codec_i2s_iface_t *i2s_cfg = & (codec_cfg->i2s_iface);
switch (i2s_cfg->mode) {
case AUDIO_HAL_MODE_MASTER: /* MASTER MODE */
ESP_LOGI(TAG, "ES7210 in Master mode");
ret |= es7210_update_reg_bit(ES7210_MODE_CONFIG_REG08, 0x01, 0x01);
// ret |= es7210_update_reg_bit(ES7210_MODE_CONFIG_REG08, 0x01, 0x01);
ret |= es7210_write_reg(ES7210_MODE_CONFIG_REG08, 0x20);
/* Select clock source for internal mclk */
switch (get_es7210_mclk_src()) {
case FROM_PAD_PIN:
@@ -295,12 +296,11 @@ esp_err_t es7210_adc_init(audio_hal_codec_config_t *codec_cfg)
break;
case AUDIO_HAL_MODE_SLAVE: /* SLAVE MODE */
ESP_LOGI(TAG, "ES7210 in Slave mode");
ret |= es7210_update_reg_bit(ES7210_MODE_CONFIG_REG08, 0x01, 0x00);
break;
default:
ret |= es7210_update_reg_bit(ES7210_MODE_CONFIG_REG08, 0x01, 0x00);
break;
}
ret |= es7210_write_reg(ES7210_ANALOG_REG40, 0x43); /* Select power off analog, vdda = 3.3V, close vx20ff, VMID select 5KΩ start */
ret |= es7210_write_reg(ES7210_ANALOG_REG40, 0xC3); /* Select power off analog, vdda = 3.3V, close vx20ff, VMID select 5KΩ start */
ret |= es7210_write_reg(ES7210_MIC12_BIAS_REG41, 0x70); /* Select 2.87v */
ret |= es7210_write_reg(ES7210_MIC34_BIAS_REG42, 0x70); /* Select 2.87v */
ret |= es7210_write_reg(ES7210_OSR_REG07, 0x20);
@@ -347,6 +347,7 @@ esp_err_t es7210_config_fmt(audio_hal_iface_format_t fmt)
break;
}
ret |= es7210_write_reg(ES7210_SDP_INTERFACE1_REG11, adc_iface);
ret |= es7210_write_reg(ES7210_SDP_INTERFACE2_REG12, 0x01);
return ret;
}
@@ -388,7 +389,7 @@ esp_err_t es7210_start(uint8_t clock_reg_value)
esp_err_t ret = ESP_OK;
ret |= es7210_write_reg(ES7210_CLOCK_OFF_REG01, clock_reg_value);
ret |= es7210_write_reg(ES7210_POWER_DOWN_REG06, 0x00);
ret |= es7210_write_reg(ES7210_ANALOG_REG40, 0x43);
// ret |= es7210_write_reg(ES7210_ANALOG_REG40, 0x40);
ret |= es7210_write_reg(ES7210_MIC1_POWER_REG47, 0x00);
ret |= es7210_write_reg(ES7210_MIC2_POWER_REG48, 0x00);
ret |= es7210_write_reg(ES7210_MIC3_POWER_REG49, 0x00);
@@ -406,7 +407,7 @@ esp_err_t es7210_stop(void)
ret |= es7210_write_reg(ES7210_MIC4_POWER_REG4A, 0xff);
ret |= es7210_write_reg(ES7210_MIC12_POWER_REG4B,0xff);
ret |= es7210_write_reg(ES7210_MIC34_POWER_REG4C, 0xff);
ret |= es7210_write_reg(ES7210_ANALOG_REG40, 0xc0);
// ret |= es7210_write_reg(ES7210_ANALOG_REG40, 0xc0);
ret |= es7210_write_reg(ES7210_CLOCK_OFF_REG01, 0x7f);
ret |= es7210_write_reg(ES7210_POWER_DOWN_REG06, 0x07);
return ret;
-103
View File
@@ -1,103 +0,0 @@
/**
* @file adc081.c
* @brief ADC081 driver header file.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "adc081.h"
#define ADC081_I2C_ADDRESS (0b1010100)
#define CONVERSION_RESULT_REG (0b00000000)
#define ALERT_STATUS (0b00000001)
#define ADC081_CONFIGURATION_REG (0b00000010)
#define LOW_LIMIT_REG (0b00000011)
#define HIGH_LIMIT_REG (0b00000100)
#define HYSTERESIS_REG (0b00000101)
#define LOWEST_CONVERSION_REG (0b00000110)
#define HIGHEST_CONVERSION_REG (0b00000111)
static i2c_bus_device_handle_t adc081_handle;
static esp_err_t adc081_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(adc081_handle, reg_addr, data);
}
static esp_err_t adc081_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(adc081_handle, reg_addr, data_len, data);
}
static esp_err_t adc081_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(adc081_handle, reg_addr, data);
}
static esp_err_t adc081_write_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_write_bytes(adc081_handle, reg_addr, data_len, data);
}
esp_err_t adc081_init(void)
{
if (NULL != adc081_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&adc081_handle, ADC081_I2C_ADDRESS);
if (NULL == adc081_handle) {
return ESP_FAIL;
}
uint8_t val = 0;
return ESP_OK;
}
esp_err_t adc081_config(adc081_configuration_reg_t *cfg)
{
return adc081_write_byte(ADC081_CONFIGURATION_REG, cfg->val);
}
esp_err_t adc081_config_default(void)
{
adc081_configuration_reg_t cfg = {
.alert_flag_en = false,
.alert_hold = false,
.alert_pin_en = false,
.cycle_time = adc081_cycle_time_2048x,
.polarity = 0,
};
return adc081_write_byte(ADC081_CONFIGURATION_REG, cfg.val);
}
esp_err_t adc081_get_config(adc081_configuration_reg_t *cfg)
{
return adc081_read_byte(ADC081_CONFIGURATION_REG, cfg);
}
esp_err_t adc081_get_converted_value(uint8_t *value)
{
uint8_t reg_val[2];
adc081_read_bytes(CONVERSION_RESULT_REG, sizeof(uint16_t), reg_val);
*value = (reg_val[0] << 4) + (reg_val[1] >> 4);
return ESP_OK;
}
-109
View File
@@ -1,109 +0,0 @@
/**
* @file adc081.h
* @brief ADC081 driver header file.
* @version 0.1
* @date 2021-03-06
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "esp_err.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
#define ADC081_DEFAULT_CONFIG (0b11100000)
#ifdef __cplusplus
extern "C" {
#endif
typedef union {
struct {
uint8_t under_range :1;
uint8_t over_range:1;
uint8_t :6;
};
uint8_t val;
} adc081_alert_status_reg_t;
typedef enum {
adc081_cycle_time_disable = 0, /* Conversion off */
adc081_cycle_time_32x, /* 27 ksps */
adc081_cycle_time_64x, /* 13.5 ksps */
adc081_cycle_time_128x, /* 6.7 ksps */
adc081_cycle_time_256x, /* 3.4 ksps*/
adc081_cycle_time_512x, /* 1.7 ksps*/
adc081_cycle_time_1024x, /* 0.9 ksps*/
adc081_cycle_time_2048x, /* 0.4 ksps*/
} adc081_cycle_time_t;
typedef union {
struct {
uint8_t polarity :1;
uint8_t :1;
uint8_t alert_pin_en:1;
uint8_t alert_flag_en:1;
uint8_t alert_hold:1;
uint8_t cycle_time:3;
};
uint8_t val;
} adc081_configuration_reg_t;
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t adc081_init(void);
/**
* @brief
*
* @param cfg
* @return esp_err_t
*/
esp_err_t adc081_config(adc081_configuration_reg_t *cfg);
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t adc081_config_default(void);
/**
* @brief
*
* @param cfg
* @return esp_err_t
*/
esp_err_t adc081_get_config(adc081_configuration_reg_t *cfg);
/**
* @brief
*
* @param value
* @return esp_err_t
*/
esp_err_t adc081_get_converted_value(uint8_t *value);
#ifdef __cplusplus
}
#endif
-162
View File
@@ -1,162 +0,0 @@
/**
* @file bh1750.h
* @brief BH1750 driver header file.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esp_err.h"
#include "esp_log.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
typedef enum {
BH1750_CONTINUE_1LX_RES = 0x10, /*!< Command to set measure mode as Continuously H-Resolution mode*/
BH1750_CONTINUE_HALFLX_RES = 0x11, /*!< Command to set measure mode as Continuously H-Resolution mode2*/
BH1750_CONTINUE_4LX_RES = 0x13, /*!< Command to set measure mode as Continuously L-Resolution mode*/
BH1750_ONETIME_1LX_RES = 0x20, /*!< Command to set measure mode as One Time H-Resolution mode*/
BH1750_ONETIME_HALFLX_RES = 0x21, /*!< Command to set measure mode as One Time H-Resolution mode2*/
BH1750_ONETIME_4LX_RES = 0x23, /*!< Command to set measure mode as One Time L-Resolution mode*/
} bh1750_cmd_measure_t;
#define BH1750_I2C_ADDRESS_DEFAULT (0x5C)
typedef void *bh1750_handle_t;
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Create and init sensor object and return a sensor handle
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_init(void);
/**
* @brief Set bh1750 as power down mode (low current)
*
* @param sensor object handle of bh1750
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_power_down(void);
/**
* @brief Set bh1750 as power on mode
*
* @param sensor object handle of bh1750
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_power_on(void);
/**
* @brief Reset data register of bh1750
*
* @param sensor object handle of bh1750
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_reset_data_register(void);
/**
* @brief Get light intensity from bh1750
*
* @param sensor object handle of bh1750
* @param cmd_measure the instruction to set measurement mode
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
* @note
* You should call this funtion to set measurement mode before call bh1750_get_data() to acquire data.
* If you set to onetime mode, you just can get one measurement data.
* If you set to continuously mode, you can call bh1750_get_data() to acquire data repeatedly.
*/
esp_err_t bh1750_set_measure_mode(bh1750_cmd_measure_t cmd_measure);
/**
* @brief Get light intensity from bh1750
*
* @param sensor object handle of bh1750
* @param data light intensity value got from bh1750
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
* @note
* You should get data after measurement time over, so take care of measurement time in different mode.
*/
esp_err_t bh1750_get_data(float *data);
/**
* @brief Get light intensity from bh1750
*
* @param sensor object handle of bh1750
* @param cmd_measure the instruction to set measurement mode
* @param data light intensity value got from bh1750
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_get_light_intensity(bh1750_cmd_measure_t cmd_measure, float *data);
/**
* @brief Change measurement time
*
* @param sensor object handle of bh1750
* @param measure_time measurement time
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_change_measure_time(uint8_t measure_time);
/**
* @brief Get light intensity from bh1750
*
* @param sensor object handle of bh1750
* @param cmd_measure the instruction to set measurement mode
* @param data light intensity value got from bh1750
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t bh1750_get_light_intensity(bh1750_cmd_measure_t cmd_measure, float *data);
#ifdef __cplusplus
}
#endif
+28
View File
@@ -21,6 +21,7 @@
#pragma once
#include <stdint.h>
#include "esp_err.h"
#ifdef __cplusplus
@@ -37,8 +38,35 @@ typedef enum {
ft5x06_gesture_zoom_out = 0x49,
} ft5x06_gesture_t;
/**
* @brief Init FT5x06 series touch panel
*
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t ft5x06_init(void);
/**
* @brief Read touch point from FT5x06
*
* @param touch_points_num Touch point number
* @param x X coordinate
* @param y Y coordinate
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t ft5x06_read_pos(uint8_t *touch_points_num, uint16_t *x, uint16_t *y);
/**
* @brief Read guesture from FT5x06
*
* @param gesture Gesture read from FT5x06
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t fx5x06_read_gesture(ft5x06_gesture_t *gesture);
#ifdef __cplusplus
-83
View File
@@ -1,83 +0,0 @@
/**
* @file goodix.h
* @brief
* @version 0.1
* @date 2021-08-26
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Goodix touch screen gesture bit mask.
*
* @note 1. Gesture data is stored at 0x8059 - 0x805A.
* @note 2. The gesture mask `GOODIX_GESTURE_DOWN` is LSB of 0x805A.
* @note 3. The gesture mask `GOODIX_GESTURE_CHAR_C` is LSB of 0x8059.
*
*/
typedef enum {
GOODIX_GESTURE_DOWN = 0, /*!< LSB of 0x805A */
GOODIX_GESTURE_DOUBLE_CLICK,
GOODIX_GESTURE_CHAR_V,
GOODIX_GESTURE_CHAR_GRATER, /*!< Char '>' */
GOODIX_GESTURE_CHAR_CARET, /*!< Char '^' */
GOODIX_GESTURE_CHAR_S,
GOODIX_GESTURE_CHAR_Z,
GOODIX_GESTURE_SLID_DRIVE, /*!< MSB of 0x805A */
/*!< ************ Byte divided here ************ */
GOODIX_GESTURE_CHAR_C, /*!< LSB of 0x8059 */
GOODIX_GESTURE_CHAR_E,
GOODIX_GESTURE_CHAR_M,
GOODIX_GESTURE_CHAR_O,
GOODIX_GESTURE_CHAR_W,
GOODIX_GESTURE_RIGHT,
GOODIX_GESTURE_UP,
GOODIX_GESTURE_LEFT, /*!< MSB of 0x8059 */
} goodix_tp_gesture_t;
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t goodix_tp_init(void);
/**
* @brief
*
* @param x
* @param y
* @param tp_num
* @return esp_err_t
*/
esp_err_t goodix_tp_read(uint8_t *tp_num, uint16_t *x, uint16_t *y);
/**
* @brief
*
* @param gesture
* @return esp_err_t
*/
esp_err_t goodix_tp_read_gesture(goodix_tp_gesture_t *gesture);
#ifdef __cplusplus
}
#endif
-114
View File
@@ -1,114 +0,0 @@
/**
* @file hdc1080.h
* @brief HDC1080 driver header file.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esp_log.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
hdc1080_temp_res_14bit = 0,
hdc1080_temp_res_11bit,
hdc1080_temp_res_max,
} hdc1080_temp_res_t;
typedef enum {
hdc1080_humid_res_14bit = 0,
hdc1080_humid_res_11bit,
hdc1080_humid_res_8bit,
hdc1080_humid_res_max,
} hdc1080_humid_res_t;
typedef enum {
hdc1080_acq_mode_single = 0,
hdc1080_acq_mode_both,
hdc1080_acq_mode_max,
} hdc1080_acq_mode_t;
typedef union {
struct {
uint16_t humid_res: 2; /* 00: 14 bit 01: 11 bit 10: 8bit, defined @hdc1080_humid_res_t */
uint16_t temp_res: 1; /* 0: 14 bit 1: 11 bit, defined @hdc1080_temp_res_t */
uint16_t bat_status: 1; /* 0: Battery voltage > 2.8V 1: Battery voltage < 2.8V [Read only] */
uint16_t acq_mode: 1; /* 0: Temp or humid is acquired 1: Temp and humid are acquired in sequence, temp first */
uint16_t heater: 1; /* Set this bit to enable heater */
uint16_t : 1; /* Reserved, must be 0 */
uint16_t soft_reset: 1; /* Set this bit to reset HDC1080 */
uint16_t : 8; /* Reserved, must be 0 */
};
uint16_t val;
} hdc1080_config_reg_t;
typedef enum {
hdc1080_measure_temp = 0x00,
hdc1080_measure_humid = 0x01,
} hdc1080_measure_type_t;
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t hdc1080_init(void);
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t hdc1080_reset(void);
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t hdc1080_set_mode(void);
/**
* @brief
*
* @param measure_type
* @return esp_err_t
*/
esp_err_t hdc1080_start_measure(hdc1080_measure_type_t measure_type);
/**
* @brief
*
* @param data
* @return esp_err_t
*/
esp_err_t hdc1080_get_measure_data(uint8_t *data);
#ifdef __cplusplus
}
#endif
-132
View File
@@ -1,132 +0,0 @@
/**
* @file icm20602.h
* @brief
* @version 0.1
* @date 2021-01-14
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esp_err.h"
#include "esp_log.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
#include "icm20602_reg.h"
#define ICM20602_ADDR (0b1101000)
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
icm20602_gyro_range_250dps = 0,
icm20602_gyro_range_500dps,
icm20602_gyro_range_1000dps,
icm20602_gyro_range_2000dps,
icm20602_gyro_range_num,
} icm20602_gyro_range_t;
typedef enum {
icm20602_acc_range_2g = 0,
icm20602_acc_range_4g,
icm20602_acc_range_8g,
icm20602_acc_range_1g,
icm20602_acc_range_num,
} icm20602_acc_range_t;
typedef struct {
uint8_t reserve : 1;
uint8_t fifo_mode : 1;
uint8_t ext_sync_set : 3;
uint8_t dlpf_cfg : 1;
} icm20602_config_reg_t;
typedef enum {
ic20602_clk_internal_20m = 0,
ic20602_clk_auto_1,
ic20602_clk_auto_2,
ic20602_clk_auto_3,
ic20602_clk_auto_4,
ic20602_clk_auto_5,
ic20602_clk_internal_20m_6,
ic20602_clk_stop,
} icm20602_clk_t;
typedef /** @brief Allowed value for accel DLPF bandwidth (ACCEL_CONFIG2 (0x1D) register) */
enum mpu_accel_bw { // In the ACCEL_CONFIG2 (0x1D) register, the BW setting bits are :
icm20602_acc_bw_218 = 1, ///< 001 = 218 Hz
icm20602_acc_bw_99, ///< 010 = 99 Hz
icm20602_acc_bw_45, ///< 011 = 45 Hz
icm20602_acc_bw_21, ///< 100 = 21 Hz
icm20602_acc_bw_10, ///< 101 = 10 Hz
icm20602_acc_bw_5, ///< 110 = 5 Hz
icm20602_acc_bw_420, ///< 111 = 420 Hz
icm20602_acc_bw_num,
} icm20602_acc_bw_t;
/** @brief Allowed value for gyro DLPF bandwidth (CONFIG (0x1A) register) */
typedef enum { // In the CONFIG register, the BW setting bits are :
icm20602_gyro_bw_176 = 1, ///< 001 = 176 Hz
icm20602_gyro_bw_92, ///< 010 = 92 Hz
icm20602_gyro_bw_41, ///< 011 = 41 Hz
icm20602_gyro_bw_20, ///< 100 = 20 Hz
icm20602_gyro_bw_10, ///< 101 = 10 Hz
icm20602_gyro_bw_5, ///< 110 = 5 Hz
icm20602_gyro_bw_num,
} icm20602_gyro_bw_t;
typedef struct {
uint8_t device_reset : 1;
uint8_t device_sleep : 1;
uint8_t cycle_en : 1;
uint8_t standby_en : 1;
uint8_t temp_dis : 1;
uint8_t clk_sel : 3;
} icm20602_power_reg_1_t;
typedef struct {
uint8_t reserve : 2;
uint8_t stby_xa : 1;
uint8_t stby_ya : 1;
uint8_t stby_za : 1;
uint8_t stby_xg : 1;
uint8_t stby_yg : 1;
uint8_t stby_zg : 1;
} icm20602_power_reg_2_t;
typedef struct {
//
} icm20602_config_t;
/**
* @brief Initialize ICM-20602 with default config
*
* @return esp_err_t
* - ESP_OK : Initialize successfully
*/
esp_err_t icm20602_init(void);
#ifdef __cplusplus
}
#endif
@@ -1,52 +0,0 @@
/**
* @file icm20602_reg.h
* @brief ICM20602 register map.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#define MPUREG_XG_OFFS_USRH (0x13)
#define MPUREG_YG_OFFS_USRH (0x15)
#define MPUREG_ZG_OFFS_USRH (0x17)
#define MPUREG_CONFIG (0x1a)
#define MPUREG_SMPLRT_DIV (0x19)
#define MPUREG_GYRO_CONFIG (0x1b)
#define MPUREG_ACCEL_CONFIG (0x1c)
#define MPUREG_ACCEL_CONFIG_2 (0x1d)
#define MPUREG_LP_CONFIG (0x1e)
#define MPUREG_ACCEL_WOM_THR (0x1f)
#define MPUREG_ACCEL_WOM_X_THR (0x20)
#define MPUREG_ACCEL_WOM_Y_THR (0x21)
#define MPUREG_ACCEL_WOM_Z_THR (0x22)
#define MPUREG_FIFO_EN (0x23)
#define MPUREG_INT_PIN_CFG (0x37)
#define MPUREG_INT_ENABLE (0x38)
#define MPUREG_INT_STATUS (0x3a)
#define MPUREG_USER_CTRL (0x6a)
#define MPUREG_PWR_MGMT_1 (0x6b)
#define MPUREG_PWR_MGMT_2 (0x6c)
#define MPUREG_BANK_SEL (0x6d)
#define MPUREG_MEM_START_ADDR (0x6e)
#define MPUREG_MEM_R_W (0x6f)
#define MPUREG_FIFO_COUNTH (0x72)
#define MPUREG_FIFO_R_W (0x74)
#define MPUREG_WHO_AM_I (0x75)
#define MPUREG_XA_OFFS_H (0x77)
#define MPUREG_YA_OFFS_H (0x7a)
#define MPUREG_ZA_OFFS_H (0x7d)
-85
View File
@@ -1,85 +0,0 @@
/**
* @file ltr303.h
* @brief LTR303 driver header file.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esp_log.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
als_integration_time_100ms = 0,
als_integration_time_50ms,
als_integration_time_200ms,
als_integration_time_400ms,
als_integration_time_150ms,
als_integration_time_250ms,
als_integration_time_300ms,
als_integration_time_350ms,
} als_integration_time_t;
typedef enum {
als_measurement_rate_50ms = 0,
als_measurement_rate_100ms,
als_measurement_rate_200ms,
als_measurement_rate_500ms,
als_measurement_rate_1000ms,
als_measurement_rate_2000ms,
} als_measurement_rate_t;
typedef enum {
als_gain_1x = 0,
als_gain_2x,
als_gain_4x,
als_gain_8x,
als_gain_48x = 6,
als_gain_96x,
} als_gain_t;
typedef enum {
als_mode_standby = 0,
als_mode_active,
} als_mode_t;
typedef struct {
uint8_t reserve : 3;
uint8_t als_gain : 3;
uint8_t sw_reset : 1;
uint8_t als_mode : 1;
} als_contr_reg_t;
typedef struct {
uint8_t reserve : 2;
uint8_t als_integration_time : 3;
uint8_t als_meas_report_rate : 3;
} als_meas_rate_reg_t;
#ifdef __cplusplus
}
#endif
-339
View File
@@ -1,339 +0,0 @@
/**
* @file mpu6050.h
* @brief MPU6050 driver header.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __MPU6050_H_
#define __MPU6050_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esp_log.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
#define MPU6050_I2C_ADDRESS (0b1101000) // 0x68 /*!< slave address for MPU6050 sensor */
/* MPU6050 register */
#define MPU6050_SELF_TEST_X 0x0D
#define MPU6050_SELF_TEST_Y 0x0E
#define MPU6050_SELF_TEST_Z 0x0F
#define MPU6050_SELF_TEST_A 0x10
#define MPU6050_SMPLRT_DIV 0x19
#define MPU6050_CONFIG 0x1A
#define MPU6050_GYRO_CONFIG 0x1B
#define MPU6050_ACCEL_CONFIG 0x1C
#define MPU6050_FIFO_EN 0x23
#define MPU6050_I2C_MST_CTRL 0x24
#define MPU6050_I2C_SLV0_ADDR 0x25
#define MPU6050_I2C_SLV0_REG 0x26
#define MPU6050_I2C_SLV0_CTRL 0x27
#define MPU6050_I2C_SLV1_ADDR 0x28
#define MPU6050_I2C_SLV1_REG 0x29
#define MPU6050_I2C_SLV1_CTRL 0x2A
#define MPU6050_I2C_SLV2_ADDR 0x2B
#define MPU6050_I2C_SLV2_REG 0x2C
#define MPU6050_I2C_SLV2_CTRL 0x2D
#define MPU6050_I2C_SLV3_ADDR 0x2E
#define MPU6050_I2C_SLV3_REG 0x2F
#define MPU6050_I2C_SLV3_CTRL 0x30
#define MPU6050_I2C_SLV4_ADDR 0x31
#define MPU6050_I2C_SLV4_REG 0x32
#define MPU6050_I2C_SLV4_DO 0x33
#define MPU6050_I2C_SLV4_CTRL 0x34
#define MPU6050_I2C_SLV4_DI 0x35
#define MPU6050_I2C_MST_STATUS 0x36
#define MPU6050_INT_PIN_CFG 0x37
#define MPU6050_INT_ENABLE 0x38
#define MPU6050_DMP_INT_STATUS 0x39
#define MPU6050_INT_STATUS 0x3A
#define MPU6050_ACCEL_XOUT_H 0x3B
#define MPU6050_ACCEL_XOUT_L 0x3C
#define MPU6050_ACCEL_YOUT_H 0x3D
#define MPU6050_ACCEL_YOUT_L 0x3E
#define MPU6050_ACCEL_ZOUT_H 0x3F
#define MPU6050_ACCEL_ZOUT_L 0x40
#define MPU6050_TEMP_OUT_H 0x41
#define MPU6050_TEMP_OUT_L 0x42
#define MPU6050_GYRO_XOUT_H 0x43
#define MPU6050_GYRO_XOUT_L 0x44
#define MPU6050_GYRO_YOUT_H 0x45
#define MPU6050_GYRO_YOUT_L 0x46
#define MPU6050_GYRO_ZOUT_H 0x47
#define MPU6050_GYRO_ZOUT_L 0x48
#define MPU6050_EXT_SENS_DATA_00 0x49
#define MPU6050_EXT_SENS_DATA_01 0x4A
#define MPU6050_EXT_SENS_DATA_02 0x4B
#define MPU6050_EXT_SENS_DATA_03 0x4C
#define MPU6050_EXT_SENS_DATA_04 0x4D
#define MPU6050_EXT_SENS_DATA_05 0x4E
#define MPU6050_EXT_SENS_DATA_06 0x4F
#define MPU6050_EXT_SENS_DATA_07 0x50
#define MPU6050_EXT_SENS_DATA_08 0x51
#define MPU6050_EXT_SENS_DATA_09 0x52
#define MPU6050_EXT_SENS_DATA_10 0x53
#define MPU6050_EXT_SENS_DATA_11 0x54
#define MPU6050_EXT_SENS_DATA_12 0x55
#define MPU6050_EXT_SENS_DATA_13 0x56
#define MPU6050_EXT_SENS_DATA_14 0x57
#define MPU6050_EXT_SENS_DATA_15 0x58
#define MPU6050_EXT_SENS_DATA_16 0x59
#define MPU6050_EXT_SENS_DATA_17 0x5A
#define MPU6050_EXT_SENS_DATA_18 0x5B
#define MPU6050_EXT_SENS_DATA_19 0x5C
#define MPU6050_EXT_SENS_DATA_20 0x5D
#define MPU6050_EXT_SENS_DATA_21 0x5E
#define MPU6050_EXT_SENS_DATA_22 0x5F
#define MPU6050_EXT_SENS_DATA_23 0x60
#define MPU6050_I2C_SLV0_DO 0x63
#define MPU6050_I2C_SLV1_DO 0x64
#define MPU6050_I2C_SLV2_DO 0x65
#define MPU6050_I2C_SLV3_DO 0x66
#define MPU6050_I2C_MST_DELAY_CTRL 0x67
#define MPU6050_SIGNAL_PATH_RESET 0x68
#define MPU6050_USER_CTRL 0x6A
#define MPU6050_PWR_MGMT_1 0x6B
#define MPU6050_PWR_MGMT_2 0x6C
#define MPU6050_FIFO_COUNTH 0x72
#define MPU6050_FIFO_COUNTL 0x73
#define MPU6050_FIFO_R_W 0x74
#define MPU6050_WHO_AM_I 0x75
typedef enum {
ACCE_FS_2G = 0, /*!< Accelerometer full scale range is +/- 2g */
ACCE_FS_4G = 1, /*!< Accelerometer full scale range is +/- 4g */
ACCE_FS_8G = 2, /*!< Accelerometer full scale range is +/- 8g */
ACCE_FS_16G = 3, /*!< Accelerometer full scale range is +/- 16g */
} mpu6050_acce_fs_t;
typedef enum {
GYRO_FS_250DPS = 0, /*!< Gyroscope full scale range is +/- 250 degree per sencond */
GYRO_FS_500DPS = 1, /*!< Gyroscope full scale range is +/- 500 degree per sencond */
GYRO_FS_1000DPS = 2, /*!< Gyroscope full scale range is +/- 1000 degree per sencond */
GYRO_FS_2000DPS = 3, /*!< Gyroscope full scale range is +/- 2000 degree per sencond */
} mpu6050_gyro_fs_t;
typedef struct {
int16_t raw_acce_x;
int16_t raw_acce_y;
int16_t raw_acce_z;
} mpu6050_raw_acce_value_t;
typedef struct {
int16_t raw_gyro_x;
int16_t raw_gyro_y;
int16_t raw_gyro_z;
} mpu6050_raw_gyro_value_t;
typedef struct {
float acce_x;
float acce_y;
float acce_z;
} mpu6050_acce_value_t;
typedef struct {
float gyro_x;
float gyro_y;
float gyro_z;
} mpu6050_gyro_value_t;
typedef struct {
float roll;
float pitch;
} complimentary_angle_t;
typedef void *mpu6050_handle_t;
/**
* @brief Get device identification of MPU6050
*
* @param deviceid a pointer of device ID
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_deviceid(uint8_t *deviceid);
/**
* @brief Wake up MPU6050
*
* @param sensor object handle of mpu6050
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_wake_up(void);
/**
* @brief Enter sleep mode
*
* @param sensor object handle of mpu6050
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_sleep(void);
/**
* @brief Set accelerometer full scale range
*
* @param sensor object handle of mpu6050
* @param acce_fs accelerometer full scale range
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_set_acce_fs(mpu6050_acce_fs_t acce_fs);
/**
* @brief Set gyroscope full scale range
*
* @param sensor object handle of mpu6050
* @param gyro_fs gyroscope full scale range
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_set_gyro_fs(mpu6050_gyro_fs_t gyro_fs);
/**
* @brief Get accelerometer full scale range
*
* @param sensor object handle of mpu6050
* @param acce_fs accelerometer full scale range
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_acce_fs(mpu6050_acce_fs_t *acce_fs);
/**
* @brief Get gyroscope full scale range
*
* @param sensor object handle of mpu6050
* @param gyro_fs gyroscope full scale range
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_gyro_fs(mpu6050_gyro_fs_t *gyro_fs);
/**
* @brief Get accelerometer sensitivity
*
* @param sensor object handle of mpu6050
* @param acce_sensitivity accelerometer sensitivity
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_acce_sensitivity(float *acce_sensitivity);
/**
* @brief Get gyroscope sensitivity
*
* @param sensor object handle of mpu6050
* @param gyro_sensitivity gyroscope sensitivity
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_gyro_sensitivity(float *gyro_sensitivity);
/**
* @brief Read raw accelerometer measurements
*
* @param sensor object handle of mpu6050
* @param acce_value raw accelerometer measurements
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_raw_acce(mpu6050_raw_acce_value_t *raw_acce_value);
/**
* @brief Read raw gyroscope measurements
*
* @param sensor object handle of mpu6050
* @param gyro_value raw gyroscope measurements
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_raw_gyro(mpu6050_raw_gyro_value_t *raw_gyro_value);
/**
* @brief Read accelerometer measurements
*
* @param sensor object handle of mpu6050
* @param acce_value accelerometer measurements
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_acce(mpu6050_acce_value_t *acce_value);
/**
* @brief Read gyro values
*
* @param sensor object handle of mpu6050
* @param gyro_value gyroscope measurements
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_get_gyro(mpu6050_gyro_value_t *gyro_value);
/***implements of imu hal interface****/
/**
* @brief initialize mpu6050 with default configurations
*
* @return
* - ESP_OK Success
* - ESP_FAIL Fail
*/
esp_err_t mpu6050_init(void);
#ifdef __cplusplus
}
#endif
#endif
-78
View File
@@ -1,78 +0,0 @@
/**
* @file tca9554.h
* @brief TCA9554 driver header.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "esp_log.h"
#include "bsp_i2c.h"
#include "i2c_bus.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief
*
* @return esp_err_t
*/
esp_err_t tca9554_init(void);
/**
* @brief
*
* @param val
* @return esp_err_t
*/
esp_err_t tca9554_set_configuration(uint8_t val);
/**
* @brief
*
* @param pin_val
* @return esp_err_t
*/
esp_err_t tca9554_write_output_pins(uint8_t pin_val);
/**
* @brief
*
* @param pin_val
* @return esp_err_t
*/
esp_err_t tca9554_read_output_pins(uint8_t *pin_val);
/**
* @brief
*
* @param pin_val
* @return esp_err_t
*/
esp_err_t tca9554_read_input_pins(uint8_t *pin_val);
#ifdef __cplusplus
}
#endif
+12 -7
View File
@@ -21,6 +21,7 @@
#pragma once
#include <stdint.h>
#include "esp_err.h"
#ifdef __cplusplus
@@ -28,19 +29,23 @@ extern "C" {
#endif
/**
* @brief
* @brief Init TT21100 touch panel
*
* @return esp_err_t
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t tt21100_tp_init(void);
/**
* @brief
* @brief Read touch point from TT21100
*
* @param tp_num
* @param x
* @param y
* @return esp_err_t
* @param tp_num Touch point number
* @param x X coordinate
* @param y Y coordinate
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t tt21100_tp_read(uint8_t *tp_num, uint16_t *x, uint16_t *y);
@@ -1,75 +0,0 @@
/**
* @file tca9554.c
* @brief TCA9554 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "tca9554.h"
#define TCA9554_ADDR (0x20)
#define TCA9554_INPUT_PORT_REG (0x00)
#define TCA9554_OUTPUT_PORT_REG (0x01)
#define TCA9554_POLARITY_INVERSION_REG (0x02)
#define TCA9554_CONFIGURATION_REG (0x03)
static i2c_bus_device_handle_t tca9554_handle = NULL;
static esp_err_t tca9554_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(tca9554_handle, reg_addr, data);
}
static esp_err_t tca9554_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(tca9554_handle, reg_addr, data);
}
esp_err_t tca9554_init(void)
{
if (NULL != tca9554_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&tca9554_handle, TCA9554_ADDR);
if (NULL == tca9554_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t tca9554_set_configuration(uint8_t val)
{
return tca9554_write_byte(TCA9554_CONFIGURATION_REG, val);
}
esp_err_t tca9554_write_output_pins(uint8_t pin_val)
{
return tca9554_write_byte(TCA9554_OUTPUT_PORT_REG, pin_val);
}
esp_err_t tca9554_read_output_pins(uint8_t *pin_val)
{
return tca9554_read_byte(TCA9554_OUTPUT_PORT_REG, pin_val);
}
esp_err_t tca9554_read_input_pins(uint8_t *pin_val)
{
return tca9554_read_byte(TCA9554_INPUT_PORT_REG, pin_val);
}
@@ -1,53 +0,0 @@
/**
* @file cat5171.c
* @brief CAT5171 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "cat5171.h"
#define CAT5171_I2C_ADDRESS (0x2d)
static const char *TAG = "cat5171";
static i2c_bus_device_handle_t cat5171_handle = NULL;
static esp_err_t cat5171_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(cat5171_handle, reg_addr, data);
}
esp_err_t cat5171_init(void)
{
if (NULL != cat5171_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&cat5171_handle, CAT5171_I2C_ADDRESS);
if (NULL == cat5171_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t cat5171_set_resistance(uint8_t res)
{
return cat5171_write_byte(0x00, res);
}
@@ -1,57 +0,0 @@
/**
* @file tpl0401.c
* @brief TPL0401 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "tpl0401.h"
#define TPL0401_DEV_ADDR (0x2E)
#define TPL0401_RESISTANCE_REG (0x00)
static i2c_bus_device_handle_t tpl0401_handle = NULL;
static esp_err_t tpl0401_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(tpl0401_handle, reg_addr, data);
}
static esp_err_t tpl0401_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(tpl0401_handle, reg_addr, data);
}
esp_err_t tpl0401_init(void)
{
if (NULL != tpl0401_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&tpl0401_handle, TPL0401_DEV_ADDR);
if (NULL == tpl0401_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t tpl0401_set_resistance(uint8_t res)
{
return tpl0401_write_byte(TPL0401_RESISTANCE_REG, res);
}
-131
View File
@@ -1,131 +0,0 @@
/**
* @file bh1750.c
* @brief BH1750 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bh1750.h"
#define WRITE_BIT I2C_MASTER_WRITE /*!< I2C master write */
#define READ_BIT I2C_MASTER_READ /*!< I2C master read */
#define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/
#define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */
#define ACK_VAL 0x0 /*!< I2C ack value */
#define NACK_VAL 0x1 /*!< I2C nack value */
#define BH_1750_MEASUREMENT_ACCURACY 1.2 /*!< the typical measurement accuracy of BH1750 sensor */
#define BH1750_POWER_DOWN 0x00 /*!< Command to set Power Down*/
#define BH1750_POWER_ON 0x01 /*!< Command to set Power On*/
#define BH1750_DATA_REG_RESET 0x07 /*!< Command to reset data register, not acceptable in power down mode*/
static i2c_bus_device_handle_t bh1750_handle;
static esp_err_t bh1750_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(bh1750_handle, reg_addr, data);
}
static esp_err_t bh1750_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(bh1750_handle, reg_addr, data_len, data);
}
static esp_err_t bh1750_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(bh1750_handle, reg_addr, data);
}
static esp_err_t bh1750_write_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_write_bytes(bh1750_handle, reg_addr, data_len, data);
}
esp_err_t bh1750_init(void)
{
if (NULL != bh1750_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&bh1750_handle, BH1750_I2C_ADDRESS_DEFAULT);
if (NULL == bh1750_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
/***********************************************************/
esp_err_t bh1750_power_down(void)
{
return bh1750_write_byte(NULL_I2C_MEM_ADDR, BH1750_POWER_DOWN);
}
esp_err_t bh1750_power_on(void)
{
return bh1750_write_byte(NULL_I2C_MEM_ADDR, BH1750_POWER_ON);
}
esp_err_t bh1750_reset_data_register(void)
{
bh1750_power_on();
return bh1750_write_byte(NULL_I2C_MEM_ADDR, BH1750_DATA_REG_RESET);
}
esp_err_t bh1750_change_measure_time(uint8_t measure_time)
{
uint8_t buf[2] = {0x40, 0x60};
buf[0] |= measure_time >> 5;
buf[1] |= measure_time & 0x1F;
return bh1750_write_bytes(NULL_I2C_MEM_ADDR, 2, &buf[0]);
}
esp_err_t bh1750_set_measure_mode(bh1750_cmd_measure_t cmd_measure)
{
return bh1750_write_byte(NULL_I2C_MEM_ADDR, cmd_measure);
}
esp_err_t bh1750_get_data(float *data)
{
uint8_t bh1750_data[2] = {0};
esp_err_t ret = bh1750_read_bytes(NULL_I2C_MEM_ADDR, 2, &bh1750_data[0]);
*data = ((bh1750_data[0] << 8 | bh1750_data[1]) / BH_1750_MEASUREMENT_ACCURACY);
return ret;
}
esp_err_t bh1750_get_light_intensity(bh1750_cmd_measure_t cmd_measure, float *data)
{
esp_err_t ret = bh1750_set_measure_mode(cmd_measure);
if (ret != ESP_OK) {
return ret;
}
if ((cmd_measure == BH1750_CONTINUE_4LX_RES) || (cmd_measure == BH1750_ONETIME_4LX_RES)) {
vTaskDelay(pdMS_TO_TICKS(30));
} else {
vTaskDelay(pdMS_TO_TICKS(180));
}
ret = bh1750_get_data(data);
return ret;
}
-123
View File
@@ -1,123 +0,0 @@
/**
* @file hdc1080.c
* @brief HDC1080 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "hdc1080.h"
#define HDC1080_DEV_ADDR (0x40)
#define TEMPERATURE_REG (0x00)
#define HUMIDITY_REG (0x01)
#define HDC1080_CONFIGURATION_REG (0x02)
static i2c_bus_device_handle_t hdc1080_handle = NULL;
static esp_err_t hdc1080_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(hdc1080_handle, reg_addr, data);
}
static esp_err_t hdc1080_write_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_write_bytes(hdc1080_handle, reg_addr, data_len, data);
}
static esp_err_t hdc1080_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(hdc1080_handle, reg_addr, data_len, data);
}
esp_err_t hdc1080_init(void)
{
if (NULL != hdc1080_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&hdc1080_handle, HDC1080_DEV_ADDR);
hdc1080_set_mode();
if (NULL == hdc1080_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t hdc1080_reset(void)
{
hdc1080_config_reg_t hdc1080_config = {
.soft_reset = true,
.heater = false,
.acq_mode = hdc1080_acq_mode_both,
.bat_status = 0,
.temp_res = hdc1080_temp_res_11bit,
.humid_res = hdc1080_humid_res_11bit,
};
return hdc1080_write_bytes(HDC1080_CONFIGURATION_REG, 2, &hdc1080_config.val);
}
esp_err_t hdc1080_set_mode(void)
{
hdc1080_config_reg_t hdc1080_config = {
.soft_reset = false,
.heater = false,
.acq_mode = hdc1080_acq_mode_both,
.bat_status = 0,
.temp_res = hdc1080_temp_res_11bit,
.humid_res = hdc1080_humid_res_11bit,
};
return hdc1080_write_bytes(HDC1080_CONFIGURATION_REG, 2, &hdc1080_config.val);
}
esp_err_t hdc1080_get_config(hdc1080_config_reg_t config)
{
return hdc1080_read_bytes(HDC1080_CONFIGURATION_REG, 2, &config);
}
esp_err_t hdc1080_start_measure(hdc1080_measure_type_t measure_type)
{
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (HDC1080_DEV_ADDR << 1) | I2C_MASTER_WRITE, I2C_ACK_CHECK_EN);
i2c_master_write_byte(cmd, (uint8_t) measure_type, I2C_ACK_CHECK_EN);
i2c_bus_cmd_begin(hdc1080_handle, cmd);
i2c_cmd_link_delete(cmd);
return ESP_OK;
}
esp_err_t hdc1080_get_measure_data(uint8_t *data)
{
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (HDC1080_DEV_ADDR << 1) | I2C_MASTER_READ, I2C_ACK_CHECK_EN);
i2c_master_read(cmd, data, 2, I2C_MASTER_LAST_NACK);
i2c_master_stop(cmd);
i2c_bus_cmd_begin(hdc1080_handle, cmd);
i2c_cmd_link_delete(cmd);
return ESP_OK;
}
-115
View File
@@ -1,115 +0,0 @@
/**
* @file icm20602.c
* @brief ICM20602 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "icm20602.h"
static i2c_bus_device_handle_t icm20602_handle = NULL;
static esp_err_t icm20602_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(icm20602_handle, reg_addr, data);
}
static esp_err_t icm20602_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(icm20602_handle, reg_addr, data_len, data);
}
static esp_err_t icm20602_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(icm20602_handle, reg_addr, data);
}
static esp_err_t icm20602_write_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_write_bytes(icm20602_handle, reg_addr, data_len, data);
}
esp_err_t icm20602_init(void)
{
if (NULL != icm20602_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&icm20602_handle, ICM20602_ADDR);
if (NULL == icm20602_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
/** ICM-20602 Functions */
esp_err_t icm20602_power_1_set(bool device_reset, bool device_sleep, bool cycle_en, bool standby_en, bool temp_dis, icm20602_clk_t clk_sel)
{
icm20602_power_reg_1_t reg = {
.device_reset = device_reset,
.device_sleep = device_sleep,
.cycle_en = cycle_en,
.standby_en = standby_en,
.temp_dis = temp_dis,
.clk_sel = clk_sel,
};
uint8_t *data = (uint8_t *)&reg;
return icm20602_write_byte(MPUREG_PWR_MGMT_1, *data);
}
esp_err_t icm20602_power_2_set(bool acc_x_disable, bool acc_y_disable, bool acc_z_disable, bool gyro_x_disable, bool gyro_y_disable, bool gyro_z_disable)
{
icm20602_power_reg_2_t reg = {
.reserve = 0,
.stby_xa = acc_x_disable,
.stby_ya = acc_y_disable,
.stby_za = acc_z_disable,
.stby_xg = gyro_x_disable,
.stby_yg = gyro_y_disable,
.stby_zg = gyro_z_disable,
};
uint8_t *data = (uint8_t *)&reg;
return icm20602_write_byte(MPUREG_PWR_MGMT_2, *data);
}
esp_err_t icm20602_set_acc_range(icm20602_acc_range_t range)
{
return ESP_OK;
}
esp_err_t icm20602_set_gyro_range(icm20602_gyro_range_t range)
{
return ESP_OK;
}
// esp_err_t icm20602_set_acc_bandwidth(icm20602_acc_bw_t bandwidth)
// {
// return ESP_OK;
// }
// esp_err_t icm20602_set_gyro_bandwidth(icm20602_gyro_bw_t bandwidth)
// {
// return ESP_OK;
// }
-165
View File
@@ -1,165 +0,0 @@
/**
* @file ltr303.c
* @brief LTR303 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "ltr303.h"
#define LTR303_DEV_ADDR (0b0101001)
#define ALS_CONTR (0x80)
#define ALS_MEAS_RATE (0x85)
#define PART_ID (0x86)
#define MANUFACT_ID (0x87)
#define ALS_DATA_CH1_0 (0x88)
#define ALS_DATA_CH1_1 (0x89)
#define ALS_DATA_CH0_0 (0x8a)
#define ALS_DATA_CH0_1 (0x8b)
#define ALS_STATUS (0x8c)
#define INTERRUPT_REG (0x8f)
#define ALS_THRES_UP_0 (0x98)
#define ALS_THRES_UP_1 (0x99)
#define ALS_THRES_LOW_0 (0x99)
#define ALS_THRES_LOW_1 (0x9a)
#define INTERRUPT_PERSIST (0x9e)
static i2c_bus_device_handle_t ltr303_handle = NULL;
static esp_err_t ltr303_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(ltr303_handle, reg_addr, data);
}
static esp_err_t ltr303_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(ltr303_handle, reg_addr, data_len, data);
}
static esp_err_t ltr303_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(ltr303_handle, reg_addr, data);
}
esp_err_t ltr303_set_integration_time(als_integration_time_t time)
{
uint8_t reg;
ltr303_read_byte(ALS_MEAS_RATE, &reg);
((als_meas_rate_reg_t *) &reg)->als_integration_time = (uint8_t)time;
return ltr303_write_byte(ALS_MEAS_RATE, reg);
}
esp_err_t ltr303_set_measurement_report_rate(als_measurement_rate_t rate)
{
uint8_t reg;
ltr303_read_byte(ALS_MEAS_RATE, &reg);
((als_meas_rate_reg_t *) &reg)->als_meas_report_rate = (uint8_t)rate;
return ltr303_write_byte(ALS_MEAS_RATE, reg);
}
esp_err_t ltr303_soft_reset(void)
{
/* No need to care about other bits */
return ltr303_write_byte(ALS_CONTR, 0b10);
}
esp_err_t set_mode(als_mode_t mode)
{
uint8_t reg;
ltr303_read_byte(ALS_CONTR, &reg);
((als_contr_reg_t *) &reg)->als_mode = mode;
return ltr303_write_byte(ALS_CONTR, reg);
}
esp_err_t ltr303_set_als_gain(als_gain_t gain)
{
uint8_t reg;
ltr303_read_byte(ALS_CONTR, &reg);
((als_contr_reg_t *) &reg)->als_gain = gain;
return ltr303_write_byte(ALS_CONTR, reg);
}
esp_err_t ltr303_init(void)
{
if (NULL != ltr303_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&ltr303_handle, LTR303_DEV_ADDR);
if (NULL == ltr303_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
esp_err_t ltr303_get_als_data(uint8_t *data)
{
return ltr303_read_bytes(ALS_DATA_CH0_0, 4, data);
}
esp_err_t ltr303_get_als_status(bool *data_valid, als_gain_t *gain, bool *int_active, bool *is_new_data)
{
typedef struct {
uint8_t als_data_valid : 1;
uint8_t als_data_gain_rate : 3;
uint8_t als_interrupt_status : 1;
uint8_t als_data_status : 1;
uint8_t reserve : 2;
} als_status_reg_t;
uint8_t reg;
ltr303_read_byte(ALS_STATUS, &reg);
if (NULL != data_valid) {
*data_valid = ((als_status_reg_t *) &reg)->als_data_valid;
}
if (NULL != gain) {
*gain = ((als_status_reg_t *) &reg)->als_data_gain_rate;
}
if (NULL != int_active) {
*int_active = ((als_status_reg_t *) &reg)->als_interrupt_status;
}
if (NULL != is_new_data) {
*is_new_data = ((als_status_reg_t *) &reg)->als_data_status;
}
return ESP_OK;
}
esp_err_t ltr303_set_interrupt(bool int_polarity_high, bool int_en)
{
typedef struct {
uint8_t reserved_h : 5;
uint8_t int_polarity : 1;
uint8_t int_mode : 1;
uint8_t reserved_l : 1;
} interrupt_reg_t;
uint8_t reg;
((interrupt_reg_t *) &reg)->int_polarity = int_polarity_high;
((interrupt_reg_t *) &reg)->int_mode = int_en;
return ltr303_write_byte(INTERRUPT_REG, reg);
}
-335
View File
@@ -1,335 +0,0 @@
/**
* @file mpu6050.c
* @brief MPU6050 driver.
* @version 0.1
* @date 2021-03-07
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "mpu6050.h"
static const char *TAG = "mpu6050";
#define WRITE_BIT I2C_MASTER_WRITE /*!< I2C master write */
#define READ_BIT I2C_MASTER_READ /*!< I2C master read */
#define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/
#define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */
#define ACK_VAL 0x0 /*!< I2C ack value */
#define NACK_VAL 0x1 /*!< I2C nack value */
#define ALPHA 0.99 /*!< Weight for gyroscope */
#define RAD_TO_DEG (180.0f / 3.141592653589793f) /*!< Radians to degrees */
typedef struct {
i2c_bus_device_handle_t i2c_dev;
uint8_t dev_addr;
uint32_t counter;
float dt; /*!< delay time between twice measurement, dt should be small (ms level) */
struct timeval *timer;
} mpu6050_dev_t;
/* New codes start here */
static i2c_bus_device_handle_t mpu6050_handle = NULL;
static esp_err_t mpu6050_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(mpu6050_handle, reg_addr, data);
}
static esp_err_t mpu6050_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(mpu6050_handle, reg_addr, data_len, data);
}
static esp_err_t mpu6050_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(mpu6050_handle, reg_addr, data);
}
static esp_err_t mpu6050_write_bytes(uint8_t reg_addr, size_t data_len, const uint8_t *data)
{
return i2c_bus_write_bytes(mpu6050_handle, MPU6050_I2C_ADDRESS, data_len, data);
}
esp_err_t mpu6050_init(void)
{
if (NULL != mpu6050_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&mpu6050_handle, MPU6050_I2C_ADDRESS);
if (NULL == mpu6050_handle) {
return ESP_FAIL;
}
mpu6050_wake_up();
vTaskDelay(50);
uint8_t mpu6050_deviceid;
mpu6050_get_deviceid(&mpu6050_deviceid);
ESP_LOGI(TAG, "mpu6050 device address is: 0x%02x\n", mpu6050_deviceid);
mpu6050_set_acce_fs(ACCE_FS_4G);
mpu6050_set_gyro_fs(GYRO_FS_500DPS);
return ESP_OK;
}
esp_err_t mpu6050_get_deviceid(uint8_t *deviceid)
{
return mpu6050_read_byte(MPU6050_WHO_AM_I, deviceid);
}
esp_err_t mpu6050_wake_up(void)
{
uint8_t reg;
esp_err_t ret;
ret = mpu6050_read_byte(MPU6050_PWR_MGMT_1, &reg);
if (ret != ESP_OK) {
return ret;
}
reg &= (~BIT6);
ret = mpu6050_write_byte(MPU6050_PWR_MGMT_1, reg);
return ret;
}
esp_err_t mpu6050_sleep(void)
{
esp_err_t ret;
uint8_t reg;
ret = mpu6050_read_byte(MPU6050_PWR_MGMT_1, &reg);
if (ret != ESP_OK) {
return ret;
}
reg |= BIT6;
ret = mpu6050_write_byte(MPU6050_PWR_MGMT_1, reg);
return ret;
}
esp_err_t mpu6050_set_acce_fs(mpu6050_acce_fs_t acce_fs)
{
esp_err_t ret;
uint8_t reg;
ret = mpu6050_read_byte(MPU6050_ACCEL_CONFIG, &reg);
if (ret != ESP_OK) {
return ret;
}
reg &= (~BIT3);
reg &= (~BIT4);
reg |= (acce_fs << 3);
ret = mpu6050_write_byte(MPU6050_ACCEL_CONFIG, reg);
return ret;
}
esp_err_t mpu6050_set_gyro_fs(mpu6050_gyro_fs_t gyro_fs)
{
esp_err_t ret;
uint8_t reg;
ret = mpu6050_read_byte(MPU6050_GYRO_CONFIG, &reg);
if (ret != ESP_OK) {
return ret;
}
reg &= (~BIT3);
reg &= (~BIT4);
reg |= (gyro_fs << 3);
ret = mpu6050_write_byte(MPU6050_GYRO_CONFIG, reg);
return ret;
}
esp_err_t mpu6050_get_acce_fs(mpu6050_acce_fs_t *acce_fs)
{
esp_err_t ret;
uint8_t reg;
ret = mpu6050_read_byte(MPU6050_ACCEL_CONFIG, &reg);
reg = (reg >> 3) & 0x03;
*acce_fs = reg;
return ret;
}
esp_err_t mpu6050_get_gyro_fs(mpu6050_gyro_fs_t *gyro_fs)
{
esp_err_t ret;
uint8_t reg;
ret = mpu6050_read_byte( MPU6050_GYRO_CONFIG, &reg);
reg = (reg >> 3) & 0x03;
*gyro_fs = reg;
return ret;
}
esp_err_t mpu6050_get_acce_sensitivity(float *acce_sensitivity)
{
esp_err_t ret;
uint8_t acce_fs;
ret = mpu6050_read_byte(MPU6050_ACCEL_CONFIG, &acce_fs);
acce_fs = (acce_fs >> 3) & 0x03;
switch (acce_fs) {
case ACCE_FS_2G:
*acce_sensitivity = 16384;
break;
case ACCE_FS_4G:
*acce_sensitivity = 8192;
break;
case ACCE_FS_8G:
*acce_sensitivity = 4096;
break;
case ACCE_FS_16G:
*acce_sensitivity = 2048;
break;
default:
break;
}
return ret;
}
esp_err_t mpu6050_get_gyro_sensitivity(float *gyro_sensitivity)
{
esp_err_t ret;
uint8_t gyro_fs;
ret = mpu6050_read_byte(MPU6050_ACCEL_CONFIG, &gyro_fs);
gyro_fs = (gyro_fs >> 3) & 0x03;
switch (gyro_fs) {
case GYRO_FS_250DPS:
*gyro_sensitivity = 131;
break;
case GYRO_FS_500DPS:
*gyro_sensitivity = 65.5;
break;
case GYRO_FS_1000DPS:
*gyro_sensitivity = 32.8;
break;
case GYRO_FS_2000DPS:
*gyro_sensitivity = 16.4;
break;
default:
break;
}
return ret;
}
esp_err_t mpu6050_get_raw_acce(mpu6050_raw_acce_value_t *raw_acce_value)
{
uint8_t data_rd[6] = {0};
esp_err_t ret = mpu6050_read_bytes(MPU6050_ACCEL_XOUT_H, 6, data_rd);
raw_acce_value->raw_acce_x = (int16_t)((data_rd[0] << 8) + (data_rd[1]));
raw_acce_value->raw_acce_y = (int16_t)((data_rd[2] << 8) + (data_rd[3]));
raw_acce_value->raw_acce_z = (int16_t)((data_rd[4] << 8) + (data_rd[5]));
return ret;
}
esp_err_t mpu6050_get_raw_gyro(mpu6050_raw_gyro_value_t *raw_gyro_value)
{
uint8_t data_rd[6] = {0};
esp_err_t ret = mpu6050_read_bytes(MPU6050_GYRO_XOUT_H, 6, data_rd);
raw_gyro_value->raw_gyro_x = (int16_t)((data_rd[0] << 8) + (data_rd[1]));
raw_gyro_value->raw_gyro_y = (int16_t)((data_rd[2] << 8) + (data_rd[3]));
raw_gyro_value->raw_gyro_z = (int16_t)((data_rd[4] << 8) + (data_rd[5]));
return ret;
}
esp_err_t mpu6050_get_acce(mpu6050_acce_value_t *acce_value)
{
esp_err_t ret;
float acce_sensitivity;
mpu6050_raw_acce_value_t raw_acce;
ret = mpu6050_get_acce_sensitivity(&acce_sensitivity);
if (ret != ESP_OK) {
return ret;
}
ret = mpu6050_get_raw_acce(&raw_acce);
if (ret != ESP_OK) {
return ret;
}
acce_value->acce_x = raw_acce.raw_acce_x / acce_sensitivity;
acce_value->acce_y = raw_acce.raw_acce_y / acce_sensitivity;
acce_value->acce_z = raw_acce.raw_acce_z / acce_sensitivity;
return ESP_OK;
}
esp_err_t mpu6050_get_gyro(mpu6050_gyro_value_t *gyro_value)
{
esp_err_t ret;
float gyro_sensitivity;
mpu6050_raw_gyro_value_t raw_gyro;
ret = mpu6050_get_gyro_sensitivity(&gyro_sensitivity);
if (ret != ESP_OK) {
return ret;
}
ret = mpu6050_get_raw_gyro(&raw_gyro);
if (ret != ESP_OK) {
return ret;
}
gyro_value->gyro_x = raw_gyro.raw_gyro_x / gyro_sensitivity;
gyro_value->gyro_y = raw_gyro.raw_gyro_y / gyro_sensitivity;
gyro_value->gyro_z = raw_gyro.raw_gyro_z / gyro_sensitivity;
return ESP_OK;
}
esp_err_t imu_mpu6050_acquire_gyro(float *gyro_x, float *gyro_y, float *gyro_z)
{
mpu6050_gyro_value_t gyro = {0, 0, 0};
if (gyro_x != NULL && gyro_y != NULL && gyro_z != NULL) {
if (ESP_OK == mpu6050_get_gyro(&gyro)) {
*gyro_x = gyro.gyro_x;
*gyro_y = gyro.gyro_y;
*gyro_z = gyro.gyro_z;
return ESP_OK;
}
}
*gyro_x = 0;
*gyro_y = 0;
*gyro_z = 0;
return ESP_FAIL;
}
esp_err_t imu_mpu6050_acquire_acce(float *acce_x, float *acce_y, float *acce_z)
{
mpu6050_acce_value_t acce = {0, 0, 0};
if (acce_x != NULL && acce_y != NULL && acce_z != NULL) {
if (ESP_OK == mpu6050_get_acce(&acce)) {
*acce_x = acce.acce_x;
*acce_y = acce.acce_y;
*acce_z = acce.acce_z;
return ESP_OK;
}
}
*acce_x = 0;
*acce_y = 0;
*acce_z = 0;
return ESP_FAIL;
}
@@ -1,278 +0,0 @@
/**
* @file vl53l0x.c
* @brief
* @version 0.1
* @date 2021-08-04
*
* @copyright Copyright (c) 2021
*
*/
#include "vl53l0x.h"
static i2s_bus_device_handle_t vl53l0x_handle;
static esp_err_t vl53l0x_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(bh1750_handle, reg_addr, data);
}
static esp_err_t vl53l0x_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(bh1750_handle, reg_addr, data);
}
static esp_err_t vl53l0x_probe(void)
{
//
}
esp_err_t vl53l0x_init(void)
{
if (NULL != vl53l0x_handle) {
return ESP_FAIL;
}
bsp_i2c_add_device(&bh1750_handle, BH1750_I2C_ADDRESS_DEFAULT);
if (NULL == vl53l0x_handle) {
return ESP_FAIL;
}
return ESP_OK;
}
/* Linux Kernal Driver Strat Here */
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/iio/iio.h>
#define VL_REG_SYSRANGE_START 0x00
#define VL_REG_SYSRANGE_MODE_MASK GENMASK(3, 0)
#define VL_REG_SYSRANGE_MODE_SINGLESHOT 0x00
#define VL_REG_SYSRANGE_MODE_START_STOP BIT(0)
#define VL_REG_SYSRANGE_MODE_BACKTOBACK BIT(1)
#define VL_REG_SYSRANGE_MODE_TIMED BIT(2)
#define VL_REG_SYSRANGE_MODE_HISTOGRAM BIT(3)
#define VL_REG_SYSTEM_INTERRUPT_CONFIG_GPIO 0x0A
#define VL_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY BIT(2)
#define VL_REG_SYSTEM_INTERRUPT_CLEAR 0x0B
#define VL_REG_RESULT_INT_STATUS 0x13
#define VL_REG_RESULT_RANGE_STATUS 0x14
#define VL_REG_RESULT_RANGE_STATUS_COMPLETE BIT(0)
struct vl53l0x_data {
struct i2c_client *client;
struct completion completion;
};
static irqreturn_t vl53l0x_handle_irq(int irq, void *priv)
{
struct iio_dev *indio_dev = priv;
struct vl53l0x_data *data = iio_priv(indio_dev);
complete(&data->completion);
return IRQ_HANDLED;
}
static int vl53l0x_configure_irq(struct i2c_client *client,
struct iio_dev *indio_dev)
{
struct vl53l0x_data *data = iio_priv(indio_dev);
int ret;
ret = devm_request_irq(&client->dev, client->irq, vl53l0x_handle_irq,
IRQF_TRIGGER_FALLING, indio_dev->name, indio_dev);
if (ret) {
dev_err(&client->dev, "devm_request_irq error: %d\n", ret);
return ret;
}
ret = i2c_smbus_write_byte_data(data->client,
VL_REG_SYSTEM_INTERRUPT_CONFIG_GPIO,
VL_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY);
if (ret < 0)
dev_err(&client->dev, "failed to configure IRQ: %d\n", ret);
return ret;
}
static void vl53l0x_clear_irq(struct vl53l0x_data *data)
{
struct device *dev = &data->client->dev;
int ret;
ret = i2c_smbus_write_byte_data(data->client,
VL_REG_SYSTEM_INTERRUPT_CLEAR, 1);
if (ret < 0)
dev_err(dev, "failed to clear error irq: %d\n", ret);
ret = i2c_smbus_write_byte_data(data->client,
VL_REG_SYSTEM_INTERRUPT_CLEAR, 0);
if (ret < 0)
dev_err(dev, "failed to clear range irq: %d\n", ret);
ret = i2c_smbus_read_byte_data(data->client, VL_REG_RESULT_INT_STATUS);
if (ret < 0 || ret & 0x07)
dev_err(dev, "failed to clear irq: %d\n", ret);
}
static int vl53l0x_read_proximity(struct vl53l0x_data *data,
const struct iio_chan_spec *chan,
int *val)
{
struct i2c_client *client = data->client;
u16 tries = 20;
u8 buffer[12];
int ret;
ret = i2c_smbus_write_byte_data(client, VL_REG_SYSRANGE_START, 1);
if (ret < 0)
return ret;
if (data->client->irq) {
reinit_completion(&data->completion);
ret = wait_for_completion_timeout(&data->completion, HZ/10);
if (ret < 0)
return ret;
else if (ret == 0)
return -ETIMEDOUT;
vl53l0x_clear_irq(data);
} else {
do {
ret = i2c_smbus_read_byte_data(client,
VL_REG_RESULT_RANGE_STATUS);
if (ret < 0)
return ret;
if (ret & VL_REG_RESULT_RANGE_STATUS_COMPLETE)
break;
usleep_range(1000, 5000);
} while (--tries);
if (!tries)
return -ETIMEDOUT;
}
ret = i2c_smbus_read_i2c_block_data(client, VL_REG_RESULT_RANGE_STATUS,
12, buffer);
if (ret < 0)
return ret;
else if (ret != 12)
return -EREMOTEIO;
/* Values should be between 30~1200 in millimeters. */
*val = (buffer[10] << 8) + buffer[11];
return 0;
}
static const struct iio_chan_spec vl53l0x_channels[] = {
{
.type = IIO_DISTANCE,
.info_mask_separate = BIT(IIO_CHAN_INFO_RAW) |
BIT(IIO_CHAN_INFO_SCALE),
},
};
static int vl53l0x_read_raw(struct iio_dev *indio_dev,
const struct iio_chan_spec *chan,
int *val, int *val2, long mask)
{
struct vl53l0x_data *data = iio_priv(indio_dev);
int ret;
if (chan->type != IIO_DISTANCE)
return -EINVAL;
switch (mask) {
case IIO_CHAN_INFO_RAW:
ret = vl53l0x_read_proximity(data, chan, val);
if (ret < 0)
return ret;
return IIO_VAL_INT;
case IIO_CHAN_INFO_SCALE:
*val = 0;
*val2 = 1000;
return IIO_VAL_INT_PLUS_MICRO;
default:
return -EINVAL;
}
}
static const struct iio_info vl53l0x_info = {
.read_raw = vl53l0x_read_raw,
};
static int vl53l0x_probe(struct i2c_client *client)
{
struct vl53l0x_data *data;
struct iio_dev *indio_dev;
indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
if (!indio_dev)
return -ENOMEM;
data = iio_priv(indio_dev);
data->client = client;
i2c_set_clientdata(client, indio_dev);
if (!i2c_check_functionality(client->adapter,
I2C_FUNC_SMBUS_READ_I2C_BLOCK |
I2C_FUNC_SMBUS_BYTE_DATA))
return -EOPNOTSUPP;
indio_dev->name = "vl53l0x";
indio_dev->info = &vl53l0x_info;
indio_dev->channels = vl53l0x_channels;
indio_dev->num_channels = ARRAY_SIZE(vl53l0x_channels);
indio_dev->modes = INDIO_DIRECT_MODE;
/* usage of interrupt is optional */
if (client->irq) {
int ret;
init_completion(&data->completion);
ret = vl53l0x_configure_irq(client, indio_dev);
if (ret)
return ret;
}
return devm_iio_device_register(&client->dev, indio_dev);
}
static const struct i2c_device_id vl53l0x_id[] = {
{ "vl53l0x", 0},
{ }
};
MODULE_DEVICE_TABLE(i2c, vl53l0x_id);
static const struct of_device_id st_vl53l0x_dt_match[] = {
{ .compatible = "st,vl53l0x", },
{ }
};
MODULE_DEVICE_TABLE(of, st_vl53l0x_dt_match);
static struct i2c_driver vl53l0x_driver = {
.driver = {
.name = "vl53l0x-i2c",
.of_match_table = st_vl53l0x_dt_match,
},
.probe_new = vl53l0x_probe,
.id_table = vl53l0x_id,
};
+10 -7
View File
@@ -83,17 +83,17 @@
static i2c_bus_device_handle_t ft5x06_handle = NULL;
static esp_err_t ft5x06_read_byte(uint8_t reg_addr, uint8_t *data)
static inline esp_err_t ft5x06_read_byte(uint8_t reg_addr, uint8_t *data)
{
return i2c_bus_read_byte(ft5x06_handle, reg_addr, data);
}
static esp_err_t ft5x06_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
static inline esp_err_t ft5x06_read_bytes(uint8_t reg_addr, size_t data_len, uint8_t *data)
{
return i2c_bus_read_bytes(ft5x06_handle, reg_addr, data_len, data);
}
static esp_err_t ft5x06_write_byte(uint8_t reg_addr, uint8_t data)
static inline esp_err_t ft5x06_write_byte(uint8_t reg_addr, uint8_t data)
{
return i2c_bus_write_byte(ft5x06_handle, reg_addr, data);
}
@@ -101,7 +101,7 @@ static esp_err_t ft5x06_write_byte(uint8_t reg_addr, uint8_t data)
esp_err_t ft5x06_init(void)
{
if (NULL != ft5x06_handle) {
return ESP_FAIL;
return ESP_ERR_INVALID_STATE;
}
bsp_i2c_add_device(&ft5x06_handle, FT5x06_ADDR);
@@ -110,6 +110,8 @@ esp_err_t ft5x06_init(void)
return ESP_FAIL;
}
esp_err_t ret_val = ESP_OK;
// Valid touching detect threshold
i2c_bus_write_byte(ft5x06_handle, FT5x06_ID_G_THGROUP, 70);
@@ -147,19 +149,20 @@ static esp_err_t ft5x06_get_touch_points_num(uint8_t *touch_points_num)
esp_err_t ft5x06_read_pos(uint8_t *touch_points_num, uint16_t *x, uint16_t *y)
{
esp_err_t ret_val = ESP_OK;
static uint8_t data[4];
ft5x06_get_touch_points_num(touch_points_num);
ret_val |= ft5x06_get_touch_points_num(touch_points_num);
if (0 == *touch_points_num) {
} else {
ft5x06_read_bytes(FT5x06_TOUCH1_XH, 4, data);
ret_val |= ft5x06_read_bytes(FT5x06_TOUCH1_XH, 4, data);
*x = ((data[0] & 0x0f) << 8) + data[1];
*y = ((data[2] & 0x0f) << 8) + data[3];
}
return ESP_OK;
return ret_val;
}
esp_err_t fx5x06_read_gesture(ft5x06_gesture_t *gesture)
-186
View File
@@ -1,186 +0,0 @@
/**
* @file goodix.c
* @brief
* @version 0.1
* @date 2021-08-25
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bsp_i2c.h"
#include "driver/i2c.h"
#include "i2c_bus.h"
#include "esp_err.h"
#include "esp_log.h"
#include "freertos/task.h"
#include "goodix.h"
#define GOODIX_CHIP_ADDR_DEFAULT 0x14
/*!< WRITE ONLY REGISTER(S) */
#define GOODIX_REG_COMMAND 0x8040
#define GOODIX_REG_ESD_CHECK 0x8041
#define GOODIX_REG_PROXIMITY_EN 0x8042
#define GOODIX_REG_COMMAND_CHECK 0x8046
/*!< WRITEABLE/READABLE REGISTER(S) */
#define GOODIX_REG_CONFIG_VERSION 0x8047
#define GOODIX_REG_X_OUTPUT_MAX_L 0x8048
#define GOODIX_REG_X_OUTPUT_MAX_H 0x8049
#define GOODIX_REG_Y_OUTPUT_MAX_L 0x804A
#define GOODIX_REG_Y_OUTPUT_MAX_H 0x804B
#define GOODIX_REG_TOUCH_NUMBER 0x804C
#define GOODIX_REG_MODULE_SWITCH_1 0x804D
#define GOODIX_REG_MODULE_SWITCH_2 0x804E
#define GOODIX_REG_SHAKE_COUNT 0x804F
#define GOODIX_REG_GESTURE_SWITCH_1 0x8059
#define GOODIX_REG_GESTURE_SWITCH_2 0x805A
/*!< READ ONLY REGISTER(S) */
#define GOODIX_REG_PRODUCT_ID_1 0x8140
#define GOODIX_REG_PRODUCT_ID_2 0x8141
#define GOODIX_REG_PRODUCT_ID_3 0x8142
#define GOODIX_REG_PRODUCT_ID_4 0x8143
#define GOODIX_REG_FIRMWARE_VERSION_L 0x8144
#define GOODIX_REG_FIRMWARE_VERSION_H 0x8145
#define GOODIX_REG_X_RESOLUTION_L 0x8146
#define GOODIX_REG_X_RESOLUTION_H 0x8147
#define GOODIX_REG_Y_RESOLUTION_L 0x8148
#define GOODIX_REG_Y_RESOLUTION_H 0x8149
#define GOODIX_REG_VERNDOR_ID 0x814A
/* TOUCH STETE REGISTER(S) */
#define GOODIX_REG_TP_NUMBER 0x814E
#define GOODIX_REG_TP_NUMBER_MASK 0x07
#define GOODIX_REG_TP1_X_COOR_L 0x8158
#define GOODIX_REG_TP1_X_COOR_H 0x8159
#define GOODIX_REG_TP1_Y_COOR_L 0x815A
#define GOODIX_REG_TP1_Y_COOR_H 0x815B
#define GOODIX_REG_TP1_SIZE_L 0x815C
#define GOODIX_REG_TP1_SIZE_H 0x815D
#define GOODIX_REG_TP1_START 0x8158
#define GOODIX_REG_TP2_START 0x8160
#define GOODIX_REG_TP3_START 0x8168
#define GOODIX_REG_TP4_START 0x8178
#define GOODIX_REG_TP5_START 0x8178
#define GOODIX_REG_KEY_VALUE 0x817F
typedef struct {
uint16_t x;
uint16_t y;
uint16_t size;
} goodix_tp_reg_t;
static const char *TAG = "goodix";
static i2c_bus_device_handle_t goodix_handle = NULL;
static esp_err_t goodix_read(uint16_t reg_addr, uint8_t *data, size_t data_len)
{
esp_err_t ret_val = ESP_OK;
ret_val |= i2c_bus_read_reg16(goodix_handle, reg_addr, data_len, data);
return ret_val;
}
static esp_err_t goodix_write(uint16_t reg_addr, uint8_t *data, size_t data_len)
{
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (GOODIX_CHIP_ADDR_DEFAULT << 1) | I2C_MASTER_WRITE, I2C_ACK_CHECK_EN);
i2c_master_write_byte(cmd, reg_addr >> 8, I2C_ACK_CHECK_EN);
i2c_master_write_byte(cmd, reg_addr, I2C_ACK_CHECK_EN);
i2c_master_read(cmd, data, data_len, I2C_MASTER_ACK);
i2c_master_stop(cmd);
esp_err_t ret_val = i2c_bus_cmd_begin(goodix_handle, cmd);
i2c_cmd_link_delete(cmd);
return ret_val;
}
static esp_err_t goodix_chip_prob(void)
{
uint16_t x_res = 0, y_res = 0;
uint8_t id_str[5];
id_str[4] = '\0';
uint8_t cmd[2] = { 2, 0};
esp_err_t ret_val = ESP_OK;
ret_val |= goodix_read(GOODIX_REG_PRODUCT_ID_1, id_str, 4);
ret_val |= goodix_read(GOODIX_REG_X_OUTPUT_MAX_L, &x_res, 2);
ret_val |= goodix_read(GOODIX_REG_Y_OUTPUT_MAX_L, &y_res, 2);
ESP_LOGI(TAG, "Goodix device detected : %s. Resolution : %04X * %04X", id_str, x_res, y_res);
return ret_val;
}
esp_err_t goodix_tp_init(void)
{
if (NULL != goodix_handle) {
return ESP_FAIL;
}
esp_err_t ret_val = ESP_OK;
ret_val |= bsp_i2c_add_device(&goodix_handle, GOODIX_CHIP_ADDR_DEFAULT);
if (NULL == goodix_handle) {
return ESP_FAIL;
}
ret_val |= goodix_chip_prob();
return ESP_OK;
}
esp_err_t goodix_tp_read(uint8_t *tp_num, uint16_t *x, uint16_t *y)
{
uint8_t tp_num_reg;
goodix_tp_reg_t reg;
esp_err_t ret_val = ESP_OK;
ret_val |= goodix_read(GOODIX_REG_TP_NUMBER, &tp_num_reg, 1);
ret_val |= goodix_read(GOODIX_REG_TP1_X_COOR_L, &reg, sizeof(goodix_tp_reg_t));
*tp_num = tp_num_reg & 0b111;
*x = (reg.x >> 8) + (reg.x << 8);
*y = (reg.y >> 8) + (reg.y << 8);
return ret_val;
}
esp_err_t goodix_tp_read_gesture(goodix_tp_gesture_t *gesture)
{
esp_err_t ret_val = ESP_OK;
uint16_t gesture_reg;
ret_val |= goodix_read(GOODIX_REG_GESTURE_SWITCH_1, &gesture_reg, 2);
*gesture = (goodix_tp_gesture_t) gesture_reg;
return ret_val;
}
+16 -4
View File
@@ -4,8 +4,19 @@
* @version 0.1
* @date 2021-09-06
*
* @copyright Copyright (c) 2021
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "bsp_i2c.h"
@@ -26,7 +37,8 @@ static i2c_bus_device_handle_t tt21100_handle = NULL;
static esp_err_t tt21100_read(uint8_t *data, size_t data_len)
{
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
static uint8_t cmd_buffer[I2C_LINK_RECOMMENDED_SIZE(4)];
i2c_cmd_handle_t cmd = i2c_cmd_link_create_static(cmd_buffer, I2C_LINK_RECOMMENDED_SIZE(4));
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (TT21100_CHIP_ADDR_DEFAULT << 1) | I2C_MASTER_READ, I2C_ACK_CHECK_EN);
@@ -34,7 +46,7 @@ static esp_err_t tt21100_read(uint8_t *data, size_t data_len)
i2c_master_stop(cmd);
esp_err_t ret_val = i2c_bus_cmd_begin(tt21100_handle, cmd);
i2c_cmd_link_delete(cmd);
i2c_cmd_link_delete_static(cmd);
return ret_val;
}
+5 -3
View File
@@ -26,6 +26,7 @@ file(GLOB_RECURSE LV_LIB_SOURCES
lv_lib/lv_lib_png/*.c
lv_lib/lv_lib_bmp/*.c
lv_lib/lv_lib_gif/*.c
lv_lib/lv_lib_qrcode/*.c
lv_lib/lv_lib_split_jpg/tjpgd.c
lv_lib/lv_lib_split_jpg/lv_sjpg.c)
@@ -50,10 +51,11 @@ idf_component_register(
"lv_demos"
"lv_lib"
"lv_lib/lv_lib_bmp"
"lv_lib/lv_lib_png"
"lv_lib/lv_lib_gif"
"lv_lib/lv_lib_split_jpg"
"lv_lib/lv_lib_freetype"
"lv_lib/lv_lib_gif"
"lv_lib/lv_lib_png"
"lv_lib/lv_lib_qrcode"
"lv_lib/lv_lib_split_jpg"
"lv_port"
REQUIRES
bsp
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2019 LittlevGL
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@@ -0,0 +1,26 @@
# QR code library for LVGL
**This repository is merged into the lvgl repository. See https://docs.lvgl.io/master/libs/qrcode.html**
QR code generation with LVGL. Uses [QR-Code-generator](https://github.com/nayuki/QR-Code-generator) by [nayuki](https://github.com/nayuki).
## Get started
- Download or clone this repository
- [Download](https://github.com/littlevgl/lv_lib_qrcode.git) from GitHub
- Clone: git clone https://github.com/littlevgl/lv_lib_qrcode.git
- Include the library: `#include "lv_lib_qrcode/lv_qrcode.h"`
- Test with the following code:
```c
const char * data = "Hello world";
/*Create a 100x100 QR code*/
lv_obj_t * qr = lv_qrcode_create(lv_scr_act(), 100, lv_color_hex3(0x33f), lv_color_hex3(0xeef));
/*Set data*/
lv_qrcode_update(qr, data, strlen(data));
```
## Notes
- QR codes with less data are smaller but they scaled by an integer numbers number to best fit to the given size
@@ -0,0 +1,176 @@
/**
* @file lv_qrcode.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_qrcode.h"
#include "qrcodegen.h"
/*********************
* DEFINES
*********************/
#define QR_SIZE 140
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create an empty QR code (an `lv_canvas`) object.
* @param parent point to an object where to create the QR code
* @param size width and height of the QR code
* @param dark_color dark color of the QR code
* @param light_color light color of the QR code
* @return pointer to the created QR code object
*/
lv_obj_t * lv_qrcode_create(lv_obj_t * parent, lv_coord_t size, lv_color_t dark_color, lv_color_t light_color)
{
uint32_t buf_size = LV_CANVAS_BUF_SIZE_INDEXED_1BIT(size, size);
uint8_t * buf = lv_mem_alloc(buf_size);
LV_ASSERT_MALLOC(buf);
if(buf == NULL) return NULL;
lv_obj_t * canvas = lv_canvas_create(parent);
if(canvas == NULL) return NULL;
lv_canvas_set_buffer(canvas, buf, size, size, LV_IMG_CF_INDEXED_1BIT);
lv_canvas_set_palette(canvas, 0, dark_color);
lv_canvas_set_palette(canvas, 1, light_color);
return canvas;
}
/**
* Set the data of a QR code object
* @param qrcode pointer to aQ code object
* @param data data to display
* @param data_len length of data in bytes
* @return LV_RES_OK: if no error; LV_RES_INV: on error
*/
lv_res_t lv_qrcode_update(lv_obj_t * qrcode, const void * data, uint32_t data_len)
{
lv_color_t c;
c.full = 1;
lv_canvas_fill_bg(qrcode, c, LV_OPA_COVER);
if(data_len > qrcodegen_BUFFER_LEN_MAX) return LV_RES_INV;
// uint8_t qr0[qrcodegen_BUFFER_LEN_MAX];
// uint8_t data_tmp[qrcodegen_BUFFER_LEN_MAX];
/* Use lv_mem_alloc instead of using stack */
uint8_t * qr0 = lv_mem_alloc(qrcodegen_BUFFER_LEN_MAX);
LV_ASSERT_MALLOC(qr0);
uint8_t * data_tmp = lv_mem_alloc(qrcodegen_BUFFER_LEN_MAX);
LV_ASSERT_MALLOC(data_tmp);
memcpy(data_tmp, data, data_len);
bool ok = qrcodegen_encodeBinary(data_tmp, data_len,
qr0, qrcodegen_Ecc_MEDIUM,
qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX,
qrcodegen_Mask_AUTO, true);
if (!ok) {
lv_mem_free(qr0);
lv_mem_free(data_tmp);
return LV_RES_INV;
}
lv_img_dsc_t * imgdsc = lv_canvas_get_img(qrcode);
lv_coord_t obj_w = imgdsc->header.w;
int qr_size = qrcodegen_getSize(qr0);
int scale = obj_w / qr_size;
int scaled = qr_size * scale;
int margin = (obj_w - scaled) / 2;
uint8_t * buf_u8 = (uint8_t *)imgdsc->data + 8; /*+8 skip the palette*/
/* Copy the qr code canvas:
* A simple `lv_canvas_set_px` would work but it's slow for so many pixels.
* So buffer 1 byte (8 px) from the qr code and set it in the canvas image */
uint32_t row_byte_cnt = (imgdsc->header.w + 7) >> 3;
int y;
for (y = margin; y < scaled + margin; y+=scale) {
uint8_t b = 0;
uint8_t p = 0;
bool aligned = false;
int x;
for (x = margin; x < scaled + margin; x++) {
bool a = qrcodegen_getModule(qr0, (x - margin) / scale, (y - margin) / scale);
if(aligned == false && (x & 0x7) == 0) aligned = true;
if(aligned == false) {
c.full = a ? 0 : 1;
lv_canvas_set_px(qrcode, x, y, c);
} else {
if(!a) b |= (1 << (7 - p));
p++;
if(p == 8) {
uint32_t px = row_byte_cnt * y + (x >> 3);
buf_u8[px] = b;
b = 0;
p = 0;
}
}
}
/*Process the last byte of the row*/
if(p) {
/*Make the rest of the bits white*/
b |= (1 << (8 - p)) - 1;
uint32_t px = row_byte_cnt * y + (x >> 3);
buf_u8[px] = b;
}
/*The Qr is probably scaled so simply to the repeated rows*/
int s;
const uint8_t * row_ori = buf_u8 + row_byte_cnt * y;
for(s = 1; s < scale; s++) {
memcpy((uint8_t*)buf_u8 + row_byte_cnt * (y + s), row_ori, row_byte_cnt);
}
}
lv_mem_free(qr0);
lv_mem_free(data_tmp);
return LV_RES_OK;
}
/**
* Delete a QR code object
* @param qrcode pointer to a QR code obejct
*/
void lv_qrcode_delete(lv_obj_t * qrcode)
{
lv_img_dsc_t * img = lv_canvas_get_img(qrcode);
lv_img_cache_invalidate_src(img);
lv_mem_free(img->data);
lv_obj_del(qrcode);
}
/**********************
* STATIC FUNCTIONS
**********************/
@@ -0,0 +1,67 @@
/**
* @file lv_qrcode
*
*/
#ifndef LV_QRCODE_H
#define LV_QRCODE_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create an empty QR code (an `lv_canvas`) object.
* @param parent point to an object where to create the QR code
* @param size width and height of the QR code
* @param dark_color dark color of the QR code
* @param light_color light color of the QR code
* @return pointer to the created QR code object
*/
lv_obj_t * lv_qrcode_create(lv_obj_t * parent, lv_coord_t size, lv_color_t dark_color, lv_color_t light_color);
/**
* Set the data of a QR code object
* @param qrcode pointer to aQ code object
* @param data data to display
* @param data_len length of data in bytes
* @return LV_RES_OK: if no error; LV_RES_INV: on error
*/
lv_res_t lv_qrcode_update(lv_obj_t * qrcode, const void * data, uint32_t data_len);
/**
* Delete a QR code object
* @param qrcode pointer to a QR code object
*/
void lv_qrcode_delete(lv_obj_t * qrcode);
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_QRCODE_H*/
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,311 @@
/*
* QR Code generator library (C)
*
* Copyright (c) Project Nayuki. (MIT License)
* https://www.nayuki.io/page/qr-code-generator-library
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
* - The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* - The Software is provided "as is", without warranty of any kind, express or
* implied, including but not limited to the warranties of merchantability,
* fitness for a particular purpose and noninfringement. In no event shall the
* authors or copyright holders be liable for any claim, damages or other
* liability, whether in an action of contract, tort or otherwise, arising from,
* out of or in connection with the Software or the use or other dealings in the
* Software.
*/
#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* This library creates QR Code symbols, which is a type of two-dimension barcode.
* Invented by Denso Wave and described in the ISO/IEC 18004 standard.
* A QR Code structure is an immutable square grid of black and white cells.
* The library provides functions to create a QR Code from text or binary data.
* The library covers the QR Code Model 2 specification, supporting all versions (sizes)
* from 1 to 40, all 4 error correction levels, and 4 character encoding modes.
*
* Ways to create a QR Code object:
* - High level: Take the payload data and call qrcodegen_encodeText() or qrcodegen_encodeBinary().
* - Low level: Custom-make the list of segments and call
* qrcodegen_encodeSegments() or qrcodegen_encodeSegmentsAdvanced().
* (Note that all ways require supplying the desired error correction level and various byte buffers.)
*/
/*---- Enum and struct types----*/
/*
* The error correction level in a QR Code symbol.
*/
enum qrcodegen_Ecc {
// Must be declared in ascending order of error protection
// so that an internal qrcodegen function works properly
qrcodegen_Ecc_LOW = 0 , // The QR Code can tolerate about 7% erroneous codewords
qrcodegen_Ecc_MEDIUM , // The QR Code can tolerate about 15% erroneous codewords
qrcodegen_Ecc_QUARTILE, // The QR Code can tolerate about 25% erroneous codewords
qrcodegen_Ecc_HIGH , // The QR Code can tolerate about 30% erroneous codewords
};
/*
* The mask pattern used in a QR Code symbol.
*/
enum qrcodegen_Mask {
// A special value to tell the QR Code encoder to
// automatically select an appropriate mask pattern
qrcodegen_Mask_AUTO = -1,
// The eight actual mask patterns
qrcodegen_Mask_0 = 0,
qrcodegen_Mask_1,
qrcodegen_Mask_2,
qrcodegen_Mask_3,
qrcodegen_Mask_4,
qrcodegen_Mask_5,
qrcodegen_Mask_6,
qrcodegen_Mask_7,
};
/*
* Describes how a segment's data bits are interpreted.
*/
enum qrcodegen_Mode {
qrcodegen_Mode_NUMERIC = 0x1,
qrcodegen_Mode_ALPHANUMERIC = 0x2,
qrcodegen_Mode_BYTE = 0x4,
qrcodegen_Mode_KANJI = 0x8,
qrcodegen_Mode_ECI = 0x7,
};
/*
* A segment of character/binary/control data in a QR Code symbol.
* The mid-level way to create a segment is to take the payload data
* and call a factory function such as qrcodegen_makeNumeric().
* The low-level way to create a segment is to custom-make the bit buffer
* and initialize a qrcodegen_Segment struct with appropriate values.
* Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.
* Any segment longer than this is meaningless for the purpose of generating QR Codes.
* Moreover, the maximum allowed bit length is 32767 because
* the largest QR Code (version 40) has 31329 modules.
*/
struct qrcodegen_Segment {
// The mode indicator of this segment.
enum qrcodegen_Mode mode;
// The length of this segment's unencoded data. Measured in characters for
// numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.
// Always zero or positive. Not the same as the data's bit length.
int numChars;
// The data bits of this segment, packed in bitwise big endian.
// Can be null if the bit length is zero.
uint8_t *data;
// The number of valid data bits used in the buffer. Requires
// 0 <= bitLength <= 32767, and bitLength <= (capacity of data array) * 8.
// The character count (numChars) must agree with the mode and the bit buffer length.
int bitLength;
};
/*---- Macro constants and functions ----*/
#define qrcodegen_VERSION_MIN 1 // The minimum version number supported in the QR Code Model 2 standard
#define qrcodegen_VERSION_MAX 40 // The maximum version number supported in the QR Code Model 2 standard
// Calculates the number of bytes needed to store any QR Code up to and including the given version number,
// as a compile-time constant. For example, 'uint8_t buffer[qrcodegen_BUFFER_LEN_FOR_VERSION(25)];'
// can store any single QR Code from version 1 to 25 (inclusive). The result fits in an int (or int16).
// Requires qrcodegen_VERSION_MIN <= n <= qrcodegen_VERSION_MAX.
#define qrcodegen_BUFFER_LEN_FOR_VERSION(n) ((((n) * 4 + 17) * ((n) * 4 + 17) + 7) / 8 + 1)
// The worst-case number of bytes needed to store one QR Code, up to and including
// version 40. This value equals 3918, which is just under 4 kilobytes.
// Use this more convenient value to avoid calculating tighter memory bounds for buffers.
#define qrcodegen_BUFFER_LEN_MAX qrcodegen_BUFFER_LEN_FOR_VERSION(qrcodegen_VERSION_MAX)
/*---- Functions (high level) to generate QR Codes ----*/
/*
* Encodes the given text string to a QR Code, returning true if encoding succeeded.
* If the data is too long to fit in any version in the given range
* at the given ECC level, then false is returned.
* - The input text must be encoded in UTF-8 and contain no NULs.
* - The variables ecl and mask must correspond to enum constant values.
* - Requires 1 <= minVersion <= maxVersion <= 40.
* - The arrays tempBuffer and qrcode must each have a length
* of at least qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion).
* - After the function returns, tempBuffer contains no useful data.
* - If successful, the resulting QR Code may use numeric,
* alphanumeric, or byte mode to encode the text.
* - In the most optimistic case, a QR Code at version 40 with low ECC
* can hold any UTF-8 string up to 2953 bytes, or any alphanumeric string
* up to 4296 characters, or any digit string up to 7089 characters.
* These numbers represent the hard upper limit of the QR Code standard.
* - Please consult the QR Code specification for information on
* data capacities per version, ECC level, and text encoding mode.
*/
bool qrcodegen_encodeText(const char *text, uint8_t tempBuffer[], uint8_t qrcode[],
enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
/*
* Encodes the given binary data to a QR Code, returning true if encoding succeeded.
* If the data is too long to fit in any version in the given range
* at the given ECC level, then false is returned.
* - The input array range dataAndTemp[0 : dataLen] should normally be
* valid UTF-8 text, but is not required by the QR Code standard.
* - The variables ecl and mask must correspond to enum constant values.
* - Requires 1 <= minVersion <= maxVersion <= 40.
* - The arrays dataAndTemp and qrcode must each have a length
* of at least qrcodegen_BUFFER_LEN_FOR_VERSION(maxVersion).
* - After the function returns, the contents of dataAndTemp may have changed,
* and does not represent useful data anymore.
* - If successful, the resulting QR Code will use byte mode to encode the data.
* - In the most optimistic case, a QR Code at version 40 with low ECC can hold any byte
* sequence up to length 2953. This is the hard upper limit of the QR Code standard.
* - Please consult the QR Code specification for information on
* data capacities per version, ECC level, and text encoding mode.
*/
bool qrcodegen_encodeBinary(uint8_t dataAndTemp[], size_t dataLen, uint8_t qrcode[],
enum qrcodegen_Ecc ecl, int minVersion, int maxVersion, enum qrcodegen_Mask mask, bool boostEcl);
/*---- Functions (low level) to generate QR Codes ----*/
/*
* Renders a QR Code representing the given segments at the given error correction level.
* The smallest possible QR Code version is automatically chosen for the output. Returns true if
* QR Code creation succeeded, or false if the data is too long to fit in any version. The ECC level
* of the result may be higher than the ecl argument if it can be done without increasing the version.
* This function allows the user to create a custom sequence of segments that switches
* between modes (such as alphanumeric and byte) to encode text in less space.
* This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary().
* To save memory, the segments' data buffers can alias/overlap tempBuffer, and will
* result in them being clobbered, but the QR Code output will still be correct.
* But the qrcode array must not overlap tempBuffer or any segment's data buffer.
*/
bool qrcodegen_encodeSegments(const struct qrcodegen_Segment segs[], size_t len,
enum qrcodegen_Ecc ecl, uint8_t tempBuffer[], uint8_t qrcode[]);
/*
* Renders a QR Code representing the given segments with the given encoding parameters.
* Returns true if QR Code creation succeeded, or false if the data is too long to fit in the range of versions.
* The smallest possible QR Code version within the given range is automatically
* chosen for the output. Iff boostEcl is true, then the ECC level of the result
* may be higher than the ecl argument if it can be done without increasing the
* version. The mask number is either between 0 to 7 (inclusive) to force that
* mask, or -1 to automatically choose an appropriate mask (which may be slow).
* This function allows the user to create a custom sequence of segments that switches
* between modes (such as alphanumeric and byte) to encode text in less space.
* This is a low-level API; the high-level API is qrcodegen_encodeText() and qrcodegen_encodeBinary().
* To save memory, the segments' data buffers can alias/overlap tempBuffer, and will
* result in them being clobbered, but the QR Code output will still be correct.
* But the qrcode array must not overlap tempBuffer or any segment's data buffer.
*/
bool qrcodegen_encodeSegmentsAdvanced(const struct qrcodegen_Segment segs[], size_t len, enum qrcodegen_Ecc ecl,
int minVersion, int maxVersion, int mask, bool boostEcl, uint8_t tempBuffer[], uint8_t qrcode[]);
/*
* Tests whether the given string can be encoded as a segment in alphanumeric mode.
* A string is encodable iff each character is in the following set: 0 to 9, A to Z
* (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.
*/
bool qrcodegen_isAlphanumeric(const char *text);
/*
* Tests whether the given string can be encoded as a segment in numeric mode.
* A string is encodable iff each character is in the range 0 to 9.
*/
bool qrcodegen_isNumeric(const char *text);
/*
* Returns the number of bytes (uint8_t) needed for the data buffer of a segment
* containing the given number of characters using the given mode. Notes:
* - Returns SIZE_MAX on failure, i.e. numChars > INT16_MAX or
* the number of needed bits exceeds INT16_MAX (i.e. 32767).
* - Otherwise, all valid results are in the range [0, ceil(INT16_MAX / 8)], i.e. at most 4096.
* - It is okay for the user to allocate more bytes for the buffer than needed.
* - For byte mode, numChars measures the number of bytes, not Unicode code points.
* - For ECI mode, numChars must be 0, and the worst-case number of bytes is returned.
* An actual ECI segment can have shorter data. For non-ECI modes, the result is exact.
*/
size_t qrcodegen_calcSegmentBufferSize(enum qrcodegen_Mode mode, size_t numChars);
/*
* Returns a segment representing the given binary data encoded in
* byte mode. All input byte arrays are acceptable. Any text string
* can be converted to UTF-8 bytes and encoded as a byte mode segment.
*/
struct qrcodegen_Segment qrcodegen_makeBytes(const uint8_t data[], size_t len, uint8_t buf[]);
/*
* Returns a segment representing the given string of decimal digits encoded in numeric mode.
*/
struct qrcodegen_Segment qrcodegen_makeNumeric(const char *digits, uint8_t buf[]);
/*
* Returns a segment representing the given text string encoded in alphanumeric mode.
* The characters allowed are: 0 to 9, A to Z (uppercase only), space,
* dollar, percent, asterisk, plus, hyphen, period, slash, colon.
*/
struct qrcodegen_Segment qrcodegen_makeAlphanumeric(const char *text, uint8_t buf[]);
/*
* Returns a segment representing an Extended Channel Interpretation
* (ECI) designator with the given assignment value.
*/
struct qrcodegen_Segment qrcodegen_makeEci(long assignVal, uint8_t buf[]);
/*---- Functions to extract raw data from QR Codes ----*/
/*
* Returns the side length of the given QR Code, assuming that encoding succeeded.
* The result is in the range [21, 177]. Note that the length of the array buffer
* is related to the side length - every 'uint8_t qrcode[]' must have length at least
* qrcodegen_BUFFER_LEN_FOR_VERSION(version), which equals ceil(size^2 / 8 + 1).
*/
int qrcodegen_getSize(const uint8_t qrcode[]);
/*
* Returns the color of the module (pixel) at the given coordinates, which is false
* for white or true for black. The top left corner has the coordinates (x=0, y=0).
* If the given coordinates are out of bounds, then false (white) is returned.
*/
bool qrcodegen_getModule(const uint8_t qrcode[], int x, int y);
#ifdef __cplusplus
}
#endif
+16 -22
View File
@@ -112,23 +112,24 @@ static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_colo
*/
static void lv_port_disp_init(void)
{
lv_color_t *p_disp_buf = NULL;
uint32_t buf_alloc_caps = MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT;
size_t disp_buf_width = 320, disp_buf_height = 40;
static lv_disp_draw_buf_t draw_buf_dsc;
size_t disp_buf_height = 40;
/* Allocate memories from heap */
p_disp_buf = heap_caps_malloc(disp_buf_width * disp_buf_height * sizeof(lv_color_t), buf_alloc_caps);
ESP_LOGD(TAG, "Try allocate %zu * %zu display buffer", disp_buf_width, disp_buf_height);
/* Option 1 : Allocate memories from heap */
// lv_color_t *p_disp_buf = NULL;
// uint32_t buf_alloc_caps = MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT;
// p_disp_buf = heap_caps_malloc(LCD_WIDTH * disp_buf_height * sizeof(lv_color_t), buf_alloc_caps);
// ESP_LOGD(TAG, "Try allocate %zu * %zu display buffer", LCD_WIDTH, disp_buf_height);
// if (NULL == p_disp_buf) {
// ESP_LOGE(TAG, "No memory for LVGL display buffer");
// esp_system_abort("Memory allocation failed");
// }
/* Check memory allocation result */
if (NULL == p_disp_buf) {
ESP_LOGE(TAG, "No memory for LVGL display buffer");
esp_system_abort("Memory allocation failed");
}
/* Option 2 : Using static space for display buffer */
static lv_color_t p_disp_buf[LCD_WIDTH * 40];
/* Initialize display buffer */
lv_disp_draw_buf_init(&draw_buf_dsc, p_disp_buf, NULL, disp_buf_width * disp_buf_height); /*Initialize the display buffer*/
lv_disp_draw_buf_init(&draw_buf_dsc, p_disp_buf, NULL, LCD_WIDTH * disp_buf_height);
/* Register the display in LVGL */
lv_disp_drv_init(&disp_drv);
@@ -181,12 +182,13 @@ static esp_err_t lv_port_indev_init(void)
/* Initialize your touchpad if you have */
/*Register a touchpad input device*/
/* Register a touchpad input device */
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = touchpad_read;
indev_touchpad = lv_indev_drv_register(&indev_drv);
/* Uncomment code below to display a mouse cursor on screen */
// LV_IMG_DECLARE(mouse_cursor_icon)
// lv_obj_t * cursor_obj = lv_img_create(lv_scr_act()); /*Create an image object for the cursor */
// lv_img_set_src(cursor_obj, &mouse_cursor_icon); /*Set the image source*/
@@ -200,7 +202,7 @@ static esp_err_t lv_port_indev_init(void)
*/
static esp_err_t lv_port_tick_init(void)
{
static const uint32_t tick_inc_period_ms = 2;
static const uint32_t tick_inc_period_ms = 5;
const esp_timer_create_args_t periodic_timer_args = {
.callback = lv_tick_inc_cb,
.name = "", /* name is optional, but may help identify the timer when debugging */
@@ -235,11 +237,3 @@ esp_err_t lv_port_init(void)
/* Nothing error */
return ESP_OK;
}
esp_err_t lv_port_buf_config(size_t buf_width, size_t buf_height, void *p_buffer)
{
lv_port_use_fixed_buffer = true;
if (NULL != p_buffer) {
//
}
}
+3 -2
View File
@@ -28,9 +28,10 @@ extern "C" {
#endif
/**
* @brief
* @brief Init LVGL GUI library
*
* @return esp_err_t
* @return
* - ESP_OK: Success
*/
esp_err_t lv_port_init(void);
+4 -2
View File
@@ -26,9 +26,11 @@ extern "C" {
#endif
/**
* @brief
* @brief Initialize LVGL file system support
*
* @return esp_err_t
* @return
* - ESP_OK: Success
* - Others: Fail
*/
esp_err_t lv_port_fs_init(void);
+4 -3
View File
@@ -1,10 +1,11 @@
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
set(EXTRA_COMPONENT_DIRS ../../components)
set(EXTRA_COMPONENT_DIRS
$ENV{IDF_PATH}/examples/common_components/protocol_examples_common
$ENV{IDF_PATH}/examples/common_components/led_strip
../../components)
add_compile_options(-fdiagnostics-color=always)
+3 -4
View File
@@ -34,7 +34,7 @@ static void audio_task(void *pvParam);
esp_err_t app_audio_start(void)
{
FILE *fp = fopen("/spiffs/wake.wav", "rb");
FILE *fp = fopen("/spiffs/audio/wake.wav", "rb");
if (NULL == fp) {
ESP_LOGE(TAG, "Audio file does't exist");
return ESP_ERR_NOT_FOUND;
@@ -117,14 +117,13 @@ esp_err_t audio_record_to_file(size_t time_ms, const char *file_name)
}
size_t bytes_read;
ESP_LOGI(TAG, "Record start");
esp_err_t ret_val = i2s_read(I2S_NUM_0, audio_buffer, file_size, &bytes_read, portMAX_DELAY);
ESP_LOGI(TAG, "Record stop");
fwrite(audio_buffer, 1, file_size, fp);
fclose(fp);
ESP_LOGI(TAG, "File saved to %s", file_name);
return ret_val;
}
@@ -0,0 +1,203 @@
/**
* @file app_data_parse.c
* @brief
* @version 0.1
* @date 2021-09-27
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "app_led.h"
#include "cJSON.h"
#include "esp_err.h"
#include "lvgl.h"
static void parse_config(cJSON *root_obj)
{
cJSON *item_obj = NULL;
char cmd_on[32] = "";
char cmd_off[32] = "";
item_obj = cJSON_GetObjectItem(root_obj, "type");
printf("%s : %s\n", item_obj->string, item_obj->valuestring);
item_obj = cJSON_GetObjectItem(root_obj, "node_id");
printf("%s : %d\n", item_obj->string, (int) item_obj->valuedouble);
item_obj = cJSON_GetObjectItem(root_obj, "gpio");
printf("%s : %d\n", item_obj->string, (int) item_obj->valuedouble);
// app_led_pin_config((int) item_obj->valuedouble);
cJSON *param_array = cJSON_GetObjectItem(root_obj, "params");
int param_array_num = cJSON_GetArraySize(param_array);
printf("Array %s has %d object(s)\n",
param_array->string, param_array_num);
for (int i = 0; i < param_array_num; i++) {
cJSON *param_item = cJSON_GetArrayItem(param_array, i);
if ((int) cJSON_GetObjectItem(param_item, "status")->valuedouble) {
printf("Wake word for on : %s (%s)\n",
cJSON_GetObjectItem(param_item, "zh")->valuestring,
cJSON_GetObjectItem(param_item, "voice")->valuestring);
strcpy(cmd_on, cJSON_GetObjectItem(param_item, "voice")->valuestring);
} else {
printf("Wake word for off : %s (%s)\n",
cJSON_GetObjectItem(param_item, "zh")->valuestring,
cJSON_GetObjectItem(param_item, "voice")->valuestring);
strcpy(cmd_off, cJSON_GetObjectItem(param_item, "voice")->valuestring);
}
}
// app_sr_reset_multinet(cmd_off, cmd_on);
}
static void parse_control(cJSON *root_obj)
{
cJSON *item_obj = NULL;
led_state_t led_state;
app_led_get_state(&led_state);
item_obj = cJSON_GetObjectItem(root_obj, "type");
printf("%s : %s\n", item_obj->string, item_obj->valuestring);
item_obj = cJSON_GetObjectItem(root_obj, "node_id");
printf("%s : %d\n", item_obj->string, (int) item_obj->valuedouble);
cJSON *param_array = cJSON_GetObjectItem(root_obj, "params");
int param_array_num = cJSON_GetArraySize(param_array);
printf("Array %s has %d object(s)\n",
param_array->string, param_array_num);
item_obj = cJSON_GetObjectItem(param_array, "status");
if (NULL != item_obj) {
printf("Light status : %d\n", (int) item_obj->valuedouble);
led_state.on = (int) item_obj->valuedouble;
}
item_obj = cJSON_GetObjectItem(param_array, "hue");
if (NULL != item_obj) {
printf("Light hue : %d\n", (int) item_obj->valuedouble);
led_state.h = (int) item_obj->valuedouble;
}
item_obj = cJSON_GetObjectItem(param_array, "saturation");
if (NULL != item_obj) {
printf("Light saturation : %d\n", (int) item_obj->valuedouble);
led_state.s = (int) item_obj->valuedouble;
}
item_obj = cJSON_GetObjectItem(param_array, "value");
if (NULL != item_obj) {
printf("Light value : %d\n", (int) item_obj->valuedouble);
led_state.v = (int) item_obj->valuedouble;
}
if (led_state.on) {
lv_color_t color = lv_color_hsv_to_rgb(led_state.h, led_state.s, led_state.v);
app_led_set_all(color.ch.red << 3, ((color.ch.green_h << 3) + (color.ch.green_l)) << 2, color.ch.blue << 3);
} else {
app_led_set_all(0, 0, 0);
}
}
esp_err_t app_wifi_parse_json_string(char *text)
{
cJSON *root_obj = NULL;
cJSON *method_obj = NULL;
if (NULL == text) {
return ESP_ERR_INVALID_ARG;
}
root_obj = cJSON_Parse(text);
method_obj = cJSON_GetObjectItem(root_obj, "method");
if (0 == strcmp(method_obj->valuestring, "contrl")) {
printf("Control CMD : \n");
parse_control(root_obj);
} else if (0 == strcmp(method_obj->valuestring, "config")) {
printf("Config CMD : \n");
parse_config(root_obj);
} else {
printf("Invalid CMD : %s\n", method_obj->valuestring);
}
cJSON_Delete(root_obj);
return ESP_OK;
}
esp_err_t app_wifi_build_json_string(led_state_t *led_state, char **json_string)
{
if (NULL == led_state) {
return ESP_ERR_INVALID_ARG;
}
cJSON *root_obj = NULL;
cJSON *node_list_obj = NULL;
cJSON *led_obj = NULL;
cJSON *led_param_obj = NULL;
cJSON *led_config_obj = NULL;
cJSON *led_param_array = NULL;
cJSON *led_param_on = NULL;
cJSON *led_param_off = NULL;
/* Create root object */
root_obj = cJSON_CreateObject();
/* Add object(s) to root */
cJSON_AddStringToObject(root_obj, "method", "info");
node_list_obj = cJSON_AddArrayToObject(root_obj, "node_list");
led_obj = cJSON_CreateObject();
cJSON_AddItemToArray(node_list_obj, led_obj);
cJSON_AddStringToObject(led_obj, "type", "light");
cJSON_AddNumberToObject(led_obj, "node_id", 1);
led_param_obj = cJSON_AddObjectToObject(led_obj, "params");
cJSON_AddNumberToObject(led_param_obj, "status", led_state->on);
cJSON_AddNumberToObject(led_param_obj, "hue", led_state->h);
cJSON_AddNumberToObject(led_param_obj, "saturation", led_state->s);
cJSON_AddNumberToObject(led_param_obj, "value", led_state->v);
led_config_obj = cJSON_AddObjectToObject(led_param_obj, "config");
cJSON_AddNumberToObject(led_config_obj, "gpio", led_state->gpio);
led_param_array = cJSON_AddArrayToObject(led_config_obj, "params");
led_param_on = cJSON_CreateObject();
led_param_off = cJSON_CreateObject();
cJSON_AddItemToArray(led_param_array, led_param_on);
cJSON_AddNumberToObject(led_param_on, "status", 1);
cJSON_AddStringToObject(led_param_on, "voice", "da kai dian deng");
cJSON_AddStringToObject(led_param_on, "zh", "打开电灯");
cJSON_AddItemToArray(led_param_array, led_param_off);
cJSON_AddNumberToObject(led_param_off, "status", 0);
cJSON_AddStringToObject(led_param_off, "voice", "guan bi dian deng");
cJSON_AddStringToObject(led_param_off, "zh", "关闭电灯");
/* Print serialized object */
*json_string = cJSON_PrintUnformatted(root_obj);
/* Delete object after used */
cJSON_Delete(root_obj);
return ESP_OK;
}
+117
View File
@@ -0,0 +1,117 @@
/**
* @file app_led.c
* @brief
* @version 0.1
* @date 2021-09-27
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <string.h>
#include "app_led.h"
#include "bsp_board.h"
#include "driver/gpio.h"
#include "driver/rmt.h"
#include "esp_err.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "led_strip.h"
#include "lvgl.h"
#define CONFIG_EXAMPLE_STRIP_LED_NUMBER (8)
static const char *TAG = "app_led";
static led_strip_t *strip = NULL;
static led_state_t s_led_state = {
.on = false,
.h = 170,
.s = 0,
.v = 30,
.gpio = GPIO_RMT_LED,
};
esp_err_t app_led_get_state(led_state_t *state)
{
if (NULL == state) {
return ESP_ERR_INVALID_ARG;
}
memcpy(state, &s_led_state, sizeof(led_state_t));
return ESP_OK;
}
esp_err_t app_led_init(gpio_num_t io_num)
{
rmt_config_t config = RMT_DEFAULT_CONFIG_TX(io_num, RMT_CHANNEL_0);
config.clk_div = 2;
ESP_ERROR_CHECK(rmt_config(&config));
ESP_ERROR_CHECK(rmt_driver_install(config.channel, 0, 0));
led_strip_config_t strip_config =
LED_STRIP_DEFAULT_CONFIG(CONFIG_EXAMPLE_STRIP_LED_NUMBER, (led_strip_dev_t)config.channel);
strip = led_strip_new_rmt_ws2812(&strip_config);
if (!strip) {
ESP_LOGE(TAG, "install WS2812 driver failed");
return ESP_FAIL;
}
ESP_ERROR_CHECK(strip->clear(strip, 100));
return ESP_OK;
}
esp_err_t app_led_deinit(void)
{
if (NULL == strip) {
ESP_LOGE(TAG, "LED not initialized");
return ESP_ERR_INVALID_STATE;
}
esp_err_t ret_val = led_strip_denit(strip);
strip = NULL;
return ret_val;
}
esp_err_t app_led_set_all(uint8_t red, uint8_t green, uint8_t blue)
{
esp_err_t ret_val = ESP_OK;
if (NULL == strip) {
ESP_LOGE(TAG, "LED not initialized");
return ESP_ERR_INVALID_STATE;
}
for (size_t i = 0; i < CONFIG_EXAMPLE_STRIP_LED_NUMBER; i++) {
ret_val |= strip->set_pixel(strip, i, red, green, blue);
}
if ((red == 0) && (green == 0) && (blue == 0)) {
s_led_state.on = false;
} else {
lv_color_hsv_t color_hsv = lv_color_rgb_to_hsv(red, green, blue);
s_led_state.on = true;
s_led_state.h = color_hsv.h;
s_led_state.s = color_hsv.s;
s_led_state.v = color_hsv.v;
}
ret_val |= strip->refresh(strip, 0);
return ret_val;
}
@@ -0,0 +1,86 @@
/**
* @file app_network.c
* @brief
* @version 0.1
* @date 2021-09-26
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdio.h>
#include "app_server.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_spiffs.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "lwip/apps/netbiosns.h"
#include "mdns.h"
#include "nvs_flash.h"
#include "protocol_examples_common.h"
static const char *TAG = "app_network";
static void initialise_mdns(const char *file_name)
{
mdns_init();
mdns_hostname_set("esp-cube");
mdns_instance_name_set("esp-cube");
mdns_txt_item_t serviceTxtData[] = {
{"board", "ESP32-S3-Cube"},
{"path", "/"}
};
ESP_ERROR_CHECK(
mdns_service_add("ESP32-WebServer", "_http", "_tcp", 80, serviceTxtData,
sizeof(serviceTxtData) / sizeof(serviceTxtData[0])));
}
static void network_task(void *pvParam)
{
ESP_ERROR_CHECK(nvs_flash_init());
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());
initialise_mdns("esp-cube");
netbiosns_init();
netbiosns_set_name("esp-cube");
ESP_ERROR_CHECK(example_connect());
start_rest_server("/spiffs/web");
vTaskDelete(NULL);
}
esp_err_t app_network_start(const char *host_name)
{
/* Create audio detect task. Detect data fetch from buffer */
BaseType_t ret_val = xTaskCreatePinnedToCore(
(TaskFunction_t) network_task,
(const char * const) "Network Task",
(const uint32_t) 4 * 1024,
(void * const) NULL,
(UBaseType_t) 1,
(TaskHandle_t * const) NULL,
(const BaseType_t) 0);
if (pdPASS != ret_val) {
ESP_LOGE(TAG, "Failed create Network task");
return ESP_FAIL;
}
return ESP_OK;
}
+258
View File
@@ -0,0 +1,258 @@
/**
* @file app_server.c
* @brief
* @version 0.1
* @date 2021-09-26
*
* @copyright Copyright 2021 Espressif Systems (Shanghai) Co. Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include "app_led.h"
#include "app_data_parse.h"
#include "cJSON.h"
#include "esp_err.h"
#include "esp_http_server.h"
#include "esp_system.h"
#include "esp_log.h"
#include "esp_vfs.h"
#include "cJSON.h"
static const char *TAG = "esp-rest";
#define REST_CHECK(a, str, goto_tag, ...) \
do \
{ \
if (!(a)) \
{ \
ESP_LOGE(TAG, "%s(%d): " str, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
goto goto_tag; \
} \
} while (0)
#define FILE_PATH_MAX (128)
#define SCRATCH_BUFSIZE (4096)
typedef struct rest_server_context {
char base_path[ESP_VFS_PATH_MAX];
char scratch[SCRATCH_BUFSIZE];
} rest_server_context_t;
#define CHECK_FILE_EXTENSION(filename, ext) (strcasecmp(&filename[strlen(filename) - strlen(ext)], ext) == 0)
/* Set HTTP response content type according to file extension */
static esp_err_t set_content_type_from_file(httpd_req_t *req, const char *filepath)
{
const char *type = "text/plain";
if (CHECK_FILE_EXTENSION(filepath, ".html")) {
type = "text/html";
} else if (CHECK_FILE_EXTENSION(filepath, ".js")) {
type = "application/javascript";
} else if (CHECK_FILE_EXTENSION(filepath, ".css")) {
type = "text/css";
} else if (CHECK_FILE_EXTENSION(filepath, ".png")) {
type = "image/png";
} else if (CHECK_FILE_EXTENSION(filepath, ".ico")) {
type = "image/x-icon";
} else if (CHECK_FILE_EXTENSION(filepath, ".svg")) {
type = "text/xml";
}
return httpd_resp_set_type(req, type);
}
/* Send HTTP response with the contents of the requested file */
static esp_err_t rest_common_get_handler(httpd_req_t *req)
{
ESP_LOGW(TAG, "%s", __func__);
ESP_LOGI(TAG, "%s", req->uri);
char filepath[128];
rest_server_context_t *rest_context = (rest_server_context_t *)req->user_ctx;
strlcpy(filepath, rest_context->base_path, sizeof(filepath));
if (req->uri[strlen(req->uri) - 1] == '/') {
strlcat(filepath, "/index.html", sizeof(filepath));
} else {
strlcat(filepath, req->uri, sizeof(filepath));
}
int fd = open(filepath, O_RDONLY, 0);
if (fd == -1) {
ESP_LOGE(TAG, "Failed to open file : %s", filepath);
/* Respond with 500 Internal Server Error */
httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to read existing file");
return ESP_FAIL;
}
set_content_type_from_file(req, filepath);
char *chunk = rest_context->scratch;
int read_bytes;
do {
/* Read file in chunks into the scratch buffer */
read_bytes = read(fd, chunk, SCRATCH_BUFSIZE);
if (read_bytes == -1) {
ESP_LOGE(TAG, "Failed to read file : %s", filepath);
} else if (read_bytes > 0) {
/* Send the buffer contents as HTTP response chunk */
if (httpd_resp_send_chunk(req, chunk, read_bytes) != ESP_OK) {
close(fd);
ESP_LOGE(TAG, "File sending failed!");
/* Abort sending file */
httpd_resp_sendstr_chunk(req, NULL);
/* Respond with 500 Internal Server Error */
httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to send file");
return ESP_FAIL;
}
}
} while (read_bytes > 0);
/* Close file after sending complete */
close(fd);
ESP_LOGI(TAG, "File sending complete");
/* Respond with an empty chunk to signal HTTP response completion */
httpd_resp_send_chunk(req, NULL, 0);
return ESP_OK;
}
static esp_err_t put_nodes_params(httpd_req_t *req)
{
ESP_LOGW(TAG, "%s", __func__);
int total_len = req->content_len;
int cur_len = 0;
char *buf = ((rest_server_context_t *)(req->user_ctx))->scratch;
int received = 0;
static const char *resp_data =
"{"
"\"status\":\"success\","
"\"description\":\"Success description\""
"}";
if (total_len >= SCRATCH_BUFSIZE) {
/* Respond with 500 Internal Server Error */
httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "content too long");
return ESP_FAIL;
}
while (cur_len < total_len) {
received = httpd_req_recv(req, buf + cur_len, total_len);
if (received <= 0) {
/* Respond with 500 Internal Server Error */
httpd_resp_send_err(req, HTTPD_500_INTERNAL_SERVER_ERROR, "Failed to post control value");
return ESP_FAIL;
}
cur_len += received;
}
buf[total_len] = '\0';
ESP_LOGI(TAG, "Server -> Client (%d) : %s", strlen(buf), buf);
app_wifi_parse_json_string((char *) buf);
httpd_resp_sendstr(req, resp_data);
return ESP_OK;
}
static esp_err_t put_nodes_get(httpd_req_t *req)
{
ESP_LOGW(TAG, "%s", __func__);
char *json_string = NULL;
led_state_t led_state;
app_led_get_state(&led_state);
app_wifi_build_json_string(&led_state, &json_string);
ESP_LOGI(TAG, "Client -> Server (%d) : %s", strlen(json_string), json_string);
httpd_resp_sendstr(req, json_string);
free(json_string);
return ESP_OK;
}
static esp_err_t get_nodes_params(httpd_req_t *req)
{
ESP_LOGW(TAG, "%s", __func__);
return ESP_OK;
}
esp_err_t start_rest_server(const char *base_path)
{
REST_CHECK(base_path, "wrong base path", err);
rest_server_context_t *rest_context = heap_caps_calloc(1, sizeof(rest_server_context_t), MALLOC_CAP_INTERNAL);
REST_CHECK(rest_context, "No memory for rest context", err);
strlcpy(rest_context->base_path, base_path, sizeof(rest_context->base_path));
httpd_handle_t server = NULL;
httpd_config_t config = HTTPD_DEFAULT_CONFIG();
config.recv_wait_timeout = 30;
config.uri_match_fn = httpd_uri_match_wildcard;
ESP_LOGI(TAG, "Starting HTTP Server");
REST_CHECK(httpd_start(&server, &config) == ESP_OK, "Start server failed", err_start);
/* URI handler for fetching system info */
httpd_uri_t put_params_uri = {
.uri = "/v1/user/nodes/params",
.method = HTTP_PUT,
.handler = put_nodes_params,
.user_ctx = rest_context
};
httpd_register_uri_handler(server, &put_params_uri);
/* URI handler for fetching system info */
httpd_uri_t get_params_uri = {
.uri = "/v1/user/nodes/info",
.method = HTTP_GET,
.handler = put_nodes_get,
.user_ctx = rest_context
};
httpd_register_uri_handler(server, &get_params_uri);
static const httpd_uri_t debug_recv_uri = {
.uri = "/v1/user/nodes/params",
.method = HTTP_GET,
.handler = get_nodes_params,
.user_ctx = NULL,
.is_websocket = true
};
httpd_register_uri_handler(server, &debug_recv_uri);
httpd_uri_t common_get_uri = {
.uri = "/*",
.method = HTTP_GET,
.handler = rest_common_get_handler,
.user_ctx = rest_context
};
httpd_register_uri_handler(server, &common_get_uri);
return ESP_OK;
err_start:
free(rest_context);
err:
return ESP_FAIL;
}
+120 -40
View File
@@ -25,10 +25,13 @@
#include <string.h>
#include <sys/time.h>
#include "app_sr.h"
#include "bsp_codec.h"
#include "bsp_i2s.h"
#include "dl_lib_coefgetter_if.h"
#include "driver/i2s.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_random.h"
#include "esp_afe_sr_iface.h"
#include "esp_afe_sr_models.h"
#include "esp_mn_iface.h"
@@ -37,6 +40,9 @@
#include "freertos/event_groups.h"
#include "freertos/task.h"
#define SR_CMD_TIME_OUT (-2)
#define SR_CMD_NOT_DETECTED (-1)
#define SR_CMD_ID_BASE (0)
#define I2S_CHANNEL_NUM (3)
static const char *TAG = "app_sr";
@@ -44,7 +50,7 @@ static const char *TAG = "app_sr";
static afe_config_t afe_config = {
.aec_init = false,
.se_init = true,
.vad_init = true,
.vad_init = false,
.wakenet_init = true,
.vad_mode = 3,
.wakenet_model = (esp_wn_iface_t *) &WAKENET_MODEL,
@@ -52,13 +58,15 @@ static afe_config_t afe_config = {
.wakenet_mode = DET_MODE_2CH_90,
.afe_mode = SR_MODE_LOW_COST,
.afe_perferred_core = 0,
.afe_perferred_priority = configMAX_PRIORITIES - 2,
.afe_perferred_priority = 8,
.afe_ringbuf_size = 50,
.alloc_from_psram = true,
.agc_mode = 2,
.alloc_from_psram = 1,
.agc_mode = 2, /* 1 : -5dB 2: -4dB ... */
};
static const esp_afe_sr_iface_t *afe_handle = &esp_afe_sr_2mic;
static FILE *fp = NULL;
static bool b_record_en = false;
static volatile int32_t sr_command_id = -1;
static EventGroupHandle_t sr_event_group_handle = NULL;
@@ -91,9 +99,9 @@ static void audio_feed_task(void *pvParam)
static void audio_detect_task(void *pvParam)
{
int detect_flag = 0;
bool detect_flag = false;
const esp_mn_iface_t *multinet = &MULTINET_MODEL;
model_iface_data_t *model_data = multinet->create(&MULTINET_COEFF, 6000);
model_iface_data_t *model_data = multinet->create((const model_coeff_getter_t *) &MULTINET_COEFF, 5760);
esp_afe_sr_data_t *afe_data = (esp_afe_sr_data_t *) pvParam;
/* Allocate buffer for detection */
@@ -108,42 +116,63 @@ static void audio_detect_task(void *pvParam)
esp_system_abort("Invalid chunk size");
}
while (true) {
/* Wake word detected if `fetch()` returns none zero value */
if (afe_handle->fetch(afe_data, detect_buff) > 0) {
ESP_LOGD(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Wakeword detected");
detect_flag = 1;
xEventGroupSetBits(sr_event_group_handle, SR_EVENT_WAKE_UP);
ESP_LOGI(TAG,
"Audio detection start. Reset memories :\n"
" Biggest Free Total\n"
"Internal %8zu%8zu%8zu\n"
"SPI RAM %8zu%8zu%8zu\n",
heap_caps_get_largest_free_block(MALLOC_CAP_INTERNAL), heap_caps_get_free_size(MALLOC_CAP_INTERNAL), heap_caps_get_total_size(MALLOC_CAP_INTERNAL),
heap_caps_get_largest_free_block(MALLOC_CAP_SPIRAM), heap_caps_get_free_size(MALLOC_CAP_SPIRAM), heap_caps_get_total_size(MALLOC_CAP_SPIRAM));
/* Disable wakenet. Detect command(s) with multinet. */
while (true) {
int ret_val = afe_handle->fetch(afe_data, detect_buff);
if (AFE_FETCH_WWE_DETECTED == ret_val) {
ESP_LOGI(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Wakeword detected");
xEventGroupSetBits(sr_event_group_handle, SR_EVENT_WAKE_UP);
}
if (AFE_FETCH_CHANNEL_VERIFIED == ret_val) {
ESP_LOGI(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Channel verified");
detect_flag = true;
afe_handle->disable_wakenet(afe_data);
}
if (detect_flag == 1) {
if (true == detect_flag) {
sr_command_id = multinet->detect(model_data, detect_buff);
if(sr_command_id == -2) {
ESP_LOGD(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Timeout");
/* Save audio data to file */
if (b_record_en && (NULL != fp)) {
fwrite(detect_buff, 1, afe_chunk_size * sizeof(int16_t), fp);
}
if (SR_CMD_NOT_DETECTED == sr_command_id) {
continue;
}
if (SR_CMD_TIME_OUT == sr_command_id) {
ESP_LOGW(TAG, LOG_BOLD(LOG_COLOR_BROWN) "Time out");
xEventGroupSetBits(sr_event_group_handle, SR_EVENT_TIMEOUT);
/* Enable wakenet and AEC again */
afe_handle->enable_wakenet(afe_data);
/* Reset detect flag */
detect_flag = 0;
detect_flag = false;
continue;
}
if (sr_command_id > -1) {
ESP_LOGD(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Command word %2d detected", sr_command_id);
if (SR_CMD_ID_BASE <= sr_command_id) {
ESP_LOGI(TAG, LOG_BOLD(LOG_COLOR_GREEN) "Deteted command : %d", sr_command_id);
xEventGroupSetBits(sr_event_group_handle, SR_EVENT_WORD_DETECT);
/* Enable wakenet and AEC again */
afe_handle->enable_wakenet(afe_data);
/* Reset detect flag */
detect_flag = 0;
if (b_record_en && (NULL != fp)) {
ESP_LOGI(TAG, "File saved");
fclose(fp);
fp = NULL;
}
continue;
}
ESP_LOGE(TAG, "Exception unhandled");
}
}
@@ -154,13 +183,14 @@ static void audio_detect_task(void *pvParam)
vTaskDelete(NULL);
}
esp_err_t app_sr_start(void)
static void sr_init_task(void *pvParam)
{
sr_event_group_handle = xEventGroupCreate();
if (NULL == sr_event_group_handle) {
ESP_LOGE(TAG, "Failed create event group");
return ESP_ERR_NO_MEM;
}
(void) pvParam;
ESP_ERROR_CHECK(bsp_i2s_init(I2S_NUM_0, 16000));
ESP_ERROR_CHECK(bsp_codec_init(AUDIO_HAL_16K_SAMPLES));
vTaskDelay(pdMS_TO_TICKS(4000));
esp_afe_sr_data_t *afe_data = afe_handle->create_from_config(&afe_config);
@@ -170,29 +200,30 @@ esp_err_t app_sr_start(void)
(const char * const) "Feed Task",
(const uint32_t) 4 * 1024,
(void * const) afe_data,
(UBaseType_t) configMAX_PRIORITIES - 2,
(UBaseType_t) 5,
(TaskHandle_t * const) NULL,
(const BaseType_t) 0);
(const BaseType_t) 1);
if (pdPASS != ret_val) {
ESP_LOGE(TAG, "Failed create audio feed task");
return ESP_FAIL;
return;
}
/* Create audio detect task. Detect data fetch from buffer */
ret_val = xTaskCreatePinnedToCore(
(TaskFunction_t) audio_detect_task,
(const char * const) "Detect Task",
(const uint32_t) 6 * 1024,
(const uint32_t) 5 * 1024,
(void * const) afe_data,
(UBaseType_t) configMAX_PRIORITIES - 2,
(UBaseType_t) 5,
(TaskHandle_t * const) NULL,
(const BaseType_t) 1);
if (pdPASS != ret_val) {
ESP_LOGE(TAG, "Failed create audio detect task");
return ESP_FAIL;
return;
}
/* Create audio detect task. Detect data fetch from buffer */
extern void sr_handler_task(void *pvParam);
ret_val = xTaskCreatePinnedToCore(
(TaskFunction_t) sr_handler_task,
(const char * const) "SR Handler Task",
@@ -203,6 +234,55 @@ esp_err_t app_sr_start(void)
(const BaseType_t) 0);
if (pdPASS != ret_val) {
ESP_LOGE(TAG, "Failed create audio detect task");
return;
}
vTaskDelete(NULL);
}
esp_err_t app_sr_start(bool record_en)
{
sr_event_group_handle = xEventGroupCreate();
if (NULL == sr_event_group_handle) {
ESP_LOGE(TAG, "Failed create event group");
return ESP_ERR_NO_MEM;
}
/* Create file if record to SD card enabled*/
if (record_en) {
char file_name[32];
b_record_en = true;
for (size_t i = 0; i < 100; i++) {
sprintf(file_name, "/sdcard/Record_%02d.pcm", i);
fp = fopen(file_name, "r");
fclose(fp);
if (NULL == fp) {
break;
}
}
fp = fopen(file_name, "w");
if (NULL == fp) {
ESP_LOGE(TAG, "Failed create file");
return ESP_FAIL;
} else {
ESP_LOGI(TAG, "File created : %s", file_name);
}
ESP_LOGI(TAG, "File created at %s", file_name);
}
/* Create audio detect task. Detect data fetch from buffer */
BaseType_t ret_val = xTaskCreatePinnedToCore(
(TaskFunction_t) sr_init_task,
(const char * const) "SR Init Task",
(const uint32_t) 4 * 1024,
(void * const) NULL,
(UBaseType_t) 1,
(TaskHandle_t * const) NULL,
(const BaseType_t) 1);
if (pdPASS != ret_val) {
ESP_LOGE(TAG, "Failed create sr initialize task");
return ESP_FAIL;
}
+17 -9
View File
@@ -20,14 +20,15 @@
*/
#include "app_audio.h"
#include "app_led.h"
#include "app_network.h"
#include "app_sr.h"
#include "bsp_board.h"
#include "bsp_codec.h"
#include "bsp_i2s.h"
#include "bsp_lcd.h"
#include "bsp_storage.h"
#include "bsp_tp.h"
#include "esp_err.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "lv_demo.h"
#include "lv_port.h"
@@ -38,21 +39,28 @@ void app_main(void)
{
ESP_ERROR_CHECK(bsp_board_init());
ESP_ERROR_CHECK(bsp_board_power_ctrl(POWER_MODULE_AUDIO, true));
ESP_ERROR_CHECK(bsp_storage_init(BSP_STORAGE_SPIFFS));
// ESP_ERROR_CHECK(bsp_storage_init(BSP_STORAGE_SD_CARD));
ESP_ERROR_CHECK(bsp_storage_init(BSP_STORAGE_SPIFFS, (char *[]) { "model", "/srmodel" }));
ESP_ERROR_CHECK(bsp_storage_init(BSP_STORAGE_SPIFFS, (char *[]) { "storage", "/spiffs" }));
/* Initialize WS2812 LED(s) */
ESP_ERROR_CHECK(app_led_init(GPIO_RMT_LED));
/* Initialize LCD and GUI */
ESP_ERROR_CHECK(bsp_lcd_init());
ESP_ERROR_CHECK(bsp_tp_init());
ESP_ERROR_CHECK(lv_port_init());
ui_main_start();
ESP_ERROR_CHECK(ui_main_start());
lv_task_handler();
ESP_ERROR_CHECK(bsp_i2s_init(I2S_NUM_0, 16000));
ESP_ERROR_CHECK(bsp_codec_init(AUDIO_HAL_16K_SAMPLES));
/* Start speech recognition task. I2S is initialized in task pinned to core 1 */
ESP_ERROR_CHECK(app_audio_start());
ESP_ERROR_CHECK(app_sr_start());
ESP_ERROR_CHECK(app_sr_start(false));
while (vTaskDelay(1), true) {
/* Start web server */
ESP_ERROR_CHECK(app_network_start("esp-cube"));
/* Run LVGL task handler */
while (vTaskDelay(2), true) {
lv_task_handler();
}
}
+122
View File
@@ -0,0 +1,122 @@
/*******************************************************************************
* Size: 20 px
* Bpp: 4
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef FONT_APP
#define FONT_APP 1
#endif
#if FONT_APP
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+FA00 "切" */
0x0, 0x1, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
0x1, 0xdf, 0xb0, 0x0, 0x9a, 0xaa, 0xa1, 0x1,
0xdf, 0xff, 0xb0, 0x3f, 0xff, 0xff, 0x60, 0xdf,
0xff, 0xff, 0xb3, 0xff, 0xff, 0xf6, 0x1e, 0xff,
0xff, 0xfd, 0x3f, 0xff, 0xff, 0x60, 0x3e, 0xff,
0xfd, 0x13, 0xff, 0xff, 0xf6, 0x0, 0x3e, 0xfd,
0x10, 0x1e, 0xff, 0xfe, 0x30, 0x0, 0x29, 0x10,
0x0, 0x0, 0x0, 0x0, 0x3, 0xef, 0xff, 0xd1,
0x1d, 0xff, 0xfe, 0x30, 0x6f, 0xff, 0xff, 0x33,
0xff, 0xff, 0xf6, 0x6, 0xff, 0xff, 0xf3, 0x3f,
0xff, 0xff, 0x60, 0x6f, 0xff, 0xff, 0x33, 0xff,
0xff, 0xf6, 0x6, 0xff, 0xff, 0xf3, 0x3f, 0xff,
0xff, 0x60, 0x1a, 0xaa, 0xa9, 0x0, 0x9a, 0xaa,
0xa1
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 320, .box_w = 15, .box_h = 14, .ofs_x = 2, .ofs_y = 1}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 64000, .range_length = 1, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
.cmap_num = 1,
.bpp = 4,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t font_app = {
#else
lv_font_t font_app = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 14, /*The maximum line height required by the font*/
.base_line = -1, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -1,
.underline_thickness = 1,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if FONT_APP*/
@@ -0,0 +1,117 @@
/*******************************************************************************
* Size: 16 px
* Bpp: 4
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef FONT_APP_16
#define FONT_APP_16 1
#endif
#if FONT_APP_16
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+FA00 "切" */
0x0, 0x46, 0x0, 0x0, 0x0, 0x0, 0x5, 0xff,
0x80, 0x3f, 0xff, 0xe0, 0x4f, 0xff, 0xf8, 0x6f,
0xff, 0xf2, 0x9f, 0xff, 0xfd, 0x6f, 0xff, 0xf2,
0xc, 0xff, 0xe2, 0x5f, 0xff, 0xf1, 0x0, 0xce,
0x20, 0x17, 0x88, 0x60, 0x6, 0x88, 0x71, 0x17,
0x88, 0x60, 0x1f, 0xff, 0xf5, 0x5f, 0xff, 0xf1,
0x2f, 0xff, 0xf6, 0x6f, 0xff, 0xf2, 0x2f, 0xff,
0xf6, 0x6f, 0xff, 0xf2, 0xe, 0xff, 0xf3, 0x3f,
0xff, 0xe0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 256, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 1}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 64000, .range_length = 1, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = NULL,
.kern_scale = 0,
.cmap_num = 1,
.bpp = 4,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t font_app_16 = {
#else
lv_font_t font_app_16 = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 11, /*The maximum line height required by the font*/
.base_line = -1, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -1,
.underline_thickness = 1,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if FONT_APP_16*/
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,779 @@
/*******************************************************************************
* Size: 12 px
* Bpp: 4
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef FONT_EN_12
#define FONT_EN_12 1
#endif
#if FONT_EN_12
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0020 " " */
/* U+0021 "!" */
0xf, 0x20, 0xf2, 0xf, 0x10, 0xe0, 0xc, 0x0,
0xa0, 0x4, 0x1, 0xf3,
/* U+0022 "\"" */
0xb2, 0xcb, 0x2c, 0xa2, 0xb0,
/* U+0023 "#" */
0x0, 0xa2, 0x57, 0x0, 0xd, 0x8, 0x40, 0x3c,
0xfc, 0xec, 0x30, 0x2b, 0xc, 0x0, 0x3, 0x90,
0xd0, 0x7, 0xdd, 0xcf, 0xb0, 0x8, 0x43, 0x90,
0x0, 0xb2, 0x57, 0x0,
/* U+0024 "$" */
0x0, 0xa, 0x0, 0x0, 0x7e, 0xfc, 0x10, 0x3d,
0x1a, 0x7b, 0x6, 0xb0, 0xa0, 0x40, 0x2e, 0x9b,
0x0, 0x0, 0x17, 0xef, 0x70, 0x10, 0xa, 0x2e,
0x28, 0x70, 0xa0, 0xd3, 0x2e, 0x8c, 0x9c, 0x0,
0x17, 0xd5, 0x0, 0x0, 0x5, 0x0, 0x0,
/* U+0025 "%" */
0x3b, 0xb5, 0x0, 0xa, 0x50, 0xb2, 0x1d, 0x0,
0x78, 0x0, 0xd0, 0xe, 0x4, 0xb0, 0x0, 0xb3,
0x2c, 0x2c, 0x3a, 0xa2, 0x2a, 0xa3, 0xc2, 0xc2,
0x3b, 0x0, 0xb, 0x40, 0xe0, 0xd, 0x0, 0x87,
0x0, 0xd1, 0x2b, 0x5, 0xa0, 0x0, 0x5b, 0xb3,
/* U+0026 "&" */
0x1, 0xce, 0xb1, 0x0, 0x8, 0x90, 0xa6, 0x0,
0x4, 0xc1, 0xd2, 0x0, 0x2, 0xdf, 0x30, 0x0,
0x2d, 0x48, 0xa6, 0x80, 0x88, 0x0, 0xaf, 0x40,
0x7c, 0x0, 0x7f, 0x70, 0x9, 0xde, 0xa2, 0xe5,
/* U+0027 "'" */
0xb1, 0xb1, 0xb1,
/* U+0028 "(" */
0x0, 0xb0, 0x8, 0x60, 0xe, 0x0, 0x4c, 0x0,
0x6a, 0x0, 0x6a, 0x0, 0x3c, 0x0, 0xe, 0x0,
0x7, 0x60, 0x0, 0xb0,
/* U+0029 ")" */
0xb, 0x10, 0x4, 0x90, 0x0, 0xe1, 0x0, 0xa5,
0x0, 0x97, 0x0, 0x98, 0x0, 0xa5, 0x0, 0xe1,
0x4, 0xa0, 0xb, 0x10,
/* U+002A "*" */
0x3, 0x60, 0x5b, 0xd7, 0xa, 0x92, 0x0, 0x0,
/* U+002B "+" */
0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
0xd, 0x0, 0x5, 0xcc, 0xfc, 0xc7, 0x0, 0xd,
0x0, 0x0, 0x0, 0xd0, 0x0,
/* U+002C "," */
0x41, 0xf5, 0x73, 0x60,
/* U+002D "-" */
0x5e, 0xee, 0x0,
/* U+002E "." */
0x41, 0xf5,
/* U+002F "/" */
0x0, 0x0, 0xc0, 0x0, 0x5, 0x80, 0x0, 0xc,
0x10, 0x0, 0x3a, 0x0, 0x0, 0xa3, 0x0, 0x1,
0xc0, 0x0, 0x8, 0x50, 0x0, 0xc, 0x0, 0x0,
/* U+0030 "0" */
0x5, 0xdd, 0xc2, 0x2, 0xe2, 0x7, 0xc0, 0x6b,
0x0, 0xf, 0x7, 0x90, 0x0, 0xe2, 0x79, 0x0,
0xe, 0x26, 0xb0, 0x0, 0xf0, 0x1f, 0x20, 0x7c,
0x0, 0x6d, 0xdc, 0x20,
/* U+0031 "1" */
0x1, 0xc4, 0xbd, 0xf4, 0x0, 0xc4, 0x0, 0xc4,
0x0, 0xc4, 0x0, 0xc4, 0x0, 0xc4, 0x0, 0xc4,
/* U+0032 "2" */
0x6, 0xdd, 0xb2, 0x3e, 0x10, 0x7b, 0x57, 0x0,
0x3d, 0x0, 0x0, 0xa9, 0x0, 0x2c, 0x90, 0x7,
0xc4, 0x0, 0x4c, 0x0, 0x0, 0x9e, 0xdd, 0xdb,
/* U+0033 "3" */
0x7, 0xdd, 0xb2, 0x3, 0xd0, 0x8, 0xa0, 0x23,
0x0, 0x89, 0x0, 0x4, 0xde, 0x20, 0x0, 0x0,
0x6e, 0x6, 0x50, 0x0, 0xf1, 0x5c, 0x0, 0x6d,
0x0, 0x8d, 0xdb, 0x20,
/* U+0034 "4" */
0x0, 0x3, 0xf0, 0x0, 0x1, 0xbf, 0x0, 0x0,
0xa2, 0xf0, 0x0, 0x76, 0xf, 0x0, 0x4a, 0x0,
0xf0, 0x9, 0xdd, 0xdf, 0xd2, 0x0, 0x0, 0xf0,
0x0, 0x0, 0xf, 0x0,
/* U+0035 "5" */
0xa, 0xdd, 0xd8, 0x0, 0xd0, 0x0, 0x0, 0x1e,
0xbd, 0xa1, 0x3, 0xa1, 0x9, 0xb0, 0x0, 0x0,
0xf, 0x4, 0x30, 0x0, 0xf0, 0x5d, 0x10, 0x8b,
0x0, 0x7d, 0xda, 0x10,
/* U+0036 "6" */
0x3, 0xcd, 0xc3, 0x0, 0xe4, 0x5, 0xc0, 0x5b,
0x0, 0x2, 0x7, 0xaa, 0xdc, 0x30, 0x8f, 0x30,
0x4e, 0x6, 0xb0, 0x0, 0xe3, 0x1e, 0x20, 0x4e,
0x0, 0x4d, 0xdc, 0x40,
/* U+0037 "7" */
0x5e, 0xee, 0xef, 0x10, 0x0, 0x7, 0x80, 0x0,
0x3, 0xc0, 0x0, 0x0, 0xd3, 0x0, 0x0, 0x5b,
0x0, 0x0, 0xc, 0x50, 0x0, 0x0, 0xf1, 0x0,
0x0, 0x3e, 0x0, 0x0,
/* U+0038 "8" */
0x6, 0xdd, 0xc3, 0x1, 0xf1, 0x6, 0xc0, 0x1e,
0x20, 0x7a, 0x0, 0x7f, 0xef, 0x20, 0x4e, 0x20,
0x6e, 0x7, 0x90, 0x0, 0xf2, 0x4d, 0x10, 0x4e,
0x0, 0x6d, 0xdc, 0x30,
/* U+0039 "9" */
0x7, 0xdd, 0xa1, 0x5, 0xc0, 0x7, 0xa0, 0x88,
0x0, 0x2f, 0x5, 0xd1, 0x8, 0xf1, 0x7, 0xdd,
0x6f, 0x11, 0x20, 0x2, 0xf0, 0x3d, 0x10, 0xa9,
0x0, 0x7d, 0xea, 0x0,
/* U+003A ":" */
0xf5, 0x41, 0x0, 0x0, 0x41, 0xf5,
/* U+003B ";" */
0xf5, 0x41, 0x0, 0x0, 0x41, 0xf5, 0x73, 0x60,
/* U+003C "<" */
0x0, 0x0, 0x5, 0x60, 0x1, 0x7b, 0x60, 0x29,
0xa4, 0x0, 0x4, 0xc7, 0x10, 0x0, 0x0, 0x5b,
0x92, 0x0, 0x0, 0x2, 0x97, 0x0, 0x0, 0x0,
0x0,
/* U+003D "=" */
0x5c, 0xcc, 0xcc, 0x70, 0x0, 0x0, 0x0, 0x5c,
0xcc, 0xcc, 0x70,
/* U+003E ">" */
0x56, 0x0, 0x0, 0x0, 0x5b, 0x82, 0x0, 0x0,
0x3, 0xaa, 0x30, 0x0, 0x6, 0xc6, 0x1, 0x8b,
0x60, 0x5, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0,
/* U+003F "?" */
0x4, 0xdd, 0xc2, 0x1e, 0x10, 0x7b, 0x27, 0x0,
0x4c, 0x0, 0x1, 0xc5, 0x0, 0xc, 0x50, 0x0,
0x2d, 0x0, 0x0, 0x14, 0x0, 0x0, 0x6f, 0x0,
/* U+0040 "@" */
0x0, 0x4a, 0xaa, 0xa4, 0x0, 0x7, 0x95, 0xbb,
0x7c, 0x70, 0x2b, 0x4c, 0x12, 0xf0, 0xd0, 0x76,
0xa4, 0x1, 0xa0, 0xd0, 0x75, 0xb3, 0xa, 0x66,
0x70, 0x2b, 0x2a, 0x96, 0xa7, 0x40, 0x8, 0x90,
0x0, 0x1b, 0x20, 0x0, 0x5b, 0xaa, 0x92, 0x0,
/* U+0041 "A" */
0x0, 0x0, 0xeb, 0x0, 0x0, 0x0, 0x5c, 0xf2,
0x0, 0x0, 0xc, 0x6a, 0x90, 0x0, 0x3, 0xf0,
0x4f, 0x0, 0x0, 0x99, 0x0, 0xe6, 0x0, 0x1f,
0xee, 0xef, 0xd0, 0x7, 0xc0, 0x0, 0x1f, 0x30,
0xd5, 0x0, 0x0, 0x9a,
/* U+0042 "B" */
0x1f, 0xee, 0xee, 0x80, 0x1f, 0x10, 0x1, 0xe3,
0x1f, 0x10, 0x2, 0xe1, 0x1f, 0xee, 0xef, 0x90,
0x1f, 0x10, 0x1, 0xc7, 0x1f, 0x10, 0x0, 0x7a,
0x1f, 0x10, 0x0, 0xc6, 0x1f, 0xee, 0xee, 0x90,
/* U+0043 "C" */
0x0, 0x8d, 0xed, 0x80, 0x0, 0xab, 0x10, 0x1a,
0xa0, 0x3e, 0x10, 0x0, 0x18, 0x7, 0xb0, 0x0,
0x0, 0x0, 0x7b, 0x0, 0x0, 0x0, 0x3, 0xe0,
0x0, 0x1, 0xf0, 0xb, 0xb1, 0x1, 0xb9, 0x0,
0x9, 0xee, 0xd7, 0x0,
/* U+0044 "D" */
0x1f, 0xee, 0xec, 0x40, 0x1f, 0x10, 0x4, 0xe5,
0x1f, 0x10, 0x0, 0x6c, 0x1f, 0x10, 0x0, 0x3f,
0x1f, 0x10, 0x0, 0x3e, 0x1f, 0x10, 0x0, 0x7b,
0x1f, 0x10, 0x4, 0xe4, 0x1f, 0xee, 0xec, 0x40,
/* U+0045 "E" */
0x1f, 0xee, 0xee, 0xc1, 0xf1, 0x0, 0x0, 0x1f,
0x10, 0x0, 0x1, 0xfe, 0xee, 0xe7, 0x1f, 0x10,
0x0, 0x1, 0xf1, 0x0, 0x0, 0x1f, 0x10, 0x0,
0x1, 0xfe, 0xee, 0xec,
/* U+0046 "F" */
0x1f, 0xee, 0xee, 0x81, 0xf1, 0x0, 0x0, 0x1f,
0x10, 0x0, 0x1, 0xfe, 0xee, 0xe0, 0x1f, 0x10,
0x0, 0x1, 0xf1, 0x0, 0x0, 0x1f, 0x10, 0x0,
0x1, 0xf1, 0x0, 0x0,
/* U+0047 "G" */
0x0, 0x7d, 0xee, 0xa2, 0x0, 0xac, 0x20, 0x6,
0xe0, 0x2f, 0x10, 0x0, 0x1, 0x6, 0xb0, 0x5,
0xee, 0xe5, 0x7b, 0x0, 0x0, 0xb, 0x53, 0xf1,
0x0, 0x0, 0xe5, 0xa, 0xc2, 0x1, 0xbf, 0x50,
0x7, 0xde, 0xd7, 0x75,
/* U+0048 "H" */
0x1f, 0x10, 0x0, 0x6b, 0x1f, 0x10, 0x0, 0x6b,
0x1f, 0x10, 0x0, 0x6b, 0x1f, 0xee, 0xee, 0xfb,
0x1f, 0x10, 0x0, 0x6b, 0x1f, 0x10, 0x0, 0x6b,
0x1f, 0x10, 0x0, 0x6b, 0x1f, 0x10, 0x0, 0x6b,
/* U+0049 "I" */
0xf, 0x20, 0xf2, 0xf, 0x20, 0xf2, 0xf, 0x20,
0xf2, 0xf, 0x20, 0xf2,
/* U+004A "J" */
0x0, 0x0, 0xd4, 0x0, 0x0, 0xd4, 0x0, 0x0,
0xd4, 0x0, 0x0, 0xd4, 0x0, 0x0, 0xd4, 0x95,
0x0, 0xd4, 0x9a, 0x1, 0xf2, 0x1b, 0xee, 0x70,
/* U+004B "K" */
0x1f, 0x10, 0x3, 0xe5, 0x1, 0xf1, 0x4, 0xe4,
0x0, 0x1f, 0x15, 0xe3, 0x0, 0x1, 0xf7, 0xf8,
0x0, 0x0, 0x1f, 0xc3, 0xe4, 0x0, 0x1, 0xf1,
0x5, 0xe2, 0x0, 0x1f, 0x10, 0x8, 0xd0, 0x1,
0xf1, 0x0, 0xc, 0xa0,
/* U+004C "L" */
0x1f, 0x10, 0x0, 0x1, 0xf1, 0x0, 0x0, 0x1f,
0x10, 0x0, 0x1, 0xf1, 0x0, 0x0, 0x1f, 0x10,
0x0, 0x1, 0xf1, 0x0, 0x0, 0x1f, 0x10, 0x0,
0x1, 0xfe, 0xee, 0xe8,
/* U+004D "M" */
0xf, 0xb0, 0x0, 0x4, 0xf7, 0xf, 0xe1, 0x0,
0xa, 0xe7, 0xf, 0x88, 0x0, 0x1e, 0x97, 0xf,
0x2e, 0x0, 0x78, 0x97, 0xf, 0xa, 0x50, 0xd2,
0x97, 0xf, 0x4, 0xb4, 0xb0, 0x97, 0xf, 0x0,
0xdc, 0x50, 0x97, 0xf, 0x0, 0x7e, 0x0, 0x97,
/* U+004E "N" */
0x1f, 0x70, 0x0, 0x5c, 0x1f, 0xe3, 0x0, 0x5c,
0x1f, 0x5d, 0x0, 0x5c, 0x1f, 0xa, 0x90, 0x5c,
0x1f, 0x0, 0xd4, 0x5c, 0x1f, 0x0, 0x4e, 0x6c,
0x1f, 0x0, 0x8, 0xec, 0x1f, 0x0, 0x0, 0xdc,
/* U+004F "O" */
0x0, 0x7d, 0xee, 0x80, 0x0, 0xbb, 0x10, 0x19,
0xc0, 0x4e, 0x0, 0x0, 0xc, 0x67, 0xa0, 0x0,
0x0, 0x89, 0x7a, 0x0, 0x0, 0x8, 0x94, 0xe0,
0x0, 0x0, 0xc6, 0xb, 0xb1, 0x1, 0x9c, 0x0,
0x8, 0xde, 0xe9, 0x0,
/* U+0050 "P" */
0x1f, 0xee, 0xee, 0x60, 0x1f, 0x10, 0x3, 0xf2,
0x1f, 0x10, 0x0, 0xd4, 0x1f, 0x10, 0x4, 0xf1,
0x1f, 0xee, 0xed, 0x50, 0x1f, 0x10, 0x0, 0x0,
0x1f, 0x10, 0x0, 0x0, 0x1f, 0x10, 0x0, 0x0,
/* U+0051 "Q" */
0x0, 0x7d, 0xee, 0x80, 0x0, 0xbb, 0x10, 0x19,
0xc0, 0x4e, 0x0, 0x0, 0xc, 0x67, 0xa0, 0x0,
0x0, 0x89, 0x7a, 0x0, 0x0, 0x8, 0x94, 0xe0,
0x0, 0x20, 0xd5, 0xb, 0xb1, 0xc, 0xdc, 0x0,
0x8, 0xde, 0xea, 0xd2, 0x0, 0x0, 0x0, 0x3,
0x10,
/* U+0052 "R" */
0x1f, 0xee, 0xee, 0x90, 0x1f, 0x10, 0x1, 0xd6,
0x1f, 0x10, 0x0, 0x98, 0x1f, 0x10, 0x2, 0xd4,
0x1f, 0xee, 0xef, 0x90, 0x1f, 0x10, 0x1, 0xe3,
0x1f, 0x10, 0x0, 0xb6, 0x1f, 0x10, 0x0, 0x89,
/* U+0053 "S" */
0x4, 0xce, 0xea, 0x10, 0x1f, 0x30, 0x9, 0xb0,
0x3e, 0x10, 0x1, 0x60, 0x8, 0xea, 0x73, 0x0,
0x0, 0x3, 0x7d, 0xb0, 0x57, 0x0, 0x0, 0xe4,
0x3e, 0x40, 0x4, 0xf2, 0x4, 0xce, 0xec, 0x40,
/* U+0054 "T" */
0xee, 0xef, 0xee, 0xc0, 0x2, 0xf0, 0x0, 0x0,
0x2f, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x2f,
0x0, 0x0, 0x2, 0xf0, 0x0, 0x0, 0x2f, 0x0,
0x0, 0x2, 0xf0, 0x0,
/* U+0055 "U" */
0x1f, 0x0, 0x0, 0x5c, 0x1f, 0x0, 0x0, 0x5c,
0x1f, 0x0, 0x0, 0x5c, 0x1f, 0x0, 0x0, 0x5c,
0x1f, 0x0, 0x0, 0x5c, 0xf, 0x10, 0x0, 0x7b,
0xb, 0xa0, 0x2, 0xd6, 0x1, 0x9e, 0xed, 0x70,
/* U+0056 "V" */
0xd, 0x60, 0x0, 0xf, 0x20, 0x7b, 0x0, 0x5,
0xc0, 0x1, 0xf1, 0x0, 0xb6, 0x0, 0xb, 0x70,
0x1f, 0x0, 0x0, 0x4c, 0x6, 0xa0, 0x0, 0x0,
0xe2, 0xc4, 0x0, 0x0, 0x8, 0xad, 0x0, 0x0,
0x0, 0x2f, 0x80, 0x0,
/* U+0057 "W" */
0xb7, 0x0, 0x3f, 0x50, 0x4, 0xd7, 0xb0, 0x7,
0xd9, 0x0, 0x98, 0x2e, 0x0, 0xc4, 0xe0, 0xd,
0x40, 0xe3, 0x1d, 0xd, 0x21, 0xf0, 0x9, 0x75,
0x90, 0x87, 0x5a, 0x0, 0x5b, 0xa4, 0x3, 0xb9,
0x60, 0x1, 0xee, 0x0, 0xe, 0xe1, 0x0, 0xc,
0xa0, 0x0, 0xad, 0x0,
/* U+0058 "X" */
0x7, 0xd0, 0x0, 0x7c, 0x0, 0xb, 0x80, 0x3e,
0x20, 0x0, 0x1e, 0x4d, 0x50, 0x0, 0x0, 0x5f,
0x90, 0x0, 0x0, 0x7, 0xec, 0x0, 0x0, 0x3,
0xe2, 0xc8, 0x0, 0x0, 0xd5, 0x2, 0xf4, 0x0,
0xa9, 0x0, 0x6, 0xe1,
/* U+0059 "Y" */
0x9b, 0x0, 0x0, 0xd6, 0xd, 0x60, 0x8, 0xb0,
0x3, 0xe1, 0x3e, 0x10, 0x0, 0x8b, 0xd5, 0x0,
0x0, 0xd, 0xa0, 0x0, 0x0, 0xa, 0x70, 0x0,
0x0, 0xa, 0x70, 0x0, 0x0, 0xa, 0x70, 0x0,
/* U+005A "Z" */
0x4e, 0xee, 0xef, 0xe0, 0x0, 0x0, 0x1d, 0x60,
0x0, 0x0, 0xc9, 0x0, 0x0, 0xa, 0xb0, 0x0,
0x0, 0x8c, 0x0, 0x0, 0x5, 0xe1, 0x0, 0x0,
0x3e, 0x20, 0x0, 0x0, 0xbf, 0xee, 0xee, 0xe1,
/* U+005B "[" */
0x2f, 0xc1, 0x2d, 0x0, 0x2d, 0x0, 0x2d, 0x0,
0x2d, 0x0, 0x2d, 0x0, 0x2d, 0x0, 0x2d, 0x0,
0x2d, 0x0, 0x2f, 0xc1,
/* U+005C "\\" */
0xc, 0x0, 0x0, 0x8, 0x50, 0x0, 0x1, 0xc0,
0x0, 0x0, 0xa3, 0x0, 0x0, 0x3a, 0x0, 0x0,
0xc, 0x10, 0x0, 0x5, 0x80, 0x0, 0x0, 0xc0,
/* U+005D "]" */
0xce, 0x40, 0xb4, 0xb, 0x40, 0xb4, 0xb, 0x40,
0xb4, 0xb, 0x40, 0xb4, 0xb, 0x4c, 0xf4,
/* U+005E "^" */
0x0, 0x1f, 0x30, 0x0, 0x9, 0x5b, 0x0, 0x1,
0xb0, 0x84, 0x0, 0x93, 0x1, 0xb0, 0x2b, 0x0,
0x7, 0x50,
/* U+005F "_" */
0x99, 0x99, 0x99,
/* U+0060 "`" */
0x7, 0x10, 0x4, 0xa0,
/* U+0061 "a" */
0x7, 0xdd, 0xc2, 0x3, 0xc0, 0x8, 0x90, 0x1,
0x58, 0xda, 0x4, 0xd6, 0x36, 0xa0, 0x89, 0x0,
0xba, 0x2, 0xde, 0xc6, 0xe3,
/* U+0062 "b" */
0x3d, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0x3d,
0xad, 0xd7, 0x3, 0xf5, 0x1, 0xd4, 0x3d, 0x0,
0x7, 0x93, 0xd0, 0x0, 0x79, 0x3f, 0x50, 0x1d,
0x53, 0xda, 0xdd, 0x70,
/* U+0063 "c" */
0x5, 0xdd, 0xc3, 0x2, 0xe2, 0x4, 0xd0, 0x79,
0x0, 0x0, 0x7, 0x90, 0x0, 0x30, 0x3e, 0x10,
0x5d, 0x0, 0x6d, 0xdc, 0x20,
/* U+0064 "d" */
0x0, 0x0, 0xb, 0x50, 0x0, 0x0, 0xb5, 0x6,
0xdd, 0xac, 0x53, 0xe2, 0x3, 0xf5, 0x79, 0x0,
0xc, 0x57, 0x90, 0x0, 0xb5, 0x3e, 0x10, 0x2f,
0x50, 0x5c, 0xbb, 0xc5,
/* U+0065 "e" */
0x5, 0xcd, 0xb2, 0x2, 0xc0, 0x4, 0xd0, 0x7e,
0xdd, 0xde, 0x17, 0x90, 0x0, 0x20, 0x2e, 0x20,
0x4c, 0x0, 0x5d, 0xdc, 0x20,
/* U+0066 "f" */
0x7, 0xe7, 0xc, 0x30, 0xbf, 0xe5, 0xd, 0x30,
0xd, 0x30, 0xd, 0x30, 0xd, 0x30, 0xd, 0x30,
/* U+0067 "g" */
0x5, 0xdd, 0x9d, 0x22, 0xe1, 0x6, 0xf2, 0x79,
0x0, 0xf, 0x27, 0x90, 0x0, 0xf2, 0x3e, 0x10,
0x6f, 0x20, 0x6d, 0xd9, 0xe1, 0x27, 0x0, 0x3d,
0x0, 0x8d, 0xcc, 0x30,
/* U+0068 "h" */
0x3c, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x3c, 0xad,
0xd4, 0x3f, 0x30, 0x4c, 0x3d, 0x0, 0x1e, 0x3c,
0x0, 0x1e, 0x3c, 0x0, 0x1e, 0x3c, 0x0, 0x1e,
/* U+0069 "i" */
0x2d, 0x2, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
/* U+006A "j" */
0x2, 0xd0, 0x2, 0x2, 0xd0, 0x2d, 0x2, 0xd0,
0x2d, 0x2, 0xd0, 0x2d, 0x3, 0xd2, 0xe7,
/* U+006B "k" */
0x2d, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x2d,
0x1, 0xc7, 0x2, 0xd1, 0xd6, 0x0, 0x2e, 0xdd,
0x0, 0x2, 0xf3, 0xb8, 0x0, 0x2d, 0x2, 0xe3,
0x2, 0xd0, 0x6, 0xd0,
/* U+006C "l" */
0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d,
/* U+006D "m" */
0x3c, 0x9b, 0xd6, 0xab, 0xc1, 0x3f, 0x20, 0x8d,
0x0, 0xa6, 0x3c, 0x0, 0x6a, 0x0, 0x87, 0x3c,
0x0, 0x6a, 0x0, 0x87, 0x3c, 0x0, 0x6a, 0x0,
0x87, 0x3c, 0x0, 0x6a, 0x0, 0x87,
/* U+006E "n" */
0x3c, 0x9b, 0xd4, 0x3f, 0x20, 0x3c, 0x3c, 0x0,
0x1e, 0x3c, 0x0, 0x1e, 0x3c, 0x0, 0x1e, 0x3c,
0x0, 0x1e,
/* U+006F "o" */
0x5, 0xdd, 0xc4, 0x3, 0xe2, 0x3, 0xe1, 0x79,
0x0, 0xb, 0x57, 0x90, 0x0, 0xb5, 0x2e, 0x20,
0x3e, 0x10, 0x5d, 0xdc, 0x40,
/* U+0070 "p" */
0x3e, 0xbb, 0xc7, 0x3, 0xf3, 0x0, 0xd4, 0x3d,
0x0, 0x7, 0x93, 0xd0, 0x0, 0x79, 0x3f, 0x50,
0x1d, 0x53, 0xda, 0xdd, 0x70, 0x3d, 0x0, 0x0,
0x3, 0xd0, 0x0, 0x0,
/* U+0071 "q" */
0x6, 0xdd, 0xac, 0x53, 0xe1, 0x3, 0xf5, 0x79,
0x0, 0xb, 0x57, 0x90, 0x0, 0xb5, 0x3e, 0x20,
0x3f, 0x50, 0x5d, 0xeb, 0xc5, 0x0, 0x0, 0xb,
0x50, 0x0, 0x0, 0xb5,
/* U+0072 "r" */
0x4b, 0x9e, 0x4f, 0x60, 0x4d, 0x0, 0x4c, 0x0,
0x4c, 0x0, 0x4c, 0x0,
/* U+0073 "s" */
0x1b, 0xed, 0x90, 0x7a, 0x0, 0xa3, 0x2e, 0xa7,
0x20, 0x0, 0x37, 0xe5, 0x79, 0x0, 0x98, 0x1a,
0xed, 0xb1,
/* U+0074 "t" */
0x6, 0x10, 0xd, 0x30, 0xcf, 0xe5, 0xd, 0x30,
0xd, 0x30, 0xd, 0x30, 0xd, 0x30, 0x9, 0xe5,
/* U+0075 "u" */
0x3c, 0x0, 0x1e, 0x3c, 0x0, 0x1e, 0x3c, 0x0,
0x1e, 0x3c, 0x0, 0x2e, 0x2e, 0x0, 0x7e, 0x8,
0xca, 0x7e,
/* U+0076 "v" */
0xa7, 0x0, 0x6a, 0x4d, 0x0, 0xb4, 0xd, 0x21,
0xd0, 0x7, 0x86, 0x80, 0x1, 0xdc, 0x20, 0x0,
0xbc, 0x0,
/* U+0077 "w" */
0xa7, 0x1, 0xf4, 0x4, 0xb4, 0xc0, 0x5d, 0x80,
0x96, 0xe, 0x9, 0x4c, 0xd, 0x10, 0xa5, 0xd0,
0xd3, 0xb0, 0x4, 0xbb, 0x9, 0xc6, 0x0, 0xf,
0x60, 0x4f, 0x10,
/* U+0078 "x" */
0x5d, 0x0, 0xb7, 0x0, 0x9a, 0x7a, 0x0, 0x0,
0xde, 0x0, 0x0, 0x1e, 0xe4, 0x0, 0xc, 0x64,
0xe1, 0x8, 0xb0, 0x8, 0xb0,
/* U+0079 "y" */
0xb7, 0x0, 0x5b, 0x4d, 0x0, 0xb4, 0xd, 0x31,
0xd0, 0x6, 0x97, 0x70, 0x0, 0xdd, 0x10, 0x0,
0x89, 0x0, 0x0, 0xc2, 0x0, 0x4e, 0x80, 0x0,
/* U+007A "z" */
0x6d, 0xdd, 0xf4, 0x0, 0x8, 0x90, 0x0, 0x6c,
0x0, 0x4, 0xd1, 0x0, 0x2d, 0x20, 0x0, 0xbe,
0xdd, 0xd6,
/* U+007B "{" */
0x2, 0xd7, 0x6, 0x80, 0x6, 0x80, 0x9, 0x70,
0x5d, 0x0, 0xa, 0x60, 0x6, 0x80, 0x6, 0x80,
0x6, 0x80, 0x1, 0xc7,
/* U+007C "|" */
0x5, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b,
0x1b, 0x1b, 0x1b, 0x1b,
/* U+007D "}" */
0x7d, 0x20, 0x8, 0x60, 0x8, 0x60, 0x7, 0x90,
0x0, 0xd5, 0x6, 0xa0, 0x8, 0x60, 0x8, 0x60,
0x8, 0x60, 0x7c, 0x10,
/* U+007E "~" */
0x8, 0xb7, 0x5, 0x20, 0x60, 0x4b, 0x90
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 53, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 0, .adv_w = 50, .box_w = 3, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 12, .adv_w = 82, .box_w = 3, .box_h = 3, .ofs_x = 1, .ofs_y = 5},
{.bitmap_index = 17, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 45, .adv_w = 107, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 84, .adv_w = 192, .box_w = 10, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 124, .adv_w = 121, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 156, .adv_w = 53, .box_w = 2, .box_h = 3, .ofs_x = 1, .ofs_y = 5},
{.bitmap_index = 159, .adv_w = 50, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 179, .adv_w = 50, .box_w = 4, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
{.bitmap_index = 199, .adv_w = 68, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
{.bitmap_index = 207, .adv_w = 115, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 228, .adv_w = 53, .box_w = 2, .box_h = 4, .ofs_x = 1, .ofs_y = -2},
{.bitmap_index = 232, .adv_w = 75, .box_w = 5, .box_h = 1, .ofs_x = 0, .ofs_y = 3},
{.bitmap_index = 235, .adv_w = 53, .box_w = 2, .box_h = 2, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 237, .adv_w = 64, .box_w = 6, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 261, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 289, .adv_w = 107, .box_w = 4, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 305, .adv_w = 107, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 329, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 357, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 385, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 413, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 441, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 469, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 497, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 525, .adv_w = 53, .box_w = 2, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 531, .adv_w = 53, .box_w = 2, .box_h = 8, .ofs_x = 1, .ofs_y = -2},
{.bitmap_index = 539, .adv_w = 115, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 564, .adv_w = 115, .box_w = 7, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
{.bitmap_index = 575, .adv_w = 115, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 600, .adv_w = 107, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 624, .adv_w = 154, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 664, .adv_w = 124, .box_w = 9, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 700, .adv_w = 132, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 732, .adv_w = 139, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 768, .adv_w = 135, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 800, .adv_w = 117, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 828, .adv_w = 110, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 856, .adv_w = 146, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 892, .adv_w = 139, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 924, .adv_w = 50, .box_w = 3, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 936, .adv_w = 100, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 960, .adv_w = 128, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 996, .adv_w = 107, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1024, .adv_w = 167, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1064, .adv_w = 139, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1096, .adv_w = 146, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1132, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1164, .adv_w = 146, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 1205, .adv_w = 132, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1237, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1269, .adv_w = 110, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1297, .adv_w = 139, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1329, .adv_w = 117, .box_w = 9, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1365, .adv_w = 178, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1409, .adv_w = 117, .box_w = 9, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1445, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1477, .adv_w = 117, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1509, .adv_w = 50, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 1529, .adv_w = 64, .box_w = 6, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1553, .adv_w = 50, .box_w = 3, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 1568, .adv_w = 115, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 3},
{.bitmap_index = 1586, .adv_w = 96, .box_w = 6, .box_h = 1, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 1589, .adv_w = 43, .box_w = 4, .box_h = 2, .ofs_x = -1, .ofs_y = 7},
{.bitmap_index = 1593, .adv_w = 103, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1614, .adv_w = 114, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1642, .adv_w = 103, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1663, .adv_w = 114, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1691, .adv_w = 103, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1712, .adv_w = 57, .box_w = 4, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1728, .adv_w = 110, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 1756, .adv_w = 107, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1780, .adv_w = 43, .box_w = 2, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1788, .adv_w = 43, .box_w = 3, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
{.bitmap_index = 1803, .adv_w = 100, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1831, .adv_w = 43, .box_w = 2, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1839, .adv_w = 164, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1869, .adv_w = 107, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1887, .adv_w = 110, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1908, .adv_w = 114, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 1936, .adv_w = 114, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 1964, .adv_w = 64, .box_w = 4, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1976, .adv_w = 96, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1994, .adv_w = 60, .box_w = 4, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2010, .adv_w = 107, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2028, .adv_w = 96, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2046, .adv_w = 146, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2073, .adv_w = 99, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2094, .adv_w = 96, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 2118, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2136, .adv_w = 64, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 2156, .adv_w = 43, .box_w = 2, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 2168, .adv_w = 64, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 2188, .adv_w = 115, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = 2}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 32, .range_length = 95, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*-----------------
* KERNING
*----------------*/
/*Pair left and right glyphs for kerning*/
static const uint8_t kern_pair_glyph_ids[] =
{
34, 55,
34, 87,
39, 13,
39, 15,
39, 34,
45, 55,
49, 13,
49, 15,
49, 34,
51, 55,
53, 13,
53, 14,
53, 15,
53, 27,
53, 28,
55, 13,
55, 14,
55, 15,
55, 27,
55, 28,
55, 34,
55, 66,
55, 70,
55, 74,
55, 80,
55, 83,
55, 86,
55, 90,
56, 13,
56, 15,
56, 27,
56, 28,
58, 13,
58, 14,
58, 15,
58, 27,
58, 28,
58, 81,
58, 82,
58, 87,
71, 71,
83, 13,
83, 14,
83, 15,
83, 82,
87, 13,
87, 15,
88, 13,
88, 15,
90, 13,
90, 15
};
/* Kerning between the respective left and right glyphs
* 4.4 format which needs to scaled with `kern_scale`*/
static const int8_t kern_pair_values[] =
{
-9, -3, -30, -30, -11, -18, -34, -34,
-14, -3, -21, -25, -21, -21, -21, -25,
-11, -25, -9, -9, -9, -11, -11, -3,
-11, -7, -7, -3, -14, -14, -3, -3,
-27, -21, -27, -18, -18, -14, -18, -11,
-3, -18, -11, -18, -3, -14, -14, -11,
-11, -14, -14
};
/*Collect the kern pair's data in one place*/
static const lv_font_fmt_txt_kern_pair_t kern_pairs =
{
.glyph_ids = kern_pair_glyph_ids,
.values = kern_pair_values,
.pair_cnt = 51,
.glyph_ids_size = 0
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = &kern_pairs,
.kern_scale = 16,
.cmap_num = 1,
.bpp = 4,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t font_en_12 = {
#else
lv_font_t font_en_12 = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 12, /*The maximum line height required by the font*/
.base_line = 2, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -1,
.underline_thickness = 1,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if FONT_EN_12*/
@@ -0,0 +1,934 @@
/*******************************************************************************
* Size: 14 px
* Bpp: 4
* Opts:
******************************************************************************/
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef FONT_EN_14
#define FONT_EN_14 1
#endif
#if FONT_EN_14
/*-----------------
* BITMAPS
*----------------*/
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
/* U+0020 " " */
/* U+0021 "!" */
0xd7, 0xd7, 0xd7, 0xd7, 0xc6, 0xb5, 0x93, 0x82,
0x0, 0xa6, 0xf9,
/* U+0022 "\"" */
0x77, 0x87, 0x77, 0x87, 0x77, 0x87, 0x67, 0x76,
/* U+0023 "#" */
0x0, 0x4b, 0x9, 0x60, 0x0, 0x69, 0xb, 0x40,
0x0, 0x86, 0xd, 0x20, 0x2e, 0xff, 0xef, 0xe4,
0x1, 0xc4, 0x2e, 0x10, 0x0, 0xe1, 0x2c, 0x0,
0x0, 0xf0, 0x4b, 0x0, 0x7e, 0xfe, 0xff, 0xd0,
0x5, 0xc1, 0x97, 0x10, 0x5, 0x90, 0xa4, 0x0,
0x8, 0x70, 0xc2, 0x0,
/* U+0024 "$" */
0x0, 0x7, 0x40, 0x0, 0x2, 0xcf, 0xf8, 0x0,
0xe, 0xa9, 0x8d, 0x70, 0x4f, 0x7, 0x44, 0xd0,
0x4f, 0x7, 0x40, 0x0, 0x1e, 0xca, 0x40, 0x0,
0x2, 0xaf, 0xfa, 0x10, 0x0, 0x7, 0x9d, 0xd0,
0x22, 0x7, 0x41, 0xf3, 0x7b, 0x7, 0x40, 0xf4,
0x2f, 0x68, 0x57, 0xe0, 0x5, 0xff, 0xfe, 0x30,
0x0, 0x9, 0x60, 0x0, 0x0, 0x3, 0x20, 0x0,
/* U+0025 "%" */
0xb, 0xdc, 0x10, 0x0, 0x3e, 0x10, 0x7a, 0x8,
0x90, 0x0, 0xd5, 0x0, 0xa6, 0x4, 0xb0, 0x8,
0xa0, 0x0, 0xa6, 0x4, 0xb0, 0x3e, 0x10, 0x0,
0x7a, 0x9, 0x70, 0xd4, 0x0, 0x0, 0x9, 0xda,
0x9, 0x90, 0xad, 0x90, 0x0, 0x0, 0x4d, 0x8,
0x90, 0xa7, 0x0, 0x1, 0xe3, 0xb, 0x40, 0x6a,
0x0, 0xa, 0x80, 0xb, 0x40, 0x6a, 0x0, 0x5d,
0x0, 0x8, 0x80, 0xa6, 0x1, 0xe3, 0x0, 0x1,
0xbd, 0xa0,
/* U+0026 "&" */
0x0, 0x7e, 0xe7, 0x0, 0x0, 0x2, 0xf5, 0x4f,
0x30, 0x0, 0x4, 0xe0, 0xe, 0x50, 0x0, 0x0,
0xe6, 0x6e, 0x10, 0x0, 0x0, 0x7f, 0xe3, 0x0,
0x0, 0x4, 0xed, 0xd0, 0x13, 0x0, 0x2f, 0x50,
0xd9, 0x8a, 0x0, 0x7c, 0x0, 0x2f, 0xe6, 0x0,
0x7d, 0x0, 0x7, 0xf4, 0x0, 0x2f, 0x82, 0x5e,
0xcd, 0x0, 0x5, 0xdf, 0xd6, 0xd, 0xa0,
/* U+0027 "'" */
0x86, 0x86, 0x86, 0x76,
/* U+0028 "(" */
0x0, 0x78, 0x1, 0xe1, 0x7, 0xa0, 0xc, 0x50,
0xf, 0x20, 0x3f, 0x0, 0x4f, 0x0, 0x4f, 0x0,
0x3f, 0x0, 0xf, 0x20, 0xc, 0x50, 0x6, 0xa0,
0x0, 0xd1, 0x0, 0x68,
/* U+0029 ")" */
0xd, 0x10, 0x6, 0x80, 0x1, 0xe0, 0x0, 0xb6,
0x0, 0x8a, 0x0, 0x6d, 0x0, 0x5e, 0x0, 0x5e,
0x0, 0x6d, 0x0, 0x8a, 0x0, 0xb6, 0x1, 0xf1,
0x6, 0xa0, 0xd, 0x10,
/* U+002A "*" */
0x0, 0xb0, 0x6, 0x8d, 0x95, 0x8, 0xf6, 0x0,
0xc3, 0xb0, 0x0, 0x0, 0x0,
/* U+002B "+" */
0x0, 0x4, 0xa0, 0x0, 0x0, 0x4, 0xa0, 0x0,
0x0, 0x4, 0xa0, 0x0, 0x0, 0x4, 0xa0, 0x0,
0x4e, 0xef, 0xfe, 0xea, 0x1, 0x15, 0xb1, 0x11,
0x0, 0x4, 0xa0, 0x0, 0x0, 0x4, 0xa0, 0x0,
/* U+002C "," */
0x97, 0xdb, 0x1a, 0xa3, 0x0,
/* U+002D "-" */
0x0, 0x0, 0x4, 0xff, 0xfc, 0x3, 0x33, 0x20,
/* U+002E "." */
0x97, 0xdb,
/* U+002F "/" */
0x0, 0x0, 0x4b, 0x0, 0x0, 0xa5, 0x0, 0x1,
0xe0, 0x0, 0x6, 0x90, 0x0, 0xc, 0x30, 0x0,
0x2d, 0x0, 0x0, 0x87, 0x0, 0x0, 0xe1, 0x0,
0x4, 0xb0, 0x0, 0xb, 0x50, 0x0, 0x1e, 0x0,
0x0,
/* U+0030 "0" */
0x1, 0xae, 0xe8, 0x0, 0xb, 0xc3, 0x4e, 0x70,
0x1f, 0x30, 0x6, 0xe0, 0x4f, 0x0, 0x2, 0xf1,
0x6d, 0x0, 0x1, 0xf2, 0x6d, 0x0, 0x1, 0xf3,
0x6d, 0x0, 0x1, 0xf2, 0x4f, 0x0, 0x2, 0xf1,
0x1f, 0x30, 0x6, 0xe0, 0xb, 0xc3, 0x4e, 0x80,
0x1, 0xaf, 0xe8, 0x0,
/* U+0031 "1" */
0x0, 0x1f, 0x2, 0xbf, 0xbf, 0xff, 0x11, 0x4f,
0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f,
0x0, 0x3f, 0x0, 0x3f, 0x0, 0x3f,
/* U+0032 "2" */
0x2, 0xbf, 0xe7, 0x0, 0xcb, 0x35, 0xe7, 0x3f,
0x10, 0x7, 0xc4, 0xc0, 0x0, 0x6d, 0x0, 0x0,
0xb, 0xa0, 0x0, 0x9, 0xe2, 0x0, 0x1c, 0xe3,
0x0, 0x3e, 0xa1, 0x0, 0xe, 0x70, 0x0, 0x5,
0xd2, 0x22, 0x21, 0x9f, 0xff, 0xff, 0xd0,
/* U+0033 "3" */
0x2, 0xbf, 0xd6, 0x0, 0xc, 0xa3, 0x5f, 0x50,
0x2f, 0x10, 0xa, 0x90, 0x3a, 0x0, 0x9, 0xa0,
0x0, 0x0, 0x3f, 0x40, 0x0, 0xe, 0xfb, 0x0,
0x0, 0x2, 0x4c, 0xb0, 0x22, 0x0, 0x3, 0xf1,
0x7c, 0x0, 0x4, 0xf0, 0x2f, 0x83, 0x4d, 0xa0,
0x4, 0xcf, 0xe8, 0x0,
/* U+0034 "4" */
0x0, 0x0, 0x6d, 0x0, 0x0, 0x1, 0xed, 0x0,
0x0, 0xb, 0x8d, 0x0, 0x0, 0x6a, 0x4d, 0x0,
0x1, 0xd1, 0x4d, 0x0, 0xa, 0x60, 0x4d, 0x0,
0x5b, 0x0, 0x4d, 0x0, 0x9f, 0xff, 0xff, 0xf3,
0x12, 0x22, 0x5e, 0x20, 0x0, 0x0, 0x4d, 0x0,
0x0, 0x0, 0x4d, 0x0,
/* U+0035 "5" */
0x6, 0xff, 0xff, 0x90, 0x8, 0x92, 0x22, 0x10,
0xb, 0x60, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0,
0xf, 0x9e, 0xd8, 0x0, 0x2f, 0x83, 0x5e, 0x80,
0x1, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x2, 0xf1,
0x6c, 0x0, 0x5, 0xf0, 0x1f, 0x93, 0x5e, 0x80,
0x3, 0xcf, 0xe8, 0x0,
/* U+0036 "6" */
0x0, 0x8e, 0xfa, 0x0, 0x8, 0xd4, 0x3d, 0x90,
0xe, 0x30, 0x4, 0xc0, 0x3e, 0x0, 0x0, 0x0,
0x5c, 0x6d, 0xea, 0x10, 0x7e, 0xc4, 0x4d, 0xb0,
0x7f, 0x20, 0x3, 0xf1, 0x5f, 0x0, 0x0, 0xf3,
0x2f, 0x20, 0x3, 0xf1, 0xb, 0xc3, 0x4d, 0xa0,
0x1, 0xaf, 0xfa, 0x10,
/* U+0037 "7" */
0x4f, 0xff, 0xff, 0xf2, 0x13, 0x33, 0x38, 0xc0,
0x0, 0x0, 0x1d, 0x20, 0x0, 0x0, 0xa7, 0x0,
0x0, 0x2, 0xf0, 0x0, 0x0, 0xa, 0x90, 0x0,
0x0, 0x1f, 0x40, 0x0, 0x0, 0x5e, 0x0, 0x0,
0x0, 0xaa, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0,
0x0, 0xf6, 0x0, 0x0,
/* U+0038 "8" */
0x1, 0xae, 0xe8, 0x0, 0xa, 0xc3, 0x4e, 0x60,
0xf, 0x40, 0x8, 0xb0, 0xf, 0x30, 0x7, 0xc0,
0xa, 0xb1, 0x2d, 0x60, 0x2, 0xff, 0xfd, 0x0,
0x1e, 0xa3, 0x4c, 0xc0, 0x5e, 0x0, 0x2, 0xf2,
0x5e, 0x0, 0x2, 0xf1, 0x1e, 0xa3, 0x3c, 0xc0,
0x3, 0xbf, 0xea, 0x10,
/* U+0039 "9" */
0x2, 0xbf, 0xe7, 0x0, 0xe, 0x92, 0x5f, 0x60,
0x5e, 0x0, 0x8, 0xc0, 0x7c, 0x0, 0x5, 0xf0,
0x6e, 0x0, 0x7, 0xf1, 0x1f, 0x80, 0x3d, 0xf2,
0x5, 0xef, 0xe6, 0xf1, 0x0, 0x1, 0x3, 0xf0,
0x2c, 0x0, 0x8, 0xb0, 0xe, 0x92, 0x5f, 0x40,
0x3, 0xcf, 0xe6, 0x0,
/* U+003A ":" */
0xdb, 0x97, 0x0, 0x0, 0x0, 0x0, 0x97, 0xdb,
/* U+003B ";" */
0xdb, 0x97, 0x0, 0x0, 0x0, 0x0, 0x97, 0xdb,
0x1a, 0xa3, 0x0,
/* U+003C "<" */
0x0, 0x0, 0x0, 0x26, 0x0, 0x0, 0x2a, 0xd5,
0x0, 0x3b, 0xd5, 0x0, 0x2b, 0xd5, 0x0, 0x0,
0x4f, 0x70, 0x0, 0x0, 0x1, 0x8e, 0x81, 0x0,
0x0, 0x1, 0x8e, 0x81, 0x0, 0x0, 0x1, 0x8a,
0x0, 0x0, 0x0, 0x0,
/* U+003D "=" */
0x4e, 0xee, 0xee, 0xea, 0x1, 0x11, 0x11, 0x11,
0x0, 0x0, 0x0, 0x0, 0x4e, 0xee, 0xee, 0xea,
0x1, 0x11, 0x11, 0x11,
/* U+003E ">" */
0x35, 0x0, 0x0, 0x0, 0x1a, 0xd5, 0x0, 0x0,
0x0, 0x2a, 0xd6, 0x0, 0x0, 0x0, 0x2a, 0xd5,
0x0, 0x0, 0x4, 0xd9, 0x0, 0x4, 0xcb, 0x40,
0x5, 0xdb, 0x30, 0x0, 0x5b, 0x30, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
/* U+003F "?" */
0x1, 0xaf, 0xe8, 0x0, 0xac, 0x34, 0xe7, 0x1f,
0x20, 0x7, 0xc1, 0x90, 0x0, 0x7c, 0x0, 0x0,
0x1e, 0x70, 0x0, 0xc, 0xb0, 0x0, 0x7, 0xd0,
0x0, 0x0, 0xb7, 0x0, 0x0, 0x4, 0x20, 0x0,
0x0, 0xa6, 0x0, 0x0, 0xf, 0x90, 0x0,
/* U+0040 "@" */
0x0, 0x6, 0xcd, 0xda, 0x30, 0x0, 0xb, 0x91,
0x0, 0x3d, 0x50, 0x8, 0x90, 0x7d, 0xc4, 0x7e,
0x11, 0xe0, 0x7d, 0x37, 0xf5, 0x96, 0x4a, 0xe,
0x30, 0xf, 0x16, 0x86, 0x94, 0xc0, 0x1, 0xd0,
0x87, 0x4a, 0x5a, 0x0, 0x78, 0xd, 0x21, 0xe3,
0xe0, 0x2e, 0x57, 0x80, 0x8, 0x97, 0xd9, 0x6d,
0x76, 0x0, 0xb, 0x91, 0x0, 0x2b, 0x60, 0x0,
0x6, 0xcd, 0xdb, 0x30, 0x0,
/* U+0041 "A" */
0x0, 0x0, 0x5f, 0x70, 0x0, 0x0, 0x0, 0xb,
0xfc, 0x0, 0x0, 0x0, 0x1, 0xf9, 0xf2, 0x0,
0x0, 0x0, 0x6f, 0xe, 0x80, 0x0, 0x0, 0xc,
0xa0, 0x9d, 0x0, 0x0, 0x2, 0xf5, 0x4, 0xf3,
0x0, 0x0, 0x7f, 0x0, 0xf, 0x90, 0x0, 0xd,
0xff, 0xff, 0xfe, 0x0, 0x3, 0xf6, 0x33, 0x36,
0xf4, 0x0, 0x9d, 0x0, 0x0, 0xd, 0xa0, 0xe,
0x70, 0x0, 0x0, 0x7f, 0x0,
/* U+0042 "B" */
0xef, 0xff, 0xfd, 0x60, 0xe8, 0x33, 0x39, 0xf3,
0xe6, 0x0, 0x0, 0xe8, 0xe6, 0x0, 0x0, 0xd7,
0xe6, 0x0, 0x16, 0xf1, 0xef, 0xff, 0xff, 0x80,
0xe8, 0x33, 0x36, 0xe8, 0xe6, 0x0, 0x0, 0x7e,
0xe6, 0x0, 0x0, 0x7d, 0xe8, 0x33, 0x35, 0xe8,
0xef, 0xff, 0xfe, 0x80,
/* U+0043 "C" */
0x0, 0x1a, 0xef, 0xd6, 0x0, 0x2, 0xeb, 0x53,
0x7e, 0x90, 0xb, 0xc0, 0x0, 0x4, 0xf2, 0x1f,
0x40, 0x0, 0x0, 0x62, 0x4f, 0x0, 0x0, 0x0,
0x0, 0x5f, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x10,
0x0, 0x0, 0x21, 0x2f, 0x40, 0x0, 0x0, 0xe6,
0xc, 0xc0, 0x0, 0x5, 0xf1, 0x2, 0xfb, 0x53,
0x7f, 0x80, 0x0, 0x2a, 0xef, 0xd6, 0x0,
/* U+0044 "D" */
0xef, 0xff, 0xea, 0x30, 0xe, 0x83, 0x34, 0xaf,
0x30, 0xe6, 0x0, 0x0, 0xbd, 0xe, 0x60, 0x0,
0x4, 0xf2, 0xe6, 0x0, 0x0, 0x1f, 0x4e, 0x60,
0x0, 0x0, 0xf4, 0xe6, 0x0, 0x0, 0x1f, 0x3e,
0x60, 0x0, 0x5, 0xf1, 0xe6, 0x0, 0x0, 0xcb,
0xe, 0x83, 0x35, 0xcf, 0x20, 0xef, 0xff, 0xea,
0x20, 0x0,
/* U+0045 "E" */
0xef, 0xff, 0xff, 0xf0, 0xe8, 0x33, 0x33, 0x30,
0xe6, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0,
0xe6, 0x0, 0x0, 0x0, 0xef, 0xff, 0xff, 0x90,
0xe8, 0x33, 0x33, 0x10, 0xe6, 0x0, 0x0, 0x0,
0xe6, 0x0, 0x0, 0x0, 0xe8, 0x33, 0x33, 0x30,
0xef, 0xff, 0xff, 0xf0,
/* U+0046 "F" */
0xef, 0xff, 0xff, 0xae, 0x83, 0x33, 0x32, 0xe6,
0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0xe6, 0x0,
0x0, 0xe, 0xff, 0xff, 0xf0, 0xe8, 0x33, 0x33,
0xe, 0x60, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xe,
0x60, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0,
/* U+0047 "G" */
0x0, 0x19, 0xef, 0xd8, 0x10, 0x1, 0xec, 0x53,
0x6d, 0xc0, 0xa, 0xd0, 0x0, 0x1, 0xf5, 0x1f,
0x50, 0x0, 0x0, 0x43, 0x4f, 0x10, 0x0, 0x0,
0x0, 0x5f, 0x0, 0xa, 0xff, 0xfc, 0x5f, 0x0,
0x2, 0x33, 0x9c, 0x1f, 0x40, 0x0, 0x0, 0xac,
0xb, 0xc0, 0x0, 0x2, 0xfc, 0x1, 0xec, 0x53,
0x6e, 0xcc, 0x0, 0x19, 0xef, 0xc5, 0x3c,
/* U+0048 "H" */
0xe6, 0x0, 0x0, 0x5f, 0xe, 0x60, 0x0, 0x5,
0xf0, 0xe6, 0x0, 0x0, 0x5f, 0xe, 0x60, 0x0,
0x5, 0xf0, 0xe6, 0x0, 0x0, 0x5f, 0xe, 0xff,
0xff, 0xff, 0xf0, 0xe8, 0x33, 0x33, 0x7f, 0xe,
0x60, 0x0, 0x5, 0xf0, 0xe6, 0x0, 0x0, 0x5f,
0xe, 0x60, 0x0, 0x5, 0xf0, 0xe6, 0x0, 0x0,
0x5f, 0x0,
/* U+0049 "I" */
0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7, 0xd7,
0xd7, 0xd7, 0xd7,
/* U+004A "J" */
0x0, 0x0, 0x2f, 0x20, 0x0, 0x2, 0xf2, 0x0,
0x0, 0x2f, 0x20, 0x0, 0x2, 0xf2, 0x0, 0x0,
0x2f, 0x20, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2f,
0x28, 0x80, 0x2, 0xf2, 0x9b, 0x0, 0x3f, 0x15,
0xf6, 0x4c, 0xd0, 0x7, 0xef, 0xb2, 0x0,
/* U+004B "K" */
0xe6, 0x0, 0x1, 0xdb, 0xe, 0x60, 0x1, 0xdc,
0x0, 0xe6, 0x0, 0xcc, 0x0, 0xe, 0x60, 0xbd,
0x10, 0x0, 0xe6, 0xaf, 0x30, 0x0, 0xe, 0xee,
0xdb, 0x0, 0x0, 0xee, 0x23, 0xf5, 0x0, 0xe,
0x60, 0x9, 0xe1, 0x0, 0xe6, 0x0, 0xe, 0xb0,
0xe, 0x60, 0x0, 0x4f, 0x50, 0xe6, 0x0, 0x0,
0x9e, 0x10,
/* U+004C "L" */
0xe6, 0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0xe6,
0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0xe6, 0x0,
0x0, 0xe, 0x60, 0x0, 0x0, 0xe6, 0x0, 0x0,
0xe, 0x60, 0x0, 0x0, 0xe6, 0x0, 0x0, 0xe,
0x83, 0x33, 0x32, 0xef, 0xff, 0xff, 0xb0,
/* U+004D "M" */
0xef, 0x10, 0x0, 0x0, 0xef, 0x1e, 0xf7, 0x0,
0x0, 0x4f, 0xf1, 0xeb, 0xc0, 0x0, 0x9, 0xbf,
0x1e, 0x6f, 0x20, 0x0, 0xe6, 0xf1, 0xe6, 0xb7,
0x0, 0x4d, 0x3f, 0x1e, 0x65, 0xd0, 0xa, 0x83,
0xf1, 0xe6, 0xf, 0x20, 0xf3, 0x3f, 0x1e, 0x60,
0xa7, 0x4d, 0x3, 0xf1, 0xe6, 0x5, 0xda, 0x80,
0x3f, 0x1e, 0x60, 0xf, 0xf2, 0x3, 0xf1, 0xe6,
0x0, 0xad, 0x0, 0x3f, 0x10,
/* U+004E "N" */
0xec, 0x0, 0x0, 0x3f, 0xe, 0xf5, 0x0, 0x3,
0xf0, 0xec, 0xe0, 0x0, 0x3f, 0xe, 0x5d, 0x80,
0x3, 0xf0, 0xe5, 0x4f, 0x20, 0x3f, 0xe, 0x50,
0xab, 0x3, 0xf0, 0xe5, 0x1, 0xf5, 0x3f, 0xe,
0x50, 0x7, 0xd4, 0xf0, 0xe5, 0x0, 0xd, 0xbf,
0xe, 0x50, 0x0, 0x4f, 0xf0, 0xe5, 0x0, 0x0,
0xbf, 0x0,
/* U+004F "O" */
0x0, 0x19, 0xef, 0xd6, 0x0, 0x0, 0x2e, 0xc5,
0x37, 0xeb, 0x0, 0xc, 0xb0, 0x0, 0x2, 0xf6,
0x2, 0xf3, 0x0, 0x0, 0x9, 0xc0, 0x6f, 0x0,
0x0, 0x0, 0x5f, 0x7, 0xe0, 0x0, 0x0, 0x3,
0xf1, 0x6f, 0x0, 0x0, 0x0, 0x5f, 0x2, 0xf3,
0x0, 0x0, 0x9, 0xc0, 0xc, 0xb0, 0x0, 0x2,
0xf6, 0x0, 0x2e, 0xc5, 0x37, 0xeb, 0x0, 0x0,
0x19, 0xef, 0xd6, 0x0, 0x0,
/* U+0050 "P" */
0xef, 0xff, 0xfd, 0x50, 0xe8, 0x33, 0x4a, 0xf2,
0xe6, 0x0, 0x0, 0xe7, 0xe6, 0x0, 0x0, 0xd7,
0xe6, 0x0, 0x7, 0xf3, 0xef, 0xff, 0xff, 0x80,
0xe8, 0x33, 0x20, 0x0, 0xe6, 0x0, 0x0, 0x0,
0xe6, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0,
0xe6, 0x0, 0x0, 0x0,
/* U+0051 "Q" */
0x0, 0x19, 0xef, 0xd6, 0x0, 0x0, 0x2e, 0xc5,
0x37, 0xeb, 0x0, 0xc, 0xb0, 0x0, 0x2, 0xf6,
0x2, 0xf3, 0x0, 0x0, 0x9, 0xc0, 0x6f, 0x0,
0x0, 0x0, 0x5f, 0x7, 0xe0, 0x0, 0x0, 0x3,
0xf1, 0x6f, 0x0, 0x0, 0x0, 0x5f, 0x2, 0xf3,
0x0, 0x1, 0x9, 0xc0, 0xc, 0xb0, 0x2, 0xe6,
0xf6, 0x0, 0x2e, 0xc5, 0x3b, 0xfd, 0x0, 0x0,
0x19, 0xef, 0xd8, 0xe8, 0x0, 0x0, 0x0, 0x0,
0x2, 0x40,
/* U+0052 "R" */
0xef, 0xff, 0xfe, 0x80, 0xe, 0x83, 0x33, 0x6f,
0x70, 0xe6, 0x0, 0x0, 0x9c, 0xe, 0x60, 0x0,
0x9, 0xb0, 0xe6, 0x0, 0x4, 0xe6, 0xe, 0xff,
0xff, 0xf9, 0x0, 0xe8, 0x33, 0x37, 0xf3, 0xe,
0x60, 0x0, 0xd, 0x80, 0xe6, 0x0, 0x0, 0xaa,
0xe, 0x60, 0x0, 0x9, 0xb0, 0xe6, 0x0, 0x0,
0x7e, 0x0,
/* U+0053 "S" */
0x0, 0x8d, 0xfd, 0x70, 0x0, 0xbd, 0x53, 0x6e,
0x90, 0x1f, 0x40, 0x0, 0x6f, 0x1, 0xf5, 0x0,
0x0, 0x50, 0xa, 0xfa, 0x51, 0x0, 0x0, 0x6,
0xbe, 0xfc, 0x40, 0x0, 0x0, 0x3, 0xaf, 0x35,
0x90, 0x0, 0x0, 0xe8, 0x4f, 0x20, 0x0, 0xe,
0x70, 0xce, 0x63, 0x4b, 0xe1, 0x0, 0x7d, 0xfe,
0xa2, 0x0,
/* U+0054 "T" */
0xff, 0xff, 0xff, 0xff, 0x3, 0x33, 0xbc, 0x33,
0x30, 0x0, 0xa, 0xb0, 0x0, 0x0, 0x0, 0xab,
0x0, 0x0, 0x0, 0xa, 0xb0, 0x0, 0x0, 0x0,
0xab, 0x0, 0x0, 0x0, 0xa, 0xb0, 0x0, 0x0,
0x0, 0xab, 0x0, 0x0, 0x0, 0xa, 0xb0, 0x0,
0x0, 0x0, 0xab, 0x0, 0x0, 0x0, 0xa, 0xb0,
0x0, 0x0,
/* U+0055 "U" */
0xf5, 0x0, 0x0, 0x4f, 0x1f, 0x50, 0x0, 0x4,
0xf1, 0xf5, 0x0, 0x0, 0x4f, 0x1f, 0x50, 0x0,
0x4, 0xf1, 0xf5, 0x0, 0x0, 0x4f, 0x1f, 0x50,
0x0, 0x4, 0xf1, 0xf5, 0x0, 0x0, 0x4f, 0x1e,
0x70, 0x0, 0x5, 0xf0, 0xbc, 0x0, 0x0, 0xad,
0x4, 0xfa, 0x44, 0x9f, 0x50, 0x4, 0xcf, 0xfd,
0x50, 0x0,
/* U+0056 "V" */
0xd, 0x90, 0x0, 0x0, 0xe6, 0x8, 0xd0, 0x0,
0x4, 0xf1, 0x3, 0xf2, 0x0, 0x8, 0xc0, 0x0,
0xe7, 0x0, 0xd, 0x70, 0x0, 0x9c, 0x0, 0x2f,
0x20, 0x0, 0x4f, 0x10, 0x7c, 0x0, 0x0, 0xe,
0x50, 0xc7, 0x0, 0x0, 0x9, 0xa1, 0xf2, 0x0,
0x0, 0x4, 0xf6, 0xd0, 0x0, 0x0, 0x0, 0xfe,
0x80, 0x0, 0x0, 0x0, 0xaf, 0x30, 0x0,
/* U+0057 "W" */
0xba, 0x0, 0x5, 0xf5, 0x0, 0xa, 0xa7, 0xd0,
0x0, 0x9f, 0x90, 0x0, 0xd6, 0x3f, 0x10, 0xd,
0x9c, 0x0, 0x1f, 0x30, 0xf4, 0x1, 0xf2, 0xf0,
0x4, 0xe0, 0xc, 0x70, 0x5b, 0xd, 0x40, 0x8b,
0x0, 0x8b, 0x9, 0x70, 0x98, 0xc, 0x70, 0x5,
0xe0, 0xd3, 0x6, 0xc0, 0xf3, 0x0, 0x1f, 0x3f,
0x0, 0x2f, 0x3f, 0x0, 0x0, 0xda, 0xb0, 0x0,
0xea, 0xb0, 0x0, 0x9, 0xf7, 0x0, 0xa, 0xf7,
0x0, 0x0, 0x6f, 0x30, 0x0, 0x6f, 0x30, 0x0,
/* U+0058 "X" */
0x8, 0xf1, 0x0, 0x6, 0xf1, 0x0, 0xda, 0x0,
0x1f, 0x60, 0x0, 0x4f, 0x30, 0xac, 0x0, 0x0,
0xa, 0xc4, 0xf3, 0x0, 0x0, 0x1, 0xff, 0x90,
0x0, 0x0, 0x0, 0xbf, 0x30, 0x0, 0x0, 0x3,
0xfd, 0xc0, 0x0, 0x0, 0xd, 0x92, 0xf6, 0x0,
0x0, 0x7e, 0x10, 0x8e, 0x10, 0x2, 0xf6, 0x0,
0xe, 0xa0, 0xb, 0xc0, 0x0, 0x5, 0xf4,
/* U+0059 "Y" */
0xad, 0x0, 0x0, 0xb, 0xc0, 0x1f, 0x70, 0x0,
0x4f, 0x20, 0x7, 0xf1, 0x0, 0xd9, 0x0, 0x0,
0xd9, 0x6, 0xe1, 0x0, 0x0, 0x4f, 0x4e, 0x60,
0x0, 0x0, 0xb, 0xfc, 0x0, 0x0, 0x0, 0x2,
0xf4, 0x0, 0x0, 0x0, 0x1, 0xf3, 0x0, 0x0,
0x0, 0x1, 0xf3, 0x0, 0x0, 0x0, 0x1, 0xf3,
0x0, 0x0, 0x0, 0x1, 0xf3, 0x0, 0x0,
/* U+005A "Z" */
0x3f, 0xff, 0xff, 0xff, 0x10, 0x33, 0x33, 0x3c,
0xd0, 0x0, 0x0, 0x6, 0xf2, 0x0, 0x0, 0x2,
0xf6, 0x0, 0x0, 0x0, 0xdb, 0x0, 0x0, 0x0,
0x9e, 0x10, 0x0, 0x0, 0x4f, 0x40, 0x0, 0x0,
0x1e, 0x80, 0x0, 0x0, 0xb, 0xc0, 0x0, 0x0,
0x7, 0xf5, 0x33, 0x33, 0x30, 0xbf, 0xff, 0xff,
0xff, 0x40,
/* U+005B "[" */
0xff, 0xaf, 0x20, 0xf2, 0xf, 0x20, 0xf2, 0xf,
0x20, 0xf2, 0xf, 0x20, 0xf2, 0xf, 0x20, 0xf2,
0xf, 0x20, 0xf2, 0xf, 0xfa,
/* U+005C "\\" */
0x1e, 0x0, 0x0, 0xb, 0x50, 0x0, 0x4, 0xb0,
0x0, 0x0, 0xe1, 0x0, 0x0, 0x87, 0x0, 0x0,
0x2d, 0x0, 0x0, 0xc, 0x30, 0x0, 0x6, 0x90,
0x0, 0x1, 0xe0, 0x0, 0x0, 0xa5, 0x0, 0x0,
0x4b,
/* U+005D "]" */
0xff, 0xa0, 0x8a, 0x8, 0xa0, 0x8a, 0x8, 0xa0,
0x8a, 0x8, 0xa0, 0x8a, 0x8, 0xa0, 0x8a, 0x8,
0xa0, 0x8a, 0x8, 0xaf, 0xfa,
/* U+005E "^" */
0x0, 0x2, 0x60, 0x0, 0x0, 0xb, 0xe2, 0x0,
0x0, 0x3c, 0x69, 0x0, 0x0, 0xa4, 0xd, 0x10,
0x2, 0xd0, 0x7, 0x80, 0x9, 0x60, 0x0, 0xd0,
0x1d, 0x0, 0x0, 0x87,
/* U+005F "_" */
0xcc, 0xcc, 0xcc, 0xc0,
/* U+0060 "`" */
0xc, 0x80, 0x1, 0xd2,
/* U+0061 "a" */
0x3, 0xcf, 0xea, 0x0, 0xe, 0x82, 0x4e, 0x70,
0x18, 0x0, 0xa, 0x80, 0x0, 0x59, 0xcf, 0x90,
0x1e, 0xa5, 0x3a, 0x90, 0x6d, 0x0, 0xb, 0x90,
0x6f, 0x43, 0x8f, 0xa0, 0xa, 0xfe, 0x95, 0xf4,
/* U+0062 "b" */
0x1f, 0x20, 0x0, 0x0, 0x1f, 0x20, 0x0, 0x0,
0x1f, 0x20, 0x0, 0x0, 0x1f, 0x6d, 0xfd, 0x40,
0x1f, 0xe5, 0x39, 0xf1, 0x1f, 0x60, 0x0, 0xc8,
0x1f, 0x20, 0x0, 0x8b, 0x1f, 0x20, 0x0, 0x8b,
0x1f, 0x60, 0x0, 0xc9, 0x1f, 0xe5, 0x38, 0xf2,
0x1f, 0x5c, 0xfd, 0x40,
/* U+0063 "c" */
0x1, 0xbf, 0xea, 0x10, 0xc, 0xc3, 0x3c, 0xa0,
0x3f, 0x10, 0x3, 0x90, 0x6d, 0x0, 0x0, 0x0,
0x7d, 0x0, 0x0, 0x0, 0x4f, 0x10, 0x4, 0xe0,
0xd, 0xb3, 0x4d, 0x80, 0x2, 0xbf, 0xe9, 0x0,
/* U+0064 "d" */
0x0, 0x0, 0x0, 0xd5, 0x0, 0x0, 0x0, 0xd5,
0x0, 0x0, 0x0, 0xd5, 0x2, 0xbf, 0xe6, 0xd5,
0xd, 0xc3, 0x4c, 0xf5, 0x4f, 0x10, 0x2, 0xf5,
0x6d, 0x0, 0x0, 0xd5, 0x6c, 0x0, 0x0, 0xd5,
0x4f, 0x0, 0x1, 0xf5, 0xc, 0xa1, 0x1a, 0xf5,
0x1, 0xbf, 0xe9, 0xd5,
/* U+0065 "e" */
0x1, 0xaf, 0xe8, 0x0, 0xc, 0xa3, 0x4d, 0x80,
0x3e, 0x0, 0x3, 0xe0, 0x6f, 0xff, 0xff, 0xf2,
0x6d, 0x22, 0x22, 0x20, 0x3f, 0x10, 0x2, 0xb0,
0xc, 0xc3, 0x3c, 0x90, 0x1, 0xbf, 0xe9, 0x0,
/* U+0066 "f" */
0x2, 0xdf, 0x20, 0x8c, 0x30, 0x9, 0x90, 0xd,
0xff, 0xf0, 0x1a, 0xa1, 0x0, 0x99, 0x0, 0x9,
0x90, 0x0, 0x99, 0x0, 0x9, 0x90, 0x0, 0x99,
0x0, 0x9, 0x90, 0x0,
/* U+0067 "g" */
0x1, 0xbf, 0xe5, 0xf2, 0xc, 0xb3, 0x4d, 0xf2,
0x3f, 0x10, 0x4, 0xf2, 0x6d, 0x0, 0x1, 0xf2,
0x7d, 0x0, 0x1, 0xf2, 0x4f, 0x0, 0x5, 0xf2,
0xd, 0xb3, 0x5d, 0xf2, 0x2, 0xbf, 0xd4, 0xf1,
0x3, 0x0, 0x3, 0xf0, 0xf, 0x71, 0x2c, 0x90,
0x4, 0xcf, 0xe9, 0x0,
/* U+0068 "h" */
0x1f, 0x10, 0x0, 0x1, 0xf1, 0x0, 0x0, 0x1f,
0x10, 0x0, 0x1, 0xf5, 0xdf, 0xc2, 0x1f, 0xd4,
0x3c, 0xa1, 0xf4, 0x0, 0x5d, 0x1f, 0x10, 0x4,
0xe1, 0xf1, 0x0, 0x4e, 0x1f, 0x10, 0x4, 0xe1,
0xf1, 0x0, 0x4e, 0x1f, 0x10, 0x4, 0xe0,
/* U+0069 "i" */
0xf, 0x20, 0x91, 0x0, 0x0, 0xf2, 0xf, 0x20,
0xf2, 0xf, 0x20, 0xf2, 0xf, 0x20, 0xf2, 0xf,
0x20,
/* U+006A "j" */
0x0, 0xf2, 0x0, 0x91, 0x0, 0x0, 0x0, 0xf2,
0x0, 0xf2, 0x0, 0xf2, 0x0, 0xf2, 0x0, 0xf2,
0x0, 0xf2, 0x0, 0xf2, 0x0, 0xf2, 0x0, 0xf2,
0x4, 0xf1, 0x3f, 0x90,
/* U+006B "k" */
0xf, 0x20, 0x0, 0x0, 0xf, 0x20, 0x0, 0x0,
0xf, 0x20, 0x0, 0x0, 0xf, 0x20, 0x2e, 0x90,
0xf, 0x21, 0xd9, 0x0, 0xf, 0x3d, 0x90, 0x0,
0xf, 0xef, 0x80, 0x0, 0xf, 0x95, 0xf2, 0x0,
0xf, 0x20, 0xbb, 0x0, 0xf, 0x20, 0x2f, 0x50,
0xf, 0x20, 0x8, 0xe0,
/* U+006C "l" */
0xf, 0x20, 0xf2, 0xf, 0x20, 0xf2, 0xf, 0x20,
0xf2, 0xf, 0x20, 0xf2, 0xf, 0x20, 0xf2, 0xf,
0x20,
/* U+006D "m" */
0x1f, 0x5d, 0xfb, 0x2b, 0xfd, 0x40, 0x1f, 0xb1,
0x1e, 0xf4, 0x7, 0xe0, 0x1f, 0x30, 0xa, 0xa0,
0x2, 0xf0, 0x1f, 0x10, 0xa, 0x90, 0x2, 0xf0,
0x1f, 0x10, 0xa, 0x90, 0x2, 0xf0, 0x1f, 0x10,
0xa, 0x90, 0x2, 0xf0, 0x1f, 0x10, 0xa, 0x90,
0x2, 0xf0, 0x1f, 0x10, 0xa, 0x90, 0x2, 0xf0,
/* U+006E "n" */
0x1f, 0x4d, 0xfc, 0x21, 0xfb, 0x10, 0xaa, 0x1f,
0x40, 0x5, 0xd1, 0xf1, 0x0, 0x4e, 0x1f, 0x10,
0x4, 0xe1, 0xf1, 0x0, 0x4e, 0x1f, 0x10, 0x4,
0xe1, 0xf1, 0x0, 0x4e,
/* U+006F "o" */
0x1, 0xaf, 0xfa, 0x10, 0xc, 0xc4, 0x3c, 0xc0,
0x4f, 0x10, 0x1, 0xf4, 0x6d, 0x0, 0x0, 0xc7,
0x6d, 0x0, 0x0, 0xc7, 0x4f, 0x10, 0x1, 0xf4,
0xc, 0xc4, 0x3c, 0xc0, 0x1, 0xaf, 0xfa, 0x10,
/* U+0070 "p" */
0x1f, 0x7d, 0xfd, 0x40, 0x1f, 0xd2, 0x6, 0xf1,
0x1f, 0x50, 0x0, 0xb8, 0x1f, 0x20, 0x0, 0x8b,
0x1f, 0x20, 0x0, 0x8b, 0x1f, 0x60, 0x0, 0xc9,
0x1f, 0xe5, 0x38, 0xf2, 0x1f, 0x5c, 0xfd, 0x40,
0x1f, 0x20, 0x0, 0x0, 0x1f, 0x20, 0x0, 0x0,
0x1f, 0x20, 0x0, 0x0,
/* U+0071 "q" */
0x2, 0xbf, 0xe6, 0xd5, 0xd, 0xb3, 0x4c, 0xf5,
0x4f, 0x10, 0x2, 0xf5, 0x6d, 0x0, 0x0, 0xd5,
0x6d, 0x0, 0x0, 0xd5, 0x4f, 0x10, 0x1, 0xf5,
0xc, 0xc3, 0x3c, 0xf5, 0x1, 0xbf, 0xe7, 0xd5,
0x0, 0x0, 0x0, 0xd5, 0x0, 0x0, 0x0, 0xd5,
0x0, 0x0, 0x0, 0xd5,
/* U+0072 "r" */
0x2f, 0x2c, 0xa2, 0xfd, 0x72, 0x2f, 0x60, 0x2,
0xf2, 0x0, 0x2f, 0x0, 0x2, 0xf0, 0x0, 0x2f,
0x0, 0x2, 0xf0, 0x0,
/* U+0073 "s" */
0x6, 0xdf, 0xd4, 0x3, 0xf5, 0x28, 0xf0, 0x5e,
0x10, 0x6, 0x10, 0xbf, 0xb7, 0x20, 0x0, 0x27,
0xcf, 0x34, 0x60, 0x0, 0xc8, 0x4f, 0x62, 0x4e,
0x50, 0x6d, 0xfd, 0x70,
/* U+0074 "t" */
0xa, 0x80, 0xa, 0x80, 0xef, 0xff, 0x1a, 0x91,
0xa, 0x80, 0xa, 0x80, 0xa, 0x80, 0xa, 0x80,
0x9, 0xa2, 0x4, 0xef,
/* U+0075 "u" */
0x1f, 0x10, 0x4, 0xe1, 0xf1, 0x0, 0x4e, 0x1f,
0x10, 0x4, 0xe1, 0xf1, 0x0, 0x4e, 0x1f, 0x10,
0x4, 0xe1, 0xf1, 0x0, 0x7e, 0xd, 0x70, 0x3d,
0xe0, 0x4d, 0xfc, 0x6e,
/* U+0076 "v" */
0xaa, 0x0, 0x9, 0xa4, 0xf0, 0x0, 0xe4, 0xe,
0x40, 0x2f, 0x0, 0x99, 0x7, 0xa0, 0x4, 0xe0,
0xc4, 0x0, 0xe, 0x4f, 0x0, 0x0, 0x9d, 0xa0,
0x0, 0x4, 0xf5, 0x0,
/* U+0077 "w" */
0x9a, 0x0, 0x7f, 0x10, 0xf, 0x35, 0xe0, 0xa,
0xf5, 0x3, 0xe0, 0xf, 0x20, 0xe9, 0x80, 0x7a,
0x0, 0xb6, 0x1e, 0x3c, 0xb, 0x50, 0x7, 0xa5,
0xa0, 0xf0, 0xf1, 0x0, 0x2e, 0x86, 0xc, 0x7c,
0x0, 0x0, 0xde, 0x30, 0x8e, 0x70, 0x0, 0x9,
0xf0, 0x5, 0xf3, 0x0,
/* U+0078 "x" */
0x5f, 0x20, 0xe, 0x70, 0xa, 0xc0, 0x9c, 0x0,
0x1, 0xe9, 0xf2, 0x0, 0x0, 0x6f, 0x80, 0x0,
0x0, 0x9f, 0xd0, 0x0, 0x4, 0xf2, 0xe8, 0x0,
0xd, 0x70, 0x5f, 0x20, 0x8d, 0x0, 0xb, 0xc0,
/* U+0079 "y" */
0xb9, 0x0, 0x8, 0xb5, 0xe0, 0x0, 0xd5, 0xf,
0x40, 0x2f, 0x0, 0x99, 0x7, 0xa0, 0x3, 0xe0,
0xc4, 0x0, 0xd, 0x5e, 0x0, 0x0, 0x8e, 0x90,
0x0, 0x2, 0xf3, 0x0, 0x0, 0x4d, 0x0, 0x0,
0x3c, 0x70, 0x0, 0x2f, 0xb0, 0x0, 0x0,
/* U+007A "z" */
0x6f, 0xff, 0xff, 0x30, 0x22, 0x2b, 0xb0, 0x0,
0x5, 0xe1, 0x0, 0x2, 0xf4, 0x0, 0x0, 0xc8,
0x0, 0x0, 0x9c, 0x0, 0x0, 0x4f, 0x42, 0x22,
0xa, 0xff, 0xff, 0xf6,
/* U+007B "{" */
0x0, 0x9e, 0x40, 0x1f, 0x10, 0x2, 0xf0, 0x0,
0x2f, 0x0, 0x3, 0xf0, 0x0, 0x8c, 0x0, 0x4f,
0x20, 0x0, 0xaa, 0x0, 0x3, 0xe0, 0x0, 0x2f,
0x0, 0x2, 0xf0, 0x0, 0x2f, 0x0, 0x1, 0xf1,
0x0, 0x8, 0xe4,
/* U+007C "|" */
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
/* U+007D "}" */
0x9e, 0x40, 0x6, 0xc0, 0x4, 0xd0, 0x4, 0xd0,
0x4, 0xd0, 0x2, 0xf2, 0x0, 0x8f, 0x0, 0xe6,
0x4, 0xe0, 0x4, 0xd0, 0x4, 0xd0, 0x4, 0xd0,
0x6, 0xb0, 0x9e, 0x40,
/* U+007E "~" */
0x0, 0x0, 0x0, 0x0, 0x6, 0xec, 0x60, 0x73,
0x9, 0x2, 0x9e, 0xa0, 0x0, 0x0, 0x0, 0x0
};
/*---------------------
* GLYPH DESCRIPTION
*--------------------*/
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
{.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
{.bitmap_index = 0, .adv_w = 62, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 0, .adv_w = 58, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 11, .adv_w = 95, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 7},
{.bitmap_index = 19, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 63, .adv_w = 125, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 119, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 185, .adv_w = 141, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 240, .adv_w = 62, .box_w = 2, .box_h = 4, .ofs_x = 1, .ofs_y = 7},
{.bitmap_index = 244, .adv_w = 58, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 272, .adv_w = 58, .box_w = 4, .box_h = 14, .ofs_x = -1, .ofs_y = -3},
{.bitmap_index = 300, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 6},
{.bitmap_index = 313, .adv_w = 134, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 345, .adv_w = 62, .box_w = 2, .box_h = 5, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 350, .adv_w = 87, .box_w = 5, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
{.bitmap_index = 358, .adv_w = 62, .box_w = 2, .box_h = 2, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 360, .adv_w = 75, .box_w = 6, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 393, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 437, .adv_w = 125, .box_w = 4, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 459, .adv_w = 125, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 498, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 542, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 586, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 630, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 674, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 718, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 762, .adv_w = 125, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 806, .adv_w = 62, .box_w = 2, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 814, .adv_w = 62, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 825, .adv_w = 134, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 861, .adv_w = 134, .box_w = 8, .box_h = 5, .ofs_x = 0, .ofs_y = 1},
{.bitmap_index = 881, .adv_w = 134, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 917, .adv_w = 125, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 956, .adv_w = 179, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1017, .adv_w = 145, .box_w = 11, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 1078, .adv_w = 153, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1122, .adv_w = 162, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1177, .adv_w = 158, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1227, .adv_w = 137, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1271, .adv_w = 129, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1310, .adv_w = 170, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1365, .adv_w = 162, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1415, .adv_w = 58, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1426, .adv_w = 116, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1465, .adv_w = 149, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1515, .adv_w = 125, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1554, .adv_w = 195, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1615, .adv_w = 162, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1665, .adv_w = 170, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1726, .adv_w = 145, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1770, .adv_w = 170, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
{.bitmap_index = 1836, .adv_w = 153, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 1886, .adv_w = 145, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1936, .adv_w = 129, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 1986, .adv_w = 162, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
{.bitmap_index = 2036, .adv_w = 137, .box_w = 10, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2091, .adv_w = 207, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2163, .adv_w = 137, .box_w = 10, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2218, .adv_w = 145, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2273, .adv_w = 137, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2323, .adv_w = 58, .box_w = 3, .box_h = 14, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 2344, .adv_w = 75, .box_w = 6, .box_h = 11, .ofs_x = -1, .ofs_y = 0},
{.bitmap_index = 2377, .adv_w = 58, .box_w = 3, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 2398, .adv_w = 134, .box_w = 8, .box_h = 7, .ofs_x = 0, .ofs_y = 4},
{.bitmap_index = 2426, .adv_w = 112, .box_w = 7, .box_h = 1, .ofs_x = 0, .ofs_y = -2},
{.bitmap_index = 2430, .adv_w = 50, .box_w = 4, .box_h = 2, .ofs_x = -1, .ofs_y = 9},
{.bitmap_index = 2434, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2466, .adv_w = 133, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2510, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2542, .adv_w = 133, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2586, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2618, .adv_w = 66, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2646, .adv_w = 129, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 2690, .adv_w = 125, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2729, .adv_w = 50, .box_w = 3, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2746, .adv_w = 50, .box_w = 4, .box_h = 14, .ofs_x = -1, .ofs_y = -3},
{.bitmap_index = 2774, .adv_w = 116, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2818, .adv_w = 50, .box_w = 3, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2835, .adv_w = 191, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2883, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2911, .adv_w = 129, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 2943, .adv_w = 133, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 2987, .adv_w = 133, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 3031, .adv_w = 75, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3051, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3079, .adv_w = 71, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3099, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3127, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3155, .adv_w = 170, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3199, .adv_w = 116, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3231, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 3270, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
{.bitmap_index = 3298, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 3333, .adv_w = 50, .box_w = 2, .box_h = 15, .ofs_x = 1, .ofs_y = -3},
{.bitmap_index = 3348, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -3},
{.bitmap_index = 3376, .adv_w = 134, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 2}
};
/*---------------------
* CHARACTER MAPPING
*--------------------*/
/*Collect the unicode lists and glyph_id offsets*/
static const lv_font_fmt_txt_cmap_t cmaps[] =
{
{
.range_start = 32, .range_length = 95, .glyph_id_start = 1,
.unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
}
};
/*-----------------
* KERNING
*----------------*/
/*Pair left and right glyphs for kerning*/
static const uint8_t kern_pair_glyph_ids[] =
{
34, 55,
34, 87,
39, 13,
39, 15,
39, 34,
45, 55,
49, 13,
49, 15,
49, 34,
51, 55,
53, 13,
53, 14,
53, 15,
53, 27,
53, 28,
55, 13,
55, 14,
55, 15,
55, 27,
55, 28,
55, 34,
55, 66,
55, 70,
55, 74,
55, 80,
55, 83,
55, 86,
55, 90,
56, 13,
56, 15,
56, 27,
56, 28,
58, 13,
58, 14,
58, 15,
58, 27,
58, 28,
58, 81,
58, 82,
58, 87,
71, 71,
83, 13,
83, 14,
83, 15,
83, 82,
87, 13,
87, 15,
88, 13,
88, 15,
90, 13,
90, 15
};
/* Kerning between the respective left and right glyphs
* 4.4 format which needs to scaled with `kern_scale`*/
static const int8_t kern_pair_values[] =
{
-10, -4, -35, -35, -12, -21, -40, -40,
-17, -4, -25, -29, -25, -25, -25, -29,
-12, -29, -10, -10, -10, -12, -12, -4,
-12, -8, -8, -4, -17, -17, -4, -4,
-31, -25, -31, -21, -21, -17, -21, -12,
-4, -21, -12, -21, -4, -17, -17, -12,
-12, -17, -17
};
/*Collect the kern pair's data in one place*/
static const lv_font_fmt_txt_kern_pair_t kern_pairs =
{
.glyph_ids = kern_pair_glyph_ids,
.values = kern_pair_values,
.pair_cnt = 51,
.glyph_ids_size = 0
};
/*--------------------
* ALL CUSTOM DATA
*--------------------*/
#if LV_VERSION_CHECK(8, 0, 0)
/*Store all the custom data of the font*/
static lv_font_fmt_txt_glyph_cache_t cache;
static const lv_font_fmt_txt_dsc_t font_dsc = {
#else
static lv_font_fmt_txt_dsc_t font_dsc = {
#endif
.glyph_bitmap = glyph_bitmap,
.glyph_dsc = glyph_dsc,
.cmaps = cmaps,
.kern_dsc = &kern_pairs,
.kern_scale = 16,
.cmap_num = 1,
.bpp = 4,
.kern_classes = 0,
.bitmap_format = 0,
#if LV_VERSION_CHECK(8, 0, 0)
.cache = &cache
#endif
};
/*-----------------
* PUBLIC FONT
*----------------*/
/*Initialize a public general font descriptor*/
#if LV_VERSION_CHECK(8, 0, 0)
const lv_font_t font_en_14 = {
#else
lv_font_t font_en_14 = {
#endif
.get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
.get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
.line_height = 15, /*The maximum line height required by the font*/
.base_line = 3, /*Baseline measured from the bottom of the line*/
#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
.subpx = LV_FONT_SUBPX_NONE,
#endif
#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
.underline_position = -1,
.underline_thickness = 1,
#endif
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
};
#endif /*#if FONT_EN_14*/
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,143 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_BRIGHTNESS_OFF
#define LV_ATTRIBUTE_IMG_BRIGHTNESS_OFF
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_BRIGHTNESS_OFF uint8_t brightness_off_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Blue: 2 bit, Green: 3 bit, Red: 3 bit, Alpha 8 bit */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x03, 0xbf, 0x50, 0xbf, 0xac, 0xbf, 0xdf, 0xbb, 0xf7, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xf7, 0xbf, 0xdf, 0xbf, 0xac, 0xbf, 0x50, 0xbb, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x64, 0xbf, 0xe3, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe3, 0xbf, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x14, 0xbf, 0xc4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xc4, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x23, 0xbf, 0xe4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe4, 0xdf, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xbf, 0x14, 0xbf, 0xe4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe4, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xbf, 0xc4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xc4, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xbf, 0x64, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0x64, 0x00, 0x00,
0xbb, 0x03, 0xbf, 0xe3, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe3, 0xbb, 0x03,
0xbf, 0x50, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0x50,
0xbf, 0xac, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xac,
0xbf, 0xdf, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xdf,
0xbb, 0xf7, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xf7,
0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff,
0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff,
0xbb, 0xf7, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xf7,
0xbf, 0xdf, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xdf,
0xbf, 0xac, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xac,
0xbf, 0x50, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0x50,
0xbb, 0x03, 0xbf, 0xe3, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe3, 0xbb, 0x03,
0x00, 0x00, 0xbf, 0x64, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0x64, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xbf, 0xc4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xc4, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xbf, 0x14, 0xbf, 0xe4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe4, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x23, 0xbf, 0xe4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe4, 0xdf, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x14, 0xbf, 0xc4, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xc4, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x64, 0xbf, 0xe3, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xff, 0xbf, 0xe3, 0xbf, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x03, 0xbf, 0x50, 0xbf, 0xac, 0xbf, 0xdf, 0xbb, 0xf7, 0xbb, 0xff, 0xbb, 0xff, 0xbb, 0xf7, 0xbf, 0xdf, 0xbf, 0xac, 0xbf, 0x50, 0xbb, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Blue: 5 bit, Green: 6 bit, Red: 5 bit, Alpha 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xa6, 0x03, 0xbf, 0xb6, 0x50, 0xbf, 0xae, 0xac, 0x9f, 0xa6, 0xdf, 0x9f, 0xa6, 0xf7, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xf7, 0x9f, 0xa6, 0xdf, 0xbf, 0xae, 0xac, 0xbf, 0xb6, 0x50, 0x9f, 0xa6, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xb6, 0x64, 0x9f, 0xa6, 0xe3, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe3, 0xbf, 0xb6, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xb6, 0x14, 0xbf, 0xae, 0xc4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xc4, 0xbf, 0xb6, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xb6, 0x23, 0x9f, 0xa6, 0xe4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe4, 0xdf, 0xb6, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xb6, 0x14, 0x9f, 0xa6, 0xe4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xff, 0xc6, 0xff, 0xff, 0xc6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe4, 0xbf, 0xb6, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xae, 0xc4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x1f, 0xcf, 0xff, 0x1f, 0xcf, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xbf, 0xb6, 0x64, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xbe, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xbe, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xb6, 0x64, 0x00, 0x00, 0x00,
0x9f, 0xa6, 0x03, 0x9f, 0xa6, 0xe3, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xb6, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0xbf, 0xf7, 0xff, 0xdf, 0xb6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe3, 0x9f, 0xa6, 0x03,
0xbf, 0xb6, 0x50, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0x1f, 0xcf, 0xff, 0x5f, 0xdf, 0xff, 0x5f, 0xdf, 0xff, 0x1f, 0xcf, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xb6, 0x50,
0xbf, 0xae, 0xac, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xb6, 0xff, 0x9f, 0xef, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x9f, 0xef, 0xff, 0xdf, 0xb6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xac,
0x9f, 0xa6, 0xdf, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xef, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x9f, 0xef, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xdf,
0x9f, 0xa6, 0xf7, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x1f, 0xc7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x1f, 0xc7, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xf7,
0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xbe, 0xff, 0x3f, 0xd7, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x5f, 0xd7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x5f, 0xd7, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x3f, 0xd7, 0xff, 0xdf, 0xbe, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff,
0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xbe, 0xff, 0x3f, 0xd7, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x5f, 0xd7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x5f, 0xd7, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x3f, 0xd7, 0xff, 0xdf, 0xbe, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff,
0x9f, 0xa6, 0xf7, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x1f, 0xc7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x1f, 0xc7, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xf7,
0x9f, 0xa6, 0xdf, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xef, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x9f, 0xef, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xdf,
0xbf, 0xae, 0xac, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xb6, 0xff, 0x9f, 0xef, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xf7, 0xff, 0x9f, 0xef, 0xff, 0xdf, 0xb6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xac,
0xbf, 0xb6, 0x50, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0x1f, 0xcf, 0xff, 0x5f, 0xdf, 0xff, 0x5f, 0xdf, 0xff, 0x1f, 0xcf, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xb6, 0x50,
0x9f, 0xa6, 0x03, 0x9f, 0xa6, 0xe3, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xb6, 0xff, 0xbf, 0xf7, 0xff, 0xbf, 0xae, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xff, 0xbf, 0xf7, 0xff, 0xdf, 0xb6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe3, 0x9f, 0xa6, 0x03,
0x00, 0x00, 0x00, 0xbf, 0xb6, 0x64, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xbe, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xdf, 0xbe, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xb6, 0x64, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xae, 0xc4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x1f, 0xcf, 0xff, 0x1f, 0xcf, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xb6, 0x14, 0x9f, 0xa6, 0xe4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xff, 0xc6, 0xff, 0xff, 0xc6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe4, 0xbf, 0xb6, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0xb6, 0x23, 0x9f, 0xa6, 0xe4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe4, 0xdf, 0xb6, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xb6, 0x14, 0xbf, 0xae, 0xc4, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0xbf, 0xae, 0xc4, 0xbf, 0xb6, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xb6, 0x64, 0x9f, 0xa6, 0xe3, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xe3, 0xbf, 0xb6, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xa6, 0x03, 0xbf, 0xb6, 0x50, 0xbf, 0xae, 0xac, 0x9f, 0xa6, 0xdf, 0x9f, 0xa6, 0xf7, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xff, 0x9f, 0xa6, 0xf7, 0x9f, 0xa6, 0xdf, 0xbf, 0xae, 0xac, 0xbf, 0xb6, 0x50, 0x9f, 0xa6, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Blue: 5 bit Green: 6 bit, Red: 5 bit, Alpha 8 bit BUT the 2 color bytes are swapped*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x9f, 0x03, 0xb6, 0xbf, 0x50, 0xae, 0xbf, 0xac, 0xa6, 0x9f, 0xdf, 0xa6, 0x9f, 0xf7, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xf7, 0xa6, 0x9f, 0xdf, 0xae, 0xbf, 0xac, 0xb6, 0xbf, 0x50, 0xa6, 0x9f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbf, 0x64, 0xa6, 0x9f, 0xe3, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe3, 0xb6, 0xbf, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbf, 0x14, 0xae, 0xbf, 0xc4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xc4, 0xb6, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xdf, 0x23, 0xa6, 0x9f, 0xe4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe4, 0xb6, 0xdf, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbf, 0x14, 0xa6, 0x9f, 0xe4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xc6, 0xff, 0xff, 0xc6, 0xff, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe4, 0xb6, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbf, 0xc4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xcf, 0x1f, 0xff, 0xcf, 0x1f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xb6, 0xbf, 0x64, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xbe, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xbe, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xbf, 0x64, 0x00, 0x00, 0x00,
0xa6, 0x9f, 0x03, 0xa6, 0x9f, 0xe3, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xdf, 0xff, 0xf7, 0xbf, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xb6, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe3, 0xa6, 0x9f, 0x03,
0xb6, 0xbf, 0x50, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xcf, 0x1f, 0xff, 0xdf, 0x5f, 0xff, 0xdf, 0x5f, 0xff, 0xcf, 0x1f, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xbf, 0x50,
0xae, 0xbf, 0xac, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xdf, 0xff, 0xef, 0x9f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xef, 0x9f, 0xff, 0xb6, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xac,
0xa6, 0x9f, 0xdf, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xef, 0x9f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xef, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xdf,
0xa6, 0x9f, 0xf7, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xc7, 0x1f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xc7, 0x1f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xf7,
0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xbe, 0xdf, 0xff, 0xd7, 0x3f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xd7, 0x5f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xd7, 0x5f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xd7, 0x3f, 0xff, 0xbe, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff,
0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xbe, 0xdf, 0xff, 0xd7, 0x3f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xd7, 0x5f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xd7, 0x5f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xd7, 0x3f, 0xff, 0xbe, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff,
0xa6, 0x9f, 0xf7, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xc7, 0x1f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xc7, 0x1f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xf7,
0xa6, 0x9f, 0xdf, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xef, 0x9f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xef, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xdf,
0xae, 0xbf, 0xac, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xdf, 0xff, 0xef, 0x9f, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xef, 0x9f, 0xff, 0xb6, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xac,
0xb6, 0xbf, 0x50, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xcf, 0x1f, 0xff, 0xdf, 0x5f, 0xff, 0xdf, 0x5f, 0xff, 0xcf, 0x1f, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xbf, 0x50,
0xa6, 0x9f, 0x03, 0xa6, 0x9f, 0xe3, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xdf, 0xff, 0xf7, 0xbf, 0xff, 0xae, 0xbf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xff, 0xf7, 0xbf, 0xff, 0xb6, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe3, 0xa6, 0x9f, 0x03,
0x00, 0x00, 0x00, 0xb6, 0xbf, 0x64, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xbe, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xbe, 0xdf, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xb6, 0xbf, 0x64, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbf, 0xc4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xcf, 0x1f, 0xff, 0xcf, 0x1f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbf, 0x14, 0xa6, 0x9f, 0xe4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xc6, 0xff, 0xff, 0xc6, 0xff, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe4, 0xb6, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xdf, 0x23, 0xa6, 0x9f, 0xe4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe4, 0xb6, 0xdf, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbf, 0x14, 0xae, 0xbf, 0xc4, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xae, 0xbf, 0xc4, 0xb6, 0xbf, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbf, 0x64, 0xa6, 0x9f, 0xe3, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xe3, 0xb6, 0xbf, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x9f, 0x03, 0xb6, 0xbf, 0x50, 0xae, 0xbf, 0xac, 0xa6, 0x9f, 0xdf, 0xa6, 0x9f, 0xf7, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xff, 0xa6, 0x9f, 0xf7, 0xa6, 0x9f, 0xdf, 0xae, 0xbf, 0xac, 0xb6, 0xbf, 0x50, 0xa6, 0x9f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 32
/*Pixel format: Blue: 8 bit, Green: 8 bit, Red: 8 bit, Alpha: 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xcf, 0x9d, 0x03, 0xf5, 0xd6, 0xaf, 0x50, 0xf5, 0xd4, 0xa9, 0xac, 0xf5, 0xd2, 0xa4, 0xdf, 0xf5, 0xd0, 0x9f, 0xf7, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd0, 0x9f, 0xf7, 0xf5, 0xd2, 0xa4, 0xdf, 0xf5, 0xd4, 0xa9, 0xac, 0xf5, 0xd6, 0xaf, 0x50, 0xf6, 0xcf, 0x9d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd5, 0xae, 0x64, 0xf5, 0xd1, 0xa2, 0xe3, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe3, 0xf5, 0xd5, 0xae, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd6, 0xb0, 0x14, 0xf5, 0xd3, 0xa6, 0xc4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd3, 0xa6, 0xc4, 0xf5, 0xd6, 0xb0, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd7, 0xb2, 0x23, 0xf5, 0xd1, 0xa2, 0xe4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe4, 0xf5, 0xd7, 0xb2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd6, 0xb0, 0x14, 0xf5, 0xd1, 0xa2, 0xe4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xdd, 0xbd, 0xff, 0xf7, 0xdd, 0xbd, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe4, 0xf5, 0xd6, 0xb0, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd3, 0xa6, 0xc4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf8, 0xe1, 0xc7, 0xff, 0xf8, 0xe1, 0xc7, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd3, 0xa6, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf5, 0xd5, 0xae, 0x64, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd0, 0x9f, 0xff, 0xf7, 0xda, 0xb6, 0xff, 0xf6, 0xd0, 0x9e, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd0, 0x9e, 0xff, 0xf7, 0xda, 0xb6, 0xff, 0xf6, 0xd0, 0x9f, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd5, 0xae, 0x64, 0x00, 0x00, 0x00, 0x00,
0xf6, 0xcf, 0x9d, 0x03, 0xf5, 0xd1, 0xa2, 0xe3, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xd7, 0xb0, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf6, 0xd5, 0xab, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd5, 0xab, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf7, 0xd7, 0xb0, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe3, 0xf6, 0xcf, 0x9d, 0x03,
0xf5, 0xd6, 0xaf, 0x50, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd3, 0xa6, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd3, 0xa5, 0xff, 0xf8, 0xe2, 0xc7, 0xff, 0xf8, 0xe9, 0xd8, 0xff, 0xf8, 0xe9, 0xd8, 0xff, 0xf8, 0xe2, 0xc7, 0xff, 0xf6, 0xd3, 0xa5, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd3, 0xa6, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd6, 0xaf, 0x50,
0xf5, 0xd4, 0xa9, 0xac, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xd8, 0xb1, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf7, 0xd8, 0xb1, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd4, 0xa9, 0xac,
0xf5, 0xd2, 0xa4, 0xdf, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd2, 0xa4, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf6, 0xd2, 0xa4, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd2, 0xa4, 0xdf,
0xf5, 0xd0, 0x9f, 0xf7, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xe0, 0xc3, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf7, 0xe0, 0xc3, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd0, 0x9f, 0xf7,
0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xda, 0xb7, 0xff, 0xf8, 0xe4, 0xcd, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf8, 0xe7, 0xd4, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf8, 0xe7, 0xd4, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf8, 0xe4, 0xcd, 0xff, 0xf7, 0xda, 0xb7, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff,
0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xda, 0xb7, 0xff, 0xf8, 0xe4, 0xcd, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf8, 0xe7, 0xd4, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf8, 0xe7, 0xd4, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf8, 0xe4, 0xcd, 0xff, 0xf7, 0xda, 0xb7, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff,
0xf5, 0xd0, 0x9f, 0xf7, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xe0, 0xc3, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf7, 0xe0, 0xc3, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd0, 0x9f, 0xf7,
0xf5, 0xd2, 0xa4, 0xdf, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd2, 0xa4, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf6, 0xd2, 0xa4, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd2, 0xa4, 0xdf,
0xf5, 0xd4, 0xa9, 0xac, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xd8, 0xb1, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf9, 0xf1, 0xea, 0xff, 0xf7, 0xd8, 0xb1, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd4, 0xa9, 0xac,
0xf5, 0xd6, 0xaf, 0x50, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd3, 0xa6, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd3, 0xa5, 0xff, 0xf8, 0xe2, 0xc7, 0xff, 0xf8, 0xe9, 0xd8, 0xff, 0xf8, 0xe9, 0xd8, 0xff, 0xf8, 0xe2, 0xc7, 0xff, 0xf6, 0xd3, 0xa5, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd3, 0xa6, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd6, 0xaf, 0x50,
0xf6, 0xcf, 0x9d, 0x03, 0xf5, 0xd1, 0xa2, 0xe3, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xd7, 0xaf, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf6, 0xd5, 0xab, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd5, 0xab, 0xff, 0xf9, 0xf3, 0xef, 0xff, 0xf7, 0xd7, 0xaf, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe3, 0xf6, 0xcf, 0x9d, 0x03,
0x00, 0x00, 0x00, 0x00, 0xf5, 0xd5, 0xae, 0x64, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd0, 0x9f, 0xff, 0xf7, 0xda, 0xb6, 0xff, 0xf6, 0xd0, 0x9e, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xd0, 0x9e, 0xff, 0xf7, 0xda, 0xb6, 0xff, 0xf6, 0xd0, 0x9f, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd5, 0xae, 0x64, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd3, 0xa6, 0xc4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf8, 0xe1, 0xc7, 0xff, 0xf8, 0xe1, 0xc7, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd3, 0xa6, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd6, 0xb0, 0x14, 0xf5, 0xd1, 0xa2, 0xe4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf7, 0xdd, 0xbd, 0xff, 0xf7, 0xdd, 0xbd, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe4, 0xf5, 0xd6, 0xb0, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd7, 0xb2, 0x23, 0xf5, 0xd1, 0xa2, 0xe4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe4, 0xf5, 0xd7, 0xb2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd6, 0xb0, 0x14, 0xf5, 0xd3, 0xa6, 0xc4, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd3, 0xa6, 0xc4, 0xf5, 0xd6, 0xb0, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xd5, 0xae, 0x64, 0xf5, 0xd1, 0xa2, 0xe3, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd1, 0xa2, 0xe3, 0xf5, 0xd5, 0xae, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xcf, 0x9d, 0x03, 0xf5, 0xd6, 0xaf, 0x50, 0xf5, 0xd4, 0xa9, 0xac, 0xf5, 0xd2, 0xa4, 0xdf, 0xf5, 0xd0, 0x9f, 0xf7, 0xf6, 0xcf, 0x9d, 0xff, 0xf6, 0xcf, 0x9d, 0xff, 0xf5, 0xd0, 0x9f, 0xf7, 0xf5, 0xd2, 0xa4, 0xdf, 0xf5, 0xd4, 0xa9, 0xac, 0xf5, 0xd6, 0xaf, 0x50, 0xf6, 0xcf, 0x9d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
};
const lv_img_dsc_t brightness_off = {
.header.always_zero = 0,
.header.w = 26,
.header.h = 26,
.data_size = 676 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = brightness_off_map,
};
@@ -0,0 +1,143 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_BRIGHTNESS_ON
#define LV_ATTRIBUTE_IMG_BRIGHTNESS_ON
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_BRIGHTNESS_ON uint8_t brightness_on_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Blue: 2 bit, Green: 3 bit, Red: 3 bit, Alpha 8 bit */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x7b, 0x3b, 0x7b, 0x8c, 0x7b, 0xc8, 0x7b, 0xf0, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xf0, 0x7b, 0xc8, 0x7b, 0x8c, 0x7b, 0x3b, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x4b, 0x7b, 0xcf, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xcf, 0x7b, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x0c, 0x7b, 0xa7, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xa7, 0x7b, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x18, 0x7b, 0xd3, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xd3, 0x7b, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7b, 0x0c, 0x7b, 0xd3, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xbf, 0xff, 0xbf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xd3, 0x7b, 0x0c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7b, 0xa7, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xa7, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x7b, 0x4b, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0x4b, 0x00, 0x00,
0x7b, 0x00, 0x7b, 0xcf, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xcf, 0x7b, 0x00,
0x7b, 0x3b, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0x3b,
0x7b, 0x8c, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0x8c,
0x7b, 0xc8, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xc8,
0x7b, 0xf0, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xf0,
0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff,
0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff,
0x7b, 0xf0, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xf0,
0x7b, 0xc8, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xc8,
0x7b, 0x8c, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0x8c,
0x7b, 0x3b, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0x3b,
0x7b, 0x00, 0x7b, 0xcf, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0xff, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xcf, 0x7b, 0x00,
0x00, 0x00, 0x7b, 0x4b, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x9b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0x4b, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7b, 0xa7, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0xdf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xa7, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7b, 0x0c, 0x7b, 0xd3, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0xbf, 0xff, 0xbf, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xd3, 0x7b, 0x0c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x18, 0x7b, 0xd3, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xd3, 0x7b, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x0c, 0x7b, 0xa7, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xa7, 0x7b, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x4b, 0x7b, 0xcf, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xcf, 0x7b, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x7b, 0x3b, 0x7b, 0x8c, 0x7b, 0xc8, 0x7b, 0xf0, 0x7b, 0xff, 0x7b, 0xff, 0x7b, 0xf0, 0x7b, 0xc8, 0x7b, 0x8c, 0x7b, 0x3b, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Blue: 5 bit, Green: 6 bit, Red: 5 bit, Alpha 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x00, 0xdf, 0x65, 0x3b, 0xdf, 0x65, 0x8c, 0xdf, 0x65, 0xc8, 0xdf, 0x65, 0xf0, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xf0, 0xdf, 0x65, 0xc8, 0xdf, 0x65, 0x8c, 0xdf, 0x65, 0x3b, 0xdf, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x4b, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x0c, 0xdf, 0x65, 0xa7, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xa7, 0xdf, 0x65, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x18, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x0c, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xbf, 0xa6, 0xff, 0xbf, 0xa6, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0xa7, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xff, 0xb6, 0xff, 0xff, 0xb6, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xdf, 0x65, 0x4b, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x9f, 0x96, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x9f, 0x96, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0x4b, 0x00, 0x00, 0x00,
0xdf, 0x65, 0x00, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x5f, 0x86, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x7e, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x3f, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x86, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0x00,
0xdf, 0x65, 0x3b, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0x76, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0x76, 0xff, 0xff, 0xb6, 0xff, 0x7f, 0xd7, 0xff, 0x7f, 0xd7, 0xff, 0xff, 0xb6, 0xff, 0x1f, 0x76, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0x76, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0x3b,
0xdf, 0x65, 0x8c, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x5f, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x8e, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0x8c,
0xdf, 0x65, 0xc8, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xc8,
0xdf, 0x65, 0xf0, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xae, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xf0,
0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x9f, 0x96, 0xff, 0x1f, 0xc7, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x5f, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xcf, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0xc7, 0xff, 0x9f, 0x96, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff,
0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x9f, 0x96, 0xff, 0x1f, 0xc7, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x5f, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0xcf, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0xc7, 0xff, 0x9f, 0x96, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff,
0xdf, 0x65, 0xf0, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xae, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xf0,
0xdf, 0x65, 0xc8, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xc8,
0xdf, 0x65, 0x8c, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x5f, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x8e, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0x8c,
0xdf, 0x65, 0x3b, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0x76, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0x76, 0xff, 0xff, 0xb6, 0xff, 0x7f, 0xd7, 0xff, 0x7f, 0xd7, 0xff, 0xff, 0xb6, 0xff, 0x1f, 0x76, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x1f, 0x76, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0x3b,
0xdf, 0x65, 0x00, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x5f, 0x86, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x7e, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x3f, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x86, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0x00,
0x00, 0x00, 0x00, 0xdf, 0x65, 0x4b, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x9f, 0x96, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0x9f, 0x96, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0x4b, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0xa7, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xff, 0xb6, 0xff, 0xff, 0xb6, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x0c, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xbf, 0xa6, 0xff, 0xbf, 0xa6, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x18, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xd3, 0xdf, 0x65, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x0c, 0xdf, 0x65, 0xa7, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xa7, 0xdf, 0x65, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x4b, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xcf, 0xdf, 0x65, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x65, 0x00, 0xdf, 0x65, 0x3b, 0xdf, 0x65, 0x8c, 0xdf, 0x65, 0xc8, 0xdf, 0x65, 0xf0, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xff, 0xdf, 0x65, 0xf0, 0xdf, 0x65, 0xc8, 0xdf, 0x65, 0x8c, 0xdf, 0x65, 0x3b, 0xdf, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Blue: 5 bit Green: 6 bit, Red: 5 bit, Alpha 8 bit BUT the 2 color bytes are swapped*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x00, 0x65, 0xdf, 0x3b, 0x65, 0xdf, 0x8c, 0x65, 0xdf, 0xc8, 0x65, 0xdf, 0xf0, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xf0, 0x65, 0xdf, 0xc8, 0x65, 0xdf, 0x8c, 0x65, 0xdf, 0x3b, 0x65, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x4b, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x0c, 0x65, 0xdf, 0xa7, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xa7, 0x65, 0xdf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x18, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x0c, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xa6, 0xbf, 0xff, 0xa6, 0xbf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0xa7, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xb6, 0xff, 0xff, 0xb6, 0xff, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x65, 0xdf, 0x4b, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x96, 0x9f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x96, 0x9f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0x4b, 0x00, 0x00, 0x00,
0x65, 0xdf, 0x00, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x86, 0x5f, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x7e, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x86, 0x5f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0x00,
0x65, 0xdf, 0x3b, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x76, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x76, 0x1f, 0xff, 0xb6, 0xff, 0xff, 0xd7, 0x7f, 0xff, 0xd7, 0x7f, 0xff, 0xb6, 0xff, 0xff, 0x76, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x76, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0x3b,
0x65, 0xdf, 0x8c, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x8e, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e, 0x5f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0x8c,
0x65, 0xdf, 0xc8, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xff, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xc8,
0x65, 0xdf, 0xf0, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xae, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xf0,
0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x96, 0x9f, 0xff, 0xc7, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xcf, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x5f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xc7, 0x1f, 0xff, 0x96, 0x9f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff,
0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x96, 0x9f, 0xff, 0xc7, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xcf, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x5f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xc7, 0x1f, 0xff, 0x96, 0x9f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff,
0x65, 0xdf, 0xf0, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xae, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xae, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xf0,
0x65, 0xdf, 0xc8, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6d, 0xff, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xc8,
0x65, 0xdf, 0x8c, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x8e, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e, 0x5f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0x8c,
0x65, 0xdf, 0x3b, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x76, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x76, 0x1f, 0xff, 0xb6, 0xff, 0xff, 0xd7, 0x7f, 0xff, 0xd7, 0x7f, 0xff, 0xb6, 0xff, 0xff, 0x76, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x76, 0x1f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0x3b,
0x65, 0xdf, 0x00, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x86, 0x5f, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x7e, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x86, 0x5f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0x00,
0x00, 0x00, 0x00, 0x65, 0xdf, 0x4b, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x96, 0x9f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x96, 0x9f, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0x4b, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0xa7, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xb6, 0xff, 0xff, 0xb6, 0xff, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x0c, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0xa6, 0xbf, 0xff, 0xa6, 0xbf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x18, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xd3, 0x65, 0xdf, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x0c, 0x65, 0xdf, 0xa7, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xa7, 0x65, 0xdf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x4b, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xcf, 0x65, 0xdf, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xdf, 0x00, 0x65, 0xdf, 0x3b, 0x65, 0xdf, 0x8c, 0x65, 0xdf, 0xc8, 0x65, 0xdf, 0xf0, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xff, 0x65, 0xdf, 0xf0, 0x65, 0xdf, 0xc8, 0x65, 0xdf, 0x8c, 0x65, 0xdf, 0x3b, 0x65, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 32
/*Pixel format: Blue: 8 bit, Green: 8 bit, Red: 8 bit, Alpha: 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x00, 0xf8, 0xb9, 0x5d, 0x3b, 0xf8, 0xb9, 0x5d, 0x8c, 0xf8, 0xb9, 0x5d, 0xc8, 0xf8, 0xb9, 0x5d, 0xf0, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xf0, 0xf8, 0xb9, 0x5d, 0xc8, 0xf8, 0xb9, 0x5d, 0x8c, 0xf8, 0xb9, 0x5d, 0x3b, 0xf8, 0xb9, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x4b, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x0c, 0xf8, 0xb9, 0x5d, 0xa7, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xa7, 0xf8, 0xb9, 0x5d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x18, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x0c, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfb, 0xd5, 0x9d, 0xff, 0xfb, 0xd5, 0x9d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0xa7, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfc, 0xdd, 0xb1, 0xff, 0xfc, 0xdd, 0xb1, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x4b, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xba, 0x60, 0xff, 0xfa, 0xcf, 0x8f, 0xff, 0xf8, 0xba, 0x5e, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xba, 0x5e, 0xff, 0xfa, 0xcf, 0x8f, 0xff, 0xf8, 0xba, 0x60, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0x4b, 0x00, 0x00, 0x00, 0x00,
0xf8, 0xb9, 0x5d, 0x00, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfa, 0xc9, 0x82, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xc5, 0x78, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc5, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xc9, 0x82, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0x00,
0xf8, 0xb9, 0x5d, 0x3b, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc0, 0x6e, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc0, 0x6d, 0xff, 0xfc, 0xde, 0xb1, 0xff, 0xfd, 0xec, 0xd3, 0xff, 0xfd, 0xec, 0xd3, 0xff, 0xfc, 0xde, 0xb1, 0xff, 0xf9, 0xc0, 0x6d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc0, 0x6e, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0x3b,
0xf8, 0xb9, 0x5d, 0x8c, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfa, 0xca, 0x85, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xfa, 0xca, 0x85, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0x8c,
0xf8, 0xb9, 0x5d, 0xc8, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xbe, 0x6a, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xf9, 0xbe, 0x6a, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xc8,
0xf8, 0xb9, 0x5d, 0xf0, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfb, 0xda, 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xda, 0xa9, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xf0,
0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfa, 0xcf, 0x90, 0xff, 0xfc, 0xe2, 0xbd, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfd, 0xe8, 0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xe8, 0xca, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfc, 0xe2, 0xbd, 0xff, 0xfa, 0xcf, 0x90, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff,
0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfa, 0xcf, 0x90, 0xff, 0xfc, 0xe2, 0xbd, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfd, 0xe8, 0xca, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xe8, 0xca, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfc, 0xe2, 0xbd, 0xff, 0xfa, 0xcf, 0x90, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff,
0xf8, 0xb9, 0x5d, 0xf0, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfb, 0xda, 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xda, 0xa9, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xf0,
0xf8, 0xb9, 0x5d, 0xc8, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xbe, 0x6a, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xf9, 0xbe, 0x6a, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xc8,
0xf8, 0xb9, 0x5d, 0x8c, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfa, 0xca, 0x85, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xf5, 0xff, 0xfa, 0xca, 0x85, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0x8c,
0xf8, 0xb9, 0x5d, 0x3b, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc0, 0x6e, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc0, 0x6d, 0xff, 0xfc, 0xde, 0xb1, 0xff, 0xfd, 0xec, 0xd3, 0xff, 0xfd, 0xec, 0xd3, 0xff, 0xfc, 0xde, 0xb1, 0xff, 0xf9, 0xc0, 0x6d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc0, 0x6e, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0x3b,
0xf8, 0xb9, 0x5d, 0x00, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfa, 0xc9, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xc5, 0x78, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf9, 0xc5, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xc9, 0x81, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x4b, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xba, 0x60, 0xff, 0xfa, 0xcf, 0x8f, 0xff, 0xf8, 0xba, 0x5e, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xba, 0x5e, 0xff, 0xfa, 0xcf, 0x8f, 0xff, 0xf8, 0xba, 0x60, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0x4b, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0xa7, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfc, 0xdd, 0xb1, 0xff, 0xfc, 0xdd, 0xb1, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x0c, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xfb, 0xd5, 0x9d, 0xff, 0xfb, 0xd5, 0x9d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x18, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xd3, 0xf8, 0xb9, 0x5d, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x0c, 0xf8, 0xb9, 0x5d, 0xa7, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xa7, 0xf8, 0xb9, 0x5d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x4b, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xcf, 0xf8, 0xb9, 0x5d, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb9, 0x5d, 0x00, 0xf8, 0xb9, 0x5d, 0x3b, 0xf8, 0xb9, 0x5d, 0x8c, 0xf8, 0xb9, 0x5d, 0xc8, 0xf8, 0xb9, 0x5d, 0xf0, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xff, 0xf8, 0xb9, 0x5d, 0xf0, 0xf8, 0xb9, 0x5d, 0xc8, 0xf8, 0xb9, 0x5d, 0x8c, 0xf8, 0xb9, 0x5d, 0x3b, 0xf8, 0xb9, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
};
const lv_img_dsc_t brightness_on = {
.header.always_zero = 0,
.header.w = 26,
.header.h = 26,
.data_size = 676 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = brightness_on_map,
};
@@ -0,0 +1,126 @@
#include "lvgl/lvgl.h"
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_ESP_LOGO_TINY
#define LV_ATTRIBUTE_IMG_ESP_LOGO_TINY
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_ESP_LOGO_TINY uint8_t esp_logo_tiny_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/
0x00, 0x00, 0xff, 0x01, 0xff, 0x6b, 0xff, 0xc7, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc6, 0xff, 0x6a, 0xff, 0x01, 0x00, 0x00,
0xff, 0x02, 0xff, 0xb2, 0xfb, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xb0, 0xff, 0x01,
0xff, 0x6b, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0x6a,
0xff, 0xc7, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xff, 0xc5,
0xff, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xf6,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xee, 0xff, 0xf2, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xf7, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xf2, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xf6, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf7, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xee, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xe9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xee, 0xff, 0xfb, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xf2, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xff,
0xff, 0xf6, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xfb, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xfb, 0xff, 0xee, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xff, 0xf6,
0xff, 0xc6, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xf6, 0xff, 0xfb, 0xff, 0xf6, 0xff, 0xee, 0xff, 0xed, 0xff, 0xed, 0xff, 0xf2, 0xff, 0xf7, 0xff, 0xfb, 0xff, 0xf6, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xff, 0xc5,
0xff, 0x6a, 0xfb, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xf2, 0xff, 0xf6, 0xff, 0xf6, 0xff, 0xf2, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xfb, 0xff, 0xff, 0x68,
0xff, 0x01, 0xff, 0xb1, 0xfb, 0xff, 0xed, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xe9, 0xff, 0xed, 0xff, 0xfb, 0xff, 0xff, 0xaf, 0xff, 0x01,
0x00, 0x00, 0xff, 0x01, 0xff, 0x6a, 0xff, 0xc5, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xc5, 0xff, 0x69, 0xff, 0x01, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/
0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0x6b, 0xff, 0xff, 0xc7, 0x7e, 0xff, 0xf6, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x7e, 0xff, 0xf6, 0xff, 0xff, 0xc6, 0xff, 0xff, 0x6a, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
0xff, 0xff, 0x02, 0xff, 0xff, 0xb2, 0x59, 0xfe, 0xff, 0xca, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xca, 0xea, 0xff, 0x79, 0xfe, 0xff, 0xff, 0xff, 0xb0, 0xff, 0xff, 0x01,
0xff, 0xff, 0x6b, 0x59, 0xfe, 0xff, 0xc6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x68, 0xea, 0xff, 0xf3, 0xf4, 0xff, 0x91, 0xf4, 0xff, 0xce, 0xf3, 0xff, 0x27, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0x79, 0xfe, 0xff, 0xff, 0xff, 0x6a,
0xff, 0xff, 0xc7, 0xca, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0x0f, 0xf4, 0xff, 0xce, 0xf3, 0xff, 0x48, 0xea, 0xff, 0x07, 0xea, 0xff, 0x91, 0xf4, 0xff, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xa9, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xea, 0xea, 0xff, 0xff, 0xff, 0xc5,
0x7d, 0xff, 0xf6, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x68, 0xea, 0xff, 0x9a, 0xfe, 0xff, 0x27, 0xea, 0xff, 0x59, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9a, 0xfe, 0xff, 0xef, 0xf3, 0xff, 0x07, 0xea, 0xff, 0xb2, 0xf4, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xef, 0xf3, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x7e, 0xff, 0xf6,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0x9a, 0xfe, 0xff, 0x0b, 0xeb, 0xff, 0x6d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xff, 0xff, 0x6c, 0xf3, 0xff, 0xca, 0xea, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xf3, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x0f, 0xf4, 0xff, 0x34, 0xf5, 0xff, 0xa5, 0xe9, 0xff, 0x07, 0xea, 0xff, 0x4c, 0xf3, 0xff, 0x0f, 0xf4, 0xff, 0x55, 0xfd, 0xff, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xf4, 0xff, 0x28, 0xea, 0xff, 0xdb, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xa9, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xba, 0xfe, 0xff, 0x27, 0xea, 0xff, 0x69, 0xea, 0xff, 0x14, 0xf5, 0xff, 0x75, 0xfd, 0xff, 0x14, 0xf5, 0xff, 0xae, 0xf3, 0xff, 0xe6, 0xe9, 0xff, 0xae, 0xf3, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xfd, 0xff, 0x28, 0xea, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0x89, 0xea, 0xff, 0x38, 0xfe, 0xff, 0xca, 0xea, 0xff, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0xff, 0xff, 0xb2, 0xf4, 0xff, 0xe6, 0xe9, 0xff, 0x54, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x92, 0xf4, 0xff, 0xca, 0xea, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xef, 0xf3, 0xff, 0x91, 0xf4, 0xff, 0x38, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xfe, 0xff, 0x69, 0xea, 0xff, 0x71, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0xeb, 0xff, 0xd2, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xce, 0xf3, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0x92, 0xf4, 0xff, 0xce, 0xf3, 0xff, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xff, 0xff, 0x0b, 0xeb, 0xff, 0x0f, 0xf4, 0xff, 0x38, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xff, 0xff, 0x69, 0xea, 0xff, 0x55, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfe, 0xff, 0x07, 0xea, 0xff, 0x5d, 0xff, 0xff, 0x92, 0xf4, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xd2, 0xf4, 0xff, 0x8d, 0xf3, 0xff, 0xba, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x79, 0xfe, 0xff, 0xd2, 0xf4, 0xff, 0x48, 0xea, 0xff, 0x4c, 0xf3, 0xff, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xba, 0xfe, 0xff, 0xe6, 0xe9, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xf3, 0xff, 0xd2, 0xf4, 0xff, 0xb2, 0xf4, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0x30, 0xf4, 0xff, 0x30, 0xf4, 0xff, 0xef, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x30, 0xf4, 0xff, 0x69, 0xea, 0xff, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x71, 0xf4, 0xff, 0xce, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x59, 0xfe, 0xff, 0x07, 0xea, 0xff, 0x07, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0x2c, 0xf3, 0xff, 0x55, 0xfd, 0xff, 0xa5, 0xe9, 0xff, 0x0f, 0xf4, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x30, 0xf4, 0xff, 0x6d, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xff, 0xff, 0xe6, 0xe9, 0xff, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0xba, 0xfe, 0xff, 0xa6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x69, 0xea, 0xff, 0x75, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xff, 0xff, 0x48, 0xea, 0xff, 0x79, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2c, 0xf3, 0xff, 0x96, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xf3, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x14, 0xf5, 0xff, 0xce, 0xf3, 0xff, 0xa5, 0xe9, 0xff, 0x4c, 0xf3, 0xff, 0x96, 0xfd, 0xff, 0xca, 0xea, 0xff, 0x96, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x91, 0xf4, 0xff, 0x71, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xf4, 0xff, 0x50, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8d, 0xf3, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x07, 0xea, 0xff, 0xba, 0xfe, 0xff, 0xe7, 0xe9, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0xfe, 0xff, 0x0b, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xfd, 0xff, 0x2c, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x75, 0xfd, 0xff, 0xae, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xfd, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x8d, 0xf3, 0xff, 0xf7, 0xfd, 0xff, 0xf3, 0xf4, 0xff, 0xbe, 0xff, 0xff, 0x0f, 0xf4, 0xff, 0x89, 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x38, 0xfe, 0xff, 0x0b, 0xeb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb6, 0xfd, 0xff, 0x07, 0xea, 0xff, 0xeb, 0xea, 0xff, 0xe6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x1c, 0xff, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x71, 0xf4, 0xff, 0xd7, 0xfd, 0xff, 0xe6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x50, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x55, 0xfd, 0xff, 0xae, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x34, 0xf5, 0xff, 0xa5, 0xe9, 0xff, 0x48, 0xea, 0xff, 0x38, 0xfe, 0xff, 0x07, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x1c, 0xff, 0xff,
0x7e, 0xff, 0xf6, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xae, 0xf3, 0xff, 0x79, 0xfe, 0xff, 0x6d, 0xf3, 0xff, 0x07, 0xea, 0xff, 0x13, 0xf5, 0xff, 0x79, 0xfe, 0xff, 0x4c, 0xf3, 0xff, 0x48, 0xea, 0xff, 0x71, 0xf4, 0xff, 0x92, 0xf4, 0xff, 0x48, 0xea, 0xff, 0x0f, 0xf4, 0xff, 0xba, 0xfe, 0xff, 0x0b, 0xeb, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x7e, 0xff, 0xf6,
0xff, 0xff, 0xc6, 0xca, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0x07, 0xea, 0xff, 0x14, 0xf5, 0xff, 0x59, 0xfe, 0xff, 0xd3, 0xf4, 0xff, 0x8d, 0xf3, 0xff, 0xca, 0xea, 0xff, 0x0b, 0xeb, 0xff, 0xae, 0xf3, 0xff, 0x34, 0xf5, 0xff, 0x9a, 0xfe, 0xff, 0x91, 0xf4, 0xff, 0xe6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xeb, 0xea, 0xff, 0xff, 0xff, 0xc5,
0xff, 0xff, 0x6a, 0x79, 0xfe, 0xff, 0xc6, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0x2c, 0xf3, 0xff, 0x30, 0xf4, 0xff, 0xd2, 0xf4, 0xff, 0xb2, 0xf4, 0xff, 0x30, 0xf4, 0xff, 0xca, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xc6, 0xe9, 0xff, 0x79, 0xfe, 0xff, 0xff, 0xff, 0x68,
0xff, 0xff, 0x01, 0xff, 0xff, 0xb1, 0x79, 0xfe, 0xff, 0xea, 0xea, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xa5, 0xe9, 0xff, 0xeb, 0xea, 0xff, 0x79, 0xfe, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0x01,
0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0x6a, 0xff, 0xff, 0xc5, 0x7e, 0xff, 0xf6, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x7e, 0xff, 0xf6, 0xff, 0xff, 0xc5, 0xff, 0xff, 0x69, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/
0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0x6b, 0xff, 0xff, 0xc7, 0xff, 0x7e, 0xf6, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x7e, 0xf6, 0xff, 0xff, 0xc6, 0xff, 0xff, 0x6a, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
0xff, 0xff, 0x02, 0xff, 0xff, 0xb2, 0xfe, 0x59, 0xff, 0xea, 0xca, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0xca, 0xff, 0xfe, 0x79, 0xff, 0xff, 0xff, 0xb0, 0xff, 0xff, 0x01,
0xff, 0xff, 0x6b, 0xfe, 0x59, 0xff, 0xe9, 0xc6, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x68, 0xff, 0xf4, 0xf3, 0xff, 0xf4, 0x91, 0xff, 0xf3, 0xce, 0xff, 0xea, 0x27, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xfe, 0x79, 0xff, 0xff, 0xff, 0x6a,
0xff, 0xff, 0xc7, 0xea, 0xca, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xf4, 0x0f, 0xff, 0xf3, 0xce, 0xff, 0xea, 0x48, 0xff, 0xea, 0x07, 0xff, 0xf4, 0x91, 0xff, 0xff, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xea, 0xa9, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0xea, 0xff, 0xff, 0xff, 0xc5,
0xff, 0x7d, 0xf6, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x68, 0xff, 0xfe, 0x9a, 0xff, 0xea, 0x27, 0xff, 0xfe, 0x59, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x9a, 0xff, 0xf3, 0xef, 0xff, 0xea, 0x07, 0xff, 0xf4, 0xb2, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xf3, 0xef, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x7e, 0xf6,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xfe, 0x9a, 0xff, 0xeb, 0x0b, 0xff, 0xf3, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xff, 0xf3, 0x6c, 0xff, 0xea, 0xca, 0xff, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xef, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0x0f, 0xff, 0xf5, 0x34, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x07, 0xff, 0xf3, 0x4c, 0xff, 0xf4, 0x0f, 0xff, 0xfd, 0x55, 0xff, 0xff, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xb2, 0xff, 0xea, 0x28, 0xff, 0xfe, 0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xea, 0xa9, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xfe, 0xba, 0xff, 0xea, 0x27, 0xff, 0xea, 0x69, 0xff, 0xf5, 0x14, 0xff, 0xfd, 0x75, 0xff, 0xf5, 0x14, 0xff, 0xf3, 0xae, 0xff, 0xe9, 0xe6, 0xff, 0xf3, 0xae, 0xff, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x55, 0xff, 0xea, 0x28, 0xff, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x89, 0xff, 0xfe, 0x38, 0xff, 0xea, 0xca, 0xff, 0xff, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7e, 0xff, 0xf4, 0xb2, 0xff, 0xe9, 0xe6, 0xff, 0xfd, 0x54, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x92, 0xff, 0xea, 0xca, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xea, 0x27, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xf3, 0xef, 0xff, 0xf4, 0x91, 0xff, 0xfe, 0x38, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdb, 0xff, 0xea, 0x69, 0xff, 0xf4, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xeb, 0x0b, 0xff, 0xf4, 0xd2, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xce, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0x92, 0xff, 0xf3, 0xce, 0xff, 0xff, 0x7d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xff, 0xeb, 0x0b, 0xff, 0xf4, 0x0f, 0xff, 0xfe, 0x38, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xff, 0xea, 0x69, 0xff, 0xfd, 0x55, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfb, 0xff, 0xea, 0x07, 0xff, 0xff, 0x5d, 0xff, 0xf4, 0x92, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0xd2, 0xff, 0xf3, 0x8d, 0xff, 0xfe, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x79, 0xff, 0xf4, 0xd2, 0xff, 0xea, 0x48, 0xff, 0xf3, 0x4c, 0xff, 0xff, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xba, 0xff, 0xe9, 0xe6, 0xff, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xce, 0xff, 0xf4, 0xd2, 0xff, 0xf4, 0xb2, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0x30, 0xff, 0xf4, 0x30, 0xff, 0xf3, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xf4, 0x30, 0xff, 0xea, 0x69, 0xff, 0xff, 0x5d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x71, 0xff, 0xf3, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x59, 0xff, 0xea, 0x07, 0xff, 0xea, 0x07, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xf3, 0x2c, 0xff, 0xfd, 0x55, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0x0f, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x30, 0xff, 0xf3, 0x6d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xff, 0xe9, 0xe6, 0xff, 0xff, 0x7e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xea, 0x27, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xfe, 0xba, 0xff, 0xe9, 0xa6, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x69, 0xff, 0xfd, 0x75, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xff, 0xea, 0x48, 0xff, 0xfe, 0x79, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x2c, 0xff, 0xfd, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x8d, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xf5, 0x14, 0xff, 0xf3, 0xce, 0xff, 0xe9, 0xa5, 0xff, 0xf3, 0x4c, 0xff, 0xfd, 0x96, 0xff, 0xea, 0xca, 0xff, 0xfd, 0x96, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x91, 0xff, 0xf4, 0x71, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xd2, 0xff, 0xf4, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x8d, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x07, 0xff, 0xfe, 0xba, 0xff, 0xe9, 0xe7, 0xff, 0xff, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x18, 0xff, 0xeb, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf7, 0xff, 0xf3, 0x2c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x75, 0xff, 0xf3, 0xae, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xd7, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xf3, 0x8d, 0xff, 0xfd, 0xf7, 0xff, 0xf4, 0xf3, 0xff, 0xff, 0xbe, 0xff, 0xf4, 0x0f, 0xff, 0xea, 0x89, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x38, 0xff, 0xeb, 0x0b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xb6, 0xff, 0xea, 0x07, 0xff, 0xea, 0xeb, 0xff, 0xe9, 0xe6, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x1c, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0x71, 0xff, 0xfd, 0xd7, 0xff, 0xe9, 0xe6, 0xff, 0xe9, 0xa5, 0xff, 0xf4, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x55, 0xff, 0xf3, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x34, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x48, 0xff, 0xfe, 0x38, 0xff, 0xea, 0x07, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x1c, 0xff,
0xff, 0x7e, 0xf6, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xf3, 0xae, 0xff, 0xfe, 0x79, 0xff, 0xf3, 0x6d, 0xff, 0xea, 0x07, 0xff, 0xf5, 0x13, 0xff, 0xfe, 0x79, 0xff, 0xf3, 0x4c, 0xff, 0xea, 0x48, 0xff, 0xf4, 0x71, 0xff, 0xf4, 0x92, 0xff, 0xea, 0x48, 0xff, 0xf4, 0x0f, 0xff, 0xfe, 0xba, 0xff, 0xeb, 0x0b, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xff, 0x7e, 0xf6,
0xff, 0xff, 0xc6, 0xea, 0xca, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0x07, 0xff, 0xf5, 0x14, 0xff, 0xfe, 0x59, 0xff, 0xf4, 0xd3, 0xff, 0xf3, 0x8d, 0xff, 0xea, 0xca, 0xff, 0xeb, 0x0b, 0xff, 0xf3, 0xae, 0xff, 0xf5, 0x34, 0xff, 0xfe, 0x9a, 0xff, 0xf4, 0x91, 0xff, 0xe9, 0xe6, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0xeb, 0xff, 0xff, 0xff, 0xc5,
0xff, 0xff, 0x6a, 0xfe, 0x79, 0xff, 0xe9, 0xc6, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xf3, 0x2c, 0xff, 0xf4, 0x30, 0xff, 0xf4, 0xd2, 0xff, 0xf4, 0xb2, 0xff, 0xf4, 0x30, 0xff, 0xea, 0xca, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xc6, 0xff, 0xfe, 0x79, 0xff, 0xff, 0xff, 0x68,
0xff, 0xff, 0x01, 0xff, 0xff, 0xb1, 0xfe, 0x79, 0xff, 0xea, 0xea, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xe9, 0xa5, 0xff, 0xea, 0xeb, 0xff, 0xfe, 0x79, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0x01,
0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0xff, 0xff, 0x6a, 0xff, 0xff, 0xc5, 0xff, 0x7e, 0xf6, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x3c, 0xff, 0xff, 0x7e, 0xf6, 0xff, 0xff, 0xc5, 0xff, 0xff, 0x69, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 32
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x6b, 0xff, 0xff, 0xff, 0xc7, 0xed, 0xed, 0xfd, 0xf6, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xed, 0xed, 0xfd, 0xf6, 0xff, 0xff, 0xff, 0xc6, 0xff, 0xff, 0xff, 0x6a, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00,
0xff, 0xff, 0xff, 0x02, 0xff, 0xff, 0xff, 0xb2, 0xc8, 0xca, 0xf9, 0xff, 0x52, 0x59, 0xeb, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x53, 0x5a, 0xeb, 0xff, 0xc9, 0xcc, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xb0, 0xff, 0xff, 0xff, 0x01,
0xff, 0xff, 0xff, 0x6b, 0xc8, 0xca, 0xf9, 0xff, 0x2f, 0x38, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x43, 0x4b, 0xea, 0xff, 0x99, 0x9e, 0xf3, 0xff, 0x8a, 0x8f, 0xf2, 0xff, 0x72, 0x78, 0xef, 0xff, 0x3b, 0x43, 0xe9, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x30, 0x39, 0xe7, 0xff, 0xca, 0xcc, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x6a,
0xff, 0xff, 0xff, 0xc7, 0x52, 0x59, 0xeb, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x30, 0x39, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2e, 0x37, 0xe7, 0xff, 0x79, 0x7f, 0xf0, 0xff, 0x72, 0x78, 0xef, 0xff, 0x42, 0x4a, 0xe9, 0xff, 0x38, 0x41, 0xe8, 0xff, 0x8c, 0x91, 0xf2, 0xff, 0xe5, 0xe6, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0xb8, 0xbb, 0xf7, 0xff, 0x4c, 0x54, 0xeb, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x54, 0x5b, 0xec, 0xff, 0xff, 0xff, 0xff, 0xc5,
0xec, 0xed, 0xfd, 0xf6, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x44, 0x4c, 0xea, 0xff, 0xcd, 0xcf, 0xf9, 0xff, 0x3b, 0x44, 0xe9, 0xff, 0xc7, 0xc9, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xce, 0xd0, 0xf9, 0xff, 0x78, 0x7e, 0xf0, 0xff, 0x36, 0x3f, 0xe8, 0xff, 0x8f, 0x94, 0xf2, 0xff, 0xf8, 0xf9, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xfe, 0xff, 0x77, 0x7d, 0xf0, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xed, 0xee, 0xfd, 0xf6,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2e, 0x37, 0xe7, 0xff, 0xcd, 0xcf, 0xf9, 0xff, 0x5b, 0x62, 0xec, 0xff, 0x65, 0x6c, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe1, 0xfb, 0xff, 0x64, 0x6b, 0xed, 0xff, 0x51, 0x59, 0xeb, 0xff, 0xe1, 0xe2, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0x77, 0x7d, 0xf0, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x79, 0x7f, 0xf0, 0xff, 0xa0, 0xa4, 0xf4, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x38, 0x40, 0xe8, 0xff, 0x63, 0x6a, 0xed, 0xff, 0x79, 0x7f, 0xf0, 0xff, 0xa6, 0xaa, 0xf5, 0xff, 0xe7, 0xe8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0x8f, 0x94, 0xf2, 0xff, 0x3d, 0x46, 0xe9, 0xff, 0xd6, 0xd7, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf9, 0xfe, 0xff, 0x4b, 0x53, 0xeb, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xd3, 0xd5, 0xfa, 0xff, 0x3c, 0x44, 0xe9, 0xff, 0x46, 0x4e, 0xea, 0xff, 0x9d, 0xa2, 0xf4, 0xff, 0xab, 0xae, 0xf5, 0xff, 0x9e, 0xa2, 0xf4, 0xff, 0x6d, 0x73, 0xee, 0xff, 0x34, 0x3c, 0xe8, 0xff, 0x6d, 0x74, 0xee, 0xff, 0xdd, 0xdf, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xaa, 0xf5, 0xff, 0x3e, 0x46, 0xe9, 0xff, 0xe1, 0xe2, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xbc, 0xf7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x48, 0x50, 0xea, 0xff, 0xc0, 0xc3, 0xf8, 0xff, 0x50, 0x58, 0xeb, 0xff, 0xf0, 0xf1, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xed, 0xee, 0xfd, 0xff, 0x91, 0x96, 0xf2, 0xff, 0x34, 0x3d, 0xe8, 0xff, 0xa3, 0xa7, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8e, 0x92, 0xf2, 0xff, 0x50, 0x58, 0xeb, 0xff, 0xf8, 0xf9, 0xfe, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0x3c, 0x44, 0xe9, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x78, 0x7e, 0xf0, 0xff, 0x8a, 0x8f, 0xf2, 0xff, 0xc1, 0xc4, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xd9, 0xfa, 0xff, 0x46, 0x4e, 0xea, 0xff, 0x88, 0x8d, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0x5a, 0x61, 0xec, 0xff, 0x94, 0x99, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x72, 0x78, 0xef, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x8e, 0x92, 0xf2, 0xff, 0x72, 0x78, 0xef, 0xff, 0xea, 0xeb, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf4, 0xfe, 0xff, 0x59, 0x60, 0xec, 0xff, 0x7a, 0x7f, 0xf0, 0xff, 0xc3, 0xc6, 0xf8, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe5, 0xe6, 0xfc, 0xff, 0x46, 0x4e, 0xea, 0xff, 0xa6, 0xaa, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xda, 0xdb, 0xfb, 0xff, 0x37, 0x40, 0xe8, 0xff, 0xe9, 0xea, 0xfd, 0xff, 0x8d, 0x92, 0xf2, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x93, 0x98, 0xf3, 0xff, 0x6c, 0x72, 0xee, 0xff, 0xd2, 0xd4, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcb, 0xcd, 0xf9, 0xff, 0x93, 0x97, 0xf3, 0xff, 0x41, 0x49, 0xe9, 0xff, 0x60, 0x67, 0xed, 0xff, 0xe7, 0xe8, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xd3, 0xfa, 0xff, 0x34, 0x3d, 0xe7, 0xff, 0xe1, 0xe2, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x72, 0x78, 0xef, 0xff, 0x93, 0x97, 0xf3, 0xff, 0x8e, 0x93, 0xf2, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x7f, 0x84, 0xf0, 0xff, 0x80, 0x85, 0xf1, 0xff, 0x75, 0x7b, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf5, 0xfe, 0xff, 0x7f, 0x84, 0xf0, 0xff, 0x46, 0x4e, 0xea, 0xff, 0xe8, 0xe9, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x88, 0x8d, 0xf1, 0xff, 0x72, 0x78, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc8, 0xca, 0xf9, 0xff, 0x38, 0x41, 0xe8, 0xff, 0x3a, 0x42, 0xe9, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x5d, 0x64, 0xed, 0xff, 0xa6, 0xa9, 0xf5, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x7b, 0x80, 0xf0, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0x7e, 0x83, 0xf0, 0xff, 0x65, 0x6c, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xe9, 0xfc, 0xff, 0x32, 0x3b, 0xe7, 0xff, 0xed, 0xee, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xfd, 0xff, 0xff, 0x3b, 0x43, 0xe9, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2e, 0x37, 0xe7, 0xff, 0xd4, 0xd6, 0xfa, 0xff, 0x2d, 0x36, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x46, 0x4e, 0xea, 0xff, 0xa8, 0xac, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf4, 0xfe, 0xff, 0x41, 0x49, 0xe9, 0xff, 0xcc, 0xce, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5e, 0x65, 0xed, 0xff, 0xad, 0xb1, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x70, 0xee, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x9d, 0xa2, 0xf4, 0xff, 0x72, 0x78, 0xef, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x61, 0x68, 0xed, 0xff, 0xad, 0xb1, 0xf6, 0xff, 0x51, 0x59, 0xeb, 0xff, 0xaf, 0xb2, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x89, 0x8f, 0xf2, 0xff, 0x85, 0x8b, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x93, 0x97, 0xf3, 0xff, 0x82, 0x87, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6b, 0x71, 0xee, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x3a, 0x42, 0xe9, 0xff, 0xd1, 0xd3, 0xfa, 0xff, 0x35, 0x3e, 0xe8, 0xff, 0xe0, 0xe1, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xc1, 0xf8, 0xff, 0x58, 0x5f, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb9, 0xbc, 0xf7, 0xff, 0x5f, 0x66, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, 0xad, 0xf5, 0xff, 0x6d, 0x73, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb5, 0xb8, 0xf7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x68, 0x6f, 0xee, 0xff, 0xb9, 0xbc, 0xf7, 0xff, 0x98, 0x9c, 0xf3, 0xff, 0xf4, 0xf5, 0xfe, 0xff, 0x7a, 0x7f, 0xf0, 0xff, 0x4a, 0x52, 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xc5, 0xf8, 0xff, 0x5a, 0x61, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2, 0xb5, 0xf6, 0xff, 0x36, 0x3f, 0xe8, 0xff, 0x56, 0x5d, 0xec, 0xff, 0x33, 0x3b, 0xe8, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xe0, 0xe2, 0xfc, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x87, 0x8c, 0xf1, 0xff, 0xb5, 0xb8, 0xf7, 0xff, 0x33, 0x3c, 0xe8, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x81, 0x87, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa6, 0xaa, 0xf5, 0xff, 0x70, 0x76, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xa3, 0xf4, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x41, 0x49, 0xe9, 0xff, 0xc1, 0xc4, 0xf8, 0xff, 0x39, 0x42, 0xe9, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xe0, 0xe2, 0xfc, 0xff,
0xed, 0xed, 0xfd, 0xf6, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x6d, 0x73, 0xee, 0xff, 0xcc, 0xce, 0xf9, 0xff, 0x67, 0x6d, 0xee, 0xff, 0x38, 0x40, 0xe8, 0xff, 0x9c, 0xa0, 0xf4, 0xff, 0xca, 0xcc, 0xf9, 0xff, 0x61, 0x68, 0xed, 0xff, 0x41, 0x49, 0xe9, 0xff, 0x85, 0x8b, 0xf1, 0xff, 0x8d, 0x92, 0xf2, 0xff, 0x41, 0x49, 0xe9, 0xff, 0x7c, 0x82, 0xf0, 0xff, 0xd1, 0xd3, 0xfa, 0xff, 0x58, 0x5f, 0xec, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0xed, 0xee, 0xfd, 0xf6,
0xff, 0xff, 0xff, 0xc6, 0x53, 0x5a, 0xeb, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x3a, 0x42, 0xe9, 0xff, 0x9d, 0xa2, 0xf4, 0xff, 0xc5, 0xc8, 0xf8, 0xff, 0x95, 0x9a, 0xf3, 0xff, 0x6a, 0x70, 0xee, 0xff, 0x53, 0x5a, 0xeb, 0xff, 0x59, 0x60, 0xec, 0xff, 0x6e, 0x74, 0xef, 0xff, 0xa1, 0xa5, 0xf4, 0xff, 0xcd, 0xcf, 0xf9, 0xff, 0x8c, 0x91, 0xf2, 0xff, 0x33, 0x3c, 0xe8, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x55, 0x5d, 0xec, 0xff, 0xff, 0xff, 0xff, 0xc5,
0xff, 0xff, 0xff, 0x6a, 0xc9, 0xcc, 0xf9, 0xff, 0x30, 0x39, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2e, 0x37, 0xe7, 0xff, 0x5d, 0x64, 0xed, 0xff, 0x7e, 0x83, 0xf0, 0xff, 0x94, 0x99, 0xf3, 0xff, 0x90, 0x95, 0xf2, 0xff, 0x7d, 0x83, 0xf0, 0xff, 0x53, 0x5a, 0xeb, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x30, 0x39, 0xe7, 0xff, 0xcc, 0xce, 0xf9, 0xff, 0xff, 0xff, 0xff, 0x68,
0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xb1, 0xca, 0xcc, 0xf9, 0xff, 0x54, 0x5b, 0xec, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x2c, 0x35, 0xe7, 0xff, 0x55, 0x5c, 0xec, 0xff, 0xcc, 0xce, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff, 0x01,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0x6a, 0xff, 0xff, 0xff, 0xc5, 0xed, 0xee, 0xfd, 0xf6, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xe3, 0xe4, 0xfc, 0xff, 0xed, 0xee, 0xfd, 0xf6, 0xff, 0xff, 0xff, 0xc5, 0xff, 0xff, 0xff, 0x69, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00,
#endif
};
const lv_img_dsc_t esp_logo_tiny = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 24,
.data_size = 576 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = esp_logo_tiny_map,
};
+167
View File
@@ -0,0 +1,167 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_FAN_OFF
#define LV_ATTRIBUTE_IMG_FAN_OFF
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FAN_OFF uint8_t fan_off_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Blue: 2 bit, Green: 3 bit, Red: 3 bit, Alpha 8 bit */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x1b, 0xb6, 0x6b, 0xb6, 0xb7, 0xb6, 0xd7, 0xb6, 0xf4, 0xb6, 0xf3, 0xb6, 0xd7, 0xb6, 0xb7, 0xb6, 0x6b, 0xb7, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x18, 0xb6, 0x98, 0xb6, 0xfb, 0xb6, 0xf4, 0xb6, 0xac, 0xb6, 0x7f, 0xb6, 0x67, 0xb6, 0x64, 0xb6, 0x7f, 0xb6, 0xa8, 0xb6, 0xf3, 0xb6, 0xfb, 0xb6, 0x98, 0xb6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x48, 0xb6, 0xf0, 0xb6, 0xe3, 0xb6, 0x63, 0xb6, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x08, 0xb6, 0x5f, 0xb6, 0xe3, 0xb6, 0xf0, 0xb6, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x67, 0xb6, 0xfc, 0xb6, 0x9f, 0xb7, 0x08, 0xb7, 0x03, 0xb6, 0x5b, 0xb6, 0x84, 0xb6, 0x64, 0xb6, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x08, 0xb6, 0x9c, 0xb6, 0xfc, 0xb6, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xb6, 0x47, 0xb6, 0xfc, 0xb6, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xac, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xe8, 0xb6, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x7c, 0xb6, 0xfb, 0xb6, 0x44, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xb7, 0x17, 0xb6, 0xef, 0xb6, 0x9f, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x2c, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xdf, 0x92, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xa0, 0xb6, 0xec, 0xb6, 0x14, 0x00, 0x00,
0x00, 0x00, 0xb6, 0x90, 0xb6, 0xe0, 0xb6, 0x08, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x2f, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x08, 0xb6, 0xe3, 0xb6, 0x90, 0x00, 0x00,
0xb6, 0x17, 0xb6, 0xf8, 0xb6, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xac, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x63, 0xb6, 0xf8, 0xb7, 0x17,
0xb6, 0x64, 0xb6, 0xf0, 0xb7, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x04, 0xb6, 0x9f, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x07, 0xb6, 0xf0, 0xb6, 0x63,
0xb6, 0xb0, 0xb6, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x7c, 0xb6, 0xd7, 0xb6, 0xa7, 0xb6, 0x77, 0xb7, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xab, 0xb6, 0xaf,
0xb6, 0xd7, 0xb6, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x3f, 0xb6, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x10, 0xb6, 0x68, 0xb6, 0xa7, 0xb6, 0x87, 0xb6, 0x0c, 0x00, 0x00, 0xb6, 0x74, 0xb6, 0xd4,
0xb6, 0xef, 0xb6, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x58, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x57, 0xb6, 0x20, 0xb6, 0xa3, 0xb6, 0xf7, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xb4, 0x00, 0x00, 0xb6, 0x5c, 0xb6, 0xef,
0xb6, 0xf7, 0xb6, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x04, 0xb6, 0x68, 0xb6, 0x43, 0xb6, 0x77, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x77, 0xb6, 0x50, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x17, 0xb6, 0x53, 0xb6, 0xf4,
0xb6, 0xdf, 0xb6, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x2b, 0xb6, 0xd0, 0xb6, 0xff, 0xb6, 0xab, 0xb7, 0x0f, 0xb6, 0x9b, 0xb6, 0x9b, 0xb6, 0x0c, 0xb6, 0xa8, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xfb, 0xb6, 0x0c, 0xb6, 0x6c, 0xb6, 0xdc,
0xb6, 0xc3, 0xb6, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x1b, 0xb6, 0xe7, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x93, 0xb7, 0x07, 0x00, 0x00, 0xb6, 0x47, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x90, 0x00, 0x00, 0xb6, 0x90, 0xb6, 0xbf,
0xb6, 0x7f, 0xb6, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x84, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xf7, 0xb7, 0x03, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x47, 0xb6, 0xd7, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xfc, 0xb6, 0x9b, 0x92, 0x04, 0x00, 0x00, 0xb6, 0xdc, 0xb6, 0x7b,
0xb6, 0x30, 0xb6, 0xff, 0xb6, 0x37, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb3, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xb6, 0x2f, 0xb6, 0x4b, 0xb6, 0x20, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x37, 0xb6, 0xff, 0xb6, 0x2f,
0x00, 0x00, 0xb6, 0xc0, 0xb6, 0xbb, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xa0, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xbc, 0xb6, 0xbb, 0x00, 0x00,
0x00, 0x00, 0xb6, 0x38, 0xb6, 0xff, 0xb6, 0x5b, 0x00, 0x00, 0xb6, 0x48, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x5c, 0xb6, 0xff, 0xb6, 0x34, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xb6, 0x88, 0xb6, 0xf7, 0xb6, 0x34, 0x00, 0x00, 0xb6, 0x84, 0xb6, 0xfb, 0xb6, 0xff, 0xb6, 0xbb, 0xb6, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x37, 0xb6, 0xf7, 0xb6, 0x84, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xb7, 0x03, 0xb6, 0xb3, 0xb6, 0xf3, 0xb6, 0x4b, 0x00, 0x00, 0xb7, 0x10, 0xb6, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x4f, 0xb6, 0xf3, 0xb6, 0xb3, 0x92, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x07, 0xb6, 0x9b, 0xb6, 0xfc, 0xb6, 0x97, 0xb7, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x18, 0xb6, 0x98, 0xb6, 0xfc, 0xb6, 0x9c, 0xb6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x5c, 0xb6, 0xe3, 0xb6, 0xf3, 0xb6, 0xa7, 0xb6, 0x54, 0xb6, 0x2b, 0xb6, 0x0c, 0xb7, 0x10, 0xb6, 0x2b, 0xb6, 0x5b, 0xb6, 0xa8, 0xb6, 0xf4, 0xb6, 0xe4, 0xb6, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x08, 0xb6, 0x6b, 0xb6, 0xbc, 0xb6, 0xfb, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xfc, 0xb6, 0xc0, 0xb6, 0x6f, 0xb7, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x0c, 0xb6, 0x2c, 0xb6, 0x47, 0xb6, 0x4b, 0xb6, 0x2c, 0xb6, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x7b, 0xb6, 0xdc, 0xb6, 0xdc, 0xb6, 0xdc, 0xb6, 0xdc, 0xb6, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x7c, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x97, 0xb7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x2b, 0xb6, 0xbc, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xbc, 0xb6, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x78, 0xb6, 0xfb, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xfb, 0xb6, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x37, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x58, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0xff, 0xb6, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Blue: 5 bit, Green: 6 bit, Red: 5 bit, Alpha 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x1b, 0xf4, 0xa4, 0x6b, 0xf4, 0xa4, 0xb7, 0xf4, 0xa4, 0xd7, 0xf4, 0xa4, 0xf4, 0xf4, 0xa4, 0xf3, 0xf4, 0xa4, 0xd7, 0xf4, 0xa4, 0xb7, 0x14, 0xa5, 0x6b, 0x14, 0xa5, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x18, 0xf4, 0xa4, 0x98, 0xf4, 0xa4, 0xfb, 0xf4, 0xa4, 0xf4, 0xf4, 0xa4, 0xac, 0x14, 0xa5, 0x7f, 0xf4, 0xa4, 0x67, 0xf4, 0xa4, 0x64, 0x14, 0xa5, 0x7f, 0xf4, 0xa4, 0xa8, 0xf4, 0xa4, 0xf3, 0xf4, 0xa4, 0xfb, 0xf4, 0xa4, 0x98, 0x14, 0xa5, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x48, 0xf4, 0xa4, 0xf0, 0xf4, 0xa4, 0xe3, 0x14, 0xa5, 0x63, 0x14, 0xa5, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x08, 0xf4, 0xa4, 0x5f, 0xf4, 0xa4, 0xe3, 0xf4, 0xa4, 0xf0, 0x14, 0xa5, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x67, 0xf4, 0xa4, 0xfc, 0x14, 0xa5, 0x9f, 0x55, 0xad, 0x08, 0x55, 0xad, 0x03, 0x14, 0xa5, 0x5b, 0xf4, 0xa4, 0x84, 0xf4, 0xa4, 0x64, 0xb3, 0x9c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x08, 0x14, 0xa5, 0x9c, 0xf4, 0xa4, 0xfc, 0x14, 0xa5, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x47, 0xf4, 0xa4, 0xfc, 0xf4, 0xa4, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0xac, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xe8, 0xf4, 0xa4, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x7c, 0xf4, 0xa4, 0xfb, 0x14, 0xa5, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x14, 0xa5, 0x17, 0xf4, 0xa4, 0xef, 0xf4, 0xa4, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x9c, 0x2c, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xdf, 0x10, 0x84, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0xa0, 0xf4, 0xa4, 0xec, 0xf4, 0xa4, 0x14, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf4, 0xa4, 0x90, 0xf4, 0xa4, 0xe0, 0x14, 0xa5, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x9c, 0x2f, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0x14, 0xa5, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x08, 0xf4, 0xa4, 0xe3, 0xf4, 0xa4, 0x90, 0x00, 0x00, 0x00,
0xf3, 0x9c, 0x17, 0xf4, 0xa4, 0xf8, 0xf4, 0xa4, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0xac, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x63, 0xf4, 0xa4, 0xf8, 0x14, 0xa5, 0x17,
0xf4, 0xa4, 0x64, 0xf4, 0xa4, 0xf0, 0x55, 0xad, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x9c, 0x04, 0xf4, 0xa4, 0x9f, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x07, 0xf4, 0xa4, 0xf0, 0x14, 0xa5, 0x63,
0xf4, 0xa4, 0xb0, 0xf4, 0xa4, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x7c, 0xf4, 0xa4, 0xd7, 0xf4, 0xa4, 0xa7, 0x14, 0xa5, 0x77, 0x14, 0xa5, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0xab, 0xf4, 0xa4, 0xaf,
0xf4, 0xa4, 0xd7, 0xf4, 0xa4, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x9c, 0x3f, 0xf3, 0x9c, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xad, 0x10, 0xf4, 0xa4, 0x68, 0xf4, 0xa4, 0xa7, 0x14, 0xa5, 0x87, 0xf4, 0xa4, 0x0c, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x74, 0xf4, 0xa4, 0xd4,
0xf4, 0xa4, 0xef, 0x14, 0xa5, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x58, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x57, 0xf3, 0x9c, 0x20, 0xf4, 0xa4, 0xa3, 0xf4, 0xa4, 0xf7, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xb4, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x5c, 0xf4, 0xa4, 0xef,
0xf4, 0xa4, 0xf7, 0xf4, 0xa4, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x9c, 0x04, 0xf4, 0xa4, 0x68, 0xf4, 0xa4, 0x43, 0xf4, 0xa4, 0x77, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x77, 0x14, 0xa5, 0x50, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf3, 0x9c, 0x17, 0x14, 0xa5, 0x53, 0xf4, 0xa4, 0xf4,
0x14, 0xa5, 0xdf, 0x14, 0xa5, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x2b, 0xf4, 0xa4, 0xd0, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xab, 0x34, 0xa5, 0x0f, 0xf4, 0xa4, 0x9b, 0xf4, 0xa4, 0x9b, 0xf4, 0xa4, 0x0c, 0xf4, 0xa4, 0xa8, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xfb, 0xb3, 0x9c, 0x0c, 0xf4, 0xa4, 0x6c, 0xf4, 0xa4, 0xdc,
0xf4, 0xa4, 0xc3, 0xf4, 0xa4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x1b, 0x14, 0xa5, 0xe7, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x93, 0x55, 0xad, 0x07, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x47, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x90, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x90, 0xf4, 0xa4, 0xbf,
0x14, 0xa5, 0x7f, 0xf4, 0xa4, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x84, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xf7, 0x55, 0xad, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x47, 0xf4, 0xa4, 0xd7, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xfc, 0xf4, 0xa4, 0x9b, 0x10, 0x84, 0x04, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0xdc, 0x14, 0xa5, 0x7b,
0xf3, 0x9c, 0x30, 0xf4, 0xa4, 0xff, 0xf3, 0x9c, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0xb3, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0xf3, 0x9c, 0x2f, 0xf3, 0x9c, 0x4b, 0xf3, 0x9c, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x9c, 0x37, 0xf4, 0xa4, 0xff, 0xf3, 0x9c, 0x2f,
0x00, 0x00, 0x00, 0x14, 0xa5, 0xc0, 0xf4, 0xa4, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0xa0, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0xbc, 0xf4, 0xa4, 0xbb, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x14, 0xa5, 0x38, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x5b, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x48, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x5c, 0xf4, 0xa4, 0xff, 0x14, 0xa5, 0x34, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x88, 0xf4, 0xa4, 0xf7, 0xf4, 0xa4, 0x34, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x84, 0xf4, 0xa4, 0xfb, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xbb, 0x14, 0xa5, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x9c, 0x37, 0xf4, 0xa4, 0xf7, 0xf4, 0xa4, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x03, 0xf4, 0xa4, 0xb3, 0xf4, 0xa4, 0xf3, 0x14, 0xa5, 0x4b, 0x00, 0x00, 0x00, 0x35, 0xad, 0x10, 0xf4, 0xa4, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x4f, 0xf4, 0xa4, 0xf3, 0xf4, 0xa4, 0xb3, 0x10, 0x84, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x07, 0xf4, 0xa4, 0x9b, 0xf4, 0xa4, 0xfc, 0x14, 0xa5, 0x97, 0x14, 0xa5, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x9c, 0x18, 0xf4, 0xa4, 0x98, 0xf4, 0xa4, 0xfc, 0x14, 0xa5, 0x9c, 0xd3, 0x9c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x5c, 0xf4, 0xa4, 0xe3, 0xf4, 0xa4, 0xf3, 0xf4, 0xa4, 0xa7, 0x14, 0xa5, 0x54, 0xf4, 0xa4, 0x2b, 0xf4, 0xa4, 0x0c, 0x35, 0xad, 0x10, 0x14, 0xa5, 0x2b, 0x14, 0xa5, 0x5b, 0xf4, 0xa4, 0xa8, 0xf4, 0xa4, 0xf4, 0xf4, 0xa4, 0xe4, 0xf4, 0xa4, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xad, 0x08, 0x14, 0xa5, 0x6b, 0xf4, 0xa4, 0xbc, 0xf4, 0xa4, 0xfb, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xfc, 0x14, 0xa5, 0xc0, 0xf4, 0xa4, 0x6f, 0x14, 0xa5, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x0c, 0xf3, 0x9c, 0x2c, 0xf4, 0xa4, 0x47, 0xf3, 0x9c, 0x4b, 0x14, 0xa5, 0x2c, 0xd3, 0x9c, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x7b, 0xf4, 0xa4, 0xdc, 0xf4, 0xa4, 0xdc, 0xf4, 0xa4, 0xdc, 0xf4, 0xa4, 0xdc, 0xf4, 0xa4, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x7c, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0x14, 0xa5, 0x97, 0x55, 0xad, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x2b, 0xf4, 0xa4, 0xbc, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xbc, 0xf3, 0x9c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x78, 0xf4, 0xa4, 0xfb, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xfb, 0xf4, 0xa4, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xa4, 0x37, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xa5, 0x58, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0xff, 0xf4, 0xa4, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Blue: 5 bit Green: 6 bit, Red: 5 bit, Alpha 8 bit BUT the 2 color bytes are swapped*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x1b, 0xa4, 0xf4, 0x6b, 0xa4, 0xf4, 0xb7, 0xa4, 0xf4, 0xd7, 0xa4, 0xf4, 0xf4, 0xa4, 0xf4, 0xf3, 0xa4, 0xf4, 0xd7, 0xa4, 0xf4, 0xb7, 0xa5, 0x14, 0x6b, 0xa5, 0x14, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x18, 0xa4, 0xf4, 0x98, 0xa4, 0xf4, 0xfb, 0xa4, 0xf4, 0xf4, 0xa4, 0xf4, 0xac, 0xa5, 0x14, 0x7f, 0xa4, 0xf4, 0x67, 0xa4, 0xf4, 0x64, 0xa5, 0x14, 0x7f, 0xa4, 0xf4, 0xa8, 0xa4, 0xf4, 0xf3, 0xa4, 0xf4, 0xfb, 0xa4, 0xf4, 0x98, 0xa5, 0x14, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x48, 0xa4, 0xf4, 0xf0, 0xa4, 0xf4, 0xe3, 0xa5, 0x14, 0x63, 0xa5, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x08, 0xa4, 0xf4, 0x5f, 0xa4, 0xf4, 0xe3, 0xa4, 0xf4, 0xf0, 0xa5, 0x14, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x67, 0xa4, 0xf4, 0xfc, 0xa5, 0x14, 0x9f, 0xad, 0x55, 0x08, 0xad, 0x55, 0x03, 0xa5, 0x14, 0x5b, 0xa4, 0xf4, 0x84, 0xa4, 0xf4, 0x64, 0x9c, 0xb3, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x55, 0x08, 0xa5, 0x14, 0x9c, 0xa4, 0xf4, 0xfc, 0xa5, 0x14, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x47, 0xa4, 0xf4, 0xfc, 0xa4, 0xf4, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0xac, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xe8, 0xa4, 0xf4, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x7c, 0xa4, 0xf4, 0xfb, 0xa5, 0x14, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xa5, 0x14, 0x17, 0xa4, 0xf4, 0xef, 0xa4, 0xf4, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xf3, 0x2c, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xdf, 0x84, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0xa0, 0xa4, 0xf4, 0xec, 0xa4, 0xf4, 0x14, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xa4, 0xf4, 0x90, 0xa4, 0xf4, 0xe0, 0xa5, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xf3, 0x2f, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa5, 0x14, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x55, 0x08, 0xa4, 0xf4, 0xe3, 0xa4, 0xf4, 0x90, 0x00, 0x00, 0x00,
0x9c, 0xf3, 0x17, 0xa4, 0xf4, 0xf8, 0xa4, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0xac, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x63, 0xa4, 0xf4, 0xf8, 0xa5, 0x14, 0x17,
0xa4, 0xf4, 0x64, 0xa4, 0xf4, 0xf0, 0xad, 0x55, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xd3, 0x04, 0xa4, 0xf4, 0x9f, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x55, 0x07, 0xa4, 0xf4, 0xf0, 0xa5, 0x14, 0x63,
0xa4, 0xf4, 0xb0, 0xa4, 0xf4, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x7c, 0xa4, 0xf4, 0xd7, 0xa4, 0xf4, 0xa7, 0xa5, 0x14, 0x77, 0xa5, 0x14, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0xab, 0xa4, 0xf4, 0xaf,
0xa4, 0xf4, 0xd7, 0xa4, 0xf4, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xf3, 0x3f, 0x9c, 0xf3, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x35, 0x10, 0xa4, 0xf4, 0x68, 0xa4, 0xf4, 0xa7, 0xa5, 0x14, 0x87, 0xa4, 0xf4, 0x0c, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x74, 0xa4, 0xf4, 0xd4,
0xa4, 0xf4, 0xef, 0xa5, 0x14, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x58, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x57, 0x9c, 0xf3, 0x20, 0xa4, 0xf4, 0xa3, 0xa4, 0xf4, 0xf7, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xb4, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x5c, 0xa4, 0xf4, 0xef,
0xa4, 0xf4, 0xf7, 0xa4, 0xf4, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xd3, 0x04, 0xa4, 0xf4, 0x68, 0xa4, 0xf4, 0x43, 0xa4, 0xf4, 0x77, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x77, 0xa5, 0x14, 0x50, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0x9c, 0xf3, 0x17, 0xa5, 0x14, 0x53, 0xa4, 0xf4, 0xf4,
0xa5, 0x14, 0xdf, 0xa5, 0x14, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x2b, 0xa4, 0xf4, 0xd0, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xab, 0xa5, 0x34, 0x0f, 0xa4, 0xf4, 0x9b, 0xa4, 0xf4, 0x9b, 0xa4, 0xf4, 0x0c, 0xa4, 0xf4, 0xa8, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xfb, 0x9c, 0xb3, 0x0c, 0xa4, 0xf4, 0x6c, 0xa4, 0xf4, 0xdc,
0xa4, 0xf4, 0xc3, 0xa4, 0xf4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x1b, 0xa5, 0x14, 0xe7, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x93, 0xad, 0x55, 0x07, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x47, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x90, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x90, 0xa4, 0xf4, 0xbf,
0xa5, 0x14, 0x7f, 0xa4, 0xf4, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x84, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xf7, 0xad, 0x55, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x47, 0xa4, 0xf4, 0xd7, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xfc, 0xa4, 0xf4, 0x9b, 0x84, 0x10, 0x04, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0xdc, 0xa5, 0x14, 0x7b,
0x9c, 0xf3, 0x30, 0xa4, 0xf4, 0xff, 0x9c, 0xf3, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0xb3, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x9c, 0xf3, 0x2f, 0x9c, 0xf3, 0x4b, 0x9c, 0xf3, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xf3, 0x37, 0xa4, 0xf4, 0xff, 0x9c, 0xf3, 0x2f,
0x00, 0x00, 0x00, 0xa5, 0x14, 0xc0, 0xa4, 0xf4, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0xa0, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0xbc, 0xa4, 0xf4, 0xbb, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xa5, 0x14, 0x38, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x5b, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x48, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x5c, 0xa4, 0xf4, 0xff, 0xa5, 0x14, 0x34, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x88, 0xa4, 0xf4, 0xf7, 0xa4, 0xf4, 0x34, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x84, 0xa4, 0xf4, 0xfb, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xbb, 0xa5, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xf3, 0x37, 0xa4, 0xf4, 0xf7, 0xa4, 0xf4, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x55, 0x03, 0xa4, 0xf4, 0xb3, 0xa4, 0xf4, 0xf3, 0xa5, 0x14, 0x4b, 0x00, 0x00, 0x00, 0xad, 0x35, 0x10, 0xa4, 0xf4, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x4f, 0xa4, 0xf4, 0xf3, 0xa4, 0xf4, 0xb3, 0x84, 0x10, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x55, 0x07, 0xa4, 0xf4, 0x9b, 0xa4, 0xf4, 0xfc, 0xa5, 0x14, 0x97, 0xa5, 0x14, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xd3, 0x18, 0xa4, 0xf4, 0x98, 0xa4, 0xf4, 0xfc, 0xa5, 0x14, 0x9c, 0x9c, 0xd3, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x5c, 0xa4, 0xf4, 0xe3, 0xa4, 0xf4, 0xf3, 0xa4, 0xf4, 0xa7, 0xa5, 0x14, 0x54, 0xa4, 0xf4, 0x2b, 0xa4, 0xf4, 0x0c, 0xad, 0x35, 0x10, 0xa5, 0x14, 0x2b, 0xa5, 0x14, 0x5b, 0xa4, 0xf4, 0xa8, 0xa4, 0xf4, 0xf4, 0xa4, 0xf4, 0xe4, 0xa4, 0xf4, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x55, 0x08, 0xa5, 0x14, 0x6b, 0xa4, 0xf4, 0xbc, 0xa4, 0xf4, 0xfb, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xfc, 0xa5, 0x14, 0xc0, 0xa4, 0xf4, 0x6f, 0xa5, 0x14, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x0c, 0x9c, 0xf3, 0x2c, 0xa4, 0xf4, 0x47, 0x9c, 0xf3, 0x4b, 0xa5, 0x14, 0x2c, 0x9c, 0xd3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x7b, 0xa4, 0xf4, 0xdc, 0xa4, 0xf4, 0xdc, 0xa4, 0xf4, 0xdc, 0xa4, 0xf4, 0xdc, 0xa4, 0xf4, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x7c, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa5, 0x14, 0x97, 0xad, 0x55, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x2b, 0xa4, 0xf4, 0xbc, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xbc, 0x9c, 0xf3, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x78, 0xa4, 0xf4, 0xfb, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xfb, 0xa4, 0xf4, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xf4, 0x37, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x14, 0x58, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0xff, 0xa4, 0xf4, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 32
/*Pixel format: Blue: 8 bit, Green: 8 bit, Red: 8 bit, Alpha: 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xa1, 0xa1, 0x1b, 0x9d, 0x9d, 0x9d, 0x6b, 0x9d, 0x9d, 0x9d, 0xb7, 0x9e, 0x9e, 0x9e, 0xd7, 0x9e, 0x9e, 0x9e, 0xf4, 0x9e, 0x9e, 0x9e, 0xf3, 0x9e, 0x9e, 0x9e, 0xd7, 0x9d, 0x9d, 0x9d, 0xb7, 0x9f, 0x9f, 0x9f, 0x6b, 0xa1, 0xa1, 0xa1, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x18, 0x9e, 0x9e, 0x9e, 0x98, 0x9e, 0x9e, 0x9e, 0xfb, 0x9e, 0x9e, 0x9e, 0xf4, 0x9e, 0x9e, 0x9e, 0xac, 0x9f, 0x9f, 0x9f, 0x7f, 0x9e, 0x9e, 0x9e, 0x67, 0x9e, 0x9e, 0x9e, 0x64, 0x9f, 0x9f, 0x9f, 0x7f, 0x9e, 0x9e, 0x9e, 0xa8, 0x9e, 0x9e, 0x9e, 0xf3, 0x9e, 0x9e, 0x9e, 0xfb, 0x9e, 0x9e, 0x9e, 0x98, 0x9f, 0x9f, 0x9f, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x48, 0x9e, 0x9e, 0x9e, 0xf0, 0x9e, 0x9e, 0x9e, 0xe3, 0x9f, 0x9f, 0x9f, 0x63, 0x9f, 0x9f, 0x9f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x08, 0x9d, 0x9d, 0x9d, 0x5f, 0x9e, 0x9e, 0x9e, 0xe3, 0x9e, 0x9e, 0x9e, 0xf0, 0x9f, 0x9f, 0x9f, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x67, 0x9e, 0x9e, 0x9e, 0xfc, 0x9f, 0x9f, 0x9f, 0x9f, 0xaa, 0xaa, 0xaa, 0x08, 0xaa, 0xaa, 0xaa, 0x03, 0x9f, 0x9f, 0x9f, 0x5b, 0x9d, 0x9d, 0x9d, 0x84, 0x9e, 0x9e, 0x9e, 0x64, 0x95, 0x95, 0x95, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x08, 0x9f, 0x9f, 0x9f, 0x9c, 0x9e, 0x9e, 0x9e, 0xfc, 0x9f, 0x9f, 0x9f, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x47, 0x9e, 0x9e, 0x9e, 0xfc, 0x9e, 0x9e, 0x9e, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0xac, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xe8, 0x9d, 0x9d, 0x9d, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x7c, 0x9e, 0x9e, 0x9e, 0xfb, 0x9f, 0x9f, 0x9f, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xa2, 0xa2, 0xa2, 0x17, 0x9e, 0x9e, 0x9e, 0xef, 0x9e, 0x9e, 0x9e, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x9c, 0x9c, 0x2c, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xdf, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0xa0, 0x9e, 0x9e, 0x9e, 0xec, 0x9e, 0x9e, 0x9e, 0x14, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x90, 0x9e, 0x9e, 0x9e, 0xe0, 0x9f, 0x9f, 0x9f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x9b, 0x9b, 0x2f, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9f, 0x9f, 0x9f, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x08, 0x9e, 0x9e, 0x9e, 0xe3, 0x9e, 0x9e, 0x9e, 0x90, 0x00, 0x00, 0x00, 0x00,
0x9b, 0x9b, 0x9b, 0x17, 0x9e, 0x9e, 0x9e, 0xf8, 0x9d, 0x9d, 0x9d, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0xac, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x63, 0x9e, 0x9e, 0x9e, 0xf8, 0xa2, 0xa2, 0xa2, 0x17,
0x9e, 0x9e, 0x9e, 0x64, 0x9e, 0x9e, 0x9e, 0xf0, 0xaa, 0xaa, 0xaa, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x99, 0x99, 0x04, 0x9e, 0x9e, 0x9e, 0x9f, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x07, 0x9e, 0x9e, 0x9e, 0xf0, 0x9f, 0x9f, 0x9f, 0x63,
0x9e, 0x9e, 0x9e, 0xb0, 0x9e, 0x9e, 0x9e, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x7c, 0x9e, 0x9e, 0x9e, 0xd7, 0x9d, 0x9d, 0x9d, 0xa7, 0x9f, 0x9f, 0x9f, 0x77, 0xa1, 0xa1, 0xa1, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0xab, 0x9e, 0x9e, 0x9e, 0xaf,
0x9e, 0x9e, 0x9e, 0xd7, 0x9e, 0x9e, 0x9e, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x9c, 0x9c, 0x3f, 0x9c, 0x9c, 0x9c, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xa5, 0xa5, 0x10, 0x9d, 0x9d, 0x9d, 0x68, 0x9d, 0x9d, 0x9d, 0xa7, 0x9f, 0x9f, 0x9f, 0x87, 0x9d, 0x9d, 0x9d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x74, 0x9e, 0x9e, 0x9e, 0xd4,
0x9e, 0x9e, 0x9e, 0xef, 0x9f, 0x9f, 0x9f, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x58, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x57, 0x9b, 0x9b, 0x9b, 0x20, 0x9e, 0x9e, 0x9e, 0xa3, 0x9e, 0x9e, 0x9e, 0xf7, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x5c, 0x9e, 0x9e, 0x9e, 0xef,
0x9e, 0x9e, 0x9e, 0xf7, 0x9d, 0x9d, 0x9d, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x99, 0x99, 0x04, 0x9d, 0x9d, 0x9d, 0x68, 0x9e, 0x9e, 0x9e, 0x43, 0x9e, 0x9e, 0x9e, 0x77, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x77, 0x9f, 0x9f, 0x9f, 0x50, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9b, 0x9b, 0x9b, 0x17, 0x9f, 0x9f, 0x9f, 0x53, 0x9e, 0x9e, 0x9e, 0xf4,
0x9f, 0x9f, 0x9f, 0xdf, 0x9f, 0x9f, 0x9f, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0, 0x2b, 0x9d, 0x9d, 0x9d, 0xd0, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xab, 0xa4, 0xa4, 0xa4, 0x0f, 0x9d, 0x9d, 0x9d, 0x9b, 0x9d, 0x9d, 0x9d, 0x9b, 0x9d, 0x9d, 0x9d, 0x0c, 0x9e, 0x9e, 0x9e, 0xa8, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xfb, 0x95, 0x95, 0x95, 0x0c, 0x9e, 0x9e, 0x9e, 0x6c, 0x9e, 0x9e, 0x9e, 0xdc,
0x9e, 0x9e, 0x9e, 0xc3, 0x9e, 0x9e, 0x9e, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x1b, 0x9f, 0x9f, 0x9f, 0xe7, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9d, 0x9d, 0x9d, 0x93, 0xaa, 0xaa, 0xaa, 0x07, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x47, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x90, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x90, 0x9e, 0x9e, 0x9e, 0xbf,
0x9f, 0x9f, 0x9f, 0x7f, 0x9e, 0x9e, 0x9e, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x84, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xf7, 0xaa, 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x47, 0x9e, 0x9e, 0x9e, 0xd7, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xfc, 0x9d, 0x9d, 0x9d, 0x9b, 0x80, 0x80, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0xdc, 0x9f, 0x9f, 0x9f, 0x7b,
0x9c, 0x9c, 0x9c, 0x30, 0x9e, 0x9e, 0x9e, 0xff, 0x9c, 0x9c, 0x9c, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0xb3, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9d, 0x9d, 0x9d, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x9b, 0x9b, 0x9b, 0x2f, 0x9c, 0x9c, 0x9c, 0x4b, 0x9b, 0x9b, 0x9b, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x9c, 0x9c, 0x37, 0x9e, 0x9e, 0x9e, 0xff, 0x9b, 0x9b, 0x9b, 0x2f,
0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0xc0, 0x9e, 0x9e, 0x9e, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0xa0, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0xbc, 0x9e, 0x9e, 0x9e, 0xbb, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x38, 0x9e, 0x9e, 0x9e, 0xff, 0x9d, 0x9d, 0x9d, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x48, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x5c, 0x9e, 0x9e, 0x9e, 0xff, 0x9f, 0x9f, 0x9f, 0x34, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x88, 0x9e, 0x9e, 0x9e, 0xf7, 0x9d, 0x9d, 0x9d, 0x34, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x84, 0x9e, 0x9e, 0x9e, 0xfb, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xbb, 0x9f, 0x9f, 0x9f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x9c, 0x9c, 0x37, 0x9e, 0x9e, 0x9e, 0xf7, 0x9d, 0x9d, 0x9d, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x03, 0x9e, 0x9e, 0x9e, 0xb3, 0x9e, 0x9e, 0x9e, 0xf3, 0x9f, 0x9f, 0x9f, 0x4b, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xa5, 0xa5, 0x10, 0x9e, 0x9e, 0x9e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x4f, 0x9e, 0x9e, 0x9e, 0xf3, 0x9e, 0x9e, 0x9e, 0xb3, 0x80, 0x80, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x07, 0x9d, 0x9d, 0x9d, 0x9b, 0x9e, 0x9e, 0x9e, 0xfc, 0x9f, 0x9f, 0x9f, 0x97, 0xa2, 0xa2, 0xa2, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x99, 0x99, 0x18, 0x9e, 0x9e, 0x9e, 0x98, 0x9e, 0x9e, 0x9e, 0xfc, 0x9f, 0x9f, 0x9f, 0x9c, 0x99, 0x99, 0x99, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x5c, 0x9e, 0x9e, 0x9e, 0xe3, 0x9e, 0x9e, 0x9e, 0xf3, 0x9e, 0x9e, 0x9e, 0xa7, 0x9f, 0x9f, 0x9f, 0x54, 0x9e, 0x9e, 0x9e, 0x2b, 0x9d, 0x9d, 0x9d, 0x0c, 0xa5, 0xa5, 0xa5, 0x10, 0xa0, 0xa0, 0xa0, 0x2b, 0x9f, 0x9f, 0x9f, 0x5b, 0x9e, 0x9e, 0x9e, 0xa8, 0x9e, 0x9e, 0x9e, 0xf4, 0x9e, 0x9e, 0x9e, 0xe4, 0x9e, 0x9e, 0x9e, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0x08, 0x9f, 0x9f, 0x9f, 0x6b, 0x9d, 0x9d, 0x9d, 0xbc, 0x9e, 0x9e, 0x9e, 0xfb, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xfc, 0x9f, 0x9f, 0x9f, 0xc0, 0x9e, 0x9e, 0x9e, 0x6f, 0xa2, 0xa2, 0xa2, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x0c, 0x9c, 0x9c, 0x9c, 0x2c, 0x9e, 0x9e, 0x9e, 0x47, 0x9c, 0x9c, 0x9c, 0x4b, 0x9f, 0x9f, 0x9f, 0x2c, 0x99, 0x99, 0x99, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x7b, 0x9e, 0x9e, 0x9e, 0xdc, 0x9e, 0x9e, 0x9e, 0xdc, 0x9e, 0x9e, 0x9e, 0xdc, 0x9e, 0x9e, 0x9e, 0xdc, 0x9e, 0x9e, 0x9e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x7c, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9f, 0x9f, 0x9f, 0x97, 0xaa, 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x2b, 0x9e, 0x9e, 0x9e, 0xbc, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xbc, 0x9b, 0x9b, 0x9b, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9d, 0x9d, 0x78, 0x9e, 0x9e, 0x9e, 0xfb, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xfb, 0x9e, 0x9e, 0x9e, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9e, 0x9e, 0x37, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x58, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0xff, 0x9e, 0x9e, 0x9e, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
};
const lv_img_dsc_t fan_off = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 768 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = fan_off_map,
};
+167
View File
@@ -0,0 +1,167 @@
#if defined(LV_LVGL_H_INCLUDE_SIMPLE)
#include "lvgl.h"
#else
#include "lvgl/lvgl.h"
#endif
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_FAN_ON
#define LV_ATTRIBUTE_IMG_FAN_ON
#endif
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_LARGE_CONST LV_ATTRIBUTE_IMG_FAN_ON uint8_t fan_on_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Blue: 2 bit, Green: 3 bit, Red: 3 bit, Alpha 8 bit */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x20, 0xe5, 0x74, 0xe5, 0xbc, 0xe5, 0xeb, 0xe5, 0xff, 0xe5, 0xf4, 0xe5, 0xdc, 0xe5, 0xbb, 0xe5, 0x73, 0xe5, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x1f, 0xe5, 0xa3, 0xe5, 0xfb, 0xe5, 0xe4, 0xe5, 0x9c, 0xe5, 0x6c, 0xe5, 0x57, 0xe5, 0x5c, 0xe5, 0x70, 0xe5, 0x9b, 0xe5, 0xe3, 0xe5, 0xfb, 0xe5, 0x9c, 0xe5, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x57, 0xe5, 0xef, 0xe5, 0xd3, 0xe5, 0x4f, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0xe5, 0x50, 0xe5, 0xd4, 0xe5, 0xef, 0xe5, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x68, 0xe5, 0xfc, 0xe5, 0x87, 0xe1, 0x04, 0xe1, 0x03, 0xe5, 0x57, 0xe5, 0x7b, 0xe5, 0x5c, 0xe5, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x04, 0xe5, 0x88, 0xe5, 0xfc, 0xe5, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe5, 0x4f, 0xe5, 0xff, 0xe5, 0x68, 0x00, 0x00, 0x00, 0x00, 0xe5, 0xa3, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xd7, 0xe5, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x6b, 0xe5, 0xfb, 0xe5, 0x4c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe5, 0x1c, 0xe5, 0xef, 0xe5, 0x87, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x23, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xcb, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x8b, 0xe5, 0xeb, 0xe1, 0x10, 0x00, 0x00,
0x00, 0x00, 0xe5, 0x9b, 0xe5, 0xd3, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x20, 0xe5, 0xfc, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x04, 0xe5, 0xd7, 0xe5, 0x97, 0x00, 0x00,
0xe5, 0x18, 0xe5, 0xfb, 0xe5, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x8b, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x53, 0xe5, 0xf8, 0xe1, 0x10,
0xe5, 0x6c, 0xe5, 0xe3, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xe5, 0x84, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x03, 0xe5, 0xe4, 0xe5, 0x67,
0xe5, 0xb4, 0xe5, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x64, 0xe5, 0xc4, 0xe5, 0x97, 0xe5, 0x67, 0xe5, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x9b, 0xe5, 0xac,
0xe5, 0xdc, 0xe5, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x3b, 0xe5, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x0f, 0xe5, 0x67, 0xe5, 0xa3, 0xe5, 0x7f, 0xe5, 0x0c, 0x00, 0x00, 0xe5, 0x68, 0xe5, 0xd4,
0xe5, 0xf7, 0xe5, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x53, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x4f, 0xe5, 0x1f, 0xe5, 0x9f, 0xe5, 0xf4, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xb4, 0x00, 0x00, 0xe5, 0x4f, 0xe5, 0xf3,
0xe5, 0xf0, 0xe5, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xe5, 0x50, 0xe5, 0x2b, 0xe5, 0x70, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x6b, 0xe5, 0x4c, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x14, 0xe5, 0x4c, 0xe5, 0xef,
0xe5, 0xeb, 0xe5, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x20, 0xe5, 0xc0, 0xe5, 0xff, 0xe5, 0xa3, 0xe5, 0x08, 0xe5, 0x90, 0xe5, 0x8c, 0xe5, 0x08, 0xe5, 0xa8, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xf7, 0xe5, 0x0b, 0xe5, 0x60, 0xe5, 0xe3,
0xe5, 0xbf, 0xe5, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x10, 0xe5, 0xe0, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x3f, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x8c, 0x00, 0x00, 0xe5, 0x87, 0xe5, 0xb8,
0xe5, 0x88, 0xe5, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x7b, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x3c, 0xe5, 0xcc, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xfc, 0xe5, 0x94, 0xe1, 0x07, 0x00, 0x00, 0xe5, 0xcf, 0xe5, 0x78,
0xe5, 0x30, 0xe5, 0xff, 0xe5, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xe5, 0xb0, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x2f, 0xe5, 0x44, 0xe5, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x2f, 0xe5, 0xff, 0xe5, 0x2c,
0x00, 0x00, 0xe5, 0xc7, 0xe5, 0xa8, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x98, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0xac, 0xe5, 0xb4, 0x00, 0x00,
0x00, 0x00, 0xe5, 0x3b, 0xe5, 0xfc, 0xe5, 0x4c, 0x00, 0x00, 0xe5, 0x3c, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x53, 0xe5, 0xfc, 0xe5, 0x37, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe5, 0x90, 0xe5, 0xef, 0xe5, 0x2c, 0x00, 0x00, 0xe5, 0x6f, 0xe5, 0xf7, 0xe5, 0xfc, 0xe5, 0xa7, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x33, 0xe5, 0xef, 0xe5, 0x7f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe1, 0x04, 0xe5, 0xb4, 0xe5, 0xeb, 0xe5, 0x3c, 0x00, 0x00, 0xe5, 0x07, 0xe5, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x43, 0xe5, 0xeb, 0xe5, 0xb0, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x07, 0xe5, 0xa0, 0xe5, 0xfb, 0xe5, 0x88, 0xe5, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x13, 0xe5, 0x8c, 0xe5, 0xfc, 0xe5, 0x97, 0xe1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x5c, 0xe5, 0xe4, 0xe5, 0xf0, 0xe5, 0x97, 0xe5, 0x48, 0xe5, 0x1f, 0xe0, 0x03, 0xe1, 0x04, 0xe5, 0x1f, 0xe5, 0x4f, 0xe5, 0x9c, 0xe5, 0xf0, 0xe5, 0xeb, 0xe5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x0c, 0xe5, 0x64, 0xe5, 0xc4, 0xe5, 0xfb, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xfc, 0xe5, 0xcb, 0xe5, 0x70, 0xe5, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x08, 0xe5, 0x34, 0xe5, 0x44, 0xe5, 0x3f, 0xe5, 0x33, 0xe5, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x5f, 0xe5, 0xcc, 0xe5, 0xcc, 0xe5, 0xcc, 0xe5, 0xcc, 0xe5, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x70, 0xe5, 0xfc, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x17, 0xe5, 0xa8, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xaf, 0xe5, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x5b, 0xe5, 0xef, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xef, 0xe5, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x24, 0xe5, 0xfc, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xfb, 0xe5, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x50, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xff, 0xe5, 0xf4, 0xe5, 0xef, 0xe5, 0xef, 0xe5, 0xeb, 0xe5, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Blue: 5 bit, Green: 6 bit, Red: 5 bit, Alpha 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xf0, 0x20, 0xa7, 0xf0, 0x74, 0xa7, 0xf0, 0xbc, 0xa7, 0xf0, 0xeb, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xf4, 0xa7, 0xf0, 0xdc, 0xa7, 0xf0, 0xbb, 0xa7, 0xf0, 0x73, 0xc7, 0xf0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xf0, 0x1f, 0xa7, 0xf0, 0xa3, 0xa7, 0xf0, 0xfb, 0xa7, 0xf0, 0xe4, 0xa7, 0xf0, 0x9c, 0xa7, 0xf0, 0x6c, 0xa7, 0xf0, 0x57, 0xa7, 0xf0, 0x5c, 0xa7, 0xf0, 0x70, 0xa7, 0xf0, 0x9b, 0xa7, 0xf0, 0xe3, 0xa7, 0xf0, 0xfb, 0xa7, 0xf0, 0x9c, 0x87, 0xf0, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x57, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0xd3, 0xa7, 0xf0, 0x4f, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xa7, 0xf0, 0x50, 0xa7, 0xf0, 0xd4, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x68, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0x87, 0x06, 0xf8, 0x04, 0x0b, 0xf8, 0x03, 0xa7, 0xf0, 0x57, 0xa7, 0xf0, 0x7b, 0xa7, 0xf0, 0x5c, 0xe7, 0xe0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x04, 0xa7, 0xf0, 0x88, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xf0, 0x4f, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0xa3, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xd7, 0xa7, 0xf0, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x6b, 0xa7, 0xf0, 0xfb, 0xa7, 0xf0, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x87, 0xf0, 0x1c, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xf0, 0x23, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xcb, 0x0b, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x8b, 0xa7, 0xf0, 0xeb, 0x87, 0xf0, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xa7, 0xf0, 0x9b, 0xa7, 0xf0, 0xd3, 0x06, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xf0, 0x20, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xf8, 0x04, 0xa7, 0xf0, 0xd7, 0xa7, 0xf0, 0x97, 0x00, 0x00, 0x00,
0xa6, 0xf8, 0x18, 0xa7, 0xf0, 0xfb, 0xa7, 0xf0, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x8b, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x53, 0xa7, 0xf0, 0xf8, 0x87, 0xf0, 0x10,
0xa7, 0xf0, 0x6c, 0xa7, 0xf0, 0xe3, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xa7, 0xf0, 0x84, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0xf8, 0x03, 0xa7, 0xf0, 0xe4, 0xa7, 0xf0, 0x67,
0xa7, 0xf0, 0xb4, 0xa7, 0xf0, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x64, 0xa7, 0xf0, 0xc4, 0xa7, 0xf0, 0x97, 0xa7, 0xf0, 0x67, 0x86, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x9b, 0xa7, 0xf0, 0xac,
0xa7, 0xf0, 0xdc, 0xa7, 0xf0, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x3b, 0xc7, 0xf0, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xf0, 0x0f, 0xa7, 0xf0, 0x67, 0xa7, 0xf0, 0xa3, 0xa7, 0xf0, 0x7f, 0xa7, 0xe8, 0x0c, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x68, 0xa7, 0xf0, 0xd4,
0xa7, 0xf0, 0xf7, 0xa7, 0xf0, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x53, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x4f, 0x86, 0xf0, 0x1f, 0xa7, 0xf0, 0x9f, 0xa7, 0xf0, 0xf4, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xb4, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x4f, 0xa7, 0xf0, 0xf3,
0xa7, 0xf0, 0xf0, 0xa7, 0xf0, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xa7, 0xf0, 0x50, 0xc7, 0xf0, 0x2b, 0xa7, 0xf0, 0x70, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x6b, 0xa7, 0xf0, 0x4c, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xc6, 0xf0, 0x14, 0xa7, 0xf0, 0x4c, 0xa7, 0xf0, 0xef,
0xa7, 0xf0, 0xeb, 0xa7, 0xf0, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xf0, 0x20, 0xa7, 0xf0, 0xc0, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xa3, 0xe7, 0xe0, 0x08, 0xa7, 0xf0, 0x90, 0xa7, 0xf0, 0x8c, 0xe7, 0xe0, 0x08, 0xa7, 0xf0, 0xa8, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xf7, 0xc6, 0xe8, 0x0b, 0xa7, 0xf0, 0x60, 0xa7, 0xf0, 0xe3,
0xa7, 0xf0, 0xbf, 0xa7, 0xf0, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xf0, 0x10, 0xa7, 0xf0, 0xe0, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x3f, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x8c, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x87, 0xa7, 0xf0, 0xb8,
0xa7, 0xf0, 0x88, 0xa7, 0xf0, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x7b, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x3c, 0xa7, 0xf0, 0xcc, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0x94, 0x05, 0xf8, 0x07, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0xcf, 0xa7, 0xf0, 0x78,
0xa7, 0xf0, 0x30, 0xa7, 0xf0, 0xff, 0x87, 0xf0, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0xb0, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x2f, 0xc7, 0xf0, 0x44, 0x87, 0xf0, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x2f, 0xa7, 0xf0, 0xff, 0xc7, 0xf0, 0x2c,
0x00, 0x00, 0x00, 0xa7, 0xf0, 0xc7, 0xa7, 0xf0, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x98, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0xac, 0xa7, 0xf0, 0xb4, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xa7, 0xf0, 0x3b, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0x4c, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x3c, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x53, 0xa7, 0xf0, 0xfc, 0xc7, 0xf0, 0x37, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x90, 0xa7, 0xf0, 0xef, 0xc6, 0xf0, 0x2c, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x6f, 0xa7, 0xf0, 0xf7, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0xa7, 0x0b, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x33, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0x04, 0xa7, 0xf0, 0xb4, 0xa7, 0xf0, 0xeb, 0xa7, 0xf0, 0x3c, 0x00, 0x00, 0x00, 0x29, 0xf9, 0x07, 0xc6, 0xe8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x43, 0xa7, 0xf0, 0xeb, 0xa7, 0xf0, 0xb0, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xf9, 0x07, 0xa7, 0xf0, 0xa0, 0xa7, 0xf0, 0xfb, 0xa7, 0xf0, 0x88, 0x86, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0xf0, 0x13, 0xa7, 0xf0, 0x8c, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0x97, 0x08, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x5c, 0xa7, 0xf0, 0xe4, 0xa7, 0xf0, 0xf0, 0xa7, 0xf0, 0x97, 0xa7, 0xf0, 0x48, 0x86, 0xf0, 0x1f, 0x00, 0xf8, 0x03, 0x08, 0xf8, 0x04, 0xc7, 0xf0, 0x1f, 0xa7, 0xf0, 0x4f, 0xa7, 0xf0, 0x9c, 0xa7, 0xf0, 0xf0, 0xa7, 0xf0, 0xeb, 0xa7, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xe8, 0x0c, 0xa7, 0xf0, 0x64, 0xa7, 0xf0, 0xc4, 0xa7, 0xf0, 0xfb, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0xcb, 0xa7, 0xf0, 0x70, 0xa7, 0xe8, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf9, 0x08, 0xa7, 0xf0, 0x34, 0xc7, 0xf0, 0x44, 0xa7, 0xf0, 0x3f, 0xa7, 0xf0, 0x33, 0x87, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x5f, 0xa7, 0xf0, 0xcc, 0xa7, 0xf0, 0xcc, 0xa7, 0xf0, 0xcc, 0xa7, 0xf0, 0xcc, 0xa7, 0xf0, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x70, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x17, 0xa7, 0xf0, 0xa8, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xaf, 0xa6, 0xf8, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x5b, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x24, 0xa7, 0xf0, 0xfc, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xfb, 0xc7, 0xf0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xf0, 0x50, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xff, 0xa7, 0xf0, 0xf4, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0xef, 0xa7, 0xf0, 0xeb, 0xa7, 0xf0, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Blue: 5 bit Green: 6 bit, Red: 5 bit, Alpha 8 bit BUT the 2 color bytes are swapped*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x20, 0xf0, 0xa7, 0x74, 0xf0, 0xa7, 0xbc, 0xf0, 0xa7, 0xeb, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xf4, 0xf0, 0xa7, 0xdc, 0xf0, 0xa7, 0xbb, 0xf0, 0xa7, 0x73, 0xf0, 0xc7, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x86, 0x1f, 0xf0, 0xa7, 0xa3, 0xf0, 0xa7, 0xfb, 0xf0, 0xa7, 0xe4, 0xf0, 0xa7, 0x9c, 0xf0, 0xa7, 0x6c, 0xf0, 0xa7, 0x57, 0xf0, 0xa7, 0x5c, 0xf0, 0xa7, 0x70, 0xf0, 0xa7, 0x9b, 0xf0, 0xa7, 0xe3, 0xf0, 0xa7, 0xfb, 0xf0, 0xa7, 0x9c, 0xf0, 0x87, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x57, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0xd3, 0xf0, 0xa7, 0x4f, 0xf8, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x03, 0xf0, 0xa7, 0x50, 0xf0, 0xa7, 0xd4, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x68, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0x87, 0xf8, 0x06, 0x04, 0xf8, 0x0b, 0x03, 0xf0, 0xa7, 0x57, 0xf0, 0xa7, 0x7b, 0xf0, 0xa7, 0x5c, 0xe0, 0xe7, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x04, 0xf0, 0xa7, 0x88, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x4f, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0xa3, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xd7, 0xf0, 0xa7, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x6b, 0xf0, 0xa7, 0xfb, 0xf0, 0xa7, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf0, 0x87, 0x1c, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x23, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xcb, 0xf8, 0x0b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x8b, 0xf0, 0xa7, 0xeb, 0xf0, 0x87, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf0, 0xa7, 0x9b, 0xf0, 0xa7, 0xd3, 0xf8, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x20, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x04, 0xf0, 0xa7, 0xd7, 0xf0, 0xa7, 0x97, 0x00, 0x00, 0x00,
0xf8, 0xa6, 0x18, 0xf0, 0xa7, 0xfb, 0xf0, 0xa7, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x8b, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x53, 0xf0, 0xa7, 0xf8, 0xf0, 0x87, 0x10,
0xf0, 0xa7, 0x6c, 0xf0, 0xa7, 0xe3, 0xf8, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xf0, 0xa7, 0x84, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0b, 0x03, 0xf0, 0xa7, 0xe4, 0xf0, 0xa7, 0x67,
0xf0, 0xa7, 0xb4, 0xf0, 0xa7, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x64, 0xf0, 0xa7, 0xc4, 0xf0, 0xa7, 0x97, 0xf0, 0xa7, 0x67, 0xf0, 0x86, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x9b, 0xf0, 0xa7, 0xac,
0xf0, 0xa7, 0xdc, 0xf0, 0xa7, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x3b, 0xf0, 0xc7, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x86, 0x0f, 0xf0, 0xa7, 0x67, 0xf0, 0xa7, 0xa3, 0xf0, 0xa7, 0x7f, 0xe8, 0xa7, 0x0c, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x68, 0xf0, 0xa7, 0xd4,
0xf0, 0xa7, 0xf7, 0xf0, 0xa7, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x53, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x4f, 0xf0, 0x86, 0x1f, 0xf0, 0xa7, 0x9f, 0xf0, 0xa7, 0xf4, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xb4, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x4f, 0xf0, 0xa7, 0xf3,
0xf0, 0xa7, 0xf0, 0xf0, 0xa7, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xf0, 0xa7, 0x50, 0xf0, 0xc7, 0x2b, 0xf0, 0xa7, 0x70, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x6b, 0xf0, 0xa7, 0x4c, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xc6, 0x14, 0xf0, 0xa7, 0x4c, 0xf0, 0xa7, 0xef,
0xf0, 0xa7, 0xeb, 0xf0, 0xa7, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x20, 0xf0, 0xa7, 0xc0, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xa3, 0xe0, 0xe7, 0x08, 0xf0, 0xa7, 0x90, 0xf0, 0xa7, 0x8c, 0xe0, 0xe7, 0x08, 0xf0, 0xa7, 0xa8, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xf7, 0xe8, 0xc6, 0x0b, 0xf0, 0xa7, 0x60, 0xf0, 0xa7, 0xe3,
0xf0, 0xa7, 0xbf, 0xf0, 0xa7, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x86, 0x10, 0xf0, 0xa7, 0xe0, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x3f, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x8c, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x87, 0xf0, 0xa7, 0xb8,
0xf0, 0xa7, 0x88, 0xf0, 0xa7, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x7b, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x3c, 0xf0, 0xa7, 0xcc, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0x94, 0xf8, 0x05, 0x07, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0xcf, 0xf0, 0xa7, 0x78,
0xf0, 0xa7, 0x30, 0xf0, 0xa7, 0xff, 0xf0, 0x87, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0xb0, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x2f, 0xf0, 0xc7, 0x44, 0xf0, 0x87, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x2f, 0xf0, 0xa7, 0xff, 0xf0, 0xc7, 0x2c,
0x00, 0x00, 0x00, 0xf0, 0xa7, 0xc7, 0xf0, 0xa7, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x98, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0xac, 0xf0, 0xa7, 0xb4, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf0, 0xa7, 0x3b, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0x4c, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x3c, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x53, 0xf0, 0xa7, 0xfc, 0xf0, 0xc7, 0x37, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x90, 0xf0, 0xa7, 0xef, 0xf0, 0xc6, 0x2c, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x6f, 0xf0, 0xa7, 0xf7, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0xa7, 0xf8, 0x0b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x33, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x04, 0xf0, 0xa7, 0xb4, 0xf0, 0xa7, 0xeb, 0xf0, 0xa7, 0x3c, 0x00, 0x00, 0x00, 0xf9, 0x29, 0x07, 0xe8, 0xc6, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x43, 0xf0, 0xa7, 0xeb, 0xf0, 0xa7, 0xb0, 0xf8, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x29, 0x07, 0xf0, 0xa7, 0xa0, 0xf0, 0xa7, 0xfb, 0xf0, 0xa7, 0x88, 0xf0, 0x86, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x67, 0x13, 0xf0, 0xa7, 0x8c, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0x97, 0xf8, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x5c, 0xf0, 0xa7, 0xe4, 0xf0, 0xa7, 0xf0, 0xf0, 0xa7, 0x97, 0xf0, 0xa7, 0x48, 0xf0, 0x86, 0x1f, 0xf8, 0x00, 0x03, 0xf8, 0x08, 0x04, 0xf0, 0xc7, 0x1f, 0xf0, 0xa7, 0x4f, 0xf0, 0xa7, 0x9c, 0xf0, 0xa7, 0xf0, 0xf0, 0xa7, 0xeb, 0xf0, 0xa7, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xa8, 0x0c, 0xf0, 0xa7, 0x64, 0xf0, 0xa7, 0xc4, 0xf0, 0xa7, 0xfb, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0xcb, 0xf0, 0xa7, 0x70, 0xe8, 0xa7, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x08, 0x08, 0xf0, 0xa7, 0x34, 0xf0, 0xc7, 0x44, 0xf0, 0xa7, 0x3f, 0xf0, 0xa7, 0x33, 0xf0, 0x87, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x5f, 0xf0, 0xa7, 0xcc, 0xf0, 0xa7, 0xcc, 0xf0, 0xa7, 0xcc, 0xf0, 0xa7, 0xcc, 0xf0, 0xa7, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x70, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x17, 0xf0, 0xa7, 0xa8, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xaf, 0xf8, 0xa6, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x5b, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x24, 0xf0, 0xa7, 0xfc, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xfb, 0xf0, 0xc7, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xa7, 0x50, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xff, 0xf0, 0xa7, 0xf4, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0xef, 0xf0, 0xa7, 0xeb, 0xf0, 0xa7, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
#if LV_COLOR_DEPTH == 32
/*Pixel format: Blue: 8 bit, Green: 8 bit, Red: 8 bit, Alpha: 8 bit*/
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x17, 0xf0, 0x20, 0x37, 0x16, 0xf0, 0x74, 0x38, 0x14, 0xf0, 0xbc, 0x36, 0x15, 0xf0, 0xeb, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xf4, 0x37, 0x15, 0xf0, 0xdc, 0x37, 0x15, 0xf0, 0xbb, 0x38, 0x14, 0xef, 0x73, 0x38, 0x18, 0xef, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x11, 0xee, 0x1f, 0x37, 0x14, 0xef, 0xa3, 0x37, 0x15, 0xf0, 0xfb, 0x37, 0x15, 0xf0, 0xe4, 0x37, 0x15, 0xf0, 0x9c, 0x36, 0x15, 0xf1, 0x6c, 0x38, 0x15, 0xf0, 0x57, 0x37, 0x16, 0xf1, 0x5c, 0x36, 0x14, 0xef, 0x70, 0x36, 0x15, 0xf0, 0x9b, 0x37, 0x15, 0xf0, 0xe3, 0x37, 0x15, 0xf0, 0xfb, 0x37, 0x15, 0xf0, 0x9c, 0x35, 0x12, 0xed, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x15, 0xf0, 0x57, 0x37, 0x15, 0xf0, 0xef, 0x37, 0x15, 0xf0, 0xd3, 0x38, 0x14, 0xef, 0x4f, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x36, 0x16, 0xef, 0x50, 0x37, 0x14, 0xf1, 0xd4, 0x37, 0x15, 0xf0, 0xef, 0x38, 0x14, 0xee, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x16, 0xf0, 0x68, 0x37, 0x15, 0xf0, 0xfc, 0x37, 0x15, 0xf0, 0x87, 0x33, 0x00, 0xff, 0x04, 0x55, 0x00, 0xff, 0x03, 0x38, 0x15, 0xf0, 0x57, 0x38, 0x15, 0xf0, 0x7b, 0x37, 0x16, 0xf1, 0x5c, 0x39, 0x1c, 0xe3, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xff, 0x04, 0x36, 0x15, 0xf0, 0x88, 0x37, 0x15, 0xf0, 0xfc, 0x38, 0x14, 0xf0, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x17, 0xef, 0x4f, 0x37, 0x15, 0xf0, 0xff, 0x38, 0x16, 0xf0, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x14, 0xef, 0xa3, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xd7, 0x39, 0x13, 0xf2, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xf1, 0x6b, 0x37, 0x15, 0xf0, 0xfb, 0x38, 0x14, 0xee, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x37, 0x12, 0xed, 0x1c, 0x37, 0x15, 0xf0, 0xef, 0x37, 0x15, 0xf0, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x17, 0xf0, 0x23, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x38, 0x15, 0xf0, 0xcb, 0x55, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x14, 0xf0, 0x8b, 0x36, 0x15, 0xf0, 0xeb, 0x3c, 0x0f, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xf0, 0x9b, 0x37, 0x15, 0xf0, 0xd3, 0x33, 0x00, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x18, 0xef, 0x20, 0x37, 0x15, 0xf0, 0xfc, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x36, 0x15, 0xee, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0xff, 0x04, 0x37, 0x15, 0xf0, 0xd7, 0x36, 0x14, 0xf0, 0x97, 0x00, 0x00, 0x00, 0x00,
0x33, 0x14, 0xf5, 0x18, 0x37, 0x15, 0xf0, 0xfb, 0x38, 0x14, 0xee, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x14, 0xf0, 0x8b, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x16, 0xf1, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x16, 0xef, 0x53, 0x36, 0x15, 0xf0, 0xf8, 0x3c, 0x0f, 0xf0, 0x10,
0x38, 0x15, 0xf1, 0x6c, 0x37, 0x15, 0xf0, 0xe3, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x38, 0x15, 0xf0, 0x84, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x36, 0x16, 0xf1, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0xff, 0x03, 0x37, 0x15, 0xf0, 0xe4, 0x36, 0x14, 0xf0, 0x67,
0x37, 0x15, 0xef, 0xb4, 0x37, 0x16, 0xf0, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x14, 0xf0, 0x64, 0x36, 0x15, 0xef, 0xc4, 0x36, 0x14, 0xf0, 0x97, 0x36, 0x14, 0xf0, 0x67, 0x33, 0x11, 0xee, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x15, 0xf0, 0x9b, 0x37, 0x15, 0xf0, 0xac,
0x37, 0x15, 0xf0, 0xdc, 0x38, 0x14, 0xf0, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x16, 0xf2, 0x3b, 0x38, 0x17, 0xf1, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x11, 0xee, 0x0f, 0x37, 0x14, 0xf0, 0x67, 0x37, 0x14, 0xef, 0xa3, 0x37, 0x14, 0xf1, 0x7f, 0x3b, 0x14, 0xeb, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x16, 0xf0, 0x68, 0x37, 0x14, 0xf1, 0xd4,
0x37, 0x15, 0xf0, 0xf7, 0x37, 0x15, 0xf1, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x16, 0xef, 0x53, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x38, 0x14, 0xef, 0x4f, 0x33, 0x11, 0xee, 0x1f, 0x37, 0x15, 0xf1, 0x9f, 0x37, 0x15, 0xf0, 0xf4, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xef, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x14, 0xef, 0x4f, 0x37, 0x15, 0xf0, 0xf3,
0x37, 0x15, 0xf0, 0xf0, 0x37, 0x16, 0xf0, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x36, 0x16, 0xef, 0x50, 0x35, 0x18, 0xed, 0x2b, 0x37, 0x14, 0xef, 0x70, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x16, 0xf1, 0x6b, 0x36, 0x14, 0xf2, 0x4c, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x33, 0x1a, 0xf2, 0x14, 0x36, 0x14, 0xf2, 0x4c, 0x37, 0x15, 0xf0, 0xef,
0x36, 0x15, 0xf0, 0xeb, 0x37, 0x14, 0xf1, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x17, 0xf0, 0x20, 0x37, 0x15, 0xf0, 0xc0, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x14, 0xef, 0xa3, 0x39, 0x1c, 0xe3, 0x08, 0x37, 0x15, 0xf1, 0x90, 0x36, 0x16, 0xf1, 0x8c, 0x39, 0x1c, 0xe3, 0x08, 0x36, 0x15, 0xf0, 0xa8, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xf7, 0x2e, 0x17, 0xe8, 0x0b, 0x37, 0x15, 0xef, 0x60, 0x37, 0x15, 0xf0, 0xe3,
0x37, 0x15, 0xf0, 0xbf, 0x38, 0x15, 0xf0, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0xef, 0x10, 0x38, 0x16, 0xf0, 0xe0, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x16, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x14, 0xef, 0x3f, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x16, 0xf0, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x37, 0x15, 0xf0, 0x87, 0x37, 0x15, 0xf0, 0xb8,
0x36, 0x15, 0xf0, 0x88, 0x37, 0x15, 0xf0, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x15, 0xf0, 0x7b, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x15, 0xee, 0x3c, 0x37, 0x15, 0xf0, 0xcc, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xfc, 0x37, 0x15, 0xf0, 0x94, 0x2b, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x37, 0x15, 0xf0, 0xcf, 0x37, 0x15, 0xf0, 0x78,
0x35, 0x15, 0xef, 0x30, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x12, 0xf3, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x14, 0xf1, 0xb0, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xee, 0x2f, 0x38, 0x17, 0xf0, 0x44, 0x35, 0x12, 0xed, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x16, 0xef, 0x2f, 0x37, 0x15, 0xf0, 0xff, 0x39, 0x17, 0xee, 0x2c,
0x00, 0x00, 0x00, 0x00, 0x37, 0x15, 0xf0, 0xc7, 0x37, 0x15, 0xf0, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xf0, 0x98, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x38, 0x16, 0xf1, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x15, 0xf0, 0xac, 0x37, 0x15, 0xf0, 0xb4, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x39, 0x16, 0xf2, 0x3b, 0x37, 0x15, 0xf0, 0xfc, 0x38, 0x14, 0xee, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x36, 0x15, 0xee, 0x3c, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x38, 0x14, 0xef, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xf0, 0x53, 0x37, 0x15, 0xf0, 0xfc, 0x38, 0x17, 0xf1, 0x37, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x15, 0xef, 0x90, 0x37, 0x15, 0xf0, 0xef, 0x34, 0x17, 0xee, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x15, 0xf1, 0x6f, 0x37, 0x15, 0xf0, 0xf7, 0x37, 0x15, 0xf0, 0xfc, 0x37, 0x16, 0xf0, 0xa7, 0x55, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x14, 0xf0, 0x33, 0x37, 0x15, 0xf0, 0xef, 0x36, 0x14, 0xf1, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xff, 0x04, 0x37, 0x15, 0xf0, 0xb4, 0x37, 0x15, 0xf0, 0xeb, 0x37, 0x15, 0xee, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x24, 0xff, 0x07, 0x2e, 0x17, 0xe8, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x13, 0xf0, 0x43, 0x37, 0x15, 0xf0, 0xeb, 0x37, 0x14, 0xf1, 0xb0, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x24, 0xff, 0x07, 0x38, 0x15, 0xf1, 0xa0, 0x37, 0x15, 0xf0, 0xfb, 0x38, 0x14, 0xf0, 0x88, 0x33, 0x11, 0xee, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x0e, 0xf1, 0x13, 0x36, 0x16, 0xf1, 0x8c, 0x37, 0x15, 0xf0, 0xfc, 0x36, 0x14, 0xf0, 0x97, 0x40, 0x00, 0xff, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xf1, 0x5c, 0x37, 0x15, 0xf1, 0xe4, 0x37, 0x15, 0xf0, 0xf0, 0x36, 0x14, 0xf0, 0x97, 0x38, 0x15, 0xf1, 0x48, 0x33, 0x11, 0xee, 0x1f, 0x00, 0x00, 0xff, 0x03, 0x40, 0x00, 0xff, 0x04, 0x3a, 0x19, 0xef, 0x1f, 0x38, 0x14, 0xef, 0x4f, 0x37, 0x15, 0xf0, 0x9c, 0x37, 0x15, 0xf0, 0xf0, 0x37, 0x15, 0xf0, 0xeb, 0x37, 0x15, 0xef, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x15, 0xea, 0x0c, 0x38, 0x14, 0xf0, 0x64, 0x37, 0x15, 0xef, 0xc4, 0x37, 0x15, 0xf0, 0xfb, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xfc, 0x38, 0x15, 0xf0, 0xcb, 0x37, 0x14, 0xef, 0x70, 0x3b, 0x14, 0xeb, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0xff, 0x08, 0x35, 0x13, 0xf1, 0x34, 0x38, 0x17, 0xf0, 0x44, 0x35, 0x15, 0xef, 0x3f, 0x38, 0x14, 0xf0, 0x33, 0x37, 0x12, 0xed, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x15, 0xef, 0x5f, 0x37, 0x15, 0xf0, 0xcc, 0x37, 0x15, 0xf0, 0xcc, 0x37, 0x15, 0xf0, 0xcc, 0x37, 0x15, 0xf0, 0xcc, 0x36, 0x15, 0xf0, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x14, 0xef, 0x70, 0x37, 0x15, 0xf0, 0xfc, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x14, 0xf1, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x16, 0xf4, 0x17, 0x37, 0x15, 0xf0, 0xa8, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x38, 0x15, 0xf0, 0xaf, 0x33, 0x14, 0xf5, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x14, 0xf1, 0x5b, 0x37, 0x15, 0xf0, 0xef, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xef, 0x38, 0x14, 0xf1, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x15, 0xf1, 0x24, 0x37, 0x15, 0xf0, 0xfc, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xfb, 0x36, 0x17, 0xf0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x16, 0xef, 0x50, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xff, 0x37, 0x15, 0xf0, 0xf4, 0x37, 0x15, 0xf0, 0xef, 0x37, 0x15, 0xf0, 0xef, 0x37, 0x15, 0xf0, 0xeb, 0x36, 0x13, 0xf0, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#endif
};
const lv_img_dsc_t fan_on = {
.header.always_zero = 0,
.header.w = 24,
.header.h = 32,
.data_size = 768 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = fan_on_map,
};

Some files were not shown because too many files have changed in this diff Show More