diff --git a/bootloader/.gitignore b/bootloader/.gitignore
deleted file mode 100644
index 579ef1f..0000000
--- a/bootloader/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-# ESP-IDF build artifacts
-build/
-.sdkconfig*
-CMakeFiles/
-CMakeCache.txt
-cmake-build-*/
-*.log
-*.bin
-*.elf
-*.map
diff --git a/bootloader/.idea/.gitignore b/bootloader/.idea/.gitignore
deleted file mode 100644
index 13566b8..0000000
--- a/bootloader/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/bootloader/.idea/bootloader.iml b/bootloader/.idea/bootloader.iml
deleted file mode 100644
index 6102194..0000000
--- a/bootloader/.idea/bootloader.iml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bootloader/.idea/modules.xml b/bootloader/.idea/modules.xml
deleted file mode 100644
index e9067a0..0000000
--- a/bootloader/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bootloader/.idea/vcs.xml b/bootloader/.idea/vcs.xml
deleted file mode 100644
index a3c3c7c..0000000
--- a/bootloader/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bootloader/CMakeLists.txt b/bootloader/CMakeLists.txt
deleted file mode 100644
index de9606c..0000000
--- a/bootloader/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-cmake_minimum_required(VERSION 3.16)
-
-# Minimal ESP-IDF project to build only the bootloader
-# You must have ESP-IDF installed and IDF_PATH exported.
-
-# Pin the target to ESP32-C6 to ensure correct bootloader build
-# (must be set before including project.cmake)
-set(IDF_TARGET "esp32c6")
-
-include($ENV{IDF_PATH}/tools/cmake/project.cmake)
-project(custom_bootloader)
diff --git a/bootloader/README.md b/bootloader/README.md
deleted file mode 100644
index 171be38..0000000
--- a/bootloader/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-Custom ESP-IDF Bootloader (Rollback Enabled)
-
-This minimal project builds a custom ESP-IDF bootloader with rollback support enabled.
-You can flash it later alongside a Rust firmware using `espflash`.
-
-What this provides
-- A minimal ESP-IDF project (CMake) that can build just the bootloader.
-- Rollback support enabled via sdkconfig.defaults (CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y).
-- A sample OTA partition table (partitions.csv) suitable for OTA and rollback (otadata + two OTA slots).
-- A convenience script to build the bootloader for the desired target.
-
-Requirements
-- ESP-IDF installed and set up (IDF_PATH exported, Python env activated).
-- A selected target (esp32, esp32s3, esp32c3, etc.).
-
-Build
-1) Ensure ESP-IDF is set up:
- source "$IDF_PATH/export.sh"
-
-2) Pick a target (examples):
- idf.py set-target esp32
- # or use the script:
- ./build_bootloader.sh esp32
-
-3) Build only the bootloader:
- idf.py bootloader
- # or using the script (which also supports setting target):
- ./build_bootloader.sh esp32
-
-Artifacts
-- build/bootloader/bootloader.bin
-
-Using with espflash (Rust)
-- For a no_std Rust firmware, you can pass this custom bootloader to espflash:
- espflash flash --bootloader build/bootloader/bootloader.bin \
- --partition-table partitions.csv \
-
-
-Notes
-- Rollback logic requires an OTA layout (otadata + at least two OTA app partitions). The provided partitions.csv is a starting point; adjust sizes/offsets to match your needs.
-- This project doesn’t build an application; it exists solely to produce a bootloader with the right configuration.
-- If you need different log verbosity or features, run `idf.py menuconfig` and then diff/port the changes back into sdkconfig.defaults.
-- Targets supported depend on your ESP-IDF version. Use `idf.py set-target ` or `./build_bootloader.sh `.
diff --git a/bootloader/build_bootloader.sh b/bootloader/build_bootloader.sh
deleted file mode 100755
index ab82422..0000000
--- a/bootloader/build_bootloader.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-set -euo pipefail
-
-# Build script for custom ESP-IDF bootloader with rollback enabled.
-# Requirements:
-# - ESP-IDF installed
-# - IDF_PATH exported
-# - Python env prepared (the usual ESP-IDF setup)
-# Usage:
-# ./build_bootloader.sh [esp32|esp32s3|esp32c3|esp32s2|esp32c2|esp32c6|esp32h2]
-# If target is omitted, the last configured target will be used.
-
-TARGET=${1:-}
-
-if [[ -z "${IDF_PATH:-}" ]]; then
- echo "ERROR: IDF_PATH is not set. Please install ESP-IDF and export the environment (source export.sh)." >&2
- exit 1
-fi
-
-# shellcheck source=/dev/null
-source "$IDF_PATH/export.sh"
-
-if [[ -n "$TARGET" ]]; then
- idf.py set-target "$TARGET"
-fi
-
-# Ensure sdkconfig.defaults is considered (ESP-IDF does this automatically).
-# Build only the bootloader.
-idf.py bootloader
-
-echo
-BOOTLOADER_BIN="build/bootloader/bootloader.bin"
-if [[ -f "$BOOTLOADER_BIN" ]]; then
- echo "Bootloader built: $BOOTLOADER_BIN"
- echo "You can use this with espflash via:"
- echo " espflash flash --bootloader $BOOTLOADER_BIN [--partition-table partitions.csv] "
-else
- echo "ERROR: Bootloader binary not found. Check build logs above." >&2
- exit 2
-fi
-cp build/bootloader/bootloader.bin ../rust/bootloader.bin
diff --git a/bootloader/main/CMakeLists.txt b/bootloader/main/CMakeLists.txt
deleted file mode 100644
index 8f7216c..0000000
--- a/bootloader/main/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-idf_component_register(SRCS "dummy.c" INCLUDE_DIRS ".")
diff --git a/bootloader/main/dummy.c b/bootloader/main/dummy.c
deleted file mode 100644
index e5bc5b7..0000000
--- a/bootloader/main/dummy.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file intentionally left almost empty.
-// ESP-IDF expects at least one component; the bootloader build does not use this.
-
-void __unused_dummy_symbol(void) {}
diff --git a/bootloader/partitions.csv b/bootloader/partitions.csv
deleted file mode 100644
index 7372605..0000000
--- a/bootloader/partitions.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-nvs, data, nvs, , 16k,
-otadata, data, ota, , 8k,
-phy_init, data, phy, , 4k,
-ota_0, app, ota_0, , 3968k,
-ota_1, app, ota_1, , 3968k,
-storage, data, littlefs,, 8M,
diff --git a/bootloader/sdkconfig b/bootloader/sdkconfig
deleted file mode 100644
index 7125f36..0000000
--- a/bootloader/sdkconfig
+++ /dev/null
@@ -1,2385 +0,0 @@
-#
-# Automatically generated file. DO NOT EDIT.
-# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration
-#
-CONFIG_SOC_ADC_SUPPORTED=y
-CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
-CONFIG_SOC_UART_SUPPORTED=y
-CONFIG_SOC_UHCI_SUPPORTED=y
-CONFIG_SOC_GDMA_SUPPORTED=y
-CONFIG_SOC_AHB_GDMA_SUPPORTED=y
-CONFIG_SOC_GPTIMER_SUPPORTED=y
-CONFIG_SOC_PCNT_SUPPORTED=y
-CONFIG_SOC_MCPWM_SUPPORTED=y
-CONFIG_SOC_TWAI_SUPPORTED=y
-CONFIG_SOC_ETM_SUPPORTED=y
-CONFIG_SOC_PARLIO_SUPPORTED=y
-CONFIG_SOC_BT_SUPPORTED=y
-CONFIG_SOC_IEEE802154_SUPPORTED=y
-CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y
-CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y
-CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y
-CONFIG_SOC_PHY_SUPPORTED=y
-CONFIG_SOC_WIFI_SUPPORTED=y
-CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y
-CONFIG_SOC_ULP_SUPPORTED=y
-CONFIG_SOC_LP_CORE_SUPPORTED=y
-CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y
-CONFIG_SOC_EFUSE_SUPPORTED=y
-CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y
-CONFIG_SOC_RTC_MEM_SUPPORTED=y
-CONFIG_SOC_I2S_SUPPORTED=y
-CONFIG_SOC_RMT_SUPPORTED=y
-CONFIG_SOC_SDM_SUPPORTED=y
-CONFIG_SOC_GPSPI_SUPPORTED=y
-CONFIG_SOC_LEDC_SUPPORTED=y
-CONFIG_SOC_I2C_SUPPORTED=y
-CONFIG_SOC_SYSTIMER_SUPPORTED=y
-CONFIG_SOC_SUPPORT_COEXISTENCE=y
-CONFIG_SOC_AES_SUPPORTED=y
-CONFIG_SOC_MPI_SUPPORTED=y
-CONFIG_SOC_SHA_SUPPORTED=y
-CONFIG_SOC_HMAC_SUPPORTED=y
-CONFIG_SOC_DIG_SIGN_SUPPORTED=y
-CONFIG_SOC_ECC_SUPPORTED=y
-CONFIG_SOC_FLASH_ENC_SUPPORTED=y
-CONFIG_SOC_SECURE_BOOT_SUPPORTED=y
-CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y
-CONFIG_SOC_BOD_SUPPORTED=y
-CONFIG_SOC_APM_SUPPORTED=y
-CONFIG_SOC_PMU_SUPPORTED=y
-CONFIG_SOC_PAU_SUPPORTED=y
-CONFIG_SOC_LP_TIMER_SUPPORTED=y
-CONFIG_SOC_LP_AON_SUPPORTED=y
-CONFIG_SOC_LP_PERIPHERALS_SUPPORTED=y
-CONFIG_SOC_LP_I2C_SUPPORTED=y
-CONFIG_SOC_ULP_LP_UART_SUPPORTED=y
-CONFIG_SOC_CLK_TREE_SUPPORTED=y
-CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y
-CONFIG_SOC_WDT_SUPPORTED=y
-CONFIG_SOC_SPI_FLASH_SUPPORTED=y
-CONFIG_SOC_RNG_SUPPORTED=y
-CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y
-CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y
-CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y
-CONFIG_SOC_PM_SUPPORTED=y
-CONFIG_SOC_XTAL_SUPPORT_40M=y
-CONFIG_SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN=y
-CONFIG_SOC_AES_SUPPORT_DMA=y
-CONFIG_SOC_AES_GDMA=y
-CONFIG_SOC_AES_SUPPORT_AES_128=y
-CONFIG_SOC_AES_SUPPORT_AES_256=y
-CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y
-CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y
-CONFIG_SOC_ADC_MONITOR_SUPPORTED=y
-CONFIG_SOC_ADC_DMA_SUPPORTED=y
-CONFIG_SOC_ADC_PERIPH_NUM=1
-CONFIG_SOC_ADC_MAX_CHANNEL_NUM=7
-CONFIG_SOC_ADC_ATTEN_NUM=4
-CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1
-CONFIG_SOC_ADC_PATT_LEN_MAX=8
-CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12
-CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12
-CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2
-CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2
-CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4
-CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4
-CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333
-CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611
-CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12
-CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12
-CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y
-CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y
-CONFIG_SOC_ADC_CALIB_CHAN_COMPENS_SUPPORTED=y
-CONFIG_SOC_ADC_TEMPERATURE_SHARE_INTR=y
-CONFIG_SOC_ADC_SHARED_POWER=y
-CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y
-CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y
-CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y
-CONFIG_SOC_CPU_CORES_NUM=1
-CONFIG_SOC_CPU_INTR_NUM=32
-CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y
-CONFIG_SOC_INT_PLIC_SUPPORTED=y
-CONFIG_SOC_CPU_HAS_CSR_PC=y
-CONFIG_SOC_CPU_BREAKPOINTS_NUM=4
-CONFIG_SOC_CPU_WATCHPOINTS_NUM=4
-CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000
-CONFIG_SOC_CPU_HAS_PMA=y
-CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y
-CONFIG_SOC_CPU_PMP_REGION_GRANULARITY=4
-CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072
-CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
-CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100
-CONFIG_SOC_AHB_GDMA_VERSION=1
-CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1
-CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=3
-CONFIG_SOC_GDMA_SUPPORT_ETM=y
-CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_ETM_GROUPS=1
-CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50
-CONFIG_SOC_ETM_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_GPIO_PORT=1
-CONFIG_SOC_GPIO_PIN_COUNT=31
-CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y
-CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8
-CONFIG_SOC_GPIO_SUPPORT_ETM=y
-CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y
-CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
-CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
-CONFIG_SOC_GPIO_IN_RANGE_MAX=30
-CONFIG_SOC_GPIO_OUT_RANGE_MAX=30
-CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
-CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=8
-CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00
-CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y
-CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y
-CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y
-CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y
-CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y
-CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3
-CONFIG_SOC_RTCIO_PIN_COUNT=8
-CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
-CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
-CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
-CONFIG_SOC_RTCIO_EDGE_WAKE_SUPPORTED=y
-CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
-CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
-CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y
-CONFIG_SOC_I2C_NUM=2
-CONFIG_SOC_HP_I2C_NUM=1
-CONFIG_SOC_I2C_FIFO_LEN=32
-CONFIG_SOC_I2C_CMD_REG_NUM=8
-CONFIG_SOC_I2C_SUPPORT_SLAVE=y
-CONFIG_SOC_I2C_SUPPORT_HW_FSM_RST=y
-CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y
-CONFIG_SOC_I2C_SUPPORT_XTAL=y
-CONFIG_SOC_I2C_SUPPORT_RTC=y
-CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y
-CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y
-CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y
-CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y
-CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y
-CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_LP_I2C_NUM=1
-CONFIG_SOC_LP_I2C_FIFO_LEN=16
-CONFIG_SOC_I2S_NUM=1
-CONFIG_SOC_I2S_HW_VERSION_2=y
-CONFIG_SOC_I2S_SUPPORTS_ETM=y
-CONFIG_SOC_I2S_SUPPORTS_XTAL=y
-CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y
-CONFIG_SOC_I2S_SUPPORTS_PCM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
-CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y
-CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2
-CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1
-CONFIG_SOC_I2S_SUPPORTS_TDM=y
-CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y
-CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y
-CONFIG_SOC_LEDC_TIMER_NUM=4
-CONFIG_SOC_LEDC_CHANNEL_NUM=6
-CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20
-CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y
-CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y
-CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16
-CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10
-CONFIG_SOC_LEDC_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MMU_PAGE_SIZE_CONFIGURABLE=y
-CONFIG_SOC_MMU_PAGE_SIZE_8KB_SUPPORTED=y
-CONFIG_SOC_MMU_PERIPH_NUM=1
-CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1
-CONFIG_SOC_MMU_DI_VADDR_SHARED=y
-CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
-CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
-CONFIG_SOC_PCNT_GROUPS=1
-CONFIG_SOC_PCNT_UNITS_PER_GROUP=4
-CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2
-CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2
-CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y
-CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_RMT_GROUPS=1
-CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2
-CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2
-CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4
-CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48
-CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y
-CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y
-CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y
-CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y
-CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y
-CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y
-CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y
-CONFIG_SOC_RMT_SUPPORT_XTAL=y
-CONFIG_SOC_RMT_SUPPORT_RC_FAST=y
-CONFIG_SOC_RMT_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MCPWM_GROUPS=1
-CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3
-CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3
-CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2
-CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2
-CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2
-CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3
-CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y
-CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3
-CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3
-CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y
-CONFIG_SOC_MCPWM_SUPPORT_ETM=y
-CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y
-CONFIG_SOC_MCPWM_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_PARLIO_GROUPS=1
-CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1
-CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1
-CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=16
-CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=16
-CONFIG_SOC_PARLIO_TX_RX_SHARE_INTERRUPT=y
-CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4
-CONFIG_SOC_MPI_OPERATIONS_NUM=3
-CONFIG_SOC_RSA_MAX_BIT_LEN=3072
-CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968
-CONFIG_SOC_SHA_SUPPORT_DMA=y
-CONFIG_SOC_SHA_SUPPORT_RESUME=y
-CONFIG_SOC_SHA_GDMA=y
-CONFIG_SOC_SHA_SUPPORT_SHA1=y
-CONFIG_SOC_SHA_SUPPORT_SHA224=y
-CONFIG_SOC_SHA_SUPPORT_SHA256=y
-CONFIG_SOC_SDM_GROUPS=1
-CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4
-CONFIG_SOC_SDM_CLK_SUPPORT_PLL_F80M=y
-CONFIG_SOC_SDM_CLK_SUPPORT_XTAL=y
-CONFIG_SOC_SPI_PERIPH_NUM=2
-CONFIG_SOC_SPI_MAX_CS_NUM=6
-CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64
-CONFIG_SOC_SPI_SUPPORT_DDRCLK=y
-CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y
-CONFIG_SOC_SPI_SUPPORT_CD_SIG=y
-CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y
-CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
-CONFIG_SOC_SPI_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y
-CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y
-CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y
-CONFIG_SOC_SPI_SCT_SUPPORTED=y
-CONFIG_SOC_SPI_SCT_REG_NUM=14
-CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y
-CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA
-CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
-CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y
-CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y
-CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y
-CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
-CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
-CONFIG_SOC_SYSTIMER_COUNTER_NUM=2
-CONFIG_SOC_SYSTIMER_ALARM_NUM=3
-CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32
-CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20
-CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y
-CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y
-CONFIG_SOC_SYSTIMER_INT_LEVEL=y
-CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y
-CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y
-CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32
-CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16
-CONFIG_SOC_TIMER_GROUPS=2
-CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1
-CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54
-CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
-CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y
-CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2
-CONFIG_SOC_TIMER_SUPPORT_ETM=y
-CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MWDT_SUPPORT_XTAL=y
-CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_TWAI_CONTROLLER_NUM=2
-CONFIG_SOC_TWAI_MASK_FILTER_NUM=1
-CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y
-CONFIG_SOC_TWAI_BRP_MIN=2
-CONFIG_SOC_TWAI_BRP_MAX=32768
-CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y
-CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y
-CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y
-CONFIG_SOC_EFUSE_DIS_USB_JTAG=y
-CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y
-CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y
-CONFIG_SOC_EFUSE_DIS_ICACHE=y
-CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y
-CONFIG_SOC_SECURE_BOOT_V2_RSA=y
-CONFIG_SOC_SECURE_BOOT_V2_ECC=y
-CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3
-CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y
-CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y
-CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64
-CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y
-CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y
-CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y
-CONFIG_SOC_APM_LP_APM0_SUPPORTED=y
-CONFIG_SOC_APM_SUPPORT_LP_TEE_CTRL=y
-CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y
-CONFIG_SOC_UART_NUM=3
-CONFIG_SOC_UART_HP_NUM=2
-CONFIG_SOC_UART_LP_NUM=1
-CONFIG_SOC_UART_FIFO_LEN=128
-CONFIG_SOC_LP_UART_FIFO_LEN=16
-CONFIG_SOC_UART_BITRATE_MAX=5000000
-CONFIG_SOC_UART_SUPPORT_PLL_F80M_CLK=y
-CONFIG_SOC_UART_SUPPORT_RTC_CLK=y
-CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y
-CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y
-CONFIG_SOC_UART_HAS_LP_UART=y
-CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y
-CONFIG_SOC_UART_WAKEUP_CHARS_SEQ_MAX_LEN=5
-CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y
-CONFIG_SOC_UART_WAKEUP_SUPPORT_FIFO_THRESH_MODE=y
-CONFIG_SOC_UART_WAKEUP_SUPPORT_START_BIT_MODE=y
-CONFIG_SOC_UART_WAKEUP_SUPPORT_CHAR_SEQ_MODE=y
-CONFIG_SOC_UHCI_NUM=1
-CONFIG_SOC_COEX_HW_PTI=y
-CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y
-CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21
-CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12
-CONFIG_SOC_RTC_MEM_SUPPORT_SPEED_MODE_SWITCH=y
-CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_BEACON_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN=y
-CONFIG_SOC_PM_SUPPORT_CPU_PD=y
-CONFIG_SOC_PM_SUPPORT_MODEM_PD=y
-CONFIG_SOC_PM_SUPPORT_XTAL32K_PD=y
-CONFIG_SOC_PM_SUPPORT_RC32K_PD=y
-CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y
-CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y
-CONFIG_SOC_PM_SUPPORT_TOP_PD=y
-CONFIG_SOC_PM_SUPPORT_HP_AON_PD=y
-CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y
-CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y
-CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y
-CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y
-CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y
-CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y
-CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y
-CONFIG_SOC_PM_RETENTION_HAS_CLOCK_BUG=y
-CONFIG_SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN=y
-CONFIG_SOC_PM_PAU_LINK_NUM=4
-CONFIG_SOC_PM_PAU_REGDMA_LINK_MULTI_ADDR=y
-CONFIG_SOC_PM_PAU_REGDMA_LINK_WIFIMAC=y
-CONFIG_SOC_PM_PAU_REGDMA_UPDATE_CACHE_BEFORE_WAIT_COMPARE=y
-CONFIG_SOC_PM_PMU_MIN_SLP_SLOW_CLK_CYCLE_FIXED=y
-CONFIG_SOC_PM_RETENTION_MODULE_NUM=32
-CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y
-CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y
-CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y
-CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y
-CONFIG_SOC_CLK_RC32K_SUPPORTED=y
-CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y
-CONFIG_SOC_RCC_IS_INDEPENDENT=y
-CONFIG_SOC_CLK_ANA_I2C_MST_HAS_ROOT_GATE=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y
-CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_ETM=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN=y
-CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y
-CONFIG_SOC_WIFI_HW_TSF=y
-CONFIG_SOC_WIFI_FTM_SUPPORT=y
-CONFIG_SOC_WIFI_GCMP_SUPPORT=y
-CONFIG_SOC_WIFI_WAPI_SUPPORT=y
-CONFIG_SOC_WIFI_CSI_SUPPORT=y
-CONFIG_SOC_WIFI_MESH_SUPPORT=y
-CONFIG_SOC_WIFI_HE_SUPPORT=y
-CONFIG_SOC_WIFI_MAC_VERSION_NUM=2
-CONFIG_SOC_BLE_SUPPORTED=y
-CONFIG_SOC_BLE_MESH_SUPPORTED=y
-CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y
-CONFIG_SOC_BLE_50_SUPPORTED=y
-CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y
-CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y
-CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y
-CONFIG_SOC_BLUFI_SUPPORTED=y
-CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
-CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y
-CONFIG_SOC_PHY_COMBO_MODULE=y
-CONFIG_SOC_CAPS_NO_RESET_BY_ANA_BOD=y
-CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y
-CONFIG_SOC_LP_CORE_SUPPORT_ETM=y
-CONFIG_SOC_DEBUG_HAVE_OCD_STUB_BINS=y
-CONFIG_IDF_CMAKE=y
-CONFIG_IDF_TOOLCHAIN="gcc"
-CONFIG_IDF_TOOLCHAIN_GCC=y
-CONFIG_IDF_TARGET_ARCH_RISCV=y
-CONFIG_IDF_TARGET_ARCH="riscv"
-CONFIG_IDF_TARGET="esp32c6"
-CONFIG_IDF_INIT_VERSION="5.5.1"
-CONFIG_IDF_TARGET_ESP32C6=y
-CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D
-
-#
-# Build type
-#
-CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y
-# CONFIG_APP_BUILD_TYPE_RAM is not set
-CONFIG_APP_BUILD_GENERATE_BINARIES=y
-CONFIG_APP_BUILD_BOOTLOADER=y
-CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
-CONFIG_APP_REPRODUCIBLE_BUILD=y
-# CONFIG_APP_NO_BLOBS is not set
-# end of Build type
-
-#
-# Bootloader config
-#
-
-#
-# Bootloader manager
-#
-CONFIG_BOOTLOADER_PROJECT_VER=1
-# end of Bootloader manager
-
-#
-# Application Rollback
-#
-CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
-# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set
-# end of Application Rollback
-
-#
-# Recovery Bootloader and Rollback
-#
-# end of Recovery Bootloader and Rollback
-
-CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0
-CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
-
-#
-# Log
-#
-CONFIG_BOOTLOADER_LOG_VERSION_1=y
-CONFIG_BOOTLOADER_LOG_VERSION=1
-# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
-CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
-# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
-CONFIG_BOOTLOADER_LOG_LEVEL=3
-
-#
-# Format
-#
-CONFIG_BOOTLOADER_LOG_COLORS=y
-CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y
-# end of Format
-
-#
-# Settings
-#
-CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y
-CONFIG_BOOTLOADER_LOG_MODE_TEXT=y
-# end of Settings
-# end of Log
-
-#
-# Serial Flash Configurations
-#
-# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set
-CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
-# end of Serial Flash Configurations
-
-# CONFIG_BOOTLOADER_FACTORY_RESET is not set
-# CONFIG_BOOTLOADER_APP_TEST is not set
-CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
-CONFIG_BOOTLOADER_WDT_ENABLE=y
-# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
-CONFIG_BOOTLOADER_WDT_TIME_MS=9000
-CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
-CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0x10
-# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
-CONFIG_BOOTLOADER_RESERVE_RTC_MEM=y
-# end of Bootloader config
-
-#
-# Security features
-#
-CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y
-CONFIG_SECURE_BOOT_V2_ECC_SUPPORTED=y
-CONFIG_SECURE_BOOT_V2_PREFERRED=y
-# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set
-# CONFIG_SECURE_BOOT is not set
-# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
-CONFIG_SECURE_ROM_DL_MODE_ENABLED=y
-# end of Security features
-
-#
-# Application manager
-#
-# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
-# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
-# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
-CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9
-# end of Application manager
-
-CONFIG_ESP_ROM_HAS_CRC_LE=y
-CONFIG_ESP_ROM_HAS_CRC_BE=y
-CONFIG_ESP_ROM_HAS_JPEG_DECODE=y
-CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y
-CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3
-CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y
-CONFIG_ESP_ROM_GET_CLK_FREQ=y
-CONFIG_ESP_ROM_HAS_RVFPLIB=y
-CONFIG_ESP_ROM_HAS_HAL_WDT=y
-CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y
-CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y
-CONFIG_ESP_ROM_HAS_HEAP_TLSF=y
-CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y
-CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y
-CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y
-CONFIG_ESP_ROM_HAS_SPI_FLASH=y
-CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y
-CONFIG_ESP_ROM_HAS_REGI2C_BUG=y
-CONFIG_ESP_ROM_HAS_NEWLIB=y
-CONFIG_ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT=y
-CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE=y
-CONFIG_ESP_ROM_WDT_INIT_PATCH=y
-CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y
-CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y
-CONFIG_ESP_ROM_HAS_SW_FLOAT=y
-CONFIG_ESP_ROM_USB_OTG_NUM=-1
-CONFIG_ESP_ROM_HAS_VERSION=y
-CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y
-CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y
-CONFIG_ESP_ROM_NO_USB_SERIAL_OUTPUT_API=y
-CONFIG_ESP_ROM_HAS_SUBOPTIMAL_NEWLIB_ON_MISALIGNED_MEMORY=y
-
-#
-# Boot ROM Behavior
-#
-CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y
-# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set
-# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set
-# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set
-# end of Boot ROM Behavior
-
-#
-# ESP-TEE (Trusted Execution Environment)
-#
-# CONFIG_SECURE_ENABLE_TEE is not set
-CONFIG_SECURE_TEE_LOG_LEVEL=0
-# end of ESP-TEE (Trusted Execution Environment)
-
-#
-# Serial flasher config
-#
-# CONFIG_ESPTOOLPY_NO_STUB is not set
-# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
-# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
-CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
-# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set
-CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y
-CONFIG_ESPTOOLPY_FLASHMODE="dio"
-# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set
-CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
-# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
-CONFIG_ESPTOOLPY_FLASHFREQ="40m"
-# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
-CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
-# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
-CONFIG_ESPTOOLPY_FLASHSIZE="16MB"
-# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set
-CONFIG_ESPTOOLPY_BEFORE_RESET=y
-# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
-CONFIG_ESPTOOLPY_BEFORE="default_reset"
-CONFIG_ESPTOOLPY_AFTER_RESET=y
-# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
-CONFIG_ESPTOOLPY_AFTER="hard_reset"
-CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
-# end of Serial flasher config
-
-#
-# Partition Table
-#
-# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
-# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
-# CONFIG_PARTITION_TABLE_TWO_OTA is not set
-# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set
-CONFIG_PARTITION_TABLE_CUSTOM=y
-CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
-CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
-CONFIG_PARTITION_TABLE_OFFSET=0x8000
-CONFIG_PARTITION_TABLE_MD5=y
-# end of Partition Table
-
-#
-# Compiler options
-#
-CONFIG_COMPILER_OPTIMIZATION_DEBUG=y
-# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
-# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
-# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
-CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
-CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y
-CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y
-# CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB is not set
-CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
-# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
-CONFIG_COMPILER_HIDE_PATHS_MACROS=y
-# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
-# CONFIG_COMPILER_CXX_RTTI is not set
-CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
-# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
-# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
-# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
-# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set
-# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
-# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set
-CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y
-# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set
-# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set
-# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set
-# CONFIG_COMPILER_DUMP_RTL_FILES is not set
-CONFIG_COMPILER_RT_LIB_GCCLIB=y
-CONFIG_COMPILER_RT_LIB_NAME="gcc"
-CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y
-# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set
-# CONFIG_COMPILER_STATIC_ANALYZER is not set
-# end of Compiler options
-
-#
-# Component config
-#
-
-#
-# Application Level Tracing
-#
-# CONFIG_APPTRACE_DEST_JTAG is not set
-CONFIG_APPTRACE_DEST_NONE=y
-# CONFIG_APPTRACE_DEST_UART1 is not set
-# CONFIG_APPTRACE_DEST_UART2 is not set
-CONFIG_APPTRACE_DEST_UART_NONE=y
-CONFIG_APPTRACE_UART_TASK_PRIO=1
-CONFIG_APPTRACE_LOCK_ENABLE=y
-# end of Application Level Tracing
-
-#
-# Bluetooth
-#
-# CONFIG_BT_ENABLED is not set
-
-#
-# Common Options
-#
-# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set
-# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set
-# end of Common Options
-# end of Bluetooth
-
-#
-# Console Library
-#
-# CONFIG_CONSOLE_SORTED_HELP is not set
-# end of Console Library
-
-#
-# Driver Configurations
-#
-
-#
-# Legacy TWAI Driver Configurations
-#
-# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy TWAI Driver Configurations
-
-#
-# Legacy ADC Driver Configuration
-#
-# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set
-
-#
-# Legacy ADC Calibration Configuration
-#
-# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
-# end of Legacy ADC Calibration Configuration
-# end of Legacy ADC Driver Configuration
-
-#
-# Legacy MCPWM Driver Configurations
-#
-# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy MCPWM Driver Configurations
-
-#
-# Legacy Timer Group Driver Configurations
-#
-# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy Timer Group Driver Configurations
-
-#
-# Legacy RMT Driver Configurations
-#
-# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy RMT Driver Configurations
-
-#
-# Legacy I2S Driver Configurations
-#
-# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy I2S Driver Configurations
-
-#
-# Legacy I2C Driver Configurations
-#
-# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy I2C Driver Configurations
-
-#
-# Legacy PCNT Driver Configurations
-#
-# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy PCNT Driver Configurations
-
-#
-# Legacy SDM Driver Configurations
-#
-# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy SDM Driver Configurations
-
-#
-# Legacy Temperature Sensor Driver Configurations
-#
-# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy Temperature Sensor Driver Configurations
-# end of Driver Configurations
-
-#
-# eFuse Bit Manager
-#
-# CONFIG_EFUSE_CUSTOM_TABLE is not set
-# CONFIG_EFUSE_VIRTUAL is not set
-CONFIG_EFUSE_MAX_BLK_LEN=256
-# end of eFuse Bit Manager
-
-#
-# ESP-TLS
-#
-CONFIG_ESP_TLS_USING_MBEDTLS=y
-# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
-CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
-# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
-# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set
-# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set
-# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
-# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
-# CONFIG_ESP_TLS_INSECURE is not set
-CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y
-# end of ESP-TLS
-
-#
-# ADC and ADC Calibration
-#
-# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set
-# CONFIG_ADC_ENABLE_DEBUG_LOG is not set
-# end of ADC and ADC Calibration
-
-#
-# Wireless Coexistence
-#
-CONFIG_ESP_COEX_ENABLED=y
-CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
-# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
-# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set
-# CONFIG_ESP_COEX_GPIO_DEBUG is not set
-# end of Wireless Coexistence
-
-#
-# Common ESP-related
-#
-CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
-# end of Common ESP-related
-
-#
-# ESP-Driver:GPIO Configurations
-#
-# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
-# end of ESP-Driver:GPIO Configurations
-
-#
-# ESP-Driver:GPTimer Configurations
-#
-CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
-# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set
-CONFIG_GPTIMER_OBJ_CACHE_SAFE=y
-# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:GPTimer Configurations
-
-#
-# ESP-Driver:I2C Configurations
-#
-# CONFIG_I2C_ISR_IRAM_SAFE is not set
-# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
-# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set
-CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y
-# end of ESP-Driver:I2C Configurations
-
-#
-# ESP-Driver:I2S Configurations
-#
-# CONFIG_I2S_ISR_IRAM_SAFE is not set
-# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:I2S Configurations
-
-#
-# ESP-Driver:LEDC Configurations
-#
-# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set
-# end of ESP-Driver:LEDC Configurations
-
-#
-# ESP-Driver:MCPWM Configurations
-#
-CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y
-# CONFIG_MCPWM_ISR_CACHE_SAFE is not set
-# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
-CONFIG_MCPWM_OBJ_CACHE_SAFE=y
-# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:MCPWM Configurations
-
-#
-# ESP-Driver:Parallel IO Configurations
-#
-CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=y
-CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=y
-# CONFIG_PARLIO_TX_ISR_CACHE_SAFE is not set
-# CONFIG_PARLIO_RX_ISR_CACHE_SAFE is not set
-CONFIG_PARLIO_OBJ_CACHE_SAFE=y
-# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set
-# CONFIG_PARLIO_ISR_IRAM_SAFE is not set
-# end of ESP-Driver:Parallel IO Configurations
-
-#
-# ESP-Driver:PCNT Configurations
-#
-# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_PCNT_ISR_IRAM_SAFE is not set
-# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:PCNT Configurations
-
-#
-# ESP-Driver:RMT Configurations
-#
-CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y
-CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y
-CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y
-# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
-# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set
-# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set
-CONFIG_RMT_OBJ_CACHE_SAFE=y
-# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
-# CONFIG_RMT_ISR_IRAM_SAFE is not set
-# end of ESP-Driver:RMT Configurations
-
-#
-# ESP-Driver:Sigma Delta Modulator Configurations
-#
-# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:Sigma Delta Modulator Configurations
-
-#
-# ESP-Driver:SPI Configurations
-#
-# CONFIG_SPI_MASTER_IN_IRAM is not set
-CONFIG_SPI_MASTER_ISR_IN_IRAM=y
-# CONFIG_SPI_SLAVE_IN_IRAM is not set
-CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
-# end of ESP-Driver:SPI Configurations
-
-#
-# ESP-Driver:Temperature Sensor Configurations
-#
-# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
-# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set
-# end of ESP-Driver:Temperature Sensor Configurations
-
-#
-# ESP-Driver:TWAI Configurations
-#
-# CONFIG_TWAI_ISR_IN_IRAM is not set
-# CONFIG_TWAI_ISR_CACHE_SAFE is not set
-# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:TWAI Configurations
-
-#
-# ESP-Driver:UART Configurations
-#
-# CONFIG_UART_ISR_IN_IRAM is not set
-# end of ESP-Driver:UART Configurations
-
-#
-# ESP-Driver:UHCI Configurations
-#
-# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set
-# CONFIG_UHCI_ISR_CACHE_SAFE is not set
-# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:UHCI Configurations
-
-#
-# ESP-Driver:USB Serial/JTAG Configuration
-#
-CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y
-# end of ESP-Driver:USB Serial/JTAG Configuration
-
-#
-# Ethernet
-#
-CONFIG_ETH_ENABLED=y
-CONFIG_ETH_USE_SPI_ETHERNET=y
-# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set
-# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
-# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set
-# CONFIG_ETH_USE_OPENETH is not set
-# CONFIG_ETH_TRANSMIT_MUTEX is not set
-# end of Ethernet
-
-#
-# Event Loop Library
-#
-# CONFIG_ESP_EVENT_LOOP_PROFILING is not set
-CONFIG_ESP_EVENT_POST_FROM_ISR=y
-CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y
-# end of Event Loop Library
-
-#
-# GDB Stub
-#
-CONFIG_ESP_GDBSTUB_ENABLED=y
-# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set
-CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y
-CONFIG_ESP_GDBSTUB_MAX_TASKS=32
-# end of GDB Stub
-
-#
-# ESP HID
-#
-CONFIG_ESPHID_TASK_SIZE_BT=2048
-CONFIG_ESPHID_TASK_SIZE_BLE=4096
-# end of ESP HID
-
-#
-# ESP HTTP client
-#
-CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
-# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
-# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set
-# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set
-CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000
-# end of ESP HTTP client
-
-#
-# HTTP Server
-#
-CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
-CONFIG_HTTPD_MAX_URI_LEN=512
-CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
-CONFIG_HTTPD_PURGE_BUF_LEN=32
-# CONFIG_HTTPD_LOG_PURGE_DATA is not set
-# CONFIG_HTTPD_WS_SUPPORT is not set
-# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set
-CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000
-# end of HTTP Server
-
-#
-# ESP HTTPS OTA
-#
-# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set
-# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set
-CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000
-# end of ESP HTTPS OTA
-
-#
-# ESP HTTPS server
-#
-# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set
-CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000
-# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set
-# end of ESP HTTPS server
-
-#
-# Hardware Settings
-#
-
-#
-# Chip revision
-#
-CONFIG_ESP32C6_REV_MIN_0=y
-# CONFIG_ESP32C6_REV_MIN_1 is not set
-# CONFIG_ESP32C6_REV_MIN_2 is not set
-CONFIG_ESP32C6_REV_MIN_FULL=0
-CONFIG_ESP_REV_MIN_FULL=0
-
-#
-# Maximum Supported ESP32-C6 Revision (Rev v0.99)
-#
-CONFIG_ESP32C6_REV_MAX_FULL=99
-CONFIG_ESP_REV_MAX_FULL=99
-CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0
-CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99
-
-#
-# Maximum Supported ESP32-C6 eFuse Block Revision (eFuse Block Rev v0.99)
-#
-# end of Chip revision
-
-#
-# MAC Config
-#
-CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y
-CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y
-CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4
-# CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_TWO is not set
-CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_FOUR=y
-CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES=4
-# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set
-# end of MAC Config
-
-#
-# Sleep Config
-#
-# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set
-CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y
-# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set
-# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set
-CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000
-# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set
-# CONFIG_ESP_SLEEP_DEBUG is not set
-CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y
-# end of Sleep Config
-
-#
-# RTC Clock Config
-#
-CONFIG_RTC_CLK_SRC_INT_RC=y
-# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set
-# CONFIG_RTC_CLK_SRC_EXT_OSC is not set
-# CONFIG_RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED is not set
-CONFIG_RTC_CLK_CAL_CYCLES=1024
-# end of RTC Clock Config
-
-#
-# Peripheral Control
-#
-CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y
-CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y
-# end of Peripheral Control
-
-#
-# ETM Configuration
-#
-# CONFIG_ETM_ENABLE_DEBUG_LOG is not set
-# end of ETM Configuration
-
-#
-# GDMA Configurations
-#
-CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
-CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y
-CONFIG_GDMA_OBJ_DRAM_SAFE=y
-# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set
-# CONFIG_GDMA_ISR_IRAM_SAFE is not set
-# end of GDMA Configurations
-
-#
-# Main XTAL Config
-#
-CONFIG_XTAL_FREQ_40=y
-CONFIG_XTAL_FREQ=40
-# end of Main XTAL Config
-
-#
-# Power Supplier
-#
-
-#
-# Brownout Detector
-#
-CONFIG_ESP_BROWNOUT_DET=y
-CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
-CONFIG_ESP_BROWNOUT_DET_LVL=7
-CONFIG_ESP_BROWNOUT_USE_INTR=y
-# end of Brownout Detector
-# end of Power Supplier
-
-CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
-CONFIG_ESP_INTR_IN_IRAM=y
-# end of Hardware Settings
-
-#
-# ESP-Driver:LCD Controller Configurations
-#
-# CONFIG_LCD_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:LCD Controller Configurations
-
-#
-# ESP-MM: Memory Management Configurations
-#
-# end of ESP-MM: Memory Management Configurations
-
-#
-# ESP NETIF Adapter
-#
-CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120
-# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set
-CONFIG_ESP_NETIF_TCPIP_LWIP=y
-# CONFIG_ESP_NETIF_LOOPBACK is not set
-CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
-CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y
-# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
-# CONFIG_ESP_NETIF_L2_TAP is not set
-# CONFIG_ESP_NETIF_BRIDGE_EN is not set
-# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set
-# end of ESP NETIF Adapter
-
-#
-# Partition API Configuration
-#
-# end of Partition API Configuration
-
-#
-# PHY
-#
-CONFIG_ESP_PHY_ENABLED=y
-CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
-# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
-CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
-CONFIG_ESP_PHY_MAX_TX_POWER=20
-# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set
-# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set
-CONFIG_ESP_PHY_RF_CAL_PARTIAL=y
-# CONFIG_ESP_PHY_RF_CAL_NONE is not set
-# CONFIG_ESP_PHY_RF_CAL_FULL is not set
-CONFIG_ESP_PHY_CALIBRATION_MODE=0
-CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000
-# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
-# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
-CONFIG_ESP_PHY_IRAM_OPT=y
-# CONFIG_ESP_PHY_DEBUG is not set
-# end of PHY
-
-#
-# Power Management
-#
-CONFIG_PM_SLEEP_FUNC_IN_IRAM=y
-# CONFIG_PM_ENABLE is not set
-CONFIG_PM_SLP_IRAM_OPT=y
-CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
-# CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set
-# end of Power Management
-
-#
-# ESP PSRAM
-#
-
-#
-# ESP Ringbuf
-#
-# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set
-# end of ESP Ringbuf
-
-#
-# ESP-ROM
-#
-CONFIG_ESP_ROM_PRINT_IN_IRAM=y
-# end of ESP-ROM
-
-#
-# ESP Security Specific
-#
-
-#
-# Crypto DPA Protection
-#
-CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y
-CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y
-# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set
-# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set
-CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1
-# end of Crypto DPA Protection
-# end of ESP Security Specific
-
-#
-# ESP System Settings
-#
-# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set
-# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_120 is not set
-CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y
-CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160
-CONFIG_ESP_SYSTEM_IN_IRAM=y
-# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
-CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
-# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
-# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
-CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0
-CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y
-CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y
-CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y
-CONFIG_ESP_SYSTEM_NO_BACKTRACE=y
-# CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set
-# CONFIG_ESP_SYSTEM_USE_FRAME_POINTER is not set
-
-#
-# Memory protection
-#
-CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y
-# CONFIG_ESP_SYSTEM_PMP_LP_CORE_RESERVE_MEM_EXECUTABLE is not set
-# end of Memory protection
-
-CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
-CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
-CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
-# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
-CONFIG_ESP_MAIN_TASK_AFFINITY=0x0
-CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
-CONFIG_ESP_CONSOLE_UART_DEFAULT=y
-# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set
-# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
-# CONFIG_ESP_CONSOLE_NONE is not set
-# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set
-CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
-CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y
-CONFIG_ESP_CONSOLE_UART=y
-CONFIG_ESP_CONSOLE_UART_NUM=0
-CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0
-CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
-CONFIG_ESP_INT_WDT=y
-CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
-CONFIG_ESP_TASK_WDT_EN=y
-CONFIG_ESP_TASK_WDT_INIT=y
-# CONFIG_ESP_TASK_WDT_PANIC is not set
-CONFIG_ESP_TASK_WDT_TIMEOUT_S=5
-CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
-# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
-# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
-# CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS is not set
-CONFIG_ESP_DEBUG_OCDAWARE=y
-CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
-CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y
-CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y
-CONFIG_ESP_SYSTEM_HW_PC_RECORD=y
-# end of ESP System Settings
-
-#
-# IPC (Inter-Processor Call)
-#
-CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
-# end of IPC (Inter-Processor Call)
-
-#
-# ESP Timer (High Resolution Timer)
-#
-CONFIG_ESP_TIMER_IN_IRAM=y
-# CONFIG_ESP_TIMER_PROFILING is not set
-CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
-CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
-CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
-CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
-# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set
-CONFIG_ESP_TIMER_TASK_AFFINITY=0x0
-CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y
-CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y
-# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
-CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
-# end of ESP Timer (High Resolution Timer)
-
-#
-# Wi-Fi
-#
-CONFIG_ESP_WIFI_ENABLED=y
-CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10
-CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
-# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set
-CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y
-CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1
-CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32
-CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y
-# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set
-CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0
-CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5
-# CONFIG_ESP_WIFI_CSI_ENABLED is not set
-CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y
-CONFIG_ESP_WIFI_TX_BA_WIN=6
-CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y
-CONFIG_ESP_WIFI_RX_BA_WIN=6
-CONFIG_ESP_WIFI_NVS_ENABLED=y
-CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752
-CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32
-CONFIG_ESP_WIFI_IRAM_OPT=y
-# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set
-CONFIG_ESP_WIFI_RX_IRAM_OPT=y
-CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y
-CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
-CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y
-CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
-CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
-# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
-CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
-# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set
-CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
-CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
-# CONFIG_ESP_WIFI_FTM_ENABLE is not set
-CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
-# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
-CONFIG_ESP_WIFI_GMAC_SUPPORT=y
-CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
-# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set
-CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7
-CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y
-CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y
-# CONFIG_ESP_WIFI_WAPI_PSK is not set
-# CONFIG_ESP_WIFI_SUITE_B_192 is not set
-# CONFIG_ESP_WIFI_11KV_SUPPORT is not set
-# CONFIG_ESP_WIFI_MBO_SUPPORT is not set
-# CONFIG_ESP_WIFI_DPP_SUPPORT is not set
-# CONFIG_ESP_WIFI_11R_SUPPORT is not set
-# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set
-# CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS is not set
-# CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS is not set
-CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3
-
-#
-# WPS Configuration Options
-#
-# CONFIG_ESP_WIFI_WPS_STRICT is not set
-# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set
-# end of WPS Configuration Options
-
-# CONFIG_ESP_WIFI_DEBUG_PRINT is not set
-# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set
-CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y
-# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set
-# end of Wi-Fi
-
-#
-# Core dump
-#
-# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set
-# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set
-CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
-# end of Core dump
-
-#
-# FAT Filesystem support
-#
-CONFIG_FATFS_VOLUME_COUNT=2
-CONFIG_FATFS_LFN_NONE=y
-# CONFIG_FATFS_LFN_HEAP is not set
-# CONFIG_FATFS_LFN_STACK is not set
-# CONFIG_FATFS_SECTOR_512 is not set
-CONFIG_FATFS_SECTOR_4096=y
-# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set
-CONFIG_FATFS_CODEPAGE_437=y
-# CONFIG_FATFS_CODEPAGE_720 is not set
-# CONFIG_FATFS_CODEPAGE_737 is not set
-# CONFIG_FATFS_CODEPAGE_771 is not set
-# CONFIG_FATFS_CODEPAGE_775 is not set
-# CONFIG_FATFS_CODEPAGE_850 is not set
-# CONFIG_FATFS_CODEPAGE_852 is not set
-# CONFIG_FATFS_CODEPAGE_855 is not set
-# CONFIG_FATFS_CODEPAGE_857 is not set
-# CONFIG_FATFS_CODEPAGE_860 is not set
-# CONFIG_FATFS_CODEPAGE_861 is not set
-# CONFIG_FATFS_CODEPAGE_862 is not set
-# CONFIG_FATFS_CODEPAGE_863 is not set
-# CONFIG_FATFS_CODEPAGE_864 is not set
-# CONFIG_FATFS_CODEPAGE_865 is not set
-# CONFIG_FATFS_CODEPAGE_866 is not set
-# CONFIG_FATFS_CODEPAGE_869 is not set
-# CONFIG_FATFS_CODEPAGE_932 is not set
-# CONFIG_FATFS_CODEPAGE_936 is not set
-# CONFIG_FATFS_CODEPAGE_949 is not set
-# CONFIG_FATFS_CODEPAGE_950 is not set
-CONFIG_FATFS_CODEPAGE=437
-CONFIG_FATFS_FS_LOCK=0
-CONFIG_FATFS_TIMEOUT_MS=10000
-CONFIG_FATFS_PER_FILE_CACHE=y
-# CONFIG_FATFS_USE_FASTSEEK is not set
-CONFIG_FATFS_USE_STRFUNC_NONE=y
-# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set
-# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set
-CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0
-# CONFIG_FATFS_IMMEDIATE_FSYNC is not set
-# CONFIG_FATFS_USE_LABEL is not set
-CONFIG_FATFS_LINK_LOCK=y
-# CONFIG_FATFS_USE_DYN_BUFFERS is not set
-
-#
-# File system free space calculation behavior
-#
-CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0
-CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0
-# end of File system free space calculation behavior
-# end of FAT Filesystem support
-
-#
-# FreeRTOS
-#
-
-#
-# Kernel
-#
-# CONFIG_FREERTOS_SMP is not set
-CONFIG_FREERTOS_UNICORE=y
-CONFIG_FREERTOS_HZ=100
-CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
-# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
-# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
-CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
-CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
-CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
-# CONFIG_FREERTOS_USE_IDLE_HOOK is not set
-# CONFIG_FREERTOS_USE_TICK_HOOK is not set
-CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
-# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
-CONFIG_FREERTOS_USE_TIMERS=y
-CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
-# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set
-CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
-CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
-CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
-CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
-CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
-CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
-# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
-# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set
-# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
-# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set
-# end of Kernel
-
-#
-# Port
-#
-CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
-# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
-CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y
-# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set
-# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set
-CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
-CONFIG_FREERTOS_ISR_STACKSIZE=1536
-CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
-CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y
-CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y
-# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set
-CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y
-# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
-# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
-# end of Port
-
-#
-# Extra
-#
-# end of Extra
-
-CONFIG_FREERTOS_PORT=y
-CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
-CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
-CONFIG_FREERTOS_DEBUG_OCDAWARE=y
-CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
-CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
-CONFIG_FREERTOS_NUMBER_OF_CORES=1
-CONFIG_FREERTOS_IN_IRAM=y
-# end of FreeRTOS
-
-#
-# Hardware Abstraction Layer (HAL) and Low Level (LL)
-#
-CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
-# CONFIG_HAL_ASSERTION_DISABLE is not set
-# CONFIG_HAL_ASSERTION_SILENT is not set
-# CONFIG_HAL_ASSERTION_ENABLE is not set
-CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
-CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y
-CONFIG_HAL_WDT_USE_ROM_IMPL=y
-# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
-
-#
-# Heap memory debugging
-#
-CONFIG_HEAP_POISONING_DISABLED=y
-# CONFIG_HEAP_POISONING_LIGHT is not set
-# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set
-CONFIG_HEAP_TRACING_OFF=y
-# CONFIG_HEAP_TRACING_STANDALONE is not set
-# CONFIG_HEAP_TRACING_TOHOST is not set
-# CONFIG_HEAP_USE_HOOKS is not set
-# CONFIG_HEAP_TASK_TRACKING is not set
-# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
-CONFIG_HEAP_TLSF_USE_ROM_IMPL=y
-# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set
-# end of Heap memory debugging
-
-#
-# IEEE 802.15.4
-#
-CONFIG_IEEE802154_ENABLED=y
-CONFIG_IEEE802154_RX_BUFFER_SIZE=20
-# CONFIG_IEEE802154_CCA_CARRIER is not set
-CONFIG_IEEE802154_CCA_ED=y
-# CONFIG_IEEE802154_CCA_CARRIER_OR_ED is not set
-# CONFIG_IEEE802154_CCA_CARRIER_AND_ED is not set
-CONFIG_IEEE802154_CCA_MODE=1
-CONFIG_IEEE802154_CCA_THRESHOLD=-60
-CONFIG_IEEE802154_PENDING_TABLE_SIZE=20
-# CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set
-CONFIG_IEEE802154_TIMING_OPTIMIZATION=y
-# CONFIG_IEEE802154_DEBUG is not set
-# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set
-# end of IEEE 802.15.4
-
-#
-# Log
-#
-CONFIG_LOG_VERSION_1=y
-# CONFIG_LOG_VERSION_2 is not set
-CONFIG_LOG_VERSION=1
-
-#
-# Log Level
-#
-# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
-# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
-# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
-CONFIG_LOG_DEFAULT_LEVEL_INFO=y
-# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
-# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
-CONFIG_LOG_DEFAULT_LEVEL=3
-CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
-# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
-# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
-CONFIG_LOG_MAXIMUM_LEVEL=3
-
-#
-# Level Settings
-#
-# CONFIG_LOG_MASTER_LEVEL is not set
-CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y
-# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set
-# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set
-CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y
-# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set
-CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y
-CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31
-# end of Level Settings
-# end of Log Level
-
-#
-# Format
-#
-# CONFIG_LOG_COLORS is not set
-CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
-# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
-# end of Format
-
-#
-# Settings
-#
-CONFIG_LOG_MODE_TEXT_EN=y
-CONFIG_LOG_MODE_TEXT=y
-# end of Settings
-
-CONFIG_LOG_IN_IRAM=y
-# end of Log
-
-#
-# LWIP
-#
-CONFIG_LWIP_ENABLE=y
-CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
-CONFIG_LWIP_TCPIP_TASK_PRIO=18
-# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set
-# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set
-CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
-# CONFIG_LWIP_L2_TO_L3_COPY is not set
-# CONFIG_LWIP_IRAM_OPTIMIZATION is not set
-# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set
-CONFIG_LWIP_TIMERS_ONDEMAND=y
-CONFIG_LWIP_ND6=y
-# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set
-CONFIG_LWIP_MAX_SOCKETS=10
-# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set
-# CONFIG_LWIP_SO_LINGER is not set
-CONFIG_LWIP_SO_REUSE=y
-CONFIG_LWIP_SO_REUSE_RXTOALL=y
-# CONFIG_LWIP_SO_RCVBUF is not set
-# CONFIG_LWIP_NETBUF_RECVINFO is not set
-CONFIG_LWIP_IP_DEFAULT_TTL=64
-CONFIG_LWIP_IP4_FRAG=y
-CONFIG_LWIP_IP6_FRAG=y
-# CONFIG_LWIP_IP4_REASSEMBLY is not set
-# CONFIG_LWIP_IP6_REASSEMBLY is not set
-CONFIG_LWIP_IP_REASS_MAX_PBUFS=10
-# CONFIG_LWIP_IP_FORWARD is not set
-# CONFIG_LWIP_STATS is not set
-CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
-CONFIG_LWIP_GARP_TMR_INTERVAL=60
-CONFIG_LWIP_ESP_MLDV6_REPORT=y
-CONFIG_LWIP_MLDV6_TMR_INTERVAL=40
-CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
-CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
-# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set
-# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set
-# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
-CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
-# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
-CONFIG_LWIP_DHCP_OPTIONS_LEN=69
-CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0
-CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1
-
-#
-# DHCP server
-#
-CONFIG_LWIP_DHCPS=y
-CONFIG_LWIP_DHCPS_LEASE_UNIT=60
-CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
-CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y
-CONFIG_LWIP_DHCPS_ADD_DNS=y
-# end of DHCP server
-
-# CONFIG_LWIP_AUTOIP is not set
-CONFIG_LWIP_IPV4=y
-CONFIG_LWIP_IPV6=y
-# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
-CONFIG_LWIP_IPV6_NUM_ADDRESSES=3
-# CONFIG_LWIP_IPV6_FORWARD is not set
-# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
-CONFIG_LWIP_NETIF_LOOPBACK=y
-CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
-
-#
-# TCP
-#
-CONFIG_LWIP_MAX_ACTIVE_TCP=16
-CONFIG_LWIP_MAX_LISTENING_TCP=16
-CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
-CONFIG_LWIP_TCP_MAXRTX=12
-CONFIG_LWIP_TCP_SYNMAXRTX=12
-CONFIG_LWIP_TCP_MSS=1440
-CONFIG_LWIP_TCP_TMR_INTERVAL=250
-CONFIG_LWIP_TCP_MSL=60000
-CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000
-CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760
-CONFIG_LWIP_TCP_WND_DEFAULT=5760
-CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
-CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6
-CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
-CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6
-CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4
-# CONFIG_LWIP_TCP_SACK_OUT is not set
-CONFIG_LWIP_TCP_OVERSIZE_MSS=y
-# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
-# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
-CONFIG_LWIP_TCP_RTO_TIME=1500
-# end of TCP
-
-#
-# UDP
-#
-CONFIG_LWIP_MAX_UDP_PCBS=16
-CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
-# end of UDP
-
-#
-# Checksums
-#
-# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
-# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
-CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
-# end of Checksums
-
-CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
-CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
-# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
-CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
-CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
-CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
-CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5
-CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3
-CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10
-# CONFIG_LWIP_PPP_SUPPORT is not set
-# CONFIG_LWIP_SLIP_SUPPORT is not set
-
-#
-# ICMP
-#
-CONFIG_LWIP_ICMP=y
-# CONFIG_LWIP_MULTICAST_PING is not set
-# CONFIG_LWIP_BROADCAST_PING is not set
-# end of ICMP
-
-#
-# LWIP RAW API
-#
-CONFIG_LWIP_MAX_RAW_PCBS=16
-# end of LWIP RAW API
-
-#
-# SNTP
-#
-CONFIG_LWIP_SNTP_MAX_SERVERS=1
-# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
-CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
-CONFIG_LWIP_SNTP_STARTUP_DELAY=y
-CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000
-# end of SNTP
-
-#
-# DNS
-#
-CONFIG_LWIP_DNS_MAX_HOST_IP=1
-CONFIG_LWIP_DNS_MAX_SERVERS=3
-# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
-# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set
-# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set
-# end of DNS
-
-CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
-CONFIG_LWIP_ESP_LWIP_ASSERT=y
-
-#
-# Hooks
-#
-# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
-CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
-# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
-CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
-# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
-# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
-CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
-# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set
-# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set
-CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
-# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set
-# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set
-CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y
-# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set
-# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set
-CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
-# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
-# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
-CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y
-# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set
-# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set
-CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y
-# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
-# end of Hooks
-
-# CONFIG_LWIP_DEBUG is not set
-# end of LWIP
-
-#
-# mbedTLS
-#
-CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
-# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
-# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
-CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
-# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
-# CONFIG_MBEDTLS_DEBUG is not set
-
-#
-# mbedTLS v3.x related
-#
-# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set
-# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set
-# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
-# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
-CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
-# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set
-CONFIG_MBEDTLS_PKCS7_C=y
-# end of mbedTLS v3.x related
-
-#
-# Certificate Bundle
-#
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
-# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
-# end of Certificate Bundle
-
-# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
-CONFIG_MBEDTLS_CMAC_C=y
-CONFIG_MBEDTLS_HARDWARE_AES=y
-CONFIG_MBEDTLS_AES_USE_INTERRUPT=y
-CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0
-CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y
-CONFIG_MBEDTLS_HARDWARE_MPI=y
-# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set
-CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y
-CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0
-CONFIG_MBEDTLS_HARDWARE_SHA=y
-CONFIG_MBEDTLS_HARDWARE_ECC=y
-CONFIG_MBEDTLS_ECC_OTHER_CURVES_SOFT_FALLBACK=y
-CONFIG_MBEDTLS_ROM_MD5=y
-# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
-# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
-CONFIG_MBEDTLS_HAVE_TIME=y
-# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set
-# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
-CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
-CONFIG_MBEDTLS_SHA1_C=y
-CONFIG_MBEDTLS_SHA512_C=y
-# CONFIG_MBEDTLS_SHA3_C is not set
-CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
-# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
-# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
-# CONFIG_MBEDTLS_TLS_DISABLED is not set
-CONFIG_MBEDTLS_TLS_SERVER=y
-CONFIG_MBEDTLS_TLS_CLIENT=y
-CONFIG_MBEDTLS_TLS_ENABLED=y
-
-#
-# TLS Key Exchange Methods
-#
-# CONFIG_MBEDTLS_PSK_MODES is not set
-CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
-# end of TLS Key Exchange Methods
-
-CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
-CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
-# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set
-# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
-CONFIG_MBEDTLS_SSL_ALPN=y
-CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
-CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
-
-#
-# Symmetric Ciphers
-#
-CONFIG_MBEDTLS_AES_C=y
-# CONFIG_MBEDTLS_CAMELLIA_C is not set
-# CONFIG_MBEDTLS_DES_C is not set
-# CONFIG_MBEDTLS_BLOWFISH_C is not set
-# CONFIG_MBEDTLS_XTEA_C is not set
-CONFIG_MBEDTLS_CCM_C=y
-CONFIG_MBEDTLS_GCM_C=y
-# CONFIG_MBEDTLS_NIST_KW_C is not set
-# end of Symmetric Ciphers
-
-# CONFIG_MBEDTLS_RIPEMD160_C is not set
-
-#
-# Certificates
-#
-CONFIG_MBEDTLS_PEM_PARSE_C=y
-CONFIG_MBEDTLS_PEM_WRITE_C=y
-CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
-CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
-# end of Certificates
-
-CONFIG_MBEDTLS_ECP_C=y
-CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y
-CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y
-# CONFIG_MBEDTLS_DHM_C is not set
-CONFIG_MBEDTLS_ECDH_C=y
-CONFIG_MBEDTLS_ECDSA_C=y
-# CONFIG_MBEDTLS_ECJPAKE_C is not set
-CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
-CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
-# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set
-# CONFIG_MBEDTLS_POLY1305_C is not set
-# CONFIG_MBEDTLS_CHACHA20_C is not set
-# CONFIG_MBEDTLS_HKDF_C is not set
-# CONFIG_MBEDTLS_THREADING_C is not set
-CONFIG_MBEDTLS_ERROR_STRINGS=y
-CONFIG_MBEDTLS_FS_IO=y
-# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set
-# end of mbedTLS
-
-#
-# ESP-MQTT Configurations
-#
-CONFIG_MQTT_PROTOCOL_311=y
-# CONFIG_MQTT_PROTOCOL_5 is not set
-CONFIG_MQTT_TRANSPORT_SSL=y
-CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
-CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
-# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set
-# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set
-# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set
-# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
-# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
-# CONFIG_MQTT_CUSTOM_OUTBOX is not set
-# end of ESP-MQTT Configurations
-
-#
-# LibC
-#
-CONFIG_LIBC_NEWLIB=y
-CONFIG_LIBC_MISC_IN_IRAM=y
-CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y
-CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y
-# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set
-# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set
-# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set
-# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set
-CONFIG_LIBC_STDIN_LINE_ENDING_CR=y
-# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set
-CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y
-# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set
-# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set
-# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set
-# CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS is not set
-# end of LibC
-
-#
-# NVS
-#
-# CONFIG_NVS_ENCRYPTION is not set
-# CONFIG_NVS_ASSERT_ERROR_CHECK is not set
-# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set
-# end of NVS
-
-#
-# OpenThread
-#
-# CONFIG_OPENTHREAD_ENABLED is not set
-
-#
-# OpenThread Spinel
-#
-# CONFIG_OPENTHREAD_SPINEL_ONLY is not set
-# end of OpenThread Spinel
-# end of OpenThread
-
-#
-# Protocomm
-#
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y
-# end of Protocomm
-
-#
-# PThreads
-#
-CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5
-CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
-CONFIG_PTHREAD_STACK_MIN=768
-CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1
-CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread"
-# end of PThreads
-
-#
-# MMU Config
-#
-CONFIG_MMU_PAGE_SIZE_64KB=y
-CONFIG_MMU_PAGE_MODE="64KB"
-CONFIG_MMU_PAGE_SIZE=0x10000
-# end of MMU Config
-
-#
-# Main Flash configuration
-#
-
-#
-# SPI Flash behavior when brownout
-#
-CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y
-CONFIG_SPI_FLASH_BROWNOUT_RESET=y
-# end of SPI Flash behavior when brownout
-
-#
-# Optional and Experimental Features (READ DOCS FIRST)
-#
-
-#
-# Features here require specific hardware (READ DOCS FIRST!)
-#
-# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
-CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
-# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set
-# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set
-CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y
-# end of Optional and Experimental Features (READ DOCS FIRST)
-# end of Main Flash configuration
-
-#
-# SPI Flash driver
-#
-# CONFIG_SPI_FLASH_VERIFY_WRITE is not set
-# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
-CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
-# CONFIG_SPI_FLASH_ROM_IMPL is not set
-CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
-# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
-CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
-CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
-CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
-CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
-# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
-# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
-# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set
-
-#
-# Auto-detect flash chips
-#
-CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y
-CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y
-CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y
-# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set
-# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set
-# end of Auto-detect flash chips
-
-CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
-# end of SPI Flash driver
-
-#
-# SPIFFS Configuration
-#
-CONFIG_SPIFFS_MAX_PARTITIONS=3
-
-#
-# SPIFFS Cache Configuration
-#
-CONFIG_SPIFFS_CACHE=y
-CONFIG_SPIFFS_CACHE_WR=y
-# CONFIG_SPIFFS_CACHE_STATS is not set
-# end of SPIFFS Cache Configuration
-
-CONFIG_SPIFFS_PAGE_CHECK=y
-CONFIG_SPIFFS_GC_MAX_RUNS=10
-# CONFIG_SPIFFS_GC_STATS is not set
-CONFIG_SPIFFS_PAGE_SIZE=256
-CONFIG_SPIFFS_OBJ_NAME_LEN=32
-# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set
-CONFIG_SPIFFS_USE_MAGIC=y
-CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
-CONFIG_SPIFFS_META_LENGTH=4
-CONFIG_SPIFFS_USE_MTIME=y
-
-#
-# Debug Configuration
-#
-# CONFIG_SPIFFS_DBG is not set
-# CONFIG_SPIFFS_API_DBG is not set
-# CONFIG_SPIFFS_GC_DBG is not set
-# CONFIG_SPIFFS_CACHE_DBG is not set
-# CONFIG_SPIFFS_CHECK_DBG is not set
-# CONFIG_SPIFFS_TEST_VISUALISATION is not set
-# end of Debug Configuration
-# end of SPIFFS Configuration
-
-#
-# TCP Transport
-#
-
-#
-# Websocket
-#
-CONFIG_WS_TRANSPORT=y
-CONFIG_WS_BUFFER_SIZE=1024
-# CONFIG_WS_DYNAMIC_BUFFER is not set
-# end of Websocket
-# end of TCP Transport
-
-#
-# Ultra Low Power (ULP) Co-processor
-#
-# CONFIG_ULP_COPROC_ENABLED is not set
-
-#
-# ULP Debugging Options
-#
-# end of ULP Debugging Options
-# end of Ultra Low Power (ULP) Co-processor
-
-#
-# Unity unit testing library
-#
-CONFIG_UNITY_ENABLE_FLOAT=y
-CONFIG_UNITY_ENABLE_DOUBLE=y
-# CONFIG_UNITY_ENABLE_64BIT is not set
-# CONFIG_UNITY_ENABLE_COLOR is not set
-CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
-# CONFIG_UNITY_ENABLE_FIXTURE is not set
-# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set
-# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set
-# end of Unity unit testing library
-
-#
-# Virtual file system
-#
-CONFIG_VFS_SUPPORT_IO=y
-CONFIG_VFS_SUPPORT_DIR=y
-CONFIG_VFS_SUPPORT_SELECT=y
-CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y
-# CONFIG_VFS_SELECT_IN_RAM is not set
-CONFIG_VFS_SUPPORT_TERMIOS=y
-CONFIG_VFS_MAX_COUNT=8
-
-#
-# Host File System I/O (Semihosting)
-#
-CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
-# end of Host File System I/O (Semihosting)
-
-CONFIG_VFS_INITIALIZE_DEV_NULL=y
-# end of Virtual file system
-
-#
-# Wear Levelling
-#
-# CONFIG_WL_SECTOR_SIZE_512 is not set
-CONFIG_WL_SECTOR_SIZE_4096=y
-CONFIG_WL_SECTOR_SIZE=4096
-# end of Wear Levelling
-
-#
-# Wi-Fi Provisioning Manager
-#
-CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
-CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
-CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
-# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
-# end of Wi-Fi Provisioning Manager
-# end of Component config
-
-# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set
-
-# Deprecated options for backward compatibility
-# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set
-# CONFIG_NO_BLOBS is not set
-CONFIG_APP_ROLLBACK_ENABLE=y
-# CONFIG_APP_ANTI_ROLLBACK is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
-CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
-# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
-CONFIG_LOG_BOOTLOADER_LEVEL=3
-# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
-# CONFIG_FLASHMODE_QIO is not set
-# CONFIG_FLASHMODE_QOUT is not set
-CONFIG_FLASHMODE_DIO=y
-# CONFIG_FLASHMODE_DOUT is not set
-CONFIG_MONITOR_BAUD=115200
-CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
-CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
-CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
-# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set
-# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
-CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
-# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
-# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
-CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
-# CONFIG_CXX_EXCEPTIONS is not set
-CONFIG_STACK_CHECK_NONE=y
-# CONFIG_STACK_CHECK_NORM is not set
-# CONFIG_STACK_CHECK_STRONG is not set
-# CONFIG_STACK_CHECK_ALL is not set
-# CONFIG_WARN_WRITE_STRINGS is not set
-# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
-CONFIG_ESP32_APPTRACE_DEST_NONE=y
-CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
-CONFIG_SW_COEXIST_ENABLE=y
-CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
-CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
-# CONFIG_EXTERNAL_COEX_ENABLE is not set
-# CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set
-# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
-# CONFIG_MCPWM_ISR_IRAM_SAFE is not set
-# CONFIG_EVENT_LOOP_PROFILING is not set
-CONFIG_POST_EVENTS_FROM_ISR=y
-CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
-CONFIG_GDBSTUB_SUPPORT_TASKS=y
-CONFIG_GDBSTUB_MAX_TASKS=32
-# CONFIG_OTA_ALLOW_HTTP is not set
-# CONFIG_ESP_SYSTEM_PD_FLASH is not set
-CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
-CONFIG_BROWNOUT_DET=y
-CONFIG_BROWNOUT_DET_LVL_SEL_7=y
-# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
-CONFIG_BROWNOUT_DET_LVL=7
-CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
-CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
-# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
-CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
-CONFIG_ESP32_PHY_MAX_TX_POWER=20
-# CONFIG_REDUCE_PHY_TX_POWER is not set
-# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set
-CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y
-CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
-CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_MAIN_TASK_STACK_SIZE=3584
-CONFIG_CONSOLE_UART_DEFAULT=y
-# CONFIG_CONSOLE_UART_CUSTOM is not set
-# CONFIG_CONSOLE_UART_NONE is not set
-# CONFIG_ESP_CONSOLE_UART_NONE is not set
-CONFIG_CONSOLE_UART=y
-CONFIG_CONSOLE_UART_NUM=0
-CONFIG_CONSOLE_UART_BAUDRATE=115200
-CONFIG_INT_WDT=y
-CONFIG_INT_WDT_TIMEOUT_MS=300
-CONFIG_TASK_WDT=y
-CONFIG_ESP_TASK_WDT=y
-# CONFIG_TASK_WDT_PANIC is not set
-CONFIG_TASK_WDT_TIMEOUT_S=5
-CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
-# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
-CONFIG_IPC_TASK_STACK_SIZE=1024
-CONFIG_TIMER_TASK_STACK_SIZE=3584
-CONFIG_ESP32_WIFI_ENABLED=y
-CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
-CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
-# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
-CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
-CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
-CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
-# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
-CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
-CONFIG_ESP32_WIFI_TX_BA_WIN=6
-CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
-CONFIG_ESP32_WIFI_RX_BA_WIN=6
-CONFIG_ESP32_WIFI_NVS_ENABLED=y
-CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
-CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
-CONFIG_ESP32_WIFI_IRAM_OPT=y
-CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
-CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
-CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y
-CONFIG_WPA_MBEDTLS_CRYPTO=y
-CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
-# CONFIG_WPA_WAPI_PSK is not set
-# CONFIG_WPA_SUITE_B_192 is not set
-# CONFIG_WPA_11KV_SUPPORT is not set
-# CONFIG_WPA_MBO_SUPPORT is not set
-# CONFIG_WPA_DPP_SUPPORT is not set
-# CONFIG_WPA_11R_SUPPORT is not set
-# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set
-# CONFIG_WPA_WPS_STRICT is not set
-# CONFIG_WPA_DEBUG_PRINT is not set
-# CONFIG_WPA_TESTING_OPTIONS is not set
-# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
-# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
-CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
-CONFIG_TIMER_TASK_PRIORITY=1
-CONFIG_TIMER_TASK_STACK_DEPTH=2048
-CONFIG_TIMER_QUEUE_LENGTH=10
-# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
-# CONFIG_HAL_ASSERTION_SILIENT is not set
-# CONFIG_L2_TO_L3_COPY is not set
-CONFIG_ESP_GRATUITOUS_ARP=y
-CONFIG_GARP_TMR_INTERVAL=60
-CONFIG_TCPIP_RECVMBOX_SIZE=32
-CONFIG_TCP_MAXRTX=12
-CONFIG_TCP_SYNMAXRTX=12
-CONFIG_TCP_MSS=1440
-CONFIG_TCP_MSL=60000
-CONFIG_TCP_SND_BUF_DEFAULT=5760
-CONFIG_TCP_WND_DEFAULT=5760
-CONFIG_TCP_RECVMBOX_SIZE=6
-CONFIG_TCP_QUEUE_OOSEQ=y
-CONFIG_TCP_OVERSIZE_MSS=y
-# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
-# CONFIG_TCP_OVERSIZE_DISABLE is not set
-CONFIG_UDP_RECVMBOX_SIZE=6
-CONFIG_TCPIP_TASK_STACK_SIZE=3072
-CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
-# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
-CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
-# CONFIG_PPP_SUPPORT is not set
-CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
-# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
-# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
-# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
-# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
-CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
-# CONFIG_NEWLIB_NANO_FORMAT is not set
-CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set
-CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
-CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
-CONFIG_ESP32_PTHREAD_STACK_MIN=768
-CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
-CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
-CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
-CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
-CONFIG_SUPPORT_TERMIOS=y
-CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
-# End of deprecated options
diff --git a/bootloader/sdkconfig.defaults b/bootloader/sdkconfig.defaults
deleted file mode 100644
index 5244b85..0000000
--- a/bootloader/sdkconfig.defaults
+++ /dev/null
@@ -1,17 +0,0 @@
-# Target can be set with: idf.py set-target esp32|esp32s3|esp32c3|...
-# If not set via idf.py, ESP-IDF may default to a target; it's recommended to set it explicitly.
-
-# Explicitly pin target to ESP32-C6
-CONFIG_IDF_TARGET="esp32c6"
-CONFIG_IDF_TARGET_ESP32C6=y
-CONFIG_IDF_TARGET_ARCH_RISCV=y
-
-# Bootloader configuration
-CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
-CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
-# Slightly faster boot by skipping GPIO checks unless you need that feature
-CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y
-
-# Partition table config is not required to build bootloader, but shown for clarity when you build full app later
-# CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
-# CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
diff --git a/bootloader/sdkconfig.old b/bootloader/sdkconfig.old
deleted file mode 100644
index 37a194f..0000000
--- a/bootloader/sdkconfig.old
+++ /dev/null
@@ -1,2214 +0,0 @@
-#
-# Automatically generated file. DO NOT EDIT.
-# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration
-#
-CONFIG_SOC_ADC_SUPPORTED=y
-CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
-CONFIG_SOC_UART_SUPPORTED=y
-CONFIG_SOC_UHCI_SUPPORTED=y
-CONFIG_SOC_GDMA_SUPPORTED=y
-CONFIG_SOC_AHB_GDMA_SUPPORTED=y
-CONFIG_SOC_GPTIMER_SUPPORTED=y
-CONFIG_SOC_PCNT_SUPPORTED=y
-CONFIG_SOC_MCPWM_SUPPORTED=y
-CONFIG_SOC_TWAI_SUPPORTED=y
-CONFIG_SOC_ETM_SUPPORTED=y
-CONFIG_SOC_PARLIO_SUPPORTED=y
-CONFIG_SOC_BT_SUPPORTED=y
-CONFIG_SOC_IEEE802154_SUPPORTED=y
-CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y
-CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y
-CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y
-CONFIG_SOC_PHY_SUPPORTED=y
-CONFIG_SOC_WIFI_SUPPORTED=y
-CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y
-CONFIG_SOC_ULP_SUPPORTED=y
-CONFIG_SOC_LP_CORE_SUPPORTED=y
-CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y
-CONFIG_SOC_EFUSE_SUPPORTED=y
-CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y
-CONFIG_SOC_RTC_MEM_SUPPORTED=y
-CONFIG_SOC_I2S_SUPPORTED=y
-CONFIG_SOC_RMT_SUPPORTED=y
-CONFIG_SOC_SDM_SUPPORTED=y
-CONFIG_SOC_GPSPI_SUPPORTED=y
-CONFIG_SOC_LEDC_SUPPORTED=y
-CONFIG_SOC_I2C_SUPPORTED=y
-CONFIG_SOC_SYSTIMER_SUPPORTED=y
-CONFIG_SOC_SUPPORT_COEXISTENCE=y
-CONFIG_SOC_AES_SUPPORTED=y
-CONFIG_SOC_MPI_SUPPORTED=y
-CONFIG_SOC_SHA_SUPPORTED=y
-CONFIG_SOC_HMAC_SUPPORTED=y
-CONFIG_SOC_DIG_SIGN_SUPPORTED=y
-CONFIG_SOC_ECC_SUPPORTED=y
-CONFIG_SOC_FLASH_ENC_SUPPORTED=y
-CONFIG_SOC_SECURE_BOOT_SUPPORTED=y
-CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y
-CONFIG_SOC_BOD_SUPPORTED=y
-CONFIG_SOC_APM_SUPPORTED=y
-CONFIG_SOC_PMU_SUPPORTED=y
-CONFIG_SOC_PAU_SUPPORTED=y
-CONFIG_SOC_LP_TIMER_SUPPORTED=y
-CONFIG_SOC_LP_AON_SUPPORTED=y
-CONFIG_SOC_LP_PERIPHERALS_SUPPORTED=y
-CONFIG_SOC_LP_I2C_SUPPORTED=y
-CONFIG_SOC_ULP_LP_UART_SUPPORTED=y
-CONFIG_SOC_CLK_TREE_SUPPORTED=y
-CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y
-CONFIG_SOC_WDT_SUPPORTED=y
-CONFIG_SOC_SPI_FLASH_SUPPORTED=y
-CONFIG_SOC_RNG_SUPPORTED=y
-CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y
-CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y
-CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y
-CONFIG_SOC_PM_SUPPORTED=y
-CONFIG_SOC_XTAL_SUPPORT_40M=y
-CONFIG_SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN=y
-CONFIG_SOC_AES_SUPPORT_DMA=y
-CONFIG_SOC_AES_GDMA=y
-CONFIG_SOC_AES_SUPPORT_AES_128=y
-CONFIG_SOC_AES_SUPPORT_AES_256=y
-CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y
-CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y
-CONFIG_SOC_ADC_MONITOR_SUPPORTED=y
-CONFIG_SOC_ADC_DMA_SUPPORTED=y
-CONFIG_SOC_ADC_PERIPH_NUM=1
-CONFIG_SOC_ADC_MAX_CHANNEL_NUM=7
-CONFIG_SOC_ADC_ATTEN_NUM=4
-CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1
-CONFIG_SOC_ADC_PATT_LEN_MAX=8
-CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12
-CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12
-CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2
-CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2
-CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4
-CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4
-CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333
-CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611
-CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12
-CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12
-CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y
-CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y
-CONFIG_SOC_ADC_CALIB_CHAN_COMPENS_SUPPORTED=y
-CONFIG_SOC_ADC_TEMPERATURE_SHARE_INTR=y
-CONFIG_SOC_ADC_SHARED_POWER=y
-CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y
-CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y
-CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y
-CONFIG_SOC_CPU_CORES_NUM=1
-CONFIG_SOC_CPU_INTR_NUM=32
-CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y
-CONFIG_SOC_INT_PLIC_SUPPORTED=y
-CONFIG_SOC_CPU_HAS_CSR_PC=y
-CONFIG_SOC_CPU_BREAKPOINTS_NUM=4
-CONFIG_SOC_CPU_WATCHPOINTS_NUM=4
-CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000
-CONFIG_SOC_CPU_HAS_PMA=y
-CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y
-CONFIG_SOC_CPU_PMP_REGION_GRANULARITY=4
-CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072
-CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
-CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100
-CONFIG_SOC_AHB_GDMA_VERSION=1
-CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1
-CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=3
-CONFIG_SOC_GDMA_SUPPORT_ETM=y
-CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_ETM_GROUPS=1
-CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50
-CONFIG_SOC_ETM_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_GPIO_PORT=1
-CONFIG_SOC_GPIO_PIN_COUNT=31
-CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y
-CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8
-CONFIG_SOC_GPIO_SUPPORT_ETM=y
-CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y
-CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
-CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y
-CONFIG_SOC_GPIO_IN_RANGE_MAX=30
-CONFIG_SOC_GPIO_OUT_RANGE_MAX=30
-CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
-CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=8
-CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00
-CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y
-CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y
-CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y
-CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y
-CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y
-CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3
-CONFIG_SOC_RTCIO_PIN_COUNT=8
-CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
-CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
-CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
-CONFIG_SOC_RTCIO_EDGE_WAKE_SUPPORTED=y
-CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
-CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
-CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y
-CONFIG_SOC_I2C_NUM=2
-CONFIG_SOC_HP_I2C_NUM=1
-CONFIG_SOC_I2C_FIFO_LEN=32
-CONFIG_SOC_I2C_CMD_REG_NUM=8
-CONFIG_SOC_I2C_SUPPORT_SLAVE=y
-CONFIG_SOC_I2C_SUPPORT_HW_FSM_RST=y
-CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y
-CONFIG_SOC_I2C_SUPPORT_XTAL=y
-CONFIG_SOC_I2C_SUPPORT_RTC=y
-CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y
-CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y
-CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y
-CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y
-CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y
-CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_LP_I2C_NUM=1
-CONFIG_SOC_LP_I2C_FIFO_LEN=16
-CONFIG_SOC_I2S_NUM=1
-CONFIG_SOC_I2S_HW_VERSION_2=y
-CONFIG_SOC_I2S_SUPPORTS_ETM=y
-CONFIG_SOC_I2S_SUPPORTS_XTAL=y
-CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y
-CONFIG_SOC_I2S_SUPPORTS_PCM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
-CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y
-CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2
-CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1
-CONFIG_SOC_I2S_SUPPORTS_TDM=y
-CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y
-CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y
-CONFIG_SOC_LEDC_TIMER_NUM=4
-CONFIG_SOC_LEDC_CHANNEL_NUM=6
-CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20
-CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y
-CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y
-CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16
-CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10
-CONFIG_SOC_LEDC_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MMU_PAGE_SIZE_CONFIGURABLE=y
-CONFIG_SOC_MMU_PAGE_SIZE_8KB_SUPPORTED=y
-CONFIG_SOC_MMU_PERIPH_NUM=1
-CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1
-CONFIG_SOC_MMU_DI_VADDR_SHARED=y
-CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
-CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
-CONFIG_SOC_PCNT_GROUPS=1
-CONFIG_SOC_PCNT_UNITS_PER_GROUP=4
-CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2
-CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2
-CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y
-CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_RMT_GROUPS=1
-CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2
-CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2
-CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4
-CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48
-CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y
-CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y
-CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y
-CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y
-CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y
-CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y
-CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y
-CONFIG_SOC_RMT_SUPPORT_XTAL=y
-CONFIG_SOC_RMT_SUPPORT_RC_FAST=y
-CONFIG_SOC_RMT_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MCPWM_GROUPS=1
-CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3
-CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3
-CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2
-CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2
-CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2
-CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3
-CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y
-CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3
-CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3
-CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y
-CONFIG_SOC_MCPWM_SUPPORT_ETM=y
-CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y
-CONFIG_SOC_MCPWM_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_PARLIO_GROUPS=1
-CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1
-CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1
-CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=16
-CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=16
-CONFIG_SOC_PARLIO_TX_RX_SHARE_INTERRUPT=y
-CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4
-CONFIG_SOC_MPI_OPERATIONS_NUM=3
-CONFIG_SOC_RSA_MAX_BIT_LEN=3072
-CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968
-CONFIG_SOC_SHA_SUPPORT_DMA=y
-CONFIG_SOC_SHA_SUPPORT_RESUME=y
-CONFIG_SOC_SHA_GDMA=y
-CONFIG_SOC_SHA_SUPPORT_SHA1=y
-CONFIG_SOC_SHA_SUPPORT_SHA224=y
-CONFIG_SOC_SHA_SUPPORT_SHA256=y
-CONFIG_SOC_SDM_GROUPS=1
-CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4
-CONFIG_SOC_SDM_CLK_SUPPORT_PLL_F80M=y
-CONFIG_SOC_SDM_CLK_SUPPORT_XTAL=y
-CONFIG_SOC_SPI_PERIPH_NUM=2
-CONFIG_SOC_SPI_MAX_CS_NUM=6
-CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64
-CONFIG_SOC_SPI_SUPPORT_DDRCLK=y
-CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y
-CONFIG_SOC_SPI_SUPPORT_CD_SIG=y
-CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y
-CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
-CONFIG_SOC_SPI_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y
-CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y
-CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y
-CONFIG_SOC_SPI_SCT_SUPPORTED=y
-CONFIG_SOC_SPI_SCT_REG_NUM=14
-CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y
-CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA
-CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
-CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y
-CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y
-CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y
-CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
-CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
-CONFIG_SOC_SYSTIMER_COUNTER_NUM=2
-CONFIG_SOC_SYSTIMER_ALARM_NUM=3
-CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32
-CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20
-CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y
-CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y
-CONFIG_SOC_SYSTIMER_INT_LEVEL=y
-CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y
-CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y
-CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32
-CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16
-CONFIG_SOC_TIMER_GROUPS=2
-CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1
-CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54
-CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
-CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y
-CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2
-CONFIG_SOC_TIMER_SUPPORT_ETM=y
-CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_MWDT_SUPPORT_XTAL=y
-CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_TWAI_CONTROLLER_NUM=2
-CONFIG_SOC_TWAI_MASK_FILTER_NUM=1
-CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y
-CONFIG_SOC_TWAI_BRP_MIN=2
-CONFIG_SOC_TWAI_BRP_MAX=32768
-CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y
-CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y
-CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y
-CONFIG_SOC_EFUSE_DIS_USB_JTAG=y
-CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y
-CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y
-CONFIG_SOC_EFUSE_DIS_ICACHE=y
-CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y
-CONFIG_SOC_SECURE_BOOT_V2_RSA=y
-CONFIG_SOC_SECURE_BOOT_V2_ECC=y
-CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3
-CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y
-CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y
-CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64
-CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y
-CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y
-CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y
-CONFIG_SOC_APM_LP_APM0_SUPPORTED=y
-CONFIG_SOC_APM_SUPPORT_LP_TEE_CTRL=y
-CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y
-CONFIG_SOC_UART_NUM=3
-CONFIG_SOC_UART_HP_NUM=2
-CONFIG_SOC_UART_LP_NUM=1
-CONFIG_SOC_UART_FIFO_LEN=128
-CONFIG_SOC_LP_UART_FIFO_LEN=16
-CONFIG_SOC_UART_BITRATE_MAX=5000000
-CONFIG_SOC_UART_SUPPORT_PLL_F80M_CLK=y
-CONFIG_SOC_UART_SUPPORT_RTC_CLK=y
-CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y
-CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y
-CONFIG_SOC_UART_HAS_LP_UART=y
-CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y
-CONFIG_SOC_UART_WAKEUP_CHARS_SEQ_MAX_LEN=5
-CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y
-CONFIG_SOC_UART_WAKEUP_SUPPORT_FIFO_THRESH_MODE=y
-CONFIG_SOC_UART_WAKEUP_SUPPORT_START_BIT_MODE=y
-CONFIG_SOC_UART_WAKEUP_SUPPORT_CHAR_SEQ_MODE=y
-CONFIG_SOC_UHCI_NUM=1
-CONFIG_SOC_COEX_HW_PTI=y
-CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y
-CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21
-CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12
-CONFIG_SOC_RTC_MEM_SUPPORT_SPEED_MODE_SWITCH=y
-CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_BEACON_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN=y
-CONFIG_SOC_PM_SUPPORT_CPU_PD=y
-CONFIG_SOC_PM_SUPPORT_MODEM_PD=y
-CONFIG_SOC_PM_SUPPORT_XTAL32K_PD=y
-CONFIG_SOC_PM_SUPPORT_RC32K_PD=y
-CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y
-CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y
-CONFIG_SOC_PM_SUPPORT_TOP_PD=y
-CONFIG_SOC_PM_SUPPORT_HP_AON_PD=y
-CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y
-CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y
-CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y
-CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y
-CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y
-CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y
-CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y
-CONFIG_SOC_PM_RETENTION_HAS_CLOCK_BUG=y
-CONFIG_SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN=y
-CONFIG_SOC_PM_PAU_LINK_NUM=4
-CONFIG_SOC_PM_PAU_REGDMA_LINK_MULTI_ADDR=y
-CONFIG_SOC_PM_PAU_REGDMA_LINK_WIFIMAC=y
-CONFIG_SOC_PM_PAU_REGDMA_UPDATE_CACHE_BEFORE_WAIT_COMPARE=y
-CONFIG_SOC_PM_PMU_MIN_SLP_SLOW_CLK_CYCLE_FIXED=y
-CONFIG_SOC_PM_RETENTION_MODULE_NUM=32
-CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y
-CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y
-CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y
-CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y
-CONFIG_SOC_CLK_RC32K_SUPPORTED=y
-CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y
-CONFIG_SOC_RCC_IS_INDEPENDENT=y
-CONFIG_SOC_CLK_ANA_I2C_MST_HAS_ROOT_GATE=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y
-CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_ETM=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION=y
-CONFIG_SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN=y
-CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y
-CONFIG_SOC_WIFI_HW_TSF=y
-CONFIG_SOC_WIFI_FTM_SUPPORT=y
-CONFIG_SOC_WIFI_GCMP_SUPPORT=y
-CONFIG_SOC_WIFI_WAPI_SUPPORT=y
-CONFIG_SOC_WIFI_CSI_SUPPORT=y
-CONFIG_SOC_WIFI_MESH_SUPPORT=y
-CONFIG_SOC_WIFI_HE_SUPPORT=y
-CONFIG_SOC_WIFI_MAC_VERSION_NUM=2
-CONFIG_SOC_BLE_SUPPORTED=y
-CONFIG_SOC_BLE_MESH_SUPPORTED=y
-CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y
-CONFIG_SOC_BLE_50_SUPPORTED=y
-CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y
-CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y
-CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y
-CONFIG_SOC_BLUFI_SUPPORTED=y
-CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
-CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y
-CONFIG_SOC_PHY_COMBO_MODULE=y
-CONFIG_SOC_CAPS_NO_RESET_BY_ANA_BOD=y
-CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y
-CONFIG_SOC_LP_CORE_SUPPORT_ETM=y
-CONFIG_SOC_DEBUG_HAVE_OCD_STUB_BINS=y
-CONFIG_IDF_CMAKE=y
-CONFIG_IDF_TOOLCHAIN="gcc"
-CONFIG_IDF_TOOLCHAIN_GCC=y
-CONFIG_IDF_TARGET_ARCH_RISCV=y
-CONFIG_IDF_TARGET_ARCH="riscv"
-CONFIG_IDF_TARGET="esp32c6"
-CONFIG_IDF_INIT_VERSION="5.5.1"
-CONFIG_IDF_TARGET_ESP32C6=y
-CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D
-
-#
-# Build type
-#
-CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y
-# CONFIG_APP_BUILD_TYPE_RAM is not set
-CONFIG_APP_BUILD_GENERATE_BINARIES=y
-CONFIG_APP_BUILD_BOOTLOADER=y
-CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
-CONFIG_APP_REPRODUCIBLE_BUILD=y
-# CONFIG_APP_NO_BLOBS is not set
-# end of Build type
-
-#
-# Bootloader config
-#
-
-#
-# Bootloader manager
-#
-CONFIG_BOOTLOADER_PROJECT_VER=1
-# end of Bootloader manager
-
-#
-# Application Rollback
-#
-CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
-# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set
-# end of Application Rollback
-
-#
-# Recovery Bootloader and Rollback
-#
-# end of Recovery Bootloader and Rollback
-
-CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0
-CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
-
-#
-# Log
-#
-CONFIG_BOOTLOADER_LOG_VERSION_1=y
-CONFIG_BOOTLOADER_LOG_VERSION=1
-# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set
-CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG=y
-# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
-CONFIG_BOOTLOADER_LOG_LEVEL=4
-
-#
-# Format
-#
-CONFIG_BOOTLOADER_LOG_COLORS=y
-CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y
-# end of Format
-
-#
-# Settings
-#
-CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y
-CONFIG_BOOTLOADER_LOG_MODE_TEXT=y
-# end of Settings
-# end of Log
-
-#
-# Serial Flash Configurations
-#
-# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set
-CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
-# end of Serial Flash Configurations
-
-# CONFIG_BOOTLOADER_FACTORY_RESET is not set
-# CONFIG_BOOTLOADER_APP_TEST is not set
-CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
-CONFIG_BOOTLOADER_WDT_ENABLE=y
-# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
-CONFIG_BOOTLOADER_WDT_TIME_MS=9000
-CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
-CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0x10
-# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
-CONFIG_BOOTLOADER_RESERVE_RTC_MEM=y
-# end of Bootloader config
-
-#
-# Security features
-#
-CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y
-CONFIG_SECURE_BOOT_V2_ECC_SUPPORTED=y
-CONFIG_SECURE_BOOT_V2_PREFERRED=y
-# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set
-# CONFIG_SECURE_BOOT is not set
-# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
-CONFIG_SECURE_ROM_DL_MODE_ENABLED=y
-# end of Security features
-
-#
-# Application manager
-#
-# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
-# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
-# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
-CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9
-# end of Application manager
-
-CONFIG_ESP_ROM_HAS_CRC_LE=y
-CONFIG_ESP_ROM_HAS_CRC_BE=y
-CONFIG_ESP_ROM_HAS_JPEG_DECODE=y
-CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y
-CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3
-CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y
-CONFIG_ESP_ROM_GET_CLK_FREQ=y
-CONFIG_ESP_ROM_HAS_RVFPLIB=y
-CONFIG_ESP_ROM_HAS_HAL_WDT=y
-CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y
-CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y
-CONFIG_ESP_ROM_HAS_HEAP_TLSF=y
-CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y
-CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y
-CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y
-CONFIG_ESP_ROM_HAS_SPI_FLASH=y
-CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y
-CONFIG_ESP_ROM_HAS_REGI2C_BUG=y
-CONFIG_ESP_ROM_HAS_NEWLIB=y
-CONFIG_ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT=y
-CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE=y
-CONFIG_ESP_ROM_WDT_INIT_PATCH=y
-CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y
-CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y
-CONFIG_ESP_ROM_HAS_SW_FLOAT=y
-CONFIG_ESP_ROM_USB_OTG_NUM=-1
-CONFIG_ESP_ROM_HAS_VERSION=y
-CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y
-CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y
-CONFIG_ESP_ROM_NO_USB_SERIAL_OUTPUT_API=y
-CONFIG_ESP_ROM_HAS_SUBOPTIMAL_NEWLIB_ON_MISALIGNED_MEMORY=y
-
-#
-# Boot ROM Behavior
-#
-CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y
-# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set
-# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set
-# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set
-# end of Boot ROM Behavior
-
-#
-# ESP-TEE (Trusted Execution Environment)
-#
-# CONFIG_SECURE_ENABLE_TEE is not set
-CONFIG_SECURE_TEE_LOG_LEVEL=0
-# end of ESP-TEE (Trusted Execution Environment)
-
-#
-# Serial flasher config
-#
-# CONFIG_ESPTOOLPY_NO_STUB is not set
-# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
-# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
-CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
-# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set
-CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y
-CONFIG_ESPTOOLPY_FLASHMODE="dio"
-# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set
-CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
-# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
-CONFIG_ESPTOOLPY_FLASHFREQ="40m"
-# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
-CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
-# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
-CONFIG_ESPTOOLPY_FLASHSIZE="16MB"
-# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set
-CONFIG_ESPTOOLPY_BEFORE_RESET=y
-# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
-CONFIG_ESPTOOLPY_BEFORE="default_reset"
-CONFIG_ESPTOOLPY_AFTER_RESET=y
-# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
-CONFIG_ESPTOOLPY_AFTER="hard_reset"
-CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
-# end of Serial flasher config
-
-#
-# Partition Table
-#
-# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
-# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
-# CONFIG_PARTITION_TABLE_TWO_OTA is not set
-# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set
-CONFIG_PARTITION_TABLE_CUSTOM=y
-CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
-CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
-CONFIG_PARTITION_TABLE_OFFSET=0x8000
-CONFIG_PARTITION_TABLE_MD5=y
-# end of Partition Table
-
-#
-# Compiler options
-#
-CONFIG_COMPILER_OPTIMIZATION_DEBUG=y
-# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
-# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
-# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
-CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
-CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y
-CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y
-# CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB is not set
-CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
-# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
-CONFIG_COMPILER_HIDE_PATHS_MACROS=y
-# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
-# CONFIG_COMPILER_CXX_RTTI is not set
-CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
-# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
-# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
-# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
-# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set
-# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
-# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set
-CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y
-# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set
-# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set
-# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set
-# CONFIG_COMPILER_DUMP_RTL_FILES is not set
-CONFIG_COMPILER_RT_LIB_GCCLIB=y
-CONFIG_COMPILER_RT_LIB_NAME="gcc"
-CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y
-# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set
-# CONFIG_COMPILER_STATIC_ANALYZER is not set
-# end of Compiler options
-
-#
-# Component config
-#
-
-#
-# Application Level Tracing
-#
-# CONFIG_APPTRACE_DEST_JTAG is not set
-CONFIG_APPTRACE_DEST_NONE=y
-# CONFIG_APPTRACE_DEST_UART1 is not set
-# CONFIG_APPTRACE_DEST_UART2 is not set
-CONFIG_APPTRACE_DEST_UART_NONE=y
-CONFIG_APPTRACE_UART_TASK_PRIO=1
-CONFIG_APPTRACE_LOCK_ENABLE=y
-# end of Application Level Tracing
-
-#
-# Bluetooth
-#
-# CONFIG_BT_ENABLED is not set
-
-#
-# Common Options
-#
-# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set
-# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set
-# end of Common Options
-# end of Bluetooth
-
-#
-# Console Library
-#
-# CONFIG_CONSOLE_SORTED_HELP is not set
-# end of Console Library
-
-#
-# Driver Configurations
-#
-
-#
-# Legacy TWAI Driver Configurations
-#
-# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy TWAI Driver Configurations
-
-#
-# Legacy ADC Driver Configuration
-#
-# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set
-
-#
-# Legacy ADC Calibration Configuration
-#
-# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
-# end of Legacy ADC Calibration Configuration
-# end of Legacy ADC Driver Configuration
-
-#
-# Legacy MCPWM Driver Configurations
-#
-# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy MCPWM Driver Configurations
-
-#
-# Legacy Timer Group Driver Configurations
-#
-# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy Timer Group Driver Configurations
-
-#
-# Legacy RMT Driver Configurations
-#
-# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy RMT Driver Configurations
-
-#
-# Legacy I2S Driver Configurations
-#
-# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy I2S Driver Configurations
-
-#
-# Legacy I2C Driver Configurations
-#
-# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy I2C Driver Configurations
-
-#
-# Legacy PCNT Driver Configurations
-#
-# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy PCNT Driver Configurations
-
-#
-# Legacy SDM Driver Configurations
-#
-# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy SDM Driver Configurations
-
-#
-# Legacy Temperature Sensor Driver Configurations
-#
-# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set
-# end of Legacy Temperature Sensor Driver Configurations
-# end of Driver Configurations
-
-#
-# eFuse Bit Manager
-#
-# CONFIG_EFUSE_CUSTOM_TABLE is not set
-# CONFIG_EFUSE_VIRTUAL is not set
-CONFIG_EFUSE_MAX_BLK_LEN=256
-# end of eFuse Bit Manager
-
-#
-# ESP-TLS
-#
-CONFIG_ESP_TLS_USING_MBEDTLS=y
-# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
-CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
-# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
-# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set
-# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set
-# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set
-# CONFIG_ESP_TLS_PSK_VERIFICATION is not set
-# CONFIG_ESP_TLS_INSECURE is not set
-CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y
-# end of ESP-TLS
-
-#
-# ADC and ADC Calibration
-#
-# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set
-# CONFIG_ADC_ENABLE_DEBUG_LOG is not set
-# end of ADC and ADC Calibration
-
-#
-# Wireless Coexistence
-#
-CONFIG_ESP_COEX_ENABLED=y
-CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
-# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
-# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set
-# CONFIG_ESP_COEX_GPIO_DEBUG is not set
-# end of Wireless Coexistence
-
-#
-# Common ESP-related
-#
-CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
-# end of Common ESP-related
-
-#
-# ESP-Driver:GPIO Configurations
-#
-# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
-# end of ESP-Driver:GPIO Configurations
-
-#
-# ESP-Driver:GPTimer Configurations
-#
-CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
-# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set
-CONFIG_GPTIMER_OBJ_CACHE_SAFE=y
-# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:GPTimer Configurations
-
-#
-# ESP-Driver:I2C Configurations
-#
-# CONFIG_I2C_ISR_IRAM_SAFE is not set
-# CONFIG_I2C_ENABLE_DEBUG_LOG is not set
-# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set
-CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y
-# end of ESP-Driver:I2C Configurations
-
-#
-# ESP-Driver:I2S Configurations
-#
-# CONFIG_I2S_ISR_IRAM_SAFE is not set
-# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:I2S Configurations
-
-#
-# ESP-Driver:LEDC Configurations
-#
-# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set
-# end of ESP-Driver:LEDC Configurations
-
-#
-# ESP-Driver:MCPWM Configurations
-#
-CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y
-# CONFIG_MCPWM_ISR_CACHE_SAFE is not set
-# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
-CONFIG_MCPWM_OBJ_CACHE_SAFE=y
-# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:MCPWM Configurations
-
-#
-# ESP-Driver:Parallel IO Configurations
-#
-CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=y
-CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=y
-# CONFIG_PARLIO_TX_ISR_CACHE_SAFE is not set
-# CONFIG_PARLIO_RX_ISR_CACHE_SAFE is not set
-CONFIG_PARLIO_OBJ_CACHE_SAFE=y
-# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set
-# CONFIG_PARLIO_ISR_IRAM_SAFE is not set
-# end of ESP-Driver:Parallel IO Configurations
-
-#
-# ESP-Driver:PCNT Configurations
-#
-# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_PCNT_ISR_IRAM_SAFE is not set
-# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:PCNT Configurations
-
-#
-# ESP-Driver:RMT Configurations
-#
-CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y
-CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y
-CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y
-# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set
-# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set
-# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set
-CONFIG_RMT_OBJ_CACHE_SAFE=y
-# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
-# CONFIG_RMT_ISR_IRAM_SAFE is not set
-# end of ESP-Driver:RMT Configurations
-
-#
-# ESP-Driver:Sigma Delta Modulator Configurations
-#
-# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:Sigma Delta Modulator Configurations
-
-#
-# ESP-Driver:SPI Configurations
-#
-# CONFIG_SPI_MASTER_IN_IRAM is not set
-CONFIG_SPI_MASTER_ISR_IN_IRAM=y
-# CONFIG_SPI_SLAVE_IN_IRAM is not set
-CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
-# end of ESP-Driver:SPI Configurations
-
-#
-# ESP-Driver:Temperature Sensor Configurations
-#
-# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
-# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set
-# end of ESP-Driver:Temperature Sensor Configurations
-
-#
-# ESP-Driver:TWAI Configurations
-#
-# CONFIG_TWAI_ISR_IN_IRAM is not set
-# CONFIG_TWAI_ISR_CACHE_SAFE is not set
-# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:TWAI Configurations
-
-#
-# ESP-Driver:UART Configurations
-#
-# CONFIG_UART_ISR_IN_IRAM is not set
-# end of ESP-Driver:UART Configurations
-
-#
-# ESP-Driver:UHCI Configurations
-#
-# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set
-# CONFIG_UHCI_ISR_CACHE_SAFE is not set
-# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:UHCI Configurations
-
-#
-# ESP-Driver:USB Serial/JTAG Configuration
-#
-CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y
-# end of ESP-Driver:USB Serial/JTAG Configuration
-
-#
-# Ethernet
-#
-CONFIG_ETH_ENABLED=y
-CONFIG_ETH_USE_SPI_ETHERNET=y
-# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set
-# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
-# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set
-# CONFIG_ETH_USE_OPENETH is not set
-# CONFIG_ETH_TRANSMIT_MUTEX is not set
-# end of Ethernet
-
-#
-# Event Loop Library
-#
-# CONFIG_ESP_EVENT_LOOP_PROFILING is not set
-CONFIG_ESP_EVENT_POST_FROM_ISR=y
-CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y
-# end of Event Loop Library
-
-#
-# GDB Stub
-#
-CONFIG_ESP_GDBSTUB_ENABLED=y
-# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set
-CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y
-CONFIG_ESP_GDBSTUB_MAX_TASKS=32
-# end of GDB Stub
-
-#
-# ESP HID
-#
-CONFIG_ESPHID_TASK_SIZE_BT=2048
-CONFIG_ESPHID_TASK_SIZE_BLE=4096
-# end of ESP HID
-
-#
-# ESP HTTP client
-#
-CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
-# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
-# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set
-# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set
-CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000
-# end of ESP HTTP client
-
-#
-# HTTP Server
-#
-CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
-CONFIG_HTTPD_MAX_URI_LEN=512
-CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
-CONFIG_HTTPD_PURGE_BUF_LEN=32
-# CONFIG_HTTPD_LOG_PURGE_DATA is not set
-# CONFIG_HTTPD_WS_SUPPORT is not set
-# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set
-CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000
-# end of HTTP Server
-
-#
-# ESP HTTPS OTA
-#
-# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set
-# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set
-CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000
-# end of ESP HTTPS OTA
-
-#
-# ESP HTTPS server
-#
-# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set
-CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000
-# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set
-# end of ESP HTTPS server
-
-#
-# Hardware Settings
-#
-
-#
-# Chip revision
-#
-CONFIG_ESP32C6_REV_MIN_0=y
-# CONFIG_ESP32C6_REV_MIN_1 is not set
-# CONFIG_ESP32C6_REV_MIN_2 is not set
-CONFIG_ESP32C6_REV_MIN_FULL=0
-CONFIG_ESP_REV_MIN_FULL=0
-
-#
-# Maximum Supported ESP32-C6 Revision (Rev v0.99)
-#
-CONFIG_ESP32C6_REV_MAX_FULL=99
-CONFIG_ESP_REV_MAX_FULL=99
-CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0
-CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99
-
-#
-# Maximum Supported ESP32-C6 eFuse Block Revision (eFuse Block Rev v0.99)
-#
-# end of Chip revision
-
-#
-# MAC Config
-#
-CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y
-CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y
-CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4
-# CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_TWO is not set
-CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_FOUR=y
-CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES=4
-# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set
-# end of MAC Config
-
-#
-# Sleep Config
-#
-# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set
-CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y
-# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set
-# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set
-CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000
-# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set
-# CONFIG_ESP_SLEEP_DEBUG is not set
-CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y
-# end of Sleep Config
-
-#
-# RTC Clock Config
-#
-CONFIG_RTC_CLK_SRC_INT_RC=y
-# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set
-# CONFIG_RTC_CLK_SRC_EXT_OSC is not set
-# CONFIG_RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED is not set
-CONFIG_RTC_CLK_CAL_CYCLES=1024
-# end of RTC Clock Config
-
-#
-# Peripheral Control
-#
-CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y
-CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y
-# end of Peripheral Control
-
-#
-# ETM Configuration
-#
-# CONFIG_ETM_ENABLE_DEBUG_LOG is not set
-# end of ETM Configuration
-
-#
-# GDMA Configurations
-#
-CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
-CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y
-CONFIG_GDMA_OBJ_DRAM_SAFE=y
-# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set
-# CONFIG_GDMA_ISR_IRAM_SAFE is not set
-# end of GDMA Configurations
-
-#
-# Main XTAL Config
-#
-CONFIG_XTAL_FREQ_40=y
-CONFIG_XTAL_FREQ=40
-# end of Main XTAL Config
-
-#
-# Power Supplier
-#
-
-#
-# Brownout Detector
-#
-CONFIG_ESP_BROWNOUT_DET=y
-CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
-CONFIG_ESP_BROWNOUT_DET_LVL=7
-CONFIG_ESP_BROWNOUT_USE_INTR=y
-# end of Brownout Detector
-# end of Power Supplier
-
-CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y
-CONFIG_ESP_INTR_IN_IRAM=y
-# end of Hardware Settings
-
-#
-# ESP-Driver:LCD Controller Configurations
-#
-# CONFIG_LCD_ENABLE_DEBUG_LOG is not set
-# end of ESP-Driver:LCD Controller Configurations
-
-#
-# ESP-MM: Memory Management Configurations
-#
-# end of ESP-MM: Memory Management Configurations
-
-#
-# ESP NETIF Adapter
-#
-CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120
-# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set
-CONFIG_ESP_NETIF_TCPIP_LWIP=y
-# CONFIG_ESP_NETIF_LOOPBACK is not set
-CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
-CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y
-# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
-# CONFIG_ESP_NETIF_L2_TAP is not set
-# CONFIG_ESP_NETIF_BRIDGE_EN is not set
-# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set
-# end of ESP NETIF Adapter
-
-#
-# Partition API Configuration
-#
-# end of Partition API Configuration
-
-#
-# PHY
-#
-CONFIG_ESP_PHY_ENABLED=y
-CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
-# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
-CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
-CONFIG_ESP_PHY_MAX_TX_POWER=20
-# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set
-# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set
-CONFIG_ESP_PHY_RF_CAL_PARTIAL=y
-# CONFIG_ESP_PHY_RF_CAL_NONE is not set
-# CONFIG_ESP_PHY_RF_CAL_FULL is not set
-CONFIG_ESP_PHY_CALIBRATION_MODE=0
-CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000
-# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set
-# CONFIG_ESP_PHY_RECORD_USED_TIME is not set
-CONFIG_ESP_PHY_IRAM_OPT=y
-# CONFIG_ESP_PHY_DEBUG is not set
-# end of PHY
-
-#
-# Power Management
-#
-CONFIG_PM_SLEEP_FUNC_IN_IRAM=y
-# CONFIG_PM_ENABLE is not set
-CONFIG_PM_SLP_IRAM_OPT=y
-CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
-# CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set
-# end of Power Management
-
-#
-# ESP PSRAM
-#
-
-#
-# ESP Ringbuf
-#
-# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set
-# end of ESP Ringbuf
-
-#
-# ESP-ROM
-#
-CONFIG_ESP_ROM_PRINT_IN_IRAM=y
-# end of ESP-ROM
-
-#
-# ESP Security Specific
-#
-
-#
-# Crypto DPA Protection
-#
-CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y
-CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y
-# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set
-# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set
-CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1
-# end of Crypto DPA Protection
-# end of ESP Security Specific
-
-#
-# ESP System Settings
-#
-# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set
-# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_120 is not set
-CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y
-CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160
-CONFIG_ESP_SYSTEM_IN_IRAM=y
-# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
-CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
-# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
-# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
-CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0
-CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y
-CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y
-CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y
-CONFIG_ESP_SYSTEM_NO_BACKTRACE=y
-# CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set
-# CONFIG_ESP_SYSTEM_USE_FRAME_POINTER is not set
-
-#
-# Memory protection
-#
-CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y
-# CONFIG_ESP_SYSTEM_PMP_LP_CORE_RESERVE_MEM_EXECUTABLE is not set
-# end of Memory protection
-
-CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
-CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
-CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
-# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
-CONFIG_ESP_MAIN_TASK_AFFINITY=0x0
-CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
-CONFIG_ESP_CONSOLE_UART_DEFAULT=y
-# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set
-# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
-# CONFIG_ESP_CONSOLE_NONE is not set
-# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set
-CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
-CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y
-CONFIG_ESP_CONSOLE_UART=y
-CONFIG_ESP_CONSOLE_UART_NUM=0
-CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0
-CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
-CONFIG_ESP_INT_WDT=y
-CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
-CONFIG_ESP_TASK_WDT_EN=y
-CONFIG_ESP_TASK_WDT_INIT=y
-# CONFIG_ESP_TASK_WDT_PANIC is not set
-CONFIG_ESP_TASK_WDT_TIMEOUT_S=5
-CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
-# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
-# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
-# CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS is not set
-CONFIG_ESP_DEBUG_OCDAWARE=y
-CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
-CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y
-CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y
-CONFIG_ESP_SYSTEM_HW_PC_RECORD=y
-# end of ESP System Settings
-
-#
-# IPC (Inter-Processor Call)
-#
-CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
-# end of IPC (Inter-Processor Call)
-
-#
-# ESP Timer (High Resolution Timer)
-#
-CONFIG_ESP_TIMER_IN_IRAM=y
-# CONFIG_ESP_TIMER_PROFILING is not set
-CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
-CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
-CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
-CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
-# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set
-CONFIG_ESP_TIMER_TASK_AFFINITY=0x0
-CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y
-CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y
-# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
-CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
-# end of ESP Timer (High Resolution Timer)
-
-#
-# Wi-Fi
-#
-CONFIG_ESP_WIFI_ENABLED=y
-CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10
-CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
-# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set
-CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y
-CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1
-CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32
-CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y
-# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set
-CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0
-CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5
-# CONFIG_ESP_WIFI_CSI_ENABLED is not set
-CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y
-CONFIG_ESP_WIFI_TX_BA_WIN=6
-CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y
-CONFIG_ESP_WIFI_RX_BA_WIN=6
-CONFIG_ESP_WIFI_NVS_ENABLED=y
-CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752
-CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32
-CONFIG_ESP_WIFI_IRAM_OPT=y
-# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set
-CONFIG_ESP_WIFI_RX_IRAM_OPT=y
-CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y
-CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
-CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y
-CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
-CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
-# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
-CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50
-# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set
-CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10
-CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15
-# CONFIG_ESP_WIFI_FTM_ENABLE is not set
-CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
-# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
-CONFIG_ESP_WIFI_GMAC_SUPPORT=y
-CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
-# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set
-CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7
-CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y
-CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y
-# CONFIG_ESP_WIFI_WAPI_PSK is not set
-# CONFIG_ESP_WIFI_SUITE_B_192 is not set
-# CONFIG_ESP_WIFI_11KV_SUPPORT is not set
-# CONFIG_ESP_WIFI_MBO_SUPPORT is not set
-# CONFIG_ESP_WIFI_DPP_SUPPORT is not set
-# CONFIG_ESP_WIFI_11R_SUPPORT is not set
-# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set
-# CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS is not set
-# CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS is not set
-CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3
-
-#
-# WPS Configuration Options
-#
-# CONFIG_ESP_WIFI_WPS_STRICT is not set
-# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set
-# end of WPS Configuration Options
-
-# CONFIG_ESP_WIFI_DEBUG_PRINT is not set
-# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set
-CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y
-# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set
-# end of Wi-Fi
-
-#
-# Core dump
-#
-# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set
-# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set
-CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
-# end of Core dump
-
-#
-# FAT Filesystem support
-#
-CONFIG_FATFS_VOLUME_COUNT=2
-CONFIG_FATFS_LFN_NONE=y
-# CONFIG_FATFS_LFN_HEAP is not set
-# CONFIG_FATFS_LFN_STACK is not set
-# CONFIG_FATFS_SECTOR_512 is not set
-CONFIG_FATFS_SECTOR_4096=y
-# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set
-CONFIG_FATFS_CODEPAGE_437=y
-# CONFIG_FATFS_CODEPAGE_720 is not set
-# CONFIG_FATFS_CODEPAGE_737 is not set
-# CONFIG_FATFS_CODEPAGE_771 is not set
-# CONFIG_FATFS_CODEPAGE_775 is not set
-# CONFIG_FATFS_CODEPAGE_850 is not set
-# CONFIG_FATFS_CODEPAGE_852 is not set
-# CONFIG_FATFS_CODEPAGE_855 is not set
-# CONFIG_FATFS_CODEPAGE_857 is not set
-# CONFIG_FATFS_CODEPAGE_860 is not set
-# CONFIG_FATFS_CODEPAGE_861 is not set
-# CONFIG_FATFS_CODEPAGE_862 is not set
-# CONFIG_FATFS_CODEPAGE_863 is not set
-# CONFIG_FATFS_CODEPAGE_864 is not set
-# CONFIG_FATFS_CODEPAGE_865 is not set
-# CONFIG_FATFS_CODEPAGE_866 is not set
-# CONFIG_FATFS_CODEPAGE_869 is not set
-# CONFIG_FATFS_CODEPAGE_932 is not set
-# CONFIG_FATFS_CODEPAGE_936 is not set
-# CONFIG_FATFS_CODEPAGE_949 is not set
-# CONFIG_FATFS_CODEPAGE_950 is not set
-CONFIG_FATFS_CODEPAGE=437
-CONFIG_FATFS_FS_LOCK=0
-CONFIG_FATFS_TIMEOUT_MS=10000
-CONFIG_FATFS_PER_FILE_CACHE=y
-# CONFIG_FATFS_USE_FASTSEEK is not set
-CONFIG_FATFS_USE_STRFUNC_NONE=y
-# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set
-# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set
-CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0
-# CONFIG_FATFS_IMMEDIATE_FSYNC is not set
-# CONFIG_FATFS_USE_LABEL is not set
-CONFIG_FATFS_LINK_LOCK=y
-# CONFIG_FATFS_USE_DYN_BUFFERS is not set
-
-#
-# File system free space calculation behavior
-#
-CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0
-CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0
-# end of File system free space calculation behavior
-# end of FAT Filesystem support
-
-#
-# FreeRTOS
-#
-
-#
-# Kernel
-#
-# CONFIG_FREERTOS_SMP is not set
-CONFIG_FREERTOS_UNICORE=y
-CONFIG_FREERTOS_HZ=100
-CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
-# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
-# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
-CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
-CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
-CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
-# CONFIG_FREERTOS_USE_IDLE_HOOK is not set
-# CONFIG_FREERTOS_USE_TICK_HOOK is not set
-CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
-# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
-CONFIG_FREERTOS_USE_TIMERS=y
-CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
-# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set
-CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
-CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
-CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
-CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
-CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
-CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
-# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
-# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set
-# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
-# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set
-# end of Kernel
-
-#
-# Port
-#
-CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
-# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
-CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y
-# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set
-# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set
-CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
-CONFIG_FREERTOS_ISR_STACKSIZE=1536
-CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
-CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y
-CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y
-# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set
-CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y
-# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
-# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
-# end of Port
-
-#
-# Extra
-#
-# end of Extra
-
-CONFIG_FREERTOS_PORT=y
-CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
-CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
-CONFIG_FREERTOS_DEBUG_OCDAWARE=y
-CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
-CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
-CONFIG_FREERTOS_NUMBER_OF_CORES=1
-CONFIG_FREERTOS_IN_IRAM=y
-# end of FreeRTOS
-
-#
-# Hardware Abstraction Layer (HAL) and Low Level (LL)
-#
-CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
-# CONFIG_HAL_ASSERTION_DISABLE is not set
-# CONFIG_HAL_ASSERTION_SILENT is not set
-# CONFIG_HAL_ASSERTION_ENABLE is not set
-CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
-CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y
-CONFIG_HAL_WDT_USE_ROM_IMPL=y
-# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
-
-#
-# Heap memory debugging
-#
-CONFIG_HEAP_POISONING_DISABLED=y
-# CONFIG_HEAP_POISONING_LIGHT is not set
-# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set
-CONFIG_HEAP_TRACING_OFF=y
-# CONFIG_HEAP_TRACING_STANDALONE is not set
-# CONFIG_HEAP_TRACING_TOHOST is not set
-# CONFIG_HEAP_USE_HOOKS is not set
-# CONFIG_HEAP_TASK_TRACKING is not set
-# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
-CONFIG_HEAP_TLSF_USE_ROM_IMPL=y
-# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set
-# end of Heap memory debugging
-
-#
-# IEEE 802.15.4
-#
-CONFIG_IEEE802154_ENABLED=y
-CONFIG_IEEE802154_RX_BUFFER_SIZE=20
-# CONFIG_IEEE802154_CCA_CARRIER is not set
-CONFIG_IEEE802154_CCA_ED=y
-# CONFIG_IEEE802154_CCA_CARRIER_OR_ED is not set
-# CONFIG_IEEE802154_CCA_CARRIER_AND_ED is not set
-CONFIG_IEEE802154_CCA_MODE=1
-CONFIG_IEEE802154_CCA_THRESHOLD=-60
-CONFIG_IEEE802154_PENDING_TABLE_SIZE=20
-# CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set
-CONFIG_IEEE802154_TIMING_OPTIMIZATION=y
-# CONFIG_IEEE802154_DEBUG is not set
-# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set
-# end of IEEE 802.15.4
-
-#
-# Log
-#
-CONFIG_LOG_VERSION_1=y
-# CONFIG_LOG_VERSION_2 is not set
-CONFIG_LOG_VERSION=1
-
-#
-# Log Level
-#
-# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
-# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
-# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
-CONFIG_LOG_DEFAULT_LEVEL_INFO=y
-# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
-# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
-CONFIG_LOG_DEFAULT_LEVEL=3
-CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
-# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
-# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
-CONFIG_LOG_MAXIMUM_LEVEL=3
-
-#
-# Level Settings
-#
-# CONFIG_LOG_MASTER_LEVEL is not set
-CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y
-# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set
-# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set
-CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y
-# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set
-CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y
-CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31
-# end of Level Settings
-# end of Log Level
-
-#
-# Format
-#
-# CONFIG_LOG_COLORS is not set
-CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
-# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
-# end of Format
-
-#
-# Settings
-#
-CONFIG_LOG_MODE_TEXT_EN=y
-CONFIG_LOG_MODE_TEXT=y
-# end of Settings
-
-CONFIG_LOG_IN_IRAM=y
-# end of Log
-
-#
-# LWIP
-#
-CONFIG_LWIP_ENABLE=y
-CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
-CONFIG_LWIP_TCPIP_TASK_PRIO=18
-# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set
-# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set
-CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
-# CONFIG_LWIP_L2_TO_L3_COPY is not set
-# CONFIG_LWIP_IRAM_OPTIMIZATION is not set
-# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set
-CONFIG_LWIP_TIMERS_ONDEMAND=y
-CONFIG_LWIP_ND6=y
-# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set
-CONFIG_LWIP_MAX_SOCKETS=10
-# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set
-# CONFIG_LWIP_SO_LINGER is not set
-CONFIG_LWIP_SO_REUSE=y
-CONFIG_LWIP_SO_REUSE_RXTOALL=y
-# CONFIG_LWIP_SO_RCVBUF is not set
-# CONFIG_LWIP_NETBUF_RECVINFO is not set
-CONFIG_LWIP_IP_DEFAULT_TTL=64
-CONFIG_LWIP_IP4_FRAG=y
-CONFIG_LWIP_IP6_FRAG=y
-# CONFIG_LWIP_IP4_REASSEMBLY is not set
-# CONFIG_LWIP_IP6_REASSEMBLY is not set
-CONFIG_LWIP_IP_REASS_MAX_PBUFS=10
-# CONFIG_LWIP_IP_FORWARD is not set
-# CONFIG_LWIP_STATS is not set
-CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
-CONFIG_LWIP_GARP_TMR_INTERVAL=60
-CONFIG_LWIP_ESP_MLDV6_REPORT=y
-CONFIG_LWIP_MLDV6_TMR_INTERVAL=40
-CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
-CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
-# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set
-# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set
-# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
-CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
-# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
-CONFIG_LWIP_DHCP_OPTIONS_LEN=69
-CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0
-CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1
-
-#
-# DHCP server
-#
-CONFIG_LWIP_DHCPS=y
-CONFIG_LWIP_DHCPS_LEASE_UNIT=60
-CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
-CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y
-CONFIG_LWIP_DHCPS_ADD_DNS=y
-# end of DHCP server
-
-# CONFIG_LWIP_AUTOIP is not set
-CONFIG_LWIP_IPV4=y
-CONFIG_LWIP_IPV6=y
-# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
-CONFIG_LWIP_IPV6_NUM_ADDRESSES=3
-# CONFIG_LWIP_IPV6_FORWARD is not set
-# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
-CONFIG_LWIP_NETIF_LOOPBACK=y
-CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
-
-#
-# TCP
-#
-CONFIG_LWIP_MAX_ACTIVE_TCP=16
-CONFIG_LWIP_MAX_LISTENING_TCP=16
-CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
-CONFIG_LWIP_TCP_MAXRTX=12
-CONFIG_LWIP_TCP_SYNMAXRTX=12
-CONFIG_LWIP_TCP_MSS=1440
-CONFIG_LWIP_TCP_TMR_INTERVAL=250
-CONFIG_LWIP_TCP_MSL=60000
-CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000
-CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760
-CONFIG_LWIP_TCP_WND_DEFAULT=5760
-CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
-CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6
-CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
-CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6
-CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4
-# CONFIG_LWIP_TCP_SACK_OUT is not set
-CONFIG_LWIP_TCP_OVERSIZE_MSS=y
-# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
-# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
-CONFIG_LWIP_TCP_RTO_TIME=1500
-# end of TCP
-
-#
-# UDP
-#
-CONFIG_LWIP_MAX_UDP_PCBS=16
-CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
-# end of UDP
-
-#
-# Checksums
-#
-# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
-# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
-CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
-# end of Checksums
-
-CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
-CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
-# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
-CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
-CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
-CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
-CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5
-CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3
-CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10
-# CONFIG_LWIP_PPP_SUPPORT is not set
-# CONFIG_LWIP_SLIP_SUPPORT is not set
-
-#
-# ICMP
-#
-CONFIG_LWIP_ICMP=y
-# CONFIG_LWIP_MULTICAST_PING is not set
-# CONFIG_LWIP_BROADCAST_PING is not set
-# end of ICMP
-
-#
-# LWIP RAW API
-#
-CONFIG_LWIP_MAX_RAW_PCBS=16
-# end of LWIP RAW API
-
-#
-# SNTP
-#
-CONFIG_LWIP_SNTP_MAX_SERVERS=1
-# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
-CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
-CONFIG_LWIP_SNTP_STARTUP_DELAY=y
-CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000
-# end of SNTP
-
-#
-# DNS
-#
-CONFIG_LWIP_DNS_MAX_HOST_IP=1
-CONFIG_LWIP_DNS_MAX_SERVERS=3
-# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set
-# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set
-# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set
-# end of DNS
-
-CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
-CONFIG_LWIP_ESP_LWIP_ASSERT=y
-
-#
-# Hooks
-#
-# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
-CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
-# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
-CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
-# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
-# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
-CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
-# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set
-# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set
-CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
-# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set
-# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set
-CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y
-# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set
-# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set
-CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
-# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
-# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
-CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y
-# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set
-# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set
-CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y
-# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
-# end of Hooks
-
-# CONFIG_LWIP_DEBUG is not set
-# end of LWIP
-
-#
-# mbedTLS
-#
-CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
-# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
-# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
-CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
-# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
-# CONFIG_MBEDTLS_DEBUG is not set
-
-#
-# mbedTLS v3.x related
-#
-# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set
-# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set
-# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
-# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
-CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
-# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set
-CONFIG_MBEDTLS_PKCS7_C=y
-# end of mbedTLS v3.x related
-
-#
-# Certificate Bundle
-#
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
-# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
-# end of Certificate Bundle
-
-# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
-CONFIG_MBEDTLS_CMAC_C=y
-CONFIG_MBEDTLS_HARDWARE_AES=y
-CONFIG_MBEDTLS_AES_USE_INTERRUPT=y
-CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0
-CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y
-CONFIG_MBEDTLS_HARDWARE_MPI=y
-# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set
-CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y
-CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0
-CONFIG_MBEDTLS_HARDWARE_SHA=y
-CONFIG_MBEDTLS_HARDWARE_ECC=y
-CONFIG_MBEDTLS_ECC_OTHER_CURVES_SOFT_FALLBACK=y
-CONFIG_MBEDTLS_ROM_MD5=y
-# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
-# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
-CONFIG_MBEDTLS_HAVE_TIME=y
-# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set
-# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
-CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
-CONFIG_MBEDTLS_SHA1_C=y
-CONFIG_MBEDTLS_SHA512_C=y
-# CONFIG_MBEDTLS_SHA3_C is not set
-CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
-# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
-# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
-# CONFIG_MBEDTLS_TLS_DISABLED is not set
-CONFIG_MBEDTLS_TLS_SERVER=y
-CONFIG_MBEDTLS_TLS_CLIENT=y
-CONFIG_MBEDTLS_TLS_ENABLED=y
-
-#
-# TLS Key Exchange Methods
-#
-# CONFIG_MBEDTLS_PSK_MODES is not set
-CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
-# end of TLS Key Exchange Methods
-
-CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
-CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
-# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set
-# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
-CONFIG_MBEDTLS_SSL_ALPN=y
-CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
-CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
-
-#
-# Symmetric Ciphers
-#
-CONFIG_MBEDTLS_AES_C=y
-# CONFIG_MBEDTLS_CAMELLIA_C is not set
-# CONFIG_MBEDTLS_DES_C is not set
-# CONFIG_MBEDTLS_BLOWFISH_C is not set
-# CONFIG_MBEDTLS_XTEA_C is not set
-CONFIG_MBEDTLS_CCM_C=y
-CONFIG_MBEDTLS_GCM_C=y
-# CONFIG_MBEDTLS_NIST_KW_C is not set
-# end of Symmetric Ciphers
-
-# CONFIG_MBEDTLS_RIPEMD160_C is not set
-
-#
-# Certificates
-#
-CONFIG_MBEDTLS_PEM_PARSE_C=y
-CONFIG_MBEDTLS_PEM_WRITE_C=y
-CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
-CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
-# end of Certificates
-
-CONFIG_MBEDTLS_ECP_C=y
-CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y
-CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y
-# CONFIG_MBEDTLS_DHM_C is not set
-CONFIG_MBEDTLS_ECDH_C=y
-CONFIG_MBEDTLS_ECDSA_C=y
-# CONFIG_MBEDTLS_ECJPAKE_C is not set
-CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
-CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
-# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set
-# CONFIG_MBEDTLS_POLY1305_C is not set
-# CONFIG_MBEDTLS_CHACHA20_C is not set
-# CONFIG_MBEDTLS_HKDF_C is not set
-# CONFIG_MBEDTLS_THREADING_C is not set
-CONFIG_MBEDTLS_ERROR_STRINGS=y
-CONFIG_MBEDTLS_FS_IO=y
-# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set
-# end of mbedTLS
-
-#
-# ESP-MQTT Configurations
-#
-CONFIG_MQTT_PROTOCOL_311=y
-# CONFIG_MQTT_PROTOCOL_5 is not set
-CONFIG_MQTT_TRANSPORT_SSL=y
-CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
-CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
-# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set
-# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set
-# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set
-# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
-# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
-# CONFIG_MQTT_CUSTOM_OUTBOX is not set
-# end of ESP-MQTT Configurations
-
-#
-# LibC
-#
-CONFIG_LIBC_NEWLIB=y
-CONFIG_LIBC_MISC_IN_IRAM=y
-CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y
-CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y
-# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set
-# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set
-# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set
-# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set
-CONFIG_LIBC_STDIN_LINE_ENDING_CR=y
-# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set
-CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y
-# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set
-# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set
-# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set
-# CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS is not set
-# end of LibC
-
-#
-# NVS
-#
-# CONFIG_NVS_ENCRYPTION is not set
-# CONFIG_NVS_ASSERT_ERROR_CHECK is not set
-# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set
-# end of NVS
-
-#
-# OpenThread
-#
-# CONFIG_OPENTHREAD_ENABLED is not set
-
-#
-# OpenThread Spinel
-#
-# CONFIG_OPENTHREAD_SPINEL_ONLY is not set
-# end of OpenThread Spinel
-# end of OpenThread
-
-#
-# Protocomm
-#
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y
-CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y
-# end of Protocomm
-
-#
-# PThreads
-#
-CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5
-CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
-CONFIG_PTHREAD_STACK_MIN=768
-CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1
-CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread"
-# end of PThreads
-
-#
-# MMU Config
-#
-CONFIG_MMU_PAGE_SIZE_64KB=y
-CONFIG_MMU_PAGE_MODE="64KB"
-CONFIG_MMU_PAGE_SIZE=0x10000
-# end of MMU Config
-
-#
-# Main Flash configuration
-#
-
-#
-# SPI Flash behavior when brownout
-#
-CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y
-CONFIG_SPI_FLASH_BROWNOUT_RESET=y
-# end of SPI Flash behavior when brownout
-
-#
-# Optional and Experimental Features (READ DOCS FIRST)
-#
-
-#
-# Features here require specific hardware (READ DOCS FIRST!)
-#
-# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
-CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50
-# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set
-# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set
-CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y
-# end of Optional and Experimental Features (READ DOCS FIRST)
-# end of Main Flash configuration
-
-#
-# SPI Flash driver
-#
-# CONFIG_SPI_FLASH_VERIFY_WRITE is not set
-# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
-CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
-# CONFIG_SPI_FLASH_ROM_IMPL is not set
-CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
-# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
-CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
-CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
-CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
-CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
-# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
-# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
-# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set
-
-#
-# Auto-detect flash chips
-#
-CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y
-CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y
-CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y
-# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set
-# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set
-# end of Auto-detect flash chips
-
-CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
-# end of SPI Flash driver
-
-#
-# SPIFFS Configuration
-#
-CONFIG_SPIFFS_MAX_PARTITIONS=3
-
-#
-# SPIFFS Cache Configuration
-#
-CONFIG_SPIFFS_CACHE=y
-CONFIG_SPIFFS_CACHE_WR=y
-# CONFIG_SPIFFS_CACHE_STATS is not set
-# end of SPIFFS Cache Configuration
-
-CONFIG_SPIFFS_PAGE_CHECK=y
-CONFIG_SPIFFS_GC_MAX_RUNS=10
-# CONFIG_SPIFFS_GC_STATS is not set
-CONFIG_SPIFFS_PAGE_SIZE=256
-CONFIG_SPIFFS_OBJ_NAME_LEN=32
-# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set
-CONFIG_SPIFFS_USE_MAGIC=y
-CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
-CONFIG_SPIFFS_META_LENGTH=4
-CONFIG_SPIFFS_USE_MTIME=y
-
-#
-# Debug Configuration
-#
-# CONFIG_SPIFFS_DBG is not set
-# CONFIG_SPIFFS_API_DBG is not set
-# CONFIG_SPIFFS_GC_DBG is not set
-# CONFIG_SPIFFS_CACHE_DBG is not set
-# CONFIG_SPIFFS_CHECK_DBG is not set
-# CONFIG_SPIFFS_TEST_VISUALISATION is not set
-# end of Debug Configuration
-# end of SPIFFS Configuration
-
-#
-# TCP Transport
-#
-
-#
-# Websocket
-#
-CONFIG_WS_TRANSPORT=y
-CONFIG_WS_BUFFER_SIZE=1024
-# CONFIG_WS_DYNAMIC_BUFFER is not set
-# end of Websocket
-# end of TCP Transport
-
-#
-# Ultra Low Power (ULP) Co-processor
-#
-# CONFIG_ULP_COPROC_ENABLED is not set
-
-#
-# ULP Debugging Options
-#
-# end of ULP Debugging Options
-# end of Ultra Low Power (ULP) Co-processor
-
-#
-# Unity unit testing library
-#
-CONFIG_UNITY_ENABLE_FLOAT=y
-CONFIG_UNITY_ENABLE_DOUBLE=y
-# CONFIG_UNITY_ENABLE_64BIT is not set
-# CONFIG_UNITY_ENABLE_COLOR is not set
-CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
-# CONFIG_UNITY_ENABLE_FIXTURE is not set
-# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set
-# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set
-# end of Unity unit testing library
-
-#
-# Virtual file system
-#
-CONFIG_VFS_SUPPORT_IO=y
-CONFIG_VFS_SUPPORT_DIR=y
-CONFIG_VFS_SUPPORT_SELECT=y
-CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y
-# CONFIG_VFS_SELECT_IN_RAM is not set
-CONFIG_VFS_SUPPORT_TERMIOS=y
-CONFIG_VFS_MAX_COUNT=8
-
-#
-# Host File System I/O (Semihosting)
-#
-CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
-# end of Host File System I/O (Semihosting)
-
-CONFIG_VFS_INITIALIZE_DEV_NULL=y
-# end of Virtual file system
-
-#
-# Wear Levelling
-#
-# CONFIG_WL_SECTOR_SIZE_512 is not set
-CONFIG_WL_SECTOR_SIZE_4096=y
-CONFIG_WL_SECTOR_SIZE=4096
-# end of Wear Levelling
-
-#
-# Wi-Fi Provisioning Manager
-#
-CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
-CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
-CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
-# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
-# end of Wi-Fi Provisioning Manager
-# end of Component config
-
-# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set
diff --git a/rust/.cargo/config.toml b/rust/.cargo/config.toml
deleted file mode 100644
index 2ef7d6e..0000000
--- a/rust/.cargo/config.toml
+++ /dev/null
@@ -1,31 +0,0 @@
-[build]
-rustflags = [
- # Required to obtain backtraces (e.g. when using the "esp-backtrace" crate.)
- # NOTE: May negatively impact performance of produced code
- "-C", "force-frame-pointers",
- "-Z", "stack-protector=all",
- "-C", "link-arg=-Tlinkall.x",
-]
-
-target = "riscv32imac-unknown-none-elf"
-
-[target.riscv32imac-unknown-none-elf]
-#runner = "espflash flash --monitor --bootloader bootloader.bin --chip esp32c6 --baud 921600 --partition-table partitions.csv"
-#runner = "espflash flash --monitor --baud 921600 --partition-table partitions.csv -b no-reset" # Select this runner in case of usb ttl
-#runner = "espflash flash --monitor"
-#runner = "cargo runner"
-
-
-#runner = "espflash flash --monitor --partition-table partitions.csv -b no-reset" # create upgrade image file for webupload
-# runner = espflash erase-parts otadata //ensure flash is clean
-
-[env]
-CHRONO_TZ_TIMEZONE_FILTER = "UTC|America/New_York|America/Chicago|America/Los_Angeles|Europe/London|Europe/Berlin|Europe/Paris|Asia/Tokyo|Asia/Shanghai|Asia/Kolkata|Australia/Sydney|America/Sao_Paulo|Africa/Johannesburg|Asia/Dubai|Pacific/Auckland"
-CARGO_WORKSPACE_DIR = { value = "", relative = true }
-ESP_LOG = "info"
-
-
-
-[unstable]
-build-std = ["alloc", "core"]
-
diff --git a/rust/.idea/.gitignore b/rust/.idea/.gitignore
deleted file mode 100644
index 13566b8..0000000
--- a/rust/.idea/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/rust/.idea/dictionaries/project.xml b/rust/.idea/dictionaries/project.xml
deleted file mode 100644
index 4a91c7a..0000000
--- a/rust/.idea/dictionaries/project.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- boardtest
- buildtime
- deepsleep
- githash
- lamptest
- lightstate
- mppt
- plantstate
- pumptest
- sntp
- vergen
- wifiscan
-
-
-
\ No newline at end of file
diff --git a/rust/.idea/inspectionProfiles/Project_Default.xml b/rust/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 656b6be..0000000
--- a/rust/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/rust/.idea/modules.xml b/rust/.idea/modules.xml
deleted file mode 100644
index 21353ec..0000000
--- a/rust/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/rust/.idea/plant-ctrl2.iml b/rust/.idea/plant-ctrl2.iml
deleted file mode 100644
index cf84ae4..0000000
--- a/rust/.idea/plant-ctrl2.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/rust/.idea/vcs.xml b/rust/.idea/vcs.xml
deleted file mode 100644
index a3c3c7c..0000000
--- a/rust/.idea/vcs.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/rust/Cargo.toml b/rust/Cargo.toml
deleted file mode 100644
index ffae5fe..0000000
--- a/rust/Cargo.toml
+++ /dev/null
@@ -1,162 +0,0 @@
-[package]
-edition = "2021"
-name = "plant-ctrl2"
-rust-version = "1.86"
-version = "0.1.0"
-
-# Explicitly configure the binary target and disable building it as a test/bench.
-[[bin]]
-name = "plant-ctrl2"
-path = "src/main.rs"
-# Prevent IDEs/Cargo from trying to compile a test harness for this no_std binary.
-test = false
-bench = false
-doc = false
-
-#this strips the bootloader, we need that tho
-#strip = true
-
-[profile.dev]
-lto = "fat"
-debug = false
-overflow-checks = true
-panic = "abort"
-incremental = true
-opt-level = "z"
-
-[profile.release]
-lto = "fat"
-#debug = false
-overflow-checks = true
-panic = "abort"
-incremental = false
-opt-level = "z"
-
-[package.metadata.espflash]
-partition_table = "partitions.csv"
-
-
-[dependencies]
-# Shared CAN API
-canapi = { path = "canapi" }
-#ESP stuff
-esp-bootloader-esp-idf = { version = "0.2.0", features = ["esp32c6"] }
-esp-hal = { version = "=1.0.0-rc.0", features = [
- "esp32c6",
- "log-04",
- "unstable",
- "rt"
-] }
-log = "0.4.27"
-
-embassy-net = { version = "0.7.1", default-features = false, features = [
- "dhcpv4",
- "log",
- "medium-ethernet",
- "tcp",
- "udp",
- "proto-ipv4",
- "dns"
-] }
-embedded-io = "0.6.1"
-embedded-io-async = "0.6.1"
-esp-alloc = "0.8.0"
-esp-backtrace = { version = "0.17.0", features = [
- "esp32c6",
- "exception-handler",
- "panic-handler",
- "println",
- "colors",
- "custom-halt"
-] }
-esp-println = { version = "0.15.0", features = ["esp32c6", "log-04"] }
-# for more networking protocol support see https://crates.io/crates/edge-net
-embassy-executor = { version = "0.7.0", features = [
- "log",
- "task-arena-size-64",
- "nightly"
-] }
-embassy-time = { version = "0.5.0", features = ["log"], default-features = false }
-esp-hal-embassy = { version = "0.9.0", features = ["esp32c6", "log-04"] }
-esp-storage = { version = "0.7.0", features = ["esp32c6"] }
-
-esp-wifi = { version = "0.15.0", features = [
- "builtin-scheduler",
- "esp-alloc",
- "esp32c6",
- "log-04",
- "smoltcp",
- "wifi",
-] }
-smoltcp = { version = "0.12.0", default-features = false, features = [
- "alloc",
- "log",
- "medium-ethernet",
- "multicast",
- "proto-dhcpv4",
- "proto-ipv6",
- "proto-dns",
- "proto-ipv4",
- "socket-dns",
- "socket-icmp",
- "socket-raw",
- "socket-tcp",
- "socket-udp",
-] }
-#static_cell = "2.1.1"
-embedded-hal = "1.0.0"
-embedded-hal-bus = { version = "0.3.0" }
-
-#Hardware additional driver
-
-#bq34z100 = { version = "0.3.0", default-features = false }
-onewire = "0.4.0"
-#strum = { version = "0.27.0", default-feature = false, features = ["derive"] }
-measurements = "0.11.0"
-ds323x = "0.6.0"
-
-#json
-serde = { version = "1.0.219", features = ["derive", "alloc"], default-features = false }
-serde_json = { version = "1.0.143", default-features = false, features = ["alloc"] }
-
-chrono = { version = "0.4.42", default-features = false, features = ["iana-time-zone", "alloc", "serde"] }
-chrono-tz = { version = "0.10.4", default-features = false, features = ["filter-by-regex"] }
-eeprom24x = "0.7.2"
-crc = "3.2.1"
-strum_macros = "0.27.0"
-unit-enum = "1.4.1"
-pca9535 = { version = "2.0.0" }
-ina219 = { version = "0.2.0" }
-embedded-storage = "=0.3.1"
-portable-atomic = "1.11.1"
-embassy-sync = { version = "0.7.2", features = ["log"] }
-async-trait = "0.1.89"
-bq34z100 = { version = "0.4.0", default-features = false }
-edge-dhcp = "0.6.0"
-edge-nal = "0.5.0"
-edge-nal-embassy = "0.6.0"
-static_cell = "2.1.1"
-edge-http = { version = "0.6.1", features = ["log"] }
-littlefs2 = { version = "0.6.1", features = ["c-stubs", "alloc"] }
-littlefs2-core = "0.1.1"
-bytemuck = { version = "1.23.2", features = ["derive", "min_const_generics", "pod_saturating", "extern_crate_alloc"] }
-deranged = "0.5.3"
-embassy-embedded-hal = "0.5.0"
-bincode = { version = "2.0.1", default-features = false, features = ["derive"] }
-sntpc = { version = "0.6.0", default-features = false, features = ["log", "embassy-socket", "embassy-socket-ipv6"] }
-option-lock = { version = "0.3.1", default-features = false }
-
-#stay in sync with mcutie version here!
-heapless = { version = "0.7.17", features = ["serde"] }
-mcutie = { version = "0.3.0", default-features = false, features = ["log", "homeassistant"] }
-nb = "1.1.0"
-embedded-can = "0.4.1"
-
-
-
-[patch.crates-io]
-mcutie = { git = 'https://github.com/empirephoenix/mcutie.git' }
-#bq34z100 = { path = "../../bq34z100_rust" }
-
-[build-dependencies]
-vergen = { version = "8.2.6", features = ["build", "git", "gitcl"] }
diff --git a/rust/all.sh b/rust/all.sh
deleted file mode 100755
index 7f046eb..0000000
--- a/rust/all.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-rm ./src/webserver/index.html.gz
-rm ./src/webserver/bundle.js.gz
-set -e
-cd ./src_webpack/
-npx webpack build
-cp index.html.gz ../src/webserver/index.html.gz
-cp bundle.js.gz ../src/webserver/bundle.js.gz
-cd ../
-
-cargo build --release
-espflash save-image --bootloader bootloader.bin --partition-table partitions.csv --chip esp32c6 target/riscv32imac-unknown-none-elf/release/plant-ctrl2 image.bin
-espflash flash --monitor --bootloader bootloader.bin --chip esp32c6 --baud 921600 --partition-table partitions.csv target/riscv32imac-unknown-none-elf/release/plant-ctrl2
diff --git a/rust/bootloader.bin b/rust/bootloader.bin
deleted file mode 100644
index 5daa405..0000000
Binary files a/rust/bootloader.bin and /dev/null differ
diff --git a/rust/bq34z100_golden_image/0100_2_02-bq34z100.bq.fs b/rust/bq34z100_golden_image/0100_2_02-bq34z100.bq.fs
deleted file mode 100644
index 1cf82f3..0000000
--- a/rust/bq34z100_golden_image/0100_2_02-bq34z100.bq.fs
+++ /dev/null
@@ -1,2230 +0,0 @@
-;--------------------------------------------------------
-;Unseal device
-;--------------------------------------------------------
-W: AA 00 14 04
-W: AA 00 72 36
-W: AA 00 FF FF
-W: AA 00 FF FF
-X: 1000
-;--------------------------------------------------------
-;Go To ROM Mode
-;--------------------------------------------------------
-W: AA 00 00 0F
-X: 1000
-;--------------------------------------------------------
-;Data Block
-;--------------------------------------------------------
-W: 16 00 04 00 00 00 83 DE
-W: 16 64 65 01
-X: 400
-C: 16 66 00
-W: 16 00 02 00 00 00 EA FF 33 FA FA 33 B5 FB 33 95 FE 33 AD FE 33 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F 02 02 3F 58 CB 33 C3 A0 08 1F 00 00 00 00 00 FF AA 0E FB A7 0E FF A6 0E FF A1 0E FF A0 0E FE A3 0E 54 A2 0E DE FF 3A 67 FF 3A E2 FF 33 FF AF 0E
-W: 16 64 3D 38
-X: 2
-C: 16 66 00
-W: 16 00 02 01 00 00 01 4F 03 3F 11 0C D9 FF 30 E0 FF 35 2F 10 0C E0 FF 35 FF FF 23 E3 AF 04 E2 BF 04 D1 FF 36 E2 A0 04 E3 A1 04 00 C7 02 01 C6 02 E5 AF 04 E3 BF 01 E4 AF 04 E2 BF 01 FF AC 0E E1 1C 04 8A FF 31 E2 A0 04 E3 A1 04 02 AB 18 7F 2B 0E FF 1B 0E BF FF 32 FC FA 0E FB AF 0C 02 2B 18 FF 1B 0E 98 FF 36
-W: 16 64 AE 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 02 00 00 02 AF 18 7F BF 0E 02 CF 02 00 A7 18 01 A6 18 02 AB 18 DF 2B 0E FF 1B 0E AA FF 36 01 A5 16 01 A4 16 01 A9 16 01 A8 16 02 AB 18 20 2B 0E 02 CB 02 BF 2B 0E FF 1B 0E 77 FF 32 DF BA 0E 77 FF 33 01 A9 16 01 A8 16 FF FF 2D 01 AB 16 01 AC 16 01 AD 16 01 AE 16 01 A5 16 01 A4 16 01 A3 16 01 A2 16
-W: 16 64 EB 1E
-X: 2
-C: 16 66 00
-W: 16 00 02 03 00 00 01 A1 16 01 A0 16 01 A9 16 01 A8 16 01 AF 17 01 AF 16 FF 1F 3F 02 AB 18 BF 2B 0E FF 1B 0E 92 FF 32 00 A7 18 01 A6 18 E2 AF 04 FC CF 0E E2 BF 01 E3 5F 05 E3 BF 01 CC 1F 0D E1 1C 04 CA FF 35 E3 FF 00 E2 FF 00 E0 BB 05 FE 1B 0E 7D FF 30 F7 AB 0E E0 AF 04 FE 1F 0E 80 FF 32 F5 AB 0E AF A0 0E
-W: 16 64 54 29
-X: 2
-C: 16 66 00
-W: 16 00 02 04 00 00 7F A1 0E 00 CB 02 DF BA 0E FF DF 0B 20 2A 0E DF FA 0E 7B FF 32 D1 FF 33 FF FF 23 20 2A 0E DF FA 0E 76 FF 32 E2 A0 04 E3 A1 04 02 AB 18 80 2B 0E DF BF 0E 02 CF 02 FF 78 03 FF 79 03 FF 74 03 FF 75 03 D8 FF 33 FF FF 23 96 F7 39 FE AF 16 E5 FF 00 E4 FF 00 C1 AB 0E E2 7F 3A D3 BC 01 8E A0 0E
-W: 16 64 CF 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 05 00 00 7F A1 0E 00 AF 18 D4 BF 01 AD 1C 0E 53 FF 36 9E 1C 0E 53 FF 36 9A 1C 0E 53 FF 36 03 1C 0E 53 FF 36 FB 7F 3A D3 FA 3A DD FE 00 FF AF 0E 00 FF 02 01 FF 02 FF AC 0E FF AB 0E CE AF 0C BD AF 0C F0 FD 3A DD FF 00 AF A0 0E 7F A1 0E F4 AF 0E 00 CF 02 7F BA 0E 40 2A 0E 3C FF 3A FE AC 0E FF AB 0E
-W: 16 64 BB 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 06 00 00 02 AF 16 93 F7 39 FF FF 23 96 F7 39 00 FF 3A 93 F7 39 FF FF 23 96 F7 39 FD AF 16 C8 AF 0C B9 AF 0C 20 2A 0E DF FA 0E 34 FF 32 DF AB 04 EF 2B 0E FF BD 0C DF BF 01 E0 AF 04 0B 2F 0E E0 BF 01 FD AF 0E 00 FF 02 00 AF 0E 01 FF 02 5F AF 0E 02 FF 02 FD AB 0E 9C AF 0C 8D AF 0C 1A FF 3A E3 FF 00
-W: 16 64 74 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 07 00 00 E2 FF 00 D8 FF 3A 03 AF 16 93 F7 39 FF FF 23 FF 74 03 96 F7 39 D8 AF 0C C9 AF 0C 04 AE 1E 03 AD 1E 05 A4 1E FC EB 0E FC AF 0C C2 AF 0C 63 C2 0E B3 AF 0C FF D3 0E E0 AF 0C 01 C0 0E D1 FF 0D 00 C9 02 01 C8 02 03 CE 0E 01 DE 02 DF FF 0D 00 DF 02 02 D4 02 93 F7 39 01 A4 16 FF FF 23 96 F7 39
-W: 16 64 AF 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 08 00 00 FD AF 16 20 2A 0E DF FA 0E FE FE 32 D0 FE 3A E0 FF 00 FF AF 0E E5 BF 01 63 AF 0E E4 BF 01 E1 FC 00 FB AF 0E 00 FF 02 FF AF 0E 01 FF 02 1F AF 0E 02 FF 02 FF AB 0E D2 AC 0E 7C AD 0E 1A FF 3A FC AF 0E 00 FF 02 A2 AF 0E 01 FF 02 5E AF 0E 02 FF 02 FE AB 0E DC AC 0E 9A AD 0E 1A FF 3A FD AF 0E
-W: 16 64 2E 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 09 00 00 00 FF 02 00 AF 0E 01 FF 02 5F AF 0E 02 FF 02 FD AB 0E EF AC 0E B9 AD 0E 1A FF 3A E3 FF 00 E2 FF 00 D8 FF 3A 03 AF 16 93 F7 39 FF FF 23 FF A2 0E 7F A3 0E 70 AB 1A F0 2B 0E 70 DB 02 71 AB 1A FF AF 0E 71 DF 02 72 AB 1A 70 2B 0E 72 DB 02 FF AF 0E 40 DF 02 FF AF 0E 30 DF 02 BE A1 0E 3B A0 0E
-W: 16 64 8D 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 0A 00 00 01 AB 18 FD 2B 0E FF 1B 0E B9 FE 36 FD AF 0E 31 DF 02 91 AB 1A 1A 2B 0E 91 DB 02 1A AF 0E 90 DF 02 00 AF 0E 61 DF 02 60 AB 1A 02 2B 0E 60 DB 02 03 2A 0E FF FF 23 96 F7 39 04 2A 0E FB FA 0E FB AF 0C FF 1B 0E A6 FE 32 76 FF 3A E0 AF 04 FE 1F 0E 97 FE 32 BE A1 0E 2F A0 0E 0B AF 18 9D FE 36
-W: 16 64 18 28
-X: 2
-C: 16 66 00
-W: 16 00 02 0B 00 00 A1 FF 00 98 FE 33 FF A1 0E 2D A0 0E 01 AF 18 20 2F 0E 01 CF 02 E0 FF 00 93 F7 39 FF FF 23 FF 7F 03 FF AF 0C FF 7F 0B FF 7F 03 FF 78 03 FF 79 03 FF 70 03 FF 71 03 FF 72 03 FF 73 03 FF 74 03 FF 75 03 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF BF 3E FF 78 03 FF 79 03 EF A0 0E 7F A1 0E 03 AB 18
-W: 16 64 2A 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 0C 00 00 7F 2B 0E FF 1B 0E 76 FE 36 04 AB 18 7F BB 0E 04 CB 02 04 AB 18 80 2B 0E 04 CB 02 FF A1 0E 63 A0 0E 02 AF 18 7F BF 0E 02 CF 02 D8 FF 33 FF FF 23 96 F7 39 FF AB 0E FE AC 0E 7E DB 3A 93 F7 39 FF FF 23 96 F7 39 FF AB 0E BC AF 0C 7E DB 3A CF A0 0E 7F A1 0E 01 AB 18 08 2B 0E 01 CB 02 82 AF 04
-W: 16 64 83 29
-X: 2
-C: 16 66 00
-W: 16 00 02 0D 00 00 59 FE 36 8F A0 0E 7F A1 0E 02 AB 18 02 2B 0E 02 CB 02 93 F7 39 FF FF 23 A8 F7 39 FE AF 16 E4 AF 0C D5 AF 0C FF AF 0E 01 FF 02 FB AF 0E 00 FF 02 BE 7F 3A EF AF 0E 01 FF 02 D8 AF 0E 00 FF 02 5D AF 0C 4E AF 0C BE 7F 3A 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FA AF 16 00 FB 02 01 FC 02 0B A8 1E
-W: 16 64 6D 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 0E 00 00 0A A9 1E CD AC 04 CE AB 04 DC 7F 39 DE AF 0C CD AF 0C BC AF 0C FE 6B 0E E4 AF 0C D5 AF 0C FE A1 0E 9F A0 0E 20 C4 18 1F D5 18 9C AF 0C 8D AF 0C FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 7F 88 0E CB AD 04 CC AC 04 FE AF 0E D2 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C
-W: 16 64 53 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 0F 00 00 8C AF 0C 1D AF 0C 0E AF 0C D5 7F 39 04 AF 16 C5 7F 3A 02 FB 02 03 FC 02 04 FD 02 05 FE 02 5C AF 0C 4D AF 0C FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 01 14 1E FC AF 0C 00 AB 1E 5B 7B 0C CD AF 0C BC AF 0C FE AF 0E D2 7F 39 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03
-W: 16 64 29 27
-X: 2
-C: 16 66 00
-W: 16 00 02 10 00 00 05 AF 1E FF 7F 03 D9 7F 39 04 AF 16 FF 70 03 FF 71 03 96 F7 39 D4 7F 39 04 AF 16 D1 7F 39 DB AF 0C EC AF 0C 06 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F8 AF 16 02 FB 02 03 FC 02 04 FD 02 05 FE 02 DD FB 3A FF 1C 0E 65 FD 36 CC FA 3A 00 FD 3A FF 1C 0E E1 FD 32 D2 FE 00 66 FD 33 0C AB 1E FC 2B 0E
-W: 16 64 94 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 11 00 00 0D AC 1E F7 EC 0E F7 6B 0E FC BC 0C 01 2C 0E 06 FC 02 0D A5 1E C0 25 0E 02 AF 1E 03 BF 1E 66 FD 36 BF 15 0E 07 FF 02 07 AC 1E FF AB 0E 02 1B 1E CD FD 32 03 1C 1E CA FD 34 03 AF 1E 07 FF 02 06 AE 1E FF AD 0E DF EE 0E FF 7F 03 DF ED 0E ED BF 0C 01 AE 16 BF BD 0E 0C FD 02 0D FE 02 E3 AB 0E
-W: 16 64 90 26
-X: 2
-C: 16 66 00
-W: 16 00 02 12 00 00 EB 7F 3A 0C AF 1E 00 FF 02 0D AF 1E 01 FF 02 E3 AB 0E FF AC 0E 5D AF 0C 57 FC 3A 0C AF 1E 00 FF 02 0D AF 1E 01 FF 02 E3 AB 0E FF AC 0E 5D AF 0C FC FB 3A FF 1C 0E E3 FD 36 04 AF 1E 00 FF 02 05 AF 1E 01 FF 02 E3 AB 0E 5C AF 0C 07 AD 1E 57 FC 3A 04 AF 1E 00 FF 02 05 AF 1E 01 FF 02 E3 AB 0E
-W: 16 64 F5 26
-X: 2
-C: 16 66 00
-W: 16 00 02 13 00 00 5C AF 0C 07 AD 1E FC FB 3A FF 1C 0E E3 FD 36 07 C5 1E 5C AF 0C FF AB 0E 0D CC 1E 0D FC 02 0C DB 1E 0C FB 02 54 AF 0C BF 44 0E 0C AF 1E 00 FF 02 0D AF 1E 01 FF 02 E3 AB 0E 5C AF 0C 4D AF 0C 57 FC 3A 0C AF 1E 00 FF 02 0D AF 1E 01 FF 02 E3 AB 0E 5C AF 0C 4D AF 0C FC FB 3A FF 1C 0E E3 FD 36
-W: 16 64 36 27
-X: 2
-C: 16 66 00
-W: 16 00 02 14 00 00 06 AB 1E C6 FC 3A FF 1C 0E E3 FD 36 00 FD 3A FF 1C 0E E3 FD 36 07 AC 1E FF AB 0E 03 1C 1E 03 FF 02 02 AF 1E BF 7F 0C 02 FF 02 05 CC 1E 05 FC 02 04 DB 1E 04 FB 02 06 AF 1E FD CF 0E 06 FF 02 FF A5 0E 02 AF 1E 03 BF 1E D4 FD 32 C5 FA 3A 08 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FC AF 16 02 FB 02
-W: 16 64 D6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 15 00 00 D4 AF 0C C5 AF 0C 03 FE 02 DD FB 3A FF 1C 0E 4A FD 36 00 F5 02 01 F4 02 03 AB 1E 08 AC 1E 02 AD 1E ED 7F 3A 00 F5 02 01 F4 02 03 AB 1E 08 AC 1E 02 AD 1E FC FB 3A FF 1C 0E 4A FD 32 D2 FE 00 04 AF 16 A3 F7 39 FF FF 23 9E F7 39 B5 AF 0C DD FB 3A FF 1C 0E 40 FD 36 5B AF 0C EB 7F 3A 9A F7 39
-W: 16 64 09 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 16 00 00 FF FF 23 96 F7 39 FC AF 16 BD A1 0E B5 A0 0E 0F AF 18 00 FF 02 10 AF 18 01 FF 02 11 AF 18 02 FF 02 12 AF 18 03 FF 02 00 AF 1E 01 BF 1E 02 BF 1E 03 BF 1E 03 FD 36 FF A1 0E 2D A0 0E 00 AB 18 DF 2B 0E FF 1B 0E 1D FD 36 03 1F 1F 03 FF 02 02 AF 1E FE DF 0E 02 FF 02 01 AF 1E 3F DF 0E 01 FF 02
-W: 16 64 71 23
-X: 2
-C: 16 66 00
-W: 16 00 02 17 00 00 00 FF 1F 00 FF 02 00 AF 1E 01 BF 1E 02 BF 1E 03 BF 1E 03 FD 36 E9 7F 3A 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 00 1B 1E 05 FD 32 01 1C 1E 05 FD 32 02 1D 1E 05 FD 32 03 1E 1E 05 FD 32 04 AF 16 03 FD 33 04 AF 16 D2 FE 00 04 AF 16 93 F7 39 FF FF 23 A8 F7 39
-W: 16 64 98 22
-X: 2
-C: 16 66 00
-W: 16 00 02 18 00 00 FD AF 16 FE A5 0E 3F A0 0E BC A1 0E 00 A4 18 7B FC 3A FF 1C 0E F3 FC 32 AA FC 3A FE AC 0E FF AB 0E C9 FC 33 E0 14 0E CB FC 30 DF FA 0E FB AF 0C 02 FB 02 20 2A 0E DF FA 0E EE FC 32 4B AF 0C EB 7F 3A BC AF 0E 00 FF 02 7F AF 0E 01 FF 02 4B AF 0C FF AC 0E BF AD 0E 57 FC 3A BC AF 0E 00 FF 02
-W: 16 64 76 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 19 00 00 7F AF 0E 01 FF 02 4B AF 0C FF AC 0E BF AD 0E FC FB 3A C5 AF 0C 02 AB 1E BA BA 0C FF 15 0E CB FC 36 AA FC 3A 3F A0 0E BC A1 0E 00 AF 18 00 1F 0E CC FC 32 FE 25 0E CB FC 33 FF A5 0E 5C AF 0C FF AB 0E 03 AF 16 A3 F7 39 FF FF 23 9E F7 39 FC AF 16 B5 AF 0C 02 F5 02 60 AF 0C FD C0 0E 71 5F 0D
-W: 16 64 F6 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 1A 00 00 5B 8F 0D 01 CB 02 00 F1 02 01 F0 02 E1 AB 0E FF AC 0E FD AD 0E ED 7F 3A 3F A0 0E BC A1 0E 00 15 18 B0 FC 32 7B FC 3A FF 1C 0E AF FC 32 AA FC 3A FE AC 0E FF AB 0E 04 AF 16 9A F7 39 FF FF 23 96 F7 39 FA AF 16 3B A0 0E BC A1 0E 03 1F 19 05 FF 02 02 5F 19 04 FF 02 01 5F 19 03 FF 02 00 5F 19
-W: 16 64 24 28
-X: 2
-C: 16 66 00
-W: 16 00 02 1B 00 00 02 FF 02 E1 AB 0E EB 7F 3A 6F AF 0C FD CF 0E 01 FF 02 7F 5F 0D 00 FF 02 E1 AB 0E FB AC 0E CD AF 0C ED 7F 3A 05 AF 1E 01 4F 0E 05 FF 02 04 AF 1E 00 5F 0E 04 FF 02 03 AF 1E 00 5F 0E 03 FF 02 02 AF 1E 00 5F 0E 02 FF 02 6F AF 0C FD CF 0E 01 FF 02 7F 5F 0D 00 FF 02 E1 AB 0E F7 AC 0E FB AD 0E
-W: 16 64 B9 24
-X: 2
-C: 16 66 00
-W: 16 00 02 1C 00 00 ED 7F 3A 06 AF 16 93 F7 39 FF FF 23 3F A0 0E BC A1 0E FF A2 0E FF A3 0E 00 AF 18 00 1F 0E 6C FC 36 00 AC 18 FF AB 0E 01 AE 18 FF AD 0E CC CE 0C BB DD 0C 00 1C 0E 5A FC 32 07 AE 18 0B CE 18 06 AD 18 0A DD 18 05 AC 18 09 DC 18 04 AB 18 08 DB 18 00 1B 0E 5A FC 32 00 1C 0E 5A FC 32 00 1D 0E
-W: 16 64 53 23
-X: 2
-C: 16 66 00
-W: 16 00 02 1D 00 00 5A FC 32 01 1E 0E 5A FC 32 FE A2 0E FF A3 0E 3B AF 0C 2C AF 0C FF FF 23 A8 F7 39 F7 AF 16 02 FB 02 C0 AF 0C D2 AF 0C 0E A4 1E 0D A5 1E C0 15 0E 4D FC 32 00 14 0E 2D FC 34 BE AF 0C FF AD 0E DF EE 0E FF 7F 03 DF ED 0E ED BF 0C 01 AE 16 0C AF 0C FF AB 0E BF CB 0E EF CC 0C 04 FF 02 DF DB 0C
-W: 16 64 5F 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 1E 00 00 03 FF 02 22 BF 0D 00 12 0E FF FB 36 04 AC 1E 03 AB 1E CF 1F 0D 04 FF 02 BF 5F 0D 03 FF 02 01 AD 14 08 F2 02 EC 7F 3A 08 A2 1E 22 BF 0D 00 12 0E 3B FC 32 FF FB 33 E0 10 0E 28 FC 34 02 1F 1F 02 FF 02 1F C0 0E 06 F0 02 FF AF 0E 05 FF 02 2C AF 0C FF AB 0E 06 CC 1E 05 DB 1E FF 0B 0E 1E FC 32
-W: 16 64 2B 22
-X: 2
-C: 16 66 00
-W: 16 00 02 1F 00 00 DF 1C 0E 05 FC 34 0D AF 0C DF 4D 0E 00 F5 02 01 F4 02 02 AB 1E 0C AF 0C 07 F0 02 08 F2 02 ED 7F 3A 08 A2 1E 1F CF 0E FB AF 0C 07 A0 1E B2 CF 0C 4C AF 0C DF CC 0E 5B 5F 0D C4 AF 0C 06 34 1E B5 AF 0C 05 75 1E 02 1F 1F 02 FF 02 FF A0 0E 00 F5 02 01 F4 02 02 AB 1E 0C AF 0C 2D AF 0C ED 7F 3A
-W: 16 64 AC 21
-X: 2
-C: 16 66 00
-W: 16 00 02 20 00 00 09 AF 16 A3 F7 39 FF FF 23 FF 79 03 C1 AF 0C D9 AF 0C 02 A2 1E 01 A3 1E BE AF 0C FF AD 0E DF EE 0E FF 7F 03 DF ED 0E ED BF 0C 01 AE 16 1C AF 0C FF AB 0E BF CB 0E E0 CC 0C D1 DB 0C E4 FB 33 01 AF 10 01 1F 12 E4 FB 36 FF AC 0E FF AB 0E DF FB 33 99 BF 0D 00 19 0E EA FB 32 FE AC 0E FF AB 0E
-W: 16 64 1A 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 21 00 00 01 A9 16 FF FF 23 9E F7 39 FF A5 0E D2 15 04 D8 FB 32 FE A5 0E FF A3 0E 2D A2 0E 01 AB 1A FE 2B 0E FF 1B 0E B9 FB 36 FF AB 0E BF 15 0C C4 FB 36 BE A1 0E 2F A0 0E 0A AE 1A 09 AD 1A 00 0D 18 C8 FB 32 01 1E 18 C5 FB 30 DD 1B 04 C4 FB 36 FE AB 0E B5 AF 0C BD FB 36 FF AB 0E 2D AC 0E FD AD 0E
-W: 16 64 D8 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 22 00 00 07 FA 3A B9 FB 33 FF AB 0E 2D AC 0E FD AD 0E 16 FA 3A 5C AF 0C FF AB 0E 9A F7 39 FF FF 23 FF 7F 03 FF AF 0C FF 7F 0B FF 7F 03 FF 78 03 FF 79 03 FF 70 03 FF 71 03 FF 72 03 FF 73 03 FF 74 03 FF 75 03 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF BF 3E FF 78 03 FF 79 03 6F A0 0E 7F A1 0E 00 AC 18
-W: 16 64 90 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 23 00 00 FB 2F 0E FB AF 0C FF 1B 0E 99 FB 36 04 AF 0E 00 CF 02 01 AB 18 BC 2C 0C F7 2F 0E FB AF 0C FF 1B 0E 77 FB 36 08 AF 0E 00 CF 02 BF A0 0E 7F A1 0E 02 AE 18 01 AD 18 DC BD 01 DB BE 01 00 AB 18 FE 2B 0E FF 1B 0E 85 FB 36 DD AF 04 83 FB 36 DA BD 01 D9 BE 01 FF A1 0E 60 A0 0E 02 AF 18 7F BF 0E
-W: 16 64 19 28
-X: 2
-C: 16 66 00
-W: 16 00 02 24 00 00 02 CF 02 6F A0 0E 7F A1 0E 01 AB 18 08 2B 0E 01 CB 02 10 2A 0E D8 FF 33 EF FC 0E FB AF 0C FF 1B 0E 53 FB 36 D8 FF 00 D7 FF 00 D6 FF 00 D5 FF 00 CF A0 0E 7F A1 0E 02 AF 18 D8 BF 01 03 AF 18 D7 BF 01 00 AB 18 80 2B 0E 00 CB 02 D1 AF 04 61 FB 36 D1 AF 04 00 CF 02 D1 FF 00 FF A1 0E 60 A0 0E
-W: 16 64 C7 28
-X: 2
-C: 16 66 00
-W: 16 00 02 25 00 00 02 AF 18 7F BF 0E 02 CF 02 6F A0 0E 7F A1 0E 01 AB 18 10 2B 0E 01 CB 02 10 AF 0E 00 CF 02 10 2A 0E D8 FF 33 FB 2C 0E CB AF 0C FF 1B 0E 0E FB 36 6F A0 0E 7F A1 0E 04 AF 0E 00 CF 02 FE A3 0E D7 A2 0E 00 AF 1A 43 FB 32 01 AB 18 04 2B 0E 01 CB 02 0E FB 33 06 1F 1B 06 DF 02 9C 1F 0E 36 FB 34
-W: 16 64 F3 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 26 00 00 FF AF 0E 06 DF 02 01 AF 1A 02 BF 1A 33 FB 36 02 BF 1B 02 DF 02 01 FF 1B 01 DF 02 01 AF 1A 02 BF 1A 2A FB 32 FE A1 0E D7 A0 0E FF AF 0E 00 CF 02 8F A0 0E 7F A1 0E 02 AB 18 04 2B 0E 0F FB 33 AC AC 04 AD AB 04 FF 1B 0E 24 FB 32 9B 1C 0E 0E FB 36 05 AF 1A 1F FB 36 05 BF 1B 05 DF 02 0E FB 33
-W: 16 64 49 23
-X: 2
-C: 16 66 00
-W: 16 00 02 27 00 00 8F A0 0E 7F A1 0E 02 AB 18 FB 2B 0E FF 1B 0E 15 FB 36 AC AF 04 9B 4F 0E 05 DF 02 13 FB 33 AC AF 04 05 DF 02 8F A0 0E 7F A1 0E 02 AB 18 FB 8B 0E 02 CB 02 10 2A 0E 01 A9 16 01 A8 16 FF FF 2D 01 AB 16 01 AC 16 01 AD 16 01 AE 16 01 A5 16 01 A4 16 01 A3 16 01 A2 16 01 A1 16 01 A0 16 01 A9 16
-W: 16 64 6A 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 28 00 00 01 A8 16 01 AF 17 01 AF 16 FF 1F 3F FF FF 23 FF 7F 03 FF AF 0C FF 7F 0B FF 7F 03 FF 78 03 FF 79 03 FF 70 03 FF 71 03 FF 72 03 FF 73 03 FF 74 03 FF 75 03 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF BF 3E FF 78 03 FF 79 03 08 2A 0E 01 A9 16 01 A8 16 FF FF 2D 01 AB 16 01 AC 16 01 AD 16 01 AE 16
-W: 16 64 CC 29
-X: 2
-C: 16 66 00
-W: 16 00 02 29 00 00 01 A5 16 01 A4 16 01 A3 16 01 A2 16 01 A1 16 01 A0 16 01 A9 16 01 A8 16 01 AF 17 01 AF 16 FF 1F 3F FF FF 23 96 F7 39 FF AB 0E 5A AC 0E FC AD 0E BE FA 3A 93 F7 39 FF FF 23 96 F7 39 FF AB 0E 5A AC 0E FC AD 0E B1 FA 3A 93 F7 39 FF FF 23 96 F7 39 FF AB 0E 5A AC 0E FC AD 0E 7D FA 3A 93 F7 39
-W: 16 64 FC 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 2A 00 00 FF FF 23 C0 AF 0C B1 AF 0C FF AF 0E 01 4F 03 B4 FA 33 FF AF 0E 00 CF 02 01 CF 02 FC C0 0E 11 5F 0D DD BF 0D B9 FA 32 FF FF 23 A8 F7 39 FF AF 16 C4 AF 0C B5 AF 0C DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E AA FA 32 00 AF 1C 84 FA 36 40 1F 0D 51 5F 0D DD BF 0D 8C FA 36 42 AF 0C FC C2 0E
-W: 16 64 89 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 2B 00 00 53 5F 0D 00 AF 18 01 BF 18 92 FA 32 E3 AF 04 00 CF 02 E2 AF 04 01 CF 02 E2 A0 04 E3 A1 04 02 AF 18 00 DF 02 8C FA 33 FC C2 0E 33 5F 0D FC C0 0E 11 5F 0D DD BF 0D 9E FA 32 00 AB 1E BA BA 0C E2 A0 04 E3 A1 04 02 AF 18 03 2F 0E 02 CF 02 76 FF 3A FE AF 0E 00 EF 02 00 AB 1E BA BA 0C 01 AF 16
-W: 16 64 4A 26
-X: 2
-C: 16 66 00
-W: 16 00 02 2C 00 00 A3 F7 39 FF FF 23 A8 F7 39 FF AF 16 C8 AF 0C B9 AF 0C DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 76 FA 32 84 1F 0D 95 5F 0D 80 AF 0C 91 AF 0C 01 AF 18 02 BF 18 48 FA 36 01 AF 18 FF 7F 03 02 A0 18 01 A1 16 02 AB 1C FC 2B 0E 7F BB 0E 02 BF 18 02 CF 02 01 CD 0E 4D FA 36 82 AF 0C FC C2 0E
-W: 16 64 90 28
-X: 2
-C: 16 66 00
-W: 16 00 02 2D 00 00 93 5F 0D 80 AF 0C FB C0 0E 91 5F 0D 00 AF 18 00 EF 02 01 AF 18 01 EF 02 02 AF 18 00 DF 02 FC C0 0E 11 5F 0D FC C2 0E 33 5F 0D FC C4 0E 55 5F 0D DD BF 0D 5B FA 32 FF AF 0E 00 EF 02 01 EF 02 3F FA 3A 44 FA 33 82 AF 0C 93 AF 0C FF AF 0E 00 DF 02 00 AB 1E BA BA 0C 01 AF 16 A3 F7 39 FF FF 23
-W: 16 64 6A 27
-X: 2
-C: 16 66 00
-W: 16 00 02 2E 00 00 E2 A0 04 E3 A1 04 02 AF 18 DF BF 0E 02 CF 02 FF 78 03 FF 79 03 FF 74 03 FF 75 03 D8 FF 33 FF FF 23 FF AF 16 C0 AF 0C B1 AF 0C DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 2E FA 32 00 CD 02 01 CE 02 00 AB 1E BA BA 0C 01 AF 16 FF FF 23 FF AF 16 C0 AF 0C B1 AF 0C DF FA 0E FB AF 0C 00 FB 02
-W: 16 64 86 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 2F 00 00 20 2A 0E DF FA 0E 1F FA 32 01 AC 18 00 AB 18 00 AD 1E DA BA 0C 01 AF 16 FF FF 23 FF AF 16 C0 AF 0C B1 AF 0C DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 10 FA 32 00 BD 18 00 CD 02 00 AB 1E BA BA 0C 01 AF 16 FF FF 23 FF AF 16 C0 AF 0C B1 AF 0C DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E
-W: 16 64 AD 29
-X: 2
-C: 16 66 00
-W: 16 00 02 30 00 00 01 FA 32 DD 8F 0D 00 2F 18 00 CF 02 00 AB 1E BA BA 0C 01 AF 16 FF FF 23 BE A1 0E 3B A0 0E 07 AD 18 FE AC 0E FF AB 0E FF 1D 0E EE F9 36 DC AF 0C FF AB 0E FF FF 23 C0 AF 0C B1 AF 0C E8 F9 33 FF AF 0E 01 4F 03 DD BF 0D 00 1D 0E EA F9 32 FF FF 23 96 F7 39 FF AF 16 DF FA 0E FB AF 0C 00 FB 02
-W: 16 64 A1 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 31 00 00 20 2A 0E DF FA 0E DF F9 32 22 D9 3A 00 AB 1E BA BA 0C 01 AF 16 93 F7 39 FF FF 23 96 F7 39 FF AF 16 DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E D1 F9 32 FE D8 3A 00 AB 1E BA BA 0C 01 AF 16 93 F7 39 FF FF 23 A8 F7 39 FC AF 16 C4 AF 0C B5 AF 0C E2 AF 0C D3 AF 0C 09 A8 1E 08 A9 1E 8E AF 0C
-W: 16 64 A0 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 32 00 00 9D AF 0C FF AC 0E FF AB 0E 00 4E 0E 00 5D 0E CC CF 0D BB CF 0D FE AF 0E CD 7F 39 00 FB 02 01 FC 02 02 FD 02 03 FE 02 9C AF 0C 8D AF 0C FF AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 03 AE 1C 02 AD 1C 01 AC 1C 00 AB 1C FE AF 0E CD 7F 39 FF 70 03 FF 71 03 96 F7 39 D9 7F 39 04 AF 16
-W: 16 64 B3 29
-X: 2
-C: 16 66 00
-W: 16 00 02 33 00 00 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 2E AF 0C 3D AF 0C DC AF 0C FE 6C 0E CB AF 0C DB AF 0C EC AF 0C FF AE 0E FF AD 0E FE AF 0E CD 7F 39 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 D9 7F 39 04 AF 16 FF 70 03 FF 71 03 96 F7 39 D4 7F 39 04 AF 16 FF AF 0E FF 7F 03
-W: 16 64 96 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 34 00 00 00 AF 0E FF 7F 03 80 AF 0E FF 7F 03 6F AF 0E FF 7F 03 D5 7F 39 04 AF 16 CF 7F 39 00 EB 02 01 EC 02 02 ED 02 03 EE 02 04 AF 16 A3 F7 39 FF FF 23 C0 AF 0C B1 AF 0C 03 AE 18 02 AD 18 7F CD 0E 01 5C 19 00 5B 19 CE AF 0C BD AF 0C FE 6B 0E BC AF 0C DB AF 0C EC AF 0C FF FF 23 96 F7 39 FA AF 16
-W: 16 64 C6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 35 00 00 C0 AF 0C B1 AF 0C 09 A8 1E 08 A9 1E DC AF 0C FE 6C 0E CB AF 0C CB AF 0C DC AF 0C ED AF 0C FF AE 0E 00 FB 02 01 FC 02 02 FD 02 03 FE 02 04 F9 02 05 F8 02 1B AF 0C 0C AF 0C 48 F9 3A 06 AF 16 93 F7 39 FF FF 23 A8 F7 39 C4 AF 0C B5 AF 0C 09 AC 1E 08 AB 1E C2 9F 0D B3 AF 0C FE 53 0E CE AF 0C
-W: 16 64 C5 29
-X: 2
-C: 16 66 00
-W: 16 00 02 36 00 00 BD AF 0C DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 03 AF 1C FF 7F 03 02 AF 1C FF 7F 03 01 AF 1C FF 7F 03 00 AF 1C FF 7F 03 DA 7F 39 08 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 2E AF 0C 3D AF 0C DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 0B AF 1E
-W: 16 64 3A 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 37 00 00 FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 DA 7F 39 08 AF 16 00 CE 0C 11 DD 0C 88 DC 0C 99 DB 0C 1E AF 0C 8D AF 0C 9C AF 0C 9B AF 0C FE 6B 0E 00 EB 02 01 EC 02 02 ED 02 03 EE 02 A3 F7 39 FF FF 23 C0 AF 0C B1 AF 0C 03 AE 18 7F CE 0E 02 5D 19 01 5C 19 00 5B 19 DE AF 0C
-W: 16 64 E7 25
-X: 2
-C: 16 66 00
-W: 16 00 02 38 00 00 CD AF 0C BC AF 0C FE 6B 0E DB AF 0C EC AF 0C FF FF 23 A8 F7 39 FE AF 16 C2 AF 0C B3 AF 0C E4 AF 0C 03 34 1A D5 AF 0C 02 75 1A 07 AF 1E 05 3F 1A 01 FF 02 06 AF 1E 04 7F 1A 00 FF 02 01 A0 1A 00 A1 1A 18 AF 0C FE 68 0E 89 AF 0C 5B AF 0C 4C AF 0C 5D AF 0C 4E AF 0C DC 7F 39 FF 7E 03 FF 7D 03
-W: 16 64 1C 27
-X: 2
-C: 16 66 00
-W: 16 00 02 39 00 00 FF 7C 03 FF 7B 03 FF 70 03 FF 71 03 96 F7 39 DA 7F 39 08 AF 16 01 18 1B 00 59 1B 80 AF 0C 91 AF 0C 18 AF 0C FE 68 0E 89 AF 0C FF 70 03 FF 71 03 96 F7 39 D6 7F 39 04 AF 16 09 CE 1A 09 DE 02 08 DD 1A 08 DD 02 07 DC 1A 07 DC 02 06 DB 1A 06 DB 02 01 A0 1A 00 A1 1A 18 AF 0C FE 68 0E 89 AF 0C
-W: 16 64 7D 24
-X: 2
-C: 16 66 00
-W: 16 00 02 3A 00 00 01 AC 1E 00 AB 1E 5D AF 0C 4E AF 0C DC 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF 70 03 FF 71 03 96 F7 39 DA 7F 39 08 AF 16 01 18 1B 00 59 1B 80 AF 0C 91 AF 0C 18 AF 0C FE 68 0E 89 AF 0C FF 70 03 FF 71 03 96 F7 39 D6 7F 39 04 AF 16 0D CE 1A 0D DE 02 0C DD 1A 0C DD 02 0B DC 1A 0B DC 02
-W: 16 64 FF 25
-X: 2
-C: 16 66 00
-W: 16 00 02 3B 00 00 0A DB 1A 0A DB 02 01 1F 1B 01 DF 02 00 5F 1B 00 DF 02 01 AF 1A FF 7F 03 00 AF 1A FF 7F 03 5D AF 0C 4E AF 0C D8 7F 39 02 AF 16 03 CE 1A 03 DE 02 02 DD 1A 02 DD 02 01 AF 1A FF 7F 03 00 AF 1A FF 7F 03 03 AE 1E 02 AD 1E D8 7F 39 02 AF 16 05 CE 1A 05 DE 02 04 DD 1A 04 DD 02 02 AF 16 A3 F7 39
-W: 16 64 22 20
-X: 2
-C: 16 66 00
-W: 16 00 02 3C 00 00 FF FF 23 A8 F7 39 C2 AF 0C B3 AF 0C E4 AF 0C D5 AF 0C 06 AF 1A 07 BF 1A 08 BF 1A 09 BF 1A 71 F8 32 05 AC 1A 04 AB 1A 41 F8 33 0D AE 1A 0C AD 1A 0B AC 1A 0A AB 1A FE AF 0E CD 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 4C AF 0C 03 3C 1A 5B AF 0C 02 7B 1A CD AF 0C BC AF 0C FE AF 0E D2 7F 39
-W: 16 64 55 28
-X: 2
-C: 16 66 00
-W: 16 00 02 3D 00 00 FF 70 03 FF 71 03 96 F7 39 D9 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 09 AE 1A 08 AD 1A 07 AC 1A 06 AB 1A FE AF 0E CD 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C D5 7F 39 04 AF 16 D1 7F 39 EC AF 0C 05 CC 1A DB AF 0C 04 DB 1A A3 F7 39 FF FF 23
-W: 16 64 06 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 3E 00 00 96 F7 39 FE AF 16 EF AF 0E 01 FF 02 D8 AF 0E 00 FF 02 BE 7F 3A 02 AF 16 93 F7 39 FF FF 23 96 F7 39 C0 AF 0C B1 AF 0C E2 AF 0C D3 AF 0C 02 AB 1E 27 F8 36 3F 11 0C 2B F8 32 2F 10 0C 27 F8 35 9B AC 0E FF AB 0E 0D F8 33 1B AF 0C 0C AF 0C 9B AE 0E FF AD 0E DB 7F 39 28 BF 0D 39 FF 0D 80 AF 0C
-W: 16 64 71 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 3F 00 00 91 AF 0C FF A8 0E FF A9 0E EE C0 0C DD D1 0C CC D8 0C BB D9 0C 20 AF 0C 31 AF 0C FF A8 0E FF A9 0E FF 70 03 FF 71 03 96 F7 39 CB 7F 39 04 AF 16 DB AF 0C EC AF 0C 93 F7 39 FF FF 23 96 F7 39 DB 7F 39 0B CE 0E FE DD 0E CC 5F 0D BB 5F 0D 17 AF 0E FF 7F 03 FC AF 0E FF 7F 03 FF AF 0E FF 7F 03
-W: 16 64 5A 30
-X: 2
-C: 16 66 00
-W: 16 00 02 40 00 00 FF AF 0E FF 7F 03 D6 7F 39 04 AF 16 DB AF 0C EC AF 0C 93 F7 39 FF FF 23 CC 4E 0C BB 5D 0C 7F FB 0E F1 F7 36 FF AC 0E FF AB 0E FF FF 23 C0 AF 0C B1 AF 0C 01 AC 18 00 AB 18 00 1B 0E E8 F7 32 00 1C 0E E4 F7 36 CF 1F 0D 01 CF 02 BF 5F 0D 00 CF 02 FF FF 23 FF A0 0E FF A1 0E 00 0B 1E DE F7 32
-W: 16 64 D2 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 41 00 00 01 1C 1E D7 F7 30 DF 0B 0C DA F7 32 EF 1C 0C D7 F7 35 FE A0 0E FF A1 0E 1B AF 0C 0C AF 0C FF FF 23 CC BF 0D BB FF 0D CC CE 0C BB DD 0C FF 7E 03 FF 7D 03 CE AF 0C BD AF 0C D8 7F 39 02 AF 16 DB AF 0C EC AF 0C FF FF 23 96 F7 39 E8 AF 0C D9 AF 0C CE AF 0C BD AF 0C DC AF 0C FE 6C 0E CB AF 0C
-W: 16 64 98 30
-X: 2
-C: 16 66 00
-W: 16 00 02 42 00 00 BF EC 0E FB AF 0C BF ED 0E FC AF 0C DB BB 0C BF EE 0E FD AF 0C EC BC 0C FF AE 0E 80 AF 0C 91 AF 0C 18 AF 0C FE 68 0E 89 AF 0C FF 70 03 FF 71 03 96 F7 39 D6 7F 39 04 AF 16 DB AF 0C EC AF 0C 93 F7 39 FF FF 23 FF 74 03 FF 75 03 FF 78 03 FF 79 03 FF 3F 3F 01 A9 16 01 A8 16 01 A5 16 01 A4 16
-W: 16 64 32 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 43 00 00 FF 3F 3F FF 75 03 FF 78 03 FF 79 03 FF 3F 3F 01 A9 16 01 A8 16 01 A5 16 FF 3F 3F FF 78 03 FF 79 03 FF 3F 3F 01 A9 16 01 A8 16 FF 3F 3F 96 F7 39 75 F7 3A 93 F7 39 FF FF 23 D1 FF 00 CF A0 0E 7F A1 0E 7F BB 0E 00 CB 02 FF FF 23 96 F7 39 20 2A 0E DF FA 0E 85 F7 32 6F A0 0E 7F A1 0E 01 AB 18
-W: 16 64 94 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 44 00 00 EF BB 0E 01 CB 02 76 FF 3A D6 AE 04 D7 AD 04 D8 AC 04 D8 AB 04 FE 6B 0E 93 F7 39 FF FF 23 96 F7 39 7F BB 0E D1 BB 01 20 2A 0E DF FA 0E 72 F7 32 6F A0 0E 7F A1 0E 01 AB 18 EF BB 0E 01 CB 02 76 FF 3A D6 AE 04 D7 AD 04 D8 AC 04 D8 AB 04 FE 6B 0E 93 F7 39 FF FF 23 A8 F7 39 FB AF 16 02 FB 02
-W: 16 64 BF 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 45 00 00 03 FC 02 04 FD 02 FF 1D 0E 4B F7 32 BF A1 0E E5 A0 0E 08 0B 18 56 F7 32 09 1C 18 52 F7 31 0B A4 18 0A A5 18 06 F7 33 FB AF 0E 00 FF 02 1B AF 0C 0C AF 0C 03 AE 1E 02 AD 1E 09 F7 33 C6 AB 0E E2 7F 3A C4 AF 0C B5 AF 0C 4F AF 0C EF CF 0E 01 FF 02 5F AF 0C D8 DF 0E 00 FF 02 00 AC 0E 80 AB 0E
-W: 16 64 E2 24
-X: 2
-C: 16 66 00
-W: 16 00 02 46 00 00 5D AF 0C 4E AF 0C BE 7F 3A C4 AF 0C B5 AF 0C EC AF 0E 00 FF 02 77 AF 0E 01 FF 02 9F AC 0E FF AB 0E 03 AE 1E 02 AD 1E BE 7F 3A 03 CC 1E 03 FC 02 02 DB 1E 02 FB 02 4C AF 0C 03 3C 1E 5B AF 0C 02 7B 1E BF A1 0E FF A0 0E 19 AE 18 00 4E 0E 18 AD 18 80 5D 0E 00 44 0E 01 F4 02 80 55 0E 00 F5 02
-W: 16 64 11 22
-X: 2
-C: 16 66 00
-W: 16 00 02 47 00 00 BE 7F 3A BF A1 0E FF A0 0E 19 AE 18 18 AD 18 03 CC 1E 01 FC 02 02 DB 1E 00 FB 02 DB AF 0C EC AF 0C 03 AE 1E 02 AD 1E BE 7F 3A C4 AF 0C B5 AF 0C FB AF 0E 00 FF 02 BF AB 0E EF AC 0E 5D AF 0C 4E AF 0C BC 7F 3A C4 AF 0C B5 AF 0C BE A1 0E 3B A0 0E 01 AB 18 FE 2B 0E 04 1B 1E FB F6 32 FE AB 0E
-W: 16 64 81 28
-X: 2
-C: 16 66 00
-W: 16 00 02 48 00 00 D9 AC 0E 5D AF 0C 4E AF 0C 34 FA 3A 04 AC 1E FF AB 0E C0 AF 0C F4 C0 0E B1 AF 0C BF D1 0E 00 AC 18 CB AF 0C FE 6B 0E 44 CC 0C 55 DB 0C 5B AF 0C 4C AF 0C 05 AF 16 A3 F7 39 FF FF 23 A8 F7 39 D3 AF 16 FF A5 0E BF A1 0E 48 A0 0E 00 AB 18 FF AC 0E 9E 1B 0E DF F6 32 FF 1C 0E DF F6 32 FE A5 0E
-W: 16 64 D8 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 49 00 00 BA AF 04 04 2F 0E BA BF 01 B0 FF 00 6C AF 0C DD CC 0E 7B 5F 0D F4 AD 0E ED F9 3A FF 15 0E CE F6 32 FE A1 0E C8 A0 0E 01 AF 18 25 FF 02 02 AF 18 26 FF 02 6C EA 3A FF 1C 0E C7 F6 36 FE A1 0E 9F A0 0E FE AF 0E 0B CF 02 6C AF 04 B6 F6 32 F3 C8 3A 99 EA 3A CB AF 0C BF A1 0E BB A0 0E 0C AE 18
-W: 16 64 EA 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 4A 00 00 0B AD 18 D0 AF 04 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C F7 AE 0E 7F C8 3A 2C AF 1E A0 F6 32 BE A1 0E 3B A0 0E 01 AB 18 E7 2B 0E F7 1B 0E AC F6 36 EF 1B 0E A7 F6 32 6C AF 0C DD CC 0E 7B 5F 0D AC F5 3A A3 F6 33 6C AF 0C DD CC 0E 7B 5F 0D 12 F6 3A 2C AF 1E A0 F6 36 61 F6 3A 6B C5 3A
-W: 16 64 A4 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 4B 00 00 BF A5 0E AA A4 0E 36 AC 1C 38 CC 1C 35 AB 1C 37 DB 1C FF A1 0E 04 A0 0E 24 AF 18 FF 7F 03 25 A0 18 01 A1 16 BF 01 0C 90 F6 32 CF 10 0C 8D F6 34 D0 FC 00 CF 17 00 02 EF 3A 9C AF 04 FE 1F 0E B6 F6 36 FF A1 0E 2D A0 0E 13 AB 18 BF 2B 0E FF 1B 0E 7B F6 32 19 AC 1C 5A CC 1C 18 AB 1C 59 DB 1C
-W: 16 64 97 26
-X: 2
-C: 16 66 00
-W: 16 00 02 4C 00 00 09 0B 18 7C F6 32 0A 1C 18 78 F6 35 BA AF 04 FD BF 0E BA BF 01 BA AB 04 FB 2B 0E FF 1B 0E 64 F6 36 FF A1 0E 2D A0 0E 13 AB 18 BF 2B 0E FF 1B 0E 69 F6 36 6C AF 0C FD CC 0E 7B 5F 0D FC AD 0E 65 F6 33 6C AF 0C FD CC 0E 7B 5F 0D FD AD 0E BE E6 3A 2D AF 16 A3 F7 39 FF FF 23 A8 F7 39 DE AF 16
-W: 16 64 1F 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 4D 00 00 BA AF 04 FB BF 0E BA BF 01 BE A1 0E 6A A0 0E 1B AF 18 00 1F 0E 54 F6 32 BA AF 04 7F BF 0E BA BF 01 1D AF 18 00 1F 0E 4E F6 32 BA AF 04 BF BF 0E BA BF 01 FF A5 0E 2D A4 0E BF A1 0E BB A0 0E 0A AC 1C 09 AB 1C 05 1B 18 44 F6 32 06 1C 18 3B F6 36 BF AF 0E 00 FF 02 B6 AF 0E 01 FF 02 FD AC 0E
-W: 16 64 33 26
-X: 2
-C: 16 66 00
-W: 16 00 02 4E 00 00 FF AB 0E FF AD 0E 24 AE 0E F0 FD 3A FE A1 0E 5A A0 0E FF AF 0E 04 CF 02 05 CF 02 CD C3 3A 6C AF 0C FD CC 0E 7B 5F 0D FE AD 0E AF E8 3A BE A1 0E 3B A0 0E 01 AB 18 DF 2B 0E FF 1B 0E 15 F6 36 FE A1 0E 9F A0 0E 1A AC 18 19 AB 18 07 0B 1C 23 F6 32 08 1C 1C 15 F6 31 07 AF 1C 19 CF 02 08 AF 1C
-W: 16 64 F1 26
-X: 2
-C: 16 66 00
-W: 16 00 02 4F 00 00 1A CF 02 23 AF 1C 1B CF 02 24 AF 1C 1C CF 02 FE AB 0E 68 AC 0E CE AF 0C BD AF 0C CD CC 3A 22 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F8 AF 16 C4 AF 0C B5 AF 0C FE A1 0E C8 A0 0E 02 AF 18 04 3F 1C 01 FF 02 01 AF 18 03 7F 1C 00 FF 02 BE A3 0E 6A A2 0E 1A AF 1A 05 FF 02 FF AF 0E 04 FF 02 05 AF 1E
-W: 16 64 B7 27
-X: 2
-C: 16 66 00
-W: 16 00 02 50 00 00 FF 7F 03 05 AF 1E FF 7F 03 EF AE 0E F1 AD 0E D8 7F 39 02 AF 16 01 AC 1E 00 AB 1E DC 7F 39 DE AF 0C CD AF 0C BC AF 0C FE 6B 0E 02 FD 02 03 FE 02 90 EA 3A FF AB 0E CC CC 0C BB DB 0C A0 CC 0E 07 FC 02 BD DB 0E 06 FB 02 FF A1 0E 2D A0 0E BE A3 0E 6A A2 0E 0A AC 18 19 CC 1A 09 AB 18 18 DB 1A
-W: 16 64 A1 29
-X: 2
-C: 16 66 00
-W: 16 00 02 51 00 00 07 A0 1E 06 A1 1E 11 0B 18 DA F5 32 12 1C 18 BA F5 35 03 AC 1E 02 AB 1E 14 0B 1A D4 F5 32 15 1C 1A BA F5 31 01 1F 1D 01 EF 02 00 5F 1D 00 EF 02 01 A2 1C 00 A3 1C 04 13 1E CA F5 32 05 12 1E AF F5 35 01 A2 1E 00 A3 1E BE A1 0E 6A A0 0E 16 03 18 C2 F5 32 17 12 18 BA F5 34 02 1F 1D 02 EF 02
-W: 16 64 F7 1D
-X: 2
-C: 16 66 00
-W: 16 00 02 52 00 00 FD 1F 0E B8 F5 32 FE AF 0E 0A EF 02 B8 F5 33 FF AF 0E 02 EF 02 FF AF 0E 00 EF 02 01 EF 02 FE A1 0E C8 A0 0E 01 AF 18 03 EF 02 02 AF 18 04 EF 02 08 AF 16 A3 F7 39 FF FF 23 FF 74 03 FF 75 03 C2 AF 0C B3 AF 0C BE A1 0E 3B A0 0E 01 AB 18 E7 2B 0E FF 1B 0E 9E F5 36 F7 1B 0E 9E F5 36 E7 1B 0E
-W: 16 64 9B 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 53 00 00 70 F5 32 FF A1 0E 2D A0 0E BE A5 0E 6A A4 0E 0A AC 18 09 AB 18 2D 0B 1C 95 F5 32 2E 1C 1C 75 F5 34 11 AF 18 7F FF 0E 75 F5 32 11 AF 18 12 BF 18 75 F5 36 02 0B 1A 8B F5 32 03 1C 1A 88 F5 34 02 DB 02 03 DC 02 2B AF 1C 7C F5 36 03 AE 1A 0A 3E 18 02 AD 1A 09 7D 18 2B AC 1C FF AB 0E BF 0D 0C
-W: 16 64 46 22
-X: 2
-C: 16 66 00
-W: 16 00 02 54 00 00 7D F5 32 CF 1E 0C 72 F5 34 09 1F 1B 09 DF 02 2C 1F 1C 70 F5 35 FE AF 0E 0A DF 02 70 F5 33 FF AF 0E 02 DF 02 03 DF 02 FF AF 0E 09 DF 02 BE A1 0E 3B A0 0E 01 AB 18 E7 2B 0E EF 1B 0E 68 F5 36 E7 1B 0E 19 F5 32 08 AF 1A 43 F5 32 FF A5 0E 2D A4 0E BE A1 0E 6A A0 0E 12 AC 1C 11 AB 1C 27 0B 18
-W: 16 64 A5 24
-X: 2
-C: 16 66 00
-W: 16 00 02 55 00 00 5D F5 32 28 1C 18 47 F5 34 0E AC 1C AB CC 0E 0D AB 1C 0A DB 0E 29 0B 18 55 F5 32 2A 1C 18 47 F5 34 07 1F 1B 07 DF 02 06 5F 1B 06 DF 02 07 AC 1A 06 AB 1A 25 1B 18 4B F5 32 26 1C 18 19 F5 34 FE AF 0E 08 DF 02 19 F5 33 FF AF 0E 06 DF 02 07 DF 02 19 F5 33 04 AF 1A 05 BF 1A 35 F5 32 FF A1 0E
-W: 16 64 53 20
-X: 2
-C: 16 66 00
-W: 16 00 02 56 00 00 2D A0 0E 0D AF 18 00 DF 02 0E AF 18 01 DF 02 FF AF 0E 04 DF 02 FE AF 0E 05 DF 02 19 F5 33 05 1F 1B 05 DF 02 04 5F 1B 04 DF 02 BE A5 0E 6A A4 0E 05 AC 1A 04 AB 1A 23 1B 1C 2A F5 32 24 1C 1C 19 F5 34 FF A1 0E 2D A0 0E 0E AC 18 01 3C 1A 0D AB 18 00 7B 1A 21 0B 1C 20 F5 32 22 1C 1C 1C F5 34
-W: 16 64 59 1D
-X: 2
-C: 16 66 00
-W: 16 00 02 57 00 00 FE AF 0E 0A DF 02 19 F5 33 FF AF 0E 04 DF 02 05 DF 02 01 A5 16 01 A4 16 FF FF 23 A8 F7 39 D7 AF 16 FF AF 0E 28 FF 02 BA AF 04 04 2F 0E BA BF 01 B0 FF 00 FF AB 0E 53 AC 0E EC AD 0E ED F9 3A BF A5 0E BB A4 0E FF A1 0E 53 A0 0E 0B AF 1C 0E CF 02 0C AF 1C 0F CF 02 FF AB 0E 06 AC 0E FF AE 0E
-W: 16 64 48 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 58 00 00 FF AD 0E 34 FA 3A 6C AF 0C ED CC 0E 7B 5F 0D F3 AD 0E ED F9 3A FE AB 0E CF AC 0E 25 FA 3A 13 FB 02 14 FC 02 FE AB 0E CD AC 0E 25 FA 3A 17 FB 02 18 FC 02 FF AB 0E 20 AC 0E 25 FA 3A 1B FB 02 1C FC 02 6C AF 0C FD CC 0E 7B 5F 0D 35 F1 3A 6C AF 04 D6 F4 32 F3 C8 3A 99 EA 3A CB AF 0C 0C AE 1C
-W: 16 64 26 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 59 00 00 0B AD 1C D0 AF 04 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C F7 AE 0E 7F C8 3A 6C AF 0C ED CC 0E 7B 5F 0D 6F F3 3A FF A5 0E FE A1 0E 9F A0 0E BF A3 0E AA A2 0E 03 AE 1A 02 AD 1A FF AC 0E FF AB 0E 24 AF 18 FF 7F 03 23 AF 18 FF 7F 03 22 AF 18 FF 7F 03 21 AF 18 FF 7F 03 00 1B 1E BA F4 32
-W: 16 64 59 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 5A 00 00 01 1C 1E BA F4 32 02 1D 1E BA F4 32 03 1E 1E 04 AF 16 9D F4 30 28 1F 1F 28 FF 02 28 AC 1E FF AB 0E 04 1B 1A B1 F4 32 05 1C 1A A8 F4 35 28 F5 02 6C AF 0C ED CC 0E 7B 5F 0D 6E AF 0C FD CE 0E 7D 5F 0D 48 F2 3A B2 F3 3A AC F0 3A FF 1C 0E 9D F4 36 99 F3 3A 6B FE 00 FF A1 0E 53 A0 0E 11 AF 18
-W: 16 64 60 27
-X: 2
-C: 16 66 00
-W: 16 00 02 5B 00 00 9D F4 32 FE A5 0E FF A3 0E 53 A2 0E 12 AF 1A 96 F4 36 FE A5 0E FF AF 0E 12 DF 02 6C AF 0C FD CC 0E 7B 5F 0D FF AD 0E C5 F3 3A FF 15 0E 6D F4 36 6C AF 04 6C F4 32 BF A1 0E AA A0 0E 00 AB 18 FF A3 0E 53 A2 0E 0F AE 1A 0E AD 1A D0 AF 04 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C FF AE 0E
-W: 16 64 64 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 5C 00 00 7F C8 3A 65 AF 04 6C F4 36 FF A1 0E 2D A0 0E 09 AF 18 CA BF 01 0A AF 18 C9 BF 01 19 AF 18 C6 BF 01 1A AF 18 C5 BF 01 05 AF 18 C8 BF 01 06 AF 18 C7 BF 01 6C F4 33 76 C4 3A 02 EF 3A FF A5 0E 53 A4 0E FF A3 0E 2D A2 0E 12 9C 1B 11 CB 1B BE A1 0E 23 A0 0E 04 0B 18 60 F4 32 05 1C 18 3D F4 35
-W: 16 64 FE 25
-X: 2
-C: 16 66 00
-W: 16 00 02 5D 00 00 12 AE 1A 11 AD 1A DC AF 0C FE 6C 0E CB AF 0C 03 CE 1C 03 EE 02 02 DD 1C 02 ED 02 01 DC 1C 01 EC 02 00 DB 1C 00 EB 02 1C AE 1A 1B AD 1A DC AF 0C FE 6C 0E CB AF 0C 07 CE 1C 07 EE 02 06 DD 1C 06 ED 02 05 DC 1C 05 EC 02 04 DB 1C 04 EB 02 0B 1F 1D 0B EF 02 0A 5F 1D 0A EF 02 09 5F 1D 09 EF 02
-W: 16 64 94 20
-X: 2
-C: 16 66 00
-W: 16 00 02 5E 00 00 08 5F 1D 08 EF 02 9C AF 04 00 1F 0E D6 F4 36 CE F3 3A FF 1C 0E 1C F4 36 6C AF 0C E1 CC 0E 7B 5F 0D FE AD 0E 0A F4 3A 0E AF 1C 22 FF 02 0F AF 1C 23 FF 02 CE AF 04 24 FF 02 CD AF 04 25 FF 02 CC AF 04 26 FF 02 CB AF 04 27 FF 02 BF AF 0E 00 FF 02 B4 AF 0E 01 FF 02 F5 AC 0E FF AB 0E 6E AF 0C
-W: 16 64 8F 28
-X: 2
-C: 16 66 00
-W: 16 00 02 5F 00 00 E1 CE 0E 7D 5F 0D F0 FD 3A 10 AF 1C 14 F4 32 BF A1 0E BB A0 0E 04 AB 18 FC 2B 0E FD 1B 0E 0F F4 36 6C AF 0C FD CC 0E 7B 5F 0D FE AD 0E C5 F3 3A FA AB 0E CF C5 3A 29 AF 16 A3 F7 39 FF FF 23 A8 F7 39 C4 AF 0C B5 AF 0C FF A3 0E 53 A2 0E 08 AF 1A 09 BF 1A 0A BF 1A 0B BF 1A DA F3 36 FF 1D 0E
-W: 16 64 89 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 60 00 00 FB F3 32 9C AF 04 00 1F 0E DA F3 32 0B AF 1A FF 7F 03 0A AF 1A FF 7F 03 09 AF 1A FF 7F 03 08 AF 1A FF 7F 03 07 AE 1A 06 AD 1A 05 AC 1A 04 AB 1A D6 7F 39 04 AF 16 02 ED 02 03 EE 02 0B AF 1A FF 7F 03 0A AF 1A FF 7F 03 09 AF 1A FF 7F 03 08 AF 1A FF 7F 03 03 AE 1A 02 AD 1A 01 AC 1A 00 AB 1A
-W: 16 64 24 23
-X: 2
-C: 16 66 00
-W: 16 00 02 61 00 00 D6 7F 39 04 AF 16 00 ED 02 01 EE 02 D0 F3 33 BF A1 0E BB A0 0E 07 AF 18 00 EF 02 08 AF 18 01 EF 02 09 AF 18 02 EF 02 0A AF 18 03 EF 02 A3 F7 39 FF FF 23 FE A1 0E 63 A0 0E 01 8C 19 FB 9F 0D CB BB 0C FD EB 0E BC AF 0C FF AB 0E FF FF 23 9E F7 39 FD AF 16 D5 AF 0C FF AF 0E 01 FF 02 02 FF 02
-W: 16 64 27 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 62 00 00 6E 1F 0D 7D 5F 0D 00 F5 02 F0 F0 3A FF 1C 0E B5 F3 36 02 AC 1E 01 AB 1E 5D AF 0C 2C F3 3A 03 AF 16 9A F7 39 FF FF 23 FF A3 0E 04 A2 0E FF A1 0E 2D A0 0E 25 AC 1A 0A 3C 18 24 AB 1A 09 7B 18 BF A1 0E AA A0 0E 5E 0B 18 A5 F3 32 5F 1C 18 A2 F3 34 5F AC 18 5E AB 18 FF A1 0E 53 A0 0E 0C 0B 18
-W: 16 64 03 25
-X: 2
-C: 16 66 00
-W: 16 00 02 63 00 00 9D F3 32 0D 1C 18 9A F3 34 0C CB 02 0D CC 02 FF FF 23 A8 F7 39 FE AF 16 FF A1 0E 53 A0 0E 0D AE 18 0C AD 18 BF A5 0E AA A4 0E 60 AF 1C 01 FF 02 FF AF 0E 00 FF 02 FF AB 0E C4 AC 0E 61 F9 3A FF AB 0E C4 AC 0E 07 F9 3A FF A1 0E 53 A0 0E 0E CB 02 0F CC 02 49 AF 1C 7F FF 0E 78 F3 32 49 0B 1C
-W: 16 64 F2 29
-X: 2
-C: 16 66 00
-W: 16 00 02 64 00 00 7D F3 32 4A 1C 1C 78 F3 31 49 AF 1C 0E CF 02 4A AF 1C 0F CF 02 FF A1 0E 53 A0 0E FE AF 0E 0D CF 02 7F AF 0E 0C CF 02 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FC AF 16 02 FB 02 03 FC 02 BF A1 0E AA A0 0E 56 A4 18 55 A5 18 BE A1 0E 3B A0 0E 03 AB 18 DF 2B 0E FF 1B 0E 56 F3 36 FF A1 0E 2D A0 0E
-W: 16 64 11 28
-X: 2
-C: 16 66 00
-W: 16 00 02 65 00 00 0A AC 18 09 AB 18 99 F0 3A FF 1C 0E 56 F3 36 BF A1 0E AA A0 0E 58 A4 18 57 A5 18 FE AB 0E CF AC 0E 25 FA 3A CE AF 0C BD AF 0C 00 F5 02 01 F4 02 03 AC 1E 02 AB 1E C8 F9 3A FE AB 0E CD AC 0E 25 FA 3A CE AF 0C BD AF 0C 03 AC 1E FB CC 0E 02 5B 1F 00 F5 02 01 F4 02 C8 F9 3A FF AB 0E 20 AC 0E
-W: 16 64 A6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 66 00 00 25 FA 3A CE AF 0C BD AF 0C 03 AC 1E F7 CC 0E 02 5B 1F 00 F5 02 01 F4 02 C8 F9 3A 04 AF 16 A3 F7 39 FF FF 23 C4 FF 00 C3 FF 00 C2 FF 00 C1 FF 00 C3 BB 01 C2 BC 01 FF FF 23 A8 F7 39 D4 AF 16 23 FB 02 24 FC 02 25 FD 02 DA C3 3A C0 AF 0C B1 AF 0C 00 AF 18 FA 1F 0E 1D F3 32 0E AF 0C BF CE 0E
-W: 16 64 D0 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 67 00 00 1D 5F 0D 1A F3 33 E7 C3 3A CE AF 0C BD AF 0C DF AB 0E 62 AF 0C FC C2 0E 73 5F 0D E0 AF 0C D1 AF 0C 01 AF 10 01 5F 03 BB BF 0D 14 F3 32 FE A1 0E 63 A0 0E 00 AC 18 FF AB 0E CC CC 0C BB DB 0C E0 CC 0C D1 DB 0C 02 AF 18 26 FF 02 03 AF 18 27 FF 02 FF A1 0E 2D A0 0E 01 AB 18 FB 2B 0E FF 1B 0E
-W: 16 64 FC 28
-X: 2
-C: 16 66 00
-W: 16 00 02 68 00 00 4B F2 32 BF A1 0E BB A0 0E 04 AB 18 FC 2B 0E FD 1B 0E 93 F2 32 BF A1 0E AA A0 0E 12 A4 18 11 A5 18 4B AC 18 FF AB 0E 4D AE 18 4C AD 18 B9 7F 3A C2 AF 0C B3 AF 0C 40 AF 0C 51 AF 0C FF A8 0E FF A9 0E 27 AE 1E 26 AD 1E DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF 70 03
-W: 16 64 8A 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 69 00 00 FF 71 03 96 F7 39 DA 7F 39 08 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 4C AF 0C 17 4C 0E 5B AF 0C FC 5B 0E 2B FC 02 2A FB 02 FF AF 0E 28 FF 02 29 FF 02 24 AE 1E 23 AD 1E DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 2F AF 1E FF 7F 03 2F AF 1E FF 7F 03 2F AF 1E FF 7F 03
-W: 16 64 57 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 6A 00 00 2F AF 1E FF 7F 03 DA 7F 39 08 AF 16 00 CE 0C 11 DD 0C 88 DC 0C 99 DB 0C 17 AF 0E FF 7F 03 FC AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C D6 7F 39 04 AF 16 DB AF 0C EC AF 0C 2E AF 0C 27 CE 1E 3D AF 0C 26 DD 1E DF 0B 0C A0 F2 32 EF 1C 0C 97 F2 30
-W: 16 64 86 29
-X: 2
-C: 16 66 00
-W: 16 00 02 6B 00 00 27 12 1E FE AF 0C 26 AD 1E 3D 7D 0C DF 0B 0C 98 F2 32 EF 1C 0C 95 F2 31 DB AF 0C EC AF 0C 23 FB 02 24 FC 02 6C AF 0C FA CC 0E 7B 5F 0D 6E AF 0C DC CE 0E 7D 5F 0D 26 AF 1E 00 FF 02 27 AF 1E 01 FF 02 FE A3 0E 63 A2 0E 00 AF 1A 02 FF 02 0E C6 3A FF 1C 0E 58 F2 36 FE A1 0E 63 A0 0E 01 AF 18
-W: 16 64 95 26
-X: 2
-C: 16 66 00
-W: 16 00 02 6C 00 00 00 1F 0E 71 F2 32 6C AF 0C FA CC 0E 7B 5F 0D 24 AE 1E 23 AD 1E 26 AF 1E 00 FF 02 27 AF 1E 01 FF 02 00 AF 18 02 FF 02 42 C6 3A FE A3 0E 63 A2 0E 00 AF 1A F1 1F 0E 65 F2 32 25 AF 1E 65 F2 32 FF A1 0E 2D A0 0E 01 AF 18 FB BF 0E 01 CF 02 23 AF 1E 7F FF 0E 53 F2 32 23 AF 1E 24 BF 1E 53 F2 36
-W: 16 64 DD 24
-X: 2
-C: 16 66 00
-W: 16 00 02 6D 00 00 6C AF 0C FC CC 0E 7B 5F 0D B1 C5 3A D0 FC 00 CF 17 00 53 F2 33 FF A1 0E 2D A0 0E 01 AF 18 FB BF 0E 01 CF 02 FE A1 0E 63 A0 0E 02 AF 0C 13 AF 0C 00 AF 1A 01 CF 02 00 1F 19 00 DF 02 2C AF 16 A3 F7 39 FF FF 23 A8 F7 39 EB AF 16 C4 AF 0C B5 AF 0C 04 FD 02 05 FE 02 FE A1 0E 63 A0 0E 00 BF 19
-W: 16 64 0F 28
-X: 2
-C: 16 66 00
-W: 16 00 02 6E 00 00 06 FF 02 4C AF 0C FB CC 0E 5B 5F 0D 6F F9 3A 09 FB 02 0A FC 02 4C AF 0C F7 CC 0E 5B 5F 0D 6F F9 3A 0B FB 02 0C FC 02 5B AF 0C 4C AF 0C 6F F9 3A 07 FB 02 08 FC 02 FE A1 0E 9F A0 0E 01 AE 18 00 AD 18 FE AB 0E 5E AC 0E 0C C4 3A 05 A0 1E 04 A1 1E 0E CB 02 0F CC 02 0A AC 1E 09 AB 1E C0 7F 3A
-W: 16 64 A2 24
-X: 2
-C: 16 66 00
-W: 16 00 02 6F 00 00 C8 AF 0C B9 AF 0C BD A3 0E A0 A2 0E BF A1 0E AA A0 0E 0B AF 18 FF 7F 03 0A AF 18 FF 7F 03 0C AE 1A 0B AD 1A D8 7F 39 02 AF 16 DF 09 0C 0E F2 32 EF 18 0C 38 F1 34 05 A0 1E 04 A1 1E 0F AC 18 0E AB 18 0C AE 1E 0B AD 1E FE C4 3A 08 4C 1E 07 5B 1E 0A AE 1E 09 AD 1E 80 C4 3A 0D FB 02 0E FC 02
-W: 16 64 28 23
-X: 2
-C: 16 66 00
-W: 16 00 02 70 00 00 BE A1 0E 3B A0 0E 02 AB 18 FE 2B 0E FF 1B 0E 94 F1 36 BF A1 0E BB A0 0E 04 AB 18 FC 2B 0E FD 1B 0E 94 F1 32 05 A0 1E 04 A1 1E 0F AC 18 0E AB 18 0C AE 1E 0B AD 1E CC C4 3A 00 FB 02 01 FC 02 0E AC 1E 0D AB 1E 17 AE 0E FC AD 0E BE 7F 3A C4 AF 0C B5 AF 0C FF AB 0E 06 AC 0E 5D AF 0C 4E AF 0C
-W: 16 64 2C 25
-X: 2
-C: 16 66 00
-W: 16 00 02 71 00 00 34 FA 3A 7F F5 0E DA F1 32 C0 AF 04 A1 F1 36 09 AF 1E 00 FF 02 0A AF 1E 01 FF 02 08 AC 1E 07 AB 1E 0C AE 1E 0B AD 1E 20 C5 3A 0F FB 02 10 FC 02 FF A1 0E 2D A0 0E 01 AB 18 F7 2B 0E FF 1B 0E C4 F1 36 FE A1 0E 9F A0 0E 03 AC 18 02 AB 18 C0 F1 33 FE A1 0E 9F A0 0E 01 AC 18 00 AB 18 BF A1 0E
-W: 16 64 B8 26
-X: 2
-C: 16 66 00
-W: 16 00 02 72 00 00 BB A0 0E 01 AE 18 00 AD 18 C7 F7 3A 10 CC 1E 0F DB 1E 7F FB 0E B5 F1 36 FF AC 0E FF AB 0E FE A1 0E 63 A0 0E 05 CB 02 06 CC 02 FF A1 0E 2D A0 0E 01 AF 18 FB BF 0E 01 CF 02 D0 FC 00 CF 17 00 C0 FE 00 7F F5 0E A1 F1 36 FF A1 0E 53 A0 0E FE AF 0E 12 CF 02 17 A4 0E FC A5 0E 08 AC 1E 07 AB 1E
-W: 16 64 A8 29
-X: 2
-C: 16 66 00
-W: 16 00 02 73 00 00 99 F0 3A FF 1C 0E 94 F1 36 FF A1 0E 53 A0 0E FE AF 0E 11 CF 02 FE AF 0E 12 CF 02 D0 B5 01 CF B4 01 06 AB 1E 3B C4 3A 05 A0 1E 04 A1 1E 0F 1C 18 12 FF 02 0E 5B 18 11 FB 02 BF A1 0E AA A0 0E 0C AF 18 14 FF 02 FF AF 0E 13 FF 02 06 1B 1F 3B C4 3A C4 AF 0C B5 AF 0C 06 AB 1E 3B C4 3A 4E 4C 0C
-W: 16 64 17 25
-X: 2
-C: 16 66 00
-W: 16 00 02 74 00 00 5D 5B 0C 14 AC 1E 13 AB 1E B9 7F 3A 12 AE 1E 11 AD 1E BF 1D 0C 76 F1 32 CF 1E 0C 38 F1 35 05 A0 1E 04 A1 1E 0E AF 18 02 FF 02 0F AF 18 03 FF 02 6C AF 0C FD CC 0E 7B 5F 0D 55 C3 3A C5 AF 0C FF A1 0E 2D A0 0E 0E AC 18 0D AB 18 D7 C3 3A 5E AF 0C FF AD 0E EE CE 0C DD DD 0C CC CE 0C BB DD 0C
-W: 16 64 91 26
-X: 2
-C: 16 66 00
-W: 16 00 02 75 00 00 03 AE 1E 02 AD 1E 6B C3 3A FF A1 0E 2D A0 0E 0E A8 18 0D A9 18 CE 9F 0D BD CF 0D 9B AF 0C 8C AF 0C 93 C4 3A E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 0E AD 1E 0D AC 1E FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D9 7F 39 04 AF 16 D1 7F 39 0D FD 02 0E FE 02 05 A0 1E 04 A1 1E 0F AE 18 0E AD 18
-W: 16 64 CA 27
-X: 2
-C: 16 66 00
-W: 16 00 02 76 00 00 0D AF 1E 00 FF 02 0E AF 1E 01 FF 02 1B AF 0C 0C AF 0C F9 F8 3A 15 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 F1 AD 0E ED F9 3A FE A1 0E 9F A0 0E 01 AE 18 00 AD 18 FE AB 0E 5E AC 0E 0C C4 3A 00 FB 02 01 FC 02 FE A5 0E 63 A4 0E 00 AF 0E 01 EF 02 7B AF 0C 6C AF 0C 55 C3 3A CB 1F 0D 00 EB 02
-W: 16 64 90 28
-X: 2
-C: 16 66 00
-W: 16 00 02 77 00 00 FE A1 0E 9F A0 0E 26 CB 02 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 DE AF 16 DA C3 3A C4 AF 0C B5 AF 0C 00 AB 1C 01 AF 1C AA 1F 0E F3 F0 32 FF 1B 0E F3 F0 36 00 1B 0E F3 F0 36 FA 1B 0E F3 F0 36 DF AB 0E 62 AF 0C FD C2 0E 73 5F 0D 40 AF 0C BF C0 0E 51 5F 0D 01 AF 10 01 5F 03 BB BF 0D 03 F1 32
-W: 16 64 16 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 78 00 00 00 AF 0E 02 FF 02 AA AF 0E 03 FF 02 00 F5 02 01 F4 02 DF AC 0E FF AB 0E 6E AF 0C FD CE 0E 7D 5F 0D F0 FD 3A 22 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FB AF 16 00 FB 02 01 FC 02 02 FD 02 03 FE 02 09 AB 1E FF AF 0E 04 FF 02 FE A5 0E 63 A4 0E FF 1B 0E DF F0 32 00 AB 1C 74 F0 3A FF 1C 0E B1 F0 36
-W: 16 64 50 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 79 00 00 01 A0 1E 00 A1 1E 00 AF 18 FF 7F 03 01 A0 18 01 A1 16 FF 01 0E D6 F0 32 FE 10 0E B7 F0 34 FF A3 0E 2D A2 0E 01 AB 1A FE 2B 0E FF 1B 0E B7 F0 36 BF A1 0E BB A0 0E 04 AB 18 FC 2B 0E FF 1B 0E B7 F0 36 01 AB 1A FB 2B 0E FF 1B 0E B7 F0 32 00 AB 1C 3B C4 3A CE AF 0C BD AF 0C 01 AC 1E 00 AB 1E
-W: 16 64 A6 26
-X: 2
-C: 16 66 00
-W: 16 00 02 7A 00 00 7E F8 3A 03 A0 1E 02 A1 1E 00 CB 02 01 CC 02 FE AF 0E 04 FF 02 B5 F0 33 00 1F 1D 00 EF 02 01 AC 1E 00 AB 1E F1 AD 0E ED F9 3A 04 AC 1E FF AB 0E 05 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FF AB 0E FE A5 0E 9F A4 0E FE A1 0E 63 A0 0E 00 AF 18 26 1F 1C 9D F0 34 8C C6 3A FE A1 0E 63 A0 0E 00 AF 18
-W: 16 64 FD 28
-X: 2
-C: 16 66 00
-W: 16 00 02 7B 00 00 26 EF 02 FE AB 0E BC AF 0C FF AB 0E A3 F7 39 FF FF 23 A8 F7 39 FD AF 16 C4 AF 0C B5 AF 0C FF AF 0E 02 FF 02 FE A1 0E 9F A0 0E 34 AC 18 33 AB 18 37 AF 18 00 FF 02 38 AF 18 01 FF 02 9B AE 0E FF AD 0E BE 7F 3A CD AF 0C BF A1 0E AA A0 0E 36 AC 18 38 CC 18 35 AB 18 37 DB 18 BF 05 0C 7E F0 32
-W: 16 64 1C 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 7C 00 00 CF 14 0C 7B F0 35 54 1D 18 79 F0 30 FE AF 0E 02 FF 02 02 AC 1E FF AB 0E 03 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 00 FB 02 FF AF 0E 01 FF 02 F1 1B 0E 5C F0 30 FE A1 0E 9F A0 0E 01 AE 18 00 AD 18 FE AB 0E 5E AC 0E 0C C4 3A C4 AF 0C B5 AF 0C 00 AB 1E 3B C4 3A BF 05 0C 5F F0 32 CF 14 0C
-W: 16 64 A9 29
-X: 2
-C: 16 66 00
-W: 16 00 02 7D 00 00 5C F0 35 FE AF 0E 01 FF 02 01 AC 1E FF AB 0E 02 AF 16 A3 F7 39 FF FF 23 96 F7 39 FF AF 16 EC AF 0E 00 FF 02 FF AB 0E 40 AC 0E BD AD 0E FF AE 0E E0 7F 3A 01 AF 16 93 F7 39 FF FF 23 A8 F7 39 FC AF 16 F7 F9 3A CE AF 0C FF AD 0E FF A5 0E 2D A4 0E 0A AC 1C 09 AB 1C BD A1 0E A0 A0 0E 1E AF 18
-W: 16 64 2F 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 7E 00 00 01 FF 02 FF AF 0E 00 FF 02 BE 7F 3A 02 FB 02 03 FC 02 01 AB 1C FE 2B 0E FF 1B 0E 27 F0 36 0E AC 1C AB CC 0E 0D AB 1C 0A DB 0E FF AD 0E FB EF 3A 12 AC 1C 11 AB 1C FE AD 0E FB EF 3A 03 AC 1E 02 AB 1E FD AD 0E FB EF 3A 04 AF 16 A3 F7 39 FF FF 23 96 F7 39 BF AF 04 BE BF 04 13 F0 36 BD A1 0E
-W: 16 64 48 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 7F 00 00 FF A0 0E BE AC 04 BF AB 04 CF 1F 0D BE BF 01 BF 5F 0D BF BF 01 11 1B 18 15 F0 32 12 1C 18 13 F0 35 11 F0 3A 93 F7 39 FF FF 23 96 F7 39 FE AF 16 BF FF 00 BE FF 00 FF A1 0E 40 A0 0E 0D 1F 19 0D CF 02 0C 5F 19 0C CF 02 BD AF 0E 00 FF 02 FF AF 0E 01 FF 02 EC AC 0E FF AB 0E 1D AF 0C 0E AF 0C
-W: 16 64 A1 28
-X: 2
-C: 16 66 00
-W: 16 00 02 80 00 00 F0 FD 3A 02 AF 16 93 F7 39 FF FF 23 A8 F7 39 FF AF 16 C2 AF 0C B3 AF 0C FF AF 0E 00 FF 02 DE AF 0C FF AD 0E E0 AF 0C FF C0 0E D1 AF 0C BD D1 0E 0E A8 18 FF A9 0E FB EE 0E FF 7F 03 FB ED 0E ED BF 0C 01 AE 16 E0 AF 0C 40 C0 0E D1 AF 0C FF D1 0E E4 AF 0C FF C4 0E D5 AF 0C BD D5 0E 00 03 18
-W: 16 64 B8 31
-X: 2
-C: 16 66 00
-W: 16 00 02 81 00 00 DD EF 32 01 12 18 D5 EF 34 00 C3 02 01 C2 02 2C AF 0C 01 3C 1C 3B AF 0C 00 7B 1C CB EF 33 02 03 18 D2 EF 32 03 12 18 C5 EF 31 02 C3 02 03 C2 02 03 12 1C FC AF 0C 02 AB 1C 3B 7B 0C 9F 0B 0C C8 EF 32 8F 1C 0C C5 EF 34 FE AF 0E 00 FF 02 00 AF 1E BE EF 36 BF AF 04 BE BF 04 BE EF 32 BF FF 00
-W: 16 64 45 25
-X: 2
-C: 16 66 00
-W: 16 00 02 82 00 00 BE FE 00 00 AC 1E FF AB 0E 01 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FC AF 16 02 AF 16 9F A0 0E 7F A1 0E 00 AB 18 FA BB 0E 00 CB 02 3A E1 3A DF AF 04 3E EF 32 3E FD 3A BD A5 0E A0 A4 0E FF A3 0E 2D A2 0E 00 AF 1C 09 DF 02 01 AF 1C 0A DF 02 0C AE 1C 0B AD 1C FF AB 0E 26 AC 0E 34 FA 3A 0E AE 1C
-W: 16 64 A2 28
-X: 2
-C: 16 66 00
-W: 16 00 02 83 00 00 0D AD 1C FF AB 0E 0A AC 0E 34 FA 3A FF A1 0E 2D A0 0E 02 AF 0C 13 AF 0C 10 AF 1A FE BF 0E 10 CF 02 F4 AF 0E 0D DF 02 8D AF 0E 0E DF 02 BA AF 04 F7 BF 0E BA BF 01 BF A1 0E AA A0 0E 01 AF 18 FD 1F 0E 7D EF 36 01 AB 18 FE 2B 0E F7 EB 0E FB AF 0C 31 AF 0C 20 AF 0C 01 AF 18 08 2F 0E 01 DF 02
-W: 16 64 0C 26
-X: 2
-C: 16 66 00
-W: 16 00 02 84 00 00 BF BF 0C 01 CF 02 57 F0 3A BF A1 0E BB A0 0E 0C AC 18 0B AB 18 33 F3 3A FF A1 0E 2D A0 0E 0A AC 18 09 AB 18 86 DB 3A 02 EF 3A FF A3 0E 2D A2 0E 09 AF 1A 99 BF 01 0A AF 1A 98 BF 01 0D AF 1A 97 BF 01 0E AF 1A 96 BF 01 AF E3 3A FF AC 0E BD A1 0E B5 A0 0E 0D AF 18 02 FF 02 0E AF 18 03 FF 02
-W: 16 64 62 26
-X: 2
-C: 16 66 00
-W: 16 00 02 85 00 00 9F A0 0E 7F A1 0E 00 AB 18 F7 2B 0E CF 1B 0C 52 EF 36 00 AB 18 08 2B 0E 00 CB 02 6C AF 0C FC CC 0E 7B 5F 0D 28 EA 3A DF AF 04 4C EF 32 6C AF 0C FD CC 0E 7B 5F 0D 28 EA 3A FF 1C 0E 40 EF 36 6E AF 0C FD CE 0E 7D 5F 0D BD AF 0E 00 FF 02 A8 AF 0E 01 FF 02 FD AC 0E FF AB 0E F0 FD 3A FF AB 0E
-W: 16 64 3C 29
-X: 2
-C: 16 66 00
-W: 16 00 02 86 00 00 35 EF 33 DF AB 04 EF 2B 0E FF 1B 0E 34 EF 36 DF AF 04 10 2F 0E DF BF 01 57 F0 3A FE AB 0E 83 E4 3A 19 F1 3A 1C EA 3A BE A1 0E 3B A0 0E 02 AB 18 FB 2B 0E FF 1B 0E 1B EF 36 BF A1 0E 48 A0 0E 00 AB 18 FF AC 0E FB 1B 0E 24 EF 32 FF 1C 0E 20 EF 36 BF 1B 0E 1B EF 32 FF 1C 0E 1B EF 32 FF A1 0E
-W: 16 64 96 28
-X: 2
-C: 16 66 00
-W: 16 00 02 87 00 00 2D A0 0E 13 AF 18 BF BF 0E 13 CF 02 FF AB 0E 57 EA 3A 9C AF 04 FE 1F 0E 11 EF 32 FF AB 0E 4F E9 3A EB F6 3A FE AB 0E 1A EF 33 9C AF 04 00 1F 0E 09 EF 32 FE AB 0E 4F E9 3A 16 F5 3A 00 AB 0E 1A EF 33 FF AB 0E 4F E9 3A 9B E4 3A 1B EF 33 04 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 1C EA 3A
-W: 16 64 86 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 88 00 00 FF A5 0E 2D A4 0E FE A1 0E 5A A0 0E 0E AC 1C 03 3C 18 0D AB 1C 02 7B 18 C0 7F 3A BE A1 0E 6A A0 0E 1F 0B 18 F1 EE 32 20 1C 18 B8 EE 34 6C AF 04 B8 EE 32 9C AF 04 E8 EE 32 13 AF 1C FD BF 0E 13 EF 02 B8 EE 33 F3 C8 3A 9C AF 04 00 1F 0E C6 EE 32 BF A1 0E AA A0 0E 00 AB 18 FF A1 0E 53 A0 0E
-W: 16 64 47 28
-X: 2
-C: 16 66 00
-W: 16 00 02 89 00 00 0F AE 18 0E AD 18 D0 AF 04 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C FF AE 0E 7F C8 3A 65 AF 04 B8 EE 36 09 AF 1C CA BF 01 0A AF 1C C9 BF 01 19 AF 1C C6 BF 01 1A AF 1C C5 BF 01 05 AF 1C C8 BF 01 06 AF 1C C7 BF 01 B8 EE 33 99 EA 3A CB AF 0C BF A1 0E BB A0 0E 0C AE 18 0B AD 18 D0 AF 04
-W: 16 64 02 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 8A 00 00 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C F7 AE 0E 7F C8 3A 6B AF 04 B3 EE 36 6C AF 04 B3 EE 32 41 C7 3A 20 2A 0E DF FA 0E B3 EE 32 FF A3 0E 2D A2 0E 13 AB 1A F7 2B 0E FF 1B 0E A2 EE 36 9F A0 0E 7F A1 0E 00 AB 18 FA BB 0E 00 CB 02 13 AF 1A 08 2F 0E 13 DF 02 76 FF 3A 6C FF 00 9F A0 0E
-W: 16 64 8C 29
-X: 2
-C: 16 66 00
-W: 16 00 02 8B 00 00 7F A1 0E 00 AB 18 FA BB 0E 00 CB 02 E7 E9 3A CB AF 0C FE 6B 0E 8F EE 3A EC EB 3A 4B F0 3A E5 CD 3A CF ED 3A FF AB 0E 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F9 AF 16 CE AF 0C BD AF 0C FE AB 0E CF AC 0E C0 AF 0C B1 AF 0C 06 AF 18 04 FF 02 BF A3 0E AA A2 0E C9 A4 04 36 34 1A CA A5 04 35 75 1A
-W: 16 64 2D 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 8C 00 00 FF A1 0E 2D A0 0E 0A AF 18 36 3F 1A 06 FF 02 09 AF 18 35 7F 1A 05 FF 02 FE A3 0E 9F A2 0E 04 A8 1E 89 AF 0C FE 69 0E 08 18 1A 08 DF 02 07 AF 1A 9F 7F 0C 07 DF 02 01 18 1A 01 DF 02 00 AF 1A 9F 7F 0C 00 DF 02 03 1E 1A 03 DF 02 02 AF 1A DF 7F 0C 02 DF 02 C0 AF 0C B1 AF 0C 06 AF 18 FF 0F 0E
-W: 16 64 98 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 8D 00 00 59 EE 31 1E 18 1A 1E DF 02 1D AF 1A 9F 7F 0C 1D DF 02 8C AF 0C 34 CC 1A 9B AF 0C 33 DB 1A 33 DB 02 34 DC 02 7F FB 0E 50 EE 32 65 FF 00 EF AF 0C 36 CF 1A 36 DF 02 DF AF 0C 35 DF 1A 35 DF 02 BE A1 0E 3B A0 0E 03 AB 18 FE 2B 0E FF 1B 0E DF ED 36 65 AF 04 F7 ED 36 7F F5 0E F7 ED 32 5F B4 0C
-W: 16 64 E5 28
-X: 2
-C: 16 66 00
-W: 16 00 02 8E 00 00 F7 ED 36 05 AF 1E 7F FF 0E F7 ED 32 05 AF 1E 06 BF 1E F7 ED 36 31 AF 0C 20 AF 0C 06 AC 1E 05 AB 1E C5 AE 04 C6 AD 04 DD 7F 39 E8 AF 0C D9 AF 0C FF 74 03 FF 75 03 9D AF 0C 8E AF 0C D8 7F 39 02 AF 16 1C AC 18 1B AB 18 DF 0B 0C 24 EE 32 EF 1C 0C 20 EE 30 CE AF 0C BD AF 0C 1A EE 33 FF 74 03
-W: 16 64 F0 29
-X: 2
-C: 16 66 00
-W: 16 00 02 8F 00 00 FF 75 03 9D AF 0C 8E AF 0C D8 7F 39 02 AF 16 1B CD 02 1C CE 02 FE A1 0E 9F A0 0E 06 AC 1E 05 AB 1E C7 AE 04 C8 AD 04 DD 7F 39 E8 AF 0C D9 AF 0C FF 74 03 FF 75 03 9D AF 0C 8E AF 0C D8 7F 39 02 AF 16 1A AC 18 19 AB 18 DF 0B 0C 04 EE 32 EF 1C 0C 00 EE 30 CE AF 0C BD AF 0C FA ED 33 FF 74 03
-W: 16 64 AB 29
-X: 2
-C: 16 66 00
-W: 16 00 02 90 00 00 FF 75 03 9D AF 0C 8E AF 0C D8 7F 39 02 AF 16 19 CD 02 1A CE 02 DB ED 33 BE A1 0E 3B A0 0E 03 AB 18 FE 2B 0E FF 1B 0E DF ED 36 05 AF 1E 06 BF 1E DF ED 32 9C AF 04 00 1F 0E DF ED 32 FF AF 0E 00 FF 02 01 FF 02 FF AF 0E 02 FF 02 03 FF 02 7B AF 0C 6C AF 0C FE AD 0E 68 AE 0E CD CC 3A DB ED 33
-W: 16 64 02 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 91 00 00 04 AB 1E BC AF 0C FE 6B 0E C4 CE 3A FE A1 0E 5A A0 0E 04 AC 1E CB AF 0C FE 6B 0E 05 1C 18 05 CF 02 04 5B 18 04 CB 02 07 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FD AF 16 FF AB 04 EF 2B 0E FF 1B 0E C2 ED 36 EF A0 0E 7F A1 0E 03 AB 18 7F 2B 0E FF 1B 0E BC ED 32 AA ED 33 DF A0 0E 7F A1 0E 03 AB 18
-W: 16 64 C5 29
-X: 2
-C: 16 66 00
-W: 16 00 02 92 00 00 7F 2B 0E FF 1B 0E AA ED 36 BD AC 04 FF AB 0E FD CC 0E BB 5F 0D BE A1 0E 2F A0 0E 04 AE 18 FF AD 0E DF 0B 0C B1 ED 32 EF 1C 0C AD ED 35 FE AF 0E 02 FF 02 A7 ED 33 BD 1F 05 BD BF 01 A9 ED 33 BD FF 00 FF AF 0E 02 FF 02 FF A1 0E 2D A0 0E 00 AB 18 F3 2B 0E FF 1B 0E 90 ED 36 BF A0 0E 7F A1 0E
-W: 16 64 F3 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 93 00 00 00 AB 18 FD 2B 0E FF 1B 0E 90 ED 36 73 EC 3A FE 2C 0E CB AF 0C F7 EB 0E FB AF 0C BA AF 04 08 2F 0E BA BF 01 BF BF 0C BA BF 01 62 ED 33 FF A5 0E 2D A4 0E 12 AC 1C 11 AB 1C C0 7F 3A BE A1 0E 2F A0 0E 02 0B 18 86 ED 32 03 1C 18 62 ED 30 BA AB 04 F7 2B 0E FF 1B 0E 62 ED 32 0E AC 1C AB CC 0E
-W: 16 64 3B 28
-X: 2
-C: 16 66 00
-W: 16 00 02 94 00 00 0D AB 1C 0A DB 0E 07 0B 18 7A ED 32 08 1C 18 62 ED 30 05 0B 18 76 ED 32 06 1C 18 62 ED 35 11 AF 1C 12 BF 1C 62 ED 36 B1 AF 04 62 ED 32 00 AF 1C F7 BF 0E 00 EF 02 73 EC 3A FE 2C 0E CB AF 0C F7 EB 0E FB AF 0C BA AF 04 08 2F 0E BA BF 01 BF BF 0C BA BF 01 B1 5F 00 02 AF 1E 5D ED 32 BA AF 04
-W: 16 64 FE 25
-X: 2
-C: 16 66 00
-W: 16 00 02 95 00 00 08 2F 0E BA BF 01 BF A1 0E FF A0 0E 9A AC 04 9B AB 04 08 1B 18 55 ED 32 09 1C 18 4C ED 36 BF AF 0E 00 FF 02 F7 AF 0E 01 FF 02 FD AC 0E FF AB 0E FF AD 0E 9B AE 0E F0 FD 3A FF AC 0E FF AB 0E 03 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FF AF 16 FF A5 0E 2D A4 0E 07 AF 1C 7F FF 0E 3D ED 32 07 AF 1C
-W: 16 64 20 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 96 00 00 08 BF 1C 3B ED 32 FF AD 0E 34 ED 33 EA D6 3A 08 AE 1C 07 AD 1C FE AF 0E 00 FF 02 35 F8 3A CD AF 0C FF AB 0E 2B AC 0E DE AF 0C FE 6D 0E C8 E8 3A FF A1 0E 2D A0 0E 03 AD 18 BE A1 0E 6A A0 0E 1B AF 18 00 1F 0E 21 ED 36 1B 0D 18 21 ED 35 BA AF 04 7F BF 0E BA BF 01 1A ED 33 BE A1 0E 6A A0 0E
-W: 16 64 61 28
-X: 2
-C: 16 66 00
-W: 16 00 02 97 00 00 1C 0D 18 1A ED 30 BA AF 04 80 2F 0E BA BF 01 BE A1 0E 6A A0 0E 1D AF 18 00 1F 0E 0F ED 36 1D 0D 18 0F ED 35 BA AF 04 BF BF 0E BA BF 01 08 ED 33 BE A1 0E 6A A0 0E 1E 0D 18 08 ED 30 BA AF 04 40 2F 0E BA BF 01 BC AF 04 EB EC 36 EA D6 3A BD A5 0E A0 A4 0E 3E 1B 1C 00 ED 32 3F 1C 1C F7 EC 30
-W: 16 64 32 25
-X: 2
-C: 16 66 00
-W: 16 00 02 98 00 00 BA AB 04 DF 2B 0E FF 1B 0E EB EC 32 BA AF 04 DF BF 0E BA BF 01 EB EC 33 EA D6 3A 40 1B 1C F3 EC 32 41 1C 1C EB EC 35 BA AB 04 DF 2B 0E FF 1B 0E EB EC 36 BA AF 04 20 2F 0E BA BF 01 BC FE 00 EA D6 3A BD A5 0E A0 A4 0E 42 1B 1C E4 EC 32 43 1C 1C DF EC 30 BA AF 04 EF BF 0E BA BF 01 D7 EC 33
-W: 16 64 EA 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 99 00 00 EA D6 3A 44 1B 1C DB EC 32 45 1C 1C D7 EC 35 BA AF 04 10 2F 0E BA BF 01 FF A3 0E 2D A2 0E FF AC 0E BA AB 04 7F 2B 0E CF 1B 0C C9 EC 32 FF A1 0E 1E A0 0E 00 AB 18 73 2B 0E CF 1B 0C C9 EC 32 FE AC 0E 0F AF 1A 01 2F 0E 0F DF 02 CF BF 0C 0F DF 02 FF A1 0E 2D A0 0E BA AB 04 FB EB 0E FE 2B 0E
-W: 16 64 21 28
-X: 2
-C: 16 66 00
-W: 16 00 02 9A 00 00 BB AF 0D 0F AF 18 02 2F 0E 0F CF 02 BF BF 0C 0F CF 02 BA AB 04 F7 EB 0E FE 2B 0E FB EB 0E FB AF 0C 10 AF 18 04 2F 0E 10 CF 02 BF BF 0C 10 CF 02 BA AB 04 EF EB 0E FE 2B 0E BB AF 0D 10 AF 18 02 2F 0E 10 CF 02 BF BF 0C 10 CF 02 01 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 FF A1 0E 2D A0 0E
-W: 16 64 4F 28
-X: 2
-C: 16 66 00
-W: 16 00 02 9B 00 00 0C AC 18 0B AB 18 B4 E9 3A CE AF 0C BD AF 0C FF AB 0E 16 AC 0E 34 FA 3A FF A1 0E 2D A0 0E 01 AB 18 F7 2B 0E FF 1B 0E 8C EC 36 1C A4 18 1B A5 18 1A AE 18 19 AD 18 86 EC 33 FF A1 0E 2D A0 0E 0C A4 18 0B A5 18 06 AE 18 05 AD 18 4F 9F 0D 01 FF 02 5F CF 0D 00 FF 02 C3 AC 0E FF AB 0E BD 7F 3A
-W: 16 64 FC 25
-X: 2
-C: 16 66 00
-W: 16 00 02 9C 00 00 CE AF 0C BD AF 0C 7F F5 0E 79 EC 32 00 AE 0E 00 AD 0E FF AB 0E 18 AC 0E 34 FA 3A 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F9 AF 16 FF A1 0E 2D A0 0E 00 AB 18 F3 2B 0E FB 1B 0E 67 EC 36 BF A0 0E 7F A1 0E FC AF 0E 00 CF 02 FF A1 0E 2D A0 0E 09 AF 18 05 FF 02 0A AF 18 06 FF 02 76 FF 3A FF AF 0E
-W: 16 64 5E 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 9D 00 00 03 FF 02 04 FF 02 BF A1 0E FF A0 0E 38 A4 18 37 A5 18 5F B4 0C 3B EC 36 9F A0 0E 7F A1 0E 00 AB 18 FA BB 0E 00 CB 02 76 FF 3A FF A1 0E 2D A0 0E 06 AC 1E 0A 3C 18 05 AB 1E 09 7B 18 BF A1 0E FF A0 0E 42 0B 18 46 EC 32 43 1C 18 2A EC 30 04 AF 1E DB CF 04 04 FF 02 03 AF 1E DC DF 04 03 FF 02
-W: 16 64 7D 24
-X: 2
-C: 16 66 00
-W: 16 00 02 9E 00 00 44 BF 0D 55 FF 0D 5F B4 0C 57 EC 32 BF A0 0E 7F A1 0E FD AF 0E 00 CF 02 5F B4 0C F6 EB 32 FF A1 0E 2D A0 0E 00 AB 18 F3 2B 0E FB 1B 0E 21 EC 36 03 AF 1E 9B BF 01 04 AF 1E 9A BF 01 14 EC 33 FF AB 0E 2D AC 0E FB AD 0E 07 FA 3A FF AB 0E 2D AC 0E F7 AD 0E 07 FA 3A 3B EC 33 04 AF 1E 9A 3F 04
-W: 16 64 89 28
-X: 2
-C: 16 66 00
-W: 16 00 02 9F 00 00 02 FF 02 6E AF 0C FD CE 0E 7D 5F 0D BF AF 0E 00 FF 02 F5 AF 0E 01 FF 02 FE AC 0E FF AB 0E F0 FD 3A FF A1 0E 2D A0 0E 00 AB 18 F7 2B 0E FF 1B 0E 0A EC 36 1B AF 0C 0C AF 0C F7 AD 0E 03 EC 33 00 AB 18 FB 2B 0E FF 1B 0E 02 EC 36 1B AF 0C 0C AF 0C FB AD 0E 07 FA 3A FF A1 0E 2D A0 0E 09 AF 18
-W: 16 64 C2 27
-X: 2
-C: 16 66 00
-W: 16 00 02 A0 00 00 99 BF 01 0A AF 18 98 BF 01 0D AF 18 97 BF 01 0E AF 18 96 BF 01 FE AC 0E F5 EB 33 FF AC 0E 9F A0 0E 7F A1 0E 00 AB 18 FA BB 0E 00 CB 02 FF AB 0E 07 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FD AF 16 DF FA 0E FB AF 0C 02 FB 02 20 2A 0E DF FA 0E E7 EB 32 BB AF 04 E0 EB 36 BB BF 05 BB BF 01 02 AB 1E
-W: 16 64 F1 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 A1 00 00 BA BA 0C DF AB 04 EF 2B 0E FF 1B 0E D6 EB 36 EF AB 0E B9 AC 0E FE AD 0E 38 FF 3A FE A1 0E 9F A0 0E 24 1F 19 24 CF 02 23 5F 19 23 CF 02 22 5F 19 22 CF 02 21 5F 19 21 CF 02 25 1F 19 25 CF 02 2C 1F 19 2C CF 02 2B 5F 19 2B CF 02 2A 5F 19 2A CF 02 29 5F 19 29 CF 02 25 AF 18 1F 1F 0E 95 EB 34
-W: 16 64 A6 21
-X: 2
-C: 16 66 00
-W: 16 00 02 A2 00 00 25 AF 18 E0 CF 0E 25 CF 02 FE AB 0E 96 AC 0E F0 F7 3A FE AB 0E 9B AC 0E F0 F7 3A B1 AF 04 B0 EB 36 B1 BF 05 B1 BF 01 B1 AB 04 AF EB 33 FF AB 0E B1 BB 01 FE A1 0E 9F A0 0E 05 AC 18 04 AB 18 12 E4 3A C4 AF 0C B5 AF 0C BF A1 0E AA A0 0E 0D AC 18 FF AB 0E BD A1 0E A0 A0 0E 0C AE 18 0B AD 18
-W: 16 64 59 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 A3 00 00 B9 7F 3A BF 15 0C 9B EB 32 CF 14 0C 95 EB 35 FF A1 0E 2D A0 0E 01 AF 18 FB BF 0E 01 CF 02 FF A1 0E 2D A0 0E 0E AE 18 AB CE 0E 0D AD 18 0A DD 0E BD A5 0E A0 A4 0E F5 AB 0E 1A 6B 1C FC AF 0C BF 0D 0C 87 EB 32 CF 1E 0C 7F EB 35 F5 AB 0E 1D 6B 1C FC AF 0C BF 0D 0C 80 EB 32 CF 1E 0C 75 EB 34
-W: 16 64 D0 28
-X: 2
-C: 16 66 00
-W: 16 00 02 A4 00 00 FF AB 0E 0E AC 0E FF AE 0E FF AD 0E 34 FA 3A FF AB 0E 0C AC 0E FF AE 0E FF AD 0E 59 EB 33 90 EA 3A FF AB 0E CC CC 0C BB DB 0C C0 C4 0C B1 D5 0C 12 AE 18 11 AD 18 FF AB 0E 0E AC 0E 34 FA 3A 90 EA 3A FF AB 0E C0 C4 0C B1 D5 0C 17 AC 18 FF AB 0E 0C AE 1C 0B AD 1C FF AF 0E 00 FF 02 9B AF 0E
-W: 16 64 B7 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 A5 00 00 01 FF 02 BE 7F 3A CE AF 0C BD AF 0C FF AB 0E 0C AC 0E 34 FA 3A FF A1 0E 1E A0 0E BE A3 0E 36 A2 0E 00 AB 18 00 2B 1A 01 AC 18 01 2C 1A BF BC 0C 4C EB 36 E4 F9 3A 4B EB 33 D6 F9 3A 24 F0 3A 03 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FB AF 16 04 FC 02 FD 1B 0E 2B EB 36 FD 0B 0E 3D EB 30 FF 1B 0E
-W: 16 64 13 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 A6 00 00 36 EB 36 E9 EA 33 FB 1B 0E 0F EB 36 FB 0B 0E 1D EB 35 F9 1B 0E F4 EA 36 E9 EA 33 BF A1 0E BB A0 0E 07 AF 18 00 FF 02 08 AF 18 01 FF 02 09 AF 18 02 FF 02 0A AF 18 03 FF 02 E5 EA 33 FF A5 0E 2D A4 0E 12 AC 1C 11 AB 1C 0A AE 1C 09 AD 1C 3F F8 3A 02 FB 02 03 FC 02 11 AF 1C 00 FF 02 12 AF 1C
-W: 16 64 1B 26
-X: 2
-C: 16 66 00
-W: 16 00 02 A7 00 00 01 FF 02 E5 EA 33 FF A5 0E 2D A4 0E 0C AC 1C 0B AB 1C 0A AE 1C 09 AD 1C 3F F8 3A 02 FB 02 03 FC 02 0B AF 1C 00 FF 02 0C AF 1C 01 FF 02 E5 EA 33 BD A1 0E A0 A0 0E 0C AE 18 0B AD 18 FA AF 0E FF 7F 03 FF AF 0E FF 7F 03 D8 7F 39 02 AF 16 EF 9F 0D 01 FF 02 DF CF 0D 00 FF 02 0E AE 18 0D AD 18
-W: 16 64 D4 26
-X: 2
-C: 16 66 00
-W: 16 00 02 A8 00 00 FA AF 0E FF 7F 03 FF AF 0E FF 7F 03 D8 7F 39 02 AF 16 EF 9F 0D 03 FF 02 DF CF 0D 02 FF 02 E5 EA 33 BF A1 0E AA A0 0E 3E AF 18 00 FF 02 3F AF 18 01 FF 02 40 AF 18 02 FF 02 41 AF 18 03 FF 02 E5 EA 33 7B AF 0C 6C AF 0C FF AD 0E 0A F4 3A 04 AF 1E E0 EA 32 01 AC 1E 00 AB 1E DE EA 33 03 AC 1E
-W: 16 64 39 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 A9 00 00 02 AB 1E 05 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FC AF 16 FE A5 0E 9F A4 0E 1A AC 1C 19 AB 1C FF A1 0E 2D A0 0E 08 AE 18 07 AD 18 5A E9 3A 02 FB 02 03 FC 02 1C AC 1C 1B AB 1C FF A1 0E 2D A0 0E 24 AE 18 23 AD 18 5A E9 3A C4 AF 0C B5 AF 0C F7 F9 3A BD A1 0E A0 A0 0E CD AF 0C 1F ED 18 FE AF 0C
-W: 16 64 07 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 AA 00 00 20 AF 18 01 FF 02 FF AF 0E 00 FF 02 5B AF 0C 4C AF 0C BE 7F 3A C4 AF 0C B5 AF 0C FF AB 0E 28 AC 0E 03 AE 1E 02 AD 1E C8 E8 3A FF AB 0E 14 AC 0E 5D AF 0C 4E AF 0C C8 E8 3A BE A1 0E 3B A0 0E 03 AB 18 F7 2B 0E FF 1B 0E 9C EA 36 BA AB 04 EF 2B 0E FF 1B 0E 9C EA 36 FF A1 0E 2D A0 0E 05 AF 18
-W: 16 64 80 28
-X: 2
-C: 16 66 00
-W: 16 00 02 AB 00 00 06 BF 18 9C EA 32 80 FE 00 04 AF 16 A3 F7 39 FF FF 23 BF A1 0E AA A0 0E 00 AC 18 FF 0C 0E 91 EA 35 FC 0C 0E 91 EA 30 FF AC 0E FF FF 23 FE AD 0E FF A1 0E 2D A0 0E 0E A2 18 AB C2 0E 0D A3 18 0A D3 0E BE A1 0E 3B A0 0E 02 AB 18 F7 2B 0E FF 1B 0E 6F EA 36 BD A1 0E A0 A0 0E F5 AB 0E 1B 6B 18
-W: 16 64 AB 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 AC 00 00 FC AF 0C BF 03 0C 7B EA 32 CF 12 0C 78 EA 30 FF AD 0E 6F EA 33 F5 AB 0E 1C 6B 18 FC AF 0C FD AD 0E BF 03 0C 71 EA 32 CF 12 0C 6F EA 30 FE AD 0E DC AF 0C FF AB 0E FF FF 23 FF AB 0E BF A1 0E 48 A0 0E 00 AD 18 FF AE 0E F7 1D 0E 63 EA 32 FF 1E 0E 5B EA 36 7F 1D 0E 5F EA 32 FF 1E 0E 5B EA 36
-W: 16 64 F3 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 AD 00 00 9E 1D 0E 5A EA 32 FF 1E 0E 5A EA 32 FE AB 0E BC AF 0C FF AB 0E FF FF 23 FE A3 0E 9F A2 0E 24 AE 1A 23 AD 1A BF A1 0E AA A0 0E 2B 1D 18 4E EA 32 2C 1E 18 4A EA 34 2C AE 18 2B AD 18 36 EA 33 00 1B 0E 43 EA 32 BE A1 0E 23 A0 0E 07 3E 18 06 7D 18 36 EA 33 FE 1B 0E 3A EA 32 BE A1 0E 23 A0 0E
-W: 16 64 C5 25
-X: 2
-C: 16 66 00
-W: 16 00 02 AE 00 00 08 AC 18 FF AB 0E EE 4C 0C DD 5B 0C 36 EA 33 FF AE 0E FF AD 0E 27 DD 02 28 DE 02 DF BE 0C 30 EA 36 FE A1 0E 9F A0 0E 27 CD 02 28 CE 02 FE A1 0E 9F A0 0E FF AF 0E 21 CF 02 22 CF 02 23 CF 02 24 CF 02 FF FF 23 C0 AF 0C B1 AF 0C FF AB 0E 00 AF 18 05 1F 0E 1F EA 36 00 1F 19 00 CF 02 FE AB 0E
-W: 16 64 B1 28
-X: 2
-C: 16 66 00
-W: 16 00 02 AF 00 00 BC AF 0C FF AB 0E FF FF 23 96 F7 39 FC AF 16 DB EA 3A 47 ED 3A 46 E9 3A A3 EC 3A BD A1 0E A0 A0 0E 08 AF 18 02 FF 02 09 AF 18 03 FF 02 FE A3 0E 9F A2 0E 1E AC 1A 03 3C 1E 1D AB 1A 02 7B 1E 02 FB 02 03 FC 02 7F FB 0E EC E9 32 1D DB 02 1E DC 02 07 AC 18 06 AB 18 00 1B 0E FE E9 32 00 1C 0E
-W: 16 64 C8 27
-X: 2
-C: 16 66 00
-W: 16 00 02 B0 00 00 F9 E9 36 CF 1F 0D 03 FF 02 BF 5F 0D 02 FF 02 F6 E9 33 00 AF 0E 02 FF 02 03 FF 02 6E AF 0C FD CE 0E 7D 5F 0D BD AF 0E 00 FF 02 9A AF 0E 01 FF 02 FD AC 0E FF AB 0E F0 FD 3A FF AB 0E 8C C6 3A 04 AF 16 93 F7 39 FF FF 23 A8 F7 39 FC AF 16 FE A1 0E CF A0 0E 06 A4 18 45 AF 0C FE 65 0E B9 AF 04
-W: 16 64 75 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 B1 00 00 00 FF 02 B8 AF 04 01 FF 02 B7 AF 04 02 FF 02 B6 AF 04 03 FF 02 AE C6 3A 5D AF 0C 4E AF 0C DC 7F 39 B6 CE 04 B6 BE 01 B7 DD 04 B7 BD 01 B8 DC 04 B8 BC 01 B9 DB 04 B9 BB 01 B6 AE 04 03 3E 1E B7 AD 04 02 7D 1E B8 AC 04 01 7C 1E B9 AB 04 00 7B 1E EF AF 0E FF 7F 03 D8 AF 0E FF 7F 03 FF AF 0E
-W: 16 64 51 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 B2 00 00 FF 7F 03 FF AF 0E FF 7F 03 D6 7F 39 04 AF 16 EB AF 0C BC AF 0C FE 6B 0E 04 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 C2 AF 0C B3 AF 0C 7F F3 0E AC E9 32 3F B2 0C A9 E9 32 00 AC 0E 00 AB 0E 5D E9 33 FE A1 0E 9F A0 0E 30 A4 18 01 C4 18 2F A5 18 00 D5 18 7F F5 0E 9F E9 32 5F B4 0C 9C E9 32
-W: 16 64 42 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 B3 00 00 FF AC 0E FF AB 0E 5D E9 33 BE A1 0E 6A A0 0E 15 AC 18 14 AB 18 FF A8 0E FF A9 0E BF 13 0C 93 E9 32 CF 12 0C 8A E9 35 28 4C 0C 39 5B 0C 5F 19 0C 8D E9 32 4F 18 0C 8A E9 34 59 AF 0C 48 AF 0C FF 7C 03 FF 7B 03 3D AF 0C 2E AF 0C D7 7F 39 02 AF 16 FF 1D 0E 81 E9 32 FD 1E 0E 7D E9 30 EE CE 0C
-W: 16 64 5C 28
-X: 2
-C: 16 66 00
-W: 16 00 02 B4 00 00 DD DD 0C 74 E9 33 FF 1D 0E 7A E9 32 F7 1E 0E 76 E9 30 FD CE 0E DD 5F 0D 74 E9 33 F5 AE 0E FF AD 0E 9B AF 0C 8C AF 0C DB 7F 39 7F FB 0E 6B E9 36 F8 CE 0E DD 5F 0D CC 5F 0D BB 5F 0D DF EE 0E DF ED 0E FE BE 0C DF EC 0E FD BD 0C DF 6B 0E FC BC 0C 4C CE 0C 5B DD 0C 00 F3 02 01 F2 02 C3 AE 0E
-W: 16 64 63 30
-X: 2
-C: 16 66 00
-W: 16 00 02 B5 00 00 FF AD 0E BD 7F 3A 02 AF 16 A3 F7 39 FF FF 23 7F FB 0E 56 E9 36 FF AC 0E FF AB 0E DF 0B 0C 53 E9 32 EF 1C 0C 50 E9 34 DB AF 0C EC AF 0C FF FF 23 FF A1 0E 2D A0 0E FE 2B 0E 10 AF 18 01 2F 0E 10 CF 02 BF BF 0C 10 CF 02 FF FF 23 A8 F7 39 FC AF 16 9C AF 04 FE 1F 0E CF E8 32 6C EA 3A FF 1C 0E
-W: 16 64 4D 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 B6 00 00 CF E8 36 BE A5 0E 6A A4 0E FF A3 0E 2D A2 0E 03 AC 1A FF AB 0E 0F AE 1C FF AD 0E CC 4E 0C BB 5D 0C CD AF 0C BC AF 0C FE AF 0E D2 7F 39 13 AF 1C FF 7F 03 12 AF 1C FF 7F 03 11 AF 1C FF 7F 03 10 AF 1C FF 7F 03 D9 7F 39 04 AF 16 00 FB 02 01 FC 02 02 FD 02 03 FE 02 03 AF 1A 0F 1F 1C 1A E9 31
-W: 16 64 7B 27
-X: 2
-C: 16 66 00
-W: 16 00 02 B7 00 00 FF AF 0E 00 FF 02 01 FF 02 02 FF 02 03 FF 02 0E AC 1A A5 CC 0E 0D AB 1A 0B DB 0E CD AF 0C BC AF 0C FE AF 0E D2 7F 39 0E AF 1C FF 7F 03 0D AF 1C FF 7F 03 0C AF 1C FF 7F 03 0B AF 1C FF 7F 03 D9 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 0E AC 1A 0D AB 1A F4 0B 0E FF E8 32 5A 1C 0E
-W: 16 64 06 28
-X: 2
-C: 16 66 00
-W: 16 00 02 B8 00 00 FA E8 30 FF A0 0E FF A1 0E FF A8 0E FF A9 0E 0A AE 1C FF AF 0E D3 7F 39 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E 7F 8F 0E FF 7F 03 03 AF 1E FF 7F 03 D4 7F 39 04 AF 16 FF 70 03 FF 71 03 7F 88 0E 96 F7 39 D4 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 B7 AF 0E FF 7F 03 78 AF 0E
-W: 16 64 1B 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 B9 00 00 FF 7F 03 D5 7F 39 04 AF 16 B5 BB 01 B4 BC 01 B3 BD 01 B2 BE 01 BF AF 0C CB E8 36 7F FC 0E CB E8 36 B5 FF 00 B4 FF 00 B3 FF 00 B2 FF 00 CB E8 33 B4 FF 00 B3 FF 00 B2 FF 00 B5 7E 00 04 AF 16 A3 F7 39 FF FF 23 96 F7 39 C2 AF 0C B3 AF 0C BE A1 0E 3B A0 0E 03 AB 18 BF 2B 0E FF 1B 0E B4 E8 36
-W: 16 64 A0 30
-X: 2
-C: 16 66 00
-W: 16 00 02 BA 00 00 FE A1 0E D7 A0 0E 07 AF 18 B4 E8 36 9C AF 04 00 1F 0E B4 E8 32 00 1D 1A B5 E8 32 01 1E 1A B1 E8 31 3B AF 0C 2C AF 0C 34 FA 3A 93 F7 39 FF FF 23 A8 F7 39 F3 AF 16 C4 AF 0C B5 AF 0C FE A9 0E 9F A8 0E 80 AF 0C 91 AF 0C 21 AF 18 03 FF 02 22 AF 18 04 FF 02 23 AF 18 05 FF 02 24 AF 18 06 FF 02
-W: 16 64 D6 28
-X: 2
-C: 16 66 00
-W: 16 00 02 BB 00 00 FF AF 0E 07 FF 02 FF AF 0E 08 FF 02 FF 1D 0E 91 E8 36 DF AD 0E ED F9 3A FF A1 0E 2D A0 0E 13 AF 18 DF BF 0E 13 CF 02 C1 E6 33 BF A3 0E AA A2 0E 3D AE 1A 3C AD 1A DC AF 0C FE 6C 0E CB AF 0C 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 00 0B 1E 7B E8 32 01 1C 1E
-W: 16 64 56 29
-X: 2
-C: 16 66 00
-W: 16 00 02 BC 00 00 7B E8 32 02 1D 1E 7B E8 32 03 1E 1E 04 AF 16 71 E8 30 80 AF 0C 91 AF 0C FF A3 0E 2D A2 0E 0D AF 1A 1F CF 02 0E AF 1A 20 CF 02 AF AF 04 C1 E6 36 BF A1 0E AA A0 0E 07 AE 18 06 AD 18 FF AC 0E FF AB 0E 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 00 0B 1E 5A E8 32
-W: 16 64 53 25
-X: 2
-C: 16 66 00
-W: 16 00 02 BD 00 00 01 1C 1E 5A E8 32 02 1D 1E 5A E8 32 03 1E 1E 04 AF 16 3C E8 30 02 AF 0C 13 AF 0C 19 AC 18 5A CC 1A 18 AB 18 59 DB 1A FF A1 0E 2D A0 0E 09 0B 18 4D E8 32 0A 1C 18 45 E8 31 13 AB 18 BF 2B 0E FF 1B 0E 45 E8 32 BA AF 04 02 2F 0E BA BF 01 BA AB 04 FD 2B 0E FF 1B 0E 3E E8 36 FE AF 0E 08 FF 02
-W: 16 64 66 21
-X: 2
-C: 16 66 00
-W: 16 00 02 BE 00 00 3C E8 33 FE AF 0E 07 FF 02 FF A3 0E 2D A2 0E 13 AB 1A BF 2B 0E FF 1B 0E 15 E8 36 BF A1 0E AA A0 0E 19 AC 18 5A CC 18 18 AB 18 59 DB 18 09 0B 1A 2D E8 32 0A 1C 1A 24 E8 31 BA AB 04 FD 2B 0E FF 1B 0E 15 E8 36 BA AF 04 FE BF 0E BA BF 01 1B E8 33 BA AB 04 FE 2B 0E FF 1B 0E 1B E8 36 BA AF 04
-W: 16 64 DC 26
-X: 2
-C: 16 66 00
-W: 16 00 02 BF 00 00 02 2F 0E BA BF 01 01 2F 0E BA BF 01 BA AB 04 FD 2B 0E FF 1B 0E 15 E8 36 FE AF 0E 08 FF 02 08 AF 1E F7 E7 36 FF AF 0E 07 FF 02 BF A1 0E AA A0 0E 47 AC 18 46 AB 18 F5 AE 0E FF AD 0E DB 7F 39 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 00 0B 1E FB E7 32 01 1C 1E
-W: 16 64 3D 27
-X: 2
-C: 16 66 00
-W: 16 00 02 C0 00 00 FB E7 32 02 1D 1E FB E7 32 03 1E 1E 04 AF 16 F7 E7 30 FE AF 0E 07 FF 02 07 AF 1E FC E6 36 FF A1 0E 2D A0 0E 0A AE 18 09 AD 18 DC AF 0C FE 6C 0E CB AF 0C 0C CE 1C 0C EE 02 0B DD 1C 0B ED 02 0A DC 1C 0A EC 02 09 DB 1C 09 EB 02 12 AE 18 11 AD 18 DC AF 0C FE 6C 0E CB AF 0C 10 CE 1C 10 EE 02
-W: 16 64 C5 26
-X: 2
-C: 16 66 00
-W: 16 00 02 C1 00 00 0F DD 1C 0F ED 02 0E DC 1C 0E EC 02 0D DB 1C 0D EB 02 01 1F 1D 01 EF 02 00 5F 1D 00 EF 02 01 AC 1C 00 AB 1C BF A3 0E AA A2 0E 13 1B 1A 34 E7 32 14 1C 1A 34 E7 32 0C AE 1C 08 3E 1C 0B AD 1C 07 7D 1C 0A AC 1C 06 7C 1C 09 AB 1C 05 7B 1C C1 7F 3A FF AF 0E 02 FF 02 BF A1 0E AA A0 0E 17 A8 18
-W: 16 64 49 1E
-X: 2
-C: 16 66 00
-W: 16 00 02 C2 00 00 FF A9 0E 80 AF 0C 91 AF 0C 18 AF 0C FE 68 0E 89 AF 0C FF 70 03 FF 71 03 96 F7 39 00 0B 1E AF E7 32 01 1C 1E AF E7 32 02 1D 1E AF E7 32 03 1E 1E 04 AF 16 AB E7 30 FE AF 0E 02 FF 02 BF A3 0E AA A2 0E 14 A0 1A 13 A1 1A FF A8 0E FF A9 0E FF 70 03 FF 71 03 96 F7 39 0C AE 1C 0B AD 1C 0A AC 1C
-W: 16 64 B0 27
-X: 2
-C: 16 66 00
-W: 16 00 02 C3 00 00 09 AB 1C D6 7F 39 01 AF 16 0C FF 02 01 AF 16 0C FF 02 01 AF 16 0C FF 02 01 AF 16 0C FF 02 1C ED 02 1D EE 02 FF 70 03 FF 71 03 96 F7 39 10 AE 1C 0F AD 1C 0E AC 1C 0D AB 1C D6 7F 39 04 AF 16 1E ED 02 1F EE 02 02 AF 1E 7E E7 36 11 AF 1C 7E E7 36 FF A1 0E 2D A0 0E 01 AB 18 FE 2B 0E FF 1B 0E
-W: 16 64 8E 23
-X: 2
-C: 16 66 00
-W: 16 00 02 C4 00 00 67 E7 32 BF A1 0E AA A0 0E 16 AE 18 15 AD 18 FF AC 0E FF AB 0E 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 06 AF 1E FF 7F 03 00 0B 1E 69 E7 32 01 1C 1E 69 E7 32 02 1D 1E 69 E7 32 03 1E 1E 04 AF 16 4B E7 30 27 E3 3A 12 EC 02 5B AF 0C 4C AF 0C 56 E3 3A 19 AF 1C BF BF 0E 19 EF 02
-W: 16 64 62 24
-X: 2
-C: 16 66 00
-W: 16 00 02 C5 00 00 FF A1 0E 2D A0 0E 0A 1C 19 09 5B 19 0E AE 18 0D AD 18 11 AF 18 00 FF 02 12 AF 18 01 FF 02 20 C5 3A 18 4C 1C 17 5B 1C C0 7F 3A 1A EB 02 1B EC 02 FE AF 0E 13 EF 02 06 AF 1E 02 EF 02 02 AF 1E 11 EF 02 09 AF 1C 05 EF 02 0A AF 1C 06 EF 02 0B AF 1C 07 EF 02 0C AF 1C 08 EF 02 FF AF 0E 09 EF 02
-W: 16 64 5C 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 C6 00 00 0A EF 02 0B EF 02 0C EF 02 FF AF 0E 0D EF 02 0E EF 02 0F EF 02 10 EF 02 FF AF 0E 00 EF 02 01 EF 02 13 AF 1C FC E6 36 06 AB 1E 02 3B 1C BF A1 0E AA A0 0E 20 1B 18 FC E6 35 FF AF 0E 13 EF 02 FE AF 0E 14 EF 02 B0 FE 00 FF A3 0E 2D A2 0E 31 AF 0C 20 AF 0C 10 AF 18 7F BF 0E 10 DF 02 5B AF 0C
-W: 16 64 0F 26
-X: 2
-C: 16 66 00
-W: 16 00 02 C7 00 00 4C AF 0C 21 E6 3A 5B AF 0C 4C AF 0C C4 E3 3A BE A1 0E 3B A0 0E 01 AB 18 FB 2B 0E FF 1B 0E 10 E7 36 FE A1 0E 9F A0 0E FE AF 0E 3B CF 02 FF A3 0E 2D A2 0E 13 AB 1A DF 2B 0E FF 1B 0E 01 E7 36 12 AF 1C 01 E7 36 31 AF 0C 20 AF 0C 13 AF 18 20 2F 0E 13 DF 02 FE AF 0E 15 EF 02 FF A1 0E 2D A0 0E
-W: 16 64 6D 25
-X: 2
-C: 16 66 00
-W: 16 00 02 C8 00 00 01 AF 18 04 2F 0E 01 CF 02 06 AC 1E 04 3C 1C 05 AB 1E 03 7B 1C BF A1 0E AA A0 0E 08 1B 18 F3 E6 32 09 1C 18 EA E6 31 15 AF 1C EA E6 32 FF A1 0E 2D A0 0E 13 AB 18 FD 2B 0E FF 1B 0E C1 E6 36 05 AF 1E 03 EF 02 06 AF 1E 04 EF 02 14 AF 1C DE E6 32 FF A1 0E 2D A0 0E 13 AB 18 FD 2B 0E FF 1B 0E
-W: 16 64 1F 23
-X: 2
-C: 16 66 00
-W: 16 00 02 C9 00 00 C1 E6 36 6C AF 04 C1 E6 32 14 AF 1C D7 E6 36 5B AF 0C 4C AF 0C 42 E3 3A F3 C8 3A 99 EA 3A CB AF 0C BF A1 0E BB A0 0E 0C AE 18 0B AD 18 D0 AF 04 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C F7 AE 0E 7F C8 3A FF AF 0E 15 EF 02 FF A1 0E 2D A0 0E 13 AF 18 02 2F 0E 13 CF 02 0D AF 16 A3 F7 39
-W: 16 64 07 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 CA 00 00 FF FF 23 A8 F7 39 FA AF 16 C4 AF 0C B5 AF 0C 03 FD 02 BA AB 04 FB 2B 0E FF 1B 0E 66 E6 36 B0 AF 04 66 E6 32 BA AF 04 04 2F 0E BA BF 01 4F AF 0C E8 CF 0E 05 FF 02 5F 5F 0D 04 FF 02 FD AF 0E 00 FF 02 05 AC 1E 04 AB 1E FE AD 0E 5A AE 0E E0 7F 3A FE A1 0E 5A A0 0E 05 AE 18 04 AD 18 05 AC 1E
-W: 16 64 41 29
-X: 2
-C: 16 66 00
-W: 16 00 02 CB 00 00 04 AB 1E 0C C4 3A 17 EB 02 18 EC 02 BF A1 0E BB A0 0E 06 1C 19 05 5B 19 FF A1 0E 2D A0 0E 0E AE 18 0D AD 18 11 AF 18 00 FF 02 12 AF 18 01 FF 02 20 C5 3A 18 4C 1C 17 5B 1C C0 7F 3A 1A EB 02 1B EC 02 19 AF 1C 80 2F 0E 19 EF 02 3F 2F 0E 19 EF 02 FD BF 0E 19 EF 02 03 AF 1E FE 1F 0E 7B E6 32
-W: 16 64 65 20
-X: 2
-C: 16 66 00
-W: 16 00 02 CC 00 00 19 AF 1C BF BF 0E 19 EF 02 78 E6 33 19 AF 1C 40 2F 0E 19 EF 02 03 AF 1E FD 1F 0E 6D E6 34 FE AF 0E 12 EF 02 5B AF 0C 4C AF 0C 21 E6 3A 5B AF 0C 4C AF 0C C4 E3 3A FE AF 0E 14 EF 02 FF A1 0E 2D A0 0E 01 AF 18 04 2F 0E 01 CF 02 14 AF 1C 50 E6 36 6C AF 04 50 E6 32 5B AF 0C 4C AF 0C 42 E3 3A
-W: 16 64 51 25
-X: 2
-C: 16 66 00
-W: 16 00 02 CD 00 00 F3 C8 3A 99 EA 3A CB AF 0C BF A1 0E BB A0 0E 0C AE 18 0B AD 18 D0 AF 04 00 FF 02 CF AF 04 01 FF 02 DC AF 0C ED AF 0C F7 AE 0E 7F C8 3A 16 AF 1C 2C E6 36 12 AF 1C 47 E6 36 FF A1 0E 2D A0 0E 01 AF 18 FD BF 0E 01 CF 02 FE A1 0E 9F A0 0E 3B AF 18 3E E6 36 FF AF 0E 07 CF 02 08 CF 02 FF AF 0E
-W: 16 64 D0 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 CE 00 00 3B CF 02 DF FA 0E FB AF 0C 02 FB 02 20 2A 0E DF FA 0E 3B E6 32 FE A1 0E C8 A0 0E 80 AF 0E 00 CF 02 00 AF 0E 01 CF 02 B9 FF 00 B8 FF 00 B7 FF 00 B6 FF 00 02 AB 1E BA BA 0C FF A1 0E 2D A0 0E 13 AF 18 20 2F 0E 13 CF 02 10 AF 18 80 2F 0E 10 CF 02 06 AF 16 A3 F7 39 FF FF 23 A8 F7 39 EE AF 16
-W: 16 64 52 29
-X: 2
-C: 16 66 00
-W: 16 00 02 CF 00 00 09 FB 02 0A FC 02 FE A1 0E 9F A0 0E 08 AC 18 07 AB 18 C0 7F 3A 0B FB 02 0C FC 02 FE A3 0E 9F A2 0E 0A AC 1A 09 AB 1A 12 E4 3A 0D FB 02 0E FC 02 BF A1 0E AA A0 0E 30 AC 18 FF AB 0E BD A1 0E A0 A0 0E 0C AE 18 0B AD 18 0B F8 3A FF A5 0E 0E A2 1E 0D A3 1E BF 13 0C 00 E6 32 CF 12 0C FE E5 31
-W: 16 64 2C 26
-X: 2
-C: 16 66 00
-W: 16 00 02 D0 00 00 FE A5 0E BF A1 0E 48 A0 0E 00 AB 18 FF AC 0E 9E 1B 0E EB E5 32 FF 1C 0E EB E5 32 FE A1 0E 9F A0 0E 0A A2 18 09 A3 18 BF A1 0E AA A0 0E 33 13 18 ED E5 32 34 12 18 EB E5 35 FF A5 0E 0A A0 1E 09 A1 1E 12 AF 18 26 E5 36 FF A1 0E 2D A0 0E 01 AB 18 F9 2B 0E FD 1B 0E 26 E5 32 FF 15 0E 26 E5 36
-W: 16 64 05 28
-X: 2
-C: 16 66 00
-W: 16 00 02 D1 00 00 FE A1 0E 9F A0 0E 0B AF 18 26 E5 32 BF A1 0E BB A0 0E 04 AB 18 FC 2B 0E FF 1B 0E B8 E5 36 0A AC 1E E8 CC 0E 09 5B 1F BF A5 0E AA A4 0E 2D AD 1C 77 E3 3A FF 1C 0E BD E5 36 BD A1 0E A0 A0 0E 32 AC 1C FF AB 0E 0C AE 18 0B AD 18 DC 7F 39 DE AF 0C CD AF 0C BC AF 0C FE 6B 0E 0B 0D 1E BE E5 32
-W: 16 64 D8 29
-X: 2
-C: 16 66 00
-W: 16 00 02 D2 00 00 0C 1E 1E B8 E5 34 0A A2 1E 09 A3 1E FF AF 0E 12 DF 02 15 E5 33 FF A1 0E 2D A0 0E 01 AF 18 02 2F 0E 01 CF 02 BF A1 0E AA A0 0E 2E A4 18 6C EA 3A FF 1C 0E AA E5 36 BF A3 0E AA A2 0E 2F A4 1A FE A1 0E 9F A0 0E 0A AC 18 09 AB 18 12 E4 3A 0F FB 02 10 FC 02 BF A1 0E AA A0 0E 30 AC 18 FF AB 0E
-W: 16 64 F4 25
-X: 2
-C: 16 66 00
-W: 16 00 02 D3 00 00 0C AE 1E 0B AD 1E 0B F8 3A FF A5 0E 10 A2 1E 0F A3 1E BF 13 0C 96 E5 32 CF 12 0C 94 E5 31 FE A5 0E BF A1 0E BB A0 0E 04 AF 18 FC 2F 0E 11 FF 02 FF 1F 0E 86 E5 32 0A AC 1E E8 CC 0E 09 5B 1F 4D AF 0C 77 E3 3A FF 1C 0E 15 E5 36 FF 15 0E 15 E5 36 FA AF 0E 00 FF 02 6C AF 0C FD CC 0E 7B 5F 0D
-W: 16 64 98 27
-X: 2
-C: 16 66 00
-W: 16 00 02 D4 00 00 BF AD 0E BB AE 0E E0 7F 3A FE A1 0E 63 A0 0E 0A A2 1E 09 A3 1E 18 AC 1A 08 3C 18 17 AB 1A 07 7B 18 C0 7F 3A CE AF 0C BD AF 0C 0C AC 1E 0B AB 1E C7 F7 3A 02 FB 02 03 FC 02 12 E5 3A 02 FB 02 03 FC 02 BF BC 0C 15 E5 36 FF AB 0E CF C5 3A BD A1 0E A0 A0 0E 06 AF 18 04 FF 02 07 AF 18 05 FF 02
-W: 16 64 4C 26
-X: 2
-C: 16 66 00
-W: 16 00 02 D5 00 00 FE AB 0E 8C C6 3A FF 1C 0E 55 E5 36 06 AF 1E 03 2F 0E 06 FF 02 FE BF 0E 06 FF 02 36 E5 33 06 AF 1E 03 2F 0E 06 FF 02 FD BF 0E 06 FF 02 11 AF 1E FD 1F 0E 36 E5 36 E7 C3 3A BF A1 0E AA A0 0E 4E AE 18 FF AD 0E EE CE 0C DD DD 0C E0 CC 0C D1 DB 0C 02 AF 18 07 FF 02 03 AF 18 08 FF 02 6E AF 0C
-W: 16 64 74 28
-X: 2
-C: 16 66 00
-W: 16 00 02 D6 00 00 F8 CE 0E 7D 5F 0D BF AF 0E 00 FF 02 5E AF 0E 01 FF 02 FD AC 0E FF AB 0E F0 FD 3A BF AF 0E 00 FF 02 BB AF 0E 01 FF 02 FA AC 0E FF AB 0E 6E AF 0C FD CE 0E 7D 5F 0D F0 FD 3A 6B FE 00 0A A2 1E 09 A3 1E FE AF 0E 15 DF 02 15 E5 33 FF A1 0E 2D A0 0E 01 AB 18 FB 2B 0E FF 1B 0E 1A E5 32 FF 15 0E
-W: 16 64 11 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 D7 00 00 1A E5 36 FE A1 0E 9F A0 0E 0B AF 18 15 E5 36 FF A1 0E 2D A0 0E 01 AF 18 02 2F 0E 01 CF 02 12 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F6 AF 16 C4 AF 0C B5 AF 0C BF A1 0E BB A0 0E 04 AB 18 FC 2B 0E FF 1B 0E C2 E4 36 FF AF 0E 02 FF 02 03 FF 02 04 FF 02 05 FF 02 6F AF 0C FD CF 0E 09 FF 02 7F 5F 0D
-W: 16 64 57 29
-X: 2
-C: 16 66 00
-W: 16 00 02 D8 00 00 08 FF 02 09 A2 1E 08 A3 1E 00 AF 18 01 DF 02 01 AF 18 02 DF 02 4C AF 0C 02 3C 1A 5B AF 0C 01 7B 1A C0 7F 3A 06 FB 02 07 FC 02 BF A1 0E AA A0 0E 31 AC 18 FF AB 0E 09 A2 1E 08 A3 1E 02 AE 1A 01 AD 1A B9 7F 3A 07 AE 1E 06 AD 1E BF 1D 0C E3 E4 32 CF 1E 0C DF E4 34 FF AC 0E FF AB 0E 9E E4 33
-W: 16 64 F9 23
-X: 2
-C: 16 66 00
-W: 16 00 02 D9 00 00 FE A1 0E 9F A0 0E 08 AC 18 07 AB 18 C0 7F 3A BF A1 0E AA A0 0E 32 A8 18 FF A9 0E BD A1 0E A0 A0 0E 0C AE 18 0B AD 18 00 FB 02 01 FC 02 9B AF 0C 8C AF 0C BE 7F 3A 00 FB 02 01 FC 02 09 AC 1E 08 AB 1E 5D AF 0C 4E AF 0C 61 F9 3A 09 A2 1E 08 A3 1E 02 A4 1A 01 A5 1A F6 C3 3A FF 1C 0E A0 E4 36
-W: 16 64 FB 25
-X: 2
-C: 16 66 00
-W: 16 00 02 DA 00 00 BF A1 0E AA A0 0E 4F AC 18 FF AB 0E BD A1 0E A0 A0 0E 0C AE 18 0B AD 18 B9 7F 3A CE AF 0C BD AF 0C BF A1 0E BB A0 0E EC AF 0C 01 CC 18 DB AF 0C 00 DB 18 BF 05 0C AB E4 32 CF 14 0C A2 E4 30 01 1E 18 FC AF 0C 00 AB 18 DB 7B 0C BF 05 0C A3 E4 32 CF 14 0C A0 E4 31 C4 AF 0C B5 AF 0C 5B AF 0C
-W: 16 64 A3 29
-X: 2
-C: 16 66 00
-W: 16 00 02 DB 00 00 4C AF 0C 0A AF 16 A3 F7 39 FF FF 23 96 F7 39 E0 AF 16 7B AF 0C 6C AF 0C FE AD 0E AF E8 3A 02 EF 3A 7B AF 0C 6C AF 0C FF AD 0E AF E8 3A 9C AF 04 FE 1F 0E 8A E4 36 9C AF 04 00 1F 0E 95 E4 32 7B AF 0C 6C AF 0C FE AD 0E BE E6 3A 20 AF 16 93 F7 39 FF FF 23 A8 F7 39 DC AF 16 22 FB 02 FE A1 0E
-W: 16 64 53 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 DC 00 00 9F A0 0E FF A5 0E 2D A4 0E 0D AF 1C 1F CF 02 0E AF 1C 20 CF 02 BF A1 0E BB A0 0E 0D AF 18 CE BF 01 0E AF 18 CD BF 01 0F AF 18 CC BF 01 10 AF 18 CB BF 01 04 AB 18 BF EB 0E FE 2B 0E 01 AF 1C 01 2F 0E 01 EF 02 BF BF 0C 01 EF 02 22 8B 1F FE 2B 0E FB EB 0E FB AF 0C 01 AF 1C 04 2F 0E 01 EF 02
-W: 16 64 87 24
-X: 2
-C: 16 66 00
-W: 16 00 02 DD 00 00 BF BF 0C 01 EF 02 6C AF 0C FD CC 0E 7B 5F 0D FE AD 0E AF E8 3A FF AF 0E 23 FF 02 27 E3 3A FF 1C 0E 4F E4 36 22 9B 1F 22 BB 1E FD EB 0E 23 FB 02 23 AF 1E 14 FF 02 09 AF 1C 1E FF 02 0A AF 1C 1F FF 02 11 AF 1C 20 FF 02 12 AF 1C 21 FF 02 6C AF 0C FD CC 0E 7B 5F 0D 56 E3 3A 22 AF 1E 3B E4 36
-W: 16 64 F2 27
-X: 2
-C: 16 66 00
-W: 16 00 02 DE 00 00 1B AF 1E 3F 2F 0E 1B FF 02 36 E4 33 1B AF 1E 3F 2F 0E 1B FF 02 FE BF 0E 1B FF 02 1B AF 1E 7F BF 0E 1B FF 02 40 2F 0E 1B FF 02 FF A1 0E 2D A0 0E 0A 1C 19 09 5B 19 0E AE 18 0D AD 18 11 AF 18 00 FF 02 12 AF 18 01 FF 02 20 C5 3A 1A 4C 1E 19 5B 1E C0 7F 3A 1C FB 02 1D FC 02 6C AF 0C FD CC 0E
-W: 16 64 7C 20
-X: 2
-C: 16 66 00
-W: 16 00 02 DF 00 00 7B 5F 0D C4 E3 3A FE AF 0E 16 FF 02 6C AF 0C FD CC 0E 7B 5F 0D FF AD 0E BE E6 3A 6B FE 00 24 AF 16 A3 F7 39 FF FF 23 96 F7 39 C0 AF 0C B1 AF 0C FF A8 0E FF A9 0E BF A3 0E FF A2 0E 33 AC 1A FF AB 0E CE AF 0C BD AF 0C DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF 70 03
-W: 16 64 28 31
-X: 2
-C: 16 66 00
-W: 16 00 02 E0 00 00 FF 71 03 96 F7 39 DA 7F 39 08 AF 16 FE AF 0E CD 7F 39 07 AF 1A FF 7F 03 06 AF 1A FF 7F 03 05 AF 1A FF 7F 03 04 AF 1A FF 7F 03 D9 7F 39 04 AF 16 94 AF 0E FF 7F 03 07 AF 0E FF 7F 03 9F AF 0E FF 7F 03 9C AF 0E FF 7F 03 D9 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 9B AF 0C 8C AF 0C
-W: 16 64 35 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 E1 00 00 1D AF 0C 0E AF 0C BF AF 0C CD E3 36 7F FC 0E CD E3 32 70 1B 0E D1 E3 32 80 1C 0E D1 E3 32 01 1D 0E D1 E3 32 FF 1E 0E D0 E3 36 CD E3 34 00 AC 0E 80 AB 0E C6 E3 33 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C D1 7F 39 DB AF 0C EC AF 0C 93 F7 39 FF FF 23 A8 F7 39 FF AF 16 C4 AF 0C B5 AF 0C 12 AF 1C
-W: 16 64 87 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 E2 00 00 B2 E3 36 FE AB 0E 98 AC 0E F1 AD 0E ED F9 3A 4E AF 0C E8 CE 0E 5D 5F 0D FD AF 0E 00 FF 02 FE AB 0E 5C AC 0E E0 7F 3A 01 AF 16 A3 F7 39 FF FF 23 9E F7 39 FF A5 0E BF A1 0E 48 A0 0E 00 AB 18 FF AC 0E FB 1B 0E A5 E3 32 FF 1C 0E A1 E3 36 BF 1B 0E A0 E3 32 FF 1C 0E A0 E3 32 FE A5 0E 6C EA 3A
-W: 16 64 D2 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 E3 00 00 FF 1C 0E 9B E3 32 FF 15 0E 95 E3 36 BF A1 0E AA A0 0E 61 AF 18 95 E3 36 AF FF 00 94 E3 33 AF FE 00 9A F7 39 FF FF 23 AF AF 04 84 E3 32 FF A1 0E 2D A0 0E 03 AF 18 AE BF 01 9C AF 04 FE 1F 0E 84 E3 32 BA AB 04 BF 2B 0E FF 1B 0E 84 E3 36 AF FE 00 FF FF 23 AF AF 04 78 E3 32 FF A1 0E 2D A0 0E
-W: 16 64 55 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 E4 00 00 AE AB 04 03 3B 18 BF A1 0E AA A0 0E 61 1B 18 78 E3 34 AF FE 00 FF FF 23 A8 F7 39 FD AF 16 00 FB 02 01 FC 02 FE AF 0E 02 FF 02 DC AF 0C FF AB 0E FF AE 0E BF AD 0E B9 7F 3A C4 AF 0C B5 AF 0C FE A1 0E 63 A0 0E 01 A2 1E 00 A3 1E 01 AC 1A 08 3C 18 00 AB 1A 07 7B 18 C0 7F 3A 5F 0B 0C 5E E3 32
-W: 16 64 AD 28
-X: 2
-C: 16 66 00
-W: 16 00 02 E5 00 00 4F 1C 0C 5B E3 31 FF AF 0E 02 FF 02 02 AC 1E FF AB 0E 03 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 C4 AF 0C B5 AF 0C 1D AC 1C 1C AB 1C FF A1 0E 2D A0 0E 0E AE 18 0D AD 18 1E AF 1C 00 FF 02 1F AF 1C 01 FF 02 20 C5 3A 17 EB 02 18 EC 02 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FF AF 16 C4 AF 0C
-W: 16 64 22 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 E6 00 00 B5 AF 0C 00 E3 3A FE AB 0E 9F AC 0E F8 AD 0E ED F9 3A 4E AF 0C E8 CE 0E 5D 5F 0D FD AF 0E 00 FF 02 FE AB 0E 5E AC 0E E0 7F 3A FF AF 0E 14 EF 02 FE AF 0E 16 EF 02 D0 FC 00 CF 17 00 C0 FF 00 01 AF 16 A3 F7 39 FF FF 23 FF A1 0E 2D A0 0E 01 AB 18 FE 2B 0E FF 1B 0E 03 E3 36 BF A3 0E AA A2 0E
-W: 16 64 51 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 E7 00 00 0A AE 18 09 AD 18 1A 0D 1A 1A E3 32 1B 1E 1A 14 E3 34 18 0D 1A 16 E3 32 19 1E 1A 14 E3 31 FF AB 0E FF A1 0E 2D A0 0E 0E AE 18 AB CE 0E 0D AD 18 0A DD 0E BF A1 0E AA A0 0E 1C 0D 18 09 E3 32 1D 1E 18 04 E3 30 1E 0D 18 05 E3 32 1F 1E 18 03 E3 31 FF AB 0E BC AF 0C FF AB 0E FF FF 23 A8 F7 39
-W: 16 64 F3 21
-X: 2
-C: 16 66 00
-W: 16 00 02 E8 00 00 F6 AF 16 C4 AF 0C B5 AF 0C BE A1 0E 3B A0 0E 02 AB 18 FD 2B 0E FF 1B 0E 72 E2 36 5B AF 0C 4C AF 0C 68 E2 3A 00 FB 02 01 FC 02 19 AB 1C 7F 2B 0E FF 1B 0E E6 E2 36 FE A1 0E 9F A0 0E 00 AF 1E 2D CF 02 01 AF 1E 2E CF 02 72 E2 33 C3 E1 3A FE A1 0E 9F A0 0E 01 AE 18 00 AD 18 FE AB 0E 5E AC 0E
-W: 16 64 3E 28
-X: 2
-C: 16 66 00
-W: 16 00 02 E9 00 00 0C C4 3A FE A1 0E 9F A0 0E 2E AF 18 09 FF 02 2D AF 18 08 FF 02 FF AF 0E 06 FF 02 07 FF 02 01 A0 1E 00 A1 1E FF A8 0E FF A9 0E 0F AF 0C 09 CF 1E 05 FF 02 1F AF 0C 08 DF 1E 04 FF 02 8F AF 0C 07 DF 1E 03 FF 02 9F AF 0C 06 DF 1E 02 FF 02 02 AF 1E 03 BF 1E 04 BF 1E 05 BF 1E 72 E2 36 CE AF 0C
-W: 16 64 80 24
-X: 2
-C: 16 66 00
-W: 16 00 02 EA 00 00 BD AF 0C DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 FF 70 03 FF 71 03 96 F7 39 DA 7F 39 08 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 18 AE 1C 17 AD 1C DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 0D AF 1E FF 7F 03 0D AF 1E FF 7F 03 0D AF 1E FF 7F 03
-W: 16 64 7D 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 EB 00 00 0D AF 1E FF 7F 03 DA 7F 39 08 AF 16 00 CE 0C 11 DD 0C 88 DC 0C 99 DB 0C 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C CB 7F 39 04 AF 16 17 ED 02 18 EE 02 FE A1 0E 9F A0 0E 01 AC 1E 00 AB 1E 2E AE 18 2D AD 18 DB 7F 39 05 AF 1E
-W: 16 64 28 25
-X: 2
-C: 16 66 00
-W: 16 00 02 EC 00 00 FF 7F 03 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03 05 AF 1E FF 7F 03 CB 7F 39 04 AF 16 FE A1 0E 9F A0 0E 2D CD 02 2E CE 02 FE A1 0E 9F A0 0E FF AF 0E 29 CF 02 2A CF 02 2B CF 02 2C CF 02 0A AF 16 A3 F7 39 FF FF 23 A8 F7 39 F4 AF 16 02 FB 02 03 FC 02 C0 AF 0C B1 AF 0C 19 AB 18 C0 2B 0E BC AF 0C
-W: 16 64 D3 29
-X: 2
-C: 16 66 00
-W: 16 00 02 ED 00 00 FF AB 0E CC CC 0C BB DB 0C C0 AF 0C AA C0 0E B1 AF 0C BF D1 0E 22 AF 18 07 FF 02 21 AF 18 06 FF 02 7F 2F 0E 51 E2 36 00 AF 0E 05 FF 02 04 FF 02 FF A1 0E 2D A0 0E 0E AC 18 A5 CC 0E 0D AB 18 0B DB 0E BF A3 0E AA A2 0E 28 AE 1A 27 AD 1A FC AF 0E 00 FF 02 17 AF 0E 01 FF 02 BE 7F 3A C0 7F 3A
-W: 16 64 7D 27
-X: 2
-C: 16 66 00
-W: 16 00 02 EE 00 00 CE AF 0C BD AF 0C DC AF 0C FE 6C 0E CB AF 0C 07 CE 1E 07 FE 02 06 DD 1E 06 FD 02 05 DC 1E 05 FC 02 04 DB 1E 04 FB 02 03 A0 1E 02 A1 1E 19 AB 18 BF 2B 0E FF 1B 0E DF E1 36 FE A5 0E 9F A4 0E 28 AE 1C 27 AD 1C FF AC 0E FF AB 0E 24 CE 1C 23 DD 1C 22 DC 1C 21 DB 1C FF AF 0E CD 7F 39 C3 7F 3A
-W: 16 64 68 28
-X: 2
-C: 16 66 00
-W: 16 00 02 EF 00 00 08 FB 02 09 FC 02 0A FD 02 0B FE 02 24 AE 1C 23 AD 1C 22 AC 1C 21 AB 1C FF AF 0E CD 7F 39 C3 7F 3A 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C BF A3 0E AA A2 0E 2A AD 1A 29 AC 1A FE AF 0E D2 7F 39
-W: 16 64 59 28
-X: 2
-C: 16 66 00
-W: 16 00 02 F0 00 00 FF 70 03 FF 71 03 96 F7 39 D9 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 88 AF 0E FF 7F 03 D9 7F 39 04 AF 16 D1 7F 39 DB AF 0C EC AF 0C C0 7F 3A CE AF 0C BD AF 0C DC AF 0C FE 6C 0E CB AF 0C 07 CE 1E 07 FE 02 06 DD 1E 06 FD 02 05 DC 1E 05 FC 02 04 DB 1E 04 FB 02
-W: 16 64 A3 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 F1 00 00 03 A0 1E 02 A1 1E 1B AE 18 1A AD 18 FF AC 0E FF AB 0E FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 DA 7F 39 08 AF 16 04 FB 02 05 FC 02 06 FD 02 07 FE 02 5A E1 3A 0C AF 16 A3 F7 39 FF FF 23 A8 F7 39 F8 AF 16 FE A5 0E 9F A4 0E
-W: 16 64 44 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 F2 00 00 29 AF 1C 00 FF 02 2A AF 1C 01 FF 02 2B AF 1C 02 FF 02 2C AF 1C 03 FF 02 BF A1 0E FF A0 0E 33 AC 18 FF AB 0E CE AF 0C BD AF 0C DC AF 0C FE 6C 0E CB AF 0C FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 07 AF 1E FF 7F 03 07 AF 1E FF 7F 03 07 AF 1E FF 7F 03 07 AF 1E FF 7F 03 DA 7F 39 08 AF 16 FF AF 0E
-W: 16 64 9D 29
-X: 2
-C: 16 66 00
-W: 16 00 02 F3 00 00 CD 7F 39 03 AF 18 FF 7F 03 02 AF 18 FF 7F 03 01 AF 18 FF 7F 03 00 AF 18 FF 7F 03 D9 7F 39 04 AF 16 07 AF 0E FF 7F 03 CB AF 0E FF 7F 03 98 AF 0E FF 7F 03 7D AF 0E FF 7F 03 D5 7F 39 04 AF 16 CE 7F 39 BF A1 0E BB A0 0E 00 AF 18 FF 7F 03 01 A0 18 01 A1 16 FF A8 0E FF A9 0E FF 70 03 FF 71 03
-W: 16 64 95 29
-X: 2
-C: 16 66 00
-W: 16 00 02 F4 00 00 96 F7 39 CB 7F 39 04 AF 16 04 FB 02 05 FC 02 06 FD 02 07 FE 02 2E AE 1C 2D AD 1C FF AC 0E FF AB 0E CB AF 0C DC AF 0C ED AF 0C FF AE 0E FF AF 0E CD 7F 39 C3 7F 3A CE 7F 39 07 CE 1E 03 FE 02 06 DD 1E 02 FD 02 05 DC 1E 01 FC 02 04 DB 1E 00 FB 02 03 AE 1E 02 AD 1E 01 AC 1E 00 AB 1E 5A E1 3A
-W: 16 64 CF 27
-X: 2
-C: 16 66 00
-W: 16 00 02 F5 00 00 2D EB 02 2E EC 02 08 AF 16 A3 F7 39 FF FF 23 96 F7 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C FF 19 0E 4E E1 32 FF 18 0E 4E E1 32 F0 11 0E 4E E1 32 00 10 0E 3E E1 30 FF 70 03 FF 71 03 96 F7 39 FF 70 03 FF 71 03 96 F7 39 DA 7F 39 08 AF 16 DE AF 0C CD AF 0C BC AF 0C FF AB 0E DB AF 0C EC AF 0C
-W: 16 64 FE 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 F6 00 00 3C E1 33 00 AC 0E 00 AB 0E 93 F7 39 FF FF 23 96 F7 39 FE AB 0E D7 AC 0E F7 AD 0E ED F9 3A C6 DF 3A FF 1C 0E 29 E1 36 8F A0 0E 7F A1 0E 0C AB 18 FA BB 0E 0C CB 02 FF AC 0E FF AB 0E B9 DF 3A 11 E1 33 F2 DF 3A FF 1C 0E 1C E1 36 8F A0 0E 7F A1 0E 0C AB 18 FA BB 0E 0C CB 02 FF AC 0E FF AB 0E
-W: 16 64 B3 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 F7 00 00 FF AD 0E 81 DF 3A 11 E1 33 A0 DF 3A FF 1C 0E 11 E1 36 8F A0 0E 7F A1 0E 0C AB 18 FB BB 0E 0C CB 02 02 AB 18 04 2B 0E 02 CB 02 93 F7 39 FF FF 23 A8 F7 39 FE A5 0E D7 A4 0E 07 AF 1C DF E0 36 BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E FF 1B 0E DF E0 36 FB 1B 0E DF E0 30 00 AF 1C ED E0 32 BE E0 3A
-W: 16 64 01 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 F8 00 00 C5 AF 0C FA E0 36 48 DB 3A BE E0 3A C5 AF 0C BE A1 0E 3B A0 0E 04 AB 18 F7 2B 0E FF 1B 0E F1 E0 36 A0 DF 3A FF 1C 0E EF E0 36 FF 15 0E DF E0 36 A6 E0 3A DF E0 33 A0 DF 3A FF 1C 0E DF E0 32 01 AF 1C 02 BF 1C E0 E0 36 02 BF 1D 02 EF 02 01 FF 1D 01 EF 02 01 AF 1C 02 BF 1C DF E0 32 8D E0 3A
-W: 16 64 FE 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 F9 00 00 A3 F7 39 FF FF 23 9E F7 39 B5 AF 0C A0 DF 3A FF 1C 0E CA E0 36 FF 15 0E D0 E0 36 8F A0 0E 7F A1 0E 02 AB 18 FB BB 0E 02 CB 02 C0 E0 33 8F A0 0E 7F A1 0E 02 AB 18 04 2B 0E 02 CB 02 C0 E0 33 FF 15 0E C4 E0 36 00 AC 0E 00 AB 0E FE AD 0E C1 E0 33 FF AC 0E FF AB 0E FF AD 0E 0F E0 3A 9A F7 39
-W: 16 64 B6 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 FA 00 00 FF FF 23 FF AC 0E 8F A0 0E 7F A1 0E 00 AB 18 FE 2B 0E CF 1B 0C A8 E0 32 00 AB 18 FE BB 0E 00 CB 02 06 AB 18 FE BB 0E 06 CB 02 03 AB 18 FE 2F 0E FC AF 0C 06 AB 18 01 2B 0E 06 CB 02 00 AB 18 01 2B 0E 00 CB 02 FF AB 0E FF FF 23 96 F7 39 FE A1 0E D7 A0 0E FE AF 0E 00 CF 02 7C E0 3A A0 DF 3A
-W: 16 64 A9 28
-X: 2
-C: 16 66 00
-W: 16 00 02 FB 00 00 FF 1C 0E 9B E0 36 93 DF 3A 97 E0 33 AC AC 04 AD AB 04 FE AD 0E 0F E0 3A FE A3 0E D7 A2 0E BE A1 0E 00 A0 0E 00 AF 18 02 DF 02 FF AF 0E 01 DF 02 93 F7 39 FF FF 23 96 F7 39 BE A1 0E 3B A0 0E 04 AB 18 F7 2B 0E FF 1B 0E 82 E0 32 FF AC 0E FF AB 0E FF AD 0E 0F E0 3A FE A1 0E D7 A0 0E FF AF 0E
-W: 16 64 55 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 FC 00 00 00 CF 02 93 F7 39 FF FF 23 A8 F7 39 FF AF 16 FF A4 0E FF A5 0E BE A1 0E 3B A0 0E 03 AB 18 7F 2B 0E FF 1B 0E 6D E0 36 FF A1 0E 2D A0 0E 1E AF 18 00 FF 02 69 E0 33 FF A1 0E 2D A0 0E 03 AF 18 00 FF 02 A0 DF 3A FF 1C 0E 5A E0 36 00 AF 1E AC BF 01 7F 2F 0E 61 E0 36 00 AF 0E AD BF 01 00 AF 1E
-W: 16 64 25 29
-X: 2
-C: 16 66 00
-W: 16 00 02 FD 00 00 A5 0F 0E 12 E0 34 AD FF 00 AC 9B 00 12 E0 33 C6 DF 3A FF 1C 0E 2C E0 36 00 AE 1E FF AD 0E FB EE 0E FF 7F 03 FB ED 0E ED BF 0C 01 AE 16 E4 AF 0C D5 AF 0C 1E E0 33 9B AF 0E FF 7F 03 FF AF 0E FF 7F 03 CE AF 0C BD AF 0C D7 7F 39 02 AF 16 AC A0 04 AD A1 04 FF A8 0E FF A9 0E EE 1F 0D FF 7E 03
-W: 16 64 2E 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 FE 00 00 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C FF 71 03 01 A1 1E 32 E0 36 EE AF 0D DD EF 0D CC EF 0D BB EF 0D 11 BF 0D 38 E0 32 02 A1 16 EF BF 0D AC BF 01 DF FF 0D AD BF 01 12 E0 33 BE A1 0E 3B A0 0E 04 AB 18 0F 2B 0E FF 1B 0E 1E E0 36 04 AD 18 EF ED 0E 00 AC 1E FF AB 0E 00 ED 1E FE AF 0C E4 CC 0C
-W: 16 64 B5 29
-X: 2
-C: 16 66 00
-W: 16 00 02 FF 00 00 D5 DB 0C AD FF 00 AC FE 00 23 AC 0E FA AB 0E BF 15 0C 17 E0 32 CF 14 0C 4D E0 31 63 CC 0E BB FF 0D BF BC 0C 1A E0 32 01 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FF AF 16 C4 AF 0C B5 AF 0C 00 FD 02 C6 DF 3A FF 1C 0E 03 E0 36 5B AF 0C 4C AF 0C B9 DF 3A F5 DF 33 BE A1 0E 3B A0 0E 04 AB 18 F7 2B 0E
-W: 16 64 58 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 00 01 00 FF 1B 0E F9 DF 36 FF AC 0E FF AB 0E FF AD 0E 81 DF 3A 5B AF 0C 4C AF 0C 00 AD 1E 81 DF 3A 01 AF 16 A3 F7 39 FF FF 23 FF AE 0E FF AD 0E BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E 02 CB 0E FE 1B 0E E7 DF 30 FE AE 0E FF AD 0E DB AF 0C EC AF 0C FF FF 23 FF AF 16 DF FA 0E FB AF 0C 00 FB 02 20 2A 0E
-W: 16 64 7D 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 01 01 00 DF FA 0E E0 DF 32 FE A3 0E D7 A2 0E 03 AF 1A 04 BF 1A CA DF 36 8F A0 0E 7F A1 0E 02 AB 18 FE 8B 0E 02 CB 02 03 6D 1B 04 4E 1B 03 DD 02 04 DE 02 02 AB 18 FE 8B 0E 02 CB 02 DF BE 0C D6 DF 32 00 AB 1E BA BA 0C 01 AF 16 FF FF 23 FF AE 0E FF AD 0E BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E FD 1B 0E
-W: 16 64 C2 27
-X: 2
-C: 16 66 00
-W: 16 00 02 02 01 00 BC DF 32 FE AE 0E FF AD 0E DB AF 0C EC AF 0C FF FF 23 FF 79 03 F0 2C 0E FF AB 0E BD 6F 0D CE 4F 0D E9 8F 0D F9 29 0E FB EC 0E FC AF 0C FB 2C 0E FE 2E 0E EB AF 0C BC BC 0C 8F A0 0E 7F A1 0E 02 AB 18 05 2B 0E CB BB 0C 02 CB 02 00 AB 18 06 2B 0E 9B BB 0C 00 CB 02 01 A9 16 FF FF 23 FF AE 0E
-W: 16 64 FA 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 03 01 00 FF AD 0E BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E FE 1B 0E 96 DF 32 FE AE 0E FF AD 0E DB AF 0C EC AF 0C FF FF 23 FE A1 0E D7 A0 0E AC AF 04 05 CF 02 8F A0 0E 7F A1 0E 02 AB 18 FB BB 0E 02 CB 02 6F A0 0E 7F A1 0E 00 AB 18 04 2B 0E 00 CB 02 01 AB 18 FB BB 0E 01 CB 02 FF FF 23 96 F7 39 FE A1 0E
-W: 16 64 DA 29
-X: 2
-C: 16 66 00
-W: 16 00 02 04 01 00 D7 A0 0E 03 CB 02 04 CC 02 BF BC 0C 77 DF 32 00 AF 0E 03 CF 02 04 CF 02 FF 1D 0E 70 DF 36 8F A0 0E 7F A1 0E 02 AB 18 05 2B 0E 6C DF 33 8F A0 0E 7F A1 0E 02 AB 18 FB BB 0E 02 CB 02 E4 DF 3A 93 F7 39 FF FF 23 96 F7 39 80 DC 3A 7C DC 3A FE 1C 0E 67 DF 36 93 F7 39 FF FF 23 A8 F7 39 FB AF 16
-W: 16 64 F0 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 05 01 00 FF A5 0E 2D A4 0E 0E AF 1C AB CF 0E 04 FF 02 0D AF 1C 0A DF 0E 03 FF 02 21 DF 3A 02 FC 02 04 AC 1E 03 AB 1E 0D DF 3A FF 1C 0E 4A DF 36 0F AF 1C 01 2F 0E 0F EF 02 F7 AF 0E 02 FF 02 34 DF 33 02 AB 1E F7 2B 0E FF 1B 0E 34 DF 32 BE A1 0E 6A A0 0E 07 AE 18 06 AD 18 08 AF 18 00 FF 02 09 AF 18
-W: 16 64 8E 21
-X: 2
-C: 16 66 00
-W: 16 00 02 06 01 00 01 FF 02 04 AC 1E 03 AB 1E E3 F7 3A FF 1C 0E 34 DF 32 0F AF 1C 01 2F 0E 0F EF 02 FB AF 0E 02 FF 02 FF A1 0E 1E A0 0E 02 AC 1E F3 2C 0E 00 AB 18 0C 2B 0E CF BF 0C 00 CF 02 E5 DE 3A CD AF 0C FF AC 0E FF AB 0E FF 1D 0E 24 DF 32 FE AC 0E FF AB 0E 05 AF 16 A3 F7 39 FF FF 23 9E F7 39 FF A1 0E
-W: 16 64 DF 28
-X: 2
-C: 16 66 00
-W: 16 00 02 07 01 00 1E A0 0E 00 A5 18 F3 25 0E FF A1 0E 2D A0 0E 0E AC 18 AB CC 0E 0D AB 18 0A DB 0E FF 15 0E 10 DF 36 F8 DE 3A FF 1C 0E 10 DF 36 0C 25 0E 5C AF 0C 9A F7 39 FF FF 23 96 F7 39 FE AF 16 BE A1 0E 6A A0 0E 01 AE 18 00 AD 18 02 AF 18 00 FF 02 03 AF 18 01 FF 02 E3 F7 3A CD AF 0C FF AC 0E FF AB 0E
-W: 16 64 7F 27
-X: 2
-C: 16 66 00
-W: 16 00 02 08 01 00 FF 1D 0E FB DE 32 FE AC 0E FF AB 0E 02 AF 16 93 F7 39 FF FF 23 96 F7 39 FE AF 16 BE A1 0E 6A A0 0E 01 AE 18 05 CE 18 00 AD 18 04 DD 18 03 AF 18 05 3F 18 01 FF 02 02 AF 18 04 7F 18 00 FF 02 E3 F7 3A FF AB 0E 02 AF 16 93 F7 39 FF FF 23 BA AB 04 FD EB 0E BC AF 0C FF AB 0E FE 8C 0E FF FF 23
-W: 16 64 24 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 09 01 00 A8 F7 39 FD AF 16 FF AF 0E 02 FF 02 95 AF 04 C3 DE 36 95 AB 04 FD 2B 0E FF 1B 0E CC DE 36 FF AB 0E E0 AC 0E DF AD 0E 16 FA 3A 83 DB 3A FF AB 0E E0 AC 0E DF AD 0E 07 FA 3A 76 FF 3A 6F A0 0E 7F A1 0E 02 AF 0E 00 CF 02 01 2A 0E AA AC 04 AB AB 04 B1 DE 33 83 DB 3A 95 DA 3A AB BB 01 AA BC 01
-W: 16 64 43 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 0A 01 00 DF FA 0E FD AF 0C 00 FD 02 20 2A 0E DF FA 0E BC DE 32 FF A1 0E 04 A0 0E 26 1F 19 26 CF 02 27 CB 02 28 CC 02 00 AD 1E DA BA 0C FE AE 0E FF AD 0E 87 DA 3A E4 A0 04 E5 A1 04 08 AB 18 7F 2B 0E FF 1B 0E A2 DE 36 FF A1 0E 2D A0 0E 13 AF 18 F7 BF 0E 13 CF 02 9F DE 33 12 DC 3A 2E DC 3A 0F E1 3A
-W: 16 64 93 28
-X: 2
-C: 16 66 00
-W: 16 00 02 0B 01 00 BE A1 0E 3B A0 0E 03 AB 18 EF 2B 0E FF 1B 0E 7E DE 36 FF A3 0E 2D A2 0E 01 AB 1A EF 2B 0E FF 1B 0E 7E DE 36 6F A0 0E 7F A1 0E 03 AB 18 FC 2B 0E FF 1B 0E 7E DE 32 12 AC 1A 11 AB 1A C0 7F 3A BE A1 0E 2F A0 0E 02 0B 18 85 DE 32 03 1C 18 7E DE 34 AA AC 04 AB AB 04 0A 6D 19 DE AF 0C FF AD 0E
-W: 16 64 C6 24
-X: 2
-C: 16 66 00
-W: 16 00 02 0C 01 00 87 DA 3A 6F A0 0E 7F A1 0E 03 AB 18 FC 2B 0E FF 1B 0E 47 DE 32 FF A5 0E 2D A4 0E 00 AB 1C F3 2B 0E FF 1B 0E 47 DE 32 12 AC 1C 11 AB 1C C0 7F 3A BE A1 0E 2F A0 0E 02 0B 18 6A DE 32 03 1C 18 47 DE 30 BE A1 0E 3B A0 0E 01 AB 18 BF 2B 0E FF 1B 0E 47 DE 36 00 AB 1C EF 2B 0E FF 1B 0E 47 DE 32
-W: 16 64 15 23
-X: 2
-C: 16 66 00
-W: 16 00 02 0D 01 00 FF AB 0E 2C AC 0E EF AD 0E 16 FA 3A BE A1 0E 2F A0 0E 0A AF 18 FE 1F 0E 52 DE 34 94 1F 05 94 BF 01 FE 1F 0E 4F DE 32 FE AF 0E 02 FF 02 3D DE 33 BE A1 0E 2F A0 0E 94 AF 04 0A 1F 18 3D DE 32 00 AF 0E 02 FF 02 3D DE 33 6F A0 0E 7F A1 0E 03 AF 0E 03 CF 02 00 AF 0E 02 FF 02 FF AB 0E 2C AC 0E
-W: 16 64 58 24
-X: 2
-C: 16 66 00
-W: 16 00 02 0E 01 00 EF AD 0E 07 FA 3A 02 AF 1E FE 1F 0E 38 DE 32 95 AF 04 33 DE 32 02 AF 1E 00 1F 0E 31 DE 32 95 AF 04 31 DE 32 FF AF 0E 02 FF 02 02 AF 1E FE 1F 0E 0A DE 32 DF FA 0E FB AF 0C 01 FB 02 95 FE 00 20 2A 0E DF FA 0E 2A DE 32 6F A0 0E 7F A1 0E 02 AF 0E 00 CF 02 01 AB 18 FD BB 0E 01 CB 02 9F A0 0E
-W: 16 64 83 25
-X: 2
-C: 16 66 00
-W: 16 00 02 0F 01 00 7F A1 0E 00 AB 18 F8 BB 0E 00 CB 02 00 AF 0E 01 CF 02 00 AB 18 F8 BB 0E 00 CB 02 BF A0 0E 7F A1 0E FF AF 0E 00 CF 02 4F A2 0E 7F A3 0E BE A1 0E 3B A0 0E 00 AB 18 F8 2B 0E 00 DB 02 DE DD 33 02 AF 1E 00 1F 0E DC DD 32 DF FA 0E FB AF 0C 01 FB 02 95 FF 00 94 FF 00 93 FF 00 20 2A 0E DF FA 0E
-W: 16 64 57 26
-X: 2
-C: 16 66 00
-W: 16 00 02 10 01 00 01 DE 32 6F A2 0E 7F A3 0E 01 AB 1A 02 2B 0E 01 DB 02 9F A0 0E 7F A1 0E 00 AF 0E 01 CF 02 08 AF 0E 00 DF 02 4F A0 0E 7F A1 0E FF AF 0E 00 CF 02 03 AF 0E 03 DF 02 BF A2 0E 7F A3 0E FC AF 0E 00 DF 02 FF A1 0E 2D A0 0E 00 AB 18 F7 2B 0E FF 1B 0E E1 DD 32 FD AF 0E 00 DF 02 E0 AF 04 01 2F 0E
-W: 16 64 97 22
-X: 2
-C: 16 66 00
-W: 16 00 02 11 01 00 E0 BF 01 01 AB 1E BA BA 0C 9C AF 04 BC DD 32 95 AF 04 FE 1F 0E BC DD 32 DF FA 0E FB AF 0C 01 FB 02 20 2A 0E DF FA 0E D4 DD 32 BE A1 0E 2F A0 0E 0B AF 18 C7 DD 36 0B AF 18 A1 1F 04 C1 DD 34 A1 1F 05 A1 BF 01 BE DD 33 FF A1 0E 2D A0 0E 01 AB 18 DF 2B 0E FF 1B 0E BE DD 36 E0 AF 04 FE BF 0E
-W: 16 64 21 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 12 01 00 E0 BF 01 01 AB 1E BA BA 0C 95 AF 04 A6 DD 36 BE A1 0E 2F A0 0E 09 AF 18 FE 1F 0E A6 DD 34 93 1F 05 93 BF 01 FE 1F 0E AD DD 32 95 AF 04 02 2F 0E 95 BF 01 A6 DD 33 93 AF 04 09 1F 18 A6 DD 35 93 FF 00 95 AF 04 FD BF 0E 95 BF 01 A0 FF 00 9F FF 00 9E FF 00 9D FF 00 E4 A0 04 E5 A1 04 08 AF 18
-W: 16 64 0D 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 13 01 00 7F BF 0E 08 CF 02 03 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F4 AF 16 EF AB 0E E2 7F 3A 06 FB 02 07 FC 02 EE AB 0E E2 7F 3A 08 FB 02 09 FC 02 ED AB 0E E2 7F 3A 0A FB 02 0B FC 02 FE AB 0E BC AF 0C 7E DB 3A FC AB 0E 8C F7 3A 86 F7 3A 02 FB 02 03 FC 02 04 FD 02 05 FE 02 FF AB 0E FE AC 0E 7E DB 3A
-W: 16 64 67 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 14 01 00 05 AE 1E 85 3E 04 04 AD 1E 86 7D 04 03 AC 1E 87 7C 04 02 AB 1E 88 7B 04 7F CE 0E DD 5F 0D CC 5F 0D BB 5F 0D DE AF 0C CD AF 0C BC AF 0C FE 6B 0E E4 AF 0C D5 AF 0C 7F FD 0E 69 DD 36 FF A4 0E FF A5 0E 08 15 1E 66 DD 32 09 14 1E 56 DD 30 08 AF 1E 00 FF 02 09 AF 1E 01 FF 02 07 AC 1E 06 AB 1E
-W: 16 64 71 24
-X: 2
-C: 16 66 00
-W: 16 00 02 15 01 00 00 AE 0E 00 AD 0E BD 7F 3A 5D AF 0C 4E AF 0C C8 7F 3A C4 AF 0C B5 AF 0C 4B DD 33 4E AF 0C 09 3E 1E 5D AF 0C 08 7D 1E 0B AC 1E 0A AB 1E C8 7F 3A C4 AF 0C 07 C4 1E B5 AF 0C 06 D5 1E BF A1 0E FF A0 0E 0F AE 18 0E AD 18 EC AF 0E 00 FF 02 77 AF 0E 01 FF 02 5B AF 0C 4C AF 0C BD 7F 3A C4 AF 0C
-W: 16 64 C9 24
-X: 2
-C: 16 66 00
-W: 16 00 02 16 01 00 B5 AF 0C F7 F9 3A CE AF 0C FF AD 0E BD A1 0E A0 A0 0E 1E AF 18 01 FF 02 FF AF 0E 00 FF 02 5B AF 0C 4C AF 0C BD 7F 3A CE AF 0C BD AF 0C FE AB 0E DB AC 0E 34 FA 3A FF A1 0E 2D A0 0E 25 AF 18 26 BF 18 FB DC 36 7B AC 0E FC AB 0E 26 AE 18 25 AD 18 F1 0D 0E 21 DD 32 CF 1E 0E 16 DD 30 AD AC 0E
-W: 16 64 9C 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 17 01 00 01 AB 0E F7 0D 0E 1B DD 32 02 1E 0E 16 DD 34 EC AF 0C AB CC 0E DB AF 0C 0A DB 0E C8 AF 0C F9 C8 0E B9 FF 0D BF A1 0E FF A0 0E 2E AE 18 FF AD 0E 9B AF 0C 8C AF 0C DD 7F 39 FB AF 0E 00 FF 02 BF AB 0E D9 AC 0E BC 7F 3A BF A1 0E FF A0 0E 30 AF 18 FF 7F 03 2F AF 18 FF 7F 03 CE AF 0C BD AF 0C
-W: 16 64 70 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 18 01 00 D8 7F 39 02 AF 16 44 4E 0C 55 5D 0C FE A1 0E CF A0 0E 00 C5 02 01 C4 02 0C AF 16 A3 F7 39 FF FF 23 A8 F7 39 FA A4 0E BE A1 0E 3B A0 0E 01 A5 18 FE 25 0E FF 15 0E CB DC 36 4B AF 0C 8C F7 3A 86 F7 3A DE AF 0C CD AF 0C BC AF 0C FE 6B 0E 86 3E 04 87 7D 04 DB AF 0C EC AF 0C FF AD 0E 62 F7 3A
-W: 16 64 F6 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 19 01 00 CE AF 0C BD AF 0C FF AB 0E 08 AC 0E 34 FA 3A BE A4 0E 20 2A 0E DF FA 0E D9 DC 32 8F A0 0E 7F A1 0E 02 AB 18 FD BB 0E 02 CB 02 CF A0 0E 7F A1 0E 01 AB 18 F7 BB 0E 01 CB 02 DF BA 0E CF AB 0E 8C F7 3A CF AB 0E 90 F7 3A 4B AF 0C 90 F7 3A F8 AB 0E 75 F7 3A DE AF 0C CD AF 0C BC AF 0C FE 6B 0E
-W: 16 64 B9 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 1A 01 00 FF 15 0E AD DC 36 20 2A 0E DF FA 0E BD DC 32 CF A0 0E 7F A1 0E 01 AB 18 08 2B 0E 01 CB 02 82 AF 04 AE DC 36 8F A0 0E 7F A1 0E 02 AB 18 02 2B 0E 02 CB 02 DF BA 0E 86 3E 04 87 7D 04 DB AF 0C EC AF 0C 5D AF 0C 62 F7 3A CE AF 0C BD AF 0C FE A1 0E CF A0 0E 04 CD 02 05 CE 02 FF 15 0E 9C DC 32
-W: 16 64 B3 26
-X: 2
-C: 16 66 00
-W: 16 00 02 1B 01 00 FF AB 0E 08 AC 0E 34 FA 3A A3 F7 39 FF FF 23 96 F7 39 01 AF 16 95 FF 00 94 FF 00 93 FF 00 6F D9 3A DE AF 04 90 DC 32 6F FE 3A 26 DC 3A 9C FF 00 BF A0 0E 7F A1 0E FD AF 0E 00 CF 02 9C AF 04 FE 1F 0E 86 DC 32 68 DF 3A 8B DC 33 80 DC 3A 61 DF 3A 7C DC 3A 8B DC 33 93 F7 39 FF FF 23 96 F7 39
-W: 16 64 9D 30
-X: 2
-C: 16 66 00
-W: 16 00 02 1C 01 00 DF DE 3A 93 F7 39 FF FF 23 9E F7 39 FF A1 0E 2D A0 0E 12 AE 18 11 AD 18 9C A5 04 BE A1 0E 23 A0 0E 02 0D 18 71 DC 32 03 1E 18 6C DC 35 FE A5 0E A9 FF 00 A8 FF 00 35 DC 33 BE A1 0E 23 A0 0E 01 9C 19 00 CB 19 BF 0D 0C 65 DC 32 CF 1E 0C 60 DC 30 00 A5 0E A9 FF 00 A8 FF 00 35 DC 33 00 15 0E
-W: 16 64 13 27
-X: 2
-C: 16 66 00
-W: 16 00 02 1D 01 00 48 DC 32 EC 9F 0D DB CF 0D BE A1 0E 23 A0 0E 04 0B 18 57 DC 32 05 1C 18 48 DC 30 83 E3 3A A8 1F 05 A8 BF 01 A9 5F 05 A9 BF 01 A8 AC 04 FF AB 0E BE A1 0E 23 A0 0E 06 1B 18 4A DC 32 07 1C 18 35 DC 35 36 DC 33 FE 15 0E 35 DC 32 BE A1 0E 23 A0 0E 04 0D 18 41 DC 32 05 1E 18 35 DC 30 92 E3 3A
-W: 16 64 50 23
-X: 2
-C: 16 66 00
-W: 16 00 02 1E 01 00 A8 1F 05 A8 BF 01 A9 5F 05 A9 BF 01 BE A1 0E 23 A0 0E A8 AF 04 08 1F 18 35 DC 35 FF A5 0E 9C B5 01 FE 15 0E 31 DC 32 80 FF 00 5C AF 0C 9A F7 39 FF FF 23 96 F7 39 D1 DA 3A DB DA 3A 24 D9 3A 6A D9 3A 44 DB 3A 93 F7 39 FF FF 23 A8 F7 39 BF A1 0E FF A0 0E 08 AF 18 9B BF 01 09 AF 18 9A BF 01
-W: 16 64 A0 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 1F 01 00 BF A4 0E 7F A5 0E FD AF 0E 00 EF 02 79 D9 3A FF AF 0E 00 EF 02 6F A0 0E 7F A1 0E 08 AF 0E 00 CF 02 A3 F7 39 FF FF 23 A8 F7 39 FE AF 16 BF A1 0E FF A0 0E 03 AF 18 FF 7F 03 02 AF 18 FF 7F 03 01 AF 18 FF 7F 03 00 AF 18 FF 7F 03 9D AE 04 9E AD 04 9F AC 04 A0 AB 04 D9 7F 39 04 AF 16 E0 AF 0C
-W: 16 64 8B 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 20 01 00 D1 AF 0C C8 AF 0C B9 AF 0C 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C BF AF 0C E8 DB 36 7F FC 0E E8 DB 36 70 1B 0E EC DB 32 00 1C 0E EC DB 32 01 1D 0E EC DB 32 FF 1E 0E E8 DB 36 E8 DB 34 FE A4 0E 7F A5 0E E1 DB 33 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C BF 7F 3A C4 AF 0C B5 AF 0C 5B AF 0C 4C AF 0C
-W: 16 64 61 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 21 01 00 C0 7F 3A BF A1 0E FF A0 0E 32 AE 18 FF AD 0E DF 0B 0C D7 DB 32 EF 1C 0C D4 DB 31 FF A4 0E FF A5 0E 31 AF 18 01 FF 02 FF AF 0E 00 FF 02 FF AB 0E 92 AC 0E 5D AF 0C 4E AF 0C 61 F9 3A FF AB 0E 1C AC 0E 5D AF 0C 4E AF 0C 34 FA 3A FF AB 0E 92 AC 0E 07 F9 3A CE AF 0C BD AF 0C FF AB 0E 22 AC 0E
-W: 16 64 F8 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 22 01 00 34 FA 3A 02 AF 16 A3 F7 39 FF FF 23 96 F7 39 FC AF 16 CD AF 0C BC AF 0C FE AF 0E D2 7F 39 00 FB 02 01 FC 02 02 FD 02 03 FE 02 BF A3 0E FF A2 0E 0A AC 1A CB AF 0C FE 6B 0E 9A CC 04 9B DB 04 CD AF 0C BC AF 0C FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 38 AD 1A 37 AC 1A FE AF 0E
-W: 16 64 FC 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 23 01 00 D2 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C D5 7F 39 04 AF 16 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 03 AF 1E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 04 AF 16 93 F7 39 FF FF 23 8D BB 01 8C BC 01 FF FF 23 96 F7 39 9A DD 3A 8D D9 3A 93 F7 39
-W: 16 64 2A 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 24 01 00 FF FF 23 9E F7 39 C5 AF 0C 78 DB 36 20 2A 0E DF FA 0E 7B DB 32 FF 1B 0E 62 DB 36 BE A1 0E 3B A0 0E 00 AB 18 F7 2B 0E FF 1B 0E 6A DB 32 CF A0 0E 7F A1 0E 01 AB 18 FB BB 0E 01 CB 02 4D DB 33 8F A0 0E 7F A1 0E 0C AB 18 EF BB 0E 0C CB 02 00 AB 18 FE BB 0E 4F DB 33 BE A1 0E 3B A0 0E 00 AB 18
-W: 16 64 90 28
-X: 2
-C: 16 66 00
-W: 16 00 02 25 01 00 F7 2B 0E FF 1B 0E 56 DB 32 CF A0 0E 7F A1 0E 01 AB 18 04 2B 0E 01 CB 02 4D DB 33 8F A0 0E 7F A1 0E 0C AB 18 10 2B 0E 0C CB 02 00 AB 18 01 2B 0E 00 CB 02 48 DB 3A FF 15 0E 4A DB 36 DF BA 0E 9A F7 39 FF FF 23 69 AB 0E BB BF 0D 47 DB 32 FF FF 23 A8 F7 39 FE AF 16 FF A5 0E 2D A4 0E 0A AC 1C
-W: 16 64 66 26
-X: 2
-C: 16 66 00
-W: 16 00 02 26 01 00 98 3C 04 09 AB 1C 99 7B 04 FD AF 0E 00 FF 02 FE AF 0E 01 FF 02 BF AD 0E C6 AE 0E 12 DB 3A 0E AC 1C 96 3C 04 0D AB 1C 97 7B 04 FE AF 0E 00 FF 02 FE AF 0E 01 FF 02 BF AD 0E C3 AE 0E 12 DB 3A 12 AC 1C 11 AB 1C FB AF 0E 00 FF 02 7E AF 0E 01 FF 02 BF AD 0E C0 AE 0E 12 DB 3A 89 AB 04 FC 2B 0E
-W: 16 64 E5 26
-X: 2
-C: 16 66 00
-W: 16 00 02 27 01 00 FF 1B 0E 15 DB 36 89 AB 04 FB 2B 0E FF 1B 0E 15 DB 36 5B AF 0C 4C AF 0C F7 AD 0E 16 FA 3A 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FF AF 16 C8 AF 0C B9 AF 0C E4 AF 0C D5 AF 0C C0 7F 3A C0 AF 0C B1 AF 0C 19 AF 0C 08 AF 0C 05 AB 1E 89 2B 04 FF 1B 0E EC DA 36 FF AC 0E 01 AE 1C 00 AD 1C 06 AB 1E
-W: 16 64 85 29
-X: 2
-C: 16 66 00
-W: 16 00 02 28 01 00 7F 2B 0E CF 1B 0C F7 DA 36 DF 01 0C F9 DA 32 EF 10 0C F2 DA 34 F3 DA 33 DF 01 0C F4 DA 32 EF 10 0C F2 DA 31 FE AC 0E FF 1C 0E E0 DA 36 05 8B 1F 89 2F 04 89 BF 01 E0 DA 33 06 AF 1E 00 FF 02 9B AF 0C 8C AF 0C 5D AF 0C 4E AF 0C A3 D0 3A CE AF 0C 05 AB 1E FF AC 0E 8A AD 0E B3 D0 3A 75 1F 05
-W: 16 64 2C 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 29 01 00 75 BF 01 01 AF 16 A3 F7 39 FF FF 23 96 F7 39 FE A1 0E CF A0 0E 05 AE 18 04 AD 18 FF AB 0E 20 AC 0E 34 FA 3A 93 F7 39 FF FF 23 A8 F7 39 FE AF 16 FE A5 0E CF A4 0E 01 AE 1C 00 AD 1C BF A1 0E FF A0 0E 31 AF 18 01 FF 02 FF AF 0E 00 FF 02 FF AB 0E 8E AC 0E 61 F9 3A 01 AE 1C 00 AD 1C FF AB 0E
-W: 16 64 90 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 2A 01 00 24 AC 0E 34 FA 3A FF AB 0E 8E AC 0E 07 F9 3A CE AF 0C BD AF 0C FE AB 0E E0 AC 0E 34 FA 3A FF A1 0E 2D A0 0E 12 AC 18 11 AB 18 01 AE 1C 00 AD 1C 3F F8 3A C4 AF 0C B5 AF 0C F7 F9 3A BD A1 0E A0 A0 0E CD AF 0C 1F ED 18 FE AF 0C 20 AF 18 01 FF 02 FF AF 0E 00 FF 02 5B AF 0C 4C AF 0C BE 7F 3A
-W: 16 64 11 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 2B 01 00 C4 AF 0C B5 AF 0C FF AB 0E 12 AC 0E 5D AF 0C 4E AF 0C 34 FA 3A 02 AF 16 A3 F7 39 FF FF 23 96 F7 39 20 2A 0E DF FA 0E 94 DA 32 6F A0 0E 7F A1 0E 01 AB 18 F7 BB 0E 01 CB 02 76 FF 3A D9 AC 04 DA AB 04 93 F7 39 FF FF 23 A8 F7 39 F4 AF 16 04 FD 02 05 FE 02 BB DB 3A 7F 8C 0E 09 FC 02 08 FB 02
-W: 16 64 5A 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 2C 01 00 0A FD 02 0B FE 02 9D AF 04 FF 7F 03 9E AF 04 FF 7F 03 9F AF 04 FF 7F 03 A0 AF 04 FF 7F 03 0F AE 1E 0E AD 1E 0D AC 1E 0C AB 1E D4 7F 39 04 AF 16 A0 BB 01 9F BC 01 9E BD 01 9D BE 01 BF A5 0E FF A4 0E 03 AF 1C FF 7F 03 02 AF 1C FF 7F 03 01 AF 1C FF 7F 03 00 AF 1C FF 7F 03 0F AE 1E 0E AD 1E
-W: 16 64 BF 26
-X: 2
-C: 16 66 00
-W: 16 00 02 2D 01 00 0D AC 1E 0C AB 1E D9 7F 39 04 AF 16 BF 7F 3A FE A1 0E CF A0 0E 02 CB 02 03 CC 02 0B AE 1E 0A AD 1E 09 AC 1E 08 AB 1E D1 7F 39 DB AF 0C EC AF 0C C0 7F 3A 34 AE 1C FF AD 0E DF 0B 0C 49 DA 32 EF 1C 0C F1 D9 30 A4 AF 04 FF 7F 03 A5 AF 04 FF 7F 03 A6 AF 04 FF 7F 03 A7 AF 04 FF 7F 03 0F AE 1E
-W: 16 64 5C 28
-X: 2
-C: 16 66 00
-W: 16 00 02 2E 01 00 0E AD 1E 0D AC 1E 0C AB 1E D4 7F 39 04 AF 16 A7 BB 01 A6 BC 01 A5 BD 01 A4 BE 01 FF AF 0E 08 FF 02 09 FF 02 0A FF 02 0B FF 02 A2 1F 05 A2 BF 01 A3 5F 05 A3 BF 01 A2 AC 04 A3 AB 04 35 1B 1C 28 DA 32 36 1C 1C D9 D9 35 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 79 AF 0E FF 7F 03
-W: 16 64 16 28
-X: 2
-C: 16 66 00
-W: 16 00 02 2F 01 00 A4 AE 04 A5 AD 04 A6 AC 04 A7 AB 04 D9 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 36 AD 1C 35 AC 1C FF AF 0E D2 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C D5 7F 39 04 AF 16 D1 7F 39 DB AF 0C EC AF 0C C0 7F 3A 33 AE 1C FF AD 0E DF 0B 0C FE D9 32
-W: 16 64 C7 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 30 01 00 EF 1C 0C F4 D9 34 A7 AF 04 08 FF 02 A6 AF 04 09 FF 02 A5 AF 04 0A FF 02 A4 AF 04 0B FF 02 DF D9 33 A3 00 00 A2 00 00 DD D9 33 A4 AF 04 FF 7F 03 A5 AF 04 FF 7F 03 A6 AF 04 FF 7F 03 A7 AF 04 FF 7F 03 0F AE 1E 0E AD 1E 0D AC 1E 0C AB 1E D4 7F 39 04 AF 16 08 FB 02 09 FC 02 0A FD 02 0B FE 02
-W: 16 64 2B 27
-X: 2
-C: 16 66 00
-W: 16 00 02 31 01 00 A3 FF 00 A2 FF 00 A7 FF 00 A6 FF 00 A5 FF 00 A4 FF 00 BF A1 0E FF A0 0E 07 AF 18 FF 7F 03 06 AF 18 FF 7F 03 05 AF 18 FF 7F 03 04 AF 18 FF 7F 03 0F AE 1E 0E AD 1E 0D AC 1E 0C AB 1E D9 7F 39 04 AF 16 08 FB 02 09 FC 02 0A FD 02 0B FE 02 05 AD 1E 04 AC 1E FE AF 0E D2 7F 39 0B AF 1E FF 7F 03
-W: 16 64 70 27
-X: 2
-C: 16 66 00
-W: 16 00 02 32 01 00 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 0B AF 1E FF 7F 03 D9 7F 39 04 AF 16 B2 AF 04 FF 7F 03 B3 AF 04 FF 7F 03 B4 AF 04 FF 7F 03 B5 AF 04 FF 7F 03 D9 7F 39 04 AF 16 08 FB 02 09 FC 02 0A FD 02 0B FE 02 FE A5 0E C8 A4 0E 00 AF 1C 06 FF 02 01 AF 1C 07 FF 02 00 FB 02 01 FC 02 02 FD 02 03 FE 02
-W: 16 64 83 26
-X: 2
-C: 16 66 00
-W: 16 00 02 33 01 00 5B AF 0C 4C AF 0C C2 7F 3A FE A1 0E CF A0 0E 01 AF 1C 07 3F 1E 06 CF 02 FF AF 0E 00 FF 02 0B AE 1E 0A AD 1E 09 AC 1E 08 AB 1E 4B CD 3A 0C AF 16 A3 F7 39 FF FF 23 96 F7 39 FA AF 16 F4 DC 3A 86 F7 3A 00 FB 02 01 FC 02 02 FD 02 03 FE 02 BE A1 0E 3B A0 0E 08 AF 18 04 FF 02 09 AF 18 05 FF 02
-W: 16 64 69 26
-X: 2
-C: 16 66 00
-W: 16 00 02 34 01 00 FF AB 0E 88 AC 0E 48 F9 3A 06 AF 16 93 F7 39 FF FF 23 96 F7 39 F8 AB 0E 8C F7 3A 86 F7 3A 88 BB 01 87 BC 01 86 BD 01 85 BE 01 93 F7 39 FF FF 23 A0 FF 00 9F FF 00 9E FF 00 9D FF 00 FF FF 23 A8 F7 39 FD AF 16 FF A5 0E 2D A4 0E 0E AE 1C AB CE 0E 0D AD 1C 0A DD 0E BD AF 0E 00 FF 02 BF AF 0E
-W: 16 64 1D 30
-X: 2
-C: 16 66 00
-W: 16 00 02 35 01 00 01 FF 02 10 AB 1C FE 8B 0E FE 2F 0E 02 FF 02 7F AB 0E DC AF 0C ED AF 0C DA D8 3A 0E AE 1C AB CE 0E 0D AD 1C 0A DD 0E BD AF 0E 00 FF 02 BA AF 0E 01 FF 02 10 AF 1C FE 2F 0E 02 FF 02 BF AB 0E DC AF 0C ED AF 0C DA D8 3A 0A AE 1C 09 AD 1C BD AF 0E 00 FF 02 55 AF 0E 01 FF 02 FE AF 0E 02 FF 02
-W: 16 64 16 28
-X: 2
-C: 16 66 00
-W: 16 00 02 36 01 00 DF AB 0E DC AF 0C ED AF 0C DA D8 3A 0A AE 1C 09 AD 1C BD AF 0E 00 FF 02 5A AF 0E 01 FF 02 7E AF 0E 02 FF 02 EF AB 0E DC AF 0C ED AF 0C DA D8 3A FF A1 0E 1E A0 0E 83 AC 04 0F 2C 0E 00 AB 18 F0 2B 0E CF BF 0C 00 CF 02 03 AF 16 A3 F7 39 FF FF 23 75 FF 00 FF FF 23 BE A1 0E 3B A0 0E 04 AB 18
-W: 16 64 02 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 37 01 00 F8 2B 0E FE 1B 0E 16 D9 30 8F A0 0E 7F A1 0E 02 AB 18 01 2B 0E 02 CB 02 FF D8 33 FD 1B 0E 0D D9 32 8F A0 0E 7F A1 0E 02 AB 18 02 2B 0E 02 CB 02 82 FE 00 FF D8 33 FC 1B 0E 06 D9 32 8F A0 0E 7F A1 0E 00 AB 18 08 2B 0E 00 D9 33 FB 1B 0E FF D8 32 8F A0 0E 7F A1 0E 00 AB 18 04 2B 0E 00 CB 02
-W: 16 64 0C 22
-X: 2
-C: 16 66 00
-W: 16 00 02 38 01 00 FF FF 23 BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E FE 1B 0E F2 D8 30 8F A0 0E 7F A1 0E 02 AB 18 FE BB 0E 02 CB 02 DB D8 33 FD 1B 0E E9 D8 32 8F A0 0E 7F A1 0E 02 AB 18 FD BB 0E 02 CB 02 82 FF 00 DB D8 33 FC 1B 0E E2 D8 32 8F A0 0E 7F A1 0E 00 AB 18 F7 BB 0E DC D8 33 FB 1B 0E DB D8 32 8F A0 0E
-W: 16 64 E8 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 39 01 00 7F A1 0E 00 AB 18 FB BB 0E 00 CB 02 FF FF 23 9E F7 39 FF AF 16 B5 AF 0C D8 AF 0C C9 AF 0C 05 A0 1E 04 A1 1E 06 AC 1E 5B AF 0C 83 2B 04 FF 1B 0E B6 D8 36 04 AE 18 03 AD 18 7F 2C 0E CB AF 0C FF 1B 0E C2 D8 36 FF AB 0E DF 09 0C C4 D8 32 EF 18 0C BC D8 35 BD D8 33 FF AB 0E DF 09 0C BE D8 32
-W: 16 64 5D 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 3A 01 00 EF 18 0C BC D8 30 FE AB 0E FF 1B 0E AB D8 36 5B 8F 0D 83 2F 04 83 BF 01 AB D8 33 00 FC 02 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C A3 D0 3A CE AF 0C 5B AF 0C FF AC 0E 84 AD 0E B3 D0 3A 75 1F 05 75 BF 01 01 AF 16 9A F7 39 FF FF 23 A8 F7 39 FE AF 16 FF A1 0E 2D A0 0E 00 AC 18 F7 EC 0E FE 2C 0E
-W: 16 64 1F 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 3B 01 00 77 AB 04 CC 0B 0E 6A D8 30 CD 0B 0E E1 D7 31 E0 0B 0E 7E D8 30 E1 0B 0E 1D D8 31 F8 0B 0E 88 D8 30 F9 0B 0E 31 D8 31 FD 1B 0E 38 D8 36 FD 0B 0E 8B D8 30 FF 0B 0E 86 D7 35 3B D8 33 FC 1B 0E 36 D8 36 34 D8 33 EC 0B 0E 83 D8 30 F5 0B 0E 29 D8 31 2D D8 33 E7 0B 0E 86 D7 35 E4 0B 0E 25 D8 34
-W: 16 64 8B 27
-X: 2
-C: 16 66 00
-W: 16 00 02 3C 01 00 21 D8 33 D4 0B 0E 6F D8 30 D5 0B 0E 01 D8 31 D8 0B 0E 05 D8 30 DB 0B 0E 0D D8 31 DE 1B 0E 15 D8 36 DE 0B 0E 19 D8 35 DD 1B 0E 11 D8 36 86 D7 33 D0 0B 0E F5 D7 30 D1 0B 0E F9 D7 31 FD D7 33 98 0B 0E 4E D8 30 99 0B 0E AC D7 31 C0 1B 0E C0 D7 36 C0 0B 0E 58 D8 30 C4 0B 0E 5B D8 30 C5 0B 0E
-W: 16 64 1C 26
-X: 2
-C: 16 66 00
-W: 16 00 02 3D 01 00 DD D7 31 CA 0B 0E 86 D7 30 09 D8 33 C2 0B 0E D9 D7 34 D5 D7 33 9E 0B 0E 53 D8 30 AA 0B 0E CA D7 31 D2 D7 33 9C 1B 0E B4 D7 36 9C 0B 0E B0 D7 30 B8 D7 33 90 0B 0E 45 D8 30 91 0B 0E 9C D7 31 94 0B 0E A0 D7 30 95 0B 0E A4 D7 31 A8 D7 33 8A 0B 0E 40 D8 30 8B 0B 0E 94 D7 31 98 D7 33 86 1B 0E
-W: 16 64 9E 28
-X: 2
-C: 16 66 00
-W: 16 00 02 3E 01 00 90 D7 36 86 0B 0E 86 D7 35 8C D7 33 94 D5 3A 41 D1 3A 82 D7 33 03 AC 18 82 D7 33 04 AC 18 82 D7 33 EA D6 3A 41 D1 3A 82 D7 33 FF AB 0E 26 AC 0E F9 AD 0E 89 D7 33 FF AB 0E 24 AC 0E F7 AD 0E F2 D7 33 FF AB 0E 22 AC 0E F5 AD 0E 89 D7 33 FF AB 0E 18 AC 0E E7 AD 0E 89 D7 33 FE AB 0E 9F AC 0E
-W: 16 64 62 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 3F 01 00 E3 AD 0E 89 D7 33 FE AB 0E 9B AC 0E E1 AD 0E 89 D7 33 BD A1 0E A0 A0 0E 1E AC 18 82 D7 33 BD A1 0E A0 A0 0E 1F AC 18 82 D7 33 BD A1 0E A0 A0 0E 20 AC 18 82 D7 33 FF AB 0E 14 AC 0E DB AD 0E 89 D7 33 FF AB 0E 0A AC 0E CB AD 0E 89 D7 33 BD AB 0E 9C AC 0E D7 AD 0E 89 D7 33 FF AB 0E 08 AC 0E
-W: 16 64 D8 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 40 01 00 D5 AD 0E 89 D7 33 BD AB 0E 9A AC 0E D3 AD 0E 89 D7 33 FF AB 0E 10 AC 0E D1 AD 0E 89 D7 33 FF AB 0E 0E AC 0E CF AD 0E 4C D1 3A C4 AF 0C B5 AF 0C F7 F9 3A CE AF 0C FF AD 0E BD A1 0E A0 A0 0E 1E AF 18 01 FF 02 FF AF 0E 00 FF 02 5B AF 0C 4C AF 0C BD 7F 3A 41 D1 3A 82 D7 33 FF AB 0E 0C AC 0E
-W: 16 64 F6 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 41 01 00 CD AD 0E 89 D7 33 BE AB 0E 3B AC 0E C5 AD 0E 89 D7 33 BD AB 0E 95 AC 0E C3 AD 0E 89 D7 33 FF 1C 0E 86 D7 32 C0 D7 33 FF 1C 0E C0 D7 36 FF A1 0E 04 A0 0E 01 AF 18 FD 1F 0E 86 D7 30 C0 D7 33 FF 1C 0E C0 D7 36 FF A1 0E 04 A0 0E 01 BB 19 FE 1B 0E 86 D7 30 77 AF 04 9E 1F 0E 86 D7 36 77 AC 04
-W: 16 64 63 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 42 01 00 FF AB 0E C0 AF 0C 42 C0 0E B1 AF 0C FF D1 0E 00 AC 18 82 D7 33 FE A1 0E 63 A0 0E 00 AC 18 82 D7 33 BF A1 0E B7 A0 0E 00 AC 18 82 D7 33 FE AB 0E 5A AC 0E 9B AD 0E 89 D7 33 FE AB 0E 70 AC 0E 99 AD 0E 89 D7 33 FE AB 0E 6C AC 0E 97 AD 0E 89 D7 33 FE AB 0E 68 AC 0E 95 AD 0E 89 D7 33 FE AB 0E
-W: 16 64 04 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 43 01 00 7C AC 0E 93 AD 0E 89 D7 33 FE AB 0E 98 AC 0E 91 AD 0E 89 D7 33 FE AB 0E 5E AC 0E 8F AD 0E 89 D7 33 FE AB 0E 96 AC 0E 8B AD 0E 89 D7 33 FF A1 0E 04 A0 0E 26 AC 18 82 D7 33 FE AB 0E DD AC 0E 85 AD 0E 4C D1 3A 41 D1 3A 82 D7 33 76 FE 00 00 AC 0E FF AB 0E 7D D7 33 77 AF 04 76 BF 01 77 1F 05
-W: 16 64 CC 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 44 01 00 77 BF 01 FF AB 0E 02 AF 16 A3 F7 39 FF FF 23 9E F7 39 BC AF 0C FF A1 0E 2D A0 0E 00 AB 18 F7 EB 0E FE 2B 0E C1 1C 0E 53 D7 36 C1 0C 0E 5F D7 30 DD 0C 0E 66 D7 30 E7 0C 0E 3F D7 31 EC 0C 0E 3C D7 30 FF 0C 0E 3C D7 35 3F D7 33 DB 0C 0E 3C D7 35 CA 0C 0E 3F D7 34 C5 0C 0E 3C D7 35 3F D7 33
-W: 16 64 AF 28
-X: 2
-C: 16 66 00
-W: 16 00 02 45 01 00 9E 0C 0E 58 D7 30 AA 0C 0E 48 D7 31 C0 1C 0E 3F D7 36 50 D7 33 8A 0C 0E 3F D7 34 86 0C 0E 3C D7 35 3F D7 33 FF 1B 0E 3C D7 32 3F D7 33 FF 1B 0E 3F D7 36 FF A1 0E 04 A0 0E 01 AF 18 FD 1F 0E 3C D7 30 3F D7 33 FF 1B 0E 3F D7 36 FF A1 0E 04 A0 0E 01 BB 19 FE 1B 0E 3C D7 30 9E 1C 0E 3C D7 36
-W: 16 64 4E 24
-X: 2
-C: 16 66 00
-W: 16 00 02 46 01 00 77 BC 01 FE A5 0E 3B D7 33 FF A5 0E 76 AB 04 80 2B 0E 2C D1 3A FF 1C 0E 34 D7 36 FF 15 0E 33 D7 32 76 FE 00 5C AF 0C FF AB 0E 9A F7 39 FF FF 23 9E F7 39 FF A1 0E 2D A0 0E 00 A5 18 60 25 0E F9 AB 0E 16 D1 3A 00 1B 0E 24 D7 32 00 1C 0E 23 D7 36 9F B5 0E FF A1 0E 2D A0 0E 00 C5 02 FF A1 0E
-W: 16 64 BA 27
-X: 2
-C: 16 66 00
-W: 16 00 02 47 01 00 04 A0 0E FF AF 0E 01 CF 02 9A F7 39 FF FF 23 9E F7 39 B5 AF 0C FF AC 0E 77 AB 04 CF 0B 0C F6 D6 35 FE 0B 0E 0D D7 34 9E 0B 0E F6 D6 30 C1 0B 0E F6 D6 35 F8 D6 33 F4 7F 3A 76 AB 04 7F 2B 0E FF 1B 0E FB D6 36 76 AB 04 80 2B 0E 76 BB 01 2C D1 3A FF 1C 0E FB D6 36 5B AF 0C FF AC 0E 81 AE 04
-W: 16 64 69 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 48 01 00 FF AD 0E CC CE 0C BB DD 0C EF D3 3A 81 B5 01 FE AC 0E F6 D6 33 5B AF 0C 60 D2 3A FF 1C 0E EE D6 36 77 AF 04 7F BF 0E 76 BF 01 77 1F 05 77 BF 01 ED D6 33 76 FE 00 FF AB 0E 9A F7 39 FF FF 23 80 AF 04 E3 D6 32 FF A1 0E 2D A0 0E 06 AC 18 05 AB 18 E1 D6 33 FF AC 0E FF AB 0E FF FF 23 FC AF 16
-W: 16 64 DF 30
-X: 2
-C: 16 66 00
-W: 16 00 02 49 01 00 FF A1 0E 04 A0 0E 00 AB 18 BC 1B 0E 2F D6 36 BC 0B 0E AE D6 30 C7 1B 0E 60 D6 36 C7 0B 0E C1 D6 30 DD 1B 0E 7C D6 36 DD 0B 0E CB D6 30 FD 1B 0E 8A D6 36 DF 1B 0E 83 D6 36 9C D5 33 CF 1B 0E 6E D6 36 CF 0B 0E C4 D6 30 DB 1B 0E 75 D6 36 9C D5 33 CE 1B 0E 67 D6 36 9C D5 33 C4 1B 0E 4B D6 36
-W: 16 64 06 29
-X: 2
-C: 16 66 00
-W: 16 00 02 4A 01 00 C4 0B 0E B8 D6 30 C6 1B 0E 59 D6 36 C5 1B 0E 52 D6 36 9C D5 33 BF 1B 0E 3D D6 36 BF 0B 0E B1 D6 30 C3 1B 0E 44 D6 36 9C D5 33 BD 1B 0E 36 D6 36 9C D5 33 AA 1B 0E FE D5 36 AA 0B 0E 9C D6 30 AE 1B 0E 1A D6 36 AE 0B 0E A1 D6 30 BB 1B 0E 28 D6 36 AF 1B 0E 21 D6 36 9C D5 33 AC 1B 0E 0C D6 36
-W: 16 64 F2 26
-X: 2
-C: 16 66 00
-W: 16 00 02 4B 01 00 AC 0B 0E 05 D6 30 13 D6 33 95 1B 0E DB D5 36 95 0B 0E 91 D6 30 A7 0B 0E 9C D5 35 A6 0B 0E F0 D5 34 97 1B 0E E2 D5 36 9C D5 33 93 1B 0E F7 D5 36 93 0B 0E D4 D5 35 8F 1B 0E CD D5 36 9C D5 33 BD AF 0E 00 FF 02 BF AF 0E 01 FF 02 F5 A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 6A AF 0E 01 FF 02
-W: 16 64 C6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 4C 01 00 F9 A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 64 AF 0E 01 FF 02 F1 A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 56 AF 0E 01 FF 02 E4 A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 A0 AF 0E 01 FF 02 C1 A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 62 AF 0E 01 FF 02 E9 A0 0E FF A1 0E C1 D5 33 BD AF 0E
-W: 16 64 A0 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 4D 01 00 00 FF 02 B4 AF 0E 01 FF 02 F3 A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 A8 AF 0E 01 FF 02 F7 A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 4C AF 0E 01 FF 02 DF A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 FF AF 0E 01 FF 02 F3 A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 F3 AF 0E 01 FF 02 FD A0 0E
-W: 16 64 8D 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 4E 01 00 FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 3B AF 0E 01 FF 02 F3 A0 0E FF A1 0E C1 D5 33 BD AF 0E 00 FF 02 F1 AF 0E 01 FF 02 FA A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 00 AF 0E 01 FF 02 FE A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 2F AF 0E 01 FF 02 F3 A0 0E FF A1 0E C1 D5 33 BF AF 0E 00 FF 02
-W: 16 64 FD 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 4F 01 00 AA AF 0E 01 FF 02 9D A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 23 AF 0E 01 FF 02 F4 A0 0E FF A1 0E C1 D5 33 BF AF 0E 00 FF 02 BB AF 0E 01 FF 02 EE A0 0E FF A1 0E C1 D5 33 BF AF 0E 00 FF 02 48 AF 0E 01 FF 02 AD A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 F6 AF 0E 01 FF 02 AF A0 0E FF A1 0E
-W: 16 64 90 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 50 01 00 C1 D5 33 BE AF 0E 00 FF 02 A6 AF 0E 01 FF 02 E1 A0 0E FF A1 0E C1 D5 33 BE AF 0E 00 FF 02 88 AF 0E 01 FF 02 E1 A0 0E FF A1 0E C1 D5 33 00 AE 18 FF AD 0E BF EE 0E FF 7F 03 BF ED 0E ED BF 0C 01 AE 16 FF CE 0E 01 FE 02 D2 DD 0E 00 FD 02 DF A0 0E FF A1 0E C1 D5 33 BF AF 0E 00 FF 02 FF AF 0E
-W: 16 64 94 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 51 01 00 01 FF 02 EF A0 0E FF A1 0E C1 D5 33 BF AF 0E 00 FF 02 EF AF 0E 01 FF 02 DE A0 0E FF A1 0E C1 D5 33 BF AF 0E 00 FF 02 CE AF 0E 01 FF 02 EC A0 0E FF A1 0E C1 D5 33 FF A1 0E 2D A0 0E 00 AB 18 BF 2B 0E FF 1B 0E 9C D5 32 BE AF 0E 00 FF 02 18 AF 0E 01 FF 02 E7 A0 0E FF A1 0E FF A3 0E 04 A2 0E
-W: 16 64 BC 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 52 01 00 01 AE 1A FF AD 0E DF EE 0E FF 7F 03 DF ED 0E ED BF 0C 01 AE 16 01 CE 1E 01 FE 02 00 DD 1E 00 FD 02 0C AF 0C E0 CC 0E 1B 5F 0D F7 EC 0E F7 EB 0E FC BC 0C CD AF 0C DB BF 0D 01 1B 1A A7 D5 34 DF AF 0E 03 FF 02 9A D5 33 01 1D 1A 9C D5 34 DE AF 0C FF AD 0E EE BF 0D DD FF 0D DF EE 0E FE AF 0C
-W: 16 64 DE 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 53 01 00 0F 4E 0C 03 FF 02 9A D5 33 FF AF 0E 03 FF 02 03 AE 1E 02 AD 1E 01 AC 1E 00 AB 1E 04 AF 16 FF FF 23 96 F7 39 7F AB 04 F7 1B 0E 54 D5 36 F7 0B 0E 7B D5 30 FD 1B 0E 62 D5 36 FD 0B 0E 85 D5 30 FF 1B 0E 6A D5 36 FE 1B 0E 65 D5 36 34 D5 33 FA 1B 0E 5C D5 36 FA 0B 0E 7E D5 30 FC 1B 0E 5F D5 36
-W: 16 64 94 27
-X: 2
-C: 16 66 00
-W: 16 00 02 54 01 00 34 D5 33 F8 1B 0E 57 D5 36 34 D5 33 F3 1B 0E 46 D5 36 F3 0B 0E 74 D5 30 F6 1B 0E 4F D5 36 49 D5 33 E7 1B 0E 3E D5 36 E7 0B 0E 6D D5 30 E8 1B 0E 41 D5 36 34 D5 33 D1 1B 0E 39 D5 36 34 D5 33 FF A1 0E 2D A0 0E 01 AC 18 00 AB 18 32 D5 33 FF AC 0E FE AB 0E 32 D5 33 EF AB 0E 16 D1 3A 32 D5 33
-W: 16 64 E4 27
-X: 2
-C: 16 66 00
-W: 16 00 02 55 01 00 D4 AC 04 FF AB 0E 32 D5 33 BD A1 0E B5 A0 0E 0D AC 18 FF AB 0E 32 D5 33 7E AC 04 FF AB 0E 32 D5 33 BF A1 0E 48 A0 0E 01 AC 18 00 AB 18 32 D5 33 BF A1 0E FF A0 0E 0A AC 18 CB AF 0C FE 6B 0E 32 D5 33 9A AC 04 9B AB 04 32 D5 33 BD A1 0E B5 A0 0E 0C AC 18 0B AB 18 32 D5 33 7B AC 04 7C AB 04
-W: 16 64 91 28
-X: 2
-C: 16 66 00
-W: 16 00 02 56 01 00 32 D5 33 FF A1 0E 2D A0 0E 12 AC 18 11 AB 18 32 D5 33 BE A1 0E 3B A0 0E 07 AC 18 FF AB 0E 32 D5 33 FF AC 0E FF AB 0E 93 F7 39 FF FF 23 A8 F7 39 F7 AF 16 C4 AF 0C B5 AF 0C FF 15 0E 29 D5 32 00 14 0E 2B D4 30 4B AF 0C BC AF 0C FF AB 0E FF 1B 0E 21 D5 32 D2 1C 0E 79 D4 36 FF 0B 0E 1E D5 32
-W: 16 64 CF 29
-X: 2
-C: 16 66 00
-W: 16 00 02 57 01 00 D2 1C 0E F6 D4 30 FF 1B 0E 19 D5 32 EF 1C 0E B5 D4 36 FF 0B 0E 16 D5 32 EF 1C 0E 03 D5 30 FF 1B 0E 11 D5 32 F5 1C 0E C5 D4 36 FF 0B 0E 0E D5 32 F5 1C 0E 08 D5 30 FF 1B 0E 09 D5 32 F6 1C 0E CA D4 36 F4 D3 33 FF 1B 0E 04 D5 32 F4 1C 0E BF D4 36 F4 D3 33 FF 1B 0E FF D4 32 DF 1C 0E AF D4 36
-W: 16 64 76 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 58 01 00 FF 0B 0E FC D4 32 DF 1C 0E F4 D3 34 FF 1B 0E F7 D4 32 DE 1C 0E 97 D4 36 F4 D3 33 FF 1B 0E F2 D4 32 BE 1C 0E 2E D4 36 FF 0B 0E EF D4 32 BE 1C 0E DC D4 30 FF 1B 0E EA D4 32 CE 1C 0E 7C D4 36 FF 0B 0E E7 D4 32 CE 1C 0E E1 D4 30 FF 1B 0E E2 D4 32 CF 1C 0E 7F D4 36 F4 D3 33 FF 1B 0E DD D4 32
-W: 16 64 65 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 59 01 00 BF 1C 0E 79 D4 36 F4 D3 33 FF 1B 0E D8 D4 32 7E 1C 0E 54 D4 36 FF 0B 0E D5 D4 32 7E 1C 0E CF D4 30 FF 1B 0E D0 D4 32 7F 1C 0E 61 D4 36 F4 D3 33 FF 1B 0E CB D4 32 7D 1C 0E 46 D4 36 F4 D3 33 FF A1 0E 2D A0 0E 00 AF 18 FB BF 0E 00 CF 02 FF A1 0E 2D A0 0E 00 AF 18 F7 BF 0E 00 CF 02 F4 D3 33
-W: 16 64 FA 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 5A 01 00 BF AF 0E 00 FF 02 F7 AF 0E 01 FF 02 FD AC 0E FF AB 0E FF AD 0E 9B AE 0E F0 FD 3A F4 D3 33 FF A1 0E 2D A0 0E 01 AF 18 DF BF 0E 01 CF 02 F4 D3 33 F9 AB 0E 16 D1 3A 02 FB 02 03 FC 02 00 1B 0E 99 D4 32 00 1C 0E 99 D4 32 FF AF 0E 03 FF 02 FE AF 0E 02 FF 02 6F AF 0C FD CF 0E 01 FF 02 7F 5F 0D
-W: 16 64 CD 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 5B 01 00 00 FF 02 FF AC 0E FF AB 0E F9 AD 0E FE AE 0E EF 7F 3A 2F D7 3A F7 D3 33 BF A1 0E BB A0 0E 04 AB 18 FB 2B 0E FF 1B 0E 81 D4 32 04 AF 18 04 FF 02 FB BF 0E 04 FF 02 9D D2 3A 6E AF 0C FB CE 0E 7D 5F 0D BF AF 0E 00 FF 02 B7 AF 0E 01 FF 02 FE AC 0E FF AB 0E F0 FD 3A 8C D2 3A DF EE 00 F7 D3 33
-W: 16 64 BF 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 5C 01 00 FE AB 0E DD E0 3A F7 D3 33 FF AB 0E DD E0 3A F7 D3 33 BE A5 0E 3B A4 0E 00 AF 1C 05 FF 02 01 AF 1C 06 FF 02 05 AB 1E FB EB 0E FE 2B 0E FE 8B 0E BF EB 0E FB AF 0C 05 AF 1E 40 2F 0E 05 FF 02 BF BF 0C 05 FF 02 9D D2 3A 6E AF 0C FA CE 0E 7D 5F 0D 00 F5 02 01 F4 02 FB D3 33 BF A0 0E 7F A1 0E
-W: 16 64 B6 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 5D 01 00 FD AF 0E 00 CF 02 FF AB 0E 2D AC 0E EF AD 0E 07 FA 3A FF AB 0E 2D AC 0E F7 AD 0E 07 FA 3A F7 D3 33 BE A1 0E 3B A0 0E 00 AB 18 BF 2B 0E FF 1B 0E F7 D3 36 BF A0 0E 7F A1 0E FD AF 0E 00 CF 02 FF AB 0E 2D AC 0E EF AD 0E 35 D4 33 BE A1 0E 3B A0 0E 00 AB 18 BF 2B 0E FF 1B 0E F7 D3 36 BF A0 0E
-W: 16 64 82 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 5E 01 00 7F A1 0E FC AF 0E 00 CF 02 FF AB 0E 2D AC 0E EF AD 0E 16 FA 3A FF AB 0E 2D AC 0E F7 AD 0E 16 FA 3A FF A1 0E 04 A0 0E FF AF 0E 26 CF 02 7F B4 01 F7 D3 33 F1 D0 3A FF FF 33 F7 D3 33 D6 15 0E 27 D4 32 18 14 0E 1F D4 36 83 15 0E 23 D4 32 BF 14 0E 1F D4 36 A5 15 0E F4 D3 32 36 14 0E F4 D3 32
-W: 16 64 28 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 5F 01 00 FF AF 0E 07 FF 02 08 FF 02 D6 15 0E 13 D4 32 18 14 0E 13 D4 32 C5 AF 0E 07 FF 02 3A AF 0E 08 FF 02 0B D4 33 83 15 0E 0B D4 32 BF 14 0E 0B D4 32 D3 AF 0E 07 FF 02 82 AF 0E 08 FF 02 9D D2 3A BE A1 0E 3B A0 0E 0B AC 18 0A AB 18 07 1B 1E 02 D4 32 08 1C 1E F8 D3 36 6E AF 0C F8 CE 0E 7D 5F 0D
-W: 16 64 C5 22
-X: 2
-C: 16 66 00
-W: 16 00 02 60 01 00 BE AF 0E 00 FF 02 31 AF 0E 01 FF 02 FD AC 0E FF AB 0E F0 FD 3A 8C D2 3A FE AC 0E FF AB 0E F2 D3 33 FF AC 0E FF AB 0E 09 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F8 AF 16 C4 AF 0C B5 AF 0C FF A1 0E 2D A0 0E 00 AF 18 05 FF 02 BD A1 0E A0 A0 0E FF A3 0E 2D A2 0E 06 AB 18 05 8B 1A 07 AC 18 06 8C 1A
-W: 16 64 A3 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 61 01 00 CA 8B 0E 01 FB 02 31 8C 0E 02 FC 02 06 AB 18 05 8B 1A 07 AC 18 06 8C 1A 6F 1F 0D 07 FF 02 7F 5F 0D 06 FF 02 07 A0 1E 06 A1 1E 59 8B 0E 02 CB 02 0D 8C 0E 03 CC 02 FE AF 0E 00 FF 02 5B AF 0C 4C AF 0C BE AD 0E 18 AE 0E 86 D3 3A FF 1C 0E BE D3 36 FF A3 0E 2D A2 0E 05 AF 1E 20 2F 0E 00 DF 02
-W: 16 64 18 20
-X: 2
-C: 16 66 00
-W: 16 00 02 62 01 00 89 D3 33 FB AF 0E 00 FF 02 5B AF 0C 4C AF 0C 07 AE 1E 06 AD 1E 86 D3 3A FF 1C 0E AF D3 36 FF A1 0E 2D A0 0E 05 AF 1E 60 2F 0E 00 CF 02 89 D3 33 05 AB 1E DF 2B 0E FF 1B 0E 8C D3 32 FD AF 0E 00 FF 02 5B AF 0C 4C AF 0C BE AD 0E 14 AE 0E 86 D3 3A FF 1C 0E 9C D3 36 FF A3 0E 2D A2 0E 05 AF 1E
-W: 16 64 BA 26
-X: 2
-C: 16 66 00
-W: 16 00 02 63 01 00 60 2F 0E 00 DF 02 89 D3 33 F0 15 0E 91 D3 32 FF 14 0E 91 D3 32 05 AB 1E BF 2B 0E FF 1B 0E 91 D3 32 F1 D0 3A FB 7F 3A 89 D3 33 5B AF 0C 4C AF 0C 30 D5 3A FF 1C 0E 89 D3 32 5B AF 0C 4C AF 0C 6B D3 3A 08 AF 16 A3 F7 39 FF FF 23 E0 AF 0C D1 AF 0C 00 AE 1E FF AD 0E BB 1D 04 7E D3 36 7D BD 01
-W: 16 64 49 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 64 01 00 6E D3 33 7D AF 04 76 D3 32 02 1B 18 76 D3 32 03 1C 18 76 D3 32 7D BE 01 6E D3 33 7D 1E 04 6E D3 32 00 1B 18 6F D3 32 01 1C 18 6F D3 32 FE AD 0E 7D FF 00 DC AF 0C FF AB 0E FF FF 23 96 F7 39 FF 1B 0E 67 D3 32 E7 1C 0E 62 D3 34 FF 1B 0E 42 D3 32 D1 1C 0E 42 D3 32 7F AF 04 7E BF 01 7F BC 01
-W: 16 64 D0 27
-X: 2
-C: 16 66 00
-W: 16 00 02 65 01 00 EF 1C 0E 5A D3 36 E8 1C 0E 58 D3 36 3F D3 33 30 D5 3A 3F D3 33 3D D3 3A 7C BB 01 7B BC 01 80 FB 0E 7C BF 01 7B BC 01 BD A1 0E B5 A0 0E 13 AB 18 80 2B 0E 14 AC 18 7B AE 04 7C AD 04 BF 1D 0C 47 D3 32 CF 1E 0C 3F D3 36 DF AF 0C 7F BF 0E 7C BF 01 7B BE 01 3F D3 33 7D AF 04 3F D3 32 BB FB 00
-W: 16 64 A7 27
-X: 2
-C: 16 66 00
-W: 16 00 02 66 01 00 93 F7 39 FF FF 23 FF AF 16 FF A2 0E FF A3 0E DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 37 D3 32 BF A1 0E 48 A0 0E 3D AF 0C 2E AF 0C 01 AC 10 FF AB 0E 22 CC 0C 33 DB 0C EE 1F 0D DD 5F 0D FF 1D 0E 27 D3 32 22 1E 0E 30 D3 34 BF A1 0E 92 A0 0E FF AE 0E FF AD 0E 01 AC 10 FF AB 0E 22 CC 0C
-W: 16 64 23 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 67 01 00 33 DB 0C EE 1F 0D DD 5F 0D FF 1D 0E 19 D3 32 FE 1E 0E 22 D3 34 BF A1 0E 90 A0 0E FF AE 0E FF AD 0E 01 AC 10 FF AB 0E 22 CC 0C 33 DB 0C EE 1F 0D DD 5F 0D FF 1D 0E 0B D3 32 FE 1E 0E 14 D3 34 00 AB 1E BA BA 0C 3B AF 0C 2C AF 0C 01 AF 16 FF FF 23 A8 F7 39 BE A1 0E 3B A0 0E 0B A4 18 0A A5 18
-W: 16 64 D7 26
-X: 2
-C: 16 66 00
-W: 16 00 02 68 01 00 FF FF 00 C5 15 0E FA D2 32 3A 14 0E F6 D2 36 D3 15 0E C9 D2 32 82 14 0E C9 D2 32 D3 15 0E E7 D2 32 82 14 0E E7 D2 32 FF DF 00 DF A0 0E 7F A1 0E 04 AB 18 FB BB 0E 04 CB 02 FD AE 0E FB AB 0E BF A9 0E 7F AD 0E D8 D2 33 AF A0 0E 7F A1 0E F4 AF 0E 00 CF 02 FF EF 00 EF A0 0E 7F A1 0E FF AF 0E
-W: 16 64 BE 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 69 01 00 04 CF 02 E9 AF 0E 06 CF 02 FB AE 0E FD AB 0E 7F A9 0E BF AD 0E 8F A0 0E 7F A1 0E BB 8F 0D 09 AC 18 CB 2B 0C EB BF 0C 09 CB 02 6F A0 0E 7F A1 0E DB 8F 0D 01 AC 18 CB 2B 0C 9B BF 0C 01 CB 02 C8 D2 33 F9 7F 3A EF A0 0E 7F A1 0E 55 AF 0E 06 CF 02 FF AF 04 FE BF 0E FF BF 01 9F 2F 0E FB AF 0C
-W: 16 64 B6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 6A 01 00 FF 1B 0E AF D2 32 8F A2 0E 7F A3 0E 09 AB 1A 02 2B 0E 09 DB 02 BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E FC 1B 0E A1 D2 32 00 AB 1A F7 BB 0E A2 D2 33 8F A2 0E 7F A3 0E 09 AB 1A 04 2B 0E 09 DB 02 BE A1 0E 3B A0 0E 04 AB 18 F8 2B 0E FB 1B 0E A1 D2 32 00 AB 1A FB BB 0E 00 DB 02 7A B5 01 79 B4 01
-W: 16 64 25 24
-X: 2
-C: 16 66 00
-W: 16 00 02 6B 01 00 A3 F7 39 FF FF 23 6F A0 0E 7F A1 0E 01 AB 18 BE AF 0C FF AD 0E FF AB 04 EF 2B 0E FF 1B 0E 91 D2 36 80 2E 0E EB AF 0C 8F D2 33 40 2E 0E EB AF 0C 01 CB 02 04 2A 0E FF FF 23 6F A0 0E 7F A1 0E 01 AB 18 BE AF 0C FF AD 0E FF AB 04 EF 2B 0E FF 1B 0E 80 D2 36 7F BE 0E EB AF 0C 7E D2 33 BF BE 0E
-W: 16 64 45 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 6C 01 00 EB AF 0C 01 CB 02 FF FF 23 A8 F7 39 FE AF 16 01 AF 16 76 FE 00 2F D7 3A 04 D3 3A BE A5 0E 3B A4 0E 0B AC 1C 0A AB 1C 7A 1B 04 6E D2 32 79 1C 04 6D D2 36 04 D3 3A D7 AF 0E 00 FF 02 1A AF 0E 01 FF 02 D7 AB 0E 7A AC 0E D8 AD 0E A6 AE 0E FA 7F 3A 74 D2 33 02 AF 16 A3 F7 39 FF FF 23 A8 F7 39
-W: 16 64 3C 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 6D 01 00 F7 AF 16 06 FB 02 FE AF 0E 07 FF 02 FF A1 0E 2D A0 0E 00 A1 18 F7 E1 0E 08 F1 02 FE F1 0E 08 FF 02 77 AB 04 AB 1B 0E EB D1 36 AB 0B 0E 48 D2 30 BF 0B 0E F3 D1 31 C1 1B 0E 42 D2 36 C0 1B 0E 3F D2 36 5A D1 33 A0 0B 0E BE D1 34 9F 1B 0E B6 D1 36 9E 1B 0E 5A D1 32 08 AF 1E 5A D1 36 A1 D1 33
-W: 16 64 A4 28
-X: 2
-C: 16 66 00
-W: 16 00 02 6E 01 00 F4 7F 3A FF A5 0E 04 A4 0E 06 AF 1E 01 EF 02 FF AB 0E 02 AC 0E DF AD 0E ED F9 3A 08 AF 1E 31 D2 32 23 AF 1C FE 1F 0E 1A D2 32 01 AB 1C FE 1B 0E 2B D2 36 FD 1B 0E 24 D2 36 1D D2 33 BD AF 0E 02 FF 02 4C AF 0E 03 FF 02 DF AF 0E 05 FF 02 00 D2 33 BD AF 0E 02 FF 02 FF AF 0E 03 FF 02 F3 AF 0E
-W: 16 64 6E 27
-X: 2
-C: 16 66 00
-W: 16 00 02 6F 01 00 05 FF 02 00 D2 33 FF AF 0E 05 FF 02 00 D2 33 23 AF 1C 12 D2 32 E0 D6 3A 02 FB 02 03 FC 02 04 FD 02 05 FE 02 00 D2 33 23 AF 1C FD 1F 0E 08 D2 32 FF AB 0E 02 AC 0E C7 D0 3A F7 AB 0E 22 D1 3A 22 EC 02 51 D1 33 01 AF 1C 02 FF 02 00 AF 1C 03 FF 02 23 AB 1C E0 2B 0E BF 1F 0D 05 FF 02 03 AE 1E
-W: 16 64 51 24
-X: 2
-C: 16 66 00
-W: 16 00 02 70 01 00 02 AD 1E 05 AF 1E 00 FF 02 FF AB 0E 02 AC 0E E0 7F 3A DF AB 0E 22 D1 3A FF A1 0E 04 A0 0E 22 CC 02 51 D1 33 08 AF 1E 5A D1 36 FF A1 0E 04 A0 0E 01 AF 18 FD 1F 0E 5A D1 34 A1 D1 33 08 AF 1E E4 D1 32 FF A1 0E 04 A0 0E 23 AF 18 FE 1F 0E 5A D1 32 FF A1 0E 04 A0 0E 01 AF 18 5A D1 32 EB AB 0E
-W: 16 64 CD 26
-X: 2
-C: 16 66 00
-W: 16 00 02 71 01 00 22 D1 3A 06 1C 1E A1 D1 32 BE A5 0E 10 A4 0E F4 7F 3A FF AB 0E 02 AC 0E EB AD 0E 05 D1 3A 5B AF 0C 4C AF 0C EF AD 0E D4 D0 3A FF 1C 0E CD D1 36 FF A4 0E FF A5 0E 5B AF 0C 4C AF 0C FF AD 0E 02 AE 0E DF 7F 3A 5B AF 0C 4C AF 0C FF AD 0E 02 AE 0E DF 7F 3A FF AB 0E 02 AC 0E EB AD 0E 05 D1 3A
-W: 16 64 18 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 72 01 00 51 D1 33 08 AF 1E 5A D1 36 FF A1 0E 04 A0 0E 01 BB 19 FE 1B 0E 5A D1 34 A1 D1 33 DF AB 0E 22 D1 3A 06 1C 1E A1 D1 32 08 AF 1E AB D1 32 FF A5 0E 04 A4 0E 23 AF 1C FE 1F 0E 7C D1 32 FF A1 0E 04 A0 0E 01 AB 18 FE 1B 0E A3 D1 36 FD 1B 0E 91 D1 36 A1 D1 33 08 AF 1E 9E D1 36 FF AF 0E 07 FF 02
-W: 16 64 22 28
-X: 2
-C: 16 66 00
-W: 16 00 02 73 01 00 51 D1 33 BD AF 0E 02 FF 02 4C AF 0E 03 FF 02 64 AF 0C FD C4 0E 75 5F 0D DF AF 0E 03 EF 02 F4 7F 3A 03 AC 1C FF AB 0E 72 D1 33 BD AF 0E 02 FF 02 FF AF 0E 03 FF 02 64 AF 0C FD C4 0E 75 5F 0D F3 AF 0E 03 EF 02 F4 7F 3A 03 AC 1C FF AB 0E 02 AF 1E 00 FF 02 03 AF 1E 01 FF 02 FF AD 0E 02 AE 0E
-W: 16 64 54 28
-X: 2
-C: 16 66 00
-W: 16 00 02 74 01 00 F0 FD 3A 57 F0 3A 51 D1 33 23 AF 1C 6A D1 32 E0 D6 3A 02 FB 02 03 FC 02 04 FD 02 05 FE 02 F4 7F 3A 05 AC 1E FF AB 0E 02 AF 1E 00 FF 02 03 AF 1E 01 FF 02 FF AD 0E 02 AE 0E F0 FD 3A 51 D1 33 F4 7F 3A 01 AF 1C 02 FF 02 00 AF 1C 03 FF 02 23 AD 1C E0 2D 0E DD 1F 0D 05 FD 02 03 AC 1E 02 AB 1E
-W: 16 64 88 26
-X: 2
-C: 16 66 00
-W: 16 00 02 75 01 00 00 FD 02 FF AD 0E 02 AE 0E E0 7F 3A 51 D1 33 F4 7F 3A 77 AC 04 FF AB 0E C0 AF 0C 42 C0 0E B1 AF 0C FF D1 0E 06 AF 1E 00 CF 02 07 AC 1E FF AB 0E 09 AF 16 A3 F7 39 FF FF 23 C0 AF 0C B1 AF 0C 77 4D 04 01 2D 0E DC AF 0C FF AB 0E 00 CC 0C 11 DB 0C 01 AC 18 00 AB 18 FF FF 23 A8 F7 39 C4 AF 0C
-W: 16 64 37 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 76 01 00 B5 AF 0C 76 AB 04 2C D1 3A FF 1C 0E 38 D1 36 78 AC 04 2F D1 33 5E AF 0C FF AD 0E 78 BE 01 77 AB 04 FE 2B 0E 4C AF 0C FF 1B 0E 2F D1 36 EC AF 0C FF AB 0E A3 F7 39 FF FF 23 BD AF 0C FF AC 0E 77 AB 04 01 2B 0E DF 1B 0C 24 D1 32 77 AC 04 FE 2C 0E FF AB 0E FF FF 23 FF AC 0E FF A1 0E 02 A0 0E
-W: 16 64 34 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 77 01 00 1D D1 33 01 CC 10 BB BF 0D 00 1B 0E 1E D1 32 CB 8F 0D BC AF 0C FF AB 0E FF FF 23 96 F7 39 FC AF 16 BD AF 0C 6F AF 0C FD CF 0E 01 FF 02 7F 5F 0D 00 FF 02 FF AC 0E FF AB 0E FE AE 0E F0 7F 3A 03 AC 1E 02 AB 1E 04 AF 16 93 F7 39 FF FF 23 C2 AF 0C B3 AF 0C DC AF 0C FE 1C 0E F2 D0 34 CC BF 0D
-W: 16 64 42 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 78 01 00 FF 0C 0E F2 D0 34 00 AB 1A CE AF 0C FF AD 0E 20 CE 0C 31 DD 0C 00 AF 18 01 5F 03 00 CB 02 01 CC 0E FF 0C 0E FD D0 30 FF FF 23 A8 F7 39 20 2A 0E DF FA 0E F0 D0 32 5C 2A 0E FF A4 0E 7F A5 0E 91 AB 1C C7 2B 0E 91 EB 02 FE AF 0E 60 EF 02 69 FE 3A FF AF 0E 40 EF 02 FF AF 0E 30 EF 02 FF AF 0E
-W: 16 64 38 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 79 01 00 90 EF 02 FF BF 3E FF BF 3E FF BF 3E FF BF 3E FF BF 3E FF BF 3E FF BF 3E FF BF 3E A3 F7 39 FF FF 23 C0 AF 0C B1 AF 0C FE AC 0E CC D0 33 01 AB 10 CC D0 36 FF AC 0E C9 D0 33 DD BF 0D 00 1D 0E D0 D0 32 FF AB 0E FF FF 23 A8 F7 39 FF AF 16 C4 AF 0C B5 AF 0C FF A0 0E 0B AF 0C F3 CB 0E 00 F0 02
-W: 16 64 8D 35
-X: 2
-C: 16 66 00
-W: 16 00 02 7A 01 00 E2 7F 3A BE AF 0C FF AD 0E 01 6E 03 01 6C 03 00 A0 1E 00 1F 0D FC 10 0E C2 D0 34 01 AF 16 A3 F7 39 FF FF 23 D0 AF 0C C1 AF 0C FF 1E 0E AA D0 36 FF 0E 0E A6 D0 34 BF AF 0C 01 BF 18 01 CF 02 BB 8F 0D 00 2F 18 00 CF 02 A4 D0 33 00 BB 18 00 CB 02 FF FF 23 96 F7 39 C8 AF 0C B9 AF 0C E0 AF 0C
-W: 16 64 AB 28
-X: 2
-C: 16 66 00
-W: 16 00 02 7B 01 00 D1 AF 0C 02 AD 1E 1F B0 0C 83 D0 36 7F FD 0E FB AF 0C FF 1B 0E 91 D0 36 FF AB 0E 00 09 18 93 D0 32 01 18 18 8B D0 30 8C D0 33 FF AB 0E 00 09 18 8D D0 32 01 18 18 8B D0 35 FE AB 0E FF AC 0E CF 1B 0C 86 D0 36 FE 2D 0E DC AF 0C CB AF 0C 02 AC 18 81 D0 33 DB AF 0C 8C AF 0C 7E D0 3A 93 F7 39
-W: 16 64 D6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 7C 01 00 FF FF 23 BD AF 0C CE AF 0C 75 AC 04 FF AB 0E C0 AF 0C C2 C0 0E B1 AF 0C FE D1 0E 75 AF 04 F9 1F 0E 63 D0 30 FF 1D 0E 65 D0 36 FF 1E 0E 65 D0 36 00 1F 19 00 CF 02 00 1E 18 67 D0 31 FF AF 0E 00 CF 02 FE AC 0E 62 D0 33 00 AC 0E 62 D0 33 FF AF 0E 00 CF 02 FF AC 0E FF FF 23 A8 F7 39 FD AF 16
-W: 16 64 1F 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 7D 01 00 BC AF 0C 9C AF 04 50 D0 32 FE 1C 0E 58 D0 36 74 AF 04 50 D0 32 BE A1 0E 3B A0 0E 03 AB 18 FD 2B 0E FF 1B 0E 50 D0 36 FF AB 0E 46 D0 33 FF A1 0E 2D A0 0E 00 AB 0E 11 AF 18 7F FF 0E 46 D0 32 11 AF 18 12 BF 18 46 D0 36 FE AB 0E FF 1C 0E 42 D0 32 74 1B 04 C7 CE 36 74 BB 01 BF A1 0E AA A0 0E
-W: 16 64 DB 27
-X: 2
-C: 16 66 00
-W: 16 00 02 7E 01 00 5B AF 18 73 BF 01 5C AF 18 72 BF 01 FE A1 0E 9F A0 0E 34 A4 18 33 A5 18 38 AC 18 37 AB 18 74 AF 04 FE 1F 0E DE CF 32 CF 44 0C 02 FF 02 BF 55 0C 01 FF 02 FE A1 0E BB A0 0E 04 AF 0C 15 AF 0C 0D A2 18 0B 32 1C 0C A3 18 0A 73 1C 7F F3 0E 22 D0 36 FF A2 0E FF A3 0E DF FA 0E FB AF 0C 00 FB 02
-W: 16 64 36 26
-X: 2
-C: 16 66 00
-W: 16 00 02 7F 01 00 20 2A 0E DF FA 0E 1F D0 32 FE A1 0E BB A0 0E 00 C3 02 01 C2 02 80 AF 0E 02 CF 02 00 AF 0E 03 CF 02 04 CF 02 05 CF 02 00 AB 1E BA BA 0C FF AE 0E FF AD 0E FF AC 0E FF AB 0E 01 AF 1E 7F FF 0E F1 CF 32 01 AF 1E 02 BF 1E F1 CF 36 02 AD 1E 01 AC 1E FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C
-W: 16 64 73 28
-X: 2
-C: 16 66 00
-W: 16 00 02 80 01 00 B9 AF 0C 02 12 1E FC AF 0C 01 AB 1E 3B 7B 0C CD AF 0C BC AF 0C FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D5 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 FE A1 0E BB A0 0E 7F 8C 0E 07 CC 02 06 CB 02 08 CD 02 09 CE 02
-W: 16 64 19 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 81 01 00 81 CF 33 FE A1 0E BB A0 0E 0B A2 18 0A A3 18 7F F3 0E D6 CF 36 FF A2 0E FF A3 0E DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E D3 CF 32 FE A1 0E BB A0 0E 00 C3 02 01 C2 02 80 AF 0E 02 CF 02 00 AF 0E 03 CF 02 04 CF 02 05 CF 02 00 AB 1E BA BA 0C FF AE 0E FF AD 0E FF AC 0E FF AB 0E 7F F5 0E
-W: 16 64 AB 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 82 01 00 9F CF 32 5F B4 0C 9F CF 36 5C AF 0C 4D AF 0C FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 74 AF 04 AA CF 32 72 AD 04 73 AC 04 FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 4C 42 0C 5B 53 0C CD AF 0C BC AF 0C FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D5 7F 39 04 AF 16
-W: 16 64 7E 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 83 01 00 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 74 AF 04 87 CF 32 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 FE A1 0E BB A0 0E 06 CB 02 07 CC 02 08 CD 02 09 CE 02 FE A1 0E 9F A0 0E
-W: 16 64 5F 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 84 01 00 36 A4 18 35 A5 18 3A AC 18 39 AB 18 74 AF 04 FE 1F 0E 24 CF 32 CF 44 0C 02 FF 02 BF 55 0C 01 FF 02 FE A5 0E AD A4 0E 51 AF 0C 40 AF 0C 0D A2 1C 0B 32 18 0C A3 1C 0A 73 18 7F F3 0E 68 CF 36 FF A2 0E FF A3 0E DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 65 CF 32 FE A5 0E AD A4 0E 00 E3 02
-W: 16 64 37 26
-X: 2
-C: 16 66 00
-W: 16 00 02 85 01 00 01 E2 02 80 AF 0E 02 EF 02 00 AF 0E 03 EF 02 04 EF 02 05 EF 02 00 AB 1E BA BA 0C FF AE 0E FF AD 0E FF AC 0E FF AB 0E 01 AF 1E 7F FF 0E 37 CF 32 01 AF 1E 02 BF 1E 37 CF 36 02 AD 1E 01 AC 1E FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 02 12 1E FC AF 0C 01 AB 1E 3B 7B 0C CD AF 0C
-W: 16 64 DB 26
-X: 2
-C: 16 66 00
-W: 16 00 02 86 01 00 BC AF 0C FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D5 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 FE A1 0E AD A0 0E 7F 8C 0E 07 CC 02 06 CB 02 08 CD 02 09 CE 02 C7 CE 33 FE A1 0E AD A0 0E 0B A2 18 0A A3 18 7F F3 0E
-W: 16 64 7A 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 87 01 00 1C CF 36 FF A2 0E FF A3 0E DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 19 CF 32 FE A1 0E AD A0 0E 00 C3 02 01 C2 02 80 AF 0E 02 CF 02 00 AF 0E 03 CF 02 04 CF 02 05 CF 02 00 AB 1E BA BA 0C FF AE 0E FF AD 0E FF AC 0E FF AB 0E 7F F5 0E E5 CE 32 5F B4 0C E5 CE 36 5C AF 0C 4D AF 0C FE AF 0E
-W: 16 64 53 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 88 01 00 D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 74 AF 04 F0 CE 32 72 AD 04 73 AC 04 FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 4C 42 0C 5B 53 0C CD AF 0C BC AF 0C FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D5 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03
-W: 16 64 43 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 89 01 00 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 74 AF 04 CD CE 32 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 FE A1 0E AD A0 0E 06 CB 02 07 CC 02 08 CD 02 09 CE 02 03 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FA AF 16 C8 AF 0C B9 AF 0C 00 FD 02
-W: 16 64 34 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 8A 01 00 01 FE 02 FE A1 0E 9F A0 0E 37 AF 18 02 FF 02 38 AF 18 03 FF 02 74 AF 04 FE 1F 0E A6 CE 32 FE A1 0E BB A0 0E 01 AC 18 00 AB 18 02 AF 0C 13 AF 0C 0B C8 1A 0B C8 02 0A D9 1A 0A C9 02 0B CC 18 0D DC 02 0A DB 18 0C DB 02 62 CE 33 74 AF 04 6A CE 32 FE A3 0E BB A2 0E 31 AF 0C 20 AF 0C 01 AC 1A
-W: 16 64 9D 23
-X: 2
-C: 16 66 00
-W: 16 00 02 8B 01 00 0B 3C 18 00 AB 1A 0A 7B 18 C0 7F 3A C4 AF 0C B5 AF 0C FE A3 0E BB A2 0E 0D AC 1A 03 3C 1E 0C AB 1A 02 7B 1E C0 7F 3A BF 05 0C 8F CE 32 CF 14 0C 87 CE 35 FE A1 0E BB A0 0E 02 AF 1E 0C CF 02 03 AF 1E 0D CF 02 6A CE 33 FE A3 0E BB A2 0E 0D A8 1A 0C A9 1A 9B AF 0C 8C AF 0C 02 0B 1E 7E CE 32
-W: 16 64 97 23
-X: 2
-C: 16 66 00
-W: 16 00 02 8C 01 00 03 1C 1E 70 CE 34 4B AF 0C FF AC 0E CC 44 0C BB 55 0C CD AF 0C FF AE 0E CC CE 0C BB DD 0C CC CC 0C BB DB 0C 8C CC 0C 9B DB 0C 6E CE 33 8C C4 0C 9B D5 0C FE A1 0E BB A0 0E 0C CB 02 0D CC 02 FE A3 0E BB A2 0E 31 AF 0C 20 AF 0C 00 AF 18 0A DF 02 01 AF 18 0B DF 02 FE A1 0E 9F A0 0E 39 AF 18
-W: 16 64 40 29
-X: 2
-C: 16 66 00
-W: 16 00 02 8D 01 00 04 FF 02 3A AF 18 05 FF 02 74 AF 04 FE 1F 0E 48 CE 32 FE A3 0E AD A2 0E 01 AC 1A 00 AB 1A 31 AF 0C 20 AF 0C 01 AF 1E 0B CF 18 0B DF 02 00 AF 1E 0A DF 18 0A DF 02 0B CC 1A 0D CC 02 0A DB 1A 0C CB 02 04 CE 33 74 AF 04 0C CE 32 FE A1 0E AD A0 0E 02 AF 0C 13 AF 0C 01 AC 18 0B 3C 1A 00 AB 18
-W: 16 64 52 20
-X: 2
-C: 16 66 00
-W: 16 00 02 8E 01 00 0A 7B 1A C0 7F 3A C4 AF 0C B5 AF 0C FE A1 0E AD A0 0E 0D AC 18 05 3C 1E 0C AB 18 04 7B 1E C0 7F 3A BF 05 0C 31 CE 32 CF 14 0C 29 CE 35 FE A3 0E AD A2 0E 04 AF 1E 0C DF 02 05 AF 1E 0D DF 02 0C CE 33 FE A1 0E AD A0 0E 0D A8 18 0C A9 18 82 AF 0C 93 AF 0C 04 03 1E 20 CE 32 05 12 1E 12 CE 34
-W: 16 64 23 22
-X: 2
-C: 16 66 00
-W: 16 00 02 8F 01 00 4B AF 0C FF AC 0E CC 44 0C BB 55 0C CD AF 0C FF AE 0E CC CE 0C BB DD 0C CC CC 0C BB DB 0C 8C CC 0C 9B DB 0C 10 CE 33 8C C4 0C 9B D5 0C FE A1 0E AD A0 0E 0C CB 02 0D CC 02 FE A3 0E AD A2 0E 31 AF 0C 20 AF 0C 00 AF 18 0A DF 02 01 AF 18 0B DF 02 BE A1 0E 3B A0 0E 03 AB 18 FE 2B 0E FF 1B 0E
-W: 16 64 9B 28
-X: 2
-C: 16 66 00
-W: 16 00 02 90 01 00 FC CD 36 66 CD 3A E8 CD 33 FE A5 0E 9F A4 0E 33 AF 1C 19 EF 02 34 AF 1C 1A EF 02 35 AF 1C 1B EF 02 36 AF 1C 1C EF 02 38 AE 1C 37 AD 1C FF AB 0E 26 AC 0E 34 FA 3A 3A AE 1C 39 AD 1C FF AB 0E 0A AC 0E 34 FA 3A 06 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FB AF 16 74 AF 04 69 CD 32 BF A1 0E AA A0 0E
-W: 16 64 AD 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 91 01 00 5B AF 18 7F FF 0E 69 CD 32 5B AF 18 5C BF 18 69 CD 36 73 AF 04 7F FF 0E 8D CD 32 73 AF 04 72 BF 04 8D CD 36 FF AB 0E 61 D0 3A FE A1 0E BB A0 0E FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 5E AF 0E FF 7F 03 09 AE 18 08 AD 18 07 AC 18 06 AB 18 D9 7F 39 04 AF 16 DF FA 0E F9 AF 0C
-W: 16 64 45 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 92 01 00 04 F9 02 20 2A 0E DF FA 0E BE CD 32 00 FB 02 01 FC 02 02 FD 02 03 FE 02 1B AF 0C 0C AF 0C C2 7F 3A 04 AB 1E BA BA 0C AE C6 3A FE A1 0E AD A0 0E FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 5E AF 0E FF 7F 03 09 AE 18 08 AD 18 07 AC 18 06 AB 18 D9 7F 39 04 AF 16 DF FA 0E F9 AF 0C
-W: 16 64 23 29
-X: 2
-C: 16 66 00
-W: 16 00 02 93 01 00 04 F9 02 20 2A 0E DF FA 0E 9E CD 32 00 FB 02 01 FC 02 02 FD 02 03 FE 02 1B AF 0C 0C AF 0C C2 7F 3A 04 AB 1E BA BA 0C 72 BF 05 72 BF 01 73 FF 05 73 BF 01 69 CD 33 FE A3 0E 6C A2 0E FE AB 0E 68 AC 0E FE A1 0E BB A0 0E 00 AF 1A 0A CF 02 01 AF 1A 0B CF 02 C4 AF 0C B5 AF 0C 00 AF 1C 0C CF 02
-W: 16 64 EC 25
-X: 2
-C: 16 66 00
-W: 16 00 02 94 01 00 01 AF 1C 0D CF 02 FE A1 0E AD A0 0E 02 AF 1A 0A CF 02 03 AF 1A 0B CF 02 C2 AF 0C B3 AF 0C 02 AF 1A 0C CF 02 03 AF 1A 0D CF 02 74 00 00 FD AB 0E 61 D0 3A FF AC 0E FF AB 0E CE AF 0C BD AF 0C C4 CE 3A 05 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FE A5 0E 9F A4 0E FE A1 0E BB A0 0E 0A AF 18 19 EF 02
-W: 16 64 30 29
-X: 2
-C: 16 66 00
-W: 16 00 02 95 01 00 0B AF 18 1A EF 02 0D AE 18 0C AD 18 FF AB 0E 26 AC 0E 34 FA 3A FE A1 0E AD A0 0E 0A AF 18 1B EF 02 0B AF 18 1C EF 02 0D AE 18 0C AD 18 FF AB 0E 0A AC 0E 34 FA 3A A3 F7 39 FF FF 23 9E F7 39 F7 AF 16 05 FB 02 06 FC 02 07 FD 02 08 FE 02 0C A5 1E FF AB 0E 61 D0 3A 08 A8 1E 07 A9 1E 06 AE 1E
-W: 16 64 57 26
-X: 2
-C: 16 66 00
-W: 16 00 02 96 01 00 05 AD 1E FE 15 0E 3A CD 36 74 AF 04 26 CD 36 FE A1 0E BB A0 0E 09 AF 18 FF 7F 03 08 AF 18 FF 7F 03 07 AF 18 FF 7F 03 06 AF 18 FF 7F 03 0C AE 1E 0B AD 1E 0A AC 1E 09 AB 1E D9 7F 39 04 AF 16 E8 AF 0C D9 AF 0C CE AF 0C BD AF 0C DF FA 0E FB AF 0C 04 FB 02 20 2A 0E DF FA 0E 23 CD 32 00 FD 02
-W: 16 64 4F 27
-X: 2
-C: 16 66 00
-W: 16 00 02 97 01 00 01 FE 02 02 F9 02 03 F8 02 FE AB 0E BB AC 0E C2 7F 3A 04 AB 1E BA BA 0C AE C6 3A FE 15 0E 12 CD 32 EF AC 0E D8 AB 0E CD AF 0C BC AF 0C FE AF 0E D2 7F 39 08 AF 1E FF 7F 03 08 AF 1E FF 7F 03 08 AF 1E FF 7F 03 08 AF 1E FF 7F 03 D9 7F 39 04 AF 16 FF AF 0E FF 7F 03 BF AF 0E FF 7F 03 E3 AF 0E
-W: 16 64 73 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 98 01 00 FF 7F 03 71 AF 0E FF 7F 03 D5 7F 39 04 AF 16 05 FB 02 06 FC 02 07 FD 02 08 FE 02 E8 AF 0C D9 AF 0C CE AF 0C BD AF 0C FE 15 0E EE CC 36 74 AF 04 DF CC 36 FE A1 0E AD A0 0E 96 F7 39 FF 7E 03 FF 7D 03 09 AE 18 08 AD 18 07 AC 18 06 AB 18 D9 7F 39 04 AF 16 E8 AF 0C D9 AF 0C CE AF 0C BD AF 0C
-W: 16 64 15 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 99 01 00 DF FA 0E FB AF 0C 04 FB 02 20 2A 0E DF FA 0E DC CC 32 00 FD 02 01 FE 02 02 F9 02 03 F8 02 FE AB 0E AD AC 0E C2 7F 3A 04 AB 1E BA BA 0C 09 AF 16 9A F7 39 FF FF 23 A8 F7 39 C2 AF 0C B3 AF 0C DB AF 0C EC AF 0C FE A1 0E BB A0 0E 00 AF 1A 0A CF 02 01 AF 1A 0B CF 02 C4 AF 0C B5 AF 0C 00 AF 1C
-W: 16 64 06 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 9A 01 00 0C CF 02 01 AF 1C 0D CF 02 FE A1 0E AD A0 0E 02 AF 1A 0A CF 02 03 AF 1A 0B CF 02 C2 AF 0C B3 AF 0C 02 AF 1A 0C CF 02 03 AF 1A 0D CF 02 74 00 00 FD AB 0E 61 D0 3A FF AC 0E FF AB 0E CE AF 0C BD AF 0C C4 CE 3A A3 F7 39 FF FF 23 A8 F7 39 FB AF 16 C4 AF 0C B5 AF 0C 01 FD 02 02 FE 02 74 AF 04
-W: 16 64 2E 29
-X: 2
-C: 16 66 00
-W: 16 00 02 9B 01 00 FE 1F 0E 47 CC 32 0A 1E 1E F8 AF 0C 09 A9 1E D9 79 0C 03 F9 02 04 F8 02 0D A2 1C 0B 32 1C 0C A3 1C 0A 73 1C 7F F3 0E 8F CC 36 FF A2 0E FF A3 0E DF FA 0E FB AF 0C 00 FB 02 20 2A 0E DF FA 0E 8C CC 32 00 E3 02 01 E2 02 80 AF 0E 02 EF 02 00 AF 0E 03 EF 02 04 EF 02 05 EF 02 00 AB 1E BA BA 0C
-W: 16 64 6B 24
-X: 2
-C: 16 66 00
-W: 16 00 02 9C 01 00 FF AE 0E FF AD 0E FF AC 0E FF AB 0E 7F F9 0E 58 CC 32 9F B8 0C 58 CC 36 9C AF 0C 8D AF 0C FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 74 AF 04 65 CC 32 72 AD 04 73 AC 04 FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 04 12 1E FC AF 0C 03 AB 1E 3B 7B 0C CD AF 0C BC AF 0C
-W: 16 64 CB 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 9D 01 00 FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D5 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 7F 8C 0E 07 EC 02 06 EB 02 08 ED 02 09 EE 02 EC CB 33 0B A2 1C 0A A3 1C 7F F3 0E 41 CC 36 FF A2 0E FF A3 0E DF FA 0E FB AF 0C
-W: 16 64 F3 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 9E 01 00 00 FB 02 20 2A 0E DF FA 0E 3E CC 32 00 E3 02 01 E2 02 80 AF 0E 02 EF 02 00 AF 0E 03 EF 02 04 EF 02 05 EF 02 00 AB 1E BA BA 0C FF AE 0E FF AD 0E FF AC 0E FF AB 0E 01 AF 1E 7F FF 0E 08 CC 32 01 AF 1E 02 BF 1E 08 CC 36 02 AD 1E 01 AC 1E FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C
-W: 16 64 F0 26
-X: 2
-C: 16 66 00
-W: 16 00 02 9F 01 00 74 AF 04 15 CC 32 72 AD 04 73 AC 04 FE AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 02 12 1E FC AF 0C 01 AB 1E 3B 7B 0C CD AF 0C BC AF 0C FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D5 7F 39 04 AF 16 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E
-W: 16 64 CB 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 A0 01 00 D4 7F 39 04 AF 16 74 AF 04 F0 CB 32 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 06 EB 02 07 EC 02 08 ED 02 09 EE 02 05 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F5 AF 16 02 FB 02 03 FC 02 04 FD 02 05 FE 02 FE AF 0E 06 FF 02 F6 C3 3A FF 1C 0E
-W: 16 64 FB 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 A1 01 00 61 CB 36 FE A5 0E 61 A4 0E 02 1F 1D 02 EF 02 FE 1F 0E D3 CB 32 EF AF 0E 01 EF 02 D8 AF 0E 00 EF 02 CC CB 33 BF A1 0E AA A0 0E 02 AF 1C 10 1F 18 CC CB 35 FF AF 0E 02 EF 02 01 A8 1C 00 A9 1C 17 AF 0E FF 7F 03 FC AF 0E FF 7F 03 9D AF 0C 8E AF 0C D8 7F 39 02 AF 16 09 FD 02 0A FE 02 07 FD 02
-W: 16 64 62 27
-X: 2
-C: 16 66 00
-W: 16 00 02 A2 01 00 08 FE 02 03 A0 1E 02 A1 1E 01 AE 18 00 AD 18 04 AF 1E 00 FF 02 05 AF 1E 01 FF 02 9B AF 0C 8C AF 0C BE 7F 3A 00 EB 02 01 EC 02 17 AF 0E FF 7F 03 FC AF 0E FF 7F 03 CE AF 0C BD AF 0C D8 7F 39 02 AF 16 DB AF 0C EC AF 0C 03 A0 1E 02 A1 1E 00 AF 18 7F FF 0E 9B CB 36 FE AB 0E 61 AC 0E FC AD 0E
-W: 16 64 6F 26
-X: 2
-C: 16 66 00
-W: 16 00 02 A3 01 00 ED F9 3A FF AF 0E 06 FF 02 61 CB 33 BF A1 0E AA A0 0E 0E A8 18 FF A9 0E 9F 1D 0C 94 CB 32 8F 1E 0C 86 CB 34 BE A1 0E 3B A0 0E 01 AB 18 7F 2B 0E FF 1B 0E 67 CB 36 09 AF 1E 00 FF 02 0A AF 1E 01 FF 02 9B AF 0C 8C AF 0C 74 CB 33 0F AE 18 FF AD 0E DF 1B 0C 81 CB 32 EF 1C 0C 61 CB 31 BE A1 0E
-W: 16 64 DE 27
-X: 2
-C: 16 66 00
-W: 16 00 02 A4 01 00 3B A0 0E 01 AB 18 7F 2B 0E FF 1B 0E 67 CB 36 07 AF 1E 00 FF 02 08 AF 1E 01 FF 02 DB AF 0C EC AF 0C 05 AE 1E 04 AD 1E BE 7F 3A 03 A0 1E 02 A1 1E 00 CB 02 01 CC 02 FF A1 0E 2D A0 0E 01 AF 18 FB BF 0E 01 CF 02 65 CB 33 FF AF 0E 06 FF 02 FE AB 0E 61 AC 0E FC AD 0E ED F9 3A 06 AC 1E FF AB 0E
-W: 16 64 FC 25
-X: 2
-C: 16 66 00
-W: 16 00 02 A5 01 00 0B AF 16 A3 F7 39 FF FF 23 A8 F7 39 D1 AF 16 08 FB 02 09 FC 02 0A FD 02 0B FE 02 FF AF 0E 0C FF 02 FE AF 0E 0D FF 02 FF AF 0E 0E FF 02 FF AF 0E 1F FF 02 20 FF 02 21 FF 02 22 FF 02 23 FD 02 24 FE 02 FF AF 0E 25 FF 02 26 FF 02 FF AF 0E 29 FF 02 2A FF 02 BF A1 0E AA A0 0E 39 AC 18 FF AB 0E
-W: 16 64 74 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 A6 01 00 BF A1 0E BB A0 0E 01 AE 18 00 AD 18 0B F8 3A 17 FB 02 18 FC 02 19 FB 02 1A FC 02 09 A2 1E 08 A3 1E 00 AF 1A 15 FF 02 01 AF 1A 16 FF 02 FE A1 0E 9F A0 0E 0B AC 1E 0A AB 1E 1F 0B 18 29 CB 32 20 1C 18 26 CB 31 1F CB 02 20 CC 02 09 A0 1E 08 A1 1E 09 AC 18 08 AB 18 0A AF 1E 00 FF 02 0B AF 1E
-W: 16 64 23 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 A7 01 00 01 FF 02 6F AF 0C FB CF 0E 03 FF 02 7F 5F 0D 02 FF 02 16 AE 1E 15 AD 1E 36 C5 3A 33 AB 1E F7 2B 0E FF 1B 0E 0F CB 36 FF AF 0E 06 FF 02 07 FF 02 64 AF 0C FB C4 0E 75 5F 0D 02 AF 1C 1D FF 02 03 AF 1C 1E FF 02 5B AF 0C 4C AF 0C 09 AE 1E 08 AD 1E DA C2 3A 0F FB 02 10 FC 02 7F 1B 0E FD CA 32
-W: 16 64 C1 24
-X: 2
-C: 16 66 00
-W: 16 00 02 A8 01 00 FE 1C 0E FE C8 36 09 A2 1E 08 A3 1E 01 AC 1A 00 AB 1A 02 0B 1A F6 CA 32 03 1C 1A FE C8 31 34 AF 1E 00 FF 02 35 AF 1E 01 FF 02 5B AF 0C 4C AF 0C 10 AE 1E 0F AD 1E 55 C5 3A 13 FB 02 14 FC 02 09 A0 1E 08 A1 1E 06 0B 18 E5 CA 32 07 1C 18 FE C8 34 6F AF 0C FB CF 0E 2C FF 02 7F 5F 0D 2B FF 02
-W: 16 64 98 22
-X: 2
-C: 16 66 00
-W: 16 00 02 A9 01 00 0D AF 1E C9 CA 36 BF A3 0E AA A2 0E 31 AF 0C 20 AF 0C 36 AC 1A 38 CC 18 35 AB 1A 37 DB 18 14 A2 1E 13 A3 1E BF 03 0C D0 CA 32 CF 12 0C AC CA 31 BE A1 0E 3B A0 0E 02 AB 18 DF 2B 0E FF 1B 0E AC CA 32 0E AF 1E AC CA 32 FE AF 0E 0E FF 02 FE AD 0E 0C AF 1E D8 0F 0E BF CA 30 0C AD 1E D7 4D 0E
-W: 16 64 8B 26
-X: 2
-C: 16 66 00
-W: 16 00 02 AA 01 00 09 A0 1E 08 A1 1E 03 AC 18 16 3C 1E 02 AB 18 15 7B 1E DE AF 0C FE 6D 0E D4 F7 3A 17 FB 02 18 FC 02 7F FB 0E B0 CA 32 BF BC 0C AC CA 32 FF AF 0E 17 FF 02 FE AF 0E 18 FF 02 0C 1F 1F 0C FF 02 16 AF 1E 18 CF 1E 1C FF 02 15 AF 1E 17 DF 1E 1B FF 02 1C AC 1E 1B AB 1E 09 A2 1E 08 A3 1E 02 0B 1A
-W: 16 64 22 23
-X: 2
-C: 16 66 00
-W: 16 00 02 AB 01 00 9D CA 32 03 1C 1A 98 CA 34 02 AF 1A 1B FF 02 03 AF 1A 1C FF 02 1C AF 1E 16 3F 1E 18 FF 02 1B AF 1E 15 7F 1E 17 FF 02 10 9F 1F 01 FF 02 0F CF 1F 00 FF 02 18 AC 1E 17 AB 1E EF AE 0E F1 AD 0E BE 7F 3A 27 FB 02 28 FC 02 1E AC 1E 1D AB 1E 10 AE 1E 0F AD 1E 57 FE 3A CE AF 0C BD AF 0C 27 AF 1E
-W: 16 64 BD 22
-X: 2
-C: 16 66 00
-W: 16 00 02 AC 01 00 00 FF 02 28 AF 1E 01 FF 02 24 AC 1E 23 AB 1E 44 FE 3A 0A FB 02 0B FC 02 09 A0 1E 08 A1 1E 09 AC 18 08 AB 18 0A AF 1E 00 FF 02 0B AF 1E 01 FF 02 6F AF 0C FB CF 0E 03 FF 02 7F 5F 0D 02 FF 02 1C AE 1E 1B AD 1E 36 C5 3A 33 AB 1E F7 2B 0E FF 1B 0E 1E CA 36 BF A3 0E AA A2 0E 3B AC 1A 3A AB 1A
-W: 16 64 18 22
-X: 2
-C: 16 66 00
-W: 16 00 02 AD 01 00 CC CC 0C BB DB 0C 26 AE 1E 25 AD 1E BF 1D 0C 58 CA 32 CF 1E 0C 1E CA 31 EC AF 0C 28 CC 1E DB AF 0C 27 DB 1E CD AF 0C BC AF 0C FF AF 0E D2 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 7F 88 0E 3B AD 1A 3A AC 1A FF AF 0E D2 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C 8C AF 0C 1D AF 0C
-W: 16 64 C4 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 AE 01 00 0E AF 0C D5 7F 39 04 AF 16 C5 7F 3A FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 2C A2 1E 2B A3 1E 03 AD 1A 02 AC 1A FE AF 0E D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D9 7F 39 04 AF 16 D1 7F 39 02 DD 02
-W: 16 64 6B 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 AF 01 00 03 DE 02 2C AC 1E 2B AB 1E 09 AE 1E 08 AD 1E DA C2 3A 11 FB 02 12 FC 02 34 AF 1E 00 FF 02 35 AF 1E 01 FF 02 2C AC 1E 2B AB 1E 12 AE 1E 11 AD 1E 55 C5 3A C4 AF 0C B5 AF 0C BF A1 0E AA A0 0E 02 AF 0C 13 AF 0C 36 AC 18 38 CC 1A 35 AB 18 37 DB 1A BF 05 0C 01 CA 32 CF 14 0C D8 C9 31 BE A1 0E
-W: 16 64 90 23
-X: 2
-C: 16 66 00
-W: 16 00 02 B0 01 00 3B A0 0E 02 AB 18 DF 2B 0E FF 1B 0E D8 C9 36 4F AF 0C 14 3F 1E 2E FF 02 5F AF 0C 13 7F 1E 2D FF 02 19 AF 1E 00 FF 02 1A AF 1E 01 FF 02 2A AC 1E 29 AB 1E 18 AE 1E 17 AD 1E BE 7F 3A 2E AE 1E 2D AD 1E BF 0D 0C E6 C9 32 CF 1E 0C D8 C9 34 19 AF 1E 00 FF 02 1A AF 1E 01 FF 02 2A AC 1E 29 AB 1E
-W: 16 64 3C 22
-X: 2
-C: 16 66 00
-W: 16 00 02 B1 01 00 18 AE 1E 17 AD 1E BE 7F 3A C4 AF 0C 14 C4 1E B5 AF 0C 13 D5 1E 4F AF 0C 14 3F 1E 2A FF 02 5F AF 0C 13 7F 1E 29 FF 02 17 AF 1E 19 FF 02 18 AF 1E 1A FF 02 12 A0 1E 11 A1 1E 7F 11 0E C8 C9 32 FE 10 0E AC C9 36 14 14 1E FC AF 0C 13 AB 1E 5B 7B 0C 7F FB 0E C0 C9 36 CC 9F 0D BB CF 0D F8 0B 0E
-W: 16 64 5E 24
-X: 2
-C: 16 66 00
-W: 16 00 02 B2 01 00 BD C9 32 00 1C 0E B3 C9 30 EF EC 0E FF 7F 03 EF EB 0E CB BF 0C 01 AC 16 13 0B 1E B4 C9 32 14 1C 1E B0 C9 34 FE AC 0E FF AB 0E AE C9 33 FF AC 0E FF AB 0E FF 1C 0E 89 C9 36 0E AF 1E 89 C9 32 0D AF 1E 89 C9 36 18 A2 1E 17 A3 1E FF 03 0E A3 C9 32 FE 12 0E 89 C9 34 3B 0F 0D 2C 4F 0D 17 FB 02
-W: 16 64 C6 28
-X: 2
-C: 16 66 00
-W: 16 00 02 B3 01 00 18 FC 02 09 A0 1E 08 A1 1E 03 AC 18 16 3C 1E 02 AB 18 15 7B 1E 18 AE 1E 17 AD 1E D4 F7 3A 0C AE 1E ED AF 0C FE 6D 0E CC CE 0C BB DD 0C FF 0B 0E 8D C9 32 D8 1C 0E DF CA 34 FF AF 0E 0D FF 02 DF CA 33 26 AF 1E 28 CF 1E 26 FF 02 25 AF 1E 27 DF 1E 25 FF 02 12 A2 1E 11 A3 1E 7F 13 0E 7D C9 32
-W: 16 64 5E 25
-X: 2
-C: 16 66 00
-W: 16 00 02 B4 01 00 FE 12 0E 08 C9 36 09 A0 1E 08 A1 1E 06 05 18 78 C9 32 07 14 18 32 C9 34 13 0B 1F 14 4C 1F 5D 0F 0D 4E 4F 0D CC CE 0C BB DD 0C 18 AE 1E 17 AD 1E DC 7F 39 22 CE 1E 22 FE 02 21 DD 1E 21 FD 02 20 DC 1E 20 FC 02 1F DB 1E 1F FB 02 1C A2 1E 1B A3 1E 02 03 18 61 C9 32 03 12 18 4D C9 31 0A AF 1E
-W: 16 64 39 1E
-X: 2
-C: 16 66 00
-W: 16 00 02 B5 01 00 23 FF 02 0B AF 1E 24 FF 02 15 F3 02 16 F2 02 11 AF 1E 0F FF 02 12 AF 1E 10 FF 02 13 F5 02 14 F4 02 2C A0 1E 2B A1 1E 02 AF 18 1D FF 02 03 AF 18 1E FF 02 DF CA 33 09 A2 1E 08 A3 1E 03 AF 1A 01 3F 1A 03 DF 02 02 AF 1A 00 7F 1A 02 DF 02 EF AF 0E FF 7F 03 D8 AF 0E FF 7F 03 FF AF 0E FF 7F 03
-W: 16 64 C2 22
-X: 2
-C: 16 66 00
-W: 16 00 02 B6 01 00 FF AF 0E FF 7F 03 26 AE 1E 25 AD 1E 24 AC 1E 23 AB 1E D6 7F 39 04 AF 16 09 A0 1E 08 A1 1E 04 CD 02 05 CE 02 F6 C8 33 09 A2 1E 08 A3 1E 07 AC 1A 14 3C 1E 06 AB 1A 13 7B 1E 14 34 1E 01 F4 02 13 75 1E 00 F5 02 18 AE 1E 17 AD 1E BE 7F 3A 17 FB 02 18 FC 02 16 CC 1E 15 DB 1E 09 A0 1E 08 A1 1E
-W: 16 64 71 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 B7 01 00 01 3C 18 03 CC 02 00 7B 18 02 CB 02 14 AC 1E 07 CC 18 13 AB 1E 06 DB 18 BB 0F 0D CC 4F 0D 18 AE 1E 17 AD 1E DC 7F 39 22 CE 1E 22 FE 02 21 DD 1E 21 FD 02 20 DC 1E 20 FC 02 1F DB 1E 1F FB 02 66 FE 00 45 C9 33 09 A2 1E 08 A3 1E 16 AF 1E 01 3F 1A 03 DF 02 15 AF 1E 00 7F 1A 02 DF 02 66 FE 00
-W: 16 64 2B 1F
-X: 2
-C: 16 66 00
-W: 16 00 02 B8 01 00 45 C9 33 09 A0 1E 08 A1 1E FF AF 0E 04 CF 02 05 CF 02 FF AF 0E 02 CF 02 03 CF 02 2F AF 16 A3 F7 39 FF FF 23 A8 F7 39 F2 AF 16 FF AF 0E 0D FF 02 66 FF 00 65 FF 00 CD C3 3A FE AF 0E 0B FF 02 5A AF 0E 0C FF 02 FF AF 0E 03 FF 02 04 FF 02 FE A5 0E 5E A4 0E FE A1 0E 5A A0 0E 01 AE 1C 01 3E 18
-W: 16 64 70 29
-X: 2
-C: 16 66 00
-W: 16 00 02 B9 01 00 00 AD 1C 00 7D 18 BF A1 0E BB A0 0E 01 AC 18 00 AB 18 EE 9F 0D BF 5D 0E 7B C3 3A 05 FB 02 06 FC 02 7F FB 0E CA C8 36 0B F5 02 0C F4 02 CF 9F 0D 06 FF 02 BF CF 0D 05 FF 02 FE AF 0E 0D FF 02 99 EA 3A CB AF 0C FF A5 0E 2D A4 0E 01 AC 1C DF EC 0E FE 2C 0E 47 EB 3A 07 FB 02 08 FC 02 BF A1 0E
-W: 16 64 8D 28
-X: 2
-C: 16 66 00
-W: 16 00 02 BA 01 00 AA A0 0E BF A3 0E BB A2 0E 36 AF 18 0C CF 1A 0A FF 02 35 AF 18 0B DF 1A 09 FF 02 0E AE 1C 0D AD 1C F7 AF 0E 00 FF 02 FC AF 0E 01 FF 02 17 AF 0E 02 FF 02 6C AF 0C FC CC 0E 7B 5F 0D 5C CB 3A FE A1 0E 9F A0 0E 07 AF 1E 31 CF 02 08 AF 1E 32 CF 02 05 AF 1E 2F CF 02 06 AF 1E 30 CF 02 0D AF 1E
-W: 16 64 59 24
-X: 2
-C: 16 66 00
-W: 16 00 02 BB 01 00 96 C8 36 32 9F 19 32 CF 02 31 CF 19 31 CF 02 30 9F 19 30 CF 02 2F CF 19 2F CF 02 FE AF 0E 06 CF 02 66 AF 04 83 C8 36 65 FE 00 06 AC 1E 05 AB 1E BF A1 0E BB A0 0E 01 AE 18 00 AD 18 C7 F7 3A 0C A0 1E 0B A1 1E 01 CC 18 67 BC 01 00 DB 18 68 BB 01 82 C8 33 65 FF 00 0E AF 16 A3 F7 39 FF FF 23
-W: 16 64 3E 26
-X: 2
-C: 16 66 00
-W: 16 00 02 BC 01 00 A8 F7 39 EC AF 16 B9 AF 0C CB AF 0C DC AF 0C 0D FE 02 19 A4 1E 18 A5 1E BF A1 0E BB A0 0E 00 AF 18 12 FF 02 01 AF 18 13 FF 02 6C FE 00 BF A1 0E AA A0 0E 50 05 18 6B C8 32 51 14 18 67 C8 34 51 A4 18 50 A5 18 61 C8 33 52 05 18 64 C8 32 53 14 18 61 C8 31 53 A4 18 52 A5 18 BF A1 0E AA A0 0E
-W: 16 64 0B 26
-X: 2
-C: 16 66 00
-W: 16 00 02 BD 01 00 36 CC 18 0A FC 02 35 DB 18 09 FB 02 FF A1 0E 2D A0 0E 01 AB 18 DF EB 0E FE 2B 0E BC AF 0C 9B AF 0C 47 EB 3A 07 FB 02 08 FC 02 FE AF 0E 0B FF 02 5E AF 0E 0C FF 02 BF AB 0E BB AC 0E E6 C2 3A 05 FB 02 06 FC 02 FE A1 0E 9F A0 0E 00 AF 18 03 FF 02 01 AF 18 04 FF 02 FF A1 0E 2D A0 0E 0E AE 18
-W: 16 64 62 27
-X: 2
-C: 16 66 00
-W: 16 00 02 BE 01 00 0D AD 18 0D AF 1E 00 FF 02 01 F5 02 02 F4 02 6C AF 0C FC CC 0E 7B 5F 0D 5C CB 3A 65 AF 04 13 C8 36 0C AC 1E 0B AB 1E FE A1 0E 9F A0 0E 01 AE 18 00 AD 18 0C C4 3A 67 4C 04 68 5B 04 13 AE 1E 12 AD 1E DC 7F 39 FB ED 0E FB EC 0E DE BF 0C FB 6B 0E CD BF 0C BC AF 0C FD 6B 0E 0E FD 02 0F FE 02
-W: 16 64 7D 26
-X: 2
-C: 16 66 00
-W: 16 00 02 BF 01 00 BF A1 0E AA A0 0E 36 A8 18 35 A9 18 DB AF 0C EC AF 0C 9D AF 0C 8E AF 0C 3F F8 3A 10 FB 02 11 FC 02 0B C8 33 05 AF 1E 0E FF 02 06 AF 1E 0F FF 02 07 AF 1E 10 FF 02 08 AF 1E 11 FF 02 BE A1 0E 3B A0 0E 00 AB 18 7F 2B 0E FF 1B 0E D1 C7 32 BF A1 0E AA A0 0E 42 AF 18 43 BF 18 D1 C7 36 BF AB 0E
-W: 16 64 67 26
-X: 2
-C: 16 66 00
-W: 16 00 02 C0 01 00 BB AC 0E E6 C2 3A 05 FB 02 06 FC 02 FE A5 0E 9F A4 0E 0F AF 1E 01 CF 1C 04 FF 02 0E AF 1E 00 DF 1C 03 FF 02 FF AF 0E 07 FF 02 08 FF 02 20 AE 1C 1F AD 1C 0D AF 1E 00 FF 02 FC AF 0E 01 FF 02 17 AF 0E 02 FF 02 6C AF 0C FC CC 0E 7B 5F 0D 5C CB 3A BF A1 0E AA A0 0E 43 AC 18 42 AB 18 06 AE 1E
-W: 16 64 BE 25
-X: 2
-C: 16 66 00
-W: 16 00 02 C1 01 00 05 AD 1E F7 F7 3A 15 EB 02 16 EC 02 BF A1 0E AA A0 0E 45 AC 18 44 AB 18 08 AE 1E 07 AD 1E F7 F7 3A 17 EB 02 18 EC 02 C5 C7 33 FE A3 0E 9F A2 0E BF A1 0E AA A0 0E 42 AF 18 15 DF 02 43 AF 18 16 DF 02 44 AF 18 17 DF 02 45 AF 18 18 DF 02 FF AF 0E 00 FF 02 11 AE 1E 10 AD 1E 0F AC 1E 0E AB 1E
-W: 16 64 20 26
-X: 2
-C: 16 66 00
-W: 16 00 02 C2 01 00 BB C7 3A 14 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F8 AF 16 00 FB 02 01 FC 02 02 FD 02 03 FE 02 FE A1 0E 9F A0 0E 01 AE 1E 16 3E 18 00 AD 1E 15 7D 18 00 FD 02 01 FE 02 03 AC 1E 18 3C 18 02 AB 1E 17 7B 18 02 FB 02 03 FC 02 33 CD 02 34 CE 02 35 CB 02 36 CC 02 65 AF 04 90 C7 32 30 AC 18 01 CC 18
-W: 16 64 BF 23
-X: 2
-C: 16 66 00
-W: 16 00 02 C3 01 00 2F AB 18 00 DB 18 01 CC 1E 01 FC 02 00 DB 1E 00 FB 02 32 AC 18 03 CC 18 31 AB 18 02 DB 18 03 CC 1E 03 FC 02 02 DB 1E 02 FB 02 84 C7 33 30 AF 18 16 3F 18 01 FF 02 2F AF 18 15 7F 18 00 FF 02 32 AF 18 18 3F 18 03 FF 02 31 AF 18 17 7F 18 02 FF 02 00 AF 1E 7F FF 0E 7D C7 36 7B AF 0C 6C AF 0C
-W: 16 64 05 20
-X: 2
-C: 16 66 00
-W: 16 00 02 C4 01 00 FB AD 0E ED F9 3A FE A5 0E 9F A4 0E 00 AF 1E 37 EF 02 01 AF 1E 38 EF 02 02 AF 1E 39 EF 02 03 AF 1E 3A EF 02 FE AB 0E 61 D0 3A 0C AF 1E 66 C7 32 33 AF 1C 7F FF 0E 57 C7 36 BE A1 0E 3B A0 0E 02 AB 18 EF 2B 0E FF 1B 0E 57 C7 36 FF AF 0E 04 FF 02 05 FF 02 60 AF 0C FB C0 0E 71 5F 0D FF AF 0E
-W: 16 64 BA 28
-X: 2
-C: 16 66 00
-W: 16 00 02 C5 01 00 02 CF 02 03 CF 02 1B AF 0C 0C AF 0C FE AD 0E 68 AE 0E CD CC 3A 44 C7 33 FE A5 0E D7 A4 0E 07 AF 1C 4B C7 36 9C AF 04 44 C7 32 BE A1 0E 3B A0 0E 03 AB 18 FB 2B 0E FF 1B 0E 44 C7 36 FE AB 0E 6C AC 0E FE AD 0E 68 AE 0E CD CC 3A FE AF 0E 07 EF 02 08 AF 16 A3 F7 39 FF FF 23 A8 F7 39 EC AF 16
-W: 16 64 1D 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 C6 01 00 66 FF 00 65 FF 00 BE A1 0E 6A A0 0E BF A3 0E BB A2 0E 05 AF 1A 12 FF 02 06 AF 1A 13 FF 02 14 AF 18 6A BF 01 15 AF 18 69 BF 01 FF AC 0E FF AB 0E 59 AE 0E F4 AD 0E CF C1 3A C4 AF 0C B5 AF 0C FF AC 0E BF AB 0E 59 AE 0E F4 AD 0E CF C1 3A 00 FB 02 01 FC 02 02 F5 02 03 F4 02 13 AC 1E 12 AB 1E
-W: 16 64 13 29
-X: 2
-C: 16 66 00
-W: 16 00 02 C7 01 00 59 AE 0E F4 AD 0E 98 C1 3A 0E FB 02 0F FC 02 6F AF 0C F1 CF 0E 0D FF 02 7F 5F 0D 0C FF 02 FF AF 0E 04 FF 02 05 FF 02 BF A1 0E BB A0 0E 01 AE 18 00 AD 18 CC 9F 0D BF 5B 0E DC 7F 39 DF CD 0E CC 5F 0D BB 5F 0D FB ED 0E FB EC 0E DE BF 0C FB 6B 0E CD BF 0C BC AF 0C FD 6B 0E 06 FD 02 07 FE 02
-W: 16 64 47 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 C8 01 00 BD A3 0E A0 A2 0E 0F AF 1A 08 FF 02 10 AF 1A 09 FF 02 10 AC 1A 0F AB 1A EF AF 0E 01 FF 02 D8 AF 0E 00 FF 02 EF AE 0E F1 AD 0E BE 7F 3A 08 FB 02 09 FC 02 BF A1 0E AA A0 0E 36 AF 18 4A CF 18 0B FF 02 35 AF 18 49 DF 18 0A FF 02 FF A1 0E 2D A0 0E 02 AF 0C 13 AF 0C 13 AF 1A 7F BF 0E 13 CF 02
-W: 16 64 7C 25
-X: 2
-C: 16 66 00
-W: 16 00 02 C9 01 00 FE A5 0E 9F A4 0E 1F AF 1C 10 FF 02 20 AF 1C 11 FF 02 F4 AF 0E 1F EF 02 59 AF 0E 20 EF 02 F7 AF 0E 00 FF 02 FC AF 0E 01 FF 02 17 AF 0E 02 FF 02 6C AF 0C FB CC 0E 7B 5F 0D 59 AE 0E F4 AD 0E 5C CB 3A 10 AF 1E 1F EF 02 11 AF 1E 20 EF 02 FF A1 0E 2D A0 0E 02 AF 0C 13 AF 0C 13 AF 1A 80 2F 0E
-W: 16 64 86 25
-X: 2
-C: 16 66 00
-W: 16 00 02 CA 01 00 13 CF 02 07 AC 1E 06 AB 1E BD A1 0E A0 A0 0E 0C AE 18 0B AD 18 BA 7F 3A CE AF 0C BD AF 0C FF AB 0E 10 AC 0E 34 FA 3A 6B FF 00 14 AF 16 A3 F7 39 FF FF 23 96 F7 39 FE AF 16 FE A1 0E 9F A0 0E 35 AF 18 7F FF 0E A2 C6 36 BF A1 0E AA A0 0E 36 AC 18 35 AB 18 8F C6 33 9C AF 04 FE 1F 0E 93 C6 32
-W: 16 64 30 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 CB 01 00 BF A1 0E BB A0 0E 08 AE 18 07 AD 18 FC AF 0E 00 FF 02 17 AF 0E 01 FF 02 FF AB 0E 70 AC 0E 55 C5 3A 8F C6 33 FF A1 0E 2D A0 0E 0A AC 18 09 AB 18 02 AF 16 93 F7 39 FF FF 23 A8 F7 39 BD AF 0C BF A3 0E BB A2 0E 04 A4 1A FC 24 0E FD 8F 0E FC AF 0C FB 9F 0D CB BB 0C B5 AF 0C FD E5 0E FF 1D 0E
-W: 16 64 8A 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 CC 01 00 72 C6 36 F7 C2 3A FF 1C 0E 76 C6 36 BD A1 0E A0 A0 0E 51 AE 18 FF A5 0E 58 C6 33 BD A1 0E A0 A0 0E 52 AE 18 58 C6 33 BD A1 0E A0 A0 0E 07 A8 18 03 38 1A 06 A9 18 02 79 1A 53 AE 18 FF AD 0E 9B AF 0C 8C AF 0C DD 7F 39 9B AF 0E FF 7F 03 FF AF 0E FF 7F 03 D7 7F 39 02 AF 16 FF 15 0E 5D C6 32
-W: 16 64 DC 29
-X: 2
-C: 16 66 00
-W: 16 00 02 CD 01 00 51 CE 18 58 C6 33 FE 14 0E 59 C6 32 52 CE 18 58 C6 33 50 AE 18 BD A1 0E A0 A0 0E 0A 1E 18 4E C6 35 FF A1 0E 2D A0 0E 10 AF 18 EF BF 0E 10 CF 02 49 C6 33 FF A1 0E 2D A0 0E 10 AF 18 10 2F 0E 10 CF 02 FF A1 0E 2D A0 0E 04 CE 02 5C AF 0C FF AB 0E A3 F7 39 FF FF 23 A8 F7 39 F9 AF 16 02 FB 02
-W: 16 64 2D 28
-X: 2
-C: 16 66 00
-W: 16 00 02 CE 01 00 03 FC 02 04 FD 02 05 FE 02 0D A2 1E 0C AC 1E 0B AB 1E BF BC 0C 35 C6 32 FE AC 0E FF AB 0E 0B FB 02 0C FC 02 BF A1 0E AA A0 0E 48 12 18 16 C6 30 19 C6 33 2C AF 0C FF AB 0E CC CC 0C BB DB 0C C4 AF 0C 03 C4 1E B5 AF 0C 02 D5 1E 01 AC 1C 00 AB 1C 0B AF 1E 00 FF 02 0C AF 1E 01 FF 02 05 AE 1E
-W: 16 64 A0 24
-X: 2
-C: 16 66 00
-W: 16 00 02 CF 01 00 04 AD 1E 06 F2 02 BE 7F 3A 00 EB 02 01 EC 02 06 A2 1E 22 BF 0D 00 12 0E 2E C6 32 05 8C 1F 04 8B 1F BC AF 0C FD EC 0E FF AB 0E 07 AF 16 A3 F7 39 FF FF 23 A8 F7 39 F8 AF 16 02 FB 02 03 FC 02 04 FD 02 05 FE 02 0D AE 1E 0C AD 1E DF BE 0C 02 C6 32 FE AE 0E FF AD 0E 0C FD 02 0D FE 02 05 AC 1E
-W: 16 64 77 26
-X: 2
-C: 16 66 00
-W: 16 00 02 D0 01 00 04 AB 1E E9 CB 3A 06 FC 02 0E AC 1E FF AB 0E CC CC 0C BB DB 0C C0 AF 0C 03 C0 1E B1 AF 0C 02 D1 1E 05 A2 1E 04 A3 1E 00 AF 1A 00 CF 02 01 AF 1A 01 CF 02 D8 C5 33 0E AC 1E FF AB 0E CC CC 0C BB DB 0C C4 AF 0C 03 C4 1E B5 AF 0C 02 D5 1E 01 AC 1C 00 AB 1C 05 A0 1E 04 A1 1E 01 AE 18 00 AD 18
-W: 16 64 F2 24
-X: 2
-C: 16 66 00
-W: 16 00 02 D1 01 00 0C AF 1E 00 FF 02 0D AF 1E 01 FF 02 BE 7F 3A 00 EB 02 01 EC 02 0E 1F 1F 0E FF 02 F1 1F 0E ED C5 34 06 AC 1E FF AB 0E 08 AF 16 A3 F7 39 FF FF 23 96 F7 39 FE AF 16 01 FB 02 DA C3 3A C0 AF 0C B1 AF 0C 00 AF 18 01 1F 1E B4 C5 36 01 AF 18 AA 1F 0E B4 C5 32 00 AF 18 AA 1F 0E BD C5 36 00 AF 18
-W: 16 64 E5 26
-X: 2
-C: 16 66 00
-W: 16 00 02 D2 01 00 FA 1F 0E B4 C5 32 6E 1F 0D 7D 5F 0D FF AF 0E 00 FF 02 FE AB 0E DC AF 0C ED AF 0C E7 AE 0E 62 FD 3A 02 AF 16 93 F7 39 FF FF 23 A8 F7 39 FC AF 16 C4 AF 0C B5 AF 0C F6 C3 3A FF 1C 0E 9D C5 32 AA AF 0E 00 EF 02 AA AF 0E 01 EF 02 DA C3 3A 00 FB 02 01 FC 02 DF AC 0E FF AB 0E 5D AF 0C 4E AF 0C
-W: 16 64 F2 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 D3 01 00 F0 FD 3A 6E C5 33 E7 AF 0E 03 FF 02 E7 AF 0E 02 FF 02 DA C3 3A C0 AF 0C B1 AF 0C 01 AF 18 AA 1F 0E 90 C5 32 E5 AF 0E 02 FF 02 8E C5 33 E5 AF 0E 03 FF 02 02 AB 1E 47 FD 3A 4E AF 0C FD CE 0E 5D 5F 0D FD AF 0E 00 FF 02 E1 AB 0E DC AF 0C ED AF 0C 02 AE 1E 62 FD 3A FF AF 0E 00 EF 02 AA AF 0E
-W: 16 64 6A 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 D4 01 00 01 EF 02 FF AF 0E 00 FF 02 FD AB 0E 5C AF 0C 4D AF 0C 02 AE 1E 62 FD 3A FF AF 0E 01 EF 02 FF AF 0E 00 FF 02 FD AB 0E 5C AF 0C 4D AF 0C 03 AE 1E 62 FD 3A 04 AF 16 A3 F7 39 FF FF 23 96 F7 39 FC AF 16 FE A1 0E 9F A0 0E 01 AE 18 00 AD 18 FF A1 0E 2D A0 0E 0D AF 18 00 FF 02 0E AF 18 01 FF 02
-W: 16 64 69 29
-X: 2
-C: 16 66 00
-W: 16 00 02 D5 01 00 FF AF 0E 02 FF 02 70 AF 0E 03 FF 02 FE AB 0E 5E AC 0E 36 C5 3A 04 AF 16 93 F7 39 FF FF 23 A8 F7 39 FC AF 16 C4 AF 0C B5 AF 0C 02 FD 02 03 FE 02 09 AE 1E 08 AD 1E 03 AC 1C 02 AB 1C FC AF 0E 00 FF 02 17 AF 0E 01 FF 02 BE 7F 3A FF AF 0E 01 FF 02 FB AF 0E 00 FF 02 03 AE 1E 02 AD 1E BE 7F 3A
-W: 16 64 D2 28
-X: 2
-C: 16 66 00
-W: 16 00 02 D6 01 00 01 CC 1C 00 DB 1C 7F FB 0E 39 C5 36 FF AC 0E FF AB 0E 04 AF 16 A3 F7 39 FF FF 23 A8 F7 39 0C C4 3A C4 AF 0C B5 AF 0C 05 AE 1E 04 AD 1E FE C4 3A 07 A0 1E 06 A1 1E 00 CB 02 01 CC 02 5B AF 0C 4C AF 0C 05 AE 1E 04 AD 1E CC C4 3A 07 A0 1E 06 A1 1E 02 CB 02 03 CC 02 A3 F7 39 FF FF 23 A8 F7 39
-W: 16 64 B3 28
-X: 2
-C: 16 66 00
-W: 16 00 02 D7 01 00 F8 AF 16 04 FB 02 05 FC 02 E4 AF 0C D5 AF 0C 0C AF 1E 6A BF 01 0D AF 1E 69 BF 01 FF AC 0E FF AB 0E CF C1 3A 06 FB 02 07 FC 02 FF AC 0E BF AB 0E 5D AF 0C 4E AF 0C CF C1 3A 00 FB 02 01 FC 02 06 AF 1E 02 FF 02 07 AF 1E 03 FF 02 05 AC 1E 04 AB 1E 5D AF 0C 4E AF 0C 98 C1 3A 08 AF 16 A3 F7 39
-W: 16 64 C9 27
-X: 2
-C: 16 66 00
-W: 16 00 02 D8 01 00 FF FF 23 A8 F7 39 FA AF 16 00 FB 02 01 FC 02 02 FD 02 03 FE 02 7B AF 0C 6C AF 0C 01 C2 3A FF AB 0E C4 CC 0C B5 DB 0C 4C AF 0C 46 CC 0E 5B AF 0C BF DB 0E 01 AE 1E 00 AD 1E 6B C3 3A 04 FB 02 05 FC 02 4C AF 0C F6 CC 0E 5B AF 0C BE DB 0E 01 AE 1E 00 AD 1E 6B C3 3A 03 AE 1E AB CE 0E 02 AD 1E
-W: 16 64 7D 28
-X: 2
-C: 16 66 00
-W: 16 00 02 D9 01 00 0A DD 0E DC 7F 39 BF CD 0E CC 5F 0D BB 5F 0D FD ED 0E FD EC 0E DE BF 0C FD 6B 0E CD BF 0C BC AF 0C FD 6B 0E EC AF 0C 05 CC 1E DB AF 0C 04 DB 1E 06 AF 16 A3 F7 39 FF FF 23 A8 F7 39 FA AF 16 00 FB 02 01 FC 02 02 FD 02 03 FE 02 7B AF 0C 6C AF 0C 55 C3 3A C5 AF 0C E7 C3 3A 5E AF 0C FF AD 0E
-W: 16 64 56 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 DA 01 00 E4 CE 0C D5 DD 0C 4E AF 0C FD CE 0E 5D 5F 0D CC CE 0C BB DD 0C 01 AE 1E 00 AD 1E 6B C3 3A 04 FB 02 05 FC 02 03 AC 1E 02 AB 1E D7 C3 3A CC C4 0C BB D5 0C 01 AE 1E 00 AD 1E 6B C3 3A CE AF 0C BD AF 0C 03 AC 1E 02 AB 1E 93 C4 3A E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 05 AD 1E 04 AC 1E FE AF 0E
-W: 16 64 97 29
-X: 2
-C: 16 66 00
-W: 16 00 02 DB 01 00 D2 7F 39 FF 70 03 FF 71 03 96 F7 39 D9 7F 39 04 AF 16 D1 7F 39 DB AF 0C EC AF 0C 06 AF 16 A3 F7 39 FF FF 23 96 F7 39 A5 CC 0E 0B DB 0E DC 7F 39 FE AF 0E CD 7F 39 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 8E AF 0E FF 7F 03 D9 7F 39 04 AF 16 C5 7F 3A 93 F7 39 FF FF 23 96 F7 39
-W: 16 64 04 32
-X: 2
-C: 16 66 00
-W: 16 00 02 DC 01 00 FE AF 16 00 FD 02 01 FE 02 FF AE 0E FB AD 0E BE 7F 3A 02 AF 16 93 F7 39 FF FF 23 96 F7 39 FB AF 16 BF A1 0E AA A0 0E 71 AF 04 5D 1F 18 6D C4 34 64 FE 00 6C C4 33 64 FF 00 FF A3 0E 2D A2 0E BF A1 0E AA A0 0E 0A AC 1A 09 AB 1A 35 0B 18 63 C4 32 36 1C 18 3F C4 30 64 AF 04 59 C4 32 FF A1 0E
-W: 16 64 19 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 DD 01 00 53 A0 0E FE AF 0E 10 CF 02 71 1F 05 71 BF 01 3E C4 33 6C 1F 0D 7B 5F 0D FB AD 0E ED F9 3A BE A1 0E 3B A0 0E 03 AB 18 FE 2B 0E FF 1B 0E 47 C4 36 04 AE 1E 03 AD 1E 02 AC 1E 01 AB 1E FE AF 0E 00 FF 02 BB C7 3A 3E C4 33 04 AE 1E 03 AD 1E 02 AC 1E 01 AB 1E FF AF 0E 00 FF 02 BB C7 3A 3E C4 33
-W: 16 64 4C 25
-X: 2
-C: 16 66 00
-W: 16 00 02 DE 01 00 71 FF 00 05 AF 16 93 F7 39 FF FF 23 96 F7 39 F8 1B 0E 32 C4 30 BC AF 0C FF AB 0E F6 AE 0E FF AD 0E C7 F7 3A 0E C4 33 BC AF 0C FF AB 0E 06 CC 0E BB FF 0D CE AF 0C BD AF 0C DC AF 0C FE 6C 0E CB AF 0C BF EC 0E FB AF 0C BF ED 0E FC AF 0C DB BB 0C BF EE 0E FD AF 0C EC BC 0C FF AE 0E EE CE 0C
-W: 16 64 3C 33
-X: 2
-C: 16 66 00
-W: 16 00 02 DF 01 00 DD DD 0C CC DC 0C BB DB 0C C0 AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 D6 7F 39 04 AF 16 DB AF 0C EC AF 0C 38 CC 0E CE DB 0E 93 F7 39 FF FF 23 A8 F7 39 C0 AF 0C B1 AF 0C DB AF 0C EC AF 0C 01 A4 18 00 A5 18 BF A1 0E BB A0 0E 01 AE 18 00 AD 18 C7 F7 3A 44 CC 0C
-W: 16 64 E1 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 E0 01 00 55 DB 0C 7F F5 0E FA C3 36 FF A4 0E FF A5 0E 5B AF 0C 4C AF 0C A3 F7 39 FF FF 23 96 F7 39 DA C3 3A C0 AF 0C B1 AF 0C FF AC 0E FF AB 0E 01 AF 18 AA 1F 0E EB C3 32 00 AF 18 E9 C3 32 FE AC 0E FF AB 0E 93 F7 39 FF FF 23 96 F7 39 DA C3 3A C0 AF 0C B1 AF 0C 01 AF 18 AA 1F 0E DE C3 36 BF C0 0E
-W: 16 64 FC 31
-X: 2
-C: 16 66 00
-W: 16 00 02 E1 01 00 11 5F 0D 1B AF 0C 0C AF 0C 93 F7 39 FF FF 23 BC AB 0E FF AC 0E FF FF 23 F4 0B 0E D4 C3 32 59 1C 0E D0 C3 30 BE AB 0E 88 AC 0E CE C3 33 BE AB 0E A6 AC 0E FF FF 23 A8 F7 39 F8 AF 16 9C AF 04 FE 1F 0E C4 C3 32 BA AB 04 FB 2B 0E FF 1B 0E B8 C3 36 BE A1 0E 3B A0 0E 02 AB 18 7F 2B 0E FF 1B 0E
-W: 16 64 FB 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 E2 01 00 B8 C3 36 FF A1 0E 2D A0 0E 13 AB 18 FB 2B 0E FF 1B 0E 86 C3 32 BF A1 0E BB A0 0E BE A3 0E 6A A2 0E 05 AF 18 04 FF 02 06 AF 18 05 FF 02 FF A1 0E 2D A0 0E 0E A4 18 0D A5 18 14 AF 1A 6A BF 01 15 AF 1A 69 BF 01 FF AC 0E FF AB 0E 5D AF 0C 4E AF 0C CF C1 3A 06 FB 02 07 FC 02 FF AC 0E BF AB 0E
-W: 16 64 90 27
-X: 2
-C: 16 66 00
-W: 16 00 02 E3 01 00 5D AF 0C 4E AF 0C CF C1 3A 00 FB 02 01 FC 02 06 AF 1E 02 FF 02 07 AF 1E 03 FF 02 05 AC 1E 04 AB 1E 5D AF 0C 4E AF 0C 98 C1 3A FE A1 0E 5A A0 0E 00 CB 02 01 CC 02 FF A3 0E 2D A2 0E 31 AF 0C 20 AF 0C 13 AF 18 FB BF 0E 13 DF 02 FE A3 0E 5A A2 0E FF A1 0E 2D A0 0E 0D AF 18 02 DF 02 0E AF 18
-W: 16 64 D4 23
-X: 2
-C: 16 66 00
-W: 16 00 02 E4 01 00 03 DF 02 08 AF 16 A3 F7 39 FF FF 23 EE 9F 0D BF 5D 0E DC 7F 39 DF CD 0E CC 5F 0D BB 5F 0D FB ED 0E FB EC 0E DE BF 0C FB 6B 0E CD BF 0C BC AF 0C FD 6B 0E DB AF 0C EC AF 0C FF FF 23 C0 AF 0C B1 AF 0C 03 AC 18 01 3C 18 02 AB 18 00 7B 18 DC 7F 39 DF CD 0E CC 5F 0D BB 5F 0D FB ED 0E FB EC 0E
-W: 16 64 DB 2E
-X: 2
-C: 16 66 00
-W: 16 00 02 E5 01 00 DE BF 0C FB 6B 0E CD BF 0C BC AF 0C FD 6B 0E EC AF 0C 01 CC 18 DB AF 0C 00 DB 18 FF FF 23 A8 F7 39 C4 AF 0C B5 AF 0C FF A0 0E FF A1 0E FF A8 0E FF A9 0E 00 AF 1C 01 BF 1C 49 C3 32 FF A3 0E 00 C3 33 01 AC 1C 00 AB 1C C0 0B 0E 44 C3 32 00 1C 0E 41 C3 34 F1 A3 0E 00 C3 33 01 AC 1C 00 AB 1C
-W: 16 64 04 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 E6 01 00 CE 0B 0E 3C C3 32 39 1C 0E 32 C3 30 F6 AE 0E FF AD 0E DC 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C FF A3 0E 0C C3 33 01 AC 1C C6 CC 0E 00 AB 1C 31 DB 0E C0 AE 0E FF AD 0E DC 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 9B 0F 0D 8C 4F 0D 1D 4F 0D 0E 4F 0D FB 6B 0E BE AF 0C FD 6B 0E BC AF 0C
-W: 16 64 E7 29
-X: 2
-C: 16 66 00
-W: 16 00 02 E7 01 00 BD AF 0C FD EB 0E BE AF 0C FF AD 0E FF AC 0E FF AB 0E 00 CE 0C 11 DD 0C 88 DC 0C 99 DB 0C 9B 0F 0D 8C 4F 0D 1D 4F 0D 0E 4F 0D E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C F8 A3 0E 9B 0F 0D 8C 4F 0D 1D 4F 0D 0E 4F 0D F7 ED 0E F7 EC 0E DE BF 0C F7 6B 0E CD BF 0C BC AF 0C FD 6B 0E E3 C3 0C 1B AF 0C
-W: 16 64 94 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 E8 01 00 C0 2B 0E 0C AF 0C 00 EB 02 01 EC 02 3C AF 0C FF AB 0E A3 F7 39 FF FF 23 9E F7 39 FE A5 0E DA C3 3A C0 AF 0C B1 AF 0C 01 AF 18 AA 1F 0E EA C2 32 00 8C 19 FB 9F 0D CB BB 0C B5 AF 0C FD E5 0E 5C AF 0C FF AB 0E 9A F7 39 FF FF 23 96 F7 39 C0 AF 0C B1 AF 0C FE A3 0E 5E A2 0E 01 AC 18 00 AB 18
-W: 16 64 CE 2D
-X: 2
-C: 16 66 00
-W: 16 00 02 E9 01 00 01 AE 1A 00 AD 1A 7B C3 3A 93 F7 39 FF FF 23 A8 F7 39 F8 AF 16 C2 AF 0C B3 AF 0C E4 AF 0C D5 AF 0C FE AF 0E 03 FF 02 7F AF 0E 02 FF 02 04 AF 1C 7F FF 0E 09 C2 36 FF A1 0E 2D A0 0E 01 AB 18 F7 2B 0E FF 1B 0E 0E C2 36 13 AB 18 7F 2B 0E FF 1B 0E 0E C2 32 02 AF 1A 7F FF 0E 1A C2 32 02 AF 1A
-W: 16 64 74 28
-X: 2
-C: 16 66 00
-W: 16 00 02 EA 01 00 03 BF 1A 1A C2 36 01 AE 1A 00 AD 1A DC AF 0C FE 6C 0E CB AF 0C FD EC 0E FB AF 0C FD ED 0E FC AF 0C DB BB 0C FD EE 0E FD AF 0C EC BC 0C FF AE 0E FE AF 0E CD 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 03 AD 1A 02 AC 1A FE AF 0E D2 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C 8C AF 0C
-W: 16 64 EA 2F
-X: 2
-C: 16 66 00
-W: 16 00 02 EB 01 00 1D AF 0C 0E AF 0C D5 7F 39 04 AF 16 04 FB 02 05 FC 02 06 FD 02 07 FE 02 05 AC 1C 04 AB 1C 03 AE 1A 02 AD 1A DC 7F 39 FE AF 0E CD 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 01 AC 1A 00 AB 1A 01 AE 1A 00 AD 1A DC 7F 39 FE AF 0E CD 7F 39 FF 7E 03 FF 7D 03 FF 7C 03 FF 7B 03 9B AF 0C 8C AF 0C
-W: 16 64 9A 27
-X: 2
-C: 16 66 00
-W: 16 00 02 EC 01 00 1D AF 0C 0E AF 0C D5 7F 39 04 AF 16 FF AF 0E FF 7F 03 BF AF 0E FF 7F 03 E3 AF 0E FF 7F 03 79 AF 0E FF 7F 03 D9 7F 39 04 AF 16 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C BF AF 0C 5C C2 36 7F FC 0E 5C C2 36 7E 1B 0E 5D C2 32 7F 1C 0E 5D C2 32 FF 1D 0E 5D C2 32
-W: 16 64 C6 29
-X: 2
-C: 16 66 00
-W: 16 00 02 ED 01 00 FF 1E 0E 06 C2 36 06 C2 30 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 9B AF 0C 8C AF 0C 1D AF 0C 0E AF 0C D4 7F 39 04 AF 16 C3 7F 3A FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 FF AF 0E FF 7F 03 7E AF 0E FF 7F 03 7F 8C 0E D4 7F 39 04 AF 16 07 AF 1E FF 7F 03 07 AF 1E
-W: 16 64 9D 2B
-X: 2
-C: 16 66 00
-W: 16 00 02 EE 01 00 FF 7F 03 07 AF 1E FF 7F 03 07 AF 1E FF 7F 03 D9 7F 39 04 AF 16 04 FB 02 05 FC 02 06 FD 02 07 FE 02 BF AF 0C 27 C2 36 7F FC 0E 27 C2 32 70 1B 0E 28 C2 32 80 1C 0E 28 C2 32 01 1D 0E 28 C2 32 FF 1E 0E 06 C2 36 06 C2 30 05 AE 1E 7F 8E 0E 04 AD 1E 06 A9 1E 07 A8 1E DB AF 0C EC AF 0C 9D AF 0C
-W: 16 64 91 23
-X: 2
-C: 16 66 00
-W: 16 00 02 EF 01 00 8E AF 0C D1 7F 39 02 FD 02 03 FE 02 06 C2 33 05 AE 1C 04 AD 1C 00 AF 1A 00 FF 02 01 AF 1A 01 FF 02 EF AC 0E D8 AB 0E BE 7F 3A 02 FB 02 03 FC 02 06 C2 33 04 AF 1C 02 FF 02 05 AF 1C 03 FF 02 06 C2 33 FF AF 0E 02 FF 02 03 FF 02 03 AC 1E 02 AB 1E 08 AF 16 A3 F7 39 FF FF 23 96 F7 39 C2 AF 0C
-W: 16 64 A1 25
-X: 2
-C: 16 66 00
-W: 16 00 02 F0 01 00 B3 AF 0C FF A0 0E FF A1 0E FF A8 0E FF A9 0E 00 AF 1A 01 BF 1A F5 C1 32 FF AD 0E D8 C1 33 01 AC 1A 00 AB 1A C0 0B 0E F0 C1 32 00 1C 0E ED C1 34 D8 AD 0E D8 C1 33 01 AC 1A 00 AB 1A D8 AE 0E FF AD 0E DC 7F 39 E0 AF 0C D1 AF 0C C8 AF 0C B9 AF 0C 9B 0F 0D 8C 4F 0D 1D 4F 0D 0E 4F 0D F7 ED 0E
-W: 16 64 EB 2A
-X: 2
-C: 16 66 00
-W: 16 00 02 F1 01 00 F7 EC 0E DE BF 0C F7 6B 0E CD BF 0C BC AF 0C FD 6B 0E ED AF 0C 1B AF 0C C0 2B 0E 0C AF 0C 00 DB 02 01 DC 02 DC AF 0C FF AB 0E 93 F7 39 FF FF 23 A8 F7 39 F8 AF 16 C4 AF 0C B5 AF 0C 06 FD 02 07 FE 02 FE C4 3A 02 FB 02 03 FC 02 5B AF 0C 4C AF 0C 07 AE 1E 06 AD 1E CC C4 3A 60 AF 0C FD C0 0E
-W: 16 64 AD 2C
-X: 2
-C: 16 66 00
-W: 16 00 02 F2 01 00 71 5F 0D 02 CB 02 03 CC 02 69 AE 04 6A AD 04 FC AF 0E 00 FF 02 17 AF 0E 01 FF 02 1B AF 0C 0C AF 0C 55 C5 3A CE AF 0C BD AF 0C 6A AF 04 7F FF 0E 9D C1 32 6A AF 04 69 BF 04 9D C1 36 EC AF 0C 03 3C 1E DB AF 0C 02 7B 1E BE A1 0E 23 A0 0E 09 0B 18 A2 C1 32 0A 1C 18 9D C1 34 03 AE 1E 0A CE 18
-W: 16 64 03 24
-X: 2
-C: 16 66 00
-W: 16 00 02 F3 01 00 02 AD 1E 09 DD 18 DB AF 0C EC AF 0C 08 AF 16 A3 F7 39 FF FF 23 96 F7 39 FA AF 16 0A 0B 1E 93 C1 32 0B 1C 1E 8F C1 35 FF AC 0E FF AB 0E 7B C1 33 08 0B 1E 8C C1 32 09 1C 1E 88 C1 30 FF AC 0E BF AB 0E 7B C1 33 FF AF 0E 01 FF 02 BF AF 0E 00 FF 02 02 FB 02 03 FC 02 04 FD 02 05 FE 02 C1 AB 0E
-W: 16 64 70 29
-X: 2
-C: 16 66 00
-W: 16 00 02 F4 01 00 CF AC 0E FF AE 0E FF AD 0E BB 7F 3A 06 AF 16 93 F7 39 FF FF 23 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 0D 44
-X: 2
-C: 16 66 00
-W: 16 00 02 F5 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 98 48
-X: 2
-C: 16 66 00
-W: 16 00 02 F6 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 99 48
-X: 2
-C: 16 66 00
-W: 16 00 02 F7 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 9A 48
-X: 2
-C: 16 66 00
-W: 16 00 02 F8 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 9B 48
-X: 2
-C: 16 66 00
-W: 16 00 02 F9 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 9C 48
-X: 2
-C: 16 66 00
-W: 16 00 02 FA 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 9D 48
-X: 2
-C: 16 66 00
-W: 16 00 02 FB 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 9E 48
-X: 2
-C: 16 66 00
-W: 16 00 02 FC 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 9F 48
-X: 2
-C: 16 66 00
-W: 16 00 02 FD 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 A0 48
-X: 2
-C: 16 66 00
-W: 16 00 02 FE 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 A1 48
-X: 2
-C: 16 66 00
-W: 16 00 02 FF 01 00 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F
-W: 16 64 A2 48
-X: 2
-C: 16 66 00
-W: 16 00 05
-W: 16 64 05 00
-X: 170
-C: 16 66 00
-C: 16 04 0A 91 AF DC
-W: 16 00 0C 00 00 00 83 DE
-W: 16 64 6D 01
-X: 400
-C: 16 66 00
-W: 16 00 0A 00 00 00 7F 71 20 5C 94 08 98 C0 FB 50 00 00 00 00 13 88 51 F6 C9 F4 14 52 09 21 32 6D 00 00 00 00 D0 7E
-W: 16 64 D1 0A
-X: 2
-C: 16 66 00
-W: 16 00 0A 01 00 00 17 DF 00 00 17 F3 00 00 3A 36 FD 91 00 25 30 01 00 EF 05 11 05 01 00 00 10 01 00 3C 00 50 3C 00
-W: 16 64 43 06
-X: 2
-C: 16 66 00
-W: 16 00 0A 02 00 00 64 3C 00 20 03 E8 00 00 04 10 68 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
-W: 16 64 05 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 03 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
-W: 16 64 88 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 04 00 00 07 08 25 5A 32 0F 64 60 00 A0 0B B8 00 C8 28 01 F4 00 00 00 00 00 00 00 00 00 00 43 80 04 00 00
-W: 16 64 B0 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 05 00 00 0F 00 2A 04 0A 7D 00 00 01 0A FE 76 E7 54 00 28 03 E8 02 01 2C F0 00 01 07 10 63 10 48 10 2D 10
-W: 16 64 DF 06
-X: 2
-C: 16 66 00
-W: 16 00 0A 06 00 00 15 0F FC 0F E6 0F D0 0F BC 0F A8 0F 96 0F 84 0F 74 0F 65 0F 56 0F 45 0F 30 0F 1C 0F 09 0E F9 0E
-W: 16 64 05 09
-X: 2
-C: 16 66 00
-W: 16 00 0A 07 00 00 EF 0E E6 0E DF 0E D8 0E D3 0E CF 0E CB 0E CA 0E C9 0E C7 0E C2 0E B8 0E AC 0E 9A 0E 85 0E 7B 0E
-W: 16 64 04 0D
-X: 2
-C: 16 66 00
-W: 16 00 0A 08 00 00 75 0E 56 0E 30 0D AB 0A 69 FF 2B FF 41 FF 56 FF 61 FF 67 FF 3B FF 16 FF 21 FF 21 FE EB FE B5 FE
-W: 16 64 02 12
-X: 2
-C: 16 66 00
-W: 16 00 0A 09 00 00 7F FE 5E FE 7F FE E8 00 02 00 9A 00 2E FF E2 FF CD FF B7 FF A1 FF 77 FF 36 FE DA FE 62 FC F3 FA
-W: 16 64 EA 15
-X: 2
-C: 16 66 00
-W: 16 00 0A 0A 00 00 B3 F8 ED F7 7C F7 3B F7 B2 F7 FC F8 32 F8 F7 F9 F0 F9 B0 F9 18 EC 9D 4D C0 FF 65 FF AC FF 98 FF
-W: 16 64 E4 18
-X: 2
-C: 16 66 00
-W: 16 00 0A 0B 00 00 75 FF BB FF 82 FF 93 FF BB FF D5 FF E4 FF CE FF AD 00 80 FF 73 00 00 FF 16 FE EC FE ED FE DC FE
-W: 16 64 F5 17
-X: 2
-C: 16 66 00
-W: 16 00 0A 0C 00 00 F3 FF 09 FE F7 FE AC FE 9E FE C6 FE DA FE DC FE 8E FF 75 00 00 00 00 01 C2 00 32 FF CE 02 26 64
-W: 16 64 10 13
-X: 2
-C: 16 66 00
-W: 16 00 0A 0D 00 00 7B 20 00 00 60 7E 00 00 00 00 64 00 19 00 64 28 63 5F 64 62 00 64 00 1E 00 B4 00 64 00 F0 00 FA
-W: 16 64 A5 07
-X: 2
-C: 16 66 00
-W: 16 00 0A 0E 00 00 11 10 10 68 41 D9 AF 37 00 00 00 01 00 14 00 00 0A F0 00 0A 05 00 32 01 C2 14 14 00 00 3C 00 4B
-W: 16 64 73 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 0F 00 00 00 28 00 3C 3C 01 90 36 72 04 14 FF FF FF FF 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 04
-W: 16 64 02 0E
-X: 2
-C: 16 66 00
-W: 16 00 0A 10 00 00 01 2C 00 C8 00 00 00 00 00 A0 00 AF 00 00 0A 64 01 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 09 03
-X: 2
-C: 16 66 00
-W: 16 00 0A 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 1B 00
-X: 2
-C: 16 66 00
-W: 16 00 0A 12 00 00 02 26 02 01 F4 02 58 02 02 26 0E 00 00 00 00 00 00 00 00 00 00 00 00 01 00 DC 84 E5 5F 00 00 0E
-W: 16 64 80 04
-X: 2
-C: 16 66 00
-W: 16 00 0A 13 00 00 10 00 00 00 01 00 00 03 84 64 03 E8 15 18 FE 70 10 68 10 68 10 04 0A 32 1E 00 0A 2D 37 01 01 01
-W: 16 64 6E 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 14 00 00 0B 62 71 33 34 7A 31 30 30 2D 47 31 0B 54 65 78 61 73 20 49 6E 73 74 2E 04 4C 49 4F 4E 00 96 00
-W: 16 64 DB 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 15 00 00 AF 00 4B 00 64 0A F0 02 0B 54 10 CC 02 10 68 64 01 03 05 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 9B 04
-X: 2
-C: 16 66 00
-W: 16 00 0A 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 13 0D
-X: 2
-C: 16 66 00
-W: 16 00 0A 17 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 01 20
-X: 2
-C: 16 66 00
-W: 16 00 0A 18 00 00 FF 55 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
-W: 16 64 FF 07
-X: 2
-C: 16 66 00
-W: 16 00 0A 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 23 00
-X: 2
-C: 16 66 00
-W: 16 00 0A 1A 00 00 FF FF 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
-W: 16 64 AB 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 25 00
-X: 2
-C: 16 66 00
-W: 16 00 0A 1C 00 00 64 3C 00 20 03 E8 00 00 04 10 68 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
-W: 16 64 1F 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 1D 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
-W: 16 64 A2 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 1E 00 00 FF FF FF FF 00 00 00 01 FF FF FF FD FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 0B 1C
-X: 2
-C: 16 66 00
-W: 16 00 0A 1F 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 09 20
-X: 2
-C: 16 66 00
-W: 16 00 08
-W: 16 64 08 00
-X: 2
-C: 16 66 00
-C: 16 04 5B 67
-W: 16 00 05
-W: 16 64 05 00
-X: 170
-C: 16 66 00
-C: 16 04 0A 91 AF DC
-W: 16 00 01 00 00 05 54 54 15
-W: 16 64 C3 00
-X: 20
-C: 16 66 00
-W: 16 00 05
-W: 16 64 05 00
-X: 170
-C: 16 66 00
-C: 16 04 5F E5 84 DC
-;--------------------------------------------------------
-;Execute Flash Code
-;--------------------------------------------------------
-W: 16 00 0F
-W: 16 64 0F 00
-X: 4000
diff --git a/rust/bq34z100_golden_image/0100_2_02-bq34z100.df.fs b/rust/bq34z100_golden_image/0100_2_02-bq34z100.df.fs
deleted file mode 100644
index c6e59c0..0000000
--- a/rust/bq34z100_golden_image/0100_2_02-bq34z100.df.fs
+++ /dev/null
@@ -1,197 +0,0 @@
-;--------------------------------------------------------
-;Verify Existing Firmware Version
-;--------------------------------------------------------
-W: AA 00 01 00
-C: AA 00 01 00
-W: AA 00 02 00
-C: AA 00 02 00
-;--------------------------------------------------------
-;Unseal device
-;--------------------------------------------------------
-W: AA 00 14 04
-W: AA 00 72 36
-W: AA 00 FF FF
-W: AA 00 FF FF
-X: 1000
-;--------------------------------------------------------
-;Go To ROM Mode
-;--------------------------------------------------------
-W: AA 00 00 0F
-X: 1000
-;--------------------------------------------------------
-;Data Block
-;--------------------------------------------------------
-W: 16 00 03 00 00
-W: 16 64 03 00
-X: 20
-C: 16 66 00
-W: 16 00 02 00 00 00 EA FF 33 FA FA 33 B5 FB 33 95 FE 33 AD FE 33 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F 02 02 3F 58 CB 33 C3 A0 08 1F 00 00 00 00 00 FF AA 0E FB A7 0E FF A6 0E FF A1 0E FF A0 0E FE A3 0E 54 A2 0E DE FF 3A 67 FF 3A E2 FF 33 FF AF 0E
-W: 16 64 3D 38
-X: 2
-C: 16 66 00
-W: 16 00 02 01 00 00 01 4F 03 3F 11 0C D9 FF 30 E0 FF 35 2F 10 0C E0 FF 35 FF FF 23 E3 AF 04 E2 BF 04 D1 FF 36 E2 A0 04 E3 A1 04 00 C7 02 01 C6 02 E5 AF 04 E3 BF 01 E4 AF 04 E2 BF 01 FF AC 0E E1 1C 04 8A FF 31 E2 A0 04 E3 A1 04 02 AB 18 7F 2B 0E FF 1B 0E BF FF 32 FC FA 0E FB AF 0C 02 2B 18 FF 1B 0E 98 FF 36
-W: 16 64 AE 2C
-X: 2
-C: 16 66 00
-W: 16 00 05
-W: 16 64 05 00
-X: 170
-C: 16 66 00
-C: 16 04 0A 91 AF DC
-W: 16 00 0C 00 00 00 83 DE
-W: 16 64 6D 01
-X: 400
-C: 16 66 00
-W: 16 00 0A 00 00 00 7F 71 20 5C 94 08 98 C0 FB 50 00 00 00 00 13 88 51 F6 C9 F4 14 52 09 21 32 6D 00 00 00 00 D0 7E
-W: 16 64 D1 0A
-X: 2
-C: 16 66 00
-W: 16 00 0A 01 00 00 17 DF 00 00 17 F3 00 00 3A 36 FD 91 00 25 30 01 00 EF 05 11 05 01 00 00 10 01 00 3C 00 50 3C 00
-W: 16 64 43 06
-X: 2
-C: 16 66 00
-W: 16 00 0A 02 00 00 64 3C 00 20 03 E8 00 00 04 10 68 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
-W: 16 64 05 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 03 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
-W: 16 64 88 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 04 00 00 07 08 25 5A 32 0F 64 60 00 A0 0B B8 00 C8 28 01 F4 00 00 00 00 00 00 00 00 00 00 43 80 04 00 00
-W: 16 64 B0 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 05 00 00 0F 00 2A 04 0A 7D 00 00 01 0A FE 76 E7 54 00 28 03 E8 02 01 2C F0 00 01 07 10 63 10 48 10 2D 10
-W: 16 64 DF 06
-X: 2
-C: 16 66 00
-W: 16 00 0A 06 00 00 15 0F FC 0F E6 0F D0 0F BC 0F A8 0F 96 0F 84 0F 74 0F 65 0F 56 0F 45 0F 30 0F 1C 0F 09 0E F9 0E
-W: 16 64 05 09
-X: 2
-C: 16 66 00
-W: 16 00 0A 07 00 00 EF 0E E6 0E DF 0E D8 0E D3 0E CF 0E CB 0E CA 0E C9 0E C7 0E C2 0E B8 0E AC 0E 9A 0E 85 0E 7B 0E
-W: 16 64 04 0D
-X: 2
-C: 16 66 00
-W: 16 00 0A 08 00 00 75 0E 56 0E 30 0D AB 0A 69 FF 2B FF 41 FF 56 FF 61 FF 67 FF 3B FF 16 FF 21 FF 21 FE EB FE B5 FE
-W: 16 64 02 12
-X: 2
-C: 16 66 00
-W: 16 00 0A 09 00 00 7F FE 5E FE 7F FE E8 00 02 00 9A 00 2E FF E2 FF CD FF B7 FF A1 FF 77 FF 36 FE DA FE 62 FC F3 FA
-W: 16 64 EA 15
-X: 2
-C: 16 66 00
-W: 16 00 0A 0A 00 00 B3 F8 ED F7 7C F7 3B F7 B2 F7 FC F8 32 F8 F7 F9 F0 F9 B0 F9 18 EC 9D 4D C0 FF 65 FF AC FF 98 FF
-W: 16 64 E4 18
-X: 2
-C: 16 66 00
-W: 16 00 0A 0B 00 00 75 FF BB FF 82 FF 93 FF BB FF D5 FF E4 FF CE FF AD 00 80 FF 73 00 00 FF 16 FE EC FE ED FE DC FE
-W: 16 64 F5 17
-X: 2
-C: 16 66 00
-W: 16 00 0A 0C 00 00 F3 FF 09 FE F7 FE AC FE 9E FE C6 FE DA FE DC FE 8E FF 75 00 00 00 00 01 C2 00 32 FF CE 02 26 64
-W: 16 64 10 13
-X: 2
-C: 16 66 00
-W: 16 00 0A 0D 00 00 7B 20 00 00 60 7E 00 00 00 00 64 00 19 00 64 28 63 5F 64 62 00 64 00 1E 00 B4 00 64 00 F0 00 FA
-W: 16 64 A5 07
-X: 2
-C: 16 66 00
-W: 16 00 0A 0E 00 00 11 10 10 68 41 D9 AF 37 00 00 00 01 00 14 00 00 0A F0 00 0A 05 00 32 01 C2 14 14 00 00 3C 00 4B
-W: 16 64 73 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 0F 00 00 00 28 00 3C 3C 01 90 36 72 04 14 FF FF FF FF 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 04
-W: 16 64 02 0E
-X: 2
-C: 16 66 00
-W: 16 00 0A 10 00 00 01 2C 00 C8 00 00 00 00 00 A0 00 AF 00 00 0A 64 01 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 09 03
-X: 2
-C: 16 66 00
-W: 16 00 0A 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 1B 00
-X: 2
-C: 16 66 00
-W: 16 00 0A 12 00 00 02 26 02 01 F4 02 58 02 02 26 0E 00 00 00 00 00 00 00 00 00 00 00 00 01 00 DC 84 E5 5F 00 00 0E
-W: 16 64 80 04
-X: 2
-C: 16 66 00
-W: 16 00 0A 13 00 00 10 00 00 00 01 00 00 03 84 64 03 E8 15 18 FE 70 10 68 10 68 10 04 0A 32 1E 00 0A 2D 37 01 01 01
-W: 16 64 6E 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 14 00 00 0B 62 71 33 34 7A 31 30 30 2D 47 31 0B 54 65 78 61 73 20 49 6E 73 74 2E 04 4C 49 4F 4E 00 96 00
-W: 16 64 DB 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 15 00 00 AF 00 4B 00 64 0A F0 02 0B 54 10 CC 02 10 68 64 01 03 05 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 9B 04
-X: 2
-C: 16 66 00
-W: 16 00 0A 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 13 0D
-X: 2
-C: 16 66 00
-W: 16 00 0A 17 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 01 20
-X: 2
-C: 16 66 00
-W: 16 00 0A 18 00 00 FF 55 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
-W: 16 64 FF 07
-X: 2
-C: 16 66 00
-W: 16 00 0A 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 23 00
-X: 2
-C: 16 66 00
-W: 16 00 0A 1A 00 00 FF FF 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
-W: 16 64 AB 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-W: 16 64 25 00
-X: 2
-C: 16 66 00
-W: 16 00 0A 1C 00 00 64 3C 00 20 03 E8 00 00 04 10 68 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
-W: 16 64 1F 08
-X: 2
-C: 16 66 00
-W: 16 00 0A 1D 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
-W: 16 64 A2 05
-X: 2
-C: 16 66 00
-W: 16 00 0A 1E 00 00 FF FF FF FF 00 00 00 01 FF FF FF FD FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 0B 1C
-X: 2
-C: 16 66 00
-W: 16 00 0A 1F 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
-W: 16 64 09 20
-X: 2
-C: 16 66 00
-W: 16 00 08
-W: 16 64 08 00
-X: 2
-C: 16 66 00
-C: 16 04 5B 67
-W: 16 00 05
-W: 16 64 05 00
-X: 170
-C: 16 66 00
-C: 16 04 0A 91 AF DC
-W: 16 00 01 00 00 05 54 54 15
-W: 16 64 C3 00
-X: 20
-C: 16 66 00
-W: 16 00 05
-W: 16 64 05 00
-X: 170
-C: 16 66 00
-C: 16 04 5F E5 84 DC
-;--------------------------------------------------------
-;Execute Flash Code
-;--------------------------------------------------------
-W: 16 00 0F
-W: 16 64 0F 00
-X: 4000
diff --git a/rust/bq34z100_golden_image/0100_2_02-bq34z100.srec b/rust/bq34z100_golden_image/0100_2_02-bq34z100.srec
deleted file mode 100644
index e6633d4..0000000
--- a/rust/bq34z100_golden_image/0100_2_02-bq34z100.srec
+++ /dev/null
@@ -1,3172 +0,0 @@
-S00F00004657303030315F30305F303212
-S31A000040007F71205C940898C0FB5000000000138851F6C9F41447
-S31A00004015520921326D00000000D07E17DF000017F300003A36B7
-S31A0000402AFD910025300100EF0511050100001001003C00503CB3
-S31A0000403F00643C002003E80000041068FED5FB950002001403C3
-S31A00004054E8010001F4001E003C0E10000A460532010F01F4006F
-S31A000040696446500A0ED80E990190006419000100140001001473
-S31A0000407E03230708255A320F646000A00BB800C82801F4000026
-S31A00004093000000000000000043800400000F002A040A7D000087
-S31A000040A8010AFE76E754002803E802012CF0000107106310483E
-S31A000040BD102D10150FFC0FE60FD00FBC0FA80F960F840F740F5B
-S31A000040D2650F560F450F300F1C0F090EF90EEF0EE60EDF0ED868
-S31A000040E70ED30ECF0ECB0ECA0EC90EC70EC20EB80EAC0E9A0E9D
-S31A000040FC850E7B0E750E560E300DAB0A69FF2BFF41FF56FF612C
-S31A00004111FF67FF3BFF16FF21FF21FEEBFEB5FE7FFE5EFE7FFEAE
-S31A00004126E80002009A002EFFE2FFCDFFB7FFA1FF77FF36FEDA46
-S31A0000413BFE62FCF3FAB3F8EDF77CF73BF7B2F7FCF832F8F7F935
-S31A00004150F0F9B0F918EC9D4DC0FF65FFACFF98FF75FFBBFF82BF
-S31A00004165FF93FFBBFFD5FFE4FFCEFFAD0080FF730000FF16FEBE
-S31A0000417AECFEEDFEDCFEF3FF09FEF7FEACFE9EFEC6FEDAFEDCCF
-S31A0000418FFE8EFF750000000001C20032FFCE0226647B2000002C
-S31A000041A4607E00000000640019006428635F64620064001E000F
-S31A000041B9B4006400F000FA1110106841D9AF370000000100143B
-S31A000041CE00000AF0000A05003201C2141400003C004B00280001
-S31A000041E33C3C019036720414FFFFFFFF0123456789ABCDEFFE3E
-S31A000041F8DCBA987654321004012C00C80000000000A000AF002A
-S31A0000420D000A6401003C000000000000000000000000000000EB
-S31A0000422200000000000000000000000000000000000000000081
-S31A0000423700000000000000000002260201F402580202260E00BB
-S31A0000424C00000000000000000000000100DC84E55F00000E1094
-S31A0000426100000001000003846403E81518FE70106810681004CC
-S31A000042760A321E000A2D370101010B627133347A3130302D479E
-S31A0000428B310B546578617320496E73742E044C494F4E0096001F
-S31A000042A0AF004B00640AF0020B5410CC02106864010305000087
-S31A000042B5000000000000000000000000000000000000000000EE
-S31A000042CA000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFE5
-S31A000042DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9
-S31A000042F4FFFFFFFFFFFFFFFFFFFFFFFFFF550069006400710029
-S31A000043098F00620061006C0059005600550057005A006E02872F
-S31A0000431E05DC00000000000000000000000000000000000000A3
-S31A0000433300000000000000000000000000FFFF00690064007133
-S31A00004348008F00620061006C0059005600550057005A006E0277
-S31A0000435D8705DC000000000000000000000000000000000000DD
-S31A000043720000000000000000000000000000643C002003E80085
-S31A0000438700041068FED5FB950002001403E8010001F4001E0027
-S31A0000439C3C0E10000A460532010F01F4006446500A0ED80E998F
-S31A000043B1019000641900010014000100140323FFFFFFFF000097
-S31A000043C60001FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
-S31A000043DBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC
-S315000043F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
-S31A001000000033FFEA0033FAFA0033FBB50033FE950033FEAD000B
-S31A00100015155454003FFFFF003FFFFF003FFFFF003FFFFF003FD0
-S31A0010002AFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF7B
-S31A0010003FFF003F02020033CB580008A0C30000001F0000000074
-S31A00100054000EAAFF000EA7FB000EA6FF000EA1FF000EA0FF000C
-S31A001000690EA3FE000EA254003AFFDE003AFF670033FFE2000EE0
-S31A0010007EAFFF00034F01000C113F0030FFD90035FFE0000C10C2
-S31A001000932F0035FFE00023FFFF0004AFE30004BFE20036FFD19D
-S31A001000A80004A0E20004A1E30002C7000002C6010004AFE500F5
-S31A001000BD01BFE30004AFE40001BFE2000EACFF00041CE1003151
-S31A001000D2FF8A0004A0E20004A1E30018AB02000E2B7F000E1BC6
-S31A001000E7FF0032FFBF000EFAFC000CAFFB00182B02000E1BFFD8
-S31A001000FC0036FF980018AF02000EBF7F0002CF020018A7000065
-S31A0010011118A6010018AB02000E2BDF000E1BFF0036FFAA00160A
-S31A00100126A5010016A4010016A9010016A8010018AB02000E2BD0
-S31A0010013B200002CB02000E2BBF000E1BFF0032FF77000EBADF3B
-S31A001001500033FF770016A9010016A801002DFFFF0016AB01006F
-S31A0010016516AC010016AD010016AE010016A5010016A401001696
-S31A0010017AA3010016A2010016A1010016A0010016A9010016A810
-S31A0010018F010017AF010016AF01003F1FFF0018AB02000E2BBF9D
-S31A001001A4000E1BFF0032FF920018A7000018A6010004AFE20032
-S31A001001B90ECFFC0001BFE200055FE30001BFE3000D1FCC0004BA
-S31A001001CE1CE10035FFCA0000FFE30000FFE20005BBE0000E1B7F
-S31A001001E3FE0030FF7D000EABF70004AFE0000E1FFE0032FF8028
-S31A001001F8000EABF5000EA0AF000EA17F0002CB00000EBADF002F
-S31A0010020D0BDFFF000E2A20000EFADF0032FF7B0033FFD10023CC
-S31A00100222FFFF000E2A20000EFADF0032FF760004A0E20004A1A2
-S31A00100237E30018AB02000E2B80000EBFDF0002CF02000378FF42
-S31A0010024C000379FF000374FF000375FF0033FFD80023FFFF00F4
-S31A0010026139F7960016AFFE0000FFE50000FFE4000EABC1003A6E
-S31A001002767FE20001BCD3000EA08E000EA17F0018AF000001BF7B
-S31A0010028BD4000E1CAD0036FF53000E1C9E0036FF53000E1C9A01
-S31A001002A00036FF53000E1C030036FF53003A7FFB003AFAD3003B
-S31A001002B500FEDD000EAFFF0002FF000002FF01000EACFF000EBD
-S31A001002CAABFF000CAFCE000CAFBD003AFDF00000FFDD000EA0AD
-S31A001002DFAF000EA17F000EAFF40002CF00000EBA7F000E2A40D6
-S31A001002F4003AFF3C000EACFE000EABFF0016AF020039F7930070
-S31A0010030923FFFF0039F796003AFF000039F7930023FFFF00398C
-S31A0010031EF7960016AFFD000CAFC8000CAFB9000E2A20000EFA0E
-S31A00100333DF0032FF340004ABDF000E2BEF000CBDFF0001BFDF3E
-S31A001003480004AFE0000E2F0B0001BFE0000EAFFD0002FF000054
-S31A0010035D0EAF000002FF01000EAF5F0002FF02000EABFD000CD5
-S31A00100372AF9C000CAF8D003AFF1A0000FFE30000FFE2003AFF7E
-S31A00100387D80016AF030039F7930023FFFF000374FF0039F7968B
-S31A0010039C000CAFD8000CAFC9001EAE04001EAD03001EA40500BA
-S31A001003B10EEBFC000CAFFC000CAFC2000EC263000CAFB3000E49
-S31A001003C6D3FF000CAFE0000EC001000DFFD10002C9000002C85E
-S31A001003DB01000ECE030002DE01000DFFDF0002DF000002D40292
-S31A001003F00039F7930016A4010023FFFF0039F7960016AFFD00BB
-S31A001004050E2A20000EFADF0032FEFE003AFED00000FFE0000E6A
-S31A0010041AAFFF0001BFE5000EAF630001BFE40000FCE1000EAF06
-S31A0010042FFB0002FF00000EAFFF0002FF01000EAF1F0002FF0209
-S31A00100444000EABFF000EACD2000EAD7C003AFF1A000EAFFC0006
-S31A0010045902FF00000EAFA20002FF01000EAF5E0002FF02000EEA
-S31A0010046EABFE000EACDC000EAD9A003AFF1A000EAFFD0002FFC1
-S31A0010048300000EAF000002FF01000EAF5F0002FF02000EABFDBA
-S31A00100498000EACEF000EADB9003AFF1A0000FFE30000FFE20006
-S31A001004AD3AFFD80016AF030039F7930023FFFF000EA2FF000EAA
-S31A001004C2A37F001AAB70000E2BF00002DB70001AAB71000EAF4F
-S31A001004D7FF0002DF71001AAB72000E2B700002DB72000EAFFFBE
-S31A001004EC0002DF40000EAFFF0002DF30000EA1BE000EA03B00A1
-S31A0010050118AB01000E2BFD000E1BFF0036FEB9000EAFFD000204
-S31A00100516DF31001AAB91000E2B1A0002DB91000EAF1A0002DFDB
-S31A0010052B90000EAF000002DF61001AAB60000E2B020002DB6079
-S31A00100540000E2A030023FFFF0039F796000E2A04000EFAFB002F
-S31A001005550CAFFB000E1BFF0032FEA6003AFF760004AFE0000E77
-S31A0010056A1FFE0032FE97000EA1BE000EA02F0018AF0B0036FE32
-S31A0010057F9D0000FFA10033FE98000EA1FF000EA02D0018AF01FA
-S31A00100594000E2F200002CF010000FFE00039F7930023FFFF004A
-S31A001005A9037FFF000CAFFF000B7FFF00037FFF000378FF000365
-S31A001005BE79FF000370FF000371FF000372FF000373FF00037455
-S31A001005D3FF000375FF00037EFF00037DFF00037CFF00037BFF8D
-S31A001005E8003EBFFF000378FF000379FF000EA0EF000EA17F002C
-S31A001005FD18AB03000E2B7F000E1BFF0036FE760018AB04000EAE
-S31A00100612BB7F0002CB040018AB04000E2B800002CB04000EA1B2
-S31A00100627FF000EA0630018AF02000EBF7F0002CF020033FFD8A6
-S31A0010063C0023FFFF0039F796000EABFF000EACFE003ADB7E00A9
-S31A0010065139F7930023FFFF0039F796000EABFF000CAFBC003A6B
-S31A00100666DB7E000EA0CF000EA17F0018AB01000E2B080002CB93
-S31A0010067B010004AF820036FE59000EA08F000EA17F0018AB0261
-S31A00100690000E2B020002CB020039F7930023FFFF0039F7A80079
-S31A001006A516AFFE000CAFE4000CAFD5000EAFFF0002FF01000E6C
-S31A001006BAAFFB0002FF00003A7FBE000EAFEF0002FF01000EAF88
-S31A001006CFD80002FF00000CAF5D000CAF4E003A7FBE0016AF02C8
-S31A001006E40039F7A30023FFFF0039F7A80016AFFA0002FB000063
-S31A001006F902FC01001EA80B001EA90A0004ACCD0004ABCE003902
-S31A0010070E7FDC000CAFDE000CAFCD000CAFBC000E6BFE000CAF9B
-S31A00100723E4000CAFD5000EA1FE000EA09F0018C4200018D51F35
-S31A00100738000CAF9C000CAF8D000EAFFE00397FD2000CAFE00017
-S31A0010074D0CAFD1000CAFC8000CAFB9000E887F0004ADCB000469
-S31A00100762ACCC000EAFFE00397FD200037EFF00037DFF00037C31
-S31A00100777FF00037BFF000CAF9B000CAF8C000CAF1D000CAF0E9D
-S31A0010078C00397FD50016AF04003A7FC50002FB020002FC03006E
-S31A001007A102FD040002FE05000CAF5C000CAF4D000EAFFE003912
-S31A001007B67FD2000CAFE0000CAFD1000CAFC8000CAFB9001E1477
-S31A001007CB01000CAFFC001EAB00000C7B5B000CAFCD000CAFBCA1
-S31A001007E0000EAFFE00397FD2001EAF0500037FFF001EAF050084
-S31A001007F5037FFF001EAF0500037FFF001EAF0500037FFF003979
-S31A0010080A7FD90016AF04000370FF000371FF0039F79600397F3F
-S31A0010081FD40016AF0400397FD1000CAFDB000CAFEC0016AF0680
-S31A001008340039F7A30023FFFF0039F7A80016AFF80002FB020011
-S31A0010084902FC030002FD040002FE05003AFBDD000E1CFF00360A
-S31A0010085EFD65003AFACC003AFD00000E1CFF0032FDE10000FE9F
-S31A00100873D20033FD66001EAB0C000E2BFC001EAC0D000EECF720
-S31A00100888000E6BF7000CBCFC000E2C010002FC06001EA50D0002
-S31A0010089D0E25C0001EAF02001EBF030036FD66000E15BF000211
-S31A001008B2FF07001EAC07000EABFF001E1B020032FDCD001E1C1B
-S31A001008C7030034FDCA001EAF030002FF07001EAE06000EADFFA4
-S31A001008DC000EEEDF00037FFF000EEDDF000CBFED0016AE01003E
-S31A001008F10EBDBF0002FD0C0002FE0D000EABE3003A7FEB001EDC
-S31A00100906AF0C0002FF00001EAF0D0002FF01000EABE3000EACD8
-S31A0010091BFF000CAF5D003AFC57001EAF0C0002FF00001EAF0D59
-S31A001009300002FF01000EABE3000EACFF000CAF5D003AFBFC00FC
-S31A001009450E1CFF0036FDE3001EAF040002FF00001EAF050002A2
-S31A0010095AFF01000EABE3000CAF5C001EAD07003AFC57001EAF93
-S31A0010096F040002FF00001EAF050002FF01000EABE3000CAF5CD1
-S31A00100984001EAD07003AFBFC000E1CFF0036FDE3001EC507001C
-S31A001009990CAF5C000EABFF001ECC0D0002FC0D001EDB0C00025B
-S31A001009AEFB0C000CAF54000E44BF001EAF0C0002FF00001EAF50
-S31A001009C30D0002FF01000EABE3000CAF5C000CAF4D003AFC57B2
-S31A001009D8001EAF0C0002FF00001EAF0D0002FF01000EABE300A2
-S31A001009ED0CAF5C000CAF4D003AFBFC000E1CFF0036FDE3001E32
-S31A00100A02AB06003AFCC6000E1CFF0036FDE3003AFD00000E1C7C
-S31A00100A17FF0036FDE3001EAC07000EABFF001E1C030002FF03D5
-S31A00100A2C001EAF02000C7FBF0002FF02001ECC050002FC050091
-S31A00100A411EDB040002FB04001EAF06000ECFFD0002FF06000ECA
-S31A00100A56A5FF001EAF02001EBF030032FDD4003AFAC50016AF61
-S31A00100A6B080039F7A30023FFFF0039F7A80016AFFC0002FB02CC
-S31A00100A80000CAFD4000CAFC50002FE03003AFBDD000E1CFF00FE
-S31A00100A9536FD4A0002F5000002F401001EAB03001EAC08001E0F
-S31A00100AAAAD02003A7FED0002F5000002F401001EAB03001EAC48
-S31A00100ABF08001EAD02003AFBFC000E1CFF0032FD4A0000FED294
-S31A00100AD40016AF040039F7A30023FFFF0039F79E000CAFB500FC
-S31A00100AE93AFBDD000E1CFF0036FD40000CAF5B003A7FEB003941
-S31A00100AFEF79A0023FFFF0039F7960016AFFC000EA1BD000EA07A
-S31A00100B13B50018AF0F0002FF000018AF100002FF010018AF117A
-S31A00100B280002FF020018AF120002FF03001EAF00001EBF010017
-S31A00100B3D1EBF02001EBF030036FD03000EA1FF000EA02D0018F7
-S31A00100B52AB00000E2BDF000E1BFF0036FD1D001F1F030002FFFB
-S31A00100B6703001EAF02000EDFFE0002FF02001EAF01000EDF3FA9
-S31A00100B7C0002FF01001FFF000002FF00001EAF00001EBF010082
-S31A00100B911EBF02001EBF030036FD03003A7FE9001EAF030003CF
-S31A00100BA67FFF001EAF0300037FFF001EAF0300037FFF001EAF37
-S31A00100BBB0300037FFF001E1B000032FD05001E1C010032FD05AF
-S31A00100BD0001E1D020032FD05001E1E030032FD050016AF04004D
-S31A00100BE533FD030016AF040000FED20016AF040039F79300236A
-S31A00100BFAFFFF0039F7A80016AFFD000EA5FE000EA03F000EA1EB
-S31A00100C0FBC0018A400003AFC7B000E1CFF0032FCF3003AFCAA67
-S31A00100C24000EACFE000EABFF0033FCC9000E14E00030FCCB0044
-S31A00100C390EFADF000CAFFB0002FB02000E2A20000EFADF003283
-S31A00100C4EFCEE000CAF4B003A7FEB000EAFBC0002FF00000EAFB0
-S31A00100C637F0002FF01000CAF4B000EACFF000EADBF003AFC571F
-S31A00100C78000EAFBC0002FF00000EAF7F0002FF01000CAF4B0093
-S31A00100C8D0EACFF000EADBF003AFBFC000CAFC5001EAB02000C81
-S31A00100CA2BABA000E15FF0036FCCB003AFCAA000EA03F000EA118
-S31A00100CB7BC0018AF00000E1F000032FCCC000E25FE0033FCCB3D
-S31A00100CCC000EA5FF000CAF5C000EABFF0016AF030039F7A300E1
-S31A00100CE123FFFF0039F79E0016AFFC000CAFB50002F502000CC3
-S31A00100CF6AF60000EC0FD000D5F71000D8F5B0002CB010002F164
-S31A00100D0B000002F001000EABE1000EACFF000EADFD003A7FED19
-S31A00100D20000EA03F000EA1BC001815000032FCB0003AFC7B0094
-S31A00100D350E1CFF0032FCAF003AFCAA000EACFE000EABFF001627
-S31A00100D4AAF040039F79A0023FFFF0039F7960016AFFA000EA0AD
-S31A00100D5F3B000EA1BC00191F030002FF0500195F020002FF0403
-S31A00100D7400195F010002FF0300195F000002FF02000EABE100C2
-S31A00100D893A7FEB000CAF6F000ECFFD0002FF01000D5F7F0002A8
-S31A00100D9EFF00000EABE1000EACFB000CAFCD003A7FED001EAFE1
-S31A00100DB305000E4F010002FF05001EAF04000E5F000002FF0469
-S31A00100DC8001EAF03000E5F000002FF03001EAF02000E5F000083
-S31A00100DDD02FF02000CAF6F000ECFFD0002FF01000D5F7F0002F5
-S31A00100DF2FF00000EABE1000EACF7000EADFB003A7FED0016AF6B
-S31A00100E07060039F7930023FFFF000EA03F000EA1BC000EA2FFCF
-S31A00100E1C000EA3FF0018AF00000E1F000036FC6C0018AC0000A5
-S31A00100E310EABFF0018AE01000EADFF000CCECC000CDDBB000E05
-S31A00100E461C000032FC5A0018AE070018CE0B0018AD060018DD5F
-S31A00100E5B0A0018AC050018DC090018AB040018DB08000E1B00B1
-S31A00100E700032FC5A000E1C000032FC5A000E1D000032FC5A006A
-S31A00100E850E1E010032FC5A000EA2FE000EA3FF000CAF3B000C2D
-S31A00100E9AAF2C0023FFFF0039F7A80016AFF70002FB02000CAFE3
-S31A00100EAFC0000CAFD2001EA40E001EA50D000E15C00032FC4DCD
-S31A00100EC4000E14000034FC2D000CAFBE000EADFF000EEEDF0076
-S31A00100ED9037FFF000EEDDF000CBFED0016AE01000CAF0C000E41
-S31A00100EEEABFF000ECBBF000CCCEF0002FF04000CDBDF0002FF04
-S31A00100F0303000DBF22000E12000036FBFF001EAC04001EAB03E8
-S31A00100F18000D1FCF0002FF04000D5FBF0002FF030014AD0100BD
-S31A00100F2D02F208003A7FEC001EA208000DBF22000E12000032F0
-S31A00100F42FC3B0033FBFF000E10E00034FC28001F1F020002FF89
-S31A00100F5702000EC01F0002F006000EAFFF0002FF05000CAF2CDF
-S31A00100F6C000EABFF001ECC06001EDB05000E0BFF0032FC1E0050
-S31A00100F810E1CDF0034FC05000CAF0D000E4DDF0002F50000020C
-S31A00100F96F401001EAB02000CAF0C0002F0070002F208003A7FFB
-S31A00100FABED001EA208000ECF1F000CAFFB001EA007000CCFB262
-S31A00100FC0000CAF4C000ECCDF000D5F5B000CAFC4001E340600A8
-S31A00100FD50CAFB5001E7505001F1F020002FF02000EA0FF0002F7
-S31A00100FEAF5000002F401001EAB02000CAF0C000CAF2D003A7FBD
-S31A00100FFFED0016AF090039F7A30023FFFF000379FF000CAFC121
-S31A00101014000CAFD9001EA202001EA301000CAFBE000EADFF0066
-S31A001010290EEEDF00037FFF000EEDDF000CBFED0016AE01000CDD
-S31A0010103EAF1C000EABFF000ECBBF000CCCE0000CDBD10033FBCE
-S31A00101053E40010AF0100121F010036FBE4000EACFF000EABFF16
-S31A001010680033FBDF000DBF99000E19000032FBEA000EACFE00F5
-S31A0010107D0EABFF0016A9010023FFFF0039F79E000EA5FF00042B
-S31A0010109215D20032FBD8000EA5FE000EA3FF000EA22D001AAB44
-S31A001010A701000E2BFE000E1BFF0036FBB9000EABFF000C15BF3C
-S31A001010BC0036FBC4000EA1BE000EA02F001AAE0A001AAD090028
-S31A001010D1180D000032FBC800181E010030FBC500041BDD003681
-S31A001010E6FBC4000EABFE000CAFB50036FBBD000EABFF000EAC99
-S31A001010FB2D000EADFD003AFA070033FBB9000EABFF000EAC2D24
-S31A00101110000EADFD003AFA16000CAF5C000EABFF0039F79A0019
-S31A0010112523FFFF00037FFF000CAFFF000B7FFF00037FFF000336
-S31A0010113A78FF000379FF000370FF000371FF000372FF000373C9
-S31A0010114FFF000374FF000375FF00037EFF00037DFF00037CFF0C
-S31A0010116400037BFF003EBFFF000378FF000379FF000EA06F00D5
-S31A001011790EA17F0018AC00000E2FFB000CAFFB000E1BFF00360D
-S31A0010118EFB99000EAF040002CF000018AB01000C2CBC000E2F1B
-S31A001011A3F7000CAFFB000E1BFF0036FB77000EAF080002CF000E
-S31A001011B8000EA0BF000EA17F0018AE020018AD010001BDDC0049
-S31A001011CD01BEDB0018AB00000E2BFE000E1BFF0036FB85000481
-S31A001011E2AFDD0036FB830001BDDA0001BED9000EA1FF000EA016
-S31A001011F7600018AF02000EBF7F0002CF02000EA06F000EA17F3A
-S31A0010120C0018AB01000E2B080002CB01000E2A100033FFD80092
-S31A001012210EFCEF000CAFFB000E1BFF0036FB530000FFD8000070
-S31A00101236FFD70000FFD60000FFD5000EA0CF000EA17F0018AF9C
-S31A0010124B020001BFD80018AF030001BFD70018AB00000E2B8001
-S31A001012600002CB000004AFD10036FB610004AFD10002CF00002B
-S31A0010127500FFD1000EA1FF000EA0600018AF02000EBF7F0002AB
-S31A0010128ACF02000EA06F000EA17F0018AB01000E2B100002CB43
-S31A0010129F01000EAF100002CF00000E2A100033FFD8000E2CFBFE
-S31A001012B4000CAFCB000E1BFF0036FB0E000EA06F000EA17F00D7
-S31A001012C90EAF040002CF00000EA3FE000EA2D7001AAF00003237
-S31A001012DEFB430018AB01000E2B040002CB010033FB0E001B1F62
-S31A001012F3060002DF06000E1F9C0034FB36000EAFFF0002DF0612
-S31A00101308001AAF01001ABF020036FB33001BBF020002DF0200F2
-S31A0010131D1BFF010002DF01001AAF01001ABF020032FB2A000E9E
-S31A00101332A1FE000EA0D7000EAFFF0002CF00000EA08F000EA1F3
-S31A001013477F0018AB02000E2B040033FB0F0004ACAC0004ABAD05
-S31A0010135C000E1BFF0032FB24000E1C9B0036FB0E001AAF05001B
-S31A0010137136FB1F001BBF050002DF050033FB0E000EA08F000EB5
-S31A00101386A17F0018AB02000E2BFB000E1BFF0036FB150004AF02
-S31A0010139BAC000E4F9B0002DF050033FB130004AFAC0002DF0517
-S31A001013B0000EA08F000EA17F0018AB02000E8BFB0002CB02007F
-S31A001013C50E2A100016A9010016A801002DFFFF0016AB01001633
-S31A001013DAAC010016AD010016AE010016A5010016A4010016A382
-S31A001013EF010016A2010016A1010016A0010016A9010016A8012B
-S31A001014040017AF010016AF01003F1FFF0023FFFF00037FFF0031
-S31A001014190CAFFF000B7FFF00037FFF000378FF000379FF0003EC
-S31A0010142E70FF000371FF000372FF000373FF000374FF000375DA
-S31A00101443FF00037EFF00037DFF00037CFF00037BFF003EBFFF89
-S31A00101458000378FF000379FF000E2A080016A9010016A80100B5
-S31A0010146D2DFFFF0016AB010016AC010016AD010016AE01001605
-S31A00101482A5010016A4010016A3010016A2010016A1010016A0FD
-S31A00101497010016A9010016A8010017AF010016AF01003F1FFFC0
-S31A001014AC0023FFFF0039F796000EABFF000EAC5A000EADFC00AB
-S31A001014C13AFABE0039F7930023FFFF0039F796000EABFF000E9E
-S31A001014D6AC5A000EADFC003AFAB10039F7930023FFFF0039F735
-S31A001014EB96000EABFF000EAC5A000EADFC003AFA7D0039F79349
-S31A001015000023FFFF000CAFC0000CAFB1000EAFFF00034F0100A9
-S31A0010151533FAB4000EAFFF0002CF000002CF01000EC0FC000D94
-S31A0010152A5F11000DBFDD0032FAB90023FFFF0039F7A80016AFDA
-S31A0010153FFF000CAFC4000CAFB5000EFADF000CAFFB0002FB00F9
-S31A00101554000E2A20000EFADF0032FAAA001CAF000036FA8400D8
-S31A001015690D1F40000D5F51000DBFDD0036FA8C000CAF42000EBE
-S31A0010157EC2FC000D5F530018AF000018BF010032FA920004AFB5
-S31A00101593E30002CF000004AFE20002CF010004A0E20004A1E304
-S31A001015A80018AF020002DF000033FA8C000EC2FC000D5F33004A
-S31A001015BD0EC0FC000D5F11000DBFDD0032FA9E001EAB00000C74
-S31A001015D2BABA0004A0E20004A1E30018AF02000E2F030002CF92
-S31A001015E702003AFF76000EAFFE0002EF00001EAB00000CBABA33
-S31A001015FC0016AF010039F7A30023FFFF0039F7A80016AFFF006E
-S31A001016110CAFC8000CAFB9000EFADF000CAFFB0002FB00000E0F
-S31A001016262A20000EFADF0032FA76000D1F84000D5F95000CAF5A
-S31A0010163B80000CAF910018AF010018BF020036FA480018AF01D7
-S31A0010165000037FFF0018A0020016A101001CAB02000E2BFC007E
-S31A001016650EBB7F0018BF020002CF02000ECD010036FA4D000C01
-S31A0010167AAF82000EC2FC000D5F93000CAF80000EC0FB000D5FD9
-S31A0010168F910018AF000002EF000018AF010002EF010018AF0264
-S31A001016A40002DF00000EC0FC000D5F11000EC2FC000D5F330088
-S31A001016B90EC4FC000D5F55000DBFDD0032FA5B000EAFFF000289
-S31A001016CEEF000002EF01003AFA3F0033FA44000CAF82000CAF34
-S31A001016E393000EAFFF0002DF00001EAB00000CBABA0016AF019D
-S31A001016F80039F7A30023FFFF0004A0E20004A1E30018AF0200FC
-S31A0010170D0EBFDF0002CF02000378FF000379FF000374FF0003C4
-S31A0010172275FF0033FFD80023FFFF0016AFFF000CAFC0000CAF03
-S31A00101737B1000EFADF000CAFFB0002FB00000E2A20000EFADFFD
-S31A0010174C0032FA2E0002CD000002CE01001EAB00000CBABA002F
-S31A0010176116AF010023FFFF0016AFFF000CAFC0000CAFB1000EBD
-S31A00101776FADF000CAFFB0002FB00000E2A20000EFADF0032FA51
-S31A0010178B1F0018AC010018AB00001EAD00000CBADA0016AF015B
-S31A001017A00023FFFF0016AFFF000CAFC0000CAFB1000EFADF006B
-S31A001017B50CAFFB0002FB00000E2A20000EFADF0032FA100018C3
-S31A001017CABD000002CD00001EAB00000CBABA0016AF010023FF37
-S31A001017DFFF0016AFFF000CAFC0000CAFB1000EFADF000CAFFB98
-S31A001017F40002FB00000E2A20000EFADF0032FA01000D8FDD00E8
-S31A00101809182F000002CF00001EAB00000CBABA0016AF0100236A
-S31A0010181EFFFF000EA1BE000EA03B0018AD07000EACFE000EAB0E
-S31A00101833FF000E1DFF0036F9EE000CAFDC000EABFF0023FFFFD4
-S31A00101848000CAFC0000CAFB10033F9E8000EAFFF00034F01006B
-S31A0010185D0DBFDD000E1D000032F9EA0023FFFF0039F79600167A
-S31A00101872AFFF000EFADF000CAFFB0002FB00000E2A20000EFAA3
-S31A00101887DF0032F9DF003AD922001EAB00000CBABA0016AF0109
-S31A0010189C0039F7930023FFFF0039F7960016AFFF000EFADF00CC
-S31A001018B10CAFFB0002FB00000E2A20000EFADF0032F9D1003AE4
-S31A001018C6D8FE001EAB00000CBABA0016AF010039F7930023FF2D
-S31A001018DBFF0039F7A80016AFFC000CAFC4000CAFB5000CAFE2BE
-S31A001018F0000CAFD3001EA809001EA908000CAF8E000CAF9D0000
-S31A001019050EACFF000EABFF000E4E00000E5D00000DCFCC000DCA
-S31A0010191ACFBB000EAFFE00397FCD0002FB000002FC010002FDDD
-S31A0010192F020002FE03000CAF9C000CAF8D000EAFFF00397FD2A3
-S31A00101944000CAFE0000CAFD1000CAFC8000CAFB9001CAE03008D
-S31A001019591CAD02001CAC01001CAB00000EAFFE00397FCD0003C5
-S31A0010196E70FF000371FF0039F79600397FD90016AF04000CAF91
-S31A00101983E0000CAFD1000CAFC8000CAFB9000CAF2E000CAF3DF5
-S31A00101998000CAFDC000E6CFE000CAFCB000CAFDB000CAFEC0052
-S31A001019AD0EAEFF000EADFF000EAFFE00397FCD001EAF03000387
-S31A001019C27FFF001EAF0300037FFF001EAF0300037FFF001EAF0D
-S31A001019D70300037FFF00397FD90016AF04000370FF000371FF22
-S31A001019EC0039F79600397FD40016AF04000EAFFF00037FFF0078
-S31A00101A010EAF0000037FFF000EAF8000037FFF000EAF6F00038F
-S31A00101A167FFF00397FD50016AF0400397FCF0002EB000002EC6F
-S31A00101A2B010002ED020002EE030016AF040039F7A30023FFFFEE
-S31A00101A40000CAFC0000CAFB10018AE030018AD02000ECD7F00AA
-S31A00101A55195C0100195B00000CAFCE000CAFBD000E6BFE000CF8
-S31A00101A6AAFBC000CAFDB000CAFEC0023FFFF0039F7960016AFFD
-S31A00101A7FFA000CAFC0000CAFB1001EA809001EA908000CAFDC26
-S31A00101A94000E6CFE000CAFCB000CAFCB000CAFDC000CAFED0064
-S31A00101AA90EAEFF0002FB000002FC010002FD020002FE03000255
-S31A00101ABEF9040002F805000CAF1B000CAF0C003AF9480016AF24
-S31A00101AD3060039F7930023FFFF0039F7A8000CAFC4000CAFB537
-S31A00101AE8001EAC09001EAB08000D9FC2000CAFB3000E53FE00F4
-S31A00101AFD0CAFCE000CAFBD000CAFDC000E6CFE000CAFCB000325
-S31A00101B127EFF00037DFF00037CFF00037BFF001CAF0300037F61
-S31A00101B27FF001CAF0200037FFF001CAF0100037FFF001CAF002E
-S31A00101B3C00037FFF00397FDA0016AF08000CAFE0000CAFD10077
-S31A00101B510CAFC8000CAFB9000CAF2E000CAF3D000CAFDC000EEC
-S31A00101B666CFE000CAFCB00037EFF00037DFF00037CFF00037B69
-S31A00101B7BFF001EAF0B00037FFF001EAF0B00037FFF001EAF0BB6
-S31A00101B9000037FFF001EAF0B00037FFF00397FDA0016AF0800F1
-S31A00101BA50CCE00000CDD11000CDC88000CDB99000CAF1E000C6C
-S31A00101BBAAF8D000CAF9C000CAF9B000E6BFE0002EB000002ECC5
-S31A00101BCF010002ED020002EE030039F7A30023FFFF000CAFC097
-S31A00101BE4000CAFB10018AE03000ECE7F00195D0200195C010058
-S31A00101BF9195B00000CAFDE000CAFCD000CAFBC000E6BFE000C32
-S31A00101C0EAFDB000CAFEC0023FFFF0039F7A80016AFFE000CAF03
-S31A00101C23C2000CAFB3000CAFE4001A3403000CAFD5001A750255
-S31A00101C38001EAF07001A3F050002FF01001EAF06001A7F0400DD
-S31A00101C4D02FF00001AA001001AA100000CAF18000E68FE000CA2
-S31A00101C62AF89000CAF5B000CAF4C000CAF5D000CAF4E00397F29
-S31A00101C77DC00037EFF00037DFF00037CFF00037BFF000370FFFA
-S31A00101C8C000371FF0039F79600397FDA0016AF08001B18010061
-S31A00101CA11B5900000CAF80000CAF91000CAF18000E68FE000CCA
-S31A00101CB6AF89000370FF000371FF0039F79600397FD60016AFCD
-S31A00101CCB04001ACE090002DE09001ADD080002DD08001ADC072D
-S31A00101CE00002DC07001ADB060002DB06001AA001001AA10000A0
-S31A00101CF50CAF18000E68FE000CAF89001EAC01001EAB00000C99
-S31A00101D0AAF5D000CAF4E00397FDC00037EFF00037DFF00037C87
-S31A00101D1FFF00037BFF000370FF000371FF0039F79600397FDAE0
-S31A00101D340016AF08001B1801001B5900000CAF80000CAF910088
-S31A00101D490CAF18000E68FE000CAF89000370FF000371FF0039C6
-S31A00101D5EF79600397FD60016AF04001ACE0D0002DE0D001ADD9D
-S31A00101D730C0002DD0C001ADC0B0002DC0B001ADB0A0002DB0A7E
-S31A00101D88001B1F010002DF01001B5F000002DF00001AAF0100EE
-S31A00101D9D037FFF001AAF0000037FFF000CAF5D000CAF4E0039F6
-S31A00101DB27FD80016AF02001ACE030002DE03001ADD020002DD42
-S31A00101DC702001AAF0100037FFF001AAF0000037FFF001EAE038B
-S31A00101DDC001EAD0200397FD80016AF02001ACE050002DE0500E6
-S31A00101DF11ADD040002DD040016AF020039F7A30023FFFF0039F5
-S31A00101E06F7A8000CAFC2000CAFB3000CAFE4000CAFD5001AAF2F
-S31A00101E1B06001ABF07001ABF08001ABF090032F871001AAC058D
-S31A00101E30001AAB040033F841001AAE0D001AAD0C001AAC0B00D9
-S31A00101E451AAB0A000EAFFE00397FCD000CAFE0000CAFD1000C30
-S31A00101E5AAFC8000CAFB9000CAF4C001A3C03000CAF5B001A7B67
-S31A00101E6F02000CAFCD000CAFBC000EAFFE00397FD2000370FF90
-S31A00101E84000371FF0039F79600397FD90016AF04000CAFE00005
-S31A00101E990CAFD1000CAFC8000CAFB9001AAE09001AAD08001AE1
-S31A00101EAEAC07001AAB06000EAFFE00397FCD00037EFF00037D4B
-S31A00101EC3FF00037CFF00037BFF000CAF9B000CAF8C000CAF1D85
-S31A00101ED8000CAF0E00397FD50016AF0400397FD1000CAFEC0090
-S31A00101EED1ACC05000CAFDB001ADB040039F7A30023FFFF003923
-S31A00101F02F7960016AFFE000EAFEF0002FF01000EAFD80002FF20
-S31A00101F1700003A7FBE0016AF020039F7930023FFFF0039F796B7
-S31A00101F2C000CAFC0000CAFB1000CAFE2000CAFD3001EAB0200AD
-S31A00101F4136F827000C113F0032F82B000C102F0035F827000EC2
-S31A00101F56AC9B000EABFF0033F80D000CAF1B000CAF0C000EAED0
-S31A00101F6B9B000EADFF00397FDB000DBF28000DFF39000CAF80EF
-S31A00101F80000CAF91000EA8FF000EA9FF000CC0EE000CD1DD000B
-S31A00101F950CD8CC000CD9BB000CAF20000CAF31000EA8FF000E47
-S31A00101FAAA9FF000370FF000371FF0039F79600397FCB0016AF71
-S31A00101FBF04000CAFDB000CAFEC0039F7930023FFFF0039F7960C
-S31A00101FD400397FDB000ECE0B000EDDFE000D5FCC000D5FBB0020
-S31A00101FE90EAF1700037FFF000EAFFC00037FFF000EAFFF00037F
-S31A00101FFE7FFF000EAFFF00037FFF00397FD60016AF04000CAFEB
-S31A00102013DB000CAFEC0039F7930023FFFF000C4ECC000C5DBBF2
-S31A00102028000EFB7F0036F7F1000EACFF000EABFF0023FFFF0055
-S31A0010203D0CAFC0000CAFB10018AC010018AB00000E1B000032AE
-S31A00102052F7E8000E1C000036F7E4000D1FCF0002CF01000D5F10
-S31A00102067BF0002CF000023FFFF000EA0FF000EA1FF001E0B0019
-S31A0010207C0032F7DE001E1C010030F7D7000C0BDF0032F7DA0000
-S31A001020910C1CEF0035F7D7000EA0FE000EA1FF000CAF1B000CCE
-S31A001020A6AF0C0023FFFF000DBFCC000DFFBB000CCECC000CDD45
-S31A001020BBBB00037EFF00037DFF000CAFCE000CAFBD00397FD8AF
-S31A001020D00016AF02000CAFDB000CAFEC0023FFFF0039F79600FA
-S31A001020E50CAFE8000CAFD9000CAFCE000CAFBD000CAFDC000EF3
-S31A001020FA6CFE000CAFCB000EECBF000CAFFB000EEDBF000CAFE7
-S31A0010210FFC000CBBDB000EEEBF000CAFFD000CBCEC000EAEFF25
-S31A00102124000CAF80000CAF91000CAF18000E68FE000CAF89007E
-S31A001021390370FF000371FF0039F79600397FD60016AF04000C6D
-S31A0010214EAFDB000CAFEC0039F7930023FFFF000374FF00037563
-S31A00102163FF000378FF000379FF003F3FFF0016A9010016A80161
-S31A001021780016A5010016A401003F3FFF000375FF000378FF0057
-S31A0010218D0379FF003F3FFF0016A9010016A8010016A501003FB5
-S31A001021A23FFF000378FF000379FF003F3FFF0016A9010016A8E4
-S31A001021B701003F3FFF0039F796003AF7750039F7930023FFFF2F
-S31A001021CC0000FFD1000EA0CF000EA17F000EBB7F0002CB000058
-S31A001021E123FFFF0039F796000E2A20000EFADF0032F785000EF1
-S31A001021F6A06F000EA17F0018AB01000EBBEF0002CB01003AFFFE
-S31A0010220B760004AED60004ADD70004ACD80004ABD8000E6BFE9C
-S31A001022200039F7930023FFFF0039F796000EBB7F0001BBD10014
-S31A001022350E2A20000EFADF0032F772000EA06F000EA17F001841
-S31A0010224AAB01000EBBEF0002CB01003AFF760004AED60004AD4F
-S31A0010225FD70004ACD80004ABD8000E6BFE0039F7930023FFFF13
-S31A001022740039F7A80016AFFB0002FB020002FC030002FD0400A4
-S31A001022890E1DFF0032F74B000EA1BF000EA0E500180B0800322E
-S31A0010229EF75600181C090031F7520018A40B0018A50A0033F759
-S31A001022B306000EAFFB0002FF00000CAF1B000CAF0C001EAE03D5
-S31A001022C8001EAD020033F709000EABC6003A7FE2000CAFC40052
-S31A001022DD0CAFB5000CAF4F000ECFEF0002FF01000CAF5F000E66
-S31A001022F2DFD80002FF00000EAC00000EAB80000CAF5D000CAF43
-S31A001023074E003A7FBE000CAFC4000CAFB5000EAFEC0002FF004D
-S31A0010231C000EAF770002FF01000EAC9F000EABFF001EAE030080
-S31A001023311EAD02003A7FBE001ECC030002FC03001EDB02000252
-S31A00102346FB02000CAF4C001E3C03000CAF5B001E7B02000EA1AB
-S31A0010235BBF000EA0FF0018AE19000E4E000018AD18000E5D80E8
-S31A00102370000E44000002F401000E55800002F500003A7FBE00A8
-S31A001023850EA1BF000EA0FF0018AE190018AD18001ECC03000267
-S31A0010239AFC01001EDB020002FB00000CAFDB000CAFEC001EAE1A
-S31A001023AF03001EAD02003A7FBE000CAFC4000CAFB5000EAFFB15
-S31A001023C40002FF00000EABBF000EACEF000CAF5D000CAF4E00AB
-S31A001023D93A7FBC000CAFC4000CAFB5000EA1BE000EA03B001807
-S31A001023EEAB01000E2BFE001E1B040032F6FB000EABFE000EAC10
-S31A00102403D9000CAF5D000CAF4E003AFA34001EAC04000EABFFC6
-S31A00102418000CAFC0000EC0F4000CAFB1000ED1BF0018AC00008E
-S31A0010242D0CAFCB000E6BFE000CCC44000CDB55000CAF5B000C0D
-S31A00102442AF4C0016AF050039F7A30023FFFF0039F7A80016AF19
-S31A00102457D3000EA5FF000EA1BF000EA0480018AB00000EACFFF5
-S31A0010246C000E1B9E0032F6DF000E1CFF0032F6DF000EA5FE0096
-S31A0010248104AFBA000E2F040001BFBA0000FFB0000CAF6C000E24
-S31A00102496CCDD000D5F7B000EADF4003AF9ED000E15FF0032F672
-S31A001024ABCE000EA1FE000EA0C80018AF010002FF250018AF025E
-S31A001024C00002FF26003AEA6C000E1CFF0036F6C7000EA1FE0071
-S31A001024D50EA09F000EAFFE0002CF0B0004AF6C0032F6B6003AC1
-S31A001024EAC8F3003AEA99000CAFCB000EA1BF000EA0BB0018AE2C
-S31A001024FF0C0018AD0B0004AFD00002FF000004AFCF0002FF01CE
-S31A00102514000CAFDC000CAFED000EAEF7003AC87F001EAF2C0030
-S31A0010252932F6A0000EA1BE000EA03B0018AB01000E2BE7000E77
-S31A0010253E1BF70036F6AC000E1BEF0032F6A7000CAF6C000ECCA0
-S31A00102553DD000D5F7B003AF5AC0033F6A3000CAF6C000ECCDD14
-S31A00102568000D5F7B003AF612001EAF2C0036F6A0003AF66100C9
-S31A0010257D3AC56B000EA5BF000EA4AA001CAC36001CCC38001CC1
-S31A00102592AB35001CDB37000EA1FF000EA0040018AF2400037F43
-S31A001025A7FF0018A0250016A101000C01BF0032F690000C10CF06
-S31A001025BC0034F68D0000FCD0000017CF003AEF020004AF9C0011
-S31A001025D10E1FFE0036F6B6000EA1FF000EA02D0018AB13000E65
-S31A001025E62BBF000E1BFF0032F67B001CAC19001CCC5A001CAB2B
-S31A001025FB18001CDB5900180B090032F67C00181C0A0035F6789C
-S31A001026100004AFBA000EBFFD0001BFBA0004ABBA000E2BFB0051
-S31A001026250E1BFF0036F664000EA1FF000EA02D0018AB13000E65
-S31A0010263A2BBF000E1BFF0036F669000CAF6C000ECCFD000D5F64
-S31A0010264F7B000EADFC0033F665000CAF6C000ECCFD000D5F7BBB
-S31A00102664000EADFD003AE6BE0016AF2D0039F7A30023FFFF00CF
-S31A0010267939F7A80016AFDE0004AFBA000EBFFB0001BFBA000EFE
-S31A0010268EA1BE000EA06A0018AF1B000E1F000032F6540004AF6C
-S31A001026A3BA000EBF7F0001BFBA0018AF1D000E1F000032F64E05
-S31A001026B80004AFBA000EBFBF0001BFBA000EA5FF000EA42D00F3
-S31A001026CD0EA1BF000EA0BB001CAC0A001CAB0900181B050032FF
-S31A001026E2F64400181C060036F63B000EAFBF0002FF00000EAFB8
-S31A001026F7B60002FF01000EACFD000EABFF000EADFF000EAE24F7
-S31A0010270C003AFDF0000EA1FE000EA05A000EAFFF0002CF040035
-S31A0010272102CF05003AC3CD000CAF6C000ECCFD000D5F7B000EFA
-S31A00102736ADFE003AE8AF000EA1BE000EA03B0018AB01000E2BA9
-S31A0010274BDF000E1BFF0036F615000EA1FE000EA09F0018AC1A43
-S31A001027600018AB19001C0B070032F623001C1C080031F615007D
-S31A001027751CAF070002CF19001CAF080002CF1A001CAF230002CF
-S31A0010278ACF1B001CAF240002CF1C000EABFE000EAC68000CAFCA
-S31A0010279FCE000CAFBD003ACCCD0016AF220039F7A30023FFFF1B
-S31A001027B40039F7A80016AFF8000CAFC4000CAFB5000EA1FE00C9
-S31A001027C90EA0C80018AF02001C3F040002FF010018AF01001C61
-S31A001027DE7F030002FF00000EA3BE000EA26A001AAF1A0002FFE0
-S31A001027F305000EAFFF0002FF04001EAF0500037FFF001EAF05D0
-S31A0010280800037FFF000EAEEF000EADF100397FD80016AF020076
-S31A0010281D1EAC01001EAB0000397FDC000CAFDE000CAFCD000C3B
-S31A00102832AFBC000E6BFE0002FD020002FE03003AEA90000EAB28
-S31A00102847FF000CCCCC000CDBBB000ECCA00002FC07000EDBBDFC
-S31A0010285C0002FB06000EA1FF000EA02D000EA3BE000EA26A003C
-S31A0010287118AC0A001ACC190018AB09001ADB18001EA007001EB3
-S31A00102886A10600180B110032F5DA00181C120035F5BA001EAC57
-S31A0010289B03001EAB02001A0B140032F5D4001A1C150031F5BAE5
-S31A001028B0001D1F010002EF01001D5F000002EF00001CA20100A2
-S31A001028C51CA300001E13040032F5CA001E12050035F5AF001ED7
-S31A001028DAA201001EA300000EA1BE000EA06A001803160032F592
-S31A001028EFC2001812170034F5BA001D1F020002EF02000E1FFD7D
-S31A001029040032F5B8000EAFFE0002EF0A0033F5B8000EAFFF0077
-S31A0010291902EF02000EAFFF0002EF000002EF01000EA1FE000E46
-S31A0010292EA0C80018AF010002EF030018AF020002EF040016AFD7
-S31A00102943080039F7A30023FFFF000374FF000375FF000CAFC203
-S31A00102958000CAFB3000EA1BE000EA03B0018AB01000E2BE700AC
-S31A0010296D0E1BFF0036F59E000E1BF70036F59E000E1BE7003223
-S31A00102982F570000EA1FF000EA02D000EA5BE000EA46A0018ACEB
-S31A001029970A0018AB09001C0B2D0032F595001C1C2E0034F5752B
-S31A001029AC0018AF11000EFF7F0032F5750018AF110018BF12003F
-S31A001029C136F575001A0B020032F58B001A1C030034F588000286
-S31A001029D6DB020002DC03001CAF2B0036F57C001AAE0300183E5A
-S31A001029EB0A001AAD0200187D09001CAC2B000EABFF000C0DBFCD
-S31A00102A000032F57D000C1ECF0034F572001B1F090002DF090046
-S31A00102A151C1F2C0035F570000EAFFE0002DF0A0033F570000E49
-S31A00102A2AAFFF0002DF020002DF03000EAFFF0002DF09000EA1B7
-S31A00102A3FBE000EA03B0018AB01000E2BE7000E1BEF0036F56836
-S31A00102A54000E1BE70032F519001AAF080032F543000EA5FF001A
-S31A00102A690EA42D000EA1BE000EA06A001CAC12001CAB11001814
-S31A00102A7E0B270032F55D00181C280034F547001CAC0E000ECCFB
-S31A00102A93AB001CAB0D000EDB0A00180B290032F55500181C2A80
-S31A00102AA80034F547001B1F070002DF07001B5F060002DF060003
-S31A00102ABD1AAC07001AAB0600181B250032F54B00181C260034FE
-S31A00102AD2F519000EAFFE0002DF080033F519000EAFFF0002DF49
-S31A00102AE7060002DF070033F519001AAF04001ABF050032F5358E
-S31A00102AFC000EA1FF000EA02D0018AF0D0002DF000018AF0E009C
-S31A00102B1102DF01000EAFFF0002DF04000EAFFE0002DF05003342
-S31A00102B26F519001B1F050002DF05001B5F040002DF04000EA53B
-S31A00102B3BBE000EA46A001AAC05001AAB04001C1B230032F52A56
-S31A00102B50001C1C240034F519000EA1FF000EA02D0018AC0E0061
-S31A00102B651A3C010018AB0D001A7B00001C0B210032F520001CDE
-S31A00102B7A1C220034F51C000EAFFE0002DF0A0033F519000EAF09
-S31A00102B8FFF0002DF040002DF050016A5010016A4010023FFFFB9
-S31A00102BA40039F7A80016AFD7000EAFFF0002FF280004AFBA0040
-S31A00102BB90E2F040001BFBA0000FFB0000EABFF000EAC53000EB4
-S31A00102BCEADEC003AF9ED000EA5BF000EA4BB000EA1FF000EA0E8
-S31A00102BE353001CAF0B0002CF0E001CAF0C0002CF0F000EABFF50
-S31A00102BF8000EAC06000EAEFF000EADFF003AFA34000CAF6C00EE
-S31A00102C0D0ECCED000D5F7B000EADF3003AF9ED000EABFE000E5B
-S31A00102C22ACCF003AFA250002FB130002FC14000EABFE000EAC20
-S31A00102C37CD003AFA250002FB170002FC18000EABFF000EAC2090
-S31A00102C4C003AFA250002FB1B0002FC1C000CAF6C000ECCFD00D4
-S31A00102C610D5F7B003AF1350004AF6C0032F4D6003AC8F3003AB7
-S31A00102C76EA99000CAFCB001CAE0C001CAD0B0004AFD00002FFFC
-S31A00102C8B000004AFCF0002FF01000CAFDC000CAFED000EAEF7A8
-S31A00102CA0003AC87F000CAF6C000ECCED000D5F7B003AF36F0017
-S31A00102CB50EA5FF000EA1FE000EA09F000EA3BF000EA2AA001A64
-S31A00102CCAAE03001AAD02000EACFF000EABFF0018AF2400037F87
-S31A00102CDFFF0018AF2300037FFF0018AF2200037FFF0018AF210E
-S31A00102CF400037FFF001E1B000032F4BA001E1C010032F4BA0000
-S31A00102D091E1D020032F4BA001E1E030016AF040030F49D001F9A
-S31A00102D1E1F280002FF28001EAC28000EABFF001A1B040032F411
-S31A00102D33B1001A1C050035F4A80002F528000CAF6C000ECCEDAB
-S31A00102D48000D5F7B000CAF6E000ECEFD000D5F7D003AF248001A
-S31A00102D5D3AF3B2003AF0AC000E1CFF0036F49D003AF3990000E0
-S31A00102D72FE6B000EA1FF000EA0530018AF110032F49D000EA5D0
-S31A00102D87FE000EA3FF000EA253001AAF120036F496000EA5FE24
-S31A00102D9C000EAFFF0002DF12000CAF6C000ECCFD000D5F7B0078
-S31A00102DB10EADFF003AF3C5000E15FF0036F46D0004AF6C003241
-S31A00102DC6F46C000EA1BF000EA0AA0018AB00000EA3FF000EA299
-S31A00102DDB53001AAE0F001AAD0E0004AFD00002FF000004AFCFC8
-S31A00102DF00002FF01000CAFDC000CAFED000EAEFF003AC87F003B
-S31A00102E0504AF650036F46C000EA1FF000EA02D0018AF0900019A
-S31A00102E1ABFCA0018AF0A0001BFC90018AF190001BFC60018AF7D
-S31A00102E2F1A0001BFC50018AF050001BFC80018AF060001BFC731
-S31A00102E440033F46C003AC476003AEF02000EA5FF000EA453007A
-S31A00102E590EA3FF000EA22D001B9C12001BCB11000EA1BE000E86
-S31A00102E6EA02300180B040032F46000181C050035F43D001AAE62
-S31A00102E8312001AAD11000CAFDC000E6CFE000CAFCB001CCE03B8
-S31A00102E980002EE03001CDD020002ED02001CDC010002EC010048
-S31A00102EAD1CDB000002EB00001AAE1C001AAD1B000CAFDC000EAB
-S31A00102EC26CFE000CAFCB001CCE070002EE07001CDD060002ED1F
-S31A00102ED706001CDC050002EC05001CDB040002EB04001D1F0BA7
-S31A00102EEC0002EF0B001D5F0A0002EF0A001D5F090002EF0900BF
-S31A00102F011D5F080002EF080004AF9C000E1F000036F4D6003A72
-S31A00102F16F3CE000E1CFF0036F41C000CAF6C000ECCE1000D5F12
-S31A00102F2B7B000EADFE003AF40A001CAF0E0002FF22001CAF0F39
-S31A00102F400002FF230004AFCE0002FF240004AFCD0002FF2500F6
-S31A00102F5504AFCC0002FF260004AFCB0002FF27000EAFBF000287
-S31A00102F6AFF00000EAFB40002FF01000EACF5000EABFF000CAFA8
-S31A00102F7F6E000ECEE1000D5F7D003AFDF0001CAF100032F414D7
-S31A00102F94000EA1BF000EA0BB0018AB04000E2BFC000E1BFD0019
-S31A00102FA936F40F000CAF6C000ECCFD000D5F7B000EADFE003AEC
-S31A00102FBEF3C5000EABFA003AC5CF0016AF290039F7A30023FFCC
-S31A00102FD3FF0039F7A8000CAFC4000CAFB5000EA3FF000EA2535A
-S31A00102FE8001AAF08001ABF09001ABF0A001ABF0B0036F3DA0041
-S31A00102FFD0E1DFF0032F3FB0004AF9C000E1F000032F3DA001ACA
-S31A00103012AF0B00037FFF001AAF0A00037FFF001AAF0900037FB0
-S31A00103027FF001AAF0800037FFF001AAE07001AAD06001AAC05C6
-S31A0010303C001AAB0400397FD60016AF040002ED020002EE030065
-S31A001030511AAF0B00037FFF001AAF0A00037FFF001AAF090003D6
-S31A001030667FFF001AAF0800037FFF001AAE03001AAD02001AAC15
-S31A0010307B01001AAB0000397FD60016AF040002ED000002EE012D
-S31A001030900033F3D0000EA1BF000EA0BB0018AF070002EF000089
-S31A001030A518AF080002EF010018AF090002EF020018AF0A0002A9
-S31A001030BAEF030039F7A30023FFFF000EA1FE000EA06300198CA2
-S31A001030CF01000D9FFB000CBBCB000EEBFD000CAFBC000EABFF77
-S31A001030E40023FFFF0039F79E0016AFFD000CAFD5000EAFFF00C4
-S31A001030F902FF010002FF02000D1F6E000D5F7D0002F500003AF3
-S31A0010310EF0F0000E1CFF0036F3B5001EAC02001EAB01000CAF5E
-S31A001031235D003AF32C0016AF030039F79A0023FFFF000EA3FF68
-S31A00103138000EA204000EA1FF000EA02D001AAC2500183C0A00E6
-S31A0010314D1AAB2400187B09000EA1BF000EA0AA00180B5E003259
-S31A00103162F3A500181C5F0034F3A20018AC5F0018AB5E000EA15B
-S31A00103177FF000EA05300180B0C0032F39D00181C0D0034F39A3A
-S31A0010318C0002CB0C0002CC0D0023FFFF0039F7A80016AFFE00A8
-S31A001031A10EA1FF000EA0530018AE0D0018AD0C000EA5BF000E30
-S31A001031B6A4AA001CAF600002FF01000EAFFF0002FF00000EABFD
-S31A001031CBFF000EACC4003AF961000EABFF000EACC4003AF90758
-S31A001031E0000EA1FF000EA0530002CB0E0002CC0F001CAF490049
-S31A001031F50EFF7F0032F378001C0B490032F37D001C1C4A0031C1
-S31A0010320AF378001CAF490002CF0E001CAF4A0002CF0F000EA197
-S31A0010321FFF000EA053000EAFFE0002CF0D000EAF7F0002CF0CD2
-S31A001032340016AF020039F7A30023FFFF0039F7A80016AFFC001B
-S31A0010324902FB020002FC03000EA1BF000EA0AA0018A45600186A
-S31A0010325EA555000EA1BE000EA03B0018AB03000E2BDF000E1BEE
-S31A00103273FF0036F356000EA1FF000EA02D0018AC0A0018AB098F
-S31A00103288003AF099000E1CFF0036F356000EA1BF000EA0AA00EA
-S31A0010329D18A4580018A557000EABFE000EACCF003AFA25000C39
-S31A001032B2AFCE000CAFBD0002F5000002F401001EAC03001EAB78
-S31A001032C702003AF9C8000EABFE000EACCD003AFA25000CAFCEBF
-S31A001032DC000CAFBD001EAC03000ECCFB001F5B020002F500003A
-S31A001032F102F401003AF9C8000EABFF000EAC20003AFA25000CC9
-S31A00103306AFCE000CAFBD001EAC03000ECCF7001F5B020002F596
-S31A0010331B000002F401003AF9C80016AF040039F7A30023FFFFD8
-S31A001033300000FFC40000FFC30000FFC20000FFC10001BBC300ED
-S31A0010334501BCC20023FFFF0039F7A80016AFD40002FB2300022A
-S31A0010335AFC240002FD25003AC3DA000CAFC0000CAFB10018AF7F
-S31A0010336F00000E1FFA0032F31D000CAF0E000ECEBF000D5F1DDD
-S31A001033840033F31A003AC3E7000CAFCE000CAFBD000EABDF0061
-S31A001033990CAF62000EC2FC000D5F73000CAFE0000CAFD100100A
-S31A001033AEAF0100035F01000DBFBB0032F314000EA1FE000EA0C6
-S31A001033C3630018AC00000EABFF000CCCCC000CDBBB000CCCE002
-S31A001033D8000CDBD10018AF020002FF260018AF030002FF270030
-S31A001033ED0EA1FF000EA02D0018AB01000E2BFB000E1BFF0032DA
-S31A00103402F24B000EA1BF000EA0BB0018AB04000E2BFC000E1B66
-S31A00103417FD0032F293000EA1BF000EA0AA0018A4120018A51174
-S31A0010342C0018AC4B000EABFF0018AE4D0018AD4C003A7FB90018
-S31A001034410CAFC2000CAFB3000CAF40000CAF51000EA8FF000EAB
-S31A00103456A9FF001EAE27001EAD26000CAFDC000E6CFE000CAFF5
-S31A0010346BCB00037EFF00037DFF00037CFF00037BFF000370FFFF
-S31A00103480000371FF0039F79600397FDA0016AF08000CAFE000EE
-S31A001034950CAFD1000CAFC8000CAFB9000CAF4C000E4C17000C05
-S31A001034AAAF5B000E5BFC0002FC2B0002FB2A000EAFFF0002FF7B
-S31A001034BF280002FF29001EAE24001EAD23000CAFDC000E6CFEA3
-S31A001034D4000CAFCB00037EFF00037DFF00037CFF00037BFF004D
-S31A001034E91EAF2F00037FFF001EAF2F00037FFF001EAF2F0003BF
-S31A001034FE7FFF001EAF2F00037FFF00397FDA0016AF08000CCE6F
-S31A0010351300000CDD11000CDC88000CDB99000EAF1700037FFF4E
-S31A00103528000EAFFC00037FFF000EAFFF00037FFF000EAFFF0045
-S31A0010353D037FFF000CAF9B000CAF8C000CAF1D000CAF0E00396B
-S31A001035527FD60016AF04000CAFDB000CAFEC000CAF2E001ECE1E
-S31A0010356727000CAF3D001EDD26000C0BDF0032F2A0000C1CEF28
-S31A0010357C0030F297001E1227000CAFFE001EAD26000C7D3D00A4
-S31A001035910C0BDF0032F298000C1CEF0031F295000CAFDB000CEC
-S31A001035A6AFEC0002FB230002FC24000CAF6C000ECCFA000D5FB6
-S31A001035BB7B000CAF6E000ECEDC000D5F7D001EAF260002FF00AC
-S31A001035D0001EAF270002FF01000EA3FE000EA263001AAF00004F
-S31A001035E502FF02003AC60E000E1CFF0036F258000EA1FE000E46
-S31A001035FAA0630018AF01000E1F000032F271000CAF6C000ECC18
-S31A0010360FFA000D5F7B001EAE24001EAD23001EAF260002FF00DD
-S31A00103624001EAF270002FF010018AF000002FF02003AC6420079
-S31A001036390EA3FE000EA263001AAF00000E1FF10032F265001E16
-S31A0010364EAF250032F265000EA1FF000EA02D0018AF01000EBFD6
-S31A00103663FB0002CF01001EAF23000EFF7F0032F253001EAF238C
-S31A00103678001EBF240036F253000CAF6C000ECCFC000D5F7B00C7
-S31A0010368D3AC5B10000FCD0000017CF0033F253000EA1FF000E7C
-S31A001036A2A02D0018AF01000EBFFB0002CF01000EA1FE000EA073
-S31A001036B763000CAF02000CAF13001AAF000002CF0100191F0027
-S31A001036CC0002DF000016AF2C0039F7A30023FFFF0039F7A80035
-S31A001036E116AFEB000CAFC4000CAFB50002FD040002FE05000E09
-S31A001036F6A1FE000EA0630019BF000002FF06000CAF4C000ECC39
-S31A0010370BFB000D5F5B003AF96F0002FB090002FC0A000CAF4C1A
-S31A00103720000ECCF7000D5F5B003AF96F0002FB0B0002FC0C0032
-S31A001037350CAF5B000CAF4C003AF96F0002FB070002FC08000E92
-S31A0010374AA1FE000EA09F0018AE010018AD00000EABFE000EAC6B
-S31A0010375F5E003AC40C001EA005001EA1040002CB0E0002CC0F99
-S31A00103774001EAC0A001EAB09003A7FC0000CAFC8000CAFB90014
-S31A001037890EA3BD000EA2A0000EA1BF000EA0AA0018AF0B0003BC
-S31A0010379E7FFF0018AF0A00037FFF001AAE0C001AAD0B00397FD2
-S31A001037B3D80016AF02000C09DF0032F20E000C18EF0034F138B6
-S31A001037C8001EA005001EA1040018AC0F0018AB0E001EAE0C00D4
-S31A001037DD1EAD0B003AC4FE001E4C08001E5B07001EAE0A001E09
-S31A001037F2AD09003AC4800002FB0D0002FC0E000EA1BE000EA047
-S31A001038073B0018AB02000E2BFE000E1BFF0036F194000EA1BF0E
-S31A0010381C000EA0BB0018AB04000E2BFC000E1BFD0032F194003F
-S31A001038311EA005001EA1040018AC0F0018AB0E001EAE0C001E4C
-S31A00103846AD0B003AC4CC0002FB000002FC01001EAC0E001EAB38
-S31A0010385B0D000EAE17000EADFC003A7FBE000CAFC4000CAFB545
-S31A00103870000EABFF000EAC06000CAF5D000CAF4E003AFA34002C
-S31A001038850EF57F0032F1DA0004AFC00036F1A1001EAF09000286
-S31A0010389AFF00001EAF0A0002FF01001EAC08001EAB07001EAEBD
-S31A001038AF0C001EAD0B003AC5200002FB0F0002FC10000EA1FF25
-S31A001038C4000EA02D0018AB01000E2BF7000E1BFF0036F1C400F7
-S31A001038D90EA1FE000EA09F0018AC030018AB020033F1C0000E4C
-S31A001038EEA1FE000EA09F0018AC010018AB00000EA1BF000EA01F
-S31A00103903BB0018AE010018AD00003AF7C7001ECC10001EDB0F58
-S31A00103918000EFB7F0036F1B5000EACFF000EABFF000EA1FE0002
-S31A0010392D0EA0630002CB050002CC06000EA1FF000EA02D001817
-S31A00103942AF01000EBFFB0002CF010000FCD0000017CF0000FE60
-S31A00103957C0000EF57F0036F1A1000EA1FF000EA053000EAFFED1
-S31A0010396C0002CF12000EA417000EA5FC001EAC08001EAB070033
-S31A001039813AF099000E1CFF0036F194000EA1FF000EA053000EB7
-S31A00103996AFFE0002CF11000EAFFE0002CF120001B5D00001B49E
-S31A001039ABCF001EAB06003AC43B001EA005001EA10400181C0F51
-S31A001039C00002FF1200185B0E0002FB11000EA1BF000EA0AA0074
-S31A001039D518AF0C0002FF14000EAFFF0002FF13001F1B06003A95
-S31A001039EAC43B000CAFC4000CAFB5001EAB06003AC43B000C4C64
-S31A001039FF4E000C5B5D001EAC14001EAB13003A7FB9001EAE1281
-S31A00103A14001EAD11000C1DBF0032F176000C1ECF0035F13800D3
-S31A00103A291EA005001EA1040018AF0E0002FF020018AF0F00023C
-S31A00103A3EFF03000CAF6C000ECCFD000D5F7B003AC355000CAF69
-S31A00103A53C5000EA1FF000EA02D0018AC0E0018AB0D003AC3D784
-S31A00103A68000CAF5E000EADFF000CCEEE000CDDDD000CCECC002C
-S31A00103A7D0CDDBB001EAE03001EAD02003AC36B000EA1FF000EBA
-S31A00103A92A02D0018A80E0018A90D000D9FCE000DCFBD000CAFD2
-S31A00103AA79B000CAF8C003AC493000CAFE0000CAFD1000CAFC8D7
-S31A00103ABC000CAFB9001EAD0E001EAC0D000EAFFE00397FD20076
-S31A00103AD10370FF000371FF0039F79600397FD90016AF0400398C
-S31A00103AE67FD10002FD0D0002FE0E001EA005001EA1040018AEFF
-S31A00103AFB0F0018AD0E001EAF0D0002FF00001EAF0E0002FF0106
-S31A00103B10000CAF1B000CAF0C003AF8F90016AF150039F7A30015
-S31A00103B2523FFFF0039F7A80016AFFE000EADF1003AF9ED000EDF
-S31A00103B3AA1FE000EA09F0018AE010018AD00000EABFE000EAC77
-S31A00103B4F5E003AC40C0002FB000002FC01000EA5FE000EA46321
-S31A00103B64000EAF000002EF01000CAF7B000CAF6C003AC35500D8
-S31A00103B790D1FCB0002EB00000EA1FE000EA09F0002CB2600163A
-S31A00103B8EAF020039F7A30023FFFF0039F7A80016AFDE003AC3EF
-S31A00103BA3DA000CAFC4000CAFB5001CAB00001CAF01000E1FAAC4
-S31A00103BB80032F0F3000E1BFF0036F0F3000E1B000036F0F3004A
-S31A00103BCD0E1BFA0036F0F3000EABDF000CAF62000EC2FD000D02
-S31A00103BE25F73000CAF40000EC0BF000D5F510010AF0100035F7F
-S31A00103BF701000DBFBB0032F103000EAF000002FF02000EAFAACE
-S31A00103C0C0002FF030002F5000002F401000EACDF000EABFF004A
-S31A00103C210CAF6E000ECEFD000D5F7D003AFDF00016AF22003946
-S31A00103C36F7A30023FFFF0039F7A80016AFFB0002FB000002FC15
-S31A00103C4B010002FD020002FE03001EAB09000EAFFF0002FF04B6
-S31A00103C60000EA5FE000EA463000E1BFF0032F0DF001CAB000083
-S31A00103C753AF074000E1CFF0036F0B1001EA001001EA1000018F0
-S31A00103C8AAF0000037FFF0018A0010016A101000E01FF0032F03E
-S31A00103C9FD6000E10FE0034F0B7000EA3FF000EA22D001AAB01DA
-S31A00103CB4000E2BFE000E1BFF0036F0B7000EA1BF000EA0BB00D2
-S31A00103CC918AB04000E2BFC000E1BFF0036F0B7001AAB01000EFB
-S31A00103CDE2BFB000E1BFF0032F0B7001CAB00003AC43B000CAFD9
-S31A00103CF3CE000CAFBD001EAC01001EAB00003AF87E001EA0035B
-S31A00103D08001EA1020002CB000002CC01000EAFFE0002FF040073
-S31A00103D1D33F0B5001D1F000002EF00001EAC01001EAB00000ED4
-S31A00103D32ADF1003AF9ED001EAC04000EABFF0016AF050039F728
-S31A00103D47A30023FFFF0039F7A8000EABFF000EA5FE000EA49FFB
-S31A00103D5C000EA1FE000EA0630018AF00001C1F260034F09D0095
-S31A00103D713AC68C000EA1FE000EA0630018AF000002EF26000EF1
-S31A00103D86ABFE000CAFBC000EABFF0039F7A30023FFFF0039F716
-S31A00103D9BA80016AFFD000CAFC4000CAFB5000EAFFF0002FF02E5
-S31A00103DB0000EA1FE000EA09F0018AC340018AB330018AF370002
-S31A00103DC502FF000018AF380002FF01000EAE9B000EADFF003A86
-S31A00103DDA7FBE000CAFCD000EA1BF000EA0AA0018AC360018CC55
-S31A00103DEF380018AB350018DB37000C05BF0032F07E000C14CFF0
-S31A00103E040035F07B00181D540030F079000EAFFE0002FF020013
-S31A00103E191EAC02000EABFF0016AF030039F7A30023FFFF003905
-S31A00103E2EF7A80016AFFE0002FB00000EAFFF0002FF01000E1B23
-S31A00103E43F10030F05C000EA1FE000EA09F0018AE010018AD0061
-S31A00103E58000EABFE000EAC5E003AC40C000CAFC4000CAFB50077
-S31A00103E6D1EAB00003AC43B000C05BF0032F05F000C14CF0035B3
-S31A00103E82F05C000EAFFE0002FF01001EAC01000EABFF0016AFC4
-S31A00103E97020039F7A30023FFFF0039F7960016AFFF000EAFECD7
-S31A00103EAC0002FF00000EABFF000EAC40000EADBD000EAEFF0005
-S31A00103EC13A7FE00016AF010039F7930023FFFF0039F7A80016A5
-S31A00103ED6AFFC003AF9F7000CAFCE000EADFF000EA5FF000EA445
-S31A00103EEB2D001CAC0A001CAB09000EA1BD000EA0A00018AF1E3E
-S31A00103F000002FF01000EAFFF0002FF00003A7FBE0002FB020061
-S31A00103F1502FC03001CAB01000E2BFE000E1BFF0036F027001CF0
-S31A00103F2AAC0E000ECCAB001CAB0D000EDB0A000EADFF003AEF83
-S31A00103F3FFB001CAC12001CAB11000EADFE003AEFFB001EAC0300
-S31A00103F54001EAB02000EADFD003AEFFB0016AF040039F7A300FF
-S31A00103F6923FFFF0039F7960004AFBF0004BFBE0036F013000E0C
-S31A00103F7EA1BD000EA0FF0004ACBE0004ABBF000D1FCF0001BF76
-S31A00103F93BE000D5FBF0001BFBF00181B110032F01500181C12DA
-S31A00103FA80035F013003AF0110039F7930023FFFF0039F79600D1
-S31A00103FBD16AFFE0000FFBF0000FFBE000EA1FF000EA0400019E6
-S31A00103FD21F0D0002CF0D00195F0C0002CF0C000EAFBD0002FFDE
-S31A00103FE700000EAFFF0002FF01000EACEC000EABFF000CAF1DBB
-S31A00103FFC000CAF0E003AFDF00016AF020039F7930023FFFF00FF
-S31A0010401139F7A80016AFFF000CAFC2000CAFB3000EAFFF00023F
-S31A00104026FF00000CAFDE000EADFF000CAFE0000EC0FF000CAFFA
-S31A0010403BD1000ED1BD0018A80E000EA9FF000EEEFB00037FFFF1
-S31A00104050000EEDFB000CBFED0016AE01000CAFE0000EC0400029
-S31A001040650CAFD1000ED1FF000CAFE4000EC4FF000CAFD5000EB8
-S31A0010407AD5BD001803000032EFDD001812010034EFD50002C388
-S31A0010408F000002C201000CAF2C001C3C01000CAF3B001C7B0074
-S31A001040A40033EFCB001803020032EFD2001812030031EFC500E2
-S31A001040B902C3020002C203001C1203000CAFFC001CAB02000C91
-S31A001040CE7B3B000C0B9F0032EFC8000C1C8F0034EFC5000EAF16
-S31A001040E3FE0002FF00001EAF000036EFBE0004AFBF0004BFBE10
-S31A001040F80032EFBE0000FFBF0000FEBE001EAC00000EABFF00C2
-S31A0010410D16AF010039F7A30023FFFF0039F7A80016AFFC00161E
-S31A00104122AF02000EA09F000EA17F0018AB00000EBBFA0002CBF3
-S31A0010413700003AE13A0004AFDF0032EF3E003AFD3E000EA5BD32
-S31A0010414C000EA4A0000EA3FF000EA22D001CAF000002DF0900B4
-S31A001041611CAF010002DF0A001CAE0C001CAD0B000EABFF000E0C
-S31A00104176AC26003AFA34001CAE0E001CAD0D000EABFF000EACC4
-S31A0010418B0A003AFA34000EA1FF000EA02D000CAF02000CAF1383
-S31A001041A0001AAF10000EBFFE0002CF10000EAFF40002DF0D00D0
-S31A001041B50EAF8D0002DF0E0004AFBA000EBFF70001BFBA000EED
-S31A001041CAA1BF000EA0AA0018AF01000E1FFD0036EF7D0018ABBB
-S31A001041DF01000E2BFE000EEBF7000CAFFB000CAF31000CAF2010
-S31A001041F40018AF01000E2F080002DF01000CBFBF0002CF010055
-S31A001042093AF057000EA1BF000EA0BB0018AC0C0018AB0B003A5A
-S31A0010421EF333000EA1FF000EA02D0018AC0A0018AB09003ADB17
-S31A0010423386003AEF02000EA3FF000EA22D001AAF090001BF99F7
-S31A00104248001AAF0A0001BF98001AAF0D0001BF97001AAF0E001C
-S31A0010425D01BF96003AE3AF000EACFF000EA1BD000EA0B5001874
-S31A00104272AF0D0002FF020018AF0E0002FF03000EA09F000EA18D
-S31A001042877F0018AB00000E2BF7000C1BCF0036EF520018AB006A
-S31A0010429C000E2B080002CB00000CAF6C000ECCFC000D5F7B0005
-S31A001042B13AEA280004AFDF0032EF4C000CAF6C000ECCFD000D8C
-S31A001042C65F7B003AEA28000E1CFF0036EF40000CAF6E000ECE14
-S31A001042DBFD000D5F7D000EAFBD0002FF00000EAFA80002FF01F0
-S31A001042F0000EACFD000EABFF003AFDF0000EABFF0033EF3500FE
-S31A0010430504ABDF000E2BEF000E1BFF0036EF340004AFDF000EB6
-S31A0010431A2F100001BFDF003AF057000EABFE003AE483003AF196
-S31A0010432F19003AEA1C000EA1BE000EA03B0018AB02000E2BFBBB
-S31A00104344000E1BFF0036EF1B000EA1BF000EA0480018AB0000BF
-S31A001043590EACFF000E1BFB0032EF24000E1CFF0036EF20000E9B
-S31A0010436E1BBF0032EF1B000E1CFF0032EF1B000EA1FF000EA04D
-S31A001043832D0018AF13000EBFBF0002CF13000EABFF003AEA5765
-S31A001043980004AF9C000E1FFE0032EF11000EABFF003AE94F0024
-S31A001043AD3AF6EB000EABFE0033EF1A0004AF9C000E1F00003229
-S31A001043C2EF09000EABFE003AE94F003AF516000EAB000033EF8F
-S31A001043D71A000EABFF003AE94F003AE49B0033EF1B0016AF04B8
-S31A001043EC0039F7A30023FFFF0039F7A80016AFFE003AEA1C00D7
-S31A001044010EA5FF000EA42D000EA1FE000EA05A001CAC0E00185C
-S31A001044163C03001CAB0D00187B02003A7FC0000EA1BE000EA03F
-S31A0010442B6A00180B1F0032EEF100181C200034EEB80004AF6C5C
-S31A001044400032EEB80004AF9C0032EEE8001CAF13000EBFFD007A
-S31A0010445502EF130033EEB8003AC8F30004AF9C000E1F000032BC
-S31A0010446AEEC6000EA1BF000EA0AA0018AB00000EA1FF000EA08E
-S31A0010447F530018AE0F0018AD0E0004AFD00002FF000004AFCF11
-S31A001044940002FF01000CAFDC000CAFED000EAEFF003AC87F0080
-S31A001044A904AF650036EEB8001CAF090001BFCA001CAF0A0001C0
-S31A001044BEBFC9001CAF190001BFC6001CAF1A0001BFC5001CAFAC
-S31A001044D3050001BFC8001CAF060001BFC70033EEB8003AEA9943
-S31A001044E8000CAFCB000EA1BF000EA0BB0018AE0C0018AD0B00AA
-S31A001044FD04AFD00002FF000004AFCF0002FF01000CAFDC000CE9
-S31A00104512AFED000EAEF7003AC87F0004AF6B0036EEB30004AF06
-S31A001045276C0032EEB3003AC741000E2A20000EFADF0032EEB3D6
-S31A0010453C000EA3FF000EA22D001AAB13000E2BF7000E1BFF0097
-S31A0010455136EEA2000EA09F000EA17F0018AB00000EBBFA000276
-S31A00104566CB00001AAF13000E2F080002DF13003AFF760000FF9C
-S31A0010457B6C000EA09F000EA17F0018AB00000EBBFA0002CB00DB
-S31A00104590003AE9E7000CAFCB000E6BFE003AEE8F003AEBEC0031
-S31A001045A53AF04B003ACDE5003AEDCF000EABFF0016AF020039DC
-S31A001045BAF7A30023FFFF0039F7A80016AFF9000CAFCE000CAF41
-S31A001045CFBD000EABFE000EACCF000CAFC0000CAFB10018AF0610
-S31A001045E40002FF04000EA3BF000EA2AA0004A4C9001A343600E8
-S31A001045F904A5CA001A7535000EA1FF000EA02D0018AF0A001AEC
-S31A0010460E3F360002FF060018AF09001A7F350002FF05000EA3B0
-S31A00104623FE000EA29F001EA804000CAF89000E69FE001A180862
-S31A001046380002DF08001AAF07000C7F9F0002DF07001A18010059
-S31A0010464D02DF01001AAF00000C7F9F0002DF00001A1E0300024F
-S31A00104662DF03001AAF02000C7FDF0002DF02000CAFC0000CAFFD
-S31A00104677B10018AF06000E0FFF0031EE59001A181E0002DF1EB7
-S31A0010468C001AAF1D000C7F9F0002DF1D000CAF8C001ACC340094
-S31A001046A10CAF9B001ADB330002DB330002DC34000EFB7F003294
-S31A001046B6EE500000FF65000CAFEF001ACF360002DF36000CAF9C
-S31A001046CBDF001ADF350002DF35000EA1BE000EA03B0018AB0385
-S31A001046E0000E2BFE000E1BFF0036EDDF0004AF650036EDF7001C
-S31A001046F50EF57F0032EDF7000CB45F0036EDF7001EAF05000EE9
-S31A0010470AFF7F0032EDF7001EAF05001EBF060036EDF7000CAF66
-S31A0010471F31000CAF20001EAC06001EAB050004AEC50004ADC6D7
-S31A0010473400397FDD000CAFE8000CAFD9000374FF000375FF00A1
-S31A001047490CAF9D000CAF8E00397FD80016AF020018AC1C001855
-S31A0010475EAB1B000C0BDF0032EE24000C1CEF0030EE20000CAF20
-S31A00104773CE000CAFBD0033EE1A000374FF000375FF000CAF9D55
-S31A00104788000CAF8E00397FD80016AF020002CD1B0002CE1C0090
-S31A0010479D0EA1FE000EA09F001EAC06001EAB050004AEC70004DC
-S31A001047B2ADC800397FDD000CAFE8000CAFD9000374FF000375AD
-S31A001047C7FF000CAF9D000CAF8E00397FD80016AF020018AC1AF2
-S31A001047DC0018AB19000C0BDF0032EE04000C1CEF0030EE000087
-S31A001047F10CAFCE000CAFBD0033EDFA000374FF000375FF000C89
-S31A00104806AF9D000CAF8E00397FD80016AF020002CD190002CEE3
-S31A0010481B1A0033EDDB000EA1BE000EA03B0018AB03000E2BFE0A
-S31A00104830000E1BFF0036EDDF001EAF05001EBF060032EDDF0080
-S31A0010484504AF9C000E1F000032EDDF000EAFFF0002FF0000020F
-S31A0010485AFF01000EAFFF0002FF020002FF03000CAF7B000CAF7F
-S31A0010486F6C000EADFE000EAE68003ACCCD0033EDDB001EAB043A
-S31A00104884000CAFBC000E6BFE003ACEC4000EA1FE000EA05A009A
-S31A001048991EAC04000CAFCB000E6BFE00181C050002CF05001802
-S31A001048AE5B040002CB040016AF070039F7A30023FFFF0039F7BF
-S31A001048C3A80016AFFD0004ABFF000E2BEF000E1BFF0036EDC27D
-S31A001048D8000EA0EF000EA17F0018AB03000E2B7F000E1BFF0044
-S31A001048ED32EDBC0033EDAA000EA0DF000EA17F0018AB03000E6C
-S31A001049022B7F000E1BFF0036EDAA0004ACBD000EABFF000ECCEC
-S31A00104917FD000D5FBB000EA1BE000EA02F0018AE04000EADFF83
-S31A0010492C000C0BDF0032EDB1000C1CEF0035EDAD000EAFFE00F9
-S31A0010494102FF020033EDA700051FBD0001BFBD0033EDA900005A
-S31A00104956FFBD000EAFFF0002FF02000EA1FF000EA02D0018AB6F
-S31A0010496B00000E2BF3000E1BFF0036ED90000EA0BF000EA17F7F
-S31A001049800018AB00000E2BFD000E1BFF0036ED90003AEC73009F
-S31A001049950E2CFE000CAFCB000EEBF7000CAFFB0004AFBA000E18
-S31A001049AA2F080001BFBA000CBFBF0001BFBA0033ED62000EA5F8
-S31A001049BFFF000EA42D001CAC12001CAB11003A7FC0000EA1BE57
-S31A001049D4000EA02F00180B020032ED8600181C030030ED62005B
-S31A001049E904ABBA000E2BF7000E1BFF0032ED62001CAC0E000E7D
-S31A001049FECCAB001CAB0D000EDB0A00180B070032ED7A00181C59
-S31A00104A13080030ED6200180B050032ED7600181C060035ED6276
-S31A00104A28001CAF11001CBF120036ED620004AFB10032ED620030
-S31A00104A3D1CAF00000EBFF70002EF00003AEC73000E2CFE000CF1
-S31A00104A52AFCB000EEBF7000CAFFB0004AFBA000E2F080001BFA7
-S31A00104A67BA000CBFBF0001BFBA00005FB1001EAF020032ED5D0B
-S31A00104A7C0004AFBA000E2F080001BFBA000EA1BF000EA0FF00C8
-S31A00104A9104AC9A0004AB9B00181B080032ED5500181C09003644
-S31A00104AA6ED4C000EAFBF0002FF00000EAFF70002FF01000EACBF
-S31A00104ABBFD000EABFF000EADFF000EAE9B003AFDF0000EACFF2A
-S31A00104AD0000EABFF0016AF030039F7A30023FFFF0039F7A8006F
-S31A00104AE516AFFF000EA5FF000EA42D001CAF07000EFF7F0032C1
-S31A00104AFAED3D001CAF07001CBF080032ED3B000EADFF0033ED7E
-S31A00104B0F34003AD6EA001CAE08001CAD07000EAFFE0002FF00EF
-S31A00104B24003AF835000CAFCD000EABFF000EAC2B000CAFDE0041
-S31A00104B390E6DFE003AE8C8000EA1FF000EA02D0018AD03000E8F
-S31A00104B4EA1BE000EA06A0018AF1B000E1F000036ED2100180D4D
-S31A00104B631B0035ED210004AFBA000EBF7F0001BFBA0033ED1A5C
-S31A00104B78000EA1BE000EA06A00180D1C0030ED1A0004AFBA00A8
-S31A00104B8D0E2F800001BFBA000EA1BE000EA06A0018AF1D000E4F
-S31A00104BA21F000036ED0F00180D1D0035ED0F0004AFBA000EBFEA
-S31A00104BB7BF0001BFBA0033ED08000EA1BE000EA06A00180D1EAA
-S31A00104BCC0030ED080004AFBA000E2F400001BFBA0004AFBC00C6
-S31A00104BE136ECEB003AD6EA000EA5BD000EA4A0001C1B3E003239
-S31A00104BF6ED00001C1C3F0030ECF70004ABBA000E2BDF000E1B73
-S31A00104C0BFF0032ECEB0004AFBA000EBFDF0001BFBA0033ECEBD9
-S31A00104C20003AD6EA001C1B400032ECF3001C1C410035ECEB0062
-S31A00104C3504ABBA000E2BDF000E1BFF0036ECEB0004AFBA000E23
-S31A00104C4A2F200001BFBA0000FEBC003AD6EA000EA5BD000EA4A0
-S31A00104C5FA0001C1B420032ECE4001C1C430030ECDF0004AFBA2C
-S31A00104C74000EBFEF0001BFBA0033ECD7003AD6EA001C1B440074
-S31A00104C8932ECDB001C1C450035ECD70004AFBA000E2F100001D7
-S31A00104C9EBFBA000EA3FF000EA22D000EACFF0004ABBA000E2B8A
-S31A00104CB37F000C1BCF0032ECC9000EA1FF000EA01E0018AB003D
-S31A00104CC8000E2B73000C1BCF0032ECC9000EACFE001AAF0F00A8
-S31A00104CDD0E2F010002DF0F000CBFCF0002DF0F000EA1FF000E38
-S31A00104CF2A02D0004ABBA000EEBFB000E2BFE000DAFBB0018AFF8
-S31A00104D070F000E2F020002CF0F000CBFBF0002CF0F0004ABBA80
-S31A00104D1C000EEBF7000E2BFE000EEBFB000CAFFB0018AF1000C4
-S31A00104D310E2F040002CF10000CBFBF0002CF100004ABBA000E53
-S31A00104D46EBEF000E2BFE000DAFBB0018AF10000E2F020002CFD3
-S31A00104D5B10000CBFBF0002CF100016AF010039F7A30023FFFFF8
-S31A00104D700039F7A80016AFFE000EA1FF000EA02D0018AC0C0024
-S31A00104D8518AB0B003AE9B4000CAFCE000CAFBD000EABFF000E97
-S31A00104D9AAC16003AFA34000EA1FF000EA02D0018AB01000E2B3E
-S31A00104DAFF7000E1BFF0036EC8C0018A41C0018A51B0018AE1A7C
-S31A00104DC40018AD190033EC86000EA1FF000EA02D0018A40C00F0
-S31A00104DD918A50B0018AE060018AD05000D9F4F0002FF01000D47
-S31A00104DEECF5F0002FF00000EACC3000EABFF003A7FBD000CAF05
-S31A00104E03CE000CAFBD000EF57F0032EC79000EAE00000EAD00AE
-S31A00104E18000EABFF000EAC18003AFA340016AF020039F7A300E3
-S31A00104E2D23FFFF0039F7A80016AFF9000EA1FF000EA02D001802
-S31A00104E42AB00000E2BF3000E1BFB0036EC67000EA0BF000EA1A5
-S31A00104E577F000EAFFC0002CF00000EA1FF000EA02D0018AF09CE
-S31A00104E6C0002FF050018AF0A0002FF06003AFF76000EAFFF00D2
-S31A00104E8102FF030002FF04000EA1BF000EA0FF0018A4380018D6
-S31A00104E96A537000CB45F0036EC3B000EA09F000EA17F0018AB5B
-S31A00104EAB00000EBBFA0002CB00003AFF76000EA1FF000EA02D14
-S31A00104EC0001EAC0600183C0A001EAB0500187B09000EA1BF00C1
-S31A00104ED50EA0FF00180B420032EC4600181C430030EC2A001E61
-S31A00104EEAAF040004CFDB0002FF04001EAF030004DFDC0002FFA7
-S31A00104EFF03000DBF44000DFF55000CB45F0032EC57000EA0BF13
-S31A00104F14000EA17F000EAFFD0002CF00000CB45F0032EBF60087
-S31A00104F290EA1FF000EA02D0018AB00000E2BF3000E1BFB00368B
-S31A00104F3EEC21001EAF030001BF9B001EAF040001BF9A0033ECC6
-S31A00104F5314000EABFF000EAC2D000EADFB003AFA07000EABFFD7
-S31A00104F68000EAC2D000EADF7003AFA070033EC3B001EAF04001F
-S31A00104F7D043F9A0002FF02000CAF6E000ECEFD000D5F7D000E30
-S31A00104F92AFBF0002FF00000EAFF50002FF01000EACFE000EAB60
-S31A00104FA7FF003AFDF0000EA1FF000EA02D0018AB00000E2BF73D
-S31A00104FBC000E1BFF0036EC0A000CAF1B000CAF0C000EADF70027
-S31A00104FD133EC030018AB00000E2BFB000E1BFF0036EC02000C44
-S31A00104FE6AF1B000CAF0C000EADFB003AFA07000EA1FF000EA0C2
-S31A00104FFB2D0018AF090001BF990018AF0A0001BF980018AF0D38
-S31A001050100001BF970018AF0E0001BF96000EACFE0033EBF50028
-S31A001050250EACFF000EA09F000EA17F0018AB00000EBBFA0002A4
-S31A0010503ACB00000EABFF0016AF070039F7A30023FFFF0039F7D8
-S31A0010504FA80016AFFD000EFADF000CAFFB0002FB02000E2A20D8
-S31A00105064000EFADF0032EBE70004AFBB0036EBE00005BFBB0048
-S31A0010507901BFBB001EAB02000CBABA0004ABDF000E2BEF000E82
-S31A0010508E1BFF0036EBD6000EABEF000EACB9000EADFE003AFFD9
-S31A001050A338000EA1FE000EA09F00191F240002CF2400195F23C4
-S31A001050B80002CF2300195F220002CF2200195F210002CF2100C1
-S31A001050CD191F250002CF2500191F2C0002CF2C00195F2B00025F
-S31A001050E2CF2B00195F2A0002CF2A00195F290002CF290018AFAA
-S31A001050F725000E1F1F0034EB950018AF25000ECFE00002CF25CA
-S31A0010510C000EABFE000EAC96003AF7F0000EABFE000EAC9B0044
-S31A001051213AF7F00004AFB10036EBB00005BFB10001BFB1000423
-S31A00105136ABB10033EBAF000EABFF0001BBB1000EA1FE000EA0A5
-S31A0010514B9F0018AC050018AB04003AE412000CAFC4000CAFB5EB
-S31A00105160000EA1BF000EA0AA0018AC0D000EABFF000EA1BD0069
-S31A001051750EA0A00018AE0C0018AD0B003A7FB9000C15BF00329B
-S31A0010518AEB9B000C14CF0035EB95000EA1FF000EA02D0018AF80
-S31A0010519F01000EBFFB0002CF01000EA1FF000EA02D0018AE0EED
-S31A001051B4000ECEAB0018AD0D000EDD0A000EA5BD000EA4A000C0
-S31A001051C90EABF5001C6B1A000CAFFC000C0DBF0032EB87000C2D
-S31A001051DE1ECF0035EB7F000EABF5001C6B1D000CAFFC000C0DF8
-S31A001051F3BF0032EB80000C1ECF0034EB75000EABFF000EAC0E28
-S31A00105208000EAEFF000EADFF003AFA34000EABFF000EAC0C0020
-S31A0010521D0EAEFF000EADFF0033EB59003AEA90000EABFF000C02
-S31A00105232CCCC000CDBBB000CC4C0000CD5B10018AE120018AD58
-S31A0010524711000EABFF000EAC0E003AFA34003AEA90000EABFFD7
-S31A0010525C000CC4C0000CD5B10018AC17000EABFF001CAE0C009C
-S31A001052711CAD0B000EAFFF0002FF00000EAF9B0002FF01003AED
-S31A001052867FBE000CAFCE000CAFBD000EABFF000EAC0C003AFA0D
-S31A0010529B34000EA1FF000EA01E000EA3BE000EA2360018AB0022
-S31A001052B0001A2B000018AC01001A2C01000CBCBF0036EB4C008E
-S31A001052C53AF9E40033EB4B003AF9D6003AF0240016AF030039E6
-S31A001052DAF7A30023FFFF0039F7A80016AFFB0002FC04000E1B2B
-S31A001052EFFD0036EB2B000E0BFD0030EB3D000E1BFF0036EB365E
-S31A001053040033EAE9000E1BFB0036EB0F000E0BFB0035EB1D00D3
-S31A001053190E1BF90036EAF40033EAE9000EA1BF000EA0BB00183E
-S31A0010532EAF070002FF000018AF080002FF010018AF090002FFFB
-S31A00105343020018AF0A0002FF030033EAE5000EA5FF000EA42DD5
-S31A00105358001CAC12001CAB11001CAE0A001CAD09003AF83F0061
-S31A0010536D02FB020002FC03001CAF110002FF00001CAF12000259
-S31A00105382FF010033EAE5000EA5FF000EA42D001CAC0C001CABD2
-S31A001053970B001CAE0A001CAD09003AF83F0002FB020002FC03C9
-S31A001053AC001CAF0B0002FF00001CAF0C0002FF010033EAE50024
-S31A001053C10EA1BD000EA0A00018AE0C0018AD0B000EAFFA0003AB
-S31A001053D67FFF000EAFFF00037FFF00397FD80016AF02000D9FEE
-S31A001053EBEF0002FF01000DCFDF0002FF000018AE0E0018AD0D44
-S31A00105400000EAFFA00037FFF000EAFFF00037FFF00397FD8007C
-S31A0010541516AF02000D9FEF0002FF03000DCFDF0002FF02003315
-S31A0010542AEAE5000EA1BF000EA0AA0018AF3E0002FF000018AFF5
-S31A0010543F3F0002FF010018AF400002FF020018AF410002FF03EB
-S31A001054540033EAE5000CAF7B000CAF6C000EADFF003AF40A00DC
-S31A001054691EAF040032EAE0001EAC01001EAB000033EADE001E9E
-S31A0010547EAC03001EAB020016AF050039F7A30023FFFF0039F79B
-S31A00105493A80016AFFC000EA5FE000EA49F001CAC1A001CAB19C1
-S31A001054A8000EA1FF000EA02D0018AE080018AD07003AE95A0039
-S31A001054BD02FB020002FC03001CAC1C001CAB1B000EA1FF000E42
-S31A001054D2A02D0018AE240018AD23003AE95A000CAFC4000CAF59
-S31A001054E7B5003AF9F7000EA1BD000EA0A0000CAFCD0018ED1F55
-S31A001054FC000CAFFE0018AF200002FF01000EAFFF0002FF000026
-S31A001055110CAF5B000CAF4C003A7FBE000CAFC4000CAFB5000EDE
-S31A00105526ABFF000EAC28001EAE03001EAD02003AE8C8000EAB8F
-S31A0010553BFF000EAC14000CAF5D000CAF4E003AE8C8000EA1BE00
-S31A00105550000EA03B0018AB03000E2BF7000E1BFF0036EA9C006D
-S31A0010556504ABBA000E2BEF000E1BFF0036EA9C000EA1FF000EEA
-S31A0010557AA02D0018AF050018BF060032EA9C0000FE800016AF95
-S31A0010558F040039F7A30023FFFF000EA1BF000EA0AA0018AC006F
-S31A001055A4000E0CFF0035EA91000E0CFC0030EA91000EACFF0099
-S31A001055B923FFFF000EADFE000EA1FF000EA02D0018A20E000E8E
-S31A001055CEC2AB0018A30D000ED30A000EA1BE000EA03B0018AB79
-S31A001055E302000E2BF7000E1BFF0036EA6F000EA1BD000EA0A0FA
-S31A001055F8000EABF500186B1B000CAFFC000C03BF0032EA7B0020
-S31A0010560D0C12CF0030EA78000EADFF0033EA6F000EABF50018E7
-S31A001056226B1C000CAFFC000EADFD000C03BF0032EA71000C12EE
-S31A00105637CF0030EA6F000EADFE000CAFDC000EABFF0023FFFFC7
-S31A0010564C000EABFF000EA1BF000EA0480018AD00000EAEFF0097
-S31A001056610E1DF70032EA63000E1EFF0036EA5B000E1D7F0032FB
-S31A00105676EA5F000E1EFF0036EA5B000E1D9E0032EA5A000E1EAF
-S31A0010568BFF0032EA5A000EABFE000CAFBC000EABFF0023FFFF78
-S31A001056A0000EA3FE000EA29F001AAE24001AAD23000EA1BF009D
-S31A001056B50EA0AA00181D2B0032EA4E00181E2C0034EA4A0018C6
-S31A001056CAAE2C0018AD2B0033EA36000E1B000032EA43000EA161
-S31A001056DFBE000EA02300183E0700187D060033EA36000E1BFE9F
-S31A001056F40032EA3A000EA1BE000EA0230018AC08000EABFF0073
-S31A001057090C4CEE000C5BDD0033EA36000EAEFF000EADFF000221
-S31A0010571EDD270002DE28000CBEDF0036EA30000EA1FE000EA000
-S31A001057339F0002CD270002CE28000EA1FE000EA09F000EAFFF08
-S31A001057480002CF210002CF220002CF230002CF240023FFFF0047
-S31A0010575D0CAFC0000CAFB1000EABFF0018AF00000E1F05003653
-S31A00105772EA1F00191F000002CF00000EABFE000CAFBC000EAB13
-S31A00105787FF0023FFFF0039F7960016AFFC003AEADB003AED47E3
-S31A0010579C003AE946003AECA3000EA1BD000EA0A00018AF080027
-S31A001057B102FF020018AF090002FF03000EA3FE000EA29F001ADE
-S31A001057C6AC1E001E3C03001AAB1D001E7B020002FB020002FC17
-S31A001057DB03000EFB7F0032E9EC0002DB1D0002DC1E0018AC0750
-S31A001057F00018AB06000E1B000032E9FE000E1C000036E9F90041
-S31A001058050D1FCF0002FF03000D5FBF0002FF020033E9F6000E2B
-S31A0010581AAF000002FF020002FF03000CAF6E000ECEFD000D5F3F
-S31A0010582F7D000EAFBD0002FF00000EAF9A0002FF01000EACFD46
-S31A00105844000EABFF003AFDF0000EABFF003AC68C0016AF04004D
-S31A0010585939F7930023FFFF0039F7A80016AFFC000EA1FE000EEC
-S31A0010586EA0CF0018A406000CAF45000E65FE0004AFB90002FF00
-S31A00105883000004AFB80002FF010004AFB70002FF020004AFB6B7
-S31A001058980002FF03003AC6AE000CAF5D000CAF4E00397FDC007E
-S31A001058AD04CEB60001BEB60004DDB70001BDB70004DCB800012D
-S31A001058C2BCB80004DBB90001BBB90004AEB6001E3E030004ADC2
-S31A001058D7B7001E7D020004ACB8001E7C010004ABB9001E7B004E
-S31A001058EC000EAFEF00037FFF000EAFD800037FFF000EAFFF0092
-S31A00105901037FFF000EAFFF00037FFF00397FD60016AF04000C5A
-S31A00105916AFEB000CAFBC000E6BFE0016AF040039F7A30023FF20
-S31A0010592BFF0039F7A80016AFFE000CAFC2000CAFB3000EF37F4C
-S31A001059400032E9AC000CB23F0032E9A9000EAC00000EAB000041
-S31A0010595533E95D000EA1FE000EA09F0018A4300018C4010018D3
-S31A0010596AA52F0018D500000EF57F0032E99F000CB45F0032E9DB
-S31A0010597F9C000EACFF000EABFF0033E95D000EA1BE000EA06AF2
-S31A001059940018AC150018AB14000EA8FF000EA9FF000C13BF00EF
-S31A001059A932E993000C12CF0035E98A000C4C28000C5B39000C64
-S31A001059BE195F0032E98D000C184F0034E98A000CAF59000CAFB5
-S31A001059D34800037CFF00037BFF000CAF3D000CAF2E00397FD7F6
-S31A001059E80016AF02000E1DFF0032E981000E1EFD0030E97D0048
-S31A001059FD0CCEEE000CDDDD0033E974000E1DFF0032E97A000E94
-S31A00105A121EF70030E976000ECEFD000D5FDD0033E974000EAE57
-S31A00105A27F5000EADFF000CAF9B000CAF8C00397FDB000EFB7FED
-S31A00105A3C0036E96B000ECEF8000D5FDD000D5FCC000D5FBB0039
-S31A00105A510EEEDF000EEDDF000CBEFE000EECDF000CBDFD000E00
-S31A00105A666BDF000CBCFC000CCE4C000CDD5B0002F3000002F2B4
-S31A00105A7B01000EAEC3000EADFF003A7FBD0016AF020039F7A3B6
-S31A00105A900023FFFF000EFB7F0036E956000EACFF000EABFF005C
-S31A00105AA50C0BDF0032E953000C1CEF0034E950000CAFDB000C4C
-S31A00105ABAAFEC0023FFFF000EA1FF000EA02D000E2BFE0018AF7E
-S31A00105ACF10000E2F010002CF10000CBFBF0002CF100023FFFFF1
-S31A00105AE40039F7A80016AFFC0004AF9C000E1FFE0032E8CF009B
-S31A00105AF93AEA6C000E1CFF0036E8CF000EA5BE000EA46A000E41
-S31A00105B0EA3FF000EA22D001AAC03000EABFF001CAE0F000EADD8
-S31A00105B23FF000C4ECC000C5DBB000CAFCD000CAFBC000EAFFE54
-S31A00105B3800397FD2001CAF1300037FFF001CAF1200037FFF00FB
-S31A00105B4D1CAF1100037FFF001CAF1000037FFF00397FD90016CD
-S31A00105B62AF040002FB000002FC010002FD020002FE03001AAF9C
-S31A00105B7703001C1F0F0031E91A000EAFFF0002FF000002FF01C3
-S31A00105B8C0002FF020002FF03001AAC0E000ECCA5001AAB0D00C2
-S31A00105BA10EDB0B000CAFCD000CAFBC000EAFFE00397FD2001C85
-S31A00105BB6AF0E00037FFF001CAF0D00037FFF001CAF0C00037FD4
-S31A00105BCBFF001CAF0B00037FFF00397FD90016AF04000CAFE064
-S31A00105BE0000CAFD1000CAFC8000CAFB9001AAC0E001AAB0D0071
-S31A00105BF50E0BF40032E8FF000E1C5A0030E8FA000EA0FF000E0E
-S31A00105C0AA1FF000EA8FF000EA9FF001CAE0A000EAFFF00397F1C
-S31A00105C1FD3001EAF0300037FFF001EAF0300037FFF001EAF0315
-S31A00105C34000E8F7F00037FFF001EAF0300037FFF00397FD400CB
-S31A00105C4916AF04000370FF000371FF000E887F0039F79600396E
-S31A00105C5E7FD40016AF04000EAFFF00037FFF000EAFFF00037F84
-S31A00105C73FF000EAFB700037FFF000EAF7800037FFF00397FD5CF
-S31A00105C880016AF040001BBB50001BCB40001BDB30001BEB20064
-S31A00105C9D0CAFBF0036E8CB000EFC7F0036E8CB0000FFB5000053
-S31A00105CB2FFB40000FFB30000FFB20033E8CB0000FFB40000FF19
-S31A00105CC7B30000FFB200007EB50016AF040039F7A30023FFFF5E
-S31A00105CDC0039F796000CAFC2000CAFB3000EA1BE000EA03B0096
-S31A00105CF118AB03000E2BBF000E1BFF0036E8B4000EA1FE000E15
-S31A00105D06A0D70018AF070036E8B40004AF9C000E1F000032E8C5
-S31A00105D1BB4001A1D000032E8B5001A1E010031E8B1000CAF3BAA
-S31A00105D30000CAF2C003AFA340039F7930023FFFF0039F7A8003D
-S31A00105D4516AFF3000CAFC4000CAFB5000EA9FE000EA89F000C76
-S31A00105D5AAF80000CAF910018AF210002FF030018AF220002FFCD
-S31A00105D6F040018AF230002FF050018AF240002FF06000EAFFF67
-S31A00105D840002FF07000EAFFF0002FF08000E1DFF0036E891004E
-S31A00105D990EADDF003AF9ED000EA1FF000EA02D0018AF13000EB4
-S31A00105DAEBFDF0002CF130033E6C1000EA3BF000EA2AA001AAEDC
-S31A00105DC33D001AAD3C000CAFDC000E6CFE000CAFCB001EAF060D
-S31A00105DD800037FFF001EAF0600037FFF001EAF0600037FFF0077
-S31A00105DED1EAF0600037FFF001E0B000032E87B001E1C0100320C
-S31A00105E02E87B001E1D020032E87B001E1E030016AF040030E820
-S31A00105E1771000CAF80000CAF91000EA3FF000EA22D001AAF0D05
-S31A00105E2C0002CF1F001AAF0E0002CF200004AFAF0036E6C10054
-S31A00105E410EA1BF000EA0AA0018AE070018AD06000EACFF000E11
-S31A00105E56ABFF001EAF0600037FFF001EAF0600037FFF001EAF02
-S31A00105E6B0600037FFF001EAF0600037FFF001E0B000032E85A94
-S31A00105E80001E1C010032E85A001E1D020032E85A001E1E030058
-S31A00105E9516AF040030E83C000CAF02000CAF130018AC19001A43
-S31A00105EAACC5A0018AB18001ADB59000EA1FF000EA02D00180BD2
-S31A00105EBF090032E84D00181C0A0031E8450018AB13000E2BBFDE
-S31A00105ED4000E1BFF0032E8450004AFBA000E2F020001BFBA00F6
-S31A00105EE904ABBA000E2BFD000E1BFF0036E83E000EAFFE0002AE
-S31A00105EFEFF080033E83C000EAFFE0002FF07000EA3FF000EA2F8
-S31A00105F132D001AAB13000E2BBF000E1BFF0036E815000EA1BF9D
-S31A00105F28000EA0AA0018AC190018CC5A0018AB180018DB5900B4
-S31A00105F3D1A0B090032E82D001A1C0A0031E8240004ABBA000ED0
-S31A00105F522BFD000E1BFF0036E8150004AFBA000EBFFE0001BFA9
-S31A00105F67BA0033E81B0004ABBA000E2BFE000E1BFF0036E81B1E
-S31A00105F7C0004AFBA000E2F020001BFBA000E2F010001BFBA001C
-S31A00105F9104ABBA000E2BFD000E1BFF0036E815000EAFFE00022E
-S31A00105FA6FF08001EAF080036E7F7000EAFFF0002FF07000EA16D
-S31A00105FBBBF000EA0AA0018AC470018AB46000EAEF5000EADFF25
-S31A00105FD000397FDB001EAF0600037FFF001EAF0600037FFF006B
-S31A00105FE51EAF0600037FFF001EAF0600037FFF001E0B0000328E
-S31A00105FFAE7FB001E1C010032E7FB001E1D020032E7FB001E1EBE
-S31A0010600F030016AF040030E7F7000EAFFE0002FF07001EAF07F5
-S31A001060240036E6FC000EA1FF000EA02D0018AE0A0018AD090012
-S31A001060390CAFDC000E6CFE000CAFCB001CCE0C0002EE0C001C99
-S31A0010604EDD0B0002ED0B001CDC0A0002EC0A001CDB090002EB5E
-S31A00106063090018AE120018AD11000CAFDC000E6CFE000CAFCBC6
-S31A00106078001CCE100002EE10001CDD0F0002ED0F001CDC0E00F7
-S31A0010608D02EC0E001CDB0D0002EB0D001D1F010002EF01001DA2
-S31A001060A25F000002EF00001CAC01001CAB00000EA3BF000EA2D3
-S31A001060B7AA001A1B130032E734001A1C140032E734001CAE0C12
-S31A001060CC001C3E08001CAD0B001C7D07001CAC0A001C7C060063
-S31A001060E11CAB09001C7B05003A7FC1000EAFFF0002FF02000EE1
-S31A001060F6A1BF000EA0AA0018A817000EA9FF000CAF80000CAF44
-S31A0010610B91000CAF18000E68FE000CAF89000370FF000371FF68
-S31A001061200039F796001E0B000032E7AF001E1C010032E7AF009A
-S31A001061351E1D020032E7AF001E1E030016AF040030E7AB000E62
-S31A0010614AAFFE0002FF02000EA3BF000EA2AA001AA014001AA127
-S31A0010615F13000EA8FF000EA9FF000370FF000371FF0039F796EC
-S31A00106174001CAE0C001CAD0B001CAC0A001CAB0900397FD60026
-S31A0010618916AF010002FF0C0016AF010002FF0C0016AF0100027D
-S31A0010619EFF0C0016AF010002FF0C0002ED1C0002EE1D0003706D
-S31A001061B3FF000371FF0039F796001CAE10001CAD0F001CAC0E01
-S31A001061C8001CAB0D00397FD60016AF040002ED1E0002EE1F0065
-S31A001061DD1EAF020036E77E001CAF110036E77E000EA1FF000EFA
-S31A001061F2A02D0018AB01000E2BFE000E1BFF0032E767000EA163
-S31A00106207BF000EA0AA0018AE160018AD15000EACFF000EABFF2E
-S31A0010621C001EAF0600037FFF001EAF0600037FFF001EAF0600DC
-S31A00106231037FFF001EAF0600037FFF001E0B000032E769001EA4
-S31A001062461C010032E769001E1D020032E769001E1E030016AFCB
-S31A0010625B040030E74B003AE3270002EC12000CAF5B000CAF4C51
-S31A00106270003AE356001CAF19000EBFBF0002EF19000EA1FF0068
-S31A001062850EA02D00191C0A00195B090018AE0E0018AD0D001899
-S31A0010629AAF110002FF000018AF120002FF01003AC520001C4CB6
-S31A001062AF18001C5B17003A7FC00002EB1A0002EC1B000EAFFEDA
-S31A001062C40002EF13001EAF060002EF02001EAF020002EF110014
-S31A001062D91CAF090002EF05001CAF0A0002EF06001CAF0B00022C
-S31A001062EEEF07001CAF0C0002EF08000EAFFF0002EF090002EF18
-S31A001063030A0002EF0B0002EF0C000EAFFF0002EF0D0002EF0EB3
-S31A001063180002EF0F0002EF10000EAFFF0002EF000002EF0100BA
-S31A0010632D1CAF130036E6FC001EAB06001C3B02000EA1BF000EAB
-S31A00106342A0AA00181B200035E6FC000EAFFF0002EF13000EAFFF
-S31A00106357FE0002EF140000FEB0000EA3FF000EA22D000CAF31F1
-S31A0010636C000CAF200018AF10000EBF7F0002DF10000CAF5B0001
-S31A001063810CAF4C003AE621000CAF5B000CAF4C003AE3C4000E9D
-S31A00106396A1BE000EA03B0018AB01000E2BFB000E1BFF0036E757
-S31A001063AB10000EA1FE000EA09F000EAFFE0002CF3B000EA3FF46
-S31A001063C0000EA22D001AAB13000E2BDF000E1BFF0036E701009F
-S31A001063D51CAF120036E701000CAF31000CAF200018AF13000EF3
-S31A001063EA2F200002DF13000EAFFE0002EF15000EA1FF000EA028
-S31A001063FF2D0018AF01000E2F040002CF01001EAC06001C3C043F
-S31A00106414001EAB05001C7B03000EA1BF000EA0AA00181B0800F4
-S31A0010642932E6F300181C090031E6EA001CAF150032E6EA000E0F
-S31A0010643EA1FF000EA02D0018AB13000E2BFD000E1BFF0036E668
-S31A00106453C1001EAF050002EF03001EAF060002EF04001CAF14F0
-S31A001064680032E6DE000EA1FF000EA02D0018AB13000E2BFD007E
-S31A0010647D0E1BFF0036E6C10004AF6C0032E6C1001CAF140036E2
-S31A00106492E6D7000CAF5B000CAF4C003AE342003AC8F3003AEA8D
-S31A001064A799000CAFCB000EA1BF000EA0BB0018AE0C0018AD0B32
-S31A001064BC0004AFD00002FF000004AFCF0002FF01000CAFDC0016
-S31A001064D10CAFED000EAEF7003AC87F000EAFFF0002EF15000EF4
-S31A001064E6A1FF000EA02D0018AF13000E2F020002CF130016AF4E
-S31A001064FB0D0039F7A30023FFFF0039F7A80016AFFA000CAFC45F
-S31A00106510000CAFB50002FD030004ABBA000E2BFB000E1BFF0029
-S31A0010652536E6660004AFB00032E6660004AFBA000E2F04000139
-S31A0010653ABFBA000CAF4F000ECFE80002FF05000D5F5F0002FF1C
-S31A0010654F04000EAFFD0002FF00001EAC05001EAB04000EADFE0D
-S31A00106564000EAE5A003A7FE0000EA1FE000EA05A0018AE0500DD
-S31A0010657918AD04001EAC05001EAB04003AC40C0002EB17000282
-S31A0010658EEC18000EA1BF000EA0BB00191C0600195B05000EA1A4
-S31A001065A3FF000EA02D0018AE0E0018AD0D0018AF110002FF0074
-S31A001065B80018AF120002FF01003AC520001C4C18001C5B1700B0
-S31A001065CD3A7FC00002EB1A0002EC1B001CAF19000E2F80000277
-S31A001065E2EF19000E2F3F0002EF19000EBFFD0002EF19001EAF5F
-S31A001065F703000E1FFE0032E67B001CAF19000EBFBF0002EF193E
-S31A0010660C0033E678001CAF19000E2F400002EF19001EAF030097
-S31A001066210E1FFD0034E66D000EAFFE0002EF12000CAF5B000CBD
-S31A00106636AF4C003AE621000CAF5B000CAF4C003AE3C4000EAF42
-S31A0010664BFE0002EF14000EA1FF000EA02D0018AF01000E2F048F
-S31A001066600002CF01001CAF140036E6500004AF6C0032E650006B
-S31A001066750CAF5B000CAF4C003AE342003AC8F3003AEA99000CC0
-S31A0010668AAFCB000EA1BF000EA0BB0018AE0C0018AD0B0004AF3F
-S31A0010669FD00002FF000004AFCF0002FF01000CAFDC000CAFED3C
-S31A001066B4000EAEF7003AC87F001CAF160036E62C001CAF120081
-S31A001066C936E647000EA1FF000EA02D0018AF01000EBFFD000226
-S31A001066DECF01000EA1FE000EA09F0018AF3B0036E63E000EAFAE
-S31A001066F3FF0002CF070002CF08000EAFFF0002CF3B000EFADF1D
-S31A00106708000CAFFB0002FB02000E2A20000EFADF0032E63B001F
-S31A0010671D0EA1FE000EA0C8000EAF800002CF00000EAF00000261
-S31A00106732CF010000FFB90000FFB80000FFB70000FFB6001EABC9
-S31A0010674702000CBABA000EA1FF000EA02D0018AF13000E2F20E5
-S31A0010675C0002CF130018AF10000E2F800002CF100016AF0600EE
-S31A0010677139F7A30023FFFF0039F7A80016AFEE0002FB09000276
-S31A00106786FC0A000EA1FE000EA09F0018AC080018AB07003A7F99
-S31A0010679BC00002FB0B0002FC0C000EA3FE000EA29F001AAC0A33
-S31A001067B0001AAB09003AE4120002FB0D0002FC0E000EA1BF003C
-S31A001067C50EA0AA0018AC30000EABFF000EA1BD000EA0A00018D3
-S31A001067DAAE0C0018AD0B003AF80B000EA5FF001EA20E001EA38C
-S31A001067EF0D000C13BF0032E600000C12CF0031E5FE000EA5FECA
-S31A00106804000EA1BF000EA0480018AB00000EACFF000E1B9E00C2
-S31A0010681932E5EB000E1CFF0032E5EB000EA1FE000EA09F001815
-S31A0010682EA20A0018A309000EA1BF000EA0AA001813330032E594
-S31A00106843ED001812340035E5EB000EA5FF001EA00A001EA10998
-S31A001068580018AF120036E526000EA1FF000EA02D0018AB0100AE
-S31A0010686D0E2BF9000E1BFD0032E526000E15FF0036E526000EFA
-S31A00106882A1FE000EA09F0018AF0B0032E526000EA1BF000EA0D4
-S31A00106897BB0018AB04000E2BFC000E1BFF0036E5B8001EAC0A50
-S31A001068AC000ECCE8001F5B09000EA5BF000EA4AA001CAD2D00B8
-S31A001068C13AE377000E1CFF0036E5BD000EA1BD000EA0A0001C41
-S31A001068D6AC32000EABFF0018AE0C0018AD0B00397FDC000CAF10
-S31A001068EBDE000CAFCD000CAFBC000E6BFE001E0D0B0032E5BE23
-S31A00106900001E1E0C0034E5B8001EA20A001EA309000EAFFF0003
-S31A0010691502DF120033E515000EA1FF000EA02D0018AF01000ED8
-S31A0010692A2F020002CF01000EA1BF000EA0AA0018A42E003AEA6B
-S31A0010693F6C000E1CFF0036E5AA000EA3BF000EA2AA001AA42F1C
-S31A00106954000EA1FE000EA09F0018AC0A0018AB09003AE4120054
-S31A0010696902FB0F0002FC10000EA1BF000EA0AA0018AC30000E21
-S31A0010697EABFF001EAE0C001EAD0B003AF80B000EA5FF001EA2E7
-S31A0010699310001EA30F000C13BF0032E596000C12CF0031E594D7
-S31A001069A8000EA5FE000EA1BF000EA0BB0018AF04000E2FFC0038
-S31A001069BD02FF11000E1FFF0032E586001EAC0A000ECCE8001F1F
-S31A001069D25B09000CAF4D003AE377000E1CFF0036E515000E151E
-S31A001069E7FF0036E515000EAFFA0002FF00000CAF6C000ECCFDA0
-S31A001069FC000D5F7B000EADBF000EAEBB003A7FE0000EA1FE0052
-S31A00106A110EA063001EA20A001EA309001AAC1800183C08001A61
-S31A00106A26AB1700187B07003A7FC0000CAFCE000CAFBD001EACA5
-S31A00106A3B0C001EAB0B003AF7C70002FB020002FC03003AE51227
-S31A00106A500002FB020002FC03000CBCBF0036E515000EABFF00AC
-S31A00106A653AC5CF000EA1BD000EA0A00018AF060002FF04001894
-S31A00106A7AAF070002FF05000EABFE003AC68C000E1CFF0036E5AE
-S31A00106A8F55001EAF06000E2F030002FF06000EBFFE0002FF069B
-S31A00106AA40033E536001EAF06000E2F030002FF06000EBFFD0095
-S31A00106AB902FF06001EAF11000E1FFD0036E536003AC3E7000E60
-S31A00106ACEA1BF000EA0AA0018AE4E000EADFF000CCEEE000CDD66
-S31A00106AE3DD000CCCE0000CDBD10018AF020002FF070018AF03A0
-S31A00106AF80002FF08000CAF6E000ECEF8000D5F7D000EAFBF0008
-S31A00106B0D02FF00000EAF5E0002FF01000EACFD000EABFF003A96
-S31A00106B22FDF0000EAFBF0002FF00000EAFBB0002FF01000EACAA
-S31A00106B37FA000EABFF000CAF6E000ECEFD000D5F7D003AFDF06F
-S31A00106B4C0000FE6B001EA20A001EA309000EAFFE0002DF150070
-S31A00106B6133E515000EA1FF000EA02D0018AB01000E2BFB000E4D
-S31A00106B761BFF0032E51A000E15FF0036E51A000EA1FE000EA0F7
-S31A00106B8B9F0018AF0B0036E515000EA1FF000EA02D0018AF01ED
-S31A00106BA0000E2F020002CF010016AF120039F7A30023FFFF00EE
-S31A00106BB539F7A80016AFF6000CAFC4000CAFB5000EA1BF000EB7
-S31A00106BCAA0BB0018AB04000E2BFC000E1BFF0036E4C2000EAF88
-S31A00106BDFFF0002FF020002FF030002FF040002FF05000CAF6F50
-S31A00106BF4000ECFFD0002FF09000D5F7F0002FF08001EA20900D5
-S31A00106C091EA3080018AF000002DF010018AF010002DF02000C37
-S31A00106C1EAF4C001A3C02000CAF5B001A7B01003A7FC00002FBD6
-S31A00106C33060002FC07000EA1BF000EA0AA0018AC31000EABFFB8
-S31A00106C48001EA209001EA308001AAE02001AAD01003A7FB9008B
-S31A00106C5D1EAE07001EAD06000C1DBF0032E4E3000C1ECF00345A
-S31A00106C72E4DF000EACFF000EABFF0033E49E000EA1FE000EA0B3
-S31A00106C879F0018AC080018AB07003A7FC0000EA1BF000EA0AA6E
-S31A00106C9C0018A832000EA9FF000EA1BD000EA0A00018AE0C0099
-S31A00106CB118AD0B0002FB000002FC01000CAF9B000CAF8C003A15
-S31A00106CC67FBE0002FB000002FC01001EAC09001EAB08000CAF0B
-S31A00106CDB5D000CAF4E003AF961001EA209001EA308001AA40242
-S31A00106CF0001AA501003AC3F6000E1CFF0036E4A0000EA1BF0075
-S31A00106D050EA0AA0018AC4F000EABFF000EA1BD000EA0A000186E
-S31A00106D1AAE0C0018AD0B003A7FB9000CAFCE000CAFBD000EA1A2
-S31A00106D2FBF000EA0BB000CAFEC0018CC01000CAFDB0018DB00FC
-S31A00106D44000C05BF0032E4AB000C14CF0030E4A200181E0100B7
-S31A00106D590CAFFC0018AB00000C7BDB000C05BF0032E4A3000C9E
-S31A00106D6E14CF0031E4A0000CAFC4000CAFB5000CAF5B000CAFA2
-S31A00106D834C0016AF0A0039F7A30023FFFF0039F7960016AFE06B
-S31A00106D98000CAF7B000CAF6C000EADFE003AE8AF003AEF0200BE
-S31A00106DAD0CAF7B000CAF6C000EADFF003AE8AF0004AF9C000E76
-S31A00106DC21FFE0036E48A0004AF9C000E1F000032E495000CAF03
-S31A00106DD77B000CAF6C000EADFE003AE6BE0016AF200039F793B0
-S31A00106DEC0023FFFF0039F7A80016AFDC0002FB22000EA1FE0016
-S31A00106E010EA09F000EA5FF000EA42D001CAF0D0002CF1F001CA4
-S31A00106E16AF0E0002CF20000EA1BF000EA0BB0018AF0D0001BF38
-S31A00106E2BCE0018AF0E0001BFCD0018AF0F0001BFCC0018AF10D3
-S31A00106E400001BFCB0018AB04000EEBBF000E2BFE001CAF01001A
-S31A00106E550E2F010002EF01000CBFBF0002EF01001F8B22000E8C
-S31A00106E6A2BFE000EEBFB000CAFFB001CAF01000E2F040002EF2C
-S31A00106E7F01000CBFBF0002EF01000CAF6C000ECCFD000D5F7B86
-S31A00106E94000EADFE003AE8AF000EAFFF0002FF23003AE3270025
-S31A00106EA90E1CFF0036E44F001F9B22001EBB22000EEBFD00025D
-S31A00106EBEFB23001EAF230002FF14001CAF090002FF1E001CAFC8
-S31A00106ED30A0002FF1F001CAF110002FF20001CAF120002FF216E
-S31A00106EE8000CAF6C000ECCFD000D5F7B003AE356001EAF220038
-S31A00106EFD36E43B001EAF1B000E2F3F0002FF1B0033E436001E2A
-S31A00106F12AF1B000E2F3F0002FF1B000EBFFE0002FF1B001EAF3E
-S31A00106F271B000EBF7F0002FF1B000E2F400002FF1B000EA1FF75
-S31A00106F3C000EA02D00191C0A00195B090018AE0E0018AD0D00ED
-S31A00106F5118AF110002FF000018AF120002FF01003AC520001E24
-S31A00106F664C1A001E5B19003A7FC00002FB1C0002FC1D000CAFA0
-S31A00106F7B6C000ECCFD000D5F7B003AE3C4000EAFFE0002FF160E
-S31A00106F90000CAF6C000ECCFD000D5F7B000EADFF003AE6BE0059
-S31A00106FA500FE6B0016AF240039F7A30023FFFF0039F796000CA9
-S31A00106FBAAFC0000CAFB1000EA8FF000EA9FF000EA3BF000EA246
-S31A00106FCFFF001AAC33000EABFF000CAFCE000CAFBD000CAFDC4F
-S31A00106FE4000E6CFE000CAFCB00037EFF00037DFF00037CFF0007
-S31A00106FF9037BFF000370FF000371FF0039F79600397FDA00169D
-S31A0010700EAF08000EAFFE00397FCD001AAF0700037FFF001AAF46
-S31A001070230600037FFF001AAF0500037FFF001AAF0400037FFF1E
-S31A0010703800397FD90016AF04000EAF9400037FFF000EAF07003D
-S31A0010704D037FFF000EAF9F00037FFF000EAF9C00037FFF0039A7
-S31A001070627FD90016AF04000CAFE0000CAFD1000CAFC8000CAF7D
-S31A00107077B9000CAF9B000CAF8C000CAF1D000CAF0E000CAFBF7D
-S31A0010708C0036E3CD000EFC7F0032E3CD000E1B700032E3D10009
-S31A001070A10E1C800032E3D1000E1D010032E3D1000E1EFF0036C1
-S31A001070B6E3D00034E3CD000EAC00000EAB800033E3C6000CAF8E
-S31A001070CB9B000CAF8C000CAF1D000CAF0E00397FD1000CAFDBF8
-S31A001070E0000CAFEC0039F7930023FFFF0039F7A80016AFFF005E
-S31A001070F50CAFC4000CAFB5001CAF120036E3B2000EABFE000E14
-S31A0010710AAC98000EADF1003AF9ED000CAF4E000ECEE8000D5F11
-S31A0010711F5D000EAFFD0002FF00000EABFE000EAC5C003A7FE0C7
-S31A001071340016AF010039F7A30023FFFF0039F79E000EA5FF00F6
-S31A001071490EA1BF000EA0480018AB00000EACFF000E1BFB0032E5
-S31A0010715EE3A5000E1CFF0036E3A1000E1BBF0032E3A0000E1CD4
-S31A00107173FF0032E3A0000EA5FE003AEA6C000E1CFF0032E39B23
-S31A00107188000E15FF0036E395000EA1BF000EA0AA0018AF61001E
-S31A0010719D36E3950000FFAF0033E3940000FEAF0039F79A002327
-S31A001071B2FFFF0004AFAF0032E384000EA1FF000EA02D0018AF69
-S31A001071C7030001BFAE0004AF9C000E1FFE0032E3840004ABBAB0
-S31A001071DC000E2BBF000E1BFF0036E3840000FEAF0023FFFF00FD
-S31A001071F104AFAF0032E378000EA1FF000EA02D0004ABAE001886
-S31A001072063B03000EA1BF000EA0AA00181B610034E3780000FE38
-S31A0010721BAF0023FFFF0039F7A80016AFFD0002FB000002FC01E2
-S31A00107230000EAFFE0002FF02000CAFDC000EABFF000EAEFF006B
-S31A001072450EADBF003A7FB9000CAFC4000CAFB5000EA1FE000E88
-S31A0010725AA063001EA201001EA300001AAC0100183C08001AAB9C
-S31A0010726F0000187B07003A7FC0000C0B5F0032E35E000C1C4F81
-S31A001072840031E35B000EAFFF0002FF02001EAC02000EABFF002D
-S31A0010729916AF030039F7A30023FFFF0039F7A80016AFFE000C67
-S31A001072AEAFC4000CAFB5001CAC1D001CAB1C000EA1FF000EA0AE
-S31A001072C32D0018AE0E0018AD0D001CAF1E0002FF00001CAF1FF9
-S31A001072D80002FF01003AC5200002EB170002EC180016AF020099
-S31A001072ED39F7A30023FFFF0039F7A80016AFFF000CAFC4000C5B
-S31A00107302AFB5003AE300000EABFE000EAC9F000EADF8003AF9E9
-S31A00107317ED000CAF4E000ECEE8000D5F5D000EAFFD0002FF000D
-S31A0010732C000EABFE000EAC5E003A7FE0000EAFFF0002EF14000D
-S31A001073410EAFFE0002EF160000FCD0000017CF0000FFC00016D8
-S31A00107356AF010039F7A30023FFFF000EA1FF000EA02D0018AB1C
-S31A0010736B01000E2BFE000E1BFF0036E303000EA3BF000EA2AAB1
-S31A001073800018AE0A0018AD09001A0D1A0032E31A001A1E1B0081
-S31A0010739534E314001A0D180032E316001A1E190031E314000EB1
-S31A001073AAABFF000EA1FF000EA02D0018AE0E000ECEAB0018AD65
-S31A001073BF0D000EDD0A000EA1BF000EA0AA00180D1C0032E3097C
-S31A001073D400181E1D0030E30400180D1E0032E30500181E1F0072
-S31A001073E931E303000EABFF000CAFBC000EABFF0023FFFF003921
-S31A001073FEF7A80016AFF6000CAFC4000CAFB5000EA1BE000EA000
-S31A001074133B0018AB02000E2BFD000E1BFF0036E272000CAF5B50
-S31A00107428000CAF4C003AE2680002FB000002FC01001CAB1900D2
-S31A0010743D0E2B7F000E1BFF0036E2E6000EA1FE000EA09F001E2E
-S31A00107452AF000002CF2D001EAF010002CF2E0033E272003AE1F3
-S31A00107467C3000EA1FE000EA09F0018AE010018AD00000EABFEFA
-S31A0010747C000EAC5E003AC40C000EA1FE000EA09F0018AF2E00D4
-S31A0010749102FF090018AF2D0002FF08000EAFFF0002FF06000204
-S31A001074A6FF07001EA001001EA100000EA8FF000EA9FF000CAF11
-S31A001074BB0F001ECF090002FF05000CAF1F001EDF080002FF04B7
-S31A001074D0000CAF8F001EDF070002FF03000CAF9F001EDF0600E2
-S31A001074E502FF02001EAF02001EBF03001EBF04001EBF050036D1
-S31A001074FAE272000CAFCE000CAFBD000CAFDC000E6CFE000CAF48
-S31A0010750FCB00037EFF00037DFF00037CFF00037BFF000370FF1A
-S31A00107524000371FF0039F79600397FDA0016AF08000CAFE00009
-S31A001075390CAFD1000CAFC8000CAFB9001CAE18001CAD17000CD6
-S31A0010754EAFDC000E6CFE000CAFCB00037EFF00037DFF00037C0B
-S31A00107563FF00037BFF001EAF0D00037FFF001EAF0D00037FFFCB
-S31A00107578001EAF0D00037FFF001EAF0D00037FFF00397FDA00A0
-S31A0010758D16AF08000CCE00000CDD11000CDC88000CDB99001E24
-S31A001075A2AF0500037FFF001EAF0500037FFF001EAF0500037FE2
-S31A001075B7FF001EAF0500037FFF000CAF9B000CAF8C000CAF1DE2
-S31A001075CC000CAF0E00397FCB0016AF040002ED170002EE180071
-S31A001075E10EA1FE000EA09F001EAC01001EAB000018AE2E0018E5
-S31A001075F6AD2D00397FDB001EAF0500037FFF001EAF0500037F56
-S31A0010760BFF001EAF0500037FFF001EAF0500037FFF00397FCB2C
-S31A001076200016AF04000EA1FE000EA09F0002CD2D0002CE2E0082
-S31A001076350EA1FE000EA09F000EAFFF0002CF290002CF2A00027D
-S31A0010764ACF2B0002CF2C0016AF0A0039F7A30023FFFF0039F72B
-S31A0010765FA80016AFF40002FB020002FC03000CAFC0000CAFB1B8
-S31A001076740018AB19000E2BC0000CAFBC000EABFF000CCCCC0043
-S31A001076890CDBBB000CAFC0000EC0AA000CAFB1000ED1BF00181F
-S31A0010769EAF220002FF070018AF210002FF06000E2F7F0036E225
-S31A001076B351000EAF000002FF050002FF04000EA1FF000EA02D0A
-S31A001076C80018AC0E000ECCA50018AB0D000EDB0B000EA3BF0012
-S31A001076DD0EA2AA001AAE28001AAD27000EAFFC0002FF00000E82
-S31A001076F2AF170002FF01003A7FBE003A7FC0000CAFCE000CAF71
-S31A00107707BD000CAFDC000E6CFE000CAFCB001ECE070002FE070B
-S31A0010771C001EDD060002FD06001EDC050002FC05001EDB04003D
-S31A0010773102FB04001EA003001EA1020018AB19000E2BBF000EC8
-S31A001077461BFF0036E1DF000EA5FE000EA49F001CAE28001CAD4B
-S31A0010775B27000EACFF000EABFF001CCE24001CDD23001CDC2227
-S31A00107770001CDB21000EAFFF00397FCD003A7FC30002FB080014
-S31A0010778502FC090002FD0A0002FE0B001CAE24001CAD23001CC8
-S31A0010779AAC22001CAB21000EAFFF00397FCD003A7FC3001EAF84
-S31A001077AF0B00037FFF001EAF0B00037FFF001EAF0B00037FFF71
-S31A001077C4001EAF0B00037FFF000E8C7F00397FD40016AF0400D3
-S31A001077D90CAFE0000CAFD1000CAFC8000CAFB9000EA3BF000EE9
-S31A001077EEA2AA001AAD2A001AAC29000EAFFE00397FD20003708C
-S31A00107803FF000371FF0039F79600397FD90016AF04000EAFFF0C
-S31A0010781800037FFF000EAFFF00037FFF000EAFFF00037FFF004A
-S31A0010782D0EAF8800037FFF00397FD90016AF0400397FD1000C7B
-S31A00107842AFDB000CAFEC003A7FC0000CAFCE000CAFBD000CAFB5
-S31A00107857DC000E6CFE000CAFCB001ECE070002FE07001EDD0631
-S31A0010786C0002FD06001EDC050002FC05001EDB040002FB0400EC
-S31A001078811EA003001EA1020018AE1B0018AD1A000EACFF000ED3
-S31A00107896ABFF00037EFF00037DFF00037CFF00037BFF001EAF56
-S31A001078AB0B00037FFF001EAF0B00037FFF001EAF0B00037FFF74
-S31A001078C0001EAF0B00037FFF00397FDA0016AF080002FB0400E4
-S31A001078D502FC050002FD060002FE07003AE15A0016AF0C0039FA
-S31A001078EAF7A30023FFFF0039F7A80016AFF8000EA5FE000EA4C0
-S31A001078FF9F001CAF290002FF00001CAF2A0002FF01001CAF2BDD
-S31A001079140002FF02001CAF2C0002FF03000EA1BF000EA0FF002F
-S31A0010792918AC33000EABFF000CAFCE000CAFBD000CAFDC000EDE
-S31A0010793E6CFE000CAFCB00037EFF00037DFF00037CFF00037B33
-S31A00107953FF001EAF0700037FFF001EAF0700037FFF001EAF078C
-S31A0010796800037FFF001EAF0700037FFF00397FDA0016AF0800BF
-S31A0010797D0EAFFF00397FCD0018AF0300037FFF0018AF02000387
-S31A001079927FFF0018AF0100037FFF0018AF0000037FFF00397F03
-S31A001079A7D90016AF04000EAF0700037FFF000EAFCB00037FFFC5
-S31A001079BC000EAF9800037FFF000EAF7D00037FFF00397FD50082
-S31A001079D116AF0400397FCE000EA1BF000EA0BB0018AF0000039B
-S31A001079E67FFF0018A0010016A101000EA8FF000EA9FF000370A9
-S31A001079FBFF000371FF0039F79600397FCB0016AF040002FB04DC
-S31A00107A100002FC050002FD060002FE07001CAE2E001CAD2D004E
-S31A00107A250EACFF000EABFF000CAFCB000CAFDC000CAFED000EF2
-S31A00107A3AAEFF000EAFFF00397FCD003A7FC300397FCE001ECE45
-S31A00107A4F070002FE03001EDD060002FD02001EDC050002FC0102
-S31A00107A64001EDB040002FB00001EAE03001EAD02001EAC010096
-S31A00107A791EAB00003AE15A0002EB2D0002EC2E0016AF08003968
-S31A00107A8EF7A30023FFFF0039F796000CAFE0000CAFD1000CAF6A
-S31A00107AA3C8000CAFB9000E19FF0032E14E000E18FF0032E14E6F
-S31A00107AB8000E11F00032E14E000E10000030E13E000370FF0054
-S31A00107ACD0371FF0039F796000370FF000371FF0039F796003971
-S31A00107AE27FDA0016AF08000CAFDE000CAFCD000CAFBC000EAB02
-S31A00107AF7FF000CAFDB000CAFEC0033E13C000EAC00000EAB0065
-S31A00107B0C0039F7930023FFFF0039F796000EABFE000EACD7005C
-S31A00107B210EADF7003AF9ED003ADFC6000E1CFF0036E129000E11
-S31A00107B36A08F000EA17F0018AB0C000EBBFA0002CB0C000EACA2
-S31A00107B4BFF000EABFF003ADFB90033E111003ADFF2000E1CFF2D
-S31A00107B600036E11C000EA08F000EA17F0018AB0C000EBBFA00CA
-S31A00107B7502CB0C000EACFF000EABFF000EADFF003ADF81003314
-S31A00107B8AE111003ADFA0000E1CFF0036E111000EA08F000EA1E8
-S31A00107B9F7F0018AB0C000EBBFB0002CB0C0018AB02000E2B04CE
-S31A00107BB40002CB020039F7930023FFFF0039F7A8000EA5FE006A
-S31A00107BC90EA4D7001CAF070036E0DF000EA1BE000EA03B0018D3
-S31A00107BDEAB04000E2BF8000E1BFF0036E0DF000E1BFB0030E04B
-S31A00107BF3DF001CAF000032E0ED003AE0BE000CAFC50036E0FA56
-S31A00107C08003ADB48003AE0BE000CAFC5000EA1BE000EA03B0046
-S31A00107C1D18AB04000E2BF7000E1BFF0036E0F1003ADFA0000E4F
-S31A00107C321CFF0036E0EF000E15FF0036E0DF003AE0A60033E01D
-S31A00107C47DF003ADFA0000E1CFF0032E0DF001CAF01001CBF02B7
-S31A00107C5C0036E0E0001DBF020002EF02001DFF010002EF010027
-S31A00107C711CAF01001CBF020032E0DF003AE08D0039F7A30023B1
-S31A00107C86FFFF0039F79E000CAFB5003ADFA0000E1CFF0036E09F
-S31A00107C9BCA000E15FF0036E0D0000EA08F000EA17F0018AB02BC
-S31A00107CB0000EBBFB0002CB020033E0C0000EA08F000EA17F00D8
-S31A00107CC518AB02000E2B040002CB020033E0C0000E15FF003698
-S31A00107CDAE0C4000EAC00000EAB00000EADFE0033E0C1000EAC21
-S31A00107CEFFF000EABFF000EADFF003AE00F0039F79A0023FFFFE5
-S31A00107D04000EACFF000EA08F000EA17F0018AB00000E2BFE0036
-S31A00107D190C1BCF0032E0A80018AB00000EBBFE0002CB00001820
-S31A00107D2EAB06000EBBFE0002CB060018AB03000E2FFE000CAF23
-S31A00107D43FC0018AB06000E2B010002CB060018AB00000E2B0146
-S31A00107D580002CB00000EABFF0023FFFF0039F796000EA1FE00E7
-S31A00107D6D0EA0D7000EAFFE0002CF00003AE07C003ADFA0000E7D
-S31A00107D821CFF0036E09B003ADF930033E0970004ACAC0004ABA9
-S31A00107D97AD000EADFE003AE00F000EA3FE000EA2D7000EA1BE8F
-S31A00107DAC000EA0000018AF000002DF02000EAFFF0002DF0100B6
-S31A00107DC139F7930023FFFF0039F796000EA1BE000EA03B00187F
-S31A00107DD6AB04000E2BF7000E1BFF0032E082000EACFF000EAB75
-S31A00107DEBFF000EADFF003AE00F000EA1FE000EA0D7000EAFFF9D
-S31A00107E000002CF000039F7930023FFFF0039F7A80016AFFF0006
-S31A00107E150EA4FF000EA5FF000EA1BE000EA03B0018AB03000EB5
-S31A00107E2A2B7F000E1BFF0036E06D000EA1FF000EA02D0018AF88
-S31A00107E3F1E0002FF000033E069000EA1FF000EA02D0018AF032A
-S31A00107E540002FF00003ADFA0000E1CFF0036E05A001EAF0000E3
-S31A00107E6901BFAC000E2F7F0036E061000EAF000001BFAD001E07
-S31A00107E7EAF00000E0FA50034E0120000FFAD00009BAC0033E03C
-S31A00107E9312003ADFC6000E1CFF0036E02C001EAE00000EADFFE2
-S31A00107EA8000EEEFB00037FFF000EEDFB000CBFED0016AE0100C4
-S31A00107EBD0CAFE4000CAFD50033E01E000EAF9B00037FFF000E53
-S31A00107ED2AFFF00037FFF000CAFCE000CAFBD00397FD70016AF01
-S31A00107EE7020004A0AC0004A1AD000EA8FF000EA9FF000D1FEE47
-S31A00107EFC00037EFF000CAF9B000CAF8C000CAF1D000CAF0E009D
-S31A00107F110371FF001EA1010036E032000DAFEE000DEFDD000D3A
-S31A00107F26EFCC000DEFBB000DBF110032E0380016A102000DBF12
-S31A00107F3BEF0001BFAC000DFFDF0001BFAD0033E012000EA1BED6
-S31A00107F50000EA03B0018AB04000E2B0F000E1BFF0036E01E00B2
-S31A00107F6518AD04000EEDEF001EAC00000EABFF001EED00000CA5
-S31A00107F7AAFFE000CCCE4000CDBD50000FFAD0000FEAC000EACA7
-S31A00107F8F23000EABFA000C15BF0032E017000C14CF0031E04D9B
-S31A00107FA4000ECC63000DFFBB000CBCBF0032E01A0016AF010035
-S31A00107FB939F7A30023FFFF0039F7A80016AFFF000CAFC4000C82
-S31A00107FCEAFB50002FD00003ADFC6000E1CFF0036E003000CAF49
-S31A00107FE35B000CAF4C003ADFB90033DFF5000EA1BE000EA03BE2
-S31A00107FF80018AB04000E2BF7000E1BFF0036DFF9000EACFF0078
-S31A0010800D0EABFF000EADFF003ADF81000CAF5B000CAF4C001E01
-S31A00108022AD00003ADF810016AF010039F7A30023FFFF000EAE76
-S31A00108037FF000EADFF000EA1BE000EA03B0018AB04000E2BF817
-S31A0010804C000ECB02000E1BFE0030DFE7000EAEFE000EADFF009D
-S31A001080610CAFDB000CAFEC0023FFFF0016AFFF000EFADF000CDF
-S31A00108076AFFB0002FB00000E2A20000EFADF0032DFE0000EA357
-S31A0010808BFE000EA2D7001AAF03001ABF040036DFCA000EA08F80
-S31A001080A0000EA17F0018AB02000E8BFE0002CB02001B6D0300D1
-S31A001080B51B4E040002DD030002DE040018AB02000E8BFE00020F
-S31A001080CACB02000CBEDF0032DFD6001EAB00000CBABA0016AF20
-S31A001080DF010023FFFF000EAEFF000EADFF000EA1BE000EA03B89
-S31A001080F40018AB04000E2BF8000E1BFD0032DFBC000EAEFE00BC
-S31A001081090EADFF000CAFDB000CAFEC0023FFFF000379FF000EAA
-S31A0010811E2CF0000EABFF000D6FBD000D4FCE000D8FE9000E2943
-S31A00108133F9000EECFB000CAFFC000E2CFB000E2EFE000CAFEB67
-S31A00108148000CBCBC000EA08F000EA17F0018AB02000E2B05001A
-S31A0010815D0CBBCB0002CB020018AB00000E2B06000CBB9B000230
-S31A00108172CB000016A9010023FFFF000EAEFF000EADFF000EA112
-S31A00108187BE000EA03B0018AB04000E2BF8000E1BFE0032DF9660
-S31A0010819C000EAEFE000EADFF000CAFDB000CAFEC0023FFFF00E6
-S31A001081B10EA1FE000EA0D70004AFAC0002CF05000EA08F000EF1
-S31A001081C6A17F0018AB02000EBBFB0002CB02000EA06F000EA14A
-S31A001081DB7F0018AB00000E2B040002CB000018AB01000EBBFBA5
-S31A001081F00002CB010023FFFF0039F796000EA1FE000EA0D7007D
-S31A0010820502CB030002CC04000CBCBF0032DF77000EAF000002DE
-S31A0010821ACF030002CF04000E1DFF0036DF70000EA08F000EA1F7
-S31A0010822F7F0018AB02000E2B050033DF6C000EA08F000EA17FB9
-S31A001082440018AB02000EBBFB0002CB02003ADFE40039F79300F7
-S31A0010825923FFFF0039F796003ADC80003ADC7C000E1CFE00368D
-S31A0010826EDF670039F7930023FFFF0039F7A80016AFFB000EA570
-S31A00108283FF000EA42D001CAF0E000ECFAB0002FF04001CAF0DB4
-S31A00108298000EDF0A0002FF03003ADF210002FC02001EAC0400B8
-S31A001082AD1EAB03003ADF0D000E1CFF0036DF4A001CAF0F000E44
-S31A001082C22F010002EF0F000EAFF70002FF020033DF34001EAB9B
-S31A001082D702000E2BF7000E1BFF0032DF34000EA1BE000EA06A58
-S31A001082EC0018AE070018AD060018AF080002FF000018AF09002F
-S31A0010830102FF01001EAC04001EAB03003AF7E3000E1CFF003246
-S31A00108316DF34001CAF0F000E2F010002EF0F000EAFFB0002FF58
-S31A0010832B02000EA1FF000EA01E001EAC02000E2CF30018AB00EF
-S31A00108340000E2B0C000CBFCF0002CF00003ADEE5000CAFCD00DD
-S31A001083550EACFF000EABFF000E1DFF0032DF24000EACFE000E67
-S31A0010836AABFF0016AF050039F7A30023FFFF0039F79E000EA103
-S31A0010837FFF000EA01E0018A500000E25F3000EA1FF000EA02D9C
-S31A001083940018AC0E000ECCAB0018AB0D000EDB0A000E15FF0082
-S31A001083A936DF10003ADEF8000E1CFF0036DF10000E250C000CDB
-S31A001083BEAF5C0039F79A0023FFFF0039F7960016AFFE000EA166
-S31A001083D3BE000EA06A0018AE010018AD000018AF020002FF0053
-S31A001083E80018AF030002FF01003AF7E3000CAFCD000EACFF0049
-S31A001083FD0EABFF000E1DFF0032DEFB000EACFE000EABFF0016E2
-S31A00108412AF020039F7930023FFFF0039F7960016AFFE000EA172
-S31A00108427BE000EA06A0018AE010018CE050018AD000018DD04E4
-S31A0010843C0018AF0300183F050002FF010018AF0200187F040089
-S31A0010845102FF00003AF7E3000EABFF0016AF020039F793002386
-S31A00108466FFFF0004ABBA000EEBFD000CAFBC000EABFF000E8CC5
-S31A0010847BFE0023FFFF0039F7A80016AFFD000EAFFF0002FF025E
-S31A001084900004AF950036DEC30004AB95000E2BFD000E1BFF0000
-S31A001084A536DECC000EABFF000EACE0000EADDF003AFA16003A5C
-S31A001084BADB83000EABFF000EACE0000EADDF003AFA07003AFFD9
-S31A001084CF76000EA06F000EA17F000EAF020002CF00000E2A01F8
-S31A001084E40004ACAA0004ABAB0033DEB1003ADB83003ADA9500B6
-S31A001084F901BBAB0001BCAA000EFADF000CAFFD0002FD00000EDE
-S31A0010850E2A20000EFADF0032DEBC000EA1FF000EA00400191FAD
-S31A00108523260002CF260002CB270002CC28001EAD00000CBADABB
-S31A00108538000EAEFE000EADFF003ADA870004A0E40004A1E500F7
-S31A0010854D18AB08000E2B7F000E1BFF0036DEA2000EA1FF000EE6
-S31A00108562A02D0018AF13000EBFF70002CF130033DE9F003ADCD9
-S31A0010857712003ADC2E003AE10F000EA1BE000EA03B0018AB033D
-S31A0010858C000E2BEF000E1BFF0036DE7E000EA3FF000EA22D0055
-S31A001085A11AAB01000E2BEF000E1BFF0036DE7E000EA06F000EDC
-S31A001085B6A17F0018AB03000E2BFC000E1BFF0032DE7E001AAC03
-S31A001085CB12001AAB11003A7FC0000EA1BE000EA02F00180B02B5
-S31A001085E00032DE8500181C030034DE7E0004ACAA0004ABAB0060
-S31A001085F5196D0A000CAFDE000EADFF003ADA87000EA06F000EB2
-S31A0010860AA17F0018AB03000E2BFC000E1BFF0032DE47000EA5F8
-S31A0010861FFF000EA42D001CAB00000E2BF3000E1BFF0032DE47E0
-S31A00108634001CAC12001CAB11003A7FC0000EA1BE000EA02F00A6
-S31A00108649180B020032DE6A00181C030030DE47000EA1BE000E60
-S31A0010865EA03B0018AB01000E2BBF000E1BFF0036DE47001CAB10
-S31A0010867300000E2BEF000E1BFF0032DE47000EABFF000EAC2C97
-S31A00108688000EADEF003AFA16000EA1BE000EA02F0018AF0A00B8
-S31A0010869D0E1FFE0034DE5200051F940001BF94000E1FFE0032BA
-S31A001086B2DE4F000EAFFE0002FF020033DE3D000EA1BE000EA049
-S31A001086C72F0004AF9400181F0A0032DE3D000EAF000002FF02C4
-S31A001086DC0033DE3D000EA06F000EA17F000EAF030002CF030046
-S31A001086F10EAF000002FF02000EABFF000EAC2C000EADEF003A1C
-S31A00108706FA07001EAF02000E1FFE0032DE380004AF950032DEAD
-S31A0010871B33001EAF02000E1F000032DE310004AF950032DE313A
-S31A00108730000EAFFF0002FF02001EAF02000E1FFE0032DE0A004B
-S31A001087450EFADF000CAFFB0002FB010000FE95000E2A20000E75
-S31A0010875AFADF0032DE2A000EA06F000EA17F000EAF020002CF06
-S31A0010876F000018AB01000EBBFD0002CB01000EA09F000EA17F0C
-S31A001087840018AB00000EBBF80002CB00000EAF000002CF0100EA
-S31A0010879918AB00000EBBF80002CB00000EA0BF000EA17F000EBB
-S31A001087AEAFFF0002CF00000EA24F000EA37F000EA1BE000EA0D7
-S31A001087C33B0018AB00000E2BF80002DB000033DDDE001EAF02C2
-S31A001087D8000E1F000032DDDC000EFADF000CAFFB0002FB0100C3
-S31A001087ED00FF950000FF940000FF93000E2A20000EFADF003237
-S31A00108802DE01000EA26F000EA37F001AAB01000E2B020002DB3F
-S31A0010881701000EA09F000EA17F000EAF000002CF01000EAF0866
-S31A0010882C0002DF00000EA04F000EA17F000EAFFF0002CF000088
-S31A001088410EAF030002DF03000EA2BF000EA37F000EAFFC00020E
-S31A00108856DF00000EA1FF000EA02D0018AB00000E2BF7000E1B73
-S31A0010886BFF0032DDE1000EAFFD0002DF000004AFE0000E2F0187
-S31A001088800001BFE0001EAB01000CBABA0004AF9C0032DDBC00C9
-S31A0010889504AF95000E1FFE0032DDBC000EFADF000CAFFB0002DB
-S31A001088AAFB01000E2A20000EFADF0032DDD4000EA1BE000EA06A
-S31A001088BF2F0018AF0B0036DDC70018AF0B00041FA10034DDC14B
-S31A001088D400051FA10001BFA10033DDBE000EA1FF000EA02D00FC
-S31A001088E918AB01000E2BDF000E1BFF0036DDBE0004AFE0000EEE
-S31A001088FEBFFE0001BFE0001EAB01000CBABA0004AF950036DD4D
-S31A00108913A6000EA1BE000EA02F0018AF09000E1FFE0034DDA697
-S31A0010892800051F930001BF93000E1FFE0032DDAD0004AF9500EB
-S31A0010893D0E2F020001BF950033DDA60004AF9300181F0900350A
-S31A00108952DDA60000FF930004AF95000EBFFD0001BF950000FF7F
-S31A00108967A00000FF9F0000FF9E0000FF9D0004A0E40004A1E55C
-S31A0010897C0018AF08000EBF7F0002CF080016AF030039F7A30041
-S31A0010899123FFFF0039F7A80016AFF4000EABEF003A7FE20002C4
-S31A001089A6FB060002FC07000EABEE003A7FE20002FB080002FC5B
-S31A001089BB09000EABED003A7FE20002FB0A0002FC0B000EABFE80
-S31A001089D0000CAFBC003ADB7E000EABFC003AF78C003AF7860049
-S31A001089E502FB020002FC030002FD040002FE05000EABFF000E99
-S31A001089FAACFE003ADB7E001EAE0500043E85001EAD0400047D2D
-S31A00108A0F86001EAC0300047C87001EAB0200047B88000ECE7FB5
-S31A00108A24000D5FDD000D5FCC000D5FBB000CAFDE000CAFCD005E
-S31A00108A390CAFBC000E6BFE000CAFE4000CAFD5000EFD7F003635
-S31A00108A4EDD69000EA4FF000EA5FF001E15080032DD66001E1472
-S31A00108A63090030DD56001EAF080002FF00001EAF090002FF01CE
-S31A00108A78001EAC07001EAB06000EAE00000EAD00003A7FBD0046
-S31A00108A8D0CAF5D000CAF4E003A7FC8000CAFC4000CAFB50033FA
-S31A00108AA2DD4B000CAF4E001E3E09000CAF5D001E7D08001EAC8E
-S31A00108AB70B001EAB0A003A7FC8000CAFC4001EC407000CAFB55D
-S31A00108ACC001ED506000EA1BF000EA0FF0018AE0F0018AD0E00C3
-S31A00108AE10EAFEC0002FF00000EAF770002FF01000CAF5B000C68
-S31A00108AF6AF4C003A7FBD000CAFC4000CAFB5003AF9F7000CAF10
-S31A00108B0BCE000EADFF000EA1BD000EA0A00018AF1E0002FF0116
-S31A00108B20000EAFFF0002FF00000CAF5B000CAF4C003A7FBD00DA
-S31A00108B350CAFCE000CAFBD000EABFE000EACDB003AFA34000E52
-S31A00108B4AA1FF000EA02D0018AF250018BF260036DCFB000EACD5
-S31A00108B5F7B000EABFC0018AE260018AD25000E0DF10032DD21A9
-S31A00108B74000E1ECF0030DD16000EACAD000EAB01000E0DF70085
-S31A00108B8932DD1B000E1E020034DD16000CAFEC000ECCAB000C0A
-S31A00108B9EAFDB000EDB0A000CAFC8000EC8F9000DFFB9000EA169
-S31A00108BB3BF000EA0FF0018AE2E000EADFF000CAF9B000CAF8CE0
-S31A00108BC800397FDD000EAFFB0002FF00000EABBF000EACD90029
-S31A00108BDD3A7FBC000EA1BF000EA0FF0018AF3000037FFF00184D
-S31A00108BF2AF2F00037FFF000CAFCE000CAFBD00397FD80016AFA3
-S31A00108C0702000C4E44000C5D55000EA1FE000EA0CF0002C500F3
-S31A00108C1C0002C4010016AF0C0039F7A30023FFFF0039F7A800C9
-S31A00108C310EA4FA000EA1BE000EA03B0018A501000E25FE000E19
-S31A00108C4615FF0036DCCB000CAF4B003AF78C003AF786000CAFDD
-S31A00108C5BDE000CAFCD000CAFBC000E6BFE00043E8600047D87CA
-S31A00108C70000CAFDB000CAFEC000EADFF003AF762000CAFCE00C6
-S31A00108C850CAFBD000EABFF000EAC08003AFA34000EA4BE000EEC
-S31A00108C9A2A20000EFADF0032DCD9000EA08F000EA17F0018AB69
-S31A00108CAF02000EBBFD0002CB02000EA0CF000EA17F0018AB0194
-S31A00108CC4000EBBF70002CB01000EBADF000EABCF003AF78C000B
-S31A00108CD90EABCF003AF790000CAF4B003AF790000EABF8003A75
-S31A00108CEEF775000CAFDE000CAFCD000CAFBC000E6BFE000E15BD
-S31A00108D03FF0036DCAD000E2A20000EFADF0032DCBD000EA0CF00
-S31A00108D18000EA17F0018AB01000E2B080002CB010004AF8200FA
-S31A00108D2D36DCAE000EA08F000EA17F0018AB02000E2B020002EE
-S31A00108D42CB02000EBADF00043E8600047D87000CAFDB000CAF71
-S31A00108D57EC000CAF5D003AF762000CAFCE000CAFBD000EA1FEAC
-S31A00108D6C000EA0CF0002CD040002CE05000E15FF0032DC9C00EB
-S31A00108D810EABFF000EAC08003AFA340039F7A30023FFFF0039B8
-S31A00108D96F7960016AF010000FF950000FF940000FF93003AD993
-S31A00108DAB6F0004AFDE0032DC90003AFE6F003ADC260000FF9C81
-S31A00108DC0000EA0BF000EA17F000EAFFD0002CF000004AF9C0013
-S31A00108DD50E1FFE0032DC86003ADF680033DC8B003ADC80003AC9
-S31A00108DEADF61003ADC7C0033DC8B0039F7930023FFFF0039F7DE
-S31A00108DFF96003ADEDF0039F7930023FFFF0039F79E000EA1FF5C
-S31A00108E14000EA02D0018AE120018AD110004A59C000EA1BE00F8
-S31A00108E290EA02300180D020032DC7100181E030035DC6C000EE3
-S31A00108E3EA5FE0000FFA90000FFA80033DC35000EA1BE000EA0B8
-S31A00108E532300199C010019CB00000C0DBF0032DC65000C1ECFF3
-S31A00108E680030DC60000EA5000000FFA90000FFA80033DC35002D
-S31A00108E7D0E15000032DC48000D9FEC000DCFDB000EA1BE000E87
-S31A00108E92A02300180B040032DC5700181C050030DC48003AE3BC
-S31A00108EA78300051FA80001BFA800055FA90001BFA90004ACA81B
-S31A00108EBC000EABFF000EA1BE000EA02300181B060032DC4A0004
-S31A00108ED1181C070035DC350033DC36000E15FE0032DC35000E3E
-S31A00108EE6A1BE000EA02300180D040032DC4100181E050030DC72
-S31A00108EFB35003AE39200051FA80001BFA800055FA90001BFA9BE
-S31A00108F10000EA1BE000EA0230004AFA800181F080035DC350018
-S31A00108F250EA5FF0001B59C000E15FE0032DC310000FF80000C32
-S31A00108F3AAF5C0039F79A0023FFFF0039F796003ADAD1003ADA57
-S31A00108F4FDB003AD924003AD96A003ADB440039F7930023FFFF2B
-S31A00108F640039F7A8000EA1BF000EA0FF0018AF080001BF9B00C5
-S31A00108F7918AF090001BF9A000EA4BF000EA57F000EAFFD000244
-S31A00108F8EEF00003AD979000EAFFF0002EF00000EA06F000EA1C4
-S31A00108FA37F000EAF080002CF000039F7A30023FFFF0039F7A8C2
-S31A00108FB80016AFFE000EA1BF000EA0FF0018AF0300037FFF0065
-S31A00108FCD18AF0200037FFF0018AF0100037FFF0018AF0000031C
-S31A00108FE27FFF0004AE9D0004AD9E0004AC9F0004ABA000397FF2
-S31A00108FF7D90016AF04000CAFE0000CAFD1000CAFC8000CAFB98F
-S31A0010900C000CAF9B000CAF8C000CAF1D000CAF0E000CAFBF0081
-S31A0010902136DBE8000EFC7F0036DBE8000E1B700032DBEC000E09
-S31A001090361C000032DBEC000E1D010032DBEC000E1EFF0036DB99
-S31A0010904BE80034DBE8000EA4FE000EA57F0033DBE1000CAF9BF4
-S31A00109060000CAF8C000CAF1D000CAF0E003A7FBF000CAFC40006
-S31A001090750CAFB5000CAF5B000CAF4C003A7FC0000EA1BF000E4E
-S31A0010908AA0FF0018AE32000EADFF000C0BDF0032DBD7000C1C68
-S31A0010909FEF0031DBD4000EA4FF000EA5FF0018AF310002FF017A
-S31A001090B4000EAFFF0002FF00000EABFF000EAC92000CAF5D00B8
-S31A001090C90CAF4E003AF961000EABFF000EAC1C000CAF5D000C2D
-S31A001090DEAF4E003AFA34000EABFF000EAC92003AF907000CAF09
-S31A001090F3CE000CAFBD000EABFF000EAC22003AFA340016AF0249
-S31A001091080039F7A30023FFFF0039F7960016AFFC000CAFCD0039
-S31A0010911D0CAFBC000EAFFE00397FD20002FB000002FC0100026D
-S31A00109132FD020002FE03000EA3BF000EA2FF001AAC0A000CAF66
-S31A00109147CB000E6BFE0004CC9A0004DB9B000CAFCD000CAFBCD8
-S31A0010915C000EAFFE00397FD2000CAFE0000CAFD1000CAFC800F9
-S31A001091710CAFB9001AAD38001AAC37000EAFFE00397FD200031B
-S31A001091867EFF00037DFF00037CFF00037BFF000CAF9B000CAFB6
-S31A0010919B8C000CAF1D000CAF0E00397FD50016AF04001EAF0356
-S31A001091B000037FFF001EAF0300037FFF001EAF0300037FFF0071
-S31A001091C51EAF0300037FFF000E8C7F00397FD40016AF040016AA
-S31A001091DAAF040039F7930023FFFF0001BB8D0001BC8C0023FF1F
-S31A001091EFFF0039F796003ADD9A003AD98D0039F7930023FFFF5B
-S31A001092040039F79E000CAFC50036DB78000E2A20000EFADF0029
-S31A0010921932DB7B000E1BFF0036DB62000EA1BE000EA03B001899
-S31A0010922EAB00000E2BF7000E1BFF0032DB6A000EA0CF000EA16F
-S31A001092437F0018AB01000EBBFB0002CB010033DB4D000EA08F93
-S31A00109258000EA17F0018AB0C000EBBEF0002CB0C0018AB00009A
-S31A0010926D0EBBFE0033DB4F000EA1BE000EA03B0018AB00000E8B
-S31A001092822BF7000E1BFF0032DB56000EA0CF000EA17F0018ABA6
-S31A0010929701000E2B040002CB010033DB4D000EA08F000EA17FDA
-S31A001092AC0018AB0C000E2B100002CB0C0018AB00000E2B0100A9
-S31A001092C102CB00003ADB48000E15FF0036DB4A000EBADF0039FB
-S31A001092D6F79A0023FFFF000EAB69000DBFBB0032DB470023FF9C
-S31A001092EBFF0039F7A80016AFFE000EA5FF000EA42D001CAC0A5B
-S31A0010930000043C98001CAB0900047B99000EAFFD0002FF0000C7
-S31A001093150EAFFE0002FF01000EADBF000EAEC6003ADB12001C31
-S31A0010932AAC0E00043C96001CAB0D00047B97000EAFFE0002FFE2
-S31A0010933F00000EAFFE0002FF01000EADBF000EAEC3003ADB1226
-S31A00109354001CAC12001CAB11000EAFFB0002FF00000EAF7E0048
-S31A0010936902FF01000EADBF000EAEC0003ADB120004AB89000E74
-S31A0010937E2BFC000E1BFF0036DB150004AB89000E2BFB000E1BBA
-S31A00109393FF0036DB15000CAF5B000CAF4C000EADF7003AFA1671
-S31A001093A80016AF020039F7A30023FFFF0039F7A80016AFFF0043
-S31A001093BD0CAFC8000CAFB9000CAFE4000CAFD5003A7FC0000CDA
-S31A001093D2AFC0000CAFB1000CAF19000CAF08001EAB0500042B01
-S31A001093E789000E1BFF0036DAEC000EACFF001CAE01001CAD0061
-S31A001093FC001EAB06000E2B7F000C1BCF0036DAF7000C01DF00D6
-S31A0010941132DAF9000C10EF0034DAF20033DAF3000C01DF003202
-S31A00109426DAF4000C10EF0031DAF2000EACFE000E1CFF0036DA54
-S31A0010943BE0001F8B0500042F890001BF890033DAE0001EAF06B2
-S31A001094500002FF00000CAF9B000CAF8C000CAF5D000CAF4E0032
-S31A001094653AD0A3000CAFCE001EAB05000EACFF000EAD8A003AA0
-S31A0010947AD0B300051F750001BF750016AF010039F7A30023FFBB
-S31A0010948FFF0039F796000EA1FE000EA0CF0018AE050018AD042F
-S31A001094A4000EABFF000EAC20003AFA340039F7930023FFFF00BF
-S31A001094B939F7A80016AFFE000EA5FE000EA4CF001CAE01001CD4
-S31A001094CEAD00000EA1BF000EA0FF0018AF310002FF01000EAFF4
-S31A001094E3FF0002FF00000EABFF000EAC8E003AF961001CAE01FF
-S31A001094F8001CAD00000EABFF000EAC24003AFA34000EABFF00CA
-S31A0010950D0EAC8E003AF907000CAFCE000CAFBD000EABFE000EEB
-S31A00109522ACE0003AFA34000EA1FF000EA02D0018AC120018AB08
-S31A0010953711001CAE01001CAD00003AF83F000CAFC4000CAFB504
-S31A0010954C003AF9F7000EA1BD000EA0A0000CAFCD0018ED1F0064
-S31A001095610CAFFE0018AF200002FF01000EAFFF0002FF00000C74
-S31A00109576AF5B000CAF4C003A7FBE000CAFC4000CAFB5000EAB9A
-S31A0010958BFF000EAC12000CAF5D000CAF4E003AFA340016AF029A
-S31A001095A00039F7A30023FFFF0039F796000E2A20000EFADF00A7
-S31A001095B532DA94000EA06F000EA17F0018AB01000EBBF700021A
-S31A001095CACB01003AFF760004ACD90004ABDA0039F7930023FF04
-S31A001095DFFF0039F7A80016AFF40002FD040002FE05003ADBBBF9
-S31A001095F4000E8C7F0002FC090002FB080002FD0A0002FE0B0013
-S31A0010960904AF9D00037FFF0004AF9E00037FFF0004AF9F00033E
-S31A0010961E7FFF0004AFA000037FFF001EAE0F001EAD0E001EAC51
-S31A001096330D001EAB0C00397FD40016AF040001BBA00001BC9F1D
-S31A001096480001BD9E0001BE9D000EA5BF000EA4FF001CAF03004E
-S31A0010965D037FFF001CAF0200037FFF001CAF0100037FFF001CAA
-S31A00109672AF0000037FFF001EAE0F001EAD0E001EAC0D001EAB49
-S31A001096870C00397FD90016AF04003A7FBF000EA1FE000EA0CFB0
-S31A0010969C0002CB020002CC03001EAE0B001EAD0A001EAC090084
-S31A001096B11EAB0800397FD1000CAFDB000CAFEC003A7FC0001C62
-S31A001096C6AE34000EADFF000C0BDF0032DA49000C1CEF0030D972
-S31A001096DBF10004AFA400037FFF0004AFA500037FFF0004AFA669
-S31A001096F000037FFF0004AFA700037FFF001EAE0F001EAD0E003F
-S31A001097051EAC0D001EAB0C00397FD40016AF040001BBA70001D4
-S31A0010971ABCA60001BDA50001BEA4000EAFFF0002FF080002FF36
-S31A0010972F090002FF0A0002FF0B00051FA20001BFA200055FA3C0
-S31A001097440001BFA30004ACA20004ABA3001C1B350032DA280053
-S31A001097591C1C360035D9D9000EAFFF00037FFF000EAFFF000394
-S31A0010976E7FFF000EAFFF00037FFF000EAF7900037FFF0004AEAC
-S31A00109783A40004ADA50004ACA60004ABA700397FD90016AF04BB
-S31A00109798000CAFE0000CAFD1000CAFC8000CAFB9001CAD360089
-S31A001097AD1CAC35000EAFFF00397FD200037EFF00037DFF00034C
-S31A001097C27CFF00037BFF000CAF9B000CAF8C000CAF1D000CAF54
-S31A001097D70E00397FD50016AF0400397FD1000CAFDB000CAFEC3D
-S31A001097EC003A7FC0001CAE33000EADFF000C0BDF0032D9FE0023
-S31A001098010C1CEF0034D9F40004AFA70002FF080004AFA6000266
-S31A00109816FF090004AFA50002FF0A0004AFA40002FF0B0033D94D
-S31A0010982BDF000000A3000000A20033D9DD0004AFA400037FFF2D
-S31A001098400004AFA500037FFF0004AFA600037FFF0004AFA700F0
-S31A00109855037FFF001EAE0F001EAD0E001EAC0D001EAB0C0039CE
-S31A0010986A7FD40016AF040002FB080002FC090002FD0A0002FEA2
-S31A0010987F0B0000FFA30000FFA20000FFA70000FFA60000FFA581
-S31A001098940000FFA4000EA1BF000EA0FF0018AF0700037FFF009C
-S31A001098A918AF0600037FFF0018AF0500037FFF0018AF0400032B
-S31A001098BE7FFF001EAE0F001EAD0E001EAC0D001EAB0C00397FE9
-S31A001098D3D90016AF040002FB080002FC090002FD0A0002FE0BA8
-S31A001098E8001EAD05001EAC04000EAFFE00397FD2001EAF0B009A
-S31A001098FD037FFF001EAF0B00037FFF001EAF0B00037FFF001EEF
-S31A00109912AF0B00037FFF00397FD90016AF040004AFB200037FAE
-S31A00109927FF0004AFB300037FFF0004AFB400037FFF0004AFB5DF
-S31A0010993C00037FFF00397FD90016AF040002FB080002FC090019
-S31A0010995102FD0A0002FE0B000EA5FE000EA4C8001CAF000002DF
-S31A00109966FF06001CAF010002FF070002FB000002FC010002FD02
-S31A0010997B020002FE03000CAF5B000CAF4C003A7FC2000EA1FE77
-S31A00109990000EA0CF001CAF01001E3F070002CF06000EAFFF006C
-S31A001099A502FF00001EAE0B001EAD0A001EAC09001EAB08003A0C
-S31A001099BACD4B0016AF0C0039F7A30023FFFF0039F7960016AF1A
-S31A001099CFFA003ADCF4003AF7860002FB000002FC010002FD02B5
-S31A001099E40002FE03000EA1BE000EA03B0018AF080002FF04002B
-S31A001099F918AF090002FF05000EABFF000EAC88003AF9480016E2
-S31A00109A0EAF060039F7930023FFFF0039F796000EABF8003AF7EC
-S31A00109A238C003AF7860001BB880001BC870001BD860001BE85C5
-S31A00109A380039F7930023FFFF0000FFA00000FF9F0000FF9E0045
-S31A00109A4D00FF9D0023FFFF0039F7A80016AFFD000EA5FF000ED7
-S31A00109A62A42D001CAE0E000ECEAB001CAD0D000EDD0A000EAF21
-S31A00109A77BD0002FF00000EAFBF0002FF01001CAB10000E8BFE1A
-S31A00109A8C000E2FFE0002FF02000EAB7F000CAFDC000CAFED00FA
-S31A00109AA13AD8DA001CAE0E000ECEAB001CAD0D000EDD0A000E76
-S31A00109AB6AFBD0002FF00000EAFBA0002FF01001CAF10000E2F87
-S31A00109ACBFE0002FF02000EABBF000CAFDC000CAFED003AD8DACC
-S31A00109AE0001CAE0A001CAD09000EAFBD0002FF00000EAF550028
-S31A00109AF502FF01000EAFFE0002FF02000EABDF000CAFDC000C4B
-S31A00109B0AAFED003AD8DA001CAE0A001CAD09000EAFBD0002FF87
-S31A00109B1F00000EAF5A0002FF01000EAF7E0002FF02000EABEF1C
-S31A00109B34000CAFDC000CAFED003AD8DA000EA1FF000EA01E0061
-S31A00109B4904AC83000E2C0F0018AB00000E2BF0000CBFCF0002ED
-S31A00109B5ECF000016AF030039F7A30023FFFF0000FF750023FFBB
-S31A00109B73FF000EA1BE000EA03B0018AB04000E2BF8000E1BFE53
-S31A00109B880030D916000EA08F000EA17F0018AB02000E2B010029
-S31A00109B9D02CB020033D8FF000E1BFD0032D90D000EA08F000E3B
-S31A00109BB2A17F0018AB02000E2B020002CB020000FE820033D80E
-S31A00109BC7FF000E1BFC0032D906000EA08F000EA17F0018AB0010
-S31A00109BDC000E2B080033D900000E1BFB0032D8FF000EA08F00A7
-S31A00109BF10EA17F0018AB00000E2B040002CB000023FFFF000E1F
-S31A00109C06A1BE000EA03B0018AB04000E2BF8000E1BFE0030D8C4
-S31A00109C1BF2000EA08F000EA17F0018AB02000EBBFE0002CB0266
-S31A00109C300033D8DB000E1BFD0032D8E9000EA08F000EA17F009F
-S31A00109C4518AB02000EBBFD0002CB020000FF820033D8DB000E25
-S31A00109C5A1BFC0032D8E2000EA08F000EA17F0018AB00000EBBE5
-S31A00109C6FF70033D8DC000E1BFB0032D8DB000EA08F000EA17F78
-S31A00109C840018AB00000EBBFB0002CB000023FFFF0039F79E0072
-S31A00109C9916AFFF000CAFB5000CAFD8000CAFC9001EA005001E74
-S31A00109CAEA104001EAC06000CAF5B00042B83000E1BFF0036D818
-S31A00109CC3B60018AE040018AD03000E2C7F000CAFCB000E1BFFC7
-S31A00109CD80036D8C2000EABFF000C09DF0032D8C4000C18EF0004
-S31A00109CED35D8BC0033D8BD000EABFF000C09DF0032D8BE000C3B
-S31A00109D0218EF0030D8BC000EABFE000E1BFF0036D8AB000D8F37
-S31A00109D175B00042F830001BF830033D8AB0002FC00000CAF9BC3
-S31A00109D2C000CAF8C000CAF1D000CAF0E003AD0A3000CAFCE00EE
-S31A00109D410CAF5B000EACFF000EAD84003AD0B300051F75000192
-S31A00109D56BF750016AF010039F79A0023FFFF0039F7A80016AF60
-S31A00109D6BFE000EA1FF000EA02D0018AC00000EECF7000E2CFE59
-S31A00109D800004AB77000E0BCC0030D86A000E0BCD0031D7E1006C
-S31A00109D950E0BE00030D87E000E0BE10031D81D000E0BF80030C3
-S31A00109DAAD888000E0BF90031D831000E1BFD0036D838000E0B5D
-S31A00109DBFFD0030D88B000E0BFF0035D7860033D83B000E1BFCD4
-S31A00109DD40036D8360033D834000E0BEC0030D883000E0BF50043
-S31A00109DE931D8290033D82D000E0BE70035D786000E0BE4003422
-S31A00109DFED8250033D821000E0BD40030D86F000E0BD50031D8B6
-S31A00109E1301000E0BD80030D805000E0BDB0031D80D000E1BDE14
-S31A00109E280036D815000E0BDE0035D819000E1BDD0036D81100AA
-S31A00109E3D33D786000E0BD00030D7F5000E0BD10031D7F9003367
-S31A00109E52D7FD000E0B980030D84E000E0B990031D7AC000E1B7B
-S31A00109E67C00036D7C0000E0BC00030D858000E0BC40030D85BCA
-S31A00109E7C000E0BC50031D7DD000E0BCA0030D7860033D8090074
-S31A00109E910E0BC20034D7D90033D7D5000E0B9E0030D853000EE8
-S31A00109EA60BAA0031D7CA0033D7D2000E1B9C0036D7B4000E0B8F
-S31A00109EBB9C0030D7B00033D7B8000E0B900030D845000E0B91C7
-S31A00109ED00031D79C000E0B940030D7A0000E0B950031D7A40015
-S31A00109EE533D7A8000E0B8A0030D840000E0B8B0031D794003342
-S31A00109EFAD798000E1B860036D790000E0B860035D7860033D747
-S31A00109F0F8C003AD594003AD1410033D7820018AC030033D782CD
-S31A00109F240018AC040033D782003AD6EA003AD1410033D78200EC
-S31A00109F390EABFF000EAC26000EADF90033D789000EABFF000E58
-S31A00109F4EAC24000EADF70033D7F2000EABFF000EAC22000EAD1B
-S31A00109F63F50033D789000EABFF000EAC18000EADE70033D7898C
-S31A00109F78000EABFE000EAC9F000EADE30033D789000EABFE00C6
-S31A00109F8D0EAC9B000EADE10033D789000EA1BD000EA0A0001853
-S31A00109FA2AC1E0033D782000EA1BD000EA0A00018AC1F0033D797
-S31A00109FB782000EA1BD000EA0A00018AC200033D782000EABFF1B
-S31A00109FCC000EAC14000EADDB0033D789000EABFF000EAC0A00F7
-S31A00109FE10EADCB0033D789000EABBD000EAC9C000EADD70033AB
-S31A00109FF6D789000EABFF000EAC08000EADD50033D789000EAB8A
-S31A0010A00BBD000EAC9A000EADD30033D789000EABFF000EAC1076
-S31A0010A020000EADD10033D789000EABFF000EAC0E000EADCF00EC
-S31A0010A0353AD14C000CAFC4000CAFB5003AF9F7000CAFCE000EF9
-S31A0010A04AADFF000EA1BD000EA0A00018AF1E0002FF01000EAFE1
-S31A0010A05FFF0002FF00000CAF5B000CAF4C003A7FBD003AD141F7
-S31A0010A0740033D782000EABFF000EAC0C000EADCD0033D789009C
-S31A0010A0890EABBE000EAC3B000EADC50033D789000EABBD000EA9
-S31A0010A09EAC95000EADC30033D789000E1CFF0032D7860033D783
-S31A0010A0B3C0000E1CFF0036D7C0000EA1FF000EA0040018AF01A4
-S31A0010A0C8000E1FFD0030D7860033D7C0000E1CFF0036D7C000F6
-S31A0010A0DD0EA1FF000EA0040019BB01000E1BFE0030D78600046B
-S31A0010A0F2AF77000E1F9E0036D7860004AC77000EABFF000CAF25
-S31A0010A107C0000EC042000CAFB1000ED1FF0018AC000033D782C3
-S31A0010A11C000EA1FE000EA0630018AC000033D782000EA1BF009C
-S31A0010A1310EA0B70018AC000033D782000EABFE000EAC5A000E75
-S31A0010A146AD9B0033D789000EABFE000EAC70000EAD990033D7D4
-S31A0010A15B89000EABFE000EAC6C000EAD970033D789000EABFED7
-S31A0010A170000EAC68000EAD950033D789000EABFE000EAC7C00D2
-S31A0010A1850EAD930033D789000EABFE000EAC98000EAD91003346
-S31A0010A19AD789000EABFE000EAC5E000EAD8F0033D789000EABD5
-S31A0010A1AFFE000EAC96000EAD8B0033D789000EA1FF000EA004FE
-S31A0010A1C40018AC260033D782000EABFE000EACDD000EAD85006C
-S31A0010A1D93AD14C003AD1410033D7820000FE76000EAC00000EF0
-S31A0010A1EEABFF0033D77D0004AF770001BF7600051F770001BF5A
-S31A0010A20377000EABFF0016AF020039F7A30023FFFF0039F79E78
-S31A0010A218000CAFBC000EA1FF000EA02D0018AB00000EEBF70068
-S31A0010A22D0E2BFE000E1CC10036D753000E0CC10030D75F000E35
-S31A0010A2420CDD0030D766000E0CE70031D73F000E0CEC0030D746
-S31A0010A2573C000E0CFF0035D73C0033D73F000E0CDB0035D73CB9
-S31A0010A26C000E0CCA0034D73F000E0CC50035D73C0033D73F0029
-S31A0010A2810E0C9E0030D758000E0CAA0031D748000E1CC0003667
-S31A0010A296D73F0033D750000E0C8A0034D73F000E0C860035D793
-S31A0010A2AB3C0033D73F000E1BFF0032D73C0033D73F000E1BFF25
-S31A0010A2C00036D73F000EA1FF000EA0040018AF01000E1FFD00D5
-S31A0010A2D530D73C0033D73F000E1BFF0036D73F000EA1FF000EA2
-S31A0010A2EAA0040019BB01000E1BFE0030D73C000E1C9E0036D791
-S31A0010A2FF3C0001BC77000EA5FE0033D73B000EA5FF0004AB76F7
-S31A0010A314000E2B80003AD12C000E1CFF0036D734000E15FF00A2
-S31A0010A32932D7330000FE76000CAF5C000EABFF0039F79A00239D
-S31A0010A33EFFFF0039F79E000EA1FF000EA02D0018A500000E25AF
-S31A0010A35360000EABF9003AD116000E1B000032D724000E1C002C
-S31A0010A3680036D723000EB59F000EA1FF000EA02D0002C50000E8
-S31A0010A37D0EA1FF000EA004000EAFFF0002CF010039F79A0023DA
-S31A0010A392FFFF0039F79E000CAFB5000EACFF0004AB77000C0B6E
-S31A0010A3A7CF0035D6F6000E0BFE0034D70D000E0B9E0030D6F6D9
-S31A0010A3BC000E0BC10035D6F60033D6F8003A7FF40004AB7600C8
-S31A0010A3D10E2B7F000E1BFF0036D6FB0004AB76000E2B8000019B
-S31A0010A3E6BB76003AD12C000E1CFF0036D6FB000CAF5B000EACE4
-S31A0010A3FBFF0004AE81000EADFF000CCECC000CDDBB003AD3EF05
-S31A0010A4100001B581000EACFE0033D6F6000CAF5B003AD26000B1
-S31A0010A4250E1CFF0036D6EE0004AF77000EBF7F0001BF76000538
-S31A0010A43A1F770001BF770033D6ED0000FE76000EABFF0039F7D8
-S31A0010A44F9A0023FFFF0004AF800032D6E3000EA1FF000EA02D80
-S31A0010A4640018AC060018AB050033D6E1000EACFF000EABFF00E0
-S31A0010A47923FFFF0016AFFC000EA1FF000EA0040018AB00000EA5
-S31A0010A48E1BBC0036D62F000E0BBC0030D6AE000E1BC70036D60C
-S31A0010A4A360000E0BC70030D6C1000E1BDD0036D67C000E0BDD03
-S31A0010A4B80030D6CB000E1BFD0036D68A000E1BDF0036D6830055
-S31A0010A4CD33D59C000E1BCF0036D66E000E0BCF0030D6C4000E8E
-S31A0010A4E21BDB0036D6750033D59C000E1BCE0036D6670033D5C2
-S31A0010A4F79C000E1BC40036D64B000E0BC40030D6B8000E1BC6D0
-S31A0010A50C0036D659000E1BC50036D6520033D59C000E1BBF00E7
-S31A0010A52136D63D000E0BBF0030D6B1000E1BC30036D6440033C8
-S31A0010A536D59C000E1BBD0036D6360033D59C000E1BAA0036D5DF
-S31A0010A54BFE000E0BAA0030D69C000E1BAE0036D61A000E0BAEBE
-S31A0010A5600030D6A1000E1BBB0036D628000E1BAF0036D621000C
-S31A0010A57533D59C000E1BAC0036D60C000E0BAC0030D605003327
-S31A0010A58AD613000E1B950036D5DB000E0B950030D691000E0BBB
-S31A0010A59FA70035D59C000E0BA60034D5F0000E1B970036D5E2DF
-S31A0010A5B40033D59C000E1B930036D5F7000E0B930035D5D40090
-S31A0010A5C90E1B8F0036D5CD0033D59C000EAFBD0002FF00000EAA
-S31A0010A5DEAFBF0002FF01000EA0F5000EA1FF0033D5C1000EAF0B
-S31A0010A5F3BE0002FF00000EAF6A0002FF01000EA0F9000EA1FF00
-S31A0010A6080033D5C1000EAFBE0002FF00000EAF640002FF0100BF
-S31A0010A61D0EA0F1000EA1FF0033D5C1000EAFBE0002FF00000E72
-S31A0010A632AF560002FF01000EA0E4000EA1FF0033D5C1000EAF30
-S31A0010A647BD0002FF00000EAFA00002FF01000EA0C1000EA1FFAE
-S31A0010A65C0033D5C1000EAFBD0002FF00000EAF620002FF01006E
-S31A0010A6710EA0E9000EA1FF0033D5C1000EAFBD0002FF00000E27
-S31A0010A686AFB40002FF01000EA0F3000EA1FF0033D5C1000EAF6F
-S31A0010A69BBD0002FF00000EAFA80002FF01000EA0F7000EA1FF1C
-S31A0010A6B00033D5C1000EAFBD0002FF00000EAF4C0002FF010030
-S31A0010A6C50EA0DF000EA1FF0033D5C1000EAFBD0002FF00000EDD
-S31A0010A6DAAFFF0002FF01000EA0F3000EA1FF0033D5C1000EAFD0
-S31A0010A6EFBD0002FF00000EAFF30002FF01000EA0FD000EA1FF77
-S31A0010A7040033D5C1000EAFBE0002FF00000EAF3B0002FF0100EB
-S31A0010A7190EA0F3000EA1FF0033D5C1000EAFBD0002FF00000E74
-S31A0010A72EAFF10002FF01000EA0FA000EA1FF0033D5C1000EAF82
-S31A0010A743BE0002FF00000EAF000002FF01000EA0FE000EA1FF13
-S31A0010A7580033D5C1000EAFBE0002FF00000EAF2F0002FF0100A3
-S31A0010A76D0EA0F3000EA1FF0033D5C1000EAFBF0002FF00000E1E
-S31A0010A782AFAA0002FF01000EA09D000EA1FF0033D5C1000EAFD2
-S31A0010A797BE0002FF00000EAF230002FF01000EA0F4000EA1FFA6
-S31A0010A7AC0033D5C1000EAFBF0002FF00000EAFBB0002FF0100C2
-S31A0010A7C10EA0EE000EA1FF0033D5C1000EAFBF0002FF00000ECF
-S31A0010A7D6AF480002FF01000EA0AD000EA1FF0033D5C1000EAFD0
-S31A0010A7EBBE0002FF00000EAFF60002FF01000EA0AF000EA1FFC4
-S31A0010A8000033D5C1000EAFBE0002FF00000EAFA60002FF010083
-S31A0010A8150EA0E1000EA1FF0033D5C1000EAFBE0002FF00000E88
-S31A0010A82AAF880002FF01000EA0E1000EA1FF0033D5C10018AEFE
-S31A0010A83F00000EADFF000EEEBF00037FFF000EEDBF000CBFED86
-S31A0010A8540016AE01000ECEFF0002FE01000EDDD20002FD00007C
-S31A0010A8690EA0DF000EA1FF0033D5C1000EAFBF0002FF00000E35
-S31A0010A87EAFFF0002FF01000EA0EF000EA1FF0033D5C1000EAF2E
-S31A0010A893BF0002FF00000EAFEF0002FF01000EA0DE000EA1FFF2
-S31A0010A8A80033D5C1000EAFBF0002FF00000EAFCE0002FF0100B2
-S31A0010A8BD0EA0EC000EA1FF0033D5C1000EA1FF000EA02D0018BE
-S31A0010A8D2AB00000E2BBF000E1BFF0032D59C000EAFBE0002FF71
-S31A0010A8E700000EAF180002FF01000EA0E7000EA1FF000EA3FF7C
-S31A0010A8FC000EA204001AAE01000EADFF000EEEDF00037FFF009E
-S31A0010A9110EEDDF000CBFED0016AE01001ECE010002FE01001EB8
-S31A0010A926DD000002FD00000CAF0C000ECCE0000D5F1B000EEC28
-S31A0010A93BF7000EEBF7000CBCFC000CAFCD000DBFDB001A1B01E1
-S31A0010A9500034D5A7000EAFDF0002FF030033D59A001A1D0100B2
-S31A0010A96534D59C000CAFDE000EADFF000DBFEE000DFFDD000E1E
-S31A0010A97AEEDF000CAFFE000C4E0F0002FF030033D59A000EAF60
-S31A0010A98FFF0002FF03001EAE03001EAD02001EAC01001EAB006A
-S31A0010A9A40016AF040023FFFF0039F7960004AB7F000E1BF7008A
-S31A0010A9B936D554000E0BF70030D57B000E1BFD0036D562000EE3
-S31A0010A9CE0BFD0030D585000E1BFF0036D56A000E1BFE0036D5FD
-S31A0010A9E3650033D534000E1BFA0036D55C000E0BFA0030D57E88
-S31A0010A9F8000E1BFC0036D55F0033D534000E1BF80036D55700E6
-S31A0010AA0D33D534000E1BF30036D546000E0BF30030D574000EE2
-S31A0010AA221BF60036D54F0033D549000E1BE70036D53E000E0BDB
-S31A0010AA37E70030D56D000E1BE80036D5410033D534000E1BD108
-S31A0010AA4C0036D5390033D534000EA1FF000EA02D0018AC010011
-S31A0010AA6118AB000033D532000EACFF000EABFE0033D532000E15
-S31A0010AA76ABEF003AD1160033D5320004ACD4000EABFF0033D57C
-S31A0010AA8B32000EA1BD000EA0B50018AC0D000EABFF0033D532DC
-S31A0010AAA00004AC7E000EABFF0033D532000EA1BF000EA0480007
-S31A0010AAB518AC010018AB000033D532000EA1BF000EA0FF001881
-S31A0010AACAAC0A000CAFCB000E6BFE0033D5320004AC9A0004AB7B
-S31A0010AADF9B0033D532000EA1BD000EA0B50018AC0C0018AB0B0A
-S31A0010AAF40033D5320004AC7B0004AB7C0033D532000EA1FF00BF
-S31A0010AB090EA02D0018AC120018AB110033D532000EA1BE000EE7
-S31A0010AB1EA03B0018AC07000EABFF0033D532000EACFF000EAB02
-S31A0010AB33FF0039F7930023FFFF0039F7A80016AFF7000CAFC401
-S31A0010AB48000CAFB5000E15FF0032D529000E14000030D42B00CF
-S31A0010AB5D0CAF4B000CAFBC000EABFF000E1BFF0032D521000E3A
-S31A0010AB721CD20036D479000E0BFF0032D51E000E1CD20030D40A
-S31A0010AB87F6000E1BFF0032D519000E1CEF0036D4B5000E0BFF75
-S31A0010AB9C0032D516000E1CEF0030D503000E1BFF0032D5110010
-S31A0010ABB10E1CF50036D4C5000E0BFF0032D50E000E1CF500300F
-S31A0010ABC6D508000E1BFF0032D509000E1CF60036D4CA0033D355
-S31A0010ABDBF4000E1BFF0032D504000E1CF40036D4BF0033D3F447
-S31A0010ABF0000E1BFF0032D4FF000E1CDF0036D4AF000E0BFF0033
-S31A0010AC0532D4FC000E1CDF0034D3F4000E1BFF0032D4F7000EEB
-S31A0010AC1A1CDE0036D4970033D3F4000E1BFF0032D4F2000E1C30
-S31A0010AC2FBE0036D42E000E0BFF0032D4EF000E1CBE0030D4DC2F
-S31A0010AC44000E1BFF0032D4EA000E1CCE0036D47C000E0BFF0037
-S31A0010AC5932D4E7000E1CCE0030D4E1000E1BFF0032D4E2000EE8
-S31A0010AC6E1CCF0036D47F0033D3F4000E1BFF0032D4DD000E1C18
-S31A0010AC83BF0036D4790033D3F4000E1BFF0032D4D8000E1C7EBC
-S31A0010AC980036D454000E0BFF0032D4D5000E1C7E0030D4CF00C5
-S31A0010ACAD0E1BFF0032D4D0000E1C7F0036D4610033D3F4000E62
-S31A0010ACC21BFF0032D4CB000E1C7D0036D4460033D3F4000EA1DC
-S31A0010ACD7FF000EA02D0018AF00000EBFFB0002CF00000EA1FF6A
-S31A0010ACEC000EA02D0018AF00000EBFF70002CF000033D3F4000C
-S31A0010AD010EAFBF0002FF00000EAFF70002FF01000EACFD000E2F
-S31A0010AD16ABFF000EADFF000EAE9B003AFDF00033D3F4000EA187
-S31A0010AD2BFF000EA02D0018AF01000EBFDF0002CF010033D3F4E3
-S31A0010AD40000EABF9003AD1160002FB020002FC03000E1B0000EC
-S31A0010AD5532D499000E1C000032D499000EAFFF0002FF03000E9D
-S31A0010AD6AAFFE0002FF02000CAF6F000ECFFD0002FF01000D5F9C
-S31A0010AD7F7F0002FF00000EACFF000EABFF000EADF9000EAEFE4A
-S31A0010AD94003A7FEF003AD72F0033D3F7000EA1BF000EA0BB00D8
-S31A0010ADA918AB04000E2BFB000E1BFF0032D4810018AF04000208
-S31A0010ADBEFF04000EBFFB0002FF04003AD29D000CAF6E000ECEEC
-S31A0010ADD3FB000D5F7D000EAFBF0002FF00000EAFB70002FF017E
-S31A0010ADE8000EACFE000EABFF003AFDF0003AD28C0000EEDF0044
-S31A0010ADFD33D3F7000EABFE003AE0DD0033D3F7000EABFF003A91
-S31A0010AE12E0DD0033D3F7000EA5BE000EA43B001CAF000002FF31
-S31A0010AE2705001CAF010002FF06001EAB05000EEBFB000E2BFE2F
-S31A0010AE3C000E8BFE000EEBBF000CAFFB001EAF05000E2F400097
-S31A0010AE5102FF05000CBFBF0002FF05003AD29D000CAF6E000E60
-S31A0010AE66CEFA000D5F7D0002F5000002F4010033D3FB000EA073
-S31A0010AE7BBF000EA17F000EAFFD0002CF00000EABFF000EAC2D95
-S31A0010AE90000EADEF003AFA07000EABFF000EAC2D000EADF70061
-S31A0010AEA53AFA070033D3F7000EA1BE000EA03B0018AB00000E23
-S31A0010AEBA2BBF000E1BFF0036D3F7000EA0BF000EA17F000EAF03
-S31A0010AECFFD0002CF00000EABFF000EAC2D000EADEF0033D43505
-S31A0010AEE4000EA1BE000EA03B0018AB00000E2BBF000E1BFF000A
-S31A0010AEF936D3F7000EA0BF000EA17F000EAFFC0002CF00000EFB
-S31A0010AF0EABFF000EAC2D000EADEF003AFA16000EABFF000EAC21
-S31A0010AF232D000EADF7003AFA16000EA1FF000EA004000EAFFFBE
-S31A0010AF380002CF260001B47F0033D3F7003AD0F10033FFFF009A
-S31A0010AF4D33D3F7000E15D60032D427000E14180036D41F000E45
-S31A0010AF6215830032D423000E14BF0036D41F000E15A50032D32C
-S31A0010AF77F4000E14360032D3F4000EAFFF0002FF070002FF089D
-S31A0010AF8C000E15D60032D413000E14180032D413000EAFC500B3
-S31A0010AFA102FF07000EAF3A0002FF080033D40B000E1583003293
-S31A0010AFB6D40B000E14BF0032D40B000EAFD30002FF07000EAF4A
-S31A0010AFCB820002FF08003AD29D000EA1BE000EA03B0018AC0B02
-S31A0010AFE00018AB0A001E1B070032D402001E1C080036D3F800EE
-S31A0010AFF50CAF6E000ECEF8000D5F7D000EAFBE0002FF00000EC1
-S31A0010B00AAF310002FF01000EACFD000EABFF003AFDF0003AD297
-S31A0010B01F8C000EACFE000EABFF0033D3F2000EACFF000EABFFA1
-S31A0010B0340016AF090039F7A30023FFFF0039F7A80016AFF8009A
-S31A0010B0490CAFC4000CAFB5000EA1FF000EA02D0018AF0000029B
-S31A0010B05EFF05000EA1BD000EA0A0000EA3FF000EA22D0018ABB9
-S31A0010B07306001A8B050018AC07001A8C06000E8BCA0002FB012A
-S31A0010B088000E8C310002FC020018AB06001A8B050018AC070094
-S31A0010B09D1A8C06000D1F6F0002FF07000D5F7F0002FF06001E29
-S31A0010B0B2A007001EA106000E8B590002CB02000E8C0D0002CCD1
-S31A0010B0C703000EAFFE0002FF00000CAF5B000CAF4C000EADBE09
-S31A0010B0DC000EAE18003AD386000E1CFF0036D3BE000EA3FF0042
-S31A0010B0F10EA22D001EAF05000E2F200002DF000033D389000EAA
-S31A0010B106AFFB0002FF00000CAF5B000CAF4C001EAE07001EADB8
-S31A0010B11B06003AD386000E1CFF0036D3AF000EA1FF000EA02D06
-S31A0010B130001EAF05000E2F600002CF000033D389001EAB050057
-S31A0010B1450E2BDF000E1BFF0032D38C000EAFFD0002FF00000C47
-S31A0010B15AAF5B000CAF4C000EADBE000EAE14003AD386000E1CB3
-S31A0010B16FFF0036D39C000EA3FF000EA22D001EAF05000E2F6015
-S31A0010B1840002DF000033D389000E15F00032D391000E14FF0066
-S31A0010B19932D391001EAB05000E2BBF000E1BFF0032D391003A37
-S31A0010B1AED0F1003A7FFB0033D389000CAF5B000CAF4C003AD546
-S31A0010B1C330000E1CFF0032D389000CAF5B000CAF4C003AD36BE5
-S31A0010B1D80016AF080039F7A30023FFFF000CAFE0000CAFD10064
-S31A0010B1ED1EAE00000EADFF00041DBB0036D37E0001BD7D0033E0
-S31A0010B202D36E0004AF7D0032D37600181B020032D37600181C51
-S31A0010B217030032D3760001BE7D0033D36E00041E7D0032D36ECC
-S31A0010B22C00181B000032D36F00181C010032D36F000EADFE00EE
-S31A0010B24100FF7D000CAFDC000EABFF0023FFFF0039F796000E22
-S31A0010B2561BFF0032D367000E1CE70034D362000E1BFF0032D3A0
-S31A0010B26B42000E1CD10032D3420004AF7F0001BF7E0001BC7F88
-S31A0010B280000E1CEF0036D35A000E1CE80036D3580033D33F006F
-S31A0010B2953AD5300033D33F003AD33D0001BB7C0001BC7B000E42
-S31A0010B2AAFB800001BF7C0001BC7B000EA1BD000EA0B50018ABF8
-S31A0010B2BF13000E2B800018AC140004AE7B0004AD7C000C1DBF7E
-S31A0010B2D40032D347000C1ECF0036D33F000CAFDF000EBF7F00DC
-S31A0010B2E901BF7C0001BE7B0033D33F0004AF7D0032D33F00000B
-S31A0010B2FEFBBB0039F7930023FFFF0016AFFF000EA2FF000EA367
-S31A0010B313FF000EFADF000CAFFB0002FB00000E2A20000EFADF37
-S31A0010B3280032D337000EA1BF000EA048000CAF3D000CAF2E0079
-S31A0010B33D10AC01000EABFF000CCC22000CDB33000D1FEE000D35
-S31A0010B3525FDD000E1DFF0032D327000E1E220034D330000EA10A
-S31A0010B367BF000EA092000EAEFF000EADFF0010AC01000EABFFD2
-S31A0010B37C000CCC22000CDB33000D1FEE000D5FDD000E1DFF0005
-S31A0010B39132D319000E1EFE0034D322000EA1BF000EA090000E66
-S31A0010B3A6AEFF000EADFF0010AC01000EABFF000CCC22000CDBBF
-S31A0010B3BB33000D1FEE000D5FDD000E1DFF0032D30B000E1EFE6D
-S31A0010B3D00034D314001EAB00000CBABA000CAF3B000CAF2C0011
-S31A0010B3E516AF010023FFFF0039F7A8000EA1BE000EA03B001810
-S31A0010B3FAA40B0018A50A0000FFFF000E15C50032D2FA000E14AC
-S31A0010B40F3A0036D2F6000E15D30032D2C9000E14820032D2C9A6
-S31A0010B424000E15D30032D2E7000E14820032D2E70000DFFF00AF
-S31A0010B4390EA0DF000EA17F0018AB04000EBBFB0002CB04000EC3
-S31A0010B44EAEFD000EABFB000EA9BF000EAD7F0033D2D8000EA039
-S31A0010B463AF000EA17F000EAFF40002CF000000EFFF000EA0EFD4
-S31A0010B478000EA17F000EAFFF0002CF04000EAFE90002CF06006D
-S31A0010B48D0EAEFB000EABFD000EA97F000EADBF000EA08F000E2C
-S31A0010B4A2A17F000D8FBB0018AC09000C2BCB000CBFEB0002CBB6
-S31A0010B4B709000EA06F000EA17F000D8FDB0018AC01000C2BCBD8
-S31A0010B4CC000CBF9B0002CB010033D2C8003A7FF9000EA0EF0005
-S31A0010B4E10EA17F000EAF550002CF060004AFFF000EBFFE0001AB
-S31A0010B4F6BFFF000E2F9F000CAFFB000E1BFF0032D2AF000EA250
-S31A0010B50B8F000EA37F001AAB09000E2B020002DB09000EA1BEFA
-S31A0010B520000EA03B0018AB04000E2BF8000E1BFC0032D2A10055
-S31A0010B5351AAB00000EBBF70033D2A2000EA28F000EA37F001A36
-S31A0010B54AAB09000E2B040002DB09000EA1BE000EA03B0018ABE6
-S31A0010B55F04000E2BF8000E1BFB0032D2A1001AAB00000EBBFB3A
-S31A0010B5740002DB000001B57A0001B4790039F7A30023FFFF007D
-S31A0010B5890EA06F000EA17F0018AB01000CAFBE000EADFF000451
-S31A0010B59EABFF000E2BEF000E1BFF0036D291000E2E80000CAF78
-S31A0010B5B3EB0033D28F000E2E40000CAFEB0002CB01000E2A04C2
-S31A0010B5C80023FFFF000EA06F000EA17F0018AB01000CAFBE00AF
-S31A0010B5DD0EADFF0004ABFF000E2BEF000E1BFF0036D280000EF5
-S31A0010B5F2BE7F000CAFEB0033D27E000EBEBF000CAFEB0002CBCA
-S31A0010B607010023FFFF0039F7A80016AFFE0016AF010000FE7621
-S31A0010B61C003AD72F003AD304000EA5BE000EA43B001CAC0B0081
-S31A0010B6311CAB0A00041B7A0032D26E00041C790036D26D003ACA
-S31A0010B646D304000EAFD70002FF00000EAF1A0002FF01000EABDB
-S31A0010B65BD7000EAC7A000EADD8000EAEA6003A7FFA0033D27498
-S31A0010B6700016AF020039F7A30023FFFF0039F7A80016AFF70060
-S31A0010B68502FB06000EAFFE0002FF07000EA1FF000EA02D001833
-S31A0010B69AA100000EE1F70002F108000EF1FE0002FF080004AB4E
-S31A0010B6AF77000E1BAB0036D1EB000E0BAB0030D248000E0BBF4D
-S31A0010B6C40031D1F3000E1BC10036D242000E1BC00036D23F0002
-S31A0010B6D933D15A000E0BA00034D1BE000E1B9F0036D1B6000ED9
-S31A0010B6EE1B9E0032D15A001EAF080036D15A0033D1A1003A7F87
-S31A0010B703F4000EA5FF000EA404001EAF060002EF01000EABFF42
-S31A0010B718000EAC02000EADDF003AF9ED001EAF080032D2310086
-S31A0010B72D1CAF23000E1FFE0032D21A001CAB01000E1BFE003695
-S31A0010B742D22B000E1BFD0036D2240033D21D000EAFBD0002FFF0
-S31A0010B75702000EAF4C0002FF03000EAFDF0002FF050033D20011
-S31A0010B76C000EAFBD0002FF02000EAFFF0002FF03000EAFF300C5
-S31A0010B78102FF050033D200000EAFFF0002FF050033D200001CAF
-S31A0010B796AF230032D212003AD6E00002FB020002FC030002FDB1
-S31A0010B7AB040002FE050033D200001CAF23000E1FFD0032D20841
-S31A0010B7C0000EABFF000EAC02003AD0C7000EABF7003AD122003C
-S31A0010B7D502EC220033D151001CAF010002FF02001CAF00000248
-S31A0010B7EAFF03001CAB23000E2BE0000D1FBF0002FF05001EAE72
-S31A0010B7FF03001EAD02001EAF050002FF00000EABFF000EAC0208
-S31A0010B814003A7FE0000EABDF003AD122000EA1FF000EA004004B
-S31A0010B82902CC220033D151001EAF080036D15A000EA1FF000EBD
-S31A0010B83EA0040018AF01000E1FFD0034D15A0033D1A1001EAF78
-S31A0010B853080032D1E4000EA1FF000EA0040018AF23000E1FFE66
-S31A0010B8680032D15A000EA1FF000EA0040018AF010032D15A00D3
-S31A0010B87D0EABEB003AD122001E1C060032D1A1000EA5BE000E6C
-S31A0010B892A410003A7FF4000EABFF000EAC02000EADEB003AD105
-S31A0010B8A705000CAF5B000CAF4C000EADEF003AD0D4000E1CFFA3
-S31A0010B8BC0036D1CD000EA4FF000EA5FF000CAF5B000CAF4C000D
-S31A0010B8D10EADFF000EAE02003A7FDF000CAF5B000CAF4C000E11
-S31A0010B8E6ADFF000EAE02003A7FDF000EABFF000EAC02000EAD06
-S31A0010B8FBEB003AD1050033D151001EAF080036D15A000EA1FFEE
-S31A0010B910000EA0040019BB01000E1BFE0034D15A0033D1A1005A
-S31A0010B9250EABDF003AD122001E1C060032D1A1001EAF08003247
-S31A0010B93AD1AB000EA5FF000EA404001CAF23000E1FFE0032D1E2
-S31A0010B94F7C000EA1FF000EA0040018AB01000E1BFE0036D1A35C
-S31A0010B964000E1BFD0036D1910033D1A1001EAF080036D19E00DB
-S31A0010B9790EAFFF0002FF070033D151000EAFBD0002FF02000EFF
-S31A0010B98EAF4C0002FF03000CAF64000EC4FD000D5F75000EAF03
-S31A0010B9A3DF0002EF03003A7FF4001CAC03000EABFF0033D17200
-S31A0010B9B8000EAFBD0002FF02000EAFFF0002FF03000CAF640008
-S31A0010B9CD0EC4FD000D5F75000EAFF30002EF03003A7FF4001C32
-S31A0010B9E2AC03000EABFF001EAF020002FF00001EAF030002FF32
-S31A0010B9F701000EADFF000EAE02003AFDF0003AF0570033D151AF
-S31A0010BA0C001CAF230032D16A003AD6E00002FB020002FC0300C4
-S31A0010BA2102FD040002FE05003A7FF4001EAC05000EABFF001EA0
-S31A0010BA36AF020002FF00001EAF030002FF01000EADFF000EAEEB
-S31A0010BA4B02003AFDF00033D151003A7FF4001CAF010002FF02D6
-S31A0010BA60001CAF000002FF03001CAD23000E2DE0000D1FDD00DC
-S31A0010BA7502FD05001EAC03001EAB020002FD00000EADFF000E43
-S31A0010BA8AAE02003A7FE00033D151003A7FF40004AC77000EAB66
-S31A0010BA9FFF000CAFC0000EC042000CAFB1000ED1FF001EAF06D5
-S31A0010BAB40002CF00001EAC07000EABFF0016AF090039F7A3006C
-S31A0010BAC923FFFF000CAFC0000CAFB100044D77000E2D01000C3A
-S31A0010BADEAFDC000EABFF000CCC00000CDB110018AC010018ABA2
-S31A0010BAF3000023FFFF0039F7A8000CAFC4000CAFB50004AB761B
-S31A0010BB08003AD12C000E1CFF0036D1380004AC780033D12F0018
-S31A0010BB1D0CAF5E000EADFF0001BE780004AB77000E2BFE000C8A
-S31A0010BB32AF4C000E1BFF0036D12F000CAFEC000EABFF0039F700
-S31A0010BB47A30023FFFF000CAFBD000EACFF0004AB77000E2B017E
-S31A0010BB5C000C1BDF0032D1240004AC77000E2CFE000EABFF007A
-S31A0010BB7123FFFF000EACFF000EA1FF000EA0020033D11D001040
-S31A0010BB86CC01000DBFBB000E1B000032D11E000D8FCB000CAFD4
-S31A0010BB9BBC000EABFF0023FFFF0039F7960016AFFC000CAFBDEB
-S31A0010BBB0000CAF6F000ECFFD0002FF01000D5F7F0002FF000078
-S31A0010BBC50EACFF000EABFF000EAEFE003A7FF0001EAC03001E96
-S31A0010BBDAAB020016AF040039F7930023FFFF000CAFC2000CAFAE
-S31A0010BBEFB3000CAFDC000E1CFE0034D0F2000DBFCC000E0CFF12
-S31A0010BC040034D0F2001AAB00000CAFCE000EADFF000CCE20001D
-S31A0010BC190CDD310018AF0000035F010002CB00000ECC01000E06
-S31A0010BC2E0CFF0030D0FD0023FFFF0039F7A8000E2A20000EFA8A
-S31A0010BC43DF0032D0F0000E2A5C000EA4FF000EA57F001CAB9136
-S31A0010BC58000E2BC70002EB91000EAFFE0002EF60003AFE690096
-S31A0010BC6D0EAFFF0002EF40000EAFFF0002EF30000EAFFF000224
-S31A0010BC82EF90003EBFFF003EBFFF003EBFFF003EBFFF003EBF2B
-S31A0010BC97FF003EBFFF003EBFFF003EBFFF0039F7A30023FFFF9B
-S31A0010BCAC000CAFC0000CAFB1000EACFE0033D0CC0010AB010043
-S31A0010BCC136D0CC000EACFF0033D0C9000DBFDD000E1D000032FB
-S31A0010BCD6D0D0000EABFF0023FFFF0039F7A80016AFFF000CAF73
-S31A0010BCEBC4000CAFB5000EA0FF000CAF0B000ECBF30002F000C9
-S31A0010BD00003A7FE2000CAFBE000EADFF00036E0100036C010068
-S31A0010BD151EA000000D1F00000E10FC0034D0C20016AF0100393A
-S31A0010BD2AF7A30023FFFF000CAFD0000CAFC1000E1EFF0036D0FB
-S31A0010BD3FAA000E0EFF0034D0A6000CAFBF0018BF010002CF0146
-S31A0010BD54000D8FBB00182F000002CF000033D0A40018BB0000DB
-S31A0010BD6902CB000023FFFF0039F796000CAFC8000CAFB9000CF8
-S31A0010BD7EAFE0000CAFD1001EAD02000CB01F0036D083000EFD43
-S31A0010BD937F000CAFFB000E1BFF0036D091000EABFF00180900B8
-S31A0010BDA80032D093001818010030D08B0033D08C000EABFF00D8
-S31A0010BDBD1809000032D08D001818010035D08B000EABFE000E25
-S31A0010BDD2ACFF000C1BCF0036D086000E2DFE000CAFDC000CAF8E
-S31A0010BDE7CB0018AC020033D081000CAFDB000CAF8C003AD07EB7
-S31A0010BDFC0039F7930023FFFF000CAFBD000CAFCE0004AC750012
-S31A0010BE110EABFF000CAFC0000EC0C2000CAFB1000ED1FE0004F6
-S31A0010BE26AF75000E1FF90030D063000E1DFF0036D065000E1E83
-S31A0010BE3BFF0036D06500191F000002CF0000181E000031D067CB
-S31A0010BE50000EAFFF0002CF00000EACFE0033D062000EAC000063
-S31A0010BE6533D062000EAFFF0002CF00000EACFF0023FFFF0039AD
-S31A0010BE7AF7A80016AFFD000CAFBC0004AF9C0032D050000E1CFA
-S31A0010BE8FFE0036D0580004AF740032D050000EA1BE000EA03B5D
-S31A0010BEA40018AB03000E2BFD000E1BFF0036D050000EABFF0041
-S31A0010BEB933D046000EA1FF000EA02D000EAB000018AF11000EED
-S31A0010BECEFF7F0032D0460018AF110018BF120036D046000EABBD
-S31A0010BEE3FE000E1CFF0032D04200041B740036CEC70001BB743B
-S31A0010BEF8000EA1BF000EA0AA0018AF5B0001BF730018AF5C00E1
-S31A0010BF0D01BF72000EA1FE000EA09F0018A4340018A5330018E5
-S31A0010BF22AC380018AB370004AF74000E1FFE0032CFDE000C4495
-S31A0010BF37CF0002FF02000C55BF0002FF01000EA1FE000EA0BBD5
-S31A0010BF4C000CAF04000CAF150018A20D001C320B0018A30C0054
-S31A0010BF611C730A000EF37F0036D022000EA2FF000EA3FF000E07
-S31A0010BF76FADF000CAFFB0002FB00000E2A20000EFADF0032D0D3
-S31A0010BF8B1F000EA1FE000EA0BB0002C3000002C201000EAF808F
-S31A0010BFA00002CF02000EAF000002CF030002CF040002CF050067
-S31A0010BFB51EAB00000CBABA000EAEFF000EADFF000EACFF000EDC
-S31A0010BFCAABFF001EAF01000EFF7F0032CFF1001EAF01001EBFAB
-S31A0010BFDF020036CFF1001EAD02001EAC01000EAFFE00397FD262
-S31A0010BFF4000CAFE0000CAFD1000CAFC8000CAFB9001E120200D2
-S31A0010C0090CAFFC001EAB01000C7B3B000CAFCD000CAFBC000EBC
-S31A0010C01EAFFE00397FD2000370FF000371FF0039F79600397F5D
-S31A0010C033D50016AF04000EAFFF00037FFF000EAFFF00037FFFCA
-S31A0010C048000EAFFF00037FFF000EAF7E00037FFF000E8C7F00BB
-S31A0010C05D397FD40016AF04000EA1FE000EA0BB000E8C7F000232
-S31A0010C072CC070002CB060002CD080002CE090033CF81000EA11B
-S31A0010C087FE000EA0BB0018A20B0018A30A000EF37F0036CFD642
-S31A0010C09C000EA2FF000EA3FF000EFADF000CAFFB0002FB000080
-S31A0010C0B10E2A20000EFADF0032CFD3000EA1FE000EA0BB000239
-S31A0010C0C6C3000002C201000EAF800002CF02000EAF000002CF29
-S31A0010C0DB030002CF040002CF05001EAB00000CBABA000EAEFF88
-S31A0010C0F0000EADFF000EACFF000EABFF000EF57F0032CF9F00D8
-S31A0010C1050CB45F0036CF9F000CAF5C000CAF4D000EAFFE003939
-S31A0010C11A7FD2000CAFE0000CAFD1000CAFC8000CAFB90004AFD8
-S31A0010C12F740032CFAA0004AD720004AC73000EAFFE00397FD23B
-S31A0010C144000CAFE0000CAFD1000CAFC8000CAFB9000C424C0018
-S31A0010C1590C535B000CAFCD000CAFBC000EAFFE00397FD20003BA
-S31A0010C16E70FF000371FF0039F79600397FD50016AF04000EAFEB
-S31A0010C183FF00037FFF000EAFFF00037FFF000EAFFF00037FFF97
-S31A0010C198000EAF7E00037FFF000E8C7F00397FD40016AF040052
-S31A0010C1AD04AF740032CF87000EAFFF00037FFF000EAFFF0003BC
-S31A0010C1C27FFF000EAFFF00037FFF000EAF7E00037FFF000E8C41
-S31A0010C1D77F00397FD40016AF04000EA1FE000EA0BB0002CB0680
-S31A0010C1EC0002CC070002CD080002CE09000EA1FE000EA09F00A9
-S31A0010C20118A4360018A5350018AC3A0018AB390004AF74000EFF
-S31A0010C2161FFE0032CF24000C44CF0002FF02000C55BF0002FF78
-S31A0010C22B01000EA5FE000EA4AD000CAF51000CAF40001CA20D05
-S31A0010C2400018320B001CA30C0018730A000EF37F0036CF680031
-S31A0010C2550EA2FF000EA3FF000EFADF000CAFFB0002FB00000EB7
-S31A0010C26A2A20000EFADF0032CF65000EA5FE000EA4AD0002E31D
-S31A0010C27F000002E201000EAF800002EF02000EAF000002EF03CE
-S31A0010C2940002EF040002EF05001EAB00000CBABA000EAEFF0090
-S31A0010C2A90EADFF000EACFF000EABFF001EAF01000EFF7F0032B3
-S31A0010C2BECF37001EAF01001EBF020036CF37001EAD02001EACCF
-S31A0010C2D301000EAFFE00397FD2000CAFE0000CAFD1000CAFC850
-S31A0010C2E8000CAFB9001E1202000CAFFC001EAB01000C7B3B0042
-S31A0010C2FD0CAFCD000CAFBC000EAFFE00397FD2000370FF00035D
-S31A0010C31271FF0039F79600397FD50016AF04000EAFFF00037F36
-S31A0010C327FF000EAFFF00037FFF000EAFFF00037FFF000EAF7E37
-S31A0010C33C00037FFF000E8C7F00397FD40016AF04000EA1FE003A
-S31A0010C3510EA0AD000E8C7F0002CC070002CB060002CD080002CC
-S31A0010C366CE090033CEC7000EA1FE000EA0AD0018A20B0018A385
-S31A0010C37B0A000EF37F0036CF1C000EA2FF000EA3FF000EFADFA6
-S31A0010C390000CAFFB0002FB00000E2A20000EFADF0032CF190076
-S31A0010C3A50EA1FE000EA0AD0002C3000002C201000EAF8000029C
-S31A0010C3BACF02000EAF000002CF030002CF040002CF05001EAB82
-S31A0010C3CF00000CBABA000EAEFF000EADFF000EACFF000EABFFDD
-S31A0010C3E4000EF57F0032CEE5000CB45F0036CEE5000CAF5C00A8
-S31A0010C3F90CAF4D000EAFFE00397FD2000CAFE0000CAFD1000C99
-S31A0010C40EAFC8000CAFB90004AF740032CEF00004AD720004AC2E
-S31A0010C42373000EAFFE00397FD2000CAFE0000CAFD1000CAFC88C
-S31A0010C438000CAFB9000C424C000C535B000CAFCD000CAFBC0012
-S31A0010C44D0EAFFE00397FD2000370FF000371FF0039F79600399B
-S31A0010C4627FD50016AF04000EAFFF00037FFF000EAFFF00037F17
-S31A0010C477FF000EAFFF00037FFF000EAF7E00037FFF000E8C7F89
-S31A0010C48C00397FD40016AF040004AF740032CECD000EAFFF0080
-S31A0010C4A1037FFF000EAFFF00037FFF000EAFFF00037FFF000E67
-S31A0010C4B6AF7E00037FFF000E8C7F00397FD40016AF04000EA190
-S31A0010C4CBFE000EA0AD0002CB060002CC070002CD080002CE0995
-S31A0010C4E00016AF030039F7A30023FFFF0039F7A80016AFFA00DE
-S31A0010C4F50CAFC8000CAFB90002FD000002FE01000EA1FE000E6A
-S31A0010C50AA09F0018AF370002FF020018AF380002FF030004AF10
-S31A0010C51F74000E1FFE0032CEA6000EA1FE000EA0BB0018AC01D1
-S31A0010C5340018AB00000CAF02000CAF13001AC80B0002C80B00CC
-S31A0010C5491AD90A0002C90A0018CC0B0002DC0D0018DB0A00021C
-S31A0010C55EDB0C0033CE620004AF740032CE6A000EA3FE000EA278
-S31A0010C573BB000CAF31000CAF20001AAC0100183C0B001AAB0030
-S31A0010C58800187B0A003A7FC0000CAFC4000CAFB5000EA3FE00D4
-S31A0010C59D0EA2BB001AAC0D001E3C03001AAB0C001E7B02003A32
-S31A0010C5B27FC0000C05BF0032CE8F000C14CF0035CE87000EA198
-S31A0010C5C7FE000EA0BB001EAF020002CF0C001EAF030002CF0D88
-S31A0010C5DC0033CE6A000EA3FE000EA2BB001AA80D001AA90C0011
-S31A0010C5F10CAF9B000CAF8C001E0B020032CE7E001E1C03003468
-S31A0010C606CE70000CAF4B000EACFF000C44CC000C55BB000CAF19
-S31A0010C61BCD000EAEFF000CCECC000CDDBB000CCCCC000CDBBBDC
-S31A0010C630000CCC8C000CDB9B0033CE6E000CC48C000CD59B00B2
-S31A0010C6450EA1FE000EA0BB0002CB0C0002CC0D000EA3FE000E43
-S31A0010C65AA2BB000CAF31000CAF200018AF000002DF0A0018AF18
-S31A0010C66F010002DF0B000EA1FE000EA09F0018AF390002FF04B4
-S31A0010C6840018AF3A0002FF050004AF74000E1FFE0032CE4800EA
-S31A0010C6990EA3FE000EA2AD001AAC01001AAB00000CAF31000CE6
-S31A0010C6AEAF20001EAF010018CF0B0002DF0B001EAF000018DF22
-S31A0010C6C30A0002DF0A001ACC0B0002CC0D001ADB0A0002CB0CB3
-S31A0010C6D80033CE040004AF740032CE0C000EA1FE000EA0AD00F7
-S31A0010C6ED0CAF02000CAF130018AC01001A3C0B0018AB00001A94
-S31A0010C7027B0A003A7FC0000CAFC4000CAFB5000EA1FE000EA0C4
-S31A0010C717AD0018AC0D001E3C050018AB0C001E7B04003A7FC035
-S31A0010C72C000C05BF0032CE31000C14CF0035CE29000EA3FE0017
-S31A0010C7410EA2AD001EAF040002DF0C001EAF050002DF0D0033BF
-S31A0010C756CE0C000EA1FE000EA0AD0018A80D0018A90C000CAF81
-S31A0010C76B82000CAF93001E03040032CE20001E12050034CE1245
-S31A0010C780000CAF4B000EACFF000C44CC000C55BB000CAFCD000F
-S31A0010C7950EAEFF000CCECC000CDDBB000CCCCC000CDBBB000C22
-S31A0010C7AACC8C000CDB9B0033CE10000CC48C000CD59B000EA1F2
-S31A0010C7BFFE000EA0AD0002CB0C0002CC0D000EA3FE000EA2AD36
-S31A0010C7D4000CAF31000CAF200018AF000002DF0A0018AF0100F9
-S31A0010C7E902DF0B000EA1BE000EA03B0018AB03000E2BFE000ED8
-S31A0010C7FE1BFF0036CDFC003ACD660033CDE8000EA5FE000EA43F
-S31A0010C8139F001CAF330002EF19001CAF340002EF1A001CAF3549
-S31A0010C8280002EF1B001CAF360002EF1C001CAE38001CAD3700C9
-S31A0010C83D0EABFF000EAC26003AFA34001CAE3A001CAD39000EBC
-S31A0010C852ABFF000EAC0A003AFA340016AF060039F7A30023FF25
-S31A0010C867FF0039F7A80016AFFB0004AF740032CD69000EA1BF12
-S31A0010C87C000EA0AA0018AF5B000EFF7F0032CD690018AF5B0001
-S31A0010C89118BF5C0036CD690004AF73000EFF7F0032CD8D00049B
-S31A0010C8A6AF730004BF720036CD8D000EABFF003AD061000EA1AE
-S31A0010C8BBFE000EA0BB000EAFFF00037FFF000EAFFF00037FFF71
-S31A0010C8D0000EAFFF00037FFF000EAF5E00037FFF0018AE090095
-S31A0010C8E518AD080018AC070018AB0600397FD90016AF04000E5F
-S31A0010C8FAFADF000CAFF90002F904000E2A20000EFADF0032CD49
-S31A0010C90FBE0002FB000002FC010002FD020002FE03000CAF1B69
-S31A0010C924000CAF0C003A7FC2001EAB04000CBABA003AC6AE00AB
-S31A0010C9390EA1FE000EA0AD000EAFFF00037FFF000EAFFF0003CF
-S31A0010C94E7FFF000EAFFF00037FFF000EAF5E00037FFF0018AEA1
-S31A0010C963090018AD080018AC070018AB0600397FD90016AF04E5
-S31A0010C978000EFADF000CAFF90002F904000E2A20000EFADF00BB
-S31A0010C98D32CD9E0002FB000002FC010002FD020002FE03000CD6
-S31A0010C9A2AF1B000CAF0C003A7FC2001EAB04000CBABA0005BF4D
-S31A0010C9B7720001BF720005FF730001BF730033CD69000EA3FEEF
-S31A0010C9CC000EA26C000EABFE000EAC68000EA1FE000EA0BB0035
-S31A0010C9E11AAF000002CF0A001AAF010002CF0B000CAFC4000C56
-S31A0010C9F6AFB5001CAF000002CF0C001CAF010002CF0D000EA1B1
-S31A0010CA0BFE000EA0AD001AAF020002CF0A001AAF030002CF0B59
-S31A0010CA20000CAFC2000CAFB3001AAF020002CF0C001AAF03008C
-S31A0010CA3502CF0D00000074000EABFD003AD061000EACFF000E9C
-S31A0010CA4AABFF000CAFCE000CAFBD003ACEC40016AF050039F750
-S31A0010CA5FA30023FFFF0039F7A8000EA5FE000EA49F000EA1FE61
-S31A0010CA74000EA0BB0018AF0A0002EF190018AF0B0002EF1A0076
-S31A0010CA8918AE0D0018AD0C000EABFF000EAC26003AFA34000ED0
-S31A0010CA9EA1FE000EA0AD0018AF0A0002EF1B0018AF0B0002EFD3
-S31A0010CAB31C0018AE0D0018AD0C000EABFF000EAC0A003AFA34B4
-S31A0010CAC80039F7A30023FFFF0039F79E0016AFF70002FB0500C3
-S31A0010CADD02FC060002FD070002FE08001EA50C000EABFF003A5B
-S31A0010CAF2D061001EA808001EA907001EAE06001EAD05000E1587
-S31A0010CB07FE0036CD3A0004AF740036CD26000EA1FE000EA0BB62
-S31A0010CB1C0018AF0900037FFF0018AF0800037FFF0018AF07007F
-S31A0010CB31037FFF0018AF0600037FFF001EAE0C001EAD0B001E3E
-S31A0010CB46AC0A001EAB0900397FD90016AF04000CAFE8000CAF84
-S31A0010CB5BD9000CAFCE000CAFBD000EFADF000CAFFB0002FB0437
-S31A0010CB70000E2A20000EFADF0032CD230002FD000002FE010039
-S31A0010CB8502F9020002F803000EABFE000EACBB003A7FC2001EC6
-S31A0010CB9AAB04000CBABA003AC6AE000E15FE0032CD12000EACA7
-S31A0010CBAFEF000EABD8000CAFCD000CAFBC000EAFFE00397FD297
-S31A0010CBC4001EAF0800037FFF001EAF0800037FFF001EAF0800C5
-S31A0010CBD9037FFF001EAF0800037FFF00397FD90016AF04000EF2
-S31A0010CBEEAFFF00037FFF000EAFBF00037FFF000EAFE300037FCE
-S31A0010CC03FF000EAF7100037FFF00397FD50016AF040002FB0500
-S31A0010CC180002FC060002FD070002FE08000CAFE8000CAFD900A8
-S31A0010CC2D0CAFCE000CAFBD000E15FE0036CCEE0004AF7400366D
-S31A0010CC42CCDF000EA1FE000EA0AD0039F79600037EFF00037D4E
-S31A0010CC57FF0018AE090018AD080018AC070018AB0600397FD9F2
-S31A0010CC6C0016AF04000CAFE8000CAFD9000CAFCE000CAFBD009C
-S31A0010CC810EFADF000CAFFB0002FB04000E2A20000EFADF003279
-S31A0010CC96CCDC0002FD000002FE010002F9020002F803000EAB18
-S31A0010CCABFE000EACAD003A7FC2001EAB04000CBABA0016AF0963
-S31A0010CCC00039F79A0023FFFF0039F7A8000CAFC2000CAFB3009B
-S31A0010CCD50CAFDB000CAFEC000EA1FE000EA0BB001AAF00000216
-S31A0010CCEACF0A001AAF010002CF0B000CAFC4000CAFB5001CAFE6
-S31A0010CCFF000002CF0C001CAF010002CF0D000EA1FE000EA0AD7B
-S31A0010CD14001AAF020002CF0A001AAF030002CF0B000CAFC20029
-S31A0010CD290CAFB3001AAF020002CF0C001AAF030002CF0D00001F
-S31A0010CD3E0074000EABFD003AD061000EACFF000EABFF000CAF09
-S31A0010CD53CE000CAFBD003ACEC40039F7A30023FFFF0039F7A8D7
-S31A0010CD680016AFFB000CAFC4000CAFB50002FD010002FE0200EF
-S31A0010CD7D04AF74000E1FFE0032CC47001E1E0A000CAFF8001EDD
-S31A0010CD92A909000C79D90002F9030002F804001CA20D001C3251
-S31A0010CDA70B001CA30C001C730A000EF37F0036CC8F000EA2FF32
-S31A0010CDBC000EA3FF000EFADF000CAFFB0002FB00000E2A2000AA
-S31A0010CDD10EFADF0032CC8C0002E3000002E201000EAF800002BD
-S31A0010CDE6EF02000EAF000002EF030002EF040002EF05001EABCC
-S31A0010CDFB00000CBABA000EAEFF000EADFF000EACFF000EABFFA7
-S31A0010CE10000EF97F0032CC58000CB89F0036CC58000CAF9C0007
-S31A0010CE250CAF8D000EAFFE00397FD2000CAFE0000CAFD1000C22
-S31A0010CE3AAFC8000CAFB90004AF740032CC650004AD720004AC85
-S31A0010CE4F73000EAFFE00397FD2000CAFE0000CAFD1000CAFC856
-S31A0010CE64000CAFB9001E1204000CAFFC001EAB03000C7B3B00B6
-S31A0010CE790CAFCD000CAFBC000EAFFE00397FD2000370FF0003D5
-S31A0010CE8E71FF0039F79600397FD50016AF04000EAFFF00037FAF
-S31A0010CEA3FF000EAFFF00037FFF000EAFFF00037FFF000EAF7EB0
-S31A0010CEB800037FFF000E8C7F00397FD40016AF04000E8C7F0047
-S31A0010CECD02EC070002EB060002ED080002EE090033CBEC001C5C
-S31A0010CEE2A20B001CA30A000EF37F0036CC41000EA2FF000EA38C
-S31A0010CEF7FF000EFADF000CAFFB0002FB00000E2A20000EFADF38
-S31A0010CF0C0032CC3E0002E3000002E201000EAF800002EF0200C4
-S31A0010CF210EAF000002EF030002EF040002EF05001EAB00000C74
-S31A0010CF36BABA000EAEFF000EADFF000EACFF000EABFF001EAFA9
-S31A0010CF4B01000EFF7F0032CC08001EAF01001EBF020036CC0871
-S31A0010CF60001EAD02001EAC01000EAFFE00397FD2000CAFE0002E
-S31A0010CF750CAFD1000CAFC8000CAFB90004AF740032CC150004D0
-S31A0010CF8AAD720004AC73000EAFFE00397FD2000CAFE0000CAF9F
-S31A0010CF9FD1000CAFC8000CAFB9001E1202000CAFFC001EAB01EC
-S31A0010CFB4000C7B3B000CAFCD000CAFBC000EAFFE00397FD2004C
-S31A0010CFC90370FF000371FF0039F79600397FD50016AF04000E2E
-S31A0010CFDEAFFF00037FFF000EAFFF00037FFF000EAFFF00037F7E
-S31A0010CFF3FF000EAF7E00037FFF000E8C7F00397FD40016AF04EA
-S31A0010D0080004AF740032CBF0000EAFFF00037FFF000EAFFF00F0
-S31A0010D01D037FFF000EAFFF00037FFF000EAF7E00037FFF000E60
-S31A0010D0328C7F00397FD40016AF040002EB060002EC070002ED9C
-S31A0010D047080002EE090016AF050039F7A30023FFFF0039F7A827
-S31A0010D05C0016AFF50002FB020002FC030002FD040002FE0500E7
-S31A0010D0710EAFFE0002FF06003AC3F6000E1CFF0036CB61000E46
-S31A0010D086A5FE000EA461001D1F020002EF02000E1FFE0032CB70
-S31A0010D09BD3000EAFEF0002EF01000EAFD80002EF000033CBCCA9
-S31A0010D0B0000EA1BF000EA0AA001CAF0200181F100035CBCC00AF
-S31A0010D0C50EAFFF0002EF02001CA801001CA900000EAF17000330
-S31A0010D0DA7FFF000EAFFC00037FFF000CAF9D000CAF8E00397F1A
-S31A0010D0EFD80016AF020002FD090002FE0A0002FD070002FE0857
-S31A0010D104001EA003001EA1020018AE010018AD00001EAF040021
-S31A0010D11902FF00001EAF050002FF01000CAF9B000CAF8C003A3F
-S31A0010D12E7FBE0002EB000002EC01000EAF1700037FFF000EAFAB
-S31A0010D143FC00037FFF000CAFCE000CAFBD00397FD80016AF02EC
-S31A0010D158000CAFDB000CAFEC001EA003001EA1020018AF000026
-S31A0010D16D0EFF7F0036CB9B000EABFE000EAC61000EADFC003AAC
-S31A0010D182F9ED000EAFFF0002FF060033CB61000EA1BF000EA05E
-S31A0010D197AA0018A80E000EA9FF000C1D9F0032CB94000C1E8F2D
-S31A0010D1AC0034CB86000EA1BE000EA03B0018AB01000E2B7F0001
-S31A0010D1C10E1BFF0036CB67001EAF090002FF00001EAF0A000203
-S31A0010D1D6FF01000CAF9B000CAF8C0033CB740018AE0F000EAD8F
-S31A0010D1EBFF000C1BDF0032CB81000C1CEF0031CB61000EA1BEB5
-S31A0010D200000EA03B0018AB01000E2B7F000E1BFF0036CB67000E
-S31A0010D2151EAF070002FF00001EAF080002FF01000CAFDB000CA0
-S31A0010D22AAFEC001EAE05001EAD04003A7FBE001EA003001EA1A7
-S31A0010D23F020002CB000002CC01000EA1FF000EA02D0018AF01D5
-S31A0010D254000EBFFB0002CF010033CB65000EAFFF0002FF0600EF
-S31A0010D2690EABFE000EAC61000EADFC003AF9ED001EAC06000E13
-S31A0010D27EABFF0016AF0B0039F7A30023FFFF0039F7A80016AF7A
-S31A0010D293D10002FB080002FC090002FD0A0002FE0B000EAFFFC3
-S31A0010D2A80002FF0C000EAFFE0002FF0D000EAFFF0002FF0E00BA
-S31A0010D2BD0EAFFF0002FF1F0002FF200002FF210002FF22000202
-S31A0010D2D2FD230002FE24000EAFFF0002FF250002FF26000EAF27
-S31A0010D2E7FF0002FF290002FF2A000EA1BF000EA0AA0018AC3905
-S31A0010D2FC000EABFF000EA1BF000EA0BB0018AE010018AD0000EC
-S31A0010D3113AF80B0002FB170002FC180002FB190002FC1A001E3E
-S31A0010D326A209001EA308001AAF000002FF15001AAF010002FFBE
-S31A0010D33B16000EA1FE000EA09F001EAC0B001EAB0A00180B1FCD
-S31A0010D3500032CB2900181C200031CB260002CB1F0002CC20003C
-S31A0010D3651EA009001EA1080018AC090018AB08001EAF0A00029E
-S31A0010D37AFF00001EAF0B0002FF01000CAF6F000ECFFB0002FFAC
-S31A0010D38F03000D5F7F0002FF02001EAE16001EAD15003AC5368B
-S31A0010D3A4001EAB33000E2BF7000E1BFF0036CB0F000EAFFF003E
-S31A0010D3B902FF060002FF07000CAF64000EC4FB000D5F75001C51
-S31A0010D3CEAF020002FF1D001CAF030002FF1E000CAF5B000CAFA7
-S31A0010D3E34C001EAE09001EAD08003AC2DA0002FB0F0002FC103B
-S31A0010D3F8000E1B7F0032CAFD000E1CFE0036C8FE001EA209007C
-S31A0010D40D1EA308001AAC01001AAB00001A0B020032CAF6001A6C
-S31A0010D4221C030031C8FE001EAF340002FF00001EAF350002FFC4
-S31A0010D43701000CAF5B000CAF4C001EAE10001EAD0F003AC555A2
-S31A0010D44C0002FB130002FC14001EA009001EA10800180B0600DC
-S31A0010D46132CAE500181C070034C8FE000CAF6F000ECFFB000286
-S31A0010D476FF2C000D5F7F0002FF2B001EAF0D0036CAC9000EA3F5
-S31A0010D48BBF000EA2AA000CAF31000CAF20001AAC360018CC387E
-S31A0010D4A0001AAB350018DB37001EA214001EA313000C03BF00C7
-S31A0010D4B532CAD0000C12CF0031CAAC000EA1BE000EA03B00187E
-S31A0010D4CAAB02000E2BDF000E1BFF0032CAAC001EAF0E0032CACB
-S31A0010D4DFAC000EAFFE0002FF0E000EADFE001EAF0C000E0FD825
-S31A0010D4F40030CABF001EAD0C000E4DD7001EA009001EA10800BD
-S31A0010D50918AC03001E3C160018AB02001E7B15000CAFDE000EA6
-S31A0010D51E6DFE003AF7D40002FB170002FC18000EFB7F0032CAC4
-S31A0010D533B0000CBCBF0032CAAC000EAFFF0002FF17000EAFFE5F
-S31A0010D5480002FF18001F1F0C0002FF0C001EAF16001ECF180060
-S31A0010D55D02FF1C001EAF15001EDF170002FF1B001EAC1C001E70
-S31A0010D572AB1B001EA209001EA308001A0B020032CA9D001A1C40
-S31A0010D587030034CA98001AAF020002FF1B001AAF030002FF1C10
-S31A0010D59C001EAF1C001E3F160002FF18001EAF1B001E7F150055
-S31A0010D5B102FF17001F9F100002FF01001FCF0F0002FF00001E4B
-S31A0010D5C6AC18001EAB17000EAEEF000EADF1003A7FBE0002FBCB
-S31A0010D5DB270002FC28001EAC1E001EAB1D001EAE10001EAD0F54
-S31A0010D5F0003AFE57000CAFCE000CAFBD001EAF270002FF00008B
-S31A0010D6051EAF280002FF01001EAC24001EAB23003AFE440002AB
-S31A0010D61AFB0A0002FC0B001EA009001EA1080018AC090018ABB9
-S31A0010D62F08001EAF0A0002FF00001EAF0B0002FF01000CAF6FEC
-S31A0010D644000ECFFB0002FF03000D5F7F0002FF02001EAE1C0009
-S31A0010D6591EAD1B003AC536001EAB33000E2BF7000E1BFF003601
-S31A0010D66ECA1E000EA3BF000EA2AA001AAC3B001AAB3A000CCC07
-S31A0010D683CC000CDBBB001EAE26001EAD25000C1DBF0032CA58F0
-S31A0010D698000C1ECF0031CA1E000CAFEC001ECC28000CAFDB0006
-S31A0010D6AD1EDB27000CAFCD000CAFBC000EAFFF00397FD2000CE1
-S31A0010D6C2AFE0000CAFD1000CAFC8000CAFB9000E887F001AAD4F
-S31A0010D6D73B001AAC3A000EAFFF00397FD200037EFF00037DFFA8
-S31A0010D6EC00037CFF00037BFF000CAF9B000CAF8C000CAF1D00A3
-S31A0010D7010CAF0E00397FD50016AF04003A7FC5000EAFFF0003A1
-S31A0010D7167FFF000EAFFF00037FFF000EAFFF00037FFF000EAF33
-S31A0010D72B7E00037FFF000E8C7F00397FD40016AF04000CAFE0CB
-S31A0010D740000CAFD1000CAFC8000CAFB9001EA22C001EA32B0063
-S31A0010D7551AAD03001AAC02000EAFFE00397FD2000370FF00035D
-S31A0010D76A71FF0039F79600397FD90016AF0400397FD10002DD9C
-S31A0010D77F020002DE03001EAC2C001EAB2B001EAE09001EAD0808
-S31A0010D794003AC2DA0002FB110002FC12001EAF340002FF000074
-S31A0010D7A91EAF350002FF01001EAC2C001EAB2B001EAE12001E6B
-S31A0010D7BEAD11003AC555000CAFC4000CAFB5000EA1BF000EA023
-S31A0010D7D3AA000CAF02000CAF130018AC36001ACC380018AB35E6
-S31A0010D7E8001ADB37000C05BF0032CA01000C14CF0031C9D8005C
-S31A0010D7FD0EA1BE000EA03B0018AB02000E2BDF000E1BFF003670
-S31A0010D812C9D8000CAF4F001E3F140002FF2E000CAF5F001E7FE9
-S31A0010D827130002FF2D001EAF190002FF00001EAF1A0002FF01C5
-S31A0010D83C001EAC2A001EAB29001EAE18001EAD17003A7FBE009E
-S31A0010D8511EAE2E001EAD2D000C0DBF0032C9E6000C1ECF0034D4
-S31A0010D866C9D8001EAF190002FF00001EAF1A0002FF01001EAC5C
-S31A0010D87B2A001EAB29001EAE18001EAD17003A7FBE000CAFC4AA
-S31A0010D890001EC414000CAFB5001ED513000CAF4F001E3F140086
-S31A0010D8A502FF2A000CAF5F001E7F130002FF29001EAF17000253
-S31A0010D8BAFF19001EAF180002FF1A001EA012001EA111000E116C
-S31A0010D8CF7F0032C9C8000E10FE0036C9AC001E1414000CAFFC28
-S31A0010D8E4001EAB13000C7B5B000EFB7F0036C9C0000D9FCC009C
-S31A0010D8F90DCFBB000E0BF80032C9BD000E1C000030C9B3000EC0
-S31A0010D90EECEF00037FFF000EEBEF000CBFCB0016AC01001E0B28
-S31A0010D923130032C9B4001E1C140034C9B0000EACFE000EABFFAC
-S31A0010D9380033C9AE000EACFF000EABFF000E1CFF0036C98900F8
-S31A0010D94D1EAF0E0032C989001EAF0D0036C989001EA218001EF8
-S31A0010D962A317000E03FF0032C9A3000E12FE0034C989000D0F72
-S31A0010D9773B000D4F2C0002FB170002FC18001EA009001EA1080A
-S31A0010D98C0018AC03001E3C160018AB02001E7B15001EAE1800E2
-S31A0010D9A11EAD17003AF7D4001EAE0C000CAFED000E6DFE000C6F
-S31A0010D9B6CECC000CDDBB000E0BFF0032C98D000E1CD80034CA68
-S31A0010D9CBDF000EAFFF0002FF0D0033CADF001EAF26001ECF28A4
-S31A0010D9E00002FF26001EAF25001EDF270002FF25001EA21200E7
-S31A0010D9F51EA311000E137F0032C97D000E12FE0036C908001EDA
-S31A0010DA0AA009001EA108001805060032C978001814070034C9BB
-S31A0010DA1F32001F0B13001F4C14000D0F5D000D4F4E000CCECC25
-S31A0010DA34000CDDBB001EAE18001EAD1700397FDC001ECE2200BB
-S31A0010DA4902FE22001EDD210002FD21001EDC200002FC20001EFE
-S31A0010DA5EDB1F0002FB1F001EA21C001EA31B001803020032C9B7
-S31A0010DA7361001812030031C94D001EAF0A0002FF23001EAF0BE0
-S31A0010DA880002FF240002F3150002F216001EAF110002FF0F004C
-S31A0010DA9D1EAF120002FF100002F5130002F414001EA02C001E52
-S31A0010DAB2A12B0018AF020002FF1D0018AF030002FF1E0033CAB0
-S31A0010DAC7DF001EA209001EA308001AAF03001A3F010002DF03B9
-S31A0010DADC001AAF02001A7F000002DF02000EAFEF00037FFF00AB
-S31A0010DAF10EAFD800037FFF000EAFFF00037FFF000EAFFF0003F8
-S31A0010DB067FFF001EAE26001EAD25001EAC24001EAB2300397F02
-S31A0010DB1BD60016AF04001EA009001EA1080002CD040002CE050A
-S31A0010DB300033C8F6001EA209001EA308001AAC07001E3C14000C
-S31A0010DB451AAB06001E7B13001E34140002F401001E7513000239
-S31A0010DB5AF500001EAE18001EAD17003A7FBE0002FB170002FC5C
-S31A0010DB6F18001ECC16001EDB15001EA009001EA10800183C0182
-S31A0010DB840002CC0300187B000002CB02001EAC140018CC07007A
-S31A0010DB991EAB130018DB06000D0FBB000D4FCC001EAE18001E8B
-S31A0010DBAEAD1700397FDC001ECE220002FE22001EDD210002FDA9
-S31A0010DBC321001EDC200002FC20001EDB1F0002FB1F0000FE6646
-S31A0010DBD80033C945001EA209001EA308001EAF16001A3F010012
-S31A0010DBED02DF03001EAF15001A7F000002DF020000FE66003334
-S31A0010DC02C945001EA009001EA108000EAFFF0002CF040002CFF9
-S31A0010DC1705000EAFFF0002CF020002CF030016AF2F0039F7A3B3
-S31A0010DC2C0023FFFF0039F7A80016AFF2000EAFFF0002FF0D0053
-S31A0010DC4100FF660000FF65003AC3CD000EAFFE0002FF0B000E50
-S31A0010DC56AF5A0002FF0C000EAFFF0002FF030002FF04000EA515
-S31A0010DC6BFE000EA45E000EA1FE000EA05A001CAE0100183E01A9
-S31A0010DC80001CAD0000187D00000EA1BF000EA0BB0018AC01007F
-S31A0010DC9518AB00000D9FEE000E5DBF003AC37B0002FB05000261
-S31A0010DCAAFC06000EFB7F0036C8CA0002F50B0002F40C000D9F4D
-S31A0010DCBFCF0002FF06000DCFBF0002FF05000EAFFE0002FF0DFA
-S31A0010DCD4003AEA99000CAFCB000EA5FF000EA42D001CAC010088
-S31A0010DCE90EECDF000E2CFE003AEB470002FB070002FC08000E7B
-S31A0010DCFEA1BF000EA0AA000EA3BF000EA2BB0018AF36001ACF82
-S31A0010DD130C0002FF0A0018AF35001ADF0B0002FF09001CAE0EEC
-S31A0010DD28001CAD0D000EAFF70002FF00000EAFFC0002FF01008A
-S31A0010DD3D0EAF170002FF02000CAF6C000ECCFC000D5F7B003AC6
-S31A0010DD52CB5C000EA1FE000EA09F001EAF070002CF31001EAFE2
-S31A0010DD67080002CF32001EAF050002CF2F001EAF060002CF30E0
-S31A0010DD7C001EAF0D0036C89600199F320002CF320019CF310008
-S31A0010DD9102CF3100199F300002CF300019CF2F0002CF2F000E57
-S31A0010DDA6AFFE0002CF060004AF660036C8830000FE65001EAC07
-S31A0010DDBB06001EAB05000EA1BF000EA0BB0018AE010018AD0006
-S31A0010DDD0003AF7C7001EA00C001EA10B0018CC010001BC670093
-S31A0010DDE518DB000001BB680033C8820000FF650016AF0E00390F
-S31A0010DDFAF7A30023FFFF0039F7A80016AFEC000CAFB9000CAF8B
-S31A0010DE0FCB000CAFDC0002FE0D001EA419001EA518000EA1BF55
-S31A0010DE24000EA0BB0018AF000002FF120018AF010002FF1300B4
-S31A0010DE3900FE6C000EA1BF000EA0AA001805500032C86B0018A4
-S31A0010DE4E14510034C8670018A4510018A5500033C8610018054E
-S31A0010DE63520032C864001814530031C8610018A4530018A552ED
-S31A0010DE78000EA1BF000EA0AA0018CC360002FC0A0018DB35006F
-S31A0010DE8D02FB09000EA1FF000EA02D0018AB01000EEBDF000E31
-S31A0010DEA22BFE000CAFBC000CAF9B003AEB470002FB070002FCF1
-S31A0010DEB708000EAFFE0002FF0B000EAF5E0002FF0C000EABBFD1
-S31A0010DECC000EACBB003AC2E60002FB050002FC06000EA1FE0021
-S31A0010DEE10EA09F0018AF000002FF030018AF010002FF04000E23
-S31A0010DEF6A1FF000EA02D0018AE0E0018AD0D001EAF0D0002FF05
-S31A0010DF0B000002F5010002F402000CAF6C000ECCFC000D5F7B17
-S31A0010DF20003ACB5C0004AF650036C813001EAC0C001EAB0B00A2
-S31A0010DF350EA1FE000EA09F0018AE010018AD00003AC40C00042D
-S31A0010DF4A4C6700045B68001EAE13001EAD1200397FDC000EEDE7
-S31A0010DF5FFB000EECFB000CBFDE000E6BFB000CBFCD000CAFBC7B
-S31A0010DF74000E6BFD0002FD0E0002FE0F000EA1BF000EA0AA002A
-S31A0010DF8918A8360018A935000CAFDB000CAFEC000CAF9D000CE0
-S31A0010DF9EAF8E003AF83F0002FB100002FC110033C80B001EAFBB
-S31A0010DFB3050002FF0E001EAF060002FF0F001EAF070002FF1067
-S31A0010DFC8001EAF080002FF11000EA1BE000EA03B0018AB00002E
-S31A0010DFDD0E2B7F000E1BFF0032C7D1000EA1BF000EA0AA001891
-S31A0010DFF2AF420018BF430036C7D1000EABBF000EACBB003AC242
-S31A0010E007E60002FB050002FC06000EA5FE000EA49F001EAF0F24
-S31A0010E01C001CCF010002FF04001EAF0E001CDF000002FF03000E
-S31A0010E0310EAFFF0002FF070002FF08001CAE20001CAD1F001E07
-S31A0010E046AF0D0002FF00000EAFFC0002FF01000EAF170002FF62
-S31A0010E05B02000CAF6C000ECCFC000D5F7B003ACB5C000EA1BFE5
-S31A0010E070000EA0AA0018AC430018AB42001EAE06001EAD05007F
-S31A0010E0853AF7F70002EB150002EC16000EA1BF000EA0AA001864
-S31A0010E09AAC450018AB44001EAE08001EAD07003AF7F70002EBA8
-S31A0010E0AF170002EC180033C7C5000EA3FE000EA29F000EA1BFFE
-S31A0010E0C4000EA0AA0018AF420002DF150018AF430002DF1600D9
-S31A0010E0D918AF440002DF170018AF450002DF18000EAFFF000256
-S31A0010E0EEFF00001EAE11001EAD10001EAC0F001EAB0E003AC79F
-S31A0010E103BB0016AF140039F7A30023FFFF0039F7A80016AFF8D4
-S31A0010E1180002FB000002FC010002FD020002FE03000EA1FE002F
-S31A0010E12D0EA09F001EAE0100183E16001EAD0000187D150002CA
-S31A0010E142FD000002FE01001EAC0300183C18001EAB0200187B1D
-S31A0010E157170002FB020002FC030002CD330002CE340002CB357E
-S31A0010E16C0002CC360004AF650032C7900018AC300018CC01000A
-S31A0010E18118AB2F0018DB00001ECC010002FC01001EDB000002A9
-S31A0010E196FB000018AC320018CC030018AB310018DB02001ECCB3
-S31A0010E1AB030002FC03001EDB020002FB020033C7840018AF30D6
-S31A0010E1C000183F160002FF010018AF2F00187F150002FF000022
-S31A0010E1D518AF3200183F180002FF030018AF3100187F1700020B
-S31A0010E1EAFF02001EAF00000EFF7F0036C77D000CAF7B000CAF45
-S31A0010E1FF6C000EADFB003AF9ED000EA5FE000EA49F001EAF00E4
-S31A0010E2140002EF37001EAF010002EF38001EAF020002EF3900C7
-S31A0010E2291EAF030002EF3A000EABFE003AD061001EAF0C0032A2
-S31A0010E23EC766001CAF33000EFF7F0036C757000EA1BE000EA08F
-S31A0010E2533B0018AB02000E2BEF000E1BFF0036C757000EAFFF40
-S31A0010E2680002FF040002FF05000CAF60000EC0FB000D5F7100BF
-S31A0010E27D0EAFFF0002CF020002CF03000CAF1B000CAF0C000E68
-S31A0010E292ADFE000EAE68003ACCCD0033C744000EA5FE000EA41E
-S31A0010E2A7D7001CAF070036C74B0004AF9C0032C744000EA1BE62
-S31A0010E2BC000EA03B0018AB03000E2BFB000E1BFF0036C74400EB
-S31A0010E2D10EABFE000EAC6C000EADFE000EAE68003ACCCD000E87
-S31A0010E2E6AFFE0002EF070016AF080039F7A30023FFFF0039F777
-S31A0010E2FBA80016AFEC0000FF660000FF65000EA1BE000EA06A51
-S31A0010E310000EA3BF000EA2BB001AAF050002FF12001AAF060057
-S31A0010E32502FF130018AF140001BF6A0018AF150001BF69000EA1
-S31A0010E33AACFF000EABFF000EAE59000EADF4003AC1CF000CAF0C
-S31A0010E34FC4000CAFB5000EACFF000EABBF000EAE59000EADF47A
-S31A0010E364003AC1CF0002FB000002FC010002F5020002F40300D6
-S31A0010E3791EAC13001EAB12000EAE59000EADF4003AC198000268
-S31A0010E38EFB0E0002FC0F000CAF6F000ECFF10002FF0D000D5FDC
-S31A0010E3A37F0002FF0C000EAFFF0002FF040002FF05000EA1BF8E
-S31A0010E3B8000EA0BB0018AE010018AD00000D9FCC000E5BBF00A5
-S31A0010E3CD397FDC000ECDDF000D5FCC000D5FBB000EEDFB000E74
-S31A0010E3E2ECFB000CBFDE000E6BFB000CBFCD000CAFBC000E6B84
-S31A0010E3F7FD0002FD060002FE07000EA3BD000EA2A0001AAF0F5C
-S31A0010E40C0002FF08001AAF100002FF09001AAC10001AAB0F004F
-S31A0010E4210EAFEF0002FF01000EAFD80002FF00000EAEEF000ED3
-S31A0010E436ADF1003A7FBE0002FB080002FC09000EA1BF000EA07E
-S31A0010E44BAA0018AF360018CF4A0002FF0B0018AF350018DF4986
-S31A0010E4600002FF0A000EA1FF000EA02D000CAF02000CAF130072
-S31A0010E4751AAF13000EBF7F0002CF13000EA5FE000EA49F001C52
-S31A0010E48AAF1F0002FF10001CAF200002FF11000EAFF40002EFE9
-S31A0010E49F1F000EAF590002EF20000EAFF70002FF00000EAFFC9E
-S31A0010E4B40002FF01000EAF170002FF02000CAF6C000ECCFB0068
-S31A0010E4C90D5F7B000EAE59000EADF4003ACB5C001EAF1000023D
-S31A0010E4DEEF1F001EAF110002EF20000EA1FF000EA02D000CAFD2
-S31A0010E4F302000CAF13001AAF13000E2F800002CF13001EAC07E0
-S31A0010E508001EAB06000EA1BD000EA0A00018AE0C0018AD0B00BD
-S31A0010E51D3A7FBA000CAFCE000CAFBD000EABFF000EAC10003AA3
-S31A0010E532FA340000FF6B0016AF140039F7A30023FFFF0039F729
-S31A0010E547960016AFFE000EA1FE000EA09F0018AF35000EFF7FCE
-S31A0010E55C0036C6A2000EA1BF000EA0AA0018AC360018AB35003E
-S31A0010E57133C68F0004AF9C000E1FFE0032C693000EA1BF000E76
-S31A0010E586A0BB0018AE080018AD07000EAFFC0002FF00000EAFFE
-S31A0010E59B170002FF01000EABFF000EAC70003AC5550033C68F7E
-S31A0010E5B0000EA1FF000EA02D0018AC0A0018AB090016AF020056
-S31A0010E5C539F7930023FFFF0039F7A8000CAFBD000EA3BF000E79
-S31A0010E5DAA2BB001AA404000E24FC000E8FFD000CAFFC000D9FCC
-S31A0010E5EFFB000CBBCB000CAFB5000EE5FD000E1DFF0036C6727C
-S31A0010E604003AC2F7000E1CFF0036C676000EA1BD000EA0A000A3
-S31A0010E61918AE51000EA5FF0033C658000EA1BD000EA0A00018EA
-S31A0010E62EAE520033C658000EA1BD000EA0A00018A807001A389D
-S31A0010E643030018A906001A79020018AE53000EADFF000CAF9B24
-S31A0010E658000CAF8C00397FDD000EAF9B00037FFF000EAFFF0026
-S31A0010E66D037FFF00397FD70016AF02000E15FF0032C65D00181C
-S31A0010E682CE510033C658000E14FE0032C6590018CE520033C65B
-S31A0010E697580018AE50000EA1BD000EA0A000181E0A0035C64EA7
-S31A0010E6AC000EA1FF000EA02D0018AF10000EBFEF0002CF100046
-S31A0010E6C133C649000EA1FF000EA02D0018AF10000E2F1000023D
-S31A0010E6D6CF10000EA1FF000EA02D0002CE04000CAF5C000EAB0D
-S31A0010E6EBFF0039F7A30023FFFF0039F7A80016AFF90002FB027C
-S31A0010E7000002FC030002FD040002FE05001EA20D001EAC0C0042
-S31A0010E7151EAB0B000CBCBF0032C635000EACFE000EABFF0002DF
-S31A0010E72AFB0B0002FC0C000EA1BF000EA0AA001812480030C686
-S31A0010E73F160033C619000CAF2C000EABFF000CCCCC000CDBBBA2
-S31A0010E754000CAFC4001EC403000CAFB5001ED502001CAC010008
-S31A0010E7691CAB00001EAF0B0002FF00001EAF0C0002FF01001EEC
-S31A0010E77EAE05001EAD040002F206003A7FBE0002EB000002ECA2
-S31A0010E79301001EA206000DBF22000E12000032C62E001F8C05B0
-S31A0010E7A8001F8B04000CAFBC000EECFD000EABFF0016AF0700A6
-S31A0010E7BD39F7A30023FFFF0039F7A80016AFF80002FB020002A7
-S31A0010E7D2FC030002FD040002FE05001EAE0D001EAD0C000CBE9B
-S31A0010E7E7DF0032C602000EAEFE000EADFF0002FD0C0002FE0DA2
-S31A0010E7FC001EAC05001EAB04003ACBE90002FC06001EAC0E008C
-S31A0010E8110EABFF000CCCCC000CDBBB000CAFC0001EC003000C76
-S31A0010E826AFB1001ED102001EA205001EA304001AAF000002CF52
-S31A0010E83B00001AAF010002CF010033C5D8001EAC0E000EABFFB6
-S31A0010E850000CCCCC000CDBBB000CAFC4001EC403000CAFB50083
-S31A0010E8651ED502001CAC01001CAB00001EA005001EA104001865
-S31A0010E87AAE010018AD00001EAF0C0002FF00001EAF0D0002FF4A
-S31A0010E88F01003A7FBE0002EB000002EC01001F1F0E0002FF0EAF
-S31A0010E8A4000E1FF10034C5ED001EAC06000EABFF0016AF0800F0
-S31A0010E8B939F7A30023FFFF0039F7960016AFFE0002FB01003A7F
-S31A0010E8CEC3DA000CAFC0000CAFB10018AF00001E1F010036C59B
-S31A0010E8E3B40018AF01000E1FAA0032C5B40018AF00000E1FAA6E
-S31A0010E8F80036C5BD0018AF00000E1FFA0032C5B4000D1F6E000A
-S31A0010E90D0D5F7D000EAFFF0002FF00000EABFE000CAFDC000CDF
-S31A0010E922AFED000EAEE7003AFD620016AF020039F7930023FF46
-S31A0010E937FF0039F7A80016AFFC000CAFC4000CAFB5003AC3F63B
-S31A0010E94C000E1CFF0032C59D000EAFAA0002EF00000EAFAA0024
-S31A0010E96102EF01003AC3DA0002FB000002FC01000EACDF000E1F
-S31A0010E976ABFF000CAF5D000CAF4E003AFDF00033C56E000EAF61
-S31A0010E98BE70002FF03000EAFE70002FF02003AC3DA000CAFC07D
-S31A0010E9A0000CAFB10018AF01000E1FAA0032C590000EAFE50018
-S31A0010E9B502FF020033C58E000EAFE50002FF03001EAB02003A03
-S31A0010E9CAFD47000CAF4E000ECEFD000D5F5D000EAFFD0002FF78
-S31A0010E9DF00000EABE1000CAFDC000CAFED001EAE02003AFD62CD
-S31A0010E9F4000EAFFF0002EF00000EAFAA0002EF01000EAFFF0036
-S31A0010EA0902FF00000EABFD000CAF5C000CAF4D001EAE02003A04
-S31A0010EA1EFD62000EAFFF0002EF01000EAFFF0002FF00000EAB4A
-S31A0010EA33FD000CAF5C000CAF4D001EAE03003AFD620016AF046B
-S31A0010EA480039F7A30023FFFF0039F7960016AFFC000EA1FE007B
-S31A0010EA5D0EA09F0018AE010018AD00000EA1FF000EA02D001814
-S31A0010EA72AF0D0002FF000018AF0E0002FF01000EAFFF0002FF28
-S31A0010EA8702000EAF700002FF03000EABFE000EAC5E003AC5362D
-S31A0010EA9C0016AF040039F7930023FFFF0039F7A80016AFFC0009
-S31A0010EAB10CAFC4000CAFB50002FD020002FE03001EAE09001E54
-S31A0010EAC6AD08001CAC03001CAB02000EAFFC0002FF00000EAF65
-S31A0010EADB170002FF01003A7FBE000EAFFF0002FF01000EAFFB0A
-S31A0010EAF00002FF00001EAE03001EAD02003A7FBE001CCC0100FE
-S31A0010EB051CDB00000EFB7F0036C539000EACFF000EABFF0016AB
-S31A0010EB1AAF040039F7A30023FFFF0039F7A8003AC40C000CAF8C
-S31A0010EB2FC4000CAFB5001EAE05001EAD04003AC4FE001EA00726
-S31A0010EB44001EA1060002CB000002CC01000CAF5B000CAF4C0028
-S31A0010EB591EAE05001EAD04003AC4CC001EA007001EA10600029B
-S31A0010EB6ECB020002CC030039F7A30023FFFF0039F7A80016AF4D
-S31A0010EB83F80002FB040002FC05000CAFE4000CAFD5001EAF0C63
-S31A0010EB980001BF6A001EAF0D0001BF69000EACFF000EABFF00B4
-S31A0010EBAD3AC1CF0002FB060002FC07000EACFF000EABBF000C2E
-S31A0010EBC2AF5D000CAF4E003AC1CF0002FB000002FC01001EAF80
-S31A0010EBD7060002FF02001EAF070002FF03001EAC05001EAB0496
-S31A0010EBEC000CAF5D000CAF4E003AC1980016AF080039F7A300AA
-S31A0010EC0123FFFF0039F7A80016AFFA0002FB000002FC01000232
-S31A0010EC16FD020002FE03000CAF7B000CAF6C003AC201000EABBE
-S31A0010EC2BFF000CCCC4000CDBB5000CAF4C000ECC46000CAF5B4A
-S31A0010EC40000EDBBF001EAE01001EAD00003AC36B0002FB040000
-S31A0010EC5502FC05000CAF4C000ECCF6000CAF5B000EDBBE001EDF
-S31A0010EC6AAE01001EAD00003AC36B001EAE03000ECEAB001EAD7C
-S31A0010EC7F02000EDD0A00397FDC000ECDBF000D5FCC000D5FBBE6
-S31A0010EC94000EEDFD000EECFD000CBFDE000E6BFD000CBFCD00AF
-S31A0010ECA90CAFBC000E6BFD000CAFEC001ECC05000CAFDB001E09
-S31A0010ECBEDB040016AF060039F7A30023FFFF0039F7A80016AFF0
-S31A0010ECD3FA0002FB000002FC010002FD020002FE03000CAF7BE6
-S31A0010ECE8000CAF6C003AC355000CAFC5003AC3E7000CAF5E000B
-S31A0010ECFD0EADFF000CCEE4000CDDD5000CAF4E000ECEFD000DC7
-S31A0010ED125F5D000CCECC000CDDBB001EAE01001EAD00003AC33B
-S31A0010ED276B0002FB040002FC05001EAC03001EAB02003AC3D7E6
-S31A0010ED3C000CC4CC000CD5BB001EAE01001EAD00003AC36B0074
-S31A0010ED510CAFCE000CAFBD001EAC03001EAB02003AC493000C61
-S31A0010ED66AFE0000CAFD1000CAFC8000CAFB9001EAD05001EACD6
-S31A0010ED7B04000EAFFE00397FD2000370FF000371FF0039F79679
-S31A0010ED9000397FD90016AF0400397FD1000CAFDB000CAFEC0038
-S31A0010EDA516AF060039F7A30023FFFF0039F796000ECCA5000E31
-S31A0010EDBADB0B00397FDC000EAFFE00397FCD000EAFFF00037F36
-S31A0010EDCFFF000EAFFF00037FFF000EAFFF00037FFF000EAF8E55
-S31A0010EDE400037FFF00397FD90016AF04003A7FC50039F79300E8
-S31A0010EDF923FFFF0039F7960016AFFE0002FD000002FE01000E37
-S31A0010EE0EAEFF000EADFB003A7FBE0016AF020039F7930023FF53
-S31A0010EE23FF0039F7960016AFFB000EA1BF000EA0AA0004AF7155
-S31A0010EE3800181F5D0034C46D0000FE640033C46C0000FF64008E
-S31A0010EE4D0EA3FF000EA22D000EA1BF000EA0AA001AAC0A001A5D
-S31A0010EE62AB0900180B350032C46300181C360030C43F0004AFD0
-S31A0010EE77640032C459000EA1FF000EA053000EAFFE0002CF1072
-S31A0010EE8C00051F710001BF710033C43E000D1F6C000D5F7B00E1
-S31A0010EEA10EADFB003AF9ED000EA1BE000EA03B0018AB03000E46
-S31A0010EEB62BFE000E1BFF0036C447001EAE04001EAD03001EAC37
-S31A0010EECB02001EAB01000EAFFE0002FF00003AC7BB0033C43EA3
-S31A0010EEE0001EAE04001EAD03001EAC02001EAB01000EAFFF0017
-S31A0010EEF502FF00003AC7BB0033C43E0000FF710016AF0500398D
-S31A0010EF0AF7930023FFFF0039F796000E1BF80030C432000CAF69
-S31A0010EF1FBC000EABFF000EAEF6000EADFF003AF7C70033C40EEA
-S31A0010EF34000CAFBC000EABFF000ECC06000DFFBB000CAFCE0053
-S31A0010EF490CAFBD000CAFDC000E6CFE000CAFCB000EECBF000CCB
-S31A0010EF5EAFFB000EEDBF000CAFFC000CBBDB000EEEBF000CAF55
-S31A0010EF73FD000CBCEC000EAEFF000CCEEE000CDDDD000CDCCCC5
-S31A0010EF88000CDBBB000EAFC000037FFF000EAFFF00037FFF0081
-S31A0010EF9D0EAFFF00037FFF000EAFFF00037FFF00397FD600162B
-S31A0010EFB2AF04000CAFDB000CAFEC000ECC38000EDBCE0039F74B
-S31A0010EFC7930023FFFF0039F7A8000CAFC0000CAFB1000CAFDB16
-S31A0010EFDC000CAFEC0018A4010018A500000EA1BF000EA0BB0012
-S31A0010EFF118AE010018AD00003AF7C7000CCC44000CDB55000E0B
-S31A0010F006F57F0036C3FA000EA4FF000EA5FF000CAF5B000CAF44
-S31A0010F01B4C0039F7A30023FFFF0039F796003AC3DA000CAFC072
-S31A0010F030000CAFB1000EACFF000EABFF0018AF01000E1FAA0039
-S31A0010F04532C3EB0018AF000032C3E9000EACFE000EABFF003972
-S31A0010F05AF7930023FFFF0039F796003AC3DA000CAFC0000CAF0D
-S31A0010F06FB10018AF01000E1FAA0036C3DE000EC0BF000D5F1145
-S31A0010F084000CAF1B000CAF0C0039F7930023FFFF000EABBC006B
-S31A0010F0990EACFF0023FFFF000E0BF40032C3D4000E1C590030E9
-S31A0010F0AEC3D0000EABBE000EAC880033C3CE000EABBE000EACF6
-S31A0010F0C3A60023FFFF0039F7A80016AFF80004AF9C000E1FFE4C
-S31A0010F0D80032C3C40004ABBA000E2BFB000E1BFF0036C3B800DE
-S31A0010F0ED0EA1BE000EA03B0018AB02000E2B7F000E1BFF0036C7
-S31A0010F102C3B8000EA1FF000EA02D0018AB13000E2BFB000E1BAB
-S31A0010F117FF0032C386000EA1BF000EA0BB000EA3BE000EA26AF3
-S31A0010F12C0018AF050002FF040018AF060002FF05000EA1FF0066
-S31A0010F1410EA02D0018A40E0018A50D001AAF140001BF6A001A13
-S31A0010F156AF150001BF69000EACFF000EABFF000CAF5D000CAF5D
-S31A0010F16B4E003AC1CF0002FB060002FC07000EACFF000EABBF28
-S31A0010F180000CAF5D000CAF4E003AC1CF0002FB000002FC01007D
-S31A0010F1951EAF060002FF02001EAF070002FF03001EAC05001EB4
-S31A0010F1AAAB04000CAF5D000CAF4E003AC198000EA1FE000EA07C
-S31A0010F1BF5A0002CB000002CC01000EA3FF000EA22D000CAF31B6
-S31A0010F1D4000CAF200018AF13000EBFFB0002DF13000EA3FE00F0
-S31A0010F1E90EA25A000EA1FF000EA02D0018AF0D0002DF02001899
-S31A0010F1FEAF0E0002DF030016AF080039F7A30023FFFF000D9FD8
-S31A0010F213EE000E5DBF00397FDC000ECDDF000D5FCC000D5FBB0B
-S31A0010F228000EEDFB000EECFB000CBFDE000E6BFB000CBFCD001B
-S31A0010F23D0CAFBC000E6BFD000CAFDB000CAFEC0023FFFF000C4F
-S31A0010F252AFC0000CAFB10018AC0300183C010018AB0200187B42
-S31A0010F2670000397FDC000ECDDF000D5FCC000D5FBB000EEDFBD9
-S31A0010F27C000EECFB000CBFDE000E6BFB000CBFCD000CAFBC0046
-S31A0010F2910E6BFD000CAFEC0018CC01000CAFDB0018DB000023A4
-S31A0010F2A6FFFF0039F7A8000CAFC4000CAFB5000EA0FF000EA11C
-S31A0010F2BBFF000EA8FF000EA9FF001CAF00001CBF010032C349D9
-S31A0010F2D0000EA3FF0033C300001CAC01001CAB00000E0BC00004
-S31A0010F2E532C344000E1C000034C341000EA3F10033C300001CAF
-S31A0010F2FAAC01001CAB00000E0BCE0032C33C000E1C390030C307
-S31A0010F30F32000EAEF6000EADFF00397FDC000CAFE0000CAFD17A
-S31A0010F324000CAFC8000CAFB9000EA3FF0033C30C001CAC01004C
-S31A0010F3390ECCC6001CAB00000EDB31000EAEC0000EADFF0039B9
-S31A0010F34E7FDC000CAFE0000CAFD1000CAFC8000CAFB9000D0FFF
-S31A0010F3639B000D4F8C000D4F1D000D4F0E000E6BFB000CAFBE2C
-S31A0010F378000E6BFD000CAFBC000CAFBD000EEBFD000CAFBE0096
-S31A0010F38D0EADFF000EACFF000EABFF000CCE00000CDD11000C4A
-S31A0010F3A2DC88000CDB99000D0F9B000D4F8C000D4F1D000D4FE8
-S31A0010F3B70E000CAFE0000CAFD1000CAFC8000CAFB9000EA3F856
-S31A0010F3CC000D0F9B000D4F8C000D4F1D000D4F0E000EEDF700A2
-S31A0010F3E10EECF7000CBFDE000E6BF7000CBFCD000CAFBC000EDA
-S31A0010F3F66BFD000CC3E3000CAF1B000E2BC0000CAF0C0002EB4F
-S31A0010F40B000002EC01000CAF3C000EABFF0039F7A30023FFFF44
-S31A0010F4200039F79E000EA5FE003AC3DA000CAFC0000CAFB10084
-S31A0010F43518AF01000E1FAA0032C2EA00198C00000D9FFB000CD7
-S31A0010F44ABBCB000CAFB5000EE5FD000CAF5C000EABFF0039F7B2
-S31A0010F45F9A0023FFFF0039F796000CAFC0000CAFB1000EA3FE6B
-S31A0010F474000EA25E0018AC010018AB00001AAE01001AAD000047
-S31A0010F4893AC37B0039F7930023FFFF0039F7A80016AFF8000C5B
-S31A0010F49EAFC2000CAFB3000CAFE4000CAFD5000EAFFE0002FF79
-S31A0010F4B303000EAF7F0002FF02001CAF04000EFF7F0036C20990
-S31A0010F4C8000EA1FF000EA02D0018AB01000E2BF7000E1BFF0074
-S31A0010F4DD36C20E0018AB13000E2B7F000E1BFF0032C20E001A2C
-S31A0010F4F2AF02000EFF7F0032C21A001AAF02001ABF030036C205
-S31A0010F5071A001AAE01001AAD00000CAFDC000E6CFE000CAFCB9A
-S31A0010F51C000EECFD000CAFFB000EEDFD000CAFFC000CBBDB00C6
-S31A0010F5310EEEFD000CAFFD000CBCEC000EAEFF000EAFFE00399B
-S31A0010F5467FCD000CAFE0000CAFD1000CAFC8000CAFB9001AAD69
-S31A0010F55B03001AAC02000EAFFE00397FD200037EFF00037DFF76
-S31A0010F57000037CFF00037BFF000CAF9B000CAF8C000CAF1D0000
-S31A0010F5850CAF0E00397FD50016AF040002FB040002FC05000236
-S31A0010F59AFD060002FE07001CAC05001CAB04001AAE03001AAD12
-S31A0010F5AF0200397FDC000EAFFE00397FCD000CAFE0000CAFD134
-S31A0010F5C4000CAFC8000CAFB9001AAC01001AAB00001AAE0100D0
-S31A0010F5D91AAD0000397FDC000EAFFE00397FCD00037EFF0003E9
-S31A0010F5EE7DFF00037CFF00037BFF000CAF9B000CAF8C000CAF23
-S31A0010F6031D000CAF0E00397FD50016AF04000EAFFF00037FFF63
-S31A0010F618000EAFBF00037FFF000EAFE300037FFF000EAF790073
-S31A0010F62D037FFF00397FD90016AF04000CAFE0000CAFD1000CA4
-S31A0010F642AFC8000CAFB9000CAF9B000CAF8C000CAF1D000CAF82
-S31A0010F6570E000CAFBF0036C25C000EFC7F0036C25C000E1B7E28
-S31A0010F66C0032C25D000E1C7F0032C25D000E1DFF0032C25D00AD
-S31A0010F6810E1EFF0036C2060030C206000EAFFF00037FFF000EF2
-S31A0010F696AFFF00037FFF000EAFFF00037FFF000EAF7E00037F20
-S31A0010F6ABFF000CAF9B000CAF8C000CAF1D000CAF0E00397FD46B
-S31A0010F6C00016AF04003A7FC3000EAFFF00037FFF000EAFFF00E1
-S31A0010F6D5037FFF000EAFFF00037FFF000EAF7E00037FFF000E82
-S31A0010F6EA8C7F00397FD40016AF04001EAF0700037FFF001EAF73
-S31A0010F6FF0700037FFF001EAF0700037FFF001EAF0700037FFFAE
-S31A0010F71400397FD90016AF040002FB040002FC050002FD060067
-S31A0010F72902FE07000CAFBF0036C227000EFC7F0032C227000E63
-S31A0010F73E1B700032C228000E1C800032C228000E1D010032C213
-S31A0010F75328000E1EFF0036C2060030C206001EAE05000E8E7F56
-S31A0010F768001EAD04001EA906001EA807000CAFDB000CAFEC00D0
-S31A0010F77D0CAF9D000CAF8E00397FD10002FD020002FE03003300
-S31A0010F792C206001CAE05001CAD04001AAF000002FF00001AAF55
-S31A0010F7A7010002FF01000EACEF000EABD8003A7FBE0002FB0284
-S31A0010F7BC0002FC030033C206001CAF040002FF02001CAF050084
-S31A0010F7D102FF030033C206000EAFFF0002FF020002FF03001E2D
-S31A0010F7E6AC03001EAB020016AF080039F7A30023FFFF0039F78D
-S31A0010F7FB96000CAFC2000CAFB3000EA0FF000EA1FF000EA8FF52
-S31A0010F810000EA9FF001AAF00001ABF010032C1F5000EADFF00D2
-S31A0010F82533C1D8001AAC01001AAB00000E0BC00032C1F0000E96
-S31A0010F83A1C000034C1ED000EADD80033C1D8001AAC01001AABBA
-S31A0010F84F00000EAED8000EADFF00397FDC000CAFE0000CAFD185
-S31A0010F864000CAFC8000CAFB9000D0F9B000D4F8C000D4F1D006A
-S31A0010F8790D4F0E000EEDF7000EECF7000CBFDE000E6BF7000CF2
-S31A0010F88EBFCD000CAFBC000E6BFD000CAFED000CAF1B000E2B1F
-S31A0010F8A3C0000CAF0C0002DB000002DC01000CAFDC000EABFFA8
-S31A0010F8B80039F7930023FFFF0039F7A80016AFF8000CAFC4002D
-S31A0010F8CD0CAFB50002FD060002FE07003AC4FE0002FB02000297
-S31A0010F8E2FC03000CAF5B000CAF4C001EAE07001EAD06003AC43D
-S31A0010F8F7CC000CAF60000EC0FD000D5F710002CB020002CC03B7
-S31A0010F90C0004AE690004AD6A000EAFFC0002FF00000EAF17000C
-S31A0010F92102FF01000CAF1B000CAF0C003AC555000CAFCE000C33
-S31A0010F936AFBD0004AF6A000EFF7F0032C19D0004AF6A0004BF21
-S31A0010F94B690036C19D000CAFEC001E3C03000CAFDB001E7B025F
-S31A0010F960000EA1BE000EA02300180B090032C1A200181C0A003F
-S31A0010F97534C19D001EAE030018CE0A001EAD020018DD09000C3F
-S31A0010F98AAFDB000CAFEC0016AF080039F7A30023FFFF0039F730
-S31A0010F99F960016AFFA001E0B0A0032C193001E1C0B0035C18F65
-S31A0010F9B4000EACFF000EABFF0033C17B001E0B080032C18C0098
-S31A0010F9C91E1C090030C188000EACFF000EABBF0033C17B000EA9
-S31A0010F9DEAFFF0002FF01000EAFBF0002FF000002FB020002FCD4
-S31A0010F9F3030002FD040002FE05000EABC1000EACCF000EAEFF20
-S31A0010FA08000EADFF003A7FBB0016AF060039F7930023FFFF00F6
-S31A0010FA1D3FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F4E
-S31A0010FA32FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF79
-S31A0010FA47FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF64
-S31A0010FA5C003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF004E
-S31A0010FA713FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFA
-S31A0010FA86FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF25
-S31A0010FA9BFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF10
-S31A0010FAB0003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00FA
-S31A0010FAC53FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FA6
-S31A0010FADAFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFD1
-S31A0010FAEFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFFBC
-S31A0010FB04003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00A5
-S31A0010FB193FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F51
-S31A0010FB2EFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF7C
-S31A0010FB43FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF67
-S31A0010FB58003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0051
-S31A0010FB6D3FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFD
-S31A0010FB82FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF28
-S31A0010FB97FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF13
-S31A0010FBAC003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00FD
-S31A0010FBC13FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FA9
-S31A0010FBD6FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFD4
-S31A0010FBEBFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFFBF
-S31A0010FC00003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00A8
-S31A0010FC153FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F54
-S31A0010FC2AFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF7F
-S31A0010FC3FFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF6A
-S31A0010FC54003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0054
-S31A0010FC693FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F00
-S31A0010FC7EFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF2B
-S31A0010FC93FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF16
-S31A0010FCA8003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0000
-S31A0010FCBD3FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FAC
-S31A0010FCD2FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFD7
-S31A0010FCE7FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFFC2
-S31A0010FCFC003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00AC
-S31A0010FD113FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F57
-S31A0010FD26FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF82
-S31A0010FD3BFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF6D
-S31A0010FD50003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0057
-S31A0010FD653FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F03
-S31A0010FD7AFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF2E
-S31A0010FD8FFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF19
-S31A0010FDA4003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0003
-S31A0010FDB93FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FAF
-S31A0010FDCEFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFDA
-S31A0010FDE3FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFFC5
-S31A0010FDF8003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00AF
-S31A0010FE0D3FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F5A
-S31A0010FE22FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF85
-S31A0010FE37FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF70
-S31A0010FE4C003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF005A
-S31A0010FE613FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F06
-S31A0010FE76FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF31
-S31A0010FE8BFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF1C
-S31A0010FEA0003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0006
-S31A0010FEB53FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FB2
-S31A0010FECAFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFDD
-S31A0010FEDFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFFC8
-S31A0010FEF4003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF00B2
-S31A0010FF093FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F5D
-S31A0010FF1EFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF88
-S31A0010FF33FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF73
-S31A0010FF48003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF005D
-S31A0010FF5D3FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003F09
-S31A0010FF72FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFF34
-S31A0010FF87FF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF1F
-S31A0010FF9C003FFFFF003FFFFF003FFFFF003FFFFF003FFFFF0009
-S31A0010FFB13FFFFF003FFFFF003FFFFF003FFFFF003FFFFF003FB5
-S31A0010FFC6FFFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFE0
-S31A0010FFDBFF003FFFFF003FFFFF003FFFFF003FFFFF003FFFFFCB
-S3150010FFF0003FFFFF003FFFFF003FFFFF003FFFFFF7
-S70500100000EA
diff --git a/rust/build.rs b/rust/build.rs
deleted file mode 100644
index 2cc5449..0000000
--- a/rust/build.rs
+++ /dev/null
@@ -1,53 +0,0 @@
-use vergen::EmitBuilder;
-
-fn linker_be_nice() {
- let args: Vec = std::env::args().collect();
- if args.len() > 1 {
- let kind = &args[1];
- let what = &args[2];
-
- match kind.as_str() {
- "undefined-symbol" => match what.as_str() {
- "_defmt_timestamp" => {
- eprintln!();
- eprintln!("💡 `defmt` not found - make sure `defmt.x` is added as a linker script and you have included `use defmt_rtt as _;`");
- eprintln!();
- }
- "_stack_start" => {
- eprintln!();
- eprintln!("💡 Is the linker script `linkall.x` missing?");
- eprintln!();
- }
- "esp_wifi_preempt_enable"
- | "esp_wifi_preempt_yield_task"
- | "esp_wifi_preempt_task_create" => {
- eprintln!();
- eprintln!("💡 `esp-wifi` has no scheduler enabled. Make sure you have the `builtin-scheduler` feature enabled, or that you provide an external scheduler.");
- eprintln!();
- }
- "embedded_test_linker_file_not_added_to_rustflags" => {
- eprintln!();
- eprintln!("💡 `embedded-test` not found - make sure `embedded-test.x` is added as a linker script for tests");
- eprintln!();
- }
- _ => (),
- },
- // we don't have anything helpful for "missing-lib" yet
- _ => {
- std::process::exit(1);
- }
- }
-
- std::process::exit(0);
- }
-
- println!(
- "cargo:rustc-link-arg=--error-handling-script={}",
- std::env::current_exe().unwrap().display()
- );
-}
-
-fn main() {
- linker_be_nice();
- let _ = EmitBuilder::builder().all_git().all_build().emit();
-}
diff --git a/rust/canapi/Cargo.toml b/rust/canapi/Cargo.toml
deleted file mode 100644
index 7176692..0000000
--- a/rust/canapi/Cargo.toml
+++ /dev/null
@@ -1,14 +0,0 @@
-[package]
-name = "canapi"
-version = "0.1.0"
-edition = "2021"
-
-[lib]
-name = "canapi"
-path = "src/lib.rs"
-
-[features]
-default = []
-
-[dependencies]
-bincode = { version = "2.0.1", default-features = false, features = ["derive"] }
diff --git a/rust/canapi/src/lib.rs b/rust/canapi/src/lib.rs
deleted file mode 100644
index bb93cf2..0000000
--- a/rust/canapi/src/lib.rs
+++ /dev/null
@@ -1,138 +0,0 @@
-#![no_std]
-//! CAN bus API shared crate for PlantCtrl sensors and controller.
-//! Addressing and messages are defined here to be reused by all bus participants.
-
-use bincode::{Decode, Encode};
-
-/// Total plants supported by addressing (0..=15)
-pub const MAX_PLANTS: u8 = 16;
-
-/// Sensors per plant: 0..=1 => A/B
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Encode, Decode)]
-#[repr(u8)]
-pub enum SensorSlot {
- A = 0,
- B = 1,
-}
-
-impl SensorSlot {
- pub const fn from_index(idx: u8) -> Option {
- match idx {
- 0 => Some(SensorSlot::A),
- 1 => Some(SensorSlot::B),
- _ => None,
- }
- }
-}
-
-/// Legacy sensor base address kept for compatibility with existing code.
-/// Each plant uses SENSOR_BASE_ADDRESS + plant_index (0..PLANT_COUNT-1).
-/// 11-bit standard ID space, safe range.
-pub const SENSOR_BASE_ADDRESS: u16 = 1000;
-
-/// Typed topics within the SENSOR_BASE space.
-/// Additional offsets allow distinct message semantics while keeping plant-indexed layout.
-pub mod id {
- use crate::{SensorSlot, MAX_PLANTS, SENSOR_BASE_ADDRESS};
-
- /// Number of plants addressable per sensor slot group
- pub const PLANTS_PER_GROUP: u16 = MAX_PLANTS as u16; // 16
- /// Offset applied for SensorSlot::B within a message group
- pub const B_OFFSET: u16 = PLANTS_PER_GROUP; // 16
-
- // Message group base offsets relative to SENSOR_BASE_ADDRESS
- pub const MOISTURE_DATA_OFFSET: u16 = 0; // periodic data from sensor (sensor -> controller)
- pub const IDENTIFY_CMD_OFFSET: u16 = 32; // identify LED command (controller -> sensor)
-
- // Convenience constants for per-slot base offsets
- pub const IDENTIFY_CMD_OFFSET_A: u16 = IDENTIFY_CMD_OFFSET + 0;
- pub const IDENTIFY_CMD_OFFSET_B: u16 = IDENTIFY_CMD_OFFSET + B_OFFSET;
-
- #[inline]
- pub const fn plant_id(message_type_offset: u16, sensor: SensorSlot, plant: u16) -> u16 {
- match sensor {
- SensorSlot::A => SENSOR_BASE_ADDRESS + message_type_offset + plant,
- SensorSlot::B => SENSOR_BASE_ADDRESS + message_type_offset + B_OFFSET + plant,
- }
- }
-
- /// Kinds of message spaces recognized by the addressing scheme.
- #[derive(Debug, Clone, Copy, PartialEq, Eq)]
- pub enum MessageKind {
- MoistureData, // sensor -> controller
- IdentifyCmd, // controller -> sensor
- }
-
- /// Try to classify a received 11-bit standard ID into a known message kind and extract plant and sensor slot.
- /// Returns (kind, plant, slot) on success.
- #[inline]
- pub const fn classify(id: u16) -> Option<(MessageKind, u8, SensorSlot)> {
- // Ensure the ID is within our base space
- if id < SENSOR_BASE_ADDRESS {
- return None;
- }
- let rel = id - SENSOR_BASE_ADDRESS;
-
- // Helper: decode within a given group offset
- const fn decode_in_group(rel: u16, group_base: u16) -> Option<(u8, SensorSlot)> {
- if rel < group_base { return None; }
- let inner = rel - group_base;
- if inner < PLANTS_PER_GROUP { // A slot
- Some((inner as u8, SensorSlot::A))
- } else if inner >= B_OFFSET && inner < B_OFFSET + PLANTS_PER_GROUP { // B slot
- Some(((inner - B_OFFSET) as u8, SensorSlot::B))
- } else {
- None
- }
- }
-
- // Check known groups in order
- if let Some((plant, slot)) = decode_in_group(rel, MOISTURE_DATA_OFFSET) {
- return Some((MessageKind::MoistureData, plant, slot));
- }
- if let Some((plant, slot)) = decode_in_group(rel, IDENTIFY_CMD_OFFSET) {
- return Some((MessageKind::IdentifyCmd, plant, slot));
- }
- None
- }
-
- /// Returns Some((plant, slot)) regardless of message kind, if the id falls into any known group; otherwise None.
- #[inline]
- pub const fn extract_plant_slot(id: u16) -> Option<(u8, SensorSlot)> {
- match classify(id) {
- Some((_kind, plant, slot)) => Some((plant, slot)),
- None => None,
- }
- }
-
- /// Check if an id corresponds exactly to the given message kind, plant and slot.
- #[inline]
- pub const fn is_identify_for(id: u16, plant: u8, slot: SensorSlot) -> bool {
- id == plant_id(IDENTIFY_CMD_OFFSET, slot, plant as u16)
- }
-
- #[inline]
- pub const fn is_moisture_data_for(id: u16, plant: u8, slot: SensorSlot) -> bool {
- id == plant_id(MOISTURE_DATA_OFFSET, slot, plant as u16)
- }
-}
-
-/// Periodic moisture data sent by sensors.
-/// Fits into 5 bytes with bincode-v2 (no varint): u8 + u8 + u16 = 4, alignment may keep 4.
-#[derive(Debug, Clone, Copy, Encode, Decode)]
-pub struct MoistureData {
- pub plant: u8, // 0..MAX_PLANTS-1
- pub sensor: SensorSlot, // A/B
- pub hz: u16, // measured frequency of moisture sensor
-}
-
-/// Request a sensor to report immediately (controller -> sensor).
-#[derive(Debug, Clone, Copy, Encode, Decode)]
-pub struct MoistureRequest {
- pub plant: u8,
- pub sensor: SensorSlot, // target sensor (sensor filters by this)
-}
-
-/// Control a sensor's identify LED, if received by sensor, blink for a few seconds
-#[derive(Debug, Clone, Copy, Encode, Decode)]
-pub struct IdentifyLed {}
diff --git a/rust/esp32-c6_technical_reference_manual_en.pdf b/rust/esp32-c6_technical_reference_manual_en.pdf
deleted file mode 100644
index eb1be21..0000000
Binary files a/rust/esp32-c6_technical_reference_manual_en.pdf and /dev/null differ
diff --git a/rust/espflash.toml b/rust/espflash.toml
deleted file mode 100644
index 207afc6..0000000
--- a/rust/espflash.toml
+++ /dev/null
@@ -1,8 +0,0 @@
-[connection]
-
-[[usb_device]]
-vid = "303a"
-pid = "1001"
-
-[flash]
-size = "16MB"
diff --git a/rust/flash.sh b/rust/flash.sh
deleted file mode 100755
index 07ff4fb..0000000
--- a/rust/flash.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-rm ./src/webserver/index.html.gz
-rm ./src/webserver/bundle.js.gz
-set -e
-cd ./src_webpack/
-npx webpack build
-cp index.html.gz ../src/webserver/index.html.gz
-cp bundle.js.gz ../src/webserver/bundle.js.gz
-cd ../
-
-cargo build --release
-espflash flash --monitor --bootloader bootloader.bin --chip esp32c6 --baud 921600 --partition-table partitions.csv target/riscv32imac-unknown-none-elf/release/plant-ctrl2
diff --git a/rust/image_build.sh b/rust/image_build.sh
deleted file mode 100755
index 4dc9a11..0000000
--- a/rust/image_build.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-rm image.bin
-rm ./src/webserver/index.html.gz
-rm ./src/webserver/bundle.js.gz
-set -e
-cd ./src_webpack/
-npx webpack build
-cp index.html.gz ../src/webserver/index.html.gz
-cp bundle.js.gz ../src/webserver/bundle.js.gz
-cd ../
-
-set -e
-cargo build --release
-espflash save-image --bootloader bootloader.bin --partition-table partitions.csv --chip esp32c6 target/riscv32imac-unknown-none-elf/release/plant-ctrl2 image.bin
diff --git a/rust/partitions.csv b/rust/partitions.csv
deleted file mode 100644
index 7372605..0000000
--- a/rust/partitions.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-nvs, data, nvs, , 16k,
-otadata, data, ota, , 8k,
-phy_init, data, phy, , 4k,
-ota_0, app, ota_0, , 3968k,
-ota_1, app, ota_1, , 3968k,
-storage, data, littlefs,, 8M,
diff --git a/rust/rust-toolchain.toml b/rust/rust-toolchain.toml
deleted file mode 100644
index 5d56faf..0000000
--- a/rust/rust-toolchain.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[toolchain]
-channel = "nightly"
diff --git a/rust/sdkconfig.defaults b/rust/sdkconfig.defaults
deleted file mode 100644
index 534c04e..0000000
--- a/rust/sdkconfig.defaults
+++ /dev/null
@@ -1,10 +0,0 @@
-# Rust often needs a bit of an extra main task stack size compared to C (the default is 3K)
-CONFIG_ESP_MAIN_TASK_STACK_SIZE=50000
-
-# Use this to set FreeRTOS kernel tick frequency to 1000 Hz (100 Hz by default).
-# This allows to use 1 ms granuality for thread sleeps (10 ms by default).
-CONFIG_FREERTOS_HZ=1000
-
-CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
-CONFIG_I2C_ENABLE_DEBUG_LOG=y
-DEBUG_LEVEL=5
\ No newline at end of file
diff --git a/rust/setup.txt b/rust/setup.txt
deleted file mode 100644
index ef80c80..0000000
--- a/rust/setup.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-cargo install cargo-generate
-cargo install ldproxy
-cargo install espup
-cargo install espflash
-cargo install cargo-espflash
-
-cargo generate esp-rs/esp-idf-template cargo
-export PATH="$PATH:$HOME/.cargo/bin"
-
-espup install
-rustup toolchain link esp ~/.rustup/toolchains/esp/
-cargo install ldproxy
-
-cargo espflash save-image --chip esp32 image.bin
-
-
-esptool.py --chip ESP32-C3 elf2image --output my-app.bin target/release/my-app
-$ espflash save-image ESP32-C3 target/release/my-app my-app.bin
\ No newline at end of file
diff --git a/rust/src/config.rs b/rust/src/config.rs
deleted file mode 100644
index de011b3..0000000
--- a/rust/src/config.rs
+++ /dev/null
@@ -1,156 +0,0 @@
-use crate::hal::PLANT_COUNT;
-use crate::plant_state::PlantWateringMode;
-use alloc::string::String;
-use core::str::FromStr;
-use serde::{Deserialize, Serialize};
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
-#[serde(default)]
-pub struct NetworkConfig {
- pub ap_ssid: heapless::String<32>,
- pub ssid: Option>,
- pub password: Option>,
- pub mqtt_url: Option,
- pub base_topic: Option>,
- pub mqtt_user: Option,
- pub mqtt_password: Option,
- pub max_wait: u32,
-}
-impl Default for NetworkConfig {
- fn default() -> Self {
- Self {
- ap_ssid: heapless::String::from_str("PlantCtrl Init").unwrap(),
- ssid: None,
- password: None,
- mqtt_url: None,
- base_topic: None,
- mqtt_user: None,
- mqtt_password: None,
- max_wait: 10000,
- }
- }
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
-#[serde(default)]
-pub struct NightLampConfig {
- pub enabled: bool,
- pub night_lamp_hour_start: u8,
- pub night_lamp_hour_end: u8,
- pub night_lamp_only_when_dark: bool,
- pub low_soc_cutoff: u8,
- pub low_soc_restore: u8,
-}
-impl Default for NightLampConfig {
- fn default() -> Self {
- Self {
- enabled: true,
- night_lamp_hour_start: 19,
- night_lamp_hour_end: 2,
- night_lamp_only_when_dark: true,
- low_soc_cutoff: 30,
- low_soc_restore: 50,
- }
- }
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
-#[serde(default)]
-pub struct TankConfig {
- pub tank_sensor_enabled: bool,
- pub tank_allow_pumping_if_sensor_error: bool,
- pub tank_useable_ml: u32,
- pub tank_warn_percent: u8,
- pub tank_empty_percent: u8,
- pub tank_full_percent: u8,
- pub ml_per_pulse: f32,
-}
-impl Default for TankConfig {
- fn default() -> Self {
- Self {
- tank_sensor_enabled: false,
- tank_allow_pumping_if_sensor_error: true,
- tank_useable_ml: 50000,
- tank_warn_percent: 40,
- tank_empty_percent: 5,
- tank_full_percent: 95,
- ml_per_pulse: 0.0,
- }
- }
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
-pub enum BatteryBoardVersion {
- #[default]
- Disabled,
- BQ34Z100G1,
- WchI2cSlave,
-}
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
-pub enum BoardVersion {
- #[default]
- INITIAL,
- V3,
- V4,
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
-pub struct BoardHardware {
- pub board: BoardVersion,
- pub battery: BatteryBoardVersion,
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
-#[serde(default)]
-pub struct PlantControllerConfig {
- pub hardware: BoardHardware,
- pub network: NetworkConfig,
- pub tank: TankConfig,
- pub night_lamp: NightLampConfig,
- pub plants: [PlantConfig; PLANT_COUNT],
- pub timezone: Option,
-}
-
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
-#[serde(default)]
-pub struct PlantConfig {
- pub mode: PlantWateringMode,
- pub target_moisture: f32,
- pub min_moisture: f32,
- pub pump_time_s: u16,
- pub pump_limit_ml: u16,
- pub pump_cooldown_min: u16,
- pub pump_hour_start: u8,
- pub pump_hour_end: u8,
- pub sensor_a: bool,
- pub sensor_b: bool,
- pub max_consecutive_pump_count: u8,
- pub moisture_sensor_min_frequency: Option, // Optional min frequency
- pub moisture_sensor_max_frequency: Option, // Optional max frequency
- pub min_pump_current_ma: u16,
- pub max_pump_current_ma: u16,
- pub ignore_current_error: bool,
-}
-
-impl Default for PlantConfig {
- fn default() -> Self {
- Self {
- mode: PlantWateringMode::OFF,
- target_moisture: 40.,
- min_moisture: 30.,
- pump_time_s: 30,
- pump_limit_ml: 5000,
- pump_cooldown_min: 60,
- pump_hour_start: 9,
- pump_hour_end: 20,
- sensor_a: true,
- sensor_b: false,
- max_consecutive_pump_count: 10,
- moisture_sensor_min_frequency: None, // No override by default
- moisture_sensor_max_frequency: None, // No override by default
- min_pump_current_ma: 10,
- max_pump_current_ma: 3000,
- ignore_current_error: true,
- }
- }
-}
diff --git a/rust/src/fat_error.rs b/rust/src/fat_error.rs
deleted file mode 100644
index 0f89e12..0000000
--- a/rust/src/fat_error.rs
+++ /dev/null
@@ -1,318 +0,0 @@
-use alloc::format;
-use alloc::string::{String, ToString};
-use core::convert::Infallible;
-use core::fmt;
-use core::str::Utf8Error;
-use embassy_embedded_hal::shared_bus::I2cDeviceError;
-use embassy_executor::SpawnError;
-use embassy_sync::mutex::TryLockError;
-use embedded_storage::nor_flash::NorFlashErrorKind;
-use esp_hal::i2c::master::ConfigError;
-use esp_hal::pcnt::unit::{InvalidHighLimit, InvalidLowLimit};
-use esp_hal::twai::EspTwaiError;
-use esp_wifi::wifi::WifiError;
-use ina219::errors::{BusVoltageReadError, ShuntVoltageReadError};
-use littlefs2_core::PathError;
-use onewire::Error;
-use pca9535::ExpanderError;
-
-//All error superconstruct
-#[derive(Debug)]
-pub enum FatError {
- OneWireError {
- error: Error,
- },
- String {
- error: String,
- },
- LittleFSError {
- error: littlefs2_core::Error,
- },
- PathError {
- error: PathError,
- },
- TryLockError {
- error: TryLockError,
- },
- WifiError {
- error: WifiError,
- },
- SerdeError {
- error: serde_json::Error,
- },
- PreconditionFailed {
- error: String,
- },
- NoBatteryMonitor,
- SpawnError {
- error: SpawnError,
- },
- PartitionError {
- error: esp_bootloader_esp_idf::partitions::Error,
- },
- I2CConfigError {
- error: ConfigError,
- },
- DS323 {
- error: String,
- },
- Eeprom24x {
- error: String,
- },
- ExpanderError {
- error: String,
- },
- CanBusError {
- error: EspTwaiError,
- },
- SNTPError {
- error: sntpc::Error,
- },
-}
-
-pub type FatResult = Result;
-
-impl fmt::Display for FatError {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- match self {
- FatError::SpawnError { error } => {
- write!(f, "SpawnError {:?}", error.to_string())
- }
- FatError::OneWireError { error } => write!(f, "OneWireError {:?}", error),
- FatError::String { error } => write!(f, "{}", error),
- FatError::LittleFSError { error } => write!(f, "LittleFSError {:?}", error),
- FatError::PathError { error } => write!(f, "PathError {:?}", error),
- FatError::TryLockError { error } => write!(f, "TryLockError {:?}", error),
- FatError::WifiError { error } => write!(f, "WifiError {:?}", error),
- FatError::SerdeError { error } => write!(f, "SerdeError {:?}", error),
- FatError::PreconditionFailed { error } => write!(f, "PreconditionFailed {:?}", error),
- FatError::PartitionError { error } => {
- write!(f, "PartitionError {:?}", error)
- }
- FatError::NoBatteryMonitor => {
- write!(f, "No Battery Monitor")
- }
- FatError::I2CConfigError { error } => write!(f, "I2CConfigError {:?}", error),
- FatError::DS323 { error } => write!(f, "DS323 {:?}", error),
- FatError::Eeprom24x { error } => write!(f, "Eeprom24x {:?}", error),
- FatError::ExpanderError { error } => write!(f, "ExpanderError {:?}", error),
- FatError::CanBusError { error } => {
- write!(f, "CanBusError {:?}", error)
- }
- FatError::SNTPError { error } => write!(f, "SNTPError {:?}", error),
- }
- }
-}
-
-#[macro_export]
-macro_rules! bail {
- ($msg:literal $(,)?) => {
- return $crate::fat_error::fat_bail($msg)
- };
- ($fmt:literal, $($arg:tt)*) => {
- return $crate::fat_error::fat_bail(&alloc::format!($fmt, $($arg)*))
- };
-}
-
-pub fn fat_bail(message: &str) -> Result {
- Err(FatError::String {
- error: message.to_string(),
- })
-}
-
-pub trait ContextExt {
- fn context(self, context: C) -> Result
- where
- C: AsRef;
-}
-impl ContextExt for Option {
- fn context(self, context: C) -> Result
- where
- C: AsRef,
- {
- match self {
- Some(value) => Ok(value),
- None => Err(FatError::PreconditionFailed {
- error: context.as_ref().to_string(),
- }),
- }
- }
-}
-
-impl From> for FatError {
- fn from(error: Error) -> Self {
- FatError::OneWireError { error }
- }
-}
-impl From for FatError {
- fn from(value: littlefs2_core::Error) -> Self {
- FatError::LittleFSError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: PathError) -> Self {
- FatError::PathError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: TryLockError) -> Self {
- FatError::TryLockError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: WifiError) -> Self {
- FatError::WifiError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: serde_json::Error) -> Self {
- FatError::SerdeError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: SpawnError) -> Self {
- FatError::SpawnError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: esp_bootloader_esp_idf::partitions::Error) -> Self {
- FatError::PartitionError { error: value }
- }
-}
-
-impl From for FatError {
- fn from(value: Utf8Error) -> Self {
- FatError::String {
- error: value.to_string(),
- }
- }
-}
-
-impl From> for FatError {
- fn from(value: edge_http::io::Error) -> Self {
- FatError::String {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From> for FatError {
- fn from(value: ds323x::Error) -> Self {
- FatError::DS323 {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From> for FatError {
- fn from(value: eeprom24x::Error) -> Self {
- FatError::Eeprom24x {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From>> for FatError {
- fn from(value: ExpanderError>) -> Self {
- FatError::ExpanderError {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From for FatError {
- fn from(value: bincode::error::DecodeError) -> Self {
- FatError::Eeprom24x {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From for FatError {
- fn from(value: bincode::error::EncodeError) -> Self {
- FatError::Eeprom24x {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From for FatError {
- fn from(value: ConfigError) -> Self {
- FatError::I2CConfigError { error: value }
- }
-}
-
-impl From> for FatError {
- fn from(value: I2cDeviceError) -> Self {
- FatError::String {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From>> for FatError {
- fn from(value: BusVoltageReadError>) -> Self {
- FatError::String {
- error: format!("{:?}", value),
- }
- }
-}
-impl From>> for FatError {
- fn from(value: ShuntVoltageReadError>) -> Self {
- FatError::String {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From for FatError {
- fn from(value: Infallible) -> Self {
- panic!("Infallible error: {:?}", value)
- }
-}
-
-impl From for FatError {
- fn from(value: InvalidLowLimit) -> Self {
- FatError::String {
- error: format!("{:?}", value),
- }
- }
-}
-impl From for FatError {
- fn from(value: InvalidHighLimit) -> Self {
- FatError::String {
- error: format!("{:?}", value),
- }
- }
-}
-
-impl From> for FatError {
- fn from(value: nb::Error) -> Self {
- match value {
- nb::Error::Other(can_error) => FatError::CanBusError { error: can_error },
- nb::Error::WouldBlock => FatError::String {
- error: "Would block".to_string(),
- },
- }
- }
-}
-
-impl From for FatError {
- fn from(value: NorFlashErrorKind) -> Self {
- FatError::String {
- error: value.to_string(),
- }
- }
-}
-
-impl From for FatError {
- fn from(value: sntpc::Error) -> Self {
- FatError::SNTPError { error: value }
- }
-}
diff --git a/rust/src/hal/battery.rs b/rust/src/hal/battery.rs
deleted file mode 100644
index d55e1df..0000000
--- a/rust/src/hal/battery.rs
+++ /dev/null
@@ -1,258 +0,0 @@
-use crate::fat_error::{FatError, FatResult};
-use crate::hal::Box;
-use async_trait::async_trait;
-use bq34z100::{Bq34z100g1, Bq34z100g1Driver, Flags};
-use embassy_embedded_hal::shared_bus::blocking::i2c::I2cDevice;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use esp_hal::delay::Delay;
-use esp_hal::i2c::master::I2c;
-use esp_hal::Blocking;
-use measurements::Temperature;
-use serde::Serialize;
-
-#[async_trait(?Send)]
-pub trait BatteryInteraction {
- async fn state_charge_percent(&mut self) -> FatResult;
- async fn remaining_milli_ampere_hour(&mut self) -> FatResult;
- async fn max_milli_ampere_hour(&mut self) -> FatResult;
- async fn design_milli_ampere_hour(&mut self) -> FatResult;
- async fn voltage_milli_volt(&mut self) -> FatResult;
- async fn average_current_milli_ampere(&mut self) -> FatResult;
- async fn cycle_count(&mut self) -> FatResult;
- async fn state_health_percent(&mut self) -> FatResult;
- async fn bat_temperature(&mut self) -> FatResult;
- async fn get_battery_state(&mut self) -> FatResult;
-}
-
-#[derive(Debug, Serialize)]
-pub struct BatteryInfo {
- pub voltage_milli_volt: u16,
- pub average_current_milli_ampere: i16,
- pub cycle_count: u16,
- pub design_milli_ampere_hour: u16,
- pub remaining_milli_ampere_hour: u16,
- pub state_of_charge: f32,
- pub state_of_health: u16,
- pub temperature: u16,
-}
-
-#[derive(Debug, Serialize)]
-pub enum BatteryState {
- Unknown,
- Info(BatteryInfo),
-}
-
-/// If no battery monitor is installed this implementation will be used
-pub struct NoBatteryMonitor {}
-#[async_trait(?Send)]
-impl BatteryInteraction for NoBatteryMonitor {
- async fn state_charge_percent(&mut self) -> FatResult {
- // No monitor configured: assume full battery for lightstate logic
- Ok(100.0)
- }
-
- async fn remaining_milli_ampere_hour(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn max_milli_ampere_hour(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn design_milli_ampere_hour(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn voltage_milli_volt(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn average_current_milli_ampere(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn cycle_count(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn state_health_percent(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn bat_temperature(&mut self) -> FatResult {
- Err(FatError::NoBatteryMonitor)
- }
-
- async fn get_battery_state(&mut self) -> FatResult {
- Ok(BatteryState::Unknown)
- }
-}
-
-//TODO implement this battery monitor kind once controller is complete
-#[allow(dead_code)]
-pub struct WchI2cSlave {}
-
-pub type I2cDev = I2cDevice<'static, CriticalSectionRawMutex, I2c<'static, Blocking>>;
-
-pub struct BQ34Z100G1 {
- pub battery_driver: Bq34z100g1Driver,
-}
-
-#[async_trait(?Send)]
-impl BatteryInteraction for BQ34Z100G1 {
- async fn state_charge_percent(&mut self) -> FatResult {
- self.battery_driver
- .state_of_charge()
- .map(|v| v as f32)
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn remaining_milli_ampere_hour(&mut self) -> FatResult {
- self.battery_driver
- .remaining_capacity()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn max_milli_ampere_hour(&mut self) -> FatResult {
- self.battery_driver
- .full_charge_capacity()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn design_milli_ampere_hour(&mut self) -> FatResult {
- self.battery_driver
- .design_capacity()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn voltage_milli_volt(&mut self) -> FatResult {
- self.battery_driver.voltage().map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn average_current_milli_ampere(&mut self) -> FatResult {
- self.battery_driver
- .average_current()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn cycle_count(&mut self) -> FatResult {
- self.battery_driver
- .cycle_count()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn state_health_percent(&mut self) -> FatResult {
- self.battery_driver
- .state_of_health()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn bat_temperature(&mut self) -> FatResult {
- self.battery_driver
- .temperature()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- }
-
- async fn get_battery_state(&mut self) -> FatResult {
- Ok(BatteryState::Info(BatteryInfo {
- voltage_milli_volt: self.voltage_milli_volt().await?,
- average_current_milli_ampere: self.average_current_milli_ampere().await?,
- cycle_count: self.cycle_count().await?,
- design_milli_ampere_hour: self.design_milli_ampere_hour().await?,
- remaining_milli_ampere_hour: self.remaining_milli_ampere_hour().await?,
- state_of_charge: self.state_charge_percent().await?,
- state_of_health: self.state_health_percent().await?,
- temperature: self.bat_temperature().await?,
- }))
- }
-}
-
-pub fn print_battery_bq34z100(
- battery_driver: &mut Bq34z100g1Driver>, Delay>,
-) -> FatResult<()> {
- log::info!("Try communicating with battery");
- let fwversion = battery_driver.fw_version().unwrap_or_else(|e| {
- log::info!("Firmware {:?}", e);
- 0
- });
- log::info!("fw version is {}", fwversion);
-
- let design_capacity = battery_driver.design_capacity().unwrap_or_else(|e| {
- log::info!("Design capacity {:?}", e);
- 0
- });
- log::info!("Design Capacity {}", design_capacity);
- if design_capacity == 1000 {
- log::info!("Still stock configuring battery, readouts are likely to be wrong!");
- }
-
- let flags = battery_driver.get_flags_decoded().unwrap_or(Flags {
- fast_charge_allowed: false,
- full_chage: false,
- charging_not_allowed: false,
- charge_inhibit: false,
- bat_low: false,
- bat_high: false,
- over_temp_discharge: false,
- over_temp_charge: false,
- discharge: false,
- state_of_charge_f: false,
- state_of_charge_1: false,
- cf: false,
- ocv_taken: false,
- });
- log::info!("Flags {:?}", flags);
-
- let chem_id = battery_driver.chem_id().unwrap_or_else(|e| {
- log::info!("Chemid {:?}", e);
- 0
- });
-
- let bat_temp = battery_driver.internal_temperature().unwrap_or_else(|e| {
- log::info!("Bat Temp {:?}", e);
- 0
- });
- let temp_c = Temperature::from_kelvin(bat_temp as f64 / 10_f64).as_celsius();
- let voltage = battery_driver.voltage().unwrap_or_else(|e| {
- log::info!("Bat volt {:?}", e);
- 0
- });
- let current = battery_driver.current().unwrap_or_else(|e| {
- log::info!("Bat current {:?}", e);
- 0
- });
- let state = battery_driver.state_of_charge().unwrap_or_else(|e| {
- log::info!("Bat Soc {:?}", e);
- 0
- });
- let charge_voltage = battery_driver.charge_voltage().unwrap_or_else(|e| {
- log::info!("Bat Charge Volt {:?}", e);
- 0
- });
- let charge_current = battery_driver.charge_current().unwrap_or_else(|e| {
- log::info!("Bat Charge Current {:?}", e);
- 0
- });
- log::info!("ChemId: {} Current voltage {} and current {} with charge {}% and temp {} CVolt: {} CCur {}", chem_id, voltage, current, state, temp_c, charge_voltage, charge_current);
- let _ = battery_driver.unsealed();
- let _ = battery_driver.it_enable();
- Ok(())
-}
diff --git a/rust/src/hal/can_api.rs b/rust/src/hal/can_api.rs
deleted file mode 100644
index 045652c..0000000
--- a/rust/src/hal/can_api.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-use crate::hal::Sensor;
-use bincode::{Decode, Encode};
-
-pub(crate) const SENSOR_BASE_ADDRESS: u16 = 1000;
-#[derive(Debug, Clone, Copy, Encode, Decode)]
-pub(crate) struct AutoDetectRequest {}
-
-#[derive(Debug, Clone, Copy, Encode, Decode)]
-pub(crate) struct ResponseMoisture {
- pub plant: u8,
- pub sensor: Sensor,
- pub hz: u32,
-}
diff --git a/rust/src/hal/esp.rs b/rust/src/hal/esp.rs
deleted file mode 100644
index 33fc26d..0000000
--- a/rust/src/hal/esp.rs
+++ /dev/null
@@ -1,994 +0,0 @@
-use crate::bail;
-use crate::config::{NetworkConfig, PlantControllerConfig};
-use crate::hal::{PLANT_COUNT, TIME_ACCESS};
-use crate::log::{LogMessage, LOG_ACCESS};
-use chrono::{DateTime, Utc};
-use serde::Serialize;
-
-use crate::fat_error::{ContextExt, FatError, FatResult};
-use crate::hal::little_fs2storage_adapter::LittleFs2Filesystem;
-use alloc::string::ToString;
-use alloc::sync::Arc;
-use alloc::{format, string::String, vec, vec::Vec};
-use core::net::{IpAddr, Ipv4Addr, SocketAddr};
-use core::str::FromStr;
-use core::sync::atomic::Ordering;
-use embassy_executor::Spawner;
-use embassy_net::udp::UdpSocket;
-use embassy_net::{DhcpConfig, Ipv4Cidr, Runner, Stack, StackResources, StaticConfigV4};
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_sync::mutex::{Mutex, MutexGuard};
-use embassy_sync::once_lock::OnceLock;
-use embassy_time::{Duration, Timer, WithTimeout};
-use embedded_storage::nor_flash::{check_erase, NorFlash, ReadNorFlash};
-use esp_bootloader_esp_idf::ota::OtaImageState::Valid;
-use esp_bootloader_esp_idf::ota::{Ota, OtaImageState, Slot};
-use esp_bootloader_esp_idf::partitions::FlashRegion;
-use esp_hal::gpio::{Input, RtcPinWithResistors};
-use esp_hal::rng::Rng;
-use esp_hal::rtc_cntl::{
- sleep::{TimerWakeupSource, WakeupLevel},
- Rtc,
-};
-use esp_hal::system::software_reset;
-use esp_println::println;
-use esp_storage::FlashStorage;
-use esp_wifi::wifi::{
- AccessPointConfiguration, AccessPointInfo, AuthMethod, ClientConfiguration, Configuration,
- ScanConfig, ScanTypeConfig, WifiController, WifiDevice, WifiState,
-};
-use littlefs2::fs::Filesystem;
-use littlefs2_core::{FileType, PathBuf, SeekFrom};
-use log::{info, warn};
-use mcutie::{
- Error, McutieBuilder, McutieReceiver, McutieTask, MqttMessage, PublishDisplay, Publishable,
- QoS, Topic,
-};
-use portable_atomic::AtomicBool;
-use smoltcp::socket::udp::PacketMetadata;
-use smoltcp::wire::DnsQueryType;
-use sntpc::{get_time, NtpContext, NtpTimestampGenerator};
-
-#[esp_hal::ram(rtc_fast, persistent)]
-static mut LAST_WATERING_TIMESTAMP: [i64; PLANT_COUNT] = [0; PLANT_COUNT];
-#[esp_hal::ram(rtc_fast, persistent)]
-static mut CONSECUTIVE_WATERING_PLANT: [u32; PLANT_COUNT] = [0; PLANT_COUNT];
-#[esp_hal::ram(rtc_fast, persistent)]
-static mut LOW_VOLTAGE_DETECTED: i8 = 0;
-#[esp_hal::ram(rtc_fast, persistent)]
-static mut RESTART_TO_CONF: i8 = 0;
-
-const CONFIG_FILE: &str = "config.json";
-const NTP_SERVER: &str = "pool.ntp.org";
-
-static MQTT_CONNECTED_EVENT_RECEIVED: AtomicBool = AtomicBool::new(false);
-static MQTT_ROUND_TRIP_RECEIVED: AtomicBool = AtomicBool::new(false);
-pub static MQTT_STAY_ALIVE: AtomicBool = AtomicBool::new(false);
-static MQTT_BASE_TOPIC: OnceLock = OnceLock::new();
-
-#[derive(Serialize, Debug)]
-pub struct FileInfo {
- filename: String,
- size: usize,
-}
-
-#[derive(Serialize, Debug)]
-pub struct FileList {
- total: usize,
- used: usize,
- files: Vec,
-}
-
-#[derive(Copy, Clone, Default)]
-struct Timestamp {
- stamp: DateTime,
-}
-
-// Minimal esp-idf equivalent for gpio_hold on esp32c6 via ROM functions
-extern "C" {
- fn gpio_pad_hold(gpio_num: u32);
- fn gpio_pad_unhold(gpio_num: u32);
-}
-
-#[inline(always)]
-pub fn hold_enable(gpio_num: u8) {
- unsafe { gpio_pad_hold(gpio_num as u32) }
-}
-
-#[inline(always)]
-pub fn hold_disable(gpio_num: u8) {
- unsafe { gpio_pad_unhold(gpio_num as u32) }
-}
-
-impl NtpTimestampGenerator for Timestamp {
- fn init(&mut self) {
- self.stamp = DateTime::default();
- }
-
- fn timestamp_sec(&self) -> u64 {
- self.stamp.timestamp() as u64
- }
-
- fn timestamp_subsec_micros(&self) -> u32 {
- self.stamp.timestamp_subsec_micros()
- }
-}
-
-pub struct Esp<'a> {
- pub fs: Arc>>,
- pub rng: Rng,
- //first starter (ap or sta will take these)
- pub interface_sta: Option>,
- pub interface_ap: Option>,
- pub controller: Arc>>,
-
- pub boot_button: Input<'a>,
-
- // RTC-capable GPIO used as external wake source (store the raw peripheral)
- pub wake_gpio1: esp_hal::peripherals::GPIO1<'static>,
-
- pub ota: Ota<'static, FlashStorage>,
- pub ota_target: &'static mut FlashRegion<'static, FlashStorage>,
- pub current: Slot,
- pub slot0_state: OtaImageState,
- pub slot1_state: OtaImageState,
-}
-
-// SAFETY: On this target we never move Esp across OS threads; the firmware runs single-core
-// cooperative tasks with Embassy. All interior mutability of non-Send peripherals is gated
-// behind &mut self or embassy_sync Mutex with CriticalSectionRawMutex, which does not rely on
-// thread scheduling. Therefore it is sound to mark Esp as Send to satisfy trait object bounds
-// (e.g., Box). If you add fields that are accessed from multiple
-// CPU cores/threads, reconsider this.
-unsafe impl Send for Esp<'_> {}
-
-macro_rules! mk_static {
- ($t:ty,$val:expr) => {{
- static STATIC_CELL: static_cell::StaticCell<$t> = static_cell::StaticCell::new();
- #[deny(unused_attributes)]
- let x = STATIC_CELL.uninit().write(($val));
- x
- }};
-}
-
-impl Esp<'_> {
- pub(crate) async fn delete_file(&self, filename: String) -> FatResult<()> {
- let file = PathBuf::try_from(filename.as_str())?;
- let access = self.fs.lock().await;
- access.remove(&*file)?;
- Ok(())
- }
- pub(crate) async fn write_file(
- &mut self,
- filename: String,
- offset: u32,
- buf: &[u8],
- ) -> Result<(), FatError> {
- let file = PathBuf::try_from(filename.as_str())?;
- let access = self.fs.lock().await;
- access.open_file_with_options_and_then(
- |options| options.read(true).write(true).create(true),
- &*file,
- |file| {
- file.seek(SeekFrom::Start(offset))?;
- file.write(buf)?;
- Ok(())
- },
- )?;
- Ok(())
- }
-
- pub async fn get_size(&mut self, filename: String) -> FatResult {
- let file = PathBuf::try_from(filename.as_str())?;
- let access = self.fs.lock().await;
- let data = access.metadata(&*file)?;
- Ok(data.len())
- }
- pub(crate) async fn get_file(
- &mut self,
- filename: String,
- chunk: u32,
- ) -> FatResult<([u8; 512], usize)> {
- use littlefs2::io::Error as lfs2Error;
-
- let file = PathBuf::try_from(filename.as_str())?;
- let access = self.fs.lock().await;
- let mut buf = [0_u8; 512];
- let mut read = 0;
- let offset = chunk * buf.len() as u32;
- access.open_file_with_options_and_then(
- |options| options.read(true),
- &*file,
- |file| {
- let length = file.len()? as u32;
- if length == 0 {
- Err(lfs2Error::IO)
- } else if length > offset {
- file.seek(SeekFrom::Start(offset))?;
- read = file.read(&mut buf)?;
- Ok(())
- } else {
- //exactly at end, do nothing
- Ok(())
- }
- },
- )?;
- Ok((buf, read))
- }
-
- pub(crate) async fn write_ota(&mut self, offset: u32, buf: &[u8]) -> Result<(), FatError> {
- let _ = check_erase(self.ota_target, offset, offset + 4096);
- self.ota_target.erase(offset, offset + 4096)?;
-
- let mut temp = vec![0; buf.len()];
- let read_back = temp.as_mut_slice();
- //change to nor flash, align writes!
- self.ota_target.write(offset, buf)?;
- self.ota_target.read(offset, read_back)?;
- if buf != read_back {
- info!("Expected {:?} but got {:?}", buf, read_back);
- bail!(
- "Flash error, read back does not match write buffer at offset {:x}",
- offset
- )
- }
- Ok(())
- }
-
- pub(crate) async fn finalize_ota(&mut self) -> Result<(), FatError> {
- let current = self.ota.current_slot()?;
- if self.ota.current_ota_state()? != OtaImageState::Valid {
- info!(
- "Validating current slot {:?} as it was able to ota",
- current
- );
- self.ota.set_current_ota_state(Valid)?;
- }
-
- self.ota.set_current_slot(current.next())?;
- info!("switched slot");
- self.ota.set_current_ota_state(OtaImageState::New)?;
- info!("switched state for new partition");
- let state_new = self.ota.current_ota_state()?;
- info!("state on new partition now {:?}", state_new);
- //determine nextslot crc
-
- self.set_restart_to_conf(true);
- Ok(())
- }
-
- pub(crate) fn mode_override_pressed(&mut self) -> bool {
- self.boot_button.is_low()
- }
-
- pub(crate) async fn sntp(
- &mut self,
- _max_wait_ms: u32,
- stack: Stack<'_>,
- ) -> FatResult> {
- println!("start sntp");
- let mut rx_meta = [PacketMetadata::EMPTY; 16];
- let mut rx_buffer = [0; 4096];
- let mut tx_meta = [PacketMetadata::EMPTY; 16];
- let mut tx_buffer = [0; 4096];
-
- let mut socket = UdpSocket::new(
- stack,
- &mut rx_meta,
- &mut rx_buffer,
- &mut tx_meta,
- &mut tx_buffer,
- );
- socket.bind(123).unwrap();
-
- let context = NtpContext::new(Timestamp::default());
-
- let ntp_addrs = stack
- .dns_query(NTP_SERVER, DnsQueryType::A)
- .await
- .expect("Failed to resolve DNS");
- if ntp_addrs.is_empty() {
- bail!("Failed to resolve DNS");
- }
- info!("NTP server: {:?}", ntp_addrs);
-
- let mut counter = 0;
- loop {
- let addr: IpAddr = ntp_addrs[0].into();
- let timeout = get_time(SocketAddr::from((addr, 123)), &socket, context)
- .with_timeout(Duration::from_millis((_max_wait_ms / 10) as u64))
- .await;
-
- match timeout {
- Ok(result) => {
- let time = result?;
- info!("Time: {:?}", time);
- return DateTime::from_timestamp(time.seconds as i64, 0)
- .context("Could not convert Sntp result");
- }
- Err(err) => {
- warn!("sntp timeout, retry: {:?}", err);
- counter += 1;
- if counter > 10 {
- bail!("Failed to get time from NTP server");
- }
- Timer::after(Duration::from_millis(100)).await;
- }
- }
- }
- }
-
- pub(crate) async fn wifi_scan(&mut self) -> FatResult> {
- info!("start wifi scan");
- let mut lock = self.controller.try_lock()?;
- info!("start wifi scan lock");
- let scan_config = ScanConfig {
- ssid: None,
- bssid: None,
- channel: None,
- show_hidden: false,
- scan_type: ScanTypeConfig::Active {
- min: Default::default(),
- max: Default::default(),
- },
- };
- let rv = lock.scan_with_config_async(scan_config).await?;
- info!("end wifi scan lock");
- Ok(rv)
- }
-
- pub(crate) fn last_pump_time(&self, plant: usize) -> Option> {
- let ts = unsafe { LAST_WATERING_TIMESTAMP }[plant];
- DateTime::from_timestamp_millis(ts)
- }
- pub(crate) fn store_last_pump_time(&mut self, plant: usize, time: DateTime) {
- unsafe {
- LAST_WATERING_TIMESTAMP[plant] = time.timestamp_millis();
- }
- }
- pub(crate) fn set_low_voltage_in_cycle(&mut self) {
- unsafe {
- LOW_VOLTAGE_DETECTED = 1;
- }
- }
- pub(crate) fn clear_low_voltage_in_cycle(&mut self) {
- unsafe {
- LOW_VOLTAGE_DETECTED = 0;
- }
- }
-
- pub(crate) fn low_voltage_in_cycle(&mut self) -> bool {
- unsafe { LOW_VOLTAGE_DETECTED == 1 }
- }
- pub(crate) fn store_consecutive_pump_count(&mut self, plant: usize, count: u32) {
- unsafe {
- CONSECUTIVE_WATERING_PLANT[plant] = count;
- }
- }
- pub(crate) fn consecutive_pump_count(&mut self, plant: usize) -> u32 {
- unsafe { CONSECUTIVE_WATERING_PLANT[plant] }
- }
- pub(crate) fn get_restart_to_conf(&mut self) -> bool {
- unsafe { RESTART_TO_CONF == 1 }
- }
- pub(crate) fn set_restart_to_conf(&mut self, to_conf: bool) {
- unsafe {
- if to_conf {
- RESTART_TO_CONF = 1;
- } else {
- RESTART_TO_CONF = 0;
- }
- }
- }
-
- pub(crate) async fn wifi_ap(&mut self) -> FatResult> {
- let ssid = match self.load_config().await {
- Ok(config) => config.network.ap_ssid.as_str().to_string(),
- Err(_) => "PlantCtrl Emergency Mode".to_string(),
- };
-
- let spawner = Spawner::for_current_executor().await;
-
- let device = self.interface_ap.take().unwrap();
- let gw_ip_addr_str = "192.168.71.1";
- let gw_ip_addr = Ipv4Addr::from_str(gw_ip_addr_str).expect("failed to parse gateway ip");
-
- let config = embassy_net::Config::ipv4_static(StaticConfigV4 {
- address: Ipv4Cidr::new(gw_ip_addr, 24),
- gateway: Some(gw_ip_addr),
- dns_servers: Default::default(),
- });
-
- let seed = (self.rng.random() as u64) << 32 | self.rng.random() as u64;
-
- println!("init secondary stack");
- // Init network stack
- let (stack, runner) = embassy_net::new(
- device,
- config,
- mk_static!(StackResources<4>, StackResources::<4>::new()),
- seed,
- );
- let stack = mk_static!(Stack, stack);
-
- let client_config = Configuration::AccessPoint(AccessPointConfiguration {
- ssid: ssid.clone(),
- ..Default::default()
- });
-
- self.controller
- .lock()
- .await
- .set_configuration(&client_config)?;
-
- println!("start new");
- self.controller.lock().await.start()?;
- println!("start net task");
- spawner.spawn(net_task(runner)).ok();
- println!("run dhcp");
- spawner.spawn(run_dhcp(stack.clone(), gw_ip_addr_str)).ok();
-
- loop {
- if stack.is_link_up() {
- break;
- }
- Timer::after(Duration::from_millis(500)).await;
- }
- while !stack.is_config_up() {
- Timer::after(Duration::from_millis(100)).await
- }
- println!("Connect to the AP `${ssid}` and point your browser to http://{gw_ip_addr_str}/");
- stack
- .config_v4()
- .inspect(|c| println!("ipv4 config: {c:?}"));
-
- Ok(stack.clone())
- }
-
- pub(crate) async fn wifi(
- &mut self,
- network_config: &NetworkConfig,
- ) -> FatResult> {
- esp_wifi::wifi_set_log_verbose();
- let ssid = network_config.ssid.clone();
- match &ssid {
- Some(ssid) => {
- if ssid.is_empty() {
- bail!("Wifi ssid was empty")
- }
- }
- None => {
- bail!("Wifi ssid was empty")
- }
- }
- let ssid = ssid.unwrap().to_string();
- info!("attempting to connect wifi {ssid}");
- let password = match network_config.password {
- Some(ref password) => password.to_string(),
- None => "".to_string(),
- };
- let max_wait = network_config.max_wait;
-
- let spawner = Spawner::for_current_executor().await;
-
- let device = self.interface_sta.take().unwrap();
- let config = embassy_net::Config::dhcpv4(DhcpConfig::default());
-
- let seed = (self.rng.random() as u64) << 32 | self.rng.random() as u64;
-
- // Init network stack
- let (stack, runner) = embassy_net::new(
- device,
- config,
- mk_static!(StackResources<8>, StackResources::<8>::new()),
- seed,
- );
- let stack = mk_static!(Stack, stack);
-
- let client_config = Configuration::Client(ClientConfiguration {
- ssid,
- bssid: None,
- auth_method: AuthMethod::WPA2Personal, //FIXME read from config, fill via scan
- password,
- channel: None,
- });
- self.controller
- .lock()
- .await
- .set_configuration(&client_config)?;
- spawner.spawn(net_task(runner)).ok();
- self.controller.lock().await.start_async().await?;
-
- let timeout = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } + max_wait as u64 * 1000;
- loop {
- let state = esp_wifi::wifi::sta_state();
- match state {
- WifiState::StaStarted => {
- self.controller.lock().await.connect()?;
- break;
- }
- _ => {}
- }
- if {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } > timeout
- {
- bail!("Timeout waiting for wifi sta ready")
- }
- Timer::after(Duration::from_millis(500)).await;
- }
- let timeout = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } + max_wait as u64 * 1000;
- loop {
- let state = esp_wifi::wifi::sta_state();
- match state {
- WifiState::StaConnected => {
- break;
- }
- _ => {}
- }
- if {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } > timeout
- {
- bail!("Timeout waiting for wifi sta connected")
- }
- Timer::after(Duration::from_millis(500)).await;
- }
- let timeout = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } + max_wait as u64 * 1000;
- while !stack.is_link_up() {
- if {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } > timeout
- {
- bail!("Timeout waiting for wifi link up")
- }
- Timer::after(Duration::from_millis(500)).await;
- }
- let timeout = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } + max_wait as u64 * 1000;
- while !stack.is_config_up() {
- if {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } > timeout
- {
- bail!("Timeout waiting for wifi config up")
- }
- Timer::after(Duration::from_millis(100)).await
- }
-
- info!("Connected WIFI, dhcp: {:?}", stack.config_v4());
- Ok(stack.clone())
- }
-
- pub fn deep_sleep(
- &mut self,
- duration_in_ms: u64,
- mut rtc: MutexGuard,
- ) -> ! {
- // Configure and enter deep sleep using esp-hal. Also keep prior behavior where
- // duration_in_ms == 0 triggers an immediate reset.
-
- // Mark the current OTA image as valid if we reached here while in pending verify.
- if let Ok(cur) = self.ota.current_ota_state() {
- if cur == OtaImageState::PendingVerify {
- self.ota
- .set_current_ota_state(OtaImageState::Valid)
- .expect("Could not set image to valid");
- }
- }
-
- if duration_in_ms == 0 {
- software_reset();
- } else {
- let timer = TimerWakeupSource::new(core::time::Duration::from_millis(duration_in_ms));
- let mut wake_pins: [(&mut dyn RtcPinWithResistors, WakeupLevel); 1] =
- [(&mut self.wake_gpio1, WakeupLevel::Low)];
- let ext1 = esp_hal::rtc_cntl::sleep::Ext1WakeupSource::new(&mut wake_pins);
- rtc.sleep_deep(&[&timer, &ext1]);
- }
- }
-
- pub(crate) async fn load_config(&mut self) -> FatResult {
- let cfg = PathBuf::try_from(CONFIG_FILE)?;
- let config_exist = self.fs.lock().await.exists(&cfg);
- if !config_exist {
- bail!("No config file stored")
- }
- let data = self.fs.lock().await.read::<4096>(&cfg)?;
- let config: PlantControllerConfig = serde_json::from_slice(&data)?;
- return Ok(config);
- }
- pub(crate) async fn save_config(&mut self, config: Vec) -> FatResult<()> {
- let filesystem = self.fs.lock().await;
- let cfg = PathBuf::try_from(CONFIG_FILE)?;
- filesystem.write(&cfg, &*config)?;
- Ok(())
- }
- pub(crate) async fn list_files(&self) -> FatResult {
- let path = PathBuf::new();
-
- let fs = self.fs.lock().await;
- let free_size = fs.available_space()?;
- let total_size = fs.total_space();
-
- let mut result = FileList {
- total: total_size,
- used: total_size - free_size,
- files: Vec::new(),
- };
-
- fs.read_dir_and_then(&path, |dir| {
- for entry in dir {
- let e = entry?;
- if e.file_type() == FileType::File {
- result.files.push(FileInfo {
- filename: e.path().to_string(),
- size: e.metadata().len(),
- });
- }
- }
- Ok(())
- })?;
- Ok(result)
- }
-
- pub(crate) async fn init_rtc_deepsleep_memory(
- &self,
- init_rtc_store: bool,
- to_config_mode: bool,
- ) {
- if init_rtc_store {
- unsafe {
- LAST_WATERING_TIMESTAMP = [0; PLANT_COUNT];
- CONSECUTIVE_WATERING_PLANT = [0; PLANT_COUNT];
- LOW_VOLTAGE_DETECTED = 0;
- if to_config_mode {
- RESTART_TO_CONF = 1
- } else {
- RESTART_TO_CONF = 0;
- }
- };
- } else {
- unsafe {
- if to_config_mode {
- RESTART_TO_CONF = 1;
- }
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::RestartToConfig,
- RESTART_TO_CONF as u32,
- 0,
- "",
- "",
- )
- .await;
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::LowVoltage,
- LOW_VOLTAGE_DETECTED as u32,
- 0,
- "",
- "",
- )
- .await;
- for i in 0..PLANT_COUNT {
- log::info!(
- "LAST_WATERING_TIMESTAMP[{}] = UTC {}",
- i,
- LAST_WATERING_TIMESTAMP[i]
- );
- }
- for i in 0..PLANT_COUNT {
- log::info!(
- "CONSECUTIVE_WATERING_PLANT[{}] = {}",
- i,
- CONSECUTIVE_WATERING_PLANT[i]
- );
- }
- }
- }
- }
-
- pub(crate) async fn mqtt(
- &mut self,
- network_config: &'static NetworkConfig,
- stack: Stack<'static>,
- ) -> FatResult<()> {
- let base_topic = network_config
- .base_topic
- .as_ref()
- .context("missing base topic")?;
- if base_topic.is_empty() {
- bail!("Mqtt base_topic was empty")
- }
- MQTT_BASE_TOPIC
- .init(base_topic.to_string())
- .map_err(|_| FatError::String {
- error: "Error setting basetopic".to_string(),
- })?;
-
- let mqtt_url = network_config
- .mqtt_url
- .as_ref()
- .context("missing mqtt url")?;
- if mqtt_url.is_empty() {
- bail!("Mqtt url was empty")
- }
-
- let last_will_topic = format!("{}/state", base_topic);
- let round_trip_topic = format!("{}/internal/roundtrip", base_topic);
- let stay_alive_topic = format!("{}/stay_alive", base_topic);
-
- let mut builder: McutieBuilder<'_, String, PublishDisplay, 0> =
- McutieBuilder::new(stack, "plant ctrl", mqtt_url);
- if network_config.mqtt_user.is_some() && network_config.mqtt_password.is_some() {
- builder = builder.with_authentication(
- network_config.mqtt_user.as_ref().unwrap().as_str(),
- network_config.mqtt_password.as_ref().unwrap().as_str(),
- );
- info!("With authentification");
- }
-
- let lwt = Topic::General(last_will_topic);
- let lwt = mk_static!(Topic, lwt);
- let lwt = lwt.with_display("lost").retain(true).qos(QoS::AtLeastOnce);
- builder = builder.with_last_will(lwt);
- //TODO make configurable
- builder = builder.with_device_id("plantctrl");
-
- let builder: McutieBuilder<'_, String, PublishDisplay, 2> = builder
- .with_subscriptions([
- Topic::General(round_trip_topic.clone()),
- Topic::General(stay_alive_topic.clone()),
- ]);
-
- let keep_alive = Duration::from_secs(60 * 60 * 2).as_secs() as u16;
- let (receiver, task) = builder.build(keep_alive);
-
- let spawner = Spawner::for_current_executor().await;
- spawner.spawn(mqtt_incoming_task(
- receiver,
- round_trip_topic.clone(),
- stay_alive_topic.clone(),
- ))?;
- spawner.spawn(mqtt_runner(task))?;
-
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::StayAlive, 0, 0, "", &stay_alive_topic)
- .await;
-
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::MqttInfo, 0, 0, "", mqtt_url)
- .await;
-
- let mqtt_timeout = 15000;
- let timeout = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } + mqtt_timeout as u64 * 1000;
- while !MQTT_CONNECTED_EVENT_RECEIVED.load(Ordering::Relaxed) {
- let cur = TIME_ACCESS.get().await.lock().await.current_time_us();
- if cur > timeout {
- bail!("Timeout waiting MQTT connect event")
- }
- Timer::after(Duration::from_millis(100)).await;
- }
-
- Topic::General(round_trip_topic.clone())
- .with_display("online_text")
- .publish()
- .await
- .unwrap();
-
- let timeout = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } + mqtt_timeout as u64 * 1000;
- while !MQTT_ROUND_TRIP_RECEIVED.load(Ordering::Relaxed) {
- let cur = TIME_ACCESS.get().await.lock().await.current_time_us();
- if cur > timeout {
- //ensure we do not further try to publish
- MQTT_CONNECTED_EVENT_RECEIVED.store(false, Ordering::Relaxed);
- bail!("Timeout waiting MQTT roundtrip")
- }
- Timer::after(Duration::from_millis(100)).await;
- }
- Ok(())
- }
-
- pub(crate) async fn mqtt_inner(&mut self, subtopic: &str, message: &str) -> FatResult<()> {
- if !subtopic.starts_with("/") {
- bail!("Subtopic without / at start {}", subtopic);
- }
- if subtopic.len() > 192 {
- bail!("Subtopic exceeds 192 chars {}", subtopic);
- }
- let base_topic = MQTT_BASE_TOPIC
- .try_get()
- .context("missing base topic in static!")?;
-
- let full_topic = format!("{base_topic}{subtopic}");
-
- loop {
- let result = Topic::General(full_topic.as_str())
- .with_display(message)
- .retain(true)
- .publish()
- .await;
- match result {
- Ok(()) => return Ok(()),
- Err(err) => {
- let retry = match err {
- Error::IOError => false,
- Error::TimedOut => true,
- Error::TooLarge => false,
- Error::PacketError => false,
- Error::Invalid => false,
- };
- if !retry {
- bail!(
- "Error during mqtt send on topic {} with message {:#?} error is {:?}",
- &full_topic,
- message,
- err
- );
- }
- info!(
- "Retransmit for {} with message {:#?} error is {:?} retrying {}",
- &full_topic, message, err, retry
- );
- Timer::after(Duration::from_millis(100)).await;
- }
- }
- }
- }
- pub(crate) async fn mqtt_publish(&mut self, subtopic: &str, message: &str) {
- let online = MQTT_CONNECTED_EVENT_RECEIVED.load(Ordering::Relaxed);
- if !online {
- return;
- }
- let roundtrip_ok = MQTT_ROUND_TRIP_RECEIVED.load(Ordering::Relaxed);
- if !roundtrip_ok {
- info!("MQTT roundtrip not received yet, dropping message");
- return;
- }
- match self.mqtt_inner(subtopic, message).await {
- Ok(()) => {}
- Err(err) => {
- info!(
- "Error during mqtt send on topic {} with message {:#?} error is {:?}",
- subtopic, message, err
- );
- }
- };
- }
-}
-
-#[embassy_executor::task]
-async fn mqtt_runner(
- task: McutieTask<'static, String, PublishDisplay<'static, String, &'static str>, 2>,
-) {
- task.run().await;
-}
-
-#[embassy_executor::task]
-async fn mqtt_incoming_task(
- receiver: McutieReceiver,
- round_trip_topic: String,
- stay_alive_topic: String,
-) {
- loop {
- let message = receiver.receive().await;
- match message {
- MqttMessage::Connected => {
- info!("Mqtt connected");
- MQTT_CONNECTED_EVENT_RECEIVED.store(true, Ordering::Relaxed);
- }
- MqttMessage::Publish(topic, payload) => match topic {
- Topic::DeviceType(_type_topic) => {}
- Topic::Device(_device_topic) => {}
- Topic::General(topic) => {
- let subtopic = topic.as_str();
-
- if subtopic.eq(round_trip_topic.as_str()) {
- MQTT_ROUND_TRIP_RECEIVED.store(true, Ordering::Relaxed);
- } else if subtopic.eq(stay_alive_topic.as_str()) {
- let value = payload.eq_ignore_ascii_case("true".as_ref())
- || payload.eq_ignore_ascii_case("1".as_ref());
- let a = match value {
- true => 1,
- false => 0,
- };
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::MqttStayAliveRec, a, 0, "", "")
- .await;
- MQTT_STAY_ALIVE.store(value, Ordering::Relaxed);
- } else {
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::UnknownTopic, 0, 0, "", &*topic)
- .await;
- }
- }
- },
- MqttMessage::Disconnected => {
- MQTT_CONNECTED_EVENT_RECEIVED.store(false, Ordering::Relaxed);
- info!("Mqtt disconnected");
- }
- MqttMessage::HomeAssistantOnline => {
- info!("Home assistant is online");
- }
- }
- }
-}
-
-#[embassy_executor::task(pool_size = 2)]
-async fn net_task(mut runner: Runner<'static, WifiDevice<'static>>) {
- runner.run().await;
-}
-
-#[embassy_executor::task]
-async fn run_dhcp(stack: Stack<'static>, gw_ip_addr: &'static str) {
- use core::net::{Ipv4Addr, SocketAddrV4};
-
- use edge_dhcp::{
- io::{self, DEFAULT_SERVER_PORT},
- server::{Server, ServerOptions},
- };
- use edge_nal::UdpBind;
- use edge_nal_embassy::{Udp, UdpBuffers};
-
- let ip = Ipv4Addr::from_str(gw_ip_addr).expect("dhcp task failed to parse gw ip");
-
- let mut buf = [0u8; 1500];
-
- let mut gw_buf = [Ipv4Addr::UNSPECIFIED];
-
- let buffers = UdpBuffers::<3, 1024, 1024, 10>::new();
- let unbound_socket = Udp::new(stack, &buffers);
- let mut bound_socket = unbound_socket
- .bind(SocketAddr::V4(SocketAddrV4::new(
- Ipv4Addr::UNSPECIFIED,
- DEFAULT_SERVER_PORT,
- )))
- .await
- .unwrap();
-
- loop {
- _ = io::server::run(
- &mut Server::<_, 64>::new_with_et(ip),
- &ServerOptions::new(ip, Some(&mut gw_buf)),
- &mut bound_socket,
- &mut buf,
- )
- .await
- .inspect_err(|e| log::warn!("DHCP server error: {e:?}"));
- Timer::after(Duration::from_millis(500)).await;
- }
-}
diff --git a/rust/src/hal/initial_hal.rs b/rust/src/hal/initial_hal.rs
deleted file mode 100644
index b59bf0e..0000000
--- a/rust/src/hal/initial_hal.rs
+++ /dev/null
@@ -1,144 +0,0 @@
-use crate::alloc::boxed::Box;
-use crate::fat_error::{FatError, FatResult};
-use crate::hal::esp::Esp;
-use crate::hal::rtc::{BackupHeader, RTCModuleInteraction};
-use crate::hal::water::TankSensor;
-use crate::hal::{BoardInteraction, FreePeripherals, Moistures, TIME_ACCESS};
-use crate::{
- bail,
- config::PlantControllerConfig,
- hal::battery::{BatteryInteraction, NoBatteryMonitor},
-};
-use async_trait::async_trait;
-use chrono::{DateTime, Utc};
-use esp_hal::gpio::{Level, Output, OutputConfig};
-use measurements::{Current, Voltage};
-
-pub struct Initial<'a> {
- pub(crate) general_fault: Output<'a>,
- pub(crate) esp: Esp<'a>,
- pub(crate) config: PlantControllerConfig,
- pub(crate) battery: Box,
- pub rtc: Box,
-}
-
-pub(crate) struct NoRTC {}
-
-#[async_trait(?Send)]
-impl RTCModuleInteraction for NoRTC {
- async fn get_backup_info(&mut self) -> Result {
- bail!("Please configure board revision")
- }
-
- async fn get_backup_config(&mut self, _chunk: usize) -> FatResult<([u8; 32], usize, u16)> {
- bail!("Please configure board revision")
- }
-
- async fn backup_config(&mut self, _offset: usize, _bytes: &[u8]) -> FatResult<()> {
- bail!("Please configure board revision")
- }
-
- async fn backup_config_finalize(&mut self, _crc: u16, _length: usize) -> FatResult<()> {
- bail!("Please configure board revision")
- }
-
- async fn get_rtc_time(&mut self) -> Result, FatError> {
- bail!("Please configure board revision")
- }
-
- async fn set_rtc_time(&mut self, _time: &DateTime) -> Result<(), FatError> {
- bail!("Please configure board revision")
- }
-}
-
-pub(crate) fn create_initial_board(
- free_pins: FreePeripherals<'static>,
- config: PlantControllerConfig,
- esp: Esp<'static>,
-) -> Result + Send>, FatError> {
- log::info!("Start initial");
- let general_fault = Output::new(free_pins.gpio23, Level::Low, OutputConfig::default());
- let v = Initial {
- general_fault,
- config,
- esp,
- battery: Box::new(NoBatteryMonitor {}),
- rtc: Box::new(NoRTC {}),
- };
- Ok(Box::new(v))
-}
-
-#[async_trait(?Send)]
-impl<'a> BoardInteraction<'a> for Initial<'a> {
- fn get_tank_sensor(&mut self) -> Result<&mut TankSensor<'a>, FatError> {
- bail!("Please configure board revision")
- }
-
- fn get_esp(&mut self) -> &mut Esp<'a> {
- &mut self.esp
- }
-
- fn get_config(&mut self) -> &PlantControllerConfig {
- &self.config
- }
-
- fn get_battery_monitor(&mut self) -> &mut Box {
- &mut self.battery
- }
-
- fn get_rtc_module(&mut self) -> &mut Box {
- &mut self.rtc
- }
-
- async fn set_charge_indicator(&mut self, _charging: bool) -> Result<(), FatError> {
- bail!("Please configure board revision")
- }
-
- async fn deep_sleep(&mut self, duration_in_ms: u64) -> ! {
- let rtc = TIME_ACCESS.get().await.lock().await;
- self.esp.deep_sleep(duration_in_ms, rtc);
- }
- fn is_day(&self) -> bool {
- false
- }
- async fn light(&mut self, _enable: bool) -> Result<(), FatError> {
- bail!("Please configure board revision")
- }
-
- async fn pump(&mut self, _plant: usize, _enable: bool) -> Result<(), FatError> {
- bail!("Please configure board revision")
- }
-
- async fn pump_current(&mut self, _plant: usize) -> Result {
- bail!("Please configure board revision")
- }
-
- async fn fault(&mut self, _plant: usize, _enable: bool) -> Result<(), FatError> {
- bail!("Please configure board revision")
- }
-
- async fn measure_moisture_hz(&mut self) -> Result {
- bail!("Please configure board revision")
- }
-
-
- async fn general_fault(&mut self, enable: bool) {
- self.general_fault.set_level(enable.into());
- }
-
- async fn test(&mut self) -> Result<(), FatError> {
- bail!("Please configure board revision")
- }
-
- fn set_config(&mut self, config: PlantControllerConfig) {
- self.config = config;
- }
-
- async fn get_mptt_voltage(&mut self) -> Result {
- bail!("Please configure board revision")
- }
-
- async fn get_mptt_current(&mut self) -> Result {
- bail!("Please configure board revision")
- }
-}
diff --git a/rust/src/hal/little_fs2storage_adapter.rs b/rust/src/hal/little_fs2storage_adapter.rs
deleted file mode 100644
index c49a213..0000000
--- a/rust/src/hal/little_fs2storage_adapter.rs
+++ /dev/null
@@ -1,88 +0,0 @@
-use embedded_storage::nor_flash::{check_erase, NorFlash, ReadNorFlash};
-use esp_bootloader_esp_idf::partitions::FlashRegion;
-use esp_storage::FlashStorage;
-use littlefs2::consts::U4096 as lfsCache;
-use littlefs2::consts::U512 as lfsLookahead;
-use littlefs2::driver::Storage as lfs2Storage;
-use littlefs2::io::Error as lfs2Error;
-use littlefs2::io::Result as lfs2Result;
-use log::error;
-
-pub struct LittleFs2Filesystem {
- pub(crate) storage: &'static mut FlashRegion<'static, FlashStorage>,
-}
-
-impl lfs2Storage for LittleFs2Filesystem {
- const READ_SIZE: usize = 4096;
- const WRITE_SIZE: usize = 4096;
- const BLOCK_SIZE: usize = 4096; //usually optimal for flash access
- const BLOCK_COUNT: usize = 8 * 1000 * 1000 / 4096; //8Mb in 4k blocks + a little space for stupid calculation errors
- const BLOCK_CYCLES: isize = 100;
- type CACHE_SIZE = lfsCache;
- type LOOKAHEAD_SIZE = lfsLookahead;
-
- fn read(&mut self, off: usize, buf: &mut [u8]) -> lfs2Result {
- let read_size: usize = Self::READ_SIZE;
- if off % read_size != 0 {
- error!("Littlefs2Filesystem read error: offset not aligned to read size offset: {} read_size: {}", off, read_size);
- return Err(lfs2Error::IO);
- }
- if buf.len() % read_size != 0 {
- error!("Littlefs2Filesystem read error: length not aligned to read size length: {} read_size: {}", buf.len(), read_size);
- return Err(lfs2Error::IO);
- }
- match self.storage.read(off as u32, buf) {
- Ok(..) => Ok(buf.len()),
- Err(err) => {
- error!("Littlefs2Filesystem read error: {:?}", err);
- Err(lfs2Error::IO)
- }
- }
- }
-
- fn write(&mut self, off: usize, data: &[u8]) -> lfs2Result {
- let write_size: usize = Self::WRITE_SIZE;
- if off % write_size != 0 {
- error!("Littlefs2Filesystem write error: offset not aligned to write size offset: {} write_size: {}", off, write_size);
- return Err(lfs2Error::IO);
- }
- if data.len() % write_size != 0 {
- error!("Littlefs2Filesystem write error: length not aligned to write size length: {} write_size: {}", data.len(), write_size);
- return Err(lfs2Error::IO);
- }
- match self.storage.write(off as u32, data) {
- Ok(..) => Ok(data.len()),
- Err(err) => {
- error!("Littlefs2Filesystem write error: {:?}", err);
- Err(lfs2Error::IO)
- }
- }
- }
-
- fn erase(&mut self, off: usize, len: usize) -> lfs2Result {
- let block_size: usize = Self::BLOCK_SIZE;
- if off % block_size != 0 {
- error!("Littlefs2Filesystem erase error: offset not aligned to block size offset: {} block_size: {}", off, block_size);
- return lfs2Result::Err(lfs2Error::IO);
- }
- if len % block_size != 0 {
- error!("Littlefs2Filesystem erase error: length not aligned to block size length: {} block_size: {}", len, block_size);
- return lfs2Result::Err(lfs2Error::IO);
- }
-
- match check_erase(self.storage, off as u32, (off+len) as u32) {
- Ok(_) => {}
- Err(err) => {
- error!("Littlefs2Filesystem check erase error: {:?}", err);
- return lfs2Result::Err(lfs2Error::IO);
- }
- }
- match self.storage.erase(off as u32, (off + len) as u32) {
- Ok(..) => lfs2Result::Ok(len),
- Err(err) => {
- error!("Littlefs2Filesystem erase error: {:?}", err);
- lfs2Result::Err(lfs2Error::IO)
- }
- }
- }
-}
diff --git a/rust/src/hal/mod.rs b/rust/src/hal/mod.rs
deleted file mode 100644
index 6baf93a..0000000
--- a/rust/src/hal/mod.rs
+++ /dev/null
@@ -1,715 +0,0 @@
-pub(crate) mod battery;
-// mod can_api; // replaced by external canapi crate
-pub mod esp;
-mod initial_hal;
-mod little_fs2storage_adapter;
-pub(crate) mod rtc;
-mod v3_hal;
-mod v3_shift_register;
-mod v4_hal;
-pub(crate) mod v4_sensor;
-mod water;
-use crate::alloc::string::ToString;
-use crate::hal::rtc::{DS3231Module, RTCModuleInteraction};
-use esp_hal::peripherals::Peripherals;
-use esp_hal::peripherals::ADC1;
-use esp_hal::peripherals::GPIO0;
-use esp_hal::peripherals::GPIO10;
-use esp_hal::peripherals::GPIO11;
-use esp_hal::peripherals::GPIO12;
-use esp_hal::peripherals::GPIO13;
-use esp_hal::peripherals::GPIO14;
-use esp_hal::peripherals::GPIO15;
-use esp_hal::peripherals::GPIO16;
-use esp_hal::peripherals::GPIO17;
-use esp_hal::peripherals::GPIO18;
-use esp_hal::peripherals::GPIO2;
-use esp_hal::peripherals::GPIO21;
-use esp_hal::peripherals::GPIO22;
-use esp_hal::peripherals::GPIO23;
-use esp_hal::peripherals::GPIO24;
-use esp_hal::peripherals::GPIO25;
-use esp_hal::peripherals::GPIO26;
-use esp_hal::peripherals::GPIO27;
-use esp_hal::peripherals::GPIO28;
-use esp_hal::peripherals::GPIO29;
-use esp_hal::peripherals::GPIO3;
-use esp_hal::peripherals::GPIO30;
-use esp_hal::peripherals::GPIO4;
-use esp_hal::peripherals::GPIO5;
-use esp_hal::peripherals::GPIO6;
-use esp_hal::peripherals::GPIO7;
-use esp_hal::peripherals::GPIO8;
-use esp_hal::peripherals::TWAI0;
-
-use crate::{
- bail,
- config::{BatteryBoardVersion, BoardVersion, PlantControllerConfig},
- hal::{
- battery::{BatteryInteraction, NoBatteryMonitor},
- esp::Esp,
- },
- log::LogMessage,
- BOARD_ACCESS,
-};
-use alloc::boxed::Box;
-use alloc::format;
-use alloc::sync::Arc;
-use async_trait::async_trait;
-use bincode::{Decode, Encode};
-use bq34z100::Bq34z100g1Driver;
-use chrono::{DateTime, FixedOffset, Utc};
-use core::cell::RefCell;
-use canapi::SensorSlot;
-use ds323x::ic::DS3231;
-use ds323x::interface::I2cInterface;
-use ds323x::{DateTimeAccess, Ds323x};
-use eeprom24x::addr_size::TwoBytes;
-use eeprom24x::page_size::B32;
-use eeprom24x::unique_serial::No;
-use eeprom24x::{Eeprom24x, SlaveAddr, Storage};
-use embassy_embedded_hal::shared_bus::blocking::i2c::I2cDevice;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_sync::blocking_mutex::CriticalSectionMutex;
-use esp_bootloader_esp_idf::partitions::{
- AppPartitionSubType, DataPartitionSubType, FlashRegion, PartitionEntry,
-};
-use esp_hal::clock::CpuClock;
-use esp_hal::gpio::{Input, InputConfig, Pull};
-use measurements::{Current, Voltage};
-
-use crate::fat_error::{ContextExt, FatError, FatResult};
-use crate::hal::battery::{print_battery_bq34z100, BQ34Z100G1};
-use crate::hal::little_fs2storage_adapter::LittleFs2Filesystem;
-use crate::hal::water::TankSensor;
-use crate::log::LOG_ACCESS;
-use embassy_sync::mutex::Mutex;
-use embassy_sync::once_lock::OnceLock;
-use embedded_storage::nor_flash::ReadNorFlash;
-use esp_alloc as _;
-use esp_backtrace as _;
-use esp_bootloader_esp_idf::ota::{Ota, OtaImageState};
-use esp_bootloader_esp_idf::ota::{Slot as ota_slot, Slot};
-use esp_hal::delay::Delay;
-use esp_hal::i2c::master::{BusTimeout, Config, I2c};
-use esp_hal::pcnt::unit::Unit;
-use esp_hal::pcnt::Pcnt;
-use esp_hal::rng::Rng;
-use esp_hal::rtc_cntl::{Rtc, SocResetReason};
-use esp_hal::system::reset_reason;
-use esp_hal::time::Rate;
-use esp_hal::timer::timg::TimerGroup;
-use esp_hal::Blocking;
-use esp_storage::FlashStorage;
-use esp_wifi::{init, EspWifiController};
-use littlefs2::fs::{Allocation, Filesystem as lfs2Filesystem};
-use littlefs2::object_safe::DynStorage;
-use log::{error, info, warn};
-use portable_atomic::AtomicBool;
-use serde::Serialize;
-
-
-pub static TIME_ACCESS: OnceLock> = OnceLock::new();
-
-//Only support for 8 right now!
-pub const PLANT_COUNT: usize = 8;
-
-pub static PROGRESS_ACTIVE: AtomicBool = AtomicBool::new(false);
-
-const TANK_MULTI_SAMPLE: usize = 11;
-pub static I2C_DRIVER: OnceLock<
- embassy_sync::blocking_mutex::Mutex>>,
-> = OnceLock::new();
-
-#[derive(Debug, PartialEq, Clone, Copy, Encode, Decode)]
-pub enum Sensor {
- A,
- B,
-}
-
-impl Into for Sensor {
- fn into(self) -> SensorSlot {
- match self {
- Sensor::A => SensorSlot::A,
- Sensor::B => SensorSlot::B,
- }
- }
-}
-
-pub struct PlantHal {}
-
-pub struct HAL<'a> {
- pub board_hal: Box + Send>,
-}
-
-#[async_trait(?Send)]
-pub trait BoardInteraction<'a> {
- fn get_tank_sensor(&mut self) -> Result<&mut TankSensor<'a>, FatError>;
- fn get_esp(&mut self) -> &mut Esp<'a>;
- fn get_config(&mut self) -> &PlantControllerConfig;
- fn get_battery_monitor(&mut self) -> &mut Box;
- fn get_rtc_module(&mut self) -> &mut Box;
- async fn set_charge_indicator(&mut self, charging: bool) -> Result<(), FatError>;
- async fn deep_sleep(&mut self, duration_in_ms: u64) -> !;
-
- fn is_day(&self) -> bool;
- //should be multsampled
- async fn light(&mut self, enable: bool) -> FatResult<()>;
- async fn pump(&mut self, plant: usize, enable: bool) -> FatResult<()>;
- async fn pump_current(&mut self, plant: usize) -> FatResult;
- async fn fault(&mut self, plant: usize, enable: bool) -> FatResult<()>;
- async fn measure_moisture_hz(&mut self) -> Result;
- async fn general_fault(&mut self, enable: bool);
- async fn test(&mut self) -> FatResult<()>;
- fn set_config(&mut self, config: PlantControllerConfig);
- async fn get_mptt_voltage(&mut self) -> FatResult;
- async fn get_mptt_current(&mut self) -> FatResult;
-
- // Return JSON string with autodetected sensors per plant. Default: not supported.
- async fn detect_sensors(&mut self) -> FatResult {
- bail!("Autodetection is only available on v4 HAL with CAN bus");
- }
-
- async fn progress(&mut self, counter: u32) {
- // Indicate progress is active to suppress default wait_infinity blinking
- crate::hal::PROGRESS_ACTIVE.store(true, core::sync::atomic::Ordering::Relaxed);
-
- let current = counter % PLANT_COUNT as u32;
- for led in 0..PLANT_COUNT {
- if let Err(err) = self.fault(led, current == led as u32).await {
- warn!("Fault on plant {}: {:?}", led, err);
- }
- }
- let even = counter % 2 == 0;
- let _ = self.general_fault(even.into()).await;
- }
-
- async fn clear_progress(&mut self) {
- for led in 0..PLANT_COUNT {
- if let Err(err) = self.fault(led, false).await {
- warn!("Fault on plant {}: {:?}", led, err);
- }
- }
- let _ = self.general_fault(false).await;
-
- // Reset progress active flag so wait_infinity can resume blinking
- crate::hal::PROGRESS_ACTIVE.store(false, core::sync::atomic::Ordering::Relaxed);
- }
-}
-
-#[allow(dead_code)]
-pub struct FreePeripherals<'a> {
- pub gpio0: GPIO0<'a>,
- pub gpio2: GPIO2<'a>,
- pub gpio3: GPIO3<'a>,
- pub gpio4: GPIO4<'a>,
- pub gpio5: GPIO5<'a>,
- pub gpio6: GPIO6<'a>,
- pub gpio7: GPIO7<'a>,
- pub gpio8: GPIO8<'a>,
- // //config button here
- pub gpio10: GPIO10<'a>,
- pub gpio11: GPIO11<'a>,
- pub gpio12: GPIO12<'a>,
- pub gpio13: GPIO13<'a>,
- pub gpio14: GPIO14<'a>,
- pub gpio15: GPIO15<'a>,
- pub gpio16: GPIO16<'a>,
- pub gpio17: GPIO17<'a>,
- pub gpio18: GPIO18<'a>,
- // //i2c here
- pub gpio21: GPIO21<'a>,
- pub gpio22: GPIO22<'a>,
- pub gpio23: GPIO23<'a>,
- pub gpio24: GPIO24<'a>,
- pub gpio25: GPIO25<'a>,
- pub gpio26: GPIO26<'a>,
- pub gpio27: GPIO27<'a>,
- pub gpio28: GPIO28<'a>,
- pub gpio29: GPIO29<'a>,
- pub gpio30: GPIO30<'a>,
- pub twai: TWAI0<'a>,
- pub pcnt0: Unit<'a, 0>,
- pub pcnt1: Unit<'a, 1>,
- pub adc1: ADC1<'a>,
-}
-
-macro_rules! mk_static {
- ($t:ty,$val:expr) => {{
- static STATIC_CELL: static_cell::StaticCell<$t> = static_cell::StaticCell::new();
- #[deny(unused_attributes)]
- let x = STATIC_CELL.uninit().write(($val));
- x
- }};
-}
-
-impl PlantHal {
- pub async fn create() -> Result>, FatError> {
- let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
- let peripherals: Peripherals = esp_hal::init(config);
-
- esp_alloc::heap_allocator!(size: 64 * 1024);
- esp_alloc::heap_allocator!(#[link_section = ".dram2_uninit"] size: 64000);
-
- let rtc: Rtc = Rtc::new(peripherals.LPWR);
- TIME_ACCESS
- .init(Mutex::new(rtc))
- .map_err(|_| FatError::String {
- error: "Init error rct".to_string(),
- })?;
-
- let systimer = SystemTimer::new(peripherals.SYSTIMER);
-
- let boot_button = Input::new(
- peripherals.GPIO9,
- InputConfig::default().with_pull(Pull::None),
- );
-
- // Reserve GPIO1 for deep sleep wake (configured just before entering sleep)
- let wake_gpio1 = peripherals.GPIO1;
-
- let rng = Rng::new(peripherals.RNG);
- let timg0 = TimerGroup::new(peripherals.TIMG0);
- let esp_wifi_ctrl = &*mk_static!(
- EspWifiController<'static>,
- init(timg0.timer0, rng.clone()).expect("Could not init wifi controller")
- );
-
- let (controller, interfaces) =
- esp_wifi::wifi::new(&esp_wifi_ctrl, peripherals.WIFI).expect("Could not init wifi");
-
- use esp_hal::timer::systimer::SystemTimer;
- esp_hal_embassy::init(systimer.alarm0);
-
- //let mut adc1 = Adc::new(peripherals.ADC1, adc1_config);
- //
-
- let pcnt_module = Pcnt::new(peripherals.PCNT);
-
- let free_pins = FreePeripherals {
- // can: peripherals.can,
- // adc1: peripherals.adc1,
- // pcnt0: peripherals.pcnt0,
- // pcnt1: peripherals.pcnt1,
- gpio0: peripherals.GPIO0,
- gpio2: peripherals.GPIO2,
- gpio3: peripherals.GPIO3,
- gpio4: peripherals.GPIO4,
- gpio5: peripherals.GPIO5,
- gpio6: peripherals.GPIO6,
- gpio7: peripherals.GPIO7,
- gpio8: peripherals.GPIO8,
- gpio10: peripherals.GPIO10,
- gpio11: peripherals.GPIO11,
- gpio12: peripherals.GPIO12,
- gpio13: peripherals.GPIO13,
- gpio14: peripherals.GPIO14,
- gpio15: peripherals.GPIO15,
- gpio16: peripherals.GPIO16,
- gpio17: peripherals.GPIO17,
- gpio18: peripherals.GPIO18,
- gpio21: peripherals.GPIO21,
- gpio22: peripherals.GPIO22,
- gpio23: peripherals.GPIO23,
- gpio24: peripherals.GPIO24,
- gpio25: peripherals.GPIO25,
- gpio26: peripherals.GPIO26,
- gpio27: peripherals.GPIO27,
- gpio28: peripherals.GPIO28,
- gpio29: peripherals.GPIO29,
- gpio30: peripherals.GPIO30,
- twai: peripherals.TWAI0,
- pcnt0: pcnt_module.unit0,
- pcnt1: pcnt_module.unit1,
- adc1: peripherals.ADC1,
- };
-
- let tablebuffer = mk_static!(
- [u8; esp_bootloader_esp_idf::partitions::PARTITION_TABLE_MAX_LEN],
- [0u8; esp_bootloader_esp_idf::partitions::PARTITION_TABLE_MAX_LEN]
- );
- let storage_ota = mk_static!(FlashStorage, FlashStorage::new());
- let pt =
- esp_bootloader_esp_idf::partitions::read_partition_table(storage_ota, tablebuffer)?;
-
- let ota_data = mk_static!(
- PartitionEntry,
- pt.find_partition(esp_bootloader_esp_idf::partitions::PartitionType::Data(
- DataPartitionSubType::Ota,
- ))?
- .expect("No OTA data partition found")
- );
-
- let ota_data = mk_static!(
- FlashRegion,
- ota_data.as_embedded_storage(storage_ota)
- );
-
- let state_0 = ota_state(ota_slot::Slot0, ota_data);
- let state_1 = ota_state(ota_slot::Slot1, ota_data);
- let mut ota = Ota::new(ota_data)?;
- let running = get_current_slot_and_fix_ota_data(&mut ota, state_0, state_1)?;
- let target = running.next();
-
- info!("Currently running OTA slot: {:?}", running);
- info!("Slot0 state: {:?}", state_0);
- info!("Slot1 state: {:?}", state_1);
-
- //obtain current_state and next_state here!
- let ota_target = match target {
- Slot::None => {
- panic!("No OTA slot active?");
- }
- Slot::Slot0 => pt
- .find_partition(esp_bootloader_esp_idf::partitions::PartitionType::App(
- AppPartitionSubType::Ota0,
- ))?
- .context("Partition table invalid no ota0")?,
- Slot::Slot1 => pt
- .find_partition(esp_bootloader_esp_idf::partitions::PartitionType::App(
- AppPartitionSubType::Ota1,
- ))?
- .context("Partition table invalid no ota1")?,
- };
-
- let ota_target = mk_static!(PartitionEntry, ota_target);
- let storage_ota = mk_static!(FlashStorage, FlashStorage::new());
- let ota_target = mk_static!(
- FlashRegion,
- ota_target.as_embedded_storage(storage_ota)
- );
-
- let data_partition = pt
- .find_partition(esp_bootloader_esp_idf::partitions::PartitionType::Data(
- DataPartitionSubType::LittleFs,
- ))?
- .expect("Data partition with littlefs not found");
- let data_partition = mk_static!(PartitionEntry, data_partition);
-
- let storage_data = mk_static!(FlashStorage, FlashStorage::new());
- let data = mk_static!(
- FlashRegion,
- data_partition.as_embedded_storage(storage_data)
- );
- let lfs2filesystem = mk_static!(LittleFs2Filesystem, LittleFs2Filesystem { storage: data });
- let alloc = mk_static!(Allocation, lfs2Filesystem::allocate());
- if lfs2filesystem.is_mountable() {
- log::info!("Littlefs2 filesystem is mountable");
- } else {
- match lfs2filesystem.format() {
- Result::Ok(..) => {
- log::info!("Littlefs2 filesystem is formatted");
- }
- Err(err) => {
- error!("Littlefs2 filesystem could not be formatted: {:?}", err);
- }
- }
- }
-
- let fs = Arc::new(Mutex::new(
- lfs2Filesystem::mount(alloc, lfs2filesystem).expect("Could not mount lfs2 filesystem"),
- ));
-
- let ap = interfaces.ap;
- let sta = interfaces.sta;
- let mut esp = Esp {
- fs,
- rng,
- controller: Arc::new(Mutex::new(controller)),
- interface_sta: Some(sta),
- interface_ap: Some(ap),
- boot_button,
- wake_gpio1,
- ota,
- ota_target,
- current: running,
- slot0_state: state_0,
- slot1_state: state_1,
- };
-
- //init,reset rtc memory depending on cause
- let mut init_rtc_store: bool = false;
- let mut to_config_mode: bool = false;
- let reasons = match reset_reason() {
- None => "unknown",
- Some(reason) => match reason {
- SocResetReason::ChipPowerOn => "power on",
- SocResetReason::CoreSDIO => "sdio reset",
- SocResetReason::CoreMwdt0 => "Watchdog Main",
- SocResetReason::CoreMwdt1 => "Watchdog 1",
- SocResetReason::CoreRtcWdt => "Watchdog RTC",
- SocResetReason::Cpu0Mwdt0 => "Watchdog MCpu0",
- SocResetReason::Cpu0Sw => "software reset cpu0",
- SocResetReason::SysRtcWdt => "Watchdog Sys rtc",
- SocResetReason::Cpu0Mwdt1 => "cpu0 mwdt1",
- SocResetReason::SysSuperWdt => "Watchdog Super",
- SocResetReason::Cpu0RtcWdt => {
- init_rtc_store = true;
- "Watchdog RTC cpu0"
- }
- SocResetReason::CoreSw => "software reset",
- SocResetReason::CoreDeepSleep => "deep sleep",
- SocResetReason::SysBrownOut => "sys brown out",
- SocResetReason::CoreEfuseCrc => "core efuse crc",
- SocResetReason::CoreUsbUart => {
- //TODO still required? or via button ignore? to_config_mode = true;
- to_config_mode = true;
- "core usb uart"
- }
- SocResetReason::CoreUsbJtag => "core usb jtag",
- SocResetReason::Cpu0JtagCpu => "cpu0 jtag cpu",
- },
- };
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::ResetReason,
- init_rtc_store as u32,
- to_config_mode as u32,
- "",
- &format!("{reasons:?}"),
- )
- .await;
-
- esp.init_rtc_deepsleep_memory(init_rtc_store, to_config_mode)
- .await;
-
- let config = esp.load_config().await;
-
- log::info!("Init rtc driver");
-
- let sda = peripherals.GPIO20;
- let scl = peripherals.GPIO19;
-
- let i2c = I2c::new(
- peripherals.I2C0,
- Config::default()
- .with_frequency(Rate::from_hz(100))
- .with_timeout(BusTimeout::Maximum),
- )?
- .with_scl(scl)
- .with_sda(sda);
- let i2c_bus: embassy_sync::blocking_mutex::Mutex<
- CriticalSectionRawMutex,
- RefCell>,
- > = CriticalSectionMutex::new(RefCell::new(i2c));
-
- I2C_DRIVER.init(i2c_bus).expect("Could not init i2c driver");
-
- let i2c_bus = I2C_DRIVER.get().await;
- let rtc_device = I2cDevice::new(&i2c_bus);
- let eeprom_device = I2cDevice::new(&i2c_bus);
-
- let mut rtc: Ds323x<
- I2cInterface>>,
- DS3231,
- > = Ds323x::new_ds3231(rtc_device);
-
- info!("Init rtc eeprom driver");
- let eeprom = Eeprom24x::new_24x32(eeprom_device, SlaveAddr::Alternative(true, true, true));
- let rtc_time = rtc.datetime();
- match rtc_time {
- Ok(tt) => {
- log::info!("Rtc Module reports time at UTC {}", tt);
- }
- Err(err) => {
- log::info!("Rtc Module could not be read {:?}", err);
- }
- }
-
- let storage: Storage<
- I2cDevice<'static, CriticalSectionRawMutex, I2c>,
- B32,
- TwoBytes,
- No,
- Delay,
- > = Storage::new(eeprom, Delay::new());
- let rtc_module: Box =
- Box::new(DS3231Module { rtc, storage }) as Box;
-
- let hal = match config {
- Result::Ok(config) => {
- let battery_interaction: Box =
- match config.hardware.battery {
- BatteryBoardVersion::Disabled => Box::new(NoBatteryMonitor {}),
- BatteryBoardVersion::BQ34Z100G1 => {
- let battery_device = I2cDevice::new(I2C_DRIVER.get().await);
- let mut battery_driver = Bq34z100g1Driver {
- i2c: battery_device,
- delay: Delay::new(),
- flash_block_data: [0; 32],
- };
- let status = print_battery_bq34z100(&mut battery_driver);
- match status {
- Ok(_) => {}
- Err(err) => {
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::BatteryCommunicationError,
- 0u32,
- 0,
- "",
- &format!("{err:?})"),
- )
- .await;
- }
- }
- Box::new(BQ34Z100G1 { battery_driver })
- }
- BatteryBoardVersion::WchI2cSlave => {
- // TODO use correct implementation once availible
- Box::new(NoBatteryMonitor {})
- }
- };
-
- let board_hal: Box = match config.hardware.board {
- BoardVersion::INITIAL => {
- initial_hal::create_initial_board(free_pins, config, esp)?
- }
- BoardVersion::V3 => {
- v3_hal::create_v3(free_pins, esp, config, battery_interaction, rtc_module)?
- }
- BoardVersion::V4 => {
- v4_hal::create_v4(free_pins, esp, config, battery_interaction, rtc_module)
- .await?
- }
- };
-
- HAL { board_hal }
- }
- Err(err) => {
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::ConfigModeMissingConfig,
- 0,
- 0,
- "",
- &err.to_string(),
- )
- .await;
- HAL {
- board_hal: initial_hal::create_initial_board(
- free_pins,
- PlantControllerConfig::default(),
- esp,
- )?,
- }
- }
- };
-
- Ok(Mutex::new(hal))
- }
-}
-
-fn ota_state(slot: ota_slot, ota_data: &mut FlashRegion) -> OtaImageState {
- // Read and log OTA states for both slots before constructing Ota
- // Each OTA select entry is 32 bytes: [seq:4][label:20][state:4][crc:4]
- // Offsets within the OTA data partition: slot0 @ 0x0000, slot1 @ 0x1000
- if slot == ota_slot::None {
- return OtaImageState::Undefined;
- }
- let mut slot_buf = [0u8; 32];
- if slot == ota_slot::Slot0 {
- let _ = ota_data.read(0x0000, &mut slot_buf);
- } else {
- let _ = ota_data.read(0x1000, &mut slot_buf);
- }
- let raw_state = u32::from_le_bytes(slot_buf[24..28].try_into().unwrap_or([0xff; 4]));
- let state0 = OtaImageState::try_from(raw_state).unwrap_or(OtaImageState::Undefined);
- state0
-}
-
-fn get_current_slot_and_fix_ota_data(
- ota: &mut Ota,
- state0: OtaImageState,
- state1: OtaImageState,
-) -> Result {
- let state = ota.current_ota_state().unwrap_or_default();
- let swap = match state {
- OtaImageState::Invalid => true,
- OtaImageState::Aborted => true,
- OtaImageState::Undefined => {
- info!("Undefined image in current slot, bootloader wrong?");
- false
- }
- _ => false,
- };
- let current = ota.current_slot()?;
- if swap {
- let other = match current {
- ota_slot::Slot0 => state1,
- ota_slot::Slot1 => state0,
- _ => OtaImageState::Invalid,
- };
-
- match other {
- OtaImageState::Invalid => {
- bail!(
- "cannot recover slot, as both slots in invalid state {:?} {:?} {:?}",
- current,
- state0,
- state1
- );
- }
- OtaImageState::Aborted => {
- bail!(
- "cannot recover slot, as both slots in invalid state {:?} {:?} {:?}",
- current,
- state0,
- state1
- );
- }
- _ => {}
- }
- info!(
- "Current slot has state {:?} other state has {:?} swapping",
- state, other
- );
- ota.set_current_slot(current.next())?;
- //we actually booted other slot, than partition table assumes
- return Ok(ota.current_slot()?);
- };
- Ok(current)
-}
-
-pub async fn esp_time() -> DateTime {
- let guard = TIME_ACCESS.get().await.lock().await;
- DateTime::from_timestamp_micros(guard.current_time_us() as i64).unwrap()
-}
-
-pub async fn esp_set_time(time: DateTime) -> FatResult<()> {
- {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.set_current_time_us(time.timestamp_micros() as u64);
- }
- BOARD_ACCESS
- .get()
- .await
- .lock()
- .await
- .board_hal
- .get_rtc_module()
- .set_rtc_time(&time.to_utc())
- .await
-}
-
-#[derive(Debug, Clone, Copy, PartialEq, Default, Serialize)]
-pub struct Moistures{
- pub sensor_a_hz: [f32; PLANT_COUNT],
- pub sensor_b_hz: [f32; PLANT_COUNT],
-}
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize)]
-pub struct DetectionResult {
- plant: [DetectionSensorResult; crate::hal::PLANT_COUNT]
-}
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize)]
-pub struct DetectionSensorResult{
- sensor_a: bool,
- sensor_b: bool,
-}
\ No newline at end of file
diff --git a/rust/src/hal/rtc.rs b/rust/src/hal/rtc.rs
deleted file mode 100644
index cf7e647..0000000
--- a/rust/src/hal/rtc.rs
+++ /dev/null
@@ -1,133 +0,0 @@
-use crate::hal::Box;
-use crate::fat_error::FatResult;
-use async_trait::async_trait;
-use bincode::config::Configuration;
-use bincode::{config, Decode, Encode};
-use chrono::{DateTime, Utc};
-use ds323x::ic::DS3231;
-use ds323x::interface::I2cInterface;
-use ds323x::{DateTimeAccess, Ds323x};
-use eeprom24x::addr_size::TwoBytes;
-use eeprom24x::page_size::B32;
-use eeprom24x::unique_serial::No;
-use embassy_embedded_hal::shared_bus::blocking::i2c::I2cDevice;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embedded_storage::{ReadStorage, Storage};
-use esp_hal::delay::Delay;
-use esp_hal::i2c::master::I2c;
-use esp_hal::Blocking;
-use serde::{Deserialize, Serialize};
-
-pub const X25: crc::Crc = crc::Crc::::new(&crc::CRC_16_IBM_SDLC);
-const CONFIG: Configuration = config::standard();
-//
-#[async_trait(?Send)]
-pub trait RTCModuleInteraction {
- async fn get_backup_info(&mut self) -> FatResult;
- async fn get_backup_config(&mut self, chunk: usize) -> FatResult<([u8; 32], usize, u16)>;
- async fn backup_config(&mut self, offset: usize, bytes: &[u8]) -> FatResult<()>;
- async fn backup_config_finalize(&mut self, crc: u16, length: usize) -> FatResult<()>;
- async fn get_rtc_time(&mut self) -> FatResult>;
- async fn set_rtc_time(&mut self, time: &DateTime) -> FatResult<()>;
-}
-//
-const BACKUP_HEADER_MAX_SIZE: usize = 64;
-
-#[derive(Serialize, Deserialize, PartialEq, Debug, Default, Encode, Decode)]
-pub struct BackupHeader {
- pub timestamp: i64,
- crc16: u16,
- pub size: u16,
-}
-//
-pub struct DS3231Module {
- pub(crate) rtc: Ds323x<
- I2cInterface>>,
- DS3231,
- >,
-
- pub(crate) storage: eeprom24x::Storage<
- I2cDevice<'static, CriticalSectionRawMutex, I2c<'static, Blocking>>,
- B32,
- TwoBytes,
- No,
- Delay,
- >,
-}
-
-#[async_trait(?Send)]
-impl RTCModuleInteraction for DS3231Module {
- async fn get_backup_info(&mut self) -> FatResult {
- let mut header_page_buffer = [0_u8; BACKUP_HEADER_MAX_SIZE];
-
- self.storage.read(0, &mut header_page_buffer)?;
-
- let (header, len): (BackupHeader, usize) =
- bincode::decode_from_slice(&header_page_buffer[..], CONFIG)?;
-
- log::info!("Raw header is {:?} with size {}", header_page_buffer, len);
- Ok(header)
- }
-
- async fn get_backup_config(&mut self, chunk: usize) -> FatResult<([u8; 32], usize, u16)> {
- let mut header_page_buffer = [0_u8; BACKUP_HEADER_MAX_SIZE];
-
- self.storage.read(0, &mut header_page_buffer)?;
- let (header, _header_size): (BackupHeader, usize) =
- bincode::decode_from_slice(&header_page_buffer[..], CONFIG)?;
-
- let mut buf = [0_u8; 32];
- let offset = chunk * buf.len() + BACKUP_HEADER_MAX_SIZE;
-
- let end: usize = header.size as usize + BACKUP_HEADER_MAX_SIZE;
- let current_end = offset + buf.len();
- let chunk_size = if current_end > end {
- end - offset
- } else {
- buf.len()
- };
- if chunk_size == 0 {
- Ok((buf, 0, header.crc16))
- } else {
- self.storage.read(offset as u32, &mut buf)?;
- //&buf[..chunk_size];
- Ok((buf, chunk_size, header.crc16))
- }
- }
- async fn backup_config(&mut self, offset: usize, bytes: &[u8]) -> FatResult<()> {
- //skip header and write after
- self.storage
- .write((BACKUP_HEADER_MAX_SIZE + offset) as u32, &bytes)?;
-
- Ok(())
- }
-
- async fn backup_config_finalize(&mut self, crc: u16, length: usize) -> FatResult<()> {
- let mut header_page_buffer = [0_u8; BACKUP_HEADER_MAX_SIZE];
-
- let time = self.get_rtc_time().await?.timestamp_millis();
- let header = BackupHeader {
- crc16: crc,
- timestamp: time,
- size: length as u16,
- };
- let config = config::standard();
- let encoded = bincode::encode_into_slice(&header, &mut header_page_buffer, config)?;
- log::info!(
- "Raw header is {:?} with size {}",
- header_page_buffer,
- encoded
- );
- self.storage.write(0, &header_page_buffer)?;
- Ok(())
- }
-
- async fn get_rtc_time(&mut self) -> FatResult> {
- Ok(self.rtc.datetime()?.and_utc())
- }
-
- async fn set_rtc_time(&mut self, time: &DateTime) -> FatResult<()> {
- let naive_time = time.naive_utc();
- Ok(self.rtc.set_datetime(&naive_time)?)
- }
-}
diff --git a/rust/src/hal/v3_hal.rs b/rust/src/hal/v3_hal.rs
deleted file mode 100644
index 9f90f1b..0000000
--- a/rust/src/hal/v3_hal.rs
+++ /dev/null
@@ -1,450 +0,0 @@
-use crate::bail;
-use crate::fat_error::FatError;
-use crate::hal::esp::{hold_disable, hold_enable};
-use crate::hal::rtc::RTCModuleInteraction;
-use crate::hal::v3_shift_register::ShiftRegister40;
-use crate::hal::water::TankSensor;
-use crate::hal::{BoardInteraction, FreePeripherals, Moistures, Sensor, PLANT_COUNT, TIME_ACCESS};
-use crate::log::{LogMessage, LOG_ACCESS};
-use crate::{
- config::PlantControllerConfig,
- hal::{battery::BatteryInteraction, esp::Esp},
-};
-use alloc::boxed::Box;
-use alloc::format;
-use alloc::string::ToString;
-use async_trait::async_trait;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_sync::mutex::Mutex;
-use embassy_time::Timer;
-use embedded_hal::digital::OutputPin as _;
-use esp_hal::gpio::{Flex, Input, InputConfig, Level, Output, OutputConfig, Pull};
-use esp_hal::pcnt::channel::CtrlMode::Keep;
-use esp_hal::pcnt::channel::EdgeMode::{Hold, Increment};
-use esp_hal::pcnt::unit::Unit;
-use measurements::{Current, Voltage};
-
-const PUMP8_BIT: usize = 0;
-const PUMP1_BIT: usize = 1;
-const PUMP2_BIT: usize = 2;
-const PUMP3_BIT: usize = 3;
-const PUMP4_BIT: usize = 4;
-const PUMP5_BIT: usize = 5;
-const PUMP6_BIT: usize = 6;
-const PUMP7_BIT: usize = 7;
-const MS_0: usize = 8;
-const MS_4: usize = 9;
-const MS_2: usize = 10;
-const MS_3: usize = 11;
-const MS_1: usize = 13;
-const SENSOR_ON: usize = 12;
-
-const SENSOR_A_1: u8 = 7;
-const SENSOR_A_2: u8 = 6;
-const SENSOR_A_3: u8 = 5;
-const SENSOR_A_4: u8 = 4;
-const SENSOR_A_5: u8 = 3;
-const SENSOR_A_6: u8 = 2;
-const SENSOR_A_7: u8 = 1;
-const SENSOR_A_8: u8 = 0;
-
-const SENSOR_B_1: u8 = 8;
-const SENSOR_B_2: u8 = 9;
-const SENSOR_B_3: u8 = 10;
-const SENSOR_B_4: u8 = 11;
-const SENSOR_B_5: u8 = 12;
-const SENSOR_B_6: u8 = 13;
-const SENSOR_B_7: u8 = 14;
-const SENSOR_B_8: u8 = 15;
-
-const CHARGING: usize = 14;
-const AWAKE: usize = 15;
-
-const FAULT_3: usize = 16;
-const FAULT_8: usize = 17;
-const FAULT_7: usize = 18;
-const FAULT_6: usize = 19;
-const FAULT_5: usize = 20;
-const FAULT_4: usize = 21;
-const FAULT_1: usize = 22;
-const FAULT_2: usize = 23;
-
-const REPEAT_MOIST_MEASURE: usize = 1;
-
-pub struct V3<'a> {
- config: PlantControllerConfig,
- battery_monitor: Box,
- rtc_module: Box,
- esp: Esp<'a>,
- shift_register:
- Mutex, Output<'a>, Output<'a>>>,
- _shift_register_enable_invert: Output<'a>,
- tank_sensor: TankSensor<'a>,
- solar_is_day: Input<'a>,
- light: Output<'a>,
- main_pump: Output<'a>,
- general_fault: Output<'a>,
- pub signal_counter: Unit<'static, 0>,
-}
-
-pub(crate) fn create_v3(
- peripherals: FreePeripherals<'static>,
- esp: Esp<'static>,
- config: PlantControllerConfig,
- battery_monitor: Box,
- rtc_module: Box,
-) -> Result + Send + 'static>, FatError> {
- log::info!("Start v3");
- let clock = Output::new(peripherals.gpio15, Level::Low, OutputConfig::default());
- let latch = Output::new(peripherals.gpio3, Level::Low, OutputConfig::default());
- let data = Output::new(peripherals.gpio23, Level::Low, OutputConfig::default());
- let shift_register = ShiftRegister40::new(clock, latch, data);
- //disable all
- for mut pin in shift_register.decompose() {
- let _ = pin.set_low();
- }
-
- // Set always-on status bits
- let _ = shift_register.decompose()[AWAKE].set_high();
- let _ = shift_register.decompose()[CHARGING].set_high();
-
- // Multiplexer defaults: ms0..ms3 low, ms4 high (disabled)
- let _ = shift_register.decompose()[MS_0].set_low();
- let _ = shift_register.decompose()[MS_1].set_low();
- let _ = shift_register.decompose()[MS_2].set_low();
- let _ = shift_register.decompose()[MS_3].set_low();
- let _ = shift_register.decompose()[MS_4].set_high();
-
- let one_wire_pin = Flex::new(peripherals.gpio18);
- let tank_power_pin = Output::new(peripherals.gpio11, Level::Low, OutputConfig::default());
-
- let flow_sensor_pin = Input::new(
- peripherals.gpio4,
- InputConfig::default().with_pull(Pull::Up),
- );
-
- let tank_sensor = TankSensor::create(
- one_wire_pin,
- peripherals.adc1,
- peripherals.gpio5,
- tank_power_pin,
- flow_sensor_pin,
- peripherals.pcnt1,
- )?;
-
- let solar_is_day = Input::new(peripherals.gpio7, InputConfig::default());
- let light = Output::new(peripherals.gpio10, Level::Low, OutputConfig::default());
- let mut main_pump = Output::new(peripherals.gpio2, Level::Low, OutputConfig::default());
- main_pump.set_low();
- let mut general_fault = Output::new(peripherals.gpio6, Level::Low, OutputConfig::default());
- general_fault.set_low();
-
- let mut shift_register_enable_invert =
- Output::new(peripherals.gpio21, Level::Low, OutputConfig::default());
- shift_register_enable_invert.set_low();
-
- let signal_counter = peripherals.pcnt0;
-
- signal_counter.set_high_limit(Some(i16::MAX))?;
-
- let ch0 = &signal_counter.channel0;
- let edge_pin = Input::new(peripherals.gpio22, InputConfig::default());
- ch0.set_edge_signal(edge_pin.peripheral_input());
- ch0.set_input_mode(Hold, Increment);
- ch0.set_ctrl_mode(Keep, Keep);
- signal_counter.listen();
-
- Ok(Box::new(V3 {
- config,
- battery_monitor,
- rtc_module,
- esp,
- shift_register: Mutex::new(shift_register),
- _shift_register_enable_invert: shift_register_enable_invert,
- tank_sensor,
- solar_is_day,
- light,
- main_pump,
- general_fault,
- signal_counter,
- }))
-}
-
-impl V3<'_> {
-
- async fn inner_measure_moisture_hz(&mut self, plant: usize, sensor: Sensor) -> Result {
- let mut results = [0_f32; REPEAT_MOIST_MEASURE];
- for repeat in 0..REPEAT_MOIST_MEASURE {
- self.signal_counter.pause();
- self.signal_counter.clear();
- //Disable all
- {
- let shift_register = self.shift_register.lock().await;
- shift_register.decompose()[MS_4].set_high()?;
- }
-
- let sensor_channel = match sensor {
- Sensor::A => match plant {
- 0 => SENSOR_A_1,
- 1 => SENSOR_A_2,
- 2 => SENSOR_A_3,
- 3 => SENSOR_A_4,
- 4 => SENSOR_A_5,
- 5 => SENSOR_A_6,
- 6 => SENSOR_A_7,
- 7 => SENSOR_A_8,
- _ => bail!("Invalid plant id {}", plant),
- },
- Sensor::B => match plant {
- 0 => SENSOR_B_1,
- 1 => SENSOR_B_2,
- 2 => SENSOR_B_3,
- 3 => SENSOR_B_4,
- 4 => SENSOR_B_5,
- 5 => SENSOR_B_6,
- 6 => SENSOR_B_7,
- 7 => SENSOR_B_8,
- _ => bail!("Invalid plant id {}", plant),
- },
- };
-
- let is_bit_set = |b: u8| -> bool { sensor_channel & (1 << b) != 0 };
- {
- let shift_register = self.shift_register.lock().await;
- let pin_0 = &mut shift_register.decompose()[MS_0];
- let pin_1 = &mut shift_register.decompose()[MS_1];
- let pin_2 = &mut shift_register.decompose()[MS_2];
- let pin_3 = &mut shift_register.decompose()[MS_3];
- if is_bit_set(0) {
- pin_0.set_high()?;
- } else {
- pin_0.set_low()?;
- }
- if is_bit_set(1) {
- pin_1.set_high()?;
- } else {
- pin_1.set_low()?;
- }
- if is_bit_set(2) {
- pin_2.set_high()?;
- } else {
- pin_2.set_low()?;
- }
- if is_bit_set(3) {
- pin_3.set_high()?;
- } else {
- pin_3.set_low()?;
- }
-
- shift_register.decompose()[MS_4].set_low()?;
- shift_register.decompose()[SENSOR_ON].set_high()?;
- }
- let measurement = 100; //how long to measure and then extrapolate to hz
- let factor = 1000f32 / measurement as f32; //scale raw cound by this number to get hz
-
- //give some time to stabilize
- Timer::after_millis(10).await;
- self.signal_counter.resume();
- Timer::after_millis(measurement).await;
- self.signal_counter.pause();
- {
- let shift_register = self.shift_register.lock().await;
- shift_register.decompose()[MS_4].set_high()?;
- shift_register.decompose()[SENSOR_ON].set_low()?;
- }
- Timer::after_millis(10).await;
- let unscaled = self.signal_counter.value();
- let hz = unscaled as f32 * factor;
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::RawMeasure,
- unscaled as u32,
- hz as u32,
- &plant.to_string(),
- &format!("{sensor:?}"),
- )
- .await;
- results[repeat] = hz;
- }
- results.sort_by(|a, b| a.partial_cmp(b).unwrap()); // floats don't seem to implement total_ord
-
- let mid = results.len() / 2;
- let median = results[mid];
- Ok(median)
- }
-}
-
-#[async_trait(?Send)]
-impl<'a> BoardInteraction<'a> for V3<'a> {
- fn get_tank_sensor(&mut self) -> Result<&mut TankSensor<'a>, FatError> {
- Ok(&mut self.tank_sensor)
- }
-
- fn get_esp(&mut self) -> &mut Esp<'a> {
- &mut self.esp
- }
-
- fn get_config(&mut self) -> &PlantControllerConfig {
- &self.config
- }
-
- fn get_battery_monitor(&mut self) -> &mut Box {
- &mut self.battery_monitor
- }
-
- fn get_rtc_module(&mut self) -> &mut Box {
- &mut self.rtc_module
- }
- async fn set_charge_indicator(&mut self, charging: bool) -> Result<(), FatError> {
- let shift_register = self.shift_register.lock().await;
- if charging {
- let _ = shift_register.decompose()[CHARGING].set_high();
- } else {
- let _ = shift_register.decompose()[CHARGING].set_low();
- }
- Ok(())
- }
-
- async fn deep_sleep(&mut self, duration_in_ms: u64) -> ! {
- let _ = self.shift_register.lock().await.decompose()[AWAKE].set_low();
- let guard = TIME_ACCESS.get().await.lock().await;
- self.esp.deep_sleep(duration_in_ms, guard)
- }
-
- fn is_day(&self) -> bool {
- self.solar_is_day.is_high()
- }
-
- async fn light(&mut self, enable: bool) -> Result<(), FatError> {
- hold_disable(10);
- if enable {
- self.light.set_high();
- } else {
- self.light.set_low();
- }
- hold_enable(10);
- Ok(())
- }
- async fn pump(&mut self, plant: usize, enable: bool) -> Result<(), FatError> {
- if enable {
- self.main_pump.set_high();
- }
-
- let index = match plant {
- 0 => PUMP1_BIT,
- 1 => PUMP2_BIT,
- 2 => PUMP3_BIT,
- 3 => PUMP4_BIT,
- 4 => PUMP5_BIT,
- 5 => PUMP6_BIT,
- 6 => PUMP7_BIT,
- 7 => PUMP8_BIT,
- _ => bail!("Invalid pump {plant}"),
- };
- let shift_register = self.shift_register.lock().await;
- if enable {
- let _ = shift_register.decompose()[index].set_high();
- } else {
- let _ = shift_register.decompose()[index].set_low();
- }
-
- if !enable {
- self.main_pump.set_low();
- }
- Ok(())
- }
-
- async fn pump_current(&mut self, _plant: usize) -> Result {
- bail!("Not implemented in v3")
- }
-
- async fn fault(&mut self, plant: usize, enable: bool) -> Result<(), FatError> {
- let index = match plant {
- 0 => FAULT_1,
- 1 => FAULT_2,
- 2 => FAULT_3,
- 3 => FAULT_4,
- 4 => FAULT_5,
- 5 => FAULT_6,
- 6 => FAULT_7,
- 7 => FAULT_8,
- _ => panic!("Invalid plant id {}", plant),
- };
- let shift_register = self.shift_register.lock().await;
- if enable {
- let _ = shift_register.decompose()[index].set_high();
- } else {
- let _ = shift_register.decompose()[index].set_low();
- }
- Ok(())
- }
-
- async fn measure_moisture_hz(&mut self) -> Result {
- let mut result = Moistures::default();
- for plant in 0..PLANT_COUNT {
- let a = self.inner_measure_moisture_hz(plant, Sensor::A).await;
- let b = self.inner_measure_moisture_hz(plant, Sensor::B).await;
- let aa = a.unwrap_or_else(|_| u32::MAX as f32);
- let bb = b.unwrap_or_else(|_| u32::MAX as f32);
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::TestSensor, aa as u32, bb as u32, &plant.to_string(), "")
- .await;
- result.sensor_a_hz[plant] = aa;
- result.sensor_b_hz[plant] = bb;
- }
- Ok(result)
- }
-
-
- async fn general_fault(&mut self, enable: bool) {
- hold_disable(6);
- if enable {
- self.general_fault.set_high();
- } else {
- self.general_fault.set_low();
- }
- hold_enable(6);
- }
-
- async fn test(&mut self) -> Result<(), FatError> {
- self.general_fault(true).await;
- Timer::after_millis(100).await;
- self.general_fault(false).await;
- Timer::after_millis(100).await;
- self.light(true).await?;
- Timer::after_millis(500).await;
-
- self.light(false).await?;
- Timer::after_millis(500).await;
- for i in 0..PLANT_COUNT {
- self.fault(i, true).await?;
- Timer::after_millis(500).await;
- self.fault(i, false).await?;
- Timer::after_millis(500).await;
- }
- for i in 0..PLANT_COUNT {
- self.pump(i, true).await?;
- Timer::after_millis(100).await;
- self.pump(i, false).await?;
- Timer::after_millis(100).await;
- }
- self.measure_moisture_hz().await?;
- Timer::after_millis(10).await;
- Ok(())
- }
-
- fn set_config(&mut self, config: PlantControllerConfig) {
- self.config = config;
- }
-
- async fn get_mptt_voltage(&mut self) -> Result {
- bail!("Not implemented in v3")
- }
- async fn get_mptt_current(&mut self) -> Result {
- bail!("Not implemented in v3")
- }
-}
diff --git a/rust/src/hal/v3_shift_register.rs b/rust/src/hal/v3_shift_register.rs
deleted file mode 100644
index f931e4e..0000000
--- a/rust/src/hal/v3_shift_register.rs
+++ /dev/null
@@ -1,154 +0,0 @@
-//! Serial-in parallel-out shift register
-#![allow(warnings)]
-use core::cell::RefCell;
-use core::convert::Infallible;
-use core::iter::Iterator;
-use core::mem::{self, MaybeUninit};
-use core::result::{Result, Result::Ok};
-use embedded_hal::digital::OutputPin;
-
-trait ShiftRegisterInternal: Send {
- fn update(&self, index: usize, command: bool) -> Result<(), ()>;
-}
-
-/// Output pin of the shift register
-pub struct ShiftRegisterPin<'a> {
- shift_register: &'a dyn ShiftRegisterInternal,
- index: usize,
-}
-
-impl<'a> ShiftRegisterPin<'a> {
- fn new(shift_register: &'a dyn ShiftRegisterInternal, index: usize) -> Self {
- ShiftRegisterPin {
- shift_register,
- index,
- }
- }
-}
-
-impl embedded_hal::digital::ErrorType for ShiftRegisterPin<'_> {
- type Error = Infallible;
-}
-
-impl OutputPin for ShiftRegisterPin<'_> {
- fn set_low(&mut self) -> Result<(), Infallible> {
- self.shift_register.update(self.index, false).unwrap();
- Ok(())
- }
-
- fn set_high(&mut self) -> Result<(), Infallible> {
- self.shift_register.update(self.index, true).unwrap();
- Ok(())
- }
-}
-
-macro_rules! ShiftRegisterBuilder {
- ($name: ident, $size: expr) => {
- /// Serial-in parallel-out shift register
- pub struct $name
- where
- Pin1: OutputPin + Send,
- Pin2: OutputPin + Send,
- Pin3: OutputPin + Send,
- {
- clock: RefCell,
- latch: RefCell,
- data: RefCell,
- output_state: RefCell<[bool; $size]>,
- }
-
- impl ShiftRegisterInternal for $name
- where
- Pin1: OutputPin + Send,
- Pin2: OutputPin + Send,
- Pin3: OutputPin + Send,
- {
- /// Sets the value of the shift register output at `index` to value `command`
- fn update(&self, index: usize, command: bool) -> Result<(), ()> {
- self.output_state.borrow_mut()[index] = command;
- let output_state = self.output_state.borrow();
- self.latch.borrow_mut().set_low().map_err(|_e| ())?;
-
- for i in 1..=output_state.len() {
- if output_state[output_state.len() - i] {
- self.data.borrow_mut().set_high().map_err(|_e| ())?;
- } else {
- self.data.borrow_mut().set_low().map_err(|_e| ())?;
- }
- self.clock.borrow_mut().set_high().map_err(|_e| ())?;
- self.clock.borrow_mut().set_low().map_err(|_e| ())?;
- }
-
- self.latch.borrow_mut().set_high().map_err(|_e| ())?;
- Ok(())
- }
- }
-
- impl $name
- where
- Pin1: OutputPin + Send,
- Pin2: OutputPin + Send,
- Pin3: OutputPin + Send,
- {
- /// Creates a new SIPO shift register from clock, latch, and data output pins
- pub fn new(clock: Pin1, latch: Pin2, data: Pin3) -> Self {
- $name {
- clock: RefCell::new(clock),
- latch: RefCell::new(latch),
- data: RefCell::new(data),
- output_state: RefCell::new([false; $size]),
- }
- }
-
- /// Get embedded-hal output pins to control the shift register outputs
- pub fn decompose(&self) -> [ShiftRegisterPin<'_>; $size] {
- // Create an uninitialized array of `MaybeUninit`. The `assume_init` is
- // safe because the type we are claiming to have initialized here is a
- // bunch of `MaybeUninit`s, which do not require initialization.
- let mut pins: [MaybeUninit; $size] =
- unsafe { MaybeUninit::uninit().assume_init() };
-
- // Dropping a `MaybeUninit` does nothing, so if there is a panic during this loop,
- // we have a memory leak, but there is no memory safety issue.
- for (index, elem) in pins.iter_mut().enumerate() {
- elem.write(ShiftRegisterPin::new(self, index));
- }
-
- // Everything is initialized. Transmute the array to the
- // initialized type.
- unsafe { mem::transmute::<_, [ShiftRegisterPin; $size]>(pins) }
- }
-
- /// Consume the shift register and return the original clock, latch, and data output pins
- pub fn release(self) -> (Pin1, Pin2, Pin3) {
- let Self {
- clock,
- latch,
- data,
- output_state: _,
- } = self;
- (clock.into_inner(), latch.into_inner(), data.into_inner())
- }
- }
- };
-}
-
-ShiftRegisterBuilder!(ShiftRegister8, 8);
-ShiftRegisterBuilder!(ShiftRegister16, 16);
-ShiftRegisterBuilder!(ShiftRegister24, 24);
-ShiftRegisterBuilder!(ShiftRegister32, 32);
-ShiftRegisterBuilder!(ShiftRegister40, 40);
-ShiftRegisterBuilder!(ShiftRegister48, 48);
-ShiftRegisterBuilder!(ShiftRegister56, 56);
-ShiftRegisterBuilder!(ShiftRegister64, 64);
-ShiftRegisterBuilder!(ShiftRegister72, 72);
-ShiftRegisterBuilder!(ShiftRegister80, 80);
-ShiftRegisterBuilder!(ShiftRegister88, 88);
-ShiftRegisterBuilder!(ShiftRegister96, 96);
-ShiftRegisterBuilder!(ShiftRegister104, 104);
-ShiftRegisterBuilder!(ShiftRegister112, 112);
-ShiftRegisterBuilder!(ShiftRegister120, 120);
-ShiftRegisterBuilder!(ShiftRegister128, 128);
-
-/// 8 output serial-in parallel-out shift register
-pub type ShiftRegister = ShiftRegister8;
diff --git a/rust/src/hal/v4_hal.rs b/rust/src/hal/v4_hal.rs
deleted file mode 100644
index cd2e46a..0000000
--- a/rust/src/hal/v4_hal.rs
+++ /dev/null
@@ -1,458 +0,0 @@
-use crate::bail;
-use crate::config::PlantControllerConfig;
-use crate::fat_error::{FatError, FatResult};
-use crate::hal::battery::BatteryInteraction;
-use crate::hal::esp::{hold_disable, hold_enable, Esp};
-use crate::hal::rtc::RTCModuleInteraction;
-use crate::hal::v4_sensor::{SensorImpl, SensorInteraction};
-use crate::hal::water::TankSensor;
-use crate::hal::{BoardInteraction, DetectionResult, FreePeripherals, Moistures, I2C_DRIVER, PLANT_COUNT, TIME_ACCESS};
-use crate::log::{LogMessage, LOG_ACCESS};
-use alloc::boxed::Box;
-use alloc::string::ToString;
-use async_trait::async_trait;
-use embassy_embedded_hal::shared_bus::blocking::i2c::I2cDevice;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_time::Timer;
-use esp_hal::gpio::{Flex, Input, InputConfig, Level, Output, OutputConfig, Pull};
-use esp_hal::i2c::master::I2c;
-use esp_hal::pcnt::channel::CtrlMode::Keep;
-use esp_hal::pcnt::channel::EdgeMode::{Hold, Increment};
-use esp_hal::twai::TwaiMode;
-use esp_hal::{twai, Blocking};
-use ina219::address::{Address, Pin};
-use ina219::calibration::UnCalibrated;
-use ina219::configuration::{Configuration, OperatingMode, Resolution};
-use ina219::SyncIna219;
-use measurements::Resistance;
-use measurements::{Current, Voltage};
-use pca9535::{GPIOBank, Pca9535Immediate, StandardExpanderInterface};
-
-const MPPT_CURRENT_SHUNT_OHMS: f64 = 0.05_f64;
-const TWAI_BAUDRATE: twai::BaudRate = twai::BaudRate::B125K;
-
-pub enum Charger<'a> {
- SolarMpptV1 {
- mppt_ina: SyncIna219<
- I2cDevice<'a, CriticalSectionRawMutex, I2c<'static, Blocking>>,
- UnCalibrated,
- >,
- solar_is_day: Input<'a>,
- charge_indicator: Output<'a>,
- },
- ErrorInit {},
-}
-
-impl<'a> Charger<'a> {
- pub(crate) fn get_mppt_current(&mut self) -> FatResult {
- match self {
- Charger::SolarMpptV1 { mppt_ina, .. } => {
- let v = mppt_ina.shunt_voltage()?;
- let shunt_voltage = Voltage::from_microvolts(v.shunt_voltage_uv().abs() as f64);
- let shut_value = Resistance::from_ohms(MPPT_CURRENT_SHUNT_OHMS);
- let current = shunt_voltage.as_volts() / shut_value.as_ohms();
- Ok(Current::from_amperes(current))
- }
- Charger::ErrorInit { .. } => {
- bail!("hardware error during init");
- }
- }
- }
-
- pub(crate) fn get_mptt_voltage(&mut self) -> FatResult {
- match self {
- Charger::SolarMpptV1 { mppt_ina, .. } => {
- let v = mppt_ina.bus_voltage()?;
- Ok(Voltage::from_millivolts(v.voltage_mv() as f64))
- }
- Charger::ErrorInit { .. } => {
- bail!("hardware error during init");
- }
- }
- }
-}
-
-impl Charger<'_> {
- pub(crate) fn power_save(&mut self) {
- match self {
- Charger::SolarMpptV1 { mppt_ina, .. } => {
- let _ = mppt_ina
- .set_configuration(Configuration {
- reset: Default::default(),
- bus_voltage_range: Default::default(),
- shunt_voltage_range: Default::default(),
- bus_resolution: Default::default(),
- shunt_resolution: Default::default(),
- operating_mode: OperatingMode::PowerDown,
- })
- .map_err(|e| {
- log::info!(
- "Error setting ina mppt configuration during deep sleep preparation{:?}",
- e
- );
- });
- }
- _ => {}
- }
- }
- fn set_charge_indicator(&mut self, charging: bool) -> FatResult<()> {
- match self {
- Self::SolarMpptV1 {
- charge_indicator, ..
- } => {
- charge_indicator.set_level(charging.into());
- }
- _ => {}
- }
- Ok(())
- }
-
- fn is_day(&self) -> bool {
- match self {
- Charger::SolarMpptV1 { solar_is_day, .. } => solar_is_day.is_high(),
- _ => true,
- }
- }
-}
-
-pub struct V4<'a> {
- esp: Esp<'a>,
- tank_sensor: TankSensor<'a>,
- charger: Charger<'a>,
- rtc_module: Box,
- battery_monitor: Box,
- config: PlantControllerConfig,
-
- awake: Output<'a>,
- light: Output<'a>,
- general_fault: Output<'a>,
- pump_expander: Pca9535Immediate>>,
- pump_ina: Option<
- SyncIna219>, UnCalibrated>,
- >,
- sensor: SensorImpl,
- extra1: Output<'a>,
- extra2: Output<'a>,
-}
-
-pub(crate) async fn create_v4(
- peripherals: FreePeripherals<'static>,
- esp: Esp<'static>,
- config: PlantControllerConfig,
- battery_monitor: Box,
- rtc_module: Box,
-) -> Result + Send + 'static>, FatError> {
- log::info!("Start v4");
- let mut awake = Output::new(peripherals.gpio21, Level::High, OutputConfig::default());
- awake.set_high();
-
- let mut general_fault = Output::new(peripherals.gpio23, Level::Low, OutputConfig::default());
- general_fault.set_low();
-
- let extra1 = Output::new(peripherals.gpio6, Level::Low, OutputConfig::default());
- let extra2 = Output::new(peripherals.gpio15, Level::Low, OutputConfig::default());
-
- let one_wire_pin = Flex::new(peripherals.gpio18);
- let tank_power_pin = Output::new(peripherals.gpio11, Level::Low, OutputConfig::default());
- let flow_sensor_pin = Input::new(
- peripherals.gpio4,
- InputConfig::default().with_pull(Pull::Up),
- );
-
- let tank_sensor = TankSensor::create(
- one_wire_pin,
- peripherals.adc1,
- peripherals.gpio5,
- tank_power_pin,
- flow_sensor_pin,
- peripherals.pcnt1,
- )?;
-
- let sensor_expander_device = I2cDevice::new(I2C_DRIVER.get().await);
- let mut sensor_expander = Pca9535Immediate::new(sensor_expander_device, 34);
- let sensor = match sensor_expander.pin_into_output(GPIOBank::Bank0, 0) {
- Ok(_) => {
- log::info!("SensorExpander answered");
-
- let signal_counter = peripherals.pcnt0;
-
- signal_counter.set_high_limit(Some(i16::MAX))?;
-
- let ch0 = &signal_counter.channel0;
- let edge_pin = Input::new(peripherals.gpio22, InputConfig::default());
- ch0.set_edge_signal(edge_pin.peripheral_input());
- ch0.set_input_mode(Hold, Increment);
- ch0.set_ctrl_mode(Keep, Keep);
- signal_counter.listen();
-
- for pin in 0..8 {
- let _ = sensor_expander.pin_into_output(GPIOBank::Bank0, pin);
- let _ = sensor_expander.pin_into_output(GPIOBank::Bank1, pin);
- let _ = sensor_expander.pin_set_low(GPIOBank::Bank0, pin);
- let _ = sensor_expander.pin_set_low(GPIOBank::Bank1, pin);
- }
-
- SensorImpl::PulseCounter {
- signal_counter,
- sensor_expander,
- }
- }
- Err(_) => {
- log::info!("Can bus mode ");
- let twai_config = Some(twai::TwaiConfiguration::new(
- peripherals.twai,
- peripherals.gpio2,
- peripherals.gpio0,
- TWAI_BAUDRATE,
- TwaiMode::Normal,
- ));
- let can_power = Output::new(peripherals.gpio22, Level::Low, OutputConfig::default());
-
- //can bus version
- SensorImpl::CanBus {
- twai_config,
- can_power,
- }
- }
- };
-
- let solar_is_day = Input::new(peripherals.gpio7, InputConfig::default());
- let light = Output::new(peripherals.gpio10, Level::Low, Default::default());
- let charge_indicator = Output::new(peripherals.gpio3, Level::Low, Default::default());
-
- let pump_device = I2cDevice::new(I2C_DRIVER.get().await);
- let mut pump_expander = Pca9535Immediate::new(pump_device, 32);
- for pin in 0..8 {
- let _ = pump_expander.pin_into_output(GPIOBank::Bank0, pin);
- let _ = pump_expander.pin_into_output(GPIOBank::Bank1, pin);
- let _ = pump_expander.pin_set_low(GPIOBank::Bank0, pin);
- let _ = pump_expander.pin_set_low(GPIOBank::Bank1, pin);
- }
-
- let mppt_current = I2cDevice::new(I2C_DRIVER.get().await);
- let mppt_ina = match SyncIna219::new(mppt_current, Address::from_pins(Pin::Vcc, Pin::Gnd)) {
- Ok(mut ina) => {
- // Prefer higher averaging for more stable readings
- let _ = ina.set_configuration(Configuration {
- reset: Default::default(),
- bus_voltage_range: Default::default(),
- shunt_voltage_range: Default::default(),
- bus_resolution: Default::default(),
- shunt_resolution: Resolution::Avg128,
- operating_mode: Default::default(),
- });
- Some(ina)
- }
- Err(err) => {
- log::info!("Error creating mppt ina: {:?}", err);
- None
- }
- };
-
- let pump_current_dev = I2cDevice::new(I2C_DRIVER.get().await);
- let pump_ina = match SyncIna219::new(pump_current_dev, Address::from_pins(Pin::Gnd, Pin::Sda)) {
- Ok(ina) => Some(ina),
- Err(err) => {
- log::info!("Error creating pump ina: {:?}", err);
- None
- }
- };
-
- let charger = match mppt_ina {
- Some(mut mppt_ina) => {
- mppt_ina.set_configuration(Configuration {
- reset: Default::default(),
- bus_voltage_range: Default::default(),
- shunt_voltage_range: Default::default(),
- bus_resolution: Default::default(),
- shunt_resolution: ina219::configuration::Resolution::Avg128,
- operating_mode: Default::default(),
- })?;
-
- Charger::SolarMpptV1 {
- mppt_ina,
- solar_is_day,
- charge_indicator,
- }
- }
- None => Charger::ErrorInit {},
- };
-
- let v = V4 {
- rtc_module,
- esp,
- awake,
- tank_sensor,
- light,
- general_fault,
- pump_expander,
- config,
- battery_monitor,
- pump_ina,
- charger,
- extra1,
- extra2,
- sensor,
- };
- Ok(Box::new(v))
-}
-
-#[async_trait(?Send)]
-impl<'a> BoardInteraction<'a> for V4<'a> {
- fn get_tank_sensor(&mut self) -> Result<&mut TankSensor<'a>, FatError> {
- Ok(&mut self.tank_sensor)
- }
-
- fn get_esp(&mut self) -> &mut Esp<'a> {
- &mut self.esp
- }
-
- fn get_config(&mut self) -> &PlantControllerConfig {
- &self.config
- }
-
- fn get_battery_monitor(&mut self) -> &mut Box {
- &mut self.battery_monitor
- }
-
- fn get_rtc_module(&mut self) -> &mut Box {
- &mut self.rtc_module
- }
-
- async fn set_charge_indicator(&mut self, charging: bool) -> Result<(), FatError> {
- self.charger.set_charge_indicator(charging)
- }
-
- async fn deep_sleep(&mut self, duration_in_ms: u64) -> ! {
- self.awake.set_low();
- self.charger.power_save();
- let rtc = TIME_ACCESS.get().await.lock().await;
- self.esp.deep_sleep(duration_in_ms, rtc);
- }
-
- fn is_day(&self) -> bool {
- self.charger.is_day()
- }
-
- async fn light(&mut self, enable: bool) -> Result<(), FatError> {
- hold_disable(10);
- self.light.set_level(enable.into());
- hold_enable(10);
- Ok(())
- }
-
- async fn pump(&mut self, plant: usize, enable: bool) -> FatResult<()> {
- if enable {
- self.pump_expander
- .pin_set_high(GPIOBank::Bank0, plant as u8)?;
- } else {
- self.pump_expander
- .pin_set_low(GPIOBank::Bank0, plant as u8)?;
- }
- Ok(())
- }
-
- async fn pump_current(&mut self, _plant: usize) -> Result {
- // sensor is shared for all pumps, ignore plant id
- match self.pump_ina.as_mut() {
- None => {
- bail!("pump current sensor not available");
- }
- Some(pump_ina) => {
- let v = pump_ina
- .shunt_voltage()
- .map_err(|e| FatError::String {
- error: alloc::format!("{:?}", e),
- })
- .map(|v| {
- let shunt_voltage =
- Voltage::from_microvolts(v.shunt_voltage_uv().abs() as f64);
- let shut_value = Resistance::from_ohms(0.05_f64);
- let current = shunt_voltage.as_volts() / shut_value.as_ohms();
- Current::from_amperes(current)
- })?;
- Ok(v)
- }
- }
- }
-
- async fn fault(&mut self, plant: usize, enable: bool) -> FatResult<()> {
- if enable {
- self.pump_expander
- .pin_set_high(GPIOBank::Bank1, plant as u8)?;
- } else {
- self.pump_expander
- .pin_set_low(GPIOBank::Bank1, plant as u8)?;
- }
- Ok(())
- }
-
- async fn measure_moisture_hz(&mut self) -> Result {
- self.sensor.measure_moisture_hz().await
- }
-
- async fn general_fault(&mut self, enable: bool) {
- hold_disable(23);
- self.general_fault.set_level(enable.into());
- hold_enable(23);
- }
-
- async fn test(&mut self) -> Result<(), FatError> {
- self.general_fault(true).await;
- Timer::after_millis(100).await;
- self.general_fault(false).await;
- Timer::after_millis(500).await;
- self.extra1.set_high();
- Timer::after_millis(500).await;
- self.extra1.set_low();
- Timer::after_millis(500).await;
- self.extra2.set_high();
- Timer::after_millis(500).await;
- self.extra2.set_low();
- Timer::after_millis(500).await;
- self.light(true).await?;
- Timer::after_millis(500).await;
- self.light(false).await?;
- Timer::after_millis(500).await;
- for i in 0..PLANT_COUNT {
- self.fault(i, true).await?;
- Timer::after_millis(500).await;
- self.fault(i, false).await?;
- Timer::after_millis(500).await;
- }
- for i in 0..PLANT_COUNT {
- self.pump(i, true).await?;
- Timer::after_millis(100).await;
- self.pump(i, false).await?;
- Timer::after_millis(100).await;
- }
- let moisture = self.measure_moisture_hz().await?;
- for plant in 0..PLANT_COUNT {
- let a = moisture.sensor_a_hz[plant] as u32;
- let b = moisture.sensor_b_hz[plant] as u32;
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::TestSensor, a, b, &plant.to_string(), "")
- .await;
- }
- Timer::after_millis(10).await;
- Ok(())
- }
-
- fn set_config(&mut self, config: PlantControllerConfig) {
- self.config = config;
- }
-
- async fn get_mptt_voltage(&mut self) -> FatResult {
- self.charger.get_mptt_voltage()
- }
-
- async fn get_mptt_current(&mut self) -> FatResult {
- self.charger.get_mppt_current()
- }
-
- async fn detect_sensors(&mut self) -> FatResult {
- self.sensor.autodetect().await
- }
-}
diff --git a/rust/src/hal/v4_sensor.rs b/rust/src/hal/v4_sensor.rs
deleted file mode 100644
index 3fb8996..0000000
--- a/rust/src/hal/v4_sensor.rs
+++ /dev/null
@@ -1,314 +0,0 @@
-use canapi::id::{classify, plant_id, MessageKind, IDENTIFY_CMD_OFFSET};
-use crate::bail;
-use crate::fat_error::{ContextExt, FatError, FatResult};
-use canapi::{SensorSlot};
-use crate::hal::{DetectionResult, Moistures, Sensor};
-use crate::hal::Box;
-use crate::log::{LogMessage, LOG_ACCESS};
-use alloc::format;
-use alloc::string::ToString;
-use async_trait::async_trait;
-use bincode::config;
-use embassy_embedded_hal::shared_bus::blocking::i2c::I2cDevice;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_time::{Instant, Timer, WithTimeout};
-use embedded_can::{Frame, Id};
-use esp_hal::gpio::Output;
-use esp_hal::i2c::master::I2c;
-use esp_hal::pcnt::unit::Unit;
-use esp_hal::twai::{EspTwaiFrame, StandardId, Twai, TwaiConfiguration};
-use esp_hal::{Blocking};
-use log::{error, info, warn};
-use pca9535::{GPIOBank, Pca9535Immediate, StandardExpanderInterface};
-
-const REPEAT_MOIST_MEASURE: usize = 10;
-
-
-
-#[async_trait(?Send)]
-pub trait SensorInteraction {
- async fn measure_moisture_hz(&mut self) -> FatResult;
-}
-
-const MS0: u8 = 1_u8;
-const MS1: u8 = 0_u8;
-const MS2: u8 = 3_u8;
-const MS3: u8 = 4_u8;
-const MS4: u8 = 2_u8;
-const SENSOR_ON: u8 = 5_u8;
-
-pub enum SensorImpl {
- PulseCounter {
- signal_counter: Unit<'static, 0>,
- sensor_expander:
- Pca9535Immediate>>,
- },
- CanBus {
- twai_config: Option>,
- can_power: Output<'static>,
- },
-}
-
-#[async_trait(?Send)]
-impl SensorInteraction for SensorImpl {
- async fn measure_moisture_hz(&mut self) -> FatResult {
- match self {
- SensorImpl::PulseCounter {
- signal_counter,
- sensor_expander,
- ..
- } => {
- let mut result = Moistures::default();
- for plant in 0..crate::hal::PLANT_COUNT{
- result.sensor_a_hz[plant] = Self::inner_pulse(plant, Sensor::A, signal_counter, sensor_expander).await?;
- info!("Sensor {} {:?}: {}", plant, Sensor::A, result.sensor_a_hz[plant]);
- result.sensor_b_hz[plant] = Self::inner_pulse(plant, Sensor::B, signal_counter, sensor_expander).await?;
- info!("Sensor {} {:?}: {}", plant, Sensor::B, result.sensor_b_hz[plant]);
- }
- Ok(result)
- }
-
- SensorImpl::CanBus {
- twai_config,
- can_power,
- } => {
- can_power.set_high();
- let config = twai_config.take().expect("twai config not set");
- let mut twai = config.start();
-
- loop {
- let rec = twai.receive();
- match rec {
- Ok(_) => {}
- Err(err) => {
- info!("Error receiving CAN message: {:?}", err);
- break;
- }
- }
- }
-
- Timer::after_millis(10).await;
- let can = Self::inner_can(&mut twai).await;
-
- can_power.set_low();
-
- let config = twai.stop();
- twai_config.replace(config);
-
- let value = can?;
- Ok(value)
- }
- }
- }
-}
-
-
-
-impl SensorImpl {
- pub async fn autodetect(&mut self) -> FatResult {
- match self {
- SensorImpl::PulseCounter { .. } => {
- bail!("Only CAN bus implementation supports autodetection")
- }
- SensorImpl::CanBus {
- twai_config,
- can_power,
- } => {
- // Power on CAN transceiver and start controller
- can_power.set_high();
- let config = twai_config.take().expect("twai config not set");
- let mut as_async = config.into_async().start();
- // Give CAN some time to stabilize
- Timer::after_millis(10).await;
-
- // Send a few test messages per potential sensor node
- for plant in 0..crate::hal::PLANT_COUNT {
- for sensor in [Sensor::A, Sensor::B] {
- let target = StandardId::new(plant_id(IDENTIFY_CMD_OFFSET, sensor.into(), plant as u16)).context(">> Could not create address for sensor! (plant: {}) <<")?;
- let can_buffer = [0_u8; 0];
- if let Some(frame) = EspTwaiFrame::new(target, &can_buffer) {
- // Try a few times; we intentionally ignore rx here and rely on stub logic
- let resu = as_async.transmit_async(&frame).await;
- match resu {
- Ok(_) => {
- info!(
- "Sent test message to plant {} sensor {:?}",
- plant, sensor
- );
- }
- Err(err) => {
- info!("Error sending test message to plant {} sensor {:?}: {:?}", plant, sensor, err);
- }
- }
- } else {
- info!("Error building CAN frame");
- }
-
- }
- }
-
- let mut result = DetectionResult::default();
- loop {
- match as_async.receive_async().with_deadline(Instant::from_millis(100)).await {
- Ok(or) => {
- match or {
- Ok(can_frame) => {
- match can_frame.id() {
- Id::Standard(id) => {
- let rawid = id.as_raw();
- match classify(rawid) {
- None => {}
- Some(msg) => {
- if msg.0 == MessageKind::MoistureData {
- let plant = msg.1 as usize;
- let sensor = msg.2;
- match sensor {
- SensorSlot::A => {
- result.plant[plant].sensor_a = true;
- }
- SensorSlot::B => {
- result.plant[plant].sensor_b = true;
- }
- }
- }
- }
- }
- }
- Id::Extended(ext) => {
- warn!("Received extended ID: {:?}", ext);
- }
- }
-
- }
- Err(err ) => {
- error!("Error receiving CAN message: {:?}", err);
- break;
- }
- }
- info!("Received CAN message: {:?}", or);
-
- }
- Err(err) => {
- error!("Timeout receiving CAN message: {:?}", err);
- break;
- }
- }
- }
-
- let config = as_async.stop().into_blocking();
- can_power.set_low();
- twai_config.replace(config);
-
- info!("Autodetection result: {:?}", result);
- Ok(result)
- }
- }
- }
-
- pub async fn inner_pulse(plant: usize, sensor: Sensor, signal_counter: &mut Unit<'_, 0>, sensor_expander: &mut Pca9535Immediate>>) -> FatResult {
-
- let mut results = [0_f32; REPEAT_MOIST_MEASURE];
- for repeat in 0..REPEAT_MOIST_MEASURE {
- signal_counter.pause();
- signal_counter.clear();
-
- //Disable all
- sensor_expander.pin_set_high(GPIOBank::Bank0, MS4)?;
-
- let sensor_channel = match sensor {
- Sensor::A => plant as u32,
- Sensor::B => (15 - plant) as u32,
- };
-
- let is_bit_set = |b: u8| -> bool { sensor_channel & (1 << b) != 0 };
- if is_bit_set(0) {
- sensor_expander.pin_set_high(GPIOBank::Bank0, MS0)?;
- } else {
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS0)?;
- }
- if is_bit_set(1) {
- sensor_expander.pin_set_high(GPIOBank::Bank0, MS1)?;
- } else {
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS1)?;
- }
- if is_bit_set(2) {
- sensor_expander.pin_set_high(GPIOBank::Bank0, MS2)?;
- } else {
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS2)?;
- }
- if is_bit_set(3) {
- sensor_expander.pin_set_high(GPIOBank::Bank0, MS3)?;
- } else {
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS3)?;
- }
-
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS4)?;
- sensor_expander.pin_set_high(GPIOBank::Bank0, SENSOR_ON)?;
-
- let measurement = 100; // TODO what is this scaling factor? what is its purpose?
- let factor = 1000f32 / measurement as f32;
-
- //give some time to stabilize
- Timer::after_millis(10).await;
- signal_counter.resume();
- Timer::after_millis(measurement).await;
- signal_counter.pause();
- sensor_expander.pin_set_high(GPIOBank::Bank0, MS4)?;
- sensor_expander.pin_set_low(GPIOBank::Bank0, SENSOR_ON)?;
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS0)?;
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS1)?;
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS2)?;
- sensor_expander.pin_set_low(GPIOBank::Bank0, MS3)?;
- Timer::after_millis(10).await;
- let unscaled = 1337; //signal_counter.get_counter_value()? as i32;
- let hz = unscaled as f32 * factor;
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::RawMeasure,
- unscaled as u32,
- hz as u32,
- &plant.to_string(),
- &format!("{sensor:?}"),
- )
- .await;
- results[repeat] = hz;
- }
- results.sort_by(|a, b| a.partial_cmp(b).unwrap()); // floats don't seem to implement total_ord
-
- let mid = results.len() / 2;
- let median = results[mid];
- Ok(median)
-}
-
- async fn inner_can(
- twai: &mut Twai<'static, Blocking>,
- ) -> FatResult {
- [0_u8; 8];
- config::standard();
-
- let timeout = Instant::now()
- .checked_add(embassy_time::Duration::from_millis(100))
- .context("Timeout")?;
- loop {
- let answer = twai.receive();
- match answer {
- Ok(answer) => {
- info!("Received CAN message: {:?}", answer);
- }
- Err(error) => match error {
- nb::Error::Other(error) => {
- return Err(FatError::CanBusError { error });
- }
- nb::Error::WouldBlock => {
- if Instant::now() > timeout {
- bail!("Timeout waiting for CAN answer");
- }
- Timer::after_millis(10).await;
- }
- },
- }
- }
- }
-}
diff --git a/rust/src/hal/water.rs b/rust/src/hal/water.rs
deleted file mode 100644
index 5bedffd..0000000
--- a/rust/src/hal/water.rs
+++ /dev/null
@@ -1,153 +0,0 @@
-use crate::bail;
-use crate::fat_error::FatError;
-use crate::hal::{ADC1, TANK_MULTI_SAMPLE};
-use embassy_time::Timer;
-use esp_hal::analog::adc::{Adc, AdcConfig, AdcPin, Attenuation};
-use esp_hal::delay::Delay;
-use esp_hal::gpio::{Flex, Input, Output, OutputConfig, Pull};
-use esp_hal::pcnt::channel::CtrlMode::Keep;
-use esp_hal::pcnt::channel::EdgeMode::{Hold, Increment};
-use esp_hal::pcnt::unit::Unit;
-use esp_hal::peripherals::GPIO5;
-use esp_hal::Blocking;
-use esp_println::println;
-use onewire::{ds18b20, Device, DeviceSearch, OneWire, DS18B20};
-
-pub struct TankSensor<'a> {
- one_wire_bus: OneWire>,
- tank_channel: Adc<'a, ADC1<'a>, Blocking>,
- tank_power: Output<'a>,
- tank_pin: AdcPin, ADC1<'a>>,
- flow_counter: Unit<'a, 1>,
-}
-
-impl<'a> TankSensor<'a> {
- pub(crate) fn create(
- mut one_wire_pin: Flex<'a>,
- adc1: ADC1<'a>,
- gpio5: GPIO5<'a>,
- tank_power: Output<'a>,
- flow_sensor: Input,
- pcnt1: Unit<'a, 1>,
- ) -> Result, FatError> {
- one_wire_pin.apply_output_config(&OutputConfig::default().with_pull(Pull::None));
-
- let mut adc1_config = AdcConfig::new();
- let tank_pin = adc1_config.enable_pin(gpio5, Attenuation::_11dB);
- let tank_channel = Adc::new(adc1, adc1_config);
-
- let one_wire_bus = OneWire::new(one_wire_pin, false);
-
- pcnt1.set_high_limit(Some(i16::MAX))?;
-
- let ch0 = &pcnt1.channel0;
- ch0.set_edge_signal(flow_sensor.peripheral_input());
- ch0.set_input_mode(Hold, Increment);
- ch0.set_ctrl_mode(Keep, Keep);
- pcnt1.listen();
-
- Ok(TankSensor {
- one_wire_bus,
- tank_channel,
- tank_power,
- tank_pin,
- flow_counter: pcnt1,
- })
- }
-
- pub fn reset_flow_meter(&mut self) {
- self.flow_counter.pause();
- self.flow_counter.clear();
- }
-
- pub fn start_flow_meter(&mut self) {
- self.flow_counter.resume();
- }
-
- pub fn get_flow_meter_value(&mut self) -> i16 {
- self.flow_counter.value()
- }
-
- pub fn stop_flow_meter(&mut self) -> i16 {
- self.flow_counter.pause();
- self.get_flow_meter_value()
- }
-
- pub async fn water_temperature_c(&mut self) -> Result {
- //multisample should be moved to water_temperature_c
- let mut attempt = 1;
- let mut delay = Delay::new();
- self.one_wire_bus.reset(&mut delay)?;
- let mut search = DeviceSearch::new();
- let mut water_temp_sensor: Option = None;
- while let Some(device) = self.one_wire_bus.search_next(&mut search, &mut delay)? {
- if device.address[0] == ds18b20::FAMILY_CODE {
- water_temp_sensor = Some(device);
- break;
- }
- }
- match water_temp_sensor {
- Some(device) => {
- println!("Found one wire device: {:?}", device);
- let mut water_temp_sensor = DS18B20::new(device)?;
-
- let water_temp: Result = loop {
- let temp = self
- .single_temperature_c(&mut water_temp_sensor, &mut delay)
- .await;
- match &temp {
- Ok(res) => {
- println!("Water temp is {}", res);
- break temp;
- }
- Err(err) => {
- println!("Could not get water temp {} attempt {}", err, attempt)
- }
- }
- if attempt == 5 {
- break temp;
- }
- attempt += 1;
- };
- water_temp
- }
- None => {
- bail!("Not found any one wire Ds18b20");
- }
- }
- }
-
- async fn single_temperature_c(
- &mut self,
- sensor: &mut DS18B20,
- delay: &mut Delay,
- ) -> Result {
- let resolution = sensor.measure_temperature(&mut self.one_wire_bus, delay)?;
- Timer::after_millis(resolution.time_ms() as u64).await;
- let temperature = sensor.read_temperature(&mut self.one_wire_bus, delay)? as f32;
- if temperature == 85_f32 {
- bail!("Ds18b20 dummy temperature returned");
- }
- Ok(temperature / 10_f32)
- }
-
- pub async fn tank_sensor_voltage(&mut self) -> Result {
- self.tank_power.set_high();
- //let stabilize
- Timer::after_millis(100).await;
-
- let mut store = [0_u16; TANK_MULTI_SAMPLE];
- for multisample in 0..TANK_MULTI_SAMPLE {
- let value = self.tank_channel.read_oneshot(&mut self.tank_pin);
- //force yield
- Timer::after_millis(10).await;
- store[multisample] = value.unwrap();
- }
- self.tank_power.set_low();
-
- store.sort();
- //TODO probably wrong? check!
- let median_mv = store[6] as f32 * 3300_f32 / 4096_f32;
- Ok(median_mv)
- }
-}
diff --git a/rust/src/log/mod.rs b/rust/src/log/mod.rs
deleted file mode 100644
index 1b645af..0000000
--- a/rust/src/log/mod.rs
+++ /dev/null
@@ -1,284 +0,0 @@
-use crate::hal::TIME_ACCESS;
-use crate::vec;
-use alloc::string::ToString;
-use alloc::vec::Vec;
-use bytemuck::{AnyBitPattern, Pod, Zeroable};
-use deranged::RangedU8;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_sync::mutex::Mutex;
-use esp_hal::Persistable;
-use log::info;
-use serde::Serialize;
-use strum_macros::IntoStaticStr;
-use unit_enum::UnitEnum;
-
-const LOG_ARRAY_SIZE: u8 = 220;
-const MAX_LOG_ARRAY_INDEX: u8 = LOG_ARRAY_SIZE - 1;
-#[esp_hal::ram(rtc_fast, persistent)]
-static mut LOG_ARRAY: LogArray = LogArray {
- buffer: [LogEntryInner {
- timestamp: 0,
- message_id: 0,
- a: 0,
- b: 0,
- txt_short: [0; TXT_SHORT_LENGTH],
- txt_long: [0; TXT_LONG_LENGTH],
- }; LOG_ARRAY_SIZE as usize],
- head: 0,
-};
-pub static LOG_ACCESS: Mutex =
- unsafe { Mutex::new(&mut *&raw mut LOG_ARRAY) };
-
-const TXT_SHORT_LENGTH: usize = 8;
-const TXT_LONG_LENGTH: usize = 32;
-
-#[derive(Debug, Clone, Copy, AnyBitPattern)]
-#[repr(C)]
-pub struct LogArray {
- buffer: [LogEntryInner; LOG_ARRAY_SIZE as usize],
- head: u8,
-}
-
-unsafe impl Persistable for LogArray {}
-unsafe impl Zeroable for LogEntryInner {}
-
-unsafe impl Pod for LogEntryInner {}
-
-#[derive(Debug, Clone, Copy)]
-struct LogEntryInner {
- pub timestamp: u64,
- pub message_id: u16,
- pub a: u32,
- pub b: u32,
- pub txt_short: [u8; TXT_SHORT_LENGTH],
- pub txt_long: [u8; TXT_LONG_LENGTH],
-}
-
-#[derive(Serialize)]
-pub struct LogEntry {
- pub timestamp: u64,
- pub message_id: u16,
- pub a: u32,
- pub b: u32,
- pub txt_short: alloc::string::String,
- pub txt_long: alloc::string::String,
-}
-
-impl From for LogEntry {
- fn from(value: LogEntryInner) -> Self {
- LogEntry {
- timestamp: value.timestamp,
- message_id: value.message_id,
- a: value.a,
- b: value.b,
- txt_short: alloc::string::String::from_utf8_lossy_owned(value.txt_short.to_vec()),
- txt_long: alloc::string::String::from_utf8_lossy_owned(value.txt_long.to_vec()),
- }
- }
-}
-
-pub async fn log(
- message_key: LogMessage,
- number_a: u32,
- number_b: u32,
- txt_short: &str,
- txt_long: &str,
-) {
- LOG_ACCESS
- .lock()
- .await
- .log(message_key, number_a, number_b, txt_short, txt_long)
- .await
-}
-
-impl LogArray {
- pub fn get(&mut self) -> Vec {
- let head: RangedU8<0, MAX_LOG_ARRAY_INDEX> =
- RangedU8::new(self.head).unwrap_or(RangedU8::new(0).unwrap());
-
- let mut rv: Vec = Vec::new();
- let mut index = head.wrapping_sub(1);
- for _ in 0..self.buffer.len() {
- let entry = self.buffer[index.get() as usize];
- if (entry.message_id as usize) != LogMessage::Empty.ordinal() {
- rv.push(entry.into());
- }
- index = index.wrapping_sub(1);
- }
- rv
- }
-
- pub async fn log(
- &mut self,
- message_key: LogMessage,
- number_a: u32,
- number_b: u32,
- txt_short: &str,
- txt_long: &str,
- ) {
- let mut head: RangedU8<0, MAX_LOG_ARRAY_INDEX> =
- RangedU8::new(self.head).unwrap_or(RangedU8::new(0).unwrap());
-
- let mut txt_short_stack: heapless::String = heapless::String::new();
- let mut txt_long_stack: heapless::String = heapless::String::new();
-
- limit_length(txt_short, &mut txt_short_stack);
- limit_length(txt_long, &mut txt_long_stack);
-
- let time = {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.current_time_us()
- } / 1000;
-
- let ordinal = message_key.ordinal() as u16;
- let template: &str = message_key.into();
- let mut template_string = template.to_string();
- template_string = template_string.replace("${number_a}", number_a.to_string().as_str());
- template_string = template_string.replace("${number_b}", number_b.to_string().as_str());
- template_string = template_string.replace("${txt_long}", txt_long);
- template_string = template_string.replace("${txt_short}", txt_short);
-
- info!("{}", template_string);
-
- let to_modify = &mut self.buffer[head.get() as usize];
- to_modify.timestamp = time;
- to_modify.message_id = ordinal;
- to_modify.a = number_a;
- to_modify.b = number_b;
- to_modify
- .txt_short
- .clone_from_slice(&txt_short_stack.as_bytes());
- to_modify
- .txt_long
- .clone_from_slice(&txt_long_stack.as_bytes());
- head = head.wrapping_add(1);
- self.head = head.get();
- }
-}
-
-fn limit_length(input: &str, target: &mut heapless::String) {
- for char in input.chars() {
- match target.push(char) {
- Ok(_) => {} //continue adding chars
- Err(_) => {
- //clear space for two asci chars
- while target.len() + 2 >= LIMIT {
- target.pop().unwrap();
- }
- //add .. to shortened strings
- target.push('.').unwrap();
- target.push('.').unwrap();
- return;
- }
- }
- }
- while target.len() < LIMIT {
- target.push(' ').unwrap();
- }
-}
-
-#[derive(IntoStaticStr, Serialize, PartialEq, Eq, PartialOrd, Ord, Clone, UnitEnum)]
-pub enum LogMessage {
- #[strum(serialize = "")]
- Empty,
- #[strum(
- serialize = "Reset due to ${txt_long} requires rtc clear ${number_a} and force config mode ${number_b}"
- )]
- ResetReason,
- #[strum(serialize = "Current restart to conf mode ${number_a}")]
- RestartToConfig,
- #[strum(serialize = "Current low voltage detection is ${number_a}")]
- LowVoltage,
- #[strum(serialize = "Error communicating with battery!! ${txt_long}")]
- BatteryCommunicationError,
- #[strum(serialize = "Tank water level cricial! Refill tank!")]
- TankWaterLevelLow,
- #[strum(serialize = "Tank sensor hardware error: ${txt_long}")]
- TankSensorBoardError,
- #[strum(serialize = "Tank sensor not present, raw voltage measured = ${number_a} mV")]
- TankSensorMissing,
- #[strum(
- serialize = "Tank sensor value out of range, min = ${number_a}%, max = ${number_b}%, value = ${text_short}%"
- )]
- TankSensorValueRangeError,
- #[strum(
- serialize = "raw measure unscaled ${number_a} hz ${number_b}, plant ${txt_short} sensor ${txt_long}"
- )]
- RawMeasure,
- #[strum(serialize = "IP info: ${txt_long}")]
- WifiInfo,
- #[strum(serialize = "Plant:${txt_short} a:${number_a} b:${number_b}")]
- TestSensor,
- #[strum(serialize = "Stay alive topic is ${txt_long}")]
- StayAlive,
- #[strum(serialize = "Connecting mqtt ${txt_short} with id ${txt_long}")]
- MqttInfo,
- #[strum(serialize = "Received stay alive with value ${number_a}")]
- MqttStayAliveRec,
- #[strum(serialize = "Unknown topic recieved ${txt_long}")]
- UnknownTopic,
- #[strum(serialize = "Partition state is ${txt_long}")]
- PartitionState,
- #[strum(serialize = "Mounted Filesystem free ${number_a} total ${number_b} use ${txt_short}")]
- FilesystemMount,
- #[strum(
- serialize = "Mounting Filesystem, this will format the first time and needs quite some time!"
- )]
- MountingFilesystem,
- #[strum(serialize = "Year inplausible, force config mode")]
- YearInplausibleForceConfig,
- #[strum(serialize = "Going to config mode, due to request from prior run")]
- ConfigModeSoftwareOverride,
- #[strum(serialize = "Going to config mode, due to request via config mode button")]
- ConfigModeButtonOverride,
- #[strum(serialize = "Going to normal mode")]
- NormalRun,
- #[strum(serialize = "Missing normal config, entering config mode ${txt_long}")]
- ConfigModeMissingConfig,
- #[strum(serialize = "startup state wifi ${number_a} sntp ${number_b} mqtt ${txt_short}")]
- StartupInfo,
- #[strum(
- serialize = "Trying to pump for ${number_b}s with pump ${number_a} now dryrun: ${txt_short}"
- )]
- PumpPlant,
- #[strum(serialize = "Enable main power dryrun: ${number_a}")]
- EnableMain,
- #[strum(
- serialize = "Pumped multiple times, but plant is still to try attempt: ${number_a} limit :: ${number_b} plant: ${txt_short}"
- )]
- ConsecutivePumpCountLimit,
- #[strum(
- serialize = "Pump Overcurrent error, pump: ${number_a} tripped overcurrent ${number_b} limit was ${txt_short} @s ${txt_long}"
- )]
- PumpOverCurrent,
- #[strum(
- serialize = "Pump Open loop error, pump: ${number_a} is low, ${number_b} limit was ${txt_short} @s ${txt_long}"
- )]
- PumpOpenLoopCurrent,
- #[strum(serialize = "Pump Open current sensor required but did not work: ${number_a}")]
- PumpMissingSensorCurrent,
-}
-
-#[derive(Serialize)]
-pub struct MessageTranslation {
- msg_type: LogMessage,
- message: &'static str,
-}
-
-impl From<&LogMessage> for MessageTranslation {
- fn from(value: &LogMessage) -> Self {
- Self {
- msg_type: value.clone(),
- message: value.into(),
- }
- }
-}
-
-impl LogMessage {
- pub fn to_log_localisation_config() -> Vec {
- Vec::from_iter((0..LogMessage::len()).map(|i| {
- let msg_type = LogMessage::from_ordinal(i).unwrap();
- (&msg_type).into()
- }))
- }
-}
diff --git a/rust/src/main.rs b/rust/src/main.rs
deleted file mode 100644
index 1e130fa..0000000
--- a/rust/src/main.rs
+++ /dev/null
@@ -1,1116 +0,0 @@
-#![no_std]
-#![no_main]
-#![feature(never_type)]
-#![feature(string_from_utf8_lossy_owned)]
-#![feature(impl_trait_in_assoc_type)]
-#![deny(
- clippy::mem_forget,
- reason = "mem::forget is generally not safe to do with esp_hal types, especially those \
- holding buffers for the duration of a data transfer."
-)]
-
-//TODO insert version here and read it in other parts, also read this for the ota webview
-esp_bootloader_esp_idf::esp_app_desc!();
-use esp_backtrace as _;
-
-use crate::config::{NetworkConfig, PlantConfig};
-use crate::fat_error::FatResult;
-use crate::hal::esp::MQTT_STAY_ALIVE;
-use crate::hal::{esp_time, TIME_ACCESS};
-use crate::hal::PROGRESS_ACTIVE;
-use crate::log::{log, LOG_ACCESS};
-use crate::tank::{determine_tank_state, TankError, TankState, WATER_FROZEN_THRESH};
-use crate::webserver::http_server;
-use crate::{
- config::BoardVersion::INITIAL,
- hal::{PlantHal, HAL, PLANT_COUNT},
-};
-use ::log::{info, warn};
-use alloc::borrow::ToOwned;
-use alloc::string::{String, ToString};
-use alloc::sync::Arc;
-use alloc::{format, vec};
-use chrono::{DateTime, Datelike, Timelike, Utc};
-use chrono_tz::Tz::{self, UTC};
-use core::sync::atomic::{AtomicBool, Ordering};
-use embassy_executor::Spawner;
-use embassy_net::Stack;
-use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
-use embassy_sync::mutex::{Mutex, MutexGuard};
-use embassy_sync::once_lock::OnceLock;
-use embassy_time::Timer;
-use esp_hal::rom::ets_delay_us;
-use esp_hal::system::software_reset;
-use esp_println::{logger, println};
-use hal::battery::BatteryState;
-use log::LogMessage;
-use option_lock::OptionLock;
-use plant_state::PlantState;
-use serde::{Deserialize, Serialize};
-
-#[no_mangle]
-extern "C" fn custom_halt() -> ! {
- println!("Fatal error occurred. Restarting in 10 seconds...");
-
- for _delay in 0..30 {
- ets_delay_us(1_000_000);
- }
- println!("resetting");
- //give serial transmit time to finish
- ets_delay_us(500_000);
- software_reset()
-}
-
-//use tank::*;
-mod config;
-mod fat_error;
-mod hal;
-mod log;
-mod plant_state;
-mod tank;
-mod webserver;
-
-extern crate alloc;
-//mod webserver;
-
-pub static BOARD_ACCESS: OnceLock>> = OnceLock::new();
-
-#[derive(Serialize, Deserialize, Debug, PartialEq)]
-enum WaitType {
- MissingConfig,
- ConfigButton,
- MqttConfig,
-}
-
-#[derive(Serialize, Deserialize, Debug, PartialEq)]
-struct Solar {
- current_ma: u32,
- voltage_ma: u32,
-}
-
-impl WaitType {
- fn blink_pattern(&self) -> u64 {
- match self {
- WaitType::MissingConfig => 500_u64,
- WaitType::ConfigButton => 100_u64,
- WaitType::MqttConfig => 200_u64,
- }
- }
-}
-
-#[derive(Serialize, Deserialize, Debug, PartialEq, Default)]
-/// Light State tracking data for mqtt
-struct LightState {
- /// is enabled in config
- enabled: bool,
- /// led is on
- active: bool,
- /// led should not be on at this time of day
- out_of_work_hour: bool,
- /// the battery is low so do not use led
- battery_low: bool,
- /// the sun is up
- is_day: bool,
-}
-
-#[derive(Serialize, Deserialize, Debug, PartialEq, Default)]
-///mqtt struct to track pump activities
-struct PumpInfo {
- enabled: bool,
- pump_ineffective: bool,
- median_current_ma: u16,
- max_current_ma: u16,
- min_current_ma: u16,
-}
-
-#[derive(Serialize)]
-pub struct PumpResult {
- median_current_ma: u16,
- max_current_ma: u16,
- min_current_ma: u16,
- error: bool,
- flow_value_ml: f32,
- flow_value_count: i16,
- pump_time_s: u16,
-}
-
-#[derive(Serialize, Debug, PartialEq)]
-enum SntpMode {
- OFFLINE,
- SYNC { current: DateTime },
-}
-
-#[derive(Serialize, Debug, PartialEq)]
-enum NetworkMode {
- WIFI {
- sntp: SntpMode,
- mqtt: bool,
- ip_address: String,
- },
- OFFLINE,
-}
-
-async fn safe_main(spawner: Spawner) -> FatResult<()> {
- info!("Startup Rust");
-
- let mut to_config = false;
- let mut board = BOARD_ACCESS.get().await.lock().await;
-
- let version = get_version(&mut board).await;
- info!(
- "Version using git has {} build on {}",
- version.git_hash, version.build_time
- );
-
- board.board_hal.general_fault(false).await;
- let cur = match board.board_hal.get_rtc_module().get_rtc_time().await {
- Ok(value) => {
- {
- let guard = TIME_ACCESS.get().await.lock().await;
- guard.set_current_time_us(value.timestamp_micros() as u64);
- }
- value
- }
- Err(err) => {
- info!("rtc module error: {:?}", err);
- board.board_hal.general_fault(true).await;
- esp_time().await
- }
- };
-
- //check if we know the time current > 2020 (plausibility checks, this code is newer than 2020)
- if cur.year() < 2020 {
- to_config = true;
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::YearInplausibleForceConfig, 0, 0, "", "")
- .await;
- }
- info!("cur is {}", cur);
- update_charge_indicator(&mut board).await;
- if board.board_hal.get_esp().get_restart_to_conf() {
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::ConfigModeSoftwareOverride, 0, 0, "", "")
- .await;
- for _i in 0..2 {
- board.board_hal.general_fault(true).await;
- Timer::after_millis(100).await;
- board.board_hal.general_fault(false).await;
- Timer::after_millis(100).await;
- }
- to_config = true;
- board.board_hal.general_fault(true).await;
- board.board_hal.get_esp().set_restart_to_conf(false);
- } else if board.board_hal.get_esp().mode_override_pressed() {
- board.board_hal.general_fault(true).await;
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::ConfigModeButtonOverride, 0, 0, "", "")
- .await;
- for _i in 0..5 {
- board.board_hal.general_fault(true).await;
- Timer::after_millis(100).await;
- board.board_hal.general_fault(false).await;
- Timer::after_millis(100).await;
- }
-
- if board.board_hal.get_esp().mode_override_pressed() {
- board.board_hal.general_fault(true).await;
- to_config = true;
- } else {
- board.board_hal.general_fault(false).await;
- }
- } else {
- info!("no mode override");
- }
-
- if board.board_hal.get_config().hardware.board == INITIAL
- && board.board_hal.get_config().network.ssid.is_none()
- {
- info!("No wifi configured, starting initial config mode");
-
- let stack = board.board_hal.get_esp().wifi_ap().await?;
-
- let reboot_now = Arc::new(AtomicBool::new(false));
- println!("starting webserver");
-
- spawner.spawn(http_server(reboot_now.clone(), stack))?;
- wait_infinity(board, WaitType::MissingConfig, reboot_now.clone()).await;
- }
-
- let mut stack: OptionLock = OptionLock::empty();
- let network_mode = if board.board_hal.get_config().network.ssid.is_some() {
- try_connect_wifi_sntp_mqtt(&mut board, &mut stack).await
- } else {
- info!("No wifi configured");
- //the current sensors require this amount to stabilize, in the case of Wi-Fi this is already handled due to connect timings;
- Timer::after_millis(100).await;
- NetworkMode::OFFLINE
- };
-
- if matches!(network_mode, NetworkMode::OFFLINE) && to_config {
- info!("Could not connect to station and config mode forced, switching to ap mode!");
-
- let res = {
- let esp = board.board_hal.get_esp();
- esp.wifi_ap().await
- };
- match res {
- Ok(ap_stack) => {
- stack.replace(ap_stack);
- info!("Started ap, continuing")
- }
- Err(err) => info!("Could not start config override ap mode due to {}", err),
- }
- }
-
- let tz = &board.board_hal.get_config().timezone;
- let timezone = match tz {
- Some(tz_str) => tz_str.parse::().unwrap_or_else(|_| {
- info!("Invalid timezone '{}', falling back to UTC", tz_str);
- UTC
- }),
- None => UTC, // Fallback to UTC if no timezone is set
- };
- let _timezone = UTC;
-
- let timezone_time = cur.with_timezone(&timezone);
- info!(
- "Running logic at utc {} and {} {}",
- cur,
- timezone.name(),
- timezone_time
- );
-
- if let NetworkMode::WIFI { ref ip_address, .. } = network_mode {
- publish_firmware_info(&mut board, version, ip_address, &timezone_time.to_rfc3339()).await;
- publish_battery_state(&mut board).await;
- let _ = publish_mppt_state(&mut board).await;
- }
-
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::StartupInfo,
- matches!(network_mode, NetworkMode::WIFI { .. }) as u32,
- matches!(
- network_mode,
- NetworkMode::WIFI {
- sntp: SntpMode::SYNC { .. },
- ..
- }
- ) as u32,
- matches!(network_mode, NetworkMode::WIFI { mqtt: true, .. })
- .to_string()
- .as_str(),
- "",
- )
- .await;
-
- if to_config {
- //check if client or ap mode and init Wi-Fi
- info!("executing config mode override");
- //config upload will trigger reboot!
- let reboot_now = Arc::new(AtomicBool::new(false));
- spawner.spawn(http_server(reboot_now.clone(), stack.take().unwrap()))?;
- wait_infinity(board, WaitType::ConfigButton, reboot_now.clone()).await;
- } else {
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::NormalRun, 0, 0, "", "")
- .await;
- }
-
- let dry_run = false;
-
- let tank_state = determine_tank_state(&mut board).await;
-
- if tank_state.is_enabled() {
- if let Some(err) = tank_state.got_error(&board.board_hal.get_config().tank) {
- match err {
- TankError::SensorDisabled => { /* unreachable */ }
- TankError::SensorMissing(raw_value_mv) => {
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::TankSensorMissing,
- raw_value_mv as u32,
- 0,
- "",
- "",
- )
- .await
- }
- TankError::SensorValueError { value, min, max } => {
- LOG_ACCESS
- .lock()
- .await
- .log(
- LogMessage::TankSensorValueRangeError,
- min as u32,
- max as u32,
- &format!("{}", value),
- "",
- )
- .await
- }
- TankError::BoardError(err) => {
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::TankSensorBoardError, 0, 0, "", &err.to_string())
- .await
- }
- }
- // disabled cannot trigger this because of wrapping if is_enabled
- board.board_hal.general_fault(true).await;
- } else if tank_state
- .warn_level(&board.board_hal.get_config().tank)
- .is_ok_and(|warn| warn)
- {
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::TankWaterLevelLow, 0, 0, "", "")
- .await;
- board.board_hal.general_fault(true).await;
- }
- }
-
- let mut water_frozen = false;
- let water_temp: FatResult = match board.board_hal.get_tank_sensor() {
- Ok(sensor) => sensor.water_temperature_c().await,
- Err(e) => Err(e),
- };
-
- if let Ok(res) = water_temp {
- if res < WATER_FROZEN_THRESH {
- water_frozen = true;
- }
- }
- info!("Water temp is {}", water_temp.as_ref().unwrap_or(&0.));
-
- publish_tank_state(&mut board, &tank_state, water_temp).await;
-
- let moisture = board.board_hal.measure_moisture_hz().await?;
-
- let plantstate: [PlantState; PLANT_COUNT] = [
- PlantState::read_hardware_state(moisture,0, &mut board).await,
- PlantState::read_hardware_state(moisture,1, &mut board).await,
- PlantState::read_hardware_state(moisture,2, &mut board).await,
- PlantState::read_hardware_state(moisture,3, &mut board).await,
- PlantState::read_hardware_state(moisture,4, &mut board).await,
- PlantState::read_hardware_state(moisture,5, &mut board).await,
- PlantState::read_hardware_state(moisture,6, &mut board).await,
- PlantState::read_hardware_state(moisture,7, &mut board).await,
- ];
-
- publish_plant_states(&mut board, &timezone_time.clone(), &plantstate).await;
-
- let pump_required = plantstate
- .iter()
- .zip(&board.board_hal.get_config().plants)
- .any(|(it, conf)| it.needs_to_be_watered(conf, &timezone_time))
- && !water_frozen;
- if pump_required {
- LOG_ACCESS
- .lock()
- .await
- .log(LogMessage::EnableMain, dry_run as u32, 0, "", "")
- .await;
- for (plant_id, (state, plant_config)) in plantstate
- .iter()
- .zip(&board.board_hal.get_config().plants.clone())
- .enumerate()
- {
- if state.needs_to_be_watered(plant_config, &timezone_time) {
- let pump_count = board.board_hal.get_esp().consecutive_pump_count(plant_id) + 1;
- board
- .board_hal
- .get_esp()
- .store_consecutive_pump_count(plant_id, pump_count);
-
- let pump_ineffective = pump_count > plant_config.max_consecutive_pump_count as u32;
- if pump_ineffective {
- log(
- LogMessage::ConsecutivePumpCountLimit,
- pump_count,
- plant_config.max_consecutive_pump_count as u32,
- &(plant_id + 1).to_string(),
- "",
- )
- .await;
- board.board_hal.fault(plant_id, true).await?;
- }
- log(
- LogMessage::PumpPlant,
- (plant_id + 1) as u32,
- plant_config.pump_time_s as u32,
- &dry_run.to_string(),
- "",
- )
- .await;
- board
- .board_hal
- .get_esp()
- .store_last_pump_time(plant_id, cur);
- board.board_hal.get_esp().last_pump_time(plant_id);
- //state.active = true;
-
- pump_info(plant_id, true, pump_ineffective, 0, 0, 0, false).await;
-
- let result = do_secure_pump(&mut board, plant_id, plant_config, dry_run).await?;
- //stop pump regardless of prior result//todo refactor to inner?
- board.board_hal.pump(plant_id, false).await?;
- pump_info(
- plant_id,
- false,
- pump_ineffective,
- result.median_current_ma,
- result.max_current_ma,
- result.min_current_ma,
- result.error,
- )
- .await;
- } else if !state.pump_in_timeout(plant_config, &timezone_time) {
- // plant does not need to be watered and is not in timeout
- // -> reset consecutive pump count
- board
- .board_hal
- .get_esp()
- .store_consecutive_pump_count(plant_id, 0);
- }
- }
- }
-
- info!("state of charg");
- let is_day = board.board_hal.is_day();
- let state_of_charge = board
- .board_hal
- .get_battery_monitor()
- .state_charge_percent()
- .await
- .unwrap_or(0.);
-
- // try to load full battery state if failed the battery state is unknown
- let battery_state = board
- .board_hal
- .get_battery_monitor()
- .get_battery_state()
- .await
- .unwrap_or(BatteryState::Unknown);
-
- info!("Battery state is {:?}", battery_state);
- let mut light_state = LightState {
- enabled: board.board_hal.get_config().night_lamp.enabled,
- ..Default::default()
- };
- if light_state.enabled {
- light_state.is_day = is_day;
- light_state.out_of_work_hour = !in_time_range(
- &timezone_time,
- board
- .board_hal
- .get_config()
- .night_lamp
- .night_lamp_hour_start,
- board.board_hal.get_config().night_lamp.night_lamp_hour_end,
- );
-
- if state_of_charge
- < board
- .board_hal
- .get_config()
- .night_lamp
- .low_soc_cutoff
- .into()
- {
- board.board_hal.get_esp().set_low_voltage_in_cycle();
- info!("Set low voltage in cycle");
- } else if state_of_charge
- > board
- .board_hal
- .get_config()
- .night_lamp
- .low_soc_restore
- .into()
- {
- board.board_hal.get_esp().clear_low_voltage_in_cycle();
- info!("Clear low voltage in cycle");
- }
- light_state.battery_low = board.board_hal.get_esp().low_voltage_in_cycle();
-
- if !light_state.out_of_work_hour {
- if board
- .board_hal
- .get_config()
- .night_lamp
- .night_lamp_only_when_dark
- {
- if !light_state.is_day {
- if light_state.battery_low {
- board.board_hal.light(false).await?;
- } else {
- light_state.active = true;
- board.board_hal.light(true).await?;
- }
- }
- } else if light_state.battery_low {
- board.board_hal.light(false).await?;
- } else {
- light_state.active = true;
- board.board_hal.light(true).await?;
- }
- } else {
- light_state.active = false;
- board.board_hal.light(false).await?;
- }
-
- info!("Lightstate is {:?}", light_state);
- }
-
- match &serde_json::to_string(&light_state) {
- Ok(state) => {
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/light", state)
- .await;
- }
- Err(err) => {
- info!("Error publishing lightstate {}", err);
- }
- };
-
- let deep_sleep_duration_minutes: u32 =
- // if battery soc is unknown assume battery has enough change
- if state_of_charge < 10.0 && !matches!(battery_state, BatteryState::Unknown) {
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/deepsleep", "low Volt 12h").await;
- 12 * 60
- } else if is_day {
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/deepsleep", "normal 20m").await;
- 20
- } else {
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/deepsleep", "night 1h").await;
- 60
- };
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/state", "sleep")
- .await;
-
- info!("Go to sleep for {} minutes", deep_sleep_duration_minutes);
- //determine next event
- //is light out of work trigger soon?
- //is battery low ??
- //is deep sleep
- //TODO
- //mark_app_valid();
-
- let stay_alive = MQTT_STAY_ALIVE.load(Ordering::Relaxed);
- info!("Check stay alive, current state is {}", stay_alive);
-
- if stay_alive {
- let reboot_now = Arc::new(AtomicBool::new(false));
- let _webserver = http_server(reboot_now.clone(), stack.take().unwrap());
- wait_infinity(board, WaitType::MqttConfig, reboot_now.clone()).await;
- } else {
- //TODO wait for all mqtt publishes?
- Timer::after_millis(5000).await;
-
- board.board_hal.get_esp().set_restart_to_conf(false);
- board
- .board_hal
- .deep_sleep(1000 * 1000 * 60 * deep_sleep_duration_minutes as u64)
- .await;
- }
-}
-
-pub async fn do_secure_pump(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'_>>,
- plant_id: usize,
- plant_config: &PlantConfig,
- dry_run: bool,
-) -> FatResult {
- let mut current_collector = vec![0_u16; plant_config.pump_time_s.into()];
- let mut flow_collector = vec![0_i16; plant_config.pump_time_s.into()];
- let mut error = false;
- let mut first_error = true;
- let mut pump_time_s = 0;
- if !dry_run {
- board.board_hal.get_tank_sensor()?.reset_flow_meter();
- board.board_hal.get_tank_sensor()?.start_flow_meter();
- board.board_hal.pump(plant_id, true).await?;
- Timer::after_millis(10).await;
- for step in 0..plant_config.pump_time_s as usize {
- let flow_value = board.board_hal.get_tank_sensor()?.get_flow_meter_value();
- flow_collector[step] = flow_value;
- let flow_value_ml = flow_value as f32 * board.board_hal.get_config().tank.ml_per_pulse;
-
- info!(
- "Flow value is {} ml, limit is {} ml raw sensor {}",
- flow_value_ml, plant_config.pump_limit_ml, flow_value
- );
- if flow_value_ml > plant_config.pump_limit_ml as f32 {
- info!("Flow value is reached, stopping");
- break;
- }
-
- let current = board.board_hal.pump_current(plant_id).await;
- match current {
- Ok(current) => {
- let current_ma = current.as_milliamperes() as u16;
- current_collector[step] = current_ma;
- let high_current = current_ma > plant_config.max_pump_current_ma;
- if high_current {
- if first_error {
- log(
- LogMessage::PumpOverCurrent,
- plant_id as u32 + 1,
- current_ma as u32,
- plant_config.max_pump_current_ma.to_string().as_str(),
- step.to_string().as_str(),
- )
- .await;
- board.board_hal.general_fault(true).await;
- board.board_hal.fault(plant_id, true).await?;
- if !plant_config.ignore_current_error {
- error = true;
- break;
- }
- first_error = false;
- }
- }
- let low_current = current_ma < plant_config.min_pump_current_ma;
- if low_current {
- if first_error {
- log(
- LogMessage::PumpOpenLoopCurrent,
- plant_id as u32 + 1,
- current_ma as u32,
- plant_config.min_pump_current_ma.to_string().as_str(),
- step.to_string().as_str(),
- )
- .await;
- board.board_hal.general_fault(true).await;
- board.board_hal.fault(plant_id, true).await?;
- if !plant_config.ignore_current_error {
- error = true;
- break;
- }
- first_error = false;
- }
- }
- }
- Err(err) => {
- if !plant_config.ignore_current_error {
- info!("Error getting pump current: {}", err);
- log(
- LogMessage::PumpMissingSensorCurrent,
- plant_id as u32,
- 0,
- "",
- "",
- )
- .await;
- error = true;
- break;
- } else {
- //e.g., v3 without a sensor ends here, do not spam
- }
- }
- }
- Timer::after_millis(1000).await;
- pump_time_s += 1;
- }
- }
- board.board_hal.get_tank_sensor()?.stop_flow_meter();
- let final_flow_value = board.board_hal.get_tank_sensor()?.get_flow_meter_value();
- let flow_value_ml = final_flow_value as f32 * board.board_hal.get_config().tank.ml_per_pulse;
- info!(
- "Final flow value is {} with {} ml",
- final_flow_value, flow_value_ml
- );
- current_collector.sort();
- Ok(PumpResult {
- median_current_ma: current_collector[current_collector.len() / 2],
- max_current_ma: current_collector[current_collector.len() - 1],
- min_current_ma: current_collector[0],
- flow_value_ml,
- flow_value_count: final_flow_value,
- pump_time_s,
- error,
- })
-}
-
-async fn update_charge_indicator(
- board: &mut MutexGuard<'static, CriticalSectionRawMutex, HAL<'static>>,
-) {
- //we have mppt controller, ask it for charging current
- if let Ok(current) = board.board_hal.get_mptt_current().await {
- let _ = board
- .board_hal
- .set_charge_indicator(current.as_milliamperes() > 20_f64);
- }
- //fallback to battery controller and ask it instead
- else if let Ok(charging) = board
- .board_hal
- .get_battery_monitor()
- .average_current_milli_ampere()
- .await
- {
- let _ = board.board_hal.set_charge_indicator(charging > 20);
- } else {
- //who knows
- let _ = board.board_hal.set_charge_indicator(false);
- }
-}
-
-async fn publish_tank_state(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
- tank_state: &TankState,
- water_temp: FatResult,
-) {
- let state = serde_json::to_string(
- &tank_state.as_mqtt_info(&board.board_hal.get_config().tank, &water_temp),
- )
- .unwrap();
- let _ = board.board_hal.get_esp().mqtt_publish("/water", &*state);
-}
-
-async fn publish_plant_states(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
- timezone_time: &DateTime,
- plantstate: &[PlantState; 8],
-) {
- for (plant_id, (plant_state, plant_conf)) in plantstate
- .iter()
- .zip(&board.board_hal.get_config().plants.clone())
- .enumerate()
- {
- let state =
- serde_json::to_string(&plant_state.to_mqtt_info(plant_conf, timezone_time)).unwrap();
- let plant_topic = format!("/plant{}", plant_id + 1);
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish(&plant_topic, &state)
- .await;
- }
-}
-
-async fn publish_firmware_info(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
- version: VersionInfo,
- ip_address: &String,
- timezone_time: &String,
-) {
- let esp = board.board_hal.get_esp();
- let _ = esp.mqtt_publish("/firmware/address", ip_address).await;
- let _ = esp
- .mqtt_publish("/firmware/state", format!("{:?}", &version).as_str())
- .await;
- let _ = esp.mqtt_publish("/firmware/last_online", timezone_time);
- let _ = esp.mqtt_publish("/state", "online").await;
-}
-macro_rules! mk_static {
- ($t:ty,$val:expr) => {{
- static STATIC_CELL: static_cell::StaticCell<$t> = static_cell::StaticCell::new();
- #[deny(unused_attributes)]
- let x = STATIC_CELL.uninit().write(($val));
- x
- }};
-}
-async fn try_connect_wifi_sntp_mqtt(
- board: &mut MutexGuard<'static, CriticalSectionRawMutex, HAL<'static>>,
- stack_store: &mut OptionLock>,
-) -> NetworkMode {
- let nw_conf = &board.board_hal.get_config().network.clone();
- match board.board_hal.get_esp().wifi(nw_conf).await {
- Ok(stack) => {
- stack_store.replace(stack);
-
- let sntp_mode: SntpMode = match board
- .board_hal
- .get_esp()
- .sntp(1000 * 10, stack.clone())
- .await
- {
- Ok(new_time) => {
- info!("Using time from sntp {}", new_time.to_rfc3339());
- let _ = board.board_hal.get_rtc_module().set_rtc_time(&new_time);
- SntpMode::SYNC { current: new_time }
- }
- Err(err) => {
- warn!("sntp error: {}", err);
- board.board_hal.general_fault(true).await;
- SntpMode::OFFLINE
- }
- };
-
- let mqtt_connected = if board.board_hal.get_config().network.mqtt_url.is_some() {
- let nw_config = board.board_hal.get_config().network.clone();
- let nw_config = mk_static!(NetworkConfig, nw_config);
- match board.board_hal.get_esp().mqtt(nw_config, stack).await {
- Ok(_) => {
- info!("Mqtt connection ready");
- true
- }
- Err(err) => {
- warn!("Could not connect mqtt due to {}", err);
- false
- }
- }
- } else {
- false
- };
- NetworkMode::WIFI {
- sntp: sntp_mode,
- mqtt: mqtt_connected,
- ip_address: stack.hardware_address().to_string(),
- }
- }
- Err(err) => {
- info!("Offline mode due to {}", err);
- board.board_hal.general_fault(true).await;
- NetworkMode::OFFLINE
- }
- }
-}
-
-async fn pump_info(
- plant_id: usize,
- pump_active: bool,
- pump_ineffective: bool,
- median_current_ma: u16,
- max_current_ma: u16,
- min_current_ma: u16,
- _error: bool,
-) {
- let pump_info = PumpInfo {
- enabled: pump_active,
- pump_ineffective,
- median_current_ma,
- max_current_ma,
- min_current_ma,
- };
- let pump_topic = format!("/pump{}", plant_id + 1);
-
- match serde_json::to_string(&pump_info) {
- Ok(state) => {
- BOARD_ACCESS
- .get()
- .await
- .lock()
- .await
- .board_hal
- .get_esp()
- .mqtt_publish(&pump_topic, &state)
- .await;
- }
- Err(err) => {
- warn!("Error publishing pump state {}", err);
- }
- };
-}
-
-async fn publish_mppt_state(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
-) -> FatResult<()> {
- let current = board.board_hal.get_mptt_current().await?;
- let voltage = board.board_hal.get_mptt_voltage().await?;
- let solar_state = Solar {
- current_ma: current.as_milliamperes() as u32,
- voltage_ma: voltage.as_millivolts() as u32,
- };
- if let Ok(serialized_solar_state_bytes) = serde_json::to_string(&solar_state) {
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/mppt", &serialized_solar_state_bytes);
- }
- Ok(())
-}
-
-async fn publish_battery_state(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
-) -> () {
- let state = board
- .board_hal
- .get_battery_monitor()
- .get_battery_state()
- .await;
- let value = match state {
- Ok(state) => {
- let json = serde_json::to_string(&state).unwrap().to_owned();
- json.to_owned()
- }
- Err(_) => "error".to_owned(),
- };
- {
- let _ = board
- .board_hal
- .get_esp()
- .mqtt_publish("/battery", &*value)
- .await;
- }
-}
-
-async fn wait_infinity(
- board: MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
- wait_type: WaitType,
- reboot_now: Arc,
-) -> ! {
- //since we force to have the lock when entering, we can release it to ensure the caller does not forget to dispose of it
- drop(board);
-
- let delay = wait_type.blink_pattern();
- let mut led_count = 8;
- let mut pattern_step = 0;
- loop {
- {
- let mut board = BOARD_ACCESS.get().await.lock().await;
- update_charge_indicator(&mut board).await;
-
- // Skip default blink code when a progress display is active
- if !PROGRESS_ACTIVE.load(Ordering::Relaxed) {
- match wait_type {
- WaitType::MissingConfig => {
- // Keep existing behavior: circular filling pattern
- led_count %= 8;
- led_count += 1;
- for i in 0..8 {
- let _ = board.board_hal.fault(i, i < led_count).await;
- }
- }
- WaitType::ConfigButton => {
- // Alternating pattern: 1010 1010 -> 0101 0101
- pattern_step = (pattern_step + 1) % 2;
- for i in 0..8 {
- let _ = board.board_hal.fault(i, (i + pattern_step) % 2 == 0).await;
- }
- }
- WaitType::MqttConfig => {
- // Moving dot pattern
- pattern_step = (pattern_step + 1) % 8;
- for i in 0..8 {
- let _ = board.board_hal.fault(i, i == pattern_step).await;
- }
- }
- }
- board.board_hal.general_fault(true).await;
- }
- }
-
- Timer::after_millis(delay).await;
- {
- let mut board = BOARD_ACCESS.get().await.lock().await;
-
- // Skip clearing LEDs when progress is active to avoid interrupting the progress display
- if !PROGRESS_ACTIVE.load(Ordering::Relaxed) {
- board.board_hal.general_fault(false).await;
-
- // Clear all LEDs
- for i in 0..8 {
- let _ = board.board_hal.fault(i, false).await;
- }
- }
- }
-
- Timer::after_millis(delay).await;
-
- if wait_type == WaitType::MqttConfig && !MQTT_STAY_ALIVE.load(Ordering::Relaxed) {
- reboot_now.store(true, Ordering::Relaxed);
- }
- if reboot_now.load(Ordering::Relaxed) {
- //ensure clean http answer
- Timer::after_millis(500).await;
- BOARD_ACCESS
- .get()
- .await
- .lock()
- .await
- .board_hal
- .deep_sleep(0)
- .await;
- }
- }
-}
-
-#[esp_hal_embassy::main]
-async fn main(spawner: Spawner) -> ! {
- // intialize embassy
- logger::init_logger_from_env();
- //force init here!
- match BOARD_ACCESS.init(PlantHal::create().await.unwrap()) {
- Ok(_) => {}
- Err(_) => {
- panic!("Could not set hal to static")
- }
- }
- println!("Hal init done, starting logic");
-
- match safe_main(spawner).await {
- // this should not get triggered, safe_main should not return but go into deep sleep or reboot
- Ok(_) => {
- panic!("Main app finished, but should never do, restarting");
- }
- // if safe_main exists with an error, rollback to a known good ota version
- Err(err) => {
- panic!("Failed main {}", err);
- }
- }
-}
-
-pub fn in_time_range(cur: &DateTime, start: u8, end: u8) -> bool {
- let current_hour = cur.hour() as u8;
- //eg 10-14
- if start < end {
- current_hour > start && current_hour < end
- } else {
- //eg 20-05
- current_hour > start || current_hour < end
- }
-}
-
-async fn get_version(
- board: &mut MutexGuard<'_, CriticalSectionRawMutex, HAL<'static>>,
-) -> VersionInfo {
- let branch = env!("VERGEN_GIT_BRANCH").to_owned();
- let hash = &env!("VERGEN_GIT_SHA")[0..8];
-
- let board = board.board_hal.get_esp();
- VersionInfo {
- git_hash: branch + "@" + hash,
- build_time: env!("VERGEN_BUILD_TIMESTAMP").to_owned(),
- current: format!("{:?}", board.current),
- slot0_state: format!("{:?}", board.slot0_state),
- slot1_state: format!("{:?}", board.slot1_state),
- }
-}
-
-#[derive(Serialize, Debug)]
-struct VersionInfo {
- git_hash: String,
- build_time: String,
- current: String,
- slot0_state: String,
- slot1_state: String,
-}
diff --git a/rust/src/plant_state.rs b/rust/src/plant_state.rs
deleted file mode 100644
index 0384df5..0000000
--- a/rust/src/plant_state.rs
+++ /dev/null
@@ -1,328 +0,0 @@
-use crate::hal::Moistures;
-use crate::{
- config::PlantConfig,
- hal::HAL,
- in_time_range,
-};
-use chrono::{DateTime, TimeDelta, Utc};
-use chrono_tz::Tz;
-use serde::{Deserialize, Serialize};
-
-const MOIST_SENSOR_MAX_FREQUENCY: f32 = 7500.; // 60kHz (500Hz margin)
-const MOIST_SENSOR_MIN_FREQUENCY: f32 = 150.; // this is really, really dry, think like cactus levels
-
-#[derive(Debug, PartialEq, Serialize)]
-pub enum MoistureSensorError {
- ShortCircuit { hz: f32, max: f32 },
- OpenLoop { hz: f32, min: f32 },
-}
-
-#[derive(Debug, PartialEq, Serialize)]
-pub enum MoistureSensorState {
- Disabled,
- MoistureValue { raw_hz: f32, moisture_percent: f32 },
- SensorError(MoistureSensorError),
-}
-
-impl MoistureSensorState {
- pub fn is_err(&self) -> Option<&MoistureSensorError> {
- match self {
- MoistureSensorState::SensorError(moisture_sensor_error) => Some(moisture_sensor_error),
- _ => None,
- }
- }
-
- pub fn moisture_percent(&self) -> Option {
- if let MoistureSensorState::MoistureValue {
- raw_hz: _,
- moisture_percent,
- } = self
- {
- Some(*moisture_percent)
- } else {
- None
- }
- }
-}
-
-impl MoistureSensorState {}
-
-#[derive(Debug, PartialEq, Serialize)]
-pub enum PumpError {
- PumpNotWorking {
- failed_attempts: usize,
- max_allowed_failures: usize,
- },
-}
-
-#[derive(Debug, Serialize)]
-pub struct PumpState {
- consecutive_pump_count: u32,
- previous_pump: Option