From f6408be05b8399dc24c107e2bd8d4f997ed92e58 Mon Sep 17 00:00:00 2001 From: chenjintao Date: Fri, 9 Oct 2026 14:19:16 +0800 Subject: [PATCH] feat(lcd): add compressed GFX idle expression animation Integrate esp_emote_gfx for idle rendering with symmetric mesh-based blinking and LCD DMA flush synchronization. Store cropped face layers with lossless RLE, decode once into PSRAM, and retain the PNG backend for other expressions. Include source layers and asset generation tools. --- .../src/runtime/domain_runtime_adapters.c | 2 +- components/platform/CMakeLists.txt | 12 + .../lcd_layers/jichubiaoqing/idle_base.png | Bin 0 -> 5321 bytes .../jichubiaoqing/idle_eyes_closed.png | Bin 0 -> 5896 bytes .../jichubiaoqing/idle_eyes_half.png | Bin 0 -> 8791 bytes .../jichubiaoqing/idle_eyes_open.png | Bin 0 -> 12161 bytes .../lcd_layers/jichubiaoqing/layout.json | 19 + .../jichubiaoqing/preview_closed.png | Bin 0 -> 10881 bytes .../lcd_layers/jichubiaoqing/preview_half.png | Bin 0 -> 13832 bytes .../lcd_layers/jichubiaoqing/preview_open.png | Bin 0 -> 17316 bytes components/platform/idf_component.yml | 1 + .../platform/internal/lcd_emote_assets.h | 23 + .../src/generated/emote_gfx/idle_base.c | 209 ++++++ .../src/generated/emote_gfx/idle_eyes_open.c | 618 ++++++++++++++++++ components/platform/src/lcd_direct.c | 340 +++++++++- components/platform/src/lcd_emote_assets.c | 27 + dependencies.lock | 107 ++- main/Kconfig.projbuild | 11 + sdkconfig.defaults | 1 + tools/compress_idle_expression.py | 66 ++ tools/split_idle_expression.py | 123 ++++ 21 files changed, 1554 insertions(+), 5 deletions(-) create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/idle_base.png create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/idle_eyes_closed.png create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/idle_eyes_half.png create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/idle_eyes_open.png create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/layout.json create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/preview_closed.png create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/preview_half.png create mode 100644 components/platform/assets/lcd_layers/jichubiaoqing/preview_open.png create mode 100644 components/platform/internal/lcd_emote_assets.h create mode 100644 components/platform/src/generated/emote_gfx/idle_base.c create mode 100644 components/platform/src/generated/emote_gfx/idle_eyes_open.c create mode 100644 components/platform/src/lcd_emote_assets.c create mode 100644 tools/compress_idle_expression.py create mode 100644 tools/split_idle_expression.py diff --git a/components/domain/src/runtime/domain_runtime_adapters.c b/components/domain/src/runtime/domain_runtime_adapters.c index 477f460..4f1e021 100644 --- a/components/domain/src/runtime/domain_runtime_adapters.c +++ b/components/domain/src/runtime/domain_runtime_adapters.c @@ -173,7 +173,7 @@ static const domain_expression_catalog_entry_t s_expression_catalog[] = { { .id = DOMAIN_EXPRESSION_IDLE, .platform_request = { - .kind = PLATFORM_LCD_PRESENTATION_ASSET_SEQUENCE, + .kind = PLATFORM_LCD_PRESENTATION_IDLE, .priority = 120, .interrupt_current = true, .return_to_idle = false, diff --git a/components/platform/CMakeLists.txt b/components/platform/CMakeLists.txt index dc7ff20..6066509 100644 --- a/components/platform/CMakeLists.txt +++ b/components/platform/CMakeLists.txt @@ -26,6 +26,14 @@ set(platform_srcs "src/platform_behavior_stubs.c" ) +if(CONFIG_TQ_LCD_EMOTE_GFX_TEST) + list(APPEND platform_srcs + "src/lcd_emote_assets.c" + "src/generated/emote_gfx/idle_base.c" + "src/generated/emote_gfx/idle_eyes_open.c" + ) +endif() + set(platform_priv_requires 78__esp-wifi-connect bt @@ -65,6 +73,10 @@ if(CONFIG_TQ_NETWORK_DIAGNOSTICS_ENABLE) list(APPEND platform_priv_requires lwip) endif() +if(CONFIG_TQ_LCD_EMOTE_GFX_TEST) + list(APPEND platform_priv_requires espressif2022__esp_emote_gfx) +endif() + idf_component_register( SRCS ${platform_srcs} diff --git a/components/platform/assets/lcd_layers/jichubiaoqing/idle_base.png b/components/platform/assets/lcd_layers/jichubiaoqing/idle_base.png new file mode 100644 index 0000000000000000000000000000000000000000..4448fe6b9c0f40d80025715cb2ee5f96d916ad6c GIT binary patch literal 5321 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 literal 0 HcmV?d00001 diff --git a/components/platform/assets/lcd_layers/jichubiaoqing/idle_eyes_open.png b/components/platform/assets/lcd_layers/jichubiaoqing/idle_eyes_open.png new file mode 100644 index 0000000000000000000000000000000000000000..d08484e2239d8007eae905546dfc21d0f892234f GIT binary patch literal 12161 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 l|1TH+|LDi`+zW~G$VTb?# literal 0 HcmV?d00001 diff --git a/components/platform/assets/lcd_layers/jichubiaoqing/preview_half.png b/components/platform/assets/lcd_layers/jichubiaoqing/preview_half.png new file mode 100644 index 0000000000000000000000000000000000000000..333fd8b5b391b7ea6a55baab24e7e24d01dd9498 GIT binary patch literal 13832 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 literal 0 HcmV?d00001 diff --git a/components/platform/assets/lcd_layers/jichubiaoqing/preview_open.png b/components/platform/assets/lcd_layers/jichubiaoqing/preview_open.png new file mode 100644 index 0000000000000000000000000000000000000000..a34e78145390ba4c45e622b2ff95fa0d2a4ee7be GIT binary patch literal 17316 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 Z)%7R?p<^8fVD}9ODKRioL7M;o literal 0 HcmV?d00001 diff --git a/components/platform/idf_component.yml b/components/platform/idf_component.yml index 636bdf5..f600250 100644 --- a/components/platform/idf_component.yml +++ b/components/platform/idf_component.yml @@ -6,3 +6,4 @@ dependencies: espressif/esp-sr: ^2.4.7 espressif/mdns: ^1.11.0 78/esp-wifi-connect: ^3.1.4 + espressif2022/esp_emote_gfx: ^3.0.5 diff --git a/components/platform/internal/lcd_emote_assets.h b/components/platform/internal/lcd_emote_assets.h new file mode 100644 index 0000000..906e639 --- /dev/null +++ b/components/platform/internal/lcd_emote_assets.h @@ -0,0 +1,23 @@ +#pragma once + +#include +#include +#include + +/* 每个游程四字节:像素数、RGB565 高字节、低字节、透明度。 + * 解压输出保持 GFX 的 RGB565 色彩平面 + A8 透明度平面布局。 */ +typedef struct { + uint16_t width; + uint16_t height; + uint16_t x; + uint16_t y; + size_t compressed_size; + const uint8_t *data; +} lcd_emote_rle_asset_t; + +extern const lcd_emote_rle_asset_t idle_base_rle_asset; +extern const lcd_emote_rle_asset_t idle_eyes_open_rle_asset; + +/* 调用方提供至少 pixel_count * 3 字节。拒绝截断、越界或像素数不符的流。 */ +bool lcd_emote_decode_rle(const uint8_t *src, size_t src_size, + uint8_t *dst, size_t pixel_count); diff --git a/components/platform/src/generated/emote_gfx/idle_base.c b/components/platform/src/generated/emote_gfx/idle_base.c new file mode 100644 index 0000000..bcb59cd --- /dev/null +++ b/components/platform/src/generated/emote_gfx/idle_base.c @@ -0,0 +1,209 @@ +/* Generated by tools/compress_idle_expression.py; do not edit. */ +#include "lcd_emote_assets.h" + +static const uint8_t idle_base_rle[] = { + 0x87, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x31, 0x84, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x01, 0x62, 0xe7, 0xff, 0x01, 0x7b, 0x89, 0xff, + 0x01, 0x9c, 0x4b, 0xff, 0x02, 0x94, 0x2b, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0x62, 0xe7, 0xff, 0x01, 0x5a, 0x86, 0xff, + 0x01, 0x39, 0xa4, 0xff, 0x01, 0x18, 0xc2, 0xff, 0xff, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x52, 0x66, 0xff, 0x01, 0x8c, 0x0a, 0xff, + 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x02, 0xff, 0xb4, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x94, 0x4b, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x08, 0x41, 0xff, 0xff, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x52, 0x46, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x04, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0x5a, 0x86, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x12, 0xff, 0x06, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xee, 0xf2, 0xff, 0x01, 0x73, 0x48, 0xff, 0xff, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x5a, 0x66, 0xff, 0x01, 0xef, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x10, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf7, 0x33, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x14, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x21, 0x03, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xc4, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x14, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x8a, 0x00, 0x00, 0x00, 0x02, 0x10, 0x81, 0xff, 0x01, 0x29, 0x23, 0xff, + 0x01, 0x41, 0xc5, 0xff, 0x03, 0x39, 0xc4, 0xff, 0x01, 0x41, 0xc5, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0x08, 0x61, 0xff, 0x01, 0x10, 0x61, 0xff, + 0x6b, 0x00, 0x00, 0x00, 0x01, 0x39, 0xc4, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x14, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x52, 0x46, 0xff, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x10, 0x61, 0xff, + 0x01, 0x31, 0x63, 0xff, 0x04, 0x39, 0xc4, 0xff, 0x01, 0x41, 0xc5, 0xff, 0x01, 0x29, 0x23, 0xff, 0x02, 0x10, 0x81, 0xff, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x39, 0x84, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x02, 0xbd, 0x4e, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x04, 0xd6, 0x10, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xbd, 0x2e, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0x62, 0xa7, 0xff, 0x01, 0x39, 0xa4, 0xff, + 0x01, 0x08, 0x40, 0xff, 0x65, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x14, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x01, 0x31, 0x84, 0xff, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x31, 0x43, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0xac, 0xcd, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x05, 0xd6, 0x10, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x02, 0xbd, 0x4e, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x01, 0x39, 0x84, 0xff, 0x01, 0x08, 0x40, 0xff, + 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x41, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x01, 0xe6, 0x91, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0xb4, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, 0x06, 0xff, 0x53, 0xff, + 0x02, 0xff, 0x94, 0xff, 0x02, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xee, 0xb1, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xbd, 0x2e, 0xff, + 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x5a, 0x87, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x63, 0x00, 0x00, 0x00, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xff, 0xd4, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x14, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x94, 0x4b, 0xff, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x20, 0xe2, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xee, 0x91, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x02, 0xff, 0xb4, 0xff, 0x02, 0xff, 0x94, 0xff, 0x06, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0xff, 0x94, 0xff, + 0x02, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xa4, 0x8c, 0xff, + 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x10, 0x81, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xee, 0xb2, 0xff, + 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x0b, 0xf6, 0xf2, 0xff, 0x03, 0xf6, 0xd2, 0xff, + 0x01, 0xee, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0x74, 0xff, 0x01, 0xe6, 0x71, 0xff, + 0x01, 0xc5, 0x8e, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x61, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0xd6, 0x10, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x12, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xe6, 0x91, 0xff, + 0x01, 0x4a, 0x05, 0xff, 0x61, 0x00, 0x00, 0x00, 0x01, 0x42, 0x05, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xc5, 0x6e, 0xff, 0x01, 0xe6, 0x71, 0xff, + 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x04, 0xf6, 0xd2, 0xff, 0x0b, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xee, 0xb2, 0xff, + 0x01, 0xc5, 0x8e, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x12, 0xff, 0x03, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x02, 0xf6, 0xd2, 0xff, + 0x02, 0xff, 0x13, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x06, 0xff, 0x94, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x02, 0xff, 0xf5, 0xff, + 0x01, 0xee, 0x91, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x52, 0x46, 0xff, 0x60, 0x00, 0x00, 0x00, 0x01, 0x62, 0xa7, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x13, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x60, 0x00, 0x00, 0x00, 0x01, 0x42, 0x05, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xee, 0xb1, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x01, 0xff, 0xd4, 0xff, 0x06, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x03, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xc5, 0x8e, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x04, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x02, 0xe6, 0x71, 0xff, 0x01, 0xb5, 0x0d, 0xff, + 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x07, 0x83, 0xca, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xc5, 0x8f, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x5f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x73, 0x28, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0x08, 0x40, 0xff, 0x5f, 0x00, 0x00, 0x00, 0x01, 0x8c, 0x0b, 0xff, 0x01, 0xee, 0x91, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xc5, 0x8e, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x07, 0x83, 0xca, 0xff, 0x01, 0x9c, 0x6b, 0xff, + 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x04, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x9c, 0x6c, 0xff, 0x01, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x01, 0xee, 0xd2, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x83, 0xa9, 0xff, 0x01, 0x62, 0xa7, 0xff, 0x01, 0x52, 0x46, 0xff, + 0x01, 0x39, 0xa4, 0xff, 0x01, 0x39, 0x84, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x61, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x18, 0xe2, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x02, 0x52, 0x46, 0xff, 0x60, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0c, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x8e, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x08, 0x40, 0xff, 0x60, 0x00, 0x00, 0x00, + 0x01, 0x4a, 0x05, 0xff, 0x01, 0x52, 0x46, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x18, 0xe2, 0xff, 0x01, 0x10, 0x81, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, 0x01, 0x18, 0xe2, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x39, 0xa4, 0xff, + 0x01, 0x4a, 0x25, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0x83, 0xa9, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xee, 0xd2, 0xff, + 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x04, 0xf6, 0xf2, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x31, 0x64, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x83, 0xa9, 0xff, + 0x01, 0x5a, 0xa7, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x29, 0x23, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x76, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x05, 0xff, + 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x05, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x05, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xde, 0x51, 0xff, 0x01, 0x52, 0x66, 0xff, 0x76, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, + 0x01, 0x29, 0x23, 0xff, 0x01, 0x41, 0xc4, 0xff, 0x01, 0x52, 0x46, 0xff, 0x01, 0x83, 0xa9, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xd6, 0x10, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x03, 0xff, 0x53, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x52, 0x46, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x73, 0x48, 0xff, 0x01, 0x4a, 0x25, 0xff, + 0x01, 0x31, 0x63, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x79, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc4, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0xe6, 0x71, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x05, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x05, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0x41, 0xc4, 0xff, + 0x79, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x73, 0x48, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x03, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x01, 0x10, 0xa1, 0xff, 0x7b, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xde, 0x30, 0xff, 0x02, 0xff, 0x53, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x04, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0x9c, 0x6c, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x04, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xde, 0x30, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0x52, 0x66, 0xff, 0x7b, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x01, 0x18, 0xa2, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0xde, 0x51, 0xff, + 0x02, 0xff, 0x53, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x04, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x02, 0x10, 0x61, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xff, 0x94, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x04, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x9c, 0x6b, 0xff, + 0x01, 0x5a, 0xa7, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x05, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x02, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, + 0x01, 0x83, 0xca, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x05, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x18, 0xe2, 0xff, + 0xf6, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x05, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0x08, 0x61, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x62, 0xc7, 0xff, 0x01, 0xee, 0xb1, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x05, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0x73, 0x28, 0xff, 0xf6, 0x00, 0x00, 0x00, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x06, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xc5, 0xaf, 0xff, 0x01, 0x42, 0x05, 0xff, + 0x08, 0x00, 0x00, 0x00, 0x01, 0x39, 0xa4, 0xff, 0x01, 0xb5, 0x4e, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x06, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xb4, 0xed, 0xff, 0x01, 0x10, 0xa1, 0xff, + 0xf5, 0x00, 0x00, 0x00, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0x73, 0x69, 0xff, 0x01, 0x21, 0x02, 0xff, + 0x0a, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x62, 0xe7, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0xd4, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x03, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xac, 0xed, 0xff, + 0x01, 0x18, 0xa2, 0xff, 0x9a, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa2, 0xff, 0x01, 0x10, 0x81, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x4a, 0x25, 0xff, + 0x01, 0x42, 0x05, 0xff, 0x03, 0x4a, 0x05, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x21, 0x22, 0xff, 0x01, 0x10, 0x81, 0xff, 0x01, 0x08, 0x40, 0xff, + 0x4f, 0x00, 0x00, 0x00, 0x01, 0x73, 0x49, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xde, 0x51, 0xff, 0x01, 0x83, 0xa9, 0xff, 0x01, 0x31, 0x84, 0xff, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x31, 0x43, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0x83, 0xaa, 0xff, + 0x4f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x41, 0xff, 0x01, 0x10, 0x81, 0xff, 0x01, 0x21, 0x22, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x03, 0x4a, 0x05, 0xff, + 0x01, 0x42, 0x05, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x10, 0x81, 0xff, 0x01, 0x18, 0xa1, 0xff, 0x3a, 0x00, 0x00, 0x00, + 0x01, 0x29, 0x23, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x73, 0x48, 0xff, 0x01, 0x8c, 0x0a, 0xff, 0x02, 0xb5, 0x0d, 0xff, 0x01, 0xcd, 0xaf, 0xff, + 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xde, 0x51, 0xff, 0x02, 0xde, 0x30, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xd6, 0x10, 0xff, + 0x01, 0xde, 0x30, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x4e, 0x00, 0x00, 0x00, + 0x01, 0x10, 0xa1, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0xf5, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0xf5, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x31, 0x63, 0xff, 0x12, 0x00, 0x00, 0x00, 0x01, 0x29, 0x43, 0xff, 0x01, 0x62, 0xe7, 0xff, + 0x01, 0xac, 0xed, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0x31, 0x63, 0xff, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc4, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xd6, 0x10, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xde, 0x10, 0xff, 0x02, 0xde, 0x30, 0xff, 0x01, 0xde, 0x51, 0xff, + 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x8c, 0x0a, 0xff, + 0x01, 0x73, 0x48, 0xff, 0x01, 0x4a, 0x26, 0xff, 0x01, 0x29, 0x23, 0xff, 0x30, 0x00, 0x00, 0x00, 0x01, 0x31, 0x84, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0x9c, 0x6c, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x01, 0xe6, 0x51, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x53, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x02, 0xff, 0xf5, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0x29, 0x23, 0xff, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x73, 0x48, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x9c, 0x6c, 0xff, + 0x01, 0x62, 0xa7, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x16, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x31, 0x84, 0xff, + 0x01, 0x5a, 0xa7, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x73, 0x48, 0xff, 0x01, 0x29, 0x23, 0xff, 0x4f, 0x00, 0x00, 0x00, + 0x01, 0x21, 0x02, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0xf5, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xe6, 0x51, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xbd, 0x6e, 0xff, + 0x01, 0x9c, 0x6c, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x28, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x5a, 0xa7, 0xff, + 0x01, 0x94, 0x2b, 0xff, 0x01, 0xc5, 0x6e, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x6b, 0x28, 0xff, + 0x01, 0x41, 0xe5, 0xff, 0x01, 0x31, 0x64, 0xff, 0x01, 0x21, 0x02, 0xff, 0x01, 0x10, 0x81, 0xff, 0x53, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, + 0x01, 0x10, 0x81, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x53, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0x21, 0x02, 0xff, 0x01, 0x31, 0x64, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xcd, 0xaf, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xde, 0x30, 0xff, 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x9c, 0x6c, 0xff, 0x01, 0x62, 0xa7, 0xff, 0x01, 0x10, 0x81, 0xff, 0x22, 0x00, 0x00, 0x00, + 0x01, 0x52, 0x66, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0xc5, 0xaf, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x02, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x39, 0xc4, 0xff, + 0x01, 0x29, 0x23, 0xff, 0x01, 0x10, 0xa1, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x21, 0x03, 0xff, 0x01, 0x39, 0xc4, 0xff, + 0x01, 0x62, 0xc7, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x02, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xc5, 0xaf, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0x52, 0x66, 0xff, 0x1d, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xc2, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xf7, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x94, 0x4b, 0xff, 0x01, 0x52, 0x66, 0xff, 0x01, 0x31, 0x63, 0xff, + 0x01, 0x10, 0xa1, 0xff, 0xd8, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0x29, 0x43, 0xff, 0x18, 0x00, 0x00, 0x00, + 0x01, 0x39, 0xa4, 0xff, 0x01, 0x8b, 0xca, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x52, 0x66, 0xff, 0x01, 0x21, 0x02, 0xff, + 0x01, 0x10, 0x61, 0xff, 0xde, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x21, 0x02, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x83, 0xca, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x14, 0x00, 0x00, 0x00, 0x01, 0x18, 0xe2, 0xff, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x02, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x62, 0xa7, 0xff, + 0x01, 0x31, 0x84, 0xff, 0x01, 0x08, 0x61, 0xff, 0xe4, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x29, 0x43, 0xff, 0x01, 0x62, 0xc7, 0xff, + 0x01, 0xac, 0xed, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x02, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xde, 0x30, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x31, 0x63, 0xff, 0x11, 0x00, 0x00, 0x00, 0x01, 0x39, 0x84, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x18, 0xc2, 0xff, 0xea, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xa1, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x83, 0xca, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xde, 0x30, 0xff, + 0x01, 0x41, 0xe5, 0xff, 0x10, 0x00, 0x00, 0x00, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x03, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0x83, 0xca, 0xff, + 0x01, 0x31, 0x63, 0xff, 0x01, 0x08, 0x61, 0xff, 0xee, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x13, 0xff, + 0x02, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x08, 0x40, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x29, 0x23, 0xff, 0x01, 0x08, 0x40, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x01, 0x21, 0x03, 0xff, + 0x01, 0x6b, 0x08, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x08, 0x61, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x04, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x21, 0x02, 0xff, + 0xf8, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x4a, 0x26, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x02, 0xf6, 0xd2, 0xff, 0x01, 0x08, 0x60, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x87, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x21, 0x02, 0xff, + 0xfc, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x02, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x11, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x01, 0x6b, 0x08, 0xff, 0x01, 0x21, 0x02, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0x5a, 0xa7, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x13, 0x00, 0x00, 0x00, 0x02, 0x10, 0x81, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x02, 0x10, 0x81, 0xff, 0x0a, 0x00, 0x00, 0x00, +}; + +const lcd_emote_rle_asset_t idle_base_rle_asset = { + .width = 284, .height = 37, .x = 18, .y = 138, + .compressed_size = sizeof(idle_base_rle), .data = idle_base_rle, +}; diff --git a/components/platform/src/generated/emote_gfx/idle_eyes_open.c b/components/platform/src/generated/emote_gfx/idle_eyes_open.c new file mode 100644 index 0000000..bf0a7cd --- /dev/null +++ b/components/platform/src/generated/emote_gfx/idle_eyes_open.c @@ -0,0 +1,618 @@ +/* Generated by tools/compress_idle_expression.py; do not edit. */ +#include "lcd_emote_assets.h" + +static const uint8_t idle_eyes_open_rle[] = { + 0x2d, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x02, 0x10, 0x81, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x01, 0x10, 0x61, 0xff, + 0x86, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x07, 0x10, 0x81, 0xff, 0x52, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, + 0x01, 0x18, 0xc2, 0xff, 0x01, 0x29, 0x43, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0x73, 0x28, 0xff, + 0x01, 0x8b, 0xea, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x02, 0xa4, 0xac, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0x73, 0x28, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0x31, 0x84, 0xff, 0x01, 0x21, 0x02, 0xff, 0x01, 0x10, 0x61, 0xff, + 0x79, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x31, 0x64, 0xff, 0x01, 0x41, 0xc5, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0x6b, 0x28, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x06, 0xa4, 0xac, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0x7b, 0x69, 0xff, + 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x21, 0x02, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x48, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x61, 0xff, 0x01, 0x21, 0x02, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xbd, 0x4e, 0xff, + 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0xf5, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, 0x04, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x73, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xcd, 0xcf, 0xff, + 0x01, 0x9c, 0x6c, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x29, 0x23, 0xff, 0x01, 0x10, 0x81, 0xff, 0x72, 0x00, 0x00, 0x00, + 0x01, 0x20, 0xe2, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x9c, 0x6c, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0xd4, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0x73, 0xff, 0x08, 0xff, 0x53, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x41, 0xc4, 0xff, 0x01, 0x21, 0x02, 0xff, + 0x01, 0x08, 0x61, 0xff, 0x42, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0x42, 0x05, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xd2, 0xff, + 0x0a, 0xf6, 0xf2, 0xff, 0x02, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xde, 0x51, 0xff, 0x01, 0x9c, 0x6c, 0xff, 0x01, 0x52, 0x46, 0xff, 0x01, 0x29, 0x43, 0xff, 0x01, 0x08, 0x40, 0xff, + 0x6c, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x42, 0x05, 0xff, 0x01, 0x83, 0xca, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0d, 0xf6, 0xf2, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x29, 0x23, 0xff, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0x31, 0x84, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, + 0x02, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0x41, 0xe5, 0xff, 0x01, 0x10, 0x81, 0xff, 0x67, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x73, 0x28, 0xff, + 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0x31, 0x64, 0xff, 0x01, 0x10, 0x81, 0xff, + 0x38, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, 0x01, 0x42, 0x05, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x18, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x63, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x31, 0x64, 0xff, 0x01, 0x83, 0xca, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x19, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x34, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x1e, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x74, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x52, 0x66, 0xff, + 0x01, 0x10, 0x81, 0xff, 0x60, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0x83, 0xca, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x1f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0x08, 0x40, 0xff, + 0x31, 0x00, 0x00, 0x00, 0x01, 0x29, 0x43, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x23, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x54, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x9c, 0x8c, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x73, 0x48, 0xff, + 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x23, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0x29, 0x23, 0xff, + 0x2e, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0xd5, 0xd0, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x02, 0xf6, 0xf2, 0xff, + 0x28, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0x18, 0xe2, 0xff, + 0x5a, 0x00, 0x00, 0x00, 0x01, 0x41, 0xe5, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x28, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x5a, 0x87, 0xff, + 0x01, 0x08, 0x41, 0xff, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x2c, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xbd, 0x6e, 0xff, + 0x01, 0x31, 0x63, 0xff, 0x57, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x2c, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0x94, 0x2b, 0xff, 0x01, 0x21, 0x02, 0xff, 0x29, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x25, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x2e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xee, 0x91, 0xff, 0x01, 0x62, 0xe7, 0xff, 0x01, 0x08, 0x61, 0xff, 0x54, 0x00, 0x00, 0x00, 0x01, 0x29, 0x43, 0xff, 0x01, 0xbd, 0x6e, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x15, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x19, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xc5, 0xaf, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x27, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe7, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x16, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x09, 0xf6, 0xf2, 0xff, + 0x02, 0xff, 0x12, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x94, 0x0b, 0xff, + 0x01, 0x18, 0xa1, 0xff, 0x52, 0x00, 0x00, 0x00, 0x01, 0x42, 0x05, 0xff, 0x01, 0xde, 0x51, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x04, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x05, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x15, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x62, 0xa7, 0xff, 0x24, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x8b, 0xca, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x14, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x08, 0xff, 0x94, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x86, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x54, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x22, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x03, 0xac, 0xed, 0xff, + 0x01, 0xb4, 0xed, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0c, 0xff, 0x13, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, + 0x01, 0x62, 0xc7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x02, 0xf7, 0x12, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xde, 0x50, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xbd, 0x4e, 0xff, + 0x01, 0xac, 0xed, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0x73, 0x48, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x02, 0xb5, 0x0d, 0xff, + 0x01, 0xc5, 0x6e, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x11, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0x08, 0x40, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x20, 0xff, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x12, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x8c, 0x0a, 0xff, 0x01, 0x6b, 0x28, 0xff, 0x01, 0x31, 0x84, 0xff, + 0x08, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x87, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x01, 0x94, 0x4b, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xbd, 0x4e, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0c, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x83, 0xaa, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0c, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x73, 0x28, 0xff, + 0x01, 0x42, 0x05, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x5a, 0x86, 0xff, + 0x01, 0x8b, 0xea, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x11, 0xff, 0x13, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x8b, 0xea, 0xff, + 0x1e, 0x00, 0x00, 0x00, 0x01, 0x08, 0x20, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x11, 0xff, 0x13, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xde, 0x50, 0xff, 0x01, 0xac, 0xcc, 0xff, + 0x01, 0x83, 0xa9, 0xff, 0x01, 0x29, 0x23, 0xff, 0x11, 0x00, 0x00, 0x00, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xee, 0xb2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0c, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xbd, 0x2e, 0xff, 0x01, 0x18, 0xe2, 0xff, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x62, 0xc7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xac, 0xac, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x11, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc5, 0xff, + 0x01, 0x8b, 0xea, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x11, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x11, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xde, 0x50, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x16, 0x00, 0x00, 0x00, 0x01, 0x6b, 0x08, 0xff, 0x01, 0xb5, 0x2d, 0xff, + 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x18, 0xa1, 0xff, 0x48, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x86, 0xff, 0x01, 0xee, 0xb2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x52, 0x46, 0xff, 0x16, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc1, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0xbd, 0x2e, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0xff, 0x12, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x01, 0x42, 0x05, 0xff, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x6b, 0x08, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x9c, 0x6b, 0xff, + 0x01, 0x08, 0x61, 0xff, 0x46, 0x00, 0x00, 0x00, 0x01, 0x42, 0x05, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x52, 0x46, 0xff, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x5a, 0x66, 0xff, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xc4, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x8c, 0x0a, 0xff, + 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x73, 0x49, 0xff, 0x45, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x51, 0xff, + 0x01, 0x73, 0x28, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xfe, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0x31, 0x43, 0xff, + 0x17, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xc5, 0xcf, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x43, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x61, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x21, 0x00, 0x00, 0x00, 0x01, 0x73, 0x49, 0xff, + 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x53, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xbd, 0x6e, 0xff, + 0x01, 0x10, 0x81, 0xff, 0x16, 0x00, 0x00, 0x00, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0x73, 0x49, 0xff, 0x21, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x61, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x42, 0x00, 0x00, 0x00, 0x01, 0x73, 0x28, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x23, 0x00, 0x00, 0x00, 0x01, 0x52, 0x66, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0x83, 0xaa, 0xff, 0x15, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x87, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0x73, 0x49, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x41, 0xff, 0x04, 0x00, 0x00, 0x00, 0x01, 0x52, 0x69, 0xff, 0x02, 0x4a, 0x69, 0xff, 0x01, 0x52, 0x8a, 0xff, + 0x01, 0x29, 0x65, 0xff, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0a, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x08, 0x40, 0xff, 0x40, 0x00, 0x00, 0x00, + 0x01, 0x31, 0x84, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x03, 0x00, 0x00, 0x00, 0x01, 0x10, 0x60, 0xff, 0x01, 0x41, 0xe7, 0xff, + 0x01, 0x52, 0xaa, 0xff, 0x01, 0x84, 0x0f, 0xff, 0x01, 0x63, 0x2c, 0xff, 0x01, 0x4a, 0x69, 0xff, 0x01, 0x21, 0x03, 0xff, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0x39, 0xc4, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xff, 0x53, 0xff, 0x10, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x13, 0x00, 0x00, 0x00, 0x01, 0x18, 0xe2, 0xff, 0x01, 0xee, 0xb1, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x03, 0x00, 0x00, 0x00, 0x01, 0x52, 0x89, 0xff, 0x01, 0x73, 0xae, 0xff, 0x04, 0xff, 0xff, 0xff, 0x01, 0xd6, 0xba, 0xff, + 0x01, 0x52, 0xaa, 0xff, 0x01, 0x31, 0x86, 0xff, 0x19, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xe6, 0xb2, 0xff, 0x01, 0x52, 0x66, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x41, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x08, 0x40, 0xff, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x31, 0x85, 0xff, 0x01, 0xa4, 0xd0, 0xff, 0x01, 0xf7, 0x9c, 0xff, 0x04, 0xff, 0xff, 0xff, 0x01, 0xc5, 0xf5, 0xff, 0x01, 0x5a, 0xca, 0xff, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc4, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xc5, 0xcf, 0xff, 0x01, 0x10, 0x61, 0xff, 0x12, 0x00, 0x00, 0x00, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x03, 0x00, 0x00, 0x00, 0x01, 0x73, 0xae, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0xf7, 0xbf, 0xff, 0x02, 0xff, 0xdf, 0xff, + 0x01, 0xf7, 0xbe, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0xd6, 0x99, 0xff, 0x01, 0x31, 0xa6, 0xff, 0x19, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xbd, 0x2e, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x62, 0xe7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0x08, 0x40, 0xff, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xe6, 0xff, 0x01, 0xde, 0xda, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0xf7, 0xbe, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xf7, 0xbe, 0xff, + 0x01, 0xff, 0xdf, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0x84, 0x0f, 0xff, 0x01, 0x08, 0x41, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc4, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0x73, 0x28, 0xff, + 0x11, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0x94, 0x4b, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x41, 0xff, 0x02, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x63, 0x0a, 0xff, + 0x01, 0xff, 0xff, 0xff, 0x02, 0xf7, 0xbe, 0xff, 0x04, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xf7, 0xbe, 0xff, 0x01, 0xff, 0xff, 0xff, + 0x01, 0xd6, 0x99, 0xff, 0x01, 0x18, 0xc0, 0xff, 0x19, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, + 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x21, 0x02, 0xff, 0x02, 0x00, 0x00, 0x00, 0x01, 0x29, 0x44, 0xff, 0x01, 0xde, 0xfb, 0xff, 0x01, 0xff, 0xff, 0xff, + 0x01, 0xf7, 0xbe, 0xff, 0x05, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xf7, 0xdf, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0x52, 0xa9, 0xff, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x62, 0xc7, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x21, 0x02, 0xff, 0x10, 0x00, 0x00, 0x00, 0x01, 0xac, 0xcd, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x21, 0x02, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xe3, 0xff, 0x01, 0xf7, 0x7b, 0xff, 0x01, 0xf7, 0xbe, 0xff, 0x08, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xff, 0xbd, 0xff, + 0x01, 0x94, 0x4d, 0xff, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xc5, 0xcf, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x18, 0xa1, 0xff, 0x3c, 0x00, 0x00, 0x00, + 0x01, 0x73, 0x69, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x91, 0xff, + 0x01, 0x29, 0x43, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x41, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0xa5, 0x13, 0xff, 0x01, 0xff, 0xff, 0xff, + 0x01, 0xff, 0xdf, 0xff, 0x07, 0xff, 0xff, 0xff, 0x01, 0xff, 0xde, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xbd, 0x72, 0xff, 0x01, 0x18, 0xa1, 0xff, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x83, 0xca, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x83, 0xca, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xee, 0xb1, 0xff, 0x01, 0x42, 0x05, 0xff, 0x05, 0x00, 0x00, 0x00, + 0x01, 0x52, 0x68, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xf7, 0xbe, 0xff, 0x0a, 0xff, 0xff, 0xff, 0x01, 0xc6, 0x18, 0xff, 0x1b, 0x00, 0x00, 0x00, + 0x01, 0x31, 0x84, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0x7b, 0x69, 0xff, + 0x3b, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, 0x01, 0xc5, 0x6e, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x01, 0x62, 0xa7, 0xff, 0x03, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, 0x01, 0xce, 0x58, 0xff, + 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x09, 0xff, 0xff, 0xff, 0x01, 0xef, 0x1a, 0xff, 0x01, 0x31, 0x64, 0xff, 0x1d, 0x00, 0x00, 0x00, + 0x01, 0xbd, 0x2e, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0x21, 0x02, 0xff, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0xac, 0xcd, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, 0x01, 0xc5, 0xf4, 0xff, 0x01, 0xff, 0xff, 0xff, + 0x01, 0xff, 0xdf, 0xff, 0x0a, 0xff, 0xff, 0xff, 0x01, 0xc6, 0x17, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xa4, 0x8c, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xc5, 0x6e, 0xff, + 0x01, 0x18, 0xa1, 0xff, 0x3a, 0x00, 0x00, 0x00, 0x01, 0x7b, 0x69, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0x08, 0x61, 0xff, 0x03, 0x00, 0x00, 0x00, 0x01, 0x52, 0x45, 0xff, 0x01, 0xe6, 0xfa, 0xff, + 0x0a, 0xff, 0xff, 0xff, 0x02, 0xff, 0xdf, 0xff, 0x01, 0x39, 0xc7, 0xff, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x31, 0x84, 0xff, 0x01, 0xee, 0x91, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0x83, 0x89, 0xff, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x31, 0x63, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x04, 0x00, 0x00, 0x00, 0x01, 0x21, 0x24, 0xff, 0x01, 0xef, 0x5d, 0xff, + 0x0c, 0xff, 0xff, 0xff, 0x01, 0xc6, 0x18, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0xee, 0xf2, 0xff, 0x01, 0xf7, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x01, 0x73, 0x49, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf7, 0x13, 0xff, + 0x01, 0xe6, 0xd2, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x04, 0x00, 0x00, 0x00, 0x01, 0x52, 0x45, 0xff, 0x01, 0xe7, 0x1a, 0xff, 0x0a, 0xff, 0xff, 0xff, + 0x01, 0xff, 0xdf, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0x39, 0xc7, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x94, 0x4b, 0xff, 0x10, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xee, 0xb1, 0xff, 0x01, 0x5a, 0x86, 0xff, + 0x06, 0x00, 0x00, 0x00, 0x01, 0x21, 0x24, 0xff, 0x01, 0xef, 0x3c, 0xff, 0x0c, 0xff, 0xff, 0xff, 0x01, 0xbd, 0xf8, 0xff, 0x1c, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x81, 0xff, 0x01, 0x8b, 0xca, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x08, 0x61, 0xff, 0x38, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x86, 0xff, 0x01, 0xe6, 0x91, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0x83, 0x89, 0xff, 0x01, 0x08, 0x40, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x52, 0x65, 0xff, 0x01, 0xe7, 0x1a, 0xff, 0x09, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xff, 0xff, 0xff, + 0x01, 0xde, 0xb8, 0xff, 0x01, 0x29, 0x44, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x52, 0x66, 0xff, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xbd, 0x6e, 0xff, 0x07, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe3, 0xff, 0x01, 0xde, 0xd8, 0xff, 0x0c, 0xff, 0xff, 0xff, 0x01, 0xad, 0x12, 0xff, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x29, 0x43, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xe6, 0x51, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x38, 0x00, 0x00, 0x00, 0x01, 0x9c, 0x6b, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xe6, 0x51, 0xff, + 0x01, 0x29, 0x43, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x41, 0xe4, 0xff, 0x01, 0xe6, 0xf9, 0xff, 0x09, 0xff, 0xff, 0xff, 0x01, 0xff, 0xde, 0xff, + 0x01, 0xff, 0xff, 0xff, 0x01, 0x83, 0xed, 0xff, 0x01, 0x08, 0x40, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x08, 0x41, 0xff, 0x0a, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xe5, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x91, 0xff, + 0x01, 0x4a, 0x25, 0xff, 0x07, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x7b, 0x8b, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xde, 0xff, + 0x09, 0xff, 0xff, 0xff, 0x01, 0xef, 0x5c, 0xff, 0x01, 0x4a, 0x26, 0xff, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x83, 0xa9, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0x8c, 0x0a, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x29, 0x43, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x06, 0x00, 0x00, 0x00, 0x01, 0x10, 0x80, 0xff, + 0x01, 0xce, 0x38, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x06, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xff, 0xff, 0xff, + 0x01, 0xef, 0x3b, 0xff, 0x01, 0x31, 0x85, 0xff, 0x20, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x21, 0x02, 0xff, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x94, 0x2b, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xcd, 0xaf, 0xff, + 0x09, 0x00, 0x00, 0x00, 0x01, 0x21, 0x04, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xf7, 0xbe, 0xff, 0x07, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, + 0x01, 0xff, 0xff, 0xff, 0x01, 0x94, 0x70, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x39, 0xc4, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x10, 0x81, 0xff, 0x36, 0x00, 0x00, 0x00, + 0x01, 0x6b, 0x08, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0xf7, 0x13, 0xff, + 0x01, 0x4a, 0x05, 0xff, 0x07, 0x00, 0x00, 0x00, 0x01, 0x83, 0xee, 0xff, 0x01, 0xff, 0xde, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x05, 0xff, 0xff, 0xff, + 0x01, 0xff, 0xdf, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x01, 0x73, 0x6a, 0xff, 0x01, 0x08, 0x40, 0xff, 0x21, 0x00, 0x00, 0x00, + 0x01, 0xa4, 0xac, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x09, 0x00, 0x00, 0x00, + 0x01, 0x10, 0xa1, 0xff, 0x01, 0xde, 0x71, 0xff, 0x02, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0x94, 0x2b, 0xff, + 0x09, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa2, 0xff, 0x01, 0xa5, 0x13, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xf7, 0xbe, 0xff, 0x04, 0xff, 0xff, 0xff, + 0x01, 0xff, 0xdf, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0xce, 0x15, 0xff, 0x01, 0x20, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, + 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0x52, 0x66, 0xff, 0x36, 0x00, 0x00, 0x00, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x18, 0xa1, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xc0, 0xff, 0x01, 0xbd, 0xb4, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xdf, 0xff, + 0x01, 0xff, 0xde, 0xff, 0x01, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfe, 0xff, 0x01, 0x9c, 0xaf, 0xff, 0x01, 0x08, 0x61, 0xff, 0x22, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xe5, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0x53, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x08, 0x61, 0xff, 0x08, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc5, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x51, 0xff, 0x01, 0x21, 0x03, 0xff, 0x0a, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x41, 0xff, 0x01, 0xb5, 0x96, 0xff, 0x02, 0xff, 0xff, 0xff, 0x03, 0xff, 0xdf, 0xff, 0x02, 0xff, 0xff, 0xff, 0x01, 0xbd, 0xb4, 0xff, + 0x01, 0x41, 0xe5, 0xff, 0x21, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x05, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x8b, 0xca, 0xff, 0x35, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x01, 0x62, 0xc7, 0xff, 0x09, 0x00, 0x00, 0x00, 0x01, 0x39, 0xa4, 0xff, 0x01, 0xbd, 0xb3, 0xff, 0x05, 0xff, 0xff, 0xff, 0x01, 0xef, 0x5b, 0xff, + 0x01, 0x8c, 0x0d, 0xff, 0x01, 0x10, 0x60, 0xff, 0x24, 0x00, 0x00, 0x00, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x0c, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0x18, 0xa1, 0xff, 0x08, 0x00, 0x00, 0x00, 0x01, 0x83, 0xaa, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0xad, 0x54, 0xff, 0x01, 0xff, 0xbd, 0xff, 0x03, 0xff, 0xff, 0xff, 0x01, 0xde, 0xb9, 0xff, 0x01, 0x84, 0x2f, 0xff, 0x01, 0x18, 0xa0, 0xff, + 0x22, 0x00, 0x00, 0x00, 0x01, 0x41, 0xe5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xac, 0xed, 0xff, 0x35, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x25, 0xff, 0x01, 0xde, 0x50, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0x41, 0xe5, 0xff, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x20, 0xc0, 0xff, 0x01, 0x8c, 0x2f, 0xff, 0x01, 0xb5, 0xb5, 0xff, 0x01, 0xde, 0xb8, 0xff, + 0x01, 0xc6, 0x37, 0xff, 0x01, 0x9c, 0xf4, 0xff, 0x01, 0x5a, 0xa8, 0xff, 0x26, 0x00, 0x00, 0x00, 0x01, 0x9c, 0x4b, 0xff, 0x0f, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x07, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0xb5, 0x0d, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x7b, 0x8b, 0xff, + 0x01, 0x8c, 0x72, 0xff, 0x01, 0x8c, 0x71, 0xff, 0x01, 0x8c, 0x50, 0xff, 0x01, 0x41, 0xc5, 0xff, 0x24, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0x94, 0x0b, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x29, 0x23, 0xff, 0x34, 0x00, 0x00, 0x00, 0x01, 0x73, 0x28, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0x20, 0xe2, 0xff, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x41, 0xc4, 0xff, 0x01, 0x21, 0x23, 0xff, 0x28, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, + 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x7b, 0x69, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xe6, 0xb2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x51, 0xff, 0x01, 0x39, 0x84, 0xff, 0x38, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x26, 0xff, 0x01, 0xff, 0xf5, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xe6, 0x51, 0xff, 0x01, 0x4a, 0x26, 0xff, + 0x34, 0x00, 0x00, 0x00, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0x08, 0x40, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xde, 0x30, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x08, 0x61, 0xff, + 0x06, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x01, 0xff, 0x73, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x86, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x34, 0x00, 0x00, 0x00, + 0x01, 0xac, 0xcd, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xd5, 0xff, + 0x01, 0x6b, 0x08, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf7, 0x12, 0xff, 0x01, 0xe6, 0x50, 0xff, 0x01, 0x10, 0x81, 0xff, 0x06, 0x00, 0x00, 0x00, 0x01, 0x41, 0xe5, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x39, 0x00, 0x00, 0x00, + 0x01, 0x4a, 0x05, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0x8c, 0x0a, 0xff, 0x33, 0x00, 0x00, 0x00, 0x01, 0x18, 0xe2, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0xbd, 0x2e, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x33, 0xff, 0x01, 0x10, 0x81, 0xff, 0x06, 0x00, 0x00, 0x00, + 0x01, 0x6b, 0x08, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x6e, 0xff, + 0x39, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x33, 0x00, 0x00, 0x00, 0x01, 0x31, 0x84, 0xff, 0x01, 0xcd, 0xcf, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xee, 0xb2, 0xff, + 0x01, 0x41, 0xc4, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x94, 0x4b, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0x29, 0x43, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x20, 0xff, 0x01, 0x8c, 0x0a, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0f, 0xff, 0x13, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0x08, 0x61, 0xff, + 0x32, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x05, 0xff, 0x01, 0xde, 0x50, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xde, 0x51, 0xff, 0x01, 0x31, 0x84, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x83, 0xa9, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x52, 0x46, 0xff, + 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, + 0x01, 0x94, 0x4b, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x32, 0x00, 0x00, 0x00, + 0x01, 0x62, 0xe7, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x21, 0x03, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x52, 0x66, 0xff, 0x01, 0xee, 0xb1, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0x52, 0x66, 0xff, 0x05, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x61, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0x9c, 0x4b, 0xff, + 0x39, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0x31, 0x63, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x18, 0xe2, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x62, 0xa7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x62, 0xa7, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x39, 0x00, 0x00, 0x00, + 0x01, 0x20, 0xe2, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xbd, 0x2e, 0xff, + 0x01, 0x20, 0xe2, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x83, 0xca, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xcd, 0xcf, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, + 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x39, 0x00, 0x00, 0x00, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x08, 0x40, 0xff, 0x04, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xcd, 0xcf, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, + 0x01, 0xbd, 0x2e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x29, 0x23, 0xff, + 0x39, 0x00, 0x00, 0x00, 0x01, 0x62, 0xa7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x08, 0x40, 0xff, 0x04, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0xcd, 0xcf, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf3, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x39, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xc2, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xe6, 0x71, 0xff, + 0x01, 0x39, 0xa4, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x83, 0xaa, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0x08, 0x40, 0xff, 0x04, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xac, 0xcd, 0xff, + 0x39, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x62, 0xe7, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x41, 0xc5, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0x9c, 0x8c, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x39, 0x00, 0x00, 0x00, + 0x01, 0x39, 0xa4, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x6b, 0x08, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0x52, 0x66, 0xff, 0x39, 0x00, 0x00, 0x00, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x53, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x73, 0xff, 0x01, 0x52, 0x46, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x9c, 0x6c, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xd5, 0xef, 0xff, 0x39, 0x00, 0x00, 0x00, + 0x01, 0x52, 0x46, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x18, 0xe2, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xe6, 0x71, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xd4, 0xff, 0x01, 0x73, 0x48, 0xff, + 0x38, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x94, 0x2b, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x50, 0xff, 0x01, 0x29, 0x23, 0xff, + 0x38, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xff, 0xf5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x08, 0x61, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x39, 0xa4, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x9c, 0x6c, 0xff, + 0x01, 0x10, 0x61, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x39, 0x84, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0e, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x06, 0x00, 0x00, 0x00, 0x01, 0x73, 0x49, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x73, 0x48, 0xff, 0x37, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xac, 0xcd, 0xff, 0x01, 0x08, 0x40, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0xc5, 0x8f, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xd5, 0xcf, 0xff, + 0x01, 0x29, 0x43, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x62, 0xe7, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0e, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x10, 0x81, 0xff, 0x06, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x26, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xb4, 0xed, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, + 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0x94, 0x2b, 0xff, 0x34, 0x00, 0x00, 0x00, 0x01, 0xac, 0xed, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x53, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x06, 0x00, 0x00, 0x00, + 0x01, 0x31, 0x63, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xf7, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x34, 0x00, 0x00, 0x00, 0x01, 0xa4, 0xac, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0x7b, 0x89, 0xff, + 0x36, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0x08, 0x61, 0xff, 0x06, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, + 0x01, 0xee, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x50, 0xff, + 0x01, 0x31, 0x64, 0xff, 0x36, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x05, 0xff, 0x01, 0xff, 0xf5, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x08, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x34, 0x00, 0x00, 0x00, 0x01, 0x83, 0xa9, 0xff, + 0x01, 0xff, 0x73, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xc5, 0x8e, 0xff, 0x01, 0x21, 0x02, 0xff, 0x35, 0x00, 0x00, 0x00, 0x01, 0x62, 0xc7, 0xff, 0x01, 0xee, 0xb1, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x8c, 0x0a, 0xff, 0x07, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, + 0x01, 0xbd, 0x2d, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xb5, 0x0d, 0xff, + 0x35, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0x31, 0x63, 0xff, 0x34, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0x4a, 0x46, 0xff, 0x35, 0x00, 0x00, 0x00, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0x52, 0x66, 0xff, 0x08, 0x00, 0x00, 0x00, 0x01, 0x83, 0xca, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x21, 0x02, 0xff, 0x34, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xe5, 0xff, 0x01, 0xff, 0xf5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x08, 0x40, 0xff, 0x34, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xc5, 0x8e, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x10, 0x81, 0xff, + 0x33, 0x00, 0x00, 0x00, 0x01, 0x39, 0x84, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x08, 0x00, 0x00, 0x00, 0x01, 0x41, 0xe5, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x01, 0x94, 0x4b, 0xff, 0x33, 0x00, 0x00, 0x00, 0x01, 0x18, 0xe2, 0xff, + 0x01, 0x9c, 0x6b, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x08, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0x8c, 0x0a, 0xff, 0x36, 0x00, 0x00, 0x00, 0x01, 0xa4, 0xcc, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x09, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x33, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x33, 0x00, 0x00, 0x00, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x33, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf3, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xcd, 0xaf, 0xff, + 0x01, 0x08, 0x61, 0xff, 0x08, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0xf7, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x50, 0xff, 0x01, 0x21, 0x02, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x39, 0xc4, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x09, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0x62, 0xa7, 0xff, + 0x36, 0x00, 0x00, 0x00, 0x01, 0x7b, 0x89, 0xff, 0x01, 0xff, 0x53, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x10, 0x81, 0xff, 0x31, 0x00, 0x00, 0x00, 0x01, 0x39, 0x84, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x83, 0xca, 0xff, 0x09, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x41, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x13, 0xff, + 0x01, 0x94, 0x4b, 0xff, 0x31, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xa4, 0x6c, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x09, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x36, 0x00, 0x00, 0x00, + 0x01, 0x41, 0xc4, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x52, 0x66, 0xff, 0x31, 0x00, 0x00, 0x00, 0x01, 0xb5, 0x2e, 0xff, 0x11, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x52, 0x66, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x39, 0x84, 0xff, 0x01, 0x08, 0x40, 0xff, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x39, 0x84, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0x94, 0x4b, 0xff, 0x37, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x62, 0xc7, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xde, 0x50, 0xff, 0x01, 0x08, 0x61, 0xff, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, + 0x2d, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, 0x01, 0xb5, 0x4e, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0b, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0x62, 0xe7, 0xff, 0x38, 0x00, 0x00, 0x00, 0x01, 0x73, 0x49, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x0c, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x08, 0x61, 0xff, 0x2d, 0x00, 0x00, 0x00, 0x01, 0x29, 0x43, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x33, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x73, 0x69, 0xff, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x2d, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xc5, 0x6e, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x38, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x13, 0xff, 0x01, 0x62, 0xa7, 0xff, + 0x2c, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x33, 0xff, 0x11, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xee, 0xd2, 0xff, 0x01, 0x21, 0x02, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x39, 0xc4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x4a, 0x46, 0xff, 0x2b, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x81, 0xff, 0x01, 0x83, 0x89, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x83, 0xaa, 0xff, 0x3a, 0x00, 0x00, 0x00, 0x01, 0x8c, 0x0a, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x71, 0xff, 0x01, 0x31, 0x84, 0xff, 0x2b, 0x00, 0x00, 0x00, + 0x01, 0x83, 0xca, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x08, 0x40, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x02, 0xff, 0x12, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xde, 0x50, 0xff, 0x01, 0x31, 0x63, 0xff, 0x2a, 0x00, 0x00, 0x00, + 0x01, 0x29, 0x23, 0xff, 0x01, 0xf7, 0x53, 0xff, 0x02, 0xf7, 0x12, 0xff, 0x0a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x29, 0x43, 0xff, 0x3a, 0x00, 0x00, 0x00, 0x01, 0x31, 0x64, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0x29, 0x43, 0xff, + 0x29, 0x00, 0x00, 0x00, 0x01, 0x73, 0x48, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x10, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x12, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x31, 0x63, 0xff, 0x28, 0x00, 0x00, 0x00, + 0x01, 0x18, 0x81, 0xff, 0x01, 0xbd, 0xaf, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x94, 0x0b, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x0c, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xcd, 0xef, 0xff, 0x01, 0x29, 0x43, 0xff, 0x27, 0x00, 0x00, 0x00, + 0x01, 0x73, 0x49, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x12, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x10, 0x61, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xf7, 0x12, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x12, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x31, 0x64, 0xff, 0x26, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xa1, 0xff, 0x01, 0xbd, 0xcf, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0b, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0x31, 0x64, 0xff, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x31, 0x64, 0xff, 0x01, 0xde, 0x10, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0c, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xcd, 0xef, 0xff, + 0x01, 0x29, 0x23, 0xff, 0x25, 0x00, 0x00, 0x00, 0x01, 0x73, 0x49, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x11, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x31, 0x84, 0xff, 0x10, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x31, 0x63, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x22, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xf6, 0xb2, 0xff, + 0x0c, 0xff, 0x13, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x8b, 0xea, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xfe, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xcd, 0xf0, 0xff, + 0x01, 0x4a, 0x25, 0xff, 0x22, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x11, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x61, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xcd, 0xcf, 0xff, 0x01, 0x4a, 0x46, 0xff, 0x22, 0x00, 0x00, 0x00, 0x01, 0x7b, 0x69, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x0c, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x29, 0x23, 0xff, + 0x3e, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0x08, 0x40, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x01, 0x31, 0x84, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x12, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xee, 0xd2, 0xff, 0x01, 0x21, 0x02, 0xff, 0x12, 0x00, 0x00, 0x00, 0x01, 0x31, 0x63, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x13, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0x73, 0x69, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xee, 0xf2, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x40, 0x00, 0x00, 0x00, + 0x01, 0x5a, 0xa7, 0xff, 0x01, 0xee, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x0d, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x41, 0xc4, 0xff, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, + 0x01, 0xd5, 0xcf, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x12, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x14, 0x00, 0x00, 0x00, 0x01, 0x7b, 0x69, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x13, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x1c, 0x00, 0x00, 0x00, + 0x01, 0x62, 0xe7, 0xff, 0x01, 0xb5, 0x2e, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x10, 0x61, 0xff, 0x40, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, + 0x01, 0x9c, 0x6c, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xde, 0x30, 0xff, 0x01, 0x83, 0xa9, 0xff, 0x01, 0x29, 0x23, 0xff, 0x19, 0x00, 0x00, 0x00, 0x01, 0x52, 0x46, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x12, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x53, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x15, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xde, 0x51, 0xff, + 0x01, 0x8b, 0xea, 0xff, 0x01, 0x31, 0x84, 0xff, 0x18, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x87, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xde, 0x51, 0xff, + 0x01, 0x39, 0x84, 0xff, 0x42, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x0f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0x7b, 0x89, 0xff, + 0x01, 0x39, 0xa4, 0xff, 0x14, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x5a, 0x86, 0xff, 0x01, 0xa4, 0x8c, 0xff, 0x01, 0xe6, 0x91, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xfe, 0xf2, 0xff, + 0x01, 0xe6, 0x91, 0xff, 0x01, 0x29, 0x23, 0xff, 0x16, 0x00, 0x00, 0x00, 0x01, 0x39, 0xa4, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x14, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xcd, 0xcf, 0xff, + 0x01, 0x8c, 0x0a, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x14, 0x00, 0x00, 0x00, 0x01, 0x6b, 0x08, 0xff, 0x01, 0x9c, 0x6c, 0xff, 0x01, 0xee, 0x91, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xf7, 0x13, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x44, 0x00, 0x00, 0x00, 0x01, 0x41, 0xc5, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x0f, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x62, 0xe7, 0xff, 0x01, 0x29, 0x43, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x01, 0x41, 0xe5, 0xff, + 0x01, 0x7b, 0x89, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x14, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x18, 0x00, 0x00, 0x00, + 0x01, 0x62, 0xe7, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x15, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x83, 0xaa, 0xff, 0x01, 0x52, 0x46, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x6b, 0x08, 0xff, 0x01, 0x83, 0xca, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x0e, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0x08, 0x61, 0xff, 0x45, 0x00, 0x00, 0x00, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xee, 0xf2, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xc5, 0xaf, 0xff, 0x01, 0xa4, 0xac, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0x62, 0xc7, 0xff, + 0x01, 0x41, 0xe5, 0xff, 0x01, 0x31, 0x84, 0xff, 0x01, 0x10, 0xa1, 0xff, 0x01, 0x08, 0x61, 0xff, 0x01, 0x10, 0x61, 0xff, 0x01, 0x08, 0x40, 0xff, + 0x01, 0x29, 0x23, 0xff, 0x01, 0x39, 0x84, 0xff, 0x01, 0x52, 0x66, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xb5, 0x2d, 0xff, + 0x01, 0xde, 0x10, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x15, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0x83, 0xaa, 0xff, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x16, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0x94, 0x0b, 0xff, 0x01, 0x6b, 0x28, 0xff, 0x01, 0x6a, 0xe8, 0xff, + 0x01, 0x52, 0x66, 0xff, 0x01, 0x31, 0x84, 0xff, 0x01, 0x41, 0xc5, 0xff, 0x01, 0x5a, 0x87, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x73, 0x48, 0xff, + 0x01, 0x9c, 0x6b, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x10, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x46, 0x00, 0x00, 0x00, 0x01, 0x08, 0x40, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x11, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x73, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xde, 0x30, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0xbd, 0x4e, 0xff, + 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xe6, 0x71, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x02, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x12, 0xff, + 0x16, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x17, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xe6, 0x71, 0xff, 0x01, 0xd5, 0xf0, 0xff, 0x01, 0xde, 0x10, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, + 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x11, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xd6, 0x10, 0xff, 0x01, 0x29, 0x23, 0xff, 0x48, 0x00, 0x00, 0x00, + 0x01, 0x10, 0xa1, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x12, 0xff, 0x13, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x03, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x18, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0x10, 0x61, 0xff, 0x1c, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xa2, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x19, 0xff, 0x13, 0xff, 0x04, 0xf6, 0xf2, 0xff, + 0x02, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x02, 0xff, 0x53, 0xff, 0x02, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x13, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x71, 0xff, 0x01, 0x39, 0xa4, 0xff, + 0x4a, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x15, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x09, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x1a, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x29, 0x23, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xbd, 0x6e, 0xff, + 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x1c, 0xff, 0x13, 0xff, 0x02, 0xff, 0x12, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x03, 0xff, 0x12, 0xff, + 0x16, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xde, 0x51, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x4c, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x81, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x38, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x29, 0x02, 0xff, 0x20, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, + 0x01, 0xbd, 0x6e, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x38, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xde, 0x51, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x9c, 0x4b, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x35, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x22, 0x00, 0x00, 0x00, 0x01, 0x21, 0x02, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x34, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xcd, 0xf0, 0xff, + 0x01, 0x41, 0xc5, 0xff, 0x50, 0x00, 0x00, 0x00, 0x01, 0x10, 0x81, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x33, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x10, 0x81, 0xff, + 0x24, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa2, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x32, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0x29, 0x23, 0xff, + 0x53, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x86, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0xff, 0x94, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x30, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0x08, 0x40, 0xff, 0x26, 0x00, 0x00, 0x00, + 0x01, 0x08, 0x40, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0xee, 0xb2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x2f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0x94, 0x2b, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x55, 0x00, 0x00, 0x00, + 0x01, 0x39, 0xa4, 0xff, 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x2d, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x52, 0x46, 0xff, 0x2a, 0x00, 0x00, 0x00, + 0x01, 0x4a, 0x05, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x94, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x2c, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xe6, 0x91, 0xff, 0x01, 0x5a, 0xa7, 0xff, 0x01, 0x08, 0x61, 0xff, 0x57, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, + 0x01, 0x83, 0xaa, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x74, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x29, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0x94, 0x4b, 0xff, 0x01, 0x29, 0x23, 0xff, 0x2c, 0x00, 0x00, 0x00, 0x01, 0x21, 0x03, 0xff, + 0x01, 0x83, 0xa9, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x28, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xff, 0x53, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0x39, 0x84, 0xff, 0x5b, 0x00, 0x00, 0x00, + 0x01, 0x42, 0x05, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x25, 0xff, 0x13, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xc5, 0x8e, 0xff, 0x01, 0x52, 0x66, 0xff, + 0x01, 0x08, 0x40, 0xff, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x4a, 0x25, 0xff, 0x01, 0xbd, 0x2e, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x02, 0xf6, 0xf2, 0xff, 0x24, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x10, 0x81, 0xff, 0x5d, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x6a, 0xe7, 0xff, + 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x20, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xcd, 0xcf, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0x21, 0x03, 0xff, 0x32, 0x00, 0x00, 0x00, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x6b, 0x08, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x1f, 0xff, 0x13, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x7b, 0x69, 0xff, 0x01, 0x29, 0x43, 0xff, + 0x61, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, 0x1a, 0xff, 0x13, 0xff, 0x03, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xd5, 0xf0, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0x29, 0x43, 0xff, 0x36, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0x6b, 0x08, 0xff, + 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x12, 0xff, 0x18, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0x7b, 0x89, 0xff, 0x01, 0x39, 0x84, 0xff, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x29, 0x23, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x13, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xbd, 0x6e, 0xff, 0x01, 0x6a, 0xe8, 0xff, + 0x01, 0x31, 0x63, 0xff, 0x3a, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0x5a, 0x87, 0xff, 0x01, 0xac, 0xed, 0xff, 0x01, 0xf6, 0xf2, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x12, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x12, 0xff, + 0x10, 0xff, 0x13, 0xff, 0x01, 0xff, 0x12, 0xff, 0x02, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x6b, 0x28, 0xff, 0x01, 0x39, 0x84, 0xff, 0x69, 0x00, 0x00, 0x00, + 0x01, 0x18, 0xc2, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x01, 0x83, 0xca, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0xb4, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x0f, 0xf6, 0xf2, 0xff, 0x01, 0xf6, 0xd2, 0xff, + 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x13, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xd5, 0xf0, 0xff, + 0x01, 0x83, 0xca, 0xff, 0x01, 0x4a, 0x46, 0xff, 0x01, 0x21, 0x02, 0xff, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x18, 0xc2, 0xff, 0x01, 0x41, 0xc5, 0xff, + 0x01, 0x73, 0x49, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x13, 0xff, 0x02, 0xf6, 0xd2, 0xff, 0x0c, 0xf6, 0xf2, 0xff, 0x02, 0xf6, 0xd2, 0xff, 0x01, 0xf6, 0xf2, 0xff, 0x01, 0xff, 0x33, 0xff, + 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xc5, 0x8f, 0xff, 0x01, 0x8b, 0xca, 0xff, 0x01, 0x4a, 0x25, 0xff, + 0x01, 0x18, 0xc2, 0xff, 0x6e, 0x00, 0x00, 0x00, 0x01, 0x29, 0x23, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0xa4, 0xac, 0xff, + 0x01, 0xd6, 0x10, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x53, 0xff, + 0x01, 0xff, 0x33, 0xff, 0x07, 0xff, 0x13, 0xff, 0x01, 0xff, 0x33, 0xff, 0x01, 0xff, 0x53, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xff, 0x94, 0xff, + 0x01, 0xff, 0xd5, 0xff, 0x01, 0xff, 0x74, 0xff, 0x01, 0xe6, 0x71, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0x4a, 0x25, 0xff, + 0x01, 0x29, 0x43, 0xff, 0x44, 0x00, 0x00, 0x00, 0x01, 0x18, 0xe2, 0xff, 0x01, 0x39, 0xc4, 0xff, 0x01, 0x6a, 0xe8, 0xff, 0x01, 0x9c, 0x4b, 0xff, + 0x01, 0xbd, 0x4e, 0xff, 0x01, 0xf6, 0xd2, 0xff, 0x01, 0xff, 0xb4, 0xff, 0x01, 0xff, 0xd4, 0xff, 0x01, 0xff, 0x94, 0xff, 0x01, 0xff, 0x74, 0xff, + 0x08, 0xff, 0x53, 0xff, 0x01, 0xff, 0x73, 0xff, 0x01, 0xff, 0x94, 0xff, 0x02, 0xff, 0xb4, 0xff, 0x01, 0xf7, 0x12, 0xff, 0x01, 0xde, 0x30, 0xff, + 0x01, 0xa4, 0xac, 0xff, 0x01, 0x73, 0x28, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x29, 0x23, 0xff, 0x74, 0x00, 0x00, 0x00, 0x01, 0x10, 0xa1, 0xff, + 0x01, 0x31, 0x43, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x73, 0x49, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0xb5, 0x0d, 0xff, + 0x01, 0xcd, 0xcf, 0xff, 0x06, 0xe6, 0x71, 0xff, 0x01, 0xee, 0x91, 0xff, 0x01, 0xcd, 0xaf, 0xff, 0x01, 0xb5, 0x0d, 0xff, 0x01, 0xa4, 0x8c, 0xff, + 0x01, 0x8b, 0xea, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x4a, 0x05, 0xff, 0x01, 0x31, 0x84, 0xff, 0x01, 0x18, 0xc2, 0xff, 0x4a, 0x00, 0x00, 0x00, + 0x01, 0x10, 0x61, 0xff, 0x01, 0x20, 0xe2, 0xff, 0x01, 0x39, 0xa4, 0xff, 0x01, 0x4a, 0x25, 0xff, 0x01, 0x62, 0xc7, 0xff, 0x01, 0x83, 0xca, 0xff, + 0x01, 0x94, 0x4b, 0xff, 0x01, 0xb5, 0x2d, 0xff, 0x07, 0xb5, 0x0d, 0xff, 0x01, 0xac, 0xcc, 0xff, 0x01, 0x8b, 0xea, 0xff, 0x01, 0x73, 0x48, 0xff, + 0x01, 0x4a, 0x25, 0xff, 0x01, 0x41, 0xe5, 0xff, 0x01, 0x31, 0x43, 0xff, 0x01, 0x10, 0x81, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x01, 0x18, 0xa1, 0xff, + 0x01, 0x18, 0xc2, 0xff, 0x01, 0x29, 0x23, 0xff, 0x06, 0x31, 0x84, 0xff, 0x01, 0x39, 0x84, 0xff, 0x01, 0x29, 0x23, 0xff, 0x01, 0x18, 0xc2, 0xff, + 0x01, 0x10, 0x81, 0xff, 0x55, 0x00, 0x00, 0x00, 0x01, 0x08, 0x61, 0xff, 0x08, 0x18, 0xc2, 0xff, 0x01, 0x18, 0xa1, 0xff, 0x01, 0x08, 0x40, 0xff, + 0xb8, 0x00, 0x00, 0x00, +}; + +const lcd_emote_rle_asset_t idle_eyes_open_rle_asset = { + .width = 238, .height = 93, .x = 41, .y = 65, + .compressed_size = sizeof(idle_eyes_open_rle), .data = idle_eyes_open_rle, +}; diff --git a/components/platform/src/lcd_direct.c b/components/platform/src/lcd_direct.c index 62459dd..321bc68 100644 --- a/components/platform/src/lcd_direct.c +++ b/components/platform/src/lcd_direct.c @@ -32,6 +32,11 @@ #include "sdkconfig.h" #include "soc/soc_caps.h" +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST +#include "gfx.h" +#include "lcd_emote_assets.h" +#endif + #define LCD_DIRECT_SPI_HOST SPI2_HOST #define LCD_DIRECT_NATIVE_WIDTH 240U #define LCD_DIRECT_NATIVE_HEIGHT 320U @@ -92,6 +97,18 @@ #define LCD_DIRECT_CLOCK_COLOR 0xFFFFU #define LCD_DIRECT_CLOCK_OUTLINE_COLOR 0x0000U +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST +#define LCD_DIRECT_EMOTE_FPS 30U +#define LCD_DIRECT_EMOTE_BUFFER_ROWS 4U +#define LCD_DIRECT_EMOTE_EYES_X 41 +#define LCD_DIRECT_EMOTE_EYES_Y 65 +#define LCD_DIRECT_EMOTE_OPEN_MS 2000U +#define LCD_DIRECT_EMOTE_STEP_MS 34U +#define LCD_DIRECT_EMOTE_MESH_COLS 16U +#define LCD_DIRECT_EMOTE_MESH_ROWS 2U +#define LCD_DIRECT_EMOTE_MESH_POINTS ((LCD_DIRECT_EMOTE_MESH_COLS + 1U) * (LCD_DIRECT_EMOTE_MESH_ROWS + 1U)) +#endif + /* ST7789P3 的方向控制(MADCTL)和 RAM 数据格式控制(RAMCTRL)命令号。 */ #define LCD_CMD_MADCTL 0x36 #define LCD_CMD_RAMCTRL 0xB0 @@ -217,6 +234,22 @@ static uint16_t s_line_buffer[LCD_DIRECT_PIXELS_PER_TRANSFER]; static lcd_direct_decoded_image_t s_frame_cache[LCD_DIRECT_FRAME_CACHE_MAX]; static uint32_t s_cache_use_counter; +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST +/* 一次性解压的图像随 LCD 设备常驻;眨眼只修改网格,不重复解压。 */ +static gfx_image_dsc_t s_emote_base_image; +static gfx_image_dsc_t s_emote_eye_image; +static uint8_t *s_emote_base_pixels; +static uint8_t *s_emote_eye_pixels; +static bool s_emote_ready; + +static gfx_handle_t s_emote_handle; +static gfx_disp_t *s_emote_disp; +static gfx_obj_t *s_emote_eyes_open; +static gfx_mesh_img_point_q8_t s_emote_eye_rest[LCD_DIRECT_EMOTE_MESH_POINTS]; +static gfx_disp_t *s_emote_flush_pending; +static bool s_emote_active; +#endif + /* 渲染状态由 s_state_lock 保护,面板和缓存访问则由 s_lock 串行化。 */ static void lcd_direct_signal_completion(void); static void lcd_direct_clock_text(char text[LCD_DIRECT_CLOCK_TEXT_LENGTH + 1U]); @@ -235,12 +268,297 @@ static bool IRAM_ATTR lcd_direct_on_color_trans_done(esp_lcd_panel_io_handle_t p (void)user_ctx; BaseType_t higher_priority_task_woken = pdFALSE; +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST + gfx_disp_t *emote_disp = NULL; + portENTER_CRITICAL_ISR(&s_state_lock); + emote_disp = s_emote_flush_pending; + s_emote_flush_pending = NULL; + portEXIT_CRITICAL_ISR(&s_state_lock); + if (emote_disp != NULL) { + (void)gfx_disp_flush_ready(emote_disp, true); + } +#endif if (s_transfer_done_sem != NULL) { (void)xSemaphoreGiveFromISR(s_transfer_done_sem, &higher_priority_task_woken); } return higher_priority_task_woken == pdTRUE; } +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST +static void lcd_direct_emote_flush(gfx_disp_t *disp, + int x1, + int y1, + int x2, + int y2, + const void *data) +{ + portENTER_CRITICAL(&s_state_lock); + bool active = s_emote_active; + if (active) { + s_emote_flush_pending = disp; + } + portEXIT_CRITICAL(&s_state_lock); + + if (!active) { + (void)gfx_disp_flush_ready(disp, false); + return; + } + + esp_err_t err = esp_lcd_panel_draw_bitmap(s_panel, x1, y1, x2, y2, data); + if (err != ESP_OK) { + portENTER_CRITICAL(&s_state_lock); + if (s_emote_flush_pending == disp) { + s_emote_flush_pending = NULL; + } + portEXIT_CRITICAL(&s_state_lock); + ESP_LOGE(TAG, "esp_emote_gfx flush failed: %s", esp_err_to_name(err)); + (void)gfx_disp_flush_ready(disp, false); + } +} + +static esp_err_t lcd_direct_emote_decode_asset(const lcd_emote_rle_asset_t *asset, + gfx_image_dsc_t *image, uint8_t **pixels) +{ + size_t count = (size_t)asset->width * asset->height; + ESP_RETURN_ON_FALSE(count > 0 && count <= SIZE_MAX / 3, ESP_ERR_INVALID_SIZE, + TAG, "invalid compressed asset dimensions"); + uint8_t *decoded = heap_caps_malloc(count * 3, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT); + ESP_RETURN_ON_FALSE(decoded != NULL, ESP_ERR_NO_MEM, TAG, "allocate emote asset PSRAM failed"); + if (!lcd_emote_decode_rle(asset->data, asset->compressed_size, decoded, count)) { + free(decoded); + return ESP_ERR_INVALID_SIZE; + } + *image = (gfx_image_dsc_t) { + .header.cf = GFX_COLOR_FORMAT_RGB565A8, + .header.magic = C_ARRAY_HEADER_MAGIC, + .header.w = asset->width, + .header.h = asset->height, + .data_size = count * 3, + .data = decoded, + }; + *pixels = decoded; + return ESP_OK; +} + +static esp_err_t lcd_direct_emote_prepare_assets(void) +{ + if (s_emote_base_pixels != NULL && s_emote_eye_pixels != NULL) { + return ESP_OK; + } + int64_t start_us = esp_timer_get_time(); + esp_err_t err = lcd_direct_emote_decode_asset(&idle_base_rle_asset, + &s_emote_base_image, &s_emote_base_pixels); + if (err == ESP_OK) { + err = lcd_direct_emote_decode_asset(&idle_eyes_open_rle_asset, + &s_emote_eye_image, &s_emote_eye_pixels); + } + if (err != ESP_OK) { + free(s_emote_base_pixels); + free(s_emote_eye_pixels); + s_emote_base_pixels = NULL; + s_emote_eye_pixels = NULL; + return err; + } + ESP_LOGI(TAG, "emote assets decoded once: compressed=%uB PSRAM=%uB decode_us=%lld", + (unsigned)(idle_base_rle_asset.compressed_size + idle_eyes_open_rle_asset.compressed_size), + (unsigned)(s_emote_base_image.data_size + s_emote_eye_image.data_size), + (long long)(esp_timer_get_time() - start_us)); + return ESP_OK; +} + +static esp_err_t lcd_direct_emote_init(void) +{ + ESP_RETURN_ON_ERROR(lcd_direct_emote_prepare_assets(), TAG, "decode emote assets failed"); + const gfx_core_config_t core_config = { + .fps = LCD_DIRECT_EMOTE_FPS, + .task = GFX_EMOTE_INIT_CONFIG(), + }; + s_emote_handle = gfx_emote_init(&core_config); + if (s_emote_handle == NULL) { + free(s_emote_base_pixels); + free(s_emote_eye_pixels); + s_emote_base_pixels = NULL; + s_emote_eye_pixels = NULL; + return ESP_ERR_NO_MEM; + } + + const gfx_disp_config_t display_config = { + .h_res = LCD_DIRECT_WIDTH, + .v_res = LCD_DIRECT_HEIGHT, + .flush_cb = lcd_direct_emote_flush, + .flags = { + .swap = true, + .buff_dma = true, + .double_buffer = true, + }, + .buffers = { + .buf_pixels = LCD_DIRECT_WIDTH * LCD_DIRECT_EMOTE_BUFFER_ROWS, + }, + }; + s_emote_disp = gfx_disp_add(s_emote_handle, &display_config); + ESP_RETURN_ON_FALSE(s_emote_disp != NULL, ESP_ERR_NO_MEM, TAG, "esp_emote_gfx display add failed"); + + gfx_obj_t *background = gfx_img_create(s_emote_disp); + s_emote_eyes_open = gfx_mesh_img_create(s_emote_disp); + ESP_RETURN_ON_FALSE(background != NULL && s_emote_eyes_open != NULL, + ESP_ERR_NO_MEM, TAG, "esp_emote_gfx image create failed"); + ESP_RETURN_ON_ERROR(gfx_img_set_src(background, (void *)&s_emote_base_image), TAG, "set emote background failed"); + /* GFX 用黑色背景清除旧眼型,只绘制裁剪后的鼻子和胡须。 */ + ESP_RETURN_ON_ERROR(gfx_disp_set_bg_color(s_emote_disp, (gfx_color_t) { .full = 0 }), + TAG, "set emote black background failed"); + ESP_RETURN_ON_ERROR(gfx_disp_set_bg_enable(s_emote_disp, true), TAG, "enable emote background failed"); + ESP_RETURN_ON_ERROR(gfx_obj_set_pos(background, idle_base_rle_asset.x, idle_base_rle_asset.y), + TAG, "position emote base failed"); + ESP_RETURN_ON_ERROR(gfx_mesh_img_set_src(s_emote_eyes_open, (void *)&s_emote_eye_image), + TAG, "set emote eyes failed"); + ESP_RETURN_ON_ERROR(gfx_obj_set_pos(s_emote_eyes_open, + LCD_DIRECT_EMOTE_EYES_X, LCD_DIRECT_EMOTE_EYES_Y), + TAG, "position emote eyes failed"); + ESP_RETURN_ON_ERROR(gfx_mesh_img_set_grid(s_emote_eyes_open, + LCD_DIRECT_EMOTE_MESH_COLS, LCD_DIRECT_EMOTE_MESH_ROWS), + TAG, "configure eye mesh failed"); + ESP_RETURN_ON_FALSE(gfx_mesh_img_get_point_count(s_emote_eyes_open) == LCD_DIRECT_EMOTE_MESH_POINTS, + ESP_ERR_INVALID_SIZE, TAG, "unexpected eye mesh size"); + for (size_t i = 0; i < LCD_DIRECT_EMOTE_MESH_POINTS; ++i) { + ESP_RETURN_ON_ERROR(gfx_mesh_img_get_point_q8(s_emote_eyes_open, i, &s_emote_eye_rest[i]), + TAG, "read eye mesh failed"); + } + ESP_RETURN_ON_ERROR(gfx_emote_lock(s_emote_handle), TAG, "lock esp_emote_gfx failed"); + ESP_RETURN_ON_ERROR(gfx_emote_unlock(s_emote_handle), TAG, "unlock esp_emote_gfx failed"); + s_emote_ready = true; + ESP_LOGI(TAG, + "esp_emote_gfx idle test ready (%u fps, 2 x %u-row DMA buffers)", + (unsigned)LCD_DIRECT_EMOTE_FPS, + (unsigned)LCD_DIRECT_EMOTE_BUFFER_ROWS); + return ESP_OK; +} + +static bool lcd_direct_should_stop_idle(void) +{ + bool stop = false; + portENTER_CRITICAL(&s_state_lock); + stop = s_stop_requested || s_pending_valid; + portEXIT_CRITICAL(&s_state_lock); + return stop; +} + +static esp_err_t lcd_direct_emote_wait(uint32_t duration_ms) +{ + uint32_t remaining_ms = duration_ms; + while (remaining_ms > 0U) { + if (lcd_direct_should_stop_idle()) { + return ESP_ERR_INVALID_STATE; + } + uint32_t slice_ms = remaining_ms > LCD_DIRECT_PRESENTATION_WAIT_POLL_MS + ? LCD_DIRECT_PRESENTATION_WAIT_POLL_MS + : remaining_ms; + vTaskDelay(pdMS_TO_TICKS(slice_ms)); + remaining_ms -= slice_ms; + } + return ESP_OK; +} + +/* 同一张眼睛纹理连续收缩并弯曲;没有第二张眼型参与混合。 + * closure: 0=睁眼,255=闭眼。Q8 网格保留亚像素精度。 */ +static esp_err_t lcd_direct_emote_set_eye_closure(uint8_t closure) +{ + gfx_mesh_img_point_q8_t points[LCD_DIRECT_EMOTE_MESH_POINTS]; + /* 上下眼睑对称收向原眼睛中线,包围盒位置补偿保持脸部锚点。 */ + const int32_t center_y = 46 * 256; + int32_t min_y_q8 = INT32_MAX; + const int32_t scale = 256 - ((int32_t)closure * 248 / 255); + for (size_t i = 0; i < LCD_DIRECT_EMOTE_MESH_POINTS; ++i) { + points[i] = s_emote_eye_rest[i]; + int32_t x = points[i].x_q8 / 256; + /* 238x93 纹理中,两只眼睛的中心分别约为 x=49 和 x=189。 + * 抛物线把压扁的眼圈弯成浅浅的闭眼弧线。 */ + int32_t dx = x - (x < 119 ? 49 : 189); + int32_t arch = 8 * 256 - dx * dx * (8 * 256) / (46 * 46); + if (arch < 0) { + arch = 0; + } + /* 弧线相对中线上下各约 4px,避免闭合时眼睛中心整体上移。 */ + points[i].y_q8 = center_y + (points[i].y_q8 - center_y) * scale / 256 + + (4 * 256 - arch) * closure / 255; + if (points[i].y_q8 < min_y_q8) { + min_y_q8 = points[i].y_q8; + } + } + ESP_RETURN_ON_ERROR(gfx_mesh_img_set_points_q8(s_emote_eyes_open, points, + LCD_DIRECT_EMOTE_MESH_POINTS), + TAG, "deform eye mesh failed"); + /* GFX 绘制原点会减掉网格 bounds_min;将该偏移加回对象位置, + * 才能保持纹理坐标相对于脸部的绝对位置,避免收缩时整体上移。 */ + int32_t offset_y = min_y_q8 >= 0 ? min_y_q8 / 256 + : -((-min_y_q8 + 255) / 256); + return gfx_obj_set_pos(s_emote_eyes_open, LCD_DIRECT_EMOTE_EYES_X, + LCD_DIRECT_EMOTE_EYES_Y + offset_y); +} + +static esp_err_t lcd_direct_play_emote_face_until_pending(void) +{ + ESP_RETURN_ON_FALSE(s_emote_handle != NULL && s_emote_eyes_open != NULL, + ESP_ERR_INVALID_STATE, + TAG, + "esp_emote_gfx is not ready"); + ESP_RETURN_ON_ERROR(gfx_emote_lock(s_emote_handle), TAG, "lock esp_emote_gfx failed"); + portENTER_CRITICAL(&s_state_lock); + s_emote_active = true; + portEXIT_CRITICAL(&s_state_lock); + esp_err_t result = lcd_direct_emote_set_eye_closure(0U); + if (result == ESP_OK) { + gfx_disp_refresh_all(s_emote_disp); + result = gfx_refr_now(s_emote_handle); + } + esp_err_t unlock_err = gfx_emote_unlock(s_emote_handle); + if (result == ESP_OK) { + result = unlock_err; + } + ESP_LOGI(TAG, "esp_emote_gfx idle playback started (single-mesh blink)"); + + /* 约 170ms 闭合、34ms 停顿、204ms 睁开,保持单一轮廓。 */ + static const uint8_t blink_closure[] = { + 24U, 80U, 160U, 232U, 255U, 255U, + 232U, 192U, 128U, 64U, 16U, 0U, + }; + while (result == ESP_OK) { + result = lcd_direct_emote_wait(LCD_DIRECT_EMOTE_OPEN_MS); + if (result != ESP_OK) { + break; + } + for (size_t i = 0; i < sizeof(blink_closure) / sizeof(blink_closure[0]) && result == ESP_OK; ++i) { + result = gfx_emote_lock(s_emote_handle); + if (result != ESP_OK) { + break; + } + result = lcd_direct_emote_set_eye_closure(blink_closure[i]); + if (result == ESP_OK) { + result = gfx_refr_now(s_emote_handle); + } + unlock_err = gfx_emote_unlock(s_emote_handle); + if (result == ESP_OK) { + result = unlock_err; + } + if (result == ESP_OK) { + result = lcd_direct_emote_wait(LCD_DIRECT_EMOTE_STEP_MS); + } + } + } + + esp_err_t lock_err = gfx_emote_lock(s_emote_handle); + if (lock_err == ESP_OK) { + portENTER_CRITICAL(&s_state_lock); + s_emote_active = false; + portEXIT_CRITICAL(&s_state_lock); + lock_err = gfx_emote_unlock(s_emote_handle); + } + if (result == ESP_ERR_INVALID_STATE && lcd_direct_should_stop_idle()) { + result = ESP_OK; + } + return result != ESP_OK ? result : lock_err; +} +#endif + static uint16_t lcd_direct_swap_color(uint16_t color) { #if CONFIG_TQ_SCREEN_SWAP_COLOR_BYTES @@ -1558,6 +1876,11 @@ static esp_err_t lcd_direct_play_step_sequence(const lcd_direct_request_t *reque static esp_err_t lcd_direct_play_basic_face_until_pending(void) { +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST + if (s_emote_ready) { + return lcd_direct_play_emote_face_until_pending(); + } +#endif const lcd_direct_request_t request = { .kind = PLATFORM_LCD_PRESENTATION_ASSET_SEQUENCE, .asset_dir = "jichubiaoqing", @@ -1638,6 +1961,14 @@ esp_err_t lcd_direct_init_device(void) ESP_RETURN_ON_ERROR(lcd_direct_panel_init(), TAG, "esp_lcd panel init failed"); ESP_RETURN_ON_ERROR(lcd_direct_clear_panel(), TAG, "panel clear failed"); +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST + esp_err_t emote_err = lcd_direct_emote_init(); + if (emote_err != ESP_OK) { + ESP_LOGW(TAG, "esp_emote_gfx idle test unavailable; using PNG fallback: %s", + esp_err_to_name(emote_err)); + } +#endif + ESP_RETURN_ON_ERROR(ledc_set_duty(LEDC_LOW_SPEED_MODE, LCD_DIRECT_BACKLIGHT_PWM_CHANNEL, lcd_direct_backlight_duty( @@ -1718,7 +2049,14 @@ void lcd_direct_start_render_loop(void) portEXIT_CRITICAL(&s_state_lock); ESP_LOGI(TAG, "Direct LCD render loop started"); - esp_err_t preheat_err = lcd_direct_preheat_basic_face(); + esp_err_t preheat_err = ESP_OK; +#if CONFIG_TQ_LCD_EMOTE_GFX_TEST + if (!s_emote_ready) { + preheat_err = lcd_direct_preheat_basic_face(); + } +#else + preheat_err = lcd_direct_preheat_basic_face(); +#endif if (preheat_err != ESP_OK) { ESP_LOGW(TAG, "Default LCD face PNG preheat failed: %s", esp_err_to_name(preheat_err)); } diff --git a/components/platform/src/lcd_emote_assets.c b/components/platform/src/lcd_emote_assets.c new file mode 100644 index 0000000..260ad64 --- /dev/null +++ b/components/platform/src/lcd_emote_assets.c @@ -0,0 +1,27 @@ +#include "lcd_emote_assets.h" + +#include + +bool lcd_emote_decode_rle(const uint8_t *src, size_t src_size, + uint8_t *dst, size_t pixel_count) +{ + if (src == NULL || dst == NULL || pixel_count == 0 || + pixel_count > SIZE_MAX / 3 || src_size == 0 || src_size % 4 != 0) { + return false; + } + size_t written = 0; + uint8_t *alpha = dst + pixel_count * 2; + for (size_t i = 0; i < src_size; i += 4) { + size_t count = src[i]; + if (count == 0 || count > pixel_count - written) { + return false; + } + for (size_t j = 0; j < count; ++j) { + dst[(written + j) * 2] = src[i + 1]; + dst[(written + j) * 2 + 1] = src[i + 2]; + } + memset(alpha + written, src[i + 3], count); + written += count; + } + return written == pixel_count; +} diff --git a/dependencies.lock b/dependencies.lock index 53146e9..abe1edd 100644 --- a/dependencies.lock +++ b/dependencies.lock @@ -25,8 +25,18 @@ dependencies: registry_url: https://components.espressif.com type: service version: 1.7.19~2 + espressif/cmake_utilities: + component_hash: 351350613ceafba240b761b4ea991e0f231ac7a9f59a9ee901f751bddc0bb18f + dependencies: + - name: idf + require: private + version: '>=4.1' + source: + registry_url: https://components.espressif.com + type: service + version: 0.5.3 espressif/dl_fft: - component_hash: a955ca29581de2177ddf25759273bd83f082b3c805e735fe6ee105858643989b + component_hash: 3e8f7d34e04bfa6333f289a6d126745bebe0cee9311b81a6a5d106047f63ef65 dependencies: - name: idf require: private @@ -34,7 +44,7 @@ dependencies: source: registry_url: https://components.espressif.com type: service - version: 0.6.0 + version: 0.7.0 espressif/esp-dsp: component_hash: 12e44db246517a627bc0fe2b255b8335410c0215c98bfba2df5a8e3edea839ef dependencies: @@ -87,6 +97,35 @@ dependencies: registry_url: https://components.espressif.com/ type: service version: 1.5.4 + espressif/esp_lcd_touch: + component_hash: 3f85a7d95af876f1a6ecca8eb90a81614890d0f03a038390804e5a77e2caf862 + dependencies: + - name: idf + require: private + version: '>=4.4.2' + source: + registry_url: https://components.espressif.com + type: service + version: 1.2.1 + espressif/esp_new_jpeg: + component_hash: e1e7e6991193c41ed6c9fc386702aa7821433319e7aa9c3147cd3236310cd69c + dependencies: [] + source: + registry_url: https://components.espressif.com + type: service + targets: + - esp32 + - esp32s2 + - esp32s3 + - esp32s31 + - esp32p4 + - esp32c2 + - esp32c3 + - esp32c5 + - esp32c6 + - esp32c61 + - esp32h4 + version: 1.0.2 espressif/esp_websocket_client: component_hash: c5a067a9fddea370c478017e66fac302f4b79c3d4027e9bdd42a019786cceb92 dependencies: @@ -97,6 +136,16 @@ dependencies: registry_url: https://components.espressif.com/ type: service version: 1.6.1 + espressif/freetype: + component_hash: aa9f7657a69b2b1c1f49044017fc424081d4e0fe6e97834cb43883548d44e3ca + dependencies: + - name: idf + require: private + version: '>=5.1' + source: + registry_url: https://components.espressif.com + type: service + version: 2.14.3~1 espressif/mdns: component_hash: 8bcf12e37c58c1d584aef32a02b92548124c7a3a9fcf548d3235c844a035e0f0 dependencies: @@ -107,10 +156,61 @@ dependencies: registry_url: https://components.espressif.com/ type: service version: 1.11.1 + espressif2022/esp_emote_gfx: + component_hash: a06a58c74f7deb4186460f27f5e6db52fda4c254d7e03c3e05e7987aaf73de1a + dependencies: + - name: espressif/cmake_utilities + registry_url: https://components.espressif.com + require: private + version: 0.* + - name: espressif/esp_lcd_touch + registry_url: https://components.espressif.com + require: public + version: '>=1.0' + - name: espressif/esp_new_jpeg + registry_url: https://components.espressif.com + require: public + version: 1.* + - name: espressif/freetype + registry_url: https://components.espressif.com + require: private + version: 2.* + - name: idf + require: private + version: '>=5.0' + - name: laride/heatshrink + registry_url: https://components.espressif.com + require: private + version: ^0.4.1 + - name: lvgl/lvgl + registry_url: https://components.espressif.com + require: public + version: '*' + source: + registry_url: https://components.espressif.com/ + type: service + version: 3.0.5 idf: source: type: idf version: 5.5.4 + laride/heatshrink: + component_hash: 0828b0fea3f0754f8404a5279e883c52fe27494bbe1762e38d5cd96c99229e47 + dependencies: + - name: idf + require: private + version: '>=5' + source: + registry_url: https://components.espressif.com + type: service + version: 0.4.1 + lvgl/lvgl: + component_hash: 17e68bfd21f0edf4c3ee838e2273da840bf3930e5dbc3bfa6c1190c3aed41f9f + dependencies: [] + source: + registry_url: https://components.espressif.com + type: service + version: 9.4.0 direct_dependencies: - 78/esp-wifi-connect - espressif/esp-sr @@ -118,7 +218,8 @@ direct_dependencies: - espressif/esp_codec_dev - espressif/esp_websocket_client - espressif/mdns +- espressif2022/esp_emote_gfx - idf -manifest_hash: ba6b786f567d22dab6c465344a66b6b05775703588552240fe540a6e7e29bc2c +manifest_hash: 928ca8201e5e30df3df1c736a50e93c4f8905ab0ceca9b96f94a5c07f6cf9360 target: esp32s3 version: 2.0.0 diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 9bf35dd..385da57 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -638,6 +638,17 @@ menu "TQ Cat Configuration" help Stack size in bytes for the control-plane LCD render worker. + config TQ_LCD_EMOTE_GFX_TEST + bool "Use esp_emote_gfx for the idle expression (experimental)" + default n + depends on TQ_SCREEN_ENABLE + help + Render the idle face as a static RGB565 background plus an + RGB565A8 eye layer. Only the eye region is refreshed while + blinking. Other presentations continue to use the existing + full-screen PNG renderer. This test path currently omits the + clock and battery overlays from the idle screen. + config TQ_SCREEN_COLOR_ORDER_BGR bool "Use BGR color order" default n diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 5ec8ccf..e987650 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -41,6 +41,7 @@ CONFIG_TQ_BOOT_SOUND_FILE="audio_prompts/boot.opus" CONFIG_TQ_NETWORK_TASK_CORE=0 CONFIG_TQ_LOCAL_TASK_CORE=1 CONFIG_TQ_LCD_RENDER_TASK_STACK_BYTES=8192 +CONFIG_TQ_LCD_EMOTE_GFX_TEST=y CONFIG_TQ_TASK_MONITOR_INTERVAL_MS=30000 CONFIG_TQ_TASK_MONITOR_MAX_TASKS=64 CONFIG_TQ_MEMORY_MONITOR_ENABLE=y diff --git a/tools/compress_idle_expression.py b/tools/compress_idle_expression.py new file mode 100644 index 0000000..e384e38 --- /dev/null +++ b/tools/compress_idle_expression.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +"""Generate lossless RLE assets; PNGs remain the editable source of truth.""" +from pathlib import Path +from PIL import Image + +ROOT = Path(__file__).resolve().parents[1] +LAYERS = ROOT / "components/platform/assets/lcd_layers/jichubiaoqing" +GENERATED = ROOT / "components/platform/src/generated/emote_gfx" + + +def pixels565(image): + result = [] + for r, g, b, a in image.convert("RGBA").getdata(): + color = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3) + result.append((color >> 8, color & 255, a)) + return result + + +def encode(pixels): + out = bytearray() + for pixel in pixels: + if out and tuple(out[-3:]) == pixel and out[-4] < 255: + out[-4] += 1 + else: + out.extend((1, *pixel)) + # Round-trip validation for every generated asset. + decoded = [] + for i in range(0, len(out), 4): + decoded.extend([tuple(out[i + 1:i + 4])] * out[i]) + assert decoded == pixels + return out + + +def generate(name, image, x, y): + data = encode(pixels565(image)) + rows = [" " + ", ".join(f"0x{v:02x}" for v in data[i:i + 24]) + "," + for i in range(0, len(data), 24)] + text = ('/* Generated by tools/compress_idle_expression.py; do not edit. */\n' + '#include "lcd_emote_assets.h"\n\n' + f'static const uint8_t {name}_rle[] = {{\n' + '\n'.join(rows) + '\n};\n\n' + f'const lcd_emote_rle_asset_t {name}_rle_asset = {{\n' + f' .width = {image.width}, .height = {image.height}, .x = {x}, .y = {y},\n' + f' .compressed_size = sizeof({name}_rle), .data = {name}_rle,\n}};\n') + GENERATED.mkdir(parents=True, exist_ok=True) + (GENERATED / f"{name}.c").write_text(text) + print(f"{name}: {image.width}x{image.height} at ({x},{y}), " + f"raw={image.width * image.height * 3}B compressed={len(data)}B") + + +def main(): + base = Image.open(LAYERS / "idle_base.png").convert("RGBA") + # Pure black is supplied by the display, preserving all nonblack RGB565 pixels. + rgba = list(base.getdata()) + rgba = [(r, g, b, 255 if ((r >> 3) or (g >> 2) or (b >> 3)) else 0) + for r, g, b, _ in rgba] + base.putdata(rgba) + bbox = base.getbbox() + assert bbox is not None + generate("idle_base", base.crop(bbox), bbox[0], bbox[1]) + eyes = Image.open(LAYERS / "idle_eyes_open.png").convert("RGBA") + assert eyes.size == (238, 93), "eye geometry must match the mesh layout" + generate("idle_eyes_open", eyes, 41, 65) + + +if __name__ == "__main__": + main() diff --git a/tools/split_idle_expression.py b/tools/split_idle_expression.py new file mode 100644 index 0000000..efbcb5d --- /dev/null +++ b/tools/split_idle_expression.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +"""Split the three idle face frames into an exact static base and eye layers.""" + +from __future__ import annotations + +import json +from collections import deque +from pathlib import Path + +from PIL import Image + + +ROOT = Path(__file__).resolve().parents[1] +SOURCE = ROOT / "components/platform/assets/lcd_source" +OUTPUT = ROOT / "components/platform/assets/lcd_layers/jichubiaoqing" +FRAME_NAMES = ( + "jichubiaoqing0.png", + "jichubiaoqing1.png", + "jichubiaoqing2.png", +) + + +def component_mask(image: Image.Image, *, dynamic: bool) -> set[tuple[int, int]]: + """Select facial components while discarding isolated background artifacts.""" + rgb = image.convert("RGB") + px = rgb.load() + candidates = { + (x, y) + for y in range(rgb.height) + for x in range(rgb.width) + if max(px[x, y]) > 8 + } + selected: set[tuple[int, int]] = set() + while candidates: + seed = candidates.pop() + queue = deque([seed]) + component = {seed} + while queue: + x, y = queue.popleft() + for nx in range(max(0, x - 1), min(rgb.width, x + 2)): + for ny in range(max(0, y - 1), min(rgb.height, y + 2)): + point = (nx, ny) + if point in candidates: + candidates.remove(point) + component.add(point) + queue.append(point) + if len(component) < 20: + continue + xs = [point[0] for point in component] + ys = [point[1] for point in component] + left, top, right, bottom = min(xs), min(ys), max(xs), max(ys) + is_eye = 30 <= left and right <= 290 and top < 135 + is_static = top >= 135 + if (dynamic and is_eye) or (not dynamic and is_static): + selected.update(component) + return selected + + +def main() -> None: + frames = [Image.open(SOURCE / name).convert("RGBA") for name in FRAME_NAMES] + if any(frame.size != (320, 240) for frame in frames): + raise SystemExit("idle frames must all be 320x240") + + OUTPUT.mkdir(parents=True, exist_ok=True) + base = Image.new("RGBA", frames[0].size, (0, 0, 0, 255)) + base_px = base.load() + source_px = frames[0].load() + for x, y in component_mask(frames[0], dynamic=False): + base_px[x, y] = source_px[x, y] + + full_layers: list[Image.Image] = [] + union_bbox = None + for frame in frames: + layer = Image.new("RGBA", frame.size, (0, 0, 0, 0)) + layer_px = layer.load() + frame_px = frame.load() + for x, y in component_mask(frame, dynamic=True): + red, green, blue, _ = frame_px[x, y] + layer_px[x, y] = (red, green, blue, 255) + bbox = layer.getbbox() + if bbox is None: + raise SystemExit("an eye layer is empty") + union_bbox = bbox if union_bbox is None else ( + min(union_bbox[0], bbox[0]), + min(union_bbox[1], bbox[1]), + max(union_bbox[2], bbox[2]), + max(union_bbox[3], bbox[3]), + ) + full_layers.append(layer) + + assert union_bbox is not None + base.save(OUTPUT / "idle_base.png", optimize=True) + state_names = ("open", "half", "closed") + for state, layer in zip(state_names, full_layers): + cropped = layer.crop(union_bbox) + cropped.save(OUTPUT / f"idle_eyes_{state}.png", optimize=True) + + reconstructed = base.copy() + reconstructed.alpha_composite(cropped, (union_bbox[0], union_bbox[1])) + reconstructed.save(OUTPUT / f"preview_{state}.png", optimize=True) + + metadata = { + "canvas": {"width": 320, "height": 240}, + "base": "idle_base.png", + "eye_layer": { + "x": union_bbox[0], + "y": union_bbox[1], + "width": union_bbox[2] - union_bbox[0], + "height": union_bbox[3] - union_bbox[1], + "states": { + state: f"idle_eyes_{state}.png" for state in state_names + }, + }, + "note": "background normalized to pure black and isolated edge artifacts removed", + } + (OUTPUT / "layout.json").write_text( + json.dumps(metadata, ensure_ascii=False, indent=2) + "\n", + encoding="utf-8", + ) + + +if __name__ == "__main__": + main()