This commit is contained in:
Daniel Béreš 2020-02-09 16:05:26 +01:00
commit 606e4b4395
465 changed files with 98364 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
.pio
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch

67
.travis.yml Normal file
View File

@ -0,0 +1,67 @@
# Continuous Integration (CI) is the practice, in software
# engineering, of merging all developer working copies with a shared mainline
# several times a day < https://docs.platformio.org/page/ci/index.html >
#
# Documentation:
#
# * Travis CI Embedded Builds with PlatformIO
# < https://docs.travis-ci.com/user/integration/platformio/ >
#
# * PlatformIO integration with Travis CI
# < https://docs.platformio.org/page/ci/travis.html >
#
# * User Guide for `platformio ci` command
# < https://docs.platformio.org/page/userguide/cmd_ci.html >
#
#
# Please choose one of the following templates (proposed below) and uncomment
# it (remove "# " before each line) or use own configuration according to the
# Travis CI documentation (see above).
#
#
# Template #1: General project. Test it using existing `platformio.ini`.
#
# language: python
# python:
# - "2.7"
#
# sudo: false
# cache:
# directories:
# - "~/.platformio"
#
# install:
# - pip install -U platformio
# - platformio update
#
# script:
# - platformio run
#
# Template #2: The project is intended to be used as a library with examples.
#
# language: python
# python:
# - "2.7"
#
# sudo: false
# cache:
# directories:
# - "~/.platformio"
#
# env:
# - PLATFORMIO_CI_SRC=path/to/test/file.c
# - PLATFORMIO_CI_SRC=examples/file.ino
# - PLATFORMIO_CI_SRC=path/to/test/directory
#
# install:
# - pip install -U platformio
# - platformio update
#
# script:
# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N

7
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
]
}

39
include/README Normal file
View File

@ -0,0 +1,39 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

46
lib/README Normal file
View File

@ -0,0 +1,46 @@
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into executable file.
The source code of each library should be placed in a an own separate directory
("lib/your_library_name/[here are source files]").
For example, see a structure of the following two libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
and a contents of `src/main.c`:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
PlatformIO Library Dependency Finder will find automatically dependent
libraries scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html

477
lib/ca/ca.c Normal file
View File

@ -0,0 +1,477 @@
#include "ca.h"
#define DFL_ISSUER_CRT "/spiffs/CA.crt"
#define DFL_REQUEST_FILE "/spiffs/cert.req"
#define DFL_SUBJECT_KEY "subject.key"
#define DFL_ISSUER_KEY "/spiffs/keyfile.key"
#define DFL_SUBJECT_PWD ""
#define DFL_ISSUER_PWD ""
#define DFL_OUTPUT_FILENAME "/spiffs/cert.crt"
#define DFL_SUBJECT_NAME "CN=Cert,O=mbed TLS,C=UK"
#define DFL_ISSUER_NAME "CN=CA,O=mbed TLS,C=UK"
#define DFL_NOT_BEFORE "20010101000000"
#define DFL_NOT_AFTER "20301231235959"
#define DFL_SERIAL "1"
#define DFL_SELFSIGN 0
#define DFL_IS_CA 0
#define DFL_MAX_PATHLEN -1
#define DFL_KEY_USAGE 0
#define DFL_NS_CERT_TYPE 0
#define DFL_VERSION 3
#define DFL_AUTH_IDENT 1
#define DFL_SUBJ_IDENT 1
#define DFL_CONSTRAINTS 1
#define DFL_DIGEST MBEDTLS_MD_SHA256
struct options
{
const char *issuer_crt; /* filename of the issuer certificate */
const char *request_file; /* filename of the certificate request */
const char *subject_key; /* filename of the subject key file */
const char *issuer_key; /* filename of the issuer key file */
const char *subject_pwd; /* password for the subject key file */
const char *issuer_pwd; /* password for the issuer key file */
const char *output_file; /* where to store the constructed CRT */
const char *subject_name; /* subject name for certificate */
const char *issuer_name; /* issuer name for certificate */
const char *not_before; /* validity period not before */
const char *not_after; /* validity period not after */
const char *serial; /* serial number string */
int selfsign; /* selfsign the certificate */
int is_ca; /* is a CA certificate */
int max_pathlen; /* maximum CA path length */
int authority_identifier; /* add authority identifier to CRT */
int subject_identifier; /* add subject identifier to CRT */
int basic_constraints; /* add basic constraints ext to CRT */
int version; /* CRT version */
mbedtls_md_type_t md; /* Hash used for signing */
unsigned char key_usage; /* key usage flags */
unsigned char ns_cert_type; /* NS cert type */
} opt;
void certifikat(void * pvParameters){
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
mbedtls_x509_crt issuer_crt;
mbedtls_pk_context loaded_issuer_key, loaded_subject_key;
mbedtls_pk_context *issuer_key = &loaded_issuer_key,
*subject_key = &loaded_subject_key;
char *buf = calloc(1024,sizeof(char));
char issuer_name[256] ;//= calloc(256,sizeof(char));
// int i;
// char *p, *q, *r;
#if defined(MBEDTLS_X509_CSR_PARSE_C)
char subject_name[256];// = calloc(256,sizeof(char));
mbedtls_x509_csr csr;
#endif
mbedtls_x509write_cert crt;
mbedtls_mpi serial;
mbedtls_entropy_context entropy;
mbedtls_ctr_drbg_context ctr_drbg;
const char *pers = "crt example app";
mbedtls_x509write_crt_init( &crt );
mbedtls_pk_init( &loaded_issuer_key );
mbedtls_pk_init( &loaded_subject_key );
mbedtls_mpi_init( &serial );
mbedtls_ctr_drbg_init( &ctr_drbg );
mbedtls_entropy_init( &entropy );
#if defined(MBEDTLS_X509_CSR_PARSE_C)
mbedtls_x509_csr_init( &csr );
#endif
mbedtls_x509_crt_init( &issuer_crt );
memset( buf, 0, 1024 );
opt.issuer_crt = DFL_ISSUER_CRT;
opt.request_file = DFL_REQUEST_FILE;
opt.subject_key = DFL_SUBJECT_KEY;
opt.issuer_key = DFL_ISSUER_KEY;
opt.subject_pwd = DFL_SUBJECT_PWD;
opt.issuer_pwd = DFL_ISSUER_PWD;
opt.output_file = DFL_OUTPUT_FILENAME;
opt.subject_name = DFL_SUBJECT_NAME;
opt.issuer_name = DFL_ISSUER_NAME;
opt.not_before = DFL_NOT_BEFORE;
opt.not_after = DFL_NOT_AFTER;
opt.serial = DFL_SERIAL;
opt.selfsign = DFL_SELFSIGN;
opt.is_ca = DFL_IS_CA;
opt.max_pathlen = DFL_MAX_PATHLEN;
opt.key_usage = DFL_KEY_USAGE;
opt.ns_cert_type = DFL_NS_CERT_TYPE;
opt.version = DFL_VERSION - 1;
opt.md = DFL_DIGEST;
opt.subject_identifier = DFL_SUBJ_IDENT;
opt.authority_identifier = DFL_AUTH_IDENT;
opt.basic_constraints = DFL_CONSTRAINTS;
/*
* 0. Seed the PRNG
*/
mbedtls_printf( " . Seeding the random number generator..." );
fflush( stdout );
if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
(const unsigned char *) pers,
strlen( pers ) ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n",
ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
// Parse serial to MPI
//
mbedtls_printf( " . Reading serial number..." );
fflush( stdout );
if( ( ret = mbedtls_mpi_read_string( &serial, 10, opt.serial ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_mpi_read_string "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
// Parse issuer certificate if present
//
if( !opt.selfsign && strlen( opt.issuer_crt ) )
{
/*
* 1.0.a. Load the certificates
*/
mbedtls_printf( " . Loading the issuer certificate ..." );
fflush( stdout );
if( ( ret = mbedtls_x509_crt_parse_file( &issuer_crt, opt.issuer_crt ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
ret = mbedtls_x509_dn_gets( issuer_name, sizeof(issuer_name),
&issuer_crt.subject );
if( ret < 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
opt.issuer_name = issuer_name;
mbedtls_printf( " ok\n" );
}
#if defined(MBEDTLS_X509_CSR_PARSE_C)
// Parse certificate request if present
//
if( !opt.selfsign && strlen( opt.request_file ) )
{
/*
* 1.0.b. Load the CSR
*/
mbedtls_printf( " . Loading the certificate request ..." );
fflush( stdout );
if( ( ret = mbedtls_x509_csr_parse_file( &csr, opt.request_file ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
ret = mbedtls_x509_dn_gets( subject_name, sizeof(subject_name),
&csr.subject );
if( ret < 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
opt.subject_name = subject_name;
subject_key = &csr.pk;
mbedtls_printf( " ok\n" );
}
#endif /* MBEDTLS_X509_CSR_PARSE_C */
/*
* 1.1. Load the keys
*/
if( !opt.selfsign && !strlen( opt.request_file ) )
{
mbedtls_printf( " . Loading the subject key ..." );
fflush( stdout );
ret = mbedtls_pk_parse_keyfile( &loaded_subject_key, opt.subject_key,
opt.subject_pwd );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
}
mbedtls_printf( " . Loading the issuer key ..." );
fflush( stdout );
ret = mbedtls_pk_parse_keyfile( &loaded_issuer_key, opt.issuer_key,
opt.issuer_pwd );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile "
"returned -x%02x - %s\n\n", -ret, buf );
goto exit;
}
// Check if key and issuer certificate match
//
if( strlen( opt.issuer_crt ) )
{
if( mbedtls_pk_check_pair( &issuer_crt.pk, issuer_key ) != 0 )
{
mbedtls_printf( " failed\n ! issuer_key does not match "
"issuer certificate\n\n" );
goto exit;
}
}
mbedtls_printf( " ok\n" );
if( opt.selfsign )
{
opt.subject_name = opt.issuer_name;
subject_key = issuer_key;
}
mbedtls_x509write_crt_set_subject_key( &crt, subject_key );
mbedtls_x509write_crt_set_issuer_key( &crt, issuer_key );
/*
* 1.0. Check the names for validity
*/
if( ( ret = mbedtls_x509write_crt_set_subject_name( &crt, opt.subject_name ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject_name "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
if( ( ret = mbedtls_x509write_crt_set_issuer_name( &crt, opt.issuer_name ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_issuer_name "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " . Setting certificate values ..." );
fflush( stdout );
mbedtls_x509write_crt_set_version( &crt, opt.version );
mbedtls_x509write_crt_set_md_alg( &crt, opt.md );
ret = mbedtls_x509write_crt_set_serial( &crt, &serial );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_serial "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
ret = mbedtls_x509write_crt_set_validity( &crt, opt.not_before, opt.not_after );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_validity "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
opt.basic_constraints != 0 )
{
mbedtls_printf( " . Adding the Basic Constraints extension ..." );
fflush( stdout );
ret = mbedtls_x509write_crt_set_basic_constraints( &crt, opt.is_ca,
opt.max_pathlen );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! x509write_crt_set_basic_contraints "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
}
#if defined(MBEDTLS_SHA1_C)
if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
opt.subject_identifier != 0 )
{
mbedtls_printf( " . Adding the Subject Key Identifier ..." );
fflush( stdout );
ret = mbedtls_x509write_crt_set_subject_key_identifier( &crt );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject"
"_key_identifier returned -0x%04x - %s\n\n",
-ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
}
if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
opt.authority_identifier != 0 )
{
mbedtls_printf( " . Adding the Authority Key Identifier ..." );
fflush( stdout );
ret = mbedtls_x509write_crt_set_authority_key_identifier( &crt );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_authority_"
"key_identifier returned -0x%04x - %s\n\n",
-ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
}
#endif /* MBEDTLS_SHA1_C */
if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
opt.key_usage != 0 )
{
mbedtls_printf( " . Adding the Key Usage extension ..." );
fflush( stdout );
ret = mbedtls_x509write_crt_set_key_usage( &crt, opt.key_usage );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_key_usage "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
}
if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
opt.ns_cert_type != 0 )
{
mbedtls_printf( " . Adding the NS Cert Type extension ..." );
fflush( stdout );
ret = mbedtls_x509write_crt_set_ns_cert_type( &crt, opt.ns_cert_type );
if( ret != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ns_cert_type "
"returned -0x%04x - %s\n\n", -ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
}
/*
* 1.2. Writing the certificate
*/
mbedtls_printf( " . Writing the certificate..." );
fflush( stdout );
unsigned char output_buf[4096];
memset( output_buf, 0, 4096 );
//////////////////////////////////////////////////////////
//ret = mbedtls_x509write_crt_pem( &crt, output_buf, 4096, mbedtls_ctr_drbg_random, &ctr_drbg );
if( ( ret = write_certificate( &crt, opt.output_file, mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
{
mbedtls_strerror( ret, buf, 1024 );
mbedtls_printf( " failed\n ! write_certificate -0x%04x - %s\n\n",
-ret, buf );
goto exit;
}
mbedtls_printf( " ok\n" );
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
#if defined(MBEDTLS_X509_CSR_PARSE_C)
mbedtls_x509_csr_free( &csr );
#endif /* MBEDTLS_X509_CSR_PARSE_C */
mbedtls_x509_crt_free( &issuer_crt );
mbedtls_x509write_crt_free( &crt );
mbedtls_pk_free( &loaded_subject_key );
mbedtls_pk_free( &loaded_issuer_key );
mbedtls_mpi_free( &serial );
mbedtls_ctr_drbg_free( &ctr_drbg );
mbedtls_entropy_free( &entropy );
for(;;){
vTaskDelay(40);
}
}
int write_certificate( mbedtls_x509write_cert *crt, const char *output_file,
int (*f_rng)(void *, unsigned char *, size_t),
void *p_rng )
{
int ret;
FILE *f;
unsigned char output_buf[4096];
size_t len = 0;
memset( output_buf, 0, 4096 );
if( ( ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096,
f_rng, p_rng ) ) < 0 )
return( ret );
len = strlen( (char *) output_buf );
if( ( f = fopen( output_file, "w" ) ) == NULL )
return( -1 );
if( fwrite( output_buf, 1, len, f ) != len )
{
fclose( f );
return( -1 );
}
fclose( f );
read_file("/spiffs/cert.crt");
return( 0 );
}

21
lib/ca/ca.h Normal file
View File

@ -0,0 +1,21 @@
#include "create_files.h"
#include MBEDTLS_CONFIG_FILE
#include "mbedtls/platform.h"
#include "mbedtls/x509_crt.h"
#include "mbedtls/x509_csr.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/md.h"
#include "mbedtls/error.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
int write_certificate( mbedtls_x509write_cert *crt, const char *output_file,
int (*f_rng)(void *, unsigned char *, size_t),
void *p_rng );
void certifikat(void * pvParameters);

50
lib/create_files.cpp Normal file
View File

@ -0,0 +1,50 @@
#include<SPIFFS.h>
#include<FS.h>
void create_files(){
File serial = SPIFFS.open("/serial.txt",FILE_WRITE);
serial.print("1");
serial.close();
serial = SPIFFS.open("/keyfile.key",FILE_WRITE);
serial.print("-----BEGIN EC PRIVATE KEY-----\n"\
"MIHcAgEBBEIA4THscwU+atnO/MHMqUx65bQl8qipWp3jaoym1C01lHHB1D7o94ed\n"\
"sKo2P0V5lBWvDrvDHvnXF8aoajIE8a502JmgBwYFK4EEACOhgYkDgYYABAFf3u2n\n"\
"+Z2Y7iw3JwfFVjihJDyaLrjjojTgw9JXuZ3mDpC+RbmtvfowO0Pk6NPl8LxeqCf3\n"\
"19rhscMthQQ1NocsBgAWkaAwWhamRW3CBvmgioz9Bh6ETkE7/zJ1USvvoMfXkGqO\n"\
"ZI0MKehIwLGpGkL2JseYKnnNh/Ue5fHzpzfwncpf4g==\n"\
"-----END EC PRIVATE KEY-----\n");
serial.close();
serial = SPIFFS.open("/CA.crt",FILE_WRITE);
serial.print("-----BEGIN CERTIFICATE-----\n"\
"MIICQDCCAZ+gAwIBAgIBATAMBggqhkjOPQQDAgUAMDkxETAPBgNVBAMMCG15c2Vy\n"\
"dmVyMRcwFQYDVQQKDA5teW9yZ2FuaXNhdGlvbjELMAkGA1UEBhMCTkwwHhcNMTkw\n"\
"MTAxMDAwMDAwWhcNMjExMjMxMjM1OTU5WjA5MREwDwYDVQQDDAhteXNlcnZlcjEX\n"\
"MBUGA1UECgwObXlvcmdhbmlzYXRpb24xCzAJBgNVBAYTAk5MMIGbMBAGByqGSM49\n"\
"AgEGBSuBBAAjA4GGAAQBX97tp/mdmO4sNycHxVY4oSQ8mi6446I04MPSV7md5g6Q\n"\
"vkW5rb36MDtD5OjT5fC8Xqgn99fa4bHDLYUENTaHLAYAFpGgMFoWpkVtwgb5oIqM\n"\
"/QYehE5BO/8ydVEr76DH15BqjmSNDCnoSMCxqRpC9ibHmCp5zYf1HuXx86c38J3K\n"\
"X+KjUzBRMA8GA1UdEwQIMAYBAf8CAQAwHQYDVR0OBBYEFPq3svLwKboIsDWdsSyi\n"\
"Ay/Jw3HQMB8GA1UdIwQYMBaAFPq3svLwKboIsDWdsSyiAy/Jw3HQMAwGCCqGSM49\n"\
"BAMCBQADgYwAMIGIAkIB5yPjh42zT9dkWKthaW5Sf7EFs5yQnadfhVnnyqEho2Bt\n"\
"7KkRrI5/+QH0bZ98JeNvtJimAMXXxP2/uSY1pa+es/ACQgG6MbUQOLvxMyIevF5i\n"\
"PkZrwhm8VfpAmwPIU/6xzcpry8wBbCm/vro1oTdQdGdOUlSSlTQ8QFBCqwMxVt9T\n"\
"1RDiwg==\n"\
"-----END CERTIFICATE-----\n");
serial.close();
serial = SPIFFS.open("/cert.req",FILE_WRITE);
serial.print("-----BEGIN CERTIFICATE REQUEST-----\n"\
"MIIBlDCB9AIBADBPMREwDwYDVQQDDAhlc3AzMi5zazEUMBIGA1UECgwLRXhhbXBs\n"\
"ZSBMdGQxJDAiBgNVBAYTG1VLIG91dHB1dF9maWxlPWVzcDMyLnNrLnJlcTCBmzAQ\n"\
"BgcqhkjOPQIBBgUrgQQAIwOBhgAEAV/e7af5nZjuLDcnB8VWOKEkPJouuOOiNODD\n"\
"0le5neYOkL5Fua29+jA7Q+To0+XwvF6oJ/fX2uGxwy2FBDU2hywGABaRoDBaFqZF\n"\
"bcIG+aCKjP0GHoROQTv/MnVRK++gx9eQao5kjQwp6EjAsakaQvYmx5gqec2H9R7l\n"\
"8fOnN/Cdyl/ioAAwDAYIKoZIzj0EAwIFAAOBjAAwgYgCQgHb3sNKKOcUOLIiCIYx\n"\
"wUbyDFUWMOkrZH0sRvKTyyOH+zmP7Z8rJu4pqMoR5N6a3kZ8c+3WTiiOlSb5Hvtd\n"\
"Ttya4gJCAT4HcYqMUBjoz5m0Pv67vIQ/tAhh6+uyX+GjuYhZJNW3NwImhWDWbofW\n"\
"7M4UaISadRE3K9bykB3WoGGeeqI8tI0c\n"\
"-----END CERTIFICATE REQUEST-----\n");
serial.close();
}

1
lib/create_files.h Normal file
View File

@ -0,0 +1 @@
void create_files();

View File

@ -0,0 +1,156 @@
#include <stdio.h>
#include <string.h>
#include <sys/unistd.h>
#include <sys/stat.h>
#include "esp_err.h"
#include "esp_log.h"
#include "esp_spiffs.h"
#include "mbedtls/platform.h"
static const char *TAG = "SPIFFS";
esp_vfs_spiffs_conf_t conf = {
.base_path = "/spiffs",
.partition_label = NULL,
.max_files = 5,
.format_if_mount_failed = true
};
void init_memory(){
ESP_LOGI(TAG, "Initializing SPIFFS");
// Use settings defined above to initialize and mount SPIFFS filesystem.
// Note: esp_vfs_spiffs_register is an all-in-one convenience function.
esp_err_t ret = esp_vfs_spiffs_register(&conf);
if (ret != ESP_OK) {
if (ret == ESP_FAIL) {
ESP_LOGE(TAG, "Failed to mount or format filesystem");
} else if (ret == ESP_ERR_NOT_FOUND) {
ESP_LOGE(TAG, "Failed to find SPIFFS partition");
} else {
ESP_LOGE(TAG, "Failed to initialize SPIFFS (%s)", esp_err_to_name(ret));
}
return;
}
size_t total = 0, used = 0;
ret = esp_spiffs_info(conf.partition_label, &total, &used);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Failed to get SPIFFS partition information (%s)", esp_err_to_name(ret));
} else {
ESP_LOGI(TAG, "Partition size: total: %d, used: %d", total, used);
}
}
void close_memory(){
esp_vfs_spiffs_unregister(conf.partition_label);
ESP_LOGI(TAG, "SPIFFS unmounted");
}
void create_file(char adresa[],char comment[]){
ESP_LOGI(TAG, "Opening file");
FILE* f = fopen(adresa, "w");
if (f == NULL) {
ESP_LOGE(TAG, "Failed to open file for writing");
return;
}
fprintf(f, comment);
fclose(f);
ESP_LOGI(TAG, "File written");
}
void read_file(char adresa[]){
char line[120];
ESP_LOGI(TAG, "Reading file");
FILE* f = fopen(adresa, "r");
if (f == NULL) {
ESP_LOGE(TAG, "Failed to open file for reading");
return;
}
ESP_LOGI(TAG, "Read from file: ");
while(fgets(line, 120, f)){
printf("%s",line);
}
fclose(f);
// strip newline
//char* pos = strchr(line, '\n');
//if (pos) {
// *pos = '\0';
//}
}
/*
#include<SPIFFS.h>
#include<FS.h>
void create_files(){
File serial = SPIFFS.open("/serial.txt",FILE_WRITE);
serial.print("1");
serial.close();
serial = SPIFFS.open("/keyfile.key",FILE_WRITE);
serial.print("-----BEGIN EC PRIVATE KEY-----\n"\
"MIHcAgEBBEIA4THscwU+atnO/MHMqUx65bQl8qipWp3jaoym1C01lHHB1D7o94ed\n"\
"sKo2P0V5lBWvDrvDHvnXF8aoajIE8a502JmgBwYFK4EEACOhgYkDgYYABAFf3u2n\n"\
"+Z2Y7iw3JwfFVjihJDyaLrjjojTgw9JXuZ3mDpC+RbmtvfowO0Pk6NPl8LxeqCf3\n"\
"19rhscMthQQ1NocsBgAWkaAwWhamRW3CBvmgioz9Bh6ETkE7/zJ1USvvoMfXkGqO\n"\
"ZI0MKehIwLGpGkL2JseYKnnNh/Ue5fHzpzfwncpf4g==\n"\
"-----END EC PRIVATE KEY-----\n");
serial.close();
serial = SPIFFS.open("/CA.crt",FILE_WRITE);
serial.print("-----BEGIN CERTIFICATE-----\n"\
"MIICQDCCAZ+gAwIBAgIBATAMBggqhkjOPQQDAgUAMDkxETAPBgNVBAMMCG15c2Vy\n"\
"dmVyMRcwFQYDVQQKDA5teW9yZ2FuaXNhdGlvbjELMAkGA1UEBhMCTkwwHhcNMTkw\n"\
"MTAxMDAwMDAwWhcNMjExMjMxMjM1OTU5WjA5MREwDwYDVQQDDAhteXNlcnZlcjEX\n"\
"MBUGA1UECgwObXlvcmdhbmlzYXRpb24xCzAJBgNVBAYTAk5MMIGbMBAGByqGSM49\n"\
"AgEGBSuBBAAjA4GGAAQBX97tp/mdmO4sNycHxVY4oSQ8mi6446I04MPSV7md5g6Q\n"\
"vkW5rb36MDtD5OjT5fC8Xqgn99fa4bHDLYUENTaHLAYAFpGgMFoWpkVtwgb5oIqM\n"\
"/QYehE5BO/8ydVEr76DH15BqjmSNDCnoSMCxqRpC9ibHmCp5zYf1HuXx86c38J3K\n"\
"X+KjUzBRMA8GA1UdEwQIMAYBAf8CAQAwHQYDVR0OBBYEFPq3svLwKboIsDWdsSyi\n"\
"Ay/Jw3HQMB8GA1UdIwQYMBaAFPq3svLwKboIsDWdsSyiAy/Jw3HQMAwGCCqGSM49\n"\
"BAMCBQADgYwAMIGIAkIB5yPjh42zT9dkWKthaW5Sf7EFs5yQnadfhVnnyqEho2Bt\n"\
"7KkRrI5/+QH0bZ98JeNvtJimAMXXxP2/uSY1pa+es/ACQgG6MbUQOLvxMyIevF5i\n"\
"PkZrwhm8VfpAmwPIU/6xzcpry8wBbCm/vro1oTdQdGdOUlSSlTQ8QFBCqwMxVt9T\n"\
"1RDiwg==\n"\
"-----END CERTIFICATE-----\n");
serial.close();
serial = SPIFFS.open("/cert.req",FILE_WRITE);
serial.print("-----BEGIN CERTIFICATE REQUEST-----\n"\
"MIIBlDCB9AIBADBPMREwDwYDVQQDDAhlc3AzMi5zazEUMBIGA1UECgwLRXhhbXBs\n"\
"ZSBMdGQxJDAiBgNVBAYTG1VLIG91dHB1dF9maWxlPWVzcDMyLnNrLnJlcTCBmzAQ\n"\
"BgcqhkjOPQIBBgUrgQQAIwOBhgAEAV/e7af5nZjuLDcnB8VWOKEkPJouuOOiNODD\n"\
"0le5neYOkL5Fua29+jA7Q+To0+XwvF6oJ/fX2uGxwy2FBDU2hywGABaRoDBaFqZF\n"\
"bcIG+aCKjP0GHoROQTv/MnVRK++gx9eQao5kjQwp6EjAsakaQvYmx5gqec2H9R7l\n"\
"8fOnN/Cdyl/ioAAwDAYIKoZIzj0EAwIFAAOBjAAwgYgCQgHb3sNKKOcUOLIiCIYx\n"\
"wUbyDFUWMOkrZH0sRvKTyyOH+zmP7Z8rJu4pqMoR5N6a3kZ8c+3WTiiOlSb5Hvtd\n"\
"Ttya4gJCAT4HcYqMUBjoz5m0Pv67vIQ/tAhh6+uyX+GjuYhZJNW3NwImhWDWbofW\n"\
"7M4UaISadRE3K9bykB3WoGGeeqI8tI0c\n"\
"-----END CERTIFICATE REQUEST-----\n");
serial.close();
}
void read_and_remove_files(){
File root = SPIFFS.open("/");
File file = root.openNextFile();
while(file){
Serial.print("FILE: ");
Serial.println(file.name());
Serial.print(file.readString());
//SPIFFS.remove(file.name());
file = root.openNextFile();
}
}
*/

View File

@ -0,0 +1,6 @@
//void create_files();
//void read_and_remove_files();
void init_memory();
void close_memory();
void read_file(char adresa[]);
void create_file(char adresa[],char comment[]);

35
lib/displej/displej.c Normal file
View File

@ -0,0 +1,35 @@
#include "displej.h"
void IRAM_ATTR lv_tick_task(void)
{
lv_tick_inc(portTICK_RATE_MS);
}
void disp(){
lv_init();
disp_spi_init();
ili9341_init();
static lv_color_t buf1[DISP_BUF_SIZE];
static lv_color_t buf2[DISP_BUF_SIZE];
static lv_disp_buf_t disp_buf;
lv_disp_buf_init(&disp_buf, buf1, buf2, DISP_BUF_SIZE);
lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.flush_cb = ili9341_flush;
disp_drv.buffer = &disp_buf;
lv_disp_drv_register(&disp_drv);
esp_register_freertos_tick_hook(lv_tick_task);
//terminal_create();
//terminal_add("Hello\n");
//terminal_add("Hell\n");
sysmon_create();
while(1) {
vTaskDelay(1);
lv_task_handler();
}
}

22
lib/displej/displej.h Normal file
View File

@ -0,0 +1,22 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "driver/gpio.h"
#include "lvgl/lvgl.h"
//#include "lv_examples/lv_apps/demo/demo.h"
//#include "lv_examples/lv_apps/terminal/terminal.h"
#include "lv_examples/lv_apps/sysmon/sysmon.h"
#include "esp_freertos_hooks.h"
#include "disp_spi.h"
#include "ili9341.h"
#include "tp_spi.h"
#include "xpt2046.h"
void disp();
void IRAM_ATTR lv_tick_task(void);

View File

@ -0,0 +1,4 @@
file(GLOB_RECURSE SOURCES lv_examples/*.c)
idf_component_register(SRCS ${SOURCES}
INCLUDE_DIRS .
REQUIRES lvgl)

View File

@ -0,0 +1,27 @@
#
# Component Makefile
#
CFLAGS += -DLV_CONF_INCLUDE_SIMPLE
COMPONENT_SRCDIRS := lv_examples \
lv_examples/lv_apps/benchmark \
lv_examples/lv_apps/demo \
lv_examples/lv_apps/sysmon \
lv_examples/lv_apps/terminal \
lv_examples/lv_apps/tpcal \
lv_examples/lv_tests/lv_test_theme \
lv_examples/lv_tests/lv_test_group \
lv_examples/lv_tutorial/10_keyboard \
lv_examples/lv_tutorial/1_hello_world \
lv_examples/lv_tutorial/2_objects \
lv_examples/lv_tutorial/3_styles \
lv_examples/lv_tutorial/4_themes \
lv_examples/lv_tutorial/5_antialiasing \
lv_examples/lv_tutorial/6_images \
lv_examples/lv_tutorial/7_fonts \
lv_examples/lv_tutorial/8_animations \
lv_examples/lv_tutorial/9_responsive
COMPONENT_ADD_INCLUDEDIRS := $(COMPONENT_SRCDIRS) .

View File

@ -0,0 +1,60 @@
/**
* @file lv_ex_conf.h
*
*/
/*
* COPY THIS FILE AS lv_ex_conf.h
*/
#if 1 /*Set it to "1" to enable the content*/
#ifndef LV_EX_CONF_H
#define LV_EX_CONF_H
/*******************
* GENERAL SETTING
*******************/
#define LV_EX_PRINTF 1 /*Enable printf-ing data*/
#define LV_EX_KEYBOARD 0 /*Add PC keyboard support to some examples (`lv_drivers` repository is required)*/
#define LV_EX_MOUSEWHEEL 0 /*Add 'encoder' (mouse wheel) support to some examples (`lv_drivers` repository is required)*/
/*******************
* TEST USAGE
*******************/
#define LV_USE_TESTS 0
/*******************
* TUTORIAL USAGE
*******************/
#define LV_USE_TUTORIALS 0
/*********************
* APPLICATION USAGE
*********************/
/* Test the graphical performance of your MCU
* with different settings*/
#define LV_USE_BENCHMARK 0
/*A demo application with Keyboard, Text area, List and Chart
* placed on Tab view */
#define LV_USE_DEMO 1
#if LV_USE_DEMO
#define LV_DEMO_WALLPAPER 1 /*Create a wallpaper too*/
#define LV_DEMO_SLIDE_SHOW 0 /*Automatically switch between tabs*/
#endif
/*MCU and memory usage monitoring*/
#define LV_USE_SYSMON 1
/*A terminal to display received characters*/
#define LV_USE_TERMINAL 1
/*Touch pad calibration with 4 points*/
#define LV_USE_TPCAL 0
#endif /*LV_EX_CONF_H*/
#endif /*End of "Content enable"*/

View File

@ -0,0 +1,17 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 21
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- architecture
- pinned
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue or pull request has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@ -0,0 +1 @@
**/*.o

View File

@ -0,0 +1,49 @@
# Examples for Littlev Graphics Library
LittlevGL is a free and open-source graphics library providing everything you need to create a Graphical User Interface (GUI) on embedded systems with easy-to-use graphical elements, beautiful visual effects and low memory footprint.
GitHub: https://github.com/littlevgl/lvgl
Website: https://littlevgl.com
## Add the examples to your projects
1. Clone this repository: `git clone https://github.com/littlevgl/lv_examples.git` or download from the [Download page](https://littlevgl.com/download). To always use the newest version the cloning is recommended.
2. The `lv_examples` directory should be next to the `lvgl` directory in your project.
Similary to `lv_conf.h` there is a configuration file for the examples too. It is called `lv_ex_conf.h`.
1. Copy `lv_examples/lv_ex-conf_templ.h` next to `lv_examples` directory
2. Rename is to `lv_ex_conf.h`
3. Delete the first `#if` and last `#endif` to enable the file's content
4. Enable or Disable modules
## Tutorial
A step-by-step guide to teach the most important parts of the Graphics Library.
* Hello world
* Objects (graphical components)
* Styles
* Themes
* Anti-aliasing
* Images
* Fonts
* Animations
* Responsive
* Keyboard
## Applications
Real life GUI examples which can be adapted in your own project. The applications are designed to adapt to your screen's resolution.
* Demo
* Benchmark
* System performance monitor
* Touchpad calibrator
* Terminal
## Tests
Test cases to validate the features of LittelvGL. You can also use them as examples. The most important and useful tests are:
* Theme test: `lv_test_theme_1()`
* Keyboard interface test: `lv_test_group_1()`
* Tests of object types: `lv_test_..._1/2/3()` e.g. (lv_test_slider_1())
## Contributing
For contribution and coding style guidelines, please refer to the file docs/CONTRIBUTNG.md in the main LittlevGL repo:
https://github.com/littlevgl/lvgl
You are encouraged to use the 'astyle' util to format your code prior to pushing it. The files docs/astyle_(c/h) contain astyle rules to format source and header files according to the project coding guidelines.

View File

@ -0,0 +1 @@
--style=kr --convert-tabs --indent=spaces=4 --indent-switches --pad-oper --unpad-paren --align-pointer=middle --suffix=.bak --lineend=linux --min-conditional-indent=

View File

@ -0,0 +1 @@
--convert-tabs --indent=spaces=4

View File

@ -0,0 +1,319 @@
/**
* @file benchmark.c
*
*/
/*********************
* INCLUDES
*********************/
#include "benchmark.h"
#if LV_USE_BENCHMARK
#include <stdio.h>
/*********************
* DEFINES
*********************/
#define TEST_CYCLE_NUM 10 /*How many times run the test (will calculate the average)*/
#define SHADOW_WIDTH (LV_DPI / 8)
#define IMG_RECOLOR LV_OPA_20
#define OPACITY LV_OPA_60
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void refr_monitor(lv_disp_drv_t * disp_drv, uint32_t time_ms, uint32_t px_num);
static void run_test_event_cb(lv_obj_t * btn, lv_event_t event);
static void wp_btn_event_cb(lv_obj_t * btn, lv_event_t event);
static void recolor_btn_event_cb(lv_obj_t * btn, lv_event_t event);
static void shadow_btn_event_cb(lv_obj_t * btn, lv_event_t event);
static void opa_btn_event_cb(lv_obj_t * btn, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
static lv_obj_t * holder_page;
static lv_obj_t * wp;
static lv_obj_t * result_label;
static lv_style_t style_wp;
static lv_style_t style_btn_rel;
static lv_style_t style_btn_pr;
static lv_style_t style_btn_tgl_rel;
static lv_style_t style_btn_tgl_pr;
static uint32_t time_sum;
static uint32_t refr_cnt;
LV_IMG_DECLARE(benchmark_bg)
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Open a graphics benchmark
*/
void benchmark_create(void)
{
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
/*Styles of the buttons*/
lv_style_copy(&style_btn_rel, &lv_style_btn_rel);
lv_style_copy(&style_btn_pr, &lv_style_btn_pr);
lv_style_copy(&style_btn_tgl_rel, &lv_style_btn_tgl_rel);
lv_style_copy(&style_btn_tgl_pr, &lv_style_btn_tgl_pr);
style_btn_rel.body.opa = LV_OPA_COVER;
style_btn_pr.body.opa = LV_OPA_COVER;
style_btn_tgl_rel.body.opa = LV_OPA_COVER;
style_btn_tgl_pr.body.opa = LV_OPA_COVER;
style_btn_rel.body.shadow.width = 0;
style_btn_pr.body.shadow.width = 0;
style_btn_tgl_rel.body.shadow.width = 0;
style_btn_tgl_pr.body.shadow.width = 0;
/*Style of the wallpaper*/
lv_style_copy(&style_wp, &lv_style_plain);
style_wp.image.color = LV_COLOR_RED;
/*Create a holder page (the page become scrollable on small displays )*/
holder_page = lv_page_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(holder_page, hres, vres);
lv_page_set_style(holder_page, LV_PAGE_STYLE_BG, &lv_style_transp_fit);
lv_page_set_style(holder_page, LV_PAGE_STYLE_SCRL, &lv_style_transp);
lv_page_set_scrl_layout(holder_page, LV_LAYOUT_PRETTY);
/*Create a wallpaper on the page*/
wp = lv_img_create(holder_page, NULL);
lv_obj_set_protect(wp, LV_PROTECT_PARENT); /*Don't let to move the wallpaper by the layout */
lv_obj_set_parent(wp, holder_page);
lv_obj_set_parent(lv_page_get_scrl(holder_page), holder_page);
lv_img_set_src(wp, &benchmark_bg);
lv_obj_set_size(wp, hres, vres);
lv_obj_set_pos(wp, 0, 0);
lv_obj_set_hidden(wp, true);
lv_img_set_style(wp, LV_IMG_STYLE_MAIN, &style_wp);
lv_img_set_auto_size(wp, false);
/*Create a label to show the test result*/
result_label = lv_label_create(holder_page, NULL);
lv_label_set_text(result_label, "Run the test");
lv_label_set_body_draw(result_label, true);
lv_label_set_style(result_label, LV_LABEL_STYLE_MAIN, &lv_style_pretty);
/*Create a "Run test" button*/
lv_obj_t * btn;
btn = lv_btn_create(holder_page, NULL);
lv_page_glue_obj(btn, true);
lv_btn_set_fit(btn, LV_FIT_TIGHT);
lv_btn_set_style(btn, LV_BTN_STYLE_REL, &style_btn_rel);
lv_btn_set_style(btn, LV_BTN_STYLE_PR, &style_btn_pr);
lv_btn_set_style(btn, LV_BTN_STYLE_TGL_REL, &style_btn_tgl_rel);
lv_btn_set_style(btn, LV_BTN_STYLE_TGL_PR, &style_btn_tgl_pr);
lv_obj_set_event_cb(btn, run_test_event_cb);
lv_obj_t * btn_l;
btn_l = lv_label_create(btn, NULL);
lv_label_set_text(btn_l, "Run\ntest!");
lv_obj_set_protect(btn, LV_PROTECT_FOLLOW); /*Line break in layout*/
/*Create a "Wallpaper show" button*/
btn = lv_btn_create(holder_page, btn);
lv_btn_set_toggle(btn, true);
lv_obj_clear_protect(btn, LV_PROTECT_FOLLOW);
lv_obj_set_event_cb(btn, wp_btn_event_cb);
btn_l = lv_label_create(btn, btn_l);
lv_label_set_text(btn_l, "Wallpaper");
/*Create a "Wallpaper re-color" button*/
btn = lv_btn_create(holder_page, btn);
lv_obj_set_event_cb(btn, recolor_btn_event_cb);
btn_l = lv_label_create(btn, btn_l);
lv_label_set_text(btn_l, "Wp. recolor!");
/*Create a "Shadow draw" button*/
btn = lv_btn_create(holder_page, btn);
lv_obj_set_event_cb(btn, shadow_btn_event_cb);
btn_l = lv_label_create(btn, btn_l);
lv_label_set_text(btn_l, "Shadow");
/*Create an "Opacity enable" button*/
btn = lv_btn_create(holder_page, btn);
lv_obj_set_event_cb(btn, opa_btn_event_cb);
btn_l = lv_label_create(btn, btn_l);
lv_label_set_text(btn_l, "Opacity");
}
void benchmark_start(void)
{
lv_disp_t * disp = lv_obj_get_disp(holder_page);
disp->driver.monitor_cb = refr_monitor;
lv_obj_invalidate(lv_disp_get_scr_act(disp));
time_sum = 0;
refr_cnt = 0;
}
bool benchmark_is_ready(void)
{
if(refr_cnt == TEST_CYCLE_NUM) return true;
else return false;
}
uint32_t benchmark_get_refr_time(void)
{
if(benchmark_is_ready()) return time_sum / TEST_CYCLE_NUM;
else return 0;
}
/*--------------------
* OTHER FUNCTIONS
---------------------*/
/**
* Called when a the library finished rendering to monitor its performance
* @param disp_drv pointer to the caller display driver
* @param time_ms time of rendering in milliseconds
* @param px_num Number of pixels drawn
*/
static void refr_monitor(lv_disp_drv_t * disp_drv, uint32_t time_ms, uint32_t px_num)
{
(void) px_num ; /*Unused*/
lv_disp_t * disp = lv_obj_get_disp(holder_page);
time_sum += time_ms;
refr_cnt ++;
lv_obj_invalidate(lv_disp_get_scr_act(disp));
if(refr_cnt >= TEST_CYCLE_NUM) {
int time_avg = (int)time_sum / (int)TEST_CYCLE_NUM;
char buf[256];
sprintf(buf, "Screen load: %d ms\nAverage of %d", time_avg, TEST_CYCLE_NUM);
lv_label_set_text(result_label, buf);
disp_drv->monitor_cb = NULL;
} else {
char buf[256];
sprintf(buf, "Running %d/%d", refr_cnt, TEST_CYCLE_NUM);
lv_label_set_text(result_label, buf);
}
}
/**
* Called when the "Run test" button is clicked
* @param btn pointer to the button
* @param event the current event
*/
static void run_test_event_cb(lv_obj_t * btn, lv_event_t event)
{
(void) btn; /*Unused*/
if(event != LV_EVENT_CLICKED) return;
benchmark_start();
}
/**
* Called when the "Wallpaper" button is clicked
* @param btn pointer to the button
* @param event the current event
*/
static void wp_btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event != LV_EVENT_CLICKED) return;
if(lv_btn_get_state(btn) == LV_BTN_STATE_TGL_REL) lv_obj_set_hidden(wp, false);
else lv_obj_set_hidden(wp, true);
}
/**
* Called when the "Wp. recolor" button is clicked
* @param btn pointer to the button
* @param event the current event
*/
static void recolor_btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event != LV_EVENT_CLICKED) return;
if(lv_btn_get_state(btn) == LV_BTN_STATE_TGL_REL) style_wp.image.intense = IMG_RECOLOR;
else style_wp.image.intense = LV_OPA_TRANSP;
lv_obj_refresh_style(wp);
}
/**
* Called when the "Shadow" button is clicked
* @param btn pointer to the button
* @param event the current event
*/
static void shadow_btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event != LV_EVENT_CLICKED) return;
if(lv_btn_get_state(btn) == LV_BTN_STATE_TGL_REL) {
style_btn_rel.body.shadow.width = SHADOW_WIDTH;
style_btn_pr.body.shadow.width = SHADOW_WIDTH;
style_btn_tgl_rel.body.shadow.width = SHADOW_WIDTH;
style_btn_tgl_pr.body.shadow.width = SHADOW_WIDTH;
} else {
style_btn_rel.body.shadow.width = 0;
style_btn_pr.body.shadow.width = 0;
style_btn_tgl_rel.body.shadow.width = 0;
style_btn_tgl_pr.body.shadow.width = 0;
}
lv_obj_report_style_mod(&style_btn_rel);
lv_obj_report_style_mod(&style_btn_pr);
lv_obj_report_style_mod(&style_btn_tgl_rel);
lv_obj_report_style_mod(&style_btn_tgl_pr);
}
/**
* Called when the "Opacity" button is clicked
* @param btn pointer to the button
* @param event the current event
*/
static void opa_btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event != LV_EVENT_CLICKED) return;
if(lv_btn_get_state(btn) == LV_BTN_STATE_TGL_REL) {
style_btn_rel.body.opa = OPACITY;
style_btn_pr.body.opa = OPACITY;
style_btn_tgl_rel.body.opa = OPACITY;
style_btn_tgl_pr.body.opa = OPACITY;
} else {
style_btn_rel.body.opa = LV_OPA_COVER;
style_btn_pr.body.opa = LV_OPA_COVER;
style_btn_tgl_rel.body.opa = LV_OPA_COVER;
style_btn_tgl_pr.body.opa = LV_OPA_COVER;
}
lv_obj_report_style_mod(&style_btn_rel);
lv_obj_report_style_mod(&style_btn_pr);
lv_obj_report_style_mod(&style_btn_tgl_rel);
lv_obj_report_style_mod(&style_btn_tgl_pr);
}
#endif /*LV_USE_BENCHMARK*/

View File

@ -0,0 +1,62 @@
/**
* @file benchmark.h
*
*/
#ifndef BENCHMARK_H
#define BENCHMARK_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lv_conf.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_BENCHMARK
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Open a graphics benchmark
*/
void benchmark_create(void);
void benchmark_start(void);
bool benchmark_is_ready(void);
uint32_t benchmark_get_refr_time(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_BENCHMARK*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* BENCHMARK_H */

View File

@ -0,0 +1,7 @@
CSRCS += benchmark.c
CSRCS += benchmark_bg.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_apps/benchmark
VPATH += :$(LVGL_DIR)/lv_examples/lv_apps/benchmark
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_apps/benchmark"

View File

@ -0,0 +1,234 @@
#include "lvgl/lvgl.h"
#include "lv_ex_conf.h"
#if LV_USE_BENCHMARK
#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
const LV_ATTRIBUTE_MEM_ALIGN uint8_t benchmark_bg_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Red: 3 bit, Green: 3 bit, Blue: 2 bit*/
0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6e, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x25, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6e, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x25, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49,
0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d,
0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x49,
0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25,
0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x6e, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49,
0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d,
0x6d, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x6d,
0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49,
0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x6d, 0x6d, 0x49, 0x49,
0x6d, 0x49, 0x49, 0x6d, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x6d,
0x49, 0x6d, 0x49, 0x6d, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x25,
0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x6d, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x6d,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x6e, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49,
0x6d, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6e, 0x49, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x6e, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d,
0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x25, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49,
0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x6d,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x25, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x25,
0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x6d, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x49,
0x49, 0x6d, 0x49, 0x6d, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x6d, 0x49,
0x6d, 0x49, 0x49, 0x6d, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x6d,
0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x6d, 0x6d, 0x49, 0x49,
0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49,
0x6e, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6e,
0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d,
0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x6e, 0x6e, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49,
0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49,
0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d,
0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x25, 0x25, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x25, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x25, 0x25, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x6d, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x6d, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x25, 0x25, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x6d, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x6d, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x6d, 0x49, 0x25, 0x25, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,
0x49, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x6d, 0x49, 0x6d, 0x49, 0x25, 0x49, 0x49, 0x49, 0x6d, 0x49, 0x49, 0x6e, 0x6d, 0x49, 0x25, 0x49, 0x6d, 0x49, 0x49, 0x49, 0x25, 0x49, 0x49, 0x49, 0x49,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Red: 5 bit, Green: 6 bit, Blue: 5 bit*/
0xc7, 0x39, 0x29, 0x4a, 0x29, 0x4a, 0xe7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x28, 0x42, 0xe8, 0x41, 0xaa, 0x52, 0xe8, 0x41, 0x45, 0x29, 0xa7, 0x39, 0xcb, 0x5a, 0x0c, 0x63, 0xe8, 0x41, 0x08, 0x42, 0xec, 0x62, 0xc7, 0x39, 0x8a, 0x52, 0x29, 0x4a, 0x86, 0x31, 0xe8, 0x41, 0xcb, 0x5a, 0xe7, 0x39, 0x49, 0x4a, 0xaa, 0x52, 0x86, 0x31, 0xab, 0x5a, 0xe8, 0x41, 0x86, 0x31, 0x69, 0x4a, 0x6a, 0x52, 0x08, 0x42, 0xec, 0x62, 0xa6, 0x31, 0x08, 0x42, 0x0c, 0x63, 0x8a, 0x52, 0x86, 0x31, 0x86, 0x31, 0xe8, 0x41, 0x8a, 0x52, 0xc7, 0x39, 0x49, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41,
0x29, 0x4a, 0xa6, 0x31, 0xa7, 0x39, 0x29, 0x4a, 0x29, 0x4a, 0x08, 0x42, 0x28, 0x42, 0x6a, 0x52, 0xe8, 0x41, 0x86, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0xcb, 0x5a, 0xcb, 0x5a, 0xa7, 0x39, 0x29, 0x4a, 0xaa, 0x52, 0x49, 0x4a, 0x29, 0x4a, 0x69, 0x4a, 0x6a, 0x52, 0xc7, 0x39, 0x86, 0x31, 0xe7, 0x39, 0xa7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x6a, 0x52, 0x49, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0xaa, 0x52, 0x08, 0x42, 0xc7, 0x39, 0xeb, 0x5a, 0xaa, 0x52, 0x86, 0x31, 0x86, 0x31, 0x86, 0x31, 0x86, 0x31, 0x08, 0x42, 0x69, 0x4a, 0x08, 0x42, 0x08, 0x42, 0x29, 0x4a, 0x08, 0x42, 0xa7, 0x39, 0xa6, 0x31, 0x29, 0x4a,
0x29, 0x4a, 0xc7, 0x39, 0x29, 0x4a, 0x08, 0x42, 0xe7, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0x86, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0xa6, 0x31, 0xa7, 0x39, 0xab, 0x5a, 0xcb, 0x5a, 0xe8, 0x41, 0xa6, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xe7, 0x39, 0x28, 0x42, 0x8a, 0x52, 0xe8, 0x41, 0x8a, 0x52, 0x8a, 0x52, 0xa7, 0x39, 0xaa, 0x52, 0x29, 0x4a, 0xc7, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0x08, 0x42, 0xeb, 0x5a, 0xab, 0x5a, 0xa7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0xa6, 0x31, 0xa6, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xe8, 0x41, 0x28, 0x42, 0x49, 0x4a, 0x86, 0x31, 0x28, 0x42,
0xc7, 0x39, 0x29, 0x4a, 0x08, 0x42, 0x28, 0x42, 0x49, 0x4a, 0x49, 0x4a, 0x86, 0x31, 0x66, 0x31, 0x29, 0x4a, 0xa7, 0x39, 0xc7, 0x39, 0xa7, 0x39, 0x49, 0x4a, 0x86, 0x31, 0xa6, 0x31, 0x69, 0x4a, 0xeb, 0x5a, 0xcb, 0x5a, 0xa6, 0x31, 0xe8, 0x41, 0x6a, 0x52, 0x28, 0x42, 0x69, 0x4a, 0x29, 0x4a, 0x08, 0x42, 0x29, 0x4a, 0x49, 0x4a, 0x08, 0x42, 0x29, 0x4a, 0x8a, 0x52, 0xc7, 0x39, 0xa6, 0x31, 0xab, 0x5a, 0xeb, 0x5a, 0x49, 0x4a, 0xa6, 0x31, 0xa7, 0x39, 0x08, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xe8, 0x41, 0x66, 0x31, 0x86, 0x31, 0x69, 0x4a, 0x29, 0x4a, 0x69, 0x4a, 0xc7, 0x39, 0x29, 0x4a, 0xe8, 0x41,
0x86, 0x31, 0x28, 0x42, 0xe7, 0x39, 0x49, 0x4a, 0x66, 0x31, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x29, 0x4a, 0xa6, 0x31, 0x49, 0x4a, 0xc7, 0x39, 0xe8, 0x41, 0xe8, 0x41, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0x86, 0x31, 0xe8, 0x41, 0x8a, 0x52, 0xa7, 0x39, 0xab, 0x5a, 0xa6, 0x31, 0x69, 0x4a, 0x86, 0x31, 0x66, 0x31, 0xab, 0x5a, 0xc7, 0x39, 0x49, 0x4a, 0xa7, 0x39, 0xcb, 0x5a, 0xe7, 0x39, 0x86, 0x31, 0x86, 0x31, 0x66, 0x31, 0x66, 0x31, 0xe7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x08, 0x42, 0x49, 0x4a, 0x86, 0x31, 0x49, 0x4a, 0x86, 0x31, 0x6a, 0x52, 0x66, 0x31,
0xe8, 0x41, 0x08, 0x42, 0xc7, 0x39, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x08, 0x42, 0x66, 0x31, 0x28, 0x42, 0xe7, 0x39, 0xe7, 0x39, 0xa7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0x65, 0x29, 0x66, 0x31, 0x65, 0x29, 0xa6, 0x31, 0xcb, 0x5a, 0x08, 0x42, 0x8a, 0x52, 0xc7, 0x39, 0xa6, 0x31, 0x8a, 0x52, 0x08, 0x42, 0x08, 0x42, 0x8a, 0x52, 0xa6, 0x31, 0x08, 0x42, 0x69, 0x4a, 0xe7, 0x39, 0xcb, 0x5a, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0x08, 0x42, 0xa7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0xe7, 0x39, 0xe8, 0x41, 0x65, 0x29, 0x08, 0x42, 0x69, 0x4a, 0x49, 0x4a, 0x08, 0x42, 0xe7, 0x39, 0x49, 0x4a, 0xc7, 0x39,
0x28, 0x42, 0x08, 0x42, 0xc7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x08, 0x42, 0xa6, 0x31, 0x65, 0x29, 0x66, 0x31, 0xe7, 0x39, 0xe7, 0x39, 0xa7, 0x39, 0x29, 0x4a, 0x28, 0x42, 0x65, 0x29, 0x65, 0x29, 0x45, 0x29, 0x49, 0x4a, 0x0c, 0x63, 0x8a, 0x52, 0xe8, 0x41, 0xa7, 0x39, 0xa6, 0x31, 0x8a, 0x52, 0x6a, 0x52, 0x08, 0x42, 0xcb, 0x5a, 0xa7, 0x39, 0x86, 0x31, 0x29, 0x4a, 0xaa, 0x52, 0x0c, 0x63, 0x49, 0x4a, 0x65, 0x29, 0x65, 0x29, 0x86, 0x31, 0x08, 0x42, 0x08, 0x42, 0xa7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0x86, 0x31, 0x65, 0x29, 0xa6, 0x31, 0x08, 0x42, 0xe8, 0x41, 0x86, 0x31, 0xc7, 0x39, 0x6a, 0x52, 0xe8, 0x41,
0xe7, 0x39, 0x6a, 0x52, 0x86, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x65, 0x29, 0x66, 0x31, 0xe8, 0x41, 0x29, 0x4a, 0x28, 0x42, 0x08, 0x42, 0x28, 0x42, 0x49, 0x4a, 0x29, 0x4a, 0xc7, 0x39, 0x65, 0x29, 0x28, 0x42, 0x29, 0x4a, 0xa6, 0x31, 0xa7, 0x39, 0xaa, 0x52, 0x66, 0x31, 0x8a, 0x52, 0x08, 0x42, 0x28, 0x42, 0xcb, 0x5a, 0xa6, 0x31, 0x69, 0x4a, 0x86, 0x31, 0xa7, 0x39, 0x29, 0x4a, 0x08, 0x42, 0x66, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0x49, 0x4a, 0x28, 0x42, 0x08, 0x42, 0x28, 0x42, 0x29, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0x65, 0x29, 0x86, 0x31, 0x8a, 0x52, 0xe8, 0x41,
0xaa, 0x52, 0x08, 0x42, 0xa6, 0x31, 0x29, 0x4a, 0x49, 0x4a, 0x28, 0x42, 0x66, 0x31, 0xe8, 0x41, 0x49, 0x4a, 0xc7, 0x39, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0xc7, 0x39, 0x49, 0x4a, 0xe7, 0x39, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0xa6, 0x31, 0x0c, 0x63, 0xe7, 0x39, 0x08, 0x42, 0x0c, 0x63, 0x0c, 0x63, 0xe8, 0x41, 0xe8, 0x41, 0xab, 0x5a, 0x86, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x31, 0x08, 0x42, 0x49, 0x4a, 0xa7, 0x39, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x31, 0xe7, 0x39, 0x69, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0x29, 0x4a, 0x49, 0x4a, 0x28, 0x42, 0x86, 0x31, 0xe8, 0x41, 0xab, 0x5a,
0xe8, 0x41, 0x66, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0xe7, 0x39, 0x29, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0x28, 0x42, 0x49, 0x4a, 0x49, 0x4a, 0x28, 0x42, 0xa6, 0x31, 0xa6, 0x31, 0x49, 0x4a, 0xa7, 0x39, 0x65, 0x29, 0x66, 0x31, 0x65, 0x29, 0x8a, 0x52, 0xcb, 0x5a, 0xa6, 0x31, 0xe7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0xcb, 0x5a, 0x49, 0x4a, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0x86, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x49, 0x4a, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0xe8, 0x41, 0xe8, 0x41, 0xc7, 0x39, 0xe8, 0x41, 0x86, 0x31, 0xe8, 0x41, 0x08, 0x42, 0x65, 0x29, 0xe8, 0x41,
0x65, 0x29, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0x49, 0x4a, 0xe8, 0x41, 0xe7, 0x39, 0x28, 0x42, 0x66, 0x31, 0x28, 0x42, 0x08, 0x42, 0xa6, 0x31, 0xa7, 0x39, 0xc7, 0x39, 0x29, 0x4a, 0xa6, 0x31, 0xe7, 0x39, 0x28, 0x42, 0x65, 0x29, 0x66, 0x31, 0x65, 0x29, 0x86, 0x31, 0xcb, 0x5a, 0xcb, 0x5a, 0xe8, 0x41, 0xe8, 0x41, 0xcb, 0x5a, 0xab, 0x5a, 0x86, 0x31, 0x65, 0x29, 0x65, 0x29, 0x86, 0x31, 0x28, 0x42, 0xa7, 0x39, 0xa7, 0x39, 0x49, 0x4a, 0xc7, 0x39, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0xa6, 0x31, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x28, 0x42, 0xa7, 0x39, 0x29, 0x4a, 0x65, 0x29, 0x65, 0x29,
0xa6, 0x31, 0x66, 0x31, 0x08, 0x42, 0xa7, 0x39, 0xc7, 0x39, 0xa7, 0x39, 0xa7, 0x39, 0x08, 0x42, 0x66, 0x31, 0x49, 0x4a, 0xa6, 0x31, 0xc7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0x28, 0x42, 0x28, 0x42, 0x08, 0x42, 0x86, 0x31, 0xa7, 0x39, 0xcb, 0x5a, 0xec, 0x62, 0x0c, 0x63, 0xaa, 0x52, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x28, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xa7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0xa7, 0x39, 0x86, 0x31, 0x29, 0x4a, 0xa6, 0x31, 0x29, 0x4a, 0x66, 0x31, 0xc7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0x08, 0x42, 0x65, 0x29, 0xa6, 0x31,
0xcb, 0x5a, 0x86, 0x31, 0xa6, 0x31, 0x49, 0x4a, 0xe8, 0x41, 0xc7, 0x39, 0x29, 0x4a, 0x28, 0x42, 0x66, 0x31, 0x49, 0x4a, 0xa6, 0x31, 0xe7, 0x39, 0x66, 0x31, 0x28, 0x42, 0x86, 0x31, 0x28, 0x42, 0x86, 0x31, 0x49, 0x4a, 0x08, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0xa7, 0x39, 0xa6, 0x31, 0xcb, 0x5a, 0x8a, 0x52, 0x86, 0x31, 0xc7, 0x39, 0x28, 0x42, 0xc7, 0x39, 0xa7, 0x39, 0x28, 0x42, 0x08, 0x42, 0xa6, 0x31, 0x49, 0x4a, 0x86, 0x31, 0xe8, 0x41, 0xa6, 0x31, 0x08, 0x42, 0x86, 0x31, 0x29, 0x4a, 0xa6, 0x31, 0x49, 0x4a, 0x28, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x28, 0x42, 0x86, 0x31, 0xa6, 0x31, 0xab, 0x5a,
0xec, 0x62, 0xcb, 0x5a, 0xa7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x08, 0x42, 0x28, 0x42, 0x49, 0x4a, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xc7, 0x39, 0x28, 0x42, 0xe7, 0x39, 0x86, 0x31, 0x28, 0x42, 0x86, 0x31, 0x29, 0x4a, 0x86, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0x29, 0x4a, 0x66, 0x31, 0xa6, 0x31, 0x86, 0x31, 0x66, 0x31, 0x08, 0x42, 0xa7, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0x08, 0x42, 0xa6, 0x31, 0x49, 0x4a, 0x86, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0xa7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0xa6, 0x31, 0x49, 0x4a, 0x08, 0x42, 0x08, 0x42, 0xe7, 0x39, 0x86, 0x31, 0xc7, 0x39, 0xeb, 0x5a, 0x0c, 0x63,
0x08, 0x42, 0xcb, 0x5a, 0xab, 0x5a, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0x29, 0x4a, 0xc7, 0x39, 0xa6, 0x31, 0x29, 0x4a, 0xc7, 0x39, 0xa6, 0x31, 0x86, 0x31, 0x08, 0x42, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xa7, 0x39, 0x08, 0x42, 0x29, 0x4a, 0x86, 0x31, 0x29, 0x4a, 0x86, 0x31, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0x08, 0x42, 0xe7, 0x39, 0xe8, 0x41, 0x28, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x86, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0xa7, 0x39, 0xe8, 0x41, 0x08, 0x42, 0x65, 0x29, 0x65, 0x29, 0x45, 0x29, 0xa7, 0x39, 0xec, 0x62, 0xcb, 0x5a, 0x08, 0x42,
0xe8, 0x41, 0xa7, 0x39, 0xcb, 0x5a, 0x49, 0x4a, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0xc7, 0x39, 0x49, 0x4a, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x08, 0x42, 0x86, 0x31, 0xe8, 0x41, 0x29, 0x4a, 0xa6, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xc7, 0x39, 0x28, 0x42, 0x86, 0x31, 0x08, 0x42, 0xe8, 0x41, 0x66, 0x31, 0x08, 0x42, 0xe7, 0x39, 0xa7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0xa6, 0x31, 0x08, 0x42, 0x28, 0x42, 0x08, 0x42, 0x08, 0x42, 0xa6, 0x31, 0xa7, 0x39, 0x29, 0x4a, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0xaa, 0x52, 0xab, 0x5a, 0xa6, 0x31, 0xe7, 0x39,
0xec, 0x62, 0x28, 0x42, 0xe8, 0x41, 0xeb, 0x5a, 0x86, 0x31, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0xe7, 0x39, 0x49, 0x4a, 0xe7, 0x39, 0x86, 0x31, 0x86, 0x31, 0x86, 0x31, 0x86, 0x31, 0xe7, 0x39, 0x69, 0x4a, 0xc7, 0x39, 0x66, 0x31, 0x08, 0x42, 0x29, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x08, 0x42, 0xaa, 0x52, 0xab, 0x5a, 0xe7, 0x39, 0x86, 0x31, 0x08, 0x42, 0x29, 0x4a, 0xe8, 0x41, 0x66, 0x31, 0xe8, 0x41, 0x49, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0x86, 0x31, 0xe8, 0x41, 0x49, 0x4a, 0xc7, 0x39, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0xc7, 0x39, 0xeb, 0x5a, 0xa6, 0x31, 0x28, 0x42, 0x0c, 0x63,
0xc7, 0x39, 0xab, 0x5a, 0xa6, 0x31, 0xcb, 0x5a, 0x86, 0x31, 0xa6, 0x31, 0x49, 0x4a, 0x08, 0x42, 0x66, 0x31, 0xa7, 0x39, 0x28, 0x42, 0x49, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0xc7, 0x39, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x31, 0x69, 0x4a, 0xc7, 0x39, 0xc7, 0x39, 0x8a, 0x52, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x31, 0xe8, 0x41, 0x29, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x28, 0x42, 0xa6, 0x31, 0x65, 0x29, 0x49, 0x4a, 0x29, 0x4a, 0x86, 0x31, 0xe7, 0x39, 0x49, 0x4a, 0x86, 0x31, 0xeb, 0x5a, 0xc7, 0x39,
0x6a, 0x52, 0x49, 0x4a, 0xc7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0xcb, 0x5a, 0x0c, 0x63, 0x29, 0x4a, 0x66, 0x31, 0x66, 0x31, 0x65, 0x29, 0x08, 0x42, 0x28, 0x42, 0x86, 0x31, 0xa7, 0x39, 0xa7, 0x39, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0xe8, 0x41, 0xc7, 0x39, 0x86, 0x31, 0xa6, 0x31, 0x49, 0x4a, 0x29, 0x4a, 0xe8, 0x41, 0x69, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0xe7, 0x39, 0xe8, 0x41, 0x86, 0x31, 0x65, 0x29, 0x86, 0x31, 0xa6, 0x31, 0xa7, 0x39, 0xa7, 0x39, 0x29, 0x4a, 0xe8, 0x41, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x8a, 0x52, 0x0c, 0x63, 0xab, 0x5a, 0xe7, 0x39, 0x86, 0x31, 0xc7, 0x39, 0xab, 0x5a, 0x49, 0x4a,
0x49, 0x4a, 0x29, 0x4a, 0xc7, 0x39, 0x08, 0x42, 0x8a, 0x52, 0x08, 0x42, 0x8a, 0x52, 0xa6, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x08, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x66, 0x31, 0xe8, 0x41, 0x6a, 0x52, 0x69, 0x4a, 0x29, 0x4a, 0xa6, 0x31, 0x49, 0x4a, 0xa7, 0x39, 0xe7, 0x39, 0x49, 0x4a, 0xc7, 0x39, 0x49, 0x4a, 0x29, 0x4a, 0x6a, 0x52, 0x08, 0x42, 0x66, 0x31, 0x08, 0x42, 0xe8, 0x41, 0x08, 0x42, 0xc7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0x65, 0x29, 0x66, 0x31, 0x65, 0x29, 0xc7, 0x39, 0xcb, 0x5a, 0x08, 0x42, 0x6a, 0x52, 0xc7, 0x39, 0xc7, 0x39, 0xaa, 0x52, 0x08, 0x42,
0x86, 0x31, 0x69, 0x4a, 0xe7, 0x39, 0x6a, 0x52, 0xa7, 0x39, 0x8a, 0x52, 0xe8, 0x41, 0xa6, 0x31, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x08, 0x42, 0xc7, 0x39, 0xc7, 0x39, 0x29, 0x4a, 0xc7, 0x39, 0x29, 0x4a, 0x66, 0x31, 0xe7, 0x39, 0x69, 0x4a, 0x86, 0x31, 0x6a, 0x52, 0xa6, 0x31, 0x49, 0x4a, 0x86, 0x31, 0x66, 0x31, 0x6a, 0x52, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x8a, 0x52, 0xc7, 0x39, 0xa6, 0x31, 0x08, 0x42, 0xc7, 0x39, 0x29, 0x4a, 0xc7, 0x39, 0x08, 0x42, 0xa6, 0x31, 0x66, 0x31, 0x65, 0x29, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42, 0xaa, 0x52, 0xe7, 0x39, 0x69, 0x4a, 0x86, 0x31, 0xcb, 0x5a, 0x66, 0x31,
0xe8, 0x41, 0x6a, 0x52, 0x29, 0x4a, 0x08, 0x42, 0xab, 0x5a, 0xc7, 0x39, 0xc7, 0x39, 0xab, 0x5a, 0x0c, 0x63, 0x8a, 0x52, 0x86, 0x31, 0x86, 0x31, 0x29, 0x4a, 0xa6, 0x31, 0x86, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x66, 0x31, 0x86, 0x31, 0x29, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x28, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x6a, 0x52, 0x6a, 0x52, 0x29, 0x4a, 0x66, 0x31, 0x86, 0x31, 0x28, 0x42, 0xa6, 0x31, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x86, 0x31, 0x8a, 0x52, 0x0c, 0x63, 0xab, 0x5a, 0x86, 0x31, 0xe7, 0x39, 0x8a, 0x52, 0x49, 0x4a, 0xe8, 0x41, 0x69, 0x4a, 0x08, 0x42,
0xcb, 0x5a, 0xc7, 0x39, 0x8a, 0x52, 0x69, 0x4a, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xe7, 0x39, 0xcb, 0x5a, 0xab, 0x5a, 0xa6, 0x31, 0xa7, 0x39, 0x29, 0x4a, 0x29, 0x4a, 0x29, 0x4a, 0x86, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa7, 0x39, 0x08, 0x42, 0x69, 0x4a, 0xa6, 0x31, 0x49, 0x4a, 0x29, 0x4a, 0x86, 0x31, 0x69, 0x4a, 0x08, 0x42, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xa7, 0x39, 0x29, 0x4a, 0x28, 0x42, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0xec, 0x62, 0xcb, 0x5a, 0xc7, 0x39, 0x86, 0x31, 0xa7, 0x39, 0xa6, 0x31, 0xa7, 0x39, 0x6a, 0x52, 0xcb, 0x5a, 0xa6, 0x31, 0xcb, 0x5a,
0xe7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x29, 0x4a, 0x69, 0x4a, 0x8a, 0x52, 0x8a, 0x52, 0x8a, 0x52, 0x08, 0x42, 0xa6, 0x31, 0xcb, 0x5a, 0xab, 0x5a, 0x86, 0x31, 0x65, 0x29, 0x86, 0x31, 0x86, 0x31, 0xe8, 0x41, 0x69, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x08, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0xe8, 0x41, 0xe8, 0x41, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x29, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0xe7, 0x39, 0x86, 0x31, 0x86, 0x31, 0x65, 0x29, 0xa7, 0x39, 0xeb, 0x5a, 0xcb, 0x5a, 0xa7, 0x39, 0x08, 0x42, 0x8a, 0x52, 0x8a, 0x52, 0x8a, 0x52, 0x69, 0x4a, 0x08, 0x42, 0xe8, 0x41, 0x86, 0x31, 0xc7, 0x39,
0x49, 0x4a, 0xe7, 0x39, 0x8a, 0x52, 0x08, 0x42, 0x86, 0x31, 0x08, 0x42, 0x6a, 0x52, 0x28, 0x42, 0x0c, 0x63, 0xc7, 0x39, 0xe8, 0x41, 0x0c, 0x63, 0xab, 0x5a, 0xa6, 0x31, 0x65, 0x29, 0x08, 0x42, 0xab, 0x5a, 0xc7, 0x39, 0x29, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x49, 0x4a, 0xe8, 0x41, 0xe8, 0x41, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0xe8, 0x41, 0x66, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0x08, 0x42, 0x8a, 0x52, 0xc7, 0x39, 0x65, 0x29, 0xc7, 0x39, 0xcb, 0x5a, 0x0c, 0x63, 0xc7, 0x39, 0xe7, 0x39, 0xcb, 0x5a, 0x08, 0x42, 0xaa, 0x52, 0x08, 0x42, 0x86, 0x31, 0x29, 0x4a, 0xaa, 0x52, 0x86, 0x31, 0x49, 0x4a,
0xaa, 0x52, 0xa7, 0x39, 0xaa, 0x52, 0x28, 0x42, 0x66, 0x31, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x0c, 0x63, 0xc7, 0x39, 0x08, 0x42, 0x0c, 0x63, 0x8a, 0x52, 0x86, 0x31, 0x65, 0x29, 0xe8, 0x41, 0xab, 0x5a, 0xc7, 0x39, 0xe8, 0x41, 0xe7, 0x39, 0x66, 0x31, 0x08, 0x42, 0x49, 0x4a, 0xe8, 0x41, 0x08, 0x42, 0x49, 0x4a, 0xe8, 0x41, 0x08, 0x42, 0x08, 0x42, 0x66, 0x31, 0xe7, 0x39, 0xe8, 0x41, 0x08, 0x42, 0xab, 0x5a, 0xa6, 0x31, 0x66, 0x31, 0xa6, 0x31, 0xaa, 0x52, 0x0c, 0x63, 0xe7, 0x39, 0xc7, 0x39, 0xec, 0x62, 0xc7, 0x39, 0x29, 0x4a, 0x08, 0x42, 0x66, 0x31, 0x6a, 0x52, 0x8a, 0x52, 0x86, 0x31, 0xaa, 0x52,
0x86, 0x31, 0x86, 0x31, 0xa7, 0x39, 0x6a, 0x52, 0xab, 0x5a, 0x8a, 0x52, 0xcb, 0x5a, 0xcb, 0x5a, 0xe7, 0x39, 0xa7, 0x39, 0xcb, 0x5a, 0xab, 0x5a, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0x66, 0x31, 0xe7, 0x39, 0x8a, 0x52, 0x69, 0x4a, 0x49, 0x4a, 0x8a, 0x52, 0x28, 0x42, 0x86, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0x86, 0x31, 0xa6, 0x31, 0x28, 0x42, 0x6a, 0x52, 0x49, 0x4a, 0x69, 0x4a, 0x6a, 0x52, 0xc7, 0x39, 0x66, 0x31, 0x86, 0x31, 0x66, 0x31, 0xa6, 0x31, 0xcb, 0x5a, 0xcb, 0x5a, 0xa6, 0x31, 0x08, 0x42, 0xcb, 0x5a, 0xaa, 0x52, 0x8a, 0x52, 0xcb, 0x5a, 0x49, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0x86, 0x31,
0xaa, 0x52, 0xe8, 0x41, 0xaa, 0x52, 0x08, 0x42, 0xc7, 0x39, 0xa7, 0x39, 0xa7, 0x39, 0xa6, 0x31, 0xe8, 0x41, 0xcb, 0x5a, 0xab, 0x5a, 0xa6, 0x31, 0xc7, 0x39, 0x28, 0x42, 0x08, 0x42, 0x08, 0x42, 0x86, 0x31, 0x66, 0x31, 0xa7, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0xe8, 0x41, 0x69, 0x4a, 0xc7, 0x39, 0x28, 0x42, 0x28, 0x42, 0xa6, 0x31, 0x49, 0x4a, 0xe8, 0x41, 0xc7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0x66, 0x31, 0xa7, 0x39, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0xcb, 0x5a, 0xcb, 0x5a, 0xe7, 0x39, 0xa6, 0x31, 0xa7, 0x39, 0xa7, 0x39, 0xc7, 0x39, 0x28, 0x42, 0xcb, 0x5a, 0xc7, 0x39, 0xaa, 0x52,
0x08, 0x42, 0x69, 0x4a, 0x29, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x69, 0x4a, 0xab, 0x5a, 0x49, 0x4a, 0x86, 0x31, 0xa6, 0x31, 0x28, 0x42, 0xa7, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0x08, 0x42, 0x65, 0x29, 0x86, 0x31, 0x29, 0x4a, 0x08, 0x42, 0x6a, 0x52, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x08, 0x42, 0x29, 0x4a, 0xe8, 0x41, 0x49, 0x4a, 0x28, 0x42, 0x49, 0x4a, 0x86, 0x31, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0x28, 0x42, 0x66, 0x31, 0xa7, 0x39, 0x49, 0x4a, 0xab, 0x5a, 0x69, 0x4a, 0x66, 0x31, 0x08, 0x42, 0x49, 0x4a, 0x8a, 0x52, 0xe8, 0x41, 0x69, 0x4a, 0x08, 0x42,
0x66, 0x31, 0x69, 0x4a, 0xc7, 0x39, 0x8a, 0x52, 0xa7, 0x39, 0x69, 0x4a, 0x28, 0x42, 0x86, 0x31, 0x86, 0x31, 0x66, 0x31, 0x65, 0x29, 0x08, 0x42, 0xa7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0xa7, 0x39, 0x29, 0x4a, 0x66, 0x31, 0xe7, 0x39, 0x49, 0x4a, 0x86, 0x31, 0x6a, 0x52, 0xa6, 0x31, 0x29, 0x4a, 0x86, 0x31, 0x66, 0x31, 0x69, 0x4a, 0xc7, 0x39, 0x29, 0x4a, 0x86, 0x31, 0x49, 0x4a, 0xe8, 0x41, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0xe8, 0x41, 0xa7, 0x39, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0x86, 0x31, 0x49, 0x4a, 0x6a, 0x52, 0xe8, 0x41, 0x49, 0x4a, 0xa6, 0x31, 0xab, 0x5a, 0x65, 0x29,
0x69, 0x4a, 0x29, 0x4a, 0xc7, 0x39, 0xc7, 0x39, 0xab, 0x5a, 0xe7, 0x39, 0xaa, 0x52, 0xc7, 0x39, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x66, 0x31, 0xe7, 0x39, 0x8a, 0x52, 0x8a, 0x52, 0x49, 0x4a, 0xa6, 0x31, 0x49, 0x4a, 0xc7, 0x39, 0xe7, 0x39, 0x29, 0x4a, 0xe7, 0x39, 0x49, 0x4a, 0x69, 0x4a, 0x8a, 0x52, 0xe8, 0x41, 0x65, 0x29, 0x28, 0x42, 0xe7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0xe8, 0x41, 0xe7, 0x39, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0xe7, 0x39, 0xcb, 0x5a, 0xc7, 0x39, 0x8a, 0x52, 0xc7, 0x39, 0xc7, 0x39, 0xaa, 0x52, 0x28, 0x42,
0x6a, 0x52, 0x49, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0xcb, 0x5a, 0xec, 0x62, 0x28, 0x42, 0x66, 0x31, 0x66, 0x31, 0x86, 0x31, 0x28, 0x42, 0x08, 0x42, 0x86, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0x66, 0x31, 0x66, 0x31, 0x86, 0x31, 0x08, 0x42, 0xe7, 0x39, 0x66, 0x31, 0xa6, 0x31, 0x49, 0x4a, 0x29, 0x4a, 0xe8, 0x41, 0x69, 0x4a, 0xa6, 0x31, 0x86, 0x31, 0xe7, 0x39, 0xe8, 0x41, 0x86, 0x31, 0x65, 0x29, 0x86, 0x31, 0xe7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0x29, 0x4a, 0xe8, 0x41, 0x86, 0x31, 0x66, 0x31, 0x65, 0x29, 0x8a, 0x52, 0xeb, 0x5a, 0xaa, 0x52, 0xe8, 0x41, 0x86, 0x31, 0xc7, 0x39, 0xcb, 0x5a, 0x49, 0x4a,
0x08, 0x42, 0xaa, 0x52, 0xa6, 0x31, 0xab, 0x5a, 0x66, 0x31, 0xa7, 0x39, 0x49, 0x4a, 0xe8, 0x41, 0x66, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x28, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x66, 0x31, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0x49, 0x4a, 0x08, 0x42, 0x08, 0x42, 0x8a, 0x52, 0x66, 0x31, 0x86, 0x31, 0x86, 0x31, 0x66, 0x31, 0x65, 0x29, 0x86, 0x31, 0xe8, 0x41, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x08, 0x42, 0xc7, 0x39, 0x66, 0x31, 0x29, 0x4a, 0x28, 0x42, 0xa6, 0x31, 0xc7, 0x39, 0x69, 0x4a, 0x86, 0x31, 0xcb, 0x5a, 0x08, 0x42,
0xeb, 0x5a, 0xe8, 0x41, 0x08, 0x42, 0xeb, 0x5a, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x08, 0x42, 0x29, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xc7, 0x39, 0x49, 0x4a, 0xe7, 0x39, 0x86, 0x31, 0x08, 0x42, 0x08, 0x42, 0x29, 0x4a, 0xa7, 0x39, 0xe7, 0x39, 0xaa, 0x52, 0xab, 0x5a, 0xc7, 0x39, 0xa7, 0x39, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x86, 0x31, 0xe8, 0x41, 0x29, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0xe7, 0x39, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0xc7, 0x39, 0xeb, 0x5a, 0xa7, 0x39, 0x08, 0x42, 0x0c, 0x63,
0xa7, 0x39, 0xc7, 0x39, 0xeb, 0x5a, 0x49, 0x4a, 0x66, 0x31, 0x66, 0x31, 0x65, 0x29, 0xc7, 0x39, 0x49, 0x4a, 0x86, 0x31, 0xc7, 0x39, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0xa6, 0x31, 0xe7, 0x39, 0x29, 0x4a, 0xa7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0xa7, 0x39, 0x29, 0x4a, 0x86, 0x31, 0xc7, 0x39, 0xa7, 0x39, 0x66, 0x31, 0x28, 0x42, 0xc7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0xe7, 0x39, 0x28, 0x42, 0xa7, 0x39, 0xa7, 0x39, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0xa7, 0x39, 0xa6, 0x31, 0x29, 0x4a, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x8a, 0x52, 0xcb, 0x5a, 0x86, 0x31, 0xa6, 0x31,
0xe8, 0x41, 0xcb, 0x5a, 0xab, 0x5a, 0x86, 0x31, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0x29, 0x4a, 0xa7, 0x39, 0xa6, 0x31, 0x49, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0x86, 0x31, 0x08, 0x42, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xa7, 0x39, 0x08, 0x42, 0x29, 0x4a, 0x86, 0x31, 0x28, 0x42, 0x86, 0x31, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0x08, 0x42, 0xe7, 0x39, 0x08, 0x42, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xe8, 0x41, 0x66, 0x31, 0x86, 0x31, 0xc7, 0x39, 0x49, 0x4a, 0xa6, 0x31, 0xe7, 0x39, 0x08, 0x42, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0xa6, 0x31, 0xcb, 0x5a, 0xcb, 0x5a, 0xe8, 0x41,
0x2c, 0x63, 0xaa, 0x52, 0xa7, 0x39, 0xa7, 0x39, 0xe7, 0x39, 0xe8, 0x41, 0x08, 0x42, 0x29, 0x4a, 0x66, 0x31, 0x28, 0x42, 0xc7, 0x39, 0xc7, 0x39, 0xe8, 0x41, 0xc7, 0x39, 0x86, 0x31, 0x28, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xa6, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0x28, 0x42, 0x66, 0x31, 0xc7, 0x39, 0x86, 0x31, 0x66, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0x08, 0x42, 0xa6, 0x31, 0x49, 0x4a, 0x66, 0x31, 0xc7, 0x39, 0xe8, 0x41, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0xa6, 0x31, 0x49, 0x4a, 0x08, 0x42, 0x08, 0x42, 0xe7, 0x39, 0x86, 0x31, 0xc7, 0x39, 0xcb, 0x5a, 0x2c, 0x63,
0x8a, 0x52, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0xa7, 0x39, 0x08, 0x42, 0x08, 0x42, 0x66, 0x31, 0x49, 0x4a, 0xa6, 0x31, 0x08, 0x42, 0xa6, 0x31, 0x28, 0x42, 0x86, 0x31, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0x29, 0x4a, 0xe7, 0x39, 0x08, 0x42, 0x08, 0x42, 0x86, 0x31, 0xc7, 0x39, 0xcb, 0x5a, 0xaa, 0x52, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x66, 0x31, 0x29, 0x4a, 0x86, 0x31, 0x49, 0x4a, 0x08, 0x42, 0xa7, 0x39, 0xc7, 0x39, 0x29, 0x4a, 0xa6, 0x31, 0xa6, 0x31, 0x8a, 0x52,
0x86, 0x31, 0x86, 0x31, 0x08, 0x42, 0xa6, 0x31, 0x08, 0x42, 0xe8, 0x41, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xa6, 0x31, 0xc7, 0x39, 0x08, 0x42, 0xa7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xe7, 0x39, 0xc7, 0x39, 0xa7, 0x39, 0x86, 0x31, 0xc7, 0x39, 0xeb, 0x5a, 0x0c, 0x63, 0x0c, 0x63, 0xcb, 0x5a, 0xc7, 0x39, 0x86, 0x31, 0xc7, 0x39, 0xe7, 0x39, 0xe8, 0x41, 0x28, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xc7, 0x39, 0xa6, 0x31, 0x08, 0x42, 0xa7, 0x39, 0x86, 0x31, 0x29, 0x4a, 0xa6, 0x31, 0x29, 0x4a, 0x86, 0x31, 0x08, 0x42, 0xe7, 0x39, 0xc7, 0x39, 0x28, 0x42, 0x65, 0x29, 0x86, 0x31,
0x66, 0x31, 0xa6, 0x31, 0xe8, 0x41, 0xc7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0xe8, 0x41, 0x28, 0x42, 0x66, 0x31, 0x28, 0x42, 0x08, 0x42, 0x86, 0x31, 0x86, 0x31, 0xc7, 0x39, 0x49, 0x4a, 0xa6, 0x31, 0xe8, 0x41, 0x08, 0x42, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0x86, 0x31, 0xec, 0x62, 0xcb, 0x5a, 0xc7, 0x39, 0xe7, 0x39, 0xeb, 0x5a, 0xcb, 0x5a, 0xa6, 0x31, 0x66, 0x31, 0x65, 0x29, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xa7, 0x39, 0x49, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0x86, 0x31, 0x28, 0x42, 0x08, 0x42, 0xa6, 0x31, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x08, 0x42, 0xa7, 0x39, 0x49, 0x4a, 0x66, 0x31, 0x66, 0x31,
0xe8, 0x41, 0x86, 0x31, 0x08, 0x42, 0xc7, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0x29, 0x4a, 0xc7, 0x39, 0x86, 0x31, 0x08, 0x42, 0x29, 0x4a, 0x29, 0x4a, 0x08, 0x42, 0xa6, 0x31, 0xa7, 0x39, 0x49, 0x4a, 0xa6, 0x31, 0x65, 0x29, 0x66, 0x31, 0x65, 0x29, 0x8a, 0x52, 0xcb, 0x5a, 0xa6, 0x31, 0xe7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0xcb, 0x5a, 0x49, 0x4a, 0x66, 0x31, 0x65, 0x29, 0x66, 0x31, 0xc7, 0x39, 0x29, 0x4a, 0x86, 0x31, 0xa7, 0x39, 0x08, 0x42, 0x29, 0x4a, 0x29, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x08, 0x42, 0xe8, 0x41, 0xc7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0xe8, 0x41, 0x08, 0x42, 0x66, 0x31, 0x08, 0x42,
0x8a, 0x52, 0x08, 0x42, 0xa6, 0x31, 0xe8, 0x41, 0xe8, 0x41, 0xe8, 0x41, 0x86, 0x31, 0xe7, 0x39, 0x49, 0x4a, 0xe8, 0x41, 0xa6, 0x31, 0x86, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xe8, 0x41, 0x29, 0x4a, 0xc7, 0x39, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0xa6, 0x31, 0x0c, 0x63, 0xc7, 0x39, 0x08, 0x42, 0xeb, 0x5a, 0xec, 0x62, 0x08, 0x42, 0xe8, 0x41, 0xab, 0x5a, 0x86, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0xe7, 0x39, 0x49, 0x4a, 0xe7, 0x39, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x49, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0xe8, 0x41, 0x08, 0x42, 0xe8, 0x41, 0x86, 0x31, 0x08, 0x42, 0xaa, 0x52,
0xc7, 0x39, 0x69, 0x4a, 0x86, 0x31, 0x66, 0x31, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0xc7, 0x39, 0x08, 0x42, 0x08, 0x42, 0x29, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x08, 0x42, 0xa6, 0x31, 0x65, 0x29, 0x49, 0x4a, 0x8a, 0x52, 0xa7, 0x39, 0xa6, 0x31, 0xaa, 0x52, 0x86, 0x31, 0x8a, 0x52, 0xe8, 0x41, 0xc7, 0x39, 0xcb, 0x5a, 0xa6, 0x31, 0x69, 0x4a, 0x86, 0x31, 0xc7, 0x39, 0x8a, 0x52, 0x29, 0x4a, 0x66, 0x31, 0xa6, 0x31, 0x08, 0x42, 0x29, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x08, 0x42, 0xe8, 0x41, 0xa7, 0x39, 0x66, 0x31, 0x65, 0x29, 0x65, 0x29, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0x8a, 0x52, 0xc7, 0x39,
0x49, 0x4a, 0x08, 0x42, 0xc7, 0x39, 0x86, 0x31, 0x08, 0x42, 0x28, 0x42, 0xa6, 0x31, 0x66, 0x31, 0x86, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0x86, 0x31, 0x28, 0x42, 0x08, 0x42, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0x49, 0x4a, 0xec, 0x62, 0xcb, 0x5a, 0xe8, 0x41, 0x86, 0x31, 0xa6, 0x31, 0x8a, 0x52, 0x8a, 0x52, 0x28, 0x42, 0xab, 0x5a, 0xa7, 0x39, 0x66, 0x31, 0x49, 0x4a, 0xeb, 0x5a, 0xeb, 0x5a, 0x28, 0x42, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0x08, 0x42, 0xe8, 0x41, 0x86, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0x86, 0x31, 0x65, 0x29, 0xa6, 0x31, 0x28, 0x42, 0xe8, 0x41, 0x86, 0x31, 0xc7, 0x39, 0x69, 0x4a, 0x28, 0x42,
0xe7, 0x39, 0x08, 0x42, 0xc7, 0x39, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x08, 0x42, 0x65, 0x29, 0x29, 0x4a, 0xe8, 0x41, 0x08, 0x42, 0xc7, 0x39, 0xc7, 0x39, 0x08, 0x42, 0x45, 0x29, 0x65, 0x29, 0x65, 0x29, 0x86, 0x31, 0xab, 0x5a, 0xe8, 0x41, 0xaa, 0x52, 0xc7, 0x39, 0xa6, 0x31, 0x8a, 0x52, 0x08, 0x42, 0x08, 0x42, 0x8a, 0x52, 0xa7, 0x39, 0x28, 0x42, 0x6a, 0x52, 0xc7, 0x39, 0xab, 0x5a, 0xa6, 0x31, 0x65, 0x29, 0x65, 0x29, 0x66, 0x31, 0x08, 0x42, 0xa6, 0x31, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0xe8, 0x41, 0x65, 0x29, 0x28, 0x42, 0x8a, 0x52, 0x6a, 0x52, 0x08, 0x42, 0xe7, 0x39, 0x49, 0x4a, 0xa7, 0x39,
0x86, 0x31, 0x29, 0x4a, 0xe7, 0x39, 0x28, 0x42, 0x86, 0x31, 0x49, 0x4a, 0xe8, 0x41, 0x86, 0x31, 0x49, 0x4a, 0x86, 0x31, 0x08, 0x42, 0xa6, 0x31, 0x08, 0x42, 0xc7, 0x39, 0x65, 0x29, 0x66, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xe7, 0x39, 0x6a, 0x52, 0xe7, 0x39, 0x8a, 0x52, 0xa7, 0x39, 0x6a, 0x52, 0x86, 0x31, 0x66, 0x31, 0xcb, 0x5a, 0xc7, 0x39, 0x49, 0x4a, 0xe7, 0x39, 0xaa, 0x52, 0xe8, 0x41, 0xc7, 0x39, 0xc7, 0x39, 0x65, 0x29, 0x66, 0x31, 0xe7, 0x39, 0xc7, 0x39, 0xe8, 0x41, 0x08, 0x42, 0xc7, 0x39, 0x08, 0x42, 0x86, 0x31, 0x08, 0x42, 0x69, 0x4a, 0xa6, 0x31, 0x49, 0x4a, 0xa6, 0x31, 0x6a, 0x52, 0x65, 0x29,
0x28, 0x42, 0x08, 0x42, 0x28, 0x42, 0x6a, 0x52, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x66, 0x31, 0x29, 0x4a, 0xe7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0x29, 0x4a, 0x66, 0x31, 0xa7, 0x39, 0xaa, 0x52, 0xcb, 0x5a, 0x69, 0x4a, 0x86, 0x31, 0xc7, 0x39, 0x69, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x28, 0x42, 0x29, 0x4a, 0x69, 0x4a, 0x29, 0x4a, 0x28, 0x42, 0x8a, 0x52, 0x49, 0x4a, 0xa7, 0x39, 0x86, 0x31, 0x6a, 0x52, 0xcb, 0x5a, 0x8a, 0x52, 0xa6, 0x31, 0x86, 0x31, 0x28, 0x42, 0xc7, 0x39, 0xa7, 0x39, 0xe8, 0x41, 0xe8, 0x41, 0x66, 0x31, 0x86, 0x31, 0x08, 0x42, 0x49, 0x4a, 0xaa, 0x52, 0xe7, 0x39, 0x08, 0x42, 0x28, 0x42,
0x28, 0x42, 0xa7, 0x39, 0x49, 0x4a, 0xc7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0xc7, 0x39, 0x86, 0x31, 0x86, 0x31, 0x28, 0x42, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0xa7, 0x39, 0xec, 0x62, 0xab, 0x5a, 0xa6, 0x31, 0x86, 0x31, 0xa7, 0x39, 0xc7, 0x39, 0x86, 0x31, 0x08, 0x42, 0xcb, 0x5a, 0xe8, 0x41, 0xaa, 0x52, 0x8a, 0x52, 0xa7, 0x39, 0xcb, 0x5a, 0xe7, 0x39, 0xa6, 0x31, 0xc7, 0x39, 0xa7, 0x39, 0x86, 0x31, 0xc7, 0x39, 0xcb, 0x5a, 0xcb, 0x5a, 0xa7, 0x39, 0xa6, 0x31, 0x28, 0x42, 0x49, 0x4a, 0x08, 0x42, 0x86, 0x31, 0x86, 0x31, 0xc7, 0x39, 0xc7, 0x39, 0xa6, 0x31, 0xe7, 0x39, 0x6a, 0x52, 0x86, 0x31, 0x08, 0x42,
0x08, 0x42, 0xa6, 0x31, 0x86, 0x31, 0x29, 0x4a, 0x69, 0x4a, 0x49, 0x4a, 0x69, 0x4a, 0x8a, 0x52, 0x08, 0x42, 0x65, 0x29, 0x65, 0x29, 0x65, 0x29, 0xa6, 0x31, 0xeb, 0x5a, 0xab, 0x5a, 0xa6, 0x31, 0x28, 0x42, 0xcb, 0x5a, 0xcb, 0x5a, 0xaa, 0x52, 0xcb, 0x5a, 0x49, 0x4a, 0xa6, 0x31, 0x86, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xc7, 0x39, 0x69, 0x4a, 0xab, 0x5a, 0xab, 0x5a, 0xcb, 0x5a, 0xcb, 0x5a, 0xe8, 0x41, 0xa6, 0x31, 0xeb, 0x5a, 0xab, 0x5a, 0xa6, 0x31, 0x66, 0x31, 0x65, 0x29, 0x66, 0x31, 0x08, 0x42, 0x8a, 0x52, 0x69, 0x4a, 0x49, 0x4a, 0x6a, 0x52, 0x08, 0x42, 0xa6, 0x31, 0xa6, 0x31, 0x08, 0x42,
0xe8, 0x41, 0x29, 0x4a, 0x29, 0x4a, 0xe7, 0x39, 0x65, 0x29, 0xc7, 0x39, 0x08, 0x42, 0xe8, 0x41, 0xab, 0x5a, 0xe8, 0x41, 0x65, 0x29, 0xa7, 0x39, 0xcb, 0x5a, 0x0c, 0x63, 0xe8, 0x41, 0xe8, 0x41, 0x0c, 0x63, 0xc7, 0x39, 0x49, 0x4a, 0x08, 0x42, 0x66, 0x31, 0x28, 0x42, 0xcb, 0x5a, 0xc7, 0x39, 0x49, 0x4a, 0xaa, 0x52, 0x86, 0x31, 0xaa, 0x52, 0x08, 0x42, 0x65, 0x29, 0x28, 0x42, 0x49, 0x4a, 0x28, 0x42, 0xec, 0x62, 0xa6, 0x31, 0xe8, 0x41, 0x2c, 0x63, 0x8a, 0x52, 0x86, 0x31, 0x66, 0x31, 0xe8, 0x41, 0xaa, 0x52, 0xc7, 0x39, 0x28, 0x42, 0xa7, 0x39, 0x66, 0x31, 0x29, 0x4a, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 bytes are swapped*/
0x39, 0xc7, 0x4a, 0x29, 0x4a, 0x29, 0x39, 0xe7, 0x31, 0x86, 0x41, 0xe8, 0x42, 0x28, 0x41, 0xe8, 0x52, 0xaa, 0x41, 0xe8, 0x29, 0x45, 0x39, 0xa7, 0x5a, 0xcb, 0x63, 0x0c, 0x41, 0xe8, 0x42, 0x08, 0x62, 0xec, 0x39, 0xc7, 0x52, 0x8a, 0x4a, 0x29, 0x31, 0x86, 0x41, 0xe8, 0x5a, 0xcb, 0x39, 0xe7, 0x4a, 0x49, 0x52, 0xaa, 0x31, 0x86, 0x5a, 0xab, 0x41, 0xe8, 0x31, 0x86, 0x4a, 0x69, 0x52, 0x6a, 0x42, 0x08, 0x62, 0xec, 0x31, 0xa6, 0x42, 0x08, 0x63, 0x0c, 0x52, 0x8a, 0x31, 0x86, 0x31, 0x86, 0x41, 0xe8, 0x52, 0x8a, 0x39, 0xc7, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0x86, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8,
0x4a, 0x29, 0x31, 0xa6, 0x39, 0xa7, 0x4a, 0x29, 0x4a, 0x29, 0x42, 0x08, 0x42, 0x28, 0x52, 0x6a, 0x41, 0xe8, 0x31, 0x86, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x5a, 0xcb, 0x5a, 0xcb, 0x39, 0xa7, 0x4a, 0x29, 0x52, 0xaa, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x69, 0x52, 0x6a, 0x39, 0xc7, 0x31, 0x86, 0x39, 0xe7, 0x39, 0xa7, 0x31, 0x86, 0x41, 0xe8, 0x52, 0x6a, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x49, 0x52, 0xaa, 0x42, 0x08, 0x39, 0xc7, 0x5a, 0xeb, 0x52, 0xaa, 0x31, 0x86, 0x31, 0x86, 0x31, 0x86, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x69, 0x42, 0x08, 0x42, 0x08, 0x4a, 0x29, 0x42, 0x08, 0x39, 0xa7, 0x31, 0xa6, 0x4a, 0x29,
0x4a, 0x29, 0x39, 0xc7, 0x4a, 0x29, 0x42, 0x08, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0x86, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xa7, 0x5a, 0xab, 0x5a, 0xcb, 0x41, 0xe8, 0x31, 0xa6, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0xe7, 0x42, 0x28, 0x52, 0x8a, 0x41, 0xe8, 0x52, 0x8a, 0x52, 0x8a, 0x39, 0xa7, 0x52, 0xaa, 0x4a, 0x29, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0xa6, 0x42, 0x08, 0x5a, 0xeb, 0x5a, 0xab, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x31, 0xa6, 0x31, 0xa6, 0x39, 0xc7, 0x39, 0xc7, 0x41, 0xe8, 0x42, 0x28, 0x4a, 0x49, 0x31, 0x86, 0x42, 0x28,
0x39, 0xc7, 0x4a, 0x29, 0x42, 0x08, 0x42, 0x28, 0x4a, 0x49, 0x4a, 0x49, 0x31, 0x86, 0x31, 0x66, 0x4a, 0x29, 0x39, 0xa7, 0x39, 0xc7, 0x39, 0xa7, 0x4a, 0x49, 0x31, 0x86, 0x31, 0xa6, 0x4a, 0x69, 0x5a, 0xeb, 0x5a, 0xcb, 0x31, 0xa6, 0x41, 0xe8, 0x52, 0x6a, 0x42, 0x28, 0x4a, 0x69, 0x4a, 0x29, 0x42, 0x08, 0x4a, 0x29, 0x4a, 0x49, 0x42, 0x08, 0x4a, 0x29, 0x52, 0x8a, 0x39, 0xc7, 0x31, 0xa6, 0x5a, 0xab, 0x5a, 0xeb, 0x4a, 0x49, 0x31, 0xa6, 0x39, 0xa7, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xc7, 0x39, 0xc7, 0x41, 0xe8, 0x31, 0x66, 0x31, 0x86, 0x4a, 0x69, 0x4a, 0x29, 0x4a, 0x69, 0x39, 0xc7, 0x4a, 0x29, 0x41, 0xe8,
0x31, 0x86, 0x42, 0x28, 0x39, 0xe7, 0x4a, 0x49, 0x31, 0x66, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x29, 0x31, 0xa6, 0x4a, 0x49, 0x39, 0xc7, 0x41, 0xe8, 0x41, 0xe8, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x31, 0x86, 0x41, 0xe8, 0x52, 0x8a, 0x39, 0xa7, 0x5a, 0xab, 0x31, 0xa6, 0x4a, 0x69, 0x31, 0x86, 0x31, 0x66, 0x5a, 0xab, 0x39, 0xc7, 0x4a, 0x49, 0x39, 0xa7, 0x5a, 0xcb, 0x39, 0xe7, 0x31, 0x86, 0x31, 0x86, 0x31, 0x66, 0x31, 0x66, 0x39, 0xe7, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x49, 0x31, 0x86, 0x4a, 0x49, 0x31, 0x86, 0x52, 0x6a, 0x31, 0x66,
0x41, 0xe8, 0x42, 0x08, 0x39, 0xc7, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x66, 0x42, 0x28, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x08, 0x29, 0x65, 0x31, 0x66, 0x29, 0x65, 0x31, 0xa6, 0x5a, 0xcb, 0x42, 0x08, 0x52, 0x8a, 0x39, 0xc7, 0x31, 0xa6, 0x52, 0x8a, 0x42, 0x08, 0x42, 0x08, 0x52, 0x8a, 0x31, 0xa6, 0x42, 0x08, 0x4a, 0x69, 0x39, 0xe7, 0x5a, 0xcb, 0x31, 0xa6, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x42, 0x08, 0x39, 0xa7, 0x41, 0xe8, 0x39, 0xc7, 0x39, 0xe7, 0x41, 0xe8, 0x29, 0x65, 0x42, 0x08, 0x4a, 0x69, 0x4a, 0x49, 0x42, 0x08, 0x39, 0xe7, 0x4a, 0x49, 0x39, 0xc7,
0x42, 0x28, 0x42, 0x08, 0x39, 0xc7, 0x31, 0x86, 0x41, 0xe8, 0x42, 0x08, 0x31, 0xa6, 0x29, 0x65, 0x31, 0x66, 0x39, 0xe7, 0x39, 0xe7, 0x39, 0xa7, 0x4a, 0x29, 0x42, 0x28, 0x29, 0x65, 0x29, 0x65, 0x29, 0x45, 0x4a, 0x49, 0x63, 0x0c, 0x52, 0x8a, 0x41, 0xe8, 0x39, 0xa7, 0x31, 0xa6, 0x52, 0x8a, 0x52, 0x6a, 0x42, 0x08, 0x5a, 0xcb, 0x39, 0xa7, 0x31, 0x86, 0x4a, 0x29, 0x52, 0xaa, 0x63, 0x0c, 0x4a, 0x49, 0x29, 0x65, 0x29, 0x65, 0x31, 0x86, 0x42, 0x08, 0x42, 0x08, 0x39, 0xa7, 0x41, 0xe8, 0x39, 0xc7, 0x31, 0x86, 0x29, 0x65, 0x31, 0xa6, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x86, 0x39, 0xc7, 0x52, 0x6a, 0x41, 0xe8,
0x39, 0xe7, 0x52, 0x6a, 0x31, 0x86, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x29, 0x65, 0x31, 0x66, 0x41, 0xe8, 0x4a, 0x29, 0x42, 0x28, 0x42, 0x08, 0x42, 0x28, 0x4a, 0x49, 0x4a, 0x29, 0x39, 0xc7, 0x29, 0x65, 0x42, 0x28, 0x4a, 0x29, 0x31, 0xa6, 0x39, 0xa7, 0x52, 0xaa, 0x31, 0x66, 0x52, 0x8a, 0x42, 0x08, 0x42, 0x28, 0x5a, 0xcb, 0x31, 0xa6, 0x4a, 0x69, 0x31, 0x86, 0x39, 0xa7, 0x4a, 0x29, 0x42, 0x08, 0x31, 0x66, 0x39, 0xc7, 0x4a, 0x29, 0x4a, 0x49, 0x42, 0x28, 0x42, 0x08, 0x42, 0x28, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0x86, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x29, 0x65, 0x31, 0x86, 0x52, 0x8a, 0x41, 0xe8,
0x52, 0xaa, 0x42, 0x08, 0x31, 0xa6, 0x4a, 0x29, 0x4a, 0x49, 0x42, 0x28, 0x31, 0x66, 0x41, 0xe8, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x39, 0xc7, 0x4a, 0x49, 0x39, 0xe7, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0xa6, 0x63, 0x0c, 0x39, 0xe7, 0x42, 0x08, 0x63, 0x0c, 0x63, 0x0c, 0x41, 0xe8, 0x41, 0xe8, 0x5a, 0xab, 0x31, 0x86, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x49, 0x39, 0xa7, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x39, 0xe7, 0x4a, 0x69, 0x39, 0xc7, 0x31, 0x86, 0x4a, 0x29, 0x4a, 0x49, 0x42, 0x28, 0x31, 0x86, 0x41, 0xe8, 0x5a, 0xab,
0x41, 0xe8, 0x31, 0x66, 0x42, 0x08, 0x39, 0xc7, 0x31, 0xa6, 0x39, 0xe7, 0x39, 0xe7, 0x4a, 0x29, 0x39, 0xa7, 0x31, 0x86, 0x42, 0x28, 0x4a, 0x49, 0x4a, 0x49, 0x42, 0x28, 0x31, 0xa6, 0x31, 0xa6, 0x4a, 0x49, 0x39, 0xa7, 0x29, 0x65, 0x31, 0x66, 0x29, 0x65, 0x52, 0x8a, 0x5a, 0xcb, 0x31, 0xa6, 0x39, 0xe7, 0x39, 0xc7, 0x31, 0xa6, 0x5a, 0xcb, 0x4a, 0x49, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x39, 0xc7, 0x4a, 0x29, 0x31, 0x86, 0x31, 0xa6, 0x42, 0x08, 0x4a, 0x49, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x41, 0xe8, 0x41, 0xe8, 0x39, 0xc7, 0x41, 0xe8, 0x31, 0x86, 0x41, 0xe8, 0x42, 0x08, 0x29, 0x65, 0x41, 0xe8,
0x29, 0x65, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x4a, 0x49, 0x41, 0xe8, 0x39, 0xe7, 0x42, 0x28, 0x31, 0x66, 0x42, 0x28, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xa7, 0x39, 0xc7, 0x4a, 0x29, 0x31, 0xa6, 0x39, 0xe7, 0x42, 0x28, 0x29, 0x65, 0x31, 0x66, 0x29, 0x65, 0x31, 0x86, 0x5a, 0xcb, 0x5a, 0xcb, 0x41, 0xe8, 0x41, 0xe8, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0x86, 0x29, 0x65, 0x29, 0x65, 0x31, 0x86, 0x42, 0x28, 0x39, 0xa7, 0x39, 0xa7, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x31, 0xa6, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x28, 0x39, 0xa7, 0x4a, 0x29, 0x29, 0x65, 0x29, 0x65,
0x31, 0xa6, 0x31, 0x66, 0x42, 0x08, 0x39, 0xa7, 0x39, 0xc7, 0x39, 0xa7, 0x39, 0xa7, 0x42, 0x08, 0x31, 0x66, 0x4a, 0x49, 0x31, 0xa6, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xc7, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x42, 0x28, 0x42, 0x28, 0x42, 0x08, 0x31, 0x86, 0x39, 0xa7, 0x5a, 0xcb, 0x62, 0xec, 0x63, 0x0c, 0x52, 0xaa, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x28, 0x31, 0x86, 0x4a, 0x49, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xa7, 0x31, 0x86, 0x4a, 0x29, 0x31, 0xa6, 0x4a, 0x29, 0x31, 0x66, 0x39, 0xc7, 0x31, 0xa6, 0x39, 0xe7, 0x42, 0x08, 0x29, 0x65, 0x31, 0xa6,
0x5a, 0xcb, 0x31, 0x86, 0x31, 0xa6, 0x4a, 0x49, 0x41, 0xe8, 0x39, 0xc7, 0x4a, 0x29, 0x42, 0x28, 0x31, 0x66, 0x4a, 0x49, 0x31, 0xa6, 0x39, 0xe7, 0x31, 0x66, 0x42, 0x28, 0x31, 0x86, 0x42, 0x28, 0x31, 0x86, 0x4a, 0x49, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xa7, 0x31, 0xa6, 0x5a, 0xcb, 0x52, 0x8a, 0x31, 0x86, 0x39, 0xc7, 0x42, 0x28, 0x39, 0xc7, 0x39, 0xa7, 0x42, 0x28, 0x42, 0x08, 0x31, 0xa6, 0x4a, 0x49, 0x31, 0x86, 0x41, 0xe8, 0x31, 0xa6, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x29, 0x31, 0xa6, 0x4a, 0x49, 0x42, 0x28, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x28, 0x31, 0x86, 0x31, 0xa6, 0x5a, 0xab,
0x62, 0xec, 0x5a, 0xcb, 0x39, 0xa7, 0x31, 0x86, 0x41, 0xe8, 0x42, 0x08, 0x42, 0x28, 0x4a, 0x49, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xc7, 0x42, 0x28, 0x39, 0xe7, 0x31, 0x86, 0x42, 0x28, 0x31, 0x86, 0x4a, 0x29, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0xa6, 0x4a, 0x29, 0x31, 0x66, 0x31, 0xa6, 0x31, 0x86, 0x31, 0x66, 0x42, 0x08, 0x39, 0xa7, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0xa6, 0x42, 0x08, 0x31, 0xa6, 0x4a, 0x49, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x08, 0x31, 0xa6, 0x4a, 0x49, 0x42, 0x08, 0x42, 0x08, 0x39, 0xe7, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xeb, 0x63, 0x0c,
0x42, 0x08, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0xa6, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0xa6, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0xa6, 0x31, 0x86, 0x42, 0x08, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x39, 0xa7, 0x42, 0x08, 0x4a, 0x29, 0x31, 0x86, 0x4a, 0x29, 0x31, 0x86, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x42, 0x08, 0x39, 0xe7, 0x41, 0xe8, 0x42, 0x28, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xa7, 0x41, 0xe8, 0x42, 0x08, 0x29, 0x65, 0x29, 0x65, 0x29, 0x45, 0x39, 0xa7, 0x62, 0xec, 0x5a, 0xcb, 0x42, 0x08,
0x41, 0xe8, 0x39, 0xa7, 0x5a, 0xcb, 0x4a, 0x49, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x39, 0xc7, 0x4a, 0x49, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x08, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x29, 0x31, 0xa6, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xc7, 0x42, 0x28, 0x31, 0x86, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x66, 0x42, 0x08, 0x39, 0xe7, 0x39, 0xa7, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xc7, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x28, 0x42, 0x08, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xa7, 0x4a, 0x29, 0x31, 0xa6, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x52, 0xaa, 0x5a, 0xab, 0x31, 0xa6, 0x39, 0xe7,
0x62, 0xec, 0x42, 0x28, 0x41, 0xe8, 0x5a, 0xeb, 0x31, 0x86, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x39, 0xe7, 0x4a, 0x49, 0x39, 0xe7, 0x31, 0x86, 0x31, 0x86, 0x31, 0x86, 0x31, 0x86, 0x39, 0xe7, 0x4a, 0x69, 0x39, 0xc7, 0x31, 0x66, 0x42, 0x08, 0x4a, 0x29, 0x42, 0x08, 0x31, 0x86, 0x42, 0x08, 0x52, 0xaa, 0x5a, 0xab, 0x39, 0xe7, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x29, 0x41, 0xe8, 0x31, 0x66, 0x41, 0xe8, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x49, 0x39, 0xc7, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x39, 0xc7, 0x5a, 0xeb, 0x31, 0xa6, 0x42, 0x28, 0x63, 0x0c,
0x39, 0xc7, 0x5a, 0xab, 0x31, 0xa6, 0x5a, 0xcb, 0x31, 0x86, 0x31, 0xa6, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x66, 0x39, 0xa7, 0x42, 0x28, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x4a, 0x69, 0x39, 0xc7, 0x39, 0xc7, 0x52, 0x8a, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x49, 0x42, 0x28, 0x31, 0xa6, 0x29, 0x65, 0x4a, 0x49, 0x4a, 0x29, 0x31, 0x86, 0x39, 0xe7, 0x4a, 0x49, 0x31, 0x86, 0x5a, 0xeb, 0x39, 0xc7,
0x52, 0x6a, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0xa6, 0x39, 0xe7, 0x5a, 0xcb, 0x63, 0x0c, 0x4a, 0x29, 0x31, 0x66, 0x31, 0x66, 0x29, 0x65, 0x42, 0x08, 0x42, 0x28, 0x31, 0x86, 0x39, 0xa7, 0x39, 0xa7, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x41, 0xe8, 0x39, 0xc7, 0x31, 0x86, 0x31, 0xa6, 0x4a, 0x49, 0x4a, 0x29, 0x41, 0xe8, 0x4a, 0x69, 0x39, 0xa7, 0x31, 0x86, 0x39, 0xe7, 0x41, 0xe8, 0x31, 0x86, 0x29, 0x65, 0x31, 0x86, 0x31, 0xa6, 0x39, 0xa7, 0x39, 0xa7, 0x4a, 0x29, 0x41, 0xe8, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x52, 0x8a, 0x63, 0x0c, 0x5a, 0xab, 0x39, 0xe7, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xab, 0x4a, 0x49,
0x4a, 0x49, 0x4a, 0x29, 0x39, 0xc7, 0x42, 0x08, 0x52, 0x8a, 0x42, 0x08, 0x52, 0x8a, 0x31, 0xa6, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x66, 0x41, 0xe8, 0x52, 0x6a, 0x4a, 0x69, 0x4a, 0x29, 0x31, 0xa6, 0x4a, 0x49, 0x39, 0xa7, 0x39, 0xe7, 0x4a, 0x49, 0x39, 0xc7, 0x4a, 0x49, 0x4a, 0x29, 0x52, 0x6a, 0x42, 0x08, 0x31, 0x66, 0x42, 0x08, 0x41, 0xe8, 0x42, 0x08, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xc7, 0x29, 0x65, 0x31, 0x66, 0x29, 0x65, 0x39, 0xc7, 0x5a, 0xcb, 0x42, 0x08, 0x52, 0x6a, 0x39, 0xc7, 0x39, 0xc7, 0x52, 0xaa, 0x42, 0x08,
0x31, 0x86, 0x4a, 0x69, 0x39, 0xe7, 0x52, 0x6a, 0x39, 0xa7, 0x52, 0x8a, 0x41, 0xe8, 0x31, 0xa6, 0x31, 0xa6, 0x29, 0x65, 0x29, 0x65, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xc7, 0x4a, 0x29, 0x31, 0x66, 0x39, 0xe7, 0x4a, 0x69, 0x31, 0x86, 0x52, 0x6a, 0x31, 0xa6, 0x4a, 0x49, 0x31, 0x86, 0x31, 0x66, 0x52, 0x6a, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x52, 0x8a, 0x39, 0xc7, 0x31, 0xa6, 0x42, 0x08, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xc7, 0x42, 0x08, 0x31, 0xa6, 0x31, 0x66, 0x29, 0x65, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08, 0x52, 0xaa, 0x39, 0xe7, 0x4a, 0x69, 0x31, 0x86, 0x5a, 0xcb, 0x31, 0x66,
0x41, 0xe8, 0x52, 0x6a, 0x4a, 0x29, 0x42, 0x08, 0x5a, 0xab, 0x39, 0xc7, 0x39, 0xc7, 0x5a, 0xab, 0x63, 0x0c, 0x52, 0x8a, 0x31, 0x86, 0x31, 0x86, 0x4a, 0x29, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x66, 0x31, 0x86, 0x4a, 0x29, 0x4a, 0x69, 0x4a, 0x69, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x42, 0x28, 0x42, 0x08, 0x41, 0xe8, 0x52, 0x6a, 0x52, 0x6a, 0x4a, 0x29, 0x31, 0x66, 0x31, 0x86, 0x42, 0x28, 0x31, 0xa6, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x31, 0x86, 0x52, 0x8a, 0x63, 0x0c, 0x5a, 0xab, 0x31, 0x86, 0x39, 0xe7, 0x52, 0x8a, 0x4a, 0x49, 0x41, 0xe8, 0x4a, 0x69, 0x42, 0x08,
0x5a, 0xcb, 0x39, 0xc7, 0x52, 0x8a, 0x4a, 0x69, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xe7, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0xa6, 0x39, 0xa7, 0x4a, 0x29, 0x4a, 0x29, 0x4a, 0x29, 0x31, 0x86, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x39, 0xa7, 0x42, 0x08, 0x4a, 0x69, 0x31, 0xa6, 0x4a, 0x49, 0x4a, 0x29, 0x31, 0x86, 0x4a, 0x69, 0x42, 0x08, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xa7, 0x4a, 0x29, 0x42, 0x28, 0x42, 0x28, 0x31, 0xa6, 0x39, 0xc7, 0x62, 0xec, 0x5a, 0xcb, 0x39, 0xc7, 0x31, 0x86, 0x39, 0xa7, 0x31, 0xa6, 0x39, 0xa7, 0x52, 0x6a, 0x5a, 0xcb, 0x31, 0xa6, 0x5a, 0xcb,
0x39, 0xe7, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x29, 0x4a, 0x69, 0x52, 0x8a, 0x52, 0x8a, 0x52, 0x8a, 0x42, 0x08, 0x31, 0xa6, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0x86, 0x29, 0x65, 0x31, 0x86, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x69, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x29, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xc7, 0x41, 0xe8, 0x41, 0xe8, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x39, 0xe7, 0x31, 0x86, 0x31, 0x86, 0x29, 0x65, 0x39, 0xa7, 0x5a, 0xeb, 0x5a, 0xcb, 0x39, 0xa7, 0x42, 0x08, 0x52, 0x8a, 0x52, 0x8a, 0x52, 0x8a, 0x4a, 0x69, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x86, 0x39, 0xc7,
0x4a, 0x49, 0x39, 0xe7, 0x52, 0x8a, 0x42, 0x08, 0x31, 0x86, 0x42, 0x08, 0x52, 0x6a, 0x42, 0x28, 0x63, 0x0c, 0x39, 0xc7, 0x41, 0xe8, 0x63, 0x0c, 0x5a, 0xab, 0x31, 0xa6, 0x29, 0x65, 0x42, 0x08, 0x5a, 0xab, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x49, 0x41, 0xe8, 0x41, 0xe8, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x41, 0xe8, 0x31, 0x66, 0x39, 0xc7, 0x4a, 0x29, 0x42, 0x08, 0x52, 0x8a, 0x39, 0xc7, 0x29, 0x65, 0x39, 0xc7, 0x5a, 0xcb, 0x63, 0x0c, 0x39, 0xc7, 0x39, 0xe7, 0x5a, 0xcb, 0x42, 0x08, 0x52, 0xaa, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x29, 0x52, 0xaa, 0x31, 0x86, 0x4a, 0x49,
0x52, 0xaa, 0x39, 0xa7, 0x52, 0xaa, 0x42, 0x28, 0x31, 0x66, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x63, 0x0c, 0x39, 0xc7, 0x42, 0x08, 0x63, 0x0c, 0x52, 0x8a, 0x31, 0x86, 0x29, 0x65, 0x41, 0xe8, 0x5a, 0xab, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xe7, 0x31, 0x66, 0x42, 0x08, 0x4a, 0x49, 0x41, 0xe8, 0x42, 0x08, 0x4a, 0x49, 0x41, 0xe8, 0x42, 0x08, 0x42, 0x08, 0x31, 0x66, 0x39, 0xe7, 0x41, 0xe8, 0x42, 0x08, 0x5a, 0xab, 0x31, 0xa6, 0x31, 0x66, 0x31, 0xa6, 0x52, 0xaa, 0x63, 0x0c, 0x39, 0xe7, 0x39, 0xc7, 0x62, 0xec, 0x39, 0xc7, 0x4a, 0x29, 0x42, 0x08, 0x31, 0x66, 0x52, 0x6a, 0x52, 0x8a, 0x31, 0x86, 0x52, 0xaa,
0x31, 0x86, 0x31, 0x86, 0x39, 0xa7, 0x52, 0x6a, 0x5a, 0xab, 0x52, 0x8a, 0x5a, 0xcb, 0x5a, 0xcb, 0x39, 0xe7, 0x39, 0xa7, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x31, 0x66, 0x39, 0xe7, 0x52, 0x8a, 0x4a, 0x69, 0x4a, 0x49, 0x52, 0x8a, 0x42, 0x28, 0x31, 0x86, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x31, 0x86, 0x31, 0xa6, 0x42, 0x28, 0x52, 0x6a, 0x4a, 0x49, 0x4a, 0x69, 0x52, 0x6a, 0x39, 0xc7, 0x31, 0x66, 0x31, 0x86, 0x31, 0x66, 0x31, 0xa6, 0x5a, 0xcb, 0x5a, 0xcb, 0x31, 0xa6, 0x42, 0x08, 0x5a, 0xcb, 0x52, 0xaa, 0x52, 0x8a, 0x5a, 0xcb, 0x4a, 0x49, 0x39, 0xa7, 0x31, 0x86, 0x31, 0x86,
0x52, 0xaa, 0x41, 0xe8, 0x52, 0xaa, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xa7, 0x39, 0xa7, 0x31, 0xa6, 0x41, 0xe8, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x28, 0x42, 0x08, 0x42, 0x08, 0x31, 0x86, 0x31, 0x66, 0x39, 0xa7, 0x39, 0xe7, 0x39, 0xc7, 0x41, 0xe8, 0x4a, 0x69, 0x39, 0xc7, 0x42, 0x28, 0x42, 0x28, 0x31, 0xa6, 0x4a, 0x49, 0x41, 0xe8, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0xa6, 0x31, 0x66, 0x39, 0xa7, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xc7, 0x5a, 0xcb, 0x5a, 0xcb, 0x39, 0xe7, 0x31, 0xa6, 0x39, 0xa7, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x28, 0x5a, 0xcb, 0x39, 0xc7, 0x52, 0xaa,
0x42, 0x08, 0x4a, 0x69, 0x4a, 0x29, 0x4a, 0x29, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x69, 0x5a, 0xab, 0x4a, 0x49, 0x31, 0x86, 0x31, 0xa6, 0x42, 0x28, 0x39, 0xa7, 0x39, 0xe7, 0x39, 0xe7, 0x42, 0x08, 0x29, 0x65, 0x31, 0x86, 0x4a, 0x29, 0x42, 0x08, 0x52, 0x6a, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x42, 0x08, 0x4a, 0x29, 0x41, 0xe8, 0x4a, 0x49, 0x42, 0x28, 0x4a, 0x49, 0x31, 0x86, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xe7, 0x39, 0xc7, 0x42, 0x28, 0x31, 0x66, 0x39, 0xa7, 0x4a, 0x49, 0x5a, 0xab, 0x4a, 0x69, 0x31, 0x66, 0x42, 0x08, 0x4a, 0x49, 0x52, 0x8a, 0x41, 0xe8, 0x4a, 0x69, 0x42, 0x08,
0x31, 0x66, 0x4a, 0x69, 0x39, 0xc7, 0x52, 0x8a, 0x39, 0xa7, 0x4a, 0x69, 0x42, 0x28, 0x31, 0x86, 0x31, 0x86, 0x31, 0x66, 0x29, 0x65, 0x42, 0x08, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xa7, 0x4a, 0x29, 0x31, 0x66, 0x39, 0xe7, 0x4a, 0x49, 0x31, 0x86, 0x52, 0x6a, 0x31, 0xa6, 0x4a, 0x29, 0x31, 0x86, 0x31, 0x66, 0x4a, 0x69, 0x39, 0xc7, 0x4a, 0x29, 0x31, 0x86, 0x4a, 0x49, 0x41, 0xe8, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xa7, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x31, 0x86, 0x4a, 0x49, 0x52, 0x6a, 0x41, 0xe8, 0x4a, 0x49, 0x31, 0xa6, 0x5a, 0xab, 0x29, 0x65,
0x4a, 0x69, 0x4a, 0x29, 0x39, 0xc7, 0x39, 0xc7, 0x5a, 0xab, 0x39, 0xe7, 0x52, 0xaa, 0x39, 0xc7, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x42, 0x28, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x66, 0x39, 0xe7, 0x52, 0x8a, 0x52, 0x8a, 0x4a, 0x49, 0x31, 0xa6, 0x4a, 0x49, 0x39, 0xc7, 0x39, 0xe7, 0x4a, 0x29, 0x39, 0xe7, 0x4a, 0x49, 0x4a, 0x69, 0x52, 0x8a, 0x41, 0xe8, 0x29, 0x65, 0x42, 0x28, 0x39, 0xe7, 0x42, 0x08, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xe7, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x39, 0xe7, 0x5a, 0xcb, 0x39, 0xc7, 0x52, 0x8a, 0x39, 0xc7, 0x39, 0xc7, 0x52, 0xaa, 0x42, 0x28,
0x52, 0x6a, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0x86, 0x41, 0xe8, 0x5a, 0xcb, 0x62, 0xec, 0x42, 0x28, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x42, 0x28, 0x42, 0x08, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0x66, 0x31, 0x66, 0x31, 0x86, 0x42, 0x08, 0x39, 0xe7, 0x31, 0x66, 0x31, 0xa6, 0x4a, 0x49, 0x4a, 0x29, 0x41, 0xe8, 0x4a, 0x69, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xe7, 0x41, 0xe8, 0x31, 0x86, 0x29, 0x65, 0x31, 0x86, 0x39, 0xe7, 0x39, 0xc7, 0x31, 0xa6, 0x4a, 0x29, 0x41, 0xe8, 0x31, 0x86, 0x31, 0x66, 0x29, 0x65, 0x52, 0x8a, 0x5a, 0xeb, 0x52, 0xaa, 0x41, 0xe8, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xcb, 0x4a, 0x49,
0x42, 0x08, 0x52, 0xaa, 0x31, 0xa6, 0x5a, 0xab, 0x31, 0x66, 0x39, 0xa7, 0x4a, 0x49, 0x41, 0xe8, 0x31, 0x66, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x28, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x66, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x4a, 0x49, 0x42, 0x08, 0x42, 0x08, 0x52, 0x8a, 0x31, 0x66, 0x31, 0x86, 0x31, 0x86, 0x31, 0x66, 0x29, 0x65, 0x31, 0x86, 0x41, 0xe8, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x42, 0x08, 0x39, 0xc7, 0x31, 0x66, 0x4a, 0x29, 0x42, 0x28, 0x31, 0xa6, 0x39, 0xc7, 0x4a, 0x69, 0x31, 0x86, 0x5a, 0xcb, 0x42, 0x08,
0x5a, 0xeb, 0x41, 0xe8, 0x42, 0x08, 0x5a, 0xeb, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x42, 0x08, 0x4a, 0x29, 0x39, 0xa7, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x49, 0x39, 0xe7, 0x31, 0x86, 0x42, 0x08, 0x42, 0x08, 0x4a, 0x29, 0x39, 0xa7, 0x39, 0xe7, 0x52, 0xaa, 0x5a, 0xab, 0x39, 0xc7, 0x39, 0xa7, 0x42, 0x08, 0x42, 0x08, 0x42, 0x28, 0x31, 0x86, 0x41, 0xe8, 0x4a, 0x29, 0x39, 0xa7, 0x31, 0x86, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xe7, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x39, 0xc7, 0x5a, 0xeb, 0x39, 0xa7, 0x42, 0x08, 0x63, 0x0c,
0x39, 0xa7, 0x39, 0xc7, 0x5a, 0xeb, 0x4a, 0x49, 0x31, 0x66, 0x31, 0x66, 0x29, 0x65, 0x39, 0xc7, 0x4a, 0x49, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x29, 0x31, 0xa6, 0x39, 0xe7, 0x4a, 0x29, 0x39, 0xa7, 0x41, 0xe8, 0x39, 0xc7, 0x39, 0xa7, 0x4a, 0x29, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xa7, 0x31, 0x66, 0x42, 0x28, 0x39, 0xc7, 0x31, 0xa6, 0x39, 0xe7, 0x39, 0xe7, 0x42, 0x28, 0x39, 0xa7, 0x39, 0xa7, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x4a, 0x49, 0x39, 0xa7, 0x31, 0xa6, 0x4a, 0x29, 0x31, 0xa6, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x52, 0x8a, 0x5a, 0xcb, 0x31, 0x86, 0x31, 0xa6,
0x41, 0xe8, 0x5a, 0xcb, 0x5a, 0xab, 0x31, 0x86, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x4a, 0x29, 0x39, 0xa7, 0x31, 0xa6, 0x4a, 0x49, 0x39, 0xa7, 0x31, 0x86, 0x31, 0x86, 0x42, 0x08, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x39, 0xa7, 0x42, 0x08, 0x4a, 0x29, 0x31, 0x86, 0x42, 0x28, 0x31, 0x86, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x42, 0x08, 0x39, 0xe7, 0x42, 0x08, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x41, 0xe8, 0x31, 0x66, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x49, 0x31, 0xa6, 0x39, 0xe7, 0x42, 0x08, 0x31, 0x66, 0x31, 0x66, 0x31, 0x66, 0x31, 0xa6, 0x5a, 0xcb, 0x5a, 0xcb, 0x41, 0xe8,
0x63, 0x2c, 0x52, 0xaa, 0x39, 0xa7, 0x39, 0xa7, 0x39, 0xe7, 0x41, 0xe8, 0x42, 0x08, 0x4a, 0x29, 0x31, 0x66, 0x42, 0x28, 0x39, 0xc7, 0x39, 0xc7, 0x41, 0xe8, 0x39, 0xc7, 0x31, 0x86, 0x42, 0x28, 0x31, 0x86, 0x4a, 0x49, 0x31, 0xa6, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0xc7, 0x42, 0x28, 0x31, 0x66, 0x39, 0xc7, 0x31, 0x86, 0x31, 0x66, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xe7, 0x39, 0xc7, 0x31, 0xa6, 0x42, 0x08, 0x31, 0xa6, 0x4a, 0x49, 0x31, 0x66, 0x39, 0xc7, 0x41, 0xe8, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x31, 0xa6, 0x4a, 0x49, 0x42, 0x08, 0x42, 0x08, 0x39, 0xe7, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xcb, 0x63, 0x2c,
0x52, 0x8a, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xa7, 0x42, 0x08, 0x42, 0x08, 0x31, 0x66, 0x4a, 0x49, 0x31, 0xa6, 0x42, 0x08, 0x31, 0xa6, 0x42, 0x28, 0x31, 0x86, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x4a, 0x29, 0x39, 0xe7, 0x42, 0x08, 0x42, 0x08, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xcb, 0x52, 0xaa, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x66, 0x4a, 0x29, 0x31, 0x86, 0x4a, 0x49, 0x42, 0x08, 0x39, 0xa7, 0x39, 0xc7, 0x4a, 0x29, 0x31, 0xa6, 0x31, 0xa6, 0x52, 0x8a,
0x31, 0x86, 0x31, 0x86, 0x42, 0x08, 0x31, 0xa6, 0x42, 0x08, 0x41, 0xe8, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x31, 0xa6, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xa7, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x4a, 0x49, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0xa7, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xeb, 0x63, 0x0c, 0x63, 0x0c, 0x5a, 0xcb, 0x39, 0xc7, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xe7, 0x41, 0xe8, 0x42, 0x28, 0x31, 0x86, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0xa6, 0x42, 0x08, 0x39, 0xa7, 0x31, 0x86, 0x4a, 0x29, 0x31, 0xa6, 0x4a, 0x29, 0x31, 0x86, 0x42, 0x08, 0x39, 0xe7, 0x39, 0xc7, 0x42, 0x28, 0x29, 0x65, 0x31, 0x86,
0x31, 0x66, 0x31, 0xa6, 0x41, 0xe8, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xc7, 0x41, 0xe8, 0x42, 0x28, 0x31, 0x66, 0x42, 0x28, 0x42, 0x08, 0x31, 0x86, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x49, 0x31, 0xa6, 0x41, 0xe8, 0x42, 0x08, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x31, 0x86, 0x62, 0xec, 0x5a, 0xcb, 0x39, 0xc7, 0x39, 0xe7, 0x5a, 0xeb, 0x5a, 0xcb, 0x31, 0xa6, 0x31, 0x66, 0x29, 0x65, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xa7, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0x86, 0x31, 0x86, 0x42, 0x28, 0x42, 0x08, 0x31, 0xa6, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x08, 0x39, 0xa7, 0x4a, 0x49, 0x31, 0x66, 0x31, 0x66,
0x41, 0xe8, 0x31, 0x86, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xe7, 0x39, 0xc7, 0x39, 0xc7, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x29, 0x4a, 0x29, 0x42, 0x08, 0x31, 0xa6, 0x39, 0xa7, 0x4a, 0x49, 0x31, 0xa6, 0x29, 0x65, 0x31, 0x66, 0x29, 0x65, 0x52, 0x8a, 0x5a, 0xcb, 0x31, 0xa6, 0x39, 0xe7, 0x39, 0xc7, 0x31, 0xa6, 0x5a, 0xcb, 0x4a, 0x49, 0x31, 0x66, 0x29, 0x65, 0x31, 0x66, 0x39, 0xc7, 0x4a, 0x29, 0x31, 0x86, 0x39, 0xa7, 0x42, 0x08, 0x4a, 0x29, 0x4a, 0x29, 0x42, 0x08, 0x31, 0x86, 0x42, 0x08, 0x41, 0xe8, 0x39, 0xc7, 0x42, 0x08, 0x39, 0xc7, 0x41, 0xe8, 0x42, 0x08, 0x31, 0x66, 0x42, 0x08,
0x52, 0x8a, 0x42, 0x08, 0x31, 0xa6, 0x41, 0xe8, 0x41, 0xe8, 0x41, 0xe8, 0x31, 0x86, 0x39, 0xe7, 0x4a, 0x49, 0x41, 0xe8, 0x31, 0xa6, 0x31, 0x86, 0x31, 0x86, 0x31, 0xa6, 0x41, 0xe8, 0x4a, 0x29, 0x39, 0xc7, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x31, 0xa6, 0x63, 0x0c, 0x39, 0xc7, 0x42, 0x08, 0x5a, 0xeb, 0x62, 0xec, 0x42, 0x08, 0x41, 0xe8, 0x5a, 0xab, 0x31, 0x86, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x39, 0xe7, 0x4a, 0x49, 0x39, 0xe7, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08, 0x4a, 0x49, 0x39, 0xa7, 0x31, 0x86, 0x41, 0xe8, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x86, 0x42, 0x08, 0x52, 0xaa,
0x39, 0xc7, 0x4a, 0x69, 0x31, 0x86, 0x31, 0x66, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x39, 0xc7, 0x42, 0x08, 0x42, 0x08, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x49, 0x42, 0x08, 0x31, 0xa6, 0x29, 0x65, 0x4a, 0x49, 0x52, 0x8a, 0x39, 0xa7, 0x31, 0xa6, 0x52, 0xaa, 0x31, 0x86, 0x52, 0x8a, 0x41, 0xe8, 0x39, 0xc7, 0x5a, 0xcb, 0x31, 0xa6, 0x4a, 0x69, 0x31, 0x86, 0x39, 0xc7, 0x52, 0x8a, 0x4a, 0x29, 0x31, 0x66, 0x31, 0xa6, 0x42, 0x08, 0x4a, 0x29, 0x4a, 0x49, 0x4a, 0x29, 0x42, 0x08, 0x41, 0xe8, 0x39, 0xa7, 0x31, 0x66, 0x29, 0x65, 0x29, 0x65, 0x31, 0x86, 0x31, 0x66, 0x31, 0x86, 0x52, 0x8a, 0x39, 0xc7,
0x4a, 0x49, 0x42, 0x08, 0x39, 0xc7, 0x31, 0x86, 0x42, 0x08, 0x42, 0x28, 0x31, 0xa6, 0x31, 0x66, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0x86, 0x42, 0x28, 0x42, 0x08, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x4a, 0x49, 0x62, 0xec, 0x5a, 0xcb, 0x41, 0xe8, 0x31, 0x86, 0x31, 0xa6, 0x52, 0x8a, 0x52, 0x8a, 0x42, 0x28, 0x5a, 0xab, 0x39, 0xa7, 0x31, 0x66, 0x4a, 0x49, 0x5a, 0xeb, 0x5a, 0xeb, 0x42, 0x28, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x42, 0x08, 0x41, 0xe8, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0x86, 0x29, 0x65, 0x31, 0xa6, 0x42, 0x28, 0x41, 0xe8, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x69, 0x42, 0x28,
0x39, 0xe7, 0x42, 0x08, 0x39, 0xc7, 0x4a, 0x69, 0x4a, 0x69, 0x4a, 0x69, 0x42, 0x08, 0x29, 0x65, 0x4a, 0x29, 0x41, 0xe8, 0x42, 0x08, 0x39, 0xc7, 0x39, 0xc7, 0x42, 0x08, 0x29, 0x45, 0x29, 0x65, 0x29, 0x65, 0x31, 0x86, 0x5a, 0xab, 0x41, 0xe8, 0x52, 0xaa, 0x39, 0xc7, 0x31, 0xa6, 0x52, 0x8a, 0x42, 0x08, 0x42, 0x08, 0x52, 0x8a, 0x39, 0xa7, 0x42, 0x28, 0x52, 0x6a, 0x39, 0xc7, 0x5a, 0xab, 0x31, 0xa6, 0x29, 0x65, 0x29, 0x65, 0x31, 0x66, 0x42, 0x08, 0x31, 0xa6, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08, 0x41, 0xe8, 0x29, 0x65, 0x42, 0x28, 0x52, 0x8a, 0x52, 0x6a, 0x42, 0x08, 0x39, 0xe7, 0x4a, 0x49, 0x39, 0xa7,
0x31, 0x86, 0x4a, 0x29, 0x39, 0xe7, 0x42, 0x28, 0x31, 0x86, 0x4a, 0x49, 0x41, 0xe8, 0x31, 0x86, 0x4a, 0x49, 0x31, 0x86, 0x42, 0x08, 0x31, 0xa6, 0x42, 0x08, 0x39, 0xc7, 0x29, 0x65, 0x31, 0x66, 0x39, 0xc7, 0x39, 0xc7, 0x39, 0xe7, 0x52, 0x6a, 0x39, 0xe7, 0x52, 0x8a, 0x39, 0xa7, 0x52, 0x6a, 0x31, 0x86, 0x31, 0x66, 0x5a, 0xcb, 0x39, 0xc7, 0x4a, 0x49, 0x39, 0xe7, 0x52, 0xaa, 0x41, 0xe8, 0x39, 0xc7, 0x39, 0xc7, 0x29, 0x65, 0x31, 0x66, 0x39, 0xe7, 0x39, 0xc7, 0x41, 0xe8, 0x42, 0x08, 0x39, 0xc7, 0x42, 0x08, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x69, 0x31, 0xa6, 0x4a, 0x49, 0x31, 0xa6, 0x52, 0x6a, 0x29, 0x65,
0x42, 0x28, 0x42, 0x08, 0x42, 0x28, 0x52, 0x6a, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x31, 0x66, 0x4a, 0x29, 0x39, 0xe7, 0x31, 0xa6, 0x39, 0xe7, 0x4a, 0x29, 0x31, 0x66, 0x39, 0xa7, 0x52, 0xaa, 0x5a, 0xcb, 0x4a, 0x69, 0x31, 0x86, 0x39, 0xc7, 0x4a, 0x69, 0x4a, 0x49, 0x4a, 0x49, 0x42, 0x28, 0x4a, 0x29, 0x4a, 0x69, 0x4a, 0x29, 0x42, 0x28, 0x52, 0x8a, 0x4a, 0x49, 0x39, 0xa7, 0x31, 0x86, 0x52, 0x6a, 0x5a, 0xcb, 0x52, 0x8a, 0x31, 0xa6, 0x31, 0x86, 0x42, 0x28, 0x39, 0xc7, 0x39, 0xa7, 0x41, 0xe8, 0x41, 0xe8, 0x31, 0x66, 0x31, 0x86, 0x42, 0x08, 0x4a, 0x49, 0x52, 0xaa, 0x39, 0xe7, 0x42, 0x08, 0x42, 0x28,
0x42, 0x28, 0x39, 0xa7, 0x4a, 0x49, 0x39, 0xc7, 0x31, 0xa6, 0x39, 0xe7, 0x39, 0xc7, 0x31, 0x86, 0x31, 0x86, 0x42, 0x28, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x39, 0xa7, 0x62, 0xec, 0x5a, 0xab, 0x31, 0xa6, 0x31, 0x86, 0x39, 0xa7, 0x39, 0xc7, 0x31, 0x86, 0x42, 0x08, 0x5a, 0xcb, 0x41, 0xe8, 0x52, 0xaa, 0x52, 0x8a, 0x39, 0xa7, 0x5a, 0xcb, 0x39, 0xe7, 0x31, 0xa6, 0x39, 0xc7, 0x39, 0xa7, 0x31, 0x86, 0x39, 0xc7, 0x5a, 0xcb, 0x5a, 0xcb, 0x39, 0xa7, 0x31, 0xa6, 0x42, 0x28, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x86, 0x31, 0x86, 0x39, 0xc7, 0x39, 0xc7, 0x31, 0xa6, 0x39, 0xe7, 0x52, 0x6a, 0x31, 0x86, 0x42, 0x08,
0x42, 0x08, 0x31, 0xa6, 0x31, 0x86, 0x4a, 0x29, 0x4a, 0x69, 0x4a, 0x49, 0x4a, 0x69, 0x52, 0x8a, 0x42, 0x08, 0x29, 0x65, 0x29, 0x65, 0x29, 0x65, 0x31, 0xa6, 0x5a, 0xeb, 0x5a, 0xab, 0x31, 0xa6, 0x42, 0x28, 0x5a, 0xcb, 0x5a, 0xcb, 0x52, 0xaa, 0x5a, 0xcb, 0x4a, 0x49, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xa6, 0x31, 0x86, 0x31, 0xa6, 0x39, 0xc7, 0x4a, 0x69, 0x5a, 0xab, 0x5a, 0xab, 0x5a, 0xcb, 0x5a, 0xcb, 0x41, 0xe8, 0x31, 0xa6, 0x5a, 0xeb, 0x5a, 0xab, 0x31, 0xa6, 0x31, 0x66, 0x29, 0x65, 0x31, 0x66, 0x42, 0x08, 0x52, 0x8a, 0x4a, 0x69, 0x4a, 0x49, 0x52, 0x6a, 0x42, 0x08, 0x31, 0xa6, 0x31, 0xa6, 0x42, 0x08,
0x41, 0xe8, 0x4a, 0x29, 0x4a, 0x29, 0x39, 0xe7, 0x29, 0x65, 0x39, 0xc7, 0x42, 0x08, 0x41, 0xe8, 0x5a, 0xab, 0x41, 0xe8, 0x29, 0x65, 0x39, 0xa7, 0x5a, 0xcb, 0x63, 0x0c, 0x41, 0xe8, 0x41, 0xe8, 0x63, 0x0c, 0x39, 0xc7, 0x4a, 0x49, 0x42, 0x08, 0x31, 0x66, 0x42, 0x28, 0x5a, 0xcb, 0x39, 0xc7, 0x4a, 0x49, 0x52, 0xaa, 0x31, 0x86, 0x52, 0xaa, 0x42, 0x08, 0x29, 0x65, 0x42, 0x28, 0x4a, 0x49, 0x42, 0x28, 0x62, 0xec, 0x31, 0xa6, 0x41, 0xe8, 0x63, 0x2c, 0x52, 0x8a, 0x31, 0x86, 0x31, 0x66, 0x41, 0xe8, 0x52, 0xaa, 0x39, 0xc7, 0x42, 0x28, 0x39, 0xa7, 0x31, 0x66, 0x4a, 0x29, 0x42, 0x08, 0x42, 0x08, 0x42, 0x08,
#endif
#if LV_COLOR_DEPTH == 32
/*Pixel format: Fix 0xFF: 8 bit, Red: 8 bit, Green: 8 bit, Blue: 8 bit*/
0x39, 0x39, 0x39, 0xff, 0x46, 0x46, 0x46, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x54, 0x54, 0x54, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x36, 0x36, 0x36, 0xff, 0x57, 0x57, 0x57, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x38, 0x38, 0x38, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x58, 0x58, 0x58, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x47, 0x47, 0x47, 0xff, 0x53, 0x53, 0x53, 0xff, 0x32, 0x32, 0x32, 0xff, 0x55, 0x55, 0x55, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x62, 0x62, 0x62, 0xff, 0x52, 0x52, 0x52, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x52, 0x52, 0x52, 0xff, 0x38, 0x38, 0x38, 0xff, 0x49, 0x49, 0x49, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x42, 0x42, 0x42, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3d, 0x3d, 0x3d, 0xff,
0x46, 0x46, 0x46, 0xff, 0x34, 0x34, 0x34, 0xff, 0x35, 0x35, 0x35, 0xff, 0x45, 0x45, 0x45, 0xff, 0x45, 0x45, 0x45, 0xff, 0x40, 0x40, 0x40, 0xff, 0x44, 0x44, 0x44, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x32, 0x32, 0x32, 0xff, 0x57, 0x57, 0x57, 0xff, 0x57, 0x57, 0x57, 0xff, 0x36, 0x36, 0x36, 0xff, 0x45, 0x45, 0x45, 0xff, 0x54, 0x54, 0x54, 0xff, 0x47, 0x47, 0x47, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x36, 0x36, 0x36, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x46, 0x46, 0x46, 0xff, 0x49, 0x49, 0x49, 0xff, 0x54, 0x54, 0x54, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x54, 0x54, 0x54, 0xff, 0x32, 0x32, 0x32, 0xff, 0x30, 0x30, 0x30, 0xff, 0x31, 0x31, 0x31, 0xff, 0x31, 0x31, 0x31, 0xff, 0x41, 0x41, 0x41, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x42, 0x42, 0x42, 0xff, 0x41, 0x41, 0x41, 0xff, 0x45, 0x45, 0x45, 0xff, 0x42, 0x42, 0x42, 0xff, 0x35, 0x35, 0x35, 0xff, 0x33, 0x33, 0x33, 0xff, 0x45, 0x45, 0x45, 0xff,
0x46, 0x46, 0x46, 0xff, 0x37, 0x37, 0x37, 0xff, 0x46, 0x46, 0x46, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x39, 0x39, 0x39, 0xff, 0x37, 0x37, 0x37, 0xff, 0x31, 0x31, 0x31, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x33, 0x33, 0x33, 0xff, 0x36, 0x36, 0x36, 0xff, 0x56, 0x56, 0x56, 0xff, 0x58, 0x58, 0x58, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x44, 0x44, 0x44, 0xff, 0x52, 0x52, 0x52, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x51, 0x51, 0x51, 0xff, 0x52, 0x52, 0x52, 0xff, 0x36, 0x36, 0x36, 0xff, 0x53, 0x53, 0x53, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x34, 0x34, 0x34, 0xff, 0x41, 0x41, 0x41, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x55, 0x55, 0x55, 0xff, 0x35, 0x35, 0x35, 0xff, 0x38, 0x38, 0x38, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x40, 0x40, 0x40, 0xff, 0x33, 0x33, 0x33, 0xff, 0x33, 0x33, 0x33, 0xff, 0x39, 0x39, 0x39, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x49, 0x49, 0x49, 0xff, 0x32, 0x32, 0x32, 0xff, 0x44, 0x44, 0x44, 0xff,
0x3a, 0x3a, 0x3a, 0xff, 0x46, 0x46, 0x46, 0xff, 0x42, 0x42, 0x42, 0xff, 0x44, 0x44, 0x44, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x36, 0x36, 0x36, 0xff, 0x37, 0x37, 0x37, 0xff, 0x35, 0x35, 0x35, 0xff, 0x47, 0x47, 0x47, 0xff, 0x30, 0x30, 0x30, 0xff, 0x33, 0x33, 0x33, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x57, 0x57, 0x57, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x45, 0x45, 0x45, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x40, 0x40, 0x40, 0xff, 0x46, 0x46, 0x46, 0xff, 0x51, 0x51, 0x51, 0xff, 0x38, 0x38, 0x38, 0xff, 0x33, 0x33, 0x33, 0xff, 0x56, 0x56, 0x56, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x47, 0x47, 0x47, 0xff, 0x33, 0x33, 0x33, 0xff, 0x36, 0x36, 0x36, 0xff, 0x41, 0x41, 0x41, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x30, 0x30, 0x30, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3d, 0x3d, 0x3d, 0xff,
0x30, 0x30, 0x30, 0xff, 0x44, 0x44, 0x44, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x47, 0x47, 0x47, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x46, 0x46, 0x46, 0xff, 0x33, 0x33, 0x33, 0xff, 0x48, 0x48, 0x48, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x51, 0x51, 0x51, 0xff, 0x36, 0x36, 0x36, 0xff, 0x55, 0x55, 0x55, 0xff, 0x33, 0x33, 0x33, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x56, 0x56, 0x56, 0xff, 0x38, 0x38, 0x38, 0xff, 0x49, 0x49, 0x49, 0xff, 0x35, 0x35, 0x35, 0xff, 0x59, 0x59, 0x59, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x30, 0x30, 0x30, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x37, 0x37, 0x37, 0xff, 0x40, 0x40, 0x40, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x31, 0x31, 0x31, 0xff, 0x48, 0x48, 0x48, 0xff, 0x32, 0x32, 0x32, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x2d, 0x2d, 0x2d, 0xff,
0x3d, 0x3d, 0x3d, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x49, 0x49, 0x49, 0xff, 0x48, 0x48, 0x48, 0xff, 0x48, 0x48, 0x48, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x35, 0x35, 0x35, 0xff, 0x39, 0x39, 0x39, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x33, 0x33, 0x33, 0xff, 0x57, 0x57, 0x57, 0xff, 0x40, 0x40, 0x40, 0xff, 0x51, 0x51, 0x51, 0xff, 0x39, 0x39, 0x39, 0xff, 0x34, 0x34, 0x34, 0xff, 0x50, 0x50, 0x50, 0xff, 0x40, 0x40, 0x40, 0xff, 0x40, 0x40, 0x40, 0xff, 0x52, 0x52, 0x52, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x59, 0x59, 0x59, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x42, 0x42, 0x42, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x49, 0x49, 0x49, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x49, 0x49, 0x49, 0xff, 0x39, 0x39, 0x39, 0xff,
0x44, 0x44, 0x44, 0xff, 0x42, 0x42, 0x42, 0xff, 0x38, 0x38, 0x38, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x36, 0x36, 0x36, 0xff, 0x45, 0x45, 0x45, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x61, 0x61, 0x61, 0xff, 0x52, 0x52, 0x52, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x36, 0x36, 0x36, 0xff, 0x34, 0x34, 0x34, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x40, 0x40, 0x40, 0xff, 0x57, 0x57, 0x57, 0xff, 0x35, 0x35, 0x35, 0xff, 0x32, 0x32, 0x32, 0xff, 0x46, 0x46, 0x46, 0xff, 0x53, 0x53, 0x53, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x42, 0x42, 0x42, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x3e, 0x3e, 0x3e, 0xff,
0x3c, 0x3c, 0x3c, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x44, 0x44, 0x44, 0xff, 0x41, 0x41, 0x41, 0xff, 0x44, 0x44, 0x44, 0xff, 0x47, 0x47, 0x47, 0xff, 0x46, 0x46, 0x46, 0xff, 0x37, 0x37, 0x37, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x43, 0x43, 0x43, 0xff, 0x45, 0x45, 0x45, 0xff, 0x33, 0x33, 0x33, 0xff, 0x35, 0x35, 0x35, 0xff, 0x54, 0x54, 0x54, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x52, 0x52, 0x52, 0xff, 0x41, 0x41, 0x41, 0xff, 0x43, 0x43, 0x43, 0xff, 0x59, 0x59, 0x59, 0xff, 0x33, 0x33, 0x33, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x31, 0x31, 0x31, 0xff, 0x36, 0x36, 0x36, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x46, 0x46, 0x46, 0xff, 0x47, 0x47, 0x47, 0xff, 0x43, 0x43, 0x43, 0xff, 0x41, 0x41, 0x41, 0xff, 0x44, 0x44, 0x44, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x30, 0x30, 0x30, 0xff, 0x50, 0x50, 0x50, 0xff, 0x3e, 0x3e, 0x3e, 0xff,
0x54, 0x54, 0x54, 0xff, 0x40, 0x40, 0x40, 0xff, 0x33, 0x33, 0x33, 0xff, 0x45, 0x45, 0x45, 0xff, 0x47, 0x47, 0x47, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x37, 0x37, 0x37, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x38, 0x38, 0x38, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x40, 0x40, 0x40, 0xff, 0x60, 0x60, 0x60, 0xff, 0x60, 0x60, 0x60, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x56, 0x56, 0x56, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x40, 0x40, 0x40, 0xff, 0x49, 0x49, 0x49, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x37, 0x37, 0x37, 0xff, 0x30, 0x30, 0x30, 0xff, 0x45, 0x45, 0x45, 0xff, 0x49, 0x49, 0x49, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x56, 0x56, 0x56, 0xff,
0x3e, 0x3e, 0x3e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x42, 0x42, 0x42, 0xff, 0x37, 0x37, 0x37, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x45, 0x45, 0x45, 0xff, 0x36, 0x36, 0x36, 0xff, 0x30, 0x30, 0x30, 0xff, 0x43, 0x43, 0x43, 0xff, 0x48, 0x48, 0x48, 0xff, 0x47, 0x47, 0x47, 0xff, 0x43, 0x43, 0x43, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x48, 0x48, 0x48, 0xff, 0x35, 0x35, 0x35, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x51, 0x51, 0x51, 0xff, 0x59, 0x59, 0x59, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x38, 0x38, 0x38, 0xff, 0x34, 0x34, 0x34, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x39, 0x39, 0x39, 0xff, 0x46, 0x46, 0x46, 0xff, 0x31, 0x31, 0x31, 0xff, 0x34, 0x34, 0x34, 0xff, 0x42, 0x42, 0x42, 0xff, 0x47, 0x47, 0x47, 0xff, 0x48, 0x48, 0x48, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x3d, 0x3d, 0x3d, 0xff,
0x2b, 0x2b, 0x2b, 0xff, 0x32, 0x32, 0x32, 0xff, 0x40, 0x40, 0x40, 0xff, 0x37, 0x37, 0x37, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x32, 0x32, 0x32, 0xff, 0x59, 0x59, 0x59, 0xff, 0x57, 0x57, 0x57, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x58, 0x58, 0x58, 0xff, 0x56, 0x56, 0x56, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x30, 0x30, 0x30, 0xff, 0x43, 0x43, 0x43, 0xff, 0x35, 0x35, 0x35, 0xff, 0x36, 0x36, 0x36, 0xff, 0x47, 0x47, 0x47, 0xff, 0x39, 0x39, 0x39, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x41, 0x41, 0x41, 0xff, 0x34, 0x34, 0x34, 0xff, 0x40, 0x40, 0x40, 0xff, 0x39, 0x39, 0x39, 0xff, 0x41, 0x41, 0x41, 0xff, 0x43, 0x43, 0x43, 0xff, 0x35, 0x35, 0x35, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff,
0x33, 0x33, 0x33, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x35, 0x35, 0x35, 0xff, 0x37, 0x37, 0x37, 0xff, 0x35, 0x35, 0x35, 0xff, 0x36, 0x36, 0x36, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x48, 0x48, 0x48, 0xff, 0x34, 0x34, 0x34, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x43, 0x43, 0x43, 0xff, 0x43, 0x43, 0x43, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x36, 0x36, 0x36, 0xff, 0x57, 0x57, 0x57, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x61, 0x61, 0x61, 0xff, 0x54, 0x54, 0x54, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x40, 0x40, 0x40, 0xff, 0x42, 0x42, 0x42, 0xff, 0x44, 0x44, 0x44, 0xff, 0x43, 0x43, 0x43, 0xff, 0x31, 0x31, 0x31, 0xff, 0x48, 0x48, 0x48, 0xff, 0x36, 0x36, 0x36, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x36, 0x36, 0x36, 0xff, 0x31, 0x31, 0x31, 0xff, 0x46, 0x46, 0x46, 0xff, 0x33, 0x33, 0x33, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x34, 0x34, 0x34, 0xff,
0x57, 0x57, 0x57, 0xff, 0x31, 0x31, 0x31, 0xff, 0x34, 0x34, 0x34, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x38, 0x38, 0x38, 0xff, 0x45, 0x45, 0x45, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x47, 0x47, 0x47, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x32, 0x32, 0x32, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x48, 0x48, 0x48, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x39, 0x39, 0x39, 0xff, 0x46, 0x46, 0x46, 0xff, 0x35, 0x35, 0x35, 0xff, 0x33, 0x33, 0x33, 0xff, 0x57, 0x57, 0x57, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x38, 0x38, 0x38, 0xff, 0x44, 0x44, 0x44, 0xff, 0x37, 0x37, 0x37, 0xff, 0x35, 0x35, 0x35, 0xff, 0x44, 0x44, 0x44, 0xff, 0x42, 0x42, 0x42, 0xff, 0x33, 0x33, 0x33, 0xff, 0x48, 0x48, 0x48, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x46, 0x46, 0x46, 0xff, 0x33, 0x33, 0x33, 0xff, 0x48, 0x48, 0x48, 0xff, 0x43, 0x43, 0x43, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x44, 0x44, 0x44, 0xff, 0x31, 0x31, 0x31, 0xff, 0x33, 0x33, 0x33, 0xff, 0x56, 0x56, 0x56, 0xff,
0x5e, 0x5e, 0x5e, 0xff, 0x57, 0x57, 0x57, 0xff, 0x35, 0x35, 0x35, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x42, 0x42, 0x42, 0xff, 0x44, 0x44, 0x44, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x41, 0x41, 0x41, 0xff, 0x39, 0x39, 0x39, 0xff, 0x39, 0x39, 0x39, 0xff, 0x43, 0x43, 0x43, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x32, 0x32, 0x32, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x46, 0x46, 0x46, 0xff, 0x32, 0x32, 0x32, 0xff, 0x37, 0x37, 0x37, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34, 0x34, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x42, 0x42, 0x42, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x37, 0x37, 0x37, 0xff, 0x33, 0x33, 0x33, 0xff, 0x40, 0x40, 0x40, 0xff, 0x34, 0x34, 0x34, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x35, 0x35, 0x35, 0xff, 0x39, 0x39, 0x39, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x47, 0x47, 0x47, 0xff, 0x41, 0x41, 0x41, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x5f, 0x5f, 0x5f, 0xff,
0x41, 0x41, 0x41, 0xff, 0x57, 0x57, 0x57, 0xff, 0x56, 0x56, 0x56, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x38, 0x38, 0x38, 0xff, 0x33, 0x33, 0x33, 0xff, 0x45, 0x45, 0x45, 0xff, 0x37, 0x37, 0x37, 0xff, 0x33, 0x33, 0x33, 0xff, 0x31, 0x31, 0x31, 0xff, 0x40, 0x40, 0x40, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x48, 0x48, 0x48, 0xff, 0x36, 0x36, 0x36, 0xff, 0x41, 0x41, 0x41, 0xff, 0x46, 0x46, 0x46, 0xff, 0x30, 0x30, 0x30, 0xff, 0x45, 0x45, 0x45, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x32, 0x32, 0x32, 0xff, 0x38, 0x38, 0x38, 0xff, 0x46, 0x46, 0x46, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x36, 0x36, 0x36, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x57, 0x57, 0x57, 0xff, 0x3f, 0x3f, 0x3f, 0xff,
0x3d, 0x3d, 0x3d, 0xff, 0x36, 0x36, 0x36, 0xff, 0x59, 0x59, 0x59, 0xff, 0x49, 0x49, 0x49, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x37, 0x37, 0x37, 0xff, 0x48, 0x48, 0x48, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x40, 0x40, 0x40, 0xff, 0x42, 0x42, 0x42, 0xff, 0x43, 0x43, 0x43, 0xff, 0x41, 0x41, 0x41, 0xff, 0x32, 0x32, 0x32, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x34, 0x34, 0x34, 0xff, 0x40, 0x40, 0x40, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x44, 0x44, 0x44, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x36, 0x36, 0x36, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x42, 0x42, 0x42, 0xff, 0x37, 0x37, 0x37, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x44, 0x44, 0x44, 0xff, 0x42, 0x42, 0x42, 0xff, 0x40, 0x40, 0x40, 0xff, 0x34, 0x34, 0x34, 0xff, 0x36, 0x36, 0x36, 0xff, 0x46, 0x46, 0x46, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x53, 0x53, 0x53, 0xff, 0x55, 0x55, 0x55, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff,
0x5e, 0x5e, 0x5e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x45, 0x45, 0x45, 0xff, 0x41, 0x41, 0x41, 0xff, 0x32, 0x32, 0x32, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x54, 0x54, 0x54, 0xff, 0x56, 0x56, 0x56, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x42, 0x42, 0x42, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x47, 0x47, 0x47, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x33, 0x33, 0x33, 0xff, 0x44, 0x44, 0x44, 0xff, 0x5f, 0x5f, 0x5f, 0xff,
0x38, 0x38, 0x38, 0xff, 0x55, 0x55, 0x55, 0xff, 0x34, 0x34, 0x34, 0xff, 0x57, 0x57, 0x57, 0xff, 0x30, 0x30, 0x30, 0xff, 0x33, 0x33, 0x33, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x35, 0x35, 0x35, 0xff, 0x44, 0x44, 0x44, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x48, 0x48, 0x48, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x50, 0x50, 0x50, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x46, 0x46, 0x46, 0xff, 0x47, 0x47, 0x47, 0xff, 0x46, 0x46, 0x46, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x43, 0x43, 0x43, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x49, 0x49, 0x49, 0xff, 0x31, 0x31, 0x31, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x38, 0x38, 0x38, 0xff,
0x4d, 0x4d, 0x4d, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x58, 0x58, 0x58, 0xff, 0x60, 0x60, 0x60, 0xff, 0x45, 0x45, 0x45, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x43, 0x43, 0x43, 0xff, 0x32, 0x32, 0x32, 0xff, 0x36, 0x36, 0x36, 0xff, 0x35, 0x35, 0x35, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x30, 0x30, 0x30, 0xff, 0x33, 0x33, 0x33, 0xff, 0x48, 0x48, 0x48, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x35, 0x35, 0x35, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x30, 0x30, 0x30, 0xff, 0x34, 0x34, 0x34, 0xff, 0x36, 0x36, 0x36, 0xff, 0x35, 0x35, 0x35, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x60, 0x60, 0x60, 0xff, 0x55, 0x55, 0x55, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x37, 0x37, 0x37, 0xff, 0x56, 0x56, 0x56, 0xff, 0x48, 0x48, 0x48, 0xff,
0x47, 0x47, 0x47, 0xff, 0x46, 0x46, 0x46, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x50, 0x50, 0x50, 0xff, 0x40, 0x40, 0x40, 0xff, 0x52, 0x52, 0x52, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x37, 0x37, 0x37, 0xff, 0x41, 0x41, 0x41, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x46, 0x46, 0x46, 0xff, 0x34, 0x34, 0x34, 0xff, 0x49, 0x49, 0x49, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x47, 0x47, 0x47, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x37, 0x37, 0x37, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x37, 0x37, 0x37, 0xff, 0x39, 0x39, 0x39, 0xff, 0x53, 0x53, 0x53, 0xff, 0x40, 0x40, 0x40, 0xff,
0x31, 0x31, 0x31, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x36, 0x36, 0x36, 0xff, 0x51, 0x51, 0x51, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x38, 0x38, 0x38, 0xff, 0x45, 0x45, 0x45, 0xff, 0x38, 0x38, 0x38, 0xff, 0x45, 0x45, 0x45, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x30, 0x30, 0x30, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x47, 0x47, 0x47, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x50, 0x50, 0x50, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x39, 0x39, 0x39, 0xff, 0x45, 0x45, 0x45, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x53, 0x53, 0x53, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x31, 0x31, 0x31, 0xff, 0x57, 0x57, 0x57, 0xff, 0x2d, 0x2d, 0x2d, 0xff,
0x3d, 0x3d, 0x3d, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x42, 0x42, 0x42, 0xff, 0x55, 0x55, 0x55, 0xff, 0x39, 0x39, 0x39, 0xff, 0x37, 0x37, 0x37, 0xff, 0x55, 0x55, 0x55, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x32, 0x32, 0x32, 0xff, 0x46, 0x46, 0x46, 0xff, 0x34, 0x34, 0x34, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x44, 0x44, 0x44, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x37, 0x37, 0x37, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x51, 0x51, 0x51, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x55, 0x55, 0x55, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x49, 0x49, 0x49, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x42, 0x42, 0x42, 0xff,
0x57, 0x57, 0x57, 0xff, 0x39, 0x39, 0x39, 0xff, 0x51, 0x51, 0x51, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x32, 0x32, 0x32, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x56, 0x56, 0x56, 0xff, 0x34, 0x34, 0x34, 0xff, 0x35, 0x35, 0x35, 0xff, 0x46, 0x46, 0x46, 0xff, 0x45, 0x45, 0x45, 0xff, 0x45, 0x45, 0x45, 0xff, 0x31, 0x31, 0x31, 0xff, 0x30, 0x30, 0x30, 0xff, 0x33, 0x33, 0x33, 0xff, 0x34, 0x34, 0x34, 0xff, 0x36, 0x36, 0x36, 0xff, 0x42, 0x42, 0x42, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x49, 0x49, 0x49, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x41, 0x41, 0x41, 0xff, 0x33, 0x33, 0x33, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x30, 0x30, 0x30, 0xff, 0x36, 0x36, 0x36, 0xff, 0x46, 0x46, 0x46, 0xff, 0x44, 0x44, 0x44, 0xff, 0x44, 0x44, 0x44, 0xff, 0x33, 0x33, 0x33, 0xff, 0x38, 0x38, 0x38, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x58, 0x58, 0x58, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x35, 0x35, 0x35, 0xff, 0x34, 0x34, 0x34, 0xff, 0x36, 0x36, 0x36, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x57, 0x57, 0x57, 0xff, 0x34, 0x34, 0x34, 0xff, 0x58, 0x58, 0x58, 0xff,
0x3b, 0x3b, 0x3b, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x50, 0x50, 0x50, 0xff, 0x51, 0x51, 0x51, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x34, 0x34, 0x34, 0xff, 0x58, 0x58, 0x58, 0xff, 0x55, 0x55, 0x55, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x30, 0x30, 0x30, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x49, 0x49, 0x49, 0xff, 0x48, 0x48, 0x48, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x34, 0x34, 0x34, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x37, 0x37, 0x37, 0xff, 0x40, 0x40, 0x40, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x48, 0x48, 0x48, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x36, 0x36, 0x36, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x57, 0x57, 0x57, 0xff, 0x36, 0x36, 0x36, 0xff, 0x42, 0x42, 0x42, 0xff, 0x51, 0x51, 0x51, 0xff, 0x50, 0x50, 0x50, 0xff, 0x50, 0x50, 0x50, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x39, 0x39, 0x39, 0xff,
0x47, 0x47, 0x47, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x50, 0x50, 0x50, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x42, 0x42, 0x42, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x60, 0x60, 0x60, 0xff, 0x55, 0x55, 0x55, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x55, 0x55, 0x55, 0xff, 0x38, 0x38, 0x38, 0xff, 0x45, 0x45, 0x45, 0xff, 0x37, 0x37, 0x37, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x40, 0x40, 0x40, 0xff, 0x40, 0x40, 0x40, 0xff, 0x43, 0x43, 0x43, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x37, 0x37, 0x37, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x52, 0x52, 0x52, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x37, 0x37, 0x37, 0xff, 0x58, 0x58, 0x58, 0xff, 0x61, 0x61, 0x61, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x54, 0x54, 0x54, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x46, 0x46, 0x46, 0xff, 0x53, 0x53, 0x53, 0xff, 0x31, 0x31, 0x31, 0xff, 0x49, 0x49, 0x49, 0xff,
0x53, 0x53, 0x53, 0xff, 0x36, 0x36, 0x36, 0xff, 0x53, 0x53, 0x53, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x41, 0x41, 0x41, 0xff, 0x43, 0x43, 0x43, 0xff, 0x60, 0x60, 0x60, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x62, 0x62, 0x62, 0xff, 0x50, 0x50, 0x50, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x56, 0x56, 0x56, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x42, 0x42, 0x42, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x56, 0x56, 0x56, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x33, 0x33, 0x33, 0xff, 0x54, 0x54, 0x54, 0xff, 0x61, 0x61, 0x61, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x46, 0x46, 0x46, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x50, 0x50, 0x50, 0xff, 0x31, 0x31, 0x31, 0xff, 0x53, 0x53, 0x53, 0xff,
0x32, 0x32, 0x32, 0xff, 0x32, 0x32, 0x32, 0xff, 0x36, 0x36, 0x36, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x55, 0x55, 0x55, 0xff, 0x52, 0x52, 0x52, 0xff, 0x57, 0x57, 0x57, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x35, 0x35, 0x35, 0xff, 0x59, 0x59, 0x59, 0xff, 0x55, 0x55, 0x55, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x51, 0x51, 0x51, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x44, 0x44, 0x44, 0xff, 0x30, 0x30, 0x30, 0xff, 0x34, 0x34, 0x34, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x34, 0x34, 0x34, 0xff, 0x43, 0x43, 0x43, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x59, 0x59, 0x59, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x59, 0x59, 0x59, 0xff, 0x54, 0x54, 0x54, 0xff, 0x50, 0x50, 0x50, 0xff, 0x57, 0x57, 0x57, 0xff, 0x48, 0x48, 0x48, 0xff, 0x35, 0x35, 0x35, 0xff, 0x32, 0x32, 0x32, 0xff, 0x32, 0x32, 0x32, 0xff,
0x54, 0x54, 0x54, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x53, 0x53, 0x53, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x35, 0x35, 0x35, 0xff, 0x35, 0x35, 0x35, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x56, 0x56, 0x56, 0xff, 0x34, 0x34, 0x34, 0xff, 0x37, 0x37, 0x37, 0xff, 0x43, 0x43, 0x43, 0xff, 0x42, 0x42, 0x42, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x37, 0x37, 0x37, 0xff, 0x43, 0x43, 0x43, 0xff, 0x43, 0x43, 0x43, 0xff, 0x34, 0x34, 0x34, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x36, 0x36, 0x36, 0xff, 0x42, 0x42, 0x42, 0xff, 0x42, 0x42, 0x42, 0xff, 0x41, 0x41, 0x41, 0xff, 0x33, 0x33, 0x33, 0xff, 0x38, 0x38, 0x38, 0xff, 0x58, 0x58, 0x58, 0xff, 0x59, 0x59, 0x59, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x34, 0x34, 0x34, 0xff, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0xff, 0x37, 0x37, 0x37, 0xff, 0x44, 0x44, 0x44, 0xff, 0x59, 0x59, 0x59, 0xff, 0x37, 0x37, 0x37, 0xff, 0x54, 0x54, 0x54, 0xff,
0x3f, 0x3f, 0x3f, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x46, 0x46, 0x46, 0xff, 0x46, 0x46, 0x46, 0xff, 0x49, 0x49, 0x49, 0xff, 0x41, 0x41, 0x41, 0xff, 0x32, 0x32, 0x32, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x56, 0x56, 0x56, 0xff, 0x48, 0x48, 0x48, 0xff, 0x32, 0x32, 0x32, 0xff, 0x34, 0x34, 0x34, 0xff, 0x44, 0x44, 0x44, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x32, 0x32, 0x32, 0xff, 0x46, 0x46, 0x46, 0xff, 0x42, 0x42, 0x42, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x49, 0x49, 0x49, 0xff, 0x44, 0x44, 0x44, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x42, 0x42, 0x42, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x39, 0x39, 0x39, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x35, 0x35, 0x35, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x56, 0x56, 0x56, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x42, 0x42, 0x42, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x42, 0x42, 0x42, 0xff,
0x2e, 0x2e, 0x2e, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x51, 0x51, 0x51, 0xff, 0x36, 0x36, 0x36, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x32, 0x32, 0x32, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x40, 0x40, 0x40, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x36, 0x36, 0x36, 0xff, 0x45, 0x45, 0x45, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x47, 0x47, 0x47, 0xff, 0x32, 0x32, 0x32, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x33, 0x33, 0x33, 0xff, 0x46, 0x46, 0x46, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x31, 0x31, 0x31, 0xff, 0x49, 0x49, 0x49, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x32, 0x32, 0x32, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x31, 0x31, 0x31, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x49, 0x49, 0x49, 0xff, 0x34, 0x34, 0x34, 0xff, 0x56, 0x56, 0x56, 0xff, 0x2b, 0x2b, 0x2b, 0xff,
0x4b, 0x4b, 0x4b, 0xff, 0x46, 0x46, 0x46, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x56, 0x56, 0x56, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x53, 0x53, 0x53, 0xff, 0x37, 0x37, 0x37, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x44, 0x44, 0x44, 0xff, 0x34, 0x34, 0x34, 0xff, 0x38, 0x38, 0x38, 0xff, 0x42, 0x42, 0x42, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x50, 0x50, 0x50, 0xff, 0x48, 0x48, 0x48, 0xff, 0x33, 0x33, 0x33, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x47, 0x47, 0x47, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x50, 0x50, 0x50, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x59, 0x59, 0x59, 0xff, 0x38, 0x38, 0x38, 0xff, 0x52, 0x52, 0x52, 0xff, 0x37, 0x37, 0x37, 0xff, 0x38, 0x38, 0x38, 0xff, 0x54, 0x54, 0x54, 0xff, 0x43, 0x43, 0x43, 0xff,
0x4d, 0x4d, 0x4d, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x32, 0x32, 0x32, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x59, 0x59, 0x59, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x44, 0x44, 0x44, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x33, 0x33, 0x33, 0xff, 0x49, 0x49, 0x49, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x34, 0x34, 0x34, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x51, 0x51, 0x51, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x54, 0x54, 0x54, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x31, 0x31, 0x31, 0xff, 0x38, 0x38, 0x38, 0xff, 0x57, 0x57, 0x57, 0xff, 0x48, 0x48, 0x48, 0xff,
0x41, 0x41, 0x41, 0xff, 0x53, 0x53, 0x53, 0xff, 0x34, 0x34, 0x34, 0xff, 0x56, 0x56, 0x56, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x35, 0x35, 0x35, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x42, 0x42, 0x42, 0xff, 0x44, 0x44, 0x44, 0xff, 0x41, 0x41, 0x41, 0xff, 0x40, 0x40, 0x40, 0xff, 0x40, 0x40, 0x40, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x49, 0x49, 0x49, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x40, 0x40, 0x40, 0xff, 0x41, 0x41, 0x41, 0xff, 0x44, 0x44, 0x44, 0xff, 0x42, 0x42, 0x42, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x44, 0x44, 0x44, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x59, 0x59, 0x59, 0xff, 0x42, 0x42, 0x42, 0xff,
0x5c, 0x5c, 0x5c, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x40, 0x40, 0x40, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x40, 0x40, 0x40, 0xff, 0x46, 0x46, 0x46, 0xff, 0x36, 0x36, 0x36, 0xff, 0x31, 0x31, 0x31, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x31, 0x31, 0x31, 0xff, 0x38, 0x38, 0x38, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x30, 0x30, 0x30, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x45, 0x45, 0x45, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x53, 0x53, 0x53, 0xff, 0x56, 0x56, 0x56, 0xff, 0x39, 0x39, 0x39, 0xff, 0x35, 0x35, 0x35, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x46, 0x46, 0x46, 0xff, 0x36, 0x36, 0x36, 0xff, 0x31, 0x31, 0x31, 0xff, 0x33, 0x33, 0x33, 0xff, 0x33, 0x33, 0x33, 0xff, 0x31, 0x31, 0x31, 0xff, 0x37, 0x37, 0x37, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x39, 0x39, 0x39, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x60, 0x60, 0x60, 0xff,
0x35, 0x35, 0x35, 0xff, 0x37, 0x37, 0x37, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x47, 0x47, 0x47, 0xff, 0x48, 0x48, 0x48, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x46, 0x46, 0x46, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x45, 0x45, 0x45, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x38, 0x38, 0x38, 0xff, 0x35, 0x35, 0x35, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x35, 0x35, 0x35, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x43, 0x43, 0x43, 0xff, 0x35, 0x35, 0x35, 0xff, 0x35, 0x35, 0x35, 0xff, 0x49, 0x49, 0x49, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x49, 0x49, 0x49, 0xff, 0x47, 0x47, 0x47, 0xff, 0x35, 0x35, 0x35, 0xff, 0x33, 0x33, 0x33, 0xff, 0x46, 0x46, 0x46, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x52, 0x52, 0x52, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x31, 0x31, 0x31, 0xff, 0x34, 0x34, 0x34, 0xff,
0x3e, 0x3e, 0x3e, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x55, 0x55, 0x55, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x30, 0x30, 0x30, 0xff, 0x45, 0x45, 0x45, 0xff, 0x36, 0x36, 0x36, 0xff, 0x34, 0x34, 0x34, 0xff, 0x47, 0x47, 0x47, 0xff, 0x36, 0x36, 0x36, 0xff, 0x30, 0x30, 0x30, 0xff, 0x30, 0x30, 0x30, 0xff, 0x41, 0x41, 0x41, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x48, 0x48, 0x48, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x45, 0x45, 0x45, 0xff, 0x32, 0x32, 0x32, 0xff, 0x44, 0x44, 0x44, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x49, 0x49, 0x49, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x48, 0x48, 0x48, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x3d, 0x3d, 0x3d, 0xff,
0x63, 0x63, 0x63, 0xff, 0x54, 0x54, 0x54, 0xff, 0x35, 0x35, 0x35, 0xff, 0x35, 0x35, 0x35, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x42, 0x42, 0x42, 0xff, 0x46, 0x46, 0x46, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x43, 0x43, 0x43, 0xff, 0x39, 0x39, 0x39, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x32, 0x32, 0x32, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x48, 0x48, 0x48, 0xff, 0x34, 0x34, 0x34, 0xff, 0x38, 0x38, 0x38, 0xff, 0x38, 0x38, 0x38, 0xff, 0x37, 0x37, 0x37, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x38, 0x38, 0x38, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x41, 0x41, 0x41, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x34, 0x34, 0x34, 0xff, 0x40, 0x40, 0x40, 0xff, 0x34, 0x34, 0x34, 0xff, 0x49, 0x49, 0x49, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x34, 0x34, 0x34, 0xff, 0x38, 0x38, 0x38, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x47, 0x47, 0x47, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x32, 0x32, 0x32, 0xff, 0x37, 0x37, 0x37, 0xff, 0x57, 0x57, 0x57, 0xff, 0x63, 0x63, 0x63, 0xff,
0x51, 0x51, 0x51, 0xff, 0x33, 0x33, 0x33, 0xff, 0x38, 0x38, 0x38, 0xff, 0x41, 0x41, 0x41, 0xff, 0x37, 0x37, 0x37, 0xff, 0x36, 0x36, 0x36, 0xff, 0x42, 0x42, 0x42, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x48, 0x48, 0x48, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x33, 0x33, 0x33, 0xff, 0x44, 0x44, 0x44, 0xff, 0x31, 0x31, 0x31, 0xff, 0x42, 0x42, 0x42, 0xff, 0x30, 0x30, 0x30, 0xff, 0x49, 0x49, 0x49, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x37, 0x37, 0x37, 0xff, 0x57, 0x57, 0x57, 0xff, 0x53, 0x53, 0x53, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x47, 0x47, 0x47, 0xff, 0x42, 0x42, 0x42, 0xff, 0x32, 0x32, 0x32, 0xff, 0x49, 0x49, 0x49, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x45, 0x45, 0x45, 0xff, 0x32, 0x32, 0x32, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x35, 0x35, 0x35, 0xff, 0x38, 0x38, 0x38, 0xff, 0x45, 0x45, 0x45, 0xff, 0x33, 0x33, 0x33, 0xff, 0x34, 0x34, 0x34, 0xff, 0x52, 0x52, 0x52, 0xff,
0x30, 0x30, 0x30, 0xff, 0x30, 0x30, 0x30, 0xff, 0x41, 0x41, 0x41, 0xff, 0x33, 0x33, 0x33, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x37, 0x37, 0x37, 0xff, 0x41, 0x41, 0x41, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x48, 0x48, 0x48, 0xff, 0x33, 0x33, 0x33, 0xff, 0x37, 0x37, 0x37, 0xff, 0x42, 0x42, 0x42, 0xff, 0x35, 0x35, 0x35, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x32, 0x32, 0x32, 0xff, 0x49, 0x49, 0x49, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x35, 0x35, 0x35, 0xff, 0x30, 0x30, 0x30, 0xff, 0x38, 0x38, 0x38, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x61, 0x61, 0x61, 0xff, 0x62, 0x62, 0x62, 0xff, 0x59, 0x59, 0x59, 0xff, 0x37, 0x37, 0x37, 0xff, 0x30, 0x30, 0x30, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x44, 0x44, 0x44, 0xff, 0x30, 0x30, 0x30, 0xff, 0x47, 0x47, 0x47, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34, 0x34, 0xff, 0x41, 0x41, 0x41, 0xff, 0x35, 0x35, 0x35, 0xff, 0x31, 0x31, 0x31, 0xff, 0x46, 0x46, 0x46, 0xff, 0x33, 0x33, 0x33, 0xff, 0x45, 0x45, 0x45, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x31, 0x31, 0x31, 0xff,
0x2d, 0x2d, 0x2d, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x43, 0x43, 0x43, 0xff, 0x42, 0x42, 0x42, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x47, 0x47, 0x47, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x57, 0x57, 0x57, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x57, 0x57, 0x57, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x37, 0x37, 0x37, 0xff, 0x35, 0x35, 0x35, 0xff, 0x48, 0x48, 0x48, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x31, 0x31, 0x31, 0xff, 0x43, 0x43, 0x43, 0xff, 0x41, 0x41, 0x41, 0xff, 0x34, 0x34, 0x34, 0xff, 0x42, 0x42, 0x42, 0xff, 0x39, 0x39, 0x39, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x36, 0x36, 0x36, 0xff, 0x47, 0x47, 0x47, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2e, 0x2e, 0x2e, 0xff,
0x3e, 0x3e, 0x3e, 0xff, 0x31, 0x31, 0x31, 0xff, 0x40, 0x40, 0x40, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x45, 0x45, 0x45, 0xff, 0x39, 0x39, 0x39, 0xff, 0x31, 0x31, 0x31, 0xff, 0x42, 0x42, 0x42, 0xff, 0x45, 0x45, 0x45, 0xff, 0x45, 0x45, 0x45, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x35, 0x35, 0x35, 0xff, 0x48, 0x48, 0x48, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x52, 0x52, 0x52, 0xff, 0x59, 0x59, 0x59, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x39, 0x39, 0x39, 0xff, 0x34, 0x34, 0x34, 0xff, 0x59, 0x59, 0x59, 0xff, 0x48, 0x48, 0x48, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x38, 0x38, 0x38, 0xff, 0x45, 0x45, 0x45, 0xff, 0x32, 0x32, 0x32, 0xff, 0x35, 0x35, 0x35, 0xff, 0x42, 0x42, 0x42, 0xff, 0x45, 0x45, 0x45, 0xff, 0x46, 0x46, 0x46, 0xff, 0x42, 0x42, 0x42, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3f, 0x3f, 0x3f, 0xff,
0x52, 0x52, 0x52, 0xff, 0x41, 0x41, 0x41, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x34, 0x34, 0x34, 0xff, 0x32, 0x32, 0x32, 0xff, 0x32, 0x32, 0x32, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x46, 0x46, 0x46, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x34, 0x34, 0x34, 0xff, 0x5f, 0x5f, 0x5f, 0xff, 0x39, 0x39, 0x39, 0xff, 0x42, 0x42, 0x42, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x55, 0x55, 0x55, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x33, 0x33, 0x33, 0xff, 0x34, 0x34, 0x34, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x35, 0x35, 0x35, 0xff, 0x30, 0x30, 0x30, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x30, 0x30, 0x30, 0xff, 0x42, 0x42, 0x42, 0xff, 0x54, 0x54, 0x54, 0xff,
0x39, 0x39, 0x39, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x32, 0x32, 0x32, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x46, 0x46, 0x46, 0xff, 0x47, 0x47, 0x47, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x34, 0x34, 0x34, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x36, 0x36, 0x36, 0xff, 0x34, 0x34, 0x34, 0xff, 0x54, 0x54, 0x54, 0xff, 0x30, 0x30, 0x30, 0xff, 0x50, 0x50, 0x50, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x58, 0x58, 0x58, 0xff, 0x33, 0x33, 0x33, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x30, 0x30, 0x30, 0xff, 0x39, 0x39, 0x39, 0xff, 0x50, 0x50, 0x50, 0xff, 0x45, 0x45, 0x45, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x34, 0x34, 0x34, 0xff, 0x40, 0x40, 0x40, 0xff, 0x46, 0x46, 0x46, 0xff, 0x48, 0x48, 0x48, 0xff, 0x45, 0x45, 0x45, 0xff, 0x42, 0x42, 0x42, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x30, 0x30, 0x30, 0xff, 0x50, 0x50, 0x50, 0xff, 0x38, 0x38, 0x38, 0xff,
0x48, 0x48, 0x48, 0xff, 0x42, 0x42, 0x42, 0xff, 0x38, 0x38, 0x38, 0xff, 0x31, 0x31, 0x31, 0xff, 0x40, 0x40, 0x40, 0xff, 0x44, 0x44, 0x44, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x39, 0x39, 0x39, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x43, 0x43, 0x43, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x49, 0x49, 0x49, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x31, 0x31, 0x31, 0xff, 0x34, 0x34, 0x34, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x52, 0x52, 0x52, 0xff, 0x44, 0x44, 0x44, 0xff, 0x56, 0x56, 0x56, 0xff, 0x35, 0x35, 0x35, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x47, 0x47, 0x47, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x44, 0x44, 0x44, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x30, 0x30, 0x30, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x33, 0x33, 0x33, 0xff, 0x44, 0x44, 0x44, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x44, 0x44, 0x44, 0xff,
0x3b, 0x3b, 0x3b, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x42, 0x42, 0x42, 0xff, 0x37, 0x37, 0x37, 0xff, 0x38, 0x38, 0x38, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2a, 0x2a, 0x2a, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x30, 0x30, 0x30, 0xff, 0x55, 0x55, 0x55, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x53, 0x53, 0x53, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x34, 0x34, 0x34, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x42, 0x42, 0x42, 0xff, 0x42, 0x42, 0x42, 0xff, 0x52, 0x52, 0x52, 0xff, 0x35, 0x35, 0x35, 0xff, 0x43, 0x43, 0x43, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x39, 0x39, 0x39, 0xff, 0x55, 0x55, 0x55, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x41, 0x41, 0x41, 0xff, 0x40, 0x40, 0x40, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x48, 0x48, 0x48, 0xff, 0x36, 0x36, 0x36, 0xff,
0x2f, 0x2f, 0x2f, 0xff, 0x46, 0x46, 0x46, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x32, 0x32, 0x32, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x48, 0x48, 0x48, 0xff, 0x30, 0x30, 0x30, 0xff, 0x42, 0x42, 0x42, 0xff, 0x34, 0x34, 0x34, 0xff, 0x41, 0x41, 0x41, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x36, 0x36, 0x36, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x57, 0x57, 0x57, 0xff, 0x37, 0x37, 0x37, 0xff, 0x47, 0x47, 0x47, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x53, 0x53, 0x53, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x39, 0x39, 0x39, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x37, 0x37, 0x37, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x34, 0x34, 0x34, 0xff, 0x48, 0x48, 0x48, 0xff, 0x33, 0x33, 0x33, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x2c, 0x2c, 0x2c, 0xff,
0x43, 0x43, 0x43, 0xff, 0x42, 0x42, 0x42, 0xff, 0x43, 0x43, 0x43, 0xff, 0x4e, 0x4e, 0x4e, 0xff, 0x48, 0x48, 0x48, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x45, 0x45, 0x45, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x36, 0x36, 0x36, 0xff, 0x53, 0x53, 0x53, 0xff, 0x59, 0x59, 0x59, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x31, 0x31, 0x31, 0xff, 0x37, 0x37, 0x37, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x44, 0x44, 0x44, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x46, 0x46, 0x46, 0xff, 0x44, 0x44, 0x44, 0xff, 0x4f, 0x4f, 0x4f, 0xff, 0x48, 0x48, 0x48, 0xff, 0x35, 0x35, 0x35, 0xff, 0x32, 0x32, 0x32, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x51, 0x51, 0x51, 0xff, 0x34, 0x34, 0x34, 0xff, 0x32, 0x32, 0x32, 0xff, 0x44, 0x44, 0x44, 0xff, 0x37, 0x37, 0x37, 0xff, 0x36, 0x36, 0x36, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x30, 0x30, 0x30, 0xff, 0x41, 0x41, 0x41, 0xff, 0x48, 0x48, 0x48, 0xff, 0x53, 0x53, 0x53, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x40, 0x40, 0x40, 0xff, 0x44, 0x44, 0x44, 0xff,
0x43, 0x43, 0x43, 0xff, 0x35, 0x35, 0x35, 0xff, 0x49, 0x49, 0x49, 0xff, 0x37, 0x37, 0x37, 0xff, 0x34, 0x34, 0x34, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x38, 0x38, 0x38, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x30, 0x30, 0x30, 0xff, 0x43, 0x43, 0x43, 0xff, 0x48, 0x48, 0x48, 0xff, 0x41, 0x41, 0x41, 0xff, 0x31, 0x31, 0x31, 0xff, 0x36, 0x36, 0x36, 0xff, 0x5d, 0x5d, 0x5d, 0xff, 0x56, 0x56, 0x56, 0xff, 0x34, 0x34, 0x34, 0xff, 0x31, 0x31, 0x31, 0xff, 0x36, 0x36, 0x36, 0xff, 0x37, 0x37, 0x37, 0xff, 0x31, 0x31, 0x31, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x57, 0x57, 0x57, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x53, 0x53, 0x53, 0xff, 0x51, 0x51, 0x51, 0xff, 0x36, 0x36, 0x36, 0xff, 0x57, 0x57, 0x57, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x37, 0x37, 0x37, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x35, 0x35, 0x35, 0xff, 0x33, 0x33, 0x33, 0xff, 0x44, 0x44, 0x44, 0xff, 0x47, 0x47, 0x47, 0xff, 0x40, 0x40, 0x40, 0xff, 0x30, 0x30, 0x30, 0xff, 0x2f, 0x2f, 0x2f, 0xff, 0x38, 0x38, 0x38, 0xff, 0x3a, 0x3a, 0x3a, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3b, 0x3b, 0x3b, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x32, 0x32, 0x32, 0xff, 0x42, 0x42, 0x42, 0xff,
0x41, 0x41, 0x41, 0xff, 0x34, 0x34, 0x34, 0xff, 0x32, 0x32, 0x32, 0xff, 0x46, 0x46, 0x46, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x48, 0x48, 0x48, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x51, 0x51, 0x51, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x34, 0x34, 0x34, 0xff, 0x5c, 0x5c, 0x5c, 0xff, 0x56, 0x56, 0x56, 0xff, 0x33, 0x33, 0x33, 0xff, 0x44, 0x44, 0x44, 0xff, 0x5a, 0x5a, 0x5a, 0xff, 0x58, 0x58, 0x58, 0xff, 0x54, 0x54, 0x54, 0xff, 0x57, 0x57, 0x57, 0xff, 0x49, 0x49, 0x49, 0xff, 0x33, 0x33, 0x33, 0xff, 0x32, 0x32, 0x32, 0xff, 0x33, 0x33, 0x33, 0xff, 0x30, 0x30, 0x30, 0xff, 0x34, 0x34, 0x34, 0xff, 0x38, 0x38, 0x38, 0xff, 0x4b, 0x4b, 0x4b, 0xff, 0x56, 0x56, 0x56, 0xff, 0x55, 0x55, 0x55, 0xff, 0x58, 0x58, 0x58, 0xff, 0x59, 0x59, 0x59, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x33, 0x33, 0x33, 0xff, 0x5b, 0x5b, 0x5b, 0xff, 0x56, 0x56, 0x56, 0xff, 0x33, 0x33, 0x33, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x41, 0x41, 0x41, 0xff, 0x51, 0x51, 0x51, 0xff, 0x4c, 0x4c, 0x4c, 0xff, 0x49, 0x49, 0x49, 0xff, 0x4d, 0x4d, 0x4d, 0xff, 0x40, 0x40, 0x40, 0xff, 0x33, 0x33, 0x33, 0xff, 0x34, 0x34, 0x34, 0xff, 0x41, 0x41, 0x41, 0xff,
0x3e, 0x3e, 0x3e, 0xff, 0x45, 0x45, 0x45, 0xff, 0x45, 0x45, 0x45, 0xff, 0x3c, 0x3c, 0x3c, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x39, 0x39, 0x39, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x56, 0x56, 0x56, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x2b, 0x2b, 0x2b, 0xff, 0x35, 0x35, 0x35, 0xff, 0x57, 0x57, 0x57, 0xff, 0x60, 0x60, 0x60, 0xff, 0x3e, 0x3e, 0x3e, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x60, 0x60, 0x60, 0xff, 0x39, 0x39, 0x39, 0xff, 0x47, 0x47, 0x47, 0xff, 0x40, 0x40, 0x40, 0xff, 0x2e, 0x2e, 0x2e, 0xff, 0x44, 0x44, 0x44, 0xff, 0x57, 0x57, 0x57, 0xff, 0x39, 0x39, 0x39, 0xff, 0x4a, 0x4a, 0x4a, 0xff, 0x53, 0x53, 0x53, 0xff, 0x31, 0x31, 0x31, 0xff, 0x54, 0x54, 0x54, 0xff, 0x42, 0x42, 0x42, 0xff, 0x2c, 0x2c, 0x2c, 0xff, 0x44, 0x44, 0x44, 0xff, 0x47, 0x47, 0x47, 0xff, 0x43, 0x43, 0x43, 0xff, 0x5e, 0x5e, 0x5e, 0xff, 0x33, 0x33, 0x33, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x63, 0x63, 0x63, 0xff, 0x51, 0x51, 0x51, 0xff, 0x31, 0x31, 0x31, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x3d, 0x3d, 0x3d, 0xff, 0x54, 0x54, 0x54, 0xff, 0x39, 0x39, 0x39, 0xff, 0x44, 0x44, 0x44, 0xff, 0x36, 0x36, 0x36, 0xff, 0x2d, 0x2d, 0x2d, 0xff, 0x45, 0x45, 0x45, 0xff, 0x42, 0x42, 0x42, 0xff, 0x40, 0x40, 0x40, 0xff, 0x40, 0x40, 0x40, 0xff,
#endif
};
lv_img_dsc_t benchmark_bg = {
.header.always_zero = 0,
.header.w = 50,
.header.h = 50,
.data_size = 2500 * LV_COLOR_SIZE / 8,
.header.cf = LV_IMG_CF_TRUE_COLOR,
.data = benchmark_bg_map,
};
#endif /*LV_USE_BENCHMARK*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

View File

@ -0,0 +1,451 @@
/**
* @file demo.c
*
*/
/*********************
* INCLUDES
*********************/
#include "demo.h"
#if LV_USE_DEMO
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void write_create(lv_obj_t * parent);
static void text_area_event_handler(lv_obj_t * text_area, lv_event_t event);
static void keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event);
#if LV_USE_ANIMATION
static void kb_hide_anim_end(lv_anim_t * a);
#endif
static void list_create(lv_obj_t * parent);
static void chart_create(lv_obj_t * parent);
static void slider_event_handler(lv_obj_t * slider, lv_event_t event);
static void list_btn_event_handler(lv_obj_t * slider, lv_event_t event);
#if LV_DEMO_SLIDE_SHOW
static void tab_switcher(lv_task_t * task);
#endif
/**********************
* STATIC VARIABLES
**********************/
static lv_obj_t * chart;
static lv_obj_t * ta;
static lv_obj_t * kb;
static lv_style_t style_kb;
static lv_style_t style_kb_rel;
static lv_style_t style_kb_pr;
#if LV_DEMO_WALLPAPER
LV_IMG_DECLARE(img_bubble_pattern)
#endif
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create a demo application
*/
void demo_create(void)
{
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
#if LV_DEMO_WALLPAPER
lv_obj_t * wp = lv_img_create(lv_disp_get_scr_act(NULL), NULL);
lv_img_set_src(wp, &img_bubble_pattern);
lv_obj_set_width(wp, hres * 4);
lv_obj_set_protect(wp, LV_PROTECT_POS);
#endif
static lv_style_t style_tv_btn_bg;
lv_style_copy(&style_tv_btn_bg, &lv_style_plain);
style_tv_btn_bg.body.main_color = lv_color_hex(0x487fb7);
style_tv_btn_bg.body.grad_color = lv_color_hex(0x487fb7);
style_tv_btn_bg.body.padding.top = 0;
style_tv_btn_bg.body.padding.bottom = 0;
static lv_style_t style_tv_btn_rel;
lv_style_copy(&style_tv_btn_rel, &lv_style_btn_rel);
style_tv_btn_rel.body.opa = LV_OPA_TRANSP;
style_tv_btn_rel.body.border.width = 0;
static lv_style_t style_tv_btn_pr;
lv_style_copy(&style_tv_btn_pr, &lv_style_btn_pr);
style_tv_btn_pr.body.radius = 0;
style_tv_btn_pr.body.opa = LV_OPA_50;
style_tv_btn_pr.body.main_color = LV_COLOR_WHITE;
style_tv_btn_pr.body.grad_color = LV_COLOR_WHITE;
style_tv_btn_pr.body.border.width = 0;
style_tv_btn_pr.text.color = LV_COLOR_GRAY;
lv_obj_t * tv = lv_tabview_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(tv, hres, vres);
#if LV_DEMO_WALLPAPER
lv_obj_set_parent(wp, ((lv_tabview_ext_t *) tv->ext_attr)->content);
lv_obj_set_pos(wp, 0, -5);
#endif
lv_obj_t * tab1 = lv_tabview_add_tab(tv, "Write");
lv_obj_t * tab2 = lv_tabview_add_tab(tv, "List");
lv_obj_t * tab3 = lv_tabview_add_tab(tv, "Chart");
#if LV_DEMO_WALLPAPER == 0
/*Blue bg instead of wallpaper*/
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BG, &style_tv_btn_bg);
#endif
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_BG, &style_tv_btn_bg);
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_INDIC, &lv_style_plain);
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_REL, &style_tv_btn_rel);
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_PR, &style_tv_btn_pr);
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_TGL_REL, &style_tv_btn_rel);
lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_TGL_PR, &style_tv_btn_pr);
write_create(tab1);
list_create(tab2);
chart_create(tab3);
#if LV_DEMO_SLIDE_SHOW
lv_task_create(tab_switcher, 3000, LV_TASK_PRIO_MID, tv);
#endif
}
/**********************
* STATIC FUNCTIONS
**********************/
static void write_create(lv_obj_t * parent)
{
lv_page_set_style(parent, LV_PAGE_STYLE_BG, &lv_style_transp_fit);
lv_page_set_style(parent, LV_PAGE_STYLE_SCRL, &lv_style_transp_fit);
lv_page_set_sb_mode(parent, LV_SB_MODE_OFF);
static lv_style_t style_ta;
lv_style_copy(&style_ta, &lv_style_pretty);
style_ta.body.opa = LV_OPA_30;
style_ta.body.radius = 0;
style_ta.text.color = lv_color_hex3(0x222);
ta = lv_ta_create(parent, NULL);
lv_obj_set_size(ta, lv_page_get_scrl_width(parent), lv_obj_get_height(parent) / 2);
lv_ta_set_style(ta, LV_TA_STYLE_BG, &style_ta);
lv_ta_set_text(ta, "");
lv_obj_set_event_cb(ta, text_area_event_handler);
lv_style_copy(&style_kb, &lv_style_plain);
lv_ta_set_text_sel(ta, true);
style_kb.body.opa = LV_OPA_70;
style_kb.body.main_color = lv_color_hex3(0x333);
style_kb.body.grad_color = lv_color_hex3(0x333);
style_kb.body.padding.left = 0;
style_kb.body.padding.right = 0;
style_kb.body.padding.top = 0;
style_kb.body.padding.bottom = 0;
style_kb.body.padding.inner = 0;
lv_style_copy(&style_kb_rel, &lv_style_plain);
style_kb_rel.body.opa = LV_OPA_TRANSP;
style_kb_rel.body.radius = 0;
style_kb_rel.body.border.width = 1;
style_kb_rel.body.border.color = LV_COLOR_SILVER;
style_kb_rel.body.border.opa = LV_OPA_50;
style_kb_rel.body.main_color = lv_color_hex3(0x333); /*Recommended if LV_VDB_SIZE == 0 and bpp > 1 fonts are used*/
style_kb_rel.body.grad_color = lv_color_hex3(0x333);
style_kb_rel.text.color = LV_COLOR_WHITE;
lv_style_copy(&style_kb_pr, &lv_style_plain);
style_kb_pr.body.radius = 0;
style_kb_pr.body.opa = LV_OPA_50;
style_kb_pr.body.main_color = LV_COLOR_WHITE;
style_kb_pr.body.grad_color = LV_COLOR_WHITE;
style_kb_pr.body.border.width = 1;
style_kb_pr.body.border.color = LV_COLOR_SILVER;
}
static void text_area_event_handler(lv_obj_t * text_area, lv_event_t event)
{
(void) text_area; /*Unused*/
/*Text area is on the scrollable part of the page but we need the page itself*/
lv_obj_t * parent = lv_obj_get_parent(lv_obj_get_parent(ta));
if(event == LV_EVENT_CLICKED) {
if(kb == NULL) {
kb = lv_kb_create(parent, NULL);
lv_obj_set_size(kb, lv_obj_get_width_fit(parent), lv_obj_get_height_fit(parent) / 2);
lv_obj_align(kb, ta, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);
lv_kb_set_ta(kb, ta);
lv_kb_set_style(kb, LV_KB_STYLE_BG, &style_kb);
lv_kb_set_style(kb, LV_KB_STYLE_BTN_REL, &style_kb_rel);
lv_kb_set_style(kb, LV_KB_STYLE_BTN_PR, &style_kb_pr);
lv_obj_set_event_cb(kb, keyboard_event_cb);
#if LV_USE_ANIMATION
lv_anim_t a;
a.var = kb;
a.start = LV_VER_RES;
a.end = lv_obj_get_y(kb);
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_y;
a.path_cb = lv_anim_path_linear;
a.ready_cb = NULL;
a.act_time = 0;
a.time = 300;
a.playback = 0;
a.playback_pause = 0;
a.repeat = 0;
a.repeat_pause = 0;
lv_anim_create(&a);
#endif
}
}
}
/**
* Called when the close or ok button is pressed on the keyboard
* @param keyboard pointer to the keyboard
* @return
*/
static void keyboard_event_cb(lv_obj_t * keyboard, lv_event_t event)
{
(void) keyboard; /*Unused*/
lv_kb_def_event_cb(kb, event);
if(event == LV_EVENT_APPLY || event == LV_EVENT_CANCEL) {
#if LV_USE_ANIMATION
lv_anim_t a;
a.var = kb;
a.start = lv_obj_get_y(kb);
a.end = LV_VER_RES;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_y;
a.path_cb = lv_anim_path_linear;
a.ready_cb = kb_hide_anim_end;
a.act_time = 0;
a.time = 300;
a.playback = 0;
a.playback_pause = 0;
a.repeat = 0;
a.repeat_pause = 0;
lv_anim_create(&a);
#else
lv_obj_del(kb);
kb = NULL;
#endif
}
}
static void list_create(lv_obj_t * parent)
{
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_page_set_style(parent, LV_PAGE_STYLE_BG, &lv_style_transp_fit);
lv_page_set_style(parent, LV_PAGE_STYLE_SCRL, &lv_style_transp_fit);
lv_page_set_sb_mode(parent, LV_SB_MODE_OFF);
/*Create styles for the buttons*/
static lv_style_t style_btn_rel;
static lv_style_t style_btn_pr;
lv_style_copy(&style_btn_rel, &lv_style_btn_rel);
style_btn_rel.body.main_color = lv_color_hex3(0x333);
style_btn_rel.body.grad_color = LV_COLOR_BLACK;
style_btn_rel.body.border.color = LV_COLOR_SILVER;
style_btn_rel.body.border.width = 1;
style_btn_rel.body.border.opa = LV_OPA_50;
style_btn_rel.body.radius = 0;
lv_style_copy(&style_btn_pr, &style_btn_rel);
style_btn_pr.body.main_color = lv_color_make(0x55, 0x96, 0xd8);
style_btn_pr.body.grad_color = lv_color_make(0x37, 0x62, 0x90);
style_btn_pr.text.color = lv_color_make(0xbb, 0xd5, 0xf1);
lv_obj_t * list = lv_list_create(parent, NULL);
lv_obj_set_height(list, 2 * lv_obj_get_height(parent) / 3);
lv_list_set_style(list, LV_LIST_STYLE_BG, &lv_style_transp_tight);
lv_list_set_style(list, LV_LIST_STYLE_SCRL, &lv_style_transp_tight);
lv_list_set_style(list, LV_LIST_STYLE_BTN_REL, &style_btn_rel);
lv_list_set_style(list, LV_LIST_STYLE_BTN_PR, &style_btn_pr);
lv_obj_align(list, NULL, LV_ALIGN_IN_TOP_MID, 0, LV_DPI / 4);
lv_obj_t * list_btn;
list_btn = lv_list_add_btn(list, LV_SYMBOL_FILE, "New");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
list_btn = lv_list_add_btn(list, LV_SYMBOL_DIRECTORY, "Open");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
list_btn = lv_list_add_btn(list, LV_SYMBOL_TRASH, "Delete");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
list_btn = lv_list_add_btn(list, LV_SYMBOL_EDIT, "Edit");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
list_btn = lv_list_add_btn(list, LV_SYMBOL_SAVE, "Save");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
list_btn = lv_list_add_btn(list, LV_SYMBOL_WIFI, "WiFi");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
list_btn = lv_list_add_btn(list, LV_SYMBOL_GPS, "GPS");
lv_obj_set_event_cb(list_btn, list_btn_event_handler);
lv_obj_t * mbox = lv_mbox_create(parent, NULL);
lv_mbox_set_text(mbox, "Click a button to copy its text to the Text area ");
lv_obj_set_width(mbox, hres - LV_DPI);
static const char * mbox_btns[] = {"Got it", ""};
lv_mbox_add_btns(mbox, mbox_btns); /*The default action is close*/
lv_obj_align(mbox, parent, LV_ALIGN_IN_TOP_MID, 0, LV_DPI / 2);
}
#if LV_USE_ANIMATION
static void kb_hide_anim_end(lv_anim_t * a)
{
lv_obj_del(a->var);
kb = NULL;
}
#endif
static void chart_create(lv_obj_t * parent)
{
lv_coord_t vres = lv_disp_get_ver_res(NULL);
lv_page_set_style(parent, LV_PAGE_STYLE_BG, &lv_style_transp_fit);
lv_page_set_style(parent, LV_PAGE_STYLE_SCRL, &lv_style_transp_fit);
lv_page_set_scrl_height(parent, lv_obj_get_height(parent));
lv_page_set_sb_mode(parent, LV_SB_MODE_OFF);
static lv_style_t style_chart;
lv_style_copy(&style_chart, &lv_style_pretty);
style_chart.body.opa = LV_OPA_60;
style_chart.body.radius = 0;
style_chart.line.color = LV_COLOR_GRAY;
chart = lv_chart_create(parent, NULL);
lv_obj_set_size(chart, 2 * lv_obj_get_width(parent) / 3, lv_obj_get_height(parent) / 2);
lv_obj_align(chart, NULL, LV_ALIGN_IN_TOP_MID, 0, LV_DPI / 4);
lv_chart_set_type(chart, LV_CHART_TYPE_COLUMN);
lv_chart_set_style(chart, LV_CHART_STYLE_MAIN, &style_chart);
lv_chart_set_series_opa(chart, LV_OPA_70);
lv_chart_series_t * ser1;
ser1 = lv_chart_add_series(chart, LV_COLOR_RED);
lv_chart_set_next(chart, ser1, 40);
lv_chart_set_next(chart, ser1, 30);
lv_chart_set_next(chart, ser1, 47);
lv_chart_set_next(chart, ser1, 59);
lv_chart_set_next(chart, ser1, 59);
lv_chart_set_next(chart, ser1, 31);
lv_chart_set_next(chart, ser1, 55);
lv_chart_set_next(chart, ser1, 70);
lv_chart_set_next(chart, ser1, 82);
lv_chart_set_next(chart, ser1, 91);
/*Create a bar, an indicator and a knob style*/
static lv_style_t style_bar;
static lv_style_t style_indic;
static lv_style_t style_knob;
lv_style_copy(&style_bar, &lv_style_pretty);
style_bar.body.main_color = LV_COLOR_BLACK;
style_bar.body.grad_color = LV_COLOR_GRAY;
style_bar.body.radius = LV_RADIUS_CIRCLE;
style_bar.body.border.color = LV_COLOR_WHITE;
style_bar.body.opa = LV_OPA_60;
style_bar.body.padding.left = 0;
style_bar.body.padding.right = 0;
style_bar.body.padding.top = LV_DPI / 10;
style_bar.body.padding.bottom = LV_DPI / 10;
lv_style_copy(&style_indic, &lv_style_pretty);
style_indic.body.grad_color = LV_COLOR_MAROON;
style_indic.body.main_color = LV_COLOR_RED;
style_indic.body.radius = LV_RADIUS_CIRCLE;
style_indic.body.shadow.width = LV_DPI / 10;
style_indic.body.shadow.color = LV_COLOR_RED;
style_indic.body.padding.left = LV_DPI / 30;
style_indic.body.padding.right = LV_DPI / 30;
style_indic.body.padding.top = LV_DPI / 30;
style_indic.body.padding.bottom = LV_DPI / 30;
lv_style_copy(&style_knob, &lv_style_pretty);
style_knob.body.radius = LV_RADIUS_CIRCLE;
style_knob.body.opa = LV_OPA_70;
/*Create a second slider*/
lv_obj_t * slider = lv_slider_create(parent, NULL);
lv_slider_set_style(slider, LV_SLIDER_STYLE_BG, &style_bar);
lv_slider_set_style(slider, LV_SLIDER_STYLE_INDIC, &style_indic);
lv_slider_set_style(slider, LV_SLIDER_STYLE_KNOB, &style_knob);
lv_obj_set_size(slider, lv_obj_get_width(chart), LV_DPI / 3);
lv_obj_align(slider, chart, LV_ALIGN_OUT_BOTTOM_MID, 0, (vres - chart->coords.y2 - lv_obj_get_height(slider)) / 2); /*Align to below the chart*/
lv_obj_set_event_cb(slider, slider_event_handler);
lv_slider_set_range(slider, 10, 1000);
lv_slider_set_value(slider, 700, false);
slider_event_handler(slider, LV_EVENT_VALUE_CHANGED); /*Simulate a user value set the refresh the chart*/
}
/**
* Called when a new value on the slider on the Chart tab is set
* @param slider pointer to the slider
* @return LV_RES_OK because the slider is not deleted in the function
*/
static void slider_event_handler(lv_obj_t * slider, lv_event_t event)
{
if(event == LV_EVENT_VALUE_CHANGED) {
int16_t v = lv_slider_get_value(slider);
v = 1000 * 100 / v; /*Convert to range modify values linearly*/
lv_chart_set_range(chart, 0, v);
}
}
/**
* Called when a a list button is clicked on the List tab
* @param btn pointer to a list button
* @return LV_RES_OK because the button is not deleted in the function
*/
static void list_btn_event_handler(lv_obj_t * btn, lv_event_t event)
{
if(event == LV_EVENT_SHORT_CLICKED) {
lv_ta_add_char(ta, '\n');
lv_ta_add_text(ta, lv_list_get_btn_text(btn));
}
}
#if LV_DEMO_SLIDE_SHOW
/**
* Called periodically (lv_task) to switch to the next tab
*/
static void tab_switcher(lv_task_t * task)
{
static uint8_t tab = 0;
lv_obj_t * tv = task->user_data;
tab++;
if(tab >= 3) tab = 0;
lv_tabview_set_tab_act(tv, tab, true);
}
#endif
#endif /*LV_USE_DEMO*/

View File

@ -0,0 +1,55 @@
/**
* @file demo.h
*
*/
#ifndef DEMO_H
#define DEMO_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_DEMO
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create a demo application
*/
void demo_create(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_DEMO*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*DEMO_H*/

View File

@ -0,0 +1,7 @@
CSRCS += demo.c
CSRCS += img_bubble_pattern.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_apps/demo
VPATH += :$(LVGL_DIR)/lv_examples/lv_apps/demo
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_apps/demo"

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,175 @@
/**
* @file lv_sysmon.c
*
*/
/*********************
* INCLUDES
*********************/
#include "sysmon.h"
#if LV_USE_SYSMON
#include <stdio.h>
/*********************
* DEFINES
*********************/
#define CPU_LABEL_COLOR "FF0000"
#define MEM_LABEL_COLOR "0000FF"
#define CHART_POINT_NUM 100
#define REFR_TIME 500
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void sysmon_task(lv_task_t * param);
static void win_close_action(lv_obj_t * btn, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
static lv_obj_t * win;
static lv_obj_t * chart;
static lv_chart_series_t * cpu_ser;
static lv_chart_series_t * mem_ser;
static lv_obj_t * info_label;
static lv_task_t * refr_task;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Initialize the system monitor
*/
void sysmon_create(void)
{
refr_task = lv_task_create(sysmon_task, REFR_TIME, LV_TASK_PRIO_LOW, NULL);
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
win = lv_win_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_t * win_btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE);
lv_obj_set_event_cb(win_btn, win_close_action);
/*Make the window content responsive*/
lv_win_set_layout(win, LV_LAYOUT_PRETTY);
/*Create a chart with two data lines*/
chart = lv_chart_create(win, NULL);
lv_obj_set_size(chart, hres / 2, vres / 2);
lv_obj_set_pos(chart, LV_DPI / 10, LV_DPI / 10);
lv_chart_set_point_count(chart, CHART_POINT_NUM);
lv_chart_set_range(chart, 0, 100);
lv_chart_set_type(chart, LV_CHART_TYPE_LINE);
lv_chart_set_series_width(chart, 4);
cpu_ser = lv_chart_add_series(chart, LV_COLOR_RED);
mem_ser = lv_chart_add_series(chart, LV_COLOR_BLUE);
/*Set the data series to zero*/
uint16_t i;
for(i = 0; i < CHART_POINT_NUM; i++) {
lv_chart_set_next(chart, cpu_ser, 0);
lv_chart_set_next(chart, mem_ser, 0);
}
/*Create a label for the details of Memory and CPU usage*/
info_label = lv_label_create(win, NULL);
lv_label_set_recolor(info_label, true);
lv_obj_align(info_label, chart, LV_ALIGN_OUT_RIGHT_TOP, LV_DPI / 4, 0);
/*Refresh the chart and label manually at first*/
sysmon_task(NULL);
}
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Called periodically to monitor the CPU and memory usage.
* @param param unused
*/
static void sysmon_task(lv_task_t * param)
{
(void) param; /*Unused*/
LV_LOG_TRACE("sys_mon task started");
/*Get CPU and memory information */
uint8_t cpu_busy;
cpu_busy = 100 - lv_task_get_idle();
uint8_t mem_used_pct = 0;
#if LV_MEM_CUSTOM == 0
lv_mem_monitor_t mem_mon;
lv_mem_monitor(&mem_mon);
mem_used_pct = mem_mon.used_pct;
#endif
/*Add the CPU and memory data to the chart*/
lv_chart_set_next(chart, cpu_ser, cpu_busy);
lv_chart_set_next(chart, mem_ser, mem_used_pct);
/*Refresh the and windows*/
char buf_long[256];
sprintf(buf_long, "%s%s CPU: %d %%%s\n\n",
LV_TXT_COLOR_CMD,
CPU_LABEL_COLOR,
cpu_busy,
LV_TXT_COLOR_CMD);
#if LV_MEM_CUSTOM == 0
sprintf(buf_long, "%s"LV_TXT_COLOR_CMD"%s MEMORY: %d %%"LV_TXT_COLOR_CMD"\n"
"Total: %d bytes\n"
"Used: %d bytes\n"
"Free: %d bytes\n"
"Frag: %d %%",
buf_long,
MEM_LABEL_COLOR,
mem_used_pct,
(int)mem_mon.total_size,
(int)mem_mon.total_size - mem_mon.free_size, mem_mon.free_size, mem_mon.frag_pct);
#else
sprintf(buf_long, "%s"LV_TXT_COLOR_CMD"%s MEMORY: N/A"LV_TXT_COLOR_CMD,
buf_long,
MEM_LABEL_COLOR);
#endif
lv_label_set_text(info_label, buf_long);
LV_LOG_TRACE("sys_mon task finished");
}
/**
* Called when the window's close button is clicked
* @param btn pointer to the close button
* @param event the current event
*/
static void win_close_action(lv_obj_t * btn, lv_event_t event)
{
(void) btn; /*Unused*/
if(event != LV_EVENT_CLICKED) return;
lv_obj_del(win);
win = NULL;
lv_task_del(refr_task);
refr_task = NULL;
}
#endif /*LV_USE_SYMON*/

View File

@ -0,0 +1,53 @@
/**
* @file symon.h
*
*/
#ifndef SYSMON_H
#define SYSMON_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_DEMO
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Initialize the system monitor
*/
void sysmon_create(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_SYSMON*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* SYSMON_H */

View File

@ -0,0 +1,6 @@
CSRCS += sysmon.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_apps/sysmon
VPATH += :$(LVGL_DIR)/lv_examples/lv_apps/sysmon
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_apps/sysmon"

View File

@ -0,0 +1,176 @@
/**
* @file terminal.c
*
*/
/*********************
* INCLUDES
*********************/
#include "terminal.h"
#if LV_USE_TERMINAL
/*********************
* DEFINES
*********************/
#define TERMINAL_ANIM_TIME 100 /*[ms]*/
#define TERMINAL_NO_INPUT 0 /*Do not create Text area and Keyboard*/
#define TERMINAL_LOG_LENGTH 512 /*Characters*/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void clr_event_cb(lv_obj_t * btn, lv_event_t event);
static void win_close_action(lv_obj_t * btn, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
static lv_obj_t * win;
static char txt_log[TERMINAL_LOG_LENGTH + 1];
static lv_obj_t * label;
static lv_obj_t * clr_btn;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Open a terminal
* @return pointer to the terminal window
*/
lv_obj_t * terminal_create(void)
{
static lv_style_t style_bg;
lv_style_copy(&style_bg, &lv_style_pretty);
style_bg.body.main_color = lv_color_make(0x30, 0x30, 0x30);
style_bg.body.grad_color = lv_color_make(0x30, 0x30, 0x30);
style_bg.body.border.color = LV_COLOR_WHITE;
style_bg.text.color = lv_color_make(0xE0, 0xE0, 0xE0);
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
win = lv_win_create(lv_disp_get_scr_act(NULL), NULL);
lv_win_set_style(win, LV_WIN_STYLE_BG, &style_bg);
lv_obj_set_size(win, hres, vres);
lv_win_set_sb_mode(win, LV_SB_MODE_AUTO);
lv_obj_t * win_btn = lv_win_add_btn(win, LV_SYMBOL_CLOSE);
lv_obj_set_event_cb(win_btn, win_close_action);
/*Make the window's content responsive*/
lv_win_set_layout(win, LV_LAYOUT_PRETTY);
/*Create a label for the text of the terminal*/
label = lv_label_create(win, NULL);
lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);
lv_obj_set_width(label, lv_win_get_width(win));
lv_label_set_static_text(label, txt_log); /*Use the text array directly*/
/*Create a clear button*/
clr_btn = lv_btn_create(win, NULL);
lv_btn_set_fit(clr_btn, LV_FIT_TIGHT);
lv_obj_set_event_cb(clr_btn, clr_event_cb);
lv_obj_t * btn_label = lv_label_create(clr_btn, NULL);
lv_label_set_text(btn_label, "Clear");
return win;
}
/**
* Add data to the terminal
* @param txt_in character sting to add to the terminal
*/
void terminal_add(const char * txt_in)
{
if(win == NULL) return; /*Check if the window is exists*/
uint16_t txt_len = strlen(txt_in);
uint16_t old_len = strlen(txt_log);
/*If the data is longer then the terminal ax size show the last part of data*/
if(txt_len > TERMINAL_LOG_LENGTH) {
txt_in += (txt_len - TERMINAL_LOG_LENGTH);
txt_len = TERMINAL_LOG_LENGTH;
old_len = 0;
}
/*If the text become too long 'forget' the oldest lines*/
else if(old_len + txt_len > TERMINAL_LOG_LENGTH) {
uint16_t new_start;
for(new_start = 0; new_start < old_len; new_start++) {
if(txt_log[new_start] == '\n') {
/*If there is enough space break*/
if(new_start >= txt_len) {
/*Ignore line breaks*/
while(txt_log[new_start] == '\n' || txt_log[new_start] == '\r') new_start++;
break;
}
}
}
/* If it wasn't able to make enough space on line breaks
* simply forget the oldest characters*/
if(new_start == old_len) {
new_start = old_len - (TERMINAL_LOG_LENGTH - txt_len);
}
/*Move the remaining text to the beginning*/
uint16_t j;
for(j = new_start; j < old_len; j++) {
txt_log[j - new_start] = txt_log[j];
}
old_len = old_len - new_start;
txt_log[old_len] = '\0';
}
memcpy(&txt_log[old_len], txt_in, txt_len);
txt_log[old_len + txt_len] = '\0';
lv_label_set_static_text(label, txt_log);
lv_win_focus(win, clr_btn, TERMINAL_ANIM_TIME);
}
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Called when the Clear button is click to clear the text of the terminal
* @param btn pointer to the clear button
* @param event the current event
*/
static void clr_event_cb(lv_obj_t * btn, lv_event_t event)
{
(void) btn; /*Unused*/
if(event != LV_EVENT_CLICKED) return;
txt_log[0] = '\0';
lv_label_set_static_text(label, txt_log); /*Refresh the text*/
}
/**
* Called when the window's close button is clicked
* @param btn pointer to the close button
* @return LV_ACTION_RES_INV because the button is deleted in the function
*/
static void win_close_action(lv_obj_t * btn, lv_event_t event)
{
(void) btn; /*Unused*/
if(event != LV_EVENT_CLICKED) return;
lv_obj_del(win);
win = NULL;
}
#endif /*LV_USE_TERMINAL*/

View File

@ -0,0 +1,61 @@
/**
* @file terminal.h
*
*/
#ifndef TERMINAL_H
#define TERMINAL_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_DEMO
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Open a terminal
* @return pointer to the terminal window
*/
lv_obj_t * terminal_create(void);
/**
* Add data to the terminal
* @param txt_in character sting to add to the terminal
*/
void terminal_add(const char * txt_in);
/**********************
* MACROS
**********************/
#endif /*LV_USE_TERMINAL*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* LV_TERMINAL_H */

View File

@ -0,0 +1,6 @@
CSRCS += terminal.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_apps/terminal
VPATH += :$(LVGL_DIR)/lv_examples/lv_apps/terminal
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_apps/terminal"

View File

@ -0,0 +1,378 @@
/**
* @file tpcal.c
*
* TOUCHPAD CALIBRATION
* ---------------------
*
* This application creates a GUI and instruct the user
* to click the four corners to get data for touchpad calibration.
*
* - You display driver should have two functions: `xxx_read` and `xxx_set_cal_data`.
* - At first run run the touchpad is not calibrated therefore your `xxx_read` function should provide raw data.
* - When the user touched all four corners you should call the `xxx_set_cal_data` function in
* ` TP_CAL_STATE_WAIT_LEAVE` state. As arguments you should pass `point[0]`, `point[1]`, `point[2]` and `point[3]`
* which are the coordinates read on corner pressing.
* - `xxx_set_cal_data` should mark the display as calibrated, save the raw coordinates
* and use them in the upcoming calls of `xxx_read` to adjust the coordinates.
* - A simple equation to adjust the coordinates: x_cal = ((x_act - x1_saved) * lcd_hor_res) / (x2_saved - x1_saved);
* - x_cal: the calibrated X coordinate
* - x_act: the currently measured X coordinate
* - x1_saved, x2_saved: The raw X coordinates saved as calibration data
*/
/*********************
* INCLUDES
*********************/
#include "tpcal.h"
#if LV_USE_TPCAL
#include <stdio.h>
/*********************
* DEFINES
*********************/
#define CIRCLE_SIZE 20
#define CIRCLE_OFFSET 20
#define TP_MAX_VALUE 5000
#define TOUCH_NUMBER 3
/**********************
* TYPEDEFS
**********************/
typedef enum {
TP_CAL_STATE_INIT,
TP_CAL_STATE_WAIT_TOP_LEFT,
TP_CAL_STATE_WAIT_TOP_RIGHT,
TP_CAL_STATE_WAIT_BOTTOM_RIGHT,
TP_CAL_STATE_WAIT_BOTTOM_LEFT,
TP_CAL_STATE_WAIT_LEAVE,
TP_CAL_STATE_READY,
} tp_cal_state_t;
/**********************
* STATIC PROTOTYPES
**********************/
static void get_avr_value(lv_point_t * p);
static void btn_event_cb(lv_obj_t * scr, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
static lv_point_t point[4]; /*Calibration points: [0]: top-left; [1]: top-right, [2]: bottom-right, [3]: bottom-left */
static lv_point_t avr[TOUCH_NUMBER]; /*Storage point to calculate average*/
static tp_cal_state_t state;
static lv_obj_t * prev_scr;
static lv_obj_t * big_btn;
static lv_obj_t * label_main;
static lv_obj_t * circ_area;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create a touch pad calibration screen
*/
void tpcal_create(void)
{
state = TP_CAL_STATE_INIT;
prev_scr = lv_disp_get_scr_act(NULL);
lv_obj_t * scr = lv_obj_create(NULL, NULL);
lv_obj_set_size(scr, TP_MAX_VALUE, TP_MAX_VALUE);
lv_disp_load_scr(scr);
/*Create a big transparent button screen to receive clicks*/
big_btn = lv_btn_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(big_btn, TP_MAX_VALUE, TP_MAX_VALUE);
lv_btn_set_style(big_btn, LV_BTN_STYLE_REL, &lv_style_transp);
lv_btn_set_style(big_btn, LV_BTN_STYLE_PR, &lv_style_transp);
lv_obj_set_event_cb(big_btn, btn_event_cb);
lv_btn_set_layout(big_btn, LV_LAYOUT_OFF);
label_main = lv_label_create(lv_disp_get_scr_act(NULL), NULL);
char buf[64];
sprintf(buf, "Click the circle in\n"
"upper left-hand corner\n"
"%u left", TOUCH_NUMBER);
lv_label_set_text(label_main, buf);
lv_label_set_align(label_main, LV_LABEL_ALIGN_CENTER);
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
lv_obj_set_pos(label_main, (hres - lv_obj_get_width(label_main)) / 2,
(vres - lv_obj_get_height(label_main)) / 2);
static lv_style_t style_circ;
lv_style_copy(&style_circ, &lv_style_pretty_color);
style_circ.body.radius = LV_RADIUS_CIRCLE;
circ_area = lv_obj_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(circ_area, CIRCLE_SIZE, CIRCLE_SIZE);
lv_obj_set_style(circ_area, &style_circ);
lv_obj_set_click(circ_area, false);
#if LV_USE_ANIMATION
lv_anim_t a;
a.var = circ_area;
a.start = hres / 2;
a.end = CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_x;
a.path_cb = lv_anim_path_linear;
a.ready_cb = NULL;
a.act_time = -500;
a.time = 200;
a.playback = 0;
a.playback_pause = 0;
a.repeat = 0;
a.repeat_pause = 0;
lv_anim_create(&a);
a.start = vres / 2;
a.end = CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_y;
a.ready_cb = NULL;
a.time = 200;
lv_anim_create(&a);
#else
lv_obj_set_pos(circ_area, CIRCLE_OFFSET, CIRCLE_OFFSET);
#endif
state = TP_CAL_STATE_WAIT_TOP_LEFT;
}
/**********************
* STATIC FUNCTIONS
**********************/
static void get_avr_value(lv_point_t * p)
{
int32_t x_sum = 0;
int32_t y_sum = 0;
uint8_t i = 0;
for(; i < TOUCH_NUMBER ; i++) {
x_sum += avr[i].x;
y_sum += avr[i].y;
}
p->x = x_sum / TOUCH_NUMBER;
p->y = y_sum / TOUCH_NUMBER;
}
static void btn_event_cb(lv_obj_t * scr, lv_event_t event)
{
(void) scr; /*Unused*/
if(event != LV_EVENT_CLICKED) return;
lv_disp_t * disp = lv_obj_get_disp(prev_scr);
lv_coord_t hres = lv_disp_get_hor_res(disp);
lv_coord_t vres = lv_disp_get_ver_res(disp);
static uint8_t touch_nb = TOUCH_NUMBER;
if(state == TP_CAL_STATE_WAIT_TOP_LEFT) {
char buf[64];
touch_nb--;
lv_indev_t * indev = lv_indev_get_act();
lv_indev_get_point(indev, &avr[touch_nb]);
if(!touch_nb) {
touch_nb = TOUCH_NUMBER;
get_avr_value(&point[0]);
sprintf(buf, "x: %d\ny: %d", point[0].x, point[0].y);
lv_obj_t * label_coord = lv_label_create(lv_disp_get_scr_act(disp), NULL);
lv_label_set_text(label_coord, buf);
sprintf(buf, "Click the circle in\n"
"upper right-hand corner\n"
" %u Left", TOUCH_NUMBER);
#if LV_USE_ANIMATION
lv_anim_t a;
a.var = circ_area;
a.start = CIRCLE_OFFSET;
a.end = hres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_x;
a.path_cb = lv_anim_path_linear;
a.ready_cb = NULL;
a.act_time = 0;
a.time = 200;
a.playback = 0;
a.playback_pause = 0;
a.repeat = 0;
a.repeat_pause = 0;
lv_anim_create(&a);
a.start = CIRCLE_OFFSET;
a.end = CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_y;
a.ready_cb = NULL;
a.time = 200;
lv_anim_create(&a);
#else
lv_obj_set_pos(circ_area, LV_HOR_RES - CIRCLE_SIZE - CIRCLE_OFFSET, CIRCLE_OFFSET);
#endif
state = TP_CAL_STATE_WAIT_TOP_RIGHT;
} else {
sprintf(buf, "Click the circle in\n"
"upper left-hand corner\n"
" %u Left", touch_nb);
}
lv_label_set_text(label_main, buf);
lv_obj_set_pos(label_main, (hres - lv_obj_get_width(label_main)) / 2,
(vres - lv_obj_get_height(label_main)) / 2);
} else if(state == TP_CAL_STATE_WAIT_TOP_RIGHT) {
char buf[64];
touch_nb--;
lv_indev_t * indev = lv_indev_get_act();
lv_indev_get_point(indev, &avr[touch_nb]);
if(!touch_nb) {
touch_nb = TOUCH_NUMBER;
get_avr_value(&point[1]);
sprintf(buf, "x: %d\ny: %d", point[1].x, point[1].y);
lv_obj_t * label_coord = lv_label_create(lv_disp_get_scr_act(disp), NULL);
lv_label_set_text(label_coord, buf);
lv_obj_set_pos(label_coord, hres - lv_obj_get_width(label_coord), 0);
sprintf(buf, "Click the circle in\n"
"lower right-hand corner\n"
" %u Left", TOUCH_NUMBER);
#if LV_USE_ANIMATION
lv_anim_t a;
a.var = circ_area;
a.start = hres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.end = hres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_x;
a.path_cb = lv_anim_path_linear;
a.ready_cb = NULL;
a.act_time = 0;
a.time = 200;
a.playback = 0;
a.playback_pause = 0;
a.repeat = 0;
a.repeat_pause = 0;
lv_anim_create(&a);
a.start = CIRCLE_OFFSET;
a.end = vres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_y;
a.ready_cb = NULL;
a.time = 200;
lv_anim_create(&a);
#else
lv_obj_set_pos(circ_area, hres - CIRCLE_SIZE - CIRCLE_OFFSET, vres - CIRCLE_SIZE - CIRCLE_OFFSET);
#endif
state = TP_CAL_STATE_WAIT_BOTTOM_RIGHT;
} else {
sprintf(buf, "Click the circle in\n"
"upper right-hand corner\n"
" %u Left", touch_nb);
}
lv_label_set_text(label_main, buf);
lv_obj_set_pos(label_main, (hres - lv_obj_get_width(label_main)) / 2,
(vres - lv_obj_get_height(label_main)) / 2);
} else if(state == TP_CAL_STATE_WAIT_BOTTOM_RIGHT) {
char buf[64];
touch_nb--;
lv_indev_t * indev = lv_indev_get_act();
lv_indev_get_point(indev, &avr[touch_nb]);
if(!touch_nb) {
touch_nb = TOUCH_NUMBER;
get_avr_value(&point[2]);
sprintf(buf, "x: %d\ny: %d", point[2].x, point[2].y);
lv_obj_t * label_coord = lv_label_create(scr, NULL);
lv_label_set_text(label_coord, buf);
sprintf(buf, "Click the circle in\n"
"lower left-hand corner\n"
" %u Left", TOUCH_NUMBER);
lv_obj_set_pos(label_coord, hres - lv_obj_get_width(label_coord),
vres - lv_obj_get_height(label_coord));
#if LV_USE_ANIMATION
lv_anim_t a;
a.var = circ_area;
a.start = hres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.end = CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_x;
a.path_cb = lv_anim_path_linear;
a.ready_cb = NULL;
a.act_time = 0;
a.time = 200;
a.playback = 0;
a.playback_pause = 0;
a.repeat = 0;
a.repeat_pause = 0;
lv_anim_create(&a);
a.start = vres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.end = vres - CIRCLE_SIZE - CIRCLE_OFFSET;
a.exec_cb = (lv_anim_exec_xcb_t)lv_obj_set_y;
a.ready_cb = NULL;
a.time = 200;
lv_anim_create(&a);
#else
lv_obj_set_pos(circ_area, CIRCLE_OFFSET, LV_VER_RES - CIRCLE_SIZE - CIRCLE_OFFSET);
#endif
state = TP_CAL_STATE_WAIT_BOTTOM_LEFT;
} else {
sprintf(buf, "Click the circle in\n"
"lower right-hand corner\n"
" %u Left", touch_nb);
}
lv_label_set_text(label_main, buf);
lv_obj_set_pos(label_main, (hres - lv_obj_get_width(label_main)) / 2,
(vres - lv_obj_get_height(label_main)) / 2);
} else if(state == TP_CAL_STATE_WAIT_BOTTOM_LEFT) {
char buf[64];
touch_nb--;
lv_indev_t * indev = lv_indev_get_act();
lv_indev_get_point(indev, &avr[touch_nb]);
if(!touch_nb) {
touch_nb = TOUCH_NUMBER;
get_avr_value(&point[3]);
sprintf(buf, "x: %d\ny: %d", point[3].x, point[3].y);
lv_obj_t * label_coord = lv_label_create(scr, NULL);
lv_label_set_text(label_coord, buf);
lv_obj_set_pos(label_coord, 0, vres - lv_obj_get_height(label_coord));
sprintf(buf, "Click the screen\n"
"to leave calibration");
lv_obj_del(circ_area);
state = TP_CAL_STATE_WAIT_LEAVE;
} else {
sprintf(buf, "Click the circle in\n"
"lower left-hand corner\n"
" %u Left", touch_nb);
}
lv_label_set_text(label_main, buf);
lv_obj_set_pos(label_main, (hres - lv_obj_get_width(label_main)) / 2,
(vres - lv_obj_get_height(label_main)) / 2);
} else if(state == TP_CAL_STATE_WAIT_LEAVE) {
lv_disp_load_scr(prev_scr);
/*
* TODO Process 'p' points here to calibrate the touch pad
* Offset will be: CIRCLE_SIZE/2 + CIRCLE_OFFSET
*/
/*
* TODO: you can change the calibrate input callback here e.g:
* lv_indev_t *indev = lv_indev_get_act();
* indev->driver.read = xxxx_input_get_calib;
*/
state = TP_CAL_STATE_READY;
} else if(state == TP_CAL_STATE_READY) {
}
}
#endif /*LV_USE_TPCAL*/

View File

@ -0,0 +1,55 @@
/**
* @file tpcal.h
*
*/
#ifndef TPCAL_H
#define TPCAL_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_DEMO
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create a touch pad calibration screen
*/
void tpcal_create(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_TPCAL*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*TP_CAL_H*/

View File

@ -0,0 +1,6 @@
CSRCS += tpcal.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_apps/tpcal
VPATH += :$(LVGL_DIR)/lv_examples/lv_apps/tpcal
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_apps/tpcal"

View File

@ -0,0 +1,60 @@
/**
* @file lv_ex_conf.h
*
*/
/*
* COPY THIS FILE AS lv_ex_conf.h
*/
#if 0 /*Set it to "1" to enable the content*/
#ifndef LV_EX_CONF_H
#define LV_EX_CONF_H
/*******************
* GENERAL SETTING
*******************/
#define LV_EX_PRINTF 0 /*Enable printf-ing data*/
#define LV_EX_KEYBOARD 0 /*Add PC keyboard support to some examples (`lv_drivers` repository is required)*/
#define LV_EX_MOUSEWHEEL 0 /*Add 'encoder' (mouse wheel) support to some examples (`lv_drivers` repository is required)*/
/*******************
* TEST USAGE
*******************/
#define LV_USE_TESTS 0
/*******************
* TUTORIAL USAGE
*******************/
#define LV_USE_TUTORIALS 0
/*********************
* APPLICATION USAGE
*********************/
/* Test the graphical performance of your MCU
* with different settings*/
#define LV_USE_BENCHMARK 0
/*A demo application with Keyboard, Text area, List and Chart
* placed on Tab view */
#define LV_USE_DEMO 0
#if LV_USE_DEMO
#define LV_DEMO_WALLPAPER 1 /*Create a wallpaper too*/
#define LV_DEMO_SLIDE_SHOW 0 /*Automatically switch between tabs*/
#endif
/*MCU and memory usage monitoring*/
#define LV_USE_SYSMON 0
/*A terminal to display received characters*/
#define LV_USE_TERMINAL 0
/*Touch pad calibration with 4 points*/
#define LV_USE_TPCAL 0
#endif /*LV_EX_CONF_H*/
#endif /*End of "Content enable"*/

View File

@ -0,0 +1,56 @@
/**
* @file lv_examples.h
*
*/
#ifndef LV_EXAMPLES_H
#define LV_EXAMPLES_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#include "../lvgl/lvgl/lvgl.h"
//#include "../lvgl/lvgl.h"
/*********************
* DEFINES
*********************/
/*Test lvgl version*/
#define LV_EXAMPLES_LVGL_REQ_MAJOR 6
#define LV_EXAMPLES_LVGL_REQ_MINOR 0
#define LV_EXAMPLES_LVGL_REQ_PATCH 0
#if LV_EXAMPLES_LVGL_REQ_MAJOR != LVGL_VERSION_MAJOR
#error "lv_examples: Wrong lvgl major version"
#endif
#if LV_EXAMPLES_LVGL_REQ_MINOR > LVGL_VERSION_MINOR
#error "lv_examples: Wrong lvgl minor version"
#endif
#if LV_EXAMPLES_LVGL_REQ_PATCH > LVGL_VERSION_PATCH
#error "lv_examples: Wrong lvgl bug fix version"
#endif
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_EXAMPLES_H*/

View File

@ -0,0 +1,50 @@
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_obj/lv_test_obj.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_stress/lv_test_stress.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_theme/lv_test_theme.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_group/lv_test_group.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_arc/lv_test_arc.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_bar/lv_test_bar.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btn/lv_test_btn.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btnm/lv_test_btnm.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cb/lv_test_cb.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_chart/lv_test_chart.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_canvas/lv_test_canvas.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cont/lv_test_cont.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_ddlist/lv_test_ddlist.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_gauge/lv_test_gauge.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_img/lv_test_img.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_imgbtn/lv_test_imgbtn.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_kb/lv_test_kb.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_label/lv_test_label.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_led/lv_test_led.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_line/lv_test_line.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_list/lv_test_list.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_lmeter/lv_test_lmeter.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_mbox/lv_test_mbox.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_page/lv_test_page.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_preload/lv_test_preload.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_roller/lv_test_roller.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_slider/lv_test_slider.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_sw/lv_test_sw.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_ta/lv_test_ta.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_tabview/lv_test_tabview.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_table/lv_test_table.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_tileview/lv_test_tileview.mk
include $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_win/lv_test_win.mk
include $(LVGL_DIR)/lv_examples/lv_apps/benchmark/benchmark.mk
include $(LVGL_DIR)/lv_examples/lv_apps/demo/demo.mk
include $(LVGL_DIR)/lv_examples/lv_apps/sysmon/sysmon.mk
include $(LVGL_DIR)/lv_examples/lv_apps/terminal/terminal.mk
include $(LVGL_DIR)/lv_examples/lv_apps/tpcal/tpcal.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/1_hello_world/lv_tutorial_hello_world.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/2_objects/lv_tutorial_objects.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/3_styles/lv_tutorial_styles.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/4_themes/lv_tutorial_themes.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/5_antialiasing/lv_tutorial_antialiasing.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/6_images/lv_tutorial_images.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/7_fonts/lv_tutorial_fonts.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/8_animations/lv_tutorial_animations.mk
include $(LVGL_DIR)/lv_examples/lv_tutorial/9_responsive/lv_tutorial_responsive.mk

View File

@ -0,0 +1,87 @@
/**
* @file lv_test.h
*
*/
#ifndef LV_TEST_H
#define LV_TEST_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lv_ex_conf.h"
#else
#include "../../lv_ex_conf.h"
#endif
#if LV_USE_TESTS
#include "../lv_examples.h"
#include "lv_test_obj/lv_test_obj.h"
#include "lv_test_objx/lv_test_arc/lv_test_arc.h"
#include "lv_test_objx/lv_test_bar/lv_test_bar.h"
#include "lv_test_objx/lv_test_btn/lv_test_btn.h"
#include "lv_test_objx/lv_test_btnm/lv_test_btnm.h"
#include "lv_test_objx/lv_test_cb/lv_test_cb.h"
#include "lv_test_objx/lv_test_canvas/lv_test_canvas.h"
#include "lv_test_objx/lv_test_chart/lv_test_chart.h"
#include "lv_test_objx/lv_test_cont/lv_test_cont.h"
#include "lv_test_objx/lv_test_ddlist/lv_test_ddlist.h"
#include "lv_test_objx/lv_test_gauge/lv_test_gauge.h"
#include "lv_test_objx/lv_test_img/lv_test_img.h"
#include "lv_test_objx/lv_test_imgbtn/lv_test_imgbtn.h"
#include "lv_test_objx/lv_test_kb/lv_test_kb.h"
#include "lv_test_objx/lv_test_label/lv_test_label.h"
#include "lv_test_objx/lv_test_led/lv_test_led.h"
#include "lv_test_objx/lv_test_line/lv_test_line.h"
#include "lv_test_objx/lv_test_list/lv_test_list.h"
#include "lv_test_objx/lv_test_lmeter/lv_test_lmeter.h"
#include "lv_test_objx/lv_test_mbox/lv_test_mbox.h"
#include "lv_test_objx/lv_test_page/lv_test_page.h"
#include "lv_test_objx/lv_test_preload/lv_test_preload.h"
#include "lv_test_objx/lv_test_roller/lv_test_roller.h"
#include "lv_test_objx/lv_test_slider/lv_test_slider.h"
#include "lv_test_objx/lv_test_sw/lv_test_sw.h"
#include "lv_test_objx/lv_test_ta/lv_test_ta.h"
#include "lv_test_objx/lv_test_table/lv_test_table.h"
#include "lv_test_objx/lv_test_tabview/lv_test_tabview.h"
#include "lv_test_objx/lv_test_tileview/lv_test_tileview.h"
#include "lv_test_objx/lv_test_win/lv_test_win.h"
#include "lv_test_theme/lv_test_theme_1.h"
#include "lv_test_theme/lv_test_theme_2.h"
#include "lv_test_group/lv_test_group.h"
#include "lv_test_stress/lv_test_stress.h"
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**********************
* MACROS
**********************/
#endif /* LV_USE_TESTS */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_H*/

View File

@ -0,0 +1,361 @@
/**
* @file lv_test_group.c
*
*/
/*********************
* INCLUDES
*********************/
#include "stdio.h"
#include "lv_test_group.h"
#if LV_USE_GROUP && LV_USE_TESTS
#if LV_EX_KEYBOARD || LV_EX_MOUSEWHEEL
#include "lv_drv_conf.h"
#endif
#if LV_EX_KEYBOARD
#include "lv_drivers/indev/keyboard.h"
#endif
#if LV_EX_MOUSEWHEEL
#include "lv_drivers/indev/mousewheel.h"
#endif
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/*To emulate some keys on the window header*/
static bool win_btn_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
static void win_btn_event_handler(lv_obj_t * btn, lv_event_t event);
static void group_focus_cb(lv_group_t * group);
static void general_event_handler(lv_obj_t * obj, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
static uint32_t last_key;
static lv_indev_state_t last_key_state = LV_INDEV_STATE_REL;
static lv_group_t * g;
static lv_obj_t * win;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create base groups to test their functionalities
*/
lv_group_t *lv_test_group_1(void)
{
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
g = lv_group_create();
lv_group_set_focus_cb(g, group_focus_cb);
/*A keyboard will be simulated*/
lv_indev_drv_t sim_kb_drv;
lv_indev_drv_init(&sim_kb_drv);
sim_kb_drv.type = LV_INDEV_TYPE_KEYPAD;
sim_kb_drv.read_cb = win_btn_read;
lv_indev_t * win_kb_indev = lv_indev_drv_register(&sim_kb_drv);
lv_indev_set_group(win_kb_indev, g);
#if LV_EX_KEYBOARD
lv_indev_drv_t real_kb_drv;
lv_indev_drv_init(&real_kb_drv);
real_kb_drv.type = LV_INDEV_TYPE_KEYPAD;
real_kb_drv.read_cb = keyboard_read;
lv_indev_t * real_kb_indev = lv_indev_drv_register(&real_kb_drv);
lv_indev_set_group(real_kb_indev, g);
#endif
#if LV_EX_MOUSEWHEEL
lv_indev_drv_t enc_drv;
lv_indev_drv_init(&enc_drv);
enc_drv.type = LV_INDEV_TYPE_ENCODER;
enc_drv.read_cb = mousewheel_read;
lv_indev_t * enc_indev = lv_indev_drv_register(&enc_drv);
lv_indev_set_group(enc_indev, g);
#endif
/*Create a window to hold all the objects*/
static lv_style_t win_style;
lv_style_copy(&win_style, &lv_style_transp);
win_style.body.padding.left= LV_DPI / 6;
win_style.body.padding.right = LV_DPI / 6;
win_style.body.padding.top = LV_DPI / 6;
win_style.body.padding.bottom = LV_DPI / 6;
win_style.body.padding.inner = LV_DPI / 6;
win = lv_win_create(lv_disp_get_scr_act(NULL), NULL);
lv_win_set_title(win, "Group test");
lv_page_set_scrl_layout(lv_win_get_content(win), LV_LAYOUT_PRETTY);
lv_win_set_style(win, LV_WIN_STYLE_CONTENT, &win_style);
lv_group_add_obj(g, lv_win_get_content(win));
lv_obj_set_event_cb(lv_win_get_content(win), general_event_handler);
lv_obj_t * win_btn = lv_win_add_btn(win, LV_SYMBOL_RIGHT);
lv_obj_set_protect(win_btn, LV_PROTECT_CLICK_FOCUS);
lv_obj_set_event_cb(win_btn, win_btn_event_handler);
win_btn = lv_win_add_btn(win, LV_SYMBOL_NEXT);
lv_obj_set_protect(win_btn, LV_PROTECT_CLICK_FOCUS);
lv_obj_set_event_cb(win_btn, win_btn_event_handler);
win_btn = lv_win_add_btn(win, LV_SYMBOL_OK);
lv_obj_set_protect(win_btn, LV_PROTECT_CLICK_FOCUS);
lv_obj_set_event_cb(win_btn, win_btn_event_handler);
win_btn = lv_win_add_btn(win, LV_SYMBOL_PREV);
lv_obj_set_protect(win_btn, LV_PROTECT_CLICK_FOCUS);
lv_obj_set_event_cb(win_btn, win_btn_event_handler);
win_btn = lv_win_add_btn(win, LV_SYMBOL_LEFT);
lv_obj_set_protect(win_btn, LV_PROTECT_CLICK_FOCUS);
lv_obj_set_event_cb(win_btn, win_btn_event_handler);
win_btn = lv_win_add_btn(win, LV_SYMBOL_DUMMY"a");
lv_obj_set_protect(win_btn, LV_PROTECT_CLICK_FOCUS);
lv_obj_set_event_cb(win_btn, win_btn_event_handler);
lv_obj_t * obj;
obj = lv_spinbox_create(win, NULL);
lv_obj_set_event_cb(obj, general_event_handler);
lv_spinbox_set_digit_format(obj, 5, 2);
lv_group_add_obj(g, obj);
obj = lv_btn_create(win, NULL);
lv_group_add_obj(g, obj);
lv_btn_set_toggle(obj, true);
lv_obj_set_event_cb(obj, general_event_handler);
obj = lv_label_create(obj, NULL);
lv_label_set_text(obj, "Button");
LV_IMG_DECLARE(imgbtn_img_1);
LV_IMG_DECLARE(imgbtn_img_2);
obj = lv_imgbtn_create(win, NULL);
lv_imgbtn_set_src(obj, LV_BTN_STATE_REL, &imgbtn_img_1);
lv_imgbtn_set_src(obj, LV_BTN_STATE_PR, &imgbtn_img_2);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_cb_create(win, NULL);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_slider_create(win, NULL);
lv_slider_set_range(obj, 0, 10);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_sw_create(win, NULL);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_ddlist_create(win, NULL);
lv_ddlist_set_options(obj, "Item1\nItem2\nItem3\nItem4\nItem5\nItem6");
lv_ddlist_set_fix_height(obj, LV_DPI);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_roller_create(win, NULL);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
lv_obj_t * ta = lv_ta_create(win, NULL);
lv_ta_set_cursor_type(ta, LV_CURSOR_BLOCK);
lv_obj_set_event_cb(ta, general_event_handler);
lv_group_add_obj(g, ta);
obj = lv_kb_create(win, NULL);
lv_obj_set_size(obj, hres - LV_DPI, vres / 2);
lv_kb_set_ta(obj, ta);
lv_kb_set_cursor_manage(obj, true);
lv_group_add_obj(g, obj);
static const char * mbox_btns[] = {"Yes", "No", ""};
obj = lv_mbox_create(win, NULL);
lv_mbox_add_btns(obj, mbox_btns);
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_list_create(win, NULL);
lv_obj_set_event_cb(obj, general_event_handler);
const char * list_txts[] = {"File 1", "File 2", "File 3", "File 4", "File 5", "File 6", ""};
uint32_t i;
for(i = 0; list_txts[i][0] != '\0'; i++) {
lv_obj_t * b;
b = lv_list_add_btn(obj, LV_SYMBOL_FILE, list_txts[i]);
lv_obj_set_event_cb(b, general_event_handler);
}
lv_group_add_obj(g, obj);
obj = lv_page_create(win, NULL);
lv_obj_set_size(obj, 2 * LV_DPI, LV_DPI);
lv_group_add_obj(g, obj);
obj = lv_label_create(obj, NULL);
lv_label_set_text(obj, "I'm a page\nwith a long \ntext.\n\n"
"You can try \nto scroll me\nwith UP and DOWN\nbuttons.");
lv_label_set_align(obj, LV_LABEL_ALIGN_CENTER);
lv_obj_align(obj, NULL, LV_ALIGN_CENTER, 0, 0);
obj = lv_tabview_create(win, NULL);
lv_obj_set_size(obj, hres / 2, vres / 2);
lv_obj_t * t1 = lv_tabview_add_tab(obj, "Tab 1");
lv_obj_t * t2 = lv_tabview_add_tab(obj, "Tab 2");
lv_obj_set_event_cb(obj, general_event_handler);
lv_group_add_obj(g, obj);
obj = lv_label_create(t1, NULL);
lv_label_set_text(obj, "This is the content\nof the first tab");
obj = lv_label_create(t2, NULL);
lv_label_set_text(obj, "This is the content\nof the second tab");
return g;
}
/**********************
* STATIC FUNCTIONS
**********************/
/**
* Read function for the input device which emulates keys on the window header
* @param indev_drv pointer to the related input device driver
* @param data store the last key and its state here
* @return false because the reading in not buffered
*/
static bool win_btn_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data)
{
(void) indev_drv; /*Unused*/
data->state = last_key_state;
data->key = last_key;
return false;
}
/**
* Called when a control button on the window header is released to change the key state to RELEASED
* @param btn pointer t to a button on the window header
* @return LV_RES_OK because the button is not deleted
*/
static void win_btn_event_handler(lv_obj_t * btn, lv_event_t event)
{
(void) btn; /*Unused*/
uint32_t key = 0;
lv_obj_t * label = lv_obj_get_child(btn, NULL);
const char * txt = lv_label_get_text(label);
if(strcmp(txt, LV_SYMBOL_PREV) == 0) key = LV_KEY_PREV;
else if(strcmp(txt, LV_SYMBOL_NEXT) == 0) key = LV_KEY_NEXT;
else if(strcmp(txt, LV_SYMBOL_LEFT) == 0) key = LV_KEY_LEFT;
else if(strcmp(txt, LV_SYMBOL_RIGHT) == 0) key = LV_KEY_RIGHT;
else if(strcmp(txt, LV_SYMBOL_OK) == 0) key = LV_KEY_ENTER;
else key = 'a';
switch(event) {
case LV_EVENT_PRESSED:
last_key_state = LV_INDEV_STATE_PR;
last_key = key;
break;
case LV_EVENT_CLICKED:
case LV_EVENT_PRESS_LOST:
last_key_state = LV_INDEV_STATE_REL;
last_key = 0;
break;
default:
break;
}
}
static void group_focus_cb(lv_group_t * group)
{
lv_obj_t * f = lv_group_get_focused(group);
if(f != win) lv_win_focus(win, f, LV_ANIM_ON);
}
static void general_event_handler(lv_obj_t * obj, lv_event_t event)
{
(void) obj; /*Unused*/
#if LV_EX_PRINTF
switch(event) {
case LV_EVENT_PRESSED:
printf("Pressed\n");
break;
case LV_EVENT_SHORT_CLICKED:
printf("Short clicked\n");
break;
case LV_EVENT_CLICKED:
printf("Clicked\n");
break;
case LV_EVENT_LONG_PRESSED:
printf("Long press\n");
break;
case LV_EVENT_LONG_PRESSED_REPEAT:
printf("Long press repeat\n");
break;
case LV_EVENT_VALUE_CHANGED:
printf("Value changed: %s\n", lv_event_get_data() ? (const char *)lv_event_get_data() : "");
break;
case LV_EVENT_RELEASED:
printf("Released\n");
break;
case LV_EVENT_DRAG_BEGIN:
printf("Drag begin\n");
break;
case LV_EVENT_DRAG_END:
printf("Drag end\n");
break;
case LV_EVENT_DRAG_THROW_BEGIN:
printf("Drag throw begin\n");
break;
case LV_EVENT_FOCUSED:
printf("Focused\n");
break;
case LV_EVENT_DEFOCUSED:
printf("Defocused\n");
break;
default:
break;
}
#endif
}
#endif /* LV_USE_GROUP && LV_USE_TESTS */

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_group.h
*
*/
#ifndef LV_TEST_GROUP_H
#define LV_TEST_GROUP_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_GROUP && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create base groups to test their functionalities
*/
lv_group_t *lv_test_group_1(void);
/**********************
* MACROS
**********************/
#endif /* LV_USE_GROUP && LV_USE_TESTS */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_BAR_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_group.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_group
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_group
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_group"

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,163 @@
/**
* @file lv_test_task.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_task.h"
#include <stdio.h>
#if LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
typedef struct {
const char * name;
lv_task_prio_t prio;
uint32_t period;
uint32_t delay;
} lv_test_task_dsc_t;
/**********************
* STATIC PROTOTYPES
**********************/
static void delay_task(lv_task_t * task);
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/*
* TEST ENVIRONMENT (only for lv_test_task)
* - Don't initialize LittlevGL (don't call l'v_init()')
* - Initialize 'lv_mem' and 'lv_task':
* lv_mem_init();
* lv_task_init();
* - Set up the tick interface: e.g. 1 ms Timer with 'lv_tick_inc(1);'
* - Call a test: lv_test_task_1/2/3();
*/
/**
* Test the scheduling with various periods and priorities.
*/
void lv_test_task_1(void)
{
static lv_test_task_dsc_t dsc[] = {
{.name = "highest 2", .prio = LV_TASK_PRIO_HIGHEST, .period = 5000, .delay = 400},
{.name = "highest 1", .prio = LV_TASK_PRIO_HIGHEST, .period = 4000, .delay = 300},
{.name = "high 1", .prio = LV_TASK_PRIO_HIGH, .period = 3000, .delay = 100},
{.name = "mid 4", .prio = LV_TASK_PRIO_MID, .period = 500, .delay = 1000},
{.name = "mid 3", .prio = LV_TASK_PRIO_MID, .period = 500, .delay = 100},
{.name = "mid 2", .prio = LV_TASK_PRIO_MID, .period = 500, .delay = 3000},
{.name = "mid 1", .prio = LV_TASK_PRIO_MID, .period = 500, .delay = 100},
{.name = ""}
};
uint8_t i;
for(i = 0; dsc[i].name[0] != '\0'; i++) {
lv_task_create(delay_task, dsc[i].period, dsc[i].prio, &dsc[i]);
}
}
/**
* Create a lot of short task and see their order. They should be executed according to their priority
*/
void lv_test_task_2(void)
{
static lv_test_task_dsc_t dsc[] = {
{.name = "low 1", .prio = LV_TASK_PRIO_LOW, .period = 5000, .delay = 5},
{.name = "mid 1", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 5},
{.name = "highest 1", .prio = LV_TASK_PRIO_HIGHEST, .period = 5000, .delay = 5},
{.name = "highest 2", .prio = LV_TASK_PRIO_HIGHEST, .period = 5000, .delay = 5},
{.name = "mid 2", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 5},
{.name = "high 1", .prio = LV_TASK_PRIO_HIGH, .period = 5000, .delay = 5},
{.name = "mid 3", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 5},
{.name = "high 2", .prio = LV_TASK_PRIO_HIGH, .period = 5000, .delay = 5},
{.name = "high 3", .prio = LV_TASK_PRIO_HIGH, .period = 5000, .delay = 5},
{.name = "mid 4", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 5},
{.name = "high 4", .prio = LV_TASK_PRIO_HIGH, .period = 5000, .delay = 5},
{.name = "lowest 1", .prio = LV_TASK_PRIO_LOWEST, .period = 5000, .delay = 5},
{.name = "low 2", .prio = LV_TASK_PRIO_LOW, .period = 5000, .delay = 5},
{.name = "lowest 2", .prio = LV_TASK_PRIO_LOWEST, .period = 5000, .delay = 5},
{.name = "low 3", .prio = LV_TASK_PRIO_LOW, .period = 5000, .delay = 5},
{.name = ""}
};
uint8_t i;
for(i = 0; dsc[i].name[0] != '\0'; i++) {
lv_task_create(delay_task, 1000, dsc[i].prio, &dsc[i]);
}
}
/**
* Change the priority later
*/
void lv_test_task_3(void)
{
static lv_test_task_dsc_t dsc[] = {
{.name = "highest 1", .prio = LV_TASK_PRIO_HIGHEST, .period = 5000, .delay = 10},
{.name = "highest 2", .prio = LV_TASK_PRIO_HIGHEST, .period = 5000, .delay = 10},
{.name = "high 1", .prio = LV_TASK_PRIO_HIGH, .period = 5000, .delay = 10},
{.name = "mid 1", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 10},
{.name = "mid 2", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 10},
{.name = "should be high 2", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 10},
{.name = "mid 3", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 10},
{.name = "mid 4", .prio = LV_TASK_PRIO_MID, .period = 5000, .delay = 10},
{.name = "low 1", .prio = LV_TASK_PRIO_LOW, .period = 5000, .delay = 10},
{.name = "lowest 1", .prio = LV_TASK_PRIO_LOWEST, .period = 5000, .delay = 10},
{.name = ""}
};
uint8_t i;
lv_task_t * mod_prio = NULL;
for(i = 0; dsc[i].name[0] != '\0'; i++) {
lv_task_t * tmp = lv_task_create(delay_task, dsc[i].period, dsc[i].prio, &dsc[i]);
if(strcmp(dsc[i].name, "should be high 2") == 0) {
mod_prio = tmp;
}
}
lv_task_set_prio(mod_prio, LV_TASK_PRIO_HIGH);
}
/**********************
* STATIC FUNCTIONS
**********************/
static void delay_task(lv_task_t * task)
{
lv_test_task_dsc_t * dsc = task->user_data;
#if LV_EX_PRINTF
printf("%s: %d\n", dsc->name, dsc->delay);
#endif
uint32_t act = lv_tick_get();
while(lv_tick_elaps(act) < dsc->delay);
}
#endif

View File

@ -0,0 +1,64 @@
/**
* @file lv_test_task.h
*
*/
#ifndef LV_TEST_TASK_H
#define LV_TEST_TASK_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Test the scheduling with various periods and priorities.
*/
void lv_test_task_1(void);
/**
* Create a lot of short task and see their order. They should be executed according to their priority
*/
void lv_test_task_2(void);
/**
* Change the priority later
*/
void lv_test_task_3(void);
/**********************
* MACROS
**********************/
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_TASK_H*/

View File

@ -0,0 +1,104 @@
/**
* @file lv_test_object.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_obj.h"
#include "../../lv_examples.h" /*Just to include somewhere to test 'lv_example' version*/
#if LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create base objects to test their functionalities
*/
void lv_test_object_1(void)
{
/* Create a default object and set LV_STYLE_PRETTY_COLOR style */
lv_obj_t * obj1 = lv_obj_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_style(obj1, &lv_style_plain_color);
/*Create an object and set a user create style for it*/
static lv_style_t style_obj2;
lv_style_copy(&style_obj2, &lv_style_pretty);
style_obj2.body.main_color = LV_COLOR_RED;
style_obj2.body.grad_color = LV_COLOR_BLACK;
style_obj2.body.radius = 0;
style_obj2.body.border.color = LV_COLOR_WHITE;
style_obj2.body.border.width = 4;
style_obj2.body.opa = LV_OPA_50;
style_obj2.body.shadow.width = 10;
lv_obj_t * obj2 = lv_obj_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(obj2, 30, 30);
lv_obj_align(obj2, obj1, LV_ALIGN_OUT_RIGHT_MID, 20, 0);
lv_obj_set_style(obj2, &style_obj2);
/*Test drag, drag_parent, drag throw and copy*/
lv_obj_t * obj3_parent = lv_obj_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_align(obj3_parent, obj2, LV_ALIGN_OUT_RIGHT_MID, 20, 0);
lv_obj_set_style(obj3_parent, &lv_style_pretty);
lv_obj_set_drag(obj3_parent, true);
lv_obj_set_drag_throw(obj3_parent, true);
lv_obj_t * obj3 = lv_obj_create(obj3_parent, obj2);
lv_obj_align(obj3, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_click(obj3, true);
lv_obj_set_drag_parent(obj3, true);
/*Create a parent and 3 objects on it. Hide the parent but move 2 children to the screen*/
lv_obj_t * obj4_parent = lv_obj_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(obj4_parent, lv_obj_get_x(obj1) + 10, lv_obj_get_y(obj1) + lv_obj_get_height(obj1) + 20);
lv_obj_set_style(obj4_parent, &lv_style_pretty_color);
lv_obj_set_hidden(obj4_parent, true); /*Hide this and all children objects*/
lv_obj_t * obj4_1 = lv_obj_create(obj4_parent, obj2);
lv_obj_set_pos(obj4_1, 10, 10);
lv_obj_t * obj4_2 = lv_obj_create(obj4_parent, obj2);
lv_obj_set_pos(obj4_2, 20, 20);
lv_obj_t * obj4_3 = lv_obj_create(obj4_parent, obj2);
lv_obj_set_pos(obj4_3, 30, 30);
/*Move two children to the screen (now they will be visible)*/
lv_obj_set_parent(obj4_2, lv_disp_get_scr_act(NULL));
lv_obj_align(obj4_2, obj4_parent, LV_ALIGN_OUT_RIGHT_MID, 10, 0);
lv_obj_set_parent(obj4_3, lv_disp_get_scr_act(NULL));
lv_obj_align(obj4_3, obj4_parent, LV_ALIGN_OUT_RIGHT_MID, 20, 5);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_object.h
*
*/
#ifndef LV_TEST_OBJECT_H
#define LV_TEST_OBJECT_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../lvgl/lvgl.h"
#include "../../../lv_ex_conf.h"
#endif
#if LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create base objects to test their functionalities
*/
void lv_test_object_1(void);
/**********************
* MACROS
**********************/
#endif /* LV_USE_TESTS */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_BAR_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_obj.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_obj
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_obj
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_obj"

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -0,0 +1,67 @@
/**
* @file lv_test_arc.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_arc.h"
#if LV_USE_ARC && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create arcs to test their functionalities
*/
void lv_test_arc_1(void)
{
/* Create a default object*/
lv_obj_t * arc1 = lv_arc_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(arc1, 10, 10);
/* Modify size, position and angles*/
lv_obj_t * arc2 = lv_arc_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(arc2, 100, 100);
lv_obj_align(arc2, arc1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
lv_arc_set_angles(arc2, 0, 250);
/* Copy 'arc2' and set a new style for it */
static lv_style_t style1;
lv_style_copy(&style1, &lv_style_plain);
style1.line.color = LV_COLOR_RED;
style1.line.width = 8;
lv_obj_t * arc3 = lv_arc_create(lv_disp_get_scr_act(NULL), arc2);
lv_obj_set_style(arc3, &style1);
lv_obj_align(arc3, arc2, LV_ALIGN_OUT_RIGHT_TOP, 20, 0);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_ARC && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_arc.h
*
*/
#ifndef LV_TEST_ARC_H
#define LV_TEST_ARC_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_ARC && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create arcs to test their functionalities
*/
void lv_test_arc_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_ARC && LV_USE_TESTS*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_BAR_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_arc.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_arc
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_arc
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_arc"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,92 @@
/**
* @file lv_test_bar.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_bar.h"
#if LV_USE_BAR && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create bars to test their functionalities
*/
void lv_test_bar_1(void)
{
/* Create a default object*/
lv_obj_t * bar1 = lv_bar_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(bar1, 10, 10);
lv_bar_set_value(bar1, 40, false);
/* Modify size and position, range and set to 75 % */
lv_obj_t * bar2 = lv_bar_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(bar2, 200, 50);
lv_obj_align(bar2, bar1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
lv_bar_set_range(bar2, -50, 50);
lv_bar_set_value(bar2, 25, false);
/* Copy 'bar2' but set its size to be vertical (indicator at 75%)*/
lv_obj_t * bar3 = lv_bar_create(lv_disp_get_scr_act(NULL), bar2);
lv_obj_set_size(bar3, 50, 200);
lv_obj_align(bar3, bar2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
/* Copy 'bar2' and set new style for it
* (like 'bar2' on its left but dark bg, thin red indicator with big light)*/
static lv_style_t bar_bg;
lv_style_copy(&bar_bg, &lv_style_pretty);
bar_bg.body.main_color = LV_COLOR_BLACK;
static lv_style_t bar_indic;
lv_style_copy(&bar_indic, &lv_style_pretty);
bar_indic.body.main_color = LV_COLOR_RED;
bar_indic.body.grad_color = LV_COLOR_MAROON;
bar_indic.body.shadow.color = LV_COLOR_RED;
bar_indic.body.shadow.width = 20;
bar_indic.body.padding.top = 10; /*Set the padding around the indicator*/
bar_indic.body.padding.bottom = 3;
bar_indic.body.padding.left = 3;
bar_indic.body.padding.right = 10;
lv_obj_t * bar4 = lv_bar_create(lv_disp_get_scr_act(NULL), bar2);
lv_obj_align(bar4, bar2, LV_ALIGN_OUT_RIGHT_MID, 20, 0);
lv_bar_set_style(bar4, LV_BAR_STYLE_BG, &bar_bg);
lv_bar_set_style(bar4, LV_BAR_STYLE_INDIC, &bar_indic);
/* Copy 'bar4' but set its size to be vertical*/
lv_obj_t * bar5 = lv_bar_create(lv_disp_get_scr_act(NULL), bar4);
lv_obj_set_size(bar5, 50, 200);
lv_obj_align(bar5, bar4, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_BAR && LV_USE_TESTS*/

View File

@ -0,0 +1,55 @@
/**
* @file lv_test_bar.h
*
*/
#ifndef LV_TEST_BAR_H
#define LV_TEST_BAR_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_BAR && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create bars to test their functionalities
*/
void lv_test_bar_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_BAR && LV_USE_TESTS*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_BAR_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_bar.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_bar
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_bar
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_bar"

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,135 @@
/**
* @file lv_test_btn.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_btn.h"
#if LV_USE_BTN && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void btn_event_cb(lv_obj_t * btn, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create buttons to test their functionalities
*/
void lv_test_btn_1(void)
{
/* Create a button which looks well */
lv_obj_t * btn1 = lv_btn_create(lv_disp_get_scr_act(NULL), NULL);
/* Create a default button manually set to toggled state*/
lv_obj_t * btn2 = lv_btn_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_align(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_btn_set_state(btn2, LV_BTN_STATE_TGL_REL);
/* Create a button which can be toggled */
lv_obj_t * btn3 = lv_btn_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_align(btn3, btn2, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_btn_set_toggle(btn3, true);
/* Test actions:
* Press: increase width, Release: decrease width, Long press: delete */
lv_obj_t * btn4 = lv_btn_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_align(btn4, btn1, LV_ALIGN_OUT_RIGHT_MID, 20, 0);
lv_obj_set_event_cb(btn4, btn_event_cb);
/* Test styles and copy. Same as 'btn4' but different styles */
static lv_style_t style_rel;
lv_style_copy(&style_rel, &lv_style_pretty);
style_rel.body.main_color = LV_COLOR_ORANGE;
style_rel.body.grad_color = LV_COLOR_BLACK;
style_rel.body.border.color = LV_COLOR_RED;
style_rel.body.shadow.color = LV_COLOR_MAROON;
style_rel.body.shadow.width = 10;
static lv_style_t style_pr;
lv_style_copy(&style_pr, &lv_style_pretty);
style_pr.body.opa = LV_OPA_TRANSP;
style_pr.body.border.color = LV_COLOR_RED;
style_pr.body.border.width = 4;
/*Skip 'TGL_PR' (leave unchanged)*/
static lv_style_t style_tpr;
lv_style_copy(&style_tpr, &lv_style_pretty);
style_tpr.body.opa = LV_OPA_TRANSP;
style_tpr.body.border.color = LV_COLOR_RED;
style_tpr.body.border.width = 4;
static lv_style_t style_ina;
lv_style_copy(&style_ina, &lv_style_pretty);
style_ina.body.main_color = LV_COLOR_SILVER;
style_ina.body.grad_color = LV_COLOR_GRAY;
style_ina.body.border.color = LV_COLOR_RED;
/*Create styled button*/
lv_obj_t * btn5 = lv_btn_create(lv_scr_act(), btn4);
lv_obj_align(btn5, btn4, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_btn_set_style(btn5, LV_BTN_STYLE_REL, &style_rel);
lv_btn_set_style(btn5, LV_BTN_STYLE_PR, &style_pr);
lv_btn_set_style(btn5, LV_BTN_STYLE_TGL_PR, &style_tpr);
lv_btn_set_style(btn5, LV_BTN_STYLE_INA, &style_ina);
lv_btn_set_toggle(btn5, true);
/* Test style copy and inactive state*/
lv_obj_t * btn6 = lv_btn_create(lv_scr_act(), btn5);
lv_obj_align(btn6, btn5, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_btn_set_state(btn6, LV_BTN_STATE_INA);
/*Test horizontal fit and default layout (CENTER)*/
lv_obj_t * btn7 = lv_btn_create(lv_scr_act(), NULL);
lv_btn_set_fit2(btn7, LV_FIT_TIGHT, LV_FIT_NONE);
lv_obj_t * label = lv_label_create(btn7, NULL);
lv_label_set_text(label, "A quite long text");
label = lv_label_create(btn7, NULL);
lv_label_set_text(label, "Short text");
lv_obj_align(btn7, btn4, LV_ALIGN_OUT_RIGHT_TOP, 20, 0);
}
/**********************
* STATIC FUNCTIONS
**********************/
static void btn_event_cb(lv_obj_t * btn, lv_event_t event)
{
if(event == LV_EVENT_PRESSED) {
lv_obj_set_width(btn, lv_obj_get_width(btn) + (10));
}
else if(event == LV_EVENT_RELEASED) {
lv_obj_set_width(btn, lv_obj_get_width(btn) - (10));
}
else if(event == LV_EVENT_LONG_PRESSED) {
lv_obj_del(btn);
}
}
#endif /*LV_USE_BTN && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_btn.h
*
*/
#ifndef LV_TEST_BTN_H
#define LV_TEST_BTN_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_BTN && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create buttons to test their functionalities
*/
void lv_test_btn_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_BTN*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_USE_BTN && LV_USE_TESTS*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_btn.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btn
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btn
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btn"

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,97 @@
/**
* @file lv_test_btnm.c
*
*/
/*********************
* INCLUDES
*********************/
#include <stdio.h> /*For printf in the action*/
#include "lv_test_btnm.h"
#if LV_USE_BTNM && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void btnm_event_cb(lv_obj_t * btnm, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
static const char * btnm_map[] = {"One line", "\n", "\212", "\242Ina", "\204üŰöŐ", "\221éÉ", "\n", "\214", "\202Left", ""};
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create button matrixes to test their functionalities
*/
void lv_test_btnm_1(void)
{
lv_coord_t hres = lv_disp_get_hor_res(NULL);
lv_coord_t vres = lv_disp_get_ver_res(NULL);
/* Default object
* GOAL: A button matrix with default buttons */
lv_obj_t * btnm1 = lv_btnm_create(lv_disp_get_scr_act(NULL), NULL);
/* Test map, size and position. Also try some features.
* GOAL: A button matrix with default buttons. */
static lv_style_t rel;
lv_style_copy(&rel, &lv_style_btn_tgl_rel);
rel.body.main_color = LV_COLOR_RED;
rel.body.grad_color = LV_COLOR_BLACK;
rel.text.color = LV_COLOR_YELLOW;
static lv_style_t pr;
lv_style_copy(&pr, &lv_style_btn_tgl_rel);
pr.body.main_color = LV_COLOR_ORANGE;
pr.body.grad_color = LV_COLOR_BLACK;
pr.text.color = LV_COLOR_WHITE;
lv_obj_t * btnm2 = lv_btnm_create(lv_disp_get_scr_act(NULL), NULL);
lv_btnm_set_map(btnm2, btnm_map);
lv_obj_set_size(btnm2, hres / 2, vres / 3);
lv_obj_align(btnm2, btnm1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
lv_btnm_set_btn_ctrl(btnm2, 2, LV_BTNM_CTRL_TGL_STATE);
lv_obj_set_event_cb(btnm2, btnm_event_cb);
lv_btnm_set_style(btnm2, LV_BTNM_STYLE_BTN_REL, &rel);
lv_btnm_set_style(btnm2, LV_BTNM_STYLE_BTN_PR, &pr);
}
/**********************
* STATIC FUNCTIONS
**********************/
static void btnm_event_cb(lv_obj_t * btnm, lv_event_t event)
{
(void) btnm; /*Unused*/
if(event != LV_EVENT_CLICKED) return;
#if LV_EX_PRINTF
const char * txt = lv_btnm_get_active_btn_text(btnm);
if(txt) {
printf("Key pressed: %s\n", txt);
}
#endif
}
#endif /* LV_USE_BTNM && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_btnm.h
*
*/
#ifndef LV_TEST_BTNM_H
#define LV_TEST_BTNM_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_BTNM && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create button matrixes to test their functionalities
*/
void lv_test_btnm_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_BTNM*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* LV_USE_BTNM && LV_USE_TESTS*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_btnm.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btnm
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btnm
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_btnm"

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,94 @@
/**
* @file lv_test_canvas.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_canvas.h"
#if LV_USE_CANVAS && LV_USE_TESTS
/*********************
* DEFINES
*********************/
#define CANVAS_WIDTH 100
#define CANVAS_HEIGHT 100
#define TEST_ROTATE 0
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create canvas to test its functionalities
*/
void lv_test_canvas_1(void)
{
static lv_style_t style;
lv_style_copy(&style, &lv_style_plain);
style.body.main_color = LV_COLOR_RED;
style.body.grad_color = LV_COLOR_MAROON;
style.body.radius = 4;
style.body.border.width = 2;
style.body.border.color = LV_COLOR_WHITE;
style.body.shadow.color = LV_COLOR_WHITE;
style.body.shadow.width = 4;
style.line.width = 2;
style.line.color = LV_COLOR_BLACK;
style.text.color = LV_COLOR_BLUE;
lv_obj_t * canvas = lv_canvas_create(lv_scr_act(), NULL);
static lv_color_t cbuf[LV_CANVAS_BUF_SIZE_TRUE_COLOR(CANVAS_WIDTH, CANVAS_HEIGHT)];
lv_canvas_set_buffer(canvas, cbuf, CANVAS_WIDTH, CANVAS_HEIGHT, LV_IMG_CF_TRUE_COLOR);
lv_obj_set_pos(canvas, 10, 10);
lv_canvas_fill_bg(canvas, LV_COLOR_SILVER);
lv_canvas_draw_rect(canvas, 40, 10, 50, 30, &style);
lv_canvas_draw_text(canvas, 5, 5, 100, &style, "ABC", LV_LABEL_ALIGN_LEFT);
const lv_point_t points[] = {{5, 40}, {35, 45}, {30, 80}, {10, 90}, {5, 40}};
lv_canvas_draw_polygon(canvas, points, 5, &style);
lv_canvas_draw_line(canvas, points, 5, &style);
lv_canvas_draw_arc(canvas, 70, 70, 20, 20, 250, &style);
#if TEST_ROTATE
/*Copy the current image to buffer and rotate it to the canvas */
lv_color_t cbuf_tmp[CANVAS_WIDTH * CANVAS_HEIGHT];
memcpy(cbuf_tmp, cbuf, sizeof(cbuf_tmp));
lv_img_dsc_t img;
img.data = (void *)cbuf_tmp;
img.header.cf = LV_IMG_CF_TRUE_COLOR;
img.header.w = CANVAS_WIDTH;
img.header.h = CANVAS_HEIGHT;
lv_canvas_fill_bg(canvas, LV_COLOR_SILVER);
lv_canvas_rotate(canvas, &img, 30, 0, 0, CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2);
#endif
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_CANVAS && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_canvas.h
*
*/
#ifndef LV_TEST_CANVAS_H
#define LV_TEST_CANVAS_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_CANVAS && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create canvas to test its functionalities
*/
void lv_test_canvas_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_CANVAS && LV_USE_TESTS*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_CANVAS_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_canvas.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_canvas
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_canvas
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_canvas"

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,103 @@
/**
* @file lv_test_cb.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_cb.h"
#if LV_USE_CB && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create check boxes to test their functionalities
*/
void lv_test_cb_1(void)
{
/* Create a default object*/
lv_obj_t * cb1 = lv_cb_create(lv_disp_get_scr_act(NULL), NULL);
/*Create an other check box and set its text*/
lv_obj_t * cb2 = lv_cb_create(lv_disp_get_scr_act(NULL), NULL);
lv_cb_set_text(cb2, "UTF8-text: üŰ öŐ íÍ");
lv_obj_align(cb2, cb1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
/*Create styles for the bullets*/
static lv_style_t cb3_styles[_LV_BTN_STATE_NUM];
lv_style_copy(&cb3_styles[LV_BTN_STATE_REL], &lv_style_plain);
cb3_styles[LV_BTN_STATE_REL].body.radius = LV_DPI / 20;
cb3_styles[LV_BTN_STATE_REL].body.border.width = 1;
cb3_styles[LV_BTN_STATE_REL].body.border.color = LV_COLOR_GRAY;
cb3_styles[LV_BTN_STATE_REL].body.main_color = LV_COLOR_WHITE;
cb3_styles[LV_BTN_STATE_REL].body.grad_color = LV_COLOR_SILVER;
lv_style_copy(&cb3_styles[LV_BTN_STATE_PR], &cb3_styles[LV_BTN_STATE_REL]);
cb3_styles[LV_BTN_STATE_PR].body.main_color = LV_COLOR_SILVER;
cb3_styles[LV_BTN_STATE_PR].body.grad_color = LV_COLOR_GRAY;
lv_style_copy(&cb3_styles[LV_BTN_STATE_TGL_REL], &cb3_styles[LV_BTN_STATE_REL]);
cb3_styles[LV_BTN_STATE_TGL_REL].body.border.width = 4;
cb3_styles[LV_BTN_STATE_TGL_REL].body.border.color = LV_COLOR_WHITE;
cb3_styles[LV_BTN_STATE_TGL_REL].body.border.opa = LV_OPA_70;
cb3_styles[LV_BTN_STATE_TGL_REL].body.main_color = LV_COLOR_GRAY;
cb3_styles[LV_BTN_STATE_TGL_REL].body.grad_color = LV_COLOR_BLACK;
lv_style_copy(&cb3_styles[LV_BTN_STATE_TGL_PR], &cb3_styles[LV_BTN_STATE_TGL_REL]);
cb3_styles[LV_BTN_STATE_TGL_PR].body.border.color = LV_COLOR_SILVER;
cb3_styles[LV_BTN_STATE_TGL_PR].body.border.opa = LV_OPA_70;
cb3_styles[LV_BTN_STATE_TGL_PR].body.main_color = LV_COLOR_GRAY;
cb3_styles[LV_BTN_STATE_TGL_PR].body.grad_color = LV_COLOR_BLACK;
lv_style_copy(&cb3_styles[LV_BTN_STATE_INA], &cb3_styles[LV_BTN_STATE_TGL_REL]);
cb3_styles[LV_BTN_STATE_INA].body.border.width = 1;
cb3_styles[LV_BTN_STATE_INA].body.border.color = LV_COLOR_GRAY;
cb3_styles[LV_BTN_STATE_INA].body.main_color = LV_COLOR_SILVER;
cb3_styles[LV_BTN_STATE_INA].body.grad_color = LV_COLOR_SILVER;
/*Copy the previous check box and apply the new styles*/
lv_obj_t * cb3 = lv_cb_create(lv_disp_get_scr_act(NULL), cb2);
lv_cb_set_style(cb3, LV_CB_STYLE_BOX_REL, &cb3_styles[LV_BTN_STATE_REL]);
lv_cb_set_style(cb3, LV_CB_STYLE_BOX_PR, &cb3_styles[LV_BTN_STATE_PR]);
lv_cb_set_style(cb3, LV_CB_STYLE_BOX_TGL_REL, &cb3_styles[LV_BTN_STATE_TGL_REL]);
lv_cb_set_style(cb3, LV_CB_STYLE_BOX_TGL_PR, &cb3_styles[LV_BTN_STATE_TGL_PR]);
lv_cb_set_style(cb3, LV_CB_STYLE_BOX_INA, &cb3_styles[LV_BTN_STATE_INA]);
lv_obj_align(cb3, cb2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
/*Copy the previous check box and set it to INACTIVE*/
lv_obj_t * cb4 = lv_cb_create(lv_disp_get_scr_act(NULL), cb3);
lv_obj_align(cb4, cb3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
lv_btn_set_state(cb4, LV_BTN_STATE_INA);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_CB && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_cb.h
*
*/
#ifndef LV_TEST_CB_H
#define LV_TEST_CB_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_CB && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create check boxes to test their functionalities
*/
void lv_test_cb_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_CB && LV_USE_TESTS*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_CB_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_cb.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cb
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cb
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cb"

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,306 @@
/**
* @file lv_test_chart.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_chart.h"
#include <stdlib.h>
#if LV_USE_BTN && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create charts to test their functionalities
*/
void lv_test_chart_1(void)
{
/* Create a default object*/
lv_obj_t * chart1 = lv_chart_create(lv_disp_get_scr_act(NULL), NULL);
lv_chart_series_t * dl1_1 = lv_chart_add_series(chart1, LV_COLOR_RED);
dl1_1->points[0] = 0;
dl1_1->points[1] = 25;
dl1_1->points[2] = 0;
dl1_1->points[3] = 50;
dl1_1->points[4] = 0;
dl1_1->points[5] = 75;
dl1_1->points[6] = 0;
dl1_1->points[7] = 100;
dl1_1->points[8] = 0;
lv_chart_series_t * dl1_2 = lv_chart_add_series(chart1, LV_COLOR_BLUE);
dl1_2->points[0] = 100;
lv_chart_refresh(chart1);
/* Create a chart with the same data and modify all appearance-like attributes
* also modify the number of points, range, and type*/
lv_obj_t * chart2 = lv_chart_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(chart2, 140, 100);
lv_obj_align(chart2, chart1, LV_ALIGN_OUT_RIGHT_MID, 10, 0);
lv_chart_set_series_darking(chart2, LV_OPA_90);
lv_chart_set_series_opa(chart2, LV_OPA_40);
lv_chart_set_series_width(chart2, 4);
lv_chart_set_type(chart2, LV_CHART_TYPE_POINT | LV_CHART_TYPE_LINE);
lv_chart_set_range(chart2, -20, 120);
lv_chart_set_div_line_count(chart2, 4, 0);
lv_chart_series_t * dl2_1 = lv_chart_add_series(chart2, LV_COLOR_RED);
dl2_1->points[0] = 0;
dl2_1->points[1] = 25;
dl2_1->points[2] = 0;
dl2_1->points[3] = 50;
dl2_1->points[4] = 0;
dl2_1->points[5] = 75;
dl2_1->points[6] = 0;
dl2_1->points[7] = 100;
dl2_1->points[8] = 0;
lv_chart_series_t * dl2_2 = lv_chart_add_series(chart2, LV_COLOR_BLUE);
dl2_2->points[0] = 100;
lv_chart_refresh(chart2);
lv_chart_set_point_count(chart2, 15);
/*Copy the previous chart, set COLUMN type and test lv_chart_set_next()*/
lv_obj_t * chart3 = lv_chart_create(lv_disp_get_scr_act(NULL), chart2);
lv_obj_align(chart3, chart2, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_chart_set_type(chart3, LV_CHART_TYPE_COLUMN);
lv_chart_series_t * dl3_1 = lv_chart_add_series(chart3, LV_COLOR_RED);
dl3_1->points[0] = 0;
dl3_1->points[1] = 25;
dl3_1->points[2] = 0;
dl3_1->points[3] = 50;
dl3_1->points[4] = 0;
dl3_1->points[5] = 75;
dl3_1->points[6] = 0;
dl3_1->points[7] = 100;
dl3_1->points[8] = 0;
lv_chart_series_t * dl3_2 = lv_chart_add_series(chart3, LV_COLOR_BLUE);
dl3_2->points[0] = 100;
lv_chart_refresh(chart2);
lv_chart_set_next(chart3, dl3_2, 110);
lv_chart_set_next(chart3, dl3_2, 110);
lv_chart_set_next(chart3, dl3_2, 110);
lv_chart_set_next(chart3, dl3_2, 110);
}
void lv_test_chart_2(uint8_t chart)
{
static lv_style_t scr_style;
lv_style_copy(&scr_style, lv_obj_get_style(lv_scr_act()));
scr_style.body.main_color = LV_COLOR_BLACK;
scr_style.body.grad_color = LV_COLOR_BLACK;
lv_obj_set_style(lv_scr_act(), &scr_style);
static lv_style_t style_chart_label;
lv_style_copy(&style_chart_label, &lv_style_plain);
style_chart_label.text.color = LV_COLOR_YELLOW;
style_chart_label.text.opa = LV_OPA_COVER;
static lv_obj_t * chart_label;
chart_label = lv_label_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_style(chart_label, &style_chart_label);
lv_label_set_align(chart_label, LV_LABEL_ALIGN_CENTER);
lv_label_set_long_mode(chart_label, LV_LABEL_LONG_EXPAND);
lv_label_set_text(chart_label, "Choose between 0 and 5");
lv_obj_align(chart_label, NULL, LV_ALIGN_IN_TOP_MID, 10, 20);
/*Create charts with axis ticks and labels*/
static lv_style_t style_chart_axes;
lv_style_copy(&style_chart_axes, &lv_style_plain);
style_chart_axes.body.shadow.color = LV_COLOR_WHITE;
style_chart_axes.body.shadow.width = 0;
style_chart_axes.line.color = LV_COLOR_GRAY;
style_chart_axes.line.width = 1;
style_chart_axes.line.opa = LV_OPA_70;
style_chart_axes.body.main_color = LV_COLOR_WHITE;
style_chart_axes.body.grad_color = LV_COLOR_BLACK;
style_chart_axes.body.opa = LV_OPA_COVER;
style_chart_axes.body.border.color = LV_COLOR_GREEN;
style_chart_axes.body.border.width = 1;
style_chart_axes.body.border.opa = LV_OPA_70;
style_chart_axes.text.color = LV_COLOR_WHITE;
style_chart_axes.text.opa = LV_OPA_COVER;
lv_obj_t * chart_axes = lv_chart_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_size(chart_axes, (LV_HOR_RES * 0.70), (LV_VER_RES * 0.60) );
lv_obj_set_style(chart_axes, &style_chart_axes);
lv_obj_align(chart_axes, chart_label, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);
lv_chart_set_margin(chart_axes, 100);
lv_chart_set_type(chart_axes, LV_CHART_TYPE_COLUMN);
lv_chart_set_div_line_count(chart_axes, 0, 0);
lv_chart_set_point_count(chart_axes, 24);
lv_chart_set_series_opa(chart_axes, LV_OPA_COVER);
lv_chart_set_series_width(chart_axes, 1);
lv_chart_series_t * ser = lv_chart_add_series(chart_axes, LV_COLOR_RED);
lv_chart_set_range(chart_axes, 0, 100);
// some pseudo-random data
uint8_t i;
for(i = 0; i < 24; i++)
{
/* add random points between 0 an 100 */
lv_chart_set_next(chart_axes, ser, (rand() % 101));
}
switch( chart )
{
case 0:
{
lv_label_set_text(chart_label, "Chart 0");
lv_chart_set_x_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_y_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_x_tick_texts(chart_axes, "0\n" "1\n" "2\n" "3\n" "4\n" "X[%]", 2, 0 );
lv_chart_set_y_tick_texts(chart_axes, "0\n" "1\n" "2\n" "3\n" "4\n" "Y[$]", 2, 0 );
break;
}
case 1:
{
lv_label_set_text(chart_label, "Chart 1");
lv_chart_set_x_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_y_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_x_tick_texts(chart_axes, "X[%]\n" "1\n" "2\n" "3\n" "4", 10, LV_CHART_AXIS_DRAW_LAST_TICK);
lv_chart_set_y_tick_texts(chart_axes, "Y[$]\n" "1\n" "2\n" "3\n" "4", 5, LV_CHART_AXIS_DRAW_LAST_TICK);
break;
}
case 2:
{
lv_label_set_text(chart_label, "Chart 2");
lv_chart_set_x_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_y_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_x_tick_texts(chart_axes, "Left\n" "X\n" "Right", 1, LV_CHART_AXIS_DRAW_LAST_TICK);
lv_chart_set_y_tick_texts(chart_axes, "Down\n" "Y\n" "Up", 1, LV_CHART_AXIS_DRAW_LAST_TICK );
break;
}
case 3:
{
lv_label_set_text(chart_label, "Chart 3");
lv_chart_set_x_tick_length(chart_axes, 8, 2);
lv_chart_set_y_tick_length(chart_axes, 12, 6);
lv_chart_set_x_tick_texts(chart_axes, "0\n" "\n" "6\n" "\n" "12\n" "\n" "18\n" "\n" "t[h]", 3, LV_CHART_AXIS_SKIP_LAST_TICK);
lv_chart_set_y_tick_texts(chart_axes, "0\n" "0.2\n" "0.4\n" "0.6\n" "0.8\n" "P[kW]", 2, LV_CHART_AXIS_SKIP_LAST_TICK);
break;
}
case 4:
{
lv_label_set_text(chart_label, "Chart 4");
lv_chart_set_x_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_y_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_x_tick_texts(chart_axes, NULL, 6, LV_CHART_AXIS_DRAW_LAST_TICK);
lv_chart_set_y_tick_texts(chart_axes, NULL, 10, LV_CHART_AXIS_DRAW_LAST_TICK);
break;
}
case 5:
{
lv_label_set_text(chart_label, "Chart 5");
lv_chart_set_y_tick_length(chart_axes, LV_CHART_TICK_LENGTH_AUTO, LV_CHART_TICK_LENGTH_AUTO);
lv_chart_set_x_tick_length(chart_axes, 10, 4);
lv_chart_set_x_tick_texts(chart_axes, "\n\n\n\n\n", 5, LV_CHART_AXIS_DRAW_LAST_TICK);
lv_chart_set_y_tick_texts(chart_axes, "\n\n\n\n\n\n\n\n\n\n", 2, LV_CHART_AXIS_DRAW_LAST_TICK);
break;
}
default: {
break;
}
}
lv_obj_align(chart_label, NULL, LV_ALIGN_IN_TOP_MID, 10, 20);
}
void lv_test_chart_3(lv_chart_type_t chart_type)
{
/* Create a the base chart*/
lv_obj_t * chart1 = lv_chart_create(lv_scr_act(), NULL);
lv_chart_set_type(chart1, chart_type);
lv_obj_set_size(chart1, 100, 100);
lv_chart_series_t * dl1_1 = lv_chart_add_series(chart1, LV_COLOR_RED);
dl1_1->points[0] = 0;
dl1_1->points[1] = 20;
dl1_1->points[2] = 0;
dl1_1->points[3] = 40;
dl1_1->points[4] = 0;
dl1_1->points[5] = 60;
dl1_1->points[6] = 0;
dl1_1->points[7] = 80;
dl1_1->points[8] = 0;
dl1_1->points[9] = 100;
/*create the chart with `LV_CHART_UPDATE_MODE_SHIFT` */
lv_obj_t * chart2 = lv_chart_create(lv_scr_act(), chart1);
lv_chart_set_update_mode(chart2, LV_CHART_UPDATE_MODE_SHIFT);
lv_chart_series_t * dl2_1 = lv_chart_add_series(chart2, LV_COLOR_RED);
memcpy(dl2_1->points, dl1_1->points, sizeof(lv_coord_t) * lv_chart_get_point_cnt(chart1));
lv_obj_align(chart2, chart1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
/*create the chart with `LV_CHART_UPDATE_MODE_CIRCULAR` */
lv_obj_t * chart3 = lv_chart_create(lv_scr_act(), chart1);
lv_chart_set_update_mode(chart3, LV_CHART_UPDATE_MODE_CIRCULAR);
lv_chart_series_t * dl3_1 = lv_chart_add_series(chart3, LV_COLOR_RED);
memcpy(dl3_1->points, dl1_1->points, sizeof(lv_coord_t) * lv_chart_get_point_cnt(chart1));
lv_obj_align(chart3, chart2, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
/*add some new data to chart2*/
lv_chart_set_next(chart2, dl2_1, 35);
lv_chart_set_next(chart2, dl2_1, 35);
lv_chart_set_next(chart2, dl2_1, 35);
lv_chart_set_next(chart2, dl2_1, 35);
lv_chart_set_next(chart2, dl2_1, 35);
/*add some new data -same as chart2- to chart3*/
lv_chart_set_next(chart3, dl3_1, 35);
lv_chart_set_next(chart3, dl3_1, 35);
lv_chart_set_next(chart3, dl3_1, 35);
lv_chart_set_next(chart3, dl3_1, 35);
lv_chart_set_next(chart3, dl3_1, 35);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_BTN && LV_USE_TESTS*/

View File

@ -0,0 +1,55 @@
/**
* @file lv_test_chart.h
*
*/
#ifndef LV_TEST_CHART_H
#define LV_TEST_CHART_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_BTN && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create charts to test their functionalities
*/
void lv_test_chart_1(void);
void lv_test_chart_2(uint8_t chart);
/**********************
* MACROS
**********************/
#endif /*LV_USE_BTN && LV_USE_TESTS*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_CHART_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_chart.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_chart
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_chart
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_chart"

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,135 @@
/**
* @file lv_test_cont.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_cont.h"
#if LV_USE_CONT && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create containers to test their basic functionalities
*/
void lv_test_cont_1(void)
{
/* Create a default object*/
lv_obj_t * cont1 = lv_cont_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(cont1, 10, 10);
lv_cont_set_style(cont1, LV_CONT_STYLE_MAIN, &lv_style_pretty);
/*Test fit wit adding two labels*/
lv_obj_t * cont2 = lv_cont_create(lv_disp_get_scr_act(NULL), cont1);
lv_cont_set_fit(cont2, LV_FIT_TIGHT);
lv_obj_t * obj2_1 = lv_label_create(cont2, NULL);
lv_label_set_text(obj2_1, "Short");
lv_obj_t * obj2_2 = lv_label_create(cont2, NULL);
lv_label_set_text(obj2_2, "A longer text");
lv_obj_set_pos(obj2_2, 80, 30);
lv_obj_align(cont2, cont1, LV_ALIGN_OUT_RIGHT_TOP, 20, 0);
/*Test layout and fit togother*/
lv_obj_t * cont3 = lv_cont_create(lv_disp_get_scr_act(NULL), cont2);
lv_label_create(cont3, obj2_1);
lv_label_create(cont3, obj2_2);
lv_cont_set_layout(cont3, LV_LAYOUT_COL_L);
lv_obj_align(cont3, cont2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
/*Set a new style with new padding*/
static lv_style_t cont4_style;
lv_style_copy(&cont4_style, &lv_style_pretty_color);
cont4_style.body.padding.left = 20;
cont4_style.body.padding.right = 20;
cont4_style.body.padding.top = 40;
cont4_style.body.padding.bottom = 40;
cont4_style.body.padding.inner = 1;
lv_obj_t * cont4 = lv_cont_create(lv_disp_get_scr_act(NULL), cont3);
lv_label_create(cont4, obj2_1);
lv_label_create(cont4, obj2_2);
lv_cont_set_style(cont4, LV_CONT_STYLE_MAIN, &cont4_style);
lv_obj_align(cont4, cont3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 10);
}
/**
* Test nested style inheritance on padding update
*/
void lv_test_cont_2(void)
{
/*Create a new style with big paddings*/
static lv_style_t cont4_style;
lv_style_copy(&cont4_style, &lv_style_pretty_color);
cont4_style.body.padding.left = 10;
cont4_style.body.padding.right = 10;
cont4_style.body.padding.top = 20;
cont4_style.body.padding.bottom = 20;
cont4_style.body.padding.inner = 1;
/* Create a main container*/
lv_obj_t * cont_main = lv_cont_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(cont_main, 50, 50);
lv_cont_set_style(cont_main, LV_CONT_STYLE_MAIN, &lv_style_pretty);
lv_cont_set_fit(cont_main, LV_FIT_TIGHT);
lv_cont_set_layout(cont_main, LV_LAYOUT_ROW_M);
/*Create two containers on the main* with two-two labels*/
lv_obj_t * cont_sub1 = lv_cont_create(cont_main, NULL);
lv_cont_set_style(cont_sub1, LV_CONT_STYLE_MAIN, NULL); /*Inherit style from parent*/
lv_cont_set_fit(cont_sub1, LV_FIT_TIGHT);
lv_cont_set_layout(cont_sub1, LV_LAYOUT_COL_M);
lv_obj_t * obj1_1 = lv_label_create(cont_sub1, NULL);
lv_label_set_text(obj1_1, "Short");
lv_obj_t * obj1_2 = lv_label_create(cont_sub1, NULL);
lv_label_set_text(obj1_2, "A long text");
lv_obj_t * cont_sub2 = lv_cont_create(cont_main, cont_sub1);
lv_label_create(cont_sub2, obj1_1);
lv_label_create(cont_sub2, obj1_2);
/*Set the new style*/
lv_cont_set_style(cont_main, LV_CONT_STYLE_MAIN, &cont4_style);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_CONT && LV_USE_TESTS*/

View File

@ -0,0 +1,59 @@
/**
* @file lv_test_cont.h
*
*/
#ifndef LV_TEST_CONT_H
#define LV_TEST_CONT_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_CONT && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create containers to test their basic functionalities
*/
void lv_test_cont_1(void);
/**
* Test nested style inheritance on padding update
*/
void lv_test_cont_2(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_CONT && LV_USE_TESTS*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_TEST_CONT_H*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_cont.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cont
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cont
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_cont"

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,104 @@
/**
* @file lv_test_ddlist.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_ddlist.h"
#if LV_EX_PRINTF
#include <stdio.h>
#endif
#if LV_USE_DDLIST && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
static void event_handler(lv_obj_t * ddlist, lv_event_t event);
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create drop down lists to test their functionalities
*/
void lv_test_ddlist_1(void)
{
/* Create a default object*/
lv_obj_t * ddlist1 = lv_ddlist_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(ddlist1, 10, 10);
/* Create a drop down list with a lot of options, fix height and anim time.
* Open it by default without animation and assign an action*/
lv_obj_t * ddlist2 = lv_ddlist_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_align(ddlist2, ddlist1, LV_ALIGN_OUT_RIGHT_MID, 20, 0);
lv_ddlist_set_options(ddlist2, "First\nSecond\nThird\nForth\nFifth\nSixth");
lv_ddlist_set_fix_height(ddlist2, LV_DPI);
lv_ddlist_set_selected(ddlist2, 2);
lv_ddlist_set_anim_time(ddlist2, 100);
lv_ddlist_open(ddlist2, false);
lv_ddlist_set_fix_width(ddlist2, LV_DPI * 2);
lv_obj_set_event_cb(ddlist2, event_handler);
/*Copy the previous drop down list and modify its style*/
static lv_style_t ddlist3_style;
lv_style_copy(&ddlist3_style, &lv_style_pretty);
ddlist3_style.body.main_color = LV_COLOR_GRAY;
ddlist3_style.body.grad_color = LV_COLOR_BLACK;
ddlist3_style.body.padding.left = 20;
ddlist3_style.body.padding.right = 20;
ddlist3_style.body.padding.top = 30;
ddlist3_style.body.padding.bottom = 30;
ddlist3_style.text.color = LV_COLOR_RED;
ddlist3_style.text.letter_space = 5;
ddlist3_style.text.line_space = 15;
lv_obj_t * ddlist3 = lv_ddlist_create(lv_disp_get_scr_act(NULL), ddlist2);
lv_obj_align(ddlist3, ddlist2, LV_ALIGN_OUT_RIGHT_TOP, 20, 0);
lv_ddlist_set_style(ddlist3, LV_DDLIST_STYLE_BG, &ddlist3_style);
lv_ddlist_set_style(ddlist3, LV_DDLIST_STYLE_SEL, &lv_style_plain_color);
}
/**********************
* STATIC FUNCTIONS
**********************/
static void event_handler(lv_obj_t * ddlist, lv_event_t event)
{
if(event == LV_EVENT_VALUE_CHANGED) {
#if LV_EX_PRINTF
char buf[64];
lv_ddlist_get_selected_str(ddlist, buf, sizeof(buf));
printf("New option selected on a drop down list: %s\n", buf);
#endif
}
}
#endif /*LV_USE_DDLIST && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_ddlist.h
*
*/
#ifndef LV_TEST_DDLIST_H
#define LV_TEST_DDLIST_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_DDLIST && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create drop down lists to test their functionalities
*/
void lv_test_ddlist_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_DDLIST*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_USE_DDLIST && LV_USE_TESTS*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_ddlist.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_ddlist
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_ddlist
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_ddlist"

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,90 @@
/**
* @file lv_test_gauge.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_gauge.h"
#if LV_USE_GAUGE && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create gauges to test their functionalities
*/
void lv_test_gauge_1(void)
{
/* Create a default object*/
lv_obj_t * gauge1 = lv_gauge_create(lv_disp_get_scr_act(NULL), NULL);
lv_obj_set_pos(gauge1, 10, 10);
lv_gauge_set_value(gauge1, 0, 75);
/*Copy the previous gauge and set smaller size for it*/
lv_obj_t * gauge2 = lv_gauge_create(lv_disp_get_scr_act(NULL), gauge1);
lv_obj_set_size(gauge2, 2 * lv_obj_get_width(gauge1) / 3, 2 * lv_obj_get_height(gauge1) / 3);
lv_obj_align(gauge2, gauge1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
/*Copy the first gauge add more needles and set new style*/
static lv_color_t needle_colors[3];
needle_colors[0] = LV_COLOR_BLUE;
needle_colors[1] = LV_COLOR_PURPLE;
needle_colors[2] = LV_COLOR_TEAL;
/*Create a styled gauge*/
static lv_style_t style3;
lv_style_copy(&style3, &lv_style_pretty);
style3.body.main_color = LV_COLOR_GREEN;
style3.body.grad_color = LV_COLOR_RED;
style3.body.padding.left = 6;
style3.body.padding.inner = 10;
style3.body.padding.top = 8;
style3.body.border.color = LV_COLOR_GRAY;
style3.line.width = 2;
lv_obj_t * gauge3 = lv_gauge_create(lv_disp_get_scr_act(NULL), gauge1);
lv_obj_align(gauge3, gauge1, LV_ALIGN_OUT_RIGHT_MID, 20, 0);
lv_obj_set_style(gauge3, &style3);
lv_gauge_set_scale(gauge3, 270, 41, 5);
lv_gauge_set_needle_count(gauge3, 3, needle_colors);
lv_gauge_set_value(gauge3, 0, 20);
lv_gauge_set_value(gauge3, 1, 40);
lv_gauge_set_value(gauge3, 2, 60);
/*Copy the modified 'gauge3' and set a smaller size for it*/
lv_obj_t * gauge4 = lv_gauge_create(lv_disp_get_scr_act(NULL), gauge3);
lv_obj_set_size(gauge4, 100, 100);
lv_obj_align(gauge4, gauge3, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_GAUGE && LV_USE_TESTS*/

View File

@ -0,0 +1,53 @@
/**
* @file lv_test_gauge.h
*
*/
#ifndef LV_TEST_GAUGE_H
#define LV_TEST_GAUGE_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_GAUGE && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create gauges to test their functionalities
*/
void lv_test_gauge_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_GAUGE*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_USE_GAUGE && LV_USE_TESTS*/

View File

@ -0,0 +1,6 @@
CSRCS += lv_test_gauge.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_gauge
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_gauge
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_gauge"

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,189 @@
#include "lvgl/lvgl.h"
#include "lv_ex_conf.h"
#if LV_USE_TESTS
const uint8_t img_flower_icon_map[] = {
#if LV_COLOR_DEPTH == 1 || LV_COLOR_DEPTH == 8
/*Pixel format: Alpha 8 bit, Red: 3 bit, Green: 3 bit, Blue: 2 bit*/
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x57, 0xff, 0x57, 0xff, 0x9b, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x7b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdb, 0xff, 0x97, 0xff, 0x77, 0xff, 0x97, 0xff, 0x7b, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x77, 0xff, 0x97, 0xff, 0x77, 0xff, 0x97, 0xff, 0xbb, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x53, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x53, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x53, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x77, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0x53, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x53, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x9b, 0xff, 0x57, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x57, 0xff, 0x9b, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x9b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x7b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xbb, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x7b, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x77, 0xff, 0x96, 0xff, 0x96, 0xff, 0x77, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x92, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xb6, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0xdf, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x77, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xd5, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x77, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xd5, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x9b, 0xff, 0x0f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x96, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf8, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0x96, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x77, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xf5, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf8, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0xbb, 0xff,
0x9b, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0x77, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0x77, 0xff,
0x77, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x77, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf8, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0x77, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x53, 0xff,
0x77, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x77, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf8, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0x77, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0x53, 0xff,
0xbb, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0x77, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0x77, 0xff,
0x1c, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xf5, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf8, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0xbb, 0xff,
0x1c, 0xff, 0x9b, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x96, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf8, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xf8, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0x96, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x97, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xb5, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0xb6, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x72, 0xff, 0xd5, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xf4, 0xff, 0xd5, 0xff, 0x92, 0xff, 0x53, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0xdf, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x37, 0xff, 0x57, 0xff, 0x57, 0xff, 0x77, 0xff, 0x77, 0xff, 0x57, 0xff, 0x57, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x57, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x7b, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0xbb, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xbb, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x7b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xbb, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x7b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x57, 0xff, 0x37, 0xff, 0x33, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x33, 0xff, 0x37, 0xff, 0x57, 0xff, 0x7b, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x53, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x77, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x53, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x53, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x53, 0xff, 0x2f, 0xff, 0x2f, 0xff, 0x0f, 0xff, 0x33, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x2f, 0xff, 0x53, 0xff, 0xdf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xbb, 0xff, 0x77, 0xff, 0x77, 0xff, 0x77, 0xff, 0x7b, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x77, 0xff, 0x77, 0xff, 0x77, 0xff, 0x77, 0xff, 0x9b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x9b, 0xff, 0x57, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x37, 0xff, 0x9b, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0xdf, 0xff, 0x9b, 0xff, 0x77, 0xff, 0x77, 0xff, 0x9b, 0xff, 0xbf, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff, 0x1c, 0xff,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP == 0
/*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit*/
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1f, 0x7e, 0xff, 0x7f, 0x55, 0xff, 0x7f, 0x55, 0xff, 0xff, 0x75, 0xff, 0x3f, 0xc7, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1f, 0x7e, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x1c, 0xff, 0xdf, 0x6d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x7d, 0xb6, 0xff, 0x3b, 0x7d, 0xff, 0xdb, 0x64, 0xff, 0x7c, 0x85, 0xff, 0xbf, 0x65, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9e, 0x1c, 0xff, 0x7e, 0x55, 0xff, 0x7c, 0x7d, 0xff, 0xdb, 0x6c, 0xff, 0x1b, 0x75, 0xff, 0x5d, 0xb6, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x3a, 0x4c, 0xff, 0x18, 0x0b, 0xff, 0x18, 0x13, 0xff, 0x18, 0x13, 0xff, 0xdb, 0x13, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xdb, 0x13, 0xff, 0x18, 0x13, 0xff, 0x18, 0x13, 0xff, 0xf7, 0x0a, 0xff, 0xf9, 0x3b, 0xff, 0xde, 0xc6, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xfe, 0xce, 0xff, 0xf9, 0x3b, 0xff, 0x18, 0x0b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x9e, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x79, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x78, 0x23, 0xff, 0xfe, 0xce, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xdb, 0x6c, 0xff, 0xf8, 0x0a, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x9a, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x19, 0x44, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x9e, 0xb6, 0xff, 0x1a, 0x34, 0xff, 0x59, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x99, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xba, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x58, 0x1b, 0xff, 0x59, 0x13, 0xff, 0xde, 0xbe, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xbe, 0xff, 0x5f, 0x8e, 0xff, 0x5e, 0x55, 0xff, 0x7d, 0x24, 0xff, 0x5c, 0x24, 0xff, 0xfb, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x59, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9a, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x79, 0x1b, 0xff, 0xfb, 0x1b, 0xff, 0x3c, 0x24, 0xff, 0x5d, 0x24, 0xff, 0x3e, 0x4d, 0xff, 0x3f, 0x86, 0xff, 0xff, 0xb6, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x3f, 0x86, 0xff, 0xfe, 0x34, 0xff, 0x9e, 0x1c, 0xff, 0xbe, 0x1c, 0xff, 0xde, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x7d, 0x24, 0xff, 0xba, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x7d, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x5d, 0x24, 0xff, 0x59, 0x1b, 0xff, 0x99, 0x1b, 0xff, 0x5d, 0x24, 0xff, 0xde, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xbe, 0x1c, 0xff, 0x9e, 0x1c, 0xff, 0xfe, 0x34, 0xff, 0x1f, 0x7e, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x3f, 0x8e, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x9e, 0x24, 0xff, 0x99, 0x1b, 0xff, 0xdb, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdb, 0x1b, 0xff, 0x99, 0x1b, 0xff, 0x7d, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x75, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x79, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x9d, 0x24, 0xff, 0xda, 0x1b, 0xff, 0x5c, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x2c, 0xff, 0x9f, 0x9e, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1f, 0x7e, 0xff, 0x9e, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x5c, 0x24, 0xff, 0x1c, 0x1c, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x1c, 0xff, 0xbf, 0x1c, 0xff, 0xbf, 0x1c, 0xff, 0xbf, 0x1c, 0xff, 0xbf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x3c, 0x24, 0xff, 0x3c, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9f, 0x5d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x5f, 0x45, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x1c, 0x1c, 0xff, 0xbf, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xd6, 0x5c, 0xff, 0xd2, 0x7c, 0xff, 0xd2, 0x84, 0xff, 0xd6, 0x64, 0xff, 0xdd, 0x34, 0xff, 0x9f, 0x14, 0xff, 0x5d, 0x1c, 0xff, 0x9e, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x5f, 0x4d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1f, 0x3d, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0x90, 0x84, 0xff, 0xc4, 0xe4, 0xff, 0xc2, 0xf4, 0xff, 0xc1, 0xfc, 0xff, 0xc1, 0xfc, 0xff, 0xc2, 0xf4, 0xff, 0xc4, 0xe4, 0xff, 0x8e, 0x94, 0xff, 0x9c, 0x2c, 0xff, 0xbf, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x3f, 0x45, 0xff, 0x1f, 0xc7, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x9f, 0x5d, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbd, 0x2c, 0xff, 0xc8, 0xc4, 0xff, 0xc1, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc8, 0xcc, 0xff, 0xba, 0x44, 0xff, 0xbf, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x5f, 0x4d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x5d, 0x5d, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xc8, 0xc4, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0x01, 0xfd, 0xff, 0x21, 0xfd, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xca, 0xbc, 0xff, 0xbb, 0x3c, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x1c, 0xff, 0x5e, 0x55, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0x9c, 0x8d, 0xff, 0x59, 0x13, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x1c, 0xff, 0xd2, 0x7c, 0xff, 0xc1, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0x82, 0xfd, 0xff, 0x06, 0xff, 0xff, 0x68, 0xff, 0xff, 0x68, 0xff, 0xff, 0x27, 0xff, 0xff, 0xc3, 0xfd, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xd2, 0x84, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdb, 0x1b, 0xff, 0xda, 0x6c, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0x38, 0x13, 0xff, 0x38, 0x1b, 0xff, 0xda, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x1c, 0xff, 0xc5, 0xe4, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0x62, 0xfd, 0xff, 0x68, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x47, 0xff, 0xff, 0xe3, 0xfd, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc6, 0xd4, 0xff, 0xba, 0x44, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x3c, 0x24, 0xff, 0x38, 0x13, 0xff, 0x98, 0x2b, 0xff, 0x3d, 0xae, 0xff,
0xbc, 0x95, 0xff, 0x18, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0xda, 0x1b, 0xff, 0x9e, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x1c, 0xff, 0xd9, 0x4c, 0xff, 0xc2, 0xf4, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xe6, 0xfe, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x68, 0xff, 0xff, 0xc6, 0xfe, 0xff, 0x21, 0xfd, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xd8, 0x54, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9e, 0x24, 0xff, 0x1c, 0x1c, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x0b, 0xff, 0xfb, 0x6c, 0xff,
0xdb, 0x64, 0xff, 0x38, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x58, 0x1b, 0xff, 0xda, 0x1b, 0xff, 0x3c, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x9e, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x1c, 0xff, 0xd5, 0x6c, 0xff, 0xc2, 0xf4, 0xff, 0xc0, 0xfc, 0xff, 0xe0, 0xfc, 0xff, 0x68, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x27, 0xff, 0xff, 0x82, 0xfd, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xd5, 0x64, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9d, 0x24, 0xff, 0x5c, 0x24, 0xff, 0xfb, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x19, 0x44, 0xff,
0xdb, 0x64, 0xff, 0x38, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0x9a, 0x1b, 0xff, 0xfb, 0x1b, 0xff, 0x1c, 0x1c, 0xff, 0x5c, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x9f, 0x1c, 0xff, 0xb5, 0x6c, 0xff, 0xc2, 0xf4, 0xff, 0xc0, 0xfc, 0xff, 0xe0, 0xfc, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x27, 0xff, 0xff, 0x82, 0xfd, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xb5, 0x64, 0xff, 0xbe, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x5c, 0x24, 0xff, 0x1b, 0x1c, 0xff, 0xdb, 0x1b, 0xff, 0x9a, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x19, 0x44, 0xff,
0xdc, 0x95, 0xff, 0x18, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x58, 0x1b, 0xff, 0xda, 0x1b, 0xff, 0x9d, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xde, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xd9, 0x4c, 0xff, 0xc2, 0xf4, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xe6, 0xfe, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x68, 0xff, 0xff, 0xc6, 0xfe, 0xff, 0x21, 0xfd, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xd8, 0x54, 0xff, 0xbf, 0x24, 0xff, 0xde, 0x24, 0xff, 0xde, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x9e, 0x24, 0xff, 0xdb, 0x1b, 0xff, 0x58, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x13, 0xff, 0xfb, 0x6c, 0xff,
0xe0, 0x07, 0xff, 0x58, 0x1b, 0xff, 0x38, 0x13, 0xff, 0xfb, 0x1b, 0xff, 0xde, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xc6, 0xdc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0x82, 0xfd, 0xff, 0x27, 0xff, 0xff, 0x88, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x68, 0xff, 0xff, 0x47, 0xff, 0xff, 0xc3, 0xfd, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc7, 0xcc, 0xff, 0xbb, 0x3c, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x1b, 0x1c, 0xff, 0x38, 0x13, 0xff, 0x98, 0x23, 0xff, 0x5d, 0xb6, 0xff,
0xe0, 0x07, 0xff, 0xbc, 0x95, 0xff, 0x99, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x1c, 0xff, 0xd3, 0x74, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xa0, 0xfc, 0xff, 0xa3, 0xfd, 0xff, 0xa5, 0xfe, 0xff, 0x06, 0xff, 0xff, 0x06, 0xff, 0xff, 0xa5, 0xfe, 0xff, 0xc3, 0xfd, 0xff, 0xe0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xd2, 0x7c, 0xff, 0xbe, 0x2c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xfb, 0x23, 0xff, 0x3b, 0x7d, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1d, 0x55, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xcc, 0xac, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xa0, 0xfc, 0xff, 0x01, 0xfd, 0xff, 0x62, 0xfd, 0xff, 0x62, 0xfd, 0xff, 0x21, 0xfd, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xca, 0xb4, 0xff, 0xbc, 0x3c, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x3e, 0x4d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x7f, 0x55, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xbc, 0x34, 0xff, 0xcd, 0xa4, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xa0, 0xfc, 0xff, 0xa0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xcb, 0xb4, 0xff, 0xba, 0x44, 0xff, 0xbf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x7f, 0x55, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1e, 0x3d, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0x9c, 0x34, 0xff, 0x73, 0x6c, 0xff, 0xc9, 0xbc, 0xff, 0xc2, 0xf4, 0xff, 0xc0, 0xfc, 0xff, 0xc0, 0xfc, 0xff, 0xc1, 0xfc, 0xff, 0xc8, 0xc4, 0xff, 0x92, 0x7c, 0xff, 0x9b, 0x34, 0xff, 0xdf, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x3f, 0x45, 0xff, 0x3f, 0xcf, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x5f, 0x4d, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xfb, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbb, 0x3c, 0xff, 0xb9, 0x4c, 0xff, 0xb7, 0x5c, 0xff, 0xb7, 0x5c, 0xff, 0xb8, 0x4c, 0xff, 0xdb, 0x3c, 0xff, 0x9d, 0x24, 0xff, 0x5d, 0x1c, 0xff, 0x9e, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x5f, 0x4d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xff, 0x7d, 0xff, 0x9e, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x1b, 0x1c, 0xff, 0x3c, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xbf, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x3c, 0x1c, 0xff, 0x3c, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x1c, 0xff, 0x9f, 0x5d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x79, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x9e, 0x24, 0xff, 0xba, 0x1b, 0xff, 0x5d, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xfe, 0x2c, 0xff, 0x9f, 0x9e, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x7f, 0x96, 0xff, 0x9e, 0x1c, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x9e, 0x24, 0xff, 0x59, 0x1b, 0xff, 0xfb, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xfb, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0x7d, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbf, 0x6d, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x7f, 0x96, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x79, 0x1b, 0xff, 0x18, 0x13, 0xff, 0x7d, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0x5d, 0x24, 0xff, 0x79, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0x7d, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xdf, 0x75, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x3f, 0x8e, 0xff, 0x3e, 0x4d, 0xff, 0x9e, 0x24, 0xff, 0x5d, 0x24, 0xff, 0xdb, 0x1b, 0xff, 0x58, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x59, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9a, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x58, 0x1b, 0xff, 0xdb, 0x1b, 0xff, 0x7d, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x1e, 0x3d, 0xff, 0xff, 0x75, 0xff, 0x3f, 0xcf, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xbe, 0xc6, 0xff, 0xd9, 0x33, 0xff, 0x18, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x9a, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xdf, 0x24, 0xff, 0xba, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x18, 0x13, 0xff, 0xde, 0xce, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xfb, 0x6c, 0xff, 0x18, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x79, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x9a, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x13, 0xff, 0x19, 0x3c, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xde, 0xc6, 0xff, 0x19, 0x44, 0xff, 0x38, 0x13, 0xff, 0x38, 0x13, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x9e, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0x7d, 0x24, 0xff, 0x79, 0x1b, 0xff, 0x38, 0x1b, 0xff, 0x38, 0x13, 0xff, 0x18, 0x13, 0xff, 0x99, 0x2b, 0xff, 0xde, 0xce, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x9e, 0xbe, 0xff, 0x5a, 0x4c, 0xff, 0x78, 0x23, 0xff, 0x38, 0x13, 0xff, 0x17, 0x13, 0xff, 0xfb, 0x1b, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xde, 0x24, 0xff, 0xfb, 0x1b, 0xff, 0x38, 0x13, 0xff, 0x18, 0x13, 0xff, 0x78, 0x23, 0xff, 0xf9, 0x3b, 0xff, 0x9d, 0xbe, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xfc, 0x9d, 0xff, 0xdb, 0x6c, 0xff, 0x9a, 0x5c, 0xff, 0x1b, 0x6d, 0xff, 0xbf, 0x65, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0xbe, 0x24, 0xff, 0x7f, 0x55, 0xff, 0x3c, 0x6d, 0xff, 0x9a, 0x5c, 0xff, 0xdb, 0x64, 0xff, 0xbc, 0x95, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0x1f, 0x7e, 0xff, 0x1e, 0x3d, 0xff, 0x9e, 0x1c, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x1c, 0xff, 0xbe, 0x1c, 0xff, 0xfe, 0x34, 0xff, 0xff, 0x75, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xbe, 0xff, 0x3f, 0x86, 0xff, 0x9f, 0x5d, 0xff, 0x7f, 0x55, 0xff, 0xff, 0x7d, 0xff, 0xdf, 0xb6, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xe0, 0x07, 0xff,
#endif
#if LV_COLOR_DEPTH == 16 && LV_COLOR_16_SWAP != 0
/*Pixel format: Alpha 8 bit, Red: 5 bit, Green: 6 bit, Blue: 5 bit BUT the 2 color bytes are swapped*/
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x7e, 0x1f, 0xff, 0x55, 0x7f, 0xff, 0x55, 0x7f, 0xff, 0x75, 0xff, 0xff, 0xc7, 0x3f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x7e, 0x1f, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbe, 0xff, 0x6d, 0xdf, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xb6, 0x7d, 0xff, 0x7d, 0x3b, 0xff, 0x64, 0xdb, 0xff, 0x85, 0x7c, 0xff, 0x65, 0xbf, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0x9e, 0xff, 0x55, 0x7e, 0xff, 0x7d, 0x7c, 0xff, 0x6c, 0xdb, 0xff, 0x75, 0x1b, 0xff, 0xb6, 0x5d, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x4c, 0x3a, 0xff, 0x0b, 0x18, 0xff, 0x13, 0x18, 0xff, 0x13, 0x18, 0xff, 0x13, 0xdb, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0x13, 0xdb, 0xff, 0x13, 0x18, 0xff, 0x13, 0x18, 0xff, 0x0a, 0xf7, 0xff, 0x3b, 0xf9, 0xff, 0xc6, 0xde, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xce, 0xfe, 0xff, 0x3b, 0xf9, 0xff, 0x0b, 0x18, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x24, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0x7d, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x18, 0xff, 0x23, 0x78, 0xff, 0xce, 0xfe, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x6c, 0xdb, 0xff, 0x0a, 0xf8, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x79, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x1b, 0x9a, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x18, 0xff, 0x44, 0x19, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xb6, 0x9e, 0xff, 0x34, 0x1a, 0xff, 0x13, 0x59, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x99, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x1b, 0xba, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x58, 0xff, 0x13, 0x59, 0xff, 0xbe, 0xde, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xbe, 0xff, 0xff, 0x8e, 0x5f, 0xff, 0x55, 0x5e, 0xff, 0x24, 0x7d, 0xff, 0x24, 0x5c, 0xff, 0x1b, 0xfb, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x59, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x1b, 0x9a, 0xff, 0x13, 0x18, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0xfb, 0xff, 0x24, 0x3c, 0xff, 0x24, 0x5d, 0xff, 0x4d, 0x3e, 0xff, 0x86, 0x3f, 0xff, 0xb6, 0xff, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x86, 0x3f, 0xff, 0x34, 0xfe, 0xff, 0x1c, 0x9e, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x7d, 0xff, 0x1b, 0xba, 0xff, 0x1b, 0x38, 0xff, 0x24, 0x7d, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x5d, 0xff, 0x1b, 0x59, 0xff, 0x1b, 0x99, 0xff, 0x24, 0x5d, 0xff, 0x24, 0xde, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xdf, 0xff, 0x1c, 0xbe, 0xff, 0x1c, 0x9e, 0xff, 0x34, 0xfe, 0xff, 0x7e, 0x1f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x8e, 0x3f, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x9e, 0xff, 0x1b, 0x99, 0xff, 0x1b, 0xdb, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x1b, 0xdb, 0xff, 0x1b, 0x99, 0xff, 0x24, 0x7d, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x75, 0xdf, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x7d, 0xff, 0x1b, 0x79, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0x9d, 0xff, 0x1b, 0xda, 0xff, 0x24, 0x5c, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x2c, 0xde, 0xff, 0x9e, 0x9f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x7e, 0x1f, 0xff, 0x1c, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0x5c, 0xff, 0x1c, 0x1c, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbf, 0xff, 0x1c, 0xbf, 0xff, 0x1c, 0xbf, 0xff, 0x1c, 0xbf, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x3c, 0xff, 0x24, 0x3c, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x5d, 0x9f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x45, 0x5f, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0x1c, 0xff, 0x1c, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x5c, 0xd6, 0xff, 0x7c, 0xd2, 0xff, 0x84, 0xd2, 0xff, 0x64, 0xd6, 0xff, 0x34, 0xdd, 0xff, 0x14, 0x9f, 0xff, 0x1c, 0x5d, 0xff, 0x24, 0x9e, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x4d, 0x5f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x3d, 0x1f, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0x84, 0x90, 0xff, 0xe4, 0xc4, 0xff, 0xf4, 0xc2, 0xff, 0xfc, 0xc1, 0xff, 0xfc, 0xc1, 0xff, 0xf4, 0xc2, 0xff, 0xe4, 0xc4, 0xff, 0x94, 0x8e, 0xff, 0x2c, 0x9c, 0xff, 0x1c, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x45, 0x3f, 0xff, 0xc7, 0x1f, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x5d, 0x9f, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x2c, 0xbd, 0xff, 0xc4, 0xc8, 0xff, 0xfc, 0xc1, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xcc, 0xc8, 0xff, 0x44, 0xba, 0xff, 0x1c, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x4d, 0x5f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x5d, 0x5d, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0xc4, 0xc8, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfd, 0x01, 0xff, 0xfd, 0x21, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xbc, 0xca, 0xff, 0x3c, 0xbb, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbe, 0xff, 0x55, 0x5e, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x8d, 0x9c, 0xff, 0x13, 0x59, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbf, 0xff, 0x7c, 0xd2, 0xff, 0xfc, 0xc1, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfd, 0x82, 0xff, 0xff, 0x06, 0xff, 0xff, 0x68, 0xff, 0xff, 0x68, 0xff, 0xff, 0x27, 0xff, 0xfd, 0xc3, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0x84, 0xd2, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1b, 0xdb, 0xff, 0x6c, 0xda, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x13, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0xda, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbf, 0xff, 0xe4, 0xc5, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfd, 0x62, 0xff, 0xff, 0x68, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x47, 0xff, 0xfd, 0xe3, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0xd4, 0xc6, 0xff, 0x44, 0xba, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0x3c, 0xff, 0x13, 0x38, 0xff, 0x2b, 0x98, 0xff, 0xae, 0x3d, 0xff,
0x95, 0xbc, 0xff, 0x13, 0x18, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0xda, 0xff, 0x24, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbf, 0xff, 0x4c, 0xd9, 0xff, 0xf4, 0xc2, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfe, 0xe6, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x68, 0xff, 0xfe, 0xc6, 0xff, 0xfd, 0x21, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0x54, 0xd8, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0x9e, 0xff, 0x1c, 0x1c, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x0b, 0x18, 0xff, 0x6c, 0xfb, 0xff,
0x64, 0xdb, 0xff, 0x13, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x58, 0xff, 0x1b, 0xda, 0xff, 0x24, 0x3c, 0xff, 0x24, 0x7d, 0xff, 0x24, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbf, 0xff, 0x6c, 0xd5, 0xff, 0xf4, 0xc2, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xe0, 0xff, 0xff, 0x68, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x27, 0xff, 0xfd, 0x82, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0x64, 0xd5, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0x9d, 0xff, 0x24, 0x5c, 0xff, 0x1b, 0xfb, 0xff, 0x1b, 0x79, 0xff, 0x13, 0x18, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x18, 0xff, 0x44, 0x19, 0xff,
0x64, 0xdb, 0xff, 0x13, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0x9a, 0xff, 0x1b, 0xfb, 0xff, 0x1c, 0x1c, 0xff, 0x24, 0x5c, 0xff, 0x24, 0x7d, 0xff, 0x1c, 0x9f, 0xff, 0x6c, 0xb5, 0xff, 0xf4, 0xc2, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xe0, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x27, 0xff, 0xfd, 0x82, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0x64, 0xb5, 0xff, 0x24, 0xbe, 0xff, 0x24, 0x7d, 0xff, 0x24, 0x5c, 0xff, 0x1c, 0x1b, 0xff, 0x1b, 0xdb, 0xff, 0x1b, 0x9a, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x18, 0xff, 0x44, 0x19, 0xff,
0x95, 0xdc, 0xff, 0x13, 0x18, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x58, 0xff, 0x1b, 0xda, 0xff, 0x24, 0x9d, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xde, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbf, 0xff, 0x4c, 0xd9, 0xff, 0xf4, 0xc2, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfe, 0xe6, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x68, 0xff, 0xfe, 0xc6, 0xff, 0xfd, 0x21, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0x54, 0xd8, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xde, 0xff, 0x24, 0xde, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x9e, 0xff, 0x1b, 0xdb, 0xff, 0x1b, 0x58, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x18, 0xff, 0x6c, 0xfb, 0xff,
0x07, 0xe0, 0xff, 0x1b, 0x58, 0xff, 0x13, 0x38, 0xff, 0x1b, 0xfb, 0xff, 0x24, 0xde, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0xdc, 0xc6, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfd, 0x82, 0xff, 0xff, 0x27, 0xff, 0xff, 0x88, 0xff, 0xff, 0x67, 0xff, 0xff, 0x67, 0xff, 0xff, 0x68, 0xff, 0xff, 0x47, 0xff, 0xfd, 0xc3, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xcc, 0xc7, 0xff, 0x3c, 0xbb, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0x1b, 0xff, 0x13, 0x38, 0xff, 0x23, 0x98, 0xff, 0xb6, 0x5d, 0xff,
0x07, 0xe0, 0xff, 0x95, 0xbc, 0xff, 0x1b, 0x99, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbf, 0xff, 0x74, 0xd3, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xa0, 0xff, 0xfd, 0xa3, 0xff, 0xfe, 0xa5, 0xff, 0xff, 0x06, 0xff, 0xff, 0x06, 0xff, 0xfe, 0xa5, 0xff, 0xfd, 0xc3, 0xff, 0xfc, 0xe0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0x7c, 0xd2, 0xff, 0x2c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x23, 0xfb, 0xff, 0x7d, 0x3b, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x55, 0x1d, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0xac, 0xcc, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xa0, 0xff, 0xfd, 0x01, 0xff, 0xfd, 0x62, 0xff, 0xfd, 0x62, 0xff, 0xfd, 0x21, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xb4, 0xca, 0xff, 0x3c, 0xbc, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x4d, 0x3e, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x55, 0x7f, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0x34, 0xbc, 0xff, 0xa4, 0xcd, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xa0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xb4, 0xcb, 0xff, 0x44, 0xba, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x55, 0x7f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x3d, 0x1e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0x34, 0x9c, 0xff, 0x6c, 0x73, 0xff, 0xbc, 0xc9, 0xff, 0xf4, 0xc2, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc0, 0xff, 0xfc, 0xc1, 0xff, 0xc4, 0xc8, 0xff, 0x7c, 0x92, 0xff, 0x34, 0x9b, 0xff, 0x24, 0xdf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x45, 0x3f, 0xff, 0xcf, 0x3f, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x4d, 0x5f, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x1b, 0xfb, 0xff, 0x24, 0xbe, 0xff, 0x3c, 0xbb, 0xff, 0x4c, 0xb9, 0xff, 0x5c, 0xb7, 0xff, 0x5c, 0xb7, 0xff, 0x4c, 0xb8, 0xff, 0x3c, 0xdb, 0xff, 0x24, 0x9d, 0xff, 0x1c, 0x5d, 0xff, 0x24, 0x9e, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x4d, 0x5f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x7d, 0xff, 0xff, 0x1c, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x1c, 0x1b, 0xff, 0x24, 0x3c, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xbf, 0xff, 0x24, 0xdf, 0xff, 0x1c, 0x3c, 0xff, 0x24, 0x3c, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1c, 0xbe, 0xff, 0x5d, 0x9f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x1c, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x7d, 0xff, 0x1b, 0x79, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0x9e, 0xff, 0x1b, 0xba, 0xff, 0x24, 0x5d, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x2c, 0xfe, 0xff, 0x9e, 0x9f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x96, 0x7f, 0xff, 0x1c, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0x9e, 0xff, 0x1b, 0x59, 0xff, 0x1b, 0xfb, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x1b, 0xfb, 0xff, 0x1b, 0x79, 0xff, 0x24, 0x7d, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x6d, 0xbf, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x96, 0x7f, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x7d, 0xff, 0x1b, 0x79, 0xff, 0x13, 0x18, 0xff, 0x24, 0x7d, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x24, 0x5d, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0x79, 0xff, 0x24, 0x7d, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x75, 0xdf, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x8e, 0x3f, 0xff, 0x4d, 0x3e, 0xff, 0x24, 0x9e, 0xff, 0x24, 0x5d, 0xff, 0x1b, 0xdb, 0xff, 0x1b, 0x58, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x59, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0xbe, 0xff, 0x1b, 0x9a, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x58, 0xff, 0x1b, 0xdb, 0xff, 0x24, 0x7d, 0xff, 0x24, 0xbe, 0xff, 0x3d, 0x1e, 0xff, 0x75, 0xff, 0xff, 0xcf, 0x3f, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xc6, 0xbe, 0xff, 0x33, 0xd9, 0xff, 0x13, 0x18, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x9a, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xdf, 0xff, 0x1b, 0xba, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x18, 0xff, 0xce, 0xde, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x6c, 0xfb, 0xff, 0x13, 0x18, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x79, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x1b, 0x9a, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x38, 0xff, 0x3c, 0x19, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xc6, 0xde, 0xff, 0x44, 0x19, 0xff, 0x13, 0x38, 0xff, 0x13, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x1b, 0x38, 0xff, 0x24, 0x9e, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x24, 0x7d, 0xff, 0x1b, 0x79, 0xff, 0x1b, 0x38, 0xff, 0x13, 0x38, 0xff, 0x13, 0x18, 0xff, 0x2b, 0x99, 0xff, 0xce, 0xde, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xbe, 0x9e, 0xff, 0x4c, 0x5a, 0xff, 0x23, 0x78, 0xff, 0x13, 0x38, 0xff, 0x13, 0x17, 0xff, 0x1b, 0xfb, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xde, 0xff, 0x1b, 0xfb, 0xff, 0x13, 0x38, 0xff, 0x13, 0x18, 0xff, 0x23, 0x78, 0xff, 0x3b, 0xf9, 0xff, 0xbe, 0x9d, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x9d, 0xfc, 0xff, 0x6c, 0xdb, 0xff, 0x5c, 0x9a, 0xff, 0x6d, 0x1b, 0xff, 0x65, 0xbf, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x24, 0xbe, 0xff, 0x55, 0x7f, 0xff, 0x6d, 0x3c, 0xff, 0x5c, 0x9a, 0xff, 0x64, 0xdb, 0xff, 0x95, 0xbc, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x7e, 0x1f, 0xff, 0x3d, 0x1e, 0xff, 0x1c, 0x9e, 0xff, 0x1c, 0xbe, 0xff, 0x1c, 0xbe, 0xff, 0x1c, 0xbe, 0xff, 0x34, 0xfe, 0xff, 0x75, 0xff, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0xbe, 0xff, 0xff, 0x86, 0x3f, 0xff, 0x5d, 0x9f, 0xff, 0x55, 0x7f, 0xff, 0x7d, 0xff, 0xff, 0xb6, 0xdf, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff, 0x07, 0xe0, 0xff,
#endif
#if LV_COLOR_DEPTH == 32
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf8, 0xc1, 0x7c, 0xff, 0xf6, 0xad, 0x50, 0xff, 0xf6, 0xab, 0x4d, 0xff, 0xf8, 0xbd, 0x73, 0xff, 0xfc, 0xe3, 0xc2, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf8, 0xbf, 0x77, 0xff, 0xf2, 0x93, 0x1a, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf3, 0x93, 0x1b, 0xff, 0xf7, 0xb7, 0x67, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xeb, 0xcd, 0xb4, 0xff, 0xdb, 0xa6, 0x77, 0xff, 0xd6, 0x99, 0x64, 0xff, 0xdf, 0xac, 0x7d, 0xff, 0xf6, 0xb3, 0x5f, 0xff, 0xf3, 0x93, 0x1b, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x92, 0x18, 0xff, 0xf4, 0xad, 0x54, 0xff, 0xe2, 0xad, 0x7a, 0xff, 0xd5, 0x9a, 0x65, 0xff, 0xda, 0xa2, 0x73, 0xff, 0xea, 0xca, 0xaf, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xcd, 0x85, 0x46, 0xff, 0xbd, 0x5f, 0x0b, 0xff, 0xbe, 0x60, 0x0d, 0xff, 0xbd, 0x5f, 0x0e, 0xff, 0xd8, 0x79, 0x13, 0xff, 0xf2, 0x93, 0x1c, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x96, 0x1d, 0xff, 0xda, 0x7a, 0x14, 0xff, 0xc0, 0x62, 0x0f, 0xff, 0xbe, 0x60, 0x0d, 0xff, 0xbc, 0x5b, 0x06, 0xff, 0xca, 0x7d, 0x39, 0xff, 0xef, 0xd8, 0xc4, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf0, 0xdb, 0xc9, 0xff, 0xc9, 0x7c, 0x37, 0xff, 0xbd, 0x5f, 0x0c, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xef, 0x92, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xeb, 0x8e, 0x1f, 0xff, 0xca, 0x6e, 0x17, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbe, 0x61, 0x0f, 0xff, 0xc3, 0x6b, 0x1e, 0xff, 0xf1, 0xdb, 0xc8, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xd5, 0x99, 0x65, 0xff, 0xbd, 0x5e, 0x0b, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc9, 0x6e, 0x18, 0xff, 0xf1, 0x94, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x22, 0xff, 0xce, 0x72, 0x19, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbe, 0x61, 0x10, 0xff, 0xcb, 0x80, 0x3e, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf1, 0xd1, 0xb1, 0xff, 0xd1, 0x7f, 0x33, 0xff, 0xc5, 0x68, 0x12, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xcc, 0x71, 0x18, 0xff, 0xf1, 0x94, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x22, 0xff, 0xd0, 0x74, 0x19, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc4, 0x69, 0x16, 0xff, 0xc6, 0x67, 0x10, 0xff, 0xf3, 0xd8, 0xbc, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xfc, 0xde, 0xb8, 0xff, 0xfa, 0xc7, 0x87, 0xff, 0xf2, 0xa8, 0x4e, 0xff, 0xe8, 0x8c, 0x20, 0xff, 0xe3, 0x87, 0x1d, 0xff, 0xda, 0x7e, 0x1b, 0xff, 0xca, 0x6e, 0x17, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc5, 0x6a, 0x16, 0xff, 0xf1, 0x94, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf1, 0x94, 0x20, 0xff, 0xcd, 0x71, 0x18, 0xff, 0xbd, 0x62, 0x14, 0xff, 0xc8, 0x6c, 0x17, 0xff, 0xd6, 0x7b, 0x1b, 0xff, 0xe1, 0x84, 0x1d, 0xff, 0xe5, 0x88, 0x1d, 0xff, 0xf0, 0xa5, 0x4b, 0xff, 0xf9, 0xc5, 0x84, 0xff, 0xfb, 0xdc, 0xb4, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf9, 0xc5, 0x83, 0xff, 0xf4, 0x9e, 0x32, 0xff, 0xf2, 0x91, 0x16, 0xff, 0xf3, 0x94, 0x1b, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf5, 0x98, 0x22, 0xff, 0xf5, 0x98, 0x22, 0xff, 0xea, 0x8d, 0x1f, 0xff, 0xce, 0x73, 0x18, 0xff, 0xbe, 0x63, 0x15, 0xff, 0xea, 0x8d, 0x1f, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xe6, 0x89, 0x1e, 0xff, 0xc5, 0x69, 0x16, 0xff, 0xcb, 0x70, 0x17, 0xff, 0xe5, 0x88, 0x1e, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xf3, 0x94, 0x1c, 0xff, 0xf2, 0x91, 0x16, 0xff, 0xf4, 0x9c, 0x2e, 0xff, 0xf8, 0xc1, 0x7b, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf9, 0xc5, 0x85, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf3, 0x94, 0x1c, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x22, 0xff, 0xed, 0x90, 0x20, 0xff, 0xca, 0x6f, 0x17, 0xff, 0xd6, 0x7a, 0x1a, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf6, 0x99, 0x22, 0xff, 0xd6, 0x7a, 0x1b, 0xff, 0xcb, 0x70, 0x18, 0xff, 0xe8, 0x8c, 0x1e, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x95, 0x1e, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf7, 0xba, 0x6d, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf3, 0x97, 0x22, 0xff, 0xf3, 0x95, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xea, 0x8e, 0x1f, 0xff, 0xc8, 0x6d, 0x17, 0xff, 0xf0, 0x93, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xec, 0x8f, 0x20, 0xff, 0xd2, 0x77, 0x1a, 0xff, 0xe3, 0x87, 0x1d, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf3, 0x9a, 0x29, 0xff, 0xfa, 0xcf, 0x99, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf8, 0xc1, 0x7b, 0xff, 0xf2, 0x92, 0x18, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xe3, 0x87, 0x1d, 0xff, 0xdd, 0x81, 0x1c, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf9, 0x96, 0x1b, 0xff, 0xfc, 0x96, 0x18, 0xff, 0xfd, 0x96, 0x18, 0xff, 0xfa, 0x96, 0x1b, 0xff, 0xf5, 0x96, 0x1f, 0xff, 0xf5, 0x98, 0x22, 0xff, 0xdf, 0x83, 0x1d, 0xff, 0xdf, 0x83, 0x1d, 0xff, 0xf2, 0x95, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf6, 0xb1, 0x5a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf5, 0xa7, 0x44, 0xff, 0xf3, 0x94, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xdd, 0x80, 0x1b, 0xff, 0xf9, 0x93, 0x19, 0xff, 0xf2, 0x96, 0x22, 0xff, 0xb4, 0x97, 0x5b, 0xff, 0x90, 0x97, 0x7b, 0xff, 0x8e, 0x97, 0x7d, 0xff, 0xae, 0x97, 0x61, 0xff, 0xe7, 0x97, 0x2d, 0xff, 0xf8, 0x8f, 0x14, 0xff, 0xe5, 0x87, 0x1c, 0xff, 0xee, 0x92, 0x20, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf5, 0xa7, 0x45, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf5, 0xa1, 0x3a, 0xff, 0xf3, 0x95, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf5, 0x94, 0x1e, 0xff, 0x7d, 0x8f, 0x83, 0xff, 0x20, 0x98, 0xe3, 0xff, 0x10, 0x98, 0xf1, 0xff, 0x0b, 0x98, 0xf5, 0xff, 0x0b, 0x98, 0xf5, 0xff, 0x0e, 0x98, 0xf2, 0xff, 0x20, 0x98, 0xe3, 0xff, 0x71, 0x91, 0x91, 0xff, 0xde, 0x90, 0x2c, 0xff, 0xfa, 0x96, 0x1b, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x95, 0x1e, 0xff, 0xf5, 0xa4, 0x3e, 0xff, 0xfc, 0xe2, 0xc0, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf6, 0xb0, 0x57, 0xff, 0xf3, 0x94, 0x1c, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xeb, 0x96, 0x28, 0xff, 0x42, 0x98, 0xc4, 0xff, 0x05, 0x97, 0xfa, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x40, 0x97, 0xc5, 0xff, 0xce, 0x96, 0x44, 0xff, 0xf9, 0x96, 0x1c, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf5, 0xa9, 0x49, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xec, 0xa9, 0x5a, 0xff, 0xf3, 0x94, 0x1c, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf8, 0x96, 0x1d, 0xff, 0x44, 0x98, 0xc1, 0xff, 0x02, 0x98, 0xfe, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x07, 0xa2, 0xff, 0xff, 0x09, 0xa5, 0xff, 0xff, 0x01, 0x9a, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x4d, 0x97, 0xb9, 0xff, 0xd8, 0x96, 0x3a, 0xff, 0xf6, 0x96, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1c, 0xff, 0xf3, 0xaa, 0x50, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0xe0, 0xb1, 0x89, 0xff, 0xc6, 0x67, 0x0f, 0xff, 0xf2, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xfb, 0x96, 0x1a, 0xff, 0x91, 0x97, 0x7c, 0xff, 0x06, 0x98, 0xf9, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x99, 0xff, 0xff, 0x10, 0xaf, 0xff, 0xff, 0x34, 0xe1, 0xff, 0xff, 0x3d, 0xee, 0xff, 0xff, 0x3d, 0xed, 0xff, 0xff, 0x36, 0xe4, 0xff, 0xff, 0x18, 0xb9, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x8f, 0x97, 0x7d, 0xff, 0xf1, 0x96, 0x23, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf0, 0x93, 0x20, 0xff, 0xd7, 0x7a, 0x17, 0xff, 0xd4, 0x9a, 0x68, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xc1, 0x66, 0x15, 0xff, 0xd4, 0x78, 0x1a, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf8, 0x96, 0x1c, 0xff, 0x25, 0x98, 0xde, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x0f, 0xae, 0xff, 0xff, 0x3d, 0xee, 0xff, 0xff, 0x3b, 0xec, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3c, 0xec, 0xff, 0xff, 0x3a, 0xe9, 0xff, 0xff, 0x1b, 0xbe, 0xff, 0xff, 0x00, 0x96, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x32, 0x97, 0xd0, 0xff, 0xd2, 0x96, 0x40, 0xff, 0xf6, 0x96, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf2, 0x95, 0x21, 0xff, 0xe1, 0x85, 0x1d, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xc4, 0x70, 0x26, 0xff, 0xe7, 0xc6, 0xa8, 0xff,
0xe1, 0xb4, 0x8d, 0xff, 0xbf, 0x62, 0x10, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x66, 0x15, 0xff, 0xd3, 0x77, 0x1a, 0xff, 0xee, 0x91, 0x20, 0xff, 0xf1, 0x94, 0x20, 0xff, 0xf2, 0x95, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf8, 0x96, 0x1c, 0xff, 0xc5, 0x97, 0x4c, 0xff, 0x12, 0x98, 0xef, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x31, 0xde, 0xff, 0xff, 0x3c, 0xec, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3d, 0xee, 0xff, 0xff, 0x2e, 0xd8, 0xff, 0xff, 0x0b, 0xa6, 0xff, 0xff, 0x00, 0x96, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0xbe, 0x97, 0x52, 0xff, 0xf7, 0x96, 0x1d, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf2, 0x95, 0x21, 0xff, 0xf1, 0x94, 0x20, 0xff, 0xee, 0x91, 0x20, 0xff, 0xdd, 0x81, 0x1c, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbd, 0x5f, 0x0b, 0xff, 0xd7, 0x9d, 0x69, 0xff,
0xd5, 0x98, 0x62, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbe, 0x63, 0x15, 0xff, 0xc2, 0x67, 0x16, 0xff, 0xd3, 0x77, 0x1a, 0xff, 0xdf, 0x84, 0x1d, 0xff, 0xe9, 0x8c, 0x1f, 0xff, 0xef, 0x92, 0x20, 0xff, 0xf2, 0x95, 0x21, 0xff, 0xfa, 0x96, 0x1a, 0xff, 0xa7, 0x97, 0x67, 0xff, 0x0e, 0x98, 0xf2, 0xff, 0x00, 0x98, 0xff, 0xff, 0x04, 0x9d, 0xff, 0xff, 0x3d, 0xed, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3c, 0xec, 0xff, 0xff, 0x36, 0xe3, 0xff, 0xff, 0x13, 0xb2, 0xff, 0xff, 0x00, 0x95, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0xac, 0x97, 0x61, 0xff, 0xf5, 0x96, 0x1f, 0xff, 0xf2, 0x95, 0x21, 0xff, 0xef, 0x93, 0x20, 0xff, 0xec, 0x8f, 0x1f, 0xff, 0xe4, 0x87, 0x1e, 0xff, 0xd7, 0x7b, 0x1a, 0xff, 0xc8, 0x6d, 0x17, 0xff, 0xbd, 0x62, 0x14, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x62, 0x11, 0xff, 0xcb, 0x80, 0x3d, 0xff,
0xd6, 0x98, 0x63, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc1, 0x66, 0x15, 0xff, 0xc8, 0x6d, 0x17, 0xff, 0xce, 0x72, 0x18, 0xff, 0xd6, 0x7b, 0x1b, 0xff, 0xdd, 0x81, 0x1c, 0xff, 0xe3, 0x87, 0x1d, 0xff, 0xea, 0x8d, 0x1f, 0xff, 0xf6, 0x91, 0x19, 0xff, 0xa6, 0x96, 0x66, 0xff, 0x0e, 0x98, 0xf2, 0xff, 0x00, 0x98, 0xff, 0xff, 0x04, 0x9d, 0xff, 0xff, 0x3b, 0xec, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3c, 0xec, 0xff, 0xff, 0x36, 0xe3, 0xff, 0xff, 0x13, 0xb2, 0xff, 0xff, 0x00, 0x95, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0xab, 0x95, 0x62, 0xff, 0xf1, 0x93, 0x1f, 0xff, 0xeb, 0x8e, 0x1e, 0xff, 0xe3, 0x87, 0x1e, 0xff, 0xdc, 0x80, 0x1c, 0xff, 0xd5, 0x79, 0x1a, 0xff, 0xcd, 0x72, 0x18, 0xff, 0xc7, 0x6c, 0x17, 0xff, 0xc1, 0x66, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x62, 0x10, 0xff, 0xcc, 0x82, 0x40, 0xff,
0xe1, 0xb7, 0x91, 0xff, 0xbe, 0x60, 0x0e, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc2, 0x67, 0x16, 0xff, 0xd4, 0x79, 0x1a, 0xff, 0xec, 0x90, 0x20, 0xff, 0xf7, 0x9a, 0x22, 0xff, 0xf6, 0x99, 0x22, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf8, 0x96, 0x1d, 0xff, 0xc8, 0x97, 0x49, 0xff, 0x11, 0x98, 0xef, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x30, 0xdb, 0xff, 0xff, 0x3c, 0xed, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3b, 0xeb, 0xff, 0xff, 0x3d, 0xee, 0xff, 0xff, 0x2e, 0xd8, 0xff, 0xff, 0x0a, 0xa5, 0xff, 0xff, 0x00, 0x96, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0xbf, 0x97, 0x51, 0xff, 0xf7, 0x96, 0x1d, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xf6, 0x99, 0x22, 0xff, 0xf6, 0x99, 0x22, 0xff, 0xed, 0x90, 0x20, 0xff, 0xd6, 0x7a, 0x1b, 0xff, 0xc3, 0x68, 0x16, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xbe, 0x60, 0x0e, 0xff, 0xd7, 0x9b, 0x68, 0xff,
0x00, 0xff, 0x00, 0xff, 0xc2, 0x6a, 0x1c, 0xff, 0xc0, 0x64, 0x13, 0xff, 0xd8, 0x7c, 0x1b, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf6, 0x96, 0x1f, 0xff, 0x2e, 0x98, 0xd5, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x11, 0xb0, 0xff, 0xff, 0x37, 0xe5, 0xff, 0xff, 0x3d, 0xef, 0xff, 0xff, 0x3c, 0xed, 0xff, 0xff, 0x3c, 0xed, 0xff, 0xff, 0x3d, 0xee, 0xff, 0xff, 0x38, 0xe7, 0xff, 0xff, 0x19, 0xba, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x39, 0x98, 0xcb, 0xff, 0xd5, 0x96, 0x3c, 0xff, 0xf6, 0x96, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xdc, 0x80, 0x1c, 0xff, 0xc0, 0x63, 0x11, 0xff, 0xc4, 0x6f, 0x24, 0xff, 0xe9, 0xca, 0xad, 0xff,
0x00, 0xff, 0x00, 0xff, 0xe1, 0xb5, 0x8f, 0xff, 0xcc, 0x71, 0x19, 0xff, 0xf2, 0x95, 0x20, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xfd, 0x96, 0x18, 0xff, 0x99, 0x97, 0x73, 0xff, 0x02, 0x98, 0xfd, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x96, 0xff, 0xff, 0x15, 0xb5, 0xff, 0xff, 0x2a, 0xd3, 0xff, 0xff, 0x33, 0xdf, 0xff, 0xff, 0x33, 0xe0, 0xff, 0xff, 0x2c, 0xd5, 0xff, 0xff, 0x18, 0xb9, 0xff, 0xff, 0x02, 0x9b, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x91, 0x97, 0x7b, 0xff, 0xef, 0x96, 0x25, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf0, 0x93, 0x1f, 0xff, 0xd6, 0x7c, 0x20, 0xff, 0xd8, 0xa4, 0x77, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xeb, 0xa2, 0x4e, 0xff, 0xf4, 0x95, 0x1d, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x96, 0x20, 0xff, 0xf2, 0x96, 0x23, 0xff, 0x5e, 0x97, 0xaa, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x95, 0xff, 0xff, 0x06, 0xa1, 0xff, 0xff, 0x0f, 0xad, 0xff, 0xff, 0x10, 0xae, 0xff, 0xff, 0x08, 0xa3, 0xff, 0xff, 0x00, 0x96, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x54, 0x97, 0xb3, 0xff, 0xde, 0x96, 0x35, 0xff, 0xf7, 0x96, 0x1d, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf1, 0xa5, 0x4a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf7, 0xad, 0x4f, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf7, 0x96, 0x1e, 0xff, 0xdf, 0x96, 0x34, 0xff, 0x68, 0x98, 0xa1, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x96, 0xff, 0xff, 0x00, 0x95, 0xff, 0xff, 0x00, 0x97, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x99, 0xff, 0xff, 0x55, 0x98, 0xb2, 0xff, 0xd2, 0x96, 0x3f, 0xff, 0xf6, 0x96, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf6, 0xac, 0x4e, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf4, 0x9f, 0x35, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf8, 0x96, 0x1d, 0xff, 0xdf, 0x92, 0x2e, 0xff, 0x98, 0x8d, 0x68, 0xff, 0x4c, 0x98, 0xba, 0xff, 0x0e, 0x98, 0xf2, 0xff, 0x00, 0x98, 0xff, 0xff, 0x00, 0x98, 0xff, 0xff, 0x08, 0x98, 0xf7, 0xff, 0x44, 0x99, 0xc2, 0xff, 0x8d, 0x8f, 0x76, 0xff, 0xd7, 0x90, 0x33, 0xff, 0xf8, 0x97, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1e, 0xff, 0xf5, 0xa5, 0x41, 0xff, 0xfd, 0xe5, 0xc7, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf5, 0xa7, 0x45, 0xff, 0xf3, 0x94, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x22, 0xff, 0xdb, 0x7c, 0x19, 0xff, 0xf2, 0x93, 0x1e, 0xff, 0xda, 0x96, 0x38, 0xff, 0xc5, 0x96, 0x4b, 0xff, 0xba, 0x96, 0x55, 0xff, 0xb8, 0x96, 0x57, 0xff, 0xc4, 0x96, 0x4c, 0xff, 0xd8, 0x97, 0x3b, 0xff, 0xec, 0x91, 0x22, 0xff, 0xe7, 0x87, 0x1a, 0xff, 0xed, 0x90, 0x20, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf5, 0xa8, 0x47, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf8, 0xbe, 0x76, 0xff, 0xf3, 0x92, 0x19, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf6, 0x98, 0x22, 0xff, 0xdc, 0x80, 0x1c, 0xff, 0xe0, 0x84, 0x1d, 0xff, 0xf4, 0x96, 0x21, 0xff, 0xf5, 0x96, 0x1f, 0xff, 0xf7, 0x96, 0x1d, 0xff, 0xf7, 0x96, 0x1d, 0xff, 0xf7, 0x96, 0x1e, 0xff, 0xf7, 0x96, 0x1d, 0xff, 0xf6, 0x96, 0x1f, 0xff, 0xf5, 0x97, 0x21, 0xff, 0xdf, 0x83, 0x1c, 0xff, 0xe1, 0x85, 0x1d, 0xff, 0xf2, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x93, 0x1b, 0xff, 0xf6, 0xb1, 0x5a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf3, 0x94, 0x1c, 0xff, 0xf3, 0x96, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xe7, 0x8b, 0x1f, 0xff, 0xc7, 0x6c, 0x17, 0xff, 0xf1, 0x94, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xee, 0x91, 0x20, 0xff, 0xd2, 0x75, 0x1a, 0xff, 0xe5, 0x88, 0x1e, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x95, 0x1f, 0xff, 0xf4, 0x9b, 0x2c, 0xff, 0xfa, 0xcf, 0x9a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xfa, 0xcc, 0x92, 0xff, 0xf2, 0x90, 0x15, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xed, 0x90, 0x20, 0xff, 0xc6, 0x6a, 0x16, 0xff, 0xd7, 0x7b, 0x1a, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf6, 0x99, 0x22, 0xff, 0xd8, 0x7c, 0x1b, 0xff, 0xc8, 0x6d, 0x17, 0xff, 0xeb, 0x8e, 0x1f, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x20, 0xff, 0xf3, 0x96, 0x20, 0xff, 0xf7, 0xb6, 0x66, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xfa, 0xcc, 0x93, 0xff, 0xf3, 0x97, 0x22, 0xff, 0xf3, 0x95, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xeb, 0x8e, 0x1f, 0xff, 0xc8, 0x6d, 0x18, 0xff, 0xbd, 0x62, 0x14, 0xff, 0xeb, 0x8e, 0x1f, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x21, 0xff, 0xe6, 0x89, 0x1e, 0xff, 0xc6, 0x6b, 0x17, 0xff, 0xc8, 0x6c, 0x18, 0xff, 0xeb, 0x8e, 0x1f, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x95, 0x20, 0xff, 0xf3, 0x97, 0x23, 0xff, 0xf7, 0xba, 0x6d, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf9, 0xc6, 0x86, 0xff, 0xf4, 0xa6, 0x45, 0xff, 0xee, 0x91, 0x20, 0xff, 0xe7, 0x8a, 0x1e, 0xff, 0xd5, 0x79, 0x1a, 0xff, 0xc2, 0x67, 0x16, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc6, 0x6a, 0x16, 0xff, 0xf1, 0x94, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xf1, 0x94, 0x21, 0xff, 0xcd, 0x71, 0x18, 0xff, 0xbe, 0x63, 0x15, 0xff, 0xc2, 0x67, 0x15, 0xff, 0xd7, 0x7a, 0x1a, 0xff, 0xe8, 0x8c, 0x1f, 0xff, 0xef, 0x93, 0x20, 0xff, 0xf4, 0xa2, 0x3a, 0xff, 0xf8, 0xbb, 0x6e, 0xff, 0xfd, 0xe3, 0xc5, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xed, 0xd6, 0xc2, 0xff, 0xc6, 0x77, 0x32, 0xff, 0xbd, 0x61, 0x10, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xcd, 0x72, 0x18, 0xff, 0xf1, 0x94, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf5, 0x98, 0x22, 0xff, 0xd0, 0x74, 0x19, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xbe, 0x63, 0x15, 0xff, 0xbf, 0x62, 0x13, 0xff, 0xef, 0xd8, 0xc5, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xd7, 0x9d, 0x69, 0xff, 0xbe, 0x61, 0x0e, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc9, 0x6d, 0x17, 0xff, 0xf1, 0x94, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xce, 0x72, 0x18, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xca, 0x7f, 0x3b, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xef, 0xd7, 0xc2, 0xff, 0xcb, 0x7f, 0x3d, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xc0, 0x64, 0x13, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xc0, 0x65, 0x15, 0xff, 0xee, 0x90, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf4, 0x97, 0x21, 0xff, 0xea, 0x8d, 0x1f, 0xff, 0xca, 0x6e, 0x17, 0xff, 0xbf, 0x64, 0x15, 0xff, 0xc0, 0x64, 0x14, 0xff, 0xbf, 0x62, 0x11, 0xff, 0xc5, 0x70, 0x26, 0xff, 0xf0, 0xda, 0xc6, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xed, 0xd2, 0xba, 0xff, 0xcf, 0x89, 0x4b, 0xff, 0xc3, 0x6d, 0x21, 0xff, 0xbf, 0x63, 0x12, 0xff, 0xbc, 0x5f, 0x0e, 0xff, 0xd9, 0x7d, 0x19, 0xff, 0xf2, 0x95, 0x1f, 0xff, 0xf3, 0x96, 0x20, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x20, 0xff, 0xf4, 0x97, 0x20, 0xff, 0xda, 0x7d, 0x18, 0xff, 0xc0, 0x63, 0x0f, 0xff, 0xbf, 0x62, 0x10, 0xff, 0xc3, 0x6c, 0x20, 0xff, 0xca, 0x7e, 0x3b, 0xff, 0xec, 0xd1, 0xb8, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xe4, 0xbc, 0x98, 0xff, 0xd6, 0x9a, 0x66, 0xff, 0xd2, 0x92, 0x58, 0xff, 0xd9, 0x9f, 0x69, 0xff, 0xf6, 0xb4, 0x61, 0xff, 0xf3, 0x95, 0x20, 0xff, 0xf3, 0x94, 0x1e, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x96, 0x21, 0xff, 0xf3, 0x94, 0x1d, 0xff, 0xf3, 0x96, 0x20, 0xff, 0xf5, 0xad, 0x54, 0xff, 0xdf, 0xa4, 0x6a, 0xff, 0xd1, 0x91, 0x59, 0xff, 0xd5, 0x98, 0x62, 0xff, 0xe1, 0xb5, 0x90, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xf8, 0xc0, 0x79, 0xff, 0xf4, 0xa1, 0x37, 0xff, 0xf3, 0x92, 0x19, 0xff, 0xf3, 0x93, 0x1b, 0xff, 0xf3, 0x93, 0x1b, 0xff, 0xf3, 0x93, 0x1a, 0xff, 0xf4, 0x9d, 0x30, 0xff, 0xf8, 0xbc, 0x71, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xfb, 0xdd, 0xb5, 0xff, 0xf9, 0xc3, 0x7f, 0xff, 0xf6, 0xaf, 0x56, 0xff, 0xf6, 0xad, 0x52, 0xff, 0xf8, 0xbe, 0x75, 0xff, 0xfb, 0xda, 0xb0, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
#endif
};
lv_img_dsc_t img_flower_icon = {
.header.always_zero = 0,
.header.w = 40,
.header.h = 40,
.data_size = 1600 * LV_IMG_PX_SIZE_ALPHA_BYTE,
.header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA,
.data = img_flower_icon_map,
};
#endif

View File

@ -0,0 +1,73 @@
/**
* @file lv_test_img.c
*
*/
/*********************
* INCLUDES
*********************/
#include "lv_test_img.h"
#if LV_USE_IMG && LV_USE_TESTS
/*********************
* DEFINES
*********************/
LV_IMG_DECLARE(img_flower_icon)
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**********************
* STATIC VARIABLES
**********************/
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
/**
* Create images to test their functionalities
*/
void lv_test_img_1(void)
{
/*Create an image object from a varibale*/
lv_obj_t * img1 = lv_img_create(lv_disp_get_scr_act(NULL), NULL);
lv_img_set_src(img1, &img_flower_icon);
lv_obj_set_pos(img1, 10, 10);
/*Copy the previous image and set a redish style*/
static lv_style_t style;
lv_style_copy(&style, &lv_style_plain);
style.image.color = LV_COLOR_RED;
style.image.intense = LV_OPA_70;
lv_obj_t * img2 = lv_img_create(lv_disp_get_scr_act(NULL), img1);
lv_img_set_style(img2, LV_IMG_STYLE_MAIN, &style);
lv_obj_align(img2, img1, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
/*Copy the previous image and test the mosaic feature*/
lv_obj_t * img3 = lv_img_create(lv_disp_get_scr_act(NULL), img2);
lv_obj_set_size(img3, 100, 100);
lv_obj_align(img3, img2, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
/*Test symbol drawing*/
lv_obj_t * img4 = lv_img_create(lv_disp_get_scr_act(NULL), NULL);
lv_img_set_src(img4, LV_SYMBOL_SETTINGS LV_SYMBOL_OK);
lv_obj_align(img4, img3, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20);
}
/**********************
* STATIC FUNCTIONS
**********************/
#endif /*LV_USE_IMG && LV_USE_TESTS*/

View File

@ -0,0 +1,54 @@
/**
* @file lv_test_img.h
*
*/
#ifndef LV_TEST_IMG_H
#define LV_TEST_IMG_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
#ifdef LV_CONF_INCLUDE_SIMPLE
#include "lvgl.h"
#include "lv_ex_conf.h"
#else
#include "../lvgl/lvgl/lvgl.h"
//#include "../../../../lvgl/lvgl.h"
#include "../../../../lv_ex_conf.h"
#endif
#if LV_USE_IMG && LV_USE_TESTS
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
/**
* Create images to test their functionalities
*/
void lv_test_img_1(void);
/**********************
* MACROS
**********************/
#endif /*LV_USE_IMG*/
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /*LV_USE_IMG && LV_USE_TESTS*/

View File

@ -0,0 +1,7 @@
CSRCS += lv_test_img.c
CSRCS += img_flower_icon.c
DEPPATH += --dep-path $(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_img
VPATH += :$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_img
CFLAGS += "-I$(LVGL_DIR)/lv_examples/lv_tests/lv_test_objx/lv_test_img"

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