example:ChatGPT_demo using uf2
@@ -8,9 +8,9 @@ In this example, we are utilizing the OpenAI API in conjunction with an ESP-Box
|
||||
git checkout master && git pull && git submodule update --init --recursive
|
||||
|
||||
```
|
||||
* If you encounter any errors during the upgrade process, please make sure to use the ESP-IDF version [master](https://github.com/espressif/esp-idf) at commit ID `df9310ada26123d8d478bcfa203f874d8c21d654`. This specific commit represents a stable state of the ESP-IDF repository and can help ensure a smoother transition or troubleshooting process.
|
||||
* If you encounter any errors during the upgrade process, please make sure to use the ESP-IDF version [master](https://github.com/espressif/esp-idf) at commit ID `d2471b11e78fb0af612dfa045255ac7fe497bea8`. This specific commit represents a stable state of the ESP-IDF repository and can help ensure a smoother transition or troubleshooting process.
|
||||
```
|
||||
git checkout df9310ada26123d8d478bcfa203f874d8c21d654 && git pull && git submodule update --init --recursive
|
||||
git checkout 67552c31dac8cd94fb0d63192a538f4f984c5b6e && git pull && git submodule update --init --recursive
|
||||
|
||||
```
|
||||
|
||||
@@ -18,6 +18,8 @@ git checkout df9310ada26123d8d478bcfa203f874d8c21d654 && git pull && git submodu
|
||||
Due to the lack of native text-to-speech support in the [OpenAI](https://platform.openai.com/docs/api-reference) API, an external API is used to meet this requirement. This example utilizes the text-to-speech functionality offered by [TalkingGenie](https://www.talkinggenie.com/tts). Additional information can be found in this [blog post](https://czyt.tech/post/a-free-tts-api/?from_wecom=1).
|
||||
|
||||
## **Reproducing the demo**
|
||||
There is another project called **factory_nvs** within the **ChatGPT_demo** project. It includes the code to store credentials in the NVS (Non-Volatile Storage) of the ESP-Box. On the other hand, **Chat_GPT Demo**consists of the demo code. Therefore, it is essential to build both projects.
|
||||
|
||||
|
||||
### 1. Clone the Github repository
|
||||
|
||||
@@ -26,26 +28,51 @@ git clone https://github.com/espressif/esp-box
|
||||
|
||||
```
|
||||
|
||||
### 2. Change the working directory to model_deployment
|
||||
### 2. Change the working directory
|
||||
|
||||
```bash
|
||||
cd examples/chatgpt_demo/factory_nvs
|
||||
|
||||
```
|
||||
|
||||
### 3. Build the factory_nvs
|
||||
|
||||
```bash
|
||||
idf.py build
|
||||
|
||||
```
|
||||
|
||||
### 4. Change the working directory
|
||||
|
||||
```bash
|
||||
cd examples/chatgpt_demo/
|
||||
|
||||
```
|
||||
|
||||
### 3. Set up OpenAI Key, WiFi SSID and Password
|
||||
|
||||
```
|
||||
idf.py menuconfig
|
||||
|
||||
```
|
||||
### 4. Build the project
|
||||
### 5. Build the chatgpt_demo
|
||||
|
||||
```bash
|
||||
idf.py build flash monitor
|
||||
idf.py build
|
||||
|
||||
```
|
||||
|
||||
### 6. Flash on ESP-BOX
|
||||
```
|
||||
python -m esptool -p /dev/ttyACM0 --chip esp32s3 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 16MB --flash_freq 80m 0x0 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0xd000 build/ota_data_initial.bin 0x10000 build/chatgpt_demo.bin 0x900000 build/storage.bin 0xb00000 build/srmodels/srmodels.bin 0x700000 factory_nvs/build/factory_nvs.bin
|
||||
|
||||
```
|
||||
|
||||
In case found error during the building process [follow the official IDF guide for more details](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#build-your-first-project).
|
||||
|
||||
> **Note :**
|
||||
> Please note that you require an OpenAI API key to proceed with the demo. To enter the WIFI credentials and OpenAI secret key, access the menuconfig using "idf.py menuconfig"
|
||||
|
||||
## Known compilation errors
|
||||
When encountering compilation errors related to the "espressif__esp-sr" component, a common solution is to remove the ".component_hash" file located at "managed_components/espressif__esp-sr" and proceed with the rebuild. This step helps resolve the issue and allows the compilation process to continue smoothly.
|
||||
|
||||
|
||||
### **Note**:
|
||||
Please note that,
|
||||
1. You require an **OpenAI API** key to proceed with the demo.
|
||||
2. To enter the WIFI credentials and OpenAI secret key.
|
||||
3. The example does not currently support ESP-BOX Lite.
|
||||
4. Additionally, as a result of **OpenAI's restrictions**, this particular example cannot be supported within Mainland China.
|
||||
@@ -1 +0,0 @@
|
||||
6761973f9f117571afcf1f70db4036a226dddee347c39e66518e4fcb3f521c16
|
||||
@@ -234,12 +234,12 @@ static esp_err_t aplay_file(audio_instance_t *i, uint8_t *stream, uint32_t strea
|
||||
memset(&i2s_format, 0, sizeof(i2s_format));
|
||||
|
||||
esp_err_t ret = ESP_OK;
|
||||
audio_player_event_t audio_event = { .type = AUDIO_PLAYER_REQUEST_NONE, .stream = NULL };
|
||||
audio_player_event_t audio_event = { .type = AUDIO_PLAYER_REQUEST_NONE, .stream = NULL, .stream_len = 0 };
|
||||
|
||||
FILE_TYPE file_type = FILE_TYPE_UNKNOWN;
|
||||
uint8_t *p_stream = stream;
|
||||
// LOGI_1("start to decode,%p, %p, stream_len:%d", stream, p_stream, stream_len);
|
||||
LOGI_1("start to decode, %p, %p, stream_len:%"PRIu32, stream, p_stream, stream_len);
|
||||
LOGI_1("start to decode, %p, %p, stream_len:%" PRIu32 , stream, p_stream, stream_len);
|
||||
|
||||
|
||||
#if defined(CONFIG_AUDIO_PLAYER_ENABLE_MP3)
|
||||
@@ -359,7 +359,7 @@ static esp_err_t aplay_file(audio_instance_t *i, uint8_t *stream, uint32_t strea
|
||||
(i2s_format.channels != i->output.fmt.channels) ||
|
||||
(i2s_format.bits_per_sample != i->output.fmt.bits_per_sample)) {
|
||||
i2s_format = i->output.fmt;
|
||||
LOGI_1("format change: sr=%d, bit=%"PRIu32", ch=%"PRIu32,
|
||||
LOGI_1("format change: sr=%d, bit=%" PRIu32 ", ch=%" PRIu32 ,
|
||||
i2s_format.sample_rate,
|
||||
i2s_format.bits_per_sample,
|
||||
i2s_format.channels);
|
||||
@@ -482,21 +482,21 @@ esp_err_t audio_player_play(uint8_t *stream, uint32_t file_len)
|
||||
esp_err_t audio_player_pause(void)
|
||||
{
|
||||
LOGI_1("%s", __FUNCTION__);
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_PAUSE, .stream = NULL };
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_PAUSE, .stream = NULL, .stream_len = 0};
|
||||
return audio_send_event(&instance, event);
|
||||
}
|
||||
|
||||
esp_err_t audio_player_resume(void)
|
||||
{
|
||||
LOGI_1("%s", __FUNCTION__);
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_RESUME, .stream = NULL };
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_RESUME, .stream = NULL, .stream_len = 0};
|
||||
return audio_send_event(&instance, event);
|
||||
}
|
||||
|
||||
esp_err_t audio_player_stop(void)
|
||||
{
|
||||
LOGI_1("%s", __FUNCTION__);
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_STOP, .stream = NULL };
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_STOP, .stream = NULL, .stream_len = 0};
|
||||
return audio_send_event(&instance, event);
|
||||
}
|
||||
|
||||
@@ -507,7 +507,7 @@ esp_err_t audio_player_stop(void)
|
||||
static esp_err_t _internal_audio_player_shutdown_thread(void)
|
||||
{
|
||||
LOGI_1("%s", __FUNCTION__);
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_SHUTDOWN_THREAD, .stream = NULL };
|
||||
audio_player_event_t event = { .type = AUDIO_PLAYER_REQUEST_SHUTDOWN_THREAD, .stream = NULL, .stream_len = 0 };
|
||||
return audio_send_event(&instance, event);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# ChangeLog
|
||||
|
||||
## v0.0.1 - 2023-6-15
|
||||
|
||||
### Enhancements:
|
||||
|
||||
* OpenAI ChatGPT and Whisper AI support
|
||||
@@ -1,5 +0,0 @@
|
||||
idf_component_register(
|
||||
SRCS "OpenAI.c"
|
||||
INCLUDE_DIRS "include"
|
||||
REQUIRES tcp_transport esp_http_client
|
||||
)
|
||||
@@ -1,202 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
||||
@@ -1,398 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
|
||||
#include <string.h>
|
||||
#include "OpenAI.h"
|
||||
#include "esp_log.h"
|
||||
#include <json_parser.h>
|
||||
#include "esp_http_client.h"
|
||||
#include "esp_crt_bundle.h"
|
||||
|
||||
static const char *json_fmt = "{\"model\":\"%s\",\"max_tokens\":%d,\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]}";
|
||||
static const char *TAG = "Open AI";
|
||||
|
||||
char OPENAI_API_KEY[OPENAI_API_KEY_MAX_LEN];
|
||||
char message_content[MESSAGE_CONTENT_SIZE] = {0};
|
||||
char message_content_for_whisper[1024] = {0};
|
||||
char json_payload[512];
|
||||
|
||||
// Forward Declaration will be remove in new version of OpenAI component
|
||||
|
||||
typedef struct {
|
||||
bool need_hint;
|
||||
region_t current_server;
|
||||
char ssid[32];
|
||||
char password[64];
|
||||
uint8_t ssid_len;
|
||||
uint8_t password_len;
|
||||
} sys_param_t;
|
||||
|
||||
// Declaration of the weak function will be remove in new version of OpenAI component
|
||||
|
||||
sys_param_t* __attribute__((weak)) settings_get_parameter(void) {
|
||||
static sys_param_t default_parameters = {
|
||||
.current_server = REGION_Espressif, // Default server
|
||||
};
|
||||
return &default_parameters;
|
||||
}
|
||||
|
||||
// Declaration of the weak function will be remove in new version of OpenAI component
|
||||
|
||||
esp_err_t __attribute__((weak)) settings_write_parameter_to_nvs(void){
|
||||
|
||||
printf("This is the weak function.\n");
|
||||
return NULL; // Or return a default sys_param_t value
|
||||
}
|
||||
|
||||
/* Function to set the OpenAI API key */
|
||||
|
||||
void set_api_key(const char *key)
|
||||
{
|
||||
if (key == NULL) {
|
||||
ESP_LOGE(TAG, "OpenAI API key is NULL");
|
||||
return;
|
||||
}
|
||||
size_t key_length = strlen(key);
|
||||
if (key_length >= OPENAI_API_KEY_MAX_LEN) {
|
||||
ESP_LOGE(TAG, "OpenAI API key is too long: %s", key);
|
||||
return;
|
||||
}
|
||||
strncpy(OPENAI_API_KEY, key, OPENAI_API_KEY_MAX_LEN - 1);
|
||||
OPENAI_API_KEY[OPENAI_API_KEY_MAX_LEN - 1] = '\0';
|
||||
|
||||
ESP_LOGI(TAG, "API Key entered");
|
||||
}
|
||||
|
||||
/* Parsing response coming from server */
|
||||
|
||||
void parse_response (const char *data, int len)
|
||||
{
|
||||
jparse_ctx_t jctx;
|
||||
int ret = json_parse_start(&jctx, data, len);
|
||||
if (ret != OS_SUCCESS) {
|
||||
ESP_LOGE(TAG, "Parser failed");
|
||||
return;
|
||||
}
|
||||
printf("\n");
|
||||
int num_choices;
|
||||
/* Parsing OpenAI & Espressif server Chat GPT response */
|
||||
if (json_obj_get_array(&jctx, "choices", &num_choices) == OS_SUCCESS) {
|
||||
for (int i = 0; i < num_choices; i++) {
|
||||
if (json_arr_get_object(&jctx, i) == OS_SUCCESS && json_obj_get_object(&jctx, "message") == OS_SUCCESS &&
|
||||
json_obj_get_string(&jctx, "content", message_content, sizeof(message_content)) == OS_SUCCESS) {
|
||||
ESP_LOGI(TAG, "ChatGPT message_content: %s\n", message_content);
|
||||
}
|
||||
json_arr_leave_object(&jctx);
|
||||
}
|
||||
json_obj_leave_array(&jctx);
|
||||
}
|
||||
/* Parsing OpenAI server Whisper AI response */
|
||||
else if (json_obj_get_string(&jctx, "text", message_content, sizeof(message_content)) == OS_SUCCESS) {
|
||||
ESP_LOGI(TAG, "Whisper message_content: %s", message_content);
|
||||
} else if (json_obj_get_object(&jctx, "error") == OS_SUCCESS) {
|
||||
if (json_obj_get_string(&jctx, "type", message_content, sizeof(message_content)) == OS_SUCCESS) {
|
||||
ESP_LOGE(TAG, "API returns an error: %s", message_content);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Parsing espressif server Whisper AI response */
|
||||
|
||||
void parse_espressif_server_whisper_response(const char *data, int len)
|
||||
{
|
||||
jparse_ctx_t jctx;
|
||||
int ret = json_parse_start(&jctx, data, len);
|
||||
if (ret != OS_SUCCESS) {
|
||||
ESP_LOGE(TAG, "Parser failed");
|
||||
return;
|
||||
}
|
||||
if (json_obj_get_string(&jctx, "whisper", message_content_for_whisper, sizeof(message_content_for_whisper)) == OS_SUCCESS) {
|
||||
ESP_LOGI(TAG, "Whisper message_content: %s", message_content_for_whisper);
|
||||
} else {
|
||||
ESP_LOGE(TAG, "Error in parse whisper AI response data");
|
||||
}
|
||||
}
|
||||
|
||||
/* Intermediate function to correctly parse data*/
|
||||
|
||||
void parsing_data(const char *data, int len)
|
||||
{
|
||||
if (data == NULL) {
|
||||
ESP_LOGE(TAG, "Response data is NULL");
|
||||
return;
|
||||
}
|
||||
sys_param_t *sys_set = settings_get_parameter();
|
||||
|
||||
if (sys_set->current_server == REGION_Espressif) {
|
||||
ESP_LOGI(TAG, "parsing Espressif server response");
|
||||
parse_espressif_server_whisper_response(data, len);
|
||||
}
|
||||
parse_response(data, len);
|
||||
}
|
||||
|
||||
/* Response handler for HTTPS request */
|
||||
|
||||
esp_err_t response_handler(esp_http_client_event_t *evt)
|
||||
{
|
||||
static char *data = NULL; // Initialize data to NULL
|
||||
static int data_len = 0; // Initialize data to NULL
|
||||
|
||||
switch (evt->event_id) {
|
||||
case HTTP_EVENT_ERROR:
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_ERROR");
|
||||
break;
|
||||
|
||||
case HTTP_EVENT_ON_CONNECTED:
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_ON_CONNECTED");
|
||||
break;
|
||||
|
||||
case HTTP_EVENT_HEADER_SENT:
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_HEADER_SENT");
|
||||
break;
|
||||
|
||||
case HTTP_EVENT_ON_HEADER:
|
||||
if (evt->data_len) {
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_ON_HEADER");
|
||||
ESP_LOGI(TAG, "%.*s", evt->data_len, (char *)evt->data);
|
||||
}
|
||||
break;
|
||||
|
||||
case HTTP_EVENT_ON_DATA:
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_ON_DATA (%d +)%d", data_len, evt->data_len);
|
||||
ESP_LOGI(TAG, "Raw Response: data length: (%d +)%d: %.*s", data_len, evt->data_len, evt->data_len, (char *)evt->data);
|
||||
data = heap_caps_realloc(data, data_len + evt->data_len + 1, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT);
|
||||
if (data == NULL) {
|
||||
ESP_LOGE(TAG, "data realloc failed");
|
||||
free(data);
|
||||
data = NULL;
|
||||
break;
|
||||
}
|
||||
memcpy(data + data_len, (char *)evt->data, evt->data_len);
|
||||
data_len += evt->data_len;
|
||||
data[data_len] = '\0';
|
||||
break;
|
||||
|
||||
case HTTP_EVENT_ON_FINISH:
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_ON_FINISH");
|
||||
if (data != NULL) {
|
||||
parsing_data(data, strlen(data));
|
||||
free(data); // Free memory
|
||||
data = NULL;
|
||||
data_len = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case HTTP_EVENT_DISCONNECTED:
|
||||
ESP_LOGI(TAG, "HTTP_EVENT_DISCONNECTED");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
/* This function creates an HTTP POST request to the OpenAI chatGPT API */
|
||||
|
||||
esp_err_t create_chatgpt_request(const char *content)
|
||||
{
|
||||
char url[128] = "https://api.openai.com/v1/chat/completions";
|
||||
char model[16] = "gpt-3.5-turbo";
|
||||
char headers[512];
|
||||
snprintf(headers, sizeof(headers), "Bearer %s", OPENAI_API_KEY);
|
||||
ESP_LOGI(TAG, "Set Header %s", headers);
|
||||
esp_http_client_config_t config = {
|
||||
.url = url,
|
||||
.method = HTTP_METHOD_POST,
|
||||
.event_handler = response_handler,
|
||||
.buffer_size = MAX_HTTP_RECV_BUFFER,
|
||||
.timeout_ms = 30000,
|
||||
.crt_bundle_attach = esp_crt_bundle_attach,
|
||||
};
|
||||
|
||||
uint32_t starttime = esp_log_timestamp();
|
||||
ESP_LOGE(TAG, "[Start] create_CHATGPT_request, timestamp:%"PRIu32, starttime);
|
||||
|
||||
// Set the headers
|
||||
esp_http_client_handle_t client = esp_http_client_init(&config);
|
||||
esp_http_client_set_header(client, "Content-Type", "application/json");
|
||||
esp_http_client_set_header(client, "Authorization", headers);
|
||||
|
||||
snprintf(json_payload, sizeof(json_payload), json_fmt, model, MAX_RESPONSE_TOKEN, content);
|
||||
ESP_LOGI(TAG, "JSON Payload: %s", json_payload);
|
||||
esp_http_client_set_post_field(client, json_payload, strlen(json_payload));
|
||||
|
||||
// Send the request
|
||||
esp_err_t err = esp_http_client_perform(client);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGW(TAG, "HTTP POST request failed: %s\n", esp_err_to_name(err));
|
||||
}
|
||||
ESP_LOGE(TAG, "[End] create_CHATGPT_request, + offset: %" PRIu32, esp_log_timestamp() - starttime);
|
||||
esp_http_client_cleanup(client);
|
||||
return err;
|
||||
}
|
||||
|
||||
/* This function creates an HTTP POST request to the OpenAI whisper API */
|
||||
|
||||
esp_err_t create_whisper_request_from_record(uint8_t *audio, int audio_len)
|
||||
{
|
||||
if (audio == NULL) {
|
||||
// Handle the error condition appropriately
|
||||
ESP_LOGE(TAG, "Audio data is NULL");
|
||||
return ESP_ERR_INVALID_ARG; // Or any other error code indicating the issue
|
||||
}
|
||||
char url[128]; // declare the variable here
|
||||
char headers[512];
|
||||
sys_param_t *sys_set = settings_get_parameter();
|
||||
|
||||
if (sys_set->current_server == REGION_Espressif) {
|
||||
ESP_LOGI(TAG, "Espressif server");
|
||||
snprintf(url, sizeof(url), "https://flask-production-1b02.up.railway.app/audio");
|
||||
} else {
|
||||
snprintf(url, sizeof(url), "https://api.openai.com/v1/audio/transcriptions");
|
||||
}
|
||||
snprintf(headers, sizeof(headers), "Bearer %s", OPENAI_API_KEY);
|
||||
esp_http_client_config_t config = {
|
||||
.url = url,
|
||||
.method = HTTP_METHOD_POST,
|
||||
.event_handler = response_handler,
|
||||
.buffer_size = MAX_HTTP_RECV_BUFFER,
|
||||
.timeout_ms = 60000,
|
||||
.crt_bundle_attach = esp_crt_bundle_attach,
|
||||
};
|
||||
uint32_t starttime = esp_log_timestamp();
|
||||
ESP_LOGE(TAG, "[Start] create_whisper_request, timestamp:%"PRIu32, starttime);
|
||||
|
||||
esp_http_client_handle_t client = esp_http_client_init(&config);
|
||||
|
||||
// Set the headers
|
||||
esp_http_client_set_header(client, "Authorization", headers);
|
||||
|
||||
// Set the content type and the boundary string
|
||||
char boundary[] = "boundary1234567890";
|
||||
char content_type[64];
|
||||
snprintf(content_type, sizeof(content_type), "multipart/form-data; boundary=%s", boundary);
|
||||
esp_http_client_set_header(client, "Content-Type", content_type);
|
||||
|
||||
char *file_data = NULL;
|
||||
size_t file_size;
|
||||
|
||||
file_data = (char *)audio;
|
||||
file_size = audio_len;
|
||||
|
||||
// Build the multipart/form-data request
|
||||
char *form_data = (char *)malloc(MAX_HTTP_RECV_BUFFER);
|
||||
assert(form_data);
|
||||
ESP_LOGI(TAG, "Size of form_data buffer: %zu bytes", sizeof(*form_data) * MAX_HTTP_RECV_BUFFER);
|
||||
int form_data_len = 0;
|
||||
form_data_len += snprintf(form_data + form_data_len, MAX_HTTP_RECV_BUFFER - form_data_len,
|
||||
"--%s\r\n"
|
||||
"Content-Disposition: form-data; name=\"file\"; filename=\"%s\"\r\n"
|
||||
"Content-Type: application/octet-stream\r\n"
|
||||
"\r\n", boundary, get_file_format(file_type));
|
||||
ESP_LOGI(TAG, "form_data_len %d", form_data_len);
|
||||
ESP_LOGI(TAG, "form_data %s\n", form_data);
|
||||
|
||||
// Append the audio file contents
|
||||
memcpy(form_data + form_data_len, file_data, file_size);
|
||||
form_data_len += file_size;
|
||||
ESP_LOGI(TAG, "Size of form_data: %zu", form_data_len);
|
||||
|
||||
// Append the rest of the form-data
|
||||
form_data_len += snprintf(form_data + form_data_len, MAX_HTTP_RECV_BUFFER - form_data_len,
|
||||
"\r\n"
|
||||
"--%s\r\n"
|
||||
"Content-Disposition: form-data; name=\"model\"\r\n"
|
||||
"\r\n"
|
||||
"whisper-1\r\n"
|
||||
"--%s--\r\n", boundary, boundary);
|
||||
|
||||
ESP_LOGI(TAG, "Size of form_data: %zu", form_data_len);
|
||||
// Set the headers and post field
|
||||
esp_http_client_set_post_field(client, form_data, form_data_len);
|
||||
|
||||
// Send the request
|
||||
esp_err_t err = esp_http_client_perform(client);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGW(TAG, "HTTP POST request failed: %s\n", esp_err_to_name(err));
|
||||
}
|
||||
ESP_LOGE(TAG, "[End] create_wisper_request, + offset:%"PRIu32, esp_log_timestamp() - starttime);
|
||||
|
||||
esp_http_client_cleanup(client);
|
||||
free(form_data);
|
||||
return err;
|
||||
}
|
||||
|
||||
/* This function set the server based on region */
|
||||
|
||||
void set_server(const region_t server)
|
||||
{
|
||||
sys_param_t *sys_set = settings_get_parameter();
|
||||
|
||||
switch (server) {
|
||||
case REGION_OpenAI:
|
||||
sys_set->current_server = REGION_OpenAI;
|
||||
ESP_LOGI(TAG, "Current server: OpenAI");
|
||||
break;
|
||||
case REGION_Espressif:
|
||||
sys_set->current_server = REGION_Espressif;
|
||||
ESP_LOGI(TAG, "Current server: Espressif");
|
||||
break;
|
||||
default:
|
||||
// Invalid region value
|
||||
ESP_LOGE(TAG, "Error: Invalid region value %d", sys_set->current_server);
|
||||
break;
|
||||
}
|
||||
|
||||
settings_write_parameter_to_nvs();
|
||||
}
|
||||
|
||||
/* Set the audio file format to use */
|
||||
|
||||
void set_audio_type(const format_t type)
|
||||
{
|
||||
file_type = type;
|
||||
ESP_LOGI(TAG, "Audio file format: %s", get_file_format(file_type));
|
||||
}
|
||||
|
||||
/* Get the message content for the last response from ChatGPT */
|
||||
|
||||
char *get_message_content_for_chatgpt(void)
|
||||
{
|
||||
return message_content;
|
||||
}
|
||||
|
||||
/* Get the message content for the last response from Whisper AI */
|
||||
|
||||
char *get_message_content_for_whisper(void)
|
||||
{
|
||||
return message_content_for_whisper;
|
||||
}
|
||||
|
||||
/* Get the audio file_format use */
|
||||
|
||||
char *get_file_format(format_t file_type)
|
||||
{
|
||||
switch (file_type) {
|
||||
case FORMAT_M4A:
|
||||
return "m4a";
|
||||
case FORMAT_MP3:
|
||||
return "mp3";
|
||||
case FORMAT_WEBM:
|
||||
return "webm";
|
||||
case FORMAT_MP4:
|
||||
return "mp4";
|
||||
case FORMAT_MPGA:
|
||||
return "mpga";
|
||||
case FORMAT_WAV:
|
||||
return "wav";
|
||||
case FORMAT_MPEG:
|
||||
return "mpeg";
|
||||
default:
|
||||
return "wav";
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
# **OpenAI Component**
|
||||
|
||||
The ESP-OpenAI component currently offers support for two primary features: ChatGPT and Whisper AI.
|
||||
|
||||
ChatGPT is a powerful conversational AI model that excels in interactive conversations. It generates natural and coherent responses based on the context of the conversation, making it suitable for various applications like chatbots, virtual assistants, and customer support systems.
|
||||
|
||||
Whisper AI, developed by OpenAI, is an automatic speech recognition (ASR) system. It converts spoken language into written text and finds applications in transcription services, voice assistants, and audio analysis.
|
||||
|
||||
> Note: This is an experimental component, APIs may change in future
|
||||
@@ -1,7 +0,0 @@
|
||||
## IDF Component Manager Manifest File
|
||||
dependencies:
|
||||
espressif/json_parser: "^1.0.2"
|
||||
## Required IDF version
|
||||
idf:
|
||||
version: ">=5.0.0"
|
||||
version: "0.0.1"
|
||||
@@ -1,107 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: CC0-1.0
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "esp_err.h"
|
||||
|
||||
#define OPENAI_API_KEY_MAX_LEN 256
|
||||
#define MAX_RESPONSE_TOKEN (CONFIG_MAX_TOKEN)
|
||||
#define MAX_HTTP_RECV_BUFFER (1 * 1024 * 1024 + 1024)
|
||||
#define MESSAGE_CONTENT_SIZE (CONFIG_MESSAGE_CONTENT_SIZE)
|
||||
|
||||
/**
|
||||
* @brief region of server
|
||||
*/
|
||||
typedef enum {
|
||||
REGION_OpenAI,
|
||||
REGION_Espressif,
|
||||
REGION_Max,
|
||||
} region_t;
|
||||
|
||||
/**
|
||||
* @brief audio file format supported
|
||||
*/
|
||||
typedef enum {
|
||||
FORMAT_M4A,
|
||||
FORMAT_MP3,
|
||||
FORMAT_WEBM,
|
||||
FORMAT_MP4,
|
||||
FORMAT_MPGA,
|
||||
FORMAT_WAV,
|
||||
FORMAT_MPEG,
|
||||
} format_t;
|
||||
|
||||
/**
|
||||
* @brief The audio file format to use.
|
||||
*/
|
||||
extern format_t file_type;
|
||||
|
||||
/**
|
||||
* @brief OpenAI API Authentication key.
|
||||
*/
|
||||
extern char OPENAI_API_KEY[OPENAI_API_KEY_MAX_LEN];
|
||||
|
||||
/**
|
||||
* @brief Set the OpenAI API key to use for OpenAI services.
|
||||
*
|
||||
* @param key The API key to set. Must be less than OPENAI_API_KEY_MAX_LEN characters long.
|
||||
*/
|
||||
void set_api_key(const char *key);
|
||||
|
||||
/**
|
||||
* @brief Set the region to use for AI services.
|
||||
*
|
||||
* @param server The server region to set.
|
||||
*/
|
||||
void set_server(const region_t server);
|
||||
|
||||
/**
|
||||
* @brief Set the audio file format to use.
|
||||
*
|
||||
* @param type The audio file format to set.
|
||||
*/
|
||||
void set_audio_type(const format_t type);
|
||||
|
||||
/**
|
||||
* @brief Get the string representation of the audio file format.
|
||||
*
|
||||
* @param file_type The audio file format.
|
||||
* @return The string representation of the audio file format.
|
||||
*/
|
||||
char *get_file_format(format_t file_type);
|
||||
|
||||
/**
|
||||
* @brief Get the message content for the last response from ChatGPT.
|
||||
*
|
||||
* @return The message content for the last response.
|
||||
*/
|
||||
char *get_message_content_for_chatgpt();
|
||||
|
||||
/**
|
||||
* @brief Get the message content for the last response from Whisper AI.
|
||||
*
|
||||
* @return The message content for the last response.
|
||||
*/
|
||||
char *get_message_content_for_whisper();
|
||||
|
||||
/**
|
||||
* @brief Create a ChatGPT request for the given content.
|
||||
*
|
||||
* @param content The content of the request.
|
||||
* @return ESP_OK on success, or an error code otherwise.
|
||||
*/
|
||||
esp_err_t create_chatgpt_request(const char *content);
|
||||
|
||||
/**
|
||||
* @brief Create a Whisper AI request from the recorded audio.
|
||||
*
|
||||
* @param audio The recorded audio to use for the request.
|
||||
* @param audio_len The length of the recorded audio.
|
||||
* @return ESP_OK on success, or an error code otherwise.
|
||||
*/
|
||||
esp_err_t create_whisper_request_from_record(uint8_t *audio, int audio_len);
|
||||
@@ -0,0 +1,9 @@
|
||||
# For more information about build system see
|
||||
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
|
||||
# The following five 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.16)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
add_compile_options(-fdiagnostics-color=always)
|
||||
project(factory_nvs)
|
||||
@@ -0,0 +1,18 @@
|
||||
## TinyUF2 NVS: Adding USB capabilities to ESP-Box
|
||||
|
||||
This standalone project provides support for dumping NVS key-value pairs, allowing users to access and modify the NVS data. They can retrieve the NVS data, make necessary changes, and write the updated values back to the NVS using.
|
||||
|
||||
## Build
|
||||
|
||||
Run `idf.py build` to build and flash the project.
|
||||
|
||||
## Flash
|
||||
|
||||
Since this project functions as a "factory app" for chatgpt_demo, we exclusively employ the "esptool" to flash the binaries. Checkout the [partition table](../partitions.csv)
|
||||
|
||||
```bash
|
||||
python -m esptool -p /dev/ttyACM0 --chip esp32s3 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 16MB --flash_freq 80m 0x700000 build/factory_nvs.bin
|
||||
|
||||
```
|
||||
|
||||
Check the [original implementation of Tinyuf2](https://github.com/espressif/esp-iot-solution/tree/master/components/usb/esp_tinyuf2) for more information. For more details of follow the [chatgpt_demo](../README.md) project.
|
||||
@@ -0,0 +1,16 @@
|
||||
set(UI_DIR ./ui)
|
||||
file(GLOB_RECURSE UI_SRCS ${UI_DIR}/*.c)
|
||||
|
||||
set(APP_DIR ./app)
|
||||
file(GLOB_RECURSE APP_SRCS ${APP_DIR}/*.c)
|
||||
|
||||
idf_component_register(
|
||||
SRCS
|
||||
"main.c"
|
||||
${UI_SRCS}
|
||||
${APP_SRCS}
|
||||
INCLUDE_DIRS
|
||||
"."
|
||||
${UI_DIR}
|
||||
${APP_DIR}
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
menu "Example Configuration"
|
||||
|
||||
config ESP_WIFI_SSID
|
||||
string "WiFi SSID"
|
||||
default "My Network SSID"
|
||||
help
|
||||
SSID (network name) for the example to connect to.
|
||||
config ESP_WIFI_PASSWORD
|
||||
string "WiFi Password"
|
||||
default "My Password"
|
||||
help
|
||||
WiFi password (WPA or WPA2) for the example to use.
|
||||
config OPENAI_API_KEY
|
||||
string "OpenAI Key"
|
||||
default "sk-xxxxxxxx"
|
||||
help
|
||||
OpenAI api key for the example to use.
|
||||
|
||||
endmenu
|
||||
@@ -0,0 +1,19 @@
|
||||
/* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "esp_system.h"
|
||||
#include "esp_log.h"
|
||||
#include "hal/usb_phy_ll.h"
|
||||
#include "lvgl.h"
|
||||
|
||||
static char *TAG = "NVS: ui-events";
|
||||
|
||||
void EventBtnSetupClick(lv_event_t * e)
|
||||
{
|
||||
ESP_LOGI(TAG, "btn click!");
|
||||
// Configure USB PHY, Change back to USB-Serial-Jtag
|
||||
usb_phy_ll_int_jtag_enable(&USB_SERIAL_JTAG);
|
||||
esp_restart();
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
## IDF Component Manager Manifest File
|
||||
dependencies:
|
||||
espressif/esp_tinyuf2: "^0.1.0"
|
||||
espressif/esp-box: "~2.2.0"
|
||||
## Required IDF version
|
||||
idf:
|
||||
version: ">=5.0"
|
||||
# # Put list of dependencies here
|
||||
# # For components maintained by Espressif:
|
||||
# component: "~1.0.0"
|
||||
# # For 3rd party components:
|
||||
# username/component: ">=1.0.0,<2.0.0"
|
||||
# username2/component2:
|
||||
# version: "~1.0.0"
|
||||
# # For transient dependencies `public` flag can be set.
|
||||
# # `public` flag doesn't have an effect dependencies of the `main` component.
|
||||
# # All dependencies of `main` are public by default.
|
||||
# public: true
|
||||
@@ -0,0 +1,156 @@
|
||||
/* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "freertos/event_groups.h"
|
||||
#include "esp_log.h"
|
||||
#include "nvs.h"
|
||||
#include "nvs_flash.h"
|
||||
#include "esp_tinyuf2.h"
|
||||
#include "ui.h"
|
||||
#include "bsp/esp-bsp.h"
|
||||
#include "esp_ota_ops.h"
|
||||
|
||||
#define NVS_MODIFIED_BIT BIT0
|
||||
#define SSID_SIZE 32
|
||||
#define PASSWORD_SIZE 64
|
||||
#define KEY_SIZE 64
|
||||
|
||||
static const char *TAG = "ChatGPT_NVS";
|
||||
|
||||
static EventGroupHandle_t s_event_group;
|
||||
static nvs_handle_t my_handle;
|
||||
static size_t buf_len_long;
|
||||
|
||||
static void uf2_nvs_modified_cb()
|
||||
{
|
||||
ESP_LOGI(TAG, "uf2 nvs modified");
|
||||
xEventGroupSetBits(s_event_group, NVS_MODIFIED_BIT);
|
||||
}
|
||||
|
||||
void app_main(void)
|
||||
{
|
||||
const esp_partition_t *update_partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_0, NULL);
|
||||
ESP_LOGI(TAG, "Switch to partition OTA_0");
|
||||
esp_ota_set_boot_partition(update_partition);
|
||||
esp_err_t err = ESP_OK;
|
||||
|
||||
const char *uf2_nvs_partition = "nvs";
|
||||
const char *uf2_nvs_namespace = "configuration";
|
||||
|
||||
char ssid[SSID_SIZE] = {0};
|
||||
char password[PASSWORD_SIZE] = {0};
|
||||
char key[KEY_SIZE] = {0};
|
||||
|
||||
s_event_group = xEventGroupCreate();
|
||||
|
||||
// Initialize NVS
|
||||
err = nvs_flash_init();
|
||||
if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
||||
ESP_ERROR_CHECK(nvs_flash_erase());
|
||||
err = nvs_flash_init();
|
||||
}
|
||||
ESP_ERROR_CHECK(err);
|
||||
|
||||
err = nvs_open_from_partition(uf2_nvs_partition, uf2_nvs_namespace, NVS_READWRITE, &my_handle);
|
||||
if (err != ESP_OK) {
|
||||
printf("Error (%s) opening NVS handle!\n", esp_err_to_name(err));
|
||||
} else {
|
||||
buf_len_long = sizeof(ssid);
|
||||
err = nvs_get_str(my_handle, "ssid", ssid, &buf_len_long);
|
||||
if (err != ESP_OK || buf_len_long == 0) {
|
||||
ESP_ERROR_CHECK(nvs_set_str(my_handle, "ssid", CONFIG_ESP_WIFI_SSID));
|
||||
ESP_ERROR_CHECK(nvs_commit(my_handle));
|
||||
ESP_LOGI(TAG, "no ssid, give a init value to nvs");
|
||||
} else {
|
||||
ESP_LOGI(TAG, "stored ssid:%s", ssid);
|
||||
}
|
||||
|
||||
buf_len_long = sizeof(password);
|
||||
err = nvs_get_str(my_handle, "password", password, &buf_len_long);
|
||||
if (err != ESP_OK || buf_len_long == 0) {
|
||||
ESP_ERROR_CHECK(nvs_set_str(my_handle, "password", CONFIG_ESP_WIFI_PASSWORD));
|
||||
ESP_ERROR_CHECK(nvs_commit(my_handle));
|
||||
ESP_LOGI(TAG, "no password, give a init value to nvs");
|
||||
} else {
|
||||
ESP_LOGI(TAG, "stored password:%s", password);
|
||||
}
|
||||
|
||||
buf_len_long = sizeof(key);
|
||||
err = nvs_get_str(my_handle, "ChatGPT_key", key, &buf_len_long);
|
||||
if (err != ESP_OK || buf_len_long == 0) {
|
||||
ESP_ERROR_CHECK(nvs_set_str(my_handle, "ChatGPT_key", CONFIG_OPENAI_API_KEY));
|
||||
ESP_ERROR_CHECK(nvs_commit(my_handle));
|
||||
ESP_LOGI(TAG, "no ChatGPT key, give a init value to key");
|
||||
} else {
|
||||
ESP_LOGI(TAG, "stored ChatGPT key:%s", key);
|
||||
}
|
||||
}
|
||||
nvs_close(my_handle);
|
||||
|
||||
/* install UF2 NVS */
|
||||
tinyuf2_nvs_config_t nvs_config = DEFAULT_TINYUF2_NVS_CONFIG();
|
||||
nvs_config.part_name = uf2_nvs_partition;
|
||||
nvs_config.namespace_name = uf2_nvs_namespace;
|
||||
nvs_config.modified_cb = uf2_nvs_modified_cb;
|
||||
|
||||
ESP_ERROR_CHECK(esp_tinyuf2_install(NULL, &nvs_config));
|
||||
|
||||
bsp_i2c_init();
|
||||
bsp_display_start();
|
||||
bsp_display_backlight_on();
|
||||
ui_init();
|
||||
|
||||
while (1) {
|
||||
EventBits_t bits = xEventGroupWaitBits(s_event_group, NVS_MODIFIED_BIT,
|
||||
pdTRUE, pdFALSE, portMAX_DELAY);
|
||||
|
||||
if (bits & NVS_MODIFIED_BIT) {
|
||||
esp_err_t err = nvs_open_from_partition(uf2_nvs_partition, uf2_nvs_namespace, NVS_READONLY, &my_handle);
|
||||
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Failed to open NVS partition: %s", esp_err_to_name(err));
|
||||
// Handle the error or take appropriate action
|
||||
return;
|
||||
}
|
||||
|
||||
size_t buf_len_long = sizeof(ssid);
|
||||
err = nvs_get_str(my_handle, "ssid", ssid, &buf_len_long);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Failed to read 'ssid' from NVS: %s", esp_err_to_name(err));
|
||||
nvs_close(my_handle);
|
||||
return;
|
||||
}
|
||||
ESP_LOGD(TAG, "SSID", ssid);
|
||||
|
||||
buf_len_long = sizeof(password);
|
||||
err = nvs_get_str(my_handle, "password", password, &buf_len_long);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Failed to read 'password' from NVS: %s", esp_err_to_name(err));
|
||||
nvs_close(my_handle);
|
||||
return;
|
||||
}
|
||||
ESP_LOGD(TAG, "Password", password);
|
||||
|
||||
buf_len_long = sizeof(key);
|
||||
err = nvs_get_str(my_handle, "ChatGPT_key", key, &buf_len_long);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Failed to read 'ChatGPT_key' from NVS: %s", esp_err_to_name(err));
|
||||
nvs_close(my_handle);
|
||||
return;
|
||||
}
|
||||
ESP_LOGD(TAG, "OpenAI Key", key);
|
||||
|
||||
|
||||
nvs_close(my_handle);
|
||||
}
|
||||
|
||||
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,866 @@
|
||||
/*******************************************************************************
|
||||
* Size: 14 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 14 --font C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\pingfang.otf -o C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\ui_font_PingFangEN14.c --format lvgl -r 0x20-0x7f --no-compress --no-prefilter
|
||||
******************************************************************************/
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
#ifndef UI_FONT_PINGFANGEN14
|
||||
#define UI_FONT_PINGFANGEN14 1
|
||||
#endif
|
||||
|
||||
#if UI_FONT_PINGFANGEN14
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+0020 " " */
|
||||
|
||||
/* U+0021 "!" */
|
||||
0x4f, 0x4, 0xf0, 0x3e, 0x3, 0xe0, 0x3d, 0x2,
|
||||
0xd0, 0x2c, 0x1, 0xa0, 0x0, 0x3, 0xa0, 0x5e,
|
||||
0x0,
|
||||
|
||||
/* U+0022 "\"" */
|
||||
0xd4, 0x4d, 0xd3, 0x4c, 0xc3, 0x3c, 0x82, 0x28,
|
||||
|
||||
/* U+0023 "#" */
|
||||
0x0, 0xd, 0x0, 0xe0, 0x0, 0x2, 0xb0, 0x1c,
|
||||
0x0, 0x0, 0x4a, 0x3, 0xa0, 0x0, 0xef, 0xfe,
|
||||
0xff, 0xd0, 0x0, 0x95, 0x8, 0x60, 0x0, 0xb,
|
||||
0x30, 0xa4, 0x0, 0x0, 0xd1, 0xd, 0x10, 0x0,
|
||||
0xe, 0x0, 0xe0, 0x0, 0x8e, 0xfe, 0xef, 0xe6,
|
||||
0x0, 0x4a, 0x4, 0xa0, 0x0, 0x7, 0x70, 0x77,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0024 "$" */
|
||||
0x0, 0x1, 0x40, 0x0, 0x0, 0x2, 0x80, 0x0,
|
||||
0x1, 0xaf, 0xfc, 0x40, 0xc, 0xa5, 0x97, 0xf1,
|
||||
0x1f, 0x12, 0x80, 0xb6, 0xf, 0x32, 0x80, 0x0,
|
||||
0x8, 0xf9, 0x80, 0x0, 0x0, 0x5c, 0xfa, 0x20,
|
||||
0x0, 0x2, 0x99, 0xf3, 0x27, 0x2, 0x80, 0xa9,
|
||||
0x1f, 0x12, 0x80, 0x8a, 0xb, 0xb5, 0x95, 0xe5,
|
||||
0x1, 0xae, 0xfd, 0x60, 0x0, 0x2, 0x80, 0x0,
|
||||
0x0, 0x1, 0x40, 0x0,
|
||||
|
||||
/* U+0025 "%" */
|
||||
0x2, 0xcd, 0x80, 0x0, 0x2c, 0x0, 0x0, 0xc5,
|
||||
0xd, 0x30, 0xa, 0x40, 0x0, 0xf, 0x10, 0xa6,
|
||||
0x2, 0xb0, 0x0, 0x0, 0xf1, 0xa, 0x60, 0xa4,
|
||||
0x0, 0x0, 0xb, 0x60, 0xe2, 0x2b, 0x0, 0x0,
|
||||
0x0, 0x1b, 0xc6, 0xa, 0x31, 0xad, 0x70, 0x0,
|
||||
0x0, 0x2, 0xb0, 0x98, 0xc, 0x40, 0x0, 0x0,
|
||||
0xa3, 0xd, 0x30, 0x88, 0x0, 0x0, 0x3b, 0x0,
|
||||
0xd3, 0x8, 0x80, 0x0, 0xb, 0x30, 0xa, 0x70,
|
||||
0xc5, 0x0, 0x3, 0xb0, 0x0, 0x1c, 0xd9, 0x0,
|
||||
|
||||
/* U+0026 "&" */
|
||||
0x0, 0x5d, 0xfb, 0x10, 0x0, 0x1, 0xf5, 0x1b,
|
||||
0x90, 0x0, 0x2, 0xf0, 0x7, 0xa0, 0x0, 0x0,
|
||||
0xc7, 0x2e, 0x40, 0x0, 0x0, 0x2f, 0xe5, 0x1,
|
||||
0x40, 0x3, 0xeb, 0xe3, 0x5, 0xc0, 0x1e, 0x70,
|
||||
0x6e, 0x27, 0xa0, 0x4d, 0x0, 0x7, 0xdd, 0x60,
|
||||
0x4d, 0x0, 0x0, 0xbf, 0x10, 0xe, 0x92, 0x38,
|
||||
0xfc, 0xb0, 0x2, 0xae, 0xeb, 0x30, 0xd8,
|
||||
|
||||
/* U+0027 "'" */
|
||||
0xd4, 0xd3, 0xc3, 0x82,
|
||||
|
||||
/* U+0028 "(" */
|
||||
0x0, 0x5a, 0x0, 0xd3, 0x4, 0xc0, 0xa, 0x60,
|
||||
0xe, 0x20, 0x1f, 0x0, 0x2f, 0x0, 0x2f, 0x0,
|
||||
0x1f, 0x0, 0xe, 0x20, 0xa, 0x60, 0x4, 0xc0,
|
||||
0x0, 0xd3, 0x0, 0x5a,
|
||||
|
||||
/* U+0029 ")" */
|
||||
0xe, 0x10, 0x8, 0x70, 0x2, 0xe0, 0x0, 0xc5,
|
||||
0x0, 0x89, 0x0, 0x5b, 0x0, 0x4c, 0x0, 0x4c,
|
||||
0x0, 0x5b, 0x0, 0x89, 0x0, 0xc5, 0x2, 0xe0,
|
||||
0x8, 0x70, 0xe, 0x10,
|
||||
|
||||
/* U+002A "*" */
|
||||
0x0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x8b,
|
||||
0x5d, 0x4b, 0x90, 0x4a, 0xfb, 0x40, 0x0, 0xa9,
|
||||
0xb0, 0x0, 0x7a, 0x9, 0x80, 0x3, 0x10, 0x4,
|
||||
0x0,
|
||||
|
||||
/* U+002B "+" */
|
||||
0x0, 0x3, 0xb0, 0x0, 0x0, 0x3, 0xb0, 0x0,
|
||||
0x0, 0x3, 0xb0, 0x0, 0x0, 0x3, 0xb0, 0x0,
|
||||
0x4e, 0xee, 0xfe, 0xeb, 0x1, 0x14, 0xb1, 0x11,
|
||||
0x0, 0x3, 0xb0, 0x0, 0x0, 0x3, 0xb0, 0x0,
|
||||
|
||||
/* U+002C "," */
|
||||
0xa, 0x60, 0xcd, 0x1, 0xb0, 0xb3, 0x0, 0x0,
|
||||
|
||||
/* U+002D "-" */
|
||||
0x4e, 0xee, 0xee, 0xeb, 0x1, 0x11, 0x11, 0x11,
|
||||
|
||||
/* U+002E "." */
|
||||
0x95, 0xc7,
|
||||
|
||||
/* U+002F "/" */
|
||||
0x0, 0x0, 0xb, 0x40, 0x0, 0x1, 0xe0, 0x0,
|
||||
0x0, 0x69, 0x0, 0x0, 0xc, 0x30, 0x0, 0x1,
|
||||
0xe0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xd, 0x20,
|
||||
0x0, 0x2, 0xd0, 0x0, 0x0, 0x87, 0x0, 0x0,
|
||||
0xe, 0x20, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x96,
|
||||
0x0, 0x0, 0xe, 0x10, 0x0, 0x4, 0xb0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x0, 0x6d, 0xea, 0x0, 0x5, 0xe4, 0x2a, 0xb0,
|
||||
0xc, 0x50, 0x0, 0xe3, 0x1f, 0x0, 0x0, 0xa8,
|
||||
0x3e, 0x0, 0x0, 0x89, 0x4d, 0x0, 0x0, 0x7a,
|
||||
0x3e, 0x0, 0x0, 0x89, 0x1f, 0x0, 0x0, 0xa8,
|
||||
0xc, 0x50, 0x0, 0xe3, 0x5, 0xe4, 0x2a, 0xb0,
|
||||
0x0, 0x6d, 0xea, 0x0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x0, 0x5f, 0x11, 0xad, 0xf1, 0x5a, 0x1f, 0x10,
|
||||
0x0, 0xf1, 0x0, 0xf, 0x10, 0x0, 0xf1, 0x0,
|
||||
0xf, 0x10, 0x0, 0xf1, 0x0, 0xf, 0x10, 0x0,
|
||||
0xf1, 0x0, 0xf, 0x10,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x0, 0x5d, 0xfc, 0x30, 0x5, 0xe4, 0x16, 0xe1,
|
||||
0xc, 0x60, 0x0, 0xb6, 0xf, 0x20, 0x0, 0xb7,
|
||||
0x0, 0x0, 0x1, 0xf3, 0x0, 0x0, 0x1c, 0x90,
|
||||
0x0, 0x3, 0xe9, 0x0, 0x0, 0x5f, 0x60, 0x0,
|
||||
0x3, 0xf4, 0x0, 0x0, 0xc, 0x91, 0x11, 0x10,
|
||||
0xf, 0xff, 0xff, 0xf8,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x0, 0x7d, 0xfc, 0x40, 0x6, 0xd3, 0x16, 0xf1,
|
||||
0xd, 0x40, 0x0, 0xc6, 0x6, 0x0, 0x0, 0xb5,
|
||||
0x0, 0x0, 0x6, 0xd1, 0x0, 0x7, 0xff, 0x30,
|
||||
0x0, 0x0, 0x3, 0xe3, 0x15, 0x0, 0x0, 0x89,
|
||||
0x1f, 0x10, 0x0, 0x99, 0xa, 0xc2, 0x16, 0xf3,
|
||||
0x0, 0x9e, 0xfc, 0x40,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x0, 0x0, 0x1e, 0x70, 0x0, 0x0, 0xb, 0xe7,
|
||||
0x0, 0x0, 0x7, 0xaa, 0x70, 0x0, 0x3, 0xd0,
|
||||
0xa7, 0x0, 0x0, 0xd3, 0xa, 0x70, 0x0, 0x97,
|
||||
0x0, 0xa7, 0x0, 0x5b, 0x0, 0xa, 0x70, 0xa,
|
||||
0xee, 0xee, 0xff, 0xe1, 0x1, 0x11, 0x1a, 0x81,
|
||||
0x0, 0x0, 0x0, 0xa7, 0x0, 0x0, 0x0, 0xa,
|
||||
0x70, 0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0x9, 0xff, 0xff, 0xf4, 0xa, 0x61, 0x11, 0x10,
|
||||
0xb, 0x40, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0,
|
||||
0xe, 0x4b, 0xdb, 0x30, 0xf, 0xb4, 0x27, 0xf2,
|
||||
0x4, 0x0, 0x0, 0xa8, 0x0, 0x0, 0x0, 0x7a,
|
||||
0x2e, 0x0, 0x0, 0xa8, 0xc, 0xa3, 0x17, 0xe1,
|
||||
0x1, 0x9e, 0xeb, 0x20,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x0, 0x4c, 0xfc, 0x30, 0x3, 0xe5, 0x28, 0xe1,
|
||||
0xa, 0x60, 0x0, 0xc6, 0xf, 0x10, 0x0, 0x0,
|
||||
0x2e, 0x19, 0xdb, 0x30, 0x4d, 0xa4, 0x27, 0xf2,
|
||||
0x3f, 0x30, 0x0, 0xa8, 0x1f, 0x0, 0x0, 0x7a,
|
||||
0xd, 0x30, 0x0, 0xa8, 0x6, 0xd3, 0x16, 0xf1,
|
||||
0x0, 0x6d, 0xfc, 0x30,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0x8f, 0xff, 0xff, 0xf0, 0x11, 0x11, 0x16, 0xd0,
|
||||
0x0, 0x0, 0xa, 0x70, 0x0, 0x0, 0x1f, 0x20,
|
||||
0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0xc6, 0x0,
|
||||
0x0, 0x2, 0xf0, 0x0, 0x0, 0x8, 0xa0, 0x0,
|
||||
0x0, 0xe, 0x40, 0x0, 0x0, 0x4e, 0x0, 0x0,
|
||||
0x0, 0xa8, 0x0, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x0, 0x9e, 0xfb, 0x30, 0xa, 0xb2, 0x16, 0xe1,
|
||||
0xf, 0x10, 0x0, 0xb6, 0xe, 0x20, 0x0, 0xc5,
|
||||
0x8, 0xa1, 0x5, 0xd1, 0x1, 0xdf, 0xff, 0x30,
|
||||
0xd, 0x81, 0x4, 0xe4, 0x5d, 0x0, 0x0, 0x6b,
|
||||
0x5d, 0x0, 0x0, 0x6b, 0x1e, 0x81, 0x4, 0xe5,
|
||||
0x2, 0xae, 0xfc, 0x60,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x0, 0x8e, 0xea, 0x0, 0x9, 0xc2, 0x29, 0xc0,
|
||||
0x1f, 0x10, 0x0, 0xd3, 0x3e, 0x0, 0x0, 0xa8,
|
||||
0x2f, 0x0, 0x0, 0xc9, 0xc, 0xa0, 0x7, 0xca,
|
||||
0x1, 0xbf, 0xe7, 0x79, 0x0, 0x0, 0x0, 0xa6,
|
||||
0xd, 0x30, 0x0, 0xe1, 0xa, 0xc3, 0x2b, 0x90,
|
||||
0x1, 0xae, 0xe8, 0x0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0xc7, 0x95, 0x0, 0x0, 0x0, 0x95, 0xc7,
|
||||
|
||||
/* U+003B ";" */
|
||||
0xc, 0x70, 0x96, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0xa6, 0xc, 0xd0, 0x1b, 0xb, 0x30, 0x0,
|
||||
|
||||
/* U+003C "<" */
|
||||
0x0, 0x0, 0x0, 0x26, 0x0, 0x0, 0x2a, 0xe6,
|
||||
0x0, 0x3b, 0xe7, 0x0, 0x2b, 0xd6, 0x0, 0x0,
|
||||
0x3e, 0xa2, 0x0, 0x0, 0x0, 0x7e, 0xb3, 0x0,
|
||||
0x0, 0x0, 0x6d, 0xb3, 0x0, 0x0, 0x0, 0x69,
|
||||
|
||||
/* U+003D "=" */
|
||||
0x4e, 0xee, 0xee, 0xeb, 0x1, 0x11, 0x11, 0x11,
|
||||
0x0, 0x0, 0x0, 0x0, 0x4e, 0xee, 0xee, 0xeb,
|
||||
0x1, 0x11, 0x11, 0x11,
|
||||
|
||||
/* U+003E ">" */
|
||||
0x35, 0x0, 0x0, 0x0, 0x2b, 0xd6, 0x0, 0x0,
|
||||
0x0, 0x3b, 0xe7, 0x0, 0x0, 0x0, 0x2a, 0xe6,
|
||||
0x0, 0x0, 0x6, 0xe9, 0x0, 0x7, 0xea, 0x30,
|
||||
0x18, 0xea, 0x20, 0x0, 0x49, 0x20, 0x0, 0x0,
|
||||
|
||||
/* U+003F "?" */
|
||||
0x1, 0xae, 0xe8, 0x0, 0xb9, 0x23, 0xe7, 0x2f,
|
||||
0x10, 0x7, 0xb2, 0x70, 0x0, 0x7b, 0x0, 0x0,
|
||||
0x1e, 0x50, 0x0, 0x1d, 0x80, 0x0, 0x9, 0xa0,
|
||||
0x0, 0x0, 0xd5, 0x0, 0x0, 0x2, 0x0, 0x0,
|
||||
0x0, 0xa3, 0x0, 0x0, 0xe, 0x50, 0x0,
|
||||
|
||||
/* U+0040 "@" */
|
||||
0x0, 0x4, 0xad, 0xdc, 0x60, 0x0, 0x0, 0x8c,
|
||||
0x20, 0x1, 0xa9, 0x0, 0x5, 0xb0, 0x2b, 0xd6,
|
||||
0x7a, 0x40, 0xd, 0x20, 0xe6, 0x1d, 0x72, 0xa0,
|
||||
0x1d, 0x7, 0xa0, 0xb, 0x30, 0xc0, 0x3b, 0xb,
|
||||
0x40, 0xd, 0x1, 0xb0, 0x1d, 0xc, 0x20, 0x2c,
|
||||
0x6, 0x70, 0xe, 0xa, 0x70, 0xba, 0x2c, 0x0,
|
||||
0x7, 0x91, 0xcc, 0x4b, 0xb3, 0x70, 0x0, 0xb9,
|
||||
0x10, 0x0, 0x4c, 0x60, 0x0, 0x5, 0xbc, 0xdd,
|
||||
0x92, 0x0,
|
||||
|
||||
/* U+0041 "A" */
|
||||
0x0, 0x3, 0xf7, 0x0, 0x0, 0x0, 0x9, 0xdc,
|
||||
0x0, 0x0, 0x0, 0xe, 0x3f, 0x20, 0x0, 0x0,
|
||||
0x5d, 0xa, 0x80, 0x0, 0x0, 0xa8, 0x5, 0xd0,
|
||||
0x0, 0x0, 0xf3, 0x0, 0xf3, 0x0, 0x6, 0xd0,
|
||||
0x0, 0xa9, 0x0, 0xb, 0xfe, 0xee, 0xfe, 0x0,
|
||||
0x1f, 0x31, 0x11, 0x2e, 0x40, 0x7c, 0x0, 0x0,
|
||||
0x9, 0xa0, 0xd6, 0x0, 0x0, 0x3, 0xf0,
|
||||
|
||||
/* U+0042 "B" */
|
||||
0xff, 0xff, 0xfd, 0x50, 0xf2, 0x0, 0x16, 0xf2,
|
||||
0xf2, 0x0, 0x0, 0xb6, 0xf2, 0x0, 0x0, 0xb5,
|
||||
0xf2, 0x0, 0x4, 0xe1, 0xfe, 0xee, 0xff, 0x50,
|
||||
0xf3, 0x11, 0x14, 0xd6, 0xf2, 0x0, 0x0, 0x5d,
|
||||
0xf2, 0x0, 0x0, 0x5d, 0xf2, 0x0, 0x14, 0xd8,
|
||||
0xff, 0xff, 0xfd, 0x80,
|
||||
|
||||
/* U+0043 "C" */
|
||||
0x0, 0x19, 0xdf, 0xc6, 0x0, 0x2, 0xda, 0x42,
|
||||
0x5d, 0x90, 0xa, 0x90, 0x0, 0x1, 0xf2, 0x1f,
|
||||
0x10, 0x0, 0x0, 0x52, 0x4d, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x4d, 0x0,
|
||||
0x0, 0x0, 0x0, 0x2f, 0x10, 0x0, 0x0, 0x86,
|
||||
0xb, 0x80, 0x0, 0x2, 0xf2, 0x2, 0xe9, 0x32,
|
||||
0x5d, 0x70, 0x0, 0x1a, 0xdf, 0xc5, 0x0,
|
||||
|
||||
/* U+0044 "D" */
|
||||
0xff, 0xff, 0xd9, 0x10, 0xf, 0x30, 0x13, 0xae,
|
||||
0x20, 0xf2, 0x0, 0x0, 0x9a, 0xf, 0x20, 0x0,
|
||||
0x1, 0xf0, 0xf2, 0x0, 0x0, 0xf, 0x2f, 0x20,
|
||||
0x0, 0x0, 0xd4, 0xf2, 0x0, 0x0, 0xf, 0x2f,
|
||||
0x20, 0x0, 0x2, 0xf0, 0xf2, 0x0, 0x0, 0xa9,
|
||||
0xf, 0x30, 0x14, 0xbd, 0x10, 0xff, 0xff, 0xd9,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0045 "E" */
|
||||
0xff, 0xff, 0xff, 0xf1, 0xf3, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xff, 0xee, 0xee, 0xb0,
|
||||
0xf4, 0x11, 0x11, 0x10, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0,
|
||||
0xff, 0xff, 0xff, 0xf5,
|
||||
|
||||
/* U+0046 "F" */
|
||||
0xff, 0xff, 0xff, 0xbf, 0x30, 0x0, 0x0, 0xf2,
|
||||
0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xf2, 0x0,
|
||||
0x0, 0xf, 0xfe, 0xee, 0xe6, 0xf4, 0x11, 0x11,
|
||||
0xf, 0x20, 0x0, 0x0, 0xf2, 0x0, 0x0, 0xf,
|
||||
0x20, 0x0, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0047 "G" */
|
||||
0x0, 0x19, 0xdf, 0xd7, 0x0, 0x1, 0xda, 0x42,
|
||||
0x5d, 0xb0, 0xa, 0xa0, 0x0, 0x1, 0xe4, 0x1f,
|
||||
0x10, 0x0, 0x0, 0x43, 0x4d, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5c, 0x0, 0xa, 0xee, 0xe8, 0x4d, 0x0,
|
||||
0x1, 0x11, 0xa8, 0x1f, 0x10, 0x0, 0x0, 0x98,
|
||||
0xa, 0x90, 0x0, 0x0, 0x98, 0x2, 0xda, 0x41,
|
||||
0x38, 0xf7, 0x0, 0x19, 0xdf, 0xda, 0x40,
|
||||
|
||||
/* U+0048 "H" */
|
||||
0xf2, 0x0, 0x0, 0xf, 0x1f, 0x20, 0x0, 0x0,
|
||||
0xf1, 0xf2, 0x0, 0x0, 0xf, 0x1f, 0x20, 0x0,
|
||||
0x0, 0xf1, 0xf2, 0x0, 0x0, 0xf, 0x1f, 0xfe,
|
||||
0xee, 0xef, 0xf1, 0xf4, 0x11, 0x11, 0x2f, 0x1f,
|
||||
0x20, 0x0, 0x0, 0xf1, 0xf2, 0x0, 0x0, 0xf,
|
||||
0x1f, 0x20, 0x0, 0x0, 0xf1, 0xf2, 0x0, 0x0,
|
||||
0xf, 0x10,
|
||||
|
||||
/* U+0049 "I" */
|
||||
0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3,
|
||||
0xe3, 0xe3, 0xe3,
|
||||
|
||||
/* U+004A "J" */
|
||||
0x0, 0x0, 0xe, 0x30, 0x0, 0x0, 0xe3, 0x0,
|
||||
0x0, 0xe, 0x30, 0x0, 0x0, 0xe3, 0x0, 0x0,
|
||||
0xe, 0x30, 0x0, 0x0, 0xe3, 0x0, 0x0, 0xe,
|
||||
0x38, 0x30, 0x0, 0xe3, 0xa7, 0x0, 0x1f, 0x16,
|
||||
0xe3, 0x2a, 0xc0, 0x8, 0xee, 0xb2, 0x0,
|
||||
|
||||
/* U+004B "K" */
|
||||
0xf2, 0x0, 0x1, 0xd8, 0xf, 0x20, 0x1, 0xd9,
|
||||
0x0, 0xf2, 0x0, 0xca, 0x0, 0xf, 0x20, 0xba,
|
||||
0x0, 0x0, 0xf2, 0xac, 0x0, 0x0, 0xf, 0xcc,
|
||||
0xf3, 0x0, 0x0, 0xfb, 0x8, 0xe1, 0x0, 0xf,
|
||||
0x20, 0xb, 0xc0, 0x0, 0xf2, 0x0, 0xd, 0x90,
|
||||
0xf, 0x20, 0x0, 0x2f, 0x60, 0xf2, 0x0, 0x0,
|
||||
0x4f, 0x40,
|
||||
|
||||
/* U+004C "L" */
|
||||
0xf2, 0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xf2,
|
||||
0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xf2, 0x0,
|
||||
0x0, 0xf, 0x20, 0x0, 0x0, 0xf2, 0x0, 0x0,
|
||||
0xf, 0x20, 0x0, 0x0, 0xf2, 0x0, 0x0, 0xf,
|
||||
0x30, 0x0, 0x0, 0xff, 0xff, 0xff, 0xe0,
|
||||
|
||||
/* U+004D "M" */
|
||||
0xfa, 0x0, 0x0, 0x0, 0x4f, 0x5f, 0xf1, 0x0,
|
||||
0x0, 0xb, 0xf5, 0xfd, 0x60, 0x0, 0x1, 0xfe,
|
||||
0x5f, 0x7d, 0x0, 0x0, 0x7a, 0xc5, 0xf2, 0xe3,
|
||||
0x0, 0xd, 0x4c, 0x5f, 0x28, 0x90, 0x4, 0xd0,
|
||||
0xc5, 0xf2, 0x2f, 0x0, 0xa7, 0xc, 0x5f, 0x20,
|
||||
0xb6, 0x1f, 0x10, 0xc5, 0xf2, 0x5, 0xc7, 0xa0,
|
||||
0xc, 0x5f, 0x20, 0xe, 0xe4, 0x0, 0xc5, 0xf2,
|
||||
0x0, 0x8e, 0x0, 0xc, 0x50,
|
||||
|
||||
/* U+004E "N" */
|
||||
0xf8, 0x0, 0x0, 0x1f, 0xf, 0xf2, 0x0, 0x1,
|
||||
0xf0, 0xf9, 0xc0, 0x0, 0x1f, 0xf, 0x2d, 0x60,
|
||||
0x1, 0xf0, 0xf2, 0x3e, 0x10, 0x1f, 0xf, 0x20,
|
||||
0x9b, 0x1, 0xf0, 0xf2, 0x0, 0xe5, 0x1f, 0xf,
|
||||
0x20, 0x5, 0xe2, 0xf0, 0xf2, 0x0, 0xb, 0xaf,
|
||||
0xf, 0x20, 0x0, 0x1f, 0xf0, 0xf2, 0x0, 0x0,
|
||||
0x7f, 0x0,
|
||||
|
||||
/* U+004F "O" */
|
||||
0x0, 0x19, 0xdf, 0xc7, 0x0, 0x0, 0x2d, 0xa4,
|
||||
0x25, 0xdb, 0x0, 0xa, 0xa0, 0x0, 0x0, 0xd6,
|
||||
0x1, 0xf1, 0x0, 0x0, 0x5, 0xd0, 0x4d, 0x0,
|
||||
0x0, 0x0, 0x2f, 0x5, 0xc0, 0x0, 0x0, 0x0,
|
||||
0xf1, 0x4d, 0x0, 0x0, 0x0, 0x2f, 0x1, 0xf1,
|
||||
0x0, 0x0, 0x5, 0xd0, 0xa, 0x90, 0x0, 0x0,
|
||||
0xd6, 0x0, 0x2e, 0xa4, 0x25, 0xdb, 0x0, 0x0,
|
||||
0x19, 0xdf, 0xc7, 0x0, 0x0,
|
||||
|
||||
/* U+0050 "P" */
|
||||
0xff, 0xff, 0xfc, 0x40, 0xf3, 0x0, 0x16, 0xf2,
|
||||
0xf2, 0x0, 0x0, 0xb7, 0xf2, 0x0, 0x0, 0xa7,
|
||||
0xf2, 0x0, 0x4, 0xf3, 0xff, 0xee, 0xfe, 0x60,
|
||||
0xf4, 0x11, 0x10, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0051 "Q" */
|
||||
0x0, 0x19, 0xdf, 0xc7, 0x0, 0x0, 0x2d, 0xa4,
|
||||
0x25, 0xdb, 0x0, 0xa, 0xa0, 0x0, 0x0, 0xd6,
|
||||
0x1, 0xf1, 0x0, 0x0, 0x5, 0xd0, 0x4d, 0x0,
|
||||
0x0, 0x0, 0x2f, 0x5, 0xc0, 0x0, 0x0, 0x0,
|
||||
0xf1, 0x4d, 0x0, 0x0, 0x30, 0x1f, 0x1, 0xf1,
|
||||
0x0, 0xe, 0x45, 0xd0, 0xa, 0x90, 0x0, 0x3e,
|
||||
0xd6, 0x0, 0x2e, 0xa4, 0x24, 0xdf, 0x0, 0x0,
|
||||
0x19, 0xdf, 0xd7, 0xb8, 0x0, 0x0, 0x0, 0x0,
|
||||
0x1, 0x90,
|
||||
|
||||
/* U+0052 "R" */
|
||||
0xff, 0xff, 0xfd, 0x50, 0xf, 0x30, 0x1, 0x5f,
|
||||
0x30, 0xf2, 0x0, 0x0, 0xa7, 0xf, 0x20, 0x0,
|
||||
0xa, 0x60, 0xf2, 0x0, 0x4, 0xe1, 0xf, 0xfe,
|
||||
0xef, 0xf3, 0x0, 0xf4, 0x11, 0x39, 0xe0, 0xf,
|
||||
0x20, 0x0, 0xd, 0x40, 0xf2, 0x0, 0x0, 0xb6,
|
||||
0xf, 0x20, 0x0, 0x9, 0x90, 0xf2, 0x0, 0x0,
|
||||
0x5d, 0x0,
|
||||
|
||||
/* U+0053 "S" */
|
||||
0x1, 0x9e, 0xfd, 0x70, 0x0, 0xd9, 0x22, 0x5d,
|
||||
0x80, 0x3e, 0x0, 0x0, 0x3f, 0x2, 0xf2, 0x0,
|
||||
0x0, 0x50, 0x8, 0xf9, 0x30, 0x0, 0x0, 0x2,
|
||||
0x8d, 0xe8, 0x0, 0x0, 0x0, 0x3, 0xbc, 0x5,
|
||||
0x70, 0x0, 0x0, 0xe4, 0x4e, 0x0, 0x0, 0xd,
|
||||
0x40, 0xcb, 0x32, 0x5a, 0xd0, 0x1, 0x9d, 0xfe,
|
||||
0x91, 0x0,
|
||||
|
||||
/* U+0054 "T" */
|
||||
0xcf, 0xff, 0xff, 0xff, 0x60, 0x0, 0x4e, 0x0,
|
||||
0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x3e,
|
||||
0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
|
||||
0x3e, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
|
||||
0x0, 0x3e, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0,
|
||||
0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x3, 0xe0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0055 "U" */
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xf2, 0x0, 0x0, 0x2f,
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xf2, 0x0, 0x0, 0x2f,
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xf2, 0x0, 0x0, 0x2f,
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xd3, 0x0, 0x0, 0x4d,
|
||||
0xb8, 0x0, 0x0, 0x8b, 0x3f, 0x72, 0x27, 0xf3,
|
||||
0x3, 0xbe, 0xeb, 0x30,
|
||||
|
||||
/* U+0056 "V" */
|
||||
0xc7, 0x0, 0x0, 0x8, 0xb6, 0xd0, 0x0, 0x0,
|
||||
0xd5, 0x1f, 0x20, 0x0, 0x3f, 0x0, 0xc7, 0x0,
|
||||
0x8, 0xb0, 0x6, 0xc0, 0x0, 0xd5, 0x0, 0x1f,
|
||||
0x10, 0x2f, 0x0, 0x0, 0xb6, 0x7, 0xb0, 0x0,
|
||||
0x6, 0xc0, 0xd5, 0x0, 0x0, 0x1f, 0x3f, 0x0,
|
||||
0x0, 0x0, 0xbd, 0xa0, 0x0, 0x0, 0x6, 0xf5,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0057 "W" */
|
||||
0xc7, 0x0, 0x3, 0xf4, 0x0, 0x7, 0xd8, 0xb0,
|
||||
0x0, 0x7f, 0x80, 0x0, 0xb8, 0x4f, 0x0, 0xb,
|
||||
0xac, 0x0, 0xe, 0x40, 0xf3, 0x0, 0xf2, 0xf0,
|
||||
0x2, 0xf0, 0xc, 0x60, 0x3d, 0xc, 0x30, 0x6c,
|
||||
0x0, 0x8a, 0x7, 0x90, 0x87, 0xa, 0x80, 0x3,
|
||||
0xe0, 0xb5, 0x4, 0xb0, 0xe4, 0x0, 0xf, 0x2f,
|
||||
0x10, 0x1f, 0x2f, 0x0, 0x0, 0xb9, 0xd0, 0x0,
|
||||
0xc9, 0xb0, 0x0, 0x7, 0xf9, 0x0, 0x8, 0xf7,
|
||||
0x0, 0x0, 0x3f, 0x50, 0x0, 0x4f, 0x30, 0x0,
|
||||
|
||||
/* U+0058 "X" */
|
||||
0x5f, 0x10, 0x0, 0x2f, 0x40, 0xbb, 0x0, 0xc,
|
||||
0x90, 0x1, 0xf5, 0x6, 0xe0, 0x0, 0x6, 0xe2,
|
||||
0xf4, 0x0, 0x0, 0xc, 0xfa, 0x0, 0x0, 0x0,
|
||||
0x7f, 0x50, 0x0, 0x0, 0x1e, 0xae, 0x0, 0x0,
|
||||
0xa, 0xa0, 0xc9, 0x0, 0x5, 0xf1, 0x2, 0xf3,
|
||||
0x1, 0xe6, 0x0, 0x8, 0xd0, 0x9c, 0x0, 0x0,
|
||||
0xd, 0x80,
|
||||
|
||||
/* U+0059 "Y" */
|
||||
0xab, 0x0, 0x0, 0x7, 0xd0, 0x1e, 0x50, 0x0,
|
||||
0x1f, 0x40, 0x6, 0xe0, 0x0, 0xaa, 0x0, 0x0,
|
||||
0xc8, 0x4, 0xf1, 0x0, 0x0, 0x3f, 0x2d, 0x70,
|
||||
0x0, 0x0, 0x9, 0xed, 0x0, 0x0, 0x0, 0x0,
|
||||
0xf4, 0x0, 0x0, 0x0, 0x0, 0xe3, 0x0, 0x0,
|
||||
0x0, 0x0, 0xe3, 0x0, 0x0, 0x0, 0x0, 0xe3,
|
||||
0x0, 0x0, 0x0, 0x0, 0xe3, 0x0, 0x0,
|
||||
|
||||
/* U+005A "Z" */
|
||||
0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x1c,
|
||||
0xb0, 0x0, 0x0, 0x6, 0xe1, 0x0, 0x0, 0x2,
|
||||
0xf5, 0x0, 0x0, 0x0, 0xc9, 0x0, 0x0, 0x0,
|
||||
0x8d, 0x0, 0x0, 0x0, 0x3f, 0x30, 0x0, 0x0,
|
||||
0xd, 0x80, 0x0, 0x0, 0x9, 0xc0, 0x0, 0x0,
|
||||
0x4, 0xf3, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xff,
|
||||
0xff, 0x60,
|
||||
|
||||
/* U+005B "[" */
|
||||
0x5e, 0xee, 0x6, 0xb1, 0x10, 0x6a, 0x0, 0x6,
|
||||
0xa0, 0x0, 0x6a, 0x0, 0x6, 0xa0, 0x0, 0x6a,
|
||||
0x0, 0x6, 0xa0, 0x0, 0x6a, 0x0, 0x6, 0xa0,
|
||||
0x0, 0x6a, 0x0, 0x6, 0xa0, 0x0, 0x6a, 0x0,
|
||||
0x6, 0xff, 0xf0,
|
||||
|
||||
/* U+005C "\\" */
|
||||
0x4b, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x9,
|
||||
0x60, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xe1,
|
||||
0x0, 0x0, 0x8, 0x70, 0x0, 0x0, 0x2d, 0x0,
|
||||
0x0, 0x0, 0xd2, 0x0, 0x0, 0x7, 0x80, 0x0,
|
||||
0x0, 0x2e, 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0,
|
||||
0x6, 0x90, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
|
||||
0xb4,
|
||||
|
||||
/* U+005D "]" */
|
||||
0x5e, 0xee, 0x0, 0x11, 0xf0, 0x0, 0xf, 0x0,
|
||||
0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0,
|
||||
0xf, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0,
|
||||
0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xf,
|
||||
0x6, 0xff, 0xf0,
|
||||
|
||||
/* U+005E "^" */
|
||||
0x0, 0x2f, 0x60, 0x0, 0x9, 0x8d, 0x0, 0x1,
|
||||
0xd0, 0xa4, 0x0, 0x77, 0x3, 0xb0, 0xd, 0x10,
|
||||
0xc, 0x20,
|
||||
|
||||
/* U+005F "_" */
|
||||
0xee, 0xee, 0xee, 0xe1, 0x11, 0x11, 0x11,
|
||||
|
||||
/* U+0060 "`" */
|
||||
0x89, 0x0, 0x95,
|
||||
|
||||
/* U+0061 "a" */
|
||||
0x2, 0xad, 0xea, 0x10, 0xe8, 0x12, 0xba, 0x3,
|
||||
0x0, 0x3, 0xe0, 0x3b, 0xee, 0xef, 0x1e, 0x60,
|
||||
0x2, 0xf5, 0xc0, 0x0, 0x6f, 0x4f, 0x30, 0x5c,
|
||||
0xf0, 0x8e, 0xd9, 0x2f,
|
||||
|
||||
/* U+0062 "b" */
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x2b, 0xeb, 0x20,
|
||||
0x1f, 0xa2, 0x18, 0xe0, 0x1f, 0x30, 0x0, 0xc5,
|
||||
0x1f, 0x0, 0x0, 0x98, 0x1f, 0x0, 0x0, 0x98,
|
||||
0x1f, 0x30, 0x0, 0xc6, 0x1f, 0xb2, 0x7, 0xe0,
|
||||
0x1e, 0x4c, 0xfb, 0x20,
|
||||
|
||||
/* U+0063 "c" */
|
||||
0x0, 0x9e, 0xea, 0x10, 0xb, 0xb1, 0x2a, 0xb0,
|
||||
0x2f, 0x10, 0x1, 0xb0, 0x5c, 0x0, 0x0, 0x0,
|
||||
0x5c, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x2, 0xe1,
|
||||
0xb, 0xa1, 0x2b, 0xa0, 0x0, 0xae, 0xea, 0x10,
|
||||
|
||||
/* U+0064 "d" */
|
||||
0x0, 0x0, 0x0, 0xc5, 0x0, 0x0, 0x0, 0xc5,
|
||||
0x0, 0x0, 0x0, 0xc5, 0x0, 0xae, 0xc4, 0xc5,
|
||||
0xb, 0xa1, 0x1a, 0xe5, 0x2f, 0x0, 0x1, 0xf5,
|
||||
0x5c, 0x0, 0x0, 0xc5, 0x5c, 0x0, 0x0, 0xc5,
|
||||
0x2f, 0x0, 0x0, 0xf5, 0xb, 0xa1, 0x1a, 0xe5,
|
||||
0x0, 0xae, 0xd6, 0xb5,
|
||||
|
||||
/* U+0065 "e" */
|
||||
0x1, 0xae, 0xe9, 0x0, 0xc, 0x81, 0x1a, 0xa0,
|
||||
0x4d, 0x0, 0x0, 0xf1, 0x7f, 0xee, 0xee, 0xf3,
|
||||
0x7b, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x2, 0xc0,
|
||||
0xd, 0x91, 0x1c, 0x70, 0x1, 0xae, 0xe8, 0x0,
|
||||
|
||||
/* U+0066 "f" */
|
||||
0x0, 0x7f, 0xf2, 0x0, 0xe4, 0x0, 0x1, 0xf0,
|
||||
0x0, 0xef, 0xff, 0xf0, 0x1, 0xf0, 0x0, 0x1,
|
||||
0xf0, 0x0, 0x1, 0xf0, 0x0, 0x1, 0xf0, 0x0,
|
||||
0x1, 0xf0, 0x0, 0x1, 0xf0, 0x0, 0x1, 0xf0,
|
||||
0x0,
|
||||
|
||||
/* U+0067 "g" */
|
||||
0x0, 0xae, 0xd5, 0xb6, 0xb, 0xb1, 0x1a, 0xe6,
|
||||
0x2f, 0x10, 0x0, 0xf6, 0x5c, 0x0, 0x0, 0xc6,
|
||||
0x5c, 0x0, 0x0, 0xc6, 0x2f, 0x0, 0x0, 0xf6,
|
||||
0xb, 0xa1, 0x1a, 0xe6, 0x0, 0xae, 0xd5, 0xb5,
|
||||
0x4, 0x0, 0x0, 0xd3, 0xd, 0x80, 0x7, 0xd0,
|
||||
0x2, 0xbe, 0xeb, 0x20,
|
||||
|
||||
/* U+0068 "h" */
|
||||
0x1f, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1f,
|
||||
0x0, 0x0, 0x1, 0xf2, 0xcf, 0xb1, 0x1f, 0xa2,
|
||||
0x2c, 0x91, 0xf3, 0x0, 0x6d, 0x1f, 0x0, 0x3,
|
||||
0xe1, 0xf0, 0x0, 0x2e, 0x1f, 0x0, 0x2, 0xe1,
|
||||
0xf0, 0x0, 0x2e, 0x1f, 0x0, 0x2, 0xe0,
|
||||
|
||||
/* U+0069 "i" */
|
||||
0xd, 0x60, 0x94, 0x0, 0x0, 0xc5, 0xc, 0x50,
|
||||
0xc5, 0xc, 0x50, 0xc5, 0xc, 0x50, 0xc5, 0xc,
|
||||
0x50,
|
||||
|
||||
/* U+006A "j" */
|
||||
0x0, 0xb9, 0x0, 0x76, 0x0, 0x0, 0x0, 0x97,
|
||||
0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97,
|
||||
0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0xa7,
|
||||
0x1, 0xd6, 0x3f, 0xb0,
|
||||
|
||||
/* U+006B "k" */
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x1c, 0x90,
|
||||
0x1f, 0x0, 0xc9, 0x0, 0x1f, 0xc, 0x90, 0x0,
|
||||
0x1f, 0xcf, 0x20, 0x0, 0x1f, 0xa8, 0xc0, 0x0,
|
||||
0x1f, 0x0, 0xc9, 0x0, 0x1f, 0x0, 0x2f, 0x40,
|
||||
0x1f, 0x0, 0x6, 0xe1,
|
||||
|
||||
/* U+006C "l" */
|
||||
0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3,
|
||||
0xe3, 0xe3, 0xe3,
|
||||
|
||||
/* U+006D "m" */
|
||||
0x1f, 0x4d, 0xd7, 0xa, 0xec, 0x20, 0x1f, 0xa1,
|
||||
0x3f, 0xc4, 0x19, 0xc0, 0x1f, 0x30, 0xa, 0xa0,
|
||||
0x1, 0xf0, 0x1f, 0x0, 0x9, 0x80, 0x0, 0xf1,
|
||||
0x1f, 0x0, 0x8, 0x80, 0x0, 0xf1, 0x1f, 0x0,
|
||||
0x8, 0x80, 0x0, 0xf1, 0x1f, 0x0, 0x8, 0x80,
|
||||
0x0, 0xf1, 0x1f, 0x0, 0x8, 0x80, 0x0, 0xf1,
|
||||
|
||||
/* U+006E "n" */
|
||||
0x1f, 0x3c, 0xfb, 0x11, 0xfb, 0x22, 0xc9, 0x1f,
|
||||
0x20, 0x4, 0xd1, 0xf0, 0x0, 0x2f, 0x1f, 0x0,
|
||||
0x2, 0xf1, 0xf0, 0x0, 0x2f, 0x1f, 0x0, 0x2,
|
||||
0xf1, 0xf0, 0x0, 0x2f,
|
||||
|
||||
/* U+006F "o" */
|
||||
0x0, 0x8e, 0xea, 0x10, 0xa, 0xb2, 0x19, 0xd0,
|
||||
0x2f, 0x10, 0x0, 0xd5, 0x5c, 0x0, 0x0, 0x98,
|
||||
0x5c, 0x0, 0x0, 0x98, 0x2f, 0x10, 0x0, 0xd5,
|
||||
0xa, 0xb2, 0x19, 0xd0, 0x0, 0x8e, 0xea, 0x10,
|
||||
|
||||
/* U+0070 "p" */
|
||||
0x1e, 0x3c, 0xeb, 0x10, 0x1f, 0xb2, 0x18, 0xe0,
|
||||
0x1f, 0x30, 0x0, 0xc5, 0x1f, 0x0, 0x0, 0x98,
|
||||
0x1f, 0x0, 0x0, 0x98, 0x1f, 0x30, 0x0, 0xc6,
|
||||
0x1f, 0xa2, 0x17, 0xe0, 0x1f, 0x2c, 0xfb, 0x20,
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0071 "q" */
|
||||
0x0, 0xae, 0xd5, 0xb5, 0xb, 0xa1, 0x1a, 0xe5,
|
||||
0x2f, 0x0, 0x1, 0xf5, 0x5c, 0x0, 0x0, 0xc5,
|
||||
0x5c, 0x0, 0x0, 0xc5, 0x2f, 0x0, 0x1, 0xf5,
|
||||
0xb, 0xa1, 0x1a, 0xe5, 0x0, 0xae, 0xc4, 0xc5,
|
||||
0x0, 0x0, 0x0, 0xc5, 0x0, 0x0, 0x0, 0xc5,
|
||||
0x0, 0x0, 0x0, 0xc5,
|
||||
|
||||
/* U+0072 "r" */
|
||||
0x1f, 0x3c, 0xf0, 0x1f, 0xd5, 0x40, 0x1f, 0x40,
|
||||
0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f,
|
||||
0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
|
||||
/* U+0073 "s" */
|
||||
0x6, 0xdf, 0xd5, 0x3, 0xf4, 0x15, 0xf2, 0x4e,
|
||||
0x10, 0x4, 0x20, 0x8f, 0xb6, 0x10, 0x0, 0x5,
|
||||
0xae, 0x24, 0x60, 0x0, 0xa8, 0x3f, 0x40, 0x3e,
|
||||
0x60, 0x6d, 0xfe, 0x90,
|
||||
|
||||
/* U+0074 "t" */
|
||||
0x0, 0x40, 0x0, 0x4c, 0x0, 0x4, 0xc0, 0xc,
|
||||
0xff, 0xf9, 0x4, 0xc0, 0x0, 0x4c, 0x0, 0x4,
|
||||
0xc0, 0x0, 0x4c, 0x0, 0x4, 0xc0, 0x0, 0x3e,
|
||||
0x0, 0x0, 0xcf, 0x60,
|
||||
|
||||
/* U+0075 "u" */
|
||||
0x1f, 0x0, 0x2, 0xf1, 0xf0, 0x0, 0x2f, 0x1f,
|
||||
0x0, 0x2, 0xf1, 0xf0, 0x0, 0x2f, 0x1f, 0x0,
|
||||
0x2, 0xf0, 0xf1, 0x0, 0x7f, 0xd, 0x91, 0x3d,
|
||||
0xf0, 0x3c, 0xfb, 0x3f,
|
||||
|
||||
/* U+0076 "v" */
|
||||
0xc7, 0x0, 0xb, 0x76, 0xc0, 0x0, 0xf2, 0x1f,
|
||||
0x10, 0x5d, 0x0, 0xb6, 0xa, 0x70, 0x6, 0xb0,
|
||||
0xf2, 0x0, 0x1f, 0x6c, 0x0, 0x0, 0xbe, 0x70,
|
||||
0x0, 0x5, 0xf1, 0x0,
|
||||
|
||||
/* U+0077 "w" */
|
||||
0xc6, 0x0, 0x5e, 0x0, 0xd, 0x57, 0xb0, 0xa,
|
||||
0xf3, 0x2, 0xf0, 0x2f, 0x0, 0xd8, 0x70, 0x6b,
|
||||
0x0, 0xd4, 0x2c, 0x3b, 0xb, 0x60, 0x8, 0x86,
|
||||
0x80, 0xe0, 0xf1, 0x0, 0x3c, 0xa3, 0xa, 0x7c,
|
||||
0x0, 0x0, 0xee, 0x0, 0x6f, 0x70, 0x0, 0x9,
|
||||
0xb0, 0x2, 0xf2, 0x0,
|
||||
|
||||
/* U+0078 "x" */
|
||||
0x4e, 0x10, 0xd, 0x60, 0x9, 0xa0, 0x8b, 0x0,
|
||||
0x0, 0xd8, 0xe1, 0x0, 0x0, 0x4f, 0x60, 0x0,
|
||||
0x0, 0x8e, 0xa0, 0x0, 0x3, 0xe2, 0xd5, 0x0,
|
||||
0xd, 0x50, 0x4e, 0x10, 0x9b, 0x0, 0x9, 0xb0,
|
||||
|
||||
/* U+0079 "y" */
|
||||
0xc7, 0x0, 0x8, 0xb6, 0xc0, 0x0, 0xd5, 0xf,
|
||||
0x20, 0x3f, 0x0, 0xa8, 0x8, 0x90, 0x4, 0xd0,
|
||||
0xe3, 0x0, 0xe, 0x7e, 0x0, 0x0, 0x8f, 0x80,
|
||||
0x0, 0x2, 0xf2, 0x0, 0x0, 0x5c, 0x0, 0x0,
|
||||
0xb, 0x70, 0x0, 0x2, 0xf1, 0x0, 0x0,
|
||||
|
||||
/* U+007A "z" */
|
||||
0x8f, 0xff, 0xff, 0x30, 0x0, 0x9, 0xc0, 0x0,
|
||||
0x4, 0xe1, 0x0, 0x1, 0xe5, 0x0, 0x0, 0xb9,
|
||||
0x0, 0x0, 0x7d, 0x0, 0x0, 0x3f, 0x30, 0x0,
|
||||
0xa, 0xff, 0xff, 0xf7,
|
||||
|
||||
/* U+007B "{" */
|
||||
0x0, 0xbf, 0x50, 0x3d, 0x0, 0x5, 0xa0, 0x0,
|
||||
0x5a, 0x0, 0x6, 0xa0, 0x0, 0xa7, 0x0, 0xbc,
|
||||
0x0, 0x2, 0xc5, 0x0, 0x6, 0x90, 0x0, 0x5a,
|
||||
0x0, 0x5, 0xa0, 0x0, 0x5a, 0x0, 0x2, 0xd0,
|
||||
0x0, 0xa, 0xf5,
|
||||
|
||||
/* U+007C "|" */
|
||||
0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d,
|
||||
0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d,
|
||||
|
||||
/* U+007D "}" */
|
||||
0xae, 0x60, 0x0, 0x3e, 0x0, 0x0, 0xf0, 0x0,
|
||||
0xf, 0x0, 0x0, 0xf0, 0x0, 0xd, 0x40, 0x0,
|
||||
0x3f, 0x50, 0xb, 0x70, 0x0, 0xf1, 0x0, 0xf,
|
||||
0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x4, 0xd0,
|
||||
0xa, 0xe5, 0x0,
|
||||
|
||||
/* U+007E "~" */
|
||||
0x2c, 0xd8, 0x24, 0x55, 0x41, 0x7d, 0xc2,
|
||||
|
||||
/* U+007F "" */
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* 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 = 75, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 0, .adv_w = 75, .box_w = 3, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17, .adv_w = 96, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 25, .adv_w = 134, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 75, .adv_w = 134, .box_w = 8, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 135, .adv_w = 217, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 207, .adv_w = 163, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 262, .adv_w = 55, .box_w = 2, .box_h = 4, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 266, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 294, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 322, .adv_w = 113, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 347, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 379, .adv_w = 59, .box_w = 3, .box_h = 5, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 387, .adv_w = 136, .box_w = 8, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 395, .adv_w = 59, .box_w = 2, .box_h = 2, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 397, .adv_w = 112, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 446, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 490, .adv_w = 90, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 518, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 562, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 606, .adv_w = 134, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 656, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 700, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 744, .adv_w = 123, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 788, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 832, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 876, .adv_w = 59, .box_w = 2, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 883, .adv_w = 59, .box_w = 3, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 898, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 930, .adv_w = 136, .box_w = 8, .box_h = 5, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 950, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 982, .adv_w = 120, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1021, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1087, .adv_w = 147, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1142, .adv_w = 152, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1186, .adv_w = 163, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1241, .adv_w = 158, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1291, .adv_w = 143, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1335, .adv_w = 129, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1374, .adv_w = 168, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1429, .adv_w = 161, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1479, .adv_w = 53, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1490, .adv_w = 116, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1529, .adv_w = 155, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1579, .adv_w = 132, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1618, .adv_w = 198, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1679, .adv_w = 161, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1729, .adv_w = 172, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1790, .adv_w = 144, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1834, .adv_w = 172, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 1900, .adv_w = 151, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1950, .adv_w = 142, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2000, .adv_w = 139, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2050, .adv_w = 160, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2094, .adv_w = 143, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2144, .adv_w = 208, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2216, .adv_w = 143, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2266, .adv_w = 148, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2321, .adv_w = 140, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2371, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2406, .adv_w = 112, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 2455, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2490, .adv_w = 116, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 6},
|
||||
{.bitmap_index = 2508, .adv_w = 112, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 2515, .adv_w = 75, .box_w = 3, .box_h = 2, .ofs_x = 1, .ofs_y = 9},
|
||||
{.bitmap_index = 2518, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2546, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2590, .adv_w = 123, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2622, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2666, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2698, .adv_w = 84, .box_w = 6, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2731, .adv_w = 132, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 2775, .adv_w = 125, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2814, .adv_w = 57, .box_w = 3, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2831, .adv_w = 60, .box_w = 4, .box_h = 14, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 2859, .adv_w = 118, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2903, .adv_w = 53, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2914, .adv_w = 192, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2962, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2990, .adv_w = 131, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3022, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3066, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3110, .adv_w = 82, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3134, .adv_w = 113, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3162, .adv_w = 80, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3190, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3218, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3246, .adv_w = 169, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3290, .adv_w = 114, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3322, .adv_w = 111, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3361, .adv_w = 109, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3389, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3424, .adv_w = 44, .box_w = 2, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3439, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3474, .adv_w = 112, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 3481, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 32, .range_length = 96, .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 ui_font_PingFangEN14 = {
|
||||
#else
|
||||
lv_font_t ui_font_PingFangEN14 = {
|
||||
#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 = 16, /*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 = -2,
|
||||
.underline_thickness = 1,
|
||||
#endif
|
||||
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if UI_FONT_PINGFANGEN14*/
|
||||
|
||||
@@ -0,0 +1,969 @@
|
||||
/*******************************************************************************
|
||||
* Size: 16 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 16 --font C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\pingfang.otf -o C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\ui_font_PingFangEN16.c --format lvgl -r 0x20-0x7f --no-compress --no-prefilter
|
||||
******************************************************************************/
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
#ifndef UI_FONT_PINGFANGEN16
|
||||
#define UI_FONT_PINGFANGEN16 1
|
||||
#endif
|
||||
|
||||
#if UI_FONT_PINGFANGEN16
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+0020 " " */
|
||||
|
||||
/* U+0021 "!" */
|
||||
0x1f, 0x60, 0xf5, 0xf, 0x50, 0xf4, 0xf, 0x40,
|
||||
0xe4, 0xe, 0x30, 0xd3, 0xb, 0x20, 0x0, 0x1e,
|
||||
0x61, 0xe6,
|
||||
|
||||
/* U+0022 "\"" */
|
||||
0xb9, 0xc, 0x8a, 0x90, 0xb7, 0xa8, 0xb, 0x79,
|
||||
0x80, 0xa6, 0x11, 0x2, 0x10,
|
||||
|
||||
/* U+0023 "#" */
|
||||
0x0, 0xa, 0x60, 0x2e, 0x0, 0x0, 0xc, 0x40,
|
||||
0x4c, 0x0, 0x0, 0xe, 0x20, 0x6a, 0x0, 0xc,
|
||||
0xef, 0xee, 0xff, 0xe1, 0x1, 0x4d, 0x11, 0xc6,
|
||||
0x10, 0x0, 0x6a, 0x0, 0xe2, 0x0, 0x0, 0x88,
|
||||
0x0, 0xf0, 0x0, 0x0, 0xb5, 0x3, 0xd0, 0x0,
|
||||
0x7e, 0xfe, 0xee, 0xfe, 0x70, 0x1, 0xf2, 0x19,
|
||||
0x91, 0x0, 0x2, 0xe0, 0xa, 0x60, 0x0, 0x5,
|
||||
0xc0, 0xd, 0x30, 0x0,
|
||||
|
||||
/* U+0024 "$" */
|
||||
0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0x9, 0x20,
|
||||
0x0, 0x0, 0x7d, 0xff, 0xb2, 0x0, 0x8e, 0x7b,
|
||||
0x6b, 0xe1, 0xe, 0x60, 0x92, 0xe, 0x60, 0xe6,
|
||||
0x9, 0x20, 0x43, 0xa, 0xe5, 0xa2, 0x0, 0x0,
|
||||
0x9, 0xff, 0x81, 0x0, 0x0, 0x1, 0xce, 0xf8,
|
||||
0x0, 0x0, 0x9, 0x25, 0xf7, 0x1d, 0x20, 0x92,
|
||||
0x9, 0xb0, 0xe7, 0x9, 0x20, 0xaa, 0x7, 0xf7,
|
||||
0xb6, 0x9f, 0x40, 0x7, 0xdf, 0xfc, 0x50, 0x0,
|
||||
0x0, 0x92, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0,
|
||||
|
||||
/* U+0025 "%" */
|
||||
0xa, 0xed, 0x30, 0x0, 0xc, 0x30, 0x0, 0x9b,
|
||||
0x5, 0xe0, 0x0, 0x5a, 0x0, 0x0, 0xd6, 0x0,
|
||||
0xf3, 0x0, 0xd2, 0x0, 0x0, 0xc6, 0x0, 0xf3,
|
||||
0x6, 0x90, 0x0, 0x0, 0x8b, 0x6, 0xe0, 0xd,
|
||||
0x10, 0x0, 0x0, 0x9, 0xec, 0x30, 0x78, 0x7,
|
||||
0xdc, 0x30, 0x0, 0x0, 0x1, 0xe1, 0x5d, 0x15,
|
||||
0xe0, 0x0, 0x0, 0x8, 0x70, 0xa8, 0x0, 0xf4,
|
||||
0x0, 0x0, 0x1d, 0x0, 0xb7, 0x0, 0xd6, 0x0,
|
||||
0x0, 0xa6, 0x0, 0xa9, 0x0, 0xf4, 0x0, 0x2,
|
||||
0xd0, 0x0, 0x5d, 0x14, 0xf0, 0x0, 0xb, 0x50,
|
||||
0x0, 0x8, 0xed, 0x40,
|
||||
|
||||
/* U+0026 "&" */
|
||||
0x0, 0x1a, 0xfe, 0x90, 0x0, 0x0, 0x0, 0xbc,
|
||||
0x34, 0xe8, 0x0, 0x0, 0x0, 0xe6, 0x0, 0xaa,
|
||||
0x0, 0x0, 0x0, 0xac, 0x3, 0xf5, 0x0, 0x0,
|
||||
0x0, 0x1e, 0xce, 0x60, 0x1, 0x0, 0x0, 0x4d,
|
||||
0xf9, 0x0, 0x2f, 0x10, 0x6, 0xf5, 0x3f, 0x70,
|
||||
0x5f, 0x0, 0xf, 0x50, 0x3, 0xf6, 0x9c, 0x0,
|
||||
0x4f, 0x0, 0x0, 0x4f, 0xf6, 0x0, 0x2f, 0x40,
|
||||
0x0, 0xc, 0xf5, 0x0, 0xb, 0xe7, 0x46, 0xce,
|
||||
0x9f, 0x20, 0x0, 0x7d, 0xfd, 0x91, 0xa, 0xd1,
|
||||
|
||||
/* U+0027 "'" */
|
||||
0xb9, 0xa9, 0xa8, 0x98, 0x11,
|
||||
|
||||
/* U+0028 "(" */
|
||||
0x0, 0xe, 0x30, 0x6, 0xc0, 0x0, 0xe5, 0x0,
|
||||
0x5e, 0x0, 0x9, 0xa0, 0x0, 0xd6, 0x0, 0xf,
|
||||
0x40, 0x0, 0xf3, 0x0, 0xf, 0x30, 0x0, 0xf4,
|
||||
0x0, 0xd, 0x60, 0x0, 0x9a, 0x0, 0x5, 0xe0,
|
||||
0x0, 0xe, 0x50, 0x0, 0x6c, 0x0, 0x0, 0xe3,
|
||||
|
||||
/* U+0029 ")" */
|
||||
0xd, 0x40, 0x0, 0x6b, 0x0, 0x0, 0xf3, 0x0,
|
||||
0x9, 0xa0, 0x0, 0x5e, 0x0, 0x1, 0xf2, 0x0,
|
||||
0xf, 0x40, 0x0, 0xe5, 0x0, 0xe, 0x50, 0x0,
|
||||
0xf4, 0x0, 0x1f, 0x20, 0x5, 0xe0, 0x0, 0x9a,
|
||||
0x0, 0xf, 0x30, 0x6, 0xc0, 0x0, 0xd4, 0x0,
|
||||
|
||||
/* U+002A "*" */
|
||||
0x0, 0x7, 0x90, 0x0, 0x0, 0x7, 0x80, 0x0,
|
||||
0x48, 0x26, 0x81, 0x86, 0x39, 0xee, 0xee, 0xa4,
|
||||
0x0, 0x1e, 0xe1, 0x0, 0x0, 0xa8, 0x6c, 0x0,
|
||||
0x6, 0xd0, 0xb, 0x70, 0x0, 0x20, 0x1, 0x0,
|
||||
|
||||
/* U+002B "+" */
|
||||
0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0xb, 0x60,
|
||||
0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0xb,
|
||||
0x60, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xd0, 0x22,
|
||||
0x2c, 0x72, 0x22, 0x0, 0x0, 0xb6, 0x0, 0x0,
|
||||
0x0, 0xb, 0x60, 0x0, 0x0, 0x0, 0xb6, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+002C "," */
|
||||
0x0, 0xb, 0xd0, 0xaf, 0x40, 0xc2, 0x8a, 0x6,
|
||||
0x0,
|
||||
|
||||
/* U+002D "-" */
|
||||
0x3f, 0xff, 0xff, 0xff, 0xd0, 0x22, 0x22, 0x22,
|
||||
0x22,
|
||||
|
||||
/* U+002E "." */
|
||||
0x0, 0xa, 0xd0, 0x9c, 0x0,
|
||||
|
||||
/* U+002F "/" */
|
||||
0x0, 0x0, 0x0, 0x62, 0x0, 0x0, 0x1, 0xf1,
|
||||
0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0xd, 0x40,
|
||||
0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x99, 0x0,
|
||||
0x0, 0x0, 0xe3, 0x0, 0x0, 0x4, 0xd0, 0x0,
|
||||
0x0, 0xa, 0x70, 0x0, 0x0, 0xf, 0x10, 0x0,
|
||||
0x0, 0x6c, 0x0, 0x0, 0x0, 0xc6, 0x0, 0x0,
|
||||
0x2, 0xf0, 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0,
|
||||
0xd, 0x40, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x0, 0x2a, 0xed, 0x80, 0x0, 0x1d, 0xb4, 0x6e,
|
||||
0x90, 0x8, 0xc0, 0x0, 0x3f, 0x20, 0xe6, 0x0,
|
||||
0x0, 0xc7, 0xf, 0x30, 0x0, 0x9, 0xa2, 0xf2,
|
||||
0x0, 0x0, 0x8b, 0x2f, 0x20, 0x0, 0x8, 0xb0,
|
||||
0xf3, 0x0, 0x0, 0x9a, 0xe, 0x60, 0x0, 0xc,
|
||||
0x70, 0x8c, 0x0, 0x3, 0xf2, 0x1, 0xdb, 0x46,
|
||||
0xe9, 0x0, 0x2, 0xae, 0xd7, 0x0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x0, 0x1c, 0xb0, 0x6e, 0xfb, 0x4e, 0x69, 0xb1,
|
||||
0x0, 0x9b, 0x0, 0x9, 0xb0, 0x0, 0x9b, 0x0,
|
||||
0x9, 0xb0, 0x0, 0x9b, 0x0, 0x9, 0xb0, 0x0,
|
||||
0x9b, 0x0, 0x9, 0xb0, 0x0, 0x9b,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x0, 0x1a, 0xee, 0xa2, 0x0, 0x1e, 0xa4, 0x4b,
|
||||
0xe1, 0x9, 0xd0, 0x0, 0xe, 0x60, 0xc8, 0x0,
|
||||
0x0, 0xc8, 0x4, 0x20, 0x0, 0xf, 0x50, 0x0,
|
||||
0x0, 0x9, 0xd0, 0x0, 0x0, 0xa, 0xe3, 0x0,
|
||||
0x0, 0x2d, 0xc1, 0x0, 0x0, 0x4f, 0x90, 0x0,
|
||||
0x0, 0x2f, 0x70, 0x0, 0x0, 0xb, 0xd3, 0x33,
|
||||
0x33, 0x20, 0xef, 0xff, 0xff, 0xf9,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x0, 0x3b, 0xee, 0xb3, 0x0, 0x3f, 0x94, 0x4a,
|
||||
0xf2, 0xb, 0xa0, 0x0, 0xe, 0x70, 0x63, 0x0,
|
||||
0x0, 0xc6, 0x0, 0x0, 0x0, 0x6e, 0x10, 0x0,
|
||||
0xe, 0xfe, 0x20, 0x0, 0x0, 0x13, 0x8d, 0x20,
|
||||
0x0, 0x0, 0x0, 0xba, 0x1e, 0x30, 0x0, 0x9,
|
||||
0xb0, 0xd8, 0x0, 0x0, 0xd9, 0x4, 0xf8, 0x34,
|
||||
0xbe, 0x10, 0x4, 0xcf, 0xea, 0x20,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x0, 0x0, 0x3, 0xf5, 0x0, 0x0, 0x0, 0x1e,
|
||||
0xf5, 0x0, 0x0, 0x0, 0xb8, 0xd5, 0x0, 0x0,
|
||||
0x6, 0xc0, 0xd5, 0x0, 0x0, 0x3e, 0x20, 0xd5,
|
||||
0x0, 0x0, 0xd5, 0x0, 0xd5, 0x0, 0x9, 0x90,
|
||||
0x0, 0xd5, 0x0, 0x5d, 0x0, 0x0, 0xd5, 0x0,
|
||||
0x9f, 0xff, 0xff, 0xff, 0xf3, 0x12, 0x22, 0x22,
|
||||
0xe7, 0x20, 0x0, 0x0, 0x0, 0xd5, 0x0, 0x0,
|
||||
0x0, 0x0, 0xd5, 0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0x5, 0xff, 0xff, 0xff, 0x40, 0x7c, 0x33, 0x33,
|
||||
0x31, 0x8, 0xa0, 0x0, 0x0, 0x0, 0xa8, 0x0,
|
||||
0x0, 0x0, 0xb, 0x78, 0xde, 0xa2, 0x0, 0xdf,
|
||||
0x83, 0x4b, 0xe1, 0x7, 0x50, 0x0, 0xd, 0x80,
|
||||
0x0, 0x0, 0x0, 0x9b, 0x5, 0x0, 0x0, 0x9,
|
||||
0xb0, 0xf6, 0x0, 0x0, 0xe7, 0x6, 0xf8, 0x45,
|
||||
0xdd, 0x0, 0x5, 0xcf, 0xd9, 0x0,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x0, 0x9, 0xee, 0xb3, 0x0, 0xc, 0xb4, 0x5b,
|
||||
0xe1, 0x6, 0xd0, 0x0, 0xe, 0x70, 0xc6, 0x0,
|
||||
0x0, 0x0, 0xf, 0x26, 0xce, 0xb2, 0x1, 0xf8,
|
||||
0xa3, 0x4b, 0xe1, 0x2f, 0xb0, 0x0, 0xd, 0x81,
|
||||
0xf5, 0x0, 0x0, 0x9b, 0xf, 0x60, 0x0, 0x9,
|
||||
0xb0, 0x9b, 0x0, 0x0, 0xe7, 0x2, 0xea, 0x44,
|
||||
0xcd, 0x0, 0x2, 0xae, 0xea, 0x10,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0x7f, 0xff, 0xff, 0xff, 0x1, 0x44, 0x44, 0x49,
|
||||
0xe0, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0, 0x0,
|
||||
0x2f, 0x20, 0x0, 0x0, 0x9, 0xb0, 0x0, 0x0,
|
||||
0x0, 0xe5, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0,
|
||||
0x0, 0xc, 0x90, 0x0, 0x0, 0x2, 0xf3, 0x0,
|
||||
0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xe, 0x60,
|
||||
0x0, 0x0, 0x5, 0xf1, 0x0, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x0, 0x5c, 0xfe, 0xa2, 0x0, 0x6f, 0x62, 0x3a,
|
||||
0xe1, 0xd, 0x70, 0x0, 0xd, 0x60, 0xc6, 0x0,
|
||||
0x0, 0xc6, 0x6, 0xd3, 0x0, 0x6e, 0x10, 0x8,
|
||||
0xff, 0xff, 0x30, 0x8, 0xe6, 0x23, 0x9f, 0x32,
|
||||
0xf3, 0x0, 0x0, 0xab, 0x4f, 0x0, 0x0, 0x6,
|
||||
0xe2, 0xf3, 0x0, 0x0, 0xab, 0xa, 0xe5, 0x23,
|
||||
0x9f, 0x40, 0x7, 0xdf, 0xeb, 0x30,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x0, 0x5c, 0xfd, 0x80, 0x0, 0x6f, 0x73, 0x4c,
|
||||
0xa0, 0xf, 0x60, 0x0, 0x1e, 0x32, 0xf2, 0x0,
|
||||
0x0, 0xb8, 0xf, 0x40, 0x0, 0xe, 0xa0, 0xae,
|
||||
0x40, 0x2a, 0xcc, 0x0, 0x9f, 0xfe, 0x58, 0xb0,
|
||||
0x0, 0x1, 0x0, 0xa9, 0x7, 0x20, 0x0, 0xe,
|
||||
0x60, 0xb9, 0x0, 0x6, 0xf0, 0x4, 0xf7, 0x37,
|
||||
0xf6, 0x0, 0x5, 0xcf, 0xc6, 0x0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0x0, 0xa, 0xd0, 0x9c, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xa, 0xd0, 0x9c, 0x0,
|
||||
|
||||
/* U+003B ";" */
|
||||
0x0, 0xa, 0xd0, 0x9c, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xb, 0xd0, 0xaf, 0x40, 0xc2, 0x8a,
|
||||
0x6, 0x0,
|
||||
|
||||
/* U+003C "<" */
|
||||
0x0, 0x0, 0x0, 0x1, 0x70, 0x0, 0x0, 0x29,
|
||||
0xfa, 0x0, 0x2, 0xaf, 0xa2, 0x0, 0x3b, 0xf9,
|
||||
0x20, 0x0, 0x3f, 0xc1, 0x0, 0x0, 0x0, 0x7e,
|
||||
0xc5, 0x0, 0x0, 0x0, 0x7, 0xed, 0x60, 0x0,
|
||||
0x0, 0x0, 0x6d, 0xe6, 0x0, 0x0, 0x0, 0x5,
|
||||
0xa0,
|
||||
|
||||
/* U+003D "=" */
|
||||
0x3f, 0xff, 0xff, 0xff, 0xd0, 0x22, 0x22, 0x22,
|
||||
0x22, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
|
||||
0xff, 0xfd, 0x2, 0x22, 0x22, 0x22, 0x20,
|
||||
|
||||
/* U+003E ">" */
|
||||
0x26, 0x0, 0x0, 0x0, 0x1, 0xde, 0x70, 0x0,
|
||||
0x0, 0x0, 0x5c, 0xe7, 0x10, 0x0, 0x0, 0x4,
|
||||
0xbf, 0x81, 0x0, 0x0, 0x0, 0x4e, 0xd0, 0x0,
|
||||
0x1, 0x7e, 0xc5, 0x0, 0x18, 0xfc, 0x40, 0x1,
|
||||
0x9f, 0xb3, 0x0, 0x0, 0x3a, 0x20, 0x0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+003F "?" */
|
||||
0x0, 0x7d, 0xfd, 0x50, 0x7, 0xe6, 0x37, 0xf5,
|
||||
0xf, 0x50, 0x0, 0xaa, 0x1d, 0x10, 0x0, 0x9b,
|
||||
0x0, 0x0, 0x1, 0xe7, 0x0, 0x0, 0x1c, 0xc0,
|
||||
0x0, 0x0, 0xcc, 0x0, 0x0, 0x3, 0xf1, 0x0,
|
||||
0x0, 0x5, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x8, 0xd0, 0x0, 0x0, 0x7, 0xd0, 0x0,
|
||||
|
||||
/* U+0040 "@" */
|
||||
0x0, 0x0, 0x7b, 0xee, 0xc7, 0x0, 0x0, 0x2,
|
||||
0xd9, 0x30, 0x2, 0x9d, 0x10, 0x0, 0xe5, 0x5,
|
||||
0xcd, 0x48, 0x6b, 0x0, 0x9a, 0x5, 0xf6, 0x3d,
|
||||
0xb0, 0xc2, 0xe, 0x30, 0xe5, 0x0, 0xa6, 0x9,
|
||||
0x51, 0xf0, 0x3e, 0x0, 0xd, 0x20, 0xa3, 0x1f,
|
||||
0x5, 0xc0, 0x3, 0xe0, 0x1d, 0x0, 0xe2, 0x2f,
|
||||
0x23, 0xcc, 0x1b, 0x60, 0xa, 0x70, 0x7e, 0xd3,
|
||||
0xcd, 0x63, 0x50, 0x2e, 0x20, 0x0, 0x0, 0x2,
|
||||
0xe3, 0x0, 0x5e, 0x72, 0x0, 0x16, 0xd4, 0x0,
|
||||
0x0, 0x18, 0xce, 0xed, 0x81, 0x0,
|
||||
|
||||
/* U+0041 "A" */
|
||||
0x0, 0x0, 0xaf, 0x30, 0x0, 0x0, 0x0, 0x1f,
|
||||
0xd9, 0x0, 0x0, 0x0, 0x6, 0xc4, 0xe0, 0x0,
|
||||
0x0, 0x0, 0xc6, 0xe, 0x50, 0x0, 0x0, 0x2f,
|
||||
0x0, 0x8b, 0x0, 0x0, 0x8, 0xa0, 0x2, 0xf1,
|
||||
0x0, 0x0, 0xe3, 0x0, 0xb, 0x70, 0x0, 0x4f,
|
||||
0xff, 0xff, 0xfd, 0x0, 0xa, 0x92, 0x22, 0x23,
|
||||
0xf3, 0x1, 0xf3, 0x0, 0x0, 0xb, 0x90, 0x6e,
|
||||
0x0, 0x0, 0x0, 0x6e, 0xc, 0x90, 0x0, 0x0,
|
||||
0x1, 0xf5,
|
||||
|
||||
/* U+0042 "B" */
|
||||
0xdf, 0xff, 0xff, 0xc5, 0x0, 0xd8, 0x22, 0x23,
|
||||
0x8f, 0x40, 0xd7, 0x0, 0x0, 0xb, 0x90, 0xd7,
|
||||
0x0, 0x0, 0xa, 0x90, 0xd7, 0x0, 0x0, 0x5e,
|
||||
0x30, 0xdf, 0xff, 0xff, 0xf5, 0x0, 0xd8, 0x22,
|
||||
0x23, 0x7e, 0x70, 0xd7, 0x0, 0x0, 0x6, 0xf0,
|
||||
0xd7, 0x0, 0x0, 0x2, 0xf2, 0xd7, 0x0, 0x0,
|
||||
0x6, 0xf0, 0xd8, 0x22, 0x24, 0x8f, 0x90, 0xdf,
|
||||
0xff, 0xff, 0xd7, 0x0,
|
||||
|
||||
/* U+0043 "C" */
|
||||
0x0, 0x5, 0xbe, 0xfc, 0x60, 0x0, 0x9, 0xf9,
|
||||
0x54, 0x8e, 0xa0, 0x5, 0xf3, 0x0, 0x0, 0x2e,
|
||||
0x60, 0xd8, 0x0, 0x0, 0x0, 0x78, 0x1f, 0x20,
|
||||
0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x4f, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x0, 0x13, 0xe, 0x70, 0x0, 0x0,
|
||||
0x8, 0xb0, 0x6e, 0x20, 0x0, 0x3, 0xf5, 0x0,
|
||||
0xaf, 0x85, 0x48, 0xf9, 0x0, 0x0, 0x6b, 0xee,
|
||||
0xc5, 0x0,
|
||||
|
||||
/* U+0044 "D" */
|
||||
0xdf, 0xff, 0xfc, 0x91, 0x0, 0xd9, 0x33, 0x46,
|
||||
0xde, 0x30, 0xd7, 0x0, 0x0, 0xa, 0xc0, 0xd7,
|
||||
0x0, 0x0, 0x2, 0xf4, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd6, 0xd7, 0x0, 0x0, 0x0, 0xb8, 0xd7, 0x0,
|
||||
0x0, 0x0, 0xb8, 0xd7, 0x0, 0x0, 0x0, 0xd6,
|
||||
0xd7, 0x0, 0x0, 0x3, 0xf3, 0xd7, 0x0, 0x0,
|
||||
0xc, 0xb0, 0xd9, 0x33, 0x47, 0xed, 0x20, 0xdf,
|
||||
0xff, 0xec, 0x80, 0x0,
|
||||
|
||||
/* U+0045 "E" */
|
||||
0xdf, 0xff, 0xff, 0xff, 0x3d, 0x93, 0x33, 0x33,
|
||||
0x30, 0xd7, 0x0, 0x0, 0x0, 0xd, 0x70, 0x0,
|
||||
0x0, 0x0, 0xd7, 0x0, 0x0, 0x0, 0xd, 0xff,
|
||||
0xff, 0xff, 0xd0, 0xd9, 0x22, 0x22, 0x22, 0xd,
|
||||
0x70, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd, 0x70, 0x0, 0x0, 0x0, 0xd9, 0x33, 0x33,
|
||||
0x33, 0x1d, 0xff, 0xff, 0xff, 0xf8,
|
||||
|
||||
/* U+0046 "F" */
|
||||
0xdf, 0xff, 0xff, 0xfc, 0xd9, 0x33, 0x33, 0x32,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xdf, 0xff, 0xff, 0xf7,
|
||||
0xd9, 0x22, 0x22, 0x21, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0047 "G" */
|
||||
0x0, 0x5, 0xbe, 0xec, 0x60, 0x0, 0x8, 0xf9,
|
||||
0x54, 0x8f, 0xb0, 0x5, 0xf3, 0x0, 0x0, 0x2f,
|
||||
0x60, 0xd8, 0x0, 0x0, 0x0, 0x9c, 0x1f, 0x30,
|
||||
0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x4f, 0x0, 0x0, 0xff, 0xff, 0xe1, 0xf2,
|
||||
0x0, 0x2, 0x22, 0x7e, 0xe, 0x80, 0x0, 0x0,
|
||||
0x5, 0xe0, 0x5f, 0x30, 0x0, 0x0, 0x6e, 0x0,
|
||||
0x9f, 0x95, 0x45, 0x9f, 0xb0, 0x0, 0x4a, 0xdf,
|
||||
0xda, 0x40,
|
||||
|
||||
/* U+0048 "H" */
|
||||
0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xe6, 0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7,
|
||||
0x0, 0x0, 0x0, 0xe6, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xe6, 0xdf, 0xff, 0xff, 0xff, 0xf6, 0xd9, 0x22,
|
||||
0x22, 0x22, 0xe6, 0xd7, 0x0, 0x0, 0x0, 0xe6,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xe6, 0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7,
|
||||
0x0, 0x0, 0x0, 0xe6,
|
||||
|
||||
/* U+0049 "I" */
|
||||
0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
||||
0xb8, 0xb8, 0xb8, 0xb8,
|
||||
|
||||
/* U+004A "J" */
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0xb9, 0x0, 0x3, 0xf1, 0x9c, 0x0, 0x7, 0xf0,
|
||||
0x3f, 0x84, 0x6f, 0x90, 0x5, 0xdf, 0xd8, 0x0,
|
||||
|
||||
/* U+004B "K" */
|
||||
0xd7, 0x0, 0x0, 0x1c, 0xc0, 0xd, 0x70, 0x0,
|
||||
0x1c, 0xc0, 0x0, 0xd7, 0x0, 0xc, 0xc0, 0x0,
|
||||
0xd, 0x70, 0xc, 0xc0, 0x0, 0x0, 0xd7, 0xc,
|
||||
0xc0, 0x0, 0x0, 0xd, 0x8c, 0xf7, 0x0, 0x0,
|
||||
0x0, 0xdf, 0xb6, 0xf5, 0x0, 0x0, 0xd, 0xc0,
|
||||
0x8, 0xf3, 0x0, 0x0, 0xd7, 0x0, 0xa, 0xe2,
|
||||
0x0, 0xd, 0x70, 0x0, 0xc, 0xd0, 0x0, 0xd7,
|
||||
0x0, 0x0, 0x1e, 0xb0, 0xd, 0x70, 0x0, 0x0,
|
||||
0x3f, 0x90,
|
||||
|
||||
/* U+004C "L" */
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd, 0x70, 0x0, 0x0,
|
||||
0x0, 0xd7, 0x0, 0x0, 0x0, 0xd, 0x70, 0x0,
|
||||
0x0, 0x0, 0xd7, 0x0, 0x0, 0x0, 0xd, 0x70,
|
||||
0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0, 0xd,
|
||||
0x70, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd, 0x70, 0x0, 0x0, 0x0, 0xd9, 0x33, 0x33,
|
||||
0x33, 0xd, 0xff, 0xff, 0xff, 0xf0,
|
||||
|
||||
/* U+004D "M" */
|
||||
0xdf, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xdf, 0x60,
|
||||
0x0, 0x0, 0x4, 0xff, 0xde, 0xd0, 0x0, 0x0,
|
||||
0xb, 0xef, 0xd8, 0xf3, 0x0, 0x0, 0x2f, 0x8f,
|
||||
0xd7, 0xaa, 0x0, 0x0, 0x8b, 0x5f, 0xd7, 0x3f,
|
||||
0x10, 0x0, 0xe5, 0x5f, 0xd7, 0xd, 0x70, 0x5,
|
||||
0xe0, 0x5f, 0xd7, 0x6, 0xe0, 0xc, 0x80, 0x5f,
|
||||
0xd7, 0x0, 0xf5, 0x3f, 0x10, 0x5f, 0xd7, 0x0,
|
||||
0x9b, 0x9a, 0x0, 0x5f, 0xd7, 0x0, 0x2f, 0xf4,
|
||||
0x0, 0x5f, 0xd7, 0x0, 0xb, 0xd0, 0x0, 0x5f,
|
||||
|
||||
/* U+004E "N" */
|
||||
0xdd, 0x0, 0x0, 0x0, 0xf5, 0xdf, 0x80, 0x0,
|
||||
0x0, 0xf5, 0xdb, 0xf3, 0x0, 0x0, 0xf5, 0xd7,
|
||||
0x9d, 0x0, 0x0, 0xf5, 0xd7, 0xe, 0x80, 0x0,
|
||||
0xf5, 0xd7, 0x4, 0xf2, 0x0, 0xf5, 0xd7, 0x0,
|
||||
0x9c, 0x0, 0xf5, 0xd7, 0x0, 0xe, 0x70, 0xf5,
|
||||
0xd7, 0x0, 0x4, 0xf2, 0xf5, 0xd7, 0x0, 0x0,
|
||||
0xac, 0xf5, 0xd7, 0x0, 0x0, 0x1e, 0xf5, 0xd7,
|
||||
0x0, 0x0, 0x5, 0xf5,
|
||||
|
||||
/* U+004F "O" */
|
||||
0x0, 0x4, 0xae, 0xeb, 0x70, 0x0, 0x0, 0x8f,
|
||||
0x95, 0x47, 0xec, 0x10, 0x5, 0xf4, 0x0, 0x0,
|
||||
0x1d, 0x90, 0xd, 0x90, 0x0, 0x0, 0x4, 0xf2,
|
||||
0x1f, 0x30, 0x0, 0x0, 0x0, 0xe5, 0x4f, 0x0,
|
||||
0x0, 0x0, 0x0, 0xc8, 0x4f, 0x0, 0x0, 0x0,
|
||||
0x0, 0xc8, 0x1f, 0x30, 0x0, 0x0, 0x0, 0xe5,
|
||||
0xe, 0x80, 0x0, 0x0, 0x4, 0xf2, 0x5, 0xf3,
|
||||
0x0, 0x0, 0x1d, 0x90, 0x0, 0x9f, 0x95, 0x47,
|
||||
0xec, 0x10, 0x0, 0x4, 0xbe, 0xeb, 0x70, 0x0,
|
||||
|
||||
/* U+0050 "P" */
|
||||
0xdf, 0xff, 0xfe, 0xb3, 0xd, 0x93, 0x33, 0x4a,
|
||||
0xf3, 0xd7, 0x0, 0x0, 0xc, 0x9d, 0x70, 0x0,
|
||||
0x0, 0x9b, 0xd7, 0x0, 0x0, 0xb, 0x9d, 0x70,
|
||||
0x0, 0x17, 0xf4, 0xdf, 0xff, 0xff, 0xe6, 0xd,
|
||||
0x92, 0x22, 0x10, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd, 0x70, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xd, 0x70, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0051 "Q" */
|
||||
0x0, 0x4, 0xae, 0xeb, 0x70, 0x0, 0x0, 0x8f,
|
||||
0x95, 0x47, 0xec, 0x10, 0x5, 0xf4, 0x0, 0x0,
|
||||
0x1d, 0x90, 0xd, 0x90, 0x0, 0x0, 0x4, 0xf2,
|
||||
0x1f, 0x30, 0x0, 0x0, 0x0, 0xe5, 0x4f, 0x0,
|
||||
0x0, 0x0, 0x0, 0xc8, 0x4f, 0x0, 0x0, 0x0,
|
||||
0x0, 0xc8, 0x1f, 0x30, 0x0, 0x29, 0x0, 0xe5,
|
||||
0xe, 0x80, 0x0, 0xc, 0x94, 0xf2, 0x5, 0xf3,
|
||||
0x0, 0x1, 0xee, 0x90, 0x0, 0x9f, 0x95, 0x47,
|
||||
0xef, 0x40, 0x0, 0x4, 0xbe, 0xfc, 0x67, 0xe0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
|
||||
|
||||
/* U+0052 "R" */
|
||||
0xdf, 0xff, 0xff, 0xc4, 0x0, 0xd9, 0x33, 0x34,
|
||||
0x9f, 0x30, 0xd7, 0x0, 0x0, 0xc, 0x90, 0xd7,
|
||||
0x0, 0x0, 0x9, 0xc0, 0xd7, 0x0, 0x0, 0xb,
|
||||
0xa0, 0xd7, 0x0, 0x1, 0x7f, 0x20, 0xdf, 0xff,
|
||||
0xff, 0xf3, 0x0, 0xd9, 0x22, 0x34, 0xaf, 0x10,
|
||||
0xd7, 0x0, 0x0, 0xd, 0x70, 0xd7, 0x0, 0x0,
|
||||
0xa, 0x90, 0xd7, 0x0, 0x0, 0x8, 0xc0, 0xd7,
|
||||
0x0, 0x0, 0x4, 0xf2,
|
||||
|
||||
/* U+0053 "S" */
|
||||
0x0, 0x6c, 0xfe, 0xc6, 0x0, 0x9, 0xe7, 0x44,
|
||||
0x8f, 0x80, 0xf, 0x40, 0x0, 0x6, 0xf0, 0x1f,
|
||||
0x40, 0x0, 0x0, 0xa2, 0xa, 0xe5, 0x0, 0x0,
|
||||
0x0, 0x0, 0x7d, 0xfa, 0x50, 0x0, 0x0, 0x0,
|
||||
0x27, 0xde, 0x50, 0x0, 0x0, 0x0, 0x6, 0xf3,
|
||||
0x5f, 0x0, 0x0, 0x0, 0xc8, 0x1f, 0x50, 0x0,
|
||||
0x0, 0xe6, 0x7, 0xf8, 0x44, 0x6d, 0xe1, 0x0,
|
||||
0x5c, 0xef, 0xd9, 0x10,
|
||||
|
||||
/* U+0054 "T" */
|
||||
0xbf, 0xff, 0xff, 0xff, 0xf9, 0x23, 0x33, 0xca,
|
||||
0x33, 0x32, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0,
|
||||
0x0, 0xb9, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x0,
|
||||
0x0, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0x0,
|
||||
0xb9, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x0, 0x0,
|
||||
0x0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0x0, 0xb9,
|
||||
0x0, 0x0, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0,
|
||||
0x0, 0xb9, 0x0, 0x0,
|
||||
|
||||
/* U+0055 "U" */
|
||||
0xd7, 0x0, 0x0, 0x0, 0xf4, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xf4, 0xd7, 0x0, 0x0, 0x0, 0xf4, 0xd7,
|
||||
0x0, 0x0, 0x0, 0xf4, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xf4, 0xd7, 0x0, 0x0, 0x0, 0xf4, 0xd7, 0x0,
|
||||
0x0, 0x0, 0xf4, 0xc8, 0x0, 0x0, 0x1, 0xf3,
|
||||
0xaa, 0x0, 0x0, 0x3, 0xf1, 0x6f, 0x10, 0x0,
|
||||
0x9, 0xd0, 0xd, 0xe6, 0x45, 0xaf, 0x40, 0x0,
|
||||
0x8d, 0xfe, 0xb3, 0x0,
|
||||
|
||||
/* U+0056 "V" */
|
||||
0xba, 0x0, 0x0, 0x0, 0x7e, 0x6, 0xf0, 0x0,
|
||||
0x0, 0xc, 0x90, 0x1f, 0x50, 0x0, 0x2, 0xf4,
|
||||
0x0, 0xbb, 0x0, 0x0, 0x7e, 0x0, 0x5, 0xf1,
|
||||
0x0, 0xd, 0x80, 0x0, 0xf, 0x60, 0x2, 0xf3,
|
||||
0x0, 0x0, 0xab, 0x0, 0x8d, 0x0, 0x0, 0x4,
|
||||
0xf1, 0xd, 0x80, 0x0, 0x0, 0xe, 0x62, 0xf2,
|
||||
0x0, 0x0, 0x0, 0x9c, 0x8c, 0x0, 0x0, 0x0,
|
||||
0x3, 0xfe, 0x70, 0x0, 0x0, 0x0, 0xd, 0xf1,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0057 "W" */
|
||||
0xca, 0x0, 0x0, 0x6f, 0x40, 0x0, 0xc, 0xa8,
|
||||
0xe0, 0x0, 0xa, 0xf8, 0x0, 0x0, 0xf6, 0x3f,
|
||||
0x20, 0x0, 0xeb, 0xc0, 0x0, 0x4f, 0x10, 0xf6,
|
||||
0x0, 0x2f, 0x3f, 0x10, 0x8, 0xd0, 0xb, 0xa0,
|
||||
0x6, 0xc0, 0xe4, 0x0, 0xc9, 0x0, 0x6e, 0x0,
|
||||
0xb8, 0x9, 0x90, 0xf, 0x40, 0x2, 0xf2, 0xf,
|
||||
0x30, 0x5d, 0x4, 0xf0, 0x0, 0xd, 0x63, 0xf0,
|
||||
0x1, 0xf1, 0x8b, 0x0, 0x0, 0x9a, 0x7b, 0x0,
|
||||
0xd, 0x5c, 0x70, 0x0, 0x5, 0xeb, 0x70, 0x0,
|
||||
0x9a, 0xf3, 0x0, 0x0, 0x1f, 0xf3, 0x0, 0x5,
|
||||
0xfe, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x1f,
|
||||
0xa0, 0x0,
|
||||
|
||||
/* U+0058 "X" */
|
||||
0x4f, 0x50, 0x0, 0x2, 0xf7, 0x0, 0x9e, 0x10,
|
||||
0x0, 0xcc, 0x0, 0x0, 0xda, 0x0, 0x7f, 0x20,
|
||||
0x0, 0x4, 0xf5, 0x2f, 0x60, 0x0, 0x0, 0x9,
|
||||
0xec, 0xb0, 0x0, 0x0, 0x0, 0xe, 0xf1, 0x0,
|
||||
0x0, 0x0, 0x3, 0xff, 0x50, 0x0, 0x0, 0x0,
|
||||
0xda, 0x7f, 0x10, 0x0, 0x0, 0x9e, 0x10, 0xcb,
|
||||
0x0, 0x0, 0x3f, 0x50, 0x2, 0xf6, 0x0, 0xd,
|
||||
0xb0, 0x0, 0x7, 0xf2, 0x9, 0xe1, 0x0, 0x0,
|
||||
0xc, 0xc0,
|
||||
|
||||
/* U+0059 "Y" */
|
||||
0x9e, 0x0, 0x0, 0x0, 0x6f, 0x31, 0xe9, 0x0,
|
||||
0x0, 0x1e, 0x80, 0x5, 0xf3, 0x0, 0xa, 0xd0,
|
||||
0x0, 0xa, 0xd0, 0x4, 0xf4, 0x0, 0x0, 0x1f,
|
||||
0x70, 0xda, 0x0, 0x0, 0x0, 0x6f, 0x9e, 0x10,
|
||||
0x0, 0x0, 0x0, 0xcf, 0x50, 0x0, 0x0, 0x0,
|
||||
0x5, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x0,
|
||||
0x0, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5f, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+005A "Z" */
|
||||
0x1f, 0xff, 0xff, 0xff, 0xf3, 0x3, 0x33, 0x33,
|
||||
0x3d, 0xe0, 0x0, 0x0, 0x0, 0x7f, 0x30, 0x0,
|
||||
0x0, 0x3, 0xf7, 0x0, 0x0, 0x0, 0xd, 0xb0,
|
||||
0x0, 0x0, 0x0, 0xae, 0x10, 0x0, 0x0, 0x6,
|
||||
0xf4, 0x0, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x0,
|
||||
0x0, 0xdc, 0x0, 0x0, 0x0, 0x9, 0xe1, 0x0,
|
||||
0x0, 0x0, 0x5f, 0x83, 0x33, 0x33, 0x31, 0x9f,
|
||||
0xff, 0xff, 0xff, 0xf9,
|
||||
|
||||
/* U+005B "[" */
|
||||
0x4f, 0xff, 0x94, 0xe2, 0x21, 0x4e, 0x0, 0x4,
|
||||
0xe0, 0x0, 0x4e, 0x0, 0x4, 0xe0, 0x0, 0x4e,
|
||||
0x0, 0x4, 0xe0, 0x0, 0x4e, 0x0, 0x4, 0xe0,
|
||||
0x0, 0x4e, 0x0, 0x4, 0xe0, 0x0, 0x4e, 0x0,
|
||||
0x4, 0xe0, 0x0, 0x4e, 0x0, 0x4, 0xff, 0xf9,
|
||||
0x2, 0x22, 0x10,
|
||||
|
||||
/* U+005C "\\" */
|
||||
0x26, 0x0, 0x0, 0x0, 0x1f, 0x10, 0x0, 0x0,
|
||||
0xa, 0x70, 0x0, 0x0, 0x5, 0xd0, 0x0, 0x0,
|
||||
0x0, 0xe3, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0,
|
||||
0x0, 0x3e, 0x0, 0x0, 0x0, 0xd, 0x40, 0x0,
|
||||
0x0, 0x7, 0xa0, 0x0, 0x0, 0x2, 0xf0, 0x0,
|
||||
0x0, 0x0, 0xc6, 0x0, 0x0, 0x0, 0x6c, 0x0,
|
||||
0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xa, 0x70,
|
||||
0x0, 0x0, 0x4, 0xd0, 0x0, 0x0, 0x0, 0xe3,
|
||||
|
||||
/* U+005D "]" */
|
||||
0x4f, 0xff, 0x90, 0x22, 0xa9, 0x0, 0x8, 0x90,
|
||||
0x0, 0x89, 0x0, 0x8, 0x90, 0x0, 0x89, 0x0,
|
||||
0x8, 0x90, 0x0, 0x89, 0x0, 0x8, 0x90, 0x0,
|
||||
0x89, 0x0, 0x8, 0x90, 0x0, 0x89, 0x0, 0x8,
|
||||
0x90, 0x0, 0x89, 0x0, 0x8, 0x94, 0xff, 0xf9,
|
||||
0x2, 0x22, 0x10,
|
||||
|
||||
/* U+005E "^" */
|
||||
0x0, 0xa, 0xe0, 0x0, 0x0, 0x1f, 0xc6, 0x0,
|
||||
0x0, 0x89, 0x4d, 0x0, 0x0, 0xe2, 0xd, 0x40,
|
||||
0x6, 0xb0, 0x6, 0xa0, 0xd, 0x30, 0x0, 0xe1,
|
||||
|
||||
/* U+005F "_" */
|
||||
0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22,
|
||||
|
||||
/* U+0060 "`" */
|
||||
0x56, 0x0, 0x1e, 0x30, 0x2, 0xc0,
|
||||
|
||||
/* U+0061 "a" */
|
||||
0x0, 0x9e, 0xfd, 0x70, 0xb, 0xd5, 0x24, 0xd7,
|
||||
0x4, 0x10, 0x0, 0x6d, 0x0, 0x7c, 0xee, 0xef,
|
||||
0xb, 0xd4, 0x21, 0x6f, 0x2f, 0x20, 0x0, 0x7f,
|
||||
0x4f, 0x0, 0x0, 0xdf, 0x1f, 0x92, 0x3c, 0xaf,
|
||||
0x4, 0xdf, 0xd5, 0x3f,
|
||||
|
||||
/* U+0062 "b" */
|
||||
0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
|
||||
0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x7d,
|
||||
0xe9, 0x0, 0xf, 0xb9, 0x34, 0xdc, 0x0, 0xfb,
|
||||
0x0, 0x1, 0xf5, 0xf, 0x50, 0x0, 0xb, 0x90,
|
||||
0xf3, 0x0, 0x0, 0xaa, 0xf, 0x50, 0x0, 0xb,
|
||||
0x90, 0xfa, 0x0, 0x1, 0xf5, 0xf, 0xc8, 0x24,
|
||||
0xcc, 0x0, 0xf3, 0x9e, 0xe9, 0x0,
|
||||
|
||||
/* U+0063 "c" */
|
||||
0x0, 0x5c, 0xfd, 0x80, 0x0, 0x6f, 0x73, 0x6e,
|
||||
0x90, 0xe, 0x70, 0x0, 0x6f, 0x3, 0xf1, 0x0,
|
||||
0x0, 0x10, 0x4f, 0x0, 0x0, 0x0, 0x3, 0xf1,
|
||||
0x0, 0x0, 0x50, 0xe, 0x60, 0x0, 0x4f, 0x0,
|
||||
0x7f, 0x62, 0x5e, 0x80, 0x0, 0x6c, 0xfd, 0x70,
|
||||
0x0,
|
||||
|
||||
/* U+0064 "d" */
|
||||
0x0, 0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0x0,
|
||||
0xe6, 0x0, 0x0, 0x0, 0xe, 0x60, 0x6, 0xce,
|
||||
0xa1, 0xe6, 0x6, 0xf6, 0x25, 0xbe, 0x60, 0xe6,
|
||||
0x0, 0x5, 0xf6, 0x3f, 0x10, 0x0, 0xf, 0x64,
|
||||
0xf0, 0x0, 0x0, 0xe6, 0x3f, 0x10, 0x0, 0xf,
|
||||
0x60, 0xe6, 0x0, 0x4, 0xf6, 0x6, 0xf6, 0x25,
|
||||
0xde, 0x60, 0x6, 0xcf, 0xb3, 0xc6,
|
||||
|
||||
/* U+0065 "e" */
|
||||
0x0, 0x6c, 0xfc, 0x50, 0x0, 0x7e, 0x63, 0x6e,
|
||||
0x50, 0x1f, 0x50, 0x0, 0x6d, 0x5, 0xf0, 0x0,
|
||||
0x1, 0xf2, 0x7f, 0xee, 0xee, 0xef, 0x45, 0xe1,
|
||||
0x11, 0x11, 0x10, 0x2f, 0x30, 0x0, 0x4c, 0x0,
|
||||
0x8e, 0x52, 0x6e, 0x80, 0x0, 0x7d, 0xfd, 0x60,
|
||||
0x0,
|
||||
|
||||
/* U+0066 "f" */
|
||||
0x0, 0x3d, 0xfe, 0x0, 0xbb, 0x32, 0x0, 0xd7,
|
||||
0x0, 0xef, 0xff, 0xfc, 0x22, 0xd8, 0x21, 0x0,
|
||||
0xd6, 0x0, 0x0, 0xd6, 0x0, 0x0, 0xd6, 0x0,
|
||||
0x0, 0xd6, 0x0, 0x0, 0xd6, 0x0, 0x0, 0xd6,
|
||||
0x0, 0x0, 0xd6, 0x0,
|
||||
|
||||
/* U+0067 "g" */
|
||||
0x0, 0x5c, 0xeb, 0x2c, 0x70, 0x6f, 0x72, 0x5c,
|
||||
0xe7, 0xe, 0x70, 0x0, 0x4f, 0x73, 0xf1, 0x0,
|
||||
0x0, 0xe7, 0x4f, 0x0, 0x0, 0xd, 0x73, 0xf1,
|
||||
0x0, 0x0, 0xe7, 0xe, 0x60, 0x0, 0x4f, 0x70,
|
||||
0x6f, 0x63, 0x5c, 0xd7, 0x0, 0x6c, 0xeb, 0x2d,
|
||||
0x60, 0x42, 0x0, 0x0, 0xf3, 0xa, 0xe4, 0x23,
|
||||
0xbc, 0x0, 0x8, 0xef, 0xe9, 0x10,
|
||||
|
||||
/* U+0068 "h" */
|
||||
0xf, 0x40, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
|
||||
0xf, 0x40, 0x0, 0x0, 0xf, 0x48, 0xee, 0x80,
|
||||
0xf, 0xc7, 0x36, 0xf7, 0xf, 0x90, 0x0, 0x9c,
|
||||
0xf, 0x50, 0x0, 0x6e, 0xf, 0x40, 0x0, 0x5e,
|
||||
0xf, 0x40, 0x0, 0x5e, 0xf, 0x40, 0x0, 0x5e,
|
||||
0xf, 0x40, 0x0, 0x5e, 0xf, 0x40, 0x0, 0x5e,
|
||||
|
||||
/* U+0069 "i" */
|
||||
0xab, 0xa, 0xc0, 0x0, 0x9, 0xa0, 0x9a, 0x9,
|
||||
0xa0, 0x9a, 0x9, 0xa0, 0x9a, 0x9, 0xa0, 0x9a,
|
||||
0x9, 0xa0,
|
||||
|
||||
/* U+006A "j" */
|
||||
0x0, 0x7d, 0x0, 0x8, 0xd0, 0x0, 0x0, 0x0,
|
||||
0x6, 0xd0, 0x0, 0x6d, 0x0, 0x6, 0xd0, 0x0,
|
||||
0x6d, 0x0, 0x6, 0xd0, 0x0, 0x6d, 0x0, 0x6,
|
||||
0xd0, 0x0, 0x6d, 0x0, 0x6, 0xd0, 0x0, 0x7d,
|
||||
0x0, 0x3c, 0xb0, 0x3f, 0xd2, 0x0,
|
||||
|
||||
/* U+006B "k" */
|
||||
0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
|
||||
0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x0,
|
||||
0x2e, 0x90, 0xf, 0x40, 0x2e, 0x90, 0x0, 0xf4,
|
||||
0x2e, 0x90, 0x0, 0xf, 0x6e, 0xb0, 0x0, 0x0,
|
||||
0xff, 0xcf, 0x20, 0x0, 0xf, 0x90, 0xbd, 0x0,
|
||||
0x0, 0xf4, 0x1, 0xe9, 0x0, 0xf, 0x40, 0x4,
|
||||
0xf5, 0x0, 0xf4, 0x0, 0x8, 0xf2,
|
||||
|
||||
/* U+006C "l" */
|
||||
0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
||||
0xb8, 0xb8, 0xb8, 0xb8,
|
||||
|
||||
/* U+006D "m" */
|
||||
0xf, 0x5a, 0xec, 0x40, 0x9e, 0xd6, 0x0, 0xfe,
|
||||
0x63, 0x9e, 0xa7, 0x37, 0xf4, 0xf, 0x80, 0x0,
|
||||
0xeb, 0x0, 0xb, 0x90, 0xf4, 0x0, 0xc, 0x80,
|
||||
0x0, 0x9a, 0xf, 0x40, 0x0, 0xc7, 0x0, 0x9,
|
||||
0xa0, 0xf4, 0x0, 0xc, 0x70, 0x0, 0x9a, 0xf,
|
||||
0x40, 0x0, 0xc7, 0x0, 0x9, 0xa0, 0xf4, 0x0,
|
||||
0xc, 0x70, 0x0, 0x9a, 0xf, 0x40, 0x0, 0xc7,
|
||||
0x0, 0x9, 0xa0,
|
||||
|
||||
/* U+006E "n" */
|
||||
0xf, 0x49, 0xee, 0x80, 0xf, 0xd7, 0x36, 0xf7,
|
||||
0xf, 0x90, 0x0, 0x8c, 0xf, 0x50, 0x0, 0x5e,
|
||||
0xf, 0x40, 0x0, 0x5f, 0xf, 0x40, 0x0, 0x5f,
|
||||
0xf, 0x40, 0x0, 0x5f, 0xf, 0x40, 0x0, 0x5f,
|
||||
0xf, 0x40, 0x0, 0x5f,
|
||||
|
||||
/* U+006F "o" */
|
||||
0x0, 0x4c, 0xfd, 0x80, 0x0, 0x5f, 0x73, 0x5d,
|
||||
0xb0, 0xe, 0x70, 0x0, 0x2f, 0x42, 0xf1, 0x0,
|
||||
0x0, 0xb8, 0x4f, 0x0, 0x0, 0xa, 0xa2, 0xf1,
|
||||
0x0, 0x0, 0xb8, 0xe, 0x70, 0x0, 0x2f, 0x40,
|
||||
0x5f, 0x72, 0x4d, 0xb0, 0x0, 0x4c, 0xfd, 0x80,
|
||||
0x0,
|
||||
|
||||
/* U+0070 "p" */
|
||||
0xf, 0x39, 0xee, 0x90, 0x0, 0xfc, 0x93, 0x4d,
|
||||
0xc0, 0xf, 0xa0, 0x0, 0x1f, 0x50, 0xf5, 0x0,
|
||||
0x0, 0xb9, 0xf, 0x30, 0x0, 0xa, 0xa0, 0xf5,
|
||||
0x0, 0x0, 0xb9, 0xf, 0xa0, 0x0, 0x1f, 0x50,
|
||||
0xfb, 0x82, 0x4c, 0xc0, 0xf, 0x47, 0xde, 0xa0,
|
||||
0x0, 0xf4, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
|
||||
0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0071 "q" */
|
||||
0x0, 0x6c, 0xfb, 0x2c, 0x60, 0x6f, 0x62, 0x5d,
|
||||
0xe6, 0xe, 0x60, 0x0, 0x4f, 0x63, 0xf1, 0x0,
|
||||
0x0, 0xf6, 0x4f, 0x0, 0x0, 0xe, 0x63, 0xf1,
|
||||
0x0, 0x0, 0xf6, 0xe, 0x60, 0x0, 0x4f, 0x60,
|
||||
0x7f, 0x62, 0x5b, 0xe6, 0x0, 0x6d, 0xea, 0x1e,
|
||||
0x60, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0,
|
||||
0xe, 0x60, 0x0, 0x0, 0x0, 0xe6,
|
||||
|
||||
/* U+0072 "r" */
|
||||
0xf, 0x4a, 0xfc, 0xf, 0xcc, 0x66, 0xf, 0xc0,
|
||||
0x0, 0xf, 0x60, 0x0, 0xf, 0x40, 0x0, 0xf,
|
||||
0x30, 0x0, 0xf, 0x30, 0x0, 0xf, 0x30, 0x0,
|
||||
0xf, 0x30, 0x0,
|
||||
|
||||
/* U+0073 "s" */
|
||||
0x3, 0xbf, 0xeb, 0x20, 0x1f, 0x93, 0x4b, 0xe0,
|
||||
0x3f, 0x10, 0x1, 0xa2, 0xc, 0xd7, 0x20, 0x0,
|
||||
0x0, 0x6b, 0xfd, 0x50, 0x0, 0x0, 0x6, 0xf4,
|
||||
0x5d, 0x0, 0x0, 0xd8, 0x1e, 0x92, 0x27, 0xf4,
|
||||
0x3, 0xbe, 0xfd, 0x60,
|
||||
|
||||
/* U+0074 "t" */
|
||||
0x0, 0x82, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xf3,
|
||||
0x0, 0xbf, 0xff, 0xf3, 0x13, 0xf5, 0x20, 0x0,
|
||||
0xf3, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xf3, 0x0,
|
||||
0x0, 0xf3, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xe7,
|
||||
0x20, 0x0, 0x7f, 0xf0,
|
||||
|
||||
/* U+0075 "u" */
|
||||
0xf, 0x40, 0x0, 0x4f, 0xf, 0x40, 0x0, 0x4f,
|
||||
0xf, 0x40, 0x0, 0x4f, 0xf, 0x40, 0x0, 0x4f,
|
||||
0xf, 0x40, 0x0, 0x4f, 0xf, 0x40, 0x0, 0x5f,
|
||||
0xe, 0x70, 0x0, 0xbf, 0x9, 0xe5, 0x39, 0xdf,
|
||||
0x0, 0x9e, 0xd8, 0x5f,
|
||||
|
||||
/* U+0076 "v" */
|
||||
0xba, 0x0, 0x0, 0xe7, 0x6f, 0x0, 0x4, 0xf1,
|
||||
0x1f, 0x40, 0x9, 0xc0, 0xb, 0xa0, 0xe, 0x60,
|
||||
0x5, 0xe0, 0x3f, 0x10, 0x0, 0xf4, 0x9b, 0x0,
|
||||
0x0, 0xa9, 0xe5, 0x0, 0x0, 0x5f, 0xf0, 0x0,
|
||||
0x0, 0xf, 0xa0, 0x0,
|
||||
|
||||
/* U+0077 "w" */
|
||||
0xc9, 0x0, 0xb, 0xc0, 0x0, 0x8d, 0x7e, 0x0,
|
||||
0xf, 0xf0, 0x0, 0xd8, 0x2f, 0x20, 0x3d, 0xc4,
|
||||
0x1, 0xf3, 0xd, 0x70, 0x79, 0x78, 0x6, 0xe0,
|
||||
0x8, 0xb0, 0xb4, 0x3d, 0xa, 0x90, 0x3, 0xf1,
|
||||
0xf0, 0xf, 0x1e, 0x40, 0x0, 0xe9, 0xc0, 0xb,
|
||||
0x9f, 0x0, 0x0, 0x9f, 0x70, 0x6, 0xfa, 0x0,
|
||||
0x0, 0x4f, 0x30, 0x2, 0xf5, 0x0,
|
||||
|
||||
/* U+0078 "x" */
|
||||
0x3f, 0x40, 0x2, 0xf5, 0x0, 0x8e, 0x0, 0xca,
|
||||
0x0, 0x0, 0xd9, 0x7e, 0x10, 0x0, 0x2, 0xff,
|
||||
0x40, 0x0, 0x0, 0xd, 0xe1, 0x0, 0x0, 0x8,
|
||||
0xdc, 0xa0, 0x0, 0x3, 0xf4, 0x2f, 0x50, 0x0,
|
||||
0xd9, 0x0, 0x7e, 0x10, 0x9e, 0x0, 0x0, 0xcb,
|
||||
0x0,
|
||||
|
||||
/* U+0079 "y" */
|
||||
0xba, 0x0, 0x0, 0xba, 0x5f, 0x0, 0x1, 0xf4,
|
||||
0xe, 0x60, 0x7, 0xe0, 0x9, 0xc0, 0xc, 0x80,
|
||||
0x2, 0xf2, 0x2f, 0x20, 0x0, 0xc8, 0x8c, 0x0,
|
||||
0x0, 0x6d, 0xd6, 0x0, 0x0, 0xf, 0xf0, 0x0,
|
||||
0x0, 0xb, 0xa0, 0x0, 0x0, 0x1f, 0x40, 0x0,
|
||||
0x0, 0x7e, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0,
|
||||
|
||||
/* U+007A "z" */
|
||||
0x6f, 0xff, 0xff, 0xf2, 0x2, 0x22, 0x2d, 0xb0,
|
||||
0x0, 0x0, 0x8e, 0x10, 0x0, 0x4, 0xf4, 0x0,
|
||||
0x0, 0x1e, 0x80, 0x0, 0x0, 0xbc, 0x0, 0x0,
|
||||
0x7, 0xe2, 0x0, 0x0, 0x3f, 0x72, 0x22, 0x20,
|
||||
0x9f, 0xff, 0xff, 0xf6,
|
||||
|
||||
/* U+007B "{" */
|
||||
0x0, 0x4d, 0xe0, 0xe, 0x72, 0x1, 0xf1, 0x0,
|
||||
0x2f, 0x0, 0x2, 0xf0, 0x0, 0x2f, 0x0, 0x3,
|
||||
0xf0, 0x0, 0x8b, 0x0, 0xaf, 0x10, 0x2, 0xab,
|
||||
0x0, 0x3, 0xf0, 0x0, 0x2f, 0x0, 0x2, 0xf0,
|
||||
0x0, 0x2f, 0x0, 0x0, 0xf4, 0x0, 0x8, 0xfe,
|
||||
0x0, 0x0, 0x10,
|
||||
|
||||
/* U+007C "|" */
|
||||
0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
|
||||
0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
|
||||
0xf1,
|
||||
|
||||
/* U+007D "}" */
|
||||
0x9e, 0x80, 0x1, 0x4f, 0x40, 0x0, 0xb7, 0x0,
|
||||
0xb, 0x70, 0x0, 0xb7, 0x0, 0xb, 0x70, 0x0,
|
||||
0xa8, 0x0, 0x6, 0xc1, 0x0, 0xb, 0xf0, 0x5,
|
||||
0xd4, 0x0, 0xa8, 0x0, 0xb, 0x70, 0x0, 0xb7,
|
||||
0x0, 0xb, 0x70, 0x1, 0xe6, 0x9, 0xfc, 0x0,
|
||||
0x11, 0x0, 0x0,
|
||||
|
||||
/* U+007E "~" */
|
||||
0x1a, 0xea, 0x40, 0x54, 0x57, 0x16, 0xdf, 0xd2,
|
||||
0x0, 0x0, 0x1, 0x0,
|
||||
|
||||
/* U+007F "" */
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* 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 = 85, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 0, .adv_w = 85, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18, .adv_w = 109, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 31, .adv_w = 154, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 91, .adv_w = 154, .box_w = 9, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 163, .adv_w = 248, .box_w = 14, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 247, .adv_w = 186, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 319, .adv_w = 62, .box_w = 2, .box_h = 5, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 324, .adv_w = 85, .box_w = 5, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 364, .adv_w = 85, .box_w = 5, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 404, .adv_w = 130, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 436, .adv_w = 155, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 477, .adv_w = 68, .box_w = 3, .box_h = 6, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 486, .adv_w = 155, .box_w = 9, .box_h = 2, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 495, .adv_w = 68, .box_w = 3, .box_h = 3, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 500, .adv_w = 128, .box_w = 8, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 564, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 618, .adv_w = 103, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 648, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 702, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 756, .adv_w = 154, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 816, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 870, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 924, .adv_w = 140, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 978, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1032, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1086, .adv_w = 68, .box_w = 3, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1100, .adv_w = 68, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 1118, .adv_w = 155, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1159, .adv_w = 155, .box_w = 9, .box_h = 5, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 1182, .adv_w = 155, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1223, .adv_w = 137, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1271, .adv_w = 220, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1349, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1415, .adv_w = 173, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1475, .adv_w = 186, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1541, .adv_w = 181, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1601, .adv_w = 163, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1655, .adv_w = 148, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1703, .adv_w = 191, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1769, .adv_w = 184, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1829, .adv_w = 61, .box_w = 2, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1841, .adv_w = 132, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1889, .adv_w = 177, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1955, .adv_w = 151, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2009, .adv_w = 226, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2081, .adv_w = 184, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2141, .adv_w = 196, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2213, .adv_w = 164, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2267, .adv_w = 196, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 2345, .adv_w = 173, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2405, .adv_w = 162, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2465, .adv_w = 158, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2525, .adv_w = 183, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2585, .adv_w = 164, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2651, .adv_w = 238, .box_w = 15, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2741, .adv_w = 163, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2807, .adv_w = 169, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2873, .adv_w = 160, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2933, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 2976, .adv_w = 128, .box_w = 8, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3040, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3083, .adv_w = 133, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 6},
|
||||
{.bitmap_index = 3107, .adv_w = 128, .box_w = 8, .box_h = 2, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3115, .adv_w = 85, .box_w = 4, .box_h = 3, .ofs_x = 1, .ofs_y = 10},
|
||||
{.bitmap_index = 3121, .adv_w = 143, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3157, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3211, .adv_w = 140, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3252, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3306, .adv_w = 142, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3347, .adv_w = 95, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3383, .adv_w = 151, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3437, .adv_w = 142, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3485, .adv_w = 66, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 3503, .adv_w = 68, .box_w = 5, .box_h = 15, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 3541, .adv_w = 135, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3595, .adv_w = 60, .box_w = 2, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 3607, .adv_w = 219, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3666, .adv_w = 143, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3702, .adv_w = 150, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3743, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3797, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3851, .adv_w = 93, .box_w = 6, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3878, .adv_w = 129, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3914, .adv_w = 91, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3950, .adv_w = 143, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3986, .adv_w = 123, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4022, .adv_w = 193, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4076, .adv_w = 130, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4117, .adv_w = 127, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4165, .adv_w = 125, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4201, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4244, .adv_w = 50, .box_w = 2, .box_h = 17, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 4261, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4304, .adv_w = 128, .box_w = 8, .box_h = 3, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 4316, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 32, .range_length = 96, .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 ui_font_PingFangEN16 = {
|
||||
#else
|
||||
lv_font_t ui_font_PingFangEN16 = {
|
||||
#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 = 18, /*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 = -2,
|
||||
.underline_thickness = 1,
|
||||
#endif
|
||||
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if UI_FONT_PINGFANGEN16*/
|
||||
|
||||
@@ -0,0 +1,233 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.2.3
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: box_reset_mode
|
||||
|
||||
#include "ui.h"
|
||||
#include "ui_helpers.h"
|
||||
|
||||
///////////////////// VARIABLES ////////////////////
|
||||
void sleep_body_up_down_Animation( lv_obj_t *TargetObject, int delay);
|
||||
void listen_eye_blink_Animation( lv_obj_t *TargetObject, int delay);
|
||||
void listen_eye_screen_move_Animation( lv_obj_t *TargetObject, int delay);
|
||||
void get_eye_blink_Animation( lv_obj_t *TargetObject, int delay);
|
||||
lv_obj_t *ui_ScreenSetup;
|
||||
lv_obj_t *ui_ImageSetupTextBg;
|
||||
lv_obj_t *ui_PanelSetupSteps;
|
||||
lv_obj_t *ui_LabelSetupStepContent;
|
||||
lv_obj_t *ui_LabelSetupStepTile;
|
||||
void ui_event_ButtonSetup( lv_event_t * e);
|
||||
lv_obj_t *ui_ButtonSetup;
|
||||
lv_obj_t *ui_LabelSetupBtn;
|
||||
lv_obj_t *ui____initial_actions0;
|
||||
|
||||
///////////////////// TEST LVGL SETTINGS ////////////////////
|
||||
#if LV_COLOR_DEPTH != 16
|
||||
#error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings"
|
||||
#endif
|
||||
#if LV_COLOR_16_SWAP !=1
|
||||
#error "LV_COLOR_16_SWAP should be 1 to match SquareLine Studio's settings"
|
||||
#endif
|
||||
|
||||
///////////////////// ANIMATIONS ////////////////////
|
||||
void sleep_body_up_down_Animation( lv_obj_t *TargetObject, int delay)
|
||||
{
|
||||
ui_anim_user_data_t *PropertyAnimation_0_user_data = lv_mem_alloc(sizeof(ui_anim_user_data_t));
|
||||
PropertyAnimation_0_user_data->target = TargetObject;
|
||||
PropertyAnimation_0_user_data->val = -1;
|
||||
lv_anim_t PropertyAnimation_0;
|
||||
lv_anim_init(&PropertyAnimation_0);
|
||||
lv_anim_set_time(&PropertyAnimation_0, 1000);
|
||||
lv_anim_set_user_data(&PropertyAnimation_0, PropertyAnimation_0_user_data);
|
||||
lv_anim_set_custom_exec_cb(&PropertyAnimation_0, _ui_anim_callback_set_y );
|
||||
lv_anim_set_values(&PropertyAnimation_0, 0, -20 );
|
||||
lv_anim_set_path_cb( &PropertyAnimation_0, lv_anim_path_linear);
|
||||
lv_anim_set_delay( &PropertyAnimation_0, delay + 0 );
|
||||
lv_anim_set_deleted_cb( &PropertyAnimation_0, _ui_anim_callback_free_user_data );
|
||||
lv_anim_set_playback_time(&PropertyAnimation_0, 1000);
|
||||
lv_anim_set_playback_delay(&PropertyAnimation_0, 0);
|
||||
lv_anim_set_repeat_count(&PropertyAnimation_0, LV_ANIM_REPEAT_INFINITE );
|
||||
lv_anim_set_repeat_delay(&PropertyAnimation_0, 0);
|
||||
lv_anim_set_early_apply( &PropertyAnimation_0, false );
|
||||
lv_anim_set_get_value_cb(&PropertyAnimation_0, &_ui_anim_callback_get_y );
|
||||
lv_anim_start(&PropertyAnimation_0);
|
||||
|
||||
}
|
||||
void listen_eye_blink_Animation( lv_obj_t *TargetObject, int delay)
|
||||
{
|
||||
ui_anim_user_data_t *PropertyAnimation_0_user_data = lv_mem_alloc(sizeof(ui_anim_user_data_t));
|
||||
PropertyAnimation_0_user_data->target = TargetObject;
|
||||
PropertyAnimation_0_user_data->val = -1;
|
||||
lv_anim_t PropertyAnimation_0;
|
||||
lv_anim_init(&PropertyAnimation_0);
|
||||
lv_anim_set_time(&PropertyAnimation_0, 100);
|
||||
lv_anim_set_user_data(&PropertyAnimation_0, PropertyAnimation_0_user_data);
|
||||
lv_anim_set_custom_exec_cb(&PropertyAnimation_0, _ui_anim_callback_set_height );
|
||||
lv_anim_set_values(&PropertyAnimation_0, 0, -10 );
|
||||
lv_anim_set_path_cb( &PropertyAnimation_0, lv_anim_path_linear);
|
||||
lv_anim_set_delay( &PropertyAnimation_0, delay + 1800 );
|
||||
lv_anim_set_deleted_cb( &PropertyAnimation_0, _ui_anim_callback_free_user_data );
|
||||
lv_anim_set_playback_time(&PropertyAnimation_0, 100);
|
||||
lv_anim_set_playback_delay(&PropertyAnimation_0, 0);
|
||||
lv_anim_set_repeat_count(&PropertyAnimation_0, LV_ANIM_REPEAT_INFINITE );
|
||||
lv_anim_set_repeat_delay(&PropertyAnimation_0, 2100);
|
||||
lv_anim_set_early_apply( &PropertyAnimation_0, false );
|
||||
lv_anim_set_get_value_cb(&PropertyAnimation_0, &_ui_anim_callback_get_height );
|
||||
lv_anim_start(&PropertyAnimation_0);
|
||||
|
||||
}
|
||||
void listen_eye_screen_move_Animation( lv_obj_t *TargetObject, int delay)
|
||||
{
|
||||
ui_anim_user_data_t *PropertyAnimation_0_user_data = lv_mem_alloc(sizeof(ui_anim_user_data_t));
|
||||
PropertyAnimation_0_user_data->target = TargetObject;
|
||||
PropertyAnimation_0_user_data->val = -1;
|
||||
lv_anim_t PropertyAnimation_0;
|
||||
lv_anim_init(&PropertyAnimation_0);
|
||||
lv_anim_set_time(&PropertyAnimation_0, 300);
|
||||
lv_anim_set_user_data(&PropertyAnimation_0, PropertyAnimation_0_user_data);
|
||||
lv_anim_set_custom_exec_cb(&PropertyAnimation_0, _ui_anim_callback_set_x );
|
||||
lv_anim_set_values(&PropertyAnimation_0, 0, -20 );
|
||||
lv_anim_set_path_cb( &PropertyAnimation_0, lv_anim_path_linear);
|
||||
lv_anim_set_delay( &PropertyAnimation_0, delay + 0 );
|
||||
lv_anim_set_deleted_cb( &PropertyAnimation_0, _ui_anim_callback_free_user_data );
|
||||
lv_anim_set_playback_time(&PropertyAnimation_0, 300);
|
||||
lv_anim_set_playback_delay(&PropertyAnimation_0, 2000);
|
||||
lv_anim_set_repeat_count(&PropertyAnimation_0, LV_ANIM_REPEAT_INFINITE );
|
||||
lv_anim_set_repeat_delay(&PropertyAnimation_0, 2000);
|
||||
lv_anim_set_early_apply( &PropertyAnimation_0, false );
|
||||
lv_anim_set_get_value_cb(&PropertyAnimation_0, &_ui_anim_callback_get_x );
|
||||
lv_anim_start(&PropertyAnimation_0);
|
||||
|
||||
}
|
||||
void get_eye_blink_Animation( lv_obj_t *TargetObject, int delay)
|
||||
{
|
||||
ui_anim_user_data_t *PropertyAnimation_0_user_data = lv_mem_alloc(sizeof(ui_anim_user_data_t));
|
||||
PropertyAnimation_0_user_data->target = TargetObject;
|
||||
PropertyAnimation_0_user_data->val = -1;
|
||||
lv_anim_t PropertyAnimation_0;
|
||||
lv_anim_init(&PropertyAnimation_0);
|
||||
lv_anim_set_time(&PropertyAnimation_0, 100);
|
||||
lv_anim_set_user_data(&PropertyAnimation_0, PropertyAnimation_0_user_data);
|
||||
lv_anim_set_custom_exec_cb(&PropertyAnimation_0, _ui_anim_callback_set_height );
|
||||
lv_anim_set_values(&PropertyAnimation_0, 0, -10 );
|
||||
lv_anim_set_path_cb( &PropertyAnimation_0, lv_anim_path_linear);
|
||||
lv_anim_set_delay( &PropertyAnimation_0, delay + 0 );
|
||||
lv_anim_set_deleted_cb( &PropertyAnimation_0, _ui_anim_callback_free_user_data );
|
||||
lv_anim_set_playback_time(&PropertyAnimation_0, 100);
|
||||
lv_anim_set_playback_delay(&PropertyAnimation_0, 0);
|
||||
lv_anim_set_repeat_count(&PropertyAnimation_0, LV_ANIM_REPEAT_INFINITE );
|
||||
lv_anim_set_repeat_delay(&PropertyAnimation_0, 1000);
|
||||
lv_anim_set_early_apply( &PropertyAnimation_0, false );
|
||||
lv_anim_set_get_value_cb(&PropertyAnimation_0, &_ui_anim_callback_get_height );
|
||||
lv_anim_start(&PropertyAnimation_0);
|
||||
|
||||
}
|
||||
|
||||
///////////////////// FUNCTIONS ////////////////////
|
||||
void ui_event_ButtonSetup( lv_event_t * e) {
|
||||
lv_event_code_t event_code = lv_event_get_code(e);lv_obj_t * target = lv_event_get_target(e);
|
||||
if ( event_code == LV_EVENT_CLICKED) {
|
||||
EventBtnSetupClick( e );
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////// SCREENS ////////////////////
|
||||
void ui_ScreenSetup_screen_init(void)
|
||||
{
|
||||
ui_ScreenSetup = lv_obj_create(NULL);
|
||||
lv_obj_clear_flag( ui_ScreenSetup, LV_OBJ_FLAG_SCROLLABLE ); /// Flags
|
||||
lv_obj_set_style_bg_img_src( ui_ScreenSetup, &ui_img_setup_bg_png, LV_PART_MAIN | LV_STATE_DEFAULT );
|
||||
|
||||
ui_ImageSetupTextBg = lv_img_create(ui_ScreenSetup);
|
||||
lv_img_set_src(ui_ImageSetupTextBg, &ui_img_setup_text_bg_png);
|
||||
lv_obj_set_width( ui_ImageSetupTextBg, 320);
|
||||
lv_obj_set_height( ui_ImageSetupTextBg, 240);
|
||||
lv_obj_set_align( ui_ImageSetupTextBg, LV_ALIGN_CENTER );
|
||||
lv_obj_add_flag( ui_ImageSetupTextBg, LV_OBJ_FLAG_ADV_HITTEST ); /// Flags
|
||||
lv_obj_clear_flag( ui_ImageSetupTextBg, LV_OBJ_FLAG_SCROLLABLE ); /// Flags
|
||||
lv_img_set_zoom(ui_ImageSetupTextBg,560);
|
||||
|
||||
ui_PanelSetupSteps = lv_obj_create(ui_ScreenSetup);
|
||||
lv_obj_set_width( ui_PanelSetupSteps, 320);
|
||||
lv_obj_set_height( ui_PanelSetupSteps, 240);
|
||||
lv_obj_set_x( ui_PanelSetupSteps, -1 );
|
||||
lv_obj_set_y( ui_PanelSetupSteps, -2 );
|
||||
lv_obj_clear_flag( ui_PanelSetupSteps, LV_OBJ_FLAG_SCROLLABLE ); /// Flags
|
||||
lv_obj_set_style_radius(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_color(ui_PanelSetupSteps, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT );
|
||||
lv_obj_set_style_bg_opa(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_border_width(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_left(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_right(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_top(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_bottom(ui_PanelSetupSteps, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
|
||||
lv_obj_set_style_border_width(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_outline_width(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_outline_pad(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_left(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_right(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_top(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_bottom(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_row(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_pad_column(ui_PanelSetupSteps, 0, LV_PART_SCROLLBAR| LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelSetupStepContent = lv_label_create(ui_PanelSetupSteps);
|
||||
lv_obj_set_width( ui_LabelSetupStepContent, lv_pct(88));
|
||||
lv_obj_set_height( ui_LabelSetupStepContent, lv_pct(61));
|
||||
lv_obj_set_x( ui_LabelSetupStepContent, lv_pct(0) );
|
||||
lv_obj_set_y( ui_LabelSetupStepContent, lv_pct(20) );
|
||||
lv_obj_set_align( ui_LabelSetupStepContent, LV_ALIGN_TOP_MID );
|
||||
lv_label_set_text(ui_LabelSetupStepContent,"1. Connect ESP-Box to PC.\n2. Open \"ESP-Box\" folder.\n3. Edit \"init.config\" file with Wi-Fi SSID, password, and OpenAI key.\n4. Save the file.\n5. Restart the device.");
|
||||
lv_obj_set_style_text_color(ui_LabelSetupStepContent, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT );
|
||||
lv_obj_set_style_text_opa(ui_LabelSetupStepContent, 255, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_letter_space(ui_LabelSetupStepContent, 0, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_line_space(ui_LabelSetupStepContent, 5, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupStepContent, &ui_font_PingFangEN14, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelSetupStepTile = lv_label_create(ui_PanelSetupSteps);
|
||||
lv_obj_set_width( ui_LabelSetupStepTile, 230);
|
||||
lv_obj_set_height( ui_LabelSetupStepTile, LV_SIZE_CONTENT); /// 140
|
||||
lv_obj_set_x( ui_LabelSetupStepTile, 45 );
|
||||
lv_obj_set_y( ui_LabelSetupStepTile, 15 );
|
||||
lv_label_set_text(ui_LabelSetupStepTile,"Steps");
|
||||
lv_obj_set_style_text_color(ui_LabelSetupStepTile, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT );
|
||||
lv_obj_set_style_text_opa(ui_LabelSetupStepTile, 255, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_align(ui_LabelSetupStepTile, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupStepTile, &ui_font_PingFangEN20, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
|
||||
ui_ButtonSetup = lv_btn_create(ui_PanelSetupSteps);
|
||||
lv_obj_set_width( ui_ButtonSetup, 72);
|
||||
lv_obj_set_height( ui_ButtonSetup, 24);
|
||||
lv_obj_set_x( ui_ButtonSetup, 0 );
|
||||
lv_obj_set_y( ui_ButtonSetup, -20 );
|
||||
lv_obj_set_align( ui_ButtonSetup, LV_ALIGN_BOTTOM_MID );
|
||||
lv_obj_add_flag( ui_ButtonSetup, LV_OBJ_FLAG_SCROLL_ON_FOCUS ); /// Flags
|
||||
lv_obj_clear_flag( ui_ButtonSetup, LV_OBJ_FLAG_SCROLLABLE ); /// Flags
|
||||
lv_obj_set_style_radius(ui_ButtonSetup, 17, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_color(ui_ButtonSetup, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT );
|
||||
lv_obj_set_style_bg_opa(ui_ButtonSetup, 255, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelSetupBtn = lv_label_create(ui_ButtonSetup);
|
||||
lv_obj_set_width( ui_LabelSetupBtn, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height( ui_LabelSetupBtn, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_align( ui_LabelSetupBtn, LV_ALIGN_CENTER );
|
||||
lv_label_set_text(ui_LabelSetupBtn,"Restart");
|
||||
lv_obj_set_style_text_color(ui_LabelSetupBtn, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT );
|
||||
lv_obj_set_style_text_opa(ui_LabelSetupBtn, 255, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_align(ui_LabelSetupBtn, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupBtn, &ui_font_PingFangEN16, LV_PART_MAIN| LV_STATE_DEFAULT);
|
||||
|
||||
lv_obj_add_event_cb(ui_ButtonSetup, ui_event_ButtonSetup, LV_EVENT_ALL, NULL);
|
||||
|
||||
}
|
||||
|
||||
void ui_init( void )
|
||||
{
|
||||
lv_disp_t *dispp = lv_disp_get_default();
|
||||
lv_theme_t *theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), false, LV_FONT_DEFAULT);
|
||||
lv_disp_set_theme(dispp, theme);
|
||||
ui_ScreenSetup_screen_init();
|
||||
ui____initial_actions0 = lv_obj_create(NULL);
|
||||
lv_disp_load_scr( ui_ScreenSetup);
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.2.3
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: box_reset_mode
|
||||
|
||||
#ifndef _BOX_RESET_MODE_UI_H
|
||||
#define _BOX_RESET_MODE_UI_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "lvgl.h"
|
||||
|
||||
#include "ui_events.h"
|
||||
void sleep_body_up_down_Animation( lv_obj_t *TargetObject, int delay);
|
||||
void listen_eye_blink_Animation( lv_obj_t *TargetObject, int delay);
|
||||
void listen_eye_screen_move_Animation( lv_obj_t *TargetObject, int delay);
|
||||
void get_eye_blink_Animation( lv_obj_t *TargetObject, int delay);
|
||||
extern lv_obj_t *ui_ScreenSetup;
|
||||
extern lv_obj_t *ui_ImageSetupTextBg;
|
||||
extern lv_obj_t *ui_PanelSetupSteps;
|
||||
extern lv_obj_t *ui_LabelSetupStepContent;
|
||||
extern lv_obj_t *ui_LabelSetupStepTile;
|
||||
void ui_event_ButtonSetup( lv_event_t * e);
|
||||
extern lv_obj_t *ui_ButtonSetup;
|
||||
extern lv_obj_t *ui_LabelSetupBtn;
|
||||
extern lv_obj_t *ui____initial_actions0;
|
||||
|
||||
|
||||
LV_IMG_DECLARE( ui_img_setup_bg_png); // assets\setup_bg.png
|
||||
LV_IMG_DECLARE( ui_img_setup_text_bg_png); // assets\setup_text_bg.png
|
||||
|
||||
|
||||
LV_FONT_DECLARE( ui_font_PingFangEN14);
|
||||
LV_FONT_DECLARE( ui_font_PingFangEN16);
|
||||
LV_FONT_DECLARE( ui_font_PingFangEN20);
|
||||
|
||||
|
||||
void ui_init(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,19 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.2.3
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: box_reset_mode
|
||||
|
||||
#ifndef _UI_EVENTS_H
|
||||
#define _UI_EVENTS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void EventBtnSetupClick(lv_event_t * e);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,232 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.2.3
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: box_reset_mode
|
||||
|
||||
#include "ui_helpers.h"
|
||||
|
||||
void _ui_bar_set_property( lv_obj_t *target, int id, int val)
|
||||
{
|
||||
if (id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON);
|
||||
if (id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF);
|
||||
}
|
||||
|
||||
void _ui_basic_set_property( lv_obj_t *target, int id, int val)
|
||||
{
|
||||
if (id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val);
|
||||
if (id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val);
|
||||
if (id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val);
|
||||
if (id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val);
|
||||
}
|
||||
|
||||
|
||||
void _ui_dropdown_set_property( lv_obj_t *target, int id, int val)
|
||||
{
|
||||
if (id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val);
|
||||
}
|
||||
|
||||
void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val)
|
||||
{
|
||||
if (id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val);
|
||||
}
|
||||
|
||||
void _ui_label_set_property( lv_obj_t *target, int id, char *val)
|
||||
{
|
||||
if (id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val);
|
||||
}
|
||||
|
||||
|
||||
void _ui_roller_set_property( lv_obj_t *target, int id, int val)
|
||||
{
|
||||
if (id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON);
|
||||
if (id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF);
|
||||
}
|
||||
|
||||
void _ui_slider_set_property( lv_obj_t *target, int id, int val)
|
||||
{
|
||||
if (id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON);
|
||||
if (id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF);
|
||||
}
|
||||
|
||||
|
||||
void _ui_screen_change( lv_obj_t *target, lv_scr_load_anim_t fademode, int spd, int delay)
|
||||
{
|
||||
lv_scr_load_anim(target, fademode, spd, delay, false);
|
||||
}
|
||||
|
||||
void _ui_arc_increment( lv_obj_t *target, int val)
|
||||
{
|
||||
int old = lv_arc_get_value(target);
|
||||
lv_arc_set_value(target, old+val);
|
||||
lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0);
|
||||
}
|
||||
|
||||
void _ui_bar_increment( lv_obj_t *target, int val, int anm)
|
||||
{
|
||||
int old = lv_bar_get_value(target);
|
||||
lv_bar_set_value(target, old+val, anm);
|
||||
}
|
||||
|
||||
void _ui_slider_increment( lv_obj_t *target, int val, int anm)
|
||||
{
|
||||
int old = lv_slider_get_value(target);
|
||||
lv_slider_set_value(target, old+val, anm);
|
||||
lv_event_send(target,LV_EVENT_VALUE_CHANGED, 0);
|
||||
}
|
||||
|
||||
void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea)
|
||||
{
|
||||
lv_keyboard_set_textarea(keyboard, textarea);
|
||||
}
|
||||
|
||||
void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value)
|
||||
{
|
||||
if (value==_UI_MODIFY_FLAG_TOGGLE)
|
||||
{
|
||||
if ( lv_obj_has_flag(target,flag) ) lv_obj_clear_flag(target,flag);
|
||||
else lv_obj_add_flag(target,flag);
|
||||
}
|
||||
else if (value==_UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target,flag);
|
||||
else lv_obj_clear_flag(target,flag);
|
||||
}
|
||||
void _ui_state_modify( lv_obj_t *target, int32_t state, int value)
|
||||
{
|
||||
if (value==_UI_MODIFY_STATE_TOGGLE)
|
||||
{
|
||||
if ( lv_obj_has_state(target,state) ) lv_obj_clear_state(target,state);
|
||||
else lv_obj_add_state(target,state);
|
||||
}
|
||||
else if (value==_UI_MODIFY_STATE_ADD) lv_obj_add_state(target,state);
|
||||
else lv_obj_clear_state(target,state);
|
||||
}
|
||||
|
||||
void _ui_opacity_set( lv_obj_t *target, int val)
|
||||
{
|
||||
lv_obj_set_style_opa(target, val, 0);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_free_user_data(lv_anim_t *a)
|
||||
{
|
||||
lv_mem_free(a->user_data);
|
||||
a->user_data=NULL;
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_obj_set_x(usr->target, v);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_obj_set_y(usr->target, v);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_obj_set_width(usr->target, v);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_obj_set_height(usr->target, v);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_obj_set_style_opa(usr->target, v, 0);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_img_set_zoom(usr->target, v);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
lv_img_set_angle(usr->target, v);
|
||||
}
|
||||
|
||||
void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
usr->val = v;
|
||||
if ( v<0 ) v=0;
|
||||
if ( v>=usr->imgset_size ) v=usr->imgset_size-1;
|
||||
lv_img_set_src(usr->target, usr->imgset[v]);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_x(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_obj_get_x_aligned(usr->target);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_y(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_obj_get_y_aligned(usr->target);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_width(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_obj_get_width(usr->target);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_height(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_obj_get_height(usr->target);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_opacity(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_obj_get_style_opa(usr->target, 0);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_img_get_zoom(usr->target);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return lv_img_get_angle(usr->target);
|
||||
}
|
||||
|
||||
int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a)
|
||||
{
|
||||
ui_anim_user_data_t *usr = (ui_anim_user_data_t *)a->user_data;
|
||||
return usr->val;
|
||||
}
|
||||
|
||||
void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, char *prefix, char *postfix)
|
||||
{
|
||||
char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE];
|
||||
lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix);
|
||||
lv_label_set_text(trg, buf);
|
||||
}
|
||||
|
||||
void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, char *prefix, char *postfix)
|
||||
{
|
||||
char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE];
|
||||
lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix);
|
||||
lv_label_set_text(trg, buf);
|
||||
}
|
||||
void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, char *txt_on, char *txt_off)
|
||||
{
|
||||
if (lv_obj_has_state(src,LV_STATE_CHECKED)) lv_label_set_text(trg,txt_on);
|
||||
else lv_label_set_text(trg,txt_off);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.2.3
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: box_reset_mode
|
||||
|
||||
#ifndef _BOX_RESET_MODE_UI_HELPERS_H
|
||||
#define _BOX_RESET_MODE_UI_HELPERS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
#define _UI_TEMPORARY_STRING_BUFFER_SIZE 32
|
||||
#define _UI_BAR_PROPERTY_VALUE 0
|
||||
#define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1
|
||||
void _ui_bar_set_property( lv_obj_t *target, int id, int val);
|
||||
|
||||
#define _UI_BASIC_PROPERTY_POSITION_X 0
|
||||
#define _UI_BASIC_PROPERTY_POSITION_Y 1
|
||||
#define _UI_BASIC_PROPERTY_WIDTH 2
|
||||
#define _UI_BASIC_PROPERTY_HEIGHT 3
|
||||
void _ui_basic_set_property( lv_obj_t *target, int id, int val);
|
||||
|
||||
#define _UI_DROPDOWN_PROPERTY_SELECTED 0
|
||||
void _ui_dropdown_set_property( lv_obj_t *target, int id, int val);
|
||||
|
||||
#define _UI_IMAGE_PROPERTY_IMAGE 0
|
||||
void _ui_image_set_property( lv_obj_t *target, int id, uint8_t *val);
|
||||
|
||||
#define _UI_LABEL_PROPERTY_TEXT 0
|
||||
void _ui_label_set_property( lv_obj_t *target, int id, char *val);
|
||||
|
||||
#define _UI_ROLLER_PROPERTY_SELECTED 0
|
||||
#define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1
|
||||
void _ui_roller_set_property( lv_obj_t *target, int id, int val);
|
||||
|
||||
#define _UI_SLIDER_PROPERTY_VALUE 0
|
||||
#define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1
|
||||
void _ui_slider_set_property( lv_obj_t *target, int id, int val);
|
||||
|
||||
void _ui_screen_change( lv_obj_t *target, lv_scr_load_anim_t fademode, int spd, int delay);
|
||||
|
||||
void _ui_arc_increment( lv_obj_t *target, int val);
|
||||
|
||||
void _ui_bar_increment( lv_obj_t *target, int val, int anm);
|
||||
|
||||
void _ui_slider_increment( lv_obj_t *target, int val, int anm);
|
||||
|
||||
void _ui_keyboard_set_target( lv_obj_t *keyboard, lv_obj_t *textarea);
|
||||
|
||||
#define _UI_MODIFY_FLAG_ADD 0
|
||||
#define _UI_MODIFY_FLAG_REMOVE 1
|
||||
#define _UI_MODIFY_FLAG_TOGGLE 2
|
||||
void _ui_flag_modify( lv_obj_t *target, int32_t flag, int value);
|
||||
|
||||
#define _UI_MODIFY_STATE_ADD 0
|
||||
#define _UI_MODIFY_STATE_REMOVE 1
|
||||
#define _UI_MODIFY_STATE_TOGGLE 2
|
||||
void _ui_state_modify( lv_obj_t *target, int32_t state, int value);
|
||||
|
||||
void _ui_opacity_set( lv_obj_t *target, int val);
|
||||
|
||||
/** Describes an animation*/
|
||||
typedef struct _ui_anim_user_data_t {
|
||||
lv_obj_t *target;
|
||||
lv_img_dsc_t **imgset;
|
||||
int32_t imgset_size;
|
||||
int32_t val;
|
||||
} ui_anim_user_data_t;
|
||||
void _ui_anim_callback_free_user_data(lv_anim_t *a);
|
||||
|
||||
void _ui_anim_callback_set_x(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_y(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_width(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_height(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_opacity(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_image_zoom(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_image_angle(lv_anim_t* a, int32_t v);
|
||||
|
||||
void _ui_anim_callback_set_image_frame(lv_anim_t* a, int32_t v);
|
||||
|
||||
int32_t _ui_anim_callback_get_x(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_y(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_width(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_height(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_opacity(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_image_zoom(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_image_angle(lv_anim_t* a);
|
||||
|
||||
int32_t _ui_anim_callback_get_image_frame(lv_anim_t* a);
|
||||
|
||||
void _ui_arc_set_text_value( lv_obj_t *trg, lv_obj_t *src, char *prefix, char *postfix);
|
||||
|
||||
void _ui_slider_set_text_value( lv_obj_t *trg, lv_obj_t *src, char *prefix, char *postfix);
|
||||
|
||||
void _ui_checked_set_text_value( lv_obj_t *trg, lv_obj_t *src, char *txt_on, char *txt_off);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,7 @@
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
|
||||
nvs, data, nvs, 0x9000, 0x4000,
|
||||
otadata, data, ota, 0xd000, 0x2000,
|
||||
phy_init, data, phy, 0xf000, 0x1000,
|
||||
ota_0, app, ota_0, 0x10000, 6M,
|
||||
uf2, app, factory, 0x700000, 2M,
|
||||
|
@@ -0,0 +1,33 @@
|
||||
# This file was generated using idf.py save-defconfig. It can be edited manually.
|
||||
# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration
|
||||
#
|
||||
CONFIG_IDF_TARGET="esp32s3"
|
||||
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_MODE_OCT=y
|
||||
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
|
||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=1024
|
||||
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=8192
|
||||
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
|
||||
CONFIG_ESP32S3_DATA_CACHE_64KB=y
|
||||
CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
|
||||
CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y
|
||||
CONFIG_LV_COLOR_16_SWAP=y
|
||||
CONFIG_LV_MEM_CUSTOM=y
|
||||
CONFIG_LV_MEMCPY_MEMSET_STD=y
|
||||
CONFIG_LV_FONT_FMT_TXT_LARGE=y
|
||||
CONFIG_IDF_EXPERIMENTAL_FEATURES=y
|
||||
CONFIG_SPIRAM_SPEED_80M=y
|
||||
CONFIG_SPIRAM_SPEED=80
|
||||
CONFIG_ENABLE_UF2_USB_CONSOLE=y
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
||||
CONFIG_ESPTOOLPY_FLASHFREQ="80m"
|
||||
CONFIG_UF2_VOLUME_LABEL="ESP-BOX"
|
||||
CONFIG_TUSB_MANUFACTURER="Espressif"
|
||||
CONFIG_TUSB_PRODUCT="ESP32-S3-BOX"
|
||||
CONFIG_UF2_SERIAL_NUM="12345678"
|
||||
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,866 @@
|
||||
/*******************************************************************************
|
||||
* Size: 14 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 14 --font C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\pingfang.otf -o C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\ui_font_PingFangEN14.c --format lvgl -r 0x20-0x7f --no-compress --no-prefilter
|
||||
******************************************************************************/
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
#ifndef UI_FONT_PINGFANGEN14
|
||||
#define UI_FONT_PINGFANGEN14 1
|
||||
#endif
|
||||
|
||||
#if UI_FONT_PINGFANGEN14
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+0020 " " */
|
||||
|
||||
/* U+0021 "!" */
|
||||
0x4f, 0x4, 0xf0, 0x3e, 0x3, 0xe0, 0x3d, 0x2,
|
||||
0xd0, 0x2c, 0x1, 0xa0, 0x0, 0x3, 0xa0, 0x5e,
|
||||
0x0,
|
||||
|
||||
/* U+0022 "\"" */
|
||||
0xd4, 0x4d, 0xd3, 0x4c, 0xc3, 0x3c, 0x82, 0x28,
|
||||
|
||||
/* U+0023 "#" */
|
||||
0x0, 0xd, 0x0, 0xe0, 0x0, 0x2, 0xb0, 0x1c,
|
||||
0x0, 0x0, 0x4a, 0x3, 0xa0, 0x0, 0xef, 0xfe,
|
||||
0xff, 0xd0, 0x0, 0x95, 0x8, 0x60, 0x0, 0xb,
|
||||
0x30, 0xa4, 0x0, 0x0, 0xd1, 0xd, 0x10, 0x0,
|
||||
0xe, 0x0, 0xe0, 0x0, 0x8e, 0xfe, 0xef, 0xe6,
|
||||
0x0, 0x4a, 0x4, 0xa0, 0x0, 0x7, 0x70, 0x77,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0024 "$" */
|
||||
0x0, 0x1, 0x40, 0x0, 0x0, 0x2, 0x80, 0x0,
|
||||
0x1, 0xaf, 0xfc, 0x40, 0xc, 0xa5, 0x97, 0xf1,
|
||||
0x1f, 0x12, 0x80, 0xb6, 0xf, 0x32, 0x80, 0x0,
|
||||
0x8, 0xf9, 0x80, 0x0, 0x0, 0x5c, 0xfa, 0x20,
|
||||
0x0, 0x2, 0x99, 0xf3, 0x27, 0x2, 0x80, 0xa9,
|
||||
0x1f, 0x12, 0x80, 0x8a, 0xb, 0xb5, 0x95, 0xe5,
|
||||
0x1, 0xae, 0xfd, 0x60, 0x0, 0x2, 0x80, 0x0,
|
||||
0x0, 0x1, 0x40, 0x0,
|
||||
|
||||
/* U+0025 "%" */
|
||||
0x2, 0xcd, 0x80, 0x0, 0x2c, 0x0, 0x0, 0xc5,
|
||||
0xd, 0x30, 0xa, 0x40, 0x0, 0xf, 0x10, 0xa6,
|
||||
0x2, 0xb0, 0x0, 0x0, 0xf1, 0xa, 0x60, 0xa4,
|
||||
0x0, 0x0, 0xb, 0x60, 0xe2, 0x2b, 0x0, 0x0,
|
||||
0x0, 0x1b, 0xc6, 0xa, 0x31, 0xad, 0x70, 0x0,
|
||||
0x0, 0x2, 0xb0, 0x98, 0xc, 0x40, 0x0, 0x0,
|
||||
0xa3, 0xd, 0x30, 0x88, 0x0, 0x0, 0x3b, 0x0,
|
||||
0xd3, 0x8, 0x80, 0x0, 0xb, 0x30, 0xa, 0x70,
|
||||
0xc5, 0x0, 0x3, 0xb0, 0x0, 0x1c, 0xd9, 0x0,
|
||||
|
||||
/* U+0026 "&" */
|
||||
0x0, 0x5d, 0xfb, 0x10, 0x0, 0x1, 0xf5, 0x1b,
|
||||
0x90, 0x0, 0x2, 0xf0, 0x7, 0xa0, 0x0, 0x0,
|
||||
0xc7, 0x2e, 0x40, 0x0, 0x0, 0x2f, 0xe5, 0x1,
|
||||
0x40, 0x3, 0xeb, 0xe3, 0x5, 0xc0, 0x1e, 0x70,
|
||||
0x6e, 0x27, 0xa0, 0x4d, 0x0, 0x7, 0xdd, 0x60,
|
||||
0x4d, 0x0, 0x0, 0xbf, 0x10, 0xe, 0x92, 0x38,
|
||||
0xfc, 0xb0, 0x2, 0xae, 0xeb, 0x30, 0xd8,
|
||||
|
||||
/* U+0027 "'" */
|
||||
0xd4, 0xd3, 0xc3, 0x82,
|
||||
|
||||
/* U+0028 "(" */
|
||||
0x0, 0x5a, 0x0, 0xd3, 0x4, 0xc0, 0xa, 0x60,
|
||||
0xe, 0x20, 0x1f, 0x0, 0x2f, 0x0, 0x2f, 0x0,
|
||||
0x1f, 0x0, 0xe, 0x20, 0xa, 0x60, 0x4, 0xc0,
|
||||
0x0, 0xd3, 0x0, 0x5a,
|
||||
|
||||
/* U+0029 ")" */
|
||||
0xe, 0x10, 0x8, 0x70, 0x2, 0xe0, 0x0, 0xc5,
|
||||
0x0, 0x89, 0x0, 0x5b, 0x0, 0x4c, 0x0, 0x4c,
|
||||
0x0, 0x5b, 0x0, 0x89, 0x0, 0xc5, 0x2, 0xe0,
|
||||
0x8, 0x70, 0xe, 0x10,
|
||||
|
||||
/* U+002A "*" */
|
||||
0x0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x8b,
|
||||
0x5d, 0x4b, 0x90, 0x4a, 0xfb, 0x40, 0x0, 0xa9,
|
||||
0xb0, 0x0, 0x7a, 0x9, 0x80, 0x3, 0x10, 0x4,
|
||||
0x0,
|
||||
|
||||
/* U+002B "+" */
|
||||
0x0, 0x3, 0xb0, 0x0, 0x0, 0x3, 0xb0, 0x0,
|
||||
0x0, 0x3, 0xb0, 0x0, 0x0, 0x3, 0xb0, 0x0,
|
||||
0x4e, 0xee, 0xfe, 0xeb, 0x1, 0x14, 0xb1, 0x11,
|
||||
0x0, 0x3, 0xb0, 0x0, 0x0, 0x3, 0xb0, 0x0,
|
||||
|
||||
/* U+002C "," */
|
||||
0xa, 0x60, 0xcd, 0x1, 0xb0, 0xb3, 0x0, 0x0,
|
||||
|
||||
/* U+002D "-" */
|
||||
0x4e, 0xee, 0xee, 0xeb, 0x1, 0x11, 0x11, 0x11,
|
||||
|
||||
/* U+002E "." */
|
||||
0x95, 0xc7,
|
||||
|
||||
/* U+002F "/" */
|
||||
0x0, 0x0, 0xb, 0x40, 0x0, 0x1, 0xe0, 0x0,
|
||||
0x0, 0x69, 0x0, 0x0, 0xc, 0x30, 0x0, 0x1,
|
||||
0xe0, 0x0, 0x0, 0x78, 0x0, 0x0, 0xd, 0x20,
|
||||
0x0, 0x2, 0xd0, 0x0, 0x0, 0x87, 0x0, 0x0,
|
||||
0xe, 0x20, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x96,
|
||||
0x0, 0x0, 0xe, 0x10, 0x0, 0x4, 0xb0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x0, 0x6d, 0xea, 0x0, 0x5, 0xe4, 0x2a, 0xb0,
|
||||
0xc, 0x50, 0x0, 0xe3, 0x1f, 0x0, 0x0, 0xa8,
|
||||
0x3e, 0x0, 0x0, 0x89, 0x4d, 0x0, 0x0, 0x7a,
|
||||
0x3e, 0x0, 0x0, 0x89, 0x1f, 0x0, 0x0, 0xa8,
|
||||
0xc, 0x50, 0x0, 0xe3, 0x5, 0xe4, 0x2a, 0xb0,
|
||||
0x0, 0x6d, 0xea, 0x0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x0, 0x5f, 0x11, 0xad, 0xf1, 0x5a, 0x1f, 0x10,
|
||||
0x0, 0xf1, 0x0, 0xf, 0x10, 0x0, 0xf1, 0x0,
|
||||
0xf, 0x10, 0x0, 0xf1, 0x0, 0xf, 0x10, 0x0,
|
||||
0xf1, 0x0, 0xf, 0x10,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x0, 0x5d, 0xfc, 0x30, 0x5, 0xe4, 0x16, 0xe1,
|
||||
0xc, 0x60, 0x0, 0xb6, 0xf, 0x20, 0x0, 0xb7,
|
||||
0x0, 0x0, 0x1, 0xf3, 0x0, 0x0, 0x1c, 0x90,
|
||||
0x0, 0x3, 0xe9, 0x0, 0x0, 0x5f, 0x60, 0x0,
|
||||
0x3, 0xf4, 0x0, 0x0, 0xc, 0x91, 0x11, 0x10,
|
||||
0xf, 0xff, 0xff, 0xf8,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x0, 0x7d, 0xfc, 0x40, 0x6, 0xd3, 0x16, 0xf1,
|
||||
0xd, 0x40, 0x0, 0xc6, 0x6, 0x0, 0x0, 0xb5,
|
||||
0x0, 0x0, 0x6, 0xd1, 0x0, 0x7, 0xff, 0x30,
|
||||
0x0, 0x0, 0x3, 0xe3, 0x15, 0x0, 0x0, 0x89,
|
||||
0x1f, 0x10, 0x0, 0x99, 0xa, 0xc2, 0x16, 0xf3,
|
||||
0x0, 0x9e, 0xfc, 0x40,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x0, 0x0, 0x1e, 0x70, 0x0, 0x0, 0xb, 0xe7,
|
||||
0x0, 0x0, 0x7, 0xaa, 0x70, 0x0, 0x3, 0xd0,
|
||||
0xa7, 0x0, 0x0, 0xd3, 0xa, 0x70, 0x0, 0x97,
|
||||
0x0, 0xa7, 0x0, 0x5b, 0x0, 0xa, 0x70, 0xa,
|
||||
0xee, 0xee, 0xff, 0xe1, 0x1, 0x11, 0x1a, 0x81,
|
||||
0x0, 0x0, 0x0, 0xa7, 0x0, 0x0, 0x0, 0xa,
|
||||
0x70, 0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0x9, 0xff, 0xff, 0xf4, 0xa, 0x61, 0x11, 0x10,
|
||||
0xb, 0x40, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0,
|
||||
0xe, 0x4b, 0xdb, 0x30, 0xf, 0xb4, 0x27, 0xf2,
|
||||
0x4, 0x0, 0x0, 0xa8, 0x0, 0x0, 0x0, 0x7a,
|
||||
0x2e, 0x0, 0x0, 0xa8, 0xc, 0xa3, 0x17, 0xe1,
|
||||
0x1, 0x9e, 0xeb, 0x20,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x0, 0x4c, 0xfc, 0x30, 0x3, 0xe5, 0x28, 0xe1,
|
||||
0xa, 0x60, 0x0, 0xc6, 0xf, 0x10, 0x0, 0x0,
|
||||
0x2e, 0x19, 0xdb, 0x30, 0x4d, 0xa4, 0x27, 0xf2,
|
||||
0x3f, 0x30, 0x0, 0xa8, 0x1f, 0x0, 0x0, 0x7a,
|
||||
0xd, 0x30, 0x0, 0xa8, 0x6, 0xd3, 0x16, 0xf1,
|
||||
0x0, 0x6d, 0xfc, 0x30,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0x8f, 0xff, 0xff, 0xf0, 0x11, 0x11, 0x16, 0xd0,
|
||||
0x0, 0x0, 0xa, 0x70, 0x0, 0x0, 0x1f, 0x20,
|
||||
0x0, 0x0, 0x6c, 0x0, 0x0, 0x0, 0xc6, 0x0,
|
||||
0x0, 0x2, 0xf0, 0x0, 0x0, 0x8, 0xa0, 0x0,
|
||||
0x0, 0xe, 0x40, 0x0, 0x0, 0x4e, 0x0, 0x0,
|
||||
0x0, 0xa8, 0x0, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x0, 0x9e, 0xfb, 0x30, 0xa, 0xb2, 0x16, 0xe1,
|
||||
0xf, 0x10, 0x0, 0xb6, 0xe, 0x20, 0x0, 0xc5,
|
||||
0x8, 0xa1, 0x5, 0xd1, 0x1, 0xdf, 0xff, 0x30,
|
||||
0xd, 0x81, 0x4, 0xe4, 0x5d, 0x0, 0x0, 0x6b,
|
||||
0x5d, 0x0, 0x0, 0x6b, 0x1e, 0x81, 0x4, 0xe5,
|
||||
0x2, 0xae, 0xfc, 0x60,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x0, 0x8e, 0xea, 0x0, 0x9, 0xc2, 0x29, 0xc0,
|
||||
0x1f, 0x10, 0x0, 0xd3, 0x3e, 0x0, 0x0, 0xa8,
|
||||
0x2f, 0x0, 0x0, 0xc9, 0xc, 0xa0, 0x7, 0xca,
|
||||
0x1, 0xbf, 0xe7, 0x79, 0x0, 0x0, 0x0, 0xa6,
|
||||
0xd, 0x30, 0x0, 0xe1, 0xa, 0xc3, 0x2b, 0x90,
|
||||
0x1, 0xae, 0xe8, 0x0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0xc7, 0x95, 0x0, 0x0, 0x0, 0x95, 0xc7,
|
||||
|
||||
/* U+003B ";" */
|
||||
0xc, 0x70, 0x96, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0xa6, 0xc, 0xd0, 0x1b, 0xb, 0x30, 0x0,
|
||||
|
||||
/* U+003C "<" */
|
||||
0x0, 0x0, 0x0, 0x26, 0x0, 0x0, 0x2a, 0xe6,
|
||||
0x0, 0x3b, 0xe7, 0x0, 0x2b, 0xd6, 0x0, 0x0,
|
||||
0x3e, 0xa2, 0x0, 0x0, 0x0, 0x7e, 0xb3, 0x0,
|
||||
0x0, 0x0, 0x6d, 0xb3, 0x0, 0x0, 0x0, 0x69,
|
||||
|
||||
/* U+003D "=" */
|
||||
0x4e, 0xee, 0xee, 0xeb, 0x1, 0x11, 0x11, 0x11,
|
||||
0x0, 0x0, 0x0, 0x0, 0x4e, 0xee, 0xee, 0xeb,
|
||||
0x1, 0x11, 0x11, 0x11,
|
||||
|
||||
/* U+003E ">" */
|
||||
0x35, 0x0, 0x0, 0x0, 0x2b, 0xd6, 0x0, 0x0,
|
||||
0x0, 0x3b, 0xe7, 0x0, 0x0, 0x0, 0x2a, 0xe6,
|
||||
0x0, 0x0, 0x6, 0xe9, 0x0, 0x7, 0xea, 0x30,
|
||||
0x18, 0xea, 0x20, 0x0, 0x49, 0x20, 0x0, 0x0,
|
||||
|
||||
/* U+003F "?" */
|
||||
0x1, 0xae, 0xe8, 0x0, 0xb9, 0x23, 0xe7, 0x2f,
|
||||
0x10, 0x7, 0xb2, 0x70, 0x0, 0x7b, 0x0, 0x0,
|
||||
0x1e, 0x50, 0x0, 0x1d, 0x80, 0x0, 0x9, 0xa0,
|
||||
0x0, 0x0, 0xd5, 0x0, 0x0, 0x2, 0x0, 0x0,
|
||||
0x0, 0xa3, 0x0, 0x0, 0xe, 0x50, 0x0,
|
||||
|
||||
/* U+0040 "@" */
|
||||
0x0, 0x4, 0xad, 0xdc, 0x60, 0x0, 0x0, 0x8c,
|
||||
0x20, 0x1, 0xa9, 0x0, 0x5, 0xb0, 0x2b, 0xd6,
|
||||
0x7a, 0x40, 0xd, 0x20, 0xe6, 0x1d, 0x72, 0xa0,
|
||||
0x1d, 0x7, 0xa0, 0xb, 0x30, 0xc0, 0x3b, 0xb,
|
||||
0x40, 0xd, 0x1, 0xb0, 0x1d, 0xc, 0x20, 0x2c,
|
||||
0x6, 0x70, 0xe, 0xa, 0x70, 0xba, 0x2c, 0x0,
|
||||
0x7, 0x91, 0xcc, 0x4b, 0xb3, 0x70, 0x0, 0xb9,
|
||||
0x10, 0x0, 0x4c, 0x60, 0x0, 0x5, 0xbc, 0xdd,
|
||||
0x92, 0x0,
|
||||
|
||||
/* U+0041 "A" */
|
||||
0x0, 0x3, 0xf7, 0x0, 0x0, 0x0, 0x9, 0xdc,
|
||||
0x0, 0x0, 0x0, 0xe, 0x3f, 0x20, 0x0, 0x0,
|
||||
0x5d, 0xa, 0x80, 0x0, 0x0, 0xa8, 0x5, 0xd0,
|
||||
0x0, 0x0, 0xf3, 0x0, 0xf3, 0x0, 0x6, 0xd0,
|
||||
0x0, 0xa9, 0x0, 0xb, 0xfe, 0xee, 0xfe, 0x0,
|
||||
0x1f, 0x31, 0x11, 0x2e, 0x40, 0x7c, 0x0, 0x0,
|
||||
0x9, 0xa0, 0xd6, 0x0, 0x0, 0x3, 0xf0,
|
||||
|
||||
/* U+0042 "B" */
|
||||
0xff, 0xff, 0xfd, 0x50, 0xf2, 0x0, 0x16, 0xf2,
|
||||
0xf2, 0x0, 0x0, 0xb6, 0xf2, 0x0, 0x0, 0xb5,
|
||||
0xf2, 0x0, 0x4, 0xe1, 0xfe, 0xee, 0xff, 0x50,
|
||||
0xf3, 0x11, 0x14, 0xd6, 0xf2, 0x0, 0x0, 0x5d,
|
||||
0xf2, 0x0, 0x0, 0x5d, 0xf2, 0x0, 0x14, 0xd8,
|
||||
0xff, 0xff, 0xfd, 0x80,
|
||||
|
||||
/* U+0043 "C" */
|
||||
0x0, 0x19, 0xdf, 0xc6, 0x0, 0x2, 0xda, 0x42,
|
||||
0x5d, 0x90, 0xa, 0x90, 0x0, 0x1, 0xf2, 0x1f,
|
||||
0x10, 0x0, 0x0, 0x52, 0x4d, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x4d, 0x0,
|
||||
0x0, 0x0, 0x0, 0x2f, 0x10, 0x0, 0x0, 0x86,
|
||||
0xb, 0x80, 0x0, 0x2, 0xf2, 0x2, 0xe9, 0x32,
|
||||
0x5d, 0x70, 0x0, 0x1a, 0xdf, 0xc5, 0x0,
|
||||
|
||||
/* U+0044 "D" */
|
||||
0xff, 0xff, 0xd9, 0x10, 0xf, 0x30, 0x13, 0xae,
|
||||
0x20, 0xf2, 0x0, 0x0, 0x9a, 0xf, 0x20, 0x0,
|
||||
0x1, 0xf0, 0xf2, 0x0, 0x0, 0xf, 0x2f, 0x20,
|
||||
0x0, 0x0, 0xd4, 0xf2, 0x0, 0x0, 0xf, 0x2f,
|
||||
0x20, 0x0, 0x2, 0xf0, 0xf2, 0x0, 0x0, 0xa9,
|
||||
0xf, 0x30, 0x14, 0xbd, 0x10, 0xff, 0xff, 0xd9,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0045 "E" */
|
||||
0xff, 0xff, 0xff, 0xf1, 0xf3, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xff, 0xee, 0xee, 0xb0,
|
||||
0xf4, 0x11, 0x11, 0x10, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x0, 0x0,
|
||||
0xff, 0xff, 0xff, 0xf5,
|
||||
|
||||
/* U+0046 "F" */
|
||||
0xff, 0xff, 0xff, 0xbf, 0x30, 0x0, 0x0, 0xf2,
|
||||
0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xf2, 0x0,
|
||||
0x0, 0xf, 0xfe, 0xee, 0xe6, 0xf4, 0x11, 0x11,
|
||||
0xf, 0x20, 0x0, 0x0, 0xf2, 0x0, 0x0, 0xf,
|
||||
0x20, 0x0, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0047 "G" */
|
||||
0x0, 0x19, 0xdf, 0xd7, 0x0, 0x1, 0xda, 0x42,
|
||||
0x5d, 0xb0, 0xa, 0xa0, 0x0, 0x1, 0xe4, 0x1f,
|
||||
0x10, 0x0, 0x0, 0x43, 0x4d, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5c, 0x0, 0xa, 0xee, 0xe8, 0x4d, 0x0,
|
||||
0x1, 0x11, 0xa8, 0x1f, 0x10, 0x0, 0x0, 0x98,
|
||||
0xa, 0x90, 0x0, 0x0, 0x98, 0x2, 0xda, 0x41,
|
||||
0x38, 0xf7, 0x0, 0x19, 0xdf, 0xda, 0x40,
|
||||
|
||||
/* U+0048 "H" */
|
||||
0xf2, 0x0, 0x0, 0xf, 0x1f, 0x20, 0x0, 0x0,
|
||||
0xf1, 0xf2, 0x0, 0x0, 0xf, 0x1f, 0x20, 0x0,
|
||||
0x0, 0xf1, 0xf2, 0x0, 0x0, 0xf, 0x1f, 0xfe,
|
||||
0xee, 0xef, 0xf1, 0xf4, 0x11, 0x11, 0x2f, 0x1f,
|
||||
0x20, 0x0, 0x0, 0xf1, 0xf2, 0x0, 0x0, 0xf,
|
||||
0x1f, 0x20, 0x0, 0x0, 0xf1, 0xf2, 0x0, 0x0,
|
||||
0xf, 0x10,
|
||||
|
||||
/* U+0049 "I" */
|
||||
0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3,
|
||||
0xe3, 0xe3, 0xe3,
|
||||
|
||||
/* U+004A "J" */
|
||||
0x0, 0x0, 0xe, 0x30, 0x0, 0x0, 0xe3, 0x0,
|
||||
0x0, 0xe, 0x30, 0x0, 0x0, 0xe3, 0x0, 0x0,
|
||||
0xe, 0x30, 0x0, 0x0, 0xe3, 0x0, 0x0, 0xe,
|
||||
0x38, 0x30, 0x0, 0xe3, 0xa7, 0x0, 0x1f, 0x16,
|
||||
0xe3, 0x2a, 0xc0, 0x8, 0xee, 0xb2, 0x0,
|
||||
|
||||
/* U+004B "K" */
|
||||
0xf2, 0x0, 0x1, 0xd8, 0xf, 0x20, 0x1, 0xd9,
|
||||
0x0, 0xf2, 0x0, 0xca, 0x0, 0xf, 0x20, 0xba,
|
||||
0x0, 0x0, 0xf2, 0xac, 0x0, 0x0, 0xf, 0xcc,
|
||||
0xf3, 0x0, 0x0, 0xfb, 0x8, 0xe1, 0x0, 0xf,
|
||||
0x20, 0xb, 0xc0, 0x0, 0xf2, 0x0, 0xd, 0x90,
|
||||
0xf, 0x20, 0x0, 0x2f, 0x60, 0xf2, 0x0, 0x0,
|
||||
0x4f, 0x40,
|
||||
|
||||
/* U+004C "L" */
|
||||
0xf2, 0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xf2,
|
||||
0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xf2, 0x0,
|
||||
0x0, 0xf, 0x20, 0x0, 0x0, 0xf2, 0x0, 0x0,
|
||||
0xf, 0x20, 0x0, 0x0, 0xf2, 0x0, 0x0, 0xf,
|
||||
0x30, 0x0, 0x0, 0xff, 0xff, 0xff, 0xe0,
|
||||
|
||||
/* U+004D "M" */
|
||||
0xfa, 0x0, 0x0, 0x0, 0x4f, 0x5f, 0xf1, 0x0,
|
||||
0x0, 0xb, 0xf5, 0xfd, 0x60, 0x0, 0x1, 0xfe,
|
||||
0x5f, 0x7d, 0x0, 0x0, 0x7a, 0xc5, 0xf2, 0xe3,
|
||||
0x0, 0xd, 0x4c, 0x5f, 0x28, 0x90, 0x4, 0xd0,
|
||||
0xc5, 0xf2, 0x2f, 0x0, 0xa7, 0xc, 0x5f, 0x20,
|
||||
0xb6, 0x1f, 0x10, 0xc5, 0xf2, 0x5, 0xc7, 0xa0,
|
||||
0xc, 0x5f, 0x20, 0xe, 0xe4, 0x0, 0xc5, 0xf2,
|
||||
0x0, 0x8e, 0x0, 0xc, 0x50,
|
||||
|
||||
/* U+004E "N" */
|
||||
0xf8, 0x0, 0x0, 0x1f, 0xf, 0xf2, 0x0, 0x1,
|
||||
0xf0, 0xf9, 0xc0, 0x0, 0x1f, 0xf, 0x2d, 0x60,
|
||||
0x1, 0xf0, 0xf2, 0x3e, 0x10, 0x1f, 0xf, 0x20,
|
||||
0x9b, 0x1, 0xf0, 0xf2, 0x0, 0xe5, 0x1f, 0xf,
|
||||
0x20, 0x5, 0xe2, 0xf0, 0xf2, 0x0, 0xb, 0xaf,
|
||||
0xf, 0x20, 0x0, 0x1f, 0xf0, 0xf2, 0x0, 0x0,
|
||||
0x7f, 0x0,
|
||||
|
||||
/* U+004F "O" */
|
||||
0x0, 0x19, 0xdf, 0xc7, 0x0, 0x0, 0x2d, 0xa4,
|
||||
0x25, 0xdb, 0x0, 0xa, 0xa0, 0x0, 0x0, 0xd6,
|
||||
0x1, 0xf1, 0x0, 0x0, 0x5, 0xd0, 0x4d, 0x0,
|
||||
0x0, 0x0, 0x2f, 0x5, 0xc0, 0x0, 0x0, 0x0,
|
||||
0xf1, 0x4d, 0x0, 0x0, 0x0, 0x2f, 0x1, 0xf1,
|
||||
0x0, 0x0, 0x5, 0xd0, 0xa, 0x90, 0x0, 0x0,
|
||||
0xd6, 0x0, 0x2e, 0xa4, 0x25, 0xdb, 0x0, 0x0,
|
||||
0x19, 0xdf, 0xc7, 0x0, 0x0,
|
||||
|
||||
/* U+0050 "P" */
|
||||
0xff, 0xff, 0xfc, 0x40, 0xf3, 0x0, 0x16, 0xf2,
|
||||
0xf2, 0x0, 0x0, 0xb7, 0xf2, 0x0, 0x0, 0xa7,
|
||||
0xf2, 0x0, 0x4, 0xf3, 0xff, 0xee, 0xfe, 0x60,
|
||||
0xf4, 0x11, 0x10, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0, 0xf2, 0x0, 0x0, 0x0,
|
||||
0xf2, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0051 "Q" */
|
||||
0x0, 0x19, 0xdf, 0xc7, 0x0, 0x0, 0x2d, 0xa4,
|
||||
0x25, 0xdb, 0x0, 0xa, 0xa0, 0x0, 0x0, 0xd6,
|
||||
0x1, 0xf1, 0x0, 0x0, 0x5, 0xd0, 0x4d, 0x0,
|
||||
0x0, 0x0, 0x2f, 0x5, 0xc0, 0x0, 0x0, 0x0,
|
||||
0xf1, 0x4d, 0x0, 0x0, 0x30, 0x1f, 0x1, 0xf1,
|
||||
0x0, 0xe, 0x45, 0xd0, 0xa, 0x90, 0x0, 0x3e,
|
||||
0xd6, 0x0, 0x2e, 0xa4, 0x24, 0xdf, 0x0, 0x0,
|
||||
0x19, 0xdf, 0xd7, 0xb8, 0x0, 0x0, 0x0, 0x0,
|
||||
0x1, 0x90,
|
||||
|
||||
/* U+0052 "R" */
|
||||
0xff, 0xff, 0xfd, 0x50, 0xf, 0x30, 0x1, 0x5f,
|
||||
0x30, 0xf2, 0x0, 0x0, 0xa7, 0xf, 0x20, 0x0,
|
||||
0xa, 0x60, 0xf2, 0x0, 0x4, 0xe1, 0xf, 0xfe,
|
||||
0xef, 0xf3, 0x0, 0xf4, 0x11, 0x39, 0xe0, 0xf,
|
||||
0x20, 0x0, 0xd, 0x40, 0xf2, 0x0, 0x0, 0xb6,
|
||||
0xf, 0x20, 0x0, 0x9, 0x90, 0xf2, 0x0, 0x0,
|
||||
0x5d, 0x0,
|
||||
|
||||
/* U+0053 "S" */
|
||||
0x1, 0x9e, 0xfd, 0x70, 0x0, 0xd9, 0x22, 0x5d,
|
||||
0x80, 0x3e, 0x0, 0x0, 0x3f, 0x2, 0xf2, 0x0,
|
||||
0x0, 0x50, 0x8, 0xf9, 0x30, 0x0, 0x0, 0x2,
|
||||
0x8d, 0xe8, 0x0, 0x0, 0x0, 0x3, 0xbc, 0x5,
|
||||
0x70, 0x0, 0x0, 0xe4, 0x4e, 0x0, 0x0, 0xd,
|
||||
0x40, 0xcb, 0x32, 0x5a, 0xd0, 0x1, 0x9d, 0xfe,
|
||||
0x91, 0x0,
|
||||
|
||||
/* U+0054 "T" */
|
||||
0xcf, 0xff, 0xff, 0xff, 0x60, 0x0, 0x4e, 0x0,
|
||||
0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x3e,
|
||||
0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
|
||||
0x3e, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0,
|
||||
0x0, 0x3e, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0,
|
||||
0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x3, 0xe0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0055 "U" */
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xf2, 0x0, 0x0, 0x2f,
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xf2, 0x0, 0x0, 0x2f,
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xf2, 0x0, 0x0, 0x2f,
|
||||
0xf2, 0x0, 0x0, 0x2f, 0xd3, 0x0, 0x0, 0x4d,
|
||||
0xb8, 0x0, 0x0, 0x8b, 0x3f, 0x72, 0x27, 0xf3,
|
||||
0x3, 0xbe, 0xeb, 0x30,
|
||||
|
||||
/* U+0056 "V" */
|
||||
0xc7, 0x0, 0x0, 0x8, 0xb6, 0xd0, 0x0, 0x0,
|
||||
0xd5, 0x1f, 0x20, 0x0, 0x3f, 0x0, 0xc7, 0x0,
|
||||
0x8, 0xb0, 0x6, 0xc0, 0x0, 0xd5, 0x0, 0x1f,
|
||||
0x10, 0x2f, 0x0, 0x0, 0xb6, 0x7, 0xb0, 0x0,
|
||||
0x6, 0xc0, 0xd5, 0x0, 0x0, 0x1f, 0x3f, 0x0,
|
||||
0x0, 0x0, 0xbd, 0xa0, 0x0, 0x0, 0x6, 0xf5,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0057 "W" */
|
||||
0xc7, 0x0, 0x3, 0xf4, 0x0, 0x7, 0xd8, 0xb0,
|
||||
0x0, 0x7f, 0x80, 0x0, 0xb8, 0x4f, 0x0, 0xb,
|
||||
0xac, 0x0, 0xe, 0x40, 0xf3, 0x0, 0xf2, 0xf0,
|
||||
0x2, 0xf0, 0xc, 0x60, 0x3d, 0xc, 0x30, 0x6c,
|
||||
0x0, 0x8a, 0x7, 0x90, 0x87, 0xa, 0x80, 0x3,
|
||||
0xe0, 0xb5, 0x4, 0xb0, 0xe4, 0x0, 0xf, 0x2f,
|
||||
0x10, 0x1f, 0x2f, 0x0, 0x0, 0xb9, 0xd0, 0x0,
|
||||
0xc9, 0xb0, 0x0, 0x7, 0xf9, 0x0, 0x8, 0xf7,
|
||||
0x0, 0x0, 0x3f, 0x50, 0x0, 0x4f, 0x30, 0x0,
|
||||
|
||||
/* U+0058 "X" */
|
||||
0x5f, 0x10, 0x0, 0x2f, 0x40, 0xbb, 0x0, 0xc,
|
||||
0x90, 0x1, 0xf5, 0x6, 0xe0, 0x0, 0x6, 0xe2,
|
||||
0xf4, 0x0, 0x0, 0xc, 0xfa, 0x0, 0x0, 0x0,
|
||||
0x7f, 0x50, 0x0, 0x0, 0x1e, 0xae, 0x0, 0x0,
|
||||
0xa, 0xa0, 0xc9, 0x0, 0x5, 0xf1, 0x2, 0xf3,
|
||||
0x1, 0xe6, 0x0, 0x8, 0xd0, 0x9c, 0x0, 0x0,
|
||||
0xd, 0x80,
|
||||
|
||||
/* U+0059 "Y" */
|
||||
0xab, 0x0, 0x0, 0x7, 0xd0, 0x1e, 0x50, 0x0,
|
||||
0x1f, 0x40, 0x6, 0xe0, 0x0, 0xaa, 0x0, 0x0,
|
||||
0xc8, 0x4, 0xf1, 0x0, 0x0, 0x3f, 0x2d, 0x70,
|
||||
0x0, 0x0, 0x9, 0xed, 0x0, 0x0, 0x0, 0x0,
|
||||
0xf4, 0x0, 0x0, 0x0, 0x0, 0xe3, 0x0, 0x0,
|
||||
0x0, 0x0, 0xe3, 0x0, 0x0, 0x0, 0x0, 0xe3,
|
||||
0x0, 0x0, 0x0, 0x0, 0xe3, 0x0, 0x0,
|
||||
|
||||
/* U+005A "Z" */
|
||||
0x3f, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x1c,
|
||||
0xb0, 0x0, 0x0, 0x6, 0xe1, 0x0, 0x0, 0x2,
|
||||
0xf5, 0x0, 0x0, 0x0, 0xc9, 0x0, 0x0, 0x0,
|
||||
0x8d, 0x0, 0x0, 0x0, 0x3f, 0x30, 0x0, 0x0,
|
||||
0xd, 0x80, 0x0, 0x0, 0x9, 0xc0, 0x0, 0x0,
|
||||
0x4, 0xf3, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xff,
|
||||
0xff, 0x60,
|
||||
|
||||
/* U+005B "[" */
|
||||
0x5e, 0xee, 0x6, 0xb1, 0x10, 0x6a, 0x0, 0x6,
|
||||
0xa0, 0x0, 0x6a, 0x0, 0x6, 0xa0, 0x0, 0x6a,
|
||||
0x0, 0x6, 0xa0, 0x0, 0x6a, 0x0, 0x6, 0xa0,
|
||||
0x0, 0x6a, 0x0, 0x6, 0xa0, 0x0, 0x6a, 0x0,
|
||||
0x6, 0xff, 0xf0,
|
||||
|
||||
/* U+005C "\\" */
|
||||
0x4b, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x9,
|
||||
0x60, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0xe1,
|
||||
0x0, 0x0, 0x8, 0x70, 0x0, 0x0, 0x2d, 0x0,
|
||||
0x0, 0x0, 0xd2, 0x0, 0x0, 0x7, 0x80, 0x0,
|
||||
0x0, 0x2e, 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0,
|
||||
0x6, 0x90, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
|
||||
0xb4,
|
||||
|
||||
/* U+005D "]" */
|
||||
0x5e, 0xee, 0x0, 0x11, 0xf0, 0x0, 0xf, 0x0,
|
||||
0x0, 0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0,
|
||||
0xf, 0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x0,
|
||||
0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xf,
|
||||
0x6, 0xff, 0xf0,
|
||||
|
||||
/* U+005E "^" */
|
||||
0x0, 0x2f, 0x60, 0x0, 0x9, 0x8d, 0x0, 0x1,
|
||||
0xd0, 0xa4, 0x0, 0x77, 0x3, 0xb0, 0xd, 0x10,
|
||||
0xc, 0x20,
|
||||
|
||||
/* U+005F "_" */
|
||||
0xee, 0xee, 0xee, 0xe1, 0x11, 0x11, 0x11,
|
||||
|
||||
/* U+0060 "`" */
|
||||
0x89, 0x0, 0x95,
|
||||
|
||||
/* U+0061 "a" */
|
||||
0x2, 0xad, 0xea, 0x10, 0xe8, 0x12, 0xba, 0x3,
|
||||
0x0, 0x3, 0xe0, 0x3b, 0xee, 0xef, 0x1e, 0x60,
|
||||
0x2, 0xf5, 0xc0, 0x0, 0x6f, 0x4f, 0x30, 0x5c,
|
||||
0xf0, 0x8e, 0xd9, 0x2f,
|
||||
|
||||
/* U+0062 "b" */
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x2b, 0xeb, 0x20,
|
||||
0x1f, 0xa2, 0x18, 0xe0, 0x1f, 0x30, 0x0, 0xc5,
|
||||
0x1f, 0x0, 0x0, 0x98, 0x1f, 0x0, 0x0, 0x98,
|
||||
0x1f, 0x30, 0x0, 0xc6, 0x1f, 0xb2, 0x7, 0xe0,
|
||||
0x1e, 0x4c, 0xfb, 0x20,
|
||||
|
||||
/* U+0063 "c" */
|
||||
0x0, 0x9e, 0xea, 0x10, 0xb, 0xb1, 0x2a, 0xb0,
|
||||
0x2f, 0x10, 0x1, 0xb0, 0x5c, 0x0, 0x0, 0x0,
|
||||
0x5c, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x2, 0xe1,
|
||||
0xb, 0xa1, 0x2b, 0xa0, 0x0, 0xae, 0xea, 0x10,
|
||||
|
||||
/* U+0064 "d" */
|
||||
0x0, 0x0, 0x0, 0xc5, 0x0, 0x0, 0x0, 0xc5,
|
||||
0x0, 0x0, 0x0, 0xc5, 0x0, 0xae, 0xc4, 0xc5,
|
||||
0xb, 0xa1, 0x1a, 0xe5, 0x2f, 0x0, 0x1, 0xf5,
|
||||
0x5c, 0x0, 0x0, 0xc5, 0x5c, 0x0, 0x0, 0xc5,
|
||||
0x2f, 0x0, 0x0, 0xf5, 0xb, 0xa1, 0x1a, 0xe5,
|
||||
0x0, 0xae, 0xd6, 0xb5,
|
||||
|
||||
/* U+0065 "e" */
|
||||
0x1, 0xae, 0xe9, 0x0, 0xc, 0x81, 0x1a, 0xa0,
|
||||
0x4d, 0x0, 0x0, 0xf1, 0x7f, 0xee, 0xee, 0xf3,
|
||||
0x7b, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x2, 0xc0,
|
||||
0xd, 0x91, 0x1c, 0x70, 0x1, 0xae, 0xe8, 0x0,
|
||||
|
||||
/* U+0066 "f" */
|
||||
0x0, 0x7f, 0xf2, 0x0, 0xe4, 0x0, 0x1, 0xf0,
|
||||
0x0, 0xef, 0xff, 0xf0, 0x1, 0xf0, 0x0, 0x1,
|
||||
0xf0, 0x0, 0x1, 0xf0, 0x0, 0x1, 0xf0, 0x0,
|
||||
0x1, 0xf0, 0x0, 0x1, 0xf0, 0x0, 0x1, 0xf0,
|
||||
0x0,
|
||||
|
||||
/* U+0067 "g" */
|
||||
0x0, 0xae, 0xd5, 0xb6, 0xb, 0xb1, 0x1a, 0xe6,
|
||||
0x2f, 0x10, 0x0, 0xf6, 0x5c, 0x0, 0x0, 0xc6,
|
||||
0x5c, 0x0, 0x0, 0xc6, 0x2f, 0x0, 0x0, 0xf6,
|
||||
0xb, 0xa1, 0x1a, 0xe6, 0x0, 0xae, 0xd5, 0xb5,
|
||||
0x4, 0x0, 0x0, 0xd3, 0xd, 0x80, 0x7, 0xd0,
|
||||
0x2, 0xbe, 0xeb, 0x20,
|
||||
|
||||
/* U+0068 "h" */
|
||||
0x1f, 0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x1f,
|
||||
0x0, 0x0, 0x1, 0xf2, 0xcf, 0xb1, 0x1f, 0xa2,
|
||||
0x2c, 0x91, 0xf3, 0x0, 0x6d, 0x1f, 0x0, 0x3,
|
||||
0xe1, 0xf0, 0x0, 0x2e, 0x1f, 0x0, 0x2, 0xe1,
|
||||
0xf0, 0x0, 0x2e, 0x1f, 0x0, 0x2, 0xe0,
|
||||
|
||||
/* U+0069 "i" */
|
||||
0xd, 0x60, 0x94, 0x0, 0x0, 0xc5, 0xc, 0x50,
|
||||
0xc5, 0xc, 0x50, 0xc5, 0xc, 0x50, 0xc5, 0xc,
|
||||
0x50,
|
||||
|
||||
/* U+006A "j" */
|
||||
0x0, 0xb9, 0x0, 0x76, 0x0, 0x0, 0x0, 0x97,
|
||||
0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0x97,
|
||||
0x0, 0x97, 0x0, 0x97, 0x0, 0x97, 0x0, 0xa7,
|
||||
0x1, 0xd6, 0x3f, 0xb0,
|
||||
|
||||
/* U+006B "k" */
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x1c, 0x90,
|
||||
0x1f, 0x0, 0xc9, 0x0, 0x1f, 0xc, 0x90, 0x0,
|
||||
0x1f, 0xcf, 0x20, 0x0, 0x1f, 0xa8, 0xc0, 0x0,
|
||||
0x1f, 0x0, 0xc9, 0x0, 0x1f, 0x0, 0x2f, 0x40,
|
||||
0x1f, 0x0, 0x6, 0xe1,
|
||||
|
||||
/* U+006C "l" */
|
||||
0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3,
|
||||
0xe3, 0xe3, 0xe3,
|
||||
|
||||
/* U+006D "m" */
|
||||
0x1f, 0x4d, 0xd7, 0xa, 0xec, 0x20, 0x1f, 0xa1,
|
||||
0x3f, 0xc4, 0x19, 0xc0, 0x1f, 0x30, 0xa, 0xa0,
|
||||
0x1, 0xf0, 0x1f, 0x0, 0x9, 0x80, 0x0, 0xf1,
|
||||
0x1f, 0x0, 0x8, 0x80, 0x0, 0xf1, 0x1f, 0x0,
|
||||
0x8, 0x80, 0x0, 0xf1, 0x1f, 0x0, 0x8, 0x80,
|
||||
0x0, 0xf1, 0x1f, 0x0, 0x8, 0x80, 0x0, 0xf1,
|
||||
|
||||
/* U+006E "n" */
|
||||
0x1f, 0x3c, 0xfb, 0x11, 0xfb, 0x22, 0xc9, 0x1f,
|
||||
0x20, 0x4, 0xd1, 0xf0, 0x0, 0x2f, 0x1f, 0x0,
|
||||
0x2, 0xf1, 0xf0, 0x0, 0x2f, 0x1f, 0x0, 0x2,
|
||||
0xf1, 0xf0, 0x0, 0x2f,
|
||||
|
||||
/* U+006F "o" */
|
||||
0x0, 0x8e, 0xea, 0x10, 0xa, 0xb2, 0x19, 0xd0,
|
||||
0x2f, 0x10, 0x0, 0xd5, 0x5c, 0x0, 0x0, 0x98,
|
||||
0x5c, 0x0, 0x0, 0x98, 0x2f, 0x10, 0x0, 0xd5,
|
||||
0xa, 0xb2, 0x19, 0xd0, 0x0, 0x8e, 0xea, 0x10,
|
||||
|
||||
/* U+0070 "p" */
|
||||
0x1e, 0x3c, 0xeb, 0x10, 0x1f, 0xb2, 0x18, 0xe0,
|
||||
0x1f, 0x30, 0x0, 0xc5, 0x1f, 0x0, 0x0, 0x98,
|
||||
0x1f, 0x0, 0x0, 0x98, 0x1f, 0x30, 0x0, 0xc6,
|
||||
0x1f, 0xa2, 0x17, 0xe0, 0x1f, 0x2c, 0xfb, 0x20,
|
||||
0x1f, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0,
|
||||
0x1f, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0071 "q" */
|
||||
0x0, 0xae, 0xd5, 0xb5, 0xb, 0xa1, 0x1a, 0xe5,
|
||||
0x2f, 0x0, 0x1, 0xf5, 0x5c, 0x0, 0x0, 0xc5,
|
||||
0x5c, 0x0, 0x0, 0xc5, 0x2f, 0x0, 0x1, 0xf5,
|
||||
0xb, 0xa1, 0x1a, 0xe5, 0x0, 0xae, 0xc4, 0xc5,
|
||||
0x0, 0x0, 0x0, 0xc5, 0x0, 0x0, 0x0, 0xc5,
|
||||
0x0, 0x0, 0x0, 0xc5,
|
||||
|
||||
/* U+0072 "r" */
|
||||
0x1f, 0x3c, 0xf0, 0x1f, 0xd5, 0x40, 0x1f, 0x40,
|
||||
0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f,
|
||||
0x0, 0x0, 0x1f, 0x0, 0x0, 0x1f, 0x0, 0x0,
|
||||
|
||||
/* U+0073 "s" */
|
||||
0x6, 0xdf, 0xd5, 0x3, 0xf4, 0x15, 0xf2, 0x4e,
|
||||
0x10, 0x4, 0x20, 0x8f, 0xb6, 0x10, 0x0, 0x5,
|
||||
0xae, 0x24, 0x60, 0x0, 0xa8, 0x3f, 0x40, 0x3e,
|
||||
0x60, 0x6d, 0xfe, 0x90,
|
||||
|
||||
/* U+0074 "t" */
|
||||
0x0, 0x40, 0x0, 0x4c, 0x0, 0x4, 0xc0, 0xc,
|
||||
0xff, 0xf9, 0x4, 0xc0, 0x0, 0x4c, 0x0, 0x4,
|
||||
0xc0, 0x0, 0x4c, 0x0, 0x4, 0xc0, 0x0, 0x3e,
|
||||
0x0, 0x0, 0xcf, 0x60,
|
||||
|
||||
/* U+0075 "u" */
|
||||
0x1f, 0x0, 0x2, 0xf1, 0xf0, 0x0, 0x2f, 0x1f,
|
||||
0x0, 0x2, 0xf1, 0xf0, 0x0, 0x2f, 0x1f, 0x0,
|
||||
0x2, 0xf0, 0xf1, 0x0, 0x7f, 0xd, 0x91, 0x3d,
|
||||
0xf0, 0x3c, 0xfb, 0x3f,
|
||||
|
||||
/* U+0076 "v" */
|
||||
0xc7, 0x0, 0xb, 0x76, 0xc0, 0x0, 0xf2, 0x1f,
|
||||
0x10, 0x5d, 0x0, 0xb6, 0xa, 0x70, 0x6, 0xb0,
|
||||
0xf2, 0x0, 0x1f, 0x6c, 0x0, 0x0, 0xbe, 0x70,
|
||||
0x0, 0x5, 0xf1, 0x0,
|
||||
|
||||
/* U+0077 "w" */
|
||||
0xc6, 0x0, 0x5e, 0x0, 0xd, 0x57, 0xb0, 0xa,
|
||||
0xf3, 0x2, 0xf0, 0x2f, 0x0, 0xd8, 0x70, 0x6b,
|
||||
0x0, 0xd4, 0x2c, 0x3b, 0xb, 0x60, 0x8, 0x86,
|
||||
0x80, 0xe0, 0xf1, 0x0, 0x3c, 0xa3, 0xa, 0x7c,
|
||||
0x0, 0x0, 0xee, 0x0, 0x6f, 0x70, 0x0, 0x9,
|
||||
0xb0, 0x2, 0xf2, 0x0,
|
||||
|
||||
/* U+0078 "x" */
|
||||
0x4e, 0x10, 0xd, 0x60, 0x9, 0xa0, 0x8b, 0x0,
|
||||
0x0, 0xd8, 0xe1, 0x0, 0x0, 0x4f, 0x60, 0x0,
|
||||
0x0, 0x8e, 0xa0, 0x0, 0x3, 0xe2, 0xd5, 0x0,
|
||||
0xd, 0x50, 0x4e, 0x10, 0x9b, 0x0, 0x9, 0xb0,
|
||||
|
||||
/* U+0079 "y" */
|
||||
0xc7, 0x0, 0x8, 0xb6, 0xc0, 0x0, 0xd5, 0xf,
|
||||
0x20, 0x3f, 0x0, 0xa8, 0x8, 0x90, 0x4, 0xd0,
|
||||
0xe3, 0x0, 0xe, 0x7e, 0x0, 0x0, 0x8f, 0x80,
|
||||
0x0, 0x2, 0xf2, 0x0, 0x0, 0x5c, 0x0, 0x0,
|
||||
0xb, 0x70, 0x0, 0x2, 0xf1, 0x0, 0x0,
|
||||
|
||||
/* U+007A "z" */
|
||||
0x8f, 0xff, 0xff, 0x30, 0x0, 0x9, 0xc0, 0x0,
|
||||
0x4, 0xe1, 0x0, 0x1, 0xe5, 0x0, 0x0, 0xb9,
|
||||
0x0, 0x0, 0x7d, 0x0, 0x0, 0x3f, 0x30, 0x0,
|
||||
0xa, 0xff, 0xff, 0xf7,
|
||||
|
||||
/* U+007B "{" */
|
||||
0x0, 0xbf, 0x50, 0x3d, 0x0, 0x5, 0xa0, 0x0,
|
||||
0x5a, 0x0, 0x6, 0xa0, 0x0, 0xa7, 0x0, 0xbc,
|
||||
0x0, 0x2, 0xc5, 0x0, 0x6, 0x90, 0x0, 0x5a,
|
||||
0x0, 0x5, 0xa0, 0x0, 0x5a, 0x0, 0x2, 0xd0,
|
||||
0x0, 0xa, 0xf5,
|
||||
|
||||
/* U+007C "|" */
|
||||
0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d,
|
||||
0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d,
|
||||
|
||||
/* U+007D "}" */
|
||||
0xae, 0x60, 0x0, 0x3e, 0x0, 0x0, 0xf0, 0x0,
|
||||
0xf, 0x0, 0x0, 0xf0, 0x0, 0xd, 0x40, 0x0,
|
||||
0x3f, 0x50, 0xb, 0x70, 0x0, 0xf1, 0x0, 0xf,
|
||||
0x0, 0x0, 0xf0, 0x0, 0xf, 0x0, 0x4, 0xd0,
|
||||
0xa, 0xe5, 0x0,
|
||||
|
||||
/* U+007E "~" */
|
||||
0x2c, 0xd8, 0x24, 0x55, 0x41, 0x7d, 0xc2,
|
||||
|
||||
/* U+007F "" */
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* 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 = 75, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 0, .adv_w = 75, .box_w = 3, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 17, .adv_w = 96, .box_w = 4, .box_h = 4, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 25, .adv_w = 134, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 75, .adv_w = 134, .box_w = 8, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 135, .adv_w = 217, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 207, .adv_w = 163, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 262, .adv_w = 55, .box_w = 2, .box_h = 4, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 266, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 294, .adv_w = 75, .box_w = 4, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 322, .adv_w = 113, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 347, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 379, .adv_w = 59, .box_w = 3, .box_h = 5, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 387, .adv_w = 136, .box_w = 8, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
|
||||
{.bitmap_index = 395, .adv_w = 59, .box_w = 2, .box_h = 2, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 397, .adv_w = 112, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 446, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 490, .adv_w = 90, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 518, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 562, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 606, .adv_w = 134, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 656, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 700, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 744, .adv_w = 123, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 788, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 832, .adv_w = 134, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 876, .adv_w = 59, .box_w = 2, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 883, .adv_w = 59, .box_w = 3, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 898, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 930, .adv_w = 136, .box_w = 8, .box_h = 5, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 950, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 982, .adv_w = 120, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1021, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1087, .adv_w = 147, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1142, .adv_w = 152, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1186, .adv_w = 163, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1241, .adv_w = 158, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1291, .adv_w = 143, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1335, .adv_w = 129, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1374, .adv_w = 168, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1429, .adv_w = 161, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1479, .adv_w = 53, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1490, .adv_w = 116, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1529, .adv_w = 155, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1579, .adv_w = 132, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1618, .adv_w = 198, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1679, .adv_w = 161, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1729, .adv_w = 172, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1790, .adv_w = 144, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1834, .adv_w = 172, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 1900, .adv_w = 151, .box_w = 9, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1950, .adv_w = 142, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2000, .adv_w = 139, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2050, .adv_w = 160, .box_w = 8, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2094, .adv_w = 143, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2144, .adv_w = 208, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2216, .adv_w = 143, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2266, .adv_w = 148, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2321, .adv_w = 140, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2371, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2406, .adv_w = 112, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 2455, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 2490, .adv_w = 116, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 6},
|
||||
{.bitmap_index = 2508, .adv_w = 112, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 2515, .adv_w = 75, .box_w = 3, .box_h = 2, .ofs_x = 1, .ofs_y = 9},
|
||||
{.bitmap_index = 2518, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2546, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2590, .adv_w = 123, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2622, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2666, .adv_w = 124, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2698, .adv_w = 84, .box_w = 6, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2731, .adv_w = 132, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 2775, .adv_w = 125, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2814, .adv_w = 57, .box_w = 3, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2831, .adv_w = 60, .box_w = 4, .box_h = 14, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 2859, .adv_w = 118, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2903, .adv_w = 53, .box_w = 2, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2914, .adv_w = 192, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2962, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2990, .adv_w = 131, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3022, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3066, .adv_w = 131, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3110, .adv_w = 82, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3134, .adv_w = 113, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3162, .adv_w = 80, .box_w = 5, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3190, .adv_w = 125, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3218, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3246, .adv_w = 169, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3290, .adv_w = 114, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3322, .adv_w = 111, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3361, .adv_w = 109, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3389, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3424, .adv_w = 44, .box_w = 2, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3439, .adv_w = 75, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3474, .adv_w = 112, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 3481, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 32, .range_length = 96, .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 ui_font_PingFangEN14 = {
|
||||
#else
|
||||
lv_font_t ui_font_PingFangEN14 = {
|
||||
#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 = 16, /*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 = -2,
|
||||
.underline_thickness = 1,
|
||||
#endif
|
||||
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if UI_FONT_PINGFANGEN14*/
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"codename": "PingFangEN14",
|
||||
"ttf_path": "\\assets\\pingfang.otf",
|
||||
"bin_path": "\\assets\\ui_font_PingFangEN14.bin",
|
||||
"c_path": "\\assets\\ui_font_PingFangEN14.c",
|
||||
"cfg_path": "\\assets\\ui_font_PingFangEN14.fcfg",
|
||||
"size": 14,
|
||||
"bpp": 4,
|
||||
"letters": 0,
|
||||
"ranges": [
|
||||
"0x20-0x7f"
|
||||
],
|
||||
"symbols": "",
|
||||
"customparams": "--no-compress --no-prefilter",
|
||||
"uploaded": false
|
||||
}
|
||||
@@ -0,0 +1,969 @@
|
||||
/*******************************************************************************
|
||||
* Size: 16 px
|
||||
* Bpp: 4
|
||||
* Opts: --bpp 4 --size 16 --font C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\pingfang.otf -o C:\Users\liu\Desktop\Project\squareline\chat_gpt_new_gui\assets\ui_font_PingFangEN16.c --format lvgl -r 0x20-0x7f --no-compress --no-prefilter
|
||||
******************************************************************************/
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
#ifndef UI_FONT_PINGFANGEN16
|
||||
#define UI_FONT_PINGFANGEN16 1
|
||||
#endif
|
||||
|
||||
#if UI_FONT_PINGFANGEN16
|
||||
|
||||
/*-----------------
|
||||
* BITMAPS
|
||||
*----------------*/
|
||||
|
||||
/*Store the image of the glyphs*/
|
||||
static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
|
||||
/* U+0020 " " */
|
||||
|
||||
/* U+0021 "!" */
|
||||
0x1f, 0x60, 0xf5, 0xf, 0x50, 0xf4, 0xf, 0x40,
|
||||
0xe4, 0xe, 0x30, 0xd3, 0xb, 0x20, 0x0, 0x1e,
|
||||
0x61, 0xe6,
|
||||
|
||||
/* U+0022 "\"" */
|
||||
0xb9, 0xc, 0x8a, 0x90, 0xb7, 0xa8, 0xb, 0x79,
|
||||
0x80, 0xa6, 0x11, 0x2, 0x10,
|
||||
|
||||
/* U+0023 "#" */
|
||||
0x0, 0xa, 0x60, 0x2e, 0x0, 0x0, 0xc, 0x40,
|
||||
0x4c, 0x0, 0x0, 0xe, 0x20, 0x6a, 0x0, 0xc,
|
||||
0xef, 0xee, 0xff, 0xe1, 0x1, 0x4d, 0x11, 0xc6,
|
||||
0x10, 0x0, 0x6a, 0x0, 0xe2, 0x0, 0x0, 0x88,
|
||||
0x0, 0xf0, 0x0, 0x0, 0xb5, 0x3, 0xd0, 0x0,
|
||||
0x7e, 0xfe, 0xee, 0xfe, 0x70, 0x1, 0xf2, 0x19,
|
||||
0x91, 0x0, 0x2, 0xe0, 0xa, 0x60, 0x0, 0x5,
|
||||
0xc0, 0xd, 0x30, 0x0,
|
||||
|
||||
/* U+0024 "$" */
|
||||
0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0x9, 0x20,
|
||||
0x0, 0x0, 0x7d, 0xff, 0xb2, 0x0, 0x8e, 0x7b,
|
||||
0x6b, 0xe1, 0xe, 0x60, 0x92, 0xe, 0x60, 0xe6,
|
||||
0x9, 0x20, 0x43, 0xa, 0xe5, 0xa2, 0x0, 0x0,
|
||||
0x9, 0xff, 0x81, 0x0, 0x0, 0x1, 0xce, 0xf8,
|
||||
0x0, 0x0, 0x9, 0x25, 0xf7, 0x1d, 0x20, 0x92,
|
||||
0x9, 0xb0, 0xe7, 0x9, 0x20, 0xaa, 0x7, 0xf7,
|
||||
0xb6, 0x9f, 0x40, 0x7, 0xdf, 0xfc, 0x50, 0x0,
|
||||
0x0, 0x92, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0,
|
||||
|
||||
/* U+0025 "%" */
|
||||
0xa, 0xed, 0x30, 0x0, 0xc, 0x30, 0x0, 0x9b,
|
||||
0x5, 0xe0, 0x0, 0x5a, 0x0, 0x0, 0xd6, 0x0,
|
||||
0xf3, 0x0, 0xd2, 0x0, 0x0, 0xc6, 0x0, 0xf3,
|
||||
0x6, 0x90, 0x0, 0x0, 0x8b, 0x6, 0xe0, 0xd,
|
||||
0x10, 0x0, 0x0, 0x9, 0xec, 0x30, 0x78, 0x7,
|
||||
0xdc, 0x30, 0x0, 0x0, 0x1, 0xe1, 0x5d, 0x15,
|
||||
0xe0, 0x0, 0x0, 0x8, 0x70, 0xa8, 0x0, 0xf4,
|
||||
0x0, 0x0, 0x1d, 0x0, 0xb7, 0x0, 0xd6, 0x0,
|
||||
0x0, 0xa6, 0x0, 0xa9, 0x0, 0xf4, 0x0, 0x2,
|
||||
0xd0, 0x0, 0x5d, 0x14, 0xf0, 0x0, 0xb, 0x50,
|
||||
0x0, 0x8, 0xed, 0x40,
|
||||
|
||||
/* U+0026 "&" */
|
||||
0x0, 0x1a, 0xfe, 0x90, 0x0, 0x0, 0x0, 0xbc,
|
||||
0x34, 0xe8, 0x0, 0x0, 0x0, 0xe6, 0x0, 0xaa,
|
||||
0x0, 0x0, 0x0, 0xac, 0x3, 0xf5, 0x0, 0x0,
|
||||
0x0, 0x1e, 0xce, 0x60, 0x1, 0x0, 0x0, 0x4d,
|
||||
0xf9, 0x0, 0x2f, 0x10, 0x6, 0xf5, 0x3f, 0x70,
|
||||
0x5f, 0x0, 0xf, 0x50, 0x3, 0xf6, 0x9c, 0x0,
|
||||
0x4f, 0x0, 0x0, 0x4f, 0xf6, 0x0, 0x2f, 0x40,
|
||||
0x0, 0xc, 0xf5, 0x0, 0xb, 0xe7, 0x46, 0xce,
|
||||
0x9f, 0x20, 0x0, 0x7d, 0xfd, 0x91, 0xa, 0xd1,
|
||||
|
||||
/* U+0027 "'" */
|
||||
0xb9, 0xa9, 0xa8, 0x98, 0x11,
|
||||
|
||||
/* U+0028 "(" */
|
||||
0x0, 0xe, 0x30, 0x6, 0xc0, 0x0, 0xe5, 0x0,
|
||||
0x5e, 0x0, 0x9, 0xa0, 0x0, 0xd6, 0x0, 0xf,
|
||||
0x40, 0x0, 0xf3, 0x0, 0xf, 0x30, 0x0, 0xf4,
|
||||
0x0, 0xd, 0x60, 0x0, 0x9a, 0x0, 0x5, 0xe0,
|
||||
0x0, 0xe, 0x50, 0x0, 0x6c, 0x0, 0x0, 0xe3,
|
||||
|
||||
/* U+0029 ")" */
|
||||
0xd, 0x40, 0x0, 0x6b, 0x0, 0x0, 0xf3, 0x0,
|
||||
0x9, 0xa0, 0x0, 0x5e, 0x0, 0x1, 0xf2, 0x0,
|
||||
0xf, 0x40, 0x0, 0xe5, 0x0, 0xe, 0x50, 0x0,
|
||||
0xf4, 0x0, 0x1f, 0x20, 0x5, 0xe0, 0x0, 0x9a,
|
||||
0x0, 0xf, 0x30, 0x6, 0xc0, 0x0, 0xd4, 0x0,
|
||||
|
||||
/* U+002A "*" */
|
||||
0x0, 0x7, 0x90, 0x0, 0x0, 0x7, 0x80, 0x0,
|
||||
0x48, 0x26, 0x81, 0x86, 0x39, 0xee, 0xee, 0xa4,
|
||||
0x0, 0x1e, 0xe1, 0x0, 0x0, 0xa8, 0x6c, 0x0,
|
||||
0x6, 0xd0, 0xb, 0x70, 0x0, 0x20, 0x1, 0x0,
|
||||
|
||||
/* U+002B "+" */
|
||||
0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0xb, 0x60,
|
||||
0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0xb,
|
||||
0x60, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xd0, 0x22,
|
||||
0x2c, 0x72, 0x22, 0x0, 0x0, 0xb6, 0x0, 0x0,
|
||||
0x0, 0xb, 0x60, 0x0, 0x0, 0x0, 0xb6, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+002C "," */
|
||||
0x0, 0xb, 0xd0, 0xaf, 0x40, 0xc2, 0x8a, 0x6,
|
||||
0x0,
|
||||
|
||||
/* U+002D "-" */
|
||||
0x3f, 0xff, 0xff, 0xff, 0xd0, 0x22, 0x22, 0x22,
|
||||
0x22,
|
||||
|
||||
/* U+002E "." */
|
||||
0x0, 0xa, 0xd0, 0x9c, 0x0,
|
||||
|
||||
/* U+002F "/" */
|
||||
0x0, 0x0, 0x0, 0x62, 0x0, 0x0, 0x1, 0xf1,
|
||||
0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0xd, 0x40,
|
||||
0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x99, 0x0,
|
||||
0x0, 0x0, 0xe3, 0x0, 0x0, 0x4, 0xd0, 0x0,
|
||||
0x0, 0xa, 0x70, 0x0, 0x0, 0xf, 0x10, 0x0,
|
||||
0x0, 0x6c, 0x0, 0x0, 0x0, 0xc6, 0x0, 0x0,
|
||||
0x2, 0xf0, 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0,
|
||||
0xd, 0x40, 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0030 "0" */
|
||||
0x0, 0x2a, 0xed, 0x80, 0x0, 0x1d, 0xb4, 0x6e,
|
||||
0x90, 0x8, 0xc0, 0x0, 0x3f, 0x20, 0xe6, 0x0,
|
||||
0x0, 0xc7, 0xf, 0x30, 0x0, 0x9, 0xa2, 0xf2,
|
||||
0x0, 0x0, 0x8b, 0x2f, 0x20, 0x0, 0x8, 0xb0,
|
||||
0xf3, 0x0, 0x0, 0x9a, 0xe, 0x60, 0x0, 0xc,
|
||||
0x70, 0x8c, 0x0, 0x3, 0xf2, 0x1, 0xdb, 0x46,
|
||||
0xe9, 0x0, 0x2, 0xae, 0xd7, 0x0,
|
||||
|
||||
/* U+0031 "1" */
|
||||
0x0, 0x1c, 0xb0, 0x6e, 0xfb, 0x4e, 0x69, 0xb1,
|
||||
0x0, 0x9b, 0x0, 0x9, 0xb0, 0x0, 0x9b, 0x0,
|
||||
0x9, 0xb0, 0x0, 0x9b, 0x0, 0x9, 0xb0, 0x0,
|
||||
0x9b, 0x0, 0x9, 0xb0, 0x0, 0x9b,
|
||||
|
||||
/* U+0032 "2" */
|
||||
0x0, 0x1a, 0xee, 0xa2, 0x0, 0x1e, 0xa4, 0x4b,
|
||||
0xe1, 0x9, 0xd0, 0x0, 0xe, 0x60, 0xc8, 0x0,
|
||||
0x0, 0xc8, 0x4, 0x20, 0x0, 0xf, 0x50, 0x0,
|
||||
0x0, 0x9, 0xd0, 0x0, 0x0, 0xa, 0xe3, 0x0,
|
||||
0x0, 0x2d, 0xc1, 0x0, 0x0, 0x4f, 0x90, 0x0,
|
||||
0x0, 0x2f, 0x70, 0x0, 0x0, 0xb, 0xd3, 0x33,
|
||||
0x33, 0x20, 0xef, 0xff, 0xff, 0xf9,
|
||||
|
||||
/* U+0033 "3" */
|
||||
0x0, 0x3b, 0xee, 0xb3, 0x0, 0x3f, 0x94, 0x4a,
|
||||
0xf2, 0xb, 0xa0, 0x0, 0xe, 0x70, 0x63, 0x0,
|
||||
0x0, 0xc6, 0x0, 0x0, 0x0, 0x6e, 0x10, 0x0,
|
||||
0xe, 0xfe, 0x20, 0x0, 0x0, 0x13, 0x8d, 0x20,
|
||||
0x0, 0x0, 0x0, 0xba, 0x1e, 0x30, 0x0, 0x9,
|
||||
0xb0, 0xd8, 0x0, 0x0, 0xd9, 0x4, 0xf8, 0x34,
|
||||
0xbe, 0x10, 0x4, 0xcf, 0xea, 0x20,
|
||||
|
||||
/* U+0034 "4" */
|
||||
0x0, 0x0, 0x3, 0xf5, 0x0, 0x0, 0x0, 0x1e,
|
||||
0xf5, 0x0, 0x0, 0x0, 0xb8, 0xd5, 0x0, 0x0,
|
||||
0x6, 0xc0, 0xd5, 0x0, 0x0, 0x3e, 0x20, 0xd5,
|
||||
0x0, 0x0, 0xd5, 0x0, 0xd5, 0x0, 0x9, 0x90,
|
||||
0x0, 0xd5, 0x0, 0x5d, 0x0, 0x0, 0xd5, 0x0,
|
||||
0x9f, 0xff, 0xff, 0xff, 0xf3, 0x12, 0x22, 0x22,
|
||||
0xe7, 0x20, 0x0, 0x0, 0x0, 0xd5, 0x0, 0x0,
|
||||
0x0, 0x0, 0xd5, 0x0,
|
||||
|
||||
/* U+0035 "5" */
|
||||
0x5, 0xff, 0xff, 0xff, 0x40, 0x7c, 0x33, 0x33,
|
||||
0x31, 0x8, 0xa0, 0x0, 0x0, 0x0, 0xa8, 0x0,
|
||||
0x0, 0x0, 0xb, 0x78, 0xde, 0xa2, 0x0, 0xdf,
|
||||
0x83, 0x4b, 0xe1, 0x7, 0x50, 0x0, 0xd, 0x80,
|
||||
0x0, 0x0, 0x0, 0x9b, 0x5, 0x0, 0x0, 0x9,
|
||||
0xb0, 0xf6, 0x0, 0x0, 0xe7, 0x6, 0xf8, 0x45,
|
||||
0xdd, 0x0, 0x5, 0xcf, 0xd9, 0x0,
|
||||
|
||||
/* U+0036 "6" */
|
||||
0x0, 0x9, 0xee, 0xb3, 0x0, 0xc, 0xb4, 0x5b,
|
||||
0xe1, 0x6, 0xd0, 0x0, 0xe, 0x70, 0xc6, 0x0,
|
||||
0x0, 0x0, 0xf, 0x26, 0xce, 0xb2, 0x1, 0xf8,
|
||||
0xa3, 0x4b, 0xe1, 0x2f, 0xb0, 0x0, 0xd, 0x81,
|
||||
0xf5, 0x0, 0x0, 0x9b, 0xf, 0x60, 0x0, 0x9,
|
||||
0xb0, 0x9b, 0x0, 0x0, 0xe7, 0x2, 0xea, 0x44,
|
||||
0xcd, 0x0, 0x2, 0xae, 0xea, 0x10,
|
||||
|
||||
/* U+0037 "7" */
|
||||
0x7f, 0xff, 0xff, 0xff, 0x1, 0x44, 0x44, 0x49,
|
||||
0xe0, 0x0, 0x0, 0x0, 0xc8, 0x0, 0x0, 0x0,
|
||||
0x2f, 0x20, 0x0, 0x0, 0x9, 0xb0, 0x0, 0x0,
|
||||
0x0, 0xe5, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0,
|
||||
0x0, 0xc, 0x90, 0x0, 0x0, 0x2, 0xf3, 0x0,
|
||||
0x0, 0x0, 0x8c, 0x0, 0x0, 0x0, 0xe, 0x60,
|
||||
0x0, 0x0, 0x5, 0xf1, 0x0, 0x0,
|
||||
|
||||
/* U+0038 "8" */
|
||||
0x0, 0x5c, 0xfe, 0xa2, 0x0, 0x6f, 0x62, 0x3a,
|
||||
0xe1, 0xd, 0x70, 0x0, 0xd, 0x60, 0xc6, 0x0,
|
||||
0x0, 0xc6, 0x6, 0xd3, 0x0, 0x6e, 0x10, 0x8,
|
||||
0xff, 0xff, 0x30, 0x8, 0xe6, 0x23, 0x9f, 0x32,
|
||||
0xf3, 0x0, 0x0, 0xab, 0x4f, 0x0, 0x0, 0x6,
|
||||
0xe2, 0xf3, 0x0, 0x0, 0xab, 0xa, 0xe5, 0x23,
|
||||
0x9f, 0x40, 0x7, 0xdf, 0xeb, 0x30,
|
||||
|
||||
/* U+0039 "9" */
|
||||
0x0, 0x5c, 0xfd, 0x80, 0x0, 0x6f, 0x73, 0x4c,
|
||||
0xa0, 0xf, 0x60, 0x0, 0x1e, 0x32, 0xf2, 0x0,
|
||||
0x0, 0xb8, 0xf, 0x40, 0x0, 0xe, 0xa0, 0xae,
|
||||
0x40, 0x2a, 0xcc, 0x0, 0x9f, 0xfe, 0x58, 0xb0,
|
||||
0x0, 0x1, 0x0, 0xa9, 0x7, 0x20, 0x0, 0xe,
|
||||
0x60, 0xb9, 0x0, 0x6, 0xf0, 0x4, 0xf7, 0x37,
|
||||
0xf6, 0x0, 0x5, 0xcf, 0xc6, 0x0,
|
||||
|
||||
/* U+003A ":" */
|
||||
0x0, 0xa, 0xd0, 0x9c, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xa, 0xd0, 0x9c, 0x0,
|
||||
|
||||
/* U+003B ";" */
|
||||
0x0, 0xa, 0xd0, 0x9c, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0xb, 0xd0, 0xaf, 0x40, 0xc2, 0x8a,
|
||||
0x6, 0x0,
|
||||
|
||||
/* U+003C "<" */
|
||||
0x0, 0x0, 0x0, 0x1, 0x70, 0x0, 0x0, 0x29,
|
||||
0xfa, 0x0, 0x2, 0xaf, 0xa2, 0x0, 0x3b, 0xf9,
|
||||
0x20, 0x0, 0x3f, 0xc1, 0x0, 0x0, 0x0, 0x7e,
|
||||
0xc5, 0x0, 0x0, 0x0, 0x7, 0xed, 0x60, 0x0,
|
||||
0x0, 0x0, 0x6d, 0xe6, 0x0, 0x0, 0x0, 0x5,
|
||||
0xa0,
|
||||
|
||||
/* U+003D "=" */
|
||||
0x3f, 0xff, 0xff, 0xff, 0xd0, 0x22, 0x22, 0x22,
|
||||
0x22, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff,
|
||||
0xff, 0xfd, 0x2, 0x22, 0x22, 0x22, 0x20,
|
||||
|
||||
/* U+003E ">" */
|
||||
0x26, 0x0, 0x0, 0x0, 0x1, 0xde, 0x70, 0x0,
|
||||
0x0, 0x0, 0x5c, 0xe7, 0x10, 0x0, 0x0, 0x4,
|
||||
0xbf, 0x81, 0x0, 0x0, 0x0, 0x4e, 0xd0, 0x0,
|
||||
0x1, 0x7e, 0xc5, 0x0, 0x18, 0xfc, 0x40, 0x1,
|
||||
0x9f, 0xb3, 0x0, 0x0, 0x3a, 0x20, 0x0, 0x0,
|
||||
0x0,
|
||||
|
||||
/* U+003F "?" */
|
||||
0x0, 0x7d, 0xfd, 0x50, 0x7, 0xe6, 0x37, 0xf5,
|
||||
0xf, 0x50, 0x0, 0xaa, 0x1d, 0x10, 0x0, 0x9b,
|
||||
0x0, 0x0, 0x1, 0xe7, 0x0, 0x0, 0x1c, 0xc0,
|
||||
0x0, 0x0, 0xcc, 0x0, 0x0, 0x3, 0xf1, 0x0,
|
||||
0x0, 0x5, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x8, 0xd0, 0x0, 0x0, 0x7, 0xd0, 0x0,
|
||||
|
||||
/* U+0040 "@" */
|
||||
0x0, 0x0, 0x7b, 0xee, 0xc7, 0x0, 0x0, 0x2,
|
||||
0xd9, 0x30, 0x2, 0x9d, 0x10, 0x0, 0xe5, 0x5,
|
||||
0xcd, 0x48, 0x6b, 0x0, 0x9a, 0x5, 0xf6, 0x3d,
|
||||
0xb0, 0xc2, 0xe, 0x30, 0xe5, 0x0, 0xa6, 0x9,
|
||||
0x51, 0xf0, 0x3e, 0x0, 0xd, 0x20, 0xa3, 0x1f,
|
||||
0x5, 0xc0, 0x3, 0xe0, 0x1d, 0x0, 0xe2, 0x2f,
|
||||
0x23, 0xcc, 0x1b, 0x60, 0xa, 0x70, 0x7e, 0xd3,
|
||||
0xcd, 0x63, 0x50, 0x2e, 0x20, 0x0, 0x0, 0x2,
|
||||
0xe3, 0x0, 0x5e, 0x72, 0x0, 0x16, 0xd4, 0x0,
|
||||
0x0, 0x18, 0xce, 0xed, 0x81, 0x0,
|
||||
|
||||
/* U+0041 "A" */
|
||||
0x0, 0x0, 0xaf, 0x30, 0x0, 0x0, 0x0, 0x1f,
|
||||
0xd9, 0x0, 0x0, 0x0, 0x6, 0xc4, 0xe0, 0x0,
|
||||
0x0, 0x0, 0xc6, 0xe, 0x50, 0x0, 0x0, 0x2f,
|
||||
0x0, 0x8b, 0x0, 0x0, 0x8, 0xa0, 0x2, 0xf1,
|
||||
0x0, 0x0, 0xe3, 0x0, 0xb, 0x70, 0x0, 0x4f,
|
||||
0xff, 0xff, 0xfd, 0x0, 0xa, 0x92, 0x22, 0x23,
|
||||
0xf3, 0x1, 0xf3, 0x0, 0x0, 0xb, 0x90, 0x6e,
|
||||
0x0, 0x0, 0x0, 0x6e, 0xc, 0x90, 0x0, 0x0,
|
||||
0x1, 0xf5,
|
||||
|
||||
/* U+0042 "B" */
|
||||
0xdf, 0xff, 0xff, 0xc5, 0x0, 0xd8, 0x22, 0x23,
|
||||
0x8f, 0x40, 0xd7, 0x0, 0x0, 0xb, 0x90, 0xd7,
|
||||
0x0, 0x0, 0xa, 0x90, 0xd7, 0x0, 0x0, 0x5e,
|
||||
0x30, 0xdf, 0xff, 0xff, 0xf5, 0x0, 0xd8, 0x22,
|
||||
0x23, 0x7e, 0x70, 0xd7, 0x0, 0x0, 0x6, 0xf0,
|
||||
0xd7, 0x0, 0x0, 0x2, 0xf2, 0xd7, 0x0, 0x0,
|
||||
0x6, 0xf0, 0xd8, 0x22, 0x24, 0x8f, 0x90, 0xdf,
|
||||
0xff, 0xff, 0xd7, 0x0,
|
||||
|
||||
/* U+0043 "C" */
|
||||
0x0, 0x5, 0xbe, 0xfc, 0x60, 0x0, 0x9, 0xf9,
|
||||
0x54, 0x8e, 0xa0, 0x5, 0xf3, 0x0, 0x0, 0x2e,
|
||||
0x60, 0xd8, 0x0, 0x0, 0x0, 0x78, 0x1f, 0x20,
|
||||
0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x4f, 0x0, 0x0, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x0, 0x13, 0xe, 0x70, 0x0, 0x0,
|
||||
0x8, 0xb0, 0x6e, 0x20, 0x0, 0x3, 0xf5, 0x0,
|
||||
0xaf, 0x85, 0x48, 0xf9, 0x0, 0x0, 0x6b, 0xee,
|
||||
0xc5, 0x0,
|
||||
|
||||
/* U+0044 "D" */
|
||||
0xdf, 0xff, 0xfc, 0x91, 0x0, 0xd9, 0x33, 0x46,
|
||||
0xde, 0x30, 0xd7, 0x0, 0x0, 0xa, 0xc0, 0xd7,
|
||||
0x0, 0x0, 0x2, 0xf4, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd6, 0xd7, 0x0, 0x0, 0x0, 0xb8, 0xd7, 0x0,
|
||||
0x0, 0x0, 0xb8, 0xd7, 0x0, 0x0, 0x0, 0xd6,
|
||||
0xd7, 0x0, 0x0, 0x3, 0xf3, 0xd7, 0x0, 0x0,
|
||||
0xc, 0xb0, 0xd9, 0x33, 0x47, 0xed, 0x20, 0xdf,
|
||||
0xff, 0xec, 0x80, 0x0,
|
||||
|
||||
/* U+0045 "E" */
|
||||
0xdf, 0xff, 0xff, 0xff, 0x3d, 0x93, 0x33, 0x33,
|
||||
0x30, 0xd7, 0x0, 0x0, 0x0, 0xd, 0x70, 0x0,
|
||||
0x0, 0x0, 0xd7, 0x0, 0x0, 0x0, 0xd, 0xff,
|
||||
0xff, 0xff, 0xd0, 0xd9, 0x22, 0x22, 0x22, 0xd,
|
||||
0x70, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd, 0x70, 0x0, 0x0, 0x0, 0xd9, 0x33, 0x33,
|
||||
0x33, 0x1d, 0xff, 0xff, 0xff, 0xf8,
|
||||
|
||||
/* U+0046 "F" */
|
||||
0xdf, 0xff, 0xff, 0xfc, 0xd9, 0x33, 0x33, 0x32,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xdf, 0xff, 0xff, 0xf7,
|
||||
0xd9, 0x22, 0x22, 0x21, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0047 "G" */
|
||||
0x0, 0x5, 0xbe, 0xec, 0x60, 0x0, 0x8, 0xf9,
|
||||
0x54, 0x8f, 0xb0, 0x5, 0xf3, 0x0, 0x0, 0x2f,
|
||||
0x60, 0xd8, 0x0, 0x0, 0x0, 0x9c, 0x1f, 0x30,
|
||||
0x0, 0x0, 0x0, 0x4, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x4f, 0x0, 0x0, 0xff, 0xff, 0xe1, 0xf2,
|
||||
0x0, 0x2, 0x22, 0x7e, 0xe, 0x80, 0x0, 0x0,
|
||||
0x5, 0xe0, 0x5f, 0x30, 0x0, 0x0, 0x6e, 0x0,
|
||||
0x9f, 0x95, 0x45, 0x9f, 0xb0, 0x0, 0x4a, 0xdf,
|
||||
0xda, 0x40,
|
||||
|
||||
/* U+0048 "H" */
|
||||
0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xe6, 0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7,
|
||||
0x0, 0x0, 0x0, 0xe6, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xe6, 0xdf, 0xff, 0xff, 0xff, 0xf6, 0xd9, 0x22,
|
||||
0x22, 0x22, 0xe6, 0xd7, 0x0, 0x0, 0x0, 0xe6,
|
||||
0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xe6, 0xd7, 0x0, 0x0, 0x0, 0xe6, 0xd7,
|
||||
0x0, 0x0, 0x0, 0xe6,
|
||||
|
||||
/* U+0049 "I" */
|
||||
0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
||||
0xb8, 0xb8, 0xb8, 0xb8,
|
||||
|
||||
/* U+004A "J" */
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x2, 0xf2,
|
||||
0xb9, 0x0, 0x3, 0xf1, 0x9c, 0x0, 0x7, 0xf0,
|
||||
0x3f, 0x84, 0x6f, 0x90, 0x5, 0xdf, 0xd8, 0x0,
|
||||
|
||||
/* U+004B "K" */
|
||||
0xd7, 0x0, 0x0, 0x1c, 0xc0, 0xd, 0x70, 0x0,
|
||||
0x1c, 0xc0, 0x0, 0xd7, 0x0, 0xc, 0xc0, 0x0,
|
||||
0xd, 0x70, 0xc, 0xc0, 0x0, 0x0, 0xd7, 0xc,
|
||||
0xc0, 0x0, 0x0, 0xd, 0x8c, 0xf7, 0x0, 0x0,
|
||||
0x0, 0xdf, 0xb6, 0xf5, 0x0, 0x0, 0xd, 0xc0,
|
||||
0x8, 0xf3, 0x0, 0x0, 0xd7, 0x0, 0xa, 0xe2,
|
||||
0x0, 0xd, 0x70, 0x0, 0xc, 0xd0, 0x0, 0xd7,
|
||||
0x0, 0x0, 0x1e, 0xb0, 0xd, 0x70, 0x0, 0x0,
|
||||
0x3f, 0x90,
|
||||
|
||||
/* U+004C "L" */
|
||||
0xd7, 0x0, 0x0, 0x0, 0xd, 0x70, 0x0, 0x0,
|
||||
0x0, 0xd7, 0x0, 0x0, 0x0, 0xd, 0x70, 0x0,
|
||||
0x0, 0x0, 0xd7, 0x0, 0x0, 0x0, 0xd, 0x70,
|
||||
0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0, 0xd,
|
||||
0x70, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd, 0x70, 0x0, 0x0, 0x0, 0xd9, 0x33, 0x33,
|
||||
0x33, 0xd, 0xff, 0xff, 0xff, 0xf0,
|
||||
|
||||
/* U+004D "M" */
|
||||
0xdf, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xdf, 0x60,
|
||||
0x0, 0x0, 0x4, 0xff, 0xde, 0xd0, 0x0, 0x0,
|
||||
0xb, 0xef, 0xd8, 0xf3, 0x0, 0x0, 0x2f, 0x8f,
|
||||
0xd7, 0xaa, 0x0, 0x0, 0x8b, 0x5f, 0xd7, 0x3f,
|
||||
0x10, 0x0, 0xe5, 0x5f, 0xd7, 0xd, 0x70, 0x5,
|
||||
0xe0, 0x5f, 0xd7, 0x6, 0xe0, 0xc, 0x80, 0x5f,
|
||||
0xd7, 0x0, 0xf5, 0x3f, 0x10, 0x5f, 0xd7, 0x0,
|
||||
0x9b, 0x9a, 0x0, 0x5f, 0xd7, 0x0, 0x2f, 0xf4,
|
||||
0x0, 0x5f, 0xd7, 0x0, 0xb, 0xd0, 0x0, 0x5f,
|
||||
|
||||
/* U+004E "N" */
|
||||
0xdd, 0x0, 0x0, 0x0, 0xf5, 0xdf, 0x80, 0x0,
|
||||
0x0, 0xf5, 0xdb, 0xf3, 0x0, 0x0, 0xf5, 0xd7,
|
||||
0x9d, 0x0, 0x0, 0xf5, 0xd7, 0xe, 0x80, 0x0,
|
||||
0xf5, 0xd7, 0x4, 0xf2, 0x0, 0xf5, 0xd7, 0x0,
|
||||
0x9c, 0x0, 0xf5, 0xd7, 0x0, 0xe, 0x70, 0xf5,
|
||||
0xd7, 0x0, 0x4, 0xf2, 0xf5, 0xd7, 0x0, 0x0,
|
||||
0xac, 0xf5, 0xd7, 0x0, 0x0, 0x1e, 0xf5, 0xd7,
|
||||
0x0, 0x0, 0x5, 0xf5,
|
||||
|
||||
/* U+004F "O" */
|
||||
0x0, 0x4, 0xae, 0xeb, 0x70, 0x0, 0x0, 0x8f,
|
||||
0x95, 0x47, 0xec, 0x10, 0x5, 0xf4, 0x0, 0x0,
|
||||
0x1d, 0x90, 0xd, 0x90, 0x0, 0x0, 0x4, 0xf2,
|
||||
0x1f, 0x30, 0x0, 0x0, 0x0, 0xe5, 0x4f, 0x0,
|
||||
0x0, 0x0, 0x0, 0xc8, 0x4f, 0x0, 0x0, 0x0,
|
||||
0x0, 0xc8, 0x1f, 0x30, 0x0, 0x0, 0x0, 0xe5,
|
||||
0xe, 0x80, 0x0, 0x0, 0x4, 0xf2, 0x5, 0xf3,
|
||||
0x0, 0x0, 0x1d, 0x90, 0x0, 0x9f, 0x95, 0x47,
|
||||
0xec, 0x10, 0x0, 0x4, 0xbe, 0xeb, 0x70, 0x0,
|
||||
|
||||
/* U+0050 "P" */
|
||||
0xdf, 0xff, 0xfe, 0xb3, 0xd, 0x93, 0x33, 0x4a,
|
||||
0xf3, 0xd7, 0x0, 0x0, 0xc, 0x9d, 0x70, 0x0,
|
||||
0x0, 0x9b, 0xd7, 0x0, 0x0, 0xb, 0x9d, 0x70,
|
||||
0x0, 0x17, 0xf4, 0xdf, 0xff, 0xff, 0xe6, 0xd,
|
||||
0x92, 0x22, 0x10, 0x0, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xd, 0x70, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xd, 0x70, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0051 "Q" */
|
||||
0x0, 0x4, 0xae, 0xeb, 0x70, 0x0, 0x0, 0x8f,
|
||||
0x95, 0x47, 0xec, 0x10, 0x5, 0xf4, 0x0, 0x0,
|
||||
0x1d, 0x90, 0xd, 0x90, 0x0, 0x0, 0x4, 0xf2,
|
||||
0x1f, 0x30, 0x0, 0x0, 0x0, 0xe5, 0x4f, 0x0,
|
||||
0x0, 0x0, 0x0, 0xc8, 0x4f, 0x0, 0x0, 0x0,
|
||||
0x0, 0xc8, 0x1f, 0x30, 0x0, 0x29, 0x0, 0xe5,
|
||||
0xe, 0x80, 0x0, 0xc, 0x94, 0xf2, 0x5, 0xf3,
|
||||
0x0, 0x1, 0xee, 0x90, 0x0, 0x9f, 0x95, 0x47,
|
||||
0xef, 0x40, 0x0, 0x4, 0xbe, 0xfc, 0x67, 0xe0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
|
||||
|
||||
/* U+0052 "R" */
|
||||
0xdf, 0xff, 0xff, 0xc4, 0x0, 0xd9, 0x33, 0x34,
|
||||
0x9f, 0x30, 0xd7, 0x0, 0x0, 0xc, 0x90, 0xd7,
|
||||
0x0, 0x0, 0x9, 0xc0, 0xd7, 0x0, 0x0, 0xb,
|
||||
0xa0, 0xd7, 0x0, 0x1, 0x7f, 0x20, 0xdf, 0xff,
|
||||
0xff, 0xf3, 0x0, 0xd9, 0x22, 0x34, 0xaf, 0x10,
|
||||
0xd7, 0x0, 0x0, 0xd, 0x70, 0xd7, 0x0, 0x0,
|
||||
0xa, 0x90, 0xd7, 0x0, 0x0, 0x8, 0xc0, 0xd7,
|
||||
0x0, 0x0, 0x4, 0xf2,
|
||||
|
||||
/* U+0053 "S" */
|
||||
0x0, 0x6c, 0xfe, 0xc6, 0x0, 0x9, 0xe7, 0x44,
|
||||
0x8f, 0x80, 0xf, 0x40, 0x0, 0x6, 0xf0, 0x1f,
|
||||
0x40, 0x0, 0x0, 0xa2, 0xa, 0xe5, 0x0, 0x0,
|
||||
0x0, 0x0, 0x7d, 0xfa, 0x50, 0x0, 0x0, 0x0,
|
||||
0x27, 0xde, 0x50, 0x0, 0x0, 0x0, 0x6, 0xf3,
|
||||
0x5f, 0x0, 0x0, 0x0, 0xc8, 0x1f, 0x50, 0x0,
|
||||
0x0, 0xe6, 0x7, 0xf8, 0x44, 0x6d, 0xe1, 0x0,
|
||||
0x5c, 0xef, 0xd9, 0x10,
|
||||
|
||||
/* U+0054 "T" */
|
||||
0xbf, 0xff, 0xff, 0xff, 0xf9, 0x23, 0x33, 0xca,
|
||||
0x33, 0x32, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0,
|
||||
0x0, 0xb9, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x0,
|
||||
0x0, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0x0,
|
||||
0xb9, 0x0, 0x0, 0x0, 0x0, 0xb9, 0x0, 0x0,
|
||||
0x0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0x0, 0xb9,
|
||||
0x0, 0x0, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0,
|
||||
0x0, 0xb9, 0x0, 0x0,
|
||||
|
||||
/* U+0055 "U" */
|
||||
0xd7, 0x0, 0x0, 0x0, 0xf4, 0xd7, 0x0, 0x0,
|
||||
0x0, 0xf4, 0xd7, 0x0, 0x0, 0x0, 0xf4, 0xd7,
|
||||
0x0, 0x0, 0x0, 0xf4, 0xd7, 0x0, 0x0, 0x0,
|
||||
0xf4, 0xd7, 0x0, 0x0, 0x0, 0xf4, 0xd7, 0x0,
|
||||
0x0, 0x0, 0xf4, 0xc8, 0x0, 0x0, 0x1, 0xf3,
|
||||
0xaa, 0x0, 0x0, 0x3, 0xf1, 0x6f, 0x10, 0x0,
|
||||
0x9, 0xd0, 0xd, 0xe6, 0x45, 0xaf, 0x40, 0x0,
|
||||
0x8d, 0xfe, 0xb3, 0x0,
|
||||
|
||||
/* U+0056 "V" */
|
||||
0xba, 0x0, 0x0, 0x0, 0x7e, 0x6, 0xf0, 0x0,
|
||||
0x0, 0xc, 0x90, 0x1f, 0x50, 0x0, 0x2, 0xf4,
|
||||
0x0, 0xbb, 0x0, 0x0, 0x7e, 0x0, 0x5, 0xf1,
|
||||
0x0, 0xd, 0x80, 0x0, 0xf, 0x60, 0x2, 0xf3,
|
||||
0x0, 0x0, 0xab, 0x0, 0x8d, 0x0, 0x0, 0x4,
|
||||
0xf1, 0xd, 0x80, 0x0, 0x0, 0xe, 0x62, 0xf2,
|
||||
0x0, 0x0, 0x0, 0x9c, 0x8c, 0x0, 0x0, 0x0,
|
||||
0x3, 0xfe, 0x70, 0x0, 0x0, 0x0, 0xd, 0xf1,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+0057 "W" */
|
||||
0xca, 0x0, 0x0, 0x6f, 0x40, 0x0, 0xc, 0xa8,
|
||||
0xe0, 0x0, 0xa, 0xf8, 0x0, 0x0, 0xf6, 0x3f,
|
||||
0x20, 0x0, 0xeb, 0xc0, 0x0, 0x4f, 0x10, 0xf6,
|
||||
0x0, 0x2f, 0x3f, 0x10, 0x8, 0xd0, 0xb, 0xa0,
|
||||
0x6, 0xc0, 0xe4, 0x0, 0xc9, 0x0, 0x6e, 0x0,
|
||||
0xb8, 0x9, 0x90, 0xf, 0x40, 0x2, 0xf2, 0xf,
|
||||
0x30, 0x5d, 0x4, 0xf0, 0x0, 0xd, 0x63, 0xf0,
|
||||
0x1, 0xf1, 0x8b, 0x0, 0x0, 0x9a, 0x7b, 0x0,
|
||||
0xd, 0x5c, 0x70, 0x0, 0x5, 0xeb, 0x70, 0x0,
|
||||
0x9a, 0xf3, 0x0, 0x0, 0x1f, 0xf3, 0x0, 0x5,
|
||||
0xfe, 0x0, 0x0, 0x0, 0xce, 0x0, 0x0, 0x1f,
|
||||
0xa0, 0x0,
|
||||
|
||||
/* U+0058 "X" */
|
||||
0x4f, 0x50, 0x0, 0x2, 0xf7, 0x0, 0x9e, 0x10,
|
||||
0x0, 0xcc, 0x0, 0x0, 0xda, 0x0, 0x7f, 0x20,
|
||||
0x0, 0x4, 0xf5, 0x2f, 0x60, 0x0, 0x0, 0x9,
|
||||
0xec, 0xb0, 0x0, 0x0, 0x0, 0xe, 0xf1, 0x0,
|
||||
0x0, 0x0, 0x3, 0xff, 0x50, 0x0, 0x0, 0x0,
|
||||
0xda, 0x7f, 0x10, 0x0, 0x0, 0x9e, 0x10, 0xcb,
|
||||
0x0, 0x0, 0x3f, 0x50, 0x2, 0xf6, 0x0, 0xd,
|
||||
0xb0, 0x0, 0x7, 0xf2, 0x9, 0xe1, 0x0, 0x0,
|
||||
0xc, 0xc0,
|
||||
|
||||
/* U+0059 "Y" */
|
||||
0x9e, 0x0, 0x0, 0x0, 0x6f, 0x31, 0xe9, 0x0,
|
||||
0x0, 0x1e, 0x80, 0x5, 0xf3, 0x0, 0xa, 0xd0,
|
||||
0x0, 0xa, 0xd0, 0x4, 0xf4, 0x0, 0x0, 0x1f,
|
||||
0x70, 0xda, 0x0, 0x0, 0x0, 0x6f, 0x9e, 0x10,
|
||||
0x0, 0x0, 0x0, 0xcf, 0x50, 0x0, 0x0, 0x0,
|
||||
0x5, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x5f, 0x0,
|
||||
0x0, 0x0, 0x0, 0x5, 0xf0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x5f, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf0,
|
||||
0x0, 0x0,
|
||||
|
||||
/* U+005A "Z" */
|
||||
0x1f, 0xff, 0xff, 0xff, 0xf3, 0x3, 0x33, 0x33,
|
||||
0x3d, 0xe0, 0x0, 0x0, 0x0, 0x7f, 0x30, 0x0,
|
||||
0x0, 0x3, 0xf7, 0x0, 0x0, 0x0, 0xd, 0xb0,
|
||||
0x0, 0x0, 0x0, 0xae, 0x10, 0x0, 0x0, 0x6,
|
||||
0xf4, 0x0, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x0,
|
||||
0x0, 0xdc, 0x0, 0x0, 0x0, 0x9, 0xe1, 0x0,
|
||||
0x0, 0x0, 0x5f, 0x83, 0x33, 0x33, 0x31, 0x9f,
|
||||
0xff, 0xff, 0xff, 0xf9,
|
||||
|
||||
/* U+005B "[" */
|
||||
0x4f, 0xff, 0x94, 0xe2, 0x21, 0x4e, 0x0, 0x4,
|
||||
0xe0, 0x0, 0x4e, 0x0, 0x4, 0xe0, 0x0, 0x4e,
|
||||
0x0, 0x4, 0xe0, 0x0, 0x4e, 0x0, 0x4, 0xe0,
|
||||
0x0, 0x4e, 0x0, 0x4, 0xe0, 0x0, 0x4e, 0x0,
|
||||
0x4, 0xe0, 0x0, 0x4e, 0x0, 0x4, 0xff, 0xf9,
|
||||
0x2, 0x22, 0x10,
|
||||
|
||||
/* U+005C "\\" */
|
||||
0x26, 0x0, 0x0, 0x0, 0x1f, 0x10, 0x0, 0x0,
|
||||
0xa, 0x70, 0x0, 0x0, 0x5, 0xd0, 0x0, 0x0,
|
||||
0x0, 0xe3, 0x0, 0x0, 0x0, 0x98, 0x0, 0x0,
|
||||
0x0, 0x3e, 0x0, 0x0, 0x0, 0xd, 0x40, 0x0,
|
||||
0x0, 0x7, 0xa0, 0x0, 0x0, 0x2, 0xf0, 0x0,
|
||||
0x0, 0x0, 0xc6, 0x0, 0x0, 0x0, 0x6c, 0x0,
|
||||
0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0xa, 0x70,
|
||||
0x0, 0x0, 0x4, 0xd0, 0x0, 0x0, 0x0, 0xe3,
|
||||
|
||||
/* U+005D "]" */
|
||||
0x4f, 0xff, 0x90, 0x22, 0xa9, 0x0, 0x8, 0x90,
|
||||
0x0, 0x89, 0x0, 0x8, 0x90, 0x0, 0x89, 0x0,
|
||||
0x8, 0x90, 0x0, 0x89, 0x0, 0x8, 0x90, 0x0,
|
||||
0x89, 0x0, 0x8, 0x90, 0x0, 0x89, 0x0, 0x8,
|
||||
0x90, 0x0, 0x89, 0x0, 0x8, 0x94, 0xff, 0xf9,
|
||||
0x2, 0x22, 0x10,
|
||||
|
||||
/* U+005E "^" */
|
||||
0x0, 0xa, 0xe0, 0x0, 0x0, 0x1f, 0xc6, 0x0,
|
||||
0x0, 0x89, 0x4d, 0x0, 0x0, 0xe2, 0xd, 0x40,
|
||||
0x6, 0xb0, 0x6, 0xa0, 0xd, 0x30, 0x0, 0xe1,
|
||||
|
||||
/* U+005F "_" */
|
||||
0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22,
|
||||
|
||||
/* U+0060 "`" */
|
||||
0x56, 0x0, 0x1e, 0x30, 0x2, 0xc0,
|
||||
|
||||
/* U+0061 "a" */
|
||||
0x0, 0x9e, 0xfd, 0x70, 0xb, 0xd5, 0x24, 0xd7,
|
||||
0x4, 0x10, 0x0, 0x6d, 0x0, 0x7c, 0xee, 0xef,
|
||||
0xb, 0xd4, 0x21, 0x6f, 0x2f, 0x20, 0x0, 0x7f,
|
||||
0x4f, 0x0, 0x0, 0xdf, 0x1f, 0x92, 0x3c, 0xaf,
|
||||
0x4, 0xdf, 0xd5, 0x3f,
|
||||
|
||||
/* U+0062 "b" */
|
||||
0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
|
||||
0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x7d,
|
||||
0xe9, 0x0, 0xf, 0xb9, 0x34, 0xdc, 0x0, 0xfb,
|
||||
0x0, 0x1, 0xf5, 0xf, 0x50, 0x0, 0xb, 0x90,
|
||||
0xf3, 0x0, 0x0, 0xaa, 0xf, 0x50, 0x0, 0xb,
|
||||
0x90, 0xfa, 0x0, 0x1, 0xf5, 0xf, 0xc8, 0x24,
|
||||
0xcc, 0x0, 0xf3, 0x9e, 0xe9, 0x0,
|
||||
|
||||
/* U+0063 "c" */
|
||||
0x0, 0x5c, 0xfd, 0x80, 0x0, 0x6f, 0x73, 0x6e,
|
||||
0x90, 0xe, 0x70, 0x0, 0x6f, 0x3, 0xf1, 0x0,
|
||||
0x0, 0x10, 0x4f, 0x0, 0x0, 0x0, 0x3, 0xf1,
|
||||
0x0, 0x0, 0x50, 0xe, 0x60, 0x0, 0x4f, 0x0,
|
||||
0x7f, 0x62, 0x5e, 0x80, 0x0, 0x6c, 0xfd, 0x70,
|
||||
0x0,
|
||||
|
||||
/* U+0064 "d" */
|
||||
0x0, 0x0, 0x0, 0xe, 0x60, 0x0, 0x0, 0x0,
|
||||
0xe6, 0x0, 0x0, 0x0, 0xe, 0x60, 0x6, 0xce,
|
||||
0xa1, 0xe6, 0x6, 0xf6, 0x25, 0xbe, 0x60, 0xe6,
|
||||
0x0, 0x5, 0xf6, 0x3f, 0x10, 0x0, 0xf, 0x64,
|
||||
0xf0, 0x0, 0x0, 0xe6, 0x3f, 0x10, 0x0, 0xf,
|
||||
0x60, 0xe6, 0x0, 0x4, 0xf6, 0x6, 0xf6, 0x25,
|
||||
0xde, 0x60, 0x6, 0xcf, 0xb3, 0xc6,
|
||||
|
||||
/* U+0065 "e" */
|
||||
0x0, 0x6c, 0xfc, 0x50, 0x0, 0x7e, 0x63, 0x6e,
|
||||
0x50, 0x1f, 0x50, 0x0, 0x6d, 0x5, 0xf0, 0x0,
|
||||
0x1, 0xf2, 0x7f, 0xee, 0xee, 0xef, 0x45, 0xe1,
|
||||
0x11, 0x11, 0x10, 0x2f, 0x30, 0x0, 0x4c, 0x0,
|
||||
0x8e, 0x52, 0x6e, 0x80, 0x0, 0x7d, 0xfd, 0x60,
|
||||
0x0,
|
||||
|
||||
/* U+0066 "f" */
|
||||
0x0, 0x3d, 0xfe, 0x0, 0xbb, 0x32, 0x0, 0xd7,
|
||||
0x0, 0xef, 0xff, 0xfc, 0x22, 0xd8, 0x21, 0x0,
|
||||
0xd6, 0x0, 0x0, 0xd6, 0x0, 0x0, 0xd6, 0x0,
|
||||
0x0, 0xd6, 0x0, 0x0, 0xd6, 0x0, 0x0, 0xd6,
|
||||
0x0, 0x0, 0xd6, 0x0,
|
||||
|
||||
/* U+0067 "g" */
|
||||
0x0, 0x5c, 0xeb, 0x2c, 0x70, 0x6f, 0x72, 0x5c,
|
||||
0xe7, 0xe, 0x70, 0x0, 0x4f, 0x73, 0xf1, 0x0,
|
||||
0x0, 0xe7, 0x4f, 0x0, 0x0, 0xd, 0x73, 0xf1,
|
||||
0x0, 0x0, 0xe7, 0xe, 0x60, 0x0, 0x4f, 0x70,
|
||||
0x6f, 0x63, 0x5c, 0xd7, 0x0, 0x6c, 0xeb, 0x2d,
|
||||
0x60, 0x42, 0x0, 0x0, 0xf3, 0xa, 0xe4, 0x23,
|
||||
0xbc, 0x0, 0x8, 0xef, 0xe9, 0x10,
|
||||
|
||||
/* U+0068 "h" */
|
||||
0xf, 0x40, 0x0, 0x0, 0xf, 0x40, 0x0, 0x0,
|
||||
0xf, 0x40, 0x0, 0x0, 0xf, 0x48, 0xee, 0x80,
|
||||
0xf, 0xc7, 0x36, 0xf7, 0xf, 0x90, 0x0, 0x9c,
|
||||
0xf, 0x50, 0x0, 0x6e, 0xf, 0x40, 0x0, 0x5e,
|
||||
0xf, 0x40, 0x0, 0x5e, 0xf, 0x40, 0x0, 0x5e,
|
||||
0xf, 0x40, 0x0, 0x5e, 0xf, 0x40, 0x0, 0x5e,
|
||||
|
||||
/* U+0069 "i" */
|
||||
0xab, 0xa, 0xc0, 0x0, 0x9, 0xa0, 0x9a, 0x9,
|
||||
0xa0, 0x9a, 0x9, 0xa0, 0x9a, 0x9, 0xa0, 0x9a,
|
||||
0x9, 0xa0,
|
||||
|
||||
/* U+006A "j" */
|
||||
0x0, 0x7d, 0x0, 0x8, 0xd0, 0x0, 0x0, 0x0,
|
||||
0x6, 0xd0, 0x0, 0x6d, 0x0, 0x6, 0xd0, 0x0,
|
||||
0x6d, 0x0, 0x6, 0xd0, 0x0, 0x6d, 0x0, 0x6,
|
||||
0xd0, 0x0, 0x6d, 0x0, 0x6, 0xd0, 0x0, 0x7d,
|
||||
0x0, 0x3c, 0xb0, 0x3f, 0xd2, 0x0,
|
||||
|
||||
/* U+006B "k" */
|
||||
0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0,
|
||||
0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0xf4, 0x0,
|
||||
0x2e, 0x90, 0xf, 0x40, 0x2e, 0x90, 0x0, 0xf4,
|
||||
0x2e, 0x90, 0x0, 0xf, 0x6e, 0xb0, 0x0, 0x0,
|
||||
0xff, 0xcf, 0x20, 0x0, 0xf, 0x90, 0xbd, 0x0,
|
||||
0x0, 0xf4, 0x1, 0xe9, 0x0, 0xf, 0x40, 0x4,
|
||||
0xf5, 0x0, 0xf4, 0x0, 0x8, 0xf2,
|
||||
|
||||
/* U+006C "l" */
|
||||
0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8,
|
||||
0xb8, 0xb8, 0xb8, 0xb8,
|
||||
|
||||
/* U+006D "m" */
|
||||
0xf, 0x5a, 0xec, 0x40, 0x9e, 0xd6, 0x0, 0xfe,
|
||||
0x63, 0x9e, 0xa7, 0x37, 0xf4, 0xf, 0x80, 0x0,
|
||||
0xeb, 0x0, 0xb, 0x90, 0xf4, 0x0, 0xc, 0x80,
|
||||
0x0, 0x9a, 0xf, 0x40, 0x0, 0xc7, 0x0, 0x9,
|
||||
0xa0, 0xf4, 0x0, 0xc, 0x70, 0x0, 0x9a, 0xf,
|
||||
0x40, 0x0, 0xc7, 0x0, 0x9, 0xa0, 0xf4, 0x0,
|
||||
0xc, 0x70, 0x0, 0x9a, 0xf, 0x40, 0x0, 0xc7,
|
||||
0x0, 0x9, 0xa0,
|
||||
|
||||
/* U+006E "n" */
|
||||
0xf, 0x49, 0xee, 0x80, 0xf, 0xd7, 0x36, 0xf7,
|
||||
0xf, 0x90, 0x0, 0x8c, 0xf, 0x50, 0x0, 0x5e,
|
||||
0xf, 0x40, 0x0, 0x5f, 0xf, 0x40, 0x0, 0x5f,
|
||||
0xf, 0x40, 0x0, 0x5f, 0xf, 0x40, 0x0, 0x5f,
|
||||
0xf, 0x40, 0x0, 0x5f,
|
||||
|
||||
/* U+006F "o" */
|
||||
0x0, 0x4c, 0xfd, 0x80, 0x0, 0x5f, 0x73, 0x5d,
|
||||
0xb0, 0xe, 0x70, 0x0, 0x2f, 0x42, 0xf1, 0x0,
|
||||
0x0, 0xb8, 0x4f, 0x0, 0x0, 0xa, 0xa2, 0xf1,
|
||||
0x0, 0x0, 0xb8, 0xe, 0x70, 0x0, 0x2f, 0x40,
|
||||
0x5f, 0x72, 0x4d, 0xb0, 0x0, 0x4c, 0xfd, 0x80,
|
||||
0x0,
|
||||
|
||||
/* U+0070 "p" */
|
||||
0xf, 0x39, 0xee, 0x90, 0x0, 0xfc, 0x93, 0x4d,
|
||||
0xc0, 0xf, 0xa0, 0x0, 0x1f, 0x50, 0xf5, 0x0,
|
||||
0x0, 0xb9, 0xf, 0x30, 0x0, 0xa, 0xa0, 0xf5,
|
||||
0x0, 0x0, 0xb9, 0xf, 0xa0, 0x0, 0x1f, 0x50,
|
||||
0xfb, 0x82, 0x4c, 0xc0, 0xf, 0x47, 0xde, 0xa0,
|
||||
0x0, 0xf4, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
|
||||
0x0, 0x0, 0xf4, 0x0, 0x0, 0x0,
|
||||
|
||||
/* U+0071 "q" */
|
||||
0x0, 0x6c, 0xfb, 0x2c, 0x60, 0x6f, 0x62, 0x5d,
|
||||
0xe6, 0xe, 0x60, 0x0, 0x4f, 0x63, 0xf1, 0x0,
|
||||
0x0, 0xf6, 0x4f, 0x0, 0x0, 0xe, 0x63, 0xf1,
|
||||
0x0, 0x0, 0xf6, 0xe, 0x60, 0x0, 0x4f, 0x60,
|
||||
0x7f, 0x62, 0x5b, 0xe6, 0x0, 0x6d, 0xea, 0x1e,
|
||||
0x60, 0x0, 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0,
|
||||
0xe, 0x60, 0x0, 0x0, 0x0, 0xe6,
|
||||
|
||||
/* U+0072 "r" */
|
||||
0xf, 0x4a, 0xfc, 0xf, 0xcc, 0x66, 0xf, 0xc0,
|
||||
0x0, 0xf, 0x60, 0x0, 0xf, 0x40, 0x0, 0xf,
|
||||
0x30, 0x0, 0xf, 0x30, 0x0, 0xf, 0x30, 0x0,
|
||||
0xf, 0x30, 0x0,
|
||||
|
||||
/* U+0073 "s" */
|
||||
0x3, 0xbf, 0xeb, 0x20, 0x1f, 0x93, 0x4b, 0xe0,
|
||||
0x3f, 0x10, 0x1, 0xa2, 0xc, 0xd7, 0x20, 0x0,
|
||||
0x0, 0x6b, 0xfd, 0x50, 0x0, 0x0, 0x6, 0xf4,
|
||||
0x5d, 0x0, 0x0, 0xd8, 0x1e, 0x92, 0x27, 0xf4,
|
||||
0x3, 0xbe, 0xfd, 0x60,
|
||||
|
||||
/* U+0074 "t" */
|
||||
0x0, 0x82, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xf3,
|
||||
0x0, 0xbf, 0xff, 0xf3, 0x13, 0xf5, 0x20, 0x0,
|
||||
0xf3, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xf3, 0x0,
|
||||
0x0, 0xf3, 0x0, 0x0, 0xf3, 0x0, 0x0, 0xe7,
|
||||
0x20, 0x0, 0x7f, 0xf0,
|
||||
|
||||
/* U+0075 "u" */
|
||||
0xf, 0x40, 0x0, 0x4f, 0xf, 0x40, 0x0, 0x4f,
|
||||
0xf, 0x40, 0x0, 0x4f, 0xf, 0x40, 0x0, 0x4f,
|
||||
0xf, 0x40, 0x0, 0x4f, 0xf, 0x40, 0x0, 0x5f,
|
||||
0xe, 0x70, 0x0, 0xbf, 0x9, 0xe5, 0x39, 0xdf,
|
||||
0x0, 0x9e, 0xd8, 0x5f,
|
||||
|
||||
/* U+0076 "v" */
|
||||
0xba, 0x0, 0x0, 0xe7, 0x6f, 0x0, 0x4, 0xf1,
|
||||
0x1f, 0x40, 0x9, 0xc0, 0xb, 0xa0, 0xe, 0x60,
|
||||
0x5, 0xe0, 0x3f, 0x10, 0x0, 0xf4, 0x9b, 0x0,
|
||||
0x0, 0xa9, 0xe5, 0x0, 0x0, 0x5f, 0xf0, 0x0,
|
||||
0x0, 0xf, 0xa0, 0x0,
|
||||
|
||||
/* U+0077 "w" */
|
||||
0xc9, 0x0, 0xb, 0xc0, 0x0, 0x8d, 0x7e, 0x0,
|
||||
0xf, 0xf0, 0x0, 0xd8, 0x2f, 0x20, 0x3d, 0xc4,
|
||||
0x1, 0xf3, 0xd, 0x70, 0x79, 0x78, 0x6, 0xe0,
|
||||
0x8, 0xb0, 0xb4, 0x3d, 0xa, 0x90, 0x3, 0xf1,
|
||||
0xf0, 0xf, 0x1e, 0x40, 0x0, 0xe9, 0xc0, 0xb,
|
||||
0x9f, 0x0, 0x0, 0x9f, 0x70, 0x6, 0xfa, 0x0,
|
||||
0x0, 0x4f, 0x30, 0x2, 0xf5, 0x0,
|
||||
|
||||
/* U+0078 "x" */
|
||||
0x3f, 0x40, 0x2, 0xf5, 0x0, 0x8e, 0x0, 0xca,
|
||||
0x0, 0x0, 0xd9, 0x7e, 0x10, 0x0, 0x2, 0xff,
|
||||
0x40, 0x0, 0x0, 0xd, 0xe1, 0x0, 0x0, 0x8,
|
||||
0xdc, 0xa0, 0x0, 0x3, 0xf4, 0x2f, 0x50, 0x0,
|
||||
0xd9, 0x0, 0x7e, 0x10, 0x9e, 0x0, 0x0, 0xcb,
|
||||
0x0,
|
||||
|
||||
/* U+0079 "y" */
|
||||
0xba, 0x0, 0x0, 0xba, 0x5f, 0x0, 0x1, 0xf4,
|
||||
0xe, 0x60, 0x7, 0xe0, 0x9, 0xc0, 0xc, 0x80,
|
||||
0x2, 0xf2, 0x2f, 0x20, 0x0, 0xc8, 0x8c, 0x0,
|
||||
0x0, 0x6d, 0xd6, 0x0, 0x0, 0xf, 0xf0, 0x0,
|
||||
0x0, 0xb, 0xa0, 0x0, 0x0, 0x1f, 0x40, 0x0,
|
||||
0x0, 0x7e, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0,
|
||||
|
||||
/* U+007A "z" */
|
||||
0x6f, 0xff, 0xff, 0xf2, 0x2, 0x22, 0x2d, 0xb0,
|
||||
0x0, 0x0, 0x8e, 0x10, 0x0, 0x4, 0xf4, 0x0,
|
||||
0x0, 0x1e, 0x80, 0x0, 0x0, 0xbc, 0x0, 0x0,
|
||||
0x7, 0xe2, 0x0, 0x0, 0x3f, 0x72, 0x22, 0x20,
|
||||
0x9f, 0xff, 0xff, 0xf6,
|
||||
|
||||
/* U+007B "{" */
|
||||
0x0, 0x4d, 0xe0, 0xe, 0x72, 0x1, 0xf1, 0x0,
|
||||
0x2f, 0x0, 0x2, 0xf0, 0x0, 0x2f, 0x0, 0x3,
|
||||
0xf0, 0x0, 0x8b, 0x0, 0xaf, 0x10, 0x2, 0xab,
|
||||
0x0, 0x3, 0xf0, 0x0, 0x2f, 0x0, 0x2, 0xf0,
|
||||
0x0, 0x2f, 0x0, 0x0, 0xf4, 0x0, 0x8, 0xfe,
|
||||
0x0, 0x0, 0x10,
|
||||
|
||||
/* U+007C "|" */
|
||||
0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
|
||||
0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1, 0xf1,
|
||||
0xf1,
|
||||
|
||||
/* U+007D "}" */
|
||||
0x9e, 0x80, 0x1, 0x4f, 0x40, 0x0, 0xb7, 0x0,
|
||||
0xb, 0x70, 0x0, 0xb7, 0x0, 0xb, 0x70, 0x0,
|
||||
0xa8, 0x0, 0x6, 0xc1, 0x0, 0xb, 0xf0, 0x5,
|
||||
0xd4, 0x0, 0xa8, 0x0, 0xb, 0x70, 0x0, 0xb7,
|
||||
0x0, 0xb, 0x70, 0x1, 0xe6, 0x9, 0xfc, 0x0,
|
||||
0x11, 0x0, 0x0,
|
||||
|
||||
/* U+007E "~" */
|
||||
0x1a, 0xea, 0x40, 0x54, 0x57, 0x16, 0xdf, 0xd2,
|
||||
0x0, 0x0, 0x1, 0x0,
|
||||
|
||||
/* U+007F "" */
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*---------------------
|
||||
* 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 = 85, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 0, .adv_w = 85, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 18, .adv_w = 109, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 31, .adv_w = 154, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 91, .adv_w = 154, .box_w = 9, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 163, .adv_w = 248, .box_w = 14, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 247, .adv_w = 186, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 319, .adv_w = 62, .box_w = 2, .box_h = 5, .ofs_x = 1, .ofs_y = 7},
|
||||
{.bitmap_index = 324, .adv_w = 85, .box_w = 5, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 364, .adv_w = 85, .box_w = 5, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 404, .adv_w = 130, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 436, .adv_w = 155, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 477, .adv_w = 68, .box_w = 3, .box_h = 6, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 486, .adv_w = 155, .box_w = 9, .box_h = 2, .ofs_x = 0, .ofs_y = 3},
|
||||
{.bitmap_index = 495, .adv_w = 68, .box_w = 3, .box_h = 3, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 500, .adv_w = 128, .box_w = 8, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 564, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 618, .adv_w = 103, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 648, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 702, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 756, .adv_w = 154, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 816, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 870, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 924, .adv_w = 140, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 978, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1032, .adv_w = 154, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1086, .adv_w = 68, .box_w = 3, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1100, .adv_w = 68, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
|
||||
{.bitmap_index = 1118, .adv_w = 155, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1159, .adv_w = 155, .box_w = 9, .box_h = 5, .ofs_x = 0, .ofs_y = 1},
|
||||
{.bitmap_index = 1182, .adv_w = 155, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1223, .adv_w = 137, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1271, .adv_w = 220, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1349, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1415, .adv_w = 173, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1475, .adv_w = 186, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1541, .adv_w = 181, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1601, .adv_w = 163, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1655, .adv_w = 148, .box_w = 8, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1703, .adv_w = 191, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1769, .adv_w = 184, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1829, .adv_w = 61, .box_w = 2, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1841, .adv_w = 132, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 1889, .adv_w = 177, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 1955, .adv_w = 151, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2009, .adv_w = 226, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2081, .adv_w = 184, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2141, .adv_w = 196, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2213, .adv_w = 164, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2267, .adv_w = 196, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
|
||||
{.bitmap_index = 2345, .adv_w = 173, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2405, .adv_w = 162, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2465, .adv_w = 158, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2525, .adv_w = 183, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 2585, .adv_w = 164, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2651, .adv_w = 238, .box_w = 15, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2741, .adv_w = 163, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2807, .adv_w = 169, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2873, .adv_w = 160, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 2933, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 2976, .adv_w = 128, .box_w = 8, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
|
||||
{.bitmap_index = 3040, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3083, .adv_w = 133, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 6},
|
||||
{.bitmap_index = 3107, .adv_w = 128, .box_w = 8, .box_h = 2, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3115, .adv_w = 85, .box_w = 4, .box_h = 3, .ofs_x = 1, .ofs_y = 10},
|
||||
{.bitmap_index = 3121, .adv_w = 143, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3157, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3211, .adv_w = 140, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3252, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3306, .adv_w = 142, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3347, .adv_w = 95, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3383, .adv_w = 151, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3437, .adv_w = 142, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3485, .adv_w = 66, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 3503, .adv_w = 68, .box_w = 5, .box_h = 15, .ofs_x = -1, .ofs_y = -3},
|
||||
{.bitmap_index = 3541, .adv_w = 135, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3595, .adv_w = 60, .box_w = 2, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
|
||||
{.bitmap_index = 3607, .adv_w = 219, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3666, .adv_w = 143, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3702, .adv_w = 150, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3743, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3797, .adv_w = 150, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 3851, .adv_w = 93, .box_w = 6, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3878, .adv_w = 129, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3914, .adv_w = 91, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3950, .adv_w = 143, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 3986, .adv_w = 123, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4022, .adv_w = 193, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4076, .adv_w = 130, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4117, .adv_w = 127, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4165, .adv_w = 125, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
|
||||
{.bitmap_index = 4201, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4244, .adv_w = 50, .box_w = 2, .box_h = 17, .ofs_x = 1, .ofs_y = -2},
|
||||
{.bitmap_index = 4261, .adv_w = 85, .box_w = 5, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
|
||||
{.bitmap_index = 4304, .adv_w = 128, .box_w = 8, .box_h = 3, .ofs_x = 0, .ofs_y = 4},
|
||||
{.bitmap_index = 4316, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0}
|
||||
};
|
||||
|
||||
/*---------------------
|
||||
* CHARACTER MAPPING
|
||||
*--------------------*/
|
||||
|
||||
|
||||
|
||||
/*Collect the unicode lists and glyph_id offsets*/
|
||||
static const lv_font_fmt_txt_cmap_t cmaps[] =
|
||||
{
|
||||
{
|
||||
.range_start = 32, .range_length = 96, .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 ui_font_PingFangEN16 = {
|
||||
#else
|
||||
lv_font_t ui_font_PingFangEN16 = {
|
||||
#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 = 18, /*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 = -2,
|
||||
.underline_thickness = 1,
|
||||
#endif
|
||||
.dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /*#if UI_FONT_PINGFANGEN16*/
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"codename": "PingFangEN16",
|
||||
"ttf_path": "\\assets\\pingfang.otf",
|
||||
"bin_path": "\\assets\\ui_font_PingFangEN16.bin",
|
||||
"c_path": "\\assets\\ui_font_PingFangEN16.c",
|
||||
"cfg_path": "\\assets\\ui_font_PingFangEN16.fcfg",
|
||||
"size": 16,
|
||||
"bpp": 4,
|
||||
"letters": 0,
|
||||
"ranges": [
|
||||
"0x20-0x7f"
|
||||
],
|
||||
"symbols": "",
|
||||
"customparams": "--no-compress --no-prefilter",
|
||||
"uploaded": false
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"codename": "PingFangEN20",
|
||||
"ttf_path": "\\assets\\pingfang.otf",
|
||||
"bin_path": "\\assets\\ui_font_PingFangEN20.bin",
|
||||
"c_path": "\\assets\\ui_font_PingFangEN20.c",
|
||||
"cfg_path": "\\assets\\ui_font_PingFangEN20.fcfg",
|
||||
"size": 20,
|
||||
"bpp": 4,
|
||||
"letters": 0,
|
||||
"ranges": [
|
||||
"0x20-0x7f"
|
||||
],
|
||||
"symbols": "",
|
||||
"customparams": "--no-compress --no-prefilter",
|
||||
"uploaded": false
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
After Width: | Height: | Size: 964 B |
@@ -20,6 +20,4 @@ idf_component_register(
|
||||
${APP_DIR}
|
||||
${SETTINGS_DIR}
|
||||
)
|
||||
|
||||
spiffs_create_partition_image(storage ../spiffs FLASH_IN_PROJECT)
|
||||
|
||||
|
||||
@@ -1,20 +1,5 @@
|
||||
menu "Example Configuration"
|
||||
|
||||
config ESP_WIFI_SSID
|
||||
string "WiFi SSID"
|
||||
default "Network SSID"
|
||||
help
|
||||
SSID (network name) for the example to connect to.
|
||||
config ESP_WIFI_PASSWORD
|
||||
string "WiFi Password"
|
||||
default "Password"
|
||||
help
|
||||
WiFi password (WPA or WPA2) for the example to use.
|
||||
config OPENAI_API_KEY
|
||||
string "OpenAI Key"
|
||||
default "sk-xxxxxxxx"
|
||||
help
|
||||
OpenAI api key for the example to use.
|
||||
config VOICE_ID
|
||||
string "Speaker Id"
|
||||
default "qiumum_0gushi"
|
||||
@@ -23,6 +8,7 @@ menu "Example Configuration"
|
||||
config VOLUME_LEVEL
|
||||
int "volume level"
|
||||
default "70"
|
||||
range 1 100
|
||||
help
|
||||
speaker volume
|
||||
config MAX_TOKEN
|
||||
@@ -30,17 +16,12 @@ menu "Example Configuration"
|
||||
default 500
|
||||
range 1 2048
|
||||
help
|
||||
Chat GPT response token between 1 - 2048.
|
||||
Chat GPT response token between 1 - 2048.
|
||||
config ESP_MAXIMUM_RETRY
|
||||
int "Maximum retry"
|
||||
default 5
|
||||
help
|
||||
Set the Maximum retry to avoid station reconnecting to the AP unlimited when the AP is really inexistent.
|
||||
config MESSAGE_CONTENT_SIZE
|
||||
int "Message Content Size"
|
||||
default 3072
|
||||
help
|
||||
Size of the message content array in bytes.
|
||||
|
||||
choice ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD
|
||||
prompt "WiFi Scan auth mode threshold"
|
||||
|
||||
@@ -35,8 +35,8 @@ static bool mute_flag = true;
|
||||
bool record_flag = false;
|
||||
uint32_t record_total_len = 0;
|
||||
uint32_t file_total_len = 0;
|
||||
volatile uint8_t *record_audio_buffer = NULL;
|
||||
volatile uint8_t *audio_rx_buffer = NULL;
|
||||
static uint8_t *record_audio_buffer = NULL;
|
||||
uint8_t *audio_rx_buffer = NULL;
|
||||
audio_play_finish_cb_t audio_play_finish_cb = NULL;
|
||||
|
||||
extern sr_data_t *g_sr_data;
|
||||
@@ -66,7 +66,7 @@ static esp_err_t audio_mute_function(AUDIO_PLAYER_MUTE_SETTING setting)
|
||||
codec_handle->mute_set_fn(setting == AUDIO_PLAYER_MUTE ? true : false);
|
||||
// restore the voice volume upon unmuting
|
||||
if (setting == AUDIO_PLAYER_UNMUTE) {
|
||||
codec_handle->volume_set_fn(85, NULL);
|
||||
codec_handle->volume_set_fn(CONFIG_VOLUME_LEVEL, NULL);
|
||||
} else {
|
||||
if (audio_play_finish_cb) {
|
||||
audio_play_finish_cb();
|
||||
@@ -228,6 +228,10 @@ esp_err_t audio_play_task(void *filepath)
|
||||
ESP_LOGI(TAG, "frame_rate= %" PRIi32 ", ch=%d, width=%d", wav_head.SampleRate, wav_head.NumChannels, wav_head.BitsPerSample);
|
||||
codec_handle->i2s_reconfig_clk_fn(wav_head.SampleRate, wav_head.BitsPerSample, I2S_SLOT_MODE_STEREO);
|
||||
|
||||
codec_handle->mute_set_fn(false);
|
||||
codec_handle->volume_set_fn(CONFIG_VOLUME_LEVEL,NULL);
|
||||
vTaskDelay(pdMS_TO_TICKS(500));
|
||||
|
||||
size_t cnt, total_cnt = 0;
|
||||
do {
|
||||
/* Read file in chunks into the scratch buffer */
|
||||
@@ -235,8 +239,6 @@ esp_err_t audio_play_task(void *filepath)
|
||||
if (len <= 0) {
|
||||
break;
|
||||
} else if (len > 0) {
|
||||
codec_handle->mute_set_fn(false);
|
||||
codec_handle->volume_set_fn(65, NULL);
|
||||
codec_handle->i2s_write_fn(buffer, len, &cnt, portMAX_DELAY);
|
||||
total_cnt += cnt;
|
||||
}
|
||||
|
||||
@@ -38,8 +38,7 @@ void sr_handler_task(void *pvParam);
|
||||
/**
|
||||
* @brief The buffer to hold the recorded audio.
|
||||
*/
|
||||
extern volatile uint8_t *record_audio_buffer;
|
||||
extern volatile uint8_t *audio_rx_buffer;
|
||||
extern uint8_t *audio_rx_buffer;
|
||||
|
||||
esp_err_t audio_play_task(void *filepath);
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "ui.h"
|
||||
|
||||
#define LABEL_WIFI_TEXT "Connecting to Wi-Fi\n"
|
||||
#define LABEL_NOT_WIFI_TEXT "Not Connected to Wi-Fi\n"
|
||||
#define LABEL_WIFI_DOT_COUNT_MAX (10)
|
||||
#define WIFI_CHECK_TIMER_INTERVAL_S (1)
|
||||
#define REPLY_SCROLL_TIMER_INTERVAL_MS (1000)
|
||||
@@ -47,15 +48,12 @@ void ui_ctrl_init(void)
|
||||
|
||||
static void wifi_check_timer_handler(lv_timer_t *timer)
|
||||
{
|
||||
if (WIFI_STATUS_CONNECTED_OK == wifi_connected_already()){
|
||||
_ui_flag_modify(ui_PanelSetupSteps, LV_OBJ_FLAG_HIDDEN, _UI_MODIFY_FLAG_REMOVE);
|
||||
_ui_flag_modify(ui_PanelSetupWifi, LV_OBJ_FLAG_HIDDEN, _UI_MODIFY_FLAG_ADD);
|
||||
if (WIFI_STATUS_CONNECTED_OK == wifi_connected_already()) {
|
||||
lv_obj_clear_flag(ui_PanelSetupSteps, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_obj_add_flag(ui_PanelSetupWifi, LV_OBJ_FLAG_HIDDEN);
|
||||
lv_timer_del(timer);
|
||||
|
||||
if (ui_get_btn_op_group()) {
|
||||
lv_group_remove_all_objs(ui_get_btn_op_group());
|
||||
lv_group_add_obj(ui_get_btn_op_group(), ui_ButtonSetup);
|
||||
}
|
||||
} else if (WIFI_STATUS_CONNECTED_FAILED == wifi_connected_already()) {
|
||||
lv_label_set_text(ui_LabelSetupWifi, LABEL_NOT_WIFI_TEXT);
|
||||
} else {
|
||||
if (strlen(lv_label_get_text(ui_LabelSetupWifi)) >= sizeof(LABEL_WIFI_TEXT) + LABEL_WIFI_DOT_COUNT_MAX + 1) {
|
||||
lv_label_set_text(ui_LabelSetupWifi, LABEL_WIFI_TEXT);
|
||||
@@ -291,16 +289,16 @@ static void reply_content_scroll_timer_handler()
|
||||
offset = lv_obj_get_scroll_y(ui_ContainerReplyContent);
|
||||
// ESP_LOGI(TAG, "offset: %d, content_height: %d, font_height: %d", offset, content_height, font->line_height);
|
||||
if ((content_height > lv_obj_get_height(ui_ContainerReplyContent)) &&
|
||||
(offset < (content_height - lv_obj_get_height(ui_ContainerReplyContent)))) {
|
||||
(offset < (content_height - lv_obj_get_height(ui_ContainerReplyContent)))) {
|
||||
offset += font->line_height / 2;
|
||||
lv_obj_scroll_to_y(ui_ContainerReplyContent, offset, LV_ANIM_OFF);
|
||||
} else if (reply_audio_end) {
|
||||
ESP_LOGI(TAG, "reply scroll timer stop");
|
||||
reply_content_get = false;
|
||||
reply_audio_start = false;
|
||||
reply_audio_end = false;
|
||||
lv_timer_pause(scroll_timer_handle);
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 1000);
|
||||
ESP_LOGI(TAG, "reply scroll timer stop");
|
||||
reply_content_get = false;
|
||||
reply_audio_start = false;
|
||||
reply_audio_end = false;
|
||||
lv_timer_pause(scroll_timer_handle);
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
#include "ui.h"
|
||||
#include "app_ui_ctrl.h"
|
||||
#include"OpenAI.h"
|
||||
#include "esp_ota_ops.h"
|
||||
#include "esp_system.h"
|
||||
#include "esp_log.h"
|
||||
|
||||
static char *TAG = "ui-events";
|
||||
|
||||
void EventBtnSetupClick(lv_event_t *e)
|
||||
{
|
||||
@@ -19,14 +24,25 @@ void EventPanelSleepClickCb(lv_event_t *e)
|
||||
{
|
||||
// Your code here
|
||||
app_sr_start_once();
|
||||
printf("sr start once\n");
|
||||
ESP_LOGI(TAG, "sr start once");
|
||||
}
|
||||
|
||||
void EventSettingsRegionValueChange(lv_event_t *e)
|
||||
static void RestartToFactoryPartition(void){
|
||||
const esp_partition_t *update_partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
|
||||
// Set the boot partition to switch to Project 1 using OTA handle
|
||||
ESP_LOGI(TAG, "Switch to partition OTA_1");
|
||||
esp_ota_set_boot_partition(update_partition);
|
||||
esp_restart();
|
||||
}
|
||||
|
||||
void EventWifiResetConfirmClick(lv_event_t * e)
|
||||
{
|
||||
if (lv_dropdown_get_selected(lv_event_get_target(e)) == 0) {
|
||||
set_server(REGION_Espressif);
|
||||
} else {
|
||||
set_server(REGION_OpenAI);
|
||||
}
|
||||
ESP_LOGI(TAG, "Reboot from WIFI Page to Factory Partition");
|
||||
RestartToFactoryPartition();
|
||||
}
|
||||
|
||||
void EventResetConfirm(lv_event_t * e)
|
||||
{
|
||||
ESP_LOGI(TAG, "Reboot from Settings Page to Factory Partition");
|
||||
RestartToFactoryPartition();
|
||||
}
|
||||
|
||||
@@ -26,10 +26,9 @@
|
||||
If you'd rather not, just change the below entries to strings with
|
||||
the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid"
|
||||
*/
|
||||
// #define EXAMPLE_ESP_WIFI_SSID "esp-office-2.4G"
|
||||
// #define EXAMPLE_ESP_WIFI_PASS "1qazxsw2"
|
||||
|
||||
#define EXAMPLE_ESP_MAXIMUM_RETRY 10
|
||||
|
||||
#define EXAMPLE_ESP_MAXIMUM_RETRY CONFIG_ESP_MAXIMUM_RETRY
|
||||
|
||||
#if CONFIG_ESP_WIFI_AUTH_OPEN
|
||||
#define ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD WIFI_AUTH_OPEN
|
||||
@@ -108,7 +107,6 @@ esp_err_t send_network_event(net_event_t event)
|
||||
|
||||
ESP_RETURN_ON_FALSE(pdPASS == ret_val, ESP_ERR_INVALID_STATE,
|
||||
TAG, "The last event has not been processed yet");
|
||||
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
@@ -198,9 +196,8 @@ static void wifi_reconnect_sta(void)
|
||||
ESP_ERROR_CHECK( esp_wifi_set_config(WIFI_IF_STA, &wifi_config) );
|
||||
esp_wifi_connect();
|
||||
|
||||
ESP_LOGI(TAG, "wifi_reconnect_sta finished.%d, %s, %d, %s", \
|
||||
sys_param->ssid_len, wifi_config.sta.ssid,
|
||||
sys_param->password_len, wifi_config.sta.password);
|
||||
ESP_LOGI(TAG, "wifi_reconnect_sta finished.%s, %s", \
|
||||
wifi_config.sta.ssid, wifi_config.sta.password);
|
||||
|
||||
xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT, 0, 1, 5000 / portTICK_RATE_MS);
|
||||
}
|
||||
@@ -230,32 +227,24 @@ static void wifi_init_sta(void)
|
||||
NULL,
|
||||
&instance_got_ip));
|
||||
|
||||
wifi_config_t wifi_config = {
|
||||
wifi_config_t wifi_config = {
|
||||
.sta = {
|
||||
.ssid = DEFAULT_ESP_WIFI_SSID,
|
||||
.password = DEFAULT_ESP_WIFI_PASS,
|
||||
/* Setting a password implies station will connect to all security modes including WEP/WPA.
|
||||
* However these modes are deprecated and not advisable to be used. Incase your Access point
|
||||
* doesn't support WPA2, these mode can be enabled by commenting below line */
|
||||
//.threshold.authmode = ESP_WIFI_SCAN_AUTH_MODE_THRESHOLD,
|
||||
//.sae_pwe_h2e = 2,
|
||||
.ssid = {0},
|
||||
.password = {0},
|
||||
},
|
||||
};
|
||||
|
||||
sys_param_t *sys_param = settings_get_parameter();
|
||||
memcpy(wifi_config.sta.ssid, sys_param->ssid, sizeof(wifi_config.sta.ssid));
|
||||
memcpy(wifi_config.sta.password, sys_param->password, sizeof(wifi_config.sta.password));
|
||||
|
||||
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA) );
|
||||
ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config) );
|
||||
ESP_ERROR_CHECK(esp_wifi_start() );
|
||||
ESP_LOGI(TAG, "wifi_init_sta finished.%s:%d, %s:%d", \
|
||||
wifi_config.sta.ssid, sys_param->ssid_len, wifi_config.sta.password, sys_param->password_len);
|
||||
ESP_LOGI(TAG, "wifi_init_sta finished.%s, %s", \
|
||||
wifi_config.sta.ssid, wifi_config.sta.password);
|
||||
}
|
||||
|
||||
static void network_task(void *args)
|
||||
{
|
||||
static WiFi_Connect_Status wifi_status;
|
||||
net_event_t net_event;
|
||||
TickType_t tick;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
## IDF Component Manager Manifest File
|
||||
dependencies:
|
||||
espressif/openai: "^0.1.1"
|
||||
chmorgan/esp-file-iterator: "1.0.0"
|
||||
espressif/esp-sr: "1.3.3"
|
||||
|
||||
@@ -21,92 +21,92 @@
|
||||
#include "app_wifi.h"
|
||||
#include "settings.h"
|
||||
|
||||
#define SCROLL_START_DELAY_S (2)
|
||||
#define OPENAI_API_KEY CONFIG_OPENAI_API_KEY
|
||||
|
||||
#define SCROLL_START_DELAY_S (1.5)
|
||||
static char *TAG = "app_main";
|
||||
format_t file_type = FORMAT_WAV;
|
||||
static sys_param_t *sys_param = NULL;
|
||||
|
||||
/* program flow. This function is called in app_audio.c */
|
||||
|
||||
esp_err_t start_openai(uint8_t *audio, int audio_len)
|
||||
{
|
||||
sys_param_t *sys_set = settings_get_parameter();
|
||||
switch (sys_set->current_server) {
|
||||
case REGION_Espressif:
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_GET, 0);
|
||||
esp_err_t err = create_whisper_request_from_record(audio, audio_len);
|
||||
if ((err == ESP_ERR_INVALID_ARG) || (strcmp(get_message_content_for_chatgpt(), "invalid_request_error") == 0)) {
|
||||
// UI listen fail
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "Sorry, I can't understand.");
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 2000);
|
||||
return ESP_FAIL;
|
||||
} else {
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_QUESTION, get_message_content_for_whisper());
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_CONTENT, get_message_content_for_chatgpt());
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_REPLY, 0);
|
||||
ESP_LOGI(TAG, "create_TTS_request");
|
||||
esp_err_t status = text_to_speech_request(get_message_content_for_chatgpt(), AUDIO_CODECS_MP3);
|
||||
if (status != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Error creating ChatGPT request: %s\n", esp_err_to_name(status));
|
||||
// UI reply audio fail
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 0);
|
||||
} else {
|
||||
ESP_LOGI(TAG, "reply audio start");
|
||||
// Wait a moment before starting to scroll the reply content
|
||||
vTaskDelay(pdMS_TO_TICKS(SCROLL_START_DELAY_S * 1000));
|
||||
ui_ctrl_reply_set_audio_start_flag(true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case REGION_OpenAI:
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_GET, 0);
|
||||
esp_err_t err2 = create_whisper_request_from_record(audio, audio_len);
|
||||
if ((err2 == ESP_ERR_INVALID_ARG) || strcmp(get_message_content_for_chatgpt(), "invalid_request_error") == 0 || strcmp(get_message_content_for_chatgpt(), "server_error") == 0) {
|
||||
// UI listen fail
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "Sorry, I can't understand.");
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 2000);
|
||||
return ESP_FAIL;
|
||||
} else {
|
||||
ESP_LOGI(TAG, "create_chatgpt_request: %s", get_message_content_for_chatgpt());
|
||||
static OpenAI_t *openai = NULL;
|
||||
static OpenAI_AudioTranscription_t *audioTranscription = NULL;
|
||||
static OpenAI_ChatCompletion_t *chatCompletion = NULL;
|
||||
|
||||
// UI listen success
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_QUESTION, get_message_content_for_chatgpt());
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, get_message_content_for_chatgpt());
|
||||
if (openai == NULL) {
|
||||
openai = OpenAICreate(sys_param->key);
|
||||
audioTranscription = openai->audioTranscriptionCreate(openai);
|
||||
chatCompletion = openai->chatCreate(openai);
|
||||
|
||||
esp_err_t status = create_chatgpt_request(get_message_content_for_chatgpt());
|
||||
if (status != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Error creating ChatGPT request: %s\n", esp_err_to_name(status));
|
||||
}
|
||||
} if (strcmp(get_message_content_for_chatgpt(), "invalid_request_error") == 0) {
|
||||
audioTranscription->setResponseFormat(audioTranscription, OPENAI_AUDIO_RESPONSE_FORMAT_JSON);
|
||||
audioTranscription->setLanguage(audioTranscription,"en");
|
||||
audioTranscription->setTemperature(audioTranscription, 0.2);
|
||||
|
||||
// UI reply fail
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "Sorry, I can't understand.");
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 2000);
|
||||
chatCompletion->setModel(chatCompletion, "gpt-3.5-turbo");
|
||||
chatCompletion->setSystem(chatCompletion, "Code geek");
|
||||
chatCompletion->setMaxTokens(chatCompletion, CONFIG_MAX_TOKEN);
|
||||
chatCompletion->setTemperature(chatCompletion, 0.2);
|
||||
chatCompletion->setStop(chatCompletion, "\r");
|
||||
chatCompletion->setPresencePenalty(chatCompletion, 0);
|
||||
chatCompletion->setFrequencyPenalty(chatCompletion, 0);
|
||||
chatCompletion->setUser(chatCompletion, "OpenAI-ESP32");
|
||||
}
|
||||
|
||||
return ESP_FAIL;
|
||||
} else {
|
||||
// UI reply content
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_CONTENT, get_message_content_for_chatgpt());
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_REPLY, 0);
|
||||
esp_err_t status = text_to_speech_request(get_message_content_for_chatgpt(), AUDIO_CODECS_MP3);
|
||||
if (status != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Error creating ChatGPT request: %s\n", esp_err_to_name(status));
|
||||
// UI reply audio fail
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 0);
|
||||
} else {
|
||||
ESP_LOGI(TAG, "replay audio start");
|
||||
// Wait a moment before start to scroll the reply content
|
||||
vTaskDelay(pdMS_TO_TICKS(SCROLL_START_DELAY_S * 1000));
|
||||
ui_ctrl_reply_set_audio_start_flag(true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// Handle other server regions if necessary
|
||||
break;
|
||||
}
|
||||
return ESP_OK;
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_GET, 0);
|
||||
char *text = audioTranscription->file(audioTranscription, (uint8_t *)audio, audio_len, OPENAI_AUDIO_INPUT_FORMAT_WAV); // Calling transcript api
|
||||
|
||||
if (text == NULL){
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "API Key is not valid");
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
if (strcmp(text, "invalid_request_error") == 0 || strcmp(text, "server_error") == 0) {
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "Sorry, I can't understand.");
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 2000);
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
// UI listen success
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_QUESTION, text);
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, text);
|
||||
|
||||
OpenAI_StringResponse_t *result = chatCompletion->message(chatCompletion, text, false); //Calling Chat completion api
|
||||
char *response = result->getData(result, 0);
|
||||
|
||||
if (response != NULL && (strcmp(response, "invalid_request_error") == 0 || strcmp(response, "server_error") == 0)) {
|
||||
// UI listen fail
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "Sorry, I can't understand.");
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 2000);
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
// UI listen success
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_QUESTION, text);
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, response);
|
||||
|
||||
if (strcmp(response, "invalid_request_error") == 0) {
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_LISTEN_SPEAK, "Sorry, I can't understand.");
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 2000);
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
ui_ctrl_label_show_text(UI_CTRL_LABEL_REPLY_CONTENT, response);
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_REPLY, 0);
|
||||
esp_err_t status = text_to_speech_request(response, AUDIO_CODECS_MP3);
|
||||
|
||||
if (status != ESP_OK) {
|
||||
ESP_LOGE(TAG, "Error creating ChatGPT request: %s\n", esp_err_to_name(status));
|
||||
// UI reply audio fail
|
||||
ui_ctrl_show_panel(UI_CTRL_PANEL_SLEEP, 0);
|
||||
} else {
|
||||
// Wait a moment before starting to scroll the reply content
|
||||
vTaskDelay(pdMS_TO_TICKS(SCROLL_START_DELAY_S * 1000));
|
||||
ui_ctrl_reply_set_audio_start_flag(true);
|
||||
}
|
||||
// Clearing resources
|
||||
result->delete(result);
|
||||
free(text);
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
/* play audio function */
|
||||
@@ -129,9 +129,9 @@ void app_main()
|
||||
}
|
||||
ESP_ERROR_CHECK(ret);
|
||||
ESP_ERROR_CHECK(settings_read_parameter_from_nvs());
|
||||
sys_param = settings_get_parameter();
|
||||
|
||||
bsp_spiffs_mount();
|
||||
|
||||
bsp_i2c_init();
|
||||
bsp_display_start();
|
||||
bsp_board_init();
|
||||
@@ -139,13 +139,8 @@ void app_main()
|
||||
ESP_LOGI(TAG, "Display LVGL demo");
|
||||
bsp_display_backlight_on();
|
||||
ui_ctrl_init();
|
||||
|
||||
app_network_start();
|
||||
|
||||
sys_param_t *sys_set = settings_get_parameter();
|
||||
set_api_key(OPENAI_API_KEY);
|
||||
set_server(sys_set->current_server);
|
||||
set_audio_type(file_type);
|
||||
ESP_LOGI(TAG, "speech recognition start");
|
||||
app_sr_start(false);
|
||||
audio_register_play_finish_cb(audio_play_finish_cb);
|
||||
|
||||
@@ -14,111 +14,72 @@
|
||||
#include "nvs_flash.h"
|
||||
#include "nvs.h"
|
||||
#include "settings.h"
|
||||
#include "esp_ota_ops.h"
|
||||
|
||||
static const char *TAG = "settings";
|
||||
|
||||
#define NAME_SPACE "sys_param"
|
||||
#define KEY "param"
|
||||
|
||||
const char *uf2_nvs_partition = "nvs";
|
||||
const char *uf2_nvs_namespace = "configuration";
|
||||
static nvs_handle_t my_handle;
|
||||
static sys_param_t g_sys_param = {0};
|
||||
|
||||
static const sys_param_t g_default_sys_param = {
|
||||
.need_hint = true,
|
||||
.current_server = REGION_OpenAI,
|
||||
};
|
||||
|
||||
esp_err_t settings_factory_reset(void)
|
||||
{
|
||||
ESP_LOGW(TAG, "Set to default");
|
||||
memcpy(&g_sys_param, &g_default_sys_param, sizeof(sys_param_t));
|
||||
|
||||
ESP_LOGW(TAG, "ssid|password:[%s:%s]", DEFAULT_ESP_WIFI_SSID, DEFAULT_ESP_WIFI_PASS);
|
||||
if((0 == strlen(DEFAULT_ESP_WIFI_SSID)) || ( 0 == strlen(DEFAULT_ESP_WIFI_PASS))){
|
||||
memcpy(&g_sys_param.ssid[0], "DEFAULT_ESP_WIFI_SSID", strlen("DEFAULT_ESP_WIFI_SSID"));
|
||||
memcpy(&g_sys_param.password[0], "DEFAULT_ESP_WIFI_PASS", strlen("DEFAULT_ESP_WIFI_PASS"));
|
||||
} else {
|
||||
memcpy(&g_sys_param.ssid[0], DEFAULT_ESP_WIFI_SSID, strlen(DEFAULT_ESP_WIFI_SSID));
|
||||
memcpy(&g_sys_param.password[0], DEFAULT_ESP_WIFI_PASS, strlen(DEFAULT_ESP_WIFI_PASS));
|
||||
}
|
||||
g_sys_param.password_len = strlen(g_sys_param.password);
|
||||
g_sys_param.ssid_len = strlen(g_sys_param.ssid);
|
||||
|
||||
ESP_LOGW(TAG, "current_server:[%d]", REGION_OpenAI);
|
||||
g_sys_param.current_server = REGION_OpenAI;
|
||||
settings_write_parameter_to_nvs();
|
||||
|
||||
const esp_partition_t *update_partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
|
||||
ESP_LOGI(TAG, "Switch to partition factory");
|
||||
esp_ota_set_boot_partition(update_partition);
|
||||
esp_restart();
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
static esp_err_t settings_check(sys_param_t *param)
|
||||
{
|
||||
esp_err_t ret;
|
||||
ESP_GOTO_ON_FALSE(param->current_server < REGION_Max, ESP_ERR_INVALID_ARG, reset, TAG, "server incorrect");
|
||||
|
||||
if (((0 == param->ssid_len) || (param->ssid_len > 32)) || \
|
||||
((0 == param->password_len) || (param->password_len > 64)) || \
|
||||
(param->ssid_len != strlen(param->ssid)) || \
|
||||
(param->password_len != strlen(param->password))) {
|
||||
ESP_LOGI(TAG, "ssid | password incorrect, [%d.%d, %d.%d]", \
|
||||
param->ssid_len, strlen(param->ssid), param->password_len, strlen(param->password));
|
||||
goto reset;
|
||||
}
|
||||
return ret;
|
||||
reset:
|
||||
settings_factory_reset();
|
||||
return ret;
|
||||
}
|
||||
|
||||
esp_err_t settings_read_parameter_from_nvs(void)
|
||||
{
|
||||
nvs_handle_t my_handle = 0;
|
||||
esp_err_t ret = nvs_open(NAME_SPACE, NVS_READONLY, &my_handle);
|
||||
esp_err_t ret = nvs_open_from_partition(uf2_nvs_partition, uf2_nvs_namespace, NVS_READONLY, &my_handle);
|
||||
if (ESP_ERR_NVS_NOT_FOUND == ret) {
|
||||
ESP_LOGW(TAG, "Not found, Set to default");
|
||||
memcpy(&g_sys_param, &g_default_sys_param, sizeof(sys_param_t));
|
||||
memcpy(&g_sys_param.ssid[0], DEFAULT_ESP_WIFI_SSID, strlen(DEFAULT_ESP_WIFI_SSID));
|
||||
memcpy(&g_sys_param.password[0], DEFAULT_ESP_WIFI_PASS, strlen(DEFAULT_ESP_WIFI_PASS));
|
||||
g_sys_param.ssid_len = strlen(DEFAULT_ESP_WIFI_SSID);
|
||||
g_sys_param.password_len = strlen(DEFAULT_ESP_WIFI_PASS);
|
||||
|
||||
settings_write_parameter_to_nvs();
|
||||
return ESP_OK;
|
||||
ESP_LOGI(TAG, "Credentials not found");
|
||||
goto err;
|
||||
}
|
||||
|
||||
ESP_GOTO_ON_FALSE(ESP_OK == ret, ret, err, TAG, "nvs open failed (0x%x)", ret);
|
||||
size_t len = 0;
|
||||
|
||||
size_t len = sizeof(sys_param_t);
|
||||
ret = nvs_get_blob(my_handle, KEY, &g_sys_param, &len);
|
||||
ESP_GOTO_ON_FALSE(ESP_OK == ret, ret, err, TAG, "can't read param");
|
||||
// Read SSID
|
||||
len = sizeof(g_sys_param.ssid);
|
||||
ret = nvs_get_str(my_handle, "ssid", g_sys_param.ssid, &len);
|
||||
if (ret != ESP_OK || len == 0) {
|
||||
ESP_LOGI(TAG, "No SSID found");
|
||||
goto err;
|
||||
}
|
||||
|
||||
// Read password
|
||||
len = sizeof(g_sys_param.password);
|
||||
ret = nvs_get_str(my_handle, "password", g_sys_param.password, &len);
|
||||
if (ret != ESP_OK || len == 0) {
|
||||
ESP_LOGI(TAG, "No Password found");
|
||||
goto err;
|
||||
}
|
||||
|
||||
// Read key
|
||||
len = sizeof(g_sys_param.key);
|
||||
ret = nvs_get_str(my_handle, "ChatGPT_key", g_sys_param.key, &len);
|
||||
if (ret != ESP_OK || len == 0) {
|
||||
ESP_LOGI(TAG, "No OpenAI key found");
|
||||
goto err;
|
||||
}
|
||||
nvs_close(my_handle);
|
||||
|
||||
g_sys_param.current_server = REGION_Max;
|
||||
ESP_LOGI(TAG, "stored ssid:%s", g_sys_param.ssid);
|
||||
ESP_LOGI(TAG, "stored password:%s", g_sys_param.password);
|
||||
ESP_LOGI(TAG, "stored OpenAI:%s", g_sys_param.key);
|
||||
return ESP_OK;
|
||||
|
||||
settings_check(&g_sys_param);
|
||||
return ret;
|
||||
err:
|
||||
if (my_handle) {
|
||||
nvs_close(my_handle);
|
||||
}
|
||||
settings_factory_reset();
|
||||
return ret;
|
||||
}
|
||||
|
||||
esp_err_t settings_write_parameter_to_nvs(void)
|
||||
{
|
||||
ESP_LOGI(TAG, "Saving settings");
|
||||
settings_check(&g_sys_param);
|
||||
nvs_handle_t my_handle = {0};
|
||||
esp_err_t err = nvs_open(NAME_SPACE, NVS_READWRITE, &my_handle);
|
||||
if (err != ESP_OK) {
|
||||
ESP_LOGI(TAG, "Error (%s) opening NVS handle!\n", esp_err_to_name(err));
|
||||
} else {
|
||||
err = nvs_set_blob(my_handle, KEY, &g_sys_param, sizeof(sys_param_t));
|
||||
err |= nvs_commit(my_handle);
|
||||
nvs_close(my_handle);
|
||||
}
|
||||
return ESP_OK == err ? ESP_OK : ESP_FAIL;
|
||||
}
|
||||
|
||||
sys_param_t *settings_get_parameter(void)
|
||||
{
|
||||
return &g_sys_param;
|
||||
|
||||
@@ -3,25 +3,20 @@
|
||||
*
|
||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "OpenAI.h"
|
||||
|
||||
#define DEFAULT_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID
|
||||
#define DEFAULT_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD
|
||||
#define SSID_SIZE 32
|
||||
#define PASSWORD_SIZE 64
|
||||
#define KEY_SIZE 64
|
||||
|
||||
typedef struct {
|
||||
bool need_hint;
|
||||
region_t current_server;
|
||||
|
||||
char ssid[32]; /**< SSID of target AP. */
|
||||
char password[64]; /**< Password of target AP. */
|
||||
uint8_t ssid_len; /**< SSID of target AP. */
|
||||
uint8_t password_len; /**< Password of target AP. */
|
||||
char ssid[SSID_SIZE]; /* SSID of target AP. */
|
||||
char password[PASSWORD_SIZE]; /* Password of target AP. */
|
||||
char key[KEY_SIZE]; /* OpenAI key. */
|
||||
} sys_param_t;
|
||||
|
||||
esp_err_t settings_factory_reset(void);
|
||||
esp_err_t settings_read_parameter_from_nvs(void);
|
||||
esp_err_t settings_write_parameter_to_nvs(void);
|
||||
sys_param_t *settings_get_parameter(void);
|
||||
sys_param_t *settings_get_parameter(void);
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "esp_err.h"
|
||||
#include "esp_log.h"
|
||||
#include "esp_http_client.h"
|
||||
#include <json_parser.h>
|
||||
#include "app_audio.h"
|
||||
#include "app_ui_ctrl.h"
|
||||
#include "audio_player.h"
|
||||
@@ -145,7 +144,7 @@ esp_err_t text_to_speech_request(const char *message, AUDIO_CODECS_FORMAT code_f
|
||||
.event_handler = http_event_handler,
|
||||
.buffer_size = 128000,
|
||||
.buffer_size_tx = 4000,
|
||||
.timeout_ms = 30000,
|
||||
.timeout_ms = 40000,
|
||||
.crt_bundle_attach = esp_crt_bundle_attach,
|
||||
};
|
||||
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
SET(SOURCES screens/ui_ScreenSetup.c
|
||||
screens/ui_ScreenWifiReset.c
|
||||
screens/ui_ScreenListen.c
|
||||
screens/ui_ScreenSettings.c
|
||||
screens/ui_ScreenReset.c
|
||||
ui.c
|
||||
ui_helpers.c
|
||||
images/ui_img_setup_bg_png.c
|
||||
images/ui_img_setup_text_bg_png.c
|
||||
images/ui_img_reset_icon_png.c
|
||||
images/ui_img_settings_back_png.c
|
||||
images/ui_img_body_shadow_png.c
|
||||
images/ui_img_body_png.c
|
||||
images/ui_img_body_eye_screen_png.c
|
||||
@@ -18,7 +22,6 @@ SET(SOURCES screens/ui_ScreenSetup.c
|
||||
images/ui_img_reply_small_shadow_png.c
|
||||
images/ui_img_reply_chatgpt_logo_png.c
|
||||
images/ui_img_settings_icon_png.c
|
||||
images/ui_img_settings_back_png.c
|
||||
images/ui_img_listen_body_eyes_2_png.c
|
||||
fonts/ui_font_KaiTiCN20.c
|
||||
fonts/ui_font_PingFangEN14.c
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
screens/ui_ScreenSetup.c
|
||||
screens/ui_ScreenWifiReset.c
|
||||
screens/ui_ScreenListen.c
|
||||
screens/ui_ScreenSettings.c
|
||||
screens/ui_ScreenReset.c
|
||||
ui.c
|
||||
ui_helpers.c
|
||||
images/ui_img_setup_bg_png.c
|
||||
images/ui_img_setup_text_bg_png.c
|
||||
images/ui_img_reset_icon_png.c
|
||||
images/ui_img_settings_back_png.c
|
||||
images/ui_img_body_shadow_png.c
|
||||
images/ui_img_body_png.c
|
||||
images/ui_img_body_eye_screen_png.c
|
||||
@@ -18,7 +22,6 @@ images/ui_img_reply_body_png.c
|
||||
images/ui_img_reply_small_shadow_png.c
|
||||
images/ui_img_reply_chatgpt_logo_png.c
|
||||
images/ui_img_settings_icon_png.c
|
||||
images/ui_img_settings_back_png.c
|
||||
images/ui_img_listen_body_eyes_2_png.c
|
||||
fonts/ui_font_KaiTiCN20.c
|
||||
fonts/ui_font_PingFangEN14.c
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.3.0
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: chat_gpt
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
#ifndef LV_ATTRIBUTE_MEM_ALIGN
|
||||
#define LV_ATTRIBUTE_MEM_ALIGN
|
||||
#endif
|
||||
|
||||
// IMAGE DATA: assets\reset_icon.png
|
||||
const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_reset_icon_png_data[] = {
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x04,0xFF,0xFF,0x42,0xFF,0xFF,0x7D,0xFF,0xFF,0xA3,0xFF,0xFF,0xB1,0xFF,0xFF,0xB0,0xFF,0xFF,0xA3,0xFF,0xFF,0x7C,0xFF,0xFF,0x4A,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x3C,0xFF,0xFF,0x75,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,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,0xFF,0x29,0xFF,0xFF,0xA0,0xFF,0xFF,0xED,0xFF,0xFF,0xFC,0xFF,0xFF,0xD0,0xFF,0xFF,0xB4,0xFF,0xFF,0x9C,0xFF,0xFF,0x97,0xFF,0xFF,0xA7,0xFF,0xFF,0xCE,0xFF,0xFF,0xFA,0xFF,0xFF,0xF6,0xFF,0xFF,0xA2,0xFF,0xFF,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x7B,0xFF,0xFF,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x16,0xFF,0xFF,0x9A,0xFF,0xFF,0xFB,0xFF,0xFF,0xC1,0xFF,0xFF,0x61,0xFF,0xFF,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x0E,0xFF,0xFF,0x58,0xFF,0xFF,0xC0,0xFF,0xFF,0xFE,0xFF,0xFF,0xA4,0xFF,0xFF,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x7B,0xFF,0xFF,0xCC,0x00,0x00,0x00,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,0xFF,0x32,0xFF,0xFF,0xE3,0xFF,0xFF,0xD4,0xFF,0xFF,0x4A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x42,0xFF,0xFF,0xD5,0xFF,0xFF,0xE6,0xFF,0xFF,0x3E,0x00,0x00,0x00,0xFF,0xFF,0x7B,0xFF,0xFF,0xCC,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,0xFF,0x4D,0xFF,0xFF,0xF5,0xFF,0xFF,0xA6,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x09,0xFF,0xFF,0x9D,0xFF,0xFF,0xF7,0xFF,0xFF,0x4F,0xFF,0xFF,0x7B,0xFF,0xFF,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x32,0xFF,0xFF,0xF5,0xFF,0xFF,0x86,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x86,0xFF,0xFF,0xF7,0xFF,0xFF,0xB6,0xFF,0xFF,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x16,0xFF,0xFF,0xE3,0xFF,0xFF,0xA6,0xFF,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x33,0xFF,0xFF,0x55,0xFF,0xFF,0x55,0xFF,0xFF,0x55,0xFF,0xFF,0x55,0xFF,0xFF,0xD6,0xFF,0xFF,0xFF,0xFF,0xFF,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x9A,0xFF,0xFF,0xD4,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xBA,0xFF,0xFF,0xEE,0xFF,0xFF,0xEE,0xFF,0xFF,0xEE,0xFF,0xFF,0xEE,0xFF,0xFF,0xEE,0xFF,0xFF,0xEE,0xFF,0xFF,0xBF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x27,0xFF,0xFF,0xFB,0xFF,0xFF,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xA0,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x04,0xFF,0xFF,0xEC,0xFF,0xFF,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x43,0xFF,0xFF,0xFC,0xFF,0xFF,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x7E,0xFF,0xFF,0xCF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xA1,0xFF,0xFF,0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xB1,0xFF,0xFF,0x9B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x3D,0xFF,0xFF,0x53,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xFF,0xFF,0xB4,0xFF,0xFF,0x93,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x94,0xFF,0xFF,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xA2,0xFF,0xFF,0xA6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x6E,0xFF,0xFF,0x7D,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xFF,0xFF,0x78,0xFF,0xFF,0xB9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x06,0xFF,0xFF,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x01,0xFF,0xFF,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x57,0xFF,0xFF,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x6E,0xFF,0xFF,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0xA1,0xFF,0xFF,0xA5,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x35,0xFF,0xFF,0xFE,0xFF,0xFF,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x13,0xFF,0xFF,0x0B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xA9,0xFF,0xFF,0xC9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x07,0xFF,0xFF,0x79,0xFF,0xFF,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x13,0xFF,0xFF,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x99,0xFF,0xFF,0xEA,0xFF,0xFF,0x0D,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,0xFF,0x04,0xFF,0xFF,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,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x2B,0xFF,0xFF,0xF9,0xFF,0xFF,0x41,0x00,0x00,0x00,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,0xFF,0x23,0xFF,0xFF,0xFA,0xFF,0xFF,0x97,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,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,0x00,0xFF,0xFF,0x43,0xFF,0xFF,0xEA,0xFF,0xFF,0xCA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x3E,0xFF,0xFF,0xD0,0xFF,0xFF,0x6A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x18,0xFF,0xFF,0x59,0x00,0x00,0x00,0xFF,0xFF,0x0C,0xFF,0xFF,0x47,0xFF,0xFF,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,0xFF,0xFF,0x39,0xFF,0xFF,0xFE,0xFF,0xFF,0xA8,0xFF,0xFF,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x39,0xFF,0xFF,0xF7,0xFF,0xFF,0xF9,0xFF,0xFF,0xC9,0xFF,0xFF,0x28,0x00,0x00,0x00,0xFF,0xFF,0x10,0xFF,0xFF,0xA0,0xFF,0xFF,0xCC,0xFF,0xFF,0xB7,0x00,0x00,0x00,0xFF,0xFF,0x03,0xFF,0xFF,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xFF,0x0C,0xFF,0xFF,0x4D,0xFF,0xFF,0x79,0xFF,0xFF,0x17,0x00,0x00,0x00,0xFF,0xFF,0x11,0xFF,0xFF,0x98,0xFF,0xFF,0x7F,0xFF,0xFF,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
|
||||
};
|
||||
const lv_img_dsc_t ui_img_reset_icon_png = {
|
||||
.header.always_zero = 0,
|
||||
.header.w = 32,
|
||||
.header.h = 32,
|
||||
.data_size = sizeof(ui_img_reset_icon_png_data),
|
||||
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
|
||||
.data = ui_img_reset_icon_png_data
|
||||
};
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.3.0
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: chat_gpt
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
void ui_ScreenReset_screen_init(void)
|
||||
{
|
||||
ui_ScreenReset = lv_obj_create(NULL);
|
||||
lv_obj_clear_flag(ui_ScreenReset, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
lv_obj_set_style_bg_img_src(ui_ScreenReset, &ui_img_setup_bg_png, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelResetTitle = lv_label_create(ui_ScreenReset);
|
||||
lv_obj_set_width(ui_LabelResetTitle, 230);
|
||||
lv_obj_set_height(ui_LabelResetTitle, LV_SIZE_CONTENT); /// 140
|
||||
lv_obj_set_x(ui_LabelResetTitle, 45);
|
||||
lv_obj_set_y(ui_LabelResetTitle, 15);
|
||||
lv_label_set_text(ui_LabelResetTitle, "Factory Reset");
|
||||
lv_obj_set_style_text_color(ui_LabelResetTitle, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_opa(ui_LabelResetTitle, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_align(ui_LabelResetTitle, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelResetTitle, &ui_font_PingFangEN20, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelResetContent = lv_label_create(ui_ScreenReset);
|
||||
lv_obj_set_width(ui_LabelResetContent, lv_pct(88));
|
||||
lv_obj_set_height(ui_LabelResetContent, lv_pct(61));
|
||||
lv_obj_set_x(ui_LabelResetContent, lv_pct(0));
|
||||
lv_obj_set_y(ui_LabelResetContent, lv_pct(20));
|
||||
lv_obj_set_align(ui_LabelResetContent, LV_ALIGN_TOP_MID);
|
||||
lv_label_set_text(ui_LabelResetContent,
|
||||
"1. Press the \"OK\" button to enter factory reset mode.\n2. Connect the box to your PC and add the OpenAI key and Wi-Fi credentials.\n3. Follow the on-screen prompts to complete the setup process.");
|
||||
lv_obj_set_style_text_color(ui_LabelResetContent, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_opa(ui_LabelResetContent, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_letter_space(ui_LabelResetContent, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_line_space(ui_LabelResetContent, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelResetContent, &ui_font_PingFangEN14, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_ButtonResetConfirm = lv_btn_create(ui_ScreenReset);
|
||||
lv_obj_set_width(ui_ButtonResetConfirm, 72);
|
||||
lv_obj_set_height(ui_ButtonResetConfirm, 24);
|
||||
lv_obj_set_x(ui_ButtonResetConfirm, 0);
|
||||
lv_obj_set_y(ui_ButtonResetConfirm, -20);
|
||||
lv_obj_set_align(ui_ButtonResetConfirm, LV_ALIGN_BOTTOM_MID);
|
||||
lv_obj_add_flag(ui_ButtonResetConfirm, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags
|
||||
lv_obj_clear_flag(ui_ButtonResetConfirm, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
lv_obj_set_style_radius(ui_ButtonResetConfirm, 17, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_color(ui_ButtonResetConfirm, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_opa(ui_ButtonResetConfirm, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelSetupBtn2 = lv_label_create(ui_ButtonResetConfirm);
|
||||
lv_obj_set_width(ui_LabelSetupBtn2, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height(ui_LabelSetupBtn2, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_align(ui_LabelSetupBtn2, LV_ALIGN_CENTER);
|
||||
lv_label_set_text(ui_LabelSetupBtn2, "OK");
|
||||
lv_obj_set_style_text_color(ui_LabelSetupBtn2, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_opa(ui_LabelSetupBtn2, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_align(ui_LabelSetupBtn2, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupBtn2, &ui_font_PingFangEN16, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_ImageResetBack = lv_img_create(ui_ScreenReset);
|
||||
lv_img_set_src(ui_ImageResetBack, &ui_img_settings_back_png);
|
||||
lv_obj_set_width(ui_ImageResetBack, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height(ui_ImageResetBack, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_x(ui_ImageResetBack, 10);
|
||||
lv_obj_set_y(ui_ImageResetBack, 10);
|
||||
lv_obj_add_flag(ui_ImageResetBack, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_ADV_HITTEST); /// Flags
|
||||
lv_obj_clear_flag(ui_ImageResetBack, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
|
||||
lv_obj_add_event_cb(ui_ButtonResetConfirm, ui_event_ButtonResetConfirm, LV_EVENT_ALL, NULL);
|
||||
lv_obj_add_event_cb(ui_ImageResetBack, ui_event_ImageResetBack, LV_EVENT_ALL, NULL);
|
||||
|
||||
}
|
||||
@@ -24,9 +24,7 @@ void ui_ScreenSettings_screen_init(void)
|
||||
|
||||
ui_PanelSettings = lv_obj_create(ui_ScreenSettings);
|
||||
lv_obj_set_width(ui_PanelSettings, lv_pct(100));
|
||||
lv_obj_set_height(ui_PanelSettings, lv_pct(75));
|
||||
lv_obj_set_x(ui_PanelSettings, 0);
|
||||
lv_obj_set_y(ui_PanelSettings, 1);
|
||||
lv_obj_set_height(ui_PanelSettings, lv_pct(79));
|
||||
lv_obj_set_align(ui_PanelSettings, LV_ALIGN_BOTTOM_MID);
|
||||
lv_obj_set_flex_flow(ui_PanelSettings, LV_FLEX_FLOW_COLUMN);
|
||||
lv_obj_set_flex_align(ui_PanelSettings, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_SPACE_BETWEEN);
|
||||
@@ -98,7 +96,7 @@ void ui_ScreenSettings_screen_init(void)
|
||||
|
||||
ui_PanelSettingsRegion = lv_obj_create(ui_PanelSettings);
|
||||
lv_obj_set_width(ui_PanelSettingsRegion, lv_pct(100));
|
||||
lv_obj_set_height(ui_PanelSettingsRegion, lv_pct(18));
|
||||
lv_obj_set_height(ui_PanelSettingsRegion, lv_pct(19));
|
||||
lv_obj_set_align(ui_PanelSettingsRegion, LV_ALIGN_BOTTOM_MID);
|
||||
lv_obj_set_flex_flow(ui_PanelSettingsRegion, LV_FLEX_FLOW_ROW);
|
||||
lv_obj_set_flex_align(ui_PanelSettingsRegion, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER);
|
||||
@@ -157,7 +155,18 @@ void ui_ScreenSettings_screen_init(void)
|
||||
lv_obj_add_flag(ui_ImageSettingsBack, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_ADV_HITTEST); /// Flags
|
||||
lv_obj_clear_flag(ui_ImageSettingsBack, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
|
||||
ui_ImageSettingsReset = lv_img_create(ui_ScreenSettings);
|
||||
lv_img_set_src(ui_ImageSettingsReset, &ui_img_reset_icon_png);
|
||||
lv_obj_set_width(ui_ImageSettingsReset, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height(ui_ImageSettingsReset, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_x(ui_ImageSettingsReset, -10);
|
||||
lv_obj_set_y(ui_ImageSettingsReset, 10);
|
||||
lv_obj_set_align(ui_ImageSettingsReset, LV_ALIGN_TOP_RIGHT);
|
||||
lv_obj_add_flag(ui_ImageSettingsReset, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_ADV_HITTEST); /// Flags
|
||||
lv_obj_clear_flag(ui_ImageSettingsReset, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
|
||||
lv_obj_add_event_cb(ui_DropdownSettingsRegion, ui_event_DropdownSettingsRegion, LV_EVENT_ALL, NULL);
|
||||
lv_obj_add_event_cb(ui_ImageSettingsBack, ui_event_ImageSettingsBack, LV_EVENT_ALL, NULL);
|
||||
lv_obj_add_event_cb(ui_ImageSettingsReset, ui_event_ImageSettingsReset, LV_EVENT_ALL, NULL);
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ void ui_ScreenSetup_screen_init(void)
|
||||
ui_PanelSetupWifi = lv_obj_create(ui_ScreenSetup);
|
||||
lv_obj_set_width(ui_PanelSetupWifi, 320);
|
||||
lv_obj_set_height(ui_PanelSetupWifi, 240);
|
||||
lv_obj_add_flag(ui_PanelSetupWifi, LV_OBJ_FLAG_HIDDEN); /// Flags
|
||||
lv_obj_clear_flag(ui_PanelSetupWifi, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
lv_obj_set_style_radius(ui_PanelSetupWifi, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_color(ui_PanelSetupWifi, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
@@ -56,11 +55,22 @@ void ui_ScreenSetup_screen_init(void)
|
||||
lv_obj_set_style_text_align(ui_LabelSetupWifi, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupWifi, &ui_font_PingFangEN20, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_ImageSetupWifiReset = lv_img_create(ui_PanelSetupWifi);
|
||||
lv_img_set_src(ui_ImageSetupWifiReset, &ui_img_reset_icon_png);
|
||||
lv_obj_set_width(ui_ImageSetupWifiReset, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height(ui_ImageSetupWifiReset, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_x(ui_ImageSetupWifiReset, -10);
|
||||
lv_obj_set_y(ui_ImageSetupWifiReset, 10);
|
||||
lv_obj_set_align(ui_ImageSetupWifiReset, LV_ALIGN_TOP_RIGHT);
|
||||
lv_obj_add_flag(ui_ImageSetupWifiReset, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_ADV_HITTEST); /// Flags
|
||||
lv_obj_clear_flag(ui_ImageSetupWifiReset, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
|
||||
ui_PanelSetupSteps = lv_obj_create(ui_ScreenSetup);
|
||||
lv_obj_set_width(ui_PanelSetupSteps, 320);
|
||||
lv_obj_set_height(ui_PanelSetupSteps, 240);
|
||||
lv_obj_set_x(ui_PanelSetupSteps, -1);
|
||||
lv_obj_set_y(ui_PanelSetupSteps, 0);
|
||||
lv_obj_set_y(ui_PanelSetupSteps, -2);
|
||||
lv_obj_add_flag(ui_PanelSetupSteps, LV_OBJ_FLAG_HIDDEN); /// Flags
|
||||
lv_obj_clear_flag(ui_PanelSetupSteps, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
lv_obj_set_style_radius(ui_PanelSetupSteps, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_color(ui_PanelSetupSteps, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
@@ -134,5 +144,6 @@ void ui_ScreenSetup_screen_init(void)
|
||||
lv_obj_set_style_text_align(ui_LabelSetupBtn, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupBtn, &ui_font_PingFangEN16, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
lv_obj_add_event_cb(ui_ImageSetupWifiReset, ui_event_ImageSetupWifiReset, LV_EVENT_ALL, NULL);
|
||||
lv_obj_add_event_cb(ui_ButtonSetup, ui_event_ButtonSetup, LV_EVENT_ALL, NULL);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
// This file was generated by SquareLine Studio
|
||||
// SquareLine Studio version: SquareLine Studio 1.3.0
|
||||
// LVGL version: 8.3.4
|
||||
// Project name: chat_gpt
|
||||
|
||||
#include "../ui.h"
|
||||
|
||||
void ui_ScreenWifiReset_screen_init(void)
|
||||
{
|
||||
ui_ScreenWifiReset = lv_obj_create(NULL);
|
||||
lv_obj_clear_flag(ui_ScreenWifiReset, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
lv_obj_set_style_bg_img_src(ui_ScreenWifiReset, &ui_img_setup_bg_png, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelWifiResetTitle = lv_label_create(ui_ScreenWifiReset);
|
||||
lv_obj_set_width(ui_LabelWifiResetTitle, 230);
|
||||
lv_obj_set_height(ui_LabelWifiResetTitle, LV_SIZE_CONTENT); /// 140
|
||||
lv_obj_set_x(ui_LabelWifiResetTitle, 45);
|
||||
lv_obj_set_y(ui_LabelWifiResetTitle, 15);
|
||||
lv_label_set_text(ui_LabelWifiResetTitle, "Factory Reset");
|
||||
lv_obj_set_style_text_color(ui_LabelWifiResetTitle, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_opa(ui_LabelWifiResetTitle, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_align(ui_LabelWifiResetTitle, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelWifiResetTitle, &ui_font_PingFangEN20, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_ButtonWifiResetConfirm = lv_btn_create(ui_ScreenWifiReset);
|
||||
lv_obj_set_width(ui_ButtonWifiResetConfirm, 72);
|
||||
lv_obj_set_height(ui_ButtonWifiResetConfirm, 24);
|
||||
lv_obj_set_x(ui_ButtonWifiResetConfirm, 0);
|
||||
lv_obj_set_y(ui_ButtonWifiResetConfirm, -20);
|
||||
lv_obj_set_align(ui_ButtonWifiResetConfirm, LV_ALIGN_BOTTOM_MID);
|
||||
lv_obj_add_flag(ui_ButtonWifiResetConfirm, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags
|
||||
lv_obj_clear_flag(ui_ButtonWifiResetConfirm, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
lv_obj_set_style_radius(ui_ButtonWifiResetConfirm, 17, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_color(ui_ButtonWifiResetConfirm, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_bg_opa(ui_ButtonWifiResetConfirm, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_LabelSetupBtn1 = lv_label_create(ui_ButtonWifiResetConfirm);
|
||||
lv_obj_set_width(ui_LabelSetupBtn1, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height(ui_LabelSetupBtn1, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_align(ui_LabelSetupBtn1, LV_ALIGN_CENTER);
|
||||
lv_label_set_text(ui_LabelSetupBtn1, "OK");
|
||||
lv_obj_set_style_text_color(ui_LabelSetupBtn1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_opa(ui_LabelSetupBtn1, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_align(ui_LabelSetupBtn1, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelSetupBtn1, &ui_font_PingFangEN16, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
ui_ImageWifiResetBack = lv_img_create(ui_ScreenWifiReset);
|
||||
lv_img_set_src(ui_ImageWifiResetBack, &ui_img_settings_back_png);
|
||||
lv_obj_set_width(ui_ImageWifiResetBack, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_height(ui_ImageWifiResetBack, LV_SIZE_CONTENT); /// 1
|
||||
lv_obj_set_x(ui_ImageWifiResetBack, 10);
|
||||
lv_obj_set_y(ui_ImageWifiResetBack, 10);
|
||||
lv_obj_add_flag(ui_ImageWifiResetBack, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_ADV_HITTEST); /// Flags
|
||||
lv_obj_clear_flag(ui_ImageWifiResetBack, LV_OBJ_FLAG_SCROLLABLE); /// Flags
|
||||
|
||||
ui_LabelWifiResetContent = lv_label_create(ui_ScreenWifiReset);
|
||||
lv_obj_set_width(ui_LabelWifiResetContent, lv_pct(88));
|
||||
lv_obj_set_height(ui_LabelWifiResetContent, lv_pct(61));
|
||||
lv_obj_set_x(ui_LabelWifiResetContent, lv_pct(0));
|
||||
lv_obj_set_y(ui_LabelWifiResetContent, lv_pct(20));
|
||||
lv_obj_set_align(ui_LabelWifiResetContent, LV_ALIGN_TOP_MID);
|
||||
lv_label_set_text(ui_LabelWifiResetContent,
|
||||
"1. Press the \"OK\" button to enter factory reset mode.\n2. Connect the box to your PC and add the OpenAI key and Wi-Fi credentials.\n3. Follow the on-screen prompts to complete the setup process.");
|
||||
lv_obj_set_style_text_color(ui_LabelWifiResetContent, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_opa(ui_LabelWifiResetContent, 255, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_letter_space(ui_LabelWifiResetContent, 0, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_line_space(ui_LabelWifiResetContent, 5, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
lv_obj_set_style_text_font(ui_LabelWifiResetContent, &ui_font_PingFangEN14, LV_PART_MAIN | LV_STATE_DEFAULT);
|
||||
|
||||
lv_obj_add_event_cb(ui_ButtonWifiResetConfirm, ui_event_ButtonWifiResetConfirm, LV_EVENT_ALL, NULL);
|
||||
lv_obj_add_event_cb(ui_ImageWifiResetBack, ui_event_ImageWifiResetBack, LV_EVENT_ALL, NULL);
|
||||
|
||||
}
|
||||
@@ -18,6 +18,8 @@ lv_obj_t * ui_ScreenSetup;
|
||||
lv_obj_t * ui_ImageSetupTextBg;
|
||||
lv_obj_t * ui_PanelSetupWifi;
|
||||
lv_obj_t * ui_LabelSetupWifi;
|
||||
void ui_event_ImageSetupWifiReset(lv_event_t * e);
|
||||
lv_obj_t * ui_ImageSetupWifiReset;
|
||||
lv_obj_t * ui_PanelSetupSteps;
|
||||
lv_obj_t * ui_LabelSetupStepContent;
|
||||
lv_obj_t * ui_LabelSetupStepTile;
|
||||
@@ -25,6 +27,17 @@ void ui_event_ButtonSetup(lv_event_t * e);
|
||||
lv_obj_t * ui_ButtonSetup;
|
||||
lv_obj_t * ui_LabelSetupBtn;
|
||||
|
||||
// SCREEN: ui_ScreenWifiReset
|
||||
void ui_ScreenWifiReset_screen_init(void);
|
||||
lv_obj_t * ui_ScreenWifiReset;
|
||||
lv_obj_t * ui_LabelWifiResetTitle;
|
||||
void ui_event_ButtonWifiResetConfirm(lv_event_t * e);
|
||||
lv_obj_t * ui_ButtonWifiResetConfirm;
|
||||
lv_obj_t * ui_LabelSetupBtn1;
|
||||
void ui_event_ImageWifiResetBack(lv_event_t * e);
|
||||
lv_obj_t * ui_ImageWifiResetBack;
|
||||
lv_obj_t * ui_LabelWifiResetContent;
|
||||
|
||||
// SCREEN: ui_ScreenListen
|
||||
void ui_ScreenListen_screen_init(void);
|
||||
lv_obj_t * ui_ScreenListen;
|
||||
@@ -72,6 +85,19 @@ void ui_event_DropdownSettingsRegion(lv_event_t * e);
|
||||
lv_obj_t * ui_DropdownSettingsRegion;
|
||||
void ui_event_ImageSettingsBack(lv_event_t * e);
|
||||
lv_obj_t * ui_ImageSettingsBack;
|
||||
void ui_event_ImageSettingsReset(lv_event_t * e);
|
||||
lv_obj_t * ui_ImageSettingsReset;
|
||||
|
||||
// SCREEN: ui_ScreenReset
|
||||
void ui_ScreenReset_screen_init(void);
|
||||
lv_obj_t * ui_ScreenReset;
|
||||
lv_obj_t * ui_LabelResetTitle;
|
||||
lv_obj_t * ui_LabelResetContent;
|
||||
void ui_event_ButtonResetConfirm(lv_event_t * e);
|
||||
lv_obj_t * ui_ButtonResetConfirm;
|
||||
lv_obj_t * ui_LabelSetupBtn2;
|
||||
void ui_event_ImageResetBack(lv_event_t * e);
|
||||
lv_obj_t * ui_ImageResetBack;
|
||||
void ui_event____initial_actions0(lv_event_t * e);
|
||||
lv_obj_t * ui____initial_actions0;
|
||||
const lv_img_dsc_t * ui_imgset_listen_body_eyes_[2] = {&ui_img_listen_body_eyes_1_png, &ui_img_listen_body_eyes_2_png};
|
||||
@@ -187,10 +213,16 @@ void get_eye_blink_Animation(lv_obj_t * TargetObject, int delay)
|
||||
}
|
||||
|
||||
///////////////////// FUNCTIONS ////////////////////
|
||||
void ui_event_ImageSetupWifiReset(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenWifiReset, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
}
|
||||
}
|
||||
void ui_event_ButtonSetup(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
lv_obj_t * target = lv_event_get_target(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenListen, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
if(ui_get_btn_op_group()) {
|
||||
@@ -208,10 +240,23 @@ void ui_event_ButtonSetup(lv_event_t * e)
|
||||
_ui_flag_modify(ui_PanelReply, LV_OBJ_FLAG_HIDDEN, _UI_MODIFY_FLAG_ADD);
|
||||
}
|
||||
}
|
||||
void ui_event_ButtonWifiResetConfirm(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
EventWifiResetConfirmClick(e);
|
||||
}
|
||||
}
|
||||
void ui_event_ImageWifiResetBack(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenSetup, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
}
|
||||
}
|
||||
void ui_event_PanelSleep(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
lv_obj_t * target = lv_event_get_target(e);
|
||||
|
||||
if(true == lv_obj_has_flag(ui_PanelSleep, LV_OBJ_FLAG_HIDDEN)) {
|
||||
return;
|
||||
@@ -230,7 +275,6 @@ void ui_event_PanelSleep(lv_event_t * e)
|
||||
void ui_event_ImageListenSettings(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
lv_obj_t * target = lv_event_get_target(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenSettings, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
if(ui_get_btn_op_group()) {
|
||||
@@ -242,33 +286,38 @@ void ui_event_ImageListenSettings(lv_event_t * e)
|
||||
|
||||
void ui_event_DropdownSettingsRegion(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
lv_obj_t * target = lv_event_get_target(e);
|
||||
|
||||
if(event_code == LV_EVENT_VALUE_CHANGED) {
|
||||
EventSettingsRegionValueChange(e);
|
||||
} else if(event_code == LV_EVENT_LONG_PRESSED_REPEAT) {
|
||||
#if CONFIG_BSP_BOARD_ESP32_S3_BOX_Lite
|
||||
lv_event_send(ui_ImageSettingsBack, LV_EVENT_CLICKED, NULL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
void ui_event_ImageSettingsBack(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
lv_obj_t * target = lv_event_get_target(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenListen, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
if(ui_get_btn_op_group()) {
|
||||
lv_group_remove_all_objs(ui_get_btn_op_group());
|
||||
lv_group_add_obj(ui_get_btn_op_group(), ui_PanelSleep);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ui_event_ImageSettingsReset(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenReset, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
}
|
||||
}
|
||||
void ui_event_ButtonResetConfirm(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
EventResetConfirm(e);
|
||||
}
|
||||
}
|
||||
void ui_event_ImageResetBack(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
if(event_code == LV_EVENT_CLICKED) {
|
||||
_ui_screen_change(ui_ScreenSettings, LV_SCR_LOAD_ANIM_NONE, 0, 0);
|
||||
}
|
||||
}
|
||||
void ui_event____initial_actions0(lv_event_t * e)
|
||||
{
|
||||
lv_event_code_t event_code = lv_event_get_code(e);
|
||||
lv_obj_t * target = lv_event_get_target(e);
|
||||
if(event_code == LV_EVENT_SCREEN_LOAD_START) {
|
||||
_ui_flag_modify(ui_PanelSetupWifi, LV_OBJ_FLAG_HIDDEN, _UI_MODIFY_FLAG_REMOVE);
|
||||
_ui_flag_modify(ui_PanelSetupSteps, LV_OBJ_FLAG_HIDDEN, _UI_MODIFY_FLAG_ADD);
|
||||
@@ -291,8 +340,10 @@ void ui_init(void)
|
||||
|
||||
lv_disp_set_theme(dispp, theme);
|
||||
ui_ScreenSetup_screen_init();
|
||||
ui_ScreenWifiReset_screen_init();
|
||||
ui_ScreenListen_screen_init();
|
||||
ui_ScreenSettings_screen_init();
|
||||
ui_ScreenReset_screen_init();
|
||||
ui____initial_actions0 = lv_obj_create(NULL);
|
||||
lv_obj_add_event_cb(ui____initial_actions0, ui_event____initial_actions0, LV_EVENT_ALL, NULL);
|
||||
|
||||
|
||||
@@ -24,12 +24,24 @@ extern lv_obj_t * ui_ScreenSetup;
|
||||
extern lv_obj_t * ui_ImageSetupTextBg;
|
||||
extern lv_obj_t * ui_PanelSetupWifi;
|
||||
extern lv_obj_t * ui_LabelSetupWifi;
|
||||
void ui_event_ImageSetupWifiReset(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ImageSetupWifiReset;
|
||||
extern lv_obj_t * ui_PanelSetupSteps;
|
||||
extern lv_obj_t * ui_LabelSetupStepContent;
|
||||
extern lv_obj_t * ui_LabelSetupStepTile;
|
||||
void ui_event_ButtonSetup(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ButtonSetup;
|
||||
extern lv_obj_t * ui_LabelSetupBtn;
|
||||
// SCREEN: ui_ScreenWifiReset
|
||||
void ui_ScreenWifiReset_screen_init(void);
|
||||
extern lv_obj_t * ui_ScreenWifiReset;
|
||||
extern lv_obj_t * ui_LabelWifiResetTitle;
|
||||
void ui_event_ButtonWifiResetConfirm(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ButtonWifiResetConfirm;
|
||||
extern lv_obj_t * ui_LabelSetupBtn1;
|
||||
void ui_event_ImageWifiResetBack(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ImageWifiResetBack;
|
||||
extern lv_obj_t * ui_LabelWifiResetContent;
|
||||
// SCREEN: ui_ScreenListen
|
||||
void ui_ScreenListen_screen_init(void);
|
||||
extern lv_obj_t * ui_ScreenListen;
|
||||
@@ -76,6 +88,18 @@ void ui_event_DropdownSettingsRegion(lv_event_t * e);
|
||||
extern lv_obj_t * ui_DropdownSettingsRegion;
|
||||
void ui_event_ImageSettingsBack(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ImageSettingsBack;
|
||||
void ui_event_ImageSettingsReset(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ImageSettingsReset;
|
||||
// SCREEN: ui_ScreenReset
|
||||
void ui_ScreenReset_screen_init(void);
|
||||
extern lv_obj_t * ui_ScreenReset;
|
||||
extern lv_obj_t * ui_LabelResetTitle;
|
||||
extern lv_obj_t * ui_LabelResetContent;
|
||||
void ui_event_ButtonResetConfirm(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ButtonResetConfirm;
|
||||
extern lv_obj_t * ui_LabelSetupBtn2;
|
||||
void ui_event_ImageResetBack(lv_event_t * e);
|
||||
extern lv_obj_t * ui_ImageResetBack;
|
||||
void ui_event____initial_actions0(lv_event_t * e);
|
||||
extern lv_obj_t * ui____initial_actions0;
|
||||
|
||||
@@ -84,6 +108,8 @@ lv_group_t *ui_get_btn_op_group(void);
|
||||
|
||||
LV_IMG_DECLARE(ui_img_setup_bg_png); // assets\setup_bg.png
|
||||
LV_IMG_DECLARE(ui_img_setup_text_bg_png); // assets\setup_text_bg.png
|
||||
LV_IMG_DECLARE(ui_img_reset_icon_png); // assets\reset_icon.png
|
||||
LV_IMG_DECLARE(ui_img_settings_back_png); // assets\settings_back.png
|
||||
LV_IMG_DECLARE(ui_img_body_shadow_png); // assets\body_shadow.png
|
||||
LV_IMG_DECLARE(ui_img_body_png); // assets\body.png
|
||||
LV_IMG_DECLARE(ui_img_body_eye_screen_png); // assets\body_eye_screen.png
|
||||
@@ -97,7 +123,6 @@ LV_IMG_DECLARE(ui_img_reply_body_png); // assets\reply_body.png
|
||||
LV_IMG_DECLARE(ui_img_reply_small_shadow_png); // assets\reply_small_shadow.png
|
||||
LV_IMG_DECLARE(ui_img_reply_chatgpt_logo_png); // assets\reply_chatgpt_logo.png
|
||||
LV_IMG_DECLARE(ui_img_settings_icon_png); // assets\settings_icon.png
|
||||
LV_IMG_DECLARE(ui_img_settings_back_png); // assets\settings_back.png
|
||||
LV_IMG_DECLARE(ui_img_listen_body_eyes_2_png); // assets\listen_body_eyes_2.png
|
||||
|
||||
LV_FONT_DECLARE(ui_font_KaiTiCN20);
|
||||
|
||||
@@ -11,8 +11,10 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
void EventBtnSetupClick(lv_event_t * e);
|
||||
void EventWifiResetConfirmClick(lv_event_t * e);
|
||||
void EventPanelSleepClickCb(lv_event_t * e);
|
||||
void EventSettingsRegionValueChange(lv_event_t * e);
|
||||
// void EventSettingsRegionValueChange(lv_event_t * e);
|
||||
void EventResetConfirm(lv_event_t * e);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
# Name, Type, SubType, Offset, Size, Flags
|
||||
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
|
||||
nvs, data, nvs, 0x9000, 0x6000,
|
||||
phy_init, data, phy, 0xf000, 0x1000,
|
||||
factory, app, factory, 0x10000, 8M,
|
||||
storage, data, spiffs, , 2M,
|
||||
model, data, spiffs, , 4000K
|
||||
nvs, data, nvs, 0x9000, 0x4000,
|
||||
otadata, data, ota, 0xd000, 0x2000,
|
||||
phy_init, data, phy, 0xf000, 0x1000,
|
||||
ota_0, app, ota_0, 0x10000, 6M,
|
||||
uf2, app, factory, 0x700000, 2M,
|
||||
storage, data, spiffs, 0x900000, 2M,
|
||||
model, data, spiffs, 0xb00000, 4000K
|
||||
|
@@ -5,9 +5,6 @@ CONFIG_IDF_TARGET="esp32s3"
|
||||
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||
CONFIG_ESP_WIFI_SSID=""
|
||||
CONFIG_ESP_WIFI_PASSWORD=""
|
||||
CONFIG_OPENAI_API_KEY=""
|
||||
CONFIG_SR_WN_WN9_HIESP=y
|
||||
CONFIG_SR_MN_CN_NONE=y
|
||||
CONFIG_SR_MN_EN_MULTINET5_SINGLE_RECOGNITION_QUANT8=y
|
||||
|
||||
|
After Width: | Height: | Size: 568 B |
@@ -1,7 +1,7 @@
|
||||
esp_toml_version = 1.0
|
||||
firmware_images_url = "https://dl.espressif.com/AE/esp-box/"
|
||||
|
||||
supported_apps = ["ESP-BOX_Demo_EN_V0_3_0", "ESP-BOX_Demo_CN_V0_3_0", "ESP-BOX_USB_Headset_V0_0_1"]
|
||||
supported_apps = ["ESP-BOX_Demo_EN_V0_3_0", "ESP-BOX_Demo_CN_V0_3_0", "ESP-BOX_USB_Headset_V0_0_1", "ESP-BOX_ChatGPT_Demo_V1_0"]
|
||||
|
||||
[ESP-BOX_Demo_EN_V0_3_0]
|
||||
chipsets = ["ESP32-S3"]
|
||||
@@ -19,4 +19,10 @@ ios_app_url = ""
|
||||
chipsets = ["ESP32-S3"]
|
||||
image.esp32-s3 = "ESP-BOX_USB_Headset_V0.0.1.bin"
|
||||
android_app_url = ""
|
||||
ios_app_url = ""
|
||||
|
||||
[ESP-BOX_ChatGPT_Demo_V1_0]
|
||||
chipsets = ["ESP32-S3"]
|
||||
image.esp32-s3 = "ESP-BOX_ChatGPT_Demo_V1.0.bin"
|
||||
android_app_url = ""
|
||||
ios_app_url = ""
|
||||