From 298e98befb3b9e7c3812af68e8b382c85e1e62c8 Mon Sep 17 00:00:00 2001 From: user Date: Wed, 4 Feb 2026 12:59:28 +0100 Subject: [PATCH] feat: Initial esp32-hacking project with firmware sources and docs --- README.md | 244 ++ esp-crab/README.md | 128 + esp-crab/README_CN.md | 117 + .../ESP-Crab circuit diagram explanation.pdf | Bin 0 -> 894574 bytes esp-crab/master_recv/.gitignore | 109 + esp-crab/master_recv/CMakeLists.txt | 15 + .../bsp_C5_dual_antenna/CMakeLists.txt | 7 + .../components/bsp_C5_dual_antenna/Kconfig | 93 + .../components/bsp_C5_dual_antenna/LICENSE | 202 + .../components/bsp_C5_dual_antenna/README.md | 0 .../bsp_C5_dual_antenna/bsp_C5_dual_antenna.c | 538 +++ .../bsp_C5_dual_antenna/idf_component.yml | 22 + .../include/bsp_C5_dual_antenna.h | 283 ++ .../bsp_C5_dual_antenna/include/display.h | 110 + .../bsp_C5_dual_antenna/include/esp-crab.h | 8 + .../bsp_C5_dual_antenna/include/touch.h | 51 + .../priv_include/bsp_err_check.h | 58 + esp-crab/master_recv/main/CMakeLists.txt | 8 + esp-crab/master_recv/main/app/app_gpio.c | 35 + esp-crab/master_recv/main/app/app_gpio.h | 11 + esp-crab/master_recv/main/app/app_ifft.c | 162 + esp-crab/master_recv/main/app/app_ifft.h | 26 + esp-crab/master_recv/main/app/app_uart.c | 104 + esp-crab/master_recv/main/app/app_uart.h | 21 + esp-crab/master_recv/main/app/app_ui.c | 224 ++ esp-crab/master_recv/main/app/app_ui.h | 14 + esp-crab/master_recv/main/app_main.c | 313 ++ esp-crab/master_recv/main/idf_component.yml | 7 + esp-crab/master_recv/main/ui/CMakeLists.txt | 11 + .../main/ui/components/ui_comp_hook.c | 5 + esp-crab/master_recv/main/ui/filelist.txt | 9 + .../main/ui/images/ui_img_272184077.c | 649 +++ .../master_recv/main/ui/screens/ui_ScreenM.c | 87 + .../master_recv/main/ui/screens/ui_ScreenS.c | 86 + .../master_recv/main/ui/screens/ui_ScreenW.c | 71 + .../master_recv/main/ui/screens/ui_ScreenWP.c | 82 + esp-crab/master_recv/main/ui/ui.c | 170 + esp-crab/master_recv/main/ui/ui.h | 82 + esp-crab/master_recv/main/ui/ui_events.c | 16 + esp-crab/master_recv/main/ui/ui_events.h | 20 + esp-crab/master_recv/main/ui/ui_helpers.c | 347 ++ esp-crab/master_recv/main/ui/ui_helpers.h | 148 + esp-crab/master_recv/partitions.csv | 5 + esp-crab/master_recv/sdkconfig.defaults | 32 + esp-crab/slave_recv/.gitignore | 109 + esp-crab/slave_recv/CMakeLists.txt | 15 + .../slave_recv/components/bsp_C5_dual_antenna | 1 + esp-crab/slave_recv/main/CMakeLists.txt | 5 + esp-crab/slave_recv/main/app/app_gpio.c | 43 + esp-crab/slave_recv/main/app/app_gpio.h | 11 + esp-crab/slave_recv/main/app/app_ifft.c | 162 + esp-crab/slave_recv/main/app/app_ifft.h | 26 + esp-crab/slave_recv/main/app/app_uart.c | 43 + esp-crab/slave_recv/main/app/app_uart.h | 26 + esp-crab/slave_recv/main/app_main.c | 291 ++ esp-crab/slave_recv/main/idf_component.yml | 7 + esp-crab/slave_recv/partitions.csv | 5 + esp-crab/slave_recv/sdkconfig.defaults | 32 + esp-crab/slave_send/.gitignore | 109 + esp-crab/slave_send/CMakeLists.txt | 13 + esp-crab/slave_send/main/CMakeLists.txt | 2 + esp-crab/slave_send/main/app_main.c | 120 + esp-crab/slave_send/main/idf_component.yml | 3 + esp-crab/slave_send/sdkconfig.defaults | 8 + esp-radar/connect_rainmaker/CMakeLists.txt | 11 + esp-radar/connect_rainmaker/README.md | 79 + esp-radar/connect_rainmaker/README_cn.md | 78 + .../connect_rainmaker/main/CMakeLists.txt | 3 + esp-radar/connect_rainmaker/main/app_main.c | 481 +++ .../connect_rainmaker/main/idf_component.yml | 32 + esp-radar/connect_rainmaker/partitions.csv | 8 + .../connect_rainmaker/sdkconfig.defaults | 19 + esp-radar/console_test/CMakeLists.txt | 13 + esp-radar/console_test/README.md | 178 + esp-radar/console_test/README_cn.md | 180 + .../components/commands/CMakeLists.txt | 5 + .../commands/include/csi_commands.h | 31 + .../components/commands/src/ping_cmd.c | 225 ++ .../components/commands/src/system_cmd.c | 264 ++ .../components/commands/src/wifi_cmd.c | 580 +++ esp-radar/console_test/esp_csi_tool_gui.py | 10 + esp-radar/console_test/main/CMakeLists.txt | 3 + esp-radar/console_test/main/Kconfig.projbuild | 16 + esp-radar/console_test/main/app_main.c | 730 ++++ esp-radar/console_test/main/idf_component.yml | 7 + esp-radar/console_test/main/radar_evaluate.c | 255 ++ esp-radar/console_test/partitions.csv | 8 + esp-radar/console_test/sdkconfig.defaults | 53 + .../console_test/tools/config/gui_config.json | 1 + esp-radar/console_test/tools/esp_csi_tool.py | 1335 ++++++ .../console_test/tools/esp_csi_tool_gui.py | 869 ++++ .../console_test/tools/esp_csi_tool_gui.ui | 1665 ++++++++ esp-radar/console_test/tools/requirements.txt | 8 + get-started/README.md | 78 + get-started/README_cn.md | 83 + get-started/csi_recv/CMakeLists.txt | 15 + get-started/csi_recv/README.md | 1 + get-started/csi_recv/main/CMakeLists.txt | 2 + get-started/csi_recv/main/app_main.c | 297 ++ get-started/csi_recv/main/idf_component.yml | 4 + get-started/csi_recv/sdkconfig.defaults | 10 + get-started/csi_recv_router/CMakeLists.txt | 19 + get-started/csi_recv_router/README.md | 119 + get-started/csi_recv_router/dependencies.lock | 156 + .../csi_recv_router/main/CMakeLists.txt | 2 + .../csi_recv_router/main/Kconfig.projbuild | 16 + get-started/csi_recv_router/main/app_main.c | 254 ++ .../csi_recv_router/main/idf_component.yml | 4 + get-started/csi_recv_router/sdkconfig | 3575 +++++++++++++++++ .../csi_recv_router/sdkconfig.defaults | 51 + get-started/csi_recv_router/sdkconfig.old | 3566 ++++++++++++++++ get-started/csi_send/CMakeLists.txt | 13 + get-started/csi_send/README.md | 1 + get-started/csi_send/main/CMakeLists.txt | 2 + get-started/csi_send/main/app_main.c | 170 + get-started/csi_send/main/idf_component.yml | 3 + get-started/csi_send/sdkconfig.defaults | 8 + get-started/tools/.gitignore | 2 + get-started/tools/csi_data_read_parse.py | 336 ++ get-started/tools/csi_data_read_parse_1.py | 399 ++ 120 files changed, 22094 insertions(+) create mode 100644 README.md create mode 100644 esp-crab/README.md create mode 100644 esp-crab/README_CN.md create mode 100644 esp-crab/doc/ESP-Crab circuit diagram explanation.pdf create mode 100644 esp-crab/master_recv/.gitignore create mode 100644 esp-crab/master_recv/CMakeLists.txt create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/CMakeLists.txt create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/Kconfig create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/LICENSE create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/README.md create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/bsp_C5_dual_antenna.c create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/idf_component.yml create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/include/bsp_C5_dual_antenna.h create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/include/display.h create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/include/esp-crab.h create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/include/touch.h create mode 100644 esp-crab/master_recv/components/bsp_C5_dual_antenna/priv_include/bsp_err_check.h create mode 100644 esp-crab/master_recv/main/CMakeLists.txt create mode 100644 esp-crab/master_recv/main/app/app_gpio.c create mode 100644 esp-crab/master_recv/main/app/app_gpio.h create mode 100644 esp-crab/master_recv/main/app/app_ifft.c create mode 100644 esp-crab/master_recv/main/app/app_ifft.h create mode 100644 esp-crab/master_recv/main/app/app_uart.c create mode 100644 esp-crab/master_recv/main/app/app_uart.h create mode 100644 esp-crab/master_recv/main/app/app_ui.c create mode 100644 esp-crab/master_recv/main/app/app_ui.h create mode 100644 esp-crab/master_recv/main/app_main.c create mode 100644 esp-crab/master_recv/main/idf_component.yml create mode 100644 esp-crab/master_recv/main/ui/CMakeLists.txt create mode 100644 esp-crab/master_recv/main/ui/components/ui_comp_hook.c create mode 100644 esp-crab/master_recv/main/ui/filelist.txt create mode 100644 esp-crab/master_recv/main/ui/images/ui_img_272184077.c create mode 100644 esp-crab/master_recv/main/ui/screens/ui_ScreenM.c create mode 100644 esp-crab/master_recv/main/ui/screens/ui_ScreenS.c create mode 100644 esp-crab/master_recv/main/ui/screens/ui_ScreenW.c create mode 100644 esp-crab/master_recv/main/ui/screens/ui_ScreenWP.c create mode 100644 esp-crab/master_recv/main/ui/ui.c create mode 100644 esp-crab/master_recv/main/ui/ui.h create mode 100644 esp-crab/master_recv/main/ui/ui_events.c create mode 100644 esp-crab/master_recv/main/ui/ui_events.h create mode 100644 esp-crab/master_recv/main/ui/ui_helpers.c create mode 100644 esp-crab/master_recv/main/ui/ui_helpers.h create mode 100644 esp-crab/master_recv/partitions.csv create mode 100644 esp-crab/master_recv/sdkconfig.defaults create mode 100644 esp-crab/slave_recv/.gitignore create mode 100644 esp-crab/slave_recv/CMakeLists.txt create mode 120000 esp-crab/slave_recv/components/bsp_C5_dual_antenna create mode 100644 esp-crab/slave_recv/main/CMakeLists.txt create mode 100644 esp-crab/slave_recv/main/app/app_gpio.c create mode 100644 esp-crab/slave_recv/main/app/app_gpio.h create mode 100644 esp-crab/slave_recv/main/app/app_ifft.c create mode 100644 esp-crab/slave_recv/main/app/app_ifft.h create mode 100644 esp-crab/slave_recv/main/app/app_uart.c create mode 100644 esp-crab/slave_recv/main/app/app_uart.h create mode 100644 esp-crab/slave_recv/main/app_main.c create mode 100644 esp-crab/slave_recv/main/idf_component.yml create mode 100644 esp-crab/slave_recv/partitions.csv create mode 100644 esp-crab/slave_recv/sdkconfig.defaults create mode 100644 esp-crab/slave_send/.gitignore create mode 100644 esp-crab/slave_send/CMakeLists.txt create mode 100644 esp-crab/slave_send/main/CMakeLists.txt create mode 100644 esp-crab/slave_send/main/app_main.c create mode 100644 esp-crab/slave_send/main/idf_component.yml create mode 100644 esp-crab/slave_send/sdkconfig.defaults create mode 100644 esp-radar/connect_rainmaker/CMakeLists.txt create mode 100644 esp-radar/connect_rainmaker/README.md create mode 100644 esp-radar/connect_rainmaker/README_cn.md create mode 100644 esp-radar/connect_rainmaker/main/CMakeLists.txt create mode 100644 esp-radar/connect_rainmaker/main/app_main.c create mode 100644 esp-radar/connect_rainmaker/main/idf_component.yml create mode 100644 esp-radar/connect_rainmaker/partitions.csv create mode 100644 esp-radar/connect_rainmaker/sdkconfig.defaults create mode 100644 esp-radar/console_test/CMakeLists.txt create mode 100644 esp-radar/console_test/README.md create mode 100644 esp-radar/console_test/README_cn.md create mode 100644 esp-radar/console_test/components/commands/CMakeLists.txt create mode 100755 esp-radar/console_test/components/commands/include/csi_commands.h create mode 100644 esp-radar/console_test/components/commands/src/ping_cmd.c create mode 100644 esp-radar/console_test/components/commands/src/system_cmd.c create mode 100644 esp-radar/console_test/components/commands/src/wifi_cmd.c create mode 100644 esp-radar/console_test/esp_csi_tool_gui.py create mode 100644 esp-radar/console_test/main/CMakeLists.txt create mode 100644 esp-radar/console_test/main/Kconfig.projbuild create mode 100644 esp-radar/console_test/main/app_main.c create mode 100644 esp-radar/console_test/main/idf_component.yml create mode 100644 esp-radar/console_test/main/radar_evaluate.c create mode 100644 esp-radar/console_test/partitions.csv create mode 100644 esp-radar/console_test/sdkconfig.defaults create mode 100644 esp-radar/console_test/tools/config/gui_config.json create mode 100755 esp-radar/console_test/tools/esp_csi_tool.py create mode 100644 esp-radar/console_test/tools/esp_csi_tool_gui.py create mode 100644 esp-radar/console_test/tools/esp_csi_tool_gui.ui create mode 100644 esp-radar/console_test/tools/requirements.txt create mode 100644 get-started/README.md create mode 100644 get-started/README_cn.md create mode 100644 get-started/csi_recv/CMakeLists.txt create mode 100644 get-started/csi_recv/README.md create mode 100644 get-started/csi_recv/main/CMakeLists.txt create mode 100644 get-started/csi_recv/main/app_main.c create mode 100644 get-started/csi_recv/main/idf_component.yml create mode 100644 get-started/csi_recv/sdkconfig.defaults create mode 100644 get-started/csi_recv_router/CMakeLists.txt create mode 100644 get-started/csi_recv_router/README.md create mode 100644 get-started/csi_recv_router/dependencies.lock create mode 100644 get-started/csi_recv_router/main/CMakeLists.txt create mode 100644 get-started/csi_recv_router/main/Kconfig.projbuild create mode 100644 get-started/csi_recv_router/main/app_main.c create mode 100644 get-started/csi_recv_router/main/idf_component.yml create mode 100644 get-started/csi_recv_router/sdkconfig create mode 100644 get-started/csi_recv_router/sdkconfig.defaults create mode 100644 get-started/csi_recv_router/sdkconfig.old create mode 100644 get-started/csi_send/CMakeLists.txt create mode 100644 get-started/csi_send/README.md create mode 100644 get-started/csi_send/main/CMakeLists.txt create mode 100644 get-started/csi_send/main/app_main.c create mode 100644 get-started/csi_send/main/idf_component.yml create mode 100644 get-started/csi_send/sdkconfig.defaults create mode 100644 get-started/tools/.gitignore create mode 100755 get-started/tools/csi_data_read_parse.py create mode 100755 get-started/tools/csi_data_read_parse_1.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..c96a69d --- /dev/null +++ b/README.md @@ -0,0 +1,244 @@ +# ESP32 Firmware Hacking + +Resources for customizing ESP32 CSI firmware. + +## Directory Structure + +``` +esp32-hacking/ +├── get-started/ # Basic CSI examples (CURRENTLY USED) +│ ├── csi_recv_router/ # <-- OUR FIRMWARE (modified for UDP) +│ ├── csi_recv/ # Basic receiver (serial output) +│ ├── csi_send/ # CSI transmitter +│ └── tools/ # Python CSI parsing tools +├── esp-radar/ # Advanced presence detection +│ ├── console_test/ # Interactive CSI testing console +│ └── connect_rainmaker/ # IoT cloud integration +├── esp-crab/ # Dual-antenna experiments +│ ├── master_recv/ # Master receiver +│ ├── slave_recv/ # Slave receiver +│ └── slave_send/ # Slave transmitter +└── README.md # This file +``` + +## Current Firmware + +**Source:** `get-started/csi_recv_router/` +**Origin:** Espressif esp-csi example, modified for UDP output +**Deployed on:** 3x ESP32-DevKitC V1 + +### What It Does +1. Connects to WiFi router as station +2. Pings gateway at 100 Hz to generate CSI frames +3. On each CSI callback, formats data as text +4. Sends via UDP to Pi (port 5500) + +### Key Settings (sdkconfig.defaults) + +| Setting | Value | Purpose | +|---------|-------|---------| +| `CONFIG_ESP32_WIFI_CSI_ENABLED` | y | Enable CSI extraction | +| `CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED` | (empty) | Disable TX aggregation | +| `CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM` | 128 | Large RX buffer | +| `CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ` | 240 | Max CPU speed | +| `CONFIG_FREERTOS_HZ` | 1000 | 1ms tick resolution | +| `CONFIG_ESP_TASK_WDT_TIMEOUT_S` | 30 | Watchdog timeout | +| `CONFIG_COMPILER_OPTIMIZATION_PERF` | y | Performance optimization | + +### Custom Config (Kconfig.projbuild) + +| Config | Description | +|--------|-------------| +| `CONFIG_CSI_UDP_TARGET_IP` | Pi's IP address (192.168.129.11) | +| `CONFIG_CSI_UDP_TARGET_PORT` | UDP port (5500) | + +### CSI Data Format +``` +CSI_DATA,,,,,,,,, +,,,,,, +,,,,,, +,,,"[csi_values]" +``` + +### Build & Flash +```bash +source ~/esp/esp-idf/export.sh +cd ~/esp/esp-csi/examples/get-started/csi_recv_router +idf.py menuconfig # Change WiFi SSID/password, UDP target IP +idf.py build +idf.py -p /dev/ttyUSB0 flash +idf.py -p /dev/ttyUSB0 monitor # View serial output +``` + +## Firmware Modification Ideas + +### 1. Remote Commands (UDP bidirectional) + +Add a UDP listener on the ESP32 to receive commands from the Pi. + +```c +// Commands to implement: +// REBOOT - restart ESP32 +// IDENTIFY - blink onboard LED for 5 seconds +// STATUS - reply with uptime, free heap, RSSI, chip temp +// RATE - change ping/CSI rate (packets per second) +// OTA - trigger OTA firmware update +``` + +**Complexity:** Low +**Impact:** High - enables remote management without USB + +### 2. Adaptive Sampling Rate + +Reduce packet rate when no presence detected, increase on motion. + +```c +// Idle: 10 pkt/s (saves power, bandwidth) +// Active: 100 pkt/s (full resolution) +// Trigger: wander threshold on-device +``` + +**Complexity:** Medium (needs on-device wander calculation) +**Impact:** Medium - reduces Pi CPU load by ~90% when idle + +### 3. On-Device CSI Processing + +Pre-compute amplitude on ESP32, send only metrics. + +```c +// Instead of raw CSI (128 int16 values per packet = 256 bytes): +// Send: "METRICS,,,,," +// ~50 bytes per packet instead of ~500 +``` + +**Complexity:** Medium +**Impact:** High - 80% bandwidth reduction + +### 4. LED Status Indicator + +Use onboard LED (GPIO2 on most DevKitC) for status. + +```c +// Off: No WiFi connection +// Slow blink: Connected, no CSI activity +// Fast blink: Sending CSI data +// Solid: Identify mode (triggered by command) +``` + +**Complexity:** Low +**Impact:** Low - quality of life + +### 5. BLE Scanning + +ESP32 has Bluetooth. Scan for nearby BLE devices. + +```c +// Periodically scan for BLE advertisements +// Report: MAC, RSSI, device name +// Use for: phone/wearable proximity detection +// Complements CSI: confirms person is home (phone detected) +``` + +**Complexity:** Medium +**Impact:** High - adds a second detection method + +### 6. OTA (Over-The-Air) Updates + +Flash new firmware via WiFi without USB. + +```c +// ESP-IDF has built-in OTA support +// Pi serves firmware binary via HTTP +// ESP32 downloads and flashes +// Requires dual OTA partition scheme +``` + +**Complexity:** Medium (partition table change needed) +**Impact:** High - no more USB flashing + +### 7. ESP-NOW Mesh + +Direct ESP32-to-ESP32 communication without router. + +```c +// Active CSI: ESP32-A sends, ESP32-B measures CSI +// More reliable than passive router beacon monitoring +// Can work even if WiFi router goes down +``` + +**Complexity:** High (requires re-architecting firmware) +**Impact:** High - better CSI quality + +### 8. Temperature Reporting + +ESP32 has internal temperature sensor. + +```c +// Read chip temperature +// Send with CSI data or as separate status packet +// Useful for monitoring device health +``` + +**Complexity:** Low +**Impact:** Low - monitoring + +### 9. mDNS Auto-Discovery + +Announce device on network, no need for static IPs. + +```c +// Register as: .local +// Pi discovers sensors automatically +// No manual IP configuration needed +``` + +**Complexity:** Low +**Impact:** Medium - easier deployment + +### 10. Watchdog + Auto-Recovery + +Better error handling and self-healing. + +```c +// Monitor WiFi connection, reconnect on drop +// Monitor UDP send failures +// Track heap fragmentation +// Reboot if stuck for >60 seconds +``` + +**Complexity:** Low +**Impact:** Medium - reliability + +## Priority Order (Recommended) + +| Priority | Feature | Why | +|----------|---------|-----| +| 1 | Remote commands | Remote reboot + identify = essential | +| 2 | LED status | Easy win, helps debugging | +| 3 | OTA updates | Stop walking to each sensor with USB | +| 4 | Adaptive rate | Save CPU/power when idle | +| 5 | mDNS | Easier deployment | +| 6 | BLE scanning | Second detection method | +| 7 | On-device processing | Bandwidth optimization | +| 8 | Temperature | Nice to have | +| 9 | ESP-NOW mesh | Major rewrite, big payoff | +| 10 | Watchdog improvements | Production hardening | + +## ESP-CSI Tools + +### Python CSI Parser (get-started/tools/) +- `csi_data_read_parse.py` - PyQt5 GUI for live CSI visualization +- Shows amplitude and phase plots in real-time + +### ESP Radar Console (esp-radar/console_test/) +- Interactive console for testing CSI features +- Includes `esp_csi_tool.py` CLI and GUI tools +- Built-in presence detection algorithms + +## References + +- [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/) +- [ESP-CSI Repository](https://github.com/espressif/esp-csi) +- [ESP32 WiFi CSI API](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html) +- [ESP-NOW Protocol](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html) +- [ESP32 OTA Updates](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ota.html) diff --git a/esp-crab/README.md b/esp-crab/README.md new file mode 100644 index 0000000..32848d0 --- /dev/null +++ b/esp-crab/README.md @@ -0,0 +1,128 @@ +# Co-Crystal Oscillator CSI Reception Example + +* [中文版](./README_CN.md) + +This example provides a radio frequency phase synchronization solution for Wi-Fi CSI, including three sub-projects: `MASTER_RECV` (master receiver), `SLAVE_RECV` (slave receiver), and `SLAVE_SEND` (slave sender). +The solution includes two working modes: +1. Self-transmit-and-receive mode +2. Single-transmit-and-dual-receive mode + +## Feature Introduction + +### 1. Self-Transmit-and-Receive Mode + +In this mode, two ESP32-C5 chips are used to transmit and receive signals respectively. By analyzing the phase information in the received Wi-Fi CSI signals, disturbances in the signal path can be sensed with millimeter-level accuracy. +By installing copper sheets to control the RF signal transmission path, the sensing range can also be adjusted, thus supporting high-precision short-range Wi-Fi sensing. +This enables finer Wi-Fi signal sensing, suitable for precise applications in close-range and complex environments. + +![Self-Transmission and Reception Amplitude]() +![Self-Transmission and Reception Phase]() + +#### 1.1 MASTER_RECV (Master Receiver) + +Flash the `MASTER_RECV` firmware to the **Master** chip of the `esp-crab` device. Its functions include: + +* Receiving Wi-Fi packets from the `SLAVE_SEND` and extracting **CIR (Channel Impulse Response)** data. +* Calculating the **amplitude and phase** of Wi-Fi CSI from the CIR and displaying the results. + +#### 1.2 SLAVE_SEND (Slave Sender) + +Flash the `SLAVE_SEND` firmware to the **Slave** chip of the `esp-crab` device. Its function: + +* Transmitting specific Wi-Fi packets. + +### 2. Single-Transmit-and-Dual-Receive Mode + +In this mode, one ESP32-C5 chip is responsible for signal transmission, while the two ESP32-C5 chips on the `esp-crab` device receive signals. +By spatially distributing the sender and receivers, Wi-Fi sensing can be realized over a **larger area**. +The **co-crystal oscillator Wi-Fi CSI data** acquired by the `esp-crab` satisfies the performance requirements of cutting-edge Wi-Fi sensing research, and can be directly integrated with advanced algorithms, further improving the **accuracy and application value** of the sensing system. +This mode offers strong technical support for **wide-area and complex environment wireless sensing and positioning**. + +![Single-Transmission and Dual-Reception Phase]() + +#### 2.1 MASTER_RECV (Master Receiver) + +Flash the `MASTER_RECV` firmware to the **Master** chip of the `esp-crab` device. Its functions include: + +* Receiving Wi-Fi packets from `SLAVE_SEND` via antenna and extracting **CIR data**. +* Receiving CIR data from the `SLAVE_RECV` chip (collected via its antenna). +* Calculating the **amplitude and phase difference** of Wi-Fi CSI and displaying the result. + +#### 2.2 SLAVE_RECV (Slave Receiver) + +Flash the `SLAVE_RECV` firmware to the **Slave** chip of the `esp-crab` device. It supports two modes: + +* Receiving Wi-Fi packets from `SLAVE_SEND` and extracting **CIR data**. +* Transmitting the CIR data to `MASTER_RECV`. + +#### 2.3 SLAVE_SEND (Slave Sender) + +Flash the `SLAVE_SEND` firmware to an extra **ESP32-C5 chip** (e.g., `ESP32-C5-DevkitC-1`). Its function: + +* Transmitting specific Wi-Fi packets. + +## Required Hardware + +### `esp-crab` Device + +#### PCB Overview + +The RF phase synchronization solution must run on the `esp-crab` device. The images below show the front and back of the PCB: + +| No. | Function | +|-----|-----------------------------------| +| 1 | Master external antenna | +| 2 | Master onboard antenna | +| 3 | Slave external antenna | +| 4 | Slave onboard antenna | +| 5 | Master BOOT button | +| 6 | Master ADC button | +| 7 | Slave BOOT button | +| 8 | Master 2.4G antenna switch resistor | +| 9 | Master 5G antenna switch resistor | +| 10 | Slave 5G antenna switch resistor | +| 11 | Slave 2.4G antenna switch resistor | +| 12 | RST button | + +![esp_crab_pcb_front](doc/img/esp_crab_pcb_front.png) +![esp_crab_pcb_back](doc/img/esp_crab_pcb_back.jpg) + +Refer to [ESP-Crab Circuit Diagram Explanation]() for the PCB pin description. + +#### Device Form Factor + +The `esp-crab` device has two casing styles based on mode: + +* Spaceship case for Self-transmit-and-receive mode + ![Alt text](doc/img/shape_style.png) +* Router-style case for Single-transmit-and-dual-receive mode + ![router_shape](doc/img/router_style.png) + +### `ESP32-C5-DevkitC-1` Development Board + +The Single-transmit-and-dual-receive mode requires an `ESP32-C5-DevkitC-1` board as the Wi-Fi sender. + +## How to Use the Example + +### 1. Self-Transmit-and-Receive Mode + +Power the `esp-crab` via Type-C and it will begin operation. It will display CSI amplitude and phase: + +* **Amplitude**: Two curves representing CIR amplitude for -Nsr~0 and 0~Nsr. +* **Phase**: A standard sine curve. The intersection with the red center line represents the CIR phase for 0~Nsr. + +At the same time, `esp-crab` will print received CSI data to the serial port in the following format: +`type,id,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,sig_len,rx_state,len,first_word,data` + +Example: + +``` text +CSI_DATA,3537,1a:00:00:00:00:00,-17,11,159,22,5,8,859517,47,0,234,0,"[14,9,13,...,-11]" +``` + +> **Note:** Upon power-up, the device collects the first 100 Wi-Fi packets to determine the RF reception gain. + +### 2. Single-Transmit-and-Dual-Receive Mode + +In this mode, both the `esp-crab` and the `ESP32-C5-DevkitC-1` need to be powered and placed at a certain distance from each other. +The `esp-crab` will then display the amplitude and phase information of the CSI, and simultaneously print the received `CSI` data to the serial port, as described earlier. diff --git a/esp-crab/README_CN.md b/esp-crab/README_CN.md new file mode 100644 index 0000000..bf242ad --- /dev/null +++ b/esp-crab/README_CN.md @@ -0,0 +1,117 @@ +# 共晶振CSI接收示例 + +* [English Version](./README.md) + +此示例提供了一种 Wifi-CSI 的射频相位同步解决方案,包含三个子项目:MASTER_RECV(主接收端)、SLAVE_RECV(从接收端)、SLAVE_SEND(从发送端)。 +该方案包含两种工作模式:1、自发自收模式;2、单发双收模式 + +## 功能介绍 + +### 1. 自发自收模式 + +在该模式下,两片 ESP32-C5 芯片分别发送和接收信号,通过计算接收 Wi-Fi CSI 信号中的相位信息,可以毫米级地感知射频信号路径中的扰动。同时,通过安装铜片控制射频信号的传输路径,也可以调节感知范围,从而为高精度的近距离 Wi-Fi 感知提供技术支持。这种模式使得 Wi-Fi 信号感知更加精细,适用于近距离和复杂环境中的精确感知应用。 + +![Self-Transmission and Reception Amplitude]() +![Self-Transmission and Reception Phase]() + +#### 1.1 MASTER_RECV(主接收端) + +将 `MASTER_RECV` 固件烧录至 `esp-crab` 设备的 **Master** 芯片,其功能包括: + +* 接收来自 `SLAVE_SEND` 端的 WiFi 数据包,并提取数据中的 **CIR (Channel Impulse Response)** 信息。 +* 基于接收到的 CIR 信息,计算 Wifi-CSI 的 **幅度和相位**,并将结果显示。 + +#### 1.2 SLAVE_SEND(从发送端) + +将 `SLAVE_SEND` 固件烧录至 `esp-crab` 设备的 **Slave** 芯片,其功能包括: + +* 发送特定的wifi数据包。 + +### 2. 单发双收模式 + +此模式下,一片 ESP32-C5 芯片负责发送信号,而 `esp-crab` 的两片 ESP32-C5 芯片则负责接收信号。通过分散部署发送端和接收端,可以在 **大范围空间** 内实现 Wi-Fi 感知。`esp-crab` 获取的 **共晶振 Wi-Fi CSI 信息** 能够满足前沿研究中的 Wi-Fi 感知性能需求,并且可以直接对接成熟的高级算法,进一步提升无线感知系统的 **精度和应用价值**。该模式为 **大范围、复杂环境下的无线感知和定位** 提供了强大的技术支撑。 + +![Single-Transmission and Dual-Reception Phase]() + +#### 2.1 MASTER_RECV(主接收端) + +将 `MASTER_RECV` 固件烧录至 `esp-crab` 设备的 **Master** 芯片,其功能包括: + +* 通过天线接收来自 `SLAVE_SEND` 的 Wi-Fi 数据包,并提取 **CIR 信息**。 +* 同时接收来自 `SLAVE_RECV` 的 CIR 信息(该信息由从接收端的天线收集)。 +* 计算 Wi-Fi CSI 的 **幅度和相位差值**,并将结果显示。 + +#### 2.2 SLAVE_RECV(从接收端) + +将 `SLAVE_RECV` 固件烧录至 `esp-crab` 设备的 **Slave** 芯片,支持以下两种模式: + +* 通过天线接收来自 `SLAVE_SEND` 的 Wi-Fi 数据包,并提取 **CIR 信息**。 +* 将接收到的 CIR 信息发送到 `MASTER_RECV`。 + +#### 2.3 SLAVE_SEND(从发送端) + +将 `SLAVE_SEND` 固件烧录至额外的 **ESP32-C5 芯片**(例如 `ESP32-C5-DevkitC-1`),其功能包括: + +* 发送特定的 Wi-Fi 数据包。 + +## 所需硬件 + +### `esp-crab` 设备 + +#### PCB介绍 + +射频相位同步解决方案需要运行在 `esp-crab` 设备上,下面的图片显示了PCB的正面和背面。 + +| 序号 | 功能 | +|------|--------------------------| +| 1 | Master 外接天线 | +| 2 | Master 板载天线 | +| 3 | Slave 外接天线 | +| 4 | Slave 板载天线 | +| 5 | Master BOOT 按键 | +| 6 | Master ADC 按键 | +| 7 | Slave BOOT 按键 | +| 8 | Master 2.4G天线切换电阻 | +| 9 | Master 5G天线切换电阻 | +| 10 | Slave 5G天线切换电阻 | +| 11 | Slave 2.4G天线切换电阻 | +| 12 | RST 按键 | + +![esp_crab_pcb_front](doc/img/esp_crab_pcb_front.png) +![esp_crab_pcb_back](doc/img/esp_crab_pcb_back.jpg) + +参考 [ESP-Crab Circuit Diagram Explanation]() 查看PCB的引脚说明。 + +#### 形态介绍 + +`esp-crab` 设备根据功能的不同,具有两种外壳形式, + +* 自发自收模式的飞船外形 +![Alt text](doc/img/shape_style.png) +* 单发双收模式的飞船外形 +![router_shape](doc/img/router_style.png) + +### `ESP32-C5-DevkitC-1`开发板 + +单发双收模式需要一个`ESP32-C5-DevkitC-1`开发板作为wifi发送端。 + +## 如何使用样例 + +### 1. 自发自收模式 + +自发自收模式只要为 `esp-crab` 通过 Type-c 供电,就可以开始工作,`esp-crab` 即会显示CIS的幅度和相位信息。 + +* 幅度信息:两条曲线分别为 -Nsr~0 和 0~Nsr 对应CIR的幅度信息。 +* 相位信息:曲线为标准正弦曲线,曲线与屏幕中心红线的交点为 0~Nsr 对应CIR的相位信息。 + +同时`esp-crab`会在串口打印接收到的 `CSI` 数据,按 `type,id,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,sig_len,rx_state,len,first_word,data` 顺序打印如下所示的数据。 + +```text +CSI_DATA,3537,1a:00:00:00:00:00,-17,11,159,22,5,8,859517,47,0,234,0,"[14,9,13,10,13,11,13,12,17,13,16,14,16,16,16,16,15,18,17,17,17,21,15,20,16,22,17,23,15,25,16,23,17,21,13,25,15,23,14,21,17,24,16,22,16,21,19,20,18,21,17,18,18,20,17,20,17,21,18,19,18,18,20,19,19,15,19,17,21,16,21,16,21,15,22,13,24,14,24,11,23,9,24,9,25,9,25,7,25,9,26,7,26,6,24,5,26,6,26,4,26,3,28,2,28,2,29,2,30,-1,28,-1,24,-3,0,0,0,0,0,0,-6,-28,-7,-28,-5,-28,-7,-28,-6,-28,-9,-26,-9,-26,-10,-27,-12,-27,-10,-24,-10,-23,-11,-25,-13,-24,-16,-22,-17,-25,-16,-22,-20,-21,-19,-20,-18,-23,-17,-19,-18,-16,-21,-19,-19,-17,-19,-17,-23,-18,-21,-17,-22,-13,-22,-13,-23,-14,-24,-14,-23,-12,-24,-14,-23,-13,-25,-12,-24,-11,-28,-12,-24,-11,-25,-10,-27,-10,-25,-12,-26,-10,-26,-10,-26,-12,-29,-11,-27,-12,-25,-11,-23,-13,-22,-12,-20,-14,-21,-13,-20,-13,-18,-11,-14,-13,-16,-11,-13,-11,-12,-10,-11,-11]" +``` + +> 注:上电设备会采集前一百个wifi包来确定wifi射频接收增益。 + +### 2. 单发双收模式 + +单发双收模式要为 `esp-crab` 和 `ESP32-C5-DevkitC-1` 供电,并布置在有一定距离的空间内,`esp-crab` 即会显示CIS的幅度和相位信息。同时`esp-crab`会在串口打印接收到如前文所示的 `CSI` 数据。 diff --git a/esp-crab/doc/ESP-Crab circuit diagram explanation.pdf b/esp-crab/doc/ESP-Crab circuit diagram explanation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..58cb2d7c5c20e6be8d1f8792b7b54db7fb2b9a4a GIT binary patch literal 894574 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

~@KRI%iI#2y}?nGkw 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 ?oxOU;^MM;r zN8n!_VYYBNatdJ^JFrPq6)2*GTJV)^dCl%l?lmefU3L23w|>}}In~#^t7!{gT#RuV zMyY{(*1Rn_#UPM6^NSb!_D><8sK|rA_5hQqGKQhWHvH)*O#JA?+Jm~9g5S67Iv$GipRF!_Hx9jNYdmf!6r{NF_`MyKIx6I-&GlH2cv~EF8ZP>aE zq0(%GGyv;ED$28}?Gt%%!(NdoC6#|8OV>GdKT)YUv?Wp}DMb^K>P9Ka0o9H_j*=ki zZ*LanjO1l`vLe#rBI5GWJSXaPp1s#JIpX*kbYPUA(1*}q*|^y6AF$F6VP}@lzKTIg zU0Wz0*F{5)-i5;V=l20wUtPPCON$DM2DZATL5%ru(-I0uyB}fdaCEx90l9b4O2?;5gU6lV5F`~Z7J0; z^xIky#$LP7(1P@nnn8{TCEdDKmCLc z53(FC^xP2P`Nl1vr0~^1KMT)759P652S)6AhI@4w3s``32(CV5A4QPhGE&W@ja>gA z0PyZ`9j_&xAX9v5xnNmbFD+h0DPU#Fcx2eqiEI8F({OYe(PqTrCL+xStn)V-opup` z!FuD2$Fb=Ka46{1t8)NLQu#nE0P(&w>Z#IhaRAa9V3hJMGYgcjWk-ltYWc(V#ej`+ z>CHy6v-p2CtvU*zIzg}w+YDuaG7fPXjcLDc32Rui1PHDF5+hy-CC!dAG$Q$AMCh4l z66l6UXN5cnWBZo26%WhoR>A5tVgfC4Nxp&draP;dR=wrOaHF%=b?81xWdA_S2Z+<# zoKUJW@QsrzK`*l|5=5Z}S<}p(x1QdVGCq%=tzGGF`FXtVYI&OV%~tvOiDO?bb^iX^ z@S}wV-kw~WIDnPII#-+u?*Y+yup>#uDGCf^8=UhD>>5~C=nbn5e^~uB(N3)qVh+7! z{;O)T;5TU46Lrn73`l4ETQADt;4aDm$EJg5)8|b5Iz6w3ir^%TgCwRLrB6pjb71pqPHm&FD@-P+pZmq-7bCmm#05q5W$bqD?~0Ky)s!CAiPSo8KHP zIXH}v8H`q=v5r$>M9B?B%Z)g}W|3Nq(ppG0&Ee~QZscWDd(T`)cF$NSa-)N)id}4Q zj~eYT5S|vn5Z7@oF?Tp6GE*GGsB>TwV8!0qs>`r8LceP74f_NOG-yz7Jq^HDvO~GF z?$8!f*N);h2u-T8|LBDfZTlAYOK}btk}G%Hs-X2BKHMNy5V$k;R7oytW>Qj64B{jS zEQ=Fs(r6>*glzKBw5iTGmx7*SZb52XW8f;d6kY8CJVRe-7X{}PfnVBU;+)1$ZuE%| zUnT+L(>uKNlhTSgSv@h~!5`AnOC7lU>4@Ko|Bue%%csx>izqE?eUfIqgc>G5fcL%d zyvS8bEEJ}>5XQ8$lH|0Up%fb#nWDv;w159Na+YE}rTz19bnhX+-#Yd8$YF>kXH}h|+9K3)EpUGK#bu z>xujNzK`3}GB8X|O!(xT1PO&&`=GAQ%qXg>bG0VoFzKlXMfB$PaU5!Ls0oQ68#|CU zMbLg_-`Cs&5E2=A4o*(wJQ)Ug*GKY1|J2fxN_MBPKsm^+otTB*f3zZk-`)6P(BH=K zDxw#^Jo`vaM2zm#itBX=6*^=Me_6&~(aG->a#r<6OdXPSS<>l>7M>}R5 zPrUKs$ZYBRKEMMMu7_>YP2EgWqw3QHl`(>3E6;`4oO9b zdv=RW?6?PvMux>zh<>%w%dPn3;6QeY^<;%!p$I7u`BdjJUbk^WDRT2Cl;YX)q(Vy4 z&p8OImy2+?mvehaWNAuMW_2RRF_e5xDll<3p?USD>Y7(p(jmJb4-biH3 zx+nh7r1Mes&k0RA@w%WC*{BrRpcKTDS-L4QF4D3M&h$g*_decICEj}^Swhb{`kRK4 z3fSwS{Bp&DEDHvbZz?%r&90Yk{Je+aln-u{amZ#W#NPsqzPxvjsJ51 z-)_?3T-#zu+tgj@_~3MB|1_qID7HqZ^YWB0BZbM9uiCllAe9}>glt@bKCF2h9-myA$IkSKrRWY=noOFLuasq@;c-IFmE2t zrF*HUEqmqG56-+kHEuJ4Rh$m+ga_!ehrZIk0mD6mDJziXUdYx+)q=3e;{W`j@u@nX zDq(}dd8zl?uvxR=;mw_pD3cOaBE~U5?AnNbtb(z$7o1g~OOeeG6WEb+|RsNnA^I4K3N%GW~Y|etzy!T>JwggDE{FB*Av}jl(*WkYCQ^?&2tN z4>~RSsYkx>CBg&8;{^sD=1arV)z4O;haUjzoL|lu#J)#%cdEz#WFNuH#|JE4>8GAW z3Wa*>dR=!D-@n|S9nKZ6xl9IO8tZDWE3H4I7|Hw4t{B6R6k4{Kz7}-&9b*F~L~nmP z3J%f)J}@tBFAfZ~zb|OI;XY@bvMpkDK746o2#|re)&_&~&u9vHTt8RYPZYMR$`9ra zzIC9CPT-L(`c;pDtNT*aT<8f6>DV6m9oW|1{L#!=VcADHnG(m|48msJYq@lqmx8p;2_p8K6Z_6R75_=A>797jFNWK#&7A zpq>5E_2qAxa23w)-M8>AL7ItFaLRN+6YsEhv<;^E89x z^iI;rT0Yi}w-P8?N)#F2Nb5O@srB}Kvp10Advmt=Q~FZb?=*;*O#gKXJZ%FQduau; zG+Z|t;g7B#5S0FS9MW)8?8r32-dqRozd`D5az}48Flt9EH);5K0ZQypa)wTfUEh9r zLqmt-5&ALVz_q>Cs;Y_ifVSTeNEniv!VLZgA6F5SjiA3*$!1ERHpz)BUlhA)yf;|1J{}{l=*z0Bb}B&WjJvqNFB6CuYj# zT+OllJ!b$K)(NRb)+DACPZSik)rdO4;>^k7xWH1k%v#6ATGv7*;I)6t(tev7WAj>Z zG9YE1s9+$0j76*R6q%PG86C3=&oE!Ur=kS^$Yq&Co#TnUfjkG53_mm(?YOJ%sJJk% zOFP1mZ-xvvI)Gx3#}OS78Y-=>AhIp3FTVYiQXXsIURdpNfPx?2pJ=QG<)z=9B(ERx z=}r-zO9?Yhkt*(oCza8zD=oDLFYlJ3WD|up^cBu+$C23wfjw|BIH97KYRemmia+3S;jogro+$NP6$_hLE$A3RL zWbP-ET9UhfG9>z%4*BxH>(R*vgJ^I^Pa7HX|)UT+h6*s+#Z6Wn|}|*t;hd)%$Z1R ziAWfNL^8dMV`6MdN=r*iMI}b!dq$K$hpYqtRI3A#LUZ@oZ`>0uhETCpMq{N`?@Tb1 zulyd|S(m0z?*NYt9cDM-@9#sFUsw=u@z47MlV2NW#UhG0;^VX0%wA&eB2*tlRk%+B zR99`c`+KEqg7m>Cb4TAx2kYjn#i~%~^ioyW(^c4got>prt)({Clfv?pd_Vlo+DFK= ze3DoZn>;DsvKoy7<$XTq1C?9r*f)zW%(D>TB~B7r*lQK-{YRJnG%4ZTD^;i};Y1gr z+ldbzA#y*%y%GM)?CV7de$ZQV5age^RF0(>(8)JXujB2UVFImQrbLxnrxv|>-S?ET zp7twS>0;0>iDTD2Z}i?Ox;~`x|Mq>o-18S87BuI-NZ7gw7^CsO?(UWX(L0u8jtO$3 zxn3~-a>xJR83LPVmixKsaqUs5eZrCZ62qeH`;0Ted9f*Z#qEa5mi*`YJ1TP_`UV&fkQj_=WJcy=o}maD z!}r&Pn0Ay_Nz{bO%V#;EL@Z$L;DYp_uxguqgvN|qb)q|Akr5FAd3Md!)gfKsG}F8= z8Mm;Ol0AlEjy)c4uE(br%rHj&hz}H22KV-+<{7`DUWtnw8uopT==CBqk_fV_>gZb% zj-5s+;OEZK`_8SGE9VHw0R96MR450X=W>-ndh%i6LE@#pbx-sF4PF|VnaL3dM~9xN zzey`iSIjc=FkXbSu<~1zc$#ksBF<|P#rvNaD>O7aG0iwvCz*xCC8YI;ur*%OHVSE0 zLbAS%1|0g#t^jkD1}42u=`iP5#O%|ogDmpm-;Fl8^aMuOe@z=SpUi(UWynp-w<$&> z$t4A8CMB%9kf@AbmAbyB$Fh$n20>Y(pl~SbWtx)3lg_nix12eiPY#Wxp!}<_?KIG{Zv%`EU*0g`)^fwr=k8X63>x_)UZIclK0i7;MUspulk$ke|y7Sot@0M zF}?9~OB^#ZTuW?R2=H}tbq&e=knN%QaIxHkb#zw4Q?U85pmCzd>E0Oh5yu&$-beE4 zZkwx*4CMtok87G9rPf36BXv_4@ph2Zei7nX0p{gi+4SH6(nx;ZhgwBsb2eAF%~v^^ zNH;++HI*bm(o+Fm-qSimSkCAC4zOL&wRf40>=u zbKHJmfxH3Q=*^?4q5a?MsrFH4?J#Md715{d#9im|)E1mPZz+9(@n7QG7T*Xip>-?0 z)@E*>4%SB+({FQcBdeTYK3`ukk?qOjaf9bgk8;&6 z2^p~i9UPXZ_{C4uXL^$iLG5y+dJr7eqwdF>MjnS6e^R~5LQ2SwWUNrclk9{9)JmNx zGqbj}mBl>qF|?D;9g)7U{*?Jc43^I|rxzN+9#cJTL4RR^`I@p?-|jz|JlUB%zwuTt z=`}n&KEN%NS)EdPfHG80gl40=NUG3*dH3?G&VVizyi#Q+jhb5%Jq+KZ35p&i8JU4$ zX;LZi?I>=nrla(Mqq4$&h`M(LLW3*26ax*I)%q#)(i$U=wx-LwUln1wr8c7zN| zJdNW_Y*v;AdYzF*3(`Fi>>;sejn(jo*jQUMGBrw0HSwj;7=#S$Ikq}KE^-6`2n-`= zaY{2Y%2qTr@n$jlbD=0CJ5$nnUlW8FS=s+W&J3GU%>-fOas@kfWrS?s8TcG`j2&aS zFPUJP;7jUlLQJ~9va<7lhnJywjGJM3a$I3?TyBY@IL|U&q%Ap75w6_I5_?CYVie%B zkD}*}d7LNl70~8TFtX$9vN&P*V=4M#ttMRNmOJ97wEWQgC~EuDT-b54f3E$Aqb5P& zLC>qOjv;&bHb&-$i|pLT(-W+=wl)R^MljmkJQp)Fdu=1@TKlZUnHs{;7jwMi*p;1? z+X|=}t#w+f?0EC;nYG(vs^N*Qzdhu2h0l}WPwSI^ngt*Msn_J@c6KqZjQkSG^y13a z{6e9WzD0I7LIL+|DZ!cf?bA0F3^ulyRSRD4g#oIbD5uOa{0D=zNppqM4mlJ7)0q-rV8W{!LNyW!~0CXQ#CXHQ$++#AfcJ z?IR%C`L)9btASjP<$8sAo;$`EmhpduSI%Ia`Ep)k_vQOjXEVd2o~hFk#_`1N)nDD@ zw^}UTtLL3?oH=5ci#B+goCspY6&Vw!)FGN_nvdt_*D4(1Mr8WWpGWE4m#^1t1-I{! z+Q8!qWnEmKRa7_=*`pLiRSNrpn;3LHc)OSmAqoQ2qpkdh1w-AJ#%AgT5d z&U9`o0|ALZ(x85}hfq84jE-yXGansH7#MkTCxi z!N$(c%*C~KY@dwV!a_qcu{FKgV{83=;rTr1Ca(H#ed!iZL;miFKGBiLub0?M>Lz>Z zojPkWlgO|0-um)_!)5Q@g+}#{I?yVEm{M_*XVm4Uwz{y6XmgB&<7!@eDlO!j;L?L! z7Ws+wu|bFJ*>!H zX@Mx^Ry?Dwc?VcR+1Y3UR1sO^Cvg`Wi6RHe@VpXiK;Whc@VL~_)?WWm;pF5L%tHp& z`t*c0-)}yqI?oDN{(*VNJs~xWg^9|p)HV2hTBP)WicU)H`Z)lwi|oQwZoOlwdaL}2 z@MwnZ@Z(=UQKGe9BPQ?N&CE1bRS}3`@(TJJCt9Vz5358*tQP|VDgI87(c*hn^->G5 zlQbVgTpDt&Hg8&FrL!5|KEqx6!LX_r;JujpMMjTrA!Jc0pp zd85a#{~V)XwOc^U>FYeoXEC7l0|Uw1f;nliOX!Xtqxol7KsWb}qot^qYSP6&;Y1txt>T1Hxhln3z@^D@>Ym$Def` z&D3pZ*47&I_GRB8G#qOvA7|_xvi(q=eVHiWBq>WFp%9&C`6a?}0p#$tOdf&^ZfRU> zQWTpBA85d3P0ra;kJT{-@|-#}I}#|hVUk(TuTbPfTL|fjV?g_$9KQ6oWf(T$!jb|- zHLXhP3aY{r*l7eyr;(7}oIU@%QwtqTc{4i2NN5+IfEf4$WswHD9{&41z=~5GH1b34 za5^8*PyI$uPft$X;FP1qLVoWZ9-H$Qz|05;2%Ln=%gcdg%mH%>1DRs+GrA!~zL>=_ zVTD8??P-WOX>?b%!>M0uxwW-2YWFnmb@~*A;($);B5Ce1ZO(O9^d|cNpsMhq+xR-f58Y(mVu=NH1y3#d=0yJIhuQI}wJ-zn=KKVY-r?;zx zT#B4#ti=7(TL#V+23+uH)#&Sn*X-L=`VsFT2up@|2!R(-!_-i4rVRn?NDKG3#l8{n zI!KoUpc*iciNbn{cziPJXmoUSbCZ(LxwyEd6`DN$?P4jvJx<{_Z!}tsG?b4p)3saO z?A$oO{0NQk%I~`!QGyRID<$ZB|HVSH!8?Dw(}2KyWJtjwpHE}q@%XR%C2g5D4(4fr zE7A&vHsgiP=&yIvQLk&kXhbSuGs?S;&U(1kT;z`)I9QJa`t8OQP>9V=+XsceWhT-x zJNXsisCDI;hkwmWmA44gq=zU`+;xf)_W)+IrH`AC+ch)h3T6>L1vC<`=5AP?(AWLkT^@p)87tKcP(j)0*e7#zXjIl{qB zufNza>vM?yYi*Sy%RZdW~vLKiR3u#d$4}%meLrnS@R5!FTYPYj6 z0B+!JA4QXsz(xoq!MVS2#N5yS6NnYSHp0TfLPJv%u)6(gx5>L$F*l+&RBZQlB%-FI zq$Dh_4;YW1;Qajg)4$9iNYCKHkh|&?#eUhp-|Hyw&F*RU?veM7#+KjaIYr=LqKHhvq{Y?E{qb*&rC;)6xoQ4% zQJ=URnB1kQ5^Gy*DO}i53z9Aa0f8qJ#lKE?kbymX4XF&B`S}4=~w6s zEahTYuPKb-8=BQOSlI4p|0X0xmb;aMISn--a1He@tX4Yzete0L3@ko7hKW~h%{17A zWX>m`M8se4pw^L-i>D}x;FW+AYjg9zG zB`%tYUfL9XHN}voX`#o-6{fl&M>|~UBNBW62+0)BL6Q$+Vfz$^huLYLalWW_Y|oXL zICim&)1|GQczLKHPS-C48?iKyq zq{D_??P0MQ!A50Tgg$eN-^-YsGZ4(h60V(%*6`-P>Q#;3yD8*Vk}|;i!EW|b8C6b; zyH$z99=Rfww7a^Evj#q{k2Du{e-2MCE8y6HEwZmbB=poClYw-$T@%wU<#u^G(_Vx{ zA}%E+JtHJ9p|(5a2hGNI@#rsyKPX>FiA{o?2kWBMPXQ`#!q17U-FY&SFHZG@(phJ% zYQ|Dfj`sB?eN-f%r&j8mR-pu46l#lZV(d9a^yatN_YZH(xU{si*jPC=H8n9YF=MNH z(Z0~pji>2Q`k1>m6;)OBDy_lENx4vrVu!a&hnaLYbV7)SaD`ocYpXJXK7uQwIR0C~ zpKbqKB0mfG|LlDG+Qfi5Kx&F`b6m9|-^MF4FL3xY$Op8!2Te82MB|FCE9Au>%e@0s z=NbCfnAyQS@i@Ka8_K^ohf3b^hiNM8*g_1>cZfQjDe=HAUx*1d92Cbax+=P5&1zxX zKDgRlpEx)x{+S9pbXn=z+8RLk-9I`4su16|>q}#I+u_^2c($CqIE_}ww%RmW6C6A&CSF!*H#F4Aa1Jy)DEGouSSZr?&heJme!%bT8!W_r8(y9S#6R{wmpbQP$TUN+2FPE(AO;$~G;nL6 zG5cidD{&X+6ueg?KzXFs3QWcMXs2G6-k5l6+E{Kq;6Qb3^9ybG^f%JT6m7r8y;Q;j zZ?f2;{oi`PP_Y9%FQ~c$N3tfIDQ4&-g`fn`=Klmb(QewM&F#Y_&G+@Azpo!+!MiHi zb8jH zJjrfHp)hMTSwL43)NWWbYHRSL)Qu8n-s_FE67n9{*1YDiW zprub#(a$OgK?zQR<|K7sf8hz2S5GLwOB^f?x*TX{JQ~{TRQHvgpsaiQ7r<3H9U9tGi}7!{RPa6V0T{SP}2 z&e59`NzUORZQ;buHB*9-bGke~H89B_JLZ808;J>`Q03nNp zhPJx83TUz9qjh;NF6XR&IEd<2uXf2m|C3;-?9^?_?e`^5%3toZy7E$ATJU}oFLIFt zOI_s1K!&!o*^@2wwMqoB(6&v!8$V;$xZV9D%EO_qE$<{t^mp)oI9>$eEi9+ z=6Noi%QD#~Mfstg3nV8d{p__4-XOg1{VMA9W zZz4O7e1KL9F#nsrB-5nyy~|~3z{5!R=7iky*##SEadsvp&AXZn3_vQ=J>^1N9Lel% znMA$>a=?&o^xW#iF!mDg1)ofaI)>BC#Br#8V8=%BO}3iO#M&x+mx0SXVN`K8Ey5e z*J+BT8ls2IL-uGGIydl&$p|Tv7UuFxRwQXHGhAWH-N5s~u}x0L?uBwp#?O@;U!`_d zFXSIaXXbyts%-md({P*ToeGMODj->R{E9s^9t=g;FsQaPmgqT>B|RmLkDW!FE^-+m z@1tVW@mFl+iD9;)z~ewH?XtT4pJOks`AM(1iXs{V4EnGVG%0g5OI`6Rc_5GM5MJXd ziyI&L<^OI2#32k+)bh&8x9!i5$LHIlyu7@=zCQEmJl{)ePuF3z5{I9ac#%5iqfhszTWPV6p<;=Wiq+>Qx4KkRT11TpWz}50c!QGEZDg@D82KRKb(#8Zjn4<&MD_cABUONMH+u z0T$Sds1&_VNjV>psSl*8a9~VnDzGw>G#vgP3t}Mzl-9<9x$7~l%iM|)elmAv4krra z>%ac*Lme&!F(v^jXWM|LNLhRqYc2b?zf^U&+A*A@1f5Z`|2)8I?OHqNrctie%pLp=Ym(EB3##{2X{!)j|6UO%Ca=Y5i zuPR6EeDH^X^p8DP2$BjOQI0rLIPP5@eCVxDH~q+92(lXe9!vPd7J&lA2%QnVr_I9z za-jIu0=wLr;Mn_I$wi>IVBc=<#9=qV(=kfVw%yFQRQzY0-?;57*W!^?ewn_4z~#;v zY1LJONmG18(5Mc6>6IyD13fCChk+DSF7^mFb*6?U_i=c52M#uNGf=Al?%d;LTU({) zal6-PKGCK0Ri*T?V=lRs&ZSdeZgg^Qh@EjljDP&sZ>w)@^|yj?taFSl)NI49CZ9J^ znY1vB+CLT+2^4}K%cOD7e>~K4OwfKdK9yruUqhNsY0BAJYpM zbbURu#pu{}p$ANiYQzdlTX;3P`&H^BI z3|!>mtNaj4^rbYlzrLU9Y$7;RXWpriU@r)rd74lR9^|y|iHu$;wQg-~y*>i^sviKq zXudF03bdx#nx)Z7poty7Yo=?&5SqCgbLCxC~1j!U`fx+59h@L8ocCOR~t)RmK-v$2(Ofd9}cCsc}MjsFo#Hls9*+ZZ$$9n zcS$ixfp%mwalxEK64#9dALi7A;r7B}GTQ)SLKJM-LLe>ois@_psZ>S&cbX>}OsNNSJ_Y$Jp) zo9__|bki&C7M(o#6(x$<{rgX0h1|$gK-kUQqkwJxc2l2{!yt&E#U{JnHLISTcFwh$ zBEx3Q>W|^oUhT=0MmV?03 zTeSV;k=(<vBb}uNP1-1fy_VdxyCCqC z{&@|s_~_J3O4`utbt8=8hNn7)6YVEmT*}WOmj?YuY03mICB;@as~ms`X~a>1 zi9Fq99VZT&o1cF)<&a&ly=}=Dp*3&z-THkIPgdPcZ-04l{;r{MZ>BAs`r~?1b>#vc z7e^D~$kZ#_hm7$lTpUPGi2O+*10gE(Hc^LRe%Vt*T)rNf_6B5Dae8M0HPtx(h&!yi zeJ;;VE@_#3UET~F6cd8~R&A0&G2Kvj85FP@sDdFZgV{Ng3CFJ*(mV38D`cx!R7jweH-W&)8JztfJVir_nAG{8_{+N_WvHWzm}399)yR-TO4|{`+)& z`|oRt?ivWoIe+{Pw}QI5tp5mH`@HasVglt{z_)BqPJeAuIYyrltmgI-_IB)bydi2r5@>^g8FvD9#|MlVcQDIvMGo@L}Ln_erF zh+Co!U4DgqAp9w7bit^!c)th<>&I-W!Yz=_$=pfTd~m!A*^U9>2)s_9~YFho{r3U>43301%i?wI1`v zQk~-tShg?f-2MIBO!jnza1oFJz6`JE>lVje0ID?>0h8)*d30txzFya*-{Xm;XuR=; zGjf^rdnV>i1Jf~-`CTO+87Q~?(Mof89R+{^FXl1yCFVQw(sp%ffTw*%<@siJfU4mC zXZLOA<)uArRwaiR7=nD3sYQZ;k1!mGP=LOboZ%9h5&WHW8g`5JyV|n#-uX3Ohl{d* zQ~%LB5&sZ7v%W)L;r5KY1d$ZQ^! zp0ljjoQfiQ>hUQe4UWxBpFMT1d02_torD&e^|Ms8zT9|9iHK#6A@~#mnkz66oS-1*! zVxN4a1t5ho0xLl)e9!MIAYfhG+)3B7JKmf5R1z(~s82@P<9qD?_BZ{MYXLR~NeCm+ zW&Q>7wd*)yAduo)#h4zC#xe_YvW89tT0ve~Dp9MWrt6aZQ4a;R^1Jp=cm0^D3Xztx z^aiqyZ2!mAdw_;pqL?!ofb0f~3lY7e;g+7H){DB;g8CRnhv(I`9yIPec)TDE+iD~`OrPs?j5 z@+9(A`aH46#CL03wkZQ5 zP)pW#BKdP4LxJJvz&;8xjk%^<)z;~tT95Om_1NP2K6@JQv%k%*>8l4@2PNLNjR(&Z z|9vIo^!n+Qsk8Kb^Vjz&T+yBVSJ}{%SgQ*Vqc7{f}l>ItxDsvr$Q=|iQz7&srKyXjsKuIiRW z`Yb1cfmVElZm35OOgCjph(D!bx#t%{P)pQI}wmFTvw<9B*uyEoaWFUmKKT@u~FZ*+%y z#TTollxZiIyD;{;zDn4NoAPz5C(obd`JfLND75)8J;zV`r z`|tz8hc;}?o`l-*=3D_y`eU7( zE-P<6jrY>V>hkW_yM|YtXRtdQh%HJE3e9$3>_puwE~-?Y=DN)uRTr56XzAq0lM3+K^oATxP$MTR-ihuntZVv1e{2&)b#=8R zR4z3cXHN{V!O(ikoW%1B#je3%#(KFB%J#!AYMA8ScT zNp*E~1_lP7P%KzdO0&BIi>m`~bX27|D|Wrn8dbE6PbY6Xm|EQK$aO2q9qDPR{q!^p z*B;tSn{6E}vN8?pOP4gTEuT{hG@$bCmSehYVw59jJt~NnH(YxuvT>l`EfaikB?rS*X3178}`KyS;bk5C}ifL|ji$&b>HmJFq`y01Nzi_$(5XJNzr`PW!ty?NJ*~xPg_r1u_WV_CzuZaBLv;8_lj(<*S^xbz!cb{$oBHpg zQw*C!>fj_k5p_1$(wq=GUy%4ULoOjQLf>WE=3a$&FfLz!H^ZcCkiF)%?C+Ba zm7urk2ox*=?p9jb;he#Xc6|z{{~cMU%K`j7$7#S$O-dROzkXU5!ShWJ z+%Oax9oM@Mv|R*xvZU}YF#AyGVgw_N0fUYCHh%k`2w zE;D6PPL_f4uJ7JFX>i(TewS5Z^57A*qfT(p8f`z zL7sI+;&dOJ>2B}-UYr*JC23RTk;_EVc zG;n**B6eOUGCm;mdH=>dh{kWi41edlhTGcN##>N+w=JdTgAXNy3 zvrUbxRtowX5BVW{qk^35aOi)FbKVo`f1eucAXt>{l{?ot^DoV^gX(XQ>O(oUnDC&e z@LXuY=3kuECjCE68+YQMSrbx>Q9x6!LNK7=G08jLxbA=iFpMDsk*K>=_ta!Y z51vu+)bH6CO)#=}{LQ{V_N~QDz1wcBm07%(*ExDE^f%)Bs>@!|f?K+TSa8kAq_6uL z$7}uj9thtyNBDRXyTm11lcUqx;q+gZE~Mu;s%!yI(*Ir-zeSI?!F)o&5Lj>n#$5oj zZ;qXXl@;X7@e$35&BZC6>oTb&{HI`&=1nKWexjqiy?GFqG1j0_v*`|3(Do;9Qpr)P zN7_1kMS!XC^8`5boY(E!<6;tY%V#)Qj%MX>FOeaZsJ;le4}QAB-^eifo*dRYy@ui+ z#54QER>_qjc)W-5;P;$K{M;{K**VFI2&2UzKUGoT>vmX#+8i!CR9Y)GXjUDJ(vZ98 zY@{9^Py3}WZv;%Rk6CF}D|DO5I_L~I7u3`fIXWv30AZ7>vW|i#zm0CIuV0G{Rk#KH z-hNH*=e$3wC~qA4bLaFQAZoRlwk{Au+c;q~MQ7%NeW5W|Ny)!qT&;PHECDAdz;g9W zbZ2WT$Tz>FgbTu#9+-}WS5jV8Y0~JPwUpizPG+F!qoqZP^CNiSg`vQq&oj&Q(8<#6 zhwNcwZh$G(o-zDD#^@NAw${rs;j$mG$oy#Md{j_1Lp{X{)!=OBxK`MgZPS_PlrDF3 z%iY9gjd_7iT>{rlw3=IUi2`K*t#Fp}0rq2fUw8d&aq~~eXOeHL4ZKXI~3<=Xz^EWL^9qr^srU2i$uWY{P(}%XPGZu=7;2jIz=28L$3>%GvLO z>4SX$Py8<=DvcC}3WG&-fb*(;vWiz*FYoUTj|Q)fjLhU_xKoHyJ`k(3_oXY*w*TH@uMJmqmy$BYA%Kv;&BsLsBS#gHbVLbCt66=FRdMR zwYIH~PU6zdw3CVj=xl99SshxpRW-3vvg&y#|1FGCFB&^OrL8nI+5d1{zbjf}xZQBm z`0E}#VG&!phQ`;TlWG(t5e!oLr1}{hKjRPf3Oecf)=p2h=3mu*9&bkx19g2}pf|ve z)<-Wl5UM;acQ|D7y}H^w%+Lrd338{hLyC@zkDr?5Qm$YBW9}ZVHcjTPE1|*-h5p+V z?m+AV56lv=j^OvHkdQwGmM$zA)HCYi zHNG0YgPSj=K8nWxVASkU<|f{IQh4{R!zq-JP_N@1vopyJ-x# z;mAjQQpKm|NZX-5l5fqvh-^cHv&R>w*^OQ0=uhM99eK*&BrozR?*@rik@wgUZ}d?ft8WI)#Jwd)X9AWL_{k~OSh&iLqkKVqOMzi zKJFy^{w+*RP3_|10>r(&{prW0L%DgiP43JyigLf>Y^Cqp&evRLi}J&BibUS+J{#1Q zxRQU&5Kg6gXC%6vgolvVJ=q|zgw(W^?CS2g2>PW1Ghxm|hVGrmC$Fg*(+;i|hx{ke zLcTX5`CPB{ZX947Cd|=&_>kAppBSV2&?B|AwMmPB@!cDiIu$V${-@@xBbW=GQ^OD4 z-VM+V_#Y^z1F7htSmQux?bD+ixK@7vsRb$BEa64BZ>J(y)7EF~GKlP}ZFc0QM;|-T zRVa*3DL#=n?8F1FI1Ft(9Y$UO^|0tHTz1Vd@jv_w8#XXN6_Uo5g=~Tlh0IhNLTX3p z>s$yHrKJ#oB?i#>YHJZBm!-1}nIMc~mO;H2#$SZt#JJPO-2t=3v%H2jb=GC1nZ zr5rcRu+;f}jrM`zVV1BT&R(Jm3pIu_4oO%SZ48MX&R5`1kljzBe+kbYS_FG0?~98I zm>LcSVirZ+ZHP=6(D44OIlP^Zq;NStJD(>%OJt@@UN>FVue6W-n}-W(Ri@2MN}Ah? z+uV|bODbwBTZqwWTe&Rv{HJ}ggqt!mzqIyx<|1!vxPHA5YtUU~bLilE+g{r`FgHWi zW(pjSNLh?gX7?b1Dxt8x!?2!(Ds%5lUvdZhwU8q6p?J4JM(BAO*gJllVDWQ;?Hup; zJes4wK*S8zjjlsSYl&XnZauG+yrF0brwOYCjZ_)qy{@W;815S8;=Q9SaWbH2IWt-@TsNeXw~< zfau3`Spuo{H-#9r{_6lqWVAq0I;%nhJhm_|%|Ui zQbnR~%_ZwE4LM@x{5Rvus&JQC4hhDou4@|Mrun$t;_(_IKy*j4M(o17qtzFB(0|-= zu0uvT<+xFc$eyDQur3R>T(Y~Y9DH8|?<^87^DOE6$WYUT4$g+ov;NTx7AP2K|Lw{L=O5i3h2`tuu{c}PUdNM{V#|00z{WopXZM>Xn zyBud4)cP2zE!+JV?Be~4lKAH4rl$}DTzuFpd-H{fwb{i?yCZ2AZ`Y|US*NCH@Q&g2 z*Lf@Z>mdl?&WA2bU&!L1emYpbZtJu0P*1!L0-{7tHNckzg9A=>_CpV*(mJwQ%!lF4z(A0cJySQPV1_7rj>+^U zaCXk2wEa0b5|*9|hR%KH(nwtr)?%i=<&&yLdYbu%e%V?`@3GjZ?HJt`_ShIdLLZDT zVz9ox$So4fOxnkY9a2H0wS9zc48+d6(lp&Q5&zSIB>dlDIPr9wMpWpfz7tVqi&B6y z({4?y@wAvMSBheye{~!jW)C(ohsunIue333sfQgL%(P@{w7B&= zM-glFCZsHZcPHpF#u!h#Qy9$D0-Olq)?xRrP*eb=jW}^B`_Pojl`rHUgR^`T_uM)U zNeV%je2iozgp`(Cvz!F!w`nXN#qC3ji(>Ihrs6k632>QL-tK$eyAJ)xT&fN>mxx&L zuT5&!q9>RlMtrd{R6e;-Q1AKP<)TwroGXq>qBWIO9lLFm@G-ZWTxGZy&7m%ThVZo9 zqasDBh4+Dq-G;Pq-I=eRM)D$~&qmBieb`zTz)IoXZ}K<_@5Dx`A9fmBe#9j4_P)B84TsM4h#Wajj{t>zk3N?s>Iik!6tlpd#@`|7CzOnk){OwmGEG zWBE=TOsdBILGo=j@@rHB^$VQc!u5D8eimo|?z7=Dy=&YtD%apP$d9w2Y|*w1KDMFA zajGvO+m_~4ko(h#^%^k5v*<15Q2x5GislETn&gpXA|J|^UOpj$UsCl6(|4V zS>f>^D+F@7Q)d?s$1Wq~DAA7o<>l_A9)6ZVZ)PFz!;YDl9{Q-gI#r%{Ig zj;F{UHo<^wGPKWPa&quicraNB1v&p~&-rnDJPuwoRmSdQgPimJs;zP6kt#AHOnpwt zEhe0ipR|x9$n_HCGSrA)Cm`tVxjFT(e^}qGf2k7+jeS^Pgk1I8Iv4;1J#@E+MWCUz zNd5+lUhq2$rn)aolz&j;^s}SmwVW0Mxj^nmwmNOXib2$-(yh{)c0dorJbF$3bj@;x zOdB?PQ)jztfVhLb@9IvxAcY_uRl7af!#87u>87*#`Q>sA=)}5T?(Zm!}1GI??XC65+$Ll!i-E`$vOx{x( zYR|=`d-79}^ZEPHUvZ<&=NOZib>nk}&K2nhfidI?ZwFt;lR@(xzxaH)m%u?JoEto! z1B(e31aphw#M|q~YQf-KmMA{aq2;aP2vNs05?$Q3tP=&aESiwSBUO0_ z6~P#V;n$eVh9MqWBVzqm`!47z-(U$RquS__8row@Dqk96e7@H*eY&=YC!xBA8q^x3 zJ6$naGVVnQHdx849(gg`OBiQNP<{EK+y2A8zX$}ViM3jGA|id;gRy+PyZ}+`sfWVG z-ky<;uKi6O@Ru6u4rRIkE_i{j2nf66@Vfn*n^Om_4n;*x^Pv_|rsax3uT+iy(jvQh zPn;rWT0W4mw{GOS4iPnDIzRLCE@Ti3dR#0)7d%%*R0&w(fr%_mXEsa`$qn#eITU*T zd4Qk_6(oO}>%DCS-aD{CK((3HNR!-1X}?lQq7X|u@jvMk->(DrR55c#Xzb(#@RjvO zV4**@4>e2;xEDOwm!{T5bvSa+svAz9a87-ZNWU9kGKRHn0px%!n396@*gFH2ZElRF z;1d3@kMO(OIxzc)vEJ@9U{NsAoEb1n^iQAyI$Tb^X>>3_$|gL)A6M(8hvLhfWTfjO zp5;;fP$D@dybtWe(NBc7YA&?>6rkWIY@{&PiTGEO>ew1uwm-lGUb9HB3kNL$jqK;H zaq9sq6HL{mIZ?nB>rh4fVB7nh1nCiH*k)Js>NK{o#H*=AyjKcY6Rt*A+x3=wZzNYy z^xEz%34X&*JFe^M;QY z>v-E|V*T{shzL;jV7k+7)^*&l=9~rU8rn%+6ptBx^Mv8_K5U7m-$hypuKZe!kC1@< zfdZpLhnkkh;T`h9vwX@Kr$M{67wz+Km8AL{>M5C^U%B;(uwPH2y6@M0X_@sITQ9|$ zJ;AO-eYRPIah!uHMH8iUsEuEn3}(*1-7ICC=M#)&(cJz;PfJb^8M@shYBa%0=tJ~~ zUbvJ2F_-{d0(c^_S>V`&1A8-*&97xCUm=RVmfyCn^O*QCQL^r*TW+u;%?PDC5L4*X z`VLVl^67huofLm$w62N3qB7`$n#Aa?kAjWxUa(K>rGzEigZz)!Nc-pKIcaIys;bv_ zr@A{35(&t^k&%R7zh1hn0WGH?c0t!b0P>InYO@!4_4QXLOAU8-ckk}-b7_hY3~a4E z4DJ26#hoovO8VB9Aw~?HU5xD(Ofy4lU7v9)q?S7t2EXSVc__t2DoG^W28tQw_@^JY zP@hW7$(;+hdh zPkK*+n7AehFtsJj^?u|8y=19sltzKmc*l&x`&ZcuO+EA##|%~Hbk+wet1@08p(3=~+cJG>|-rd81)T9#=ppzI2J*9b zVWzx<6Ur``IWe0OxMSZPbf>um4d{oAx-DNnQ#1J{xh<2glqe?SwjF~GtKL3^$$r}#8-9RXMEFV`>~ zREVE&VqsfvD@GcXaER4EDVdKO+iTM!NQs*meB8F9rMiL9prwK=}+fxoiBvF_ut4asPJUh}bKN<%QK=|!MP<^JN}?7*G;bTtJ= zuUT2==Utw|ajOccVRht(>!lD#8dl5Xpq+I|tI0{HU6NDD>C{`>V6<>NJtVp(>tPUb zpYu13Pj`!J=n)d0X}G2^iTL|VH@YN`Pe7K)$YA5?=x9(-~P81jF& zI#86ZxjenP^&Tus3*#Hf`++u#|$%MJpe0x6cnHH6|cx#JXK#<0U!IgVW zl6o!ej6bI%iM9SUJ_>Di;yjw*f!psxm;Q9y@xnXvLD_fH=CyQ^5jUlJxR#6lbO z$I+brUG0~7&&w6n1F|J|O$OCZ7dx{F2^t%@pjjPIM7Ri%dcJIB5^`aF=GKUWFvQi( zP5O(9f`Wprt!!^SFO1~OF6mMA0PV3a_QtgvYOG{}Pv-Eh8 zN{c9i#ArxuP+PvMO~T4$DsuiI(EjaP22tkb&h0(K{d*WsfLF? zqqc)1e?p+4GOheKNcpM9dh9-%m=|1ttbf3kEK&mMNr-|22eWtkVl|IN1pR@7#$vGB z_Irt!rj_|vmac*>A2oeCbu!6QQGV!p6+k{#vx9O0z^W$(GL$Sipca7sRN?K z2?_eDXXL>t0xCOTy3*f$}luR~nrR8B;(-weSyudp;}Pv2TmOx34{6kKx2O;`rbq(!-vop2JY zcFZJ+{s(WrW0fIi+Tld{XmgqlLhb{v>sXzE`ITVS0Q)swd zl!`|yT&R3udtpoVF-W1A72QuSk1IXvZgy$1 z!rxLH1+WRKv#8=g%1!|G1?Pv?p0=qXy40J*oKcJTYinAOm5^ zA?zW8YuUVlSGlcy%HQ@lTkoQ0VBp6=q9!Mw1fZQ`RnPm|^IC_;{&=>%we{okYXLPX z8t{Zg5(lAr&>`OoWI{Io^aliVsP3#|0$RZlIKUQVb@c_(A2yW_dRN{7tUCdT^@52` zKY={eR@UhpImqlU%pg}iC;%%Vh7duT$tbZVqQisC}e$FyupviRlIyodFp74;l1ZQ82 zbSR(BnvoQJ8%BbSOn*IlnBet=(?WVhc?`wM`2hW$BuDzI4If+*=)>z2lO=`2uC!bzpAOO^8NY$9JsDm%Zlqa(5K$p%vY_x1#v- zm{}Kgud)}RG@bA7m$vNkFI-8(dP@RD=-^;)CS;BiBda08jatp-yIez~klmFLycG}4 zOaL65d0)N_MdPEjacT0NkhOd(-WRqyRRR=*Uz>8CE2EMni@CE{mfabzANoHp7^)fi zO=~i*)(B3C%q1*TOsrLO-#ly9sCz)&E8Ek}VD0vj}{n%6pRljAY3e6#gXh8xnN(;;!GeKOtx)WxBDZ> z=xbw+q+H*!XdOCKZr?742ZR3r#F*SK+@5f5$WtV;l^<-hORw1oX)+}xAgimZ(c;OBgU5Tk- zIuw0QUrwBfce{BF|D^yq5W#PcDw+iPpf8_uLFv}QwD6U&FzG9kb}Q$^KQ|)Ri9dR= zT_*5=8TKzDBl|8Y5VFAK3ELj#ScRmF_obD!!=YD_ifq$c7cWUEGhg|7&*ASz z7G|)W<$;mpBsJEYYt+0gf#}zC3<&kbbs=}pcG$hCtf2LJRFz-ZuUfZAaCbt=`@lv{ z-)qiXp5Vj4icWcYHhNayC8MEh8PlDc?)*pwUwe&ZV^);4P{za66P^sLwLeZwdU$$B zb(1ojO0-?b6PUja4rn&yV`w2Y0 zOF?o2%iBmQVBi6$;|B0~JPUj&2GavyG#(9Tgqv}wjS z|KY19_{_dTy#;CTCWq4z zE+>Q|F}jyoC0gu4UHAaA<(2Y+tyNXZPaU-ax;H{=^3EoF3clh(YN=ncbezt_kr@ z50ikM!q~i%r3ag@1V}Cg*>bh?m%sDp+qDK4GJ`emWvA9^Hl{ECzK;*h@Uk@2Uiscv z2<6Uawx4A*YRYZ!G4vHvO&mykeUtmhN;jZ0F(o{+&V)WRis zfC4tZJ|GAiJkSRv!@c@taC;~7I4K%^LhrcJ#`ja}`+RvVvh3?P=s6qWPP4D^v7p@h zOUtE#L&*_bc1a0$mQj2(A%+>MFy!u>&AzJFG;U}6I+A0r)^>rZKkzF9!^y!^!Q!tP zT@RxQE=?i_#Rit!3#7#xA{Fij@zB2kNz z=>m&0J~&v?+1aVcH~XJ1Mf7kMbbF-kv!^2F(CJv2O) z#P^C;;+zf$z)WS1mYYw4NA!*F?xo` z!b*)jAI(J7YZBSe$}KX?-|rxEO0`V)L7bL-n+}Jeg)ZO;4XxZ2WpnO*I^066Cd&T| z9DE;ZEIm>2qHY%BRiVvI{f>wp6m3qhVWJKL7&}z)h!F<{&|gJ0I>%k|(}hWtfL!yC z^#@cA04Vv(SeZM^u2v60PUnLb_XlKZx(D)8f#1YBVRB9fDpgmeJ1&`DY`BsXy{1q8 z3T*}yk7{!$ih2D^C5a69+=pnAC){F%BU5g|tA~VOUzHYg;L6HYfJ8b;n21i&dmjUM z1Fc0Jxz);xFbl-9QKTbP_0}X8sVq-(JY>^7MHam5*&TAx)}v zD?Ss<`-X5WKb}N*wk%P9)o56`Q*PEpOYy8^JJ>M3@6X}Z&ExYt7aiufa^_)~q_5^Y zq*Z#*Ce~}9HRej9@Rb&1e5&Cd)u+EKP}QVR^?bG->v;C|JmFJHwl3Jd(pceLW2zOE z)tpt+<}cwsoVL%rA#mvDv*TOgvE?Ta>$%U8lf{=Qnm-(>AXqF|_SY?ix4j)gnr&~> zg3hex@T)gJAq>rh1_v!$F-^;L9iIC-fjBmSO{X4hjiHPO4-3yJ_ett3UL)g#XhvV5 zUW?3pYNMa>Kt>&t8L!9;PlUB$PMKZTbTihw1a@0stzW(5(KaeFwq|*wsJ>vQUlw&(m&cUvuYB_;l!o4`~`j*rJV|+{sLzoU8Jt@Vyn&<*8%8F(| z|9g?O(2};;o-@rDp7_JR2LVAtBY#<-uT-ns!*DX%bb+N59HL}nDC(Rfh!!pQUz3(v zn#?B+j`%h7Z}Be7QI&ay{>!sTM^O2lcFN?r}|N{XSjzPZ?}kpnIiA zH2`fHgRk!A4BCOFBagkx;Nw?Y>AGoHt{$a~*QEhX`U?*mxACM;W{wSP_g6`j58K45 zSoP@o-Ai-xw?KE4F)ce0)96Z_xURMB4$AkwYQ4S0RyQdw1H-{pXgccpI^iFK?Ly~y z=Sr&h-hJ;kXN1UvemvdW=bQtxpanM`h)%SZe4f(~JfCW;u*-W?-@j}7`)pT%A8rqN zwnlpt+XwuwwKya>Ultx-GN(fkVh#I*=D1ctv5W@QZGoy3F;7P9%+{t(;m zTwzKQBmRb)Ud!Z7v;}7p-Ubmh{<-z_^|6M+-s^!RZd{0E^2l8Z1zK>+cW|q;2Y&DS zQ+p|epe&}hYA2PGS@kMRk_Wg!MwdD7gps)TRrtu^RBf!z;QTV2X;F>WPC^n zySpPPhlhv2lE$>J(@*`;56R=iIZRpW@JrK}FjKd`x|BrSOaZPShe;Ah)Pjy`^u%Zj z8n#Bldb^8uwT{GgTMw>t)N@TP`AM5e_6CFBFn3l6fUq9`3qL-5w*F7rP{*)|EPO#E z7UBK(_~9NRIUVEac*X_ z)CFBOe2As{ZT_}{49JpF=Fa8Sqb}jn4@c2grs9{eiC!mJSIWq-v$8rVY+}U48RQx9 zOV7r~Phb{J5BSfc8`SfW24WJ4QZ%lh*$e;DiQEShz0N;b_qE0L6h z5xGN9+#|=^ZRQLRU@^`kYVh#CNB<27dhI2e*JHy)FNV;BHBce8d44{#fsH1%`dRvg zLVYd7ATK7DFW5kk(vbtQ1+~TW>WjZBSOcH>724t=7%=d&z8PUqCImlIVL!uzRTn=L zU&C0S;lPD~_Zfe|9rtw`0AR;2U=zfBFiS&26U7J?J^e%zQ5s~RhD|~U*~%+zCOSP7 z?yWEvrbP`8g%XsZq_e5nizc?QY9YFBZ!Mktf&23<|8F~@=Lbwj@-29cHYiqq8LD)I zirVM=TZ*SMKD1fGHoxbo$335Hr@uh_)x&DmU}V5_L}k!jWZkxg-L{SwSjbDh+$Wj; z;t&4%@$IJuQ44Mszgyeu;+!OrjDt97r>vZ9_Ni+)fne-ISL$-;Gv2vUXS=1sOm-W3 zjhLVB3Yz|{VvgYJ?d5HUC8J_Zkr3~x?|a8t5`x+IDlozI{fy$lbNVU;G32E{_Qqz_PnATmGsKI8q&B>#(p zV^G?G&@R-VuehbkRHA9fOjCAycN>Q9{dl!|QIZn7arP_y<_PbVQFBiV=Ux)h4Ob5g z-unMi&_(hZ&3|SlS|{!KZaR7-f=*56=c%N(Kh zx3j-v#YE8teE*VGRYOo;VdqZ0kM+E$6|DUe!^>L`nnc0-^7QykrovOrKTJ*3?NmKd zI13BUoxgPWVq^CPV#W??YG|0;?*K^U@$Pg5A7%ttf}5I{SXBTG`$#w=s)esr$&m~>{H93s3u4J_?2F=$ ztyrsYiu*J-qL7^+Wi^9yuDqYhpZR$cWN@?*#+*;>Zf=ID^9TU?f2%TGzM9`9G$GpG ze=B9zKIb|}-d+dlCwi>2XHe-k$J@`$4=<`X3fMn&m4pdFW`b@5Ouu0tb6emQ zPq|TY4>l-faQ;|^&VDp`DBD6C3J##c$ee`O#ngY0I27oH%j%l~Gr1Dz0yDM^=}>V< zV{_o+uYfL1r_dzN+-uy3eA<`QQfTeHNg-U2>6S-k?XnYZ&U6R?vgAFvmUbG|SgL?2 z_@q!hxiTnbwmOQBPy%jM~1r|NM|DJwcc-0jXdYE z;dJA>a-DKM&e_!Q_hergHHFRf8l|p`p3R|b_PBD!Pbv>I!3^$c*StNkKJKoUb8+nX zE93A>;xce}m-d{1hZG`dPLu?ilB@Y2C)=m(^ShO)BWqQlJ0H%jKVk*Ku#PHipjU}keYmq1n|F#M zEWN%lAH{bf^|sedxSA<%lYtaYA2d1lm5cH<-?N=j04aDM)7DE{-Jz~jx~ z3~=6|3M1>_z?7+KRgsaN4seT6fzSfXz(i7WI9PyZ|JcC&!jN(=3IUb_(!-O;l+meuQ+s0ElKraDM=TvG6FpXl-m#N| zPp7JqA`Gx~z{0-IJZeNa!iYeK!!MoW>1%xiD`yql!>iRY82cDW^0zIV#jw-37F&dE z-vKYCtR@47YFrjw;Ygn)I6ePLnWo5@Fug(IK4kL$nGQqYX2$5!hzC-afvnis|6ZFRA-fC0%Lo5d= zHbbo?7yD-D{RQw1iSpKBFhIZ?F6ch}C;hv$GUpu2_Y0N z;O#38ngPQpL+w9!M2x^%9uZJ`#}gx(TnR`>cp$SckET^0u{cjm&5~{(6CJKRt@P#+ zKcZBNkvnRZr$7wFs(SnC$qQMIK~kEs;-!?;4OF!|V6;aEyPv0^KR#;7LX=}epzoCX zCUZaH(WIHul|_%nlj)(VMr=dyUYBez!9v z&u8V4>0gF3`U77SrYu(2OrF#lOf-;f6voW1oDAOC*_83&eCaMA!+iDnj-+*7Gs;&J zIn3{m`#CL&ggGsC=e&oDZi~6cao<9Joh@uvs~^psd_#+9WOqibMI0KU=kusJ7GD^N z)#P30_q)wIUdkxgUm@ngsrn-xqr1C)KSjz0&S(wgm;W{TRlx!W1oh(3pl%YCpkP;H z_m6?$`r=Bv#UU#$Zt~{@w0~HRr>D2&nP94lt4eZXgeKfc%UDD4vSzO6 zTM^A_zb1rdKlv9eg(Aow1V=-H8|nR2M3d=EDI;)fZ;g`G*ZUe+P2X7rak}iFFc9F# zqTJob>kzW>k(WDqD~t}7p8owy3iDwESf@b1tuF68%uIL!5ghs?0WxL%d`k8Rlk2GA zxB(oq>)0-9iWzo}wEXuw7q|G-I)=A3T8DJ<3jW-& z(uTmj(!S#NBPrr;o{}4Z8$~5J1S0qSWMcEt7)cVws#wGnH@$L%Ls_e`H#@Ip{Mci_ zVIlfuCe~R|$oZe6dF{(q4MbPOc4k+t$Z{-uVEoU}`{?bT=y9-62RxGjw<7dp~=xZ+&}y@OxNmt}~80 zKLL$Zv0SwUAxSC+_p3A6+(2FcwmIqhJWqbL@8X>?(t{D^0uk1^`-y$!^kaIxT-L)7 zYfp5VKi0D{?{wCIOYS8x)u$0a3GmH?3;oVg1|1tY`C*3mthgC z`>z$ZwksWYycTrE+sBwg9C2Tdk0v*P>v4SdmJnNGT<$1}zrKyhz$d9cqQb3@?A=9P zFDILFyl__CwL{W<15*Y{p)?UYJ^}LVu(&D|>2haZ39g4zMlt+t^#`@YLw}7|B(TIj zao7KUAb$SL*Ecw5!-=sa#6iJ0;avzC7|NIj;rr3aA^oj(IP#y9w5*%v*|9p|G9QT_WEmkQ9CArVd;ljlMNgSy`3$`i=SV`!hPQUEb=VFv? z2~fg*s0=#)p-=UE^{1Hsd}qhki;3QdHf{2@F53E{?;t(%1oM8h=N7m z9Dk7{K9&{HO!R0s)0~Ls0_XM?t^0t5n)>Iu0(@uZGf*mk{nf;VT|n3)*JOfDmAj)T zAuBCKFX8l-Wy`A?^kF%L+x({(wVk(_*XTOoJXy#8aLABa>z^(HO1 zGRoP`^e38eI-Rc6qEk3?)rs9ErNbVP($5>67Wc~Z^o7Ba@Uk*ygC{`l7T)b9x}h0& z8{~bao~5))*Elre-+nJCE|%4&z^(*z55cTBTf<2#&=G(RzrQ^*_4d9; zubO+oB0+#Hg3W&h6svZm*Uj{Hb~$tjo?GHGzFsCP(3@^o=OUGRK%5shTO>ZD$P}m& z%e3(2lpbwO|4d*L&G_b~*gphgw|>ms#smxn z`Q9eWg?SU)9bhP#oNCgZ-t?n17fOu3?>MWkmYqUf7np|AAA$D4%z}{5!a^pro!k|Q zg9x~eqqBLP`X5oEZl#mu%UHj0ZQ*%HsY0Q8L^vpsLsp@rea=wc!vDq10A!dR_))Ir z>qwDjEQbi^g!MK4_0OYrBJJ46TzNmWGiJJ#+BrDdKPuT*3ypl#<1#j}urM(;H`z$# zw!Ox5$lddmHwZ!<_2rv}Q0?AGG+>kZ_iL`g)^hT0lBP=SzJ7f@nn3&-Mz-$p(JSw7 zV?~A>!??7)Vn;=+LO%3JbARWYfdAVaX3|cjArFOm&(+0S^1JbErj<&y7d{wS`d`MS zF}0cDO70blk=nWOTtCzJ;)%Xx`8frRV@+ECjR-fdU?iXYjQKw#3xOyAv6V!W5Q34z z-sMGxUK8(huM9TLvWtIG=^#5%g0JB-q`cZ5x}j9v<}mnua$1PCO!a&ZN9(Mm{tSOSyENYkaaX9~k;i2!M&+3kR}f$H_8uP6S){WHa>>bB6`vtGr`#u)D=6qK<}!*DEe)7{7lr{GX4J+g^X9{i+mcg zTX8t-Kkxg2j$XI!N@h3stZqHAL`N5vN&T=%B2EcBB=+pO#-xCwTcz8kOb8~a*!2QX5@3+Ud-sUe7 zvigH$eTTWI1LmEFoSb6kWBH~v0(@h4nQ~g^*uFuO3FISWA9e{ zDUlU(IbL&!*tEA|Y~`tmDk^ezsF`~VautADDhT2Euu846^MWAr?;0Oju2z&ngfMdHL>p&!6n% zjD4@hj{G8D-BcIoiT{hUDTvO78L=y-hA}s#Y2;c?{RC?&Z@fGbzK+Foj_^Z*tJLme zgB2Ah#0>%sSUb&;+7K`4DU5Pd1zwWF{#DvC%xfvtabzE>h>o?Br^7ZXY*SftnVy#$ zaSDr$r47GH`A&RkTq0!UGD~g9GB3g%NE9H)r?2@LWBSF!;`UK8fEowUn`E@Y4hnbL zU>Mb}cZS>a>E`w7s=1SwGs4zxnKX?x>+>5DR`(<@3;vg#1z?D-&HuR3x7aCB%|&^x ze6pcQ?i(Q$3{k|NwzN%u(DGSRz6d)wSZHBeSP;6qTa*CNVi|{ur#ldL`rA*0T7;dQ z+%C_LrBPbke+>HSd__`lzpDRBcPeDl*%L3NqY6F;c+@y3;?ww???jS*E#X#}1JP(kESZ8^$rh+aCLt_ z@tj>yErycNl-F%q{K@2swME1@BJHF09OChXlDdWaj&EK+b4?}|Cax{%FyKx3h=pj>Oz^3-?*|AAC|@~=PX431b^ zk%1RKn1bC@PxaP6W-Vu>Y(_}S?vThP-}*@DRF0#n<$QOZ47@mTI>CH40eX~~j)e;` zW&}3-8723Xn)Gag9_LM-E@SBRiY&@!Dl#)N<|_4X+`tCe;SgXnqd-y@FyukQsrl`j zP~_~ZU$;`oZDK5{t21H^1j~O2sW7t(YpCa|{S{$*KSuk#)m>=wLE5?b$2?KoFkTRHFO{=2s%Hxc5h z6s48LV_6Tx36+(V-E&GSDJkjcd5>oZgke)if{(i}j3h~$pEzMS3q)?{Olcb?xr4@1 zN}V0czrS{^GbU`Q5|-yz%nqPVdUDtyVI zys4{CvfW~^X#$!R2h)dQs3uAJ%|YG$3`?QlxIdpCQ-(jyzV2xE$5P)BOo%0-@yKK? z8(Sx;E|zuT6y9^fW=8~3-6Xo2nP!wJBs=i1ZwDp*NG z-%?wXBLOj02l0EUu+WjLXkH@ni`a!*sA~FSEV^o1$ z{3$J!*AJ8;#&ty-IqKxL-7ZANb|8p_apP}eC}q@nE+MlM^11J_P6(qb!o_rT-}w9( zXfqpEYiEkmc4AM=sFMjODyr+>kkeN4>yfPi zjyGEwES-FQ0;#pW^c{aSXbe#ukYhou+xH%rq&IqR6aYLny=6;*sB~Oi-<1R_v zQE|1rD~C3%XKMx*ZDdEEs%u3=p|yQ)Ikm?jI%A`vqLa`6L^l@ey!~*Omi00h5KTN2 zV`4Lj1cY6*KlVHgaI`e9QZ?QteslIJ-EvT#uSSH2D#6K}YuGqa4m@UUSIhoZEf<=a zRx;5QvNABNwh%4_QY(v#YZ$1>t4@w+ZfsI!3e7ae3LZthyI)jeyPF{om4lZl*FvO^ z4fCn;O$hR>$qJ=a5!}k}Y-h)|by1UiC{zP+e-CrImK6x$i(NsthkWGT1iv4O(35~Q zrZO*w=q>MpGUnXbS{O@6>nB0UXY$yK8z2te29H($OM2g%t-=sjo43qVtlF zNb0y#f6o0WhNgCNaI>O@;6;WBZ36$X&`STd0ZdiD(&)shiY%!)2F+FZcvc`iOsH0& z#=Y3vuf88nUYYN;pc1!rP!z&AnkghJBZDeB_m8Klyd2}ixd$=5v~wA`-opxevD2Y*JU= zQu#zo9YavQP$KrvKr3{rn!30dsjM~9%+HxdGUwP5KIzLOsf!g@+a($QwZ0py$ygAY ztSdVFTO?JJZ1eQ&9Z zX~=d|&G=f_IHK!YP8>w_@jJ;wp5&T8c&QC~_Omu^5s#>>t-Vf?d=-+3GMMGQZ%BfV zaWcx*mL$raRtzbm0OdOSf6|-XprN<|XsRT~%1`7msfm}MEYghU5aCxHEG^;qDJ5(h zcp}?{tf4z#Pfu(I!={#0Br9!5!BRU{(ghawYj74OKzoCyhw%L@vpPAW<3m=}%( zNi-qsBK+Eg>+`!&q0-fAQwx*S!6D4biIZZe;OF6gQ`MiPb5^l%0(hCoZ3e_YN)cS< z0WN-`L{w}l+{3G?z8yTS|8bkpK&(2e&t*A=3z;;tqC4CuR6CMDwWm9DTC+*pHPV-b z1WwKO$d0R>V~ZX_A={<@3WysWIe^94Eyp<3CX^@vbi4m!WKtH3_YXWN$Xuy1`a za?B7DL)2iuxV^b4bpZbI#0QhSzR9-UYr#ykE0Nfj2t2h%dRY+$G4 zf?4feH}Kt=fvP69n#?#(Tl3tKK)5=@eZy}G8lhfjI8g0wP_(|*(N$E{c`74tynt}! z_akW(vrr2J3P|Xu=8s9l_6x+pKb#g7$!i)^s$e(5mzJQs4_J7MV zemEsu!9#Q~RfexUm8RfmBzzr~$;kqp!g|o%$gp8k4Zj>J=-j8R1G>JKh3`Zj?VlfF z+wqJjO)rw>)za$O-dIRlhf15*+xvZWkwEe)Oy%+3PtVM7alO^kO_g|uhY63V zP^&LPEo`XIkx*_a`z&hQJ-YU`Im7=ByLC%zRK@4^kUk&T2(j>$ho z*!y9;_RXLDf3dV5&a#?}1MVqLW;r@FLqm!>)4_we%*@O=wB-2s_=yRXh5haA?SVKd zDl;!e$JKV2zW>Yf)815ZaB%Pdw*8Y4Hy_x6pZU+NfD!3CqEmdC5xInkA>xo+zl3hL zKl*yqd5#5mb@Chvud?&Y2?KolnnlU(cH}R_!BxW27Gse^6S(_xjYdsoL2&|(Q=(g{ zfQEYS%QdOSK|FJGiA-bxe;EZ0p$r@Ls{oVSL*9JwGh(q%CL%S_%Uxv}#=c`!1JUWa zw|kX_HiMivnRIuiVH>R@v^qmz-%CN_tLY6ugpC zJ3Si#MxV`RpTyHY>VTcYu6&Gj96M=LQhfjq4*l*mPgk`@(9 zklDg!gFHU`ImqwV-w`@^`XWwcOo@)(J>!1B?~wh!wWt`XbK$Bcl761!Q564miGNof z-CKoOLKQq-Hqk+wsP^M$Pg_tj(or=F#dkKEH?hJH1IkF`KnLoK^oLq=s!GG7O4@wr zU(rBqq$C*yre)S#KP}u(bi=Q0;KLeVX zUhaD^w(Y<~3t+bp*QLH+N+@&2r z|Kt>_f1Nx-CE{OJa#-RsDoQ!?bN;tOYuSo(fs*u0jNzxx9WSSIO+`LNPST(PaZ`pC zq=%qt{%zjR!nIsXz}S=P(V>hKxx2S#ZDn1pIr(<}&9q!{6nL2~X1#%s-0{HkzTjc3 zFL}IX?8afqZ|UmL&FP8YBG3?DdPtuB`s_8K-{42J&}@J4yilL*=Vlhb_~!dCFp#_$ zH>j_C3el#$L2l-Ze*=i@qsXsIT4Y($AZO(QtZGn$(rsdVd#yHwYG%Ws6*&!=pa30o zZ2ZP#EY-_St(hm?kWTb+6kCcAr`X?g9Pf4*uR5ot3u+~RRKA82AwW@>d!^M>7g@WL z_&vgWQr>A`7YQTDyClC>TF=g?r|$YV`N2_-vfb9}w0>(PDp}~051;eSP|SFWA%|G| z%f;${-p#49W zk!)?_^-S0J!eBTA6LfPaQoX9Haf(Hm6C#w#6pronSCZNaM2G0T%jFva7qQcrd=Rhr z?I0ZRFt_^Re}AHXzScJo#1psU#hb$jfuM(njcLb*FKIoE5pa3E?1&LLh-~ovp)v%8 zebm(@k%6~2kpWDzqP%=wrIo4a#adUeV--rnBXHg?G7`kWQT>ZruOmPD^?&^kOWg|D zdL8j+zj1AJttj}IwR&`d$$%~UT>hz5H2V{^rs39`qqgrj`VCl8a8isUJ|B!TwzP?A zw*q#aaz4XrW!OEi^YpZd_Y*;#)cK;DsdJIBlEA!vreC4ZLxO8*3VlTzZ+fSY*%1|2 z^4bz>_0&fhUW1B>gLzd#Y)J6#bq+# zb3#EA)aBdZiZI&Px63{3)n(2Ui^vZ+-Hjlnx6mRjISG&S@K14ZfdX$r3)>WL!rLj4 zg$X7i0vXU^eV|(1k%uwO_-A$hYhD7B?Y{A7piEQTdte#5n-x5 z&eI+$!WiaSy{}r|eWg^cdJ|)Z3Kpdan zb^BRDJFy}VbkfI|QIpvkJy*N?(iZw{FY zqj5AD<0ty)>gUDV-JzQGbQfhZkQ7$_Y`Q10fDrCrY-^cODCMFDnBP^@|Lm}DvB%Oe z)LtY<9OMc*T}q?yt>xxpomd&}{&&hU3BZOkQ&YXxWC^uLORV;fh#_vR?fNFjx)5Pb!1$pwS!L#6?rp4dmjvR+OuW#8@`!v3SHsioN*e}n2m(*R$vYs z{ZN$b8N;GDB4mM-5$pcbvu#d~7*aUHz}5meh<~*m`UrxgM*h%+*RrxDjZydpvnBBB zIVjYuHce?Rin!*<;OTS#>InTZLW%Pcz}olO>rrock8Fma`bJCjwZMYQaBsJu{g93I z!O^r1#9y15qUm4Wx7sVonWW;GontNjTCMDMUB7*Ly#~0})z-j_b{2KpfRIZf`Ea|(!pZ?2u?~uias+2 zQ{;Y6f(r9_jGcpVi&cF>R8PqbhJ}qP?&Yvq#f%G7iZ9s&xSIG-gnw{2$bRv?zg!Kt zV&gDj7DQF;@bkb_uU7tDg|t6kVxJfIpkXbh*)p9vs#hRTY;w&vkhuCm41V%2Ec?oR zrzSw`$>ZX=ypZri9@L|}c6h4JckshINfHtg3JMBhb}|D}GBSRLB{}^!`OsAZjNvFE z4xobBSz8MbN*#D4cHRAmtuJCyy-=CuWXf~Kz0c2I~ z1&>RVk-UZJ+ck#uwZ5D`kiBE|aoqG%xfKT=I~3mcNxl;sF}Kxnjxjaub$!b)^_X@T zX~MI0>bgE+Eg*Fh24+SHiYOX_X8$3rfBk+$mOVh(a!QSl^ajC*9h;9{i_oS;jb7%} z%aBOilw?>-siGJkn|MEmPi>Wupp0h$BYPG3+D$Hz4U{>o3PHm&Iu-w`7j7yuow{(i z%H`bx-KIom(`&&uP{UoR&ZB5mj?n6)|5bYe4))YXR*cJvbSS4plR zYnPEFC>C(UU6?lCJvp;?onG|q57oPpq(HJ}?38XeMyH0+rU-((#PXfm7yDiGcA|V} z?#jV?GfOOIt{HO+m^Vv|5o<<6Z@RR4fG6t`zd5wl9Pl(dIyxE~!#6jP1MniG@FL7) z-T<+hyE$p;>H7xj@uG*fHl|V!7%T_V!rXz1)MCn3!t}K*-m>{nHE8 z0%&@^8qxn4&)z~tS3;AUJR$O$JdXxUZ$xEJOLenDF;&ePgpfpiH1fRG5j*+b>@}8t zsbh4eu(%Kjrqax#!j_+?Xu5;>qS>zax9q#6@P=Muu4GR zsF;2~qa4gECDlqd_2WYOSRb83vBK<-;lT0Ap7-75Rrb}+iMM0fnkv=~?u9hL=^AHH znaGK(pQ&`PD&M=KAw&ESW$+`5u<7vL;8bqmBf7Wz543&<=OzOgE7sZaMWv-wvm)_Y zgTfG^q@Q&t3%>Nn{}j6ek$c^Tv(W-3uh;2yA`R?Ei!+i-i$y*;&oT%pEX$1!LZcd37?8-G;OIjO9 z({`pgHjRbrlGnR*(_Pu54%Yv|K-*mLGF;u>TnuE6J=Kj5yYH*byHpqrWU-Fz5F8Xr zlCiAiq!{16UGI&+2VlqN+YKDg8DS9-xGSfO%E3)i^_z^U*rJ#;3*W%)JCU9OsD+z& z2fF$9Y7E)3q}Snv`R4I#@BbaKoiLTP1gD)-CXZFPhl3q(u~O&*B;arJ(DI--2X#5K z1w*Lw6)JeyUrURY>};2%ncBN$Ju3PLiBUjdrL%lF#3*3C9K`Me^@)E9nZt%E6D{6^ z=@mXjC*Fz5Z^>5i(HV9lLLn8$2hHe-FhLlZqCOBH@Kvin{GgB##iGcL?sY}#P}j<* z4jnB*8SC%Xb&H$V=HEy2!wi_cb|Zg5Hl-5P41!G{b*h=+D{RcrCNPc(8TW$QO-|bK zPjF_Hs6DHH;Qtw3vX$ZOsh@BV^0_r0$pvjEG&+rxa|<*;Ao1)tqYKz~U^>Y#5>16v z@7R6H5c_R_8Qo1#urGk`rE~ww^;_qkO!TD|bvM~^_6*yC>hFA1e;&`C{3&RWzE~Qw zh7-P=fgPwPXJ+~~&dB)e!ee8v&wv|7UM}L|fo*MVKYsiWlFsQt5fS3x;K0DZ*u4M{ zJIMg7XT&*J6bdS8cSkn?{1_G*DkvZTG!_z4((XP)CPZx<42+t(x+j2l(4t47X-wt7 zQ_WS6rhyzjhs5E{E^6>5YW=~2k_D0kF*d;Hr|tp^7>2I`Kar55<=9qhOO4&;T-g*b zUXZ?^$Qw7arx6TPE${idx8G&?*!@a1t_6w>?O?s|>ZV$gL=QsGr3MC;!hmKoLV9fJ z!vXv9!M^|X`Et{?k22Z$Ohs_GS<5bjMFA~7o>28u2S<1?1C>$H(P9IT9#wYnJd=lH zT}0U~xsV0OUKek&8l5jBcJfnps#ki%4d$lid>G%adnUGNj8ViGW-0}*yT&UMWcWjO z_8#V_o<)6j>SPxp%r7{*fZ{klrVgGmG!Zd(WXpD7)f5A@t4tb z$1s_Y{k++VZk&%!T#I48dP4cmb_7vM!iEu7s~!~T^-^qW-r+X!QRrI(AFQf;Y>zfP zDoSfMIrQBR@U?MHjArOZPYxB#ZJ?~F#^gK}Fr#(6No9|g@A;)gNTS9 z0_%AtIzP_WxrkrZ7E|};J0~W{qvMA*!<%r~SN>!nYGQFMf#$+NJAeyvk}+fPSigp1 zMDeYS$XISy?HeqLPEIp?_*Y9ca=L0yTU7bbIe1qVusUr zZtogc%{SIqJeqG_y{DUUpOhkOp1XwCcI(U*&}!i9LmQZ#+=QSXCG?Q}*zAuS1F5;w zGE!1*<~|1iwjFC$pvuU~0*7ECczNk>U(~G7v5O0>&C5s*s=c_iFSMjz&>h4KXm|9$~fw65q#7bHWk}3kLy3LfiV{+NwXF(fqEZ<(wYdve0(6R3zue{e7 z%4Th2rdE=+TVFL1L@v^$kkiM0b&!I;UY&hOBEY3Z0{pu*Vj);eGeR0f<43D1A-_G@ z!?L%2r&A1n9WoYM=i{sr&q8#4=glzqg-Q}uytO0v=Ks*bDS1$xZvskOfq|g+OTvb&CC26b*3zOB*06(HsC1qt%5)+5h2sO5rmhN## z!4+*)U!+Q{A|;L$V}kVYF*Q6?1oQm;jdJ{AXM*wx+=wobN0ho)-%P)Yp`X%vrD|E5 z=Ro6a%bFdS;dchT%*tG?YZy<);l3KH6m~yi8s@RTiWck4C#|2IUS^oCZ|&UFgBkf$ zULTQW_B#jH+EXGEb(rsqrf=37qWy6PR-u6~u^SCTI&TO4#&M_2@4?^7j+_NBH0_bs zy)iDkYJUGtPfrK(H}B4R%CGfh&oN9{MGlErnyMOB5>x$3u2vGptB92NsWR*xI-G7) z7u$;auCyzHT~f+CU+<%SlXQvvBi4NL_%y{IklFUMAbPV6x)Ich!30A>u)DC5(xsBd zA}0mt5_2hki~iLzK8%2-xq>C3z0R(Vy98W}^flpkHIa=qpqAfN*JhfE zW_>3X@5_zr1c%GC2g|%I{-t%4_O??0Ak?D$Q6DcnZbqMb%Im+Qp zEtg$PK_@GZp8klzG}-s6(9-$raWHxst_ET3&u-x%e)Ia)*v+!>B}1DBPo!8O<`oN3 zy25L-F?du;t{@tU zE%A>Myy$n+m|AiN?0T?Z=G+kViQZB;mT-`yJK<5eEyQEDyAbK28-wQ~%ASl$re6iJ z6KyWg*58D;=!Obq6xK26jC9|Up`*v{00&5LD1~ot&o+QHoX2v!(}^-}AdYG9z7iI> z22H1<9aHK`m;L?zM9X@m`k_M+uC>1dAfO9Av@a`mPxLU`YPAmCvPkO#iJ3(Lo6Nd& zK+YiNw!4hGemXvV5iPTzXk*T^U~=mxE*f#}a9kr@mZ98rmCcWchP93$&Wb?)fqMm2 zO>Md;p#_{Wx^XzC62k3;7?n6N{dbI;tRD3xd@<*^78U>{v2#ORV;TZF#pnCu6Th0K-u|gmYfJ$^~KU3wcBO!}4^a87HIosa3 z4l$sbFpM;blK;qN3A*RobsdBm6t&9S_R2JSw6+@`NT~X>>?gS_nq(L*Y#1+W9n+)8 zrO$-rB0M>G>kxsVV2a?kW2L zt%dE!SnToaSe*9dPuvtR5g3=40y*sUQhFk!qXnjOA9~eP8hULsi{}}Zq~}0d)pff@ zXI-qMu92S_!pIeKswOY>NM`aBmI&6OB34~mqhblN-o|Zbd9eGDv|39 zxm3m9B(49#BMC!oCFWkGC`5dyl3G#}ee?d$mP>AbQ&&P!EkPzrFrLj}VK~QCb&x~J zXx*@TucK<;p$W4-8K6N=`s%O%b1soyi@*9(M=^Z=q6)4$>J7ypVmD~@{8dmuCn%@~ zQ0>_7fk5%{@^V`{J0OONvs3%#zV9s{* zgs;fW&B*uq9A!H2+ZQbR3{quM;N{1yY3Fkbj=ra@x7s`lPB)8u9V#|e&7_`$nIr%FmXAKBz%2$R{ zig?%h+&Dm{d!|IUIS)JtA*=Ix-{WaNUd`Y0kJM65>A1JAWN6FiVnX1e^YwDfPsNV5)-8#X7y7SL(UKa!5IRs_si zXgL<81q-TTI~J2aly{ghmEi@jqQpWu*+SH(!5?rU&Hqgm1LAGI0HHfbrADGHp^(2MyaB>Dd z)EM`me*XM>>?w)d%Lz!L+X4I!>m90!B% zq@r=A?}|@~%-`TA>h#=VWMLUeOiUEsDq1>5u@kmj-P@BiJU9=8;V?(JqtlZn@F3u>5S|?z~^&N345B({z*l zOPXO=uW{McVyr;1UFOjAu-XHy$8m1v>UlFt%N`B-h(oE% zoRw^roMPPWS$f2pbui#Oi~E+@Hf%`f%f=Na6E@!fjyhJqML2POh&h~jgBn}P{Muk| zsl*65%;C7=3u91E6)sI9dFRiyS4=^6yZBgGxZ!%pScSA8sU$Z-T1c%%7f~zgH~YaZ zV+-M1lJylQj?C^~!+EQlTDT%hCNhBM`#H~g<)HQn@}pH6m%miC91 zYGKlbUIf{`^rh`hsvFo&`vFM4162s9JNsdRq(!&I*Bk+5Gf+KmDJbyNSvA z*~a>Np=(q*QX2Mnp|Gn*Ft(&RS&8M`Yd&q6J{cGQyXMKq!&d)1z16Ym zNA9yOc>b;FMKjY9E5GO5gwRVZ>>F{nCaeJQdzHSd5arTolL2T3rsNPEwI13{)wo(lC-UO2E-+LU1L~ zyI?s`q&;4IyJ?6M3l`ber-DaeFm|<16$#Q;4bsUkh+-)`ts&j-=d82KCQ72R+m>`^ zvv^h%U$iet_E`1F#2(CGsCxGRs)_ia)hqEEpa1` zK_+disq>~NE@?DH?5kJDYio2~fj(0mEuFs-Q+&%wl${J~90ty=%a?^>8|E48sRll3 z?zG(Bo$Wgdgt0K~9LNz#gRA`FR%5pB9~!DfeW5qQNf>1O1TA+MmQzaoWde%R*yQ>9 zccs1@A8$3ro#TrpEPqY@6|aw?2$&hJMMA>{9r0hEmQ=a!V6?*g&S zlD$Dv%cLuSbX1WI^~XAB`?U?f*Y^~nd~hq8>H(W#A~lNYFhwyJhRDU#oorc2vCWXI zEn|5+));wok?k+uI*T!lZ(h>q*eRt`W(1nskGb9Jx@6{bBv~bsvTUc?qO_d7uC?*F zyYo^XPAwkSFiLVG+6SRr(m0H$H^eafBvahN-clmkMr#KXsVW;{7tZLS8QRLY8ak^0%aY5JR1$nz($r+*x@kxwOvoQ`I2}^0 z6vNHkVhB`Y=~aLQh=`nAkxcy7*Wbp*MqPcXJO`T6fZnWZVc1sdcyfI7@#9CkYjqQK z)s%MIxvCUtxWjU@+w-GWt!UhUPaWpL5z!@aZ+}0fi1X>fRDEo^z(2} z$H>ic{ZaAjp=+o3fo(VS#*g5`gh{{cZ25J5+xsS!H0gL<#JxN-MpR~!OQ#vRuSAOR z5&_I=>UOQDd|D_E3CLWe9Mxl9z{4{y`}p*H7Y=`NX)F!!)n)aTRaAkf1a-fW{O{of zVMxGH|BA`|lU=>!o$~pYO7iCe{FF-9oLJ;VT3$hpkvx4evwB8U>vsv4f}hL%5>{#1 zF20{^$C{U%ks$2DgRp+3TY=|f?2OHizuOLq>dQ@f_5sg9Mcje@R(s_|&<|mHjT{ER zyXolYNJ`Sw(Me56z>n(lwyX1J%BZfcj){peqo7ZSc$lUMj*T3(WG6bBUtXrLX9R;j zgMw&90JE}ocW{`tRNou&^aPgMZo3SvrH5#EBa(0nRLv603T6JVIW2JQw6`x5Ypv=d zM`vxqFA~b1L39Z`3j*o=w3>QBr307@)z7ghBcB&k8lUAJW{z8Kje0{v7-sU-iC#tJ-` z$-SqrSHQkq14@~{FQ_*kZ{x5{^d*&&WvQj6=xMmm$HQ@@W!e47!1}=az4-v1N3yOO8e`qR^{LL()R0%^S1QgXMv1%KM_=~9#aZIh&YkAX zwo+e9M2w(T`d&D8667*tVPkz?OV~}28EC!tdE;|i-?xAkl-Njve9uHi1i!d+_d4it zeD7{kJ92UT9WkHmJf3T_|BEzIDsGw+d*<{TWy$&>lj$*Q9&hr*jpk2mEi&>lIAtl% zX!JBmcsCb`YZk&ls-so-vvG}8Esacpo`^KTleFfGvoySO29iMj7WTn#Ya=Pbr+09W zk&W$0Q>C$<;(AWmVrkE=+2`UU_PXBh;rbmNosNzUW_J)WVpk*qOTFW&KcKE6Du4n$ zBQeiYYJVy2w8vqtS$&rK`+HweF#!SH%>>`4mCS<%!E1NE!g>cj(q7tQwnC_2Iy}Wc zYuclS$JAWIb)A(bu7eApXD}X4M?^3F?1{r6niH$aZumG;fAb1Jn}@O{s#rFh@|3l$ z1@6H?V)Q5IOuS-u*xR+)FPPG*b?Zi2KQ5A`C|M15tp!yr9*I8b5&z!kfNs4+XhGB~ zuc}lbN1jmK3=2fT%WFDD^8e|ZG>y0byq;;XaDZ{M!YTLRatVA4tK)!?8GJ_h?++8q zhrR^10|R>5#m!AaU7d6&nILXhkA%#-`^|`6;4?5VFgK?y2`|wo1LlP6Y%0ouNMv0q zfZ7{LX8Yh{%AIEQ-rv zkJOf`3w=MC;p@&Ag8!SDD!^(|tKj|mZxm0n@(eV-KGXz0gv`C?uMU4d@!1M+wOl+4 zdR+gVxmM1B>i?+HE1-PrYn~ky%i#{5(Z~;I&zf%j&H|FEZ1Z_qY7^oIf)PEAm(mgw z&8(TsYK9DG+hCa6KgE=OMMw^1M{qNA53(efQIyl3a=X+<8yWlkH68DooZW!1XxgMcTvUd1RB7m;oZKmaRkE<6r$(0f5&R?QLxPD;a52ft7g&hn6E1^51jI*g~Xb7YmFO}`PWL} zXMXsIy4XEt7aa*rY@XAWrx!u_kel7T^7873IE+!6d~#4QvTcoyWO2I^*U<`jvqU3n5BgByNT$Qx*oh5&0;F1`p*mt0_)2HXDo^*ZL>= zAC&?;Y;3m|XHZzEn1IJ4-ZUg=l-IvYUU{;t*!GU}_*n4ZNHck|Yx653d9aKrPa3Kn z-&|mian1cUEa4IrXbltDmCoo=*}2!U8*iH5pw_*pff}@4hWUO};gdAHh~BQPj0I4N zHU_--TUuJ0nwlCIknev%qmh)%#l6~T@i=j?w{HXDEXDFP4BG&==}=zY+YZWz$VeMU z$AIXLb5fpreY zn&#Tra|e~in_F87&CGj;AlDtL;f_g{iNE|G;q?1A_uW`8ukzFE^EUR$8Sd z-}n}+Ay$=q=&$MjScF#MqH>O#luSuq#qzXO{VyX0wHFvyKWW;`(vQCR8<6s}G4ip) zFZN(_RW$p2AO#y0pV`#nbIFuL)tuKHOAx;@<(+yqTDo0L*(=mNG8P z--9p$=!$@(BPoesZ<4fhcL0!FUSjB>`Qf0Wqhn*sgwk-&ev`1Vv<&mVIX#tAR(5xF z_2mI$Bg)zKKFj$bseXToqJ=!FO1ZcRHW3hogQ~>j&0`KONco9o}jdvf`^?FXA6M{w9#EiOW6ni#XD75iR!M@Kh7k+o=7CpwGCp!0p4PJgxjhss#(hAky+ zO>fPnHB>x;cT8l*mt~OmuGqQ8z67x% z_4`c@BN2H!+a~onY*TvF8U0+^L&A;ZmT(=#XcC*KH|Q^Dt(Wjp1(JW26Q>G!9MCR+ zczsCu!`NRUK>VIepEza=6u4i-ef?LDaF)`dp0db2>yvi&yV*s)0Y?Ke{MKG)YLM*Y zT(N4YD``xhncQ17ssk)2NLyXsu0cEN9!4<87Y4lEBK=9v83eH*6cKH>DK?2#66Q(lW#h0^(K!=ltZ=A zL@#O$qSH~H=*nvylh9V;2e-W$7gfQzhnD}3tG9}(Gfbj3gD1EX971q+cXxMphl2%& z0Kwhe-QC^Y-Q5Z91emY;pPn@{H{1XhtVNxwch|Fb@vR1al2=uU`M$yxo}sE-7hVws zzPS)^pineS=p2|BS~_V=)L_jO;7o)qLn-D4wEm@OZ{cbu{O~7!*b|Rc zgQSq$Dra|zh#=_@AUA!0&f_au_$QvV&JVS6wT9et`!SqD=+hZvtX^CFcdW79+Lh&H zSalXpiJFa|W5K8L?^@>AQ266G>@RZp?Bnkm~+9-!nHTGQKcR$ND5;FHkc194rG)agS&yH z8x@dE-TdDOKQ^@yt<;2T2{B#K_IkQlw%4>IE~w;rk`oQ`Qz;jk4@W* z0!PD;d6nO{hd!QHYfwnQdf(fStuH5Ma8=a5S{76615xs#k6oTgF$6elUKz6iZG%qr~5HF`z7}qi2C;|c=^Tned z+bntAK!5{Eo7WMztrUzzDD^xVibh^mUOuZA;{}>e1rZ~R`-n~#Iv0uqqA(>_$!@2ubUfT%qn;w@8X=-)|9cjtp?N*VFg`8ORxoD56X?2r&@a7-Xk}@{?VDcUe`-@ zmkVvn3vnnSw*%F58UI4MK}aaHEQ{`DrCSrj0X;S?C50#;eEN955PK#XC^jHK zYov>TfuZNUZstmdE_u>yA2*M1);BiM+}1WyO{|+l8GY3o9X4=yUsF?4lC4;&l>W;W zLF_Qa29~}TBT-<0z(V5h9U?5eEHr2&5!nF?(%^`PjaC(ON7p**QE5VH$5J`UAwc}+fw96QBzG#4~f5nplq@9k8;`tRRwbD zb0*c)p>0a-6Rp7lblcX2rB$!idc$+Ys}k_Kndzl*L)E$+5bIwRT6cTwMiA-n++c$7 z)fG;ba`(f^;CLqalVxa5j~^5$-sg!OOvGgF9=03GwZnFVa0 z9Tf58gOGACbJ_=ullPcO|25mTD{$)W7L{RP(*y|8gEpD9I^?J@K7CDP-!1UP)i5Qd z>UAVJnv<4#bh2sPoIKHG_9n&&NmF~uf~%3m(umZ`O5(eR70H#8(-jjm87*{g9_BCe zG8h3&CTWsmeS3Z-dpaP~ys(nhJRQ)bQ3RPSoNO)uL=$dh3prMXHIhj`gd&=!u+H(Y z5aZVls`3in0jd1`Iw}LogB)!{#w>+_UJMGn^KBq^Jd+OnCBq9*4}pZQ*C!3iyzqoy zXy{h?CATc0>S-6vylVTTtfK6DNS`7lI$3~W&o0rSkQv9306HBNo7>gLtFEWj>Z9Eq z{2$>3LRC>!+!@<6Yy*tN8U8@+>F2keIo#x>&CXvqmPQH9oluKn0*BZ$E|e25Tr>q< z!flb9ll^|_+1L)ZGag=(O}cjU61yK;Sde-k*XsAX>yJ-f;-{EnE`q*E)LGz+?eX21l^>UW(x zQ{Y)Cg+@Goe{;F~tz6Od|EXc-(|RQiJ$$k8V95kC_@d0OdhgRN8=vTbo(^rIg-SO& zWTW)(&;g?+e9$v7vwjm?qrSaLn6@j;6=es*9tA-5wqD8QrSYDk)t>JiE7Yu`gdu@(9 zil&kQTs^=MZ&FhL_l|FzgQO1xb@;0!mJJ`BQcfsh9Qu3qGf8@kc_Co9V$B`d%#~Vg z!acMVpWoBa0IfW(X4_I=w5TlvLNT?_NP&&L46ApPE6lOCvTp_B2P8SHNamVy6qt9O z;umnmaH8&*C<ePFdc>*fe)%8KZ{7Y(8)aMkECHBs<5?wG8 zkb(O%);RI=9Jp8T^CG|66J~($fYF488VYgpn`}il?LD{85fjrQK!bBI1kRf?o#3&- zQD)&>)?Ug9?f&SCV5>$DNK3Kk@(R3BW@Q@VuxTx2+7ya|pP?!c5!y9tso2sPu%$8m zOKpBxet^Gq;OaG9rYv3-Q#9BP?ScE;f_p8~LdC^HsVZE6$2UCahkY`r8GqL4qPrFv za7d1%ep&5mL6dh$RX~IQ%cN4k#~gUhg9<1M-YfJgy@DISMWClI6S-o##c*+4&wg z#oON22HhsxveD{saMiDv%*L>-2dhq2x#%ieFW>#=-dbP&cS&%T%hu1p^Kv&u`+t)- zm%Bx%h@#jnjh%P$Cyq|J?O7YlL{fD_x!B;B6GaDqCY^u#gRg!2UVeZrXV9y3@s8yA z-W3$tgI+-@{n?Ig=a2b#`m{p6?e9YkS6UDnqVj(_V-OuAp!;~M!4A`5dES27GaW21 zN_uteqoQACCIGL24m{y);K{OC6DSFM%s!)q9Q#A8%*DgW4WS@s=tY${?&aM1Y7u`y z8+CdM{`MGv`grsCGjjkQ!!~%P&jIIy`Scgr)R7@dQT+*KybDk1Bjvd(TchhQSDn9l z-T9+4yr#t4swZSL^v;op%&hE1v!@Ni6nF$_Qe^R#EV{~Iq#R?q;yWyY{hEUyce}|; zXxo82)f_I)KSxXUyuTjSCV_FJs&u8$KAFd=D7;|C z%9m&gM+^QbL>Lp6lu*dUB-8U;Qy{7ZCkGUCE|5E54$lS^H!>Pe^AGb5*m%${oD)zl zmW5=>lTIeY$9vC1%F!@mn80I)B|6;Awq{n5T$P!ma->A5qJ_0Pbl^d>!-6Y1K(bHD z0-q^+dLTDPo({Z#3S%VydgyHShwlupGY|ouy$_R6!H*DyX3~b*YS;^MqCo^*+8ugj zQ&a}&U;aqvl8c;6DX6~1I5uI>g{(|o)5|kQAt9{4qg~Y0hWS@BD+fcM}!r* zgcSs3m*qw_RLnUksghH}R21?;yFRsazalhHV|S7g&QcQ2GBS3P(;8W5U7_Y?EbKoE zr!EEMelo9ry9>;g#~@OjW8O`{U2Vs4ht>!d^&GB-m7WX@lXTX@G{iwQ3P~_FV z1@f;4d_|a$S9+6wxw`J>mfEnrmF|QH<$_vu0G$vx$qo=WJhjED(cf`#nZHMDK_{T05;aT8?6##<5lFW+#J(pfwOnb6Mi1se``kn>AM1O1e?%^4!*!ai z?rGWVxKPvF+PNR%7J)2E;_goH*Gw`Q=B!SnN%Q%Y77ELU`RZ`2ym+kfy4K>k?$J^R zm&hye_{eJ#Xx^`sI9QsK&4lq03dX8Z^tco={r)Si#F!)d_wmN_Q3vK98g)QDG znaP@y$Z42okpSk{`=I&@qbQS3E{ko{swDw*4^IN+l2#=_CYQ=87t0yYC6c(mvuB(X zKenmS0}snK$5=fb}-!g=lS!Fl=dfNo}%XaW^Xqgo8HD*^R zt57Wt4N);#4ldy@hNga_;ePstGvz#7u+UeDrS)m|_U6&wl<&hBXvH(F>1=JwtY2J% zcRvoyXUBB!nX0oA_44@Tm&`&#W&)7pYA9-H_2{=*jMQHwro#Ql|IDb6Glm!^?7j4w zaTPjjcuihFhQmY7J5Q*dn)M2HjIlUAGO=oB^~pe`j>hZDi!Kz0H{2I!G8fvq!D34v zV-+fOV&YC8r%@}=VB(};YuzSJfOoS^K!3v2op{9R1|9ngH{sTeJBwf_a*CVzt&1Ju3n> zb|Dq(Mws_q;;NCKe|pZGWh@yJ^xl&dS~TsDZJ?kaw;}MJ!l}eY2hqLsQt9ze?XkQW)21_Nm`>05a5%cePQYwk-VqvGFP2(&O8op9dE`i>5xI*m|+Em%WA( zlRSNrNho6(A(fu;{Ahu=co#cAzRAi;NVr*HLoFDYFk!opvEW4Z8svzHW;YP@zGvve z^?I~Jv7%>B4?`$c>vw->(6#s++Nmoa-yAe2_gPwr@`&w1&)Vf~QWt|3Y(j1_=>A+v zP*=ICjiPl*3Zi`}B|u_l$;%BT&A*RDH@T4deojhUE@A#GbT-vB1=aD|)>kFPnZUhYTe7uhh2y(5kwe zsG6@Xo3%rYL2T%qb6GXWK~1s$BWmiBc@kd}gL`Glq0EN6DG_^n%qKU3I|gd9a&fYR;pqs;Q-QCY#?ZE^2ivf6!7n-m_R{&nlw#)8c4XBhM3pQQast z6}10DS<#e|CbRjUsv-wPn<5-}XcPx}CRUhifpPX{m^TZ~n+Fq{AM7#1!VtqJxeFjnLlM}@872#D^LHC$#c0;HND1k7Emyjs*e?W5mL10OoN zexG~sTFPU@6EnES^;L2^vgRGx*ldn2G!Cm(^1l{{spB_jH#$X_9=^fl?~2LP;S`>5 zM0YQ^it6d8$y$vT-JcC5o<|j^U&+y~X2j`7v+%X^QRN$2YW0`G{RQZlU81V``g$OI znvQM?xG*ToT;{4nfgYwn0pOc}px<1uHpnf%E3@GJAqpJ5f>N-qpnB|S|_G(p%8EJ2SjOG1Z?AkIizpljtlVTMxSu>oVTeF(wO-;#D9H(v+PqC76 zy7Eb8v^^?>-Yu43a_XDh$D56c9`)bOfUNTs_DSZo0$t9R_3X_3oDKi%J;w*pDREM}jQk+OvHlRf=Jo=5YSD6M^+ju~1kA zoBDzr;X<4ALLHUN6l^-E;jeTt$Xhg9W@&jD;HXrw$elAbK}Pbkmk89KET#_n0N#BL0a*E6yUBCzU` zlaT0P_Uf|Kc(8-D((n^N#>e-*KT%xR5$+ZQ5Ucu>;}`loP?^sPeSPgN$*#*^Kp11Z z{mzTDzw}$b_R{LwDn5Zb8LgE%pRUUOgOSC{x=6@3D%#Zz;anffFn_53585O@h7A$i zMmWb{?zaHBA8hLozgXu{<~95nJ;upF70=@7WEf)S|f0 z0JVP1K_|GoB?;69iFtVE&NYv{LVDfzTkl306_>95A@F0p9e% zqqncA^LwFbzRJNEKAAA5X`|)Wdx+bNa~wW_hq#D(FK@4He}^-ZF{AYls>d8akBrpX zlbkBKzD=00m_)YQxGQri9alR;*8>2Dj-|;ol5(fzDfE>6i69n*wIY0T+W zclf8(46c-iFWWDGBUd3MEv?P>^8C0=T+bEeB z4<#kR;WyiDv^jMhUIDu-{7qNp<^~1z3w)9aT)AoUVT~&ZIw|cpDx72jM;#;vK6(>l)J{v^JW<-wA} zX_h*2-}8Q6k)7H{$!*L}C1A)`;Co_ZCH-aKL3;N$<0IbJ%zwx(b)=8Ql#juTY_srP z`^z6xlser%azPI+s=m$5c$^KccSAuDiKAUxb~=dOt8+PJVSD{BPei=+tZpFK;{6y! zryK~&!L6n_-T=#+OX?fzbl;k7a90It1lzYm8S^$}EyeyWV9J$dC#2u>>2iKboWnof zeQSg8ZggBP&FG$b!@why)qilL-1yJghMiuB1<@VOJ)jM2vs8P)K=C??iHQNCRtY;G zRX-|#D}KJCUwZ2Wl%_R{ur|I{E7QwrlIodf6_E02d41T^tnFR0tgbBd+DlhRN5lgy88wFkY|!MJB-6ycy@Sd+4;qH2 z8gstm(mx(*q|E7N{*8~1N5bQnnVofbl6&gJ#j4Jx7xrv#@N=rlYA8-XMKLb7!Qx)( zSmC}JsZGKi`QGjQv=w?3mGLlKBF+9uR)Hr;|3$s3mjx>y3+z#l44z4>NP0~5KXP;J z>h5<*6;@Sx&p#dm8ZPTsX4+9%ro5K1ExiU#e)39@`hG+^M(2D;t-sn&4 zfKpj3^BN*r{pQXX8ifb7g3BqOPVtms=AQ~|#HQeF!-?s&ctbVXywHKH9`$q$h7TEa4;4tE}Qe^Y6Bq5?RM*$Ej zJ(Ig)rRx0v)7WpYvLIoVih%$-LHHpG0;<6HU4fydCw}nvGj^FUL_M_V8+Majp}O`7 zam4#J=MeNLsaytZXGKd?ssK6MkiJUY_Q$iuazMq{YOqxH@MsGTh6(8XihxjAQNcqK zH?J)W5c|MdY;u@8xTJMm%cl<6U1BO)aNUP{cyoc>`tCA5=WWWCZ=vmFMfF)^8&{q$ z?~U%j-ul-x-z)#?ShDmkDE1&EJUSW+Hqbszt5aDhR{;{-kAhafSY3Ttd7QC>7X9+@ zY`iQMhv16txB&fHi-B5Wwj$dWvT>7Wje6VGEYzy6K_ zP(M7qO%f8DmCzL;*!gKUav-jXen{V_W3Ke@+oR(CPIo}oF++Y(H6(^{C0r4=xx#z? zu_x&yX!N^zJo{YB<%?XG{`*V;CN>S4jnlDv0a1YHAc;%ZK8{IEN5(ta|1-VmF$Q{W zmwY(YkKHu6w{_J{jbqYBI*n^sHuCgpBBP4kMy4M%cr=Kv{*I4Nb_VCyNTO)TA?6-p zqG4eiB&MBY<5-%f^BM)OF3_)p<72B7Bk|;4S5h-pjx+?n>rGbRurGSQQ{a$;D#HBw zQ)Cq7-wUfTQQp~VwSNxis(=SKF#U{*igc#l!VvYqKi!7B3WjSCn<`HZ!-$_kAj@5c z?-}n+5OF@t`+#l&39V3bXxSY}Bg6l1vVY^4k8kCwS5@n~7@!68{J{}5dlo_Pw3fg7 z=REb{=s;BVwfAMqqN;m&)9Y$#vRs{;&9)3t_ehf2P=1m1-P>=xxqg#B(G`yjHWHi8 z^!%d1y`W7t#5TL-gMQK8a33n1^!6BYa9|_8FayEOQ6A_Nn??3f!^JcR=7k5913SJaAkIP;Li8bt~EF9W z)%VY){`HKx0VFt#10ZX!G+L_z>l@%1gp&5E1mu0{Q=p59iv!2%y35PYIWGauHik~JA00x-IVa*7r1*RagLDB*=&|3~#*PT`>Ir}QkhhmS_2DGkSPtWU zo!QG1hGX!H3@iLxulIwtefG;sbPD>NzSOQy7LD3adJAL?-!|Sk%;=xYju;o-GV) z`k&hxCL=^n(3wMU_&`DY-z3v*807|*ndpYI= zrV!4BpT=~s!>60Q#^-GOaQxdlZwm|?(}UER&{gF_B_5*|+9s83tJ-qh`pak`uzDbu zCwqPG=bcM{Oo_(htn+$tw6-P@HrDlncr(Wk+y;W=M>zkLVlZf}3aSC##Z?y0Ai$WH zsQcHPkk8BQQ%&2|$z@&cSo*xjpj)BZvrMkq8DV%%mPq)qL0eCA+3oTyvi-!QjtZ9& z@ibq>D@gw7cLj&AB9wk@Z=W_Ck=%b^`L%eGDVz-0Bbr23y-Vy<{RFcZ>}kZWOnI7G z6!Q}ZkQ)-dw#IFJ7pZghY30226KV-&=hQfGmX2*?-KB7)NqrcxK`)jae;}s^7u;EfBbk43dkd5zU7;Nkv1tm1?TZUZnE3&}_J)GwS(mNYP>XU%ZKZial6Sy(TlQ&>8AdyA}SoAJ}Qm&RZp` z9$pnu6#CgLZk#^3J2cnhc3hr^kC~qGoBxI~-?-D)e0^8lcYpd57PhzJBFUQ8uiB>> zbi(x=-vPK_G+=f+U#c{J@F$_jFrnln!kMHB7TT2&>JzQs06X&WI7N248Jynf`q)&l zX(R1;NWp#{dFJCrk4xhdD=7)wsiN7Rxg(px*h)V!H%^<~fu@hGbz*#&QO7!c0TQOg z2l z%BfPTxmv2*4@WE6Dn)~cWw-TzK5U=ykT)Ji?nwU6Spj{W1#s@e6dCR9+=9Cjz)Cs6 z-$S`~#8c>=v>jHv1rN7+_HFt7^ywNkqvJNVy@mqS2ga2HUQgJU2`7EzMT*1`lfTHh zzqh;H&e>&qtki0uSvIM-jT>^!cFbIW=*+|8ZR__X9P3kCIw4=n`r=|M@R`@r!XYg! zjTtUyeu9H@{!uXEekIR5`b~a853kWfSU@K*)I2XJwmh-iUC?Ld#W=9JnxM;vtlK;K zs_>yg8lm9Mr2qm0T>w-?#sb)NW;$N~%3@XP@GtvNdwNpSI`3=fErp0W#I)OhRN=n_ z3z)P@tcMFxqA{33xeX}78c;4k3_1;H8Y^#Nrf^`H!#yS|Jtmwin={X$y1|3_5{qV+ z6<1VH(B3@?wuGK!n9C$9W)(Aeqo^j^C*at(P)7UYMAR`x+wPn`!Hsq=!^y2-GBwcx z{_~e>k=?I$W#Qj@cVlEpu#HqWRj*44A}6m=%v0lCeutH;og&MGWwDn8AcJ|vL+0&$ zxGaFL)Z3AFA$&r08X*>=F(^oPu-NLT0@h!|?gSe&FSdV6Qa>aRn)_}l&h4+SKGe@+)( z$8I0xd7zei1X7s}N!mZj_|N5N9Tfc;g)vTF z9waK1dOW%(dVQ4od@|uI4c;o}@8j+R|Fap}`3Mf(a`t6LNjGDQnckuh9Q2wtF_E>Q zH6pCa$tam?S15NX(!%oQRLboxPRMGVlR~a@j;J{ZIF6JP#r3gQJnOJ=&`kRFpRVRF zgAv=C7Z8DUKYk=6XX1bUqxz>a({%LPS6K1?<2R$Lj_ZqTqG0}}*VY&lI8=AU^_ToX zrSWo&r^-Cx>WXa|t@uUdy`OISm*sWRkEv4}rS5wFBCFdXAqf2KmTE}(gOGHIpbgCy zpcieeqM%3Rfaq2ALi#4*FLVobf-Q@B@+Ihd(Erxje++cJ;=g(DJidX;kl-90M9YBB z6H8CHDic|lE zx&&nwJ6<_wcDNp!xw<}0WpV?o7T|5xpuvO^iI!VVEfIO~2>^wqBh*us%bwybx>S!aA3iby$z2$AQwHBFHbjbmT)f^ z#yWV#&96nT1cKJ+wSCdl@Veb>0iC2;zDS7@o-1?E1cbl=eF5gZd&``h$)`|jFTIqs zc90j*lY*Sv-07p$Fuyi;0-^2nXg|u=y5$~%PRHY2$wdCg49n;Y)8rK6xgf3WRXLEL zyHwkkXA*V$ahMa+DdjN;aSM|GY$=@N?++z>)VtYY7lWT&-{$Q?(-cQotVWJDi)V=C znw@1CwC zQQA*i*r!s<2c77JTbg;2!~~yWF^jd<#*lr2Q~JL#?+M1Wh9(k((MY1vV|X*#V&j@d^W{)W#Gm9V!;ttCb^3~HZRGh)-tjf1|qBu}I8S8)clfPk)Rr{eKf^M+py1pfRQ)ut@uscWewD@KQtBUMNn=^~9Ya z*-$EFuS_hy%If|7^RT#b=2o&~l9fv{pZ$4*h-gTA%Kc$KeLP(lv^_FSso7{X|RP6pz@yLb5ZBhPCq%7#q;s*2= zJ2*5?#q@^Gk}h*96&Qw+{t{7=Bl=I1qVZ&A8vd9@m7?_Ffm>JfdBsns8i{fqA3rc% z%e0LI_Q+X1|D19I<;1bQBSMNfo3bCaWBG7+GM_pYH#aQO&VRG1S|c=&zuluYrbkg= z>1+!uU~lDtW>LS26k>%t^-4-nQ9K)IoyMF+YQr$d(!%nrf^GwrQqREkoL*aNz)6vA zab#Uib;Drt=E4DN7Hh!oTj<+z?tY#wg3#`Xd&&{4O%-8@-5g2l4gv3s`25A8Megn? zLS*nXKIdYc!}7O+V>*`x-S*DECdrxuZ8sMOPpbZmhds&V-Lpnf*;miqf|PiXQinB~ zUcv-Q#w5bRRlNYY$DQWt5x;)Z7!_<~^9v*0MyJ0_a&|p#cvGL!M(aG}UWWHdh*vVt z{Olfw`mGrBix`T3qV|AO0}}EkKj|hf30q7wttzB0BC1Ig2h|3zCFOY6wk3x8S#xj? z0-Jd5g+^H$%f}$c(4xdrrb1V%&C@JNUMf!Z0@iqzz)kE|kp9k?LZET`pbr%`HL)msyIJ z-Ak+CYP6+Uq&w|6;Q6RBiEz<4NOp)1JK((j8)k zP26k5OX8dzIEyGvKkS7lX1S%h`x+2q{9;o|jY7#N*3SWKHFKrgr0HgZ=@eGwBil#+ za|~yUu`s5iic`+myV=FT!S7QAY4S^`Wi>Q2jn>-k5$uxS9;KOxdZ7RA2{ONG6@`p3 zh6t?wv!G}WCgH#a_V*^ldE2vJ1gU$D=mNq@;uMtKkpw^^Y$i#e6%jjn^ngX|0pr+z ze+fJ!oe*ZY&${x5DlFu1s~`nl9T!3wksTc6B@~Qb39CZX?kof)uE?LFB|?6umzC6U z>_YDEa+VUa$#9kG_8YC;RW}Knb8*>N&(SGoUzgu*@7W^#^SL%5%KyqDR)U`H>5alT z7$4U#&1$eR^HBF22)h=ESQuVJkQjaXbBv zO1T$A^HUd}K$?6`+FUnnD%EN(G4pcsSn6uC?RL8V4Kff{BwK2ikEs;jT36yW{6TX! zJ)T%czh_;^L?L@vzjKW0$JV5oWlftoQyLD!DF$;hqMqTzH<$vl(l9=16_xMrvjc-A zPh#Hr1$0zOgI_4J!_+)Y4T}R#;1oGne$-GKu=P;|TtN_$(oA{#VgplzYhGAKVNCu( z+t~}9$g1sOt<-HRPG+xdQl%)(HU{7H6`R2S1G&4C!HSO$nzb5iOBs^zLm}15`~H3= zQd$!b_7!M&nld`tA;GDN8V3iq6W*uu5I&#*g(GP3^83wX7@jW9dPtIL|FWX+AH>!$ ztUyZzxWLw1DT8I6E@WLY|b4W~~9S9dbOk|1n>-)S-peS)aWXQQ`A*4TeqFQq+EiFoj+a90Yi2J#pm5<5{d#ZH?F%(U& z1r|gUZC9y4of^pDl+Pi8sTI6G$^1dZuo|#_CF5Ydl8(KjfUS$zI#v;yxC)u@Y(tyg zC5ZlcA=i74z!`b(jG7A4fEE!i2w7dR7FvoxqyykF2$Vmxh^h)Ex?o-Tn%yglxXS$|l#{u3ht8JK$*j3XeC~T>+8_D4gQLX7;XUdoXzuwam!-HJ^19`& zn36%xHY%2JEK7+T_p6S2cQDlisRV6F>zi&B$7Csn&5z^XqaeXz9OJUC>MA^|?pGmn zyOFenJq87uGLh*;fiw=)=!IkM0lcUC;vXD5KIDvpS^w)>z%YpxI3EQ=--6V2vii(B z@&Oy*^Lga!6$XKW21rdp#+w+rS$9xNL|h`U!Ojj5Pce@#73fjw!LzrFe?@EzAxpN# zhX3=w{|)x33brn8VPRnlJ}@66be>zlRiN;YbN% zZmtJ&>n=-(W%5~Pm4($!qz{=@iyTpmPWT%kI1A(YcqQ~6dEvA@W)|9PGqf|l_Fj#1 zhN5I7j2I&~61ep)g3|$RjGGACx*zl$JXm;47?kcY%5qbcSakp!c<4V4R#M&!J+jh} zC7@!-?Lb6D@CDAV1n_kz{WALG67^kS&I&-Rgb*tcmnT)@232{Y_U`(X98>_sq|+-I zg^81-_PLy;94x0pRkA+rET?ADLOnmJ`W>9K2)Cb+visNc>CxlScqTAar@olV&LR9W zDBBz_1i4;rRhL#0#`MJsX8)r@S->qRD~rNrCS#c}Jl8+vZZ_w5TgT>3;Z=>in1ufe zg~s~lU8#lgr=el)%P!7ZA@pVvLPeEvsB8Ox4e`&P1=-z(vEQ+=3kwTbSy^|je_bHN zTsO4%QDmIV&;t;X7wGt7GRfNfb{&Toa9ZeF5eZ5jYHh}2v^9>l#cpv4XQN=@n2VmTh^3BS zn}|^6^`N-uVX55wrGLXLY(Q!(e38=(kE^x3KFz`wjHPgMD4b5VF#`fe|V%j-p{J$Tl1^Qe$%&Nk(>89K&N()YqGS9dB^3| z8rd*T6dYXjztM;cnPL(lB$9Rq$6TbxEtumxLoRnkpP2T zWx!h~N*`t-$SlP2nlR@Ki&VogIC} zcClH<9+E5;0?FO=*Zlzuov_kTNZI37F-7-APp!2!fR?GZ-L~A_%gA2n(4z~qw(U-e z)#Z`U& z!x3@ZRM9O3WKk?{Hi;FpJUSpe6yj*4(1*)X)0J=CFOAiij{^Sxb6^MBqy zJrSCq!7YEy%>3h?O3D1^q{Q)t3$b5`F63tl5UsCKWdARnW7Y^ zyuqY3g4D zr%Mr`W7bmoyR|$d4t0>Nfh|4fbOIzLN4@qd_u-1#SHF7Gae=tvnw<3tsrcav<>}pK zoYMvlUm33MWqxsB(P8}2KeJsr&j=hk4mw01 z6e~exWg4X!Z@hdRzr9UwlVM|J$x)c#U4XIFJ^+t)kykNyUFYc;zjZ-CXj*ufAiJvQ z-r5|N(DtRTxA9Ix=#4Hp$wlQ`VEes(F-UkGaNTwtzZr)P}XDNwk=|AK#ILiTuA-KqSF)cpq;Qq=+s zUdD+=X|pRWP%F#(wTk;W0s(Q%V)V~Qz$=OSOwyG9C#<+80$RaSP^h-&%G=6MDgJg- zOk*xdfgu*-oQi*Fe_!S(@aiFp%z@_N5DxSY!!f#^Z*SW1IiPBBz*Qyesh#p0Ftzuv%2M{oQN2zH z*`OH}apS=Vg@-knu{~0+x*i=ZZH~;J3Ps<{zq`E~wVjdl*JVZ6y3ImbE2;sf9&Rds{L*P}Poz6d zGP4M}yu74SR1gwDM}{hB7Z$A$b1v?4MAeI`X{YK7ZlA>zOF!G@s`4 z{G1B=A@RLRSqMR-FsP+XxpT)^y40`4ja$T2+h}~Fi-CNR=8M33Bo5j$ep1D_2xoxhXP*>@8})&OhUSm6H++Zd zMHz=jdwuzSZ+%bzmTmv7TB%sX8NE1ObegS1gQ!&9>0@QK`V!)}aHLOg+Q0a{h@+{@ zdHTTl#ib?kc!YZau^?#ZR|ut+qa!n(^X}Of$J9ZBpV_Y%juMuIN-ef9%UYuN<#X+t z)gRWB8~vF5vq<>J8?6ndaelnru~n4)5{{gxo~g58cy>aITO(k<%7L28$7b)!sm zoz~?crn0!S4yGv2L*0k5&XdOX7q&pssw)5oow5-rpdN#*GzUh+pfvB zt;x1)vfU1oZQuPr_ujMax!?MdR_p2azV9RWIwtS#21U<9BZ4NkmZ$BxG=}CSn-x4` zzSIh-VWO78HE_#YC;nypWjgYsz&>pH@?O|q*GN<;=bZK{{Pg&soVHtu^ z+GzMW35nx{^R0nUfmFCHNfWLzc!&nBYpe`VuqHGy!i*9TDjYGmE%C529!8iqG7-6! zj|I{Q_1R-TcBL($r_hh%nG!)_mQ8wBqd2MH4eLh4d3j(parT)fVh}Yq{j0ihs2C88 zku<;>VCtxs(~(=@dr4%s9IvR8YkWxXg*zP`lZ&C zu)?;6T5K$Wos4Pzw&ZbMmKpLrE3#G@5b(+i!G=dcz~@l)z)HQrNibs9KqE!{mwiKG z3QCGQ-LXvs45~z4`av>TJzi0mzeim(G!1wgRBVU;@+ZI?3_UK?-7*h7u$-4_QMc+$ zwNE7a+S$ap^k2~6)xJ_BC|I`J^3!#58#Ss#XO*BI*r}RFq>uuy@km!G=yI{yJe^p| zMp>qA&*TrqP}g+cws7%+GHrXhsdQ;ey=A8=U{H{dR4MhNad+-s#Z{ikTG0Pyq3pclNzFoQM<8We~mJf7HUYwn!ILpMvGsZhTJ2|!V z4+E`2jekqP6!&)z;~g_)fo{2Ij&eQvWpi`Vug#d3Wfi0fO5@;r&SkJ~j2ehWmFV5- zcKfRH(9dFIh#@=bvAWg`-W4WWs&No<7gcGeCH;JhN)$gmqq|CK736%8Q519S* zA!d?`ai2~@$)h|L$llVK95DWaY5%jrC-l<{a~gDl9~Jtd9&oMW_c%-Ow@X+la9F4A z6cmq(P5<^HgFQ)3MnWq$g&Q4pb^B~639{rb2ZdyZO1nV#UPn4O7oGt(_j*)JxG>Fd z`GPAw2d;}#GH~p#ja9iz{|im)O3iio0B8;2k};~h8m7;FeT(3=7N?m{i&qC!HR!a>f1fnoO(?1mv=C7!~7`7^jbx~qsfW`nw_Z0T1j`leqp(gW_a z=;aJW!KP?sXC_h5{C;j*<>k3c4XTAPNJW|q$6q{;oRIV;$Sen(i z5vV2vNedsiySmkl%T`0)l$>%r>5Q%qE*+IEj28k;q}WVvId{AN@H7+mIVaN-W; zHV_`#(e@Fn{*k5AjG&EFr9D0j`dAz4{Wz}{$uwnWpi*nXdcDuO-T^?K)|X1Rk->P} zWSWD~TbdNGY|$jzZ`A>NX`Z9)*`O8Ob# zX7O(3xH4J{*wKRCVBYk5{oK#<-*@vn7?CT8z`(db@mb)+Ns*OJ%fZ^V@WY)eM=W6JsPYMOnPF~0(@q<{mniyD@zuwD?_w4udCugv4c z0HM(yq0j|7@dko#k52d$U{aKM-+$^DcGFwV5E2WluD}yC{l#SB3=rz5Uxigniv%|; zYBvb4R~f9Qf%lk3bv0tPING(tLo-j$ICVYsm|UPi5%Tl68{K$w;HB?S4C4=pr%InS zs9CBWZ&gN#NP}l|9q0E2UQVuDeYGt-2wq+LUZnd*k69_BHK*YarlGW%JFW(|2^?>O zqt+isQa6&Nvc{*O+f2v~S;ewPlYPtH2u~G6R&qc|B`~a8Y1@$QP_Hq}t~Ifh)MX+a zpBk+9dg$fB*%S`z<)Fdo%ug;3kG>7$Z?uW};ULw-^eeDb+?DC;m;1ZW z!BrrR$!a&ZXFd0zl{N!lKh4*FBc66ZsCZvRNVFbvP3ls8IZ>6_5uOUFLTmnG*0joS zbl4I6xZB?l+7a-0y8gM+j)bzoc*#|<4SIuADid<^Eo?0s^p}0m(hlIGPVh23!>D=1 zvE{LEjf(-gn%EZ{2YfNb)8@RHZJjgk%l)X;&JV;jp4et|r&FE3W7Bx_?H{|>u-~r_ zUMm^XK$p4H($e~bf}EI?n&y<4l+cREISbm&51dKFg?=``wUe}Ep=#Sf_xp$l3_aq^ zinT%2O53(6;A-(7jk}&vS6eg|(S^m&eA#7+it?o50~ydI-Bm&3y|kpnURQUsLJcN@ z>WUC)s0u?ig6mTXlr1Z^?l?-`f|i-#M%N{42Th}-do;L@GM&-pxi4wS|E$AF2jirv z%sE_OZEv!kI7qu@Lv~kT_m~|26>SZR)6ii>^r<(b$%u2Vp3mX0Y zGxMd7un(kzLPg<6?IWoF!Z@&2lQG6$W5?MgyU!!A!-n*^G_M4}!~v}$_n*PZ@Z~s& z=qSn89!L+>rHfXcl%WVuv_i}eMEV$wYiM9{bL2ODT^1bl*t< z`drq7>hga!#ctYtO zn!Rmx_B>rgZ;%*md3e_WPvE}7nV_EtG_E)+4J$Pr{?0`!0W^^(@5XoxJYUD}xJa(} zJ#u%P6x;1lTNn^7 z2Q>c8FfL)k!sp=eB2)QSbznCF*ig_v_5qI2rp^y&*>$K8VGE93cOihLpk(nGpptN-g5(F)h1!8w#(HzoUz0&NEZJlAd#hk9j={IPq*W; z)v1{md}{9>2F-~pd?|-R#2ab872SK|7r`+ae4zBQ{DNA=_1pu+MPECvnzq!!(Owp@&|D=ZW2Of2wK6*ILC6{AkKPO3{P8jF;0 z6A7BI3I7}ehf>rvT-BRmn%)OL8gCmTsN|kJ`cE<2-?Hw?Hz+vEP9bmt23&je&9kAj z?s{_uRD5CpY-(FEV;Z{#bUEK-U?blitSw-zMyJrZ95!KlV@+r+=E7hoZ8nIk%$dBK zkPmz%$$nA4XJW#)MycXqeBBFnx*vDDi&R*?$CQs=g**o%8R*+{#9wmw?Wn!>$^ohQ zTHqyeuNgWnbKNzVFYn{8n$3J79YM+`J#rlBBQX`KIM}#V8=rZDy(Rp`dQYKsRUV`|kWiz{4PEwPSiHBjNYHySeK9ny%t0xX9s?VRplf zb9aCY|1uy5!>$s3e!QN`&)|=kfr1O23${qh$`8f2oaUXiwz&>kpcC_2x4^w z-e5^}MYf^>c3uf<5WrQNLzhuS>L#W2wDm6HjN<1-MnG z27C*-=_uAn7IivyKV^b`Y%wQTP*ETqc)t}^AV#b?7?t2+(kC4$H#urE7%q{@abQj7 zdpYSaLaekKBy4QKEJSg^-T5@s$~UGYN#O6(w@b?e)#3(sv`&jVhg8>yCW0Ufo=s{5 z?HfA0WBhn_jucR7NOW{G3BSj6-q-sP=(m198)S%*+8miSUwTu>5AH0+nZg_NKv`sK zuI1aV7iK~?1Z0|Ssb6=Xj~BL&TK z(elen3lwKQoGhDLG?U2#uQfZbIy~ao%5?hjbK+p$Xbm~Pds4CkOR@u-yDB;h&EgXk zD6zv6r_kXBC5*!sUJyqc@Q{t*GMkqHk!}4yWGD<1i;^9`)facwW0<+3mNh)EtI!Nx zsBL*=hyo267nC5l7C{NWqyOMDbYU1%TD=YFst?pHd4<<-TGr`7O+2dEl>vAmdcsZm^Yoe8 zr0;6{0VRB6E~E-*w;8m%YiCm-=O1bI0$pBjbF~eF%OVw-Zi4-+wQpyI_9TzKe~juH zBNyj{dG$(k5=?fF?Fz2Y51LtffzMOkO52;B*FH*9a70hPL!Al++xcJVM*IE+4H?hz zTSa6M|G;E-!auDSSsa&VlB7Ij@EMS;nng-0&{ zbwzw4)u7xEKuG+D3r_B zpg_yYN^2wdaD^OWe0==p2R6*h?MAcpNPs;IOL)u@WT@QOHjO=cnJGb;b!&q7m|tV2 zNn+*#Hlt@%TXV;+Xw&Wyz#6iioq#EpC1mFVIi8YE;{*Ki4gF)}P$K1myB-n^|@Vh5u`~MqL1l<@a4wtib^!kQ%d1*fhgBiN&Q4jx^%0l7w5VlVI-`9f_IW5OX^ zg`8=J&i^~rKvOZ7@9>p0mFPlAs1~e5pv7|tl;u4;yBEEwEU*PKu8rjW0m){Uj%mOD ziH16qAUhp1_P=g=>5{8L2?GgoXmms&U(W}Lpo~QEk6Cg&_Fu%}k1=@=SQzq|zrL|_ z6wG1^^03rmAKSG1^pQEtNiBxBl+@3DCBS$~G&QzOM(Y2qNv0&uC z*7SF2IKzLrOzdDIK(-KY%srY!l_`b5an>-Nwf7tA z_f*PQCcNxk;()EKjUUJRt3v}vl~xp7{auu-(}bnWak|5Aj@n5w5{BhXBijS~!%lgY z%*(2l5x9Ij$imCO+TWQ7wVkryd{n4dN@UGZ--=F>ze5)Ck|VocYk(3+RjvPnT7+V8 zY>f6@AG*-ur#^*nR@9~P9zGmGSE>CM0gt8?sVhrMey5T{m++UcSFDb#QH0JJ)RxTY zqF!BXF+&{<0|PMx{;4q##K_3VK#B%Xto{qA$k2#nr^|EG??_u)r`8V8meNvEl$qQ9 zr|o`1qY8&fN6>G1f-ZXBxIYsB2R8hoJED~e24 z0~u-~=tRX?bc1oLR6cvR$s-bQX~!+LskB7)uwXNMX&uQV=)T`?10U+$AflrCgz6)Qm-NzEQMb^WvbQU!4#VxP@yE4L^DaF(uCd^DROb z`5Tu#iB|;4rQ~s7xx%7LMBChi>b%Vbiy-x?+HBEx?xlGj9#8)7yRJ2t3l- ztTl-3k4muQG4^XD)4b3hDQBbF40Vsk&x zDWwBp?8H#dJlJy}+@2_ULPwY>&m&W-gvsE>m5VzdPM(C4&Hm?r_~8W)^E4%*%>5(x zc$nPYdA1`a-qUY)H^HG0fZti*acphC9!@gBE*;h%d(ACQ9VyslL=c5|<_!t8+s{wj zvGARU`1_f%Dp`UYnGG{pj;QdjZZ`|{aA`d0R)4QY0lLjJ&^QWuF-rh1qr^2E9+lM} zj&C(-7WS^qM#uT5d)<#&GaC-Qg{Mw5A4PIcaYmj#$ESDejRpm9oiERj)bh`E2gmhn z7BeaF$>Yp6*1a#kYtNK6>iBJYJ)TzAHoW8XWv1;CZs`dMnqdfqI))1q8izWDEXAB( zwi{!lYS{@p^cMm2zn%njCJ*YnJYIMIh|+B`wH%DCZLsWg^={vox)1-N%2LpE%l$Qn zJtgrJ|rRHlZOYrLT$*i@{P7f_#<5c zf?^pYEc8K;9GDT~z)Z|kMkWGsZ=4X7Q~%BD!pB)#cPE6(nfFo9S$mPnX6@$s8J8(L zv5^1KUQD<|Oc@npVj6>IjY<>h!Yod_N|JV2B`B}8rbdC`#>&=~5M=Js*WdK~x;#5- z<#XV?tb2S!cAo$9v~aiD(Ah@jc;-f<#iBtJy#@}=Xv27{p)Vu@v?q+>m8!3-tOPk- z_laJfpNq@NK>p*e_m?}+ObW7deb{4O&TW`oPANzDTsN%xy{>Ht8TNkNnIAdL7?*>G?X@OgYZJbR*Habr}; zhq+5+tQLTn`UsxF#X`5kXbgru2jg(|OeW)H6N)*)F-}2T21KM4Jo&O4}xN zrL?zIP1XlA5wMrxG_S*=MMPy4t`k!dqflmy*0~>M_D3WPY&i@FF;5Aqo`nw}$+lG; zAccVBX+MlHDUWj`1nS4PSsfLDWRijX)I0mtnSKTOzEk4kEej!?y$F|u&2l{}9=9YE zYufO%MXSo#V{c@qC`IB$(8ck{6_l&`o%?i~eQ_#GIQYbN4}Kt3M@V2vK8r4?3`sW% z0hlL&WyIB+EaSIaK@<{*hk?@C5HBVCwU7T?3jYT)HmbtStj2DKgwF@TE`6tly|Byklj?k|4Q<@62qoAP!i#2cxN59y4yP~J=RrW44DLp^0Pj3shu^aO z$2{F}H(!?{KiaX}5iMw|^REJ-QvoN}^T43<;oxISiY3nIxO~$+wlXz3g@#x&*GpF8 zOygDRZJLPR_w3@zf6wzN;nBHZE=!_V-81CyaPhZ+j|m&Xlg4FlU;bUb?~$TG*W2mC z8v&70p)B(qBw+}&5?Zv?pnlqiVka|uj`#iT)SFFCoxOn9$NAyL8IjUF{Ce_5%U;;j z1h7k%YJi#lYb--AuG4U*XGcTXdtl5ax+5lBFW@i?iQ1ewbwcx#nbi{shDFfhw&Cn> z<9xzo-TtJJ3L>oL#f6$zD*b(0OL8AaEQqiAgb*m_Y(hBxyc+!woZQ!V;JM;Y5 zj#aLUK=S5QBoMlWynIFYFOj7oph;ML3`z?n(62$9)S7D=Ju07^d(*-i+vO;T;>R%0 zK(VS5#{5{(L68X|NJoX-coZ9gw7*iurQh>%eOn{dNgrFuQ^KrvpSajcsh5z#p^>5? zL&p;Q$-MQ=aGb^IA%lyL(E@Sf+hC z`Dy4Xp*PuocAe&yh$Kt~7M8f!*b(ph$45muIU8$hUf0t_Q0#tHWn~XRsQ0^l#td0{ zB8s8$98F8}W*z@W)9c@)3AMNr-Z{7}Sh3#vs`v7%(%TC1d&|vXC$g3T&)<{EuDec$ z2^%RFD8KkdFM+wmkA0!<>yNX^_<)29L*Jg_Eqp3Hw?pE+d6a`jIqkFVs=8-`1#WhI zZ>E{r`v+YRKP1!Vw~Fsg-$|OyPCh%u}<&j-Xd-+skv0wZ^e3`dX7|cF2e?b|KRCE z@NE5m_sdU5O#1>%N?Vc%aC{y(CXII$kViXL^c0%{0(z)8U4(^s<^thG`&vHfkuF!g z(sV9-g78xM7vG+HSd-JBRG{`~KHVgYS0#5mXpG&l_NCh_uwhx&+VZ=7-EX&fa!)0? zkC=i}{2M7f9=VxHqSfZEX2no&d~f`2Zs`=e5=Qv;CwofA`|B?6Yj@mxa!&5wc7=@$ z@n#e=xvn3*rlX`GUTPpuHw69Jr3yPLDZN+&-`Dr47n__7_>E;9yA1Mkwy+hu64?-MTN%)}n-gcW?R(AN zc%ScUnb}nl9u!$q>Kg%?Z(oCPt^|DiKBo8IGciEmj6M+6=E3dSy_Sz*fpyx77zu); zDA!53es^!j%Pb3_t^s4xlqdvV^Qmsjq*x=*GZR?p4_kEVY!4VH&IHAocFRvIE^T_r z72bRbobnKuZBDJg*Bt&dF(GeL!V?q<0zbF^XLEyRvsRRw{j<>4yjyfyaimXjZ7gVK z)<1E3`j?m4R$zJVy;sG%NWgAWbipXae-R9**(UB1i$w7dB1N|eQxE7Q=*@3QPWNs>Gbd>rS}htQZv%LX)k`8c_f%ABP;Oc>WKc+lZp-zJ{5`@ zkqNoUuy6cbaap7A#@L$E@VCt}!)en=Ou*Ik$%Sn2dG49e$qTh7x~T0O)DgMtu{H+R z!ROytdr}oiEwLZc{aOo-?m|NI4`$Duc+})86o1N0D7%{vRl}Bol>6d`ILH?Z_}#wi zLEFB|ep`Sh$~vJNg|jI+bRjkBBHZ!b7wCN5aO2FcZ3e1L*kEGTiZe&=5S=@uIN?Hu zM8#z0m{XrvM2dLIcO%0DsrJ@Oc4KyYy@`HpUuT)UIC$yw(pBftp0ft7*b~NWrR8-H z@3|7v>~bm&5lr_+puE39*~A>Sko5l&O5VZ?lQbsyw(H+AKh&$_bYpps8O6dCM79I& zNJ)gWMQYl9A4cqiMRkvBBoa!rYhpVDh`L@ncb6Gl^cfu*r@AWawm- zKz|7yT_p*n*)fX^dw$zJ7ryukcAm%k?MI&L=oPM{CJGuX9vODMD9aK#sJr{T$XjV= zt7AuF(PM&}RBelD*x&i&=B|}5udB=D4)|CY+>ko17Sg4|ldVM??m3)tDdhL?u(4CO z?bp?KK)NQN@t1UyinrBxXU&3TXZyq_)o4TUaV(n&Zx*AUr++47lnBm)f=no0n;RXr z_!Dq_CQHyHOw=@w4nBlSMaZUZH7Z{Po);ssk;tUB{{RuBFw|7zDZ`nGZB8JTLNpap zEWYZ`vG+QfUJRQRT%qjKmKfL_`MaPwEJed9$jZFI?`L&Z`O)&+y3T)y3<#Aq{qn%_ z^!_sf)+8G7GIz23h10ygf^eX8pk_{s-DHa^fnm9Rb(PgP`J zJUIOJMeG;&SfM1CIDZdj>_i`@L?q+K+bddogA|=%;ZK-)B72mf3(*8F;YP!~>td>3 zXES-JPBxlTAn}2ZRH|Y~nAC+{Hi&X9KwDPZ$XzFn!pTPI{_595g$-SfULoqzAJ|e_ zIR-`NnCo4KF2MX@RyC}j&f^7K0Ki3nZpFG|JdorkBA2jVLoO3uY|QUj^Yo&LaJwZ+ z`!Uaqj-C((=ibOdWcDOOCt+>+sC6{D1mD|SU&P2NwWtuH^nJ?u4}@eYH|9iT?l;II zRzTttI8X8yrg-!CR3R{8A*f&yiuNEupU{9~=r*4`Lsce(N_V)nZ&Vma0qoS!M)97{ z43x)VVKI@|3#t>>*F*&)09EN@o!bT0(KW%+g)$h*C&&EBMS}KG6PC{v|Epsk&H5)>accvE zjbRW%KS7+FCkKto<~$98=M%E{Fb0yL1A7ia;tVR-KL!po?j@JEZ`Dm@RV$2HQ)a(S zY2#e=6>8T~@TVp@PQ#;{z=Pz6oBkfbolY`D!NWPdTQ@wQu=O{egDi^gvR>xQ<|h@@ zIM&S$?B%T~cr{8cdCVk;%Aq4N-}=!4%aH6+7nRjuD5Y}A4wc| zxv;pHm#GoWCHMXVp5`>#958$JgRy9q5R8&wFyKV?+XJ9&u9q6^Pem?_mTXy5xXasE zK0b4jF)uoN(J0aW2x->u25vITf-qxMvG z5WMq)Hb>DcA0W-7JidXv(x$or$!nh{RSN$l$ zSK?k5aMs(1{?Zo_Ec!dn&u}uM6mA$z!uU)o;y$s`erKf1!$%55sEVIo`4ohyhCHg$ z!usaPe3=~N7vO&+8Lkz?)AuGrvat8D*zLg=sk3e~s3L{DPNaMgtPR`hXOrZ0qn0~J zYXm-+UuNOP-|^wm;1|}Q3B>z~0biOX#en_MI2d^MS_;;( z=Ck1q5T1xx`8aGZCgxpPG%9}?RLr&MR>>TzVs$N~mRTLzH*1%|gl5s3lC+PP@~<2V z2Tlt+#lo>F(Sk%u%W|nA-v4Bwc%`tGS`0llA6_p9E%+v5wV~{2);wMz^`JuaR$q84 z)+Im>!=-@N;S-9#e#Z?!Pb4eR;8ff2X^!9CMmj-J1?nx%;KJv9uRkdbbZ^-7e(ox| z(=nWaGXSwFXF=hOd=I&F`y>%RN%6VTZuQKe6bxdx8A-3mbKRw>?kVb#B7{Pow-hkl za5x?+cT51?irqzq50XrDED{St@@CukaEi=|=A@@Tk@8rH4Hc0^;FPpdUbiw^2^KFo zD|2h+#@Bzb>dj~1N61b>!Bmu={+duC<#yxxR%SabO`DAlx<58L#P|pUy8P6IrJlKE z?1P#d!dwNM`I`fszBP+mBq!7kPuMB?L0_AeV^?5m;2C8YkbYIa+NWyHH9-8S*gbF{rsU@YG(2& zmla{P`=`OIw0)YA8aFG^S&iP`>lKzwJB^-E=%&f0?_1ybG`=w4@8h$0OrUXa(jp=v zR(E5gOOFKVOJ5V}^-DMKXAkg+`l-FiBS!23bDn{1E}iB4esj&HLF%+7D* z8K#zf9xQD&ZZv-hlSR=Xu2kuVT{tU<>0HOpO{PLcK(p1flQM#0$gODCtvEi2l1pq4YF&bCoyNYqTXMav1h})Z{)bo&J}jSOBw`RZ66Rry=m|qy zRth}UGKN{VB=Y(ETR+~T5XZA8X6;QCZT7liUqPeCuf6XvNK6{|v`wl14n6=5kv}nS17e&z0yRv!OZiMb{{YNz47dUcaLj1Vd)y zUbD`rdh6~DBx?vdx9Bt*Cwt?ilv*tk-B_dObxjA1M6C@k;B+t!k*(en z4dZ+@rCJ?lcy@xd@#UrEalIgS`}ryltb%}h4O>mV!ZNvMX2g{xajO}8!S+pwLO6?% z_Y1Z)uM0nOxeX|fr=g#M`xSw3A3=P8%<^8{%ZS~a*O)CRb6^*HK5y~yx4LvD%?Y>K zqF-to1kU)cJISI!3EkFH_1a_xvyn0UQ&<+=@%C(;SRjMl61|%uf-mqqrXg(-t8TIK zf`L+MBwYccfnd@`NMgt_C;}$>9Xldp07EhdT^L{k5@Q=lUjK^CT}La3ObgU#0b zf)%H_J=m{J{J(TaGvT0zAFO!H_I5zlVF>|>y9Oc0qa4osg9cmUCZWT;s=4cx_;DxA z=-2D@`_qp9)%iIi0|Tf7g^iVUZfS{Qc7c<1iOadkpc3teA+z;B$E-?X0iiix*TQ~g|Fs_tTZQ$pp7oJ6;qkK;yH*qW5!=`7;HTBq z;V#kXuOsW>(a~`Kxu~cp*^i7{8U;;F?7D4GW26B^it6PN0u^@1zi2Uq!Gh{|cGn?~ z0IeTqU{QX1PRGgM_PS{UxC!fG4SE69^d%H8>XglJaFAf^`;VpKksXClKX#ddIh@cB z1XB!9mil6{c0EiJzrC`ma&LY&EhMW?iC{rT2+;-l(h+VGU4k{;=2K5z&smP4&N@V+ z_KK1CXh99@cu{bZJR4T>sH2Y^W} z^t~p{e(VRrxrwKqU8It;8;^B}Js9)HQs&E6yMU)Ru|gWch8Uh)+kyrep*s$ zyr_SX!qxrp1<3(JaF#c`l&vQOFj!xlCzv8YCNzima+btc(O1O&g6C{8j}y%{+9uVq zfL%^uG}MpW*q~RASxkwQ;3DdJ%1%CGcj3wA*+mY^TUA)c;a;LG5$tS^^3u<}YbdA) z-t<+C4_VkXWm(Cn$UI{6uU0kC)c(EcCmzy;=PE3_^$+yhV|SeY)|kFkJjN9Pv`;(Z zJxGt89dmYK22N52i-c?RJ%%C3`1ghzadp8s#udKLUNlD?n7;sE0gX=wXVx8hPHg3`!|hTLeap_nirDYuNCkYF7Od* z%`vx;EIfXnZY$ATTvviyl303d zBv$=6#$HFWKn{jRIDflJd6Qc6J#!2!gse4VH$wUr)sa~65wN5f=P-P<_FdIJtf>EX zBoHjCfU98azRrWIfEo?|Hw&`BD7;rMZtM?^%A^v7sAOXaqKhsEkL+mb&f3ZvE1;wa zR?pWf{hQR^%#)@EgHvZ%>|VM-t;_yBgLa>wKH8L&6hFTnbMp~oP2QedXtFtExv5q# zebveSOl!j)=GW`Tk0;keMHZKGitYDm$s}iUoqvBD=+YgG{;YCZ)a$GpWA(nMA~z15 zzgZ{zZmit$DvP-AW2IweW+o;kHiSrjqM2G)z^L;B4nXAtPz;$G=|m^+jOfR;hwNkh z^x%6d5|U=0p&~Yj$A>6Fo4{DY{Wy{kWF?O{t3?u z7-Xv!q2DO)ZL45FOXHbe{h*j0R4M_4KuZ8kO-`t6;PxBO{wD~PiUA(8g+_3%o7cA> z#Sa+@Ed*;Ygdx-x8CA3;Bjr+orruq!Ja@OI%Cx8r#qqd62s!Cfn8&b9?Qc0lBkoqG3LK6dx^JQY7PYiG&XuwM0B zoKctW6VQI;En5r)Q8iX)xWrD$ozJk)xhmGB6|8)##;Z9AYaOqG+O0>iFsuL!u7qi{ zuKVjFF3UZyRK)UBb94GXSDFfOTrUeADXiMY^&e6{^4*!aB^}!+kS*AMu^JP>%sFc> zypZ}ad=`=-k6H!3}@qUyE{(wamkD8;uoC2WaW@hPyG7`bD4L-@h{;%r&!&HVLo zXE$}4f-Y+72JK^CYi+8hCSs?DVNrE0y|75RkZejIvt!qbcQkNL46f3N;SZdS5eAIJ zERIQyK}m)9@QMo2)x$-={2$Jvo#r6uuF&EZ2lijfbOo=^o5;$BmV=*=V}aPT7ec37 zc|!Qvi}iyZQn9x}@pN}4CTiOI=Q!);zpv+g5QPyN7S^#!yK|tuP|R&YAhhDC$%Bd` zIrn{`v_cVP$avkNtqFUM0$suL&lP()X>XD;N z3ir4(rbaSQ9_A$NRoV}kkwi>dmsXw|>t7J{{%x^x#$Mp;GNsDOl{3{hkV4TgjAO8j z+gRHad(Mffa^z^;r>`A8B#E0`58t_8RVFu1gj5MUeLzD1%4^D}8_8}`U9(mX|)0Fwo zl6c{-VUU5&#Jtb!1MDbJ1_%w(_xx|+b}8B;2Hj?)e#TU8wsuM+Iq0(0qwPzlzx~>L zLe|x+CtjyT=Z6-`R$eG+@f#Nf?8mcf?sxPDsrjt_!5Gb8d2-?bJ>2k4-jeT}=FUY2 zvCbh4q8I?6~TQJE+rrlES;! zi`V)zUblS91-va8mQHfDHC*kG-MC`fXR6uQPT3{agWQE^%h3ZFVHfZW9m(2$J!eZ- zt~8ggrAwV(|I#YOYqr`PKcS7cr`0c z2+*3;9R#Sz(ivQA7Ng4f;+f5QK%3)8RJs0kpARX1f|DNEbCwlbAF4HJrG}u7^aRfv_TiJ!bug}Zn zMYP_EBBnWvU2Nk$>>tf~1a!cZ(VnuvS~&oh4x!?lur`$=GCKzJ2MSKL{qY<;7uzT_ zh595nSAU0`q|; z{RUAx#QY<0Ls2sXAazC^Td}z@o&LgRehYgU?3*w z72Y{T!h-jVX$x<9C7If<6tHFBqxAt9y1*pLur$}UcF)FXj;~7@eV`T(VE+&)Q-*{T z#$#O+9^Gd+WE_i;M~qwBN>IiehA1HRVY;T(G9y^D&FqJ(!|xRQkg&wOlnoVi&TI?6 zaWbpVAe^L@f3bt~8{Qe)vea4NtYJ z(p0C4B%Dm>Q7Pf3h3A^L?iGH%Df#hF9$reD1-|t!t&9NB#rR?h#JZd*3f=BB?|AyI zZi5dJa8znlNn=)^b!e8j6-m}~YY+C1S}TLD-od)w&9z49C3d7K1HRAubsI|CSa}|{ z^&f4XKFg^@xucU04og)}22Yy7>-A0_IT?!oh-*z((gQ-~F^(LBJZ^92r@}W7P;O7{ zj1M1izjgA6(o5JI!DbEY-GT))&SNuiNJcl!fxFJi+PtDv)-AW;@@y>q16eTQdGTc| z=ob-MY^w0AZz5!B%#U7|c2A8gpQ|V6rJp@2h{n`9HKjVXq&wEi{}I@amR?G_RvU{0 zK+;=sHY@_MTh{uRWOjYmZU~U4qry;I{c~TGsk>5#d%8Gku%40nZMOc7XvWZ=+y6pD zbeQLENOv;*`Tn8>Cc4>yqjGDo#xZZXXwYqjnfl}N{-6^_>uTF_V)F3@v1P^ikqt@O zU8b5VsuIXKgG)yY1@pqR_fVvThbx>E(#6l2T&?8r9(xJ zl_Uf!V;A;EjWI*K_z#g4PXE?~i^JCgY13VN07Pa3A$t}|{h8P&t(fcp!raQOfi2_*uZi+X`Acz zT`w616m-kK7$VW8q;YwMFYY9{ANx=}far>fyRe1;qw-f~`k=FozTzZ0C=uLQq|c1w zWU_X3X^GV$I#uIBq%*RW&DE1{vD%U%?ekdH@qZ5{QIzNj`?xWo!~h|KlH?ibB#y*> zV4-i65oZd(>z@Q%yDxjQ3R4H7KFHEcjXMV4=?MShs48W>C|d_Pe$!+RTV9 ztsp1=kZJFa{$b4E(=@b{bSv(gDFBEpS7|ci3%QRRvlfNL;0j`r^i@|B-D4eH#O{3| zh7P)4o5@<9BfjDh2;%3WRh0%;5lC@4@7@GA&HpY#MhUnnH{^vg=NfvB+9Fb=I!hL1 ztl_3gdMuZ*JpL|SHu&rPghjLn;N2SimRXn1<$MpjTp&hg`1p+FU)0Vf`I64$@Sp!; zbcBMgaz`;le3_xH&+!FfKjQ|&3T5_nLfcD+IvR*36YwxYDL_7?02v_cnFLV#!1zTh zj)v3aTPWWfJ89Vz6LSOa#({LM*PS9$b+^v?o7>6Hi=7&8N~1U7+Sr_xpLE%;_0|n6 z5TV}Bw_@Xwqi3ACsR)y!I3M~cic$iR|DaYF%JfGK_idz>ujJiZ0PdJJRs>tRHOboLcGWV`U;>;*9TN+5};m>rcxxK1Z57WB6;f3Y_hRb=!0K zUiI?rF45WeG9l67cUpIq{xxtlW?Tyx)iNpF`n4fhQ<3-$HQ_I+I(qcFXvH9Z$rN|s zu7}Ub_$Y|3nu1!v*vDNO%ql!PiGYq426ULAF3V0x2K~zJxB+ft)d_ih0pog^-Fwz_ z-E|h3vd;fCdnVmf;BUoBq7PFj?)QTg9i=5+8A&_XML8k4sQ;{c(+h}Yxwrx9UY&EuR+qTUW+fI|5x&QHxea<-R zYF*5mImY~+@5KWGOTAhLE_y{6L)Dm%XpJgVKL0!BAT3D3T?aE%`MX?+0fACQ(JMYL z)|+X?_V1VSf%oOd(}}NzfCNJ@+~0p5K~P|L}W!_vT5Dd*B60KyL)s*9zVLIYo!8*j)WwyuKog?%z}UYJs9>V z+RbQOL|$xWt8E+|Jr7XZ6;YINWt*r|)Sqjq(aXA(OG4_9<#3@o_ggnnu5A}=gEpIO z&PVrjd5XMhN2-oFr}vqv0bAo2$);5HS4t?b#0j=lh z+D^d-WsVwq00i15OUA@{!G>E?6U~FZ(}(5X;rR!Qdo-lbor3l!JPyEEP5xUTzbn1< zqF#>Jl#<}fN^F%f7e^WyV+!u;NO4%fCa{0lx%K0dh-{=NVhU3bs%#egRcz$d z5n;+13(ERU|0YDZfwkw0;OM)zTFdwOv{I!p{LIQW=&zn%)hA-U-ZQ}pl7in+Z?)Sf zLGBM`&=UH`?gQDKy*vGmOPOJt;p-7uP&P0zOB@1X9%>Ow(ibZF7^3QV)HKe!R#j{P zG!n4T(12+a;e5O4?THP#4)0m|>ws z??>c?g;#f8J_Jcw{Ekni-OrVKR;y zAu^eNXV*IshH@HDY-v9iC#w3@#64pr!M?g;3t=tTQ7AEQ7>fN#*VeXoi33%dAh8rO%>tg zMYNGv>7|`tACA42&Ex5PF}0V#3;FEK9=YrC&Xa547+hi+7Nx{qV-poCwaX;6j5u<) zqV{U;K9mS-!i@C<_^evo+T{+mg^8H5`_rcuKAXa{dbEvdIwa}}_ zXkj0)j0s*t@di@}>Z9a~DpXRnF2nNFYWFdghsQ*#agy4x-RRsqqi)2!3_gc5)uDkX zH6fhD>G>8>FzdzG@SC{W;uBacLBk~f{YykfHUxYl{r&yx*3>E$YAtpkz>4kqts{UP zn1Yd#7Vhuw1J9BlHT4C2!SfAWD&V99`Gl<_j#~NsQpz&|6M|n#Ipwb2`V4dacOO)g zB&1u_cDS@D(l}b`r@5Cv9Y0Y1chItaGrg^{cKsA4??y~bb1(8ola1BN@>0v^PV(7x z7_+MF=9$M!QNc|^6=b0qH_46ESG*7B)}2?h*1!{R_MGcfg%!9QxQO}h(4Io1sG{^7 zW_n%XWU0SV3ZfBwuNQl}g$JcWWBzy+5;qoA9z$R-&Ls`3t4atF@%@Rprby6QB3|3A z?=w_gWVy~sr-mc7S#JAfUyE;t_pwfiL%8v`@h(>O>tbs&KjZ&%Gb0w+4chy!)j5*M z0f)TdDJz6vpwq!1bg~Rz5)^$fMiDxZ!W7qdrHaqy1jYB~oZ^Ey=nSI3?l~zcgpMc4 zj0-ZY1qo?`idLM(uQ=Y#h!j~4v1RZ6o9;L5U_$Dw!C2}Z-00z$OJow9C?gcm=;86` zy$~ilEG@a;_U0Gez#KbwO;+vuWCT;pxuNH z8hxRmXuKqB;%lIv9!sEfJe&aS>>#0{qQ2m>0ZI;@n+$$mzQn$;*Bj48auw|pkB8h# zqhejrd~YLpO~ZeCmWkRiHu6q)n7PC3w%WY2YRR@|N3#Im$<^YieE5j3qvQ2vkyVtp z%d^B<*Wa~(JgV>ge)95U@S++Y@9p_=be!B& z4u3N%%fjOFutX0<;CAeBilb|&+&IvObDv)e8zL+FUJwp1bRJ$t?VEbA+Hio$O>UzN zgFcQL@u>TqG&4^>uM0`KjTDp1L!&%XqmHT3#ieN*pZx5kpuA*Cl=Wmagz~40X1z&a z0YiFzYHV_QcuN&H`KZcb9~sk-m0X#Pct>%<6MBv*Q&?<>FFY;MV#wbRFT@Q=VEhtw zN_p^Q_xJ!~h0?Di_LCnU2bAEtdooHP@EH`2EQrv$hQ0nT+~%D3>3KHd$#%=PV`CPr zyL@(n-tYYQZ_BEcF5!zs0GWz^ zm7NGX?PhiAt;fA6B2i^|f3lU-!Dsv~=!+BFjUJ+A$LsFC zIlhSUl+)hqJetakXcy4e*LQYyW=fryo}Rw3ZZaDE!RPape!IuJa#-kZd8zx=a?1=f zwC$H19~sFH7KjfBj;R_S$4zU0q{G9*;E<4Ed8_xIYQjbd`ROr*ja8LFCEf74e`s}U zLS&7aMVvH4V>myc#>a$*HpWP}xVVCQ%{0$kyA>1^PEJn5qHzHBOZYQJurl0NxxI@8 zrUB{h#%!`qhwIS(-{Qh&KY9m~hpXkls0(-^k9EKiVIRt3=VVEK$RHLG;_^~NOF zzYRPqGGjx8=-R8pTjt~h2vZE?S)2#^`u0dXvjVn0=*#>;Z{PmEQ%>o#F@6+fjJp-m zt6()zqF=Vl>`M`3IsR9J$yNGu116UeMg1VKXt^lVr%1F+lFG<-k3o<}<(^CNl~tTE zAPWr>@hT{P2Voq;^^cgA#-O}>ViQJIE>v*NVEDoc4w2>Mz>8TU`tvfp-Iwn{u#bP0 zf26;JMU+x-fzj{bJ$X}PSl1kBY=OtWfu*pl%nm0~yJgZ?^mj?n*_eGIA_x2p7qCjhg2=XPLek>5c&*;fVwyi+rnf(r zt$jZqh6ASBAEKPue71nQJmRM%;LPK?Dm4z`Dknq^b;GHS($O|@1CT-&8DAajnm5J zi~GkxqG^9=CR_I(mPRAOVCz3Eem(FT5eeet{ob8-f7p+lAYM+#qnPbfsa{esL2c+Y z40RHWSrM|aCF$~$1oPPUFArcJqyz~5(#BpNsPrucZf*i&qJ7BuORqGlQ7kbu+bWK= z=K}%ZigFrL&Mti3LM)rG?08mNnWuB`t|CHabJ^EYZ8MytGiS!2D_MX5wmzN zJ-l}YobUdei=6p)Qz*p`|3t#!gD4T05$axL;WE+YaCm>o_I-ap+zct6-s16iJw*wp z>#UnA4{CaKdOIvw!!EAkf4SGF-s&Ll%9MH>)PcO#9>BD#+24<^Qa=H73VPYT&2j`ADJO=eVB}g||B*x;V6}8sUGtf-)%ATKZP6&(0OLq$hRMMpzBT23%nNikVTLS8mEoUl&{-0FEm9fEm8 zV`F2H*>g=xXS#jY&Gk)9Q{&^FH@hO*p2eV|exd7_h<`6-H`3mP_hY^BFcDfX{N*~? zyYsT&^Bmk~71MXyvrtL($nDXZ6@*6%I$1g_*zbO-s&2u3q88Q{Npjpq%Yoh1D zYS(jC`{a-Pj7d7^;zF>DAi(@-{QFkbL!s@Z@s8W|Q1(--ObJgPGbu8hV~9;iR*8UYbW0hvl;R>x4tHak5i3=N@*g zwa-YWSG0}D-`*3yPFEFl`mDSzh~`F28LiVSw@0qzM`UDkn%wDZ2lm25ndDn?`)3T?3)-;roFPI*G7Ir6kM}g= zEuHFhE@Z(@ETS~bgOke3*92X{l+QCPRX#149=eT?9@~Q*r>N}7OMa+QU)Q3566=CTufYq#Q7&1?# z&rY1-p1{2~?wf)#j6MNXi%_3_DJwhQ3UATvMq_U-VCmfTc7Ogb92Y{b)A{np$9dcL z*{S}>$I7KM!TwKKYGF`4Uu;2EK&`2Rz4lu_d9^5hXNg%`P(6R6@`N?Q{8PuyF>MZ5 zy*NoOoEaxg2o<^n-e9X1+Yn91kf2~{)F=INX)U0nC08TcAd8T zM1_MueL(0>j%-6u*BRJUH9K2u8>ac3H2{~_)2cmTlV??6YfxY$1v$kovquI5?Dc##fp;D~hI$Ky zf`s+7cHqQaw7+9?g|&Btb#{fl`$c+$*EmlC_BURLT&S)(XBj-Ce|B~j8U_a7ri90( z9;1>G5fPD)(2$T&(9lp2(NMsUvaCAv1;%_20#*Zofjt`g__8YzD{h9Sro(y+H#awO z*?g5&zJW29DTT731X-oOl)}kE*AdXmzHsS9iVsTvQ)0s<;xGxJ7eS}d3uXsF8K_Ly zx9*HVb@uKB%I0IJ77%=^k~a%lr4-J!L(Rt+ zq!6wBWP2M#rCW(Mr@cr(MM(MbRt8Xu52p*)T08_?2$o$bHkA63e$@BphSmJSk6g!2 z63x7(LWyMQb&H=3o{?Y<$mb`MGK#^f6T(>~^q(p3NxP-m+fI%CDGBn@LKugx{2Urg zK+{4@N~P50Fm(0Qi3a=#r{9L~KJkLmsn5GY6%foo=v6^yYDqQ*o09`nR0BB_T~{?d zeDEE0$f+mC#}t&5rK7df5?4Qe=&QFz8P9sC{54}kYBWbY6R>&TAo4Py>81bLqIk zi5zyhw!@Binr{QcXY=j);-!6BHsMJEf(@4|?GSZWJ++YgH!<^C$z2Qa`C>phQt$iA zOEo{gm&enN{q)IYy@PdWgywX`qcd+0ZTWZYbijovwN2Ta$XJgr~r&htNXJ1+Zj$hQI2#)fUr`+paM zj~{(&j~Qc4>AX+69Ufu^Bfxdvy~_L}4Ms>Y=9uG)`dj8yX&V#AtJD2#g#Vfg*i)oT zU)7y@x9ajAKO}lG90akkG4N1nn7%W}>_1k~B((hd`sngbwT?(uIR7g4CyAf0vqGGU z7X*}-WyCUOoR1v1s(!feT~T>q zp!dw|JXGzmA+u(txC>R1@?ew_qq&o#Y$ujUmLD84H5WbDshsJPk1eQbD|I?Ow!6G_ zbabq(fxt)}21drXxAtK4E)Xy!XR^6BlHs?Z)SWIxVp0Q?ELXYbij@J1t=hJh_E;k@ptx7ZJ3b6 z{);8PA@2q-$##)Z&eL@-j^r`one54u8Bh43;)SU&-{>@XLej&UNHU&me{(!oaD=16 z`Q86X_!hzc1wt+EXcl}PMx6nLz8?1;Lx6WTrH5e#3*;<7Lev$9jDRKys>?&GylMYA zfvrpFr>BRIVq4fmO)Y9)bla!y!F^iFbg|B7tkW_WQNsL>;}aq%zpp?+D)`%^$xM2u zw*4#~xD6%v&-H%$VQ}rqpu74X*rOGBc|?4Ce8keEgz^hZ3O20u-_(LgPH}}VK&tZd zabXWX$9X8_vrLvbwt7TirrnGn@5I1ykQ3raD@Cea+R;=Qs5CS~i!+d@BL7yFPi5D{ zwWam-nYmw=7N&AMAOux6{ShD~A&y5PNJF8KPdwXxPE0K3G|J*Z{Yfz96k37VUR(cU zIc>rstakoL9l{x?%G&VYA)JW6^pH5qPAAUcmH(%f*Y&8NirKBY$$#uzsEh4npR3W`n|a3^n?pf!gjCHnkE?P3(7qZb|! z4Y@-CTwoqt)4tH>HzJtYl!yxjYYC#_Sr)~dv-`*zSE(fX-hKB1c-H z_bY)*8VD~5Uk!C2{O;7zCFQ2A&iLU2y_n4PiqGf1%6&gVUyEg#Tw;Zip5O}-ojz`V z!k5s=#OL$rTII&_YSY+c#G|M#sjI|{RilGGe2i4~@PR9X8VySvGPGnedl)fv^*?Jk+WktM(e%&<^v^B<G`dtC#WFluu25&*LyeActPa3)e5Yh=z}!!3;LXh)`j!@L z=JFn!!1W_2KR+J@V8O@55iT};tXroe@9pf!D=8JoxA+Qsr;zwGTX3ZZ-$(g)}7NaIc-M30Ue^6n> z7{e7J4N%`~>jA~0h2e|!qN_}zrd7X%VB#EL;hQE0d$HZ+MrGQeoo?$2XnWYK4Vw!j;4ECDw?<2Dy2E8w)AkT8PyIf8OJd=Th4T7dLNa> z_}X#rvTq>Rm^`TSyCn||N~uKUT<2(MjM@2e^fFK@ee$(#1md@fm-|uJZcirPAt!^` zsZoXe7vehO*}z8YHkZE-x4iIWii9c?Hx zKQC$>dn|=a0BZ_caiGQ~4}#H>UbiE~OwEa)Y&aN&guiHT2}@<5em+>%LX@gZW(pIa z)Y8ZCR)%umG~d-I)R&50tCO@eK-4=2XAweipg$gNsP)uBhVDpOf33L!tyjI-ej9s3 zd|_c+FX9YzOEgyBwvlM_{rn);yTaqa9_iMkb)oepH4k`Tbo?7ry)?Hgzcg%Lo@Slw zl+?tl=#%^Q9wLW`*Bv=-^J6jM*CPgzCgTVhv{60{pxMZJAt(rsV7h0kOpXb#2)}dCT+?#<;#4oDd~=?}uM` zcBjfS^O4)WG(T~WXoiu%Hv?)(k$UYt38j~;BtJf&7n|SkI(*)8U614BywE}{b~Jp_ zEAx{6r3uWcA3=&`|E0irGTsIzOQ+ETEtv?IosajmH(Y zz)#*65RednmO!SI0E2aO8g+aKN)+)Kq}0%R*bqK1<$xEJ=pUuT@nQ)S60w26+HCQOVl(jkTYMw$I?AZx@$*WNkVTR&Hb2L;wX^rr!`x<1#CL zd_v%iZ}Crn6m4P}c7-{Cv9=gTQeJedb>rG|2k8 z!gSz7sG`3U{LtVg<2jl6@N&_!)J{;B9wUgE$V^%+3z@wPv`5kMwpX0_n|%8#w-h-&GZl<(0tZo*^Dqpc!wT@Qd86Z ze%aQG!Hckm$T(QNbVpOEjRq$;bYvR7Qo-ZqM7|+?al+!s&7qURg2NoV=$^c~Y@|?* z#drSz(9rd&jf;y*N=nM&8ZSSfnuQKNdzL1f!}eD*io)f+r%T-RDBu4uL-dqom=o=( zu_<7-&e14plvY;P1<<2nmo09NSypPH1&G(=t$w@jwZ5h8`2N`PBoN{=L)sm=a`}G5+Q#nJvUhPq}I}-gf9|c~ZAl@PP^gK^L#7E1?hMuMiwnHb~tz zAP@8+?hk23G>er9_A}r*7j)al<|6|dBT{{Fx4WUXtlVc(?>{QgL!Pci?hqMB44xF8 znt3kZ?k_;4qt*+{`$64F;eyuuV!>BTTom>;DV2=DUcq3k6nQRfhSSRYdMLRa(R0hU z8ZSfBbaMFB$8_$!nw@N`Gt0A@Hm4ZDkv6mG;XZ>ABZZ-y%s{8^>9pmSOZDFET9ZlN zn$8p z7#S*xVP>OqE;~FJNx*lGwBqTO%JC zev2#t%?Ldzl=thmpuyifF_IW@$#5wNE)H&9ADCn>2B*eu+FKV=yb7O6wHqzIXrV2= zAAs#;D8n(KW?(FBNRG=mkro2futH$}1-F6YD|!&MRWUN+-+DXg$c2uyYP&}97po){ z$HL{!Xq=q8#yHI44F8VB3*1KIYc8jMYri^}G%VV%E~i$WDb{ayW1Au{f5|9+J-U@X zt53kLOQ`?5coBnLwVxH(caYJyU8Btm&u>kISfN4KL zUYrvkb_p(K`?XkvNDr8Gp~wo`y<8KEp3!%0o7A9C;2;=+7R&YJY~R1;@vn3gjw}h) zpgdnuHspd(HngeYT>ol{*(O_dZC~w=`xr6$$U`K7~n9 zHhZ7+zFckx_O)WldXblFvg_qZJ6#*3)cN@{lAQBYvS-bg^fuBDlbXVj23@Tuu_{T7u<* z=<}yfp9$$B|2lJ1lFNt|rB3@hy8lnukP|)(nlSB(cl1y_hDeo^8T|gFz6$$}kD6$( zG-3prQINnN2Jo7;D7}pCtMO!v0l)13!?dFmsq)e#k$H(5e zlg`(h0+Ul!1k3`;Kemb#{WnQ>nMFWM2DKM2b;SV;)<3D=-rgXg*f==cfN(CrKVY+z zHJdL8yW_`-9D@^VkB6t{TXhyzMO>>!RT&eYa2>bIv$DuYg`?aM?{xXx9N(YB09-3u zUA+qwY+q4ru3t}}Cour^i8(B$7)Z}tTX%$7+&rUq`Bx(br_&F8`QMs5qCB<7AnzgaSrBk(@g2FkZ6DT0a~5JOw7m`Uv}R-jM<*XFRH>K+RKyt zY;1QK8?}FBM2&&Qs2Axs9Xu!McX~RF=&u{tgx1l5sP#F-8TXV7Km7bkBtQ6W7HKb@ z0Q0oXEmoXZHCkiTJ~~_TgOYfR=<#sHS(Zigp4HJbkpZL3?p4RnNp6Ee2!@;cLF}A7 zM_kdY)OCdRN&Q!y2{N$WcQp>w-kjE*E&`4pB;Qe_myocTFbSnSU^%0L8lwjb(H668 z??NkQ`A^X>%iKRJ;L6CCH)hiYU9YyHVq%8(ZWMbl5fKp+0=&KKp9V8qW<^-uYOx4LkL(nr1jHiLd%U8dFIi_xN0Uvg+q+(b#Q=DU9A_U)$ZRc=8*Zx z8z|NKygnI+uj>M~c~LUTi(+IM&N!#4GE^2W4*Fw+YVQWG>_~htpqAYvbx@uC^et** z>cYmZMU{40mv;GgBz!cR*7y?`s!h%6jgBRaymFhfbFhq~LX^Z!5b60_C3Q z|8!f-R^3^Bz*{a4!3cBKbDf;m_FM=al+=@x$DVm4VZ3hqb4EpY(4ddmy=yigx!9Dn zPL9~x3a8-vtNDf~&!MlI!sj|AXoQZ&WXa~`-71ETd>dq6TJST!Mz)hUSJwMuK-IH_ zNf0OLNlh59leFTB01JLK!t6_(CJeePxF*Er-ymva4`pF0lW3PohxfWb;qglc_Zi-j zC=~GrJ`BAMO(iPzytxPa2f2$T8mg0%H6XQ% zZ4W4tMh&6gzp`P8ItxaLLt^k&@(fumYp_X#G#oX*+gt8CTW*j4x%Cs;lHoxpj_TC9 zmD8UlWo8|qH;*oEOJIraYb2Yt;1%(%4{dE1I1-KUb*O8M&TNc~i&3-_IE(TlpWeQQ z=Zzk<_^}9ItlymFHiXd9Cjirhb!duLuWkj|IyTLQou=V7|Y*){(;JS>;}AJZ=$uh&!2 zr*~lFa=$UxgwMxTc`eOG9=em@5XPDI{EyHvpZw0>(D{#o;lHmVWPC<9uj(x2=(M^4 z3car(WNsv^sW|+|*oAMbL1!l?60)*Ov$G0WeI1>hzL9+wy~LJk!#*%O>h%UciS`31 zj(nx4f@XTJ?BKkj<4Iev^X*JSlChM`Uci%$uyR6XVsmF#|N32e+u1RYlbeA6y?Pv+oZyHz zo}OIIED0Me8k#yO=a*JWv1s$2Z{KES+{;fCTX;Pmy#o41$H%EDC`QJ|bAJ=8Je#}E z{rxVK9B3I=&pKDE*OiyI8z|?S(r2zj-10-161Iz7Y0B?&%IWjeQo%f1(_o=yqabdm z#wV>@{%nDkIk=o=Ci{}=Gcw6vC6$e4rZS5(IrMskIMN~(nemL!YALpraW&TYF#{^I zvl_-Kmww^b@?{Qp?Vq1%Tq$Q9PKEt(&Z+x~JMG#8v%l1+?ma0bKXfJf$y-R3-9Dp9 z6-j+SMq0CJlyjP7jOxx1au~5v_2@881&G=IM4cgK4B1t-YV{Xe9BlPGa4&d-1}}_3 z9Y7gziHch)g>=nUI4otQg1YtPwNoT_gZ*~kzg;0){NowrhF+qPZRtRzKQRD`%k^R3 z=3OHO-o{BkF=3V!sqBeA8O*QDzuN^J*x&` zNA*ZCAN?>C%$q^SSJ3P|?jQKPci|5q<=>g4k_tCX>C$&cXCGD^V4OkN6@R~}BAu5Ii@}}W zr~o-*gS$^-BqmvX2csk}OcBK5MZ1N+6VvfKm08 z=~+fTt7QU$HUB1$hv_}Myxt4%sNvwfBpsPc+am%KA6>-@c{0n8LcC&2Qv&$K>bh7} z8$ULUFWZ_|F){DK1fwCjqfbYOrJ6v0;-%{q{{sLulQw@D!U3E~xyUj6a-3GBPu9(B zz1p@owk9esZ}#c)x(%N}!4}5IzyJjet*NeFjHWcGv^6xerDZV()h%_4IiO`n(gS`O zXhz4eNOTN7ycflw?zk85zFXe@iq`=&S?^P!w%_1{4~ExL*3S}(OExIt@GFwO@~>1m zv{rB^8){}+=b?+i2?2=iTNemhd>{PDqy15a#GEC%B0l5bJ1)?sB~DJdzD_JE?Kq}*XJ z4eZ;rjJoRb#HL^(VxeNHIPvoS?8I|qp0B3N$jroj21<}gV6oiW+q<#BLqzmVIzV)6 zbkwgqEiG+mXlOVZx4yQP@!3FcZE+E;0rNLUuMi*KaC$m+wXP*C%}8Sd!=$*}#YHO^ z%fdN>A}T_4@ch!8yn@QNzOpjF70l00O_{Z#tgEUisi>_ioT-h3qg_wmNy3>mqpGPW zFYnvfc0wY91qTh18b*atPH}!|?uR0(EGHzgT~Mgu`&SI%ml&frU8{v0EXRI|LMf)_ zR~FS(vw17GS2nev<>Cu`GthlurrY?x3EZqbRrFI8p%{)rniS8#?HB-CGg5qvy1^&F z$#K4JbH{e94$}cz1UtwLJxJT_WEf!{pYPvQ5wdR!NEgcqn81Hi2XycHVh35uBCpk& z&ng8(!k7O%rnKTtwln(y1Bvir$IzDt=1lT^E2Fr`P9I?cTV?8#s~L{bTu&5;MmWLtpVKQHR? zG%g8RUe(5OJuZemYyXb>vno>KlQoDNyPk;fk5KP|LA=K~S3XtaNcrE7pC{5%$zvjA zni_$gGpf>}AeaEN36>N0#fhd;k?Li-4b$xw0d~_|Es}rc0r(tW2PzwRs&O_`R~Qz! zZ|}X9QHEFAaCdDgn8+ZF8Uh&|f?utQy;K&5krey2WwgEOL#pa5cBCZBvJbJQnRIrOzz~g zG!GyN{%pCL-{}~MnfdOjNCq{14v0PIVRf+M!tyTSD5{fU?C`GF`AUfNAl0d0XRq)b z@~$S4;P0s37pC-0Kb3*?SEG}{=nr;Vel5a%f0S8X%0G>@E(@b!suxrNP?sO-sc{;q zAdS>VqL&E_Wn5Tm9c4}TyO9}YXV=U38^HfJ%TLUnbJFXyHv)0RiySF&6C9mGUKmV4 zk>J4?7e91t_ls|^o>zg!cSDoqx=3Ea?FvD+VH)GP#e+%dHQJ_g6fNmFsi&YO6^EIC=#eud@`MTf?RD+)7kvZO--^Q zpt13Be14yQL4BE@lrYOlZpnJc$jHD55$I!pDgzxIog(P&{{H*qFUkzS79t`779v1^ zcLNR{9w67Y_7`i7|NeO~ zGuH#OIURp^R_-a(p!qp@_PJ%{etp(!3#?N&=MF3+6=m?4{!~otA760e`am^hYiU?| z?#gIrGR_^fet4n^$c1*27;tL86@_ri%PedxjLc0ciu2zAY@vc!?eU}0h?*$$TO?nF zM{eE6yfToP(HJiZ42~h7?GVrAt(g^R@M)=SIC2&2uMoHh>|Ew1PPV0|RiogG}X;y!tp@uq44ea|` zicVA)CSSHamhW(y5LC?x_HaJx3YgJB*@{2yVU+!Sm4NwqHAF_<;xqV{^X_mWFHf+< zq&JGbFc)1<6H{;SkH>%l1rET+0Xi%zi1QGN3_+@Mo|#KgbefQZ!JpM)2x&dSb&5_T zAKa8UWVj$8H|ru`@a$(*unr6l!gVJz2lTV#v2pJnY`f_`^sgRit<{10K-!=|tQPN3 zI!rUOQyp!idI~0Aa3)jaiMU21l)61AFI90h<6Ilkc;~b#TRpW3ZHcz6!EXSJ7+*IN zs^$a3Ah!X96GH{fiCews`)oev?w~&H$+*Z{q!{SCNFed&(?GA_aBt6%Qq}tvwTg3^ zCtB~uNG0=x#~Wr@J2x%Ki|I1LZxQ9kk2$#zXH`9*T`FVFB(wUu667@wU=LSu1X-yo z%o^UB(H7c6+05hhgjB5Acusp#Ekp^gtC-l9jnnIHYUbcg2uXIdAQHiq(gs_|l61G&}XF=tv>d(mxMHvg_h2mW4DpbYqG zh+jV9AWH)#HqA73R!4%S_rZRY0kmAB1*4b0A=LLT8D65} z05-XpmO9iW6$4UsJP#;m)9Z^#^8){$7Z(@6OadrbfN<3O2wq$se!Jd1Tg8_4Ny24K zY`?s|cSE9YrxxKh&N@tNbK31L7vEuui;F{+%)X!m2M4dMt*NM}=zS}+n4r*VWaH*TaB=h#3ZYs(=>;dK~_3M%9qh@PDvJ&)K+Q?9A`}j$H9Wjq$oXoxQL}F-8X8#Y~_X{r;>8+RsMEe0^lxH57o;i491;=NM3La?0K?9k$z=?(7X6IModBvF^cC%ZL?Ge7XkmbTo-Xt4 z;W3#e?@&Ll(@x_*tGxf6?HKY4gGh*Cl|AEHjpWuV{cCcLK2d|fAj>trY|~uDi5(m1 zZLzf~+L2LNQ4#^+K$FG-=aq~a{k6sSs;zuI-7OBnbYPE@;tyxN8lFyZ4_+fMT*ooB zKfxkcBM1LxWL9goZWYANgBpsaC8|U7p(T=bsulipPt;PFtT&)B;BKt?(gR9@Bq&a* z-Ak);;CDNSgM-tfRso8fyQkC|q?9rBZ;e$qNdVnbZd@1)exb)cqK8o7_qaF9X@0LX zm;fF!N$3rv{Zh_T_-+m3+OsEVwz#vWieFF1%Me}N40BsGu6hNYzpTNT17d4_!~J@E ze<1j>A-plGr)qbC2&oNecu@?1lcX-{4sb1RE3+XnFRl*b&V94NNGyAY2 z9>w;JXM$bvdtrJ1BVv2&DA9TTuIFDXWq&Kj#Lf;Jj_p>*BRv0in?B)M^VFQ2oW>~Y zmsVJN&Zx1bumMXLWE|id(i9XAJ^{b0!R3%FN4oMld|m7^?G%df+AHT|A?8fLtvF|) z{+-Z1wy%IEC=1e){KOi(#Jb3sKjd0M*A$@zXOSB+Vug?91KVy3z4yTTH%dv7fq5^D zjt~Hauwgsv04Ke)N0rC4+K1{AzB&^j%@;4f(*vGsEOZcM89!3B*Rv%|aY2DF4BwzP zBMmz28ZqER_u&t|e{i5s%&`DyycjUxQoxpWfpN>O9_wtPT$l@$#M4-)Bi!Q*4~n&B z;u+$CaxNoq#3i8ftAgj}XW5u$=9Px2sVI)m%mRY_70nHda&Ad+&{D7viYp7l`pf)X z{9iP%PR(xF!QI_i($Ij$YIY7ta$H(m`sU~p4(P~Y3Y$_`u@6%YYSVB20~Gb`GtQsz zZb%zAKGsfcmi5+m&B@8IS0lEbp?us#79l>)cSQ?dh19GfjCMFjjJ4OiU>nMwde1gh z8n5|=E}0$^Amyw-P(s~^2!Co_v{d1qFBJA~{I!}gY~8`A&}Wxp!wrU*uOPe(vY@L= zbuIgw^GW2L+;_1d?6{He0j$7*1yj=OgaYao$Mrm_?DNiPsY|Wd`6M zR_vU}u?lfVDDF46Z^pQGZ5Da7$lo3GIB;w*r2)IM&9zfy8kFOJQp4K2AC=bB#EvYp zh(9Qj1Ht4g-*?vqe%S!PAWG1k-0}ii)2?CZgeDePDoMd9y|rP!%$CIiE4L^E_Agv! z7}zSj_xlgUbCxl;?H>1p6WdSG5%7+gB0Snmve6GF_DCs3DaAF&IH;LNZtq{`oX$>!$^ z@%+3$S&Z)ralI9#<3Lyjg;?xElpWBaQILyTVsWRAW4*PAp)P56y?yi#Yj)-{svnU? z8k#-xBC8A=^U!6iph$rKlru&(GdE{sW}cs&eYdF*uEl2n*3dyB=eU{7uv9|7&rD|1 z`xcD!j>{5Yd1ng#g3_VLECc6pCpOH~RP0_p`hVhAZR09CNNp&z#&$Ap(f6rM?@QLP#0aqt*pmZiym@;*}mhC%{&+^X5@IXYvyH zvx)=pI%w;N(>C5-TZ^vwZ2T92?E!63l%lF)BH}RABth}9!=P(5YQxCRR0FM&y|-e! zQFh`*IqrXAXUg4jphql1Cyx;uS_-aB`xQG$G3pAQl0(4rF_?KnfPd`+; zdUM9&#J{b^K1_JLfsUmX%jr`&p1#l5`sU^*N~m;zil@FlUKj+S$s-Eo)X=F#$|zwQ z@aN_~pP9j85{`9Fo063`RTHPwoAgbbVDsTHFgv<)gcSOEyb#8u$702$(U9wei%!qb zx-IU)NbIJ_b$3wb-IGo~E&ZETbz7KUA$&4*d}z8pQa1O-nv$Mx{QbQjU%XS7Wj>U| zqq?57BZTz+_}6muG``E7-NA^gz0pSN zYLBJb(B@Ki4mLk)M~#jMTiX76W9kKJG8f}IyWDOKGbz)i(c~G1s_*3SPyWBfh#pXk z6zs*)dW{Hb1cuA^qBvcsH6Ryed~(7(S?Bsd?d>8@!AGz% ztRg!OTr~e5uHLad4mW%gZe!bS(pXIzyRq#wwx@ApO>EmX8hc{foY;+>bm#Z%v;X7R zoo_HN=A7$3DMG-E`Pol<&o@GG?PvCB@ymg2R7A>YYQPDhuxn2^h!nAI@B2c^a6IAZ zvvM+ppbt_ic8&k*7-iQt2u(uz+<+%pf!%E65Nto4m@Nd1d>HcHj5_}|C_|SO#~Kx; z(*|!<8<(Lb4i2JaW#rFkE#Y3zx@(&w`0#8!-OI$x6Bh3JIJ@<7@vN&YET|Y^W)Bkw z?`U_p5flR+Yk>k}Z8zZiZ|&bI9$CG}A9L+%-2@4b4$|UG3D@h~#xGYJM-!^gXefo^@EVFE@eY}aOR@9LN8!>U|fJ-^f!-&pxH6KQt|Xi)QNW~+bz zQ6QjtUzsWeUdMHgqXh;^;8Gwwht-#P?zi2Eot4~qQcYP{cwnt~lGEUZZ8#1~S3t<7 zxbF5>X2t4SNwTsp(95dWYukR#W&aM7Q!1j=e$*^Q#H7d)WmG_6*@z@W*bwPz^CKtM zVN6$41b%$zi3nckY(}GXao&j00p%99DXcJ^N{lmbYHEKrS86*1qG%lVlmM`263?}` zaEnBvA&~O8V?eA>a>`R*`^clrS#LaF1mSLR_2jIA@Jtm%*3T#UfELH?qa z@vSISS|4*ih<-o(V1A&fUfusuzQE^7T%B1kjoR~kb@aCsP}N??u*4*KcUh$~gMaC- zVvRj8<u=(Ghs)G?^H+$M6a42zjZ#;=r_r`}%F{VO8?^f>>d3O+I+|qM#pDp} zWb-_?2oSIo6^XB+=A#jYJMsB8I>~Ke2=Ptcpf&ml06j4^X^XG8(T5N1r6SnL#u^s+ ze?v-=Glnm|nIN%Cg<&U|P8Ye`MTzgm8>=dh9b4dNaNFM3J)H&m=ai}im+T3*9>efV*ko4chrb1eO@?S<&EY)6KEqw%up(b4ej`DD{DcRTTH zGO^>41sF{I%1g7q@|EK|*^Yjv8DgKg37%-zr+lq121MYx`j&r2JJWVCRYjpX82Ht2 zx^zbUW+c`)1aZH|8k*=$&B|UU$E9K~@uL2akk)9Bl_yh^uRmyw>oaS{L@cPXv*9m2 z@Dph+c^_EZl+R~*QzCPbi>%1w$ww;3O?S!^4DyMX$12F(oBFQ63c^$gQScHi9ei;b&c7JvAR z*@8`b!lX5P+8@5K)->M{Y_#LFK|@JT$3?}?cW)+rr}9q(yRJPmH9n_$l!Z<1%wK>K zC}$^OHlOF={pF5E$$r=*643Ug(*U6b9(4F=d)Awu15yqo*)L+`U98=Uiv`phv7sz- zAR#Hz$*n|EPl%Y7uUArt9h-`hj^f4h0nu@)^U@%cnwPZ&sG*0c>1wTuGYWh zIZaO>Lsic@Ge~vRPOV(i&GX=rdKV8~T_7~o_Y~QVv`?wRvmnsOe_~$=Rywadx8w*xWzQ$o$X1d@_R9oKE>`QAX)Dc% z2DS6HD?8tx_TJfLk1iL?3Bjj)MvklHH|&Y=1l>p}QhFW4NmP~{&Q9oen)IRN0B=-q ztD*BW9z${=4s;fiMuT1(!O%g^lwL$_Fpf*YXsmQ0o(ePUZTa*2A-M|_GWH<2RixJ) zFXCL9zaTO2p8b%iNVnUZrSViW$ax1tguf5>XWqXqw~sgo-WVp$V@XzhE2B(9xhabv zObSr~IHrr+XNkn2CPu83KyW8-t-<#T#2(`i@=BBd8(LxM529{uY&_SIYy@!O;+hqg z_1+c0Hm0AX47NAqXFvBSfFB6NLwV~iw(HF*X0a~j+G;$#&alz`A5s_YSQ(e9QxW2S zRv-sE2iz0=|G-1WZ-$NEkV2S3YdR|xGawdPz?NYQFQu(oN)blvZenZv2kLn9`UP85 zt!E#LcL!;l1 z(tySn042uo)9ibgxq83`-(1~H=J1o}=Y-nri^FukVZewDq1oW0t@c8X1M>nZ8!cE@ z`Z{z$z%9Q1m1Tax&C*-%1#)*MDHc8m32!Dj;XK*yVLSK;sQ(=P-I#}o+r@_4H7cr^s1Q0K&Y}N@^v&+QK%a6xHk;*_90LGN zss1+hQ>C5<(1srAa0q;h_pv!C$2et1^}1a-w=&q`@LKxOClB|gGS#ip$OIl z5Uh8c1jE}7gzT15jZ!i71cK`8FV*6Vg)bSnCoPPk@7*JOLqXt0fWy?o)}@qw_PIh7 z$~S^RNA5kXl|OVOYkF#UrBFl3!QCN9sG=Y#wFtYD~)UuYnleiK3CE0tV?!Z{+MRWw97a=PFQr* zV1(|XXRx@(jl%K*F8==0DX}qa(1{!g6)WVKf8ivl&K)TA-K0ZxK=c4bw741(60R00 zjmg+{-!q3D~1ep@ly^qDH5WLF(X*UO)+vTQ8!3l z&Il@zns}#U;ea1Q^39L%Kf)Hp8Tk#4m1+=3Bn z@z-_eJb|#YTIH$(GFmqlpO6s&ZTbZq5R8hmx_lp$CN7s*%nSzE^NGJmOyvj?M@e>c zbU?Jtwgrc~gz=!tA0mayw95CKzq#=FJ;gl~WWgV;X0Jux&sQhIj#?;3@1NSYl?#7) z6jYjuPKD2HA=`7G$2{8$(uLdMhje2b+7yAjb&7)4O8jRosmur|*HXHwHcl@SJ|F$A zHj&?mEv8-FwCCgVP)x)LldZXAUv0Gfwxq}h*)`vIqWHTniT3%L`YXJ^mFemTtS@He zz?-;hzW^2Tywmsy+F+mJCP4 z9Lk@N6XVwHb$dQ7Y`n6TIjr^9PNSqYaRE0C3%rFQfG63mriR`uyxE{#Ao0DKk2r_DCPi0#Z(Uby^wdJ4G zQNA|a6*rZt16+*Ud<7U_qZVrO0PtuH<>ibaQqLZ+r2i!4q)n383l7+yxqxaan(Ulh zb?n@nYztai{q*wLT^Gx%f9N*;VuXY4@9sQ2JnEbgnbzvaS7}fp<>`;&@bvNwr;k0$ z>n_0LtU}(IpaANY6|Qlhdn@kU;9_hX&TqG4?H{>v2DMt(T`TRzCvgw=nhHftho?)` z?2b6d?G_&G$V_l}G=|(|PQ5}Mdf&l#9m5C3G^hhj>d1I>G*@Y~I>1zMoSzZZ?fh2= zWFzCte;XOrcAYYy)uzuv7982D(+R>N7~vn=qtgiJ$IZ@q->^rUjEpHa?e^i*mTRh&%mpIf^n>AD$qX9_n zCXUGvY=br-MT>XE$kHC7^sSuAr&PL=OYzfUn@510HKlvRpiJ(^S73)4r9tl3V~0*d zHH*s588~&KIlWDk$80$s@wHhcP0PC8iwq9VjrQbQTp;&PMeGuF%e?@L3&?X_D zFWPQyZZ6>BxG(I+F!*uhXfvysijQbT5ptQ@Uqs=dswTI~0 zZTlXV_*6~%vgPlP7g{PxgFl{R(Ns=Hnp?Gh*?!l@XDpyC!whkGfAoUwXVgUN9i|VP z@DR&^ddMTqiuAJYw_u)d#*p`!2MsC)(-}GBF9a^EW1;!g+%Nm>5qJqB4f(MjelB z5$w-dO?AyZ7vX_RH7dSe*cccXcBf%bFqRsA^pr!hRC(FaLWl8Vo<(eks`M zUvj-l z=VOb1^TGz+Fmu9-5=DTy()@p9Yba?IitsPx1u~Vr{+?*44N`=Bgo<``n0Fbb^&;BL z@z9D_OJlqKfZq|T2aq^+o9T>D=h%l?ypJ;YE1!-Xxh@*s3d@O@uV`~b`)W2_ns@RJ z*6Xq7>jK*AM90xzAzD?QMD5_MsE9r@*wj&*Ek}Bx(uP|_d-}&zul^f+c(Qo$%VsvJC*AoVHnNMg2CduX#OH_VSy!t4d+l1N!K0A3 zSLf5#kLh|@j6WsOlmS|%r=ioEzH1&wtH7M2dr~oK)a3+cMm1#HNFsis_MD|H&(oy! z{$1bn))dcs$_v?Fxwl^iTTW|G^^ZwBA8ttH0guno7`c(M&R=FuZXXd<{9_J>(?Tqfua#LfB<@1dICj{A5*kS^4?%U^PX7(!D*eqD* zKn8d(vTj(dx~ny+nT1N|+M2r_@z|QnhxxjUFQYpTgOaH80?*jgJ0VP)P~^2=u^&Dl zw^w2m$VU&NhWFyVj8PLO!rm%69%1ib(G5Dsl1geYl0E@z2M@+0>^@*d ztmacVKmnou6(nD_b%NQ8NPfX@P>ijQL{8`nG{2kc8F%9sPmntt@oAkleIG}9q6<_^b&%Z8 zC^Cy7dC7e4sZQ#Vgh@QKoTei^NA#X6xemHK{AR;B^=(~lVOYvB#132Lp=T*RCtdNs zYN)@EYFnL5cWQe+pu|QXsx?;6&}}MJ=2N~GR;1uv0k6@pZ9;RhKExj42_bp(n(dx9 z%OHrA5f&z`tgI|!t`B&i7J^jWu0fdSwB0#m&pc9|7ix?qBFff&HjGI`AjrpebaC+l~2!~?;TnBxjl-`_Q!j({JBEi@P_B;wJ(zV?+&TI z3>5UdsR=)~W5nXXOu9F&e60X@q}DCj7$mNu&?tV92r5+S!>_tO%#*Xa=3;B%mB*W@ zjq1nLasRa18(x>$`(U+zF~*h^e6n0pOsLuvw~NHPo%(trHFI)yB8&86PbC-Bma(?1IwOKJ)I)fYj1g zA;W#5DYiVn{8w1mh23;8Y;O5JB~6k>ys-p>7lT)0bHo2XgjY{RR=IrDgRF~3Z{ z4sV#!BpfqU!PZa*aXio>BS$uNC{2??ibh`=yU)tOCp9{2!A*$x3xVYREC}Jci{QlF2Byt z@R4Lj9v5+na~FbB_(v!2n_=n(wAxRucseJ=e!@WFij)jlNPr=vq6kT>6_ss$@hg{c zEJiVH5A!v_x^nVY3?S&g9t%iH)MAJZ$DxES%jWY$aHkWx_cJoeo4(&CUKfz z8*m$t?3boE#_+lS6-I<5c<7cfTGs=yS0oC35>txKZQ2O+cKjkvEaifv!|hLp(GYI( z8@W}H3lqp+0wS-gRSy%i8$;w;w{&UI+!t!|Vc)HEFIIdU^}D|vr>|Q_x35oq&PNjy z;a*b{k5jh-TwBIEko2HAx@UHcrBhiuxrvI(f<`MLML2;4oG#|$xAYF4h`$Y~gryn? zi^cNeal3)1iabpxgx(s!vsWtud2WWkKw&?5|My+J8)7&cY&^ zzdwK4Lb&tpmsHjL@wfFpD?HBuaJ)IU)khmERjP_ay*(TQ@PrjmWs1+?xW2y zm&`Y_vyddNLt0-=>7pZn;Lm^z_xvHZr?0h2^j4m)NSn{(<}Z=0z&Ns}DDl`!&^d|3 zNUrg zQ|G|gykCRC~#%*HtEPdQj7Y*-gD3wIX=j4SKj6MvNx zD4ZB|{5R$pys_P-KTP^?OaG8!!t&KCoaec-xL{vbdWQs!CRwF>vPIjXR2bk3_q@^K zN0V2JnSXN%S~rPVH^mC8Pm1XN*3y+Z+dN;hWg8s!I6uq@F8s+AFe`Db(_}4yj;Hy{ zS@)N%gR8sSrjh#U4&q>@wi6Gl;-(B0;Bf9IHEt6|Cnlt$e_(Ksmxo7OT-?mu92W-% zvJDIK!M_LT-o4-G3?~C^%|3n}r0$&3hO*%YNTZy0AfVj@VH1d0! zT9!$PVh4aoc>w+~F_$19vb>==e)j;L8aN!AcBkcUX+B_FGw?#{Qx|SNL8hL)1(k{I zb+XvUYS&*OQSg3HW`d0rnNs&Tsn@SU50L}OMt>zi#kn8R%Qr8&@Yig|4#_A6E|t{h z($;D!v%I|5=L*JWt)AMEVTS#@h>61JWCjo$6+-B%HU3 z|EN1+@+6;ZVh@Y%yv*+_TR2TFxBd)rrOr7N#{gz_o`PfNCpvq&oPFlrou<>Qi%aCC zElgPZO)*n7)&$#7h08zRPeb0?Ut={YmwUh0xtypzAvr%>b^o&x4(pw=dapLCXrmiLnx=BAN|*K#h_H zcjE#Rr9YGS(piJ1_UPu{r%ZQ(Np^aGH2Lf+#+d*CUBh6L0c)_n+9*mL+pdE*0hJ<+ z7tL80wCu5eB&NGMHc1M!*HqB`in*QM2MoNn3X$jaKI`$;}+gv!0`8_4;Sx?h{P>RQ(ygt+merq3?N|CI`0mAyEFaGI0S4D+j>9 zE<^%w`dzvY<*g4!(@|o^c=2WX@v^XlS3%V2&dZdxU~)wzVb8J*HYr-(dw0{MB8}zf zTwPXjntKX^qemovRQ|et=d0>$1ZFcuCl!MuOvF4(O7MGf-{&*;+UC$v)fE9gfu2I! zeVyeU57{4u1qaN!;o}<-a1Rct4Qf6WjVNbW>6IXE3=ERb1IaJ}Jj<@!+33&h0Q%$d z@3x*-`ifUdWe(mP3;a9=s;?uxoH4;auwdbP%@_3Q@dVRhLG|?h!oZz8%>?U@Nn;L=6zFm(HCxT8qTC_N>?&)NvTO8eYqh#-9Z+~;Ktz7eWNCO# zu*=Hbhtu=MWZK)j=O{i$Kg)>W57jHaY3m+0 zJ@*Nt=YLy@)FAp6e#(3ZWcJH14oV84!y|t?Hu1mSPP-8irtEHS@lefQFmnfZJ$EmBgy@QR`r?$JsZ}Rqj zAJO}QHPZ%4-DBmjKw;0h`XJBsy|#L4bCyl5bA%4BVjXk)W9IhG&{-c!Ye>Bula;f_ zC6@=NOCIXB_F$M=Q$Js11d;Ao$Zsvz2KLL)5t#?_&_F%R1-vsIYcLYr!*)atLDz`% z?nbO+_f{(fQ=~LI52M2Vn^tb+-PKkWN0QKyMe}#MauF8YRv)2*y^_uY0J*iWX z)6-{J`+?n^p7U;UUnJThKw0bv9E&6g*FUH!PFzJTVS=OHHinyvhHO`qud`6_)P3X= zI~e2?$#8cmhFRGGqlj;cKv!G+h|a7OCNYCQ93i)IzN|?2r=aa6Z4O9uG`tB?A)Awv z1L>e{wyPdgYX!eBs%Zyt${SVJ*4CCj4B;!cLIK0`m)eqhbE43iQEP3hvZVl2vlUdji;|JS8AVF=>9Y-D+i%&m1It;SA^tYEC?<_VlmUnM5$Xw7;IbHZ+ z%x9!|at`N{mQ|wKzWk!qe!DTZmNmd-m~efM8+(nVp~>lTAoX@*?n>6YA4+kyIBpKT zmoqOg4Nc73TWi!|0&l|y_n|q}neMEurheVw7j6RkqiSv6C7y!RpDt<#o zVmo{Jwz8ky$g)+C6w?dqt*x?NplycG_ng1jbCn)KqVoQ^8dlP%wZR zLYMgoC;ig#XU)&l#Da!XUH%s@xR6`M^@E9iIv~@r#3G6QABX2Un&-Fpzdd)p-_qp3 zfOhhRn!BahK!SX)mS{FK$Vn79eYVx@R$I~JY~}RwTgRs~FO7r(=1Xw%2X`-NREmHP zR^N|ms%2x1>n3#B*vYErs0JI;+x6DLq}2XZZkD5wIb1zo;UaJl<$nWXj8|30c=TTu`3OIn$qE zV4hAONcD1RavOP4aRU}IKPtjjo4rF+A|lOwgLKsW+Qd=~Z|Wi6{`VN~jL$QI+vQG2 zvorQ)uD+W!cYkx=0q-*(v78CxbNcHS@{wvQD#LHH)XSq5f#3Is`s+L2F?&MVM)C7f z#w;9%_8CJtjyQ$WmB3TlT1kImg@3=aH#ncFo>M(JZAehdKDjaJbXlK$A(EJ8T5gpj z{X0R;u~Lc$CWZgUV~&*Ojs4dhWFSc7={wVkqk%lEdu2}@AHu_&&B)~&2p5rYOtO3j z0KA=?MZ_R>44_R+;wkQB_FS%ZxNW}RLIOiS+ngZ8EhH%ngl8AHj~Fe^n2~`3dVQSQ zi=R-mX*?4R)+!8KvB{Ja$lFA@`L7;C4o75ZeNM+&k%~<@o+tQH0&lBV_B9^llm0(P zR!C!RJgEM6U}2!N9a%2RGbvq`IMNHM3J=^nzpx_|C9$?8os;t$78RYUPp55#_?j0G z9H+!Y2-pLll;*I$hfZ2LW)Un9di<7} z%f2xM9yQPPYs@Pxc88i8AgwKKq-!TLQ%PP{!BJ5u!c`Rp89NZhX>9O(gIvi+Be#s{ zUHIp+%Se(;#my3_WPxPTj=(Jjy-l|D&SuW153kzRMUyjCO%7%^1f=Z5#&0FAEsE&|u(pb3z z;O<==m!@4v{WsZVP5ulCjiW>>G&(z#=5|fcIV?5AQi9nF@iny6k6OM{KXPxU9dvjL z0c{m5FDhC$UU%I5Y;9z9>$)> zHsUyZFYZn-7uU2N-@l8TK0A@a?qFR15C|_rTR80M$-%sjWwkve>i6M$KIg=GGrcsJ zHc$}q3raklOws3)NC=1?v{yRB%S`j+65&o0(a8S{PVx-jG^0iAcxkye2E} zQN=*}HJu}9vWulq9Sa!TdG`LexgXbZH0bu_*2=lQ*HX*qkjzmM_JbA%n&$}lasHb@ z=-_r25CWMuCdemJxUSQwUodW5I_7qJN5&innGRI=o$GkMUm0|XCZUorW(LPZ4Y6g- zorbE}kkM+OdYfvX7cB@WIufXKtVV5>^3;3yNBiYbWWn%9r@!NLscshnvXI==v%G6! zHd;2PhrQ;gVMdFJi;GK3EzQi#Oqki&*tj-GeO>yaSBDkG-Xj#AF8Iq&bbyh~6IpL% z19qggjL6RU9XT$_qw&pz-&1%^Ww=oRxu=BTrgnmzmzuHiLjNEDaj}CHpJqy#$~lom zX@YfbYD3SuJ)Der>nLACobGu|Q{xmi*p#tYZ6O3)FV;usLEzj}6EtOYz(a>zFgh%c z#(Hw*jl2RjRDaQ@N&$XEIEE4Sp@M{7FGQMH`X6a(P+}ekRoh}W{FRqKfO23i zbyRGw-dPw=8HJruBuBtqtV%e@*S)%?PWZ&*NC_il5hkbaqC3L->U(zlG!KDT{?J_f z7KMEQ53FPjQ}5A;Ly`-~=v*wBAOj0aPIB`7Wv<^==lfB?s~s&OPEEV5EPsJ(lgU&| zPuMYaPDBcMB(2Z2_H`DUldoYD=I=%aVW=2{PdR7EDPL7vS+V0m{~afgHy7YxUZwR` zbB9&4?iszPUx2P;byy02I{@UPNhgctCPCt)usGCFlG8gBmiadW$&!)IA1kYc?+Zq# zvw~m=Djm~xr9!uh87#ahfX-DHm)i0DjFKW5=6p+p$=G*vP_=c!Q3iZ!(&pHTv_rSS zv9v?}{{B8VICxAW3Ihzxx#SEw9 zf}P`>g&TC_bV=M}+z{+@7IgbchNg(CF6e}$XsY5OI9Vz&Rz68#@3{L5-{G7z!|IH% z4NJ>sHs6e&2A!FwjUc#=xcYm>0s?IwGr~ZdznbLt{F()=MEZZfG_^JKo>F>@R!MWd z8Xn5osN3O>baMk={On2aN0=7NcADs-4{uRsOxYep-%z_bXV$o&?YJzfs2C!G!=quP zj!;;PO#Awd(zMxc8Z7Tbxdrq-8TEuL|6r**5th@e(ra{srl(KOuV3v=#21XEO}HUm zu%|+=JC1J{Z$NTJM##P4Sj{db$0AKbZvb@!{tVs^Ja-*isJ@wjw6dxs!d8*3f!E})k%@ypFZQPV=3Z`C7#k+CcB)Ejc(qL4KK^$*0fPBDq=MlrSJRawmA~_YXv!yo2w$W z^8sGQJ>#a=(M2E#_pQ|0)tDE(KLUQH=j!jH`?;6E$IC@W$ks_ul%>h`=wV&^5*?7^ zAAdnZb(T+6{j2|l)NHIWOkuD0({bV`8-lGrKIv&zD^+2d-M&J21phf|ebqfZQ4{B4 zQ&SUU(&=8ivaF158a0UgVEa&}wHgzXI4({lF2^ui?S-PW{d;N2S>ssMsXT+1+3)*` z+*lJ+CPsCiZpY22#c6G^X68#ZT69oMu3-YC~9`DAy#?qc5SNYyjGOeL6<&_uLjrpTmp7Hi|t`^I%bQ=a; zChyXB5@mnWn_{cUB!sQ?`1R_ci0yQzSaFQjrd8x{$xvlRQEd&zBT4n_X{xa#idgDC z4VvnCJ<1)(!2FUM;>bJlMpLi=vT)N5T#Bq&3-fI^ztye#3IP_pf%jk>2V)GWBEbL0 z`bhq9G!iBS@{gb`+4a39*lj>di~FJ>(Z)w46gRv=X}b5GBOTj+ibmzq38L|Zk*)}J zR{%OMqQ^*cVA_{9^oOXZ4nq*CFOUZeQw6WUHTFX50uO-8d&%GN2p9GS=SY`)-cq*X z{`pA@10xqd0j=_{DEM@*l}ZqH?R1`Y$dh*X1#tS;fu4E7YWgGa97U|DrY@u{8RhQJ z!xD^-%uk*++V^B*Id z9qLPD*_5AiLsla4Uuv!cPtlIf2q%y(<&kpQ73*;XC-l6K>u@l<|(@45tn5X zW9A{@yS~UxNe+X>W!0MR>sOz?-?jirM|$98$}MCQ+s(wY<_6DKcBid4srJY>+ZOo9qx}Wb+(AQI$AG zPUwE&pME*GNrMFwwtXOc5c%93hS(RLkvmW$b5@nyscBWoa=<$N+*=U)6eEqEXKMj-pNq5|R+$RLEET^V!4@%Vm)9HwmeA{xT2b63tjN!AI8=6Tk}N!A?f zLDJpGwPKU03((ZAdVXRE-3$xE>AO1iBcqI5JvmFM+a!rCYXfbS*RQonnXg zRS-6wd89X(C2`WAGD*x{%b4u-TbJ>j!~M5VsSEs`CgB=%x(&risJ-Kd@}t_}obIKb z&1SK}Pe|SLL%CfJm$@bGWou;#Efm0YM`aVj&~60tSehn~UP}eUb=VI~rfOkGZF}hD zZ!9hHp`^U;E`D`Yz}A!FZ>ej&D@d7*TkvF=+)=Q+tN(y)r@I32TJ~ap7Qf7AOK{ON znM6nd3G!PhhZ*>_?w|m&Lc{=9+k3kIjAv$N7Y_~&l2vD$P!-(Umt|WsbU(u)InY;V zvD@!ia+9&szvtclJ#_t$nkAfEwFccR(v3rtaImN+K=^C<{~>?+SCyo|ZqqNDc~31~ zQ*R_VidS5DOH$SqT<37ae(-w#;Ba(D^v{B4? zu&FNZsC)NA;iBuJv?<4i+aCog$WK#yKDCX31Ou9U@_-RO_(;oHy~$W3k7expGVUxt z-kIq&p1;I4;B-^)iw#n5bnks9vQoHUc7K6FN~PspBjYX&5h$yF=z#vMY8aQDzvT1w zPLvnIz=SUYX5gn~9prG-QsBuWbXBKy`te@v`l==W=I7D?Q85s39Gbj|fPJWF$iiRF z7|G|qTu8&cf+SRUPR^&LX)H56zeL)iWWGjDd>zm+NA< zn(Os4)IJpyMI5`%A);Y5!Q~_ay*Uh}IW^BZPD(d?U0oL z*Pr_2`L3ce~aq&*o) zzqP0n4u<1p7+n@7{~&%_%aXYlldvum@BAx#M_I2QK_6n%^Prod%hx@3|264+?o<$G zsi~@Jg4&_Bs;a6%gP|c@0l;`UIZ0lADq=0+nm0}cHcp>`s*x^~&mqfQd*V6H{{Yk4 zaZc`WlxgfxZfrJJ1UxoRa>NxM(bVqZ3HnklZ^q@Jaf1 z=NAOR{G-tIsar{+hHDH)us4`vO=>x`cwvd_vD^37&B|`<%wkFh6aNmcq(Ll*ZEM|X za($u|K?#h(Hw6m4&Gs3ugjR(XiO~7LUmsG))U4KRf>3{6BP?-Nv=eQ4k4FeSzY1ly z;Isen(rr{k8!ey27Hd=gKkqU%wbtTs<(h!pK+rEZ3hrW8{@w-+X~w0`NUnBKJbvd9 zJoaxhF%uZ%REp<5Wz@;xHONTi`(e?Tr7^Awi$AUp;%seD#x#C~!5=6NF8AQYA^hVe z{SW|-51bLJwo1`wExNaMAm4{p*dd&DIL>BNZzt0?cpz~rQ^c;jdq}=NR=?b^Z4z!o z76IN@17pW0Ln`b-kF3fzI)(MDAc9z(w$Bp;IN*?RgcZPOnMp)aE$E7!Bm{oxTi;Av zI!2k=ujjIX=46{zF0TO!p#GJJFC>uiaMI;StNL~|M{=z_mzEb(_E?A3gst@LoBb0x z9HNZDVhdxK7M|+3X&^TBk8QXtTbsw7!~k&kRQGJc8d~WN3K#A+vn6T@*|K=faxiRe zLOQ}geQ4gG%27Q9TB=|oKJu<2kpsnWoKroE>;r~ZSO-IG}*kUk135r8@ zDH^LgsJO_3G-4SgQ&FD(aKL&T;JVePpBHF8CCc7$H2VLc?1|v(i6$+1`?wgYD9gb5 z7pUHtL`T@_b%%=RNSFFnl1Ygix&)SQEB1szmG(?3zLg7r& zI`Y@@chq}{*NGbcF_H}yUr>ln(>@ALI#d4W!EH%k{82B%K#(?W za2@B`V*=n`V`k+qV-lwOqAETqmVxK3X>-N)>1y~uC=;rS3oNEfH$7_L_0N}73S1{#P3_1R3CssVO zH*(p?%WC;S?H8ncwISYjd*~HyKLWw;_M^^u$|M{Qox94y5OrPtV< zv)?NiLXrQla&-{+SPn=ZyT+;U+s!khbBmKi*snyUt5&X(Q*EPOM`zXR_8v{39#5(L z*|gW|IeYb-ihJt538E?~Rz6F17CwH9l>?`d^pYVBY-`#>^&}K{fCA%@Q?lg1LX*4Q zv_O7G*pcKu9eteoXDS5@dXm{NNr>EaVc3)#10p??u>il71q3#Jg;% z?B>WI{(=H+K=_jjN>q-2AL;v-41ca0$pVRASFS-+WF3TkDO5)Dxzg)0eFj`S)0?uU zo!LWHq`*Eb8)EHsqMAG(rPUcbI}tQgbW zP2iY)I!^SzxO%IwIK!q%76N$e_3twG<&X72T!M zB1mi{CCw|VH*1Fj+i5P1c~ZD|CVQA+auchqfCuz2$jLLr#N3J?1N-YvV@oe-O-1d% zNWIf#Pb)g5Z}gZZjtWvI*KBbOv->@hx5Ij7)T2B@>=xAwAI3b+rbf-o{AIGD1 za=$`;kX87`zYGkv)-Vgc%G8vaGHU^>aT*F|W3emYlPIgerRbU{hx zfhUgfnfusd9T%X+i^7P;GU1KL9G=o68+u5FCUH=;{Ds~v+&O3?0J>a-RpT!pcsnhiV~?U#s1x{&~lj}Bnx_~3-~}& zw&iN!xEm+G^E?0^!@evVCx1c@-RA`rhmif|b;k!|}wqTxP2@L@#2MbK_95}~9RLT<7^TFl>&!Vm3y z5MQ(J*1g~YWJ9+HAA<^m8nyS=%%XM^(R5YlnZO>*>VmMKJNj1=inrmmKotta{QpCx z%NjRd5ujts{tl%c|NZ{5fZ%s7aH86+rw0_-A#`{caVAT*E_Fu$BHZ78B7=HvCARa^ z32x=4WslOj!OFL9d^fi@`;~E4rl$*;t(FLPhZmhE7Oc31N38lg9>o2tq$1B-v9g z#RAfuj#)@XqzqqEy>e)kWfvDv2{|Rf?S8gK2k*l%KRC)hG{X1%(`tS0?lQ%rR{iWK zlLi+0sEgmhl`gg*nm==~Unh`Dsrr47ig_6R-_*SE#|(cyBO)vNIz-fs5&AkjWUwe8 z$)p$W8I|{Wk7Cvr9PksyryY<5HR);e;T_+pI%is=&MBZVqiL?+1b6?qR6*CnEj;BvJY8 zyCkt=n&+yRU6H+CX;TfR5??QtCnlqVJH6OP;X=ySdyu8GjZI~5Z*N)}-jUQlAaHj> zK=pP({7hW7&#;GYy_+(qRZuG_8 zDO3BCzj%GfCdPOY;YFeNHcMe=`|LbeLQC)IetB+bZ%Th)F}L^kS>{3~bYd@(j-e<5 ztj9!y=$@Tl%|UgP^4=5?Cd8*RVdd`n=6-OHD)-Ov=|kppoy7}7 zUFv03pp@&8spDGP%*5(1F{3k0!KIninnEr;cNth~ftVRjEd>u=V5+(C!?bcl5-NI@ zCc<`9B+KdVms3}ZExPtUbD?t`%Ra8DGo5(`nBo|U_0E5{TQTWM4icyt)oa!t-?sKU zZoD2M;j%#xuv4#ayGiYv;GI@Xp?hVhQ7%04$1xU)j39b7v#AqQ7kMt8`BW)@6w+}k z45)W6iLR|)Bh@fP8e!AEJ`g z$Q$oC#Qje5vE}kSPM6huVeTdiNJD-9jbVk#oi}Ts`a>LnHx9@w%9)xaf*hHyTX7IX ziYMNTFWKrR7dx6gpi;YyWxhY^V(xfntoo661c~r;JJAWM?lif6`u!)>(VvS8H{+?eiX$Xs<~ExK`6FA(rosx_&kJ&UCJZ>xYq0U) z=n}lrgKuJtpf3-px;k<;v|qP93!y_;f+r>)diK2_JcJ|PaEqx?*eYqqIE+u9YeAx zFP4xXgQgr8sNF2P!Lpa6#hh6;9tJ(bL^y2+XKKu{)z2?= zR^LmLIHyF3)22B(MU*!nW5`5!HrB38daG|aRN;H(U#nK}=+5hPetyw8ugov8k>Ttz zD`)aeg{CL!1O9lZO93w4fMBtZ_dBR`Xsq|fPh*ly@n8MRdCe)$+59{{K33T;O=Z%G z6lo>&D?L=PI?fJu_}di8f**#()0~HRD~!9}#X6!Fu)Bo7(VOt>Vd?~Gh!251#T@BZ zG2}a7c#arSnKtbcaWG-Iasxo`i~w9LZ`LyXH5&Ag3F)K&w;dFSQmp>ajd67c!RIG( zD^Kj+L4ue%95GtY+Ig$s*5{)~Am^6g^*m+wTlfjc-wPZ;xPHe&M-ctz)g4Ccb&3;BjjQcO4fEaY%EpBY&m;|&ufurE>M4(qsOr#Fx#}-6vy1j(C zjmB!IYnavR;e#L2$hIXn8RZMmtw*t1paJ+}16~JC?kosipXi8|ro?vokiyq$;(HZ( zkN-H18YRv`OW5g@qc5(Cd^R{(3bMEAuW*PBlLOZ&fty!_v+mJ#4+_{{?BO=7}JMAX~kEAZtb{ooa?GBZVeTt_}fk1X8XLct?&KJnCC8~~X z<=bJQX=yKS?W>68brnaQ-t_FwRK&J}!okV-{^`GM$H&Fu#Ya&TUA~CTAAQKUh_RFS zx_y5GgK*`U@R@y0?twK9U7&1(HZ?%$#Ee**%3uF=s4OlqG+UPVfoeH{8pxju;N={A zNnHJK3-g-RFH3o?o>?S8lrYiv|M+^S$b?W9>x8> z3c>=7Le#Xhxx{n!%Rcvks)kM`Pt&SP+t1yBhc@igpRI`Sfer=hw=E#_ zDoYw`Bh`fQ8nH~^$JMdx!s0JypecgYqn6w4k!-Ny%UHiIQn4&jlQ2+jntB+GTB`}s z5nH6ph|<_7eKu6I&*dIhvKWKLkFPJ7w!*i_|J+nyLP1v>H&Ja~V{oDHeFvvB*B{8N z!!5g$!X!0gh-1B*h!vaobLT%>i5SbRWnW2zR?Cm?SSYl7<|a+hxI|!KB4`m_SCo7Z zSkXV&cNK{Ye+heKTlAUNuH=3047650o=wte<4KQ@Q=YV`{R9YHrP z{{&5-nrfIpQjW*B^q6|y%){9|f=oKDsmN78SsSyH`&*wW-v>T%ZtPSI_AII>db(vj znY z-_$Vgo1|OTamK4%^!;=E-8>Z&QM4^kOl-_)saEDt93gpQhp}VA;;>9A|1xN?cLLi6 zO#3?2xL<-|6^8WJ^=-Zj5=r>bPQk#9MBrTwTu;0;BnR{N3WT3(VDvD5tO{MbhMPc3 zEx_Iu#P*XjUGx+=NuQ;Zc^bY7`#k%5m&Lt=lR|CjK{tlh! zyVNgW&4ZdA#c+IDv|=0x^PkQ?eb46|C}tEo&AmS6GMhXrAiFSXS zCEQ@KaA_uwFGKf4Bvinlg?I`2C~~@fdVaQ2Uk_n)nr>x`EoBDeZ0dPxBXbWSb5lQX z5AiLi;&5SwJ(~Gu0dIoA+76a54bKd=-K_!Yq;Tswi5oCqg1NFgt1?}Nn9e!@zcnpC zutE8D#r)-N!T#HM+z%qmR=Ljz5-BK=&)ny;Ebp2+e#h9@%`qZ59@w5=>;d-GO8<%* zs^OT4{MYiSAP8D3reF#SK`D?Pw;1;BKhNLuT3kVJy?P9}VD(lfhwD+O`YN5~zUX{M z{H(80>co<@ZQ$T^)a>HsoDm#`sY2HyQKO{Q zkeMjEUHn=ScO(4IR-JfoQKH(4GIn5n6l^+6;j*hvvjR&yYAjZHJ5$#xA93YA5!zSA zeKzaIXd7XBdOjMw@UtsEmtb?hY_$IXnc;SOGNn!zgA6|$3@><+NbSaR{T~?xl_UOp zBUBypbLaCH0&Vs~&Y@qh`ru0trlbd&J5;AOWUHyAuV=k!pATYIvxFIFeCLYSVN7I2 zlYb6|?Ki$R!H)L_Be+d>r z*D5BZ+c9)^4ut~hC^U~T0){N0wHt2P4a@cu^ZhphQ7X8F9N0@%Q85+6b{kVSOe;2piLN@U*#p)y26 zgYv6=5Bkf;kG&~_o(kJ@9ze{Nq)Bj2I_QzUL`136VucCj9j)6c>I@bxK#s}kNUp+` zR8gEYZ+O?jmVbT~0YD-1tqxoIR3VkQ`2ccJ2BKFKe_E#U0@O|%`%^NSouI^bp`mWg zh%{|pQ1XExy{8WT{u(>JH!goK1~uJ@vYtf~f1lXel8 zD36+Xok5`veKxk%+*TQq0mxiC%h>Jo`JM%YI6dBmi=>6tf2wb+XHumAi1=eK_cYXR zmPGsC)0MwL;@AfMw?lqapwqASO794hN0{~M_MCe&72K%jhBp8^DLfA#^xE!}lKVgc}Dird(hlrzz|(*2id(7y)yW$$h{Cdp(J-j*67|(V|6w5XQYrbxg+{E+WyMC zHbdmf5w^|~HeU_lA3LWB(0Y2NJ?tSSPLN!Z+pIiAi3m|0lDnf=k}LX-4~2=Wa9EcK z&AO6J&mSK7FATAm@=+=K32Ib|ZI3nNTjB4NSv-OW){8A1ERP8_C|9Es5-W2{f5)eA z#x5e0)00Dc+B?!R7D?~<{ie@Ij;4)L7t}dtx!5!sn-=<$@2`2Bo#$L!lRonpG~2to z@1fz5$v3t^_@~?VJzx%yx}o@0c+5EOG^LH*Zvo0IC#uCgf>h5@oF zK$@BvZ*^o>sBK#By$fLDLg*01c!a{ zT-TWDy9|}B%v$-pdd@u1A|;sL$X`%y=RBDgLMZA_sW*s?BwDQ2p3-JcqOg!$W5=({yg2=0m)=ij1)fp2Kc(7i;Oj@rJJl0A6_KP+dy zUoA%sW3ndNNV!mE{QSiMZ3o!}foy{z@tebZ56Ddg9|A+qsMk^CGJ3R{y&n4biOXtm zu;7yU4C32gYD>DKLxOp)eGXBih(o8ApRQV&Z7)wRPl{uFF1i(}0uj|%1zxgp^kEWWq<@I9thmOmOeVu8@FBkc49-~^pT zyKdq;uen5654m66pEpB=Mv6&vn-MXHOPS1zdZvqNf|apiiIajc3QBx*O^ZSZ#Vi=H zo}~Q~fo<(rHM9!th%I84aBuDkvF93!ZP^*nOf?Ii?cLQu3XV%{dh0>nuM(;1d-z$e|O?_U!XBKMzbmow8gVp z<)6PT#`X#x-KUo44D@yk$HWXfm%XDK;7#V+a3W+H(DyvD$JrWL(<|~O@4ThN&C#r3 zC9I9XBtotG(BKj|qVAJlbvea^lj8jOcPd7#N4v9M?sNi!^xtm2P5c>=-fxzur^ zBYKw9uZjmH+AUH85q{7?t>~7( z-W_|6e}w-5c*V$T3r4JMy)Rp}=HMn2SZU}KL!52wL8`e#s>!lcf<$~#P~=0g8mba7 zCWeDyk=w~gd{Hi-l6RiU2b8jHyED}N#++RY@)yU`YlzF{Dwl)eZ5yDQFX*O_ksQti znf1Crsvn%tY@|_4$4_z^TsO^AAx2nQ6L0q#XY%~KmgbshD20%Z2tYzkZ7zw^yOoFjs#@I3_v~he|$7ftqS2j9JLM`O_3^&95PuntAsj+C^QHil2P1Zgs+G^b98wN0Nv>`JU`|)x1KV5Jp(l@_#NC~+*KmKTb7js zR2Ej*X&TBY**RbJjhLE^=f&$#h2))ds5r^SjziM8lR2U0#^63)7oj^T`WWa~vX%=B zCNH`+KSgWm{nB9TK0jdDi0=h# z;Q=MnqG&XoQ+cY~5XQ0c?I{U*SL$R}tG>EyKr zlM6iCT;{z>QYx?Zy|=a%8*;6@~lGR zJd00cn(n&E>TNNfhfsN)@m51<`Uc5tn#+-_6EDzXg>cN=1?NrsUFQe;;MS7yuKsjr z|Df6`5t3T8TWv8~yUdQxSStpCloJ$TTF>*lG2#K+liDU>3Y_uZw-L~08 zG@IkE>9pHF`VbgmpuON2gBR@QMsmIWx>@7=J8}qy9Cr0Zq(S}saESZXn+@91wOabb z0v$2_%kb$C!~;J-cpwmR*$0N1T&Dx#mu%}ftjnS$+E05POiFp;9RdQ7fGWcCrDFR% zl@VzoT>8OWSEU&(Kae||iVO`_s z&G}NmW*n^#H%PpoDN!QHT;_e%;_`!obkg-066%R9xs*NKx(5#QMxlX*e)lvX7DE zm^wtKj@{rGspv)~U5i99vb9TXZk1PSk-q?6u|-XAY<*>0i9lhiYZE1vush?_TWABB zn`au&b#88J?eD_EWZ(K`-+KSQvCYky$+dA7ma*O%!HWe|T&71`HovNVJ2DMZ;lA^+ z?F4QfWAZa){G-K^Ibev&oj^>$eNXS1OUmhp7`Uze>a3WPEfF087Vr`J<^X%nJK~ znU+-?->M*L!z?%AaBJIXiAeK{_IH_&;*W`SRyH{~_=WXW)-Cok<$+}NuSW zSjk!7un1wzw&UK^;d8-P&B(x<(Vc^u^`Cg7{yarBy{yL z=9kCttgfDk59?N!|DYzUpac+4#$m>E&{GyyN7qv*wngp-Y9X{H!VHua{AT?5?i;8m z9q4f>G%)tos=aDB6@`HT(s~h8mPH`^44-if&ovguNX8kk3_m3tgMwN)!X5;+d zaa_>>3G&W~&B{X5`jzBBffFgf7^3~UY_Cv1%YOIEe?p@Sl^H~=UuYn?QM24@Z!y3Z z3gOAh2R#IG8QUzA{e_668HD0Y=4vHN^bfd2*rTntEEL}{uSt_SY0=G+g=i2y^F;Xz z1E$)$3_Wc_Ro>5@i`bn!w(4NJ)f`*0p*)Fxn&%ZSW#!W$(G$@V&;3o6(yEWXhGgF9 z^dBOAVXIkZ6EM{OBIKk0`j{GxD~eNUdtr+Gx%21$KceOQ4`y2bhS{`fa)NM9trhrb zSoec{KnvoJ7k$5MpepHA217i^)tHZCz!S4NJTqS!?kbCCxHjCxNi4PiAQM&Ty?0eM zq~La9^FIf;V+1hNIl&D*EQfts?=#>e{Y;eo(@_lH+DBBW;YDPQa&-I@U})D9aOf)> zSe|ebPsjG~Tr5=|kK4AtXI$~*xrgbb5Gk#B>8s7DlC$epQ73-|S;<=PD_CXy>8-`e z4(IUYCdSf1Ls+8B2%qE>)Zh!HDcId-(h*5Sk0X2DIyCKR(kU3@cY4E91r-+*wsHnS zI&-P0=F*#q-0%H85>V39QS@JdXE5a?1vq|=|Ku_A?3STD9GJZSg4he*aWc+4G`D`0 zwgevdHLN}o41&BiveyAew&(b)>^tyoi1DBVB0%8+d4Yep@`!wu&IsIO< z{JxmKUv;5*E(;Pw3n7^!q@eT8oi?75S_t6pRrBp`39*5@$rrod>yJD67i`I;7g*AzVdNQlK;56B$UhJSpC{#jYz$| z=6zSAe#FFufNw>JT||FzEhuVThUah+ca<3bCC#OX#xpiGaw77KTN3= zT}UuN`&-H;b&b6AD*Xen7@5cXFZQ&Cz8JZi55Zl3HNil7W@QMzCwj{L1OX2TB2IG zcJu5Sz30}K_`x#z@Lkbob&Z)-5it`NFlP73M}@NifznEc-l&8KM=q1y5noO zf3raSh59vK2SZ2bjwpoq3m;ia61_bL>2_@tJJ0gvKwQmK?EzcP_95Hb){&Z62$@(n z$q-qwVKs7??@+O=hZZ)Z`zU9J^k>pt@GQv(X+8i9aks9focr@zcU)*roLo19RW4h! zH6=UaM-FA~5F83E3t!&9+w1mvC!tx=dAP9%KdPrWT?BU^+#kX~?lp_8YMa&|lU+J} z*hJRf=YR0gAo|InV8g(X^er80#Tj_atoib0y&Uu|b8!_ddfvXh#ETaJ3}`4q{>RM- zB#GQPhs_5BeD%^3eNbPI`!dmGvh$53$qmrhT>qFvZ^Lsu4%7bej@nGxR#LDPm8clq z<}Aify%g0FY0Z$vr#q@|uuK1yMufr9H=! zeWdF80cfofVl98b7=;@SkHg(TCCgaV^+{!ZqJ)&fqAx**;Xa?0KO*o@b|~rePud~Uy57-^7$v&^i*;EWm3qJ$LW|3lB67@Za|+sES9tR2P79u9 zZj2x6Hmb2-3`A#XGGj)(s2!F>7Pl8BMiy3cNh*Y@$j8fyN=qmlR$!L0hi2eW+TZ-` z|5?E-<+G9&Bq5g(s1cziGdioiI4Tbu6pNP{FopC3+eY|E+SUo0!HnA$$EdU6b}0Nx z$RvY;t>u7z2fh|arKr+uUrW^7^v367_v)YqiQs|LKh}p*l9WdGLp!*%Iz#(&o^Ct1 z?N>|@Ly6bp7n?bMhILnhMOk~kK^EZA;Vf??K+Mj9?D*L0Fc=~= z$y&n0H!ixjcpE!eWFsRru0F2b-bqLW1&;n@eRH1dy36FP6W8722*Zi-No`a>5%l=X zzZ&fvs~K)--{|^uRrb~DKtK5nPdiKC;J)Gcvj1|HcvR!{H?^M8b3%7qR@i1|+TxEj zy(VkyZAU}fcJ;QVF1j6EwoD(ygY8+-;$u#jJ8Ta10e9spZMi0FM;OdDI?g!>{uw&< z5dp~s9+vqYAzjH;ljOV`OzjlX%KnNrG~=(k<}7daoJ|z)=L8b;nM)(1%lu;s6mW1D z7H~oBesX&5Lanx_?xz7|8&6jgHM>AvF^F|BKr)PHaG00)-#*!PkOJuqY7B41KGokq z0#QaX3O_o9OBd&wvi#`S>J0ZBi|CRhK&C@Ve23ti0K;$(m(CW=l+dZH;D*9@C)PmZ zcL}P7mxnfS=kK~KGq%69eaJYHaE^#^ViU2E&L}Zl57&vDj_Wi=?SCK_L+Z5qvUDc2 z2NoCpir}@tYRpn|{iEhX(+3CkaVyT#rHPWal|vHZUiObqn1@ApJ);KB)Ac3aYEX`T zfg!?zsuAP4g0acqgF)BR@9Uwkf>_b|vdOLT7daS$A%9WC;ui6FA$*7jg73BL_R}!N zI4GxL(L9Eir{o8bDd=qJWEC+JZt=<;pk7A8I`EM9)SKSB-672 z#sBDDv#k5Ct`bGyMaF^j<~u%gSRAxvA%np9U@9tdc(hT9J>dg1VzJK zT7-Hy2KzA|!ijDmkKKw-Z%4^0*;%=sCPi!>BZj}SoH^tr8k4L^j0Wqscd$lkC-;y@ zI{a@Go_~hVcrQ~Y$)|)Szr@;4q238mLfUa6ec_#d`B^Sos!@a~x{-RgbEdH|zA#fG z|I6-`-1_8xeQ{*d1jDlp>eb zn3Gt=O?^u-@OhMT_Zyx#iWq(k@jk<~+RwY1rTh0sX1RjoU;fEhzHPU}zd)r$v8hEW zi{8m{u@Fix32(ObF2R4%(JsB2yRU^I5k>-}yg{g;XMikAy_5n!|D3v%7Z`RM95Wqx zH5(d6m_gqJGN(nM!n`$Ui6Wa9Ri`*E5vbcPX%^7x{(wYunu zU*gIqW3xSWQ!q+@Aya=9w14=)di85)Cz$qZyH`+DwF34SKz$)|5|ePeA)nVPCCbsl zSa-hI4C}Dv{mk)vYjROc8+x+QFvASH{MK9=m)l)qb%7#V{jjM=l+MGl zZ~Md&k08?~je#$Pt}fV4?Eqx~)^zG?6iq9Zv2H53y-?zkesId7L%D-Bu9x zQcP!`dWalfa9e4N-UBVt#HutUf$nTS~%mD!Q7S$IouQqrTCqqS|tJmO8+h`Dqd3v z4T;)3`g@jg1BuBJGIR5iLc71)i9zr>x&GU;?jzvmKIs&&95#r(2ZI=PwEL5ZNcyK3M#3Lc zgy2Eo2Rsvz>ie?~7&GMV*kLuqnwmd^`fw-$JXAxttYi)R$Gzk@UNCI3%rHT zk(dFPO04{4`{hMtHch2Q9lPYZ^^q*z;`XPcr*Epv~0nk zQET>A>h9>`yiocYe6(u^etKD%k_c}lc(T&QjLtdhpfc*z$o6QGPlN>izvnVIT!WFEgf*)E_~mwIoWZ0% z@%8djof?Y=PbK8CF`Rl-P`Y@I86zK9Bfg>AAf`V6p9K$DHB@N}u_~j=xu#{y9D z+_cNb4}yFJ_zM zq*%#7S8phph{9yu29Et3oNDyZdtu(Hl4dFU!(JhG1ur0a2*S@Lh1gY%sEn|1cRUl@{e z8rF&bNWEsvW*!rrvP4;w1tZ|ElSc~=MI}W=ro34b*hd{us0X-MhZ|7mhJJ6vu1k-> zy^Q-m8uaa&7T)3Y$RF1_h~Iw!iCS%m#_4*#8gxM=3nSojQ&YZH9e)}g zg`@H95^jo8Ef6#QR$zUo1 zXe000;*A<(Do2ofRcZT&+%Pv0mp?}Eh)dWF56?kB$6k8e47@&V+*nvZcV07LPKTV3 zt>-5e8i`aM`n}O}m>ah?SH3Rl?w5(Xc!IMS-K>b+*wx&2sNIZ0 z_y$dRviO`YCe~0FaC6W!+rlndSZhjR|2B@_K*nVFp&)9wwrp9t%bLkvg%F~~>HR)V z^AVjUml^{O1JMVJ@M zOdE!H0Y#Y#Y0(|Ave%}>UN8wg9glr1`NVBK3VF{wZLgq_^oYaecAa^>`ohI+>7IG5 zF1kkP2oN~L{KW>_cV7NbXx8=GeA}L=1DfpgN1~A8^62>- zde+&5No?w}xI4kve7AryssHWC=R_NxHssDm;8NK3h~YL;pc9cuH? z)9T6z&20U?Sc$l#eZVDIbVH66AKqAfJZom&KtqwHZCOzT``|Z4r0sF2w=6R-Rug?# zSzWAbE_GON+a%q)uj${@AZgw50ME~Hv5NoIsOe(iHvV1qs_`#l+}U3S1*GAmMdHJ- zX-2Y4@FJB|OVe^Fb&&QGba^*WEcHuBVXa2wiM1PF#TiyZpvr!?v0@VWytb!9j2Sze zX8S@Z#9h`aIW_mBR`|_=|6^1EwO@nMu;W399{fK zYh{;Vk!&?| ziej+3(R}i!1m( z-RE}R@N?~}MxsH&ID}0g*4xR&KChY9N%eb@x&5Y0`1J{9Ozg;GOX(jC<_vCtbxMKb zZpsNW74j6zKZdUtumD*cpDZU)lq>ntmK`0)155cqlmj&6m7cWI-L?*k^6?O8BMjgj z!3=ml)`)zyVh z3*F>XLtEiak$l~|f#G;P)m^L{v;{~`I5YsdA#0=LH?A(d^nG^X9UNIpr`SE?HhS_G zVH3F~yw`^Wos;(Di@6?i+i$8a#y$oc5P?0&T%pBufm?jrb-!-o+#MJf0_X%xv2g5Y zs>}-V3M-13sK`eKN4}3`@KYh(uSr0sc?5@O4K1`KM;C}SS2n0B9MX&Og|^voNrN-I zd@nX^P-Nb{x7u8rc0U^JJbTJ%GH6?v_I1VMzuHN#-*!Av8aO$-_VC;r`Uqhj$v_+i zI=(`NtY7GtCJ?@j3y>lUn0YsCc{o0ezOnj!e7s+jBKp(t4_3?kJlg77Igt4Sr-@2fDRYCi9hGP79^W7bggWq|S@b;Azh*klKIWI;b%SwH%;2d3@Rg_jUJ+`Y z<8Gh)Rx?eV4`eP}D7=16D;<$=uWBuqAXV6x(c;-UrizWXS-F4nY>~!rxRB%K2QdQaz>HrjK`K@~-C6{1|(z0k}ZNcYkNWy-DoA zn1eR zYCGDHrqiQe@r(>{QIgeGggO{81;dr!S+7(p32LOnu?paykf*LDXrRK<^S2+Pt7sR-Z()qTG>CPRitjBAgS z9$}NCF}a+?&kPTc0u;<}o2 z8&v&Dw@>T|yLiQ2D1|_4?I=qG;ocqlgiW?it5*&I zuDVo<&BYoEE>yiDhUa0yk`@ml05*YBbLz-Ri}A2gkJG4AcFygoC8B1})0(^lU*n2l zc#*l}+u0D4M!j_P!O}_@LD$5~vfC4TM*Vt^S?tR+A^S#=W4!Af%#wquxHo^5O+pAc zPe;oHn-$e%0d(4-bPi%CI!=!HeJ6g))$T6WxKf+1n}hAL(AsF=C^+FYC;W^6sOQE6 zZB_feoAecnEmJ@)UQhHKd@dJXlYpnwMKiDGp*xEv z%^Ma%MTBGu_KX72+uGPQ+gu_1|FmWh5Jn#u7$Qpjx0kArQ{h}rS?uIlk6l0=FT_Uz zPlDZ+^NppKcg&nXzLlp)TSUV{cc~MiIF2LS*g9$b;F*S8@b%w=6AE?=kx4ZtVbWXz zOo;+QC^;?jxGGjmb;wS#ZL#rlk`B}S`VhkYh%0RT(bR86B8Y0R3N^XX^W_CdI-W`? zx|qE{erF&?S67TzANw&q*kGafBePEp>JwqyGKqYTZYU^RF7YRL!dtu*LKj4r*|Nl7 zO_hmQD++p=^^m5>ibvA05d==`5HWQqn)LVk)#C&KAO8^&RRP-|7yeJld08b+$>#wA zA{~1_W!eK}(BGf;H7AL*7cEWofJBD}#!aKMw55%-=TP56C_lgUVfC(+v}Ya9n^4Ua zcH4G`Mbg{D=cu+<7^4wjAl&0|cRasAqvEsWACrRZ>xt`i)q9HXfvM%`9HCU+Q|aX! zc#4K`!LC5TlTSR-R&qNAtc`WF10#BPMy8n#*No#~}w_;N92@acQK zOL_SHN^qPe9G_-*6e*6pK<5(dRgmKw3c91qqNeu;s|MIuX`WVS4@n^mcKgiD3C%G5 zFT&vvWfW>ZI_gH^L9R_Q(2`d_D{J#Ne<3rq0bB76`&dM+$?8wTGP>xvDYW~dJbg*_ z%nW0eiF@uWPVsm8<|xTr2-yUDAB&){Tom?EAlkA%vDOCFR7f?&7cOX=!jZ?#e3c^T zeBmB-51_>}gH4fQzRjTas}u^>l+zjGE6q%yvdN1Z5>8Frt-)-GWq@g zc#I-_KzdV%c(%SHWU5_Bb0?x$hyTUaHw9M~b?e5q&5mtb-Elg$ZQH$L+es%K+qP}n zwte@1ZryXLPTl9VUdNnse5`kH{efkNw&MgM<4)3vVN^-7;{X<S_nK9VZVh1y<=NOBpfd{5kVH*($0a!p%<#`vw z0{?Ud-e(2*_tTxouK}d0iBL^%Fm(17P&e>&X6wC3YTiN2@M|P+14l7x+Vf*5ehdce z#EM3dRp@piI0m=i;|`)Ahla$$SF_dhR(;Yq=sK}x5gkP8nD=x=dqjnawH zLfNTfYe+-ViSqFgcpse8-KY%82JAvd zibQ0HMa)iW%%kL`HZ`aWV<@#St2PLV=VDFdVjUD&UHRF+rZv1NMa8VeS^Fx;N&iKTmtZ1o#%3gOp-9n)-=QsvJZ-A%j147!@>oj`oPSx4s-Fp#dDLrN-JzZabtb&6eYi~6bZ3IU zPxeg>nwgHMr%*$^A2^Q@NsRkGOJ?621P#6C7@6cDVnIt#I!T!#>?iBupkNx@vfs$-5fF1ma%tJF#$Do z$v>l#>3?BX^4K`#Q?`7X@QUkt3Llc*4~c?rNWlD@uED;Q*0%FqAic&TP_Y;CtL2^H z%lc{AgSTQrYVOA9&)!?>i2&NweN#`99WxyVrr%GzW7UOb2Xhm&vf(7Sd|8N z(ix!!ArXsla!v`7OAr>k_(^>;L}-=yc`X$F}onaN6 z#pMnlCzC%v`N;vrNM=$O7fTfpYy$MR9^Oc$m??^wE=V2_$&b(|f*d$DkZ48LaV!mT zPjFu6!8|WT zpw8$Hy4Plv7l>+Z&N(HEhel1vthQn?Rm+~NQ)686R5hYgdEdRQP|*;8lsZiekCJSIS9J!jh-@cgzz(0(<4w zm-fGJxu4xB+=|pJjyY2;tl-D#WbL(AO@kLT8@bCEps+n=`tX2iEW)>~)<6poxlAPS4e_5m@NJ1-r7SH`}6p(A65`2%h%b7(yNfi-eM{6m|0A zsIfrjb>E_8<(yB?@NAjyz8#W7Evd|)oL|W8^{LOWls=_K;{R|_W`LBz2{h;tuk0HP zo2QnF8wb&u3J4)GEJs6$7NJya$#s~i5C=TQ_J)dDJ3B=%KmBN2X$v3gi0^w@o=V1$ zywStMR^Zo_hb(!y3?1TEkuaNrHbPZ)fTw;{;+UyOE7IiDt~UCs$&j%swNQm2L$@bO zXA+r*^2^#G&F$q=-WDlRbLg>sL;BRD0vNRuq(O0AKa#hTyBt&mmuRy4Hf*v>!Y(~C z_0`-F`#*!*O}RbTS9(uFqXrS0z=%>Eoc!}CGkh|t2_dE?#(PVKamgt**=LkR9m@GPP{4cIv39JT z{Zi;m(YOe!0bgOAf9galTz$bJJ00kJ{wK2|5%Nx6BF)yzCsDiH;H8z=Vx9MRiRNN1 zy-jMxWKzv`g_n@-KE*bz-}n)^Tv$0Q*L1f_FfZJiwASH2B8Q)%3Evq$*zi=DK?_rw zk)R|}df+$Piygu<{vEIn+kJhH-;o+Envsfj?u+~fDB+`UF){YL1`3^`nG9t+TWi(3uXKg{ZkXxEa@= z;pDeyELwgmZfYv}Vufy$IXjweb_h}_{uUh+GYJ0iq}%gMsL>lk1gGQZpUOZmWv#*M zTp(GdZzKoQLjs58DU7GW@I0$Y`&_!U59UFIT34V93^o0LaVNfZvEUNOO@sl?yjV!5~YXoY?S1?EFNO zy@=L4V0cl9nyg^2Bm1#2(PAq8)oe8I3!aT9?Pdsq&O!s{CtjMhp{!Vt3%VOV^l-cM z`&9vpP|#fP7X<2FwczcfLD@}KQ^P5ukI%P`( zb|M!lKM!Z(;pImcj7B0(+{wO1!dce{L{0N|1}r40fnIDxPE}sinl#~=Qs@jR!cn2e zyq$*~3!Im$?FkCRqG^$Lxp{LYolafFY4W-}->AOHW;i^?eIe8vrgOqM!Sik-X{9pGErHg zo|oXpTSqYBhs|&$S`0dEz>Z!;2Awgg;#j`T&Ks!2>-2Q9?lH2MwX$%58uE&}CzFgf zwwrDJS`)(0C`}cydRo3C{7G`|&?{zfW#-?0BZ^c^DGuT zrZ>myN++>Jri9uw*7H-T6>O{4R?wqO{gGn4At1=lrZ6x1=h#71EUJ__d=qXUCYZq#>p`!0JtDKk*Rdw|R8P!I#JW3> zHS2o*kiG6Ng8wwmJJ(Y_zAUQeLfIk4zH-&W?_j&BX#Z|>b78yV$J_#6k|EEf%#zIv zB$Fw}K#U}Rmcv4VBrFsD>gzDXHzoggQhVC+^LU%ntrn1q65vNJK8+fd6S>&Drawt< z+A6HX9`4KTg#I_T{Htwc-63|gPxT_5DzBn8U=vNi-K$+9-;hs^b<*fOQsI$H$CLLL z_p#nzXDeZO4Ycq8A&Zo}XU51sVL{61*{)Z1{ioK5m+GW&Wz(-koL4S1*e(k0Vc~R4 z;q8v4S4s+7`%^tYe&Zc6qQL&%E!#&dut`7a94eDMMRSv3IrsbXc^g{$>KCAyT>TtX zkxufWL>3Aqs_@`etJi+8%4X_s$SUo1i^S0Ez!JB6>{x4m9fh}e2g^o&kSqeix9_qF z)Z1k~nCzC?2H-ZI>Mm)|=z+a*68DfLD8p=yvI)%WYux2Yx$Gcc=Z6sJ#8*9VEIXZ( zMKV-t?3Mpc4bX2KBTwgSaL>g5T8f92+&`@h>K5$oPwwz)YN?!Y`AxskWh~4OC&CD6 z>O<69nCAe;Ig*lT_U@%-=xhC)apbIi#eW8*J0UIvz&P#Ae@r;RW6#4$)2a|y^(f2rN@F?*^>^I+e!1vY+A8znn1=X<%70WaZnpVzTZ zu4dwHa`s=pRGqJMJ_rP?m*{DD0DQ6AF|&6{7Uyke*l4Y;e1tqaTUaqMFi+781 z`WSDn$ZoefwIOJ#&NVNnt^E)>8y%7_sGZFu78PEWbeWwv@@dwvX9 zVblP z)?g(9o*?TpGu;|#2%8ism+cpYdm-@flY3|_;t$|7aJ>^PHoBRoG{gcog~Makb1ydh z_qFQop2`PX<1&y;d|?Z&u_O_LT_D!A&&)`EmL?n+f&_Af z^1{s-@xH6sa`nFTZe1xR8e;-%RDfT0BdmE>x~N%RSm($H3g$-Rvrh~-VuwOt4H@7i zpH`XFHq|2~^p)q>o%_*y;heFS56i#_`O)j9TG!ZqWP@eE6{Zqxt1Q<7gMDgDQX;u{ znO7!8`{$1)Sh3xL+NFWB(C~&Bsrs}kzwgJ+>Vpq;27W_!8)hS$SW|FFV)c{@O$9A%voEZ-Z{9%ctgG(5n)1%z@~^CE`Lv(qdx z1UBvUYTbB4nQ>d6$-Pmh?T5(5QdBM=*>k+#3T_g`jN0nhw6K(q=rbzCQEdS1>lhx~gU(&e^0Pj0Jda zss9?eS@*8`*EwPX{BVCf9ZM|4>52$$?MBLM@pq9+YY^R0UsMEm4A|g7P#nsd9TCpX zvTUl`cf8)1LVN`E;iPH6B>tF8D0GsxqFUz*!Sw!qoorXI-|{2rlX8I|3hnm$EG=nL zUM+{ACYIa|ye2Dhp;dwc9h?Y{OgDMr_r5>nsQOJ$pexWk!!nhh!DYOZ#c|H1sj=P} z6piZ|TQDp1a-gAHo|bgc0f^jfy@A8yeJf1nXo)1g_Jcat3c%%K8Jjk)bk0=%YMkP$ z{;#ERG1GnjxzK*Q7s+fwGAFhk8~ElOZ9<>wj%*G(t&bxm__&B|0wl_%PgynOC~FDp zERC+74Enldm{1_T5wJ+Tcy>UDl{zueqzb;6Em+}_-j zlvNQr!UIDy1Xt(qaBxa0D<}J?8spYcC|(!I$KJs?AVxP|+zlfMA_(%GEPkLCt3tJ8 z%~ZD-87WZ*k?pE`a8x?=9CzvoBQGZehav%^*OEN`i7YHEdV6{8!3_*w``z5k%5Yx{ zpFK$_O0}DTT5>ir9Mn`F$iTKGF1E4g{0FW8D!o0w$i%c{D2tNolr+h-mvchv* zZhr8-_9`9x&8A_693(Q&mxI%KZ2PTfM#Y6&MV{Tgq*{j?O?p!>wj&=o2^RF3(l0by zscNM7+A|5^PLBhabY38;bPXO3Apg&^94%qzpk0HTI};vQ9z#G~NC~Ib5B1_ZD{U@{ zRV5&m=03a!xG$Pcla~|;gr=Z)gZp-_u0o&UxaEUg_tHk z)R4Y5>2Tg100j5mKjbt3~E;sX_}87 zkwgN6+1`?wj2a}$Enh2Ofmt$85Li`zKg*@o$F(gf+b!DpP6xc>z8$HInxh6VM%!64Ti*Td?ibuE;$)hPB#-+MZ)pVEa& z<9;xoxnPI?=i&IUf<5%shS1YX#kKH$ob_3y7T{j>?6%fRQoc$0sn%P%opHnO>*Mh~ z(>Io7*Yq6Ic=+ei=owNPfg-1Dmjej~`~ceMkAxAE`D4pNi+3puV&=>8I@#Ofds6FR?SW9kMY$LI1f zR%4V(#Od;cdclu6wPC~U-@SW>{&4>4w;^&|g2tO{(Sse>B-0g{Cfc=#DSVB;ku5B4 zE_pA!2pIko0{Ev|qV;-#qP8_fL1TY_miAjK)_Sg4(fd|uaMjN_cXOl8YrXZy4(5iD zll1h%t~_#O%OsYA*%H(J&+J&sJ=oKqyl(b)MXf?132fj>h3ZXXy!jA_){r2POnciFxFFe3igb8GeV2D61zMcJR$n@2uj{8Ll{SRVe8* zJuMEqeS?wM)!NNd!GUms-^A5y?)1%5l+bNT0EY_u5MDdH90vc(OS;%GVAPWvDSLtR~6f$4g46c;c& z6>SKS;~zccJjVY!(2T|@NUt}BOiNKQza+Mu-!Hrgd{IKpS-2Y14JR5Hxd@F0|LjZh z|2BEFtPkNB6-FtHQk#1A-*c1*8}Zqe&SY{k%Qo*$8R-K{&)n(qB11LtYl8;kOs2c? zhY>Kf^NeX+z7LhklR1x!H)aX1 zyyrM3TVMb(ToX9xJId2R^)U!6y^fM?aj61tXjx=XdVNT80oITq#KUFw<3+yF|_@mj-up(&JNfC%AnL{RXB7DvwzG08AB&W(zuv%B{%U z22>Xt2J%eWQrMqd)7nuna<|aiqwoI)mv{mt6JQrtNmU-o`4s6+x1D}y$E=;*7G^0-2yEq zcIoi&>G}FPp4Wh+`LgS#$IAD~;VPXw(6O`1QBcaQgSsn;z`e7Ja}+5~%))(7x{ zpKGf)b)5sG+81;S=k%GD9ey&9=_pKYC@Lz+smbqjy~Zh5{9Jei zEKSZw`N2X$|3{rsD_8%K1D|Mr7Aqq37-3?A9eo8#f(k!S5NN|Xlf^Dlriz47A2;|S zPxlXI^ap8S*h@c5u?#C*K=d<5sMXa_b_XSu+VG9@r1_nY0E9ETaktH?^c6{^Ac2_WZPNYxh=*UdSh~zI4 zDRIFYPjWlxXGRbwW@Dl{Fu)`wh9Z+Vs_!x5H{O0Kf?~DEJm}wm-$({aQqZHtyIP{{ zJ{-jr@t$T}x0lQ^czsxVaP%4-e;iYj>}<##LBTv!ZLk=$qUd;R*BT_omn}n zFLc5zGt9UP=LJG9XWj*!IVa1a?}&H?k~1iqa6B${Q4{k2QyFWthl!%(EQ7o0QI&@T zjMEtp`l}rr_35!W)6puAa^WgR9ZEuS(IqUt=<{@yrl z&Ub1jm`?K$OivJ#vOyBE7c3&@u|?Zs6!CVP%R<$^$e8_Sfk%?C=N!@_7^Hn#eOU#6 z;N}8un93Sw_Q#|XMobhR4l^G)m0FfHZK%*#MwwoSYYIK6(X2r>ibeyZscE6I80>ga zR@nMsxEgdlHhGWW#*a^hItOUFsWcCYpC{TcP`JZV=Tt*yF~UQ3*$WW!c@Wo=lJCr; z#Zq++9vbB1Vo>e7(A{$`QAh!+kf`FuL2-2{y?zBgN&05i*PZ6Y_FWGGKE0mPIT1eN zfyQUx(Y(m=CusYA1yh~ITHcAeg`4Q^Z3~+oHyJ&Bt?xKXhc~%G;xbY4^ixDyn_fRf z2gz-^eleIEgc_gy@>I5GH`;9h2z0B#j1-ZD9{#FxpyLVI%GZSNHNypimonUFnL`D5 zL{wi!mbA303Poo1J3}R6;$|=Ms~P`7Y(X?kSH+O=LbPbvz?lO#=-$!|5Azm-|LYX4)JF=TMONW!h;GR++2qCz2jA??x>U zp15ha-+Wc2vQg`h9w(a&o;J*P9b-cXtXRC9MYAkW(8{jl!Hox(9i>~-Xh0DzCc(&^Mo{h}Psn~0x@0%l3@#)g6c?rpFlU)}V7qu!K9(MX;MsRJ@z_(pe zI0;@*8}(j)+oPF;N|Rhttd5O*pJ45E3wlm!;dR-IrJHkJ8B)hi>+=y-HB9_}Vw^u; z?Bj04;$U^?qBKYUw%G7JOUoxW&RyX*Byf%V`R&}cBUS3bx`vW&br&&LV-;_>t2G~t ze^EBv5ntM8l&OChDg7VewEwBDaD|(dW`Jc#ZmE5%r^Yt4{*!K7CrJ&axyw{eHG7Y@+M0Wz0G*>Ig)-By37;9!T&XFzMBRO*r2+ zSfH`>5`c)w4dR9q;3>w0@p=JJiE=vE)e5r@%}|Y21X-1+Hr2OP6W1{)`4P&PCYY$0 z7UcCxo5;Th7U?e$1Iq~AAwk#VIiJGDFfUD7v?gQ6_P0Y;+<{8cA0zCah28%n&-PeS5x9n+JAnz70Few z-Oov|(G0m4MhI>%n*yg@ z=DF?h`W==ky5IYxSa$XeQ-@ZC)~ZMLgUHOUF=L<_uI8k}*N0U;!vOnnrV5W%pqH&k+RlO%h?mmR0N!68o@#1XLPFm& zHUCUO_^YU27E%125YoYIQN&j0;kgNK^fOs-(`MZT@&o4n{zYxs1hbikVn+xt!Xhaa z{_a!24HYnOg^YT7VGUvtKD=p8&%Fj1QP$nA)5h9eF4voUYb*YQ&isM$!XJXPCm8TH zJj6*vX|`K54F%8j_r+!a(j-Ai7I_Z?`DS(WlDI8Hi}da}x89_r$I6cVKHs25pDBop z04M`uDUY+wak`q(NDhZ*mCS#9xWPpxxx*4~v>~W4Y@tIBA>s$MRz@msrK#fa)Jzsq~?bXm2Fq zhWquXtyVSKpLc4z%$5>w(7op|MXs#*gbqe{Zf8L3vJ3eKR?L4noqq-;5*zGNMvvAw zd~_!RG9`FyKO=Y~W;cXJ`b0PqM9^_{Q6S0$v=6>XvE&&cDP{|_g8Fjelt{93H}UYv z?TA-SBi-dT?V>-(9IHyTq(ZZ+)MIlRWhtc(0}$mxT;*IrY_`I}jO#%ctU+I+s<|X% zL{Eed{jKZ`6WRBWVeh8v9YkQw7|m2)dDY93q%yBI$`jkw3S9DKW0fI;VHw__;D-%D zMei>kLh=so3{~Kion`A01^8(OmZ6Tag}nT3cE^!{$V402gQvpXI<(w1RA%_?h5Tpq zRR3=KXXQshkaDbmPlW02nmtI)%%?Zvn|v#OXSxtxY;_S*)(j_5WN^H3q~@TzK9?P6 zIKqc)E!P{}Sd>Np-`o#VNs(GhGE-gvq5~CHq;b6#Qn16g<+tWgw#?fQr`MY*H##@7 zr8ucLv>q-fWYv3$aL2|y+)sZu6%6ln{tv49;`OHO`o6u_9Q^WFdw*|_;ql^voiKl| z?wrs24JxOr)#ch%@%2*IPi`TiK!cl8fdnHqf7@D(UCW!{7-I;=UVOTw^hXwYdebFnT}=HJ;sD182C9et z=HZn z2D?Xfnk?g*UXVCNl&8_cqCu*n5zk!}8et;>TZT$U?@uL`Y1S-1Pv)G?L`v2(sEV|b ziDo88YbFJ7RJ3wn9B%^L?b;+Hax_i9n1B3hgYhb2sw){FIQe`yo$vI1M!593F?OQB zUPDx30C{um5BYP1N|GCq7Z-C!g%>5(D+dK+PSlKRg0Lqv-xj-L2_|#{!RBkZK`Ett zaJyiVdfcrn$yPB;x*IIuGlEmxFKV%bSdFl2Ig74Kjps0$0?Uo=2kL)1bx z1q?m}=s}N|kHu>L>5UBFWz$%s<0$%9vsG|4C?3TP6Aed_9qtEIlK%%8kf+j@kX(xaX3TV9QK|PTtd&{>!qTRN0i$b0 zTXDqE0xb3rM*neSoW`&mzAl<;Pj6>oFh1tCzg}D=x&s}3q%{tWi{5(MH18i*yQ$By zVYg?e*;{nQ;6|d%eyHuvc)9$;Ljb;YWRp5pp68u^wT>DSlFM%0 z37K2*qkCv*CI>CiPOQxC6b3WEu)0Lk-G5IYe#9o0AfVW+R**HusF0~kx-LhC3fuP? zP32v%hZkoe8)t52F>UFvXz%1F(tFq(#fn*@I9Q+;K3j9vu5+=~rh*;54Fv+``ensc zodto~vL0HCgVxW`IUTJl&u7Bt0oJ{)$(zR>y0mU3e;Ckj(guxU36wN90~HDG;>AzD zLm-PXtyc#wym@Ob+*Vh6Q*xxTxpK3BuB@E{hW(klN-dhTn5#>Qvu5kVYpxO9>ICc2 z)aIJFZ3^1D#NgzZEB*6~HeWtMbh_fan)LLKQU2Ghf;(T=JHpUIj0TgG8!K=#wjK*O zjVx4qSfNLL(rxUIXeu0s7m^zQc$WdY0gM{f0R|-&C)1YS+uicE67D0PN|2_i&%}m6 zXCJ?0kHEkQa8p4+t{nvpTAQ=(g5p5Fj#D$ z()oyhR=OT2*qVM&O}u^07G`l@SzG*;>>ekz3q}N<445UjC=d7{fFvr)1GrC)Fg+MG zF^-&mV!+9yCVcId&%ua}6%D!KD4`mN<^V??NqNSh@F$GXD2cdnFOqYO1ftDvsC5_6 zc6^jD2r_S=s&0H2sp&i)3`LtABy_k2Otdy&9)1SjpCJ!PgD?cMCvYC!W)>n-rN@k; z#{~9|dn|nqK1`EUpj??jJ#8Kv#0M%ld{4>@{@-~=%*z^);wb8V8%WObeR$?{aJ%k! z%vzp&?Hi=5G{aE1LN&bla2~Np~2(qEK=C&$39V4Ujr-5J2U>Inz+=@CiR#A{gI^mp%bTvEU z{&5#fpQVQDgtmNN65*CioEWSuPJy8!wFP>o%fecP1+XmOYg8!6X zfyxAD_w{{5mgnl^4sQo1_A58+q@=WZY7O~;zTT^#PO5Y$6`6qFTSmcXwLR#Mgw4=I zonE(B_x-8FRKdsgg1wZz=RgvH1Gf5F)&J||ZM>Lkz~lA9P{BRbT_p{`g$lp?2xFmc zZmuD8E&p*o{yzKi^7dp9$rA{m6Pi8Uy_9Kmpn09}q&~c*WyC0utiM?QSl6IagWH$1 z8mBC1$jN6zwiohnJ=?Rb-Yn!_>&+ZsKqRo8L*w9!Sdl+e%$>@ToaoN(HIE@V=Wl3e z);o0xe(z#eV8F+>yq_tF%9zUWCKmKP#q~(^w_@HIsmw}&hAbvFThK?AFO6^hwMv33 z+W;_nUbJTTw+_4Sn~>#OUAmrq9|lybasCJSEUoM`(1Gum+VL zzBU=U*cLOQN&$Oepe10vi-uw0OGCHwAe=pf&4N3D5|PD(TCc&IB1st|$)9DGiXY_A zBWk#v4zDJg$%%;nCnw72&Ba%FqH-8`{(hA=H4c+^$!@a^^N_7mec?MG$SgX9ZPD%r zch>PmEB4?8+x*=LiR+*I3!v(Ttroj{vrGj_237QZ-p)3U6JkP*l#c!5oMx+~aC=nm zZ)WHvf~{OwI<*GcERsN?jYtwh9yuF_>Kr5kLNF)tML0(-to{m{{hT-o7)5d%m3TL(; zyMMeM0|gZdxM3^N3J4?v|1a^zWf%kODcJ+zjBCZa2ARU>+Y@W5Z@#vb;`p|J&fnLM z4-fo#+BX;wyg7~@6qI0@L@p*CzQRDM83XNo#qTq}`F(bCDpH+~pD404`cAIVQg#Q791IZb;mgYVR5%UP=AsEu}Sjo9n=ks+_Lk>aA_ydi*%>x#{YQ zsT+GO^nJ6pdE9GmU%i1tZFy3Mz@%N8ApTb^3^7$4V-x9BJTh0pT+gP;20UJJC9 z5E{1a&4bKEq9ku#>T(L|Ry;%hU~3&%zSy3GLK$;o)5*0)yR9$qX(1orr5-%YG^N|B zy}agJ(OG=^z@@n9!_wR#z*|q`eVCEgu-^-*`)l|r>%?zm;r=Ak;=)hG{dKf;oyl;~ z!Q-UZwc5$*Q)En{0A{d6XE2&oMzls7^tD#@G|3sX8(V87U$qifdL*)L-Jk~;!y}0_ zQwLtQ7#3Eb2hBMKj>Obsz-Pill>@;(=2zpnANUK}Ru9D_fj-LtW^97n7Rm_Td;(G? zJ#Z{8e#(RL*6(r!J0JaxM|XA(?Q0xlV@BZQD>0}| zNU4e*$z)bAl9)x@uZ3)Yo(^4)WTBIm!7Z@q&sF0-1|H}yS~MN|l*M4zKN6DYTBKWlA|Qm0Z8 zpWd45CuN{2x>WJqo?I$!M&7pK=+qf*xqt0Y}4^*~n*dg)PqKnBnZs3*20Tqa(5cb4hYjfD@Nce3|=e!|zum zSRrj9&s%@=utap@yT)A_xr7q#sw;dG`YQXz$Zajf`2>Awr|qunmlyb)fH0_jx?sOa zE{U@hlX$=Suc4P{Z{^N@1+Qy`MlO!*MRX6z=z+DtI;UBYjwN&413N{h zr{6W3MF!=66C2PT$rkly)J1ubm~nefGq@7utLCc>RYx1J9wT;vSjz9J z!sHeY;S)H-ZwkELpGcOqnSC1i0jWMUv>a1~@{ z%%F&CWUv($J1thy9c2>SZxuWfXxW?i?fwMHsS(?tN$?tP1~h!NZoP_}fLY9?)tBGa zKL*wf9fH#L!!(e48Sgttg{k32{`C`pmWtP;!|hZCdTxigu}%t|e{82{P*1ppx}t{f zJ}UO0Z(?`=;x*u&jr)FcR~RB%YxLs{`LO`R>@=RsO{UG^iV4gb6)B3>75;=p8b(H} z5D8hY4H=83y&oYfatm^;Bp9IMVx%+MpuMTWg=&7UdUT0Vva^1)uUK%A5(gyu)h7~} z%9Fe&qvs0+_I>J&{s4_9A;E(?P$n7FdPyPWC6gz^@h>sI%J+XZ@#{mo|$WN$eH4J#BH|M_pO--2?=Ry!|N8=P1_7y z!_^Rga-3SW1AjTcS+?UBp4L)T&0c3WNZcGfO2JM#$aDu%6o&`gk_3-?JT5x4ZSZ2d zV|KEml6owNkwWQzmt8|XkJ3LkBNtW0m-T*JoS7ON0lW1=infN91bP%(!p$y6$JNFk zO9pK|vc^Q=mfie^NUx{V)>E!4ADbR59!OY3t6~#s}3R1=x|z$5ApchxYm6W z36O)zLlU}ClxKf%YE_-8w@DS5Z$0w+s4jeQ|1)YiJ92rxsh?U$?m(xd|GY=0Qd`i$ z_qlmF3@%-E)kUYoZASLc)wXpcn%aJ};yl4((Z+;0Y}7yTn&IR2YbsqIq07`iuE{GZ zYyyO*xCiMTCC^O__s`oC^Ls9@2<#?k44I>d)7r>Um=a>zI#tSAx5(eh19TjN{sjX@ z{LK9Dc!#zTSGr6aTpAE2rm#LJ!qLDn@4y>r7hl_Aa?H39o-$i(x#mXqZP%cwV(UY| zTPNK~xW(sYvsY7xip>NOg#0#zzRI3=&7-Guy4f^UR&H5AlwF@+4#V5Fs00d_j@9o>H;KGmuWvJfN0gxdz4`J@eL>+e+1->B zMuT|HX;>9rRH=83PRy%2L_hDcmM?DasXAz(EOjzEGrh^LaVT_`xb?oURK$UrAMXh) zqJjZQ$WTPaRsh=-MCW-A-`QB63vE=Ltd396#()3JnZJ}SYs_s(h1`>r(hodV%gJ&QYNxh4rtjT|!4VOOa^-5giU?O_Y01mSR z4tIO~*I^{2ZTe?U%t4HknYf^E6y1KM(P-$%((IeNatq+|DwP0kf)1|`rJ&YhB8Xdy z@5JPeIB?oCHFmiYO4>7k3IZq-Z#lRDSkF|weDb}sHT>yIZ&@oWdN(m0B+@o>baedn z>x+UyztDj`)WFiNxBsU1)_lFjFu1I&OlE@SIkD2K_cj_pX^a>_XZ26Mv|Ut&irX-z z&$KZrk%vRNjp`4 zn6Cys1KiLC%90lT<~+mB{P(QlCMV?aVP)`AtNoxUUl|8JM~$r?S(oSqE>|*Jb_l<9u3<6;uLWD^weFMEuatljegG#gQ}P0#Zay&BcDS@w?#g8D{UhRk-Vb)kS*ng$KuH!*YVnV_U|*1=G9x~oExr8C-oz^X{wU35_6c5d1Ub49gt(g zKj%4QHu&RJ$$iw?U@P>n0pxZil+S7A&(qZh<4zOAQ5CqY-!GTv?!@c=hpBIht}M`& zjcq%fq+{E*ZQFJ_PRF)wCmq`z+wL9P=H2&F9hh90?C6{|9nGLb1CpH} z%!^-;6rGVX^utL*TSxY(9sx!+<&^I5gW1O^22w|Xbq>@XAaE0vs$|+=ueSpu9-R&@ zyh8=GrhHSubkbU7@JB#=jC0oSJ6IiBRjyB<7~Yxf_w@tCA&lOg&8VlV1&Vzs%NtUT zrnsb8R^yM7q5y5UxTpq$#p~$4hJx%Kn~=a%GGs_V{L@AL>NEXa#_y`w;1E%&1SKBK zF^d@)0q7^Nz-{s9#y3TH?u)Sj$==|OdQ*i#=0HlEsLPw~p{9y02p(I^j;Je5$P}8u z0T_wy`V%Lb<9^qhKr}ngyDt8md@_dc*F^&7j@8Q#71z2@U^#D)SPp(uDo<$Il0nMR z7k)W;1BS!8BBU&!A?!b|tJV7>hJ!*#>K{$TD3UWOlsz zE%k<^Ss(xt6J>YdA5ppV-dk0OYB`QZULB)%L;f1Ua1bY9Wf`U{NfVU?Wy&6~KqT-7 zB7kO(23r~mcJ(%&`QR}%)K}0S477qg?3lQb5d*jl??Nc$x7;fVhg?%i{Wba1U`NSk zn%@WdFXnqlXE0o>PPMjU0?ktMJY#d?JX})~Lqm8iQx6XhcJ?hYGIZLh%4Z6=wVdIo z);yN<#ZKl-q~`dSTiPuimpaVM%-M4}L*ANpWJ8Qt`2MibvFubxtJL`6BQwhFDSrX( zZ{!Cyg+5d*%_tLx7p`PXg@YC+{s7GYz0+OC+kYi8xwIS%NVl zl-oaBEAQTl^8l99m!A5?GLQ&y5hvU{gdBpu^qwt3H$q%__BC@X!lDGHwnjmwp6ey^ zk+64cH7*5uo;Sv~%T-^k$lWwqb!P717z8cU0EMicWVRA>krj#*hTV=fedoDKE~jnbQS5Ty){iec;3sN&uz zaBEWG{mRI`14y}qXkikTejhEVIiqTbV=7Zn6T(vtpY2VWC|Z6$!%)B=eH&jIrdkJH$~3wZhhEX9;LMz+7h_Ki$)laZ6 z-yxWntPn8E=gMJ5zpc$-LBXAzc$!l;?yB39`Sx1Xf z9)Lq9(U=PLcP{A;%pkp9P5FJ*iX@aw3%PZXk;dzfkShiQZ-S^~SW2u1E97`5KQHX_ zwSGBWC+~1v?@lRc#V&GWiA6vp+QJ89+cW`q_Ghrv78s>{!_tC;2|VYFjp^G1NBf6 zo^wPqZIB+4Z~FM9Yb;mz`jXmolamDX0eo^3)A_ChI8L)s-m2s7`89gzJLbsEWcWT! zdvo#0fqp4M?ZtM?6rCGedS*&WN>!(uTGF8~E=IOQyQeQCDbjQVCRL6W6~d%gj=J85 zI)tsq^?J0(`b(Mm%YmUsBy5k`ojBYxZk+h6a(l_dCf5SBtvCP3Qfi!+GGn=uxw9Bj z>%|hOk8fup4xHxZrK*|zJvXGLU!^GdY(sXYX^<*flnc-B@gu!0g54{bFm2~Ws0MD<canY>f9E($E~e_@pV>{wlBYV*RxwMVH7Eg4uhb26Yh^s)V9i@__M98Yj+NBsxuy z5ALmALk7j-q~cKQKSdnb(^y-32VQ>_HkQ-zINSO7w+b7WLuwqB*G$|`Pb%Q$bC>11 zs|k_}(9z6Lkn{c|6TDg*A1h%?&(P}mhXTo|2TXf~n-RLsIy~qoI?N zxB;?wWrblB>vJGQy3v5&3b{&0y2@uyzQ->0m#f3mKh$$PV}=k#{vT5efQ5UY$UihJ zz{EN0>@|c`LBwIxZ4!%!n7bpxN9UG#A*7G6@{=Dip-C&!>uQziB?xCfzj!ym@iSez z&jV}JI<4^6N)8m-2}(bB?@5ZY|+40yD276M}u}Y?%GYai<yy!=I@AgE6z!Hv@RSaOUOT~rEpIevbA!6hpIpq z4!Q`Mf3Ti1B#0bZ+Scg*M<3qfHv(b?{n*1kps5IQp&sB8v_VMC97129fGk4~T76)H z@P3ztrAsUhZI6=_U386o*|-&+CImgkJ49dAHl0XfnLkEe zvRgg|PzRPx{jcP)?fUWAI(PYX`{)olHNNK9Nq^Qtl-{`3+NQ>~oh1}KHBF_BhS*1=KHA_WrzHjre-q-<1z>~V*kDv$$pKabukS5s9x9MXKgt1vsa^ePJs40fP zaV&x*y(Yu8{->MR9bV3`ythMxZUdzBkJqF5 za>3otTMrwHqC=fpd*7Ncya|W=ns2Pq6nDH1p<4(S9MARK^!PsQB@S;(-?Aph2Pcux zK;xKZa}zO%=~~|6dV{{tm)luSN5ecCX_tstPN^OZXTJ-VXRC)u3j&Md?y7S}!#@0c ze`^Ar0gGJfW1j=JIBmz$w>9omX!)?`Ix)TzZvHv{8Wz<-_BoNk!DtBqr}P9$lI%r? z#386W%9!;R)Vqzl6SApB$OdV=1TN3`U&l2SoX5d`v_M$^_qj;E z=TaeiLbYd)G9h7TqrE$S!jX9;!Wi5P`4?13Rdaj45167zQ?8Q|*2j1OdUq00a035zyX?<+a4ubGLz^0vgSX5LCSS8q&fSADgd}aAPPHK8aUU*7gc0x`O{(S}fsq~uM{A63UO>HcC%!uX4 zz-7e%j-vwd+`ECx?wSKKJI(CI;d1YrD|9HhJ%BxwSYj zXWU->O%BvRbBVxs+QG)+`;=j&)C<89C-6g-4yJzoNV47S<@8VVGc0dtpu!Y1um zlWBU(nu1oAP}BW%3RJOL^RW%)@)k?Pc+<^GCNi7Qe{%Y(=h6Jx-q zAsN+!G_Tlc!~ABV{{jxD1~e5-OEE^aJ@E}BHxZJiv`UxZgQnQsM(ww>Xs?E0>I7Bi z&USDtjlAC6udS;um-dJ4CS6ulPG}z0y(EH1!i$orA-<$4Le`C+Lz@6lHXDrC6FR$m z--kWF$;V$iu$a)8!I*Y&f6Z2R@qAy-rZ?mB1^hnlr@JzL*{e%5I=k?IeuWi|{QVL~ zvxp3wsq5}|-yc;hR;@StJkKP&pB^N=TIxq;U9j`HmKiR7Pw(24olxu;_D=pQA!V(V ziN?hHV-z=hJXD^u_esU@Hub&kl^+@@m-3Gd%Kc1?^nJT-HIGX9nx{tVRmSh=mVyeD z$?Lz4O%$ZVdv@en*%Z$2H5W#)F1j6QE!nTa+DkebOFSA&cn0|sVns1u}}%3mhCluLv%IOp@dG&(S=wNPPoOJa%8e3g8SU38vXzHk+RpzqWZGC z{gMayfAV|fCcTqTUvg6Ah~Oc7883ySAqjb)?-r~?@A@a?IL8h0QxxL;u=GH4*{=12 znymm0pUq9shz*jcOOSYBz+K#$0P+~%a%Eyt!d?>TD4kkQpeZUkA-dCTO%V%OCO1dX zkF4?Sjs7hAxhna#lJ%s56|Zv9szSAL>O7FbH*rWJcUNA2SW=%rg zKaOHT7y7;myE6aji$!*o;KQsm1<8UdLDP3qPO0f~L9=zGeEb&3y0+L?pn!$UK8FXsi0Aza+&9)6XRmjt0*Ib?X( ze`{z(X~uh0V_d_F=B|wJ-#Rgb=|YF_{=Y7oOa)e<@;@=%HA|cjwpgk&?VL{2 zmhBBh05S6h)qklAQbzW?j>a-)DzP1HyYhV*L*Zf5qpXIM+NbttyCAl4G3@-hOYxh= zHk&M7Hwi**rwu%*-vd1}QuX!xMIL)783o;9yZQ8dkuyWdOS^U}m35ubiyvir)bTn8 zU=0hL0MQfl4r|~L-ABjUS>!@|M6G@$YT&$?phR*#+HDSm{P2=)0QSg#Sa^#EV=ztd zp&QRA+=sXDKB|P_#M?7xcKn$+N5&Utz`{rLM0M8|%aW@5MAv~INIs%ar)`q? z-S7Leir(s%HVUV9c#?yxHk+N-J-)FLP61Qh{tK@al-8mg$9Ggrt~JZj@;_x9aE1!?_2rPRUMkK)G?sR2@+kH$q?>J<~dTg zMr=hW?4*Al&7Lc{-G4p&8?KJ3qdrIfd`H$-N8n1!x?)nP=Ub`ps@FL64XSEts>-Or zA!L2Orf`BDNB(mk70JzA&4FD(ntus=*_A^6G}R-;0k03Rdeo*MMj- zBUQ;Co@y)SYWY-;`rh}cf*AMpbk?&z-wm0=w#6cdyTwmqR=e!w0ESj;k^~p@}Xk@lwOFwI1|>VgRCK zrN?AeY!;fZI~||Az6xBU!g##&9t?9f zE^{p$MmTw+8bqVSKoKa-`mjmRFf>Mlv{!_5Xk;c`WTt&2u3d!nbR=>X>Y_Fp>pHrt z7YaNCy6iA2tr<%75t?ld=?V?$3WGsAk)gn*E{2`!yMK0$xax4Y7B#enqfkkTpsp`M z^)78GpVw|UYE}NDyP;+uk_E&MPR~OyoL359f|3i9uftv-m&nvrATNp(0VFirfW?Hi zr|q`FS}`Et2iarS|IVDl-&8>5gi)R)Vx@MkU|SDs^ck62F9!d9MIOSdolABlJ_LNF z?ytD@m0&(KpAKVR%Aj;nKGRGGCs*}9OzTp4BdV=XxkMCQAK{hD65dq@64JG9(16jS zWxWSoI<@hpkM(z%(nbuV|6Sd#G(5Rp7)k>C#lAhMbL2=1RzY>C3OyP@EcU%MtRvzg zlBL3sT`g5rFO4@UL3sXGYo%UZssyiKYMKilG@fqQ->5#E9U>VOMPAy`BSHOnVCHRW15>-1TCXWW+j*At+E}{IuZqMu|fJMGug% zo@NSccszA7CHqeE=Ly8x&Ph8ay~Ih=;9+6$#I6NbED(i>v`YT z+r#bbD$2li)M@oWcVgSE3x&V<9aaD`lriS|Gyz56fWhd3uBKvs)=~dk?eOm|s!B+6 zdy~CrcspL3T;42F*?WC7GE5|1;sy@AbGr_0&HOY;VTEO_^hGwM!M>tqR~xUl?Xl#x z7XHP*nQe&i1jvydoh}khJz|%G*3&>emS=^6MF%g*#e~!sVJfDNl07vtNFyUXFH3hi$r{f=1aAYV{7tHH7FRcBfL5rYHuC!bA; zv>JrmMjda}ue-fCFE69#*X2&Cs;Zce*iwf`19Zwr`2G9cBATI$w%})^$%eW{uXB}U zc{#x?P!?O#J4p$Uqv>nd`{^ zxnW5++zp?Zl7$qN#xyqSif1hq`lrewiiUz?Aqt2f=vRC~Y|JwwRG?l%Ww%KzTd@Vi zY7>#s*Etf0$O1!T+ilpdJ4rdqAzM|(ualg&G|ZUXiP;dKs;Rio&LP;yv-D-eV%XI$}rxP6Tpk{_5e z^lH=v@M(L^(ElC>`qy?eNW!=D^M#U`E*$)!#EK4{Bt=7j?iLoLBdYOlMM0LN!8E`; zE=l2(m2syruEE}WV<@+b;4RU7&m1WodhDOPup|x~K()YP(g9atZt!Q6^D0RK9rOn( zBy%fu1H}~j0TfZ5+@ZSmJ91`z#?{*+?i$CMnf~^)+}ubc9uJ0@6A?~!KrG~~1SEmt z#&v=x%3L><%;}#|*+63ijwXefI#Anj#+vJ0erY!wwp|{P-nbwB|E3axEZ~chnqZHI zrUVoTBc%ZO0>D1HVze>By;dX4g82kC6bM|`u5HJE!_+{w{T>`JpMLXh{nG_55}A{NAvfNR~whoinFE!$Jjgk3Q@Ojax`|aO>rGtCvo!Ptw(I@Y)Q*( zj2oE1P|%Xm+1c`e&YzY5_K#$Oh-J5L`DYBKuJd>9Jse2Pp~>qbXS5$NFIAWy*fAdF z#1}eE*Lu?VHqr5IN3*zxXR}M{ zXYg`QKf^~*J#sX{Qr_|D z&`#}vWpoor=_~&vLP}W)vwdXe#KBXd2#tCb=f;t+m>hLa_fR0g_j$aUE!$K?BCMTr zy^V}uii>5rL1g1_YA{l5O1y&r{frOcXM6hH1@A6 z*|CDJj)5nj4}Xy9y#*+hKMMG|JAQaymTqGCzkZFY$7;TRzuYetV_&=03#iDS1(7i) z>TFsAN>#|;%Y#@zksCbl`Ld5L97`AdrEO~&l!!X<4EVQL-|p&XpMXMiqvdrno+NO@ zOd)H`1e<}Z3&Sz5yxzIB)Hn=L6ml<%G#R zBrs{RGj~p*-KLsNT$W3G&*!T7v&KF5%sD~>2P=nbY&&)`ptYk`VYx`Gn><@+M}^mZ z#&q>h{;#~j#0A@hbJQjt(Qr5obGIDB`{#4n!d0zLdtnm~uP51o2u6q};1zc|Y|4G$ z8FfZ<=T_<}cauq* zPNZuUr6xf)IvPB|uRDW0xYX%CSSG9`-}D<4?pggStkkJbrW3P41(!6I^yL|?4aJ$- zIJRA_AHbQNC1VTSRc4~1>W)puJ|yu{oiH0zOJIamPN+lW)Q{mr1g3KGr>CzI1+Es# zjzFjZ6fTqfzVjoYShm7YzRX!h2vAWY*Bm0D_Q%^S)b)3KQB!GiWo+CIiKbsP*e5c zF_9CTm|I(4hZMwzh8~S)V4(eb5VBXPh%T61b#`e>Rbej9Xc_Cv0n1M-j=n?`;>LGr za0#Sr9l>_lGq(>&J zQ@4wV6s_lC`Jw>lS^0nxHfVeyyg7k^^m?_^=YMm$zo`wkn)oUY2i^AdLZ5ov;&_iW zy_n$a%nPD`{{t-|Cxnk=6?`(RZrg9?``>Bg9S86dOpa#9ghFzwNMW^gE6@Md!s$+a zZ~c68IOpb>X()m{__1L>u;IEdc+kGNBjUnH?9u7?W@`BU8R+t9(xp()%WLPl`M3;^ z=SMaq&;3P(y4|w#Mw$=@*<5Axsn8yB?$Q5uT|_`=AEQ@!NMoDDJG3j$PET0+|Tn0D;4^s3Zo zF%{wM6(df={_EfVo;`V?%Pd#Ezj00L@%Y%oCbZ&C%T7R|tMk(38ad=~GTYrilO|B^dM`b;SYvA~zb87$(a(TN2%b#LjeuWQo{}88j2(h<_Jf z@Kia3-Of!ugCK%p2nv1qk)KfO!o5+iDoiGBVW?jb?cg8*I6PVmkW_~vt5W4Am9il( z_+zvYwk0lbWoSS0&|J<(Ych9;=Ex-1kYK_x&%UX$Lfiog z5rjWk3hTc`%3Y>jjQr_+!)B2M;A>W? zo$%i1qvEMHopwn)W%lW?2T>v7p>Qf*A)c2DEB}=kh~1`%3-;-z8_? zL$THb>mYbxNZz!I<>GHUsRJ6=uVqJ(QZ=8mb>-x^r?R;Uq(+P2Y zHmpjpH&>^qjqxu9k)EL8ahaI|xp`ttp_6@x;)jdwwu$Lkm8n5o%IE9Xt6~1vO91@E z$bC6sEp}0pYKdAfc|khbBn5lHpZx5~ z{;bpJA~$c(93k+OvFB2E{Tvu>Dg?Ujj(ON~_N>jeI9=8gqt-`e`f60{_@1@y7C%p2Yf5r`l1Q#Y? zyeBsmKUZmniFnq%uT~x|0jD2l=Vbz;-Yq@k2sJ5mmydeE+oXz|ZBK$;4@I4)aMa-6 zS%|t8%&0^H|60Ed28;C(6w!qlsYo2PG@PY5Xer22ooM9(MTiw~l5XQ)@$0Pbq0Xa& zjdO#{Mfs5vT@MIdcqlnyGD-|Mq+0O|~aVQ9S$?Ck-;Tw7Uj!c&02t?Oz z!qyW!qL)aYy}j9`H{<)W@IG*_kGEAsBuqvOS? z#sz8`pEv}QShh`fd;kmjC$mAH#R9d`s=*NG6_R=dDJHTDD$#$-{+u%W0o=sRsG{Ma z{rt%bR1zM{kW3 z{;RP=45_q#qrsKyBIQD;_-p0D&QrkkTfEA0n5}{63pb*iU?stV3OI7vhwG~{v+vD) zV!zC@@1?!xcd9#u4gP2A&vOtrcbP61ns-bPA-ckNf~XlMH3t30_x(Z51p6HP1nSiw zdZoEy?S{14V4Up0-L=5XTPVuzrs6q{Q;sc1j}4c}&rd2iH#+00AWgqHLeCDYO=Dod zwFgFf-a3a*%1*B@U)T>tF{4b8bYt*bx{4s>a%^a7P6R{NRG5uJHq-YMU2WkroM!;J zG`#!#;Pn|@awom4c?$e-ay@V*C3B3KGGl-AA(-UBn^g67yKj*r zSYz-&1q|3vZn}4{_h-B4I& zNfV!H#+LgG>seMRxHc-*++>FC6KI+OA>i>@`9C>@2XjdVbS>;!kW5k<5?gp}9`;#gwg@bxJa$;zYq zh_dClg!--P>@ins!dczB)RQpy3YEoY73imoeWnom^vcSRT&zzF45oPZ@o}l>tT$-9 zd^ua$ug+drSt2I49-#CKG}!uetA^N~JY0n?kAk?)tIVcE6*K$i&@7!^5) z07=OMmsfS9$Av|rfWF`9(~aB6D-nG=RxzU!5}NXX;`lYdg7oZ1Ri8GRK-C*2m%^IgEjG*0`%h3vdcGju&$$D z&`2MDyGezs85B3K4{@)I9gap+M*&ezAKZ|h2*S%d4r$U`+U(^|c;n%4DP7X7ay zPm}<{f;7lKu!2GW57o}ABGPnSZ`1>mF3swO)4-GBp8MsUt3+ljR+;X_4@4#h@ z6-&{$AtIy$m`zq&ca@oAM-wwfU#k{?9iSy&0+4|FsX^1=04*@D;BOpRQc@zBoa{*~ zm&)l0U9JJ~Q_~E?(B>T1n~k59?df2vCFozXj`%JdURM?3QEWQ}{N65;uu_C!i86v{ zaHy%#2}U%pkyC$;-%-jPeaTcbtIA_!2NL)|L?77!-XuDV*C%KI3Q8P=?*Pg(teCI7 zuW=wH$ju9Q5Xuh%NH1_u!;@f7QP5*!p=#)-NH7&)p>lYydGc$f>pKWx-)B(_B-~lT zhuHWB#orfU?j;I1`_{)F#3%*M;Y;fEz8^EN8G4V*%8UG@w3NYKQhR0BWJm zJ%^lX7{!b~tASe!UL}fTz$68uRJR}N0FMY?%u4;pW`}!A@Z6P|;>tXa_wclV0sy8` ze5FP^q=O59QZrPF@(C9j?QXf#7;3a!h1tnkqZ=K*P+~QMqEpB_zg0=uL)YmqRY3(bNh6-%__H7x?uZch8dOiV)`5H*PN300aXcR!iFqRQZ%9VOs9Ph z9*Ve>rRI_a4TMnI*|rYXdE2+ENNiJgR&;q+yw1#Rl~WZ1n;z28YU=x63z&B%OrA#$ zJ0kMCGra-y3?#I^B%%1e4}Z%K1d2p6>7NFyE#eHyTI;BGy{`9uWvm__c)Zm~TL?Pd zJnF}#`v(q^Na}Wh@g)2?6(U8wfdUC)A~-d*Ra3lsHGp9t?q$6_dm75@b_M4FC1;!H zg-hc|WTsfHaw|5Ge;_10s2N0a!S8yL%%ADT&+^IkcIGQ|ZZ5L5aXAu|J^n2DfES2N z6`)4!cx;0r?jiE|IQly_+4|0SCFp(`+Mzi*a(2o?de-BS8;=}QgILew`0igc@c52YGwjAxTyKx&p10kC^`FOY zvx|4?tvbIt{I+CS$@+GfIA`>Zqsr=~5BPj%gap=Omg*#{d|~2np8{35J~AX*oVX%o zEAoT57(*9!4^)@!0z*i~ZNbDr>XLy$$QYj#v?I{l_2l^Su+cJA#Wox-f<-rkBql_a zhR7x)zEC~i&NpBt%kA4rPh^s9@qoGKa&lLs687(V|E)hpb*&^g1$*z_d4`jn;P*1QCHti2| z=&2(iK8r7)gS+1ffebCtG2l_+#B|OYeEw!On-^4U&p&1`a(J-R->TeSYOv7B6GfW% z^RKeV-<$XTURXoCunXRF+JsqyhoU{{7cuEQDwN2e$O^raz@d(#a;C9eqFn5MNV{lJ zVe+^~zS*-#P`|}_)P-7Lg0-*uUq?{;B6wlO%m$!I^^oq%cW6W+&Pz=Kn(|-a&47bi zhjKSSgJ&pyTP;&B_!p(bpO3DZCF;9)r^i$o{u;x~LBPe~!0Q$yC^R;Y7 zm)g%8eA=W-V6?lm*cNcSQ}5_=3+FsnnSH~C7K@i!Ksd3eI6@dU*k{9lDZA0Hlm6Fi z3;R?}y#+kuqzesM;DWT(K%s+~;wt#4<^T>_7|x*xmO$_}scKmGLMft90m?E7g1z8B z1X+;IvMQ>m$Es~;X~U>Os}VybWh`8UliKBjk3W!TLb(t+0}E}rm?)!KiE~y zN;t~p+&XbUqO@=lYe>`nXvssP@n>df$(+y(0y(flmz)3oYbf6pqpoTUpd3AZfVnxU zd5Lv4Z=OAWj}?h408hPD$~$}7vx!2;7Ex}7xg$9(B;%csqnb8D8oqN$a6})2tFIx{p$#p4k$D$&DmZ1a?^I+;K$p=gF3{^|iAqZTzKeJtL1*RD$ z21-XXSJrwqWXAOr10@SHjmy~H`EXUnU!w-*hFMa)f*RhgK1LshBQx)SOhgUP*Sz@= zm#cDjvh3tp{tF^MZl>GLUk~cc`FKPd(FKMyAM&)h2qfvS zJETOxl$j8!s)^jiF1=TYZ)eq>hTXo=4qVw)Hs>lDR`Z(00`nytJ0{Hj_g1pAhc9W_ zc(~PwtWd4wZG${QnmGJ48-&N9pY@w#eGdhHT>*t#1l33 z6Wv`KZ_!>U-dsELKL)hgorD-zJePrmQRUr9osw2%nX}Fw?u_KF**7rzWg?gFk2Io) zG=%1OubE*Uc^q#HBpSV^^OfanZU|mpURvvGxNBamG{1cr0mcjAsVhfz;I}Gp&;#z^ z7t&Qp;Kl!90t)Jfqe%aBP@$~g>LC^XBNFiQG(9jEdjvmkhMGNiS?u7rH18xl@P?h{g>z<~&Cu5*HcSe*GFU2t)`Z!sWF-<{8Bgi&Qxd z+*@^f%=ae~WpTVf%Q&sW1q)9Oxy1vECgB7<`$!S`Z3r<5` zSufUL%wr4ge3YxD@iH7pnP>*z(ufY(`?nltG(#K=Mi1UW&j*g{H-}V~;DcI14 zc(fEHhzU}I2W8D#hXb};DArwmfF>Qn#UXTcsOg&3sg5>cJa>baPfPQL|MMN8UwlJ_ zzVigX*B3Ztg$C*o)NCW^n~O1FDSW2e!DMFG{S4W8$stq<{wk4xjk(x+_{_<&K_=US zApH@sSZff~jWVnH#r43Kxoy$JeL@J-Xcmm9F-=-uQ^|NmCce?B2<{riLyXfHNaugN z>@wCQOVx|0^IXt{Tu@P8-ZiuVPwb`tge0dR0A0@cNhh?a(t_77zT=^jT0x62 zONn!hA}7n^&_bu2RwMNFErog=`S$d@^hr`_lDiyXE4u~M$TzbE{MStftVGZJ!kop9 zCHwUtF>7lbQXeXY%L-b~E5Tp47IA~>d4Kd4tlbKe7Pf&9Z-Z!!4AUwt&vA<&U$r>)!RJ1 zIfT}$=j_1L@jx%DU4V`C1%@aJe`uD`J-!UnV1xdsEqPQ+M4x9NzmCuPez}I7^R5kP zDN_E4yw`8%dDSq$@9n|*?DhO@1{L*NVw&vO#pajb=i}H1)v)mV^vFcx!zDFbTwF#*;6E)Q zV+0Eiud2L!bab?BPi1Ta!VA||iLYZ`Wh67pq1WO=XXSmQ7E*0Gl(2Yx%T@Yf#-YK+ zLmcR&T&*``}fM(xoN_ndh2;7IkoNvRxZ;;l@hUl zqemY-a39RydSB_YZ+oN~5=C9!u0&G3o{Ivwg={ERVD}Kr^M56J)sKx4#AJ>vPrOIt zbi0RleG>d5B~UnX1v-;w+#607%oh*A_5RBTs;h{PKr2;QjDTY-)fhAToM_r>@n6O7 zi@AoSv5br1-^tXslu7%4NYPyfRTO^HB|58NC2P`WzNeP;S_b%jEZyH=mX5Xo4~B?H z+D4G}db%Pa+pgE7C&wHB1aziYGv)jAb&j~W<_l^Se)U98aG6}?Tnh!hO)|jRcL?XR zryvH@@@??F53r%ZK{8(v(^6jrE?I=e36L^fcDfdMrm&{aCfCl~w zbEUbb(k-1{Np{jcRrr@f?j9yKa|(=A2`2FBz8iwTUKys`tCs=z9+M1~*8|An=KG8r%W z&qwb?qNIPuX15!VD@_FU^)vbipTvM1Obt^0-jD!qztF^?zygb|tzCy1t=U9+R$%a+ z2U$iBRK|XS{L5w_tU>j!W6&oh9-M))Aq2HSs~?0f(knvO8;r!;)Gbd@RooZ9bqJXG z12s?Lu;7A>dkbo|KvHh*mRE}!PB(}Thjh|^4Q7cc=9K+B1ma)X2OIGP^fm!{D>11E zqG3O>VA=*(N_jJlL15t} z=bM?TsoLlNIaR0DUTZyKaB`KfUJO%n`G|Zxes(>IHt{Yt{;!wNieIb|^_D+u=psF| zkDVbFJRM1p#kE_%&7;iE;#BD98G4%?cR|=3BS$0x)HE5($ybX}$P$<7{QHe@4U@Dq|PxFKN+Xonk3~y&~VGC@=mLdZiXGY_4`}*cNaFexz5nwpAUC-b5rlw@q zk3oxuC%v!nhRJwX8Dn>|eE!~@ceMtNuXO{I7DHUG#+t{>(DUf?Iz&XVbwr+fH&eFa zZh!S=b-ZA0e7zpVRe`J2j@m0`99coCXIplLdiET@>+Kd#l&%CibBrEd-oQezZ;Xs! zo$&D6EZ|rvTGK4RB60wEXr*d*EYJMw9xdNMn&;Qo*Jhi29$#4dYkg<(hE#fZv~2&m z4X0YQut?0i)v^R$G8FAm3UtGj&Agk=dg;)2ob1qdKX>ztH=W)uS>yvb-@<@>0G%c?)Qrfmh0@BftFK z@Oo$L-s(Ghxc%q<+zVD6Rpads!c&h23m>eE0)bK7)rALqggS*Ri@SI*m87LDi}6rV zATB>xdS3j#cSpT;MxkdjGFX8eua@1Ol`e-GG=+wY?9QsraLpXug-f;3yD2)u z{gIuiHNG*_dF1`YJEgY!`FcJ0tUApnj;%(jnbYnX$}}nA1f3euQ2;ME5QclU4g=YlPw&Fj=-0 zbzxoYDjXo+e}{V7g@qPqg~<_PAi5Mp&@P;ck|RTC1fl6HK| zj4Q!SXLMK9Awg}~pLubzuAOL+x2g5zX6n2yeVgsD_N7fUm{lZw{s7!Oa$TFGYfjl^ z-8Aa(X2sLid(p$c9Dp^9%H697M`qoSikl~Rr?}~z+Biu3OLt&7*z$`GB~ynoic$qc zpv_`)A3Nw+UF3QGb!&a~#EabX)n;bb;Tcc0$&JOI!K&b0PY@pHO{8E53wjm`NlgLs zlj{}xmlGY8%y;OVJMJn;J`!#JZ*`&M&QQVzt{pd(INoX^4jm zk>5Lxv4n|eILM9$XkF?Jp;?sD0D*JZN?az<5O@$yFJ;B~JSA$U~b_E8f z&)DQ}1)6`k(?TcwA^#u}mgL~YZML{g^!iaEyA7}_+ z3DxJ07bijm@4~e=3Mzp0 zdajr$oQ-O@p0I*9c1+Lna}pEZ&^~+w{UB<6m4Y1oK&-YM|Z`39~kz=<%gjzy?Q34fX`L$`y&4f zV(c#NEW(7cBeA8F#kRpgr`7a7=h@sQI`o6lXkQR#!Xn=!cpA<@57*e?O~+4?33W;Z zDG&M)?6-+V;NRd^X*y^aMb=j#j_FiomAcA+%8It@G}42WYzIQaJWUZ0IcT;6Kw5w! zd*BW8h8_$ic(wgtz&~1=DuMpNe;9iP)QVkIIv$~3WNj;fk!hYW`e7q$lJuNpOy&jM zg@a=aL7CPdhYRn6h~|vH4-bChHXw~gHe*PdlTV`DSI}-!(lRVRp!?^oKIJ?A|NpO_r?eH zC_}I@dXhW)(qt6~p+7OS8`~3uJpN$5-j7)_*P+-REsl+k{}~Iocc5ODslQgm8A%MjA_R$7$wo|V-1 zbe2<5Fu$exY%`F>X>#gE<<^N9$x-ClWUlG)H@*RKj%Si6L{=@hr9==9y-5m2GD?^e z*SFVToq347GU&WLlGie#^h~B%4LiH;&9r;1K^;T;768a=(_&nTqvn$rld)d6(M8+?601~*u2OJsTbV$y9 zojNyo6uprFP6xW4F54`qLZ=xPaw_xibgn1o_adp}7mXuQHl6#7j!ldrN0kIr#c^n^-j^Rx#E6O6PZ^P^3RraY>sA=d|d zzz-mZb{&N+nhz0lWWNb2)O~#1+QndqbAx9jlNG#xG1v|+j`Fxkj21Ue5E53q8Fq^5 zvUi0G{lqd#5#Ct>Rl|zA$&S~5dr})5ps&;FN{3GsRsucdJd7S_zYU5I4?9T!`-$Hx zO57oM2ph$Ng3AyJrmy2-Z-*VUIfxVL@kkr+O`8sPbRt>PXEj_QsBt5dCR)IXfzrSo zL4qX-!LTB*5A(0+l^!6^i3s7}C;;-OW-k@_`=yI+Yj%%At6hWox5AL+L5@_)>uhv` zAu)=DyedF;IlX@_=TGOKLEH7z|DL=CdH@hC4HW_YWt{O$hHaw6`}S|J^K|iOp=2=R z(?%%U;0QwxZS`qmc@Qf>k<)2W>>wG&d=XoI=rNqwL6(9)!?%zu3W(VbYAb}WLWmK> zi2=TWsP!B^%-;y`;dBXoGIW!1lEvWY_5_d|zul<+;sztM+*<~6{w%AEcqm{r=p~mp z4wpJl-XSLJ@7Hhp_ZliQ#2dm#*v!cCmXvs8??6MNGs@85;C63KLHEi{td8=$qt!j| z>ywv2bGgSF^i%59ZGhvtbx4i^AQRJsr`4|OJ|>2TdDsdAmwN#T;Q1R+xRQInYrOwz zEW|ce;EZyiC73qQ#D#ApnD!3|5;}MtUG@NFLimmj*%UfNsv&RvIeSM%ckwh0fmWWz z%+B0Vh!kZzPA<|tdShvTwx+qZ(xkE3XwUR^>F-P%NgQ;@zbvMfNqOpD(VFJc84`c1 zyc@n6veuCT&? zuU|+My2JM4xrcIwXzy{yan;X}v{atP+V;BOn^&xzKa_`7cy2>IC|M^gIWj!+hJkGP zeMwbVSQrWl3Yfl4Mn)E0S6Wp?OF|+fFCQBn-Q{JXn_bnM{Q8THEjiog#f5yxH#Cpp zVb%PuL@Y|udaO_d6kt~;IEDCEI;MPOA(ex1L!yz0Bg3QATPzhrz@8u{-EW!e=)OE% zi))WKWtqAcn%6Cq`Pi4w#90sAo<#;PxrPj4d3t&JXRB%h&N1nhV)UDXumnnTaw4Zb8D-2XSM4Bds+BKgIk^OIPzwhuH@gxtx<)%K2C@e zeKY2PLbZja_{raBLdh-Lir_&e^_qtH3*{Aq^b8}y%c2sZlj5g-HuFs<8>xY33-VS~ zqY`#-0qNP>;UII8{Ra_8VJIy77!mW30n5+_zK<$@uq4?5ht2>I-}w0cT^FR?-Qys? zP-9IQz1zqBqmRm3>bkAfg`Kys-d-gouNqIZp0_PLTHSt&i6e!W-m>c(uUU@8pDi6H zPfL4Qp07JrqAdhU|0t?DxZvG$HM2wk(e8i2>IAW38M_}AaP`{FsxJ#xJ<}>#Z34hr z_7~OOvS7-$mp7lX*p)N3Kqs4RIrjAT%G?rQH5lgD8ZM{1kbQ^jMO1PdXuIGmDj_|h zR!Z*sYmD;^A#=ENmn(#+l^$03DS}dWev3;ndp`99+v9FR{gNe{vzP{<6*GntmgOP^ z&>Eixpdx-LHQ0DCrTjT&;PEy3oO;n}m+b#bC*fIewJ|n$okGu9tLvmspOvnHb9<5_ z6FtI6jExOg=6n8nTKlNzh--o;##SC@Oxqlk7+nTHwJ7Z=filKldtA}DfDqipV`TuU zKQsO!K@f_1yysN3}=m;Aw>{jHcZ3*h)zR`U`F<$;sKdO?Z`?S!Hsfd zcEV@LD3KJyXV4H-sX<361G~Hpml@@^?f9~}(N8JQ^b}J!!SZ`STOxsomNoTN4ygzz zOM*(EkQj*p9Gf13(&!E)R6GMeiP!()51+M~fvXF|KSy&Sb>np36AS_C|I9LGE<1C$ zcPxmfRIkNdjRzrimnS+1mc%s@U?cVLz>pGJXxLG#&OPPN-+>x41Q16TVp4fiDGDSV z{LahvHFUqHAW;@#ZHb6Mh)xp-jL+A@FVNew+adb~2Z0#>-=W~pCm+Z`PIXJU8{23yaBVt2}Y#|W?nQBzs& ztp&3dY{Ozd5N%pju^K!_@y2$TG^+FStie}6BwY%yz)w}i`bND%ndBl#PyapHs6~ul z%U&@Ey07{x(ntIh3kJZz(zBpC`^HbE^YLbVX%>2zjukHHXpp&xNdY4vI&s)kXS{!f z4zMn-s3y-<>0%LY~m_YLM1HEH#T(7%F392V|ElynPc=7N?d_t&eo*3VpT}kfO z6e;7fiz0RIqSu}@OGTvYz_#^P6OQ*cTIp0jBLyfUUN7!5wYe&+RR+w*i$?VU`I-2n z-)`;rsdR~{R_|_hH~Q4n)QE_P&d$z2<=gw+{?OR)X7Yo&(59?(jKytv;wt#zF(dRb zJ{pn{8a|ij^TY9^sHkXbFLUm>YwG=SD5Jz?xEYQ1XfqLe!i6a_PFaUoN?SJ}L6(ok z>Q5V-cTKMP3F@YzPHQWxgc2d%0W7{n`FTwIiyiKl;2y$b@}uPw4Ys(RjKIG4*SE>F zsi2}NEL7C{fneyD+g*QLM1s8Efxwtx@+9z(I?&m%8A*tHO)qc0xhNlEGaH6+ViNzb zgWU4!hz_La3bb=QCtclaOk+f7XlQ;TU=cSmG77DuASMj@iTIAYRu0M$jdVj zQ`y~N-wrp6Z!My7a-W=8OobG0gEU z>)T0d=5=Q2Z|&q#9NAbv)6<+$>s)ir+Xe}N2!4#nmlhiYcwRiyM_nG+#>~UZ; zwOM`U-9`ZAC3_^BN!0>k#3^s9zwZL&ro6qHKG3wuSXlna%fsIkuO{%EgRncT)gJw8BY8s;j5+Hjh+NA7X-V>j z0fGEhY$R6nsG~ZQ-J+iA?ZvV_vHp$y=m6UIAMd3wszjO9FDxz2cQvgHs?CI0{e#t~ znR2{v9Wf!X=t4DehOF40BwfpHL3hFrZh##QZ5|6N6J% zkQVC|?)^ycX!E-SBzi$rcVn63L~I^`fb*9(9X{_&?l3q!&ZZkU{xI03f$>|sCLwuZ zlN>LWS^>61UC8`?hK*s5j!QyEPgZ4SXKAUKjg60v&S-dCo+QQlu~@>^3@~5Io+SCJ6Aa>@ADP<*f!}moEf6LBGH~Yfk(I94cP8-IzR_Oh~kW z%3aXMl(4=JrVt_61MpQ_>SVA+xmgr&F(hoPjKK2k5%9+MAkZ5SinWuoWwGnUdSK<& zhZf!i-`N9!QdH8U#HWl0v6>535!Sc)8I4-<^y^jDQ9MUg@Kkwgef> zufgVFzS<#j$1sIF@K1~4X3ty33Y-}d>;=ScK#Y~76?#s~$-%hXykIDe*a~k?^xq}_ zzQLbwDZtIgn(=>V9y|g$pki_l_bcvn)hh2Gx=HOvb&! zs`6~38g8utV>h-=_IpX}8f&`$5NW1!q&^{ZvQwH--a3{p z0s3RAN{bWLmhq&^csUJ5e4ep(#}DD3@b@w8Im_?X*oBD^IBZpETDoi*0LlocGM53m z8j4g`vpz_2?3`Yi9^Dstrlp1M&WEIHT>}-o^qg0Q?abgCPLVV%tie%RA90#Z?%WFZ z>kY6ddzeAYdhKaJAqOHdLywPapNar}A8Z`|OYF?qGCZ5(wB;4P#7rIG0g6uOCnlDORstTktBscE z=(;aP&-sjVcuS0#Z7-r zR$n=V=-GCZC+htu0e0EG=zA<8Dm1Tb-Ls3-%wy#T)Z7FdQ`|Vrojk^YET;m<`o0Y3 zxpg&i^pZ=B^(cMQbuKzf>bpNYEo^9bd9!nKzknBH*-X9xMW+l!v4pkWZ;xI)$Du2n zGqvG?E~s~$_YVtIrx2IVHcrg)80FrURqlN2v|Dv5@zk9;46SZrQb@t!ns>#kfytfw z7vMY-J5_Gnd+M4j8)=}#-!DfgQ}yWp%riEJE<1|^lBvSG3COQ@7a-riU3NgKNr;iO zoDku|OLQ3S?@R|K9g~LTEpL6;IpUTehEgk`?K_=!o=#&|(~(kO>?a0YPo4OsfOxw@ zS7Fxd)k9&UGo0O89n_9**~yiG;r?C|A1#WGL#Wr?l{BX#2b4TF5?NUPNuoP9hW51P zYMNF%YO_pTyOoXv;`q?BM3d{>V zfPqr`D7W@g%#7?b{!=4I*zEfE~qL~LBGyNU2>lFv%s7(VYeH3(Z45Jl)9 z!Yu;_(q=@VfI{>K9iACF7Z4eLSKFDlfTp*j@#$3PZ`0Y)b1G(XxwmI%ZNA$-mId@m zLzbIS=!4c}{lteh;J=_zI-l4NN_aiXZNBy;e-#V%_MW?@3}VLOr~4@E#o?veWrGy5 zYsV!PdT9KVzQg178(<*HK#aHwl3-|6tj8*RrB1;N@pNw}U^tn*;RP|ij&KzOEj6{| z9Dx?Nq8zzfq;~;`08XR5Ar-l+^hJ3{0MgT=p(S;OfoYU-f=^wj}KIfapNsOka zm}6u*rx6PC2x>Ww(~=t+%qT>RNl4M(qrDO_v>0Zm6^tCZAcX9e0UQ}%LIvB2`U}BQ z%D(i%?>OrJ4F1Dy)oiEVZ2Zp=`JWQ(3qM$a5{(?OP8=U}S3=?=hO*q6o#~}#-=H}Z zwxoLhDfYsG9j_$w=Z|V?^E%FFzy#c&im5*cd4>I$AV=|l0+TmmnB~8QBneEZz8TDP z*BC!Ccr2m*=@A#AhIJPBG^K@dGrT|JHQ(ubGyNU3Rc%Ck-VJzow+ZR#VWFYzv6vP4 zEiwMjXz-^RNDNUMz6pi8Y6_`yD1k#uE5$6xHiHw8h(&gHne#GKR@N%vySsE`%iwTr zJ47erVr9o+bq0VB8xIGkFVE9tAzAb`x%Q?!A*Jr4Hp3%3scO7lSojy2SJ(>>wF(S9 zE_8{B4{k0*5)u-ii#a5un4+YnrJVKGWaRJ821?tcuLSBYw`*~6ed_M6IAKJ&zvJvh za8F|^!xsr@zAED-^!S-1W#tG|Z-|&JH8nQ3WTFdOTU%gYU?`$n!^6X$gW;*Mgk1qH zkkJwi>+Hcr_C@H64CqQXYdz*~dm+Qc&vv~rzN`fbQ1pqL$3eImx&|Jm-IcaD_};84 zUxkY#-I_D}vZL!OgNwSGLvj;j%QO`w?UpW1Rsa&fi($oa)YV7nbKvi& zne@>*6JWB&okB(HLzD)KL&|*P3sRK*<;C?GURu3WX!*7vT&u?p!+mlQ*jL#ZBGQ)f zkg2kRGa7B&zUAyM@06+ReUYjk3XZ2p_uPqySXeLb8ainaaGTRQAyJ9$i9P3dNm{sz z?JR>3EiuIo=@_vI)HwyJ+@ggp=@S?RTLz=7UFEg6VzVyFPZ1V^=qa57W!Z^6Mae_H z)UGC&{H{9idC3P8D}nQEIldWPjS4{KX^eLYEo{eL8_Taztby)_h?`=opm}2(>l!7G1Le%>!%N%BAW^RvXO0REr zo2|AS7YX24po2Ar{jLV{dGGo&o7Q7 z#v(RI-jRkXl-fD{To9WfIQ~3wzg>!)^yf8m5xro0TD&gbLTT)y?Qw`^F|}Vr?-3eh z_dPR*x}|#~l?bI>#(+|8et(~rx5KT$uH0O!Xi6zvWZw0)UlbG(5C21S-?_C84HTQ(`yBQ;$C|fb69AvW04~*N*rwUa zo*^voo?;5H+q*hGm~`jLz)$1&h^E6Yf{zCiS%(#9_Z^*alB_HR@SYRp(0J`klw7!K zXo`%=zB#6PYE)bpHtdOi)o|qX@TDyd$pz`DA4BEIDGP1St*P3|Fs8}(!{W-Fbs~rs zLa}{At~gnLI-*dNTrpP@H8~t~pqMj>njk0O1RN<_hSKM|DKjkw}19Ms$NB?6fvh4woxJh3qCBD6vC=mcs$E~77JYU z-N>gbvr-dD5iPiFAL+Yv2l5lM8&rZ=5?}u%#e>kpEt!It5i=OAa}W{R=}Yr2J+-Z% z6;#6)=%-erXBcL8E~IK_4dwg#ObP@8x1sY<)1Wk^^HIwhTsH4p3Ut&1B7(iKU)8G_ zw7joy+XcQmZ(lU-{o_MFP*L0d-%^{XzOR4qUKDH;ilme#@ji#XO|$*`yB`xSQ6g3! zlo?N=q2TY-oU7ViLtSas4JR0>Jg2h=gE;Om8d!oBI3|JU4OA?Ys4*-BWKcyvdkGWN z!a5LdC1+gw3lT}a?|*mn5@Du)5Flz3(qmG)1qq?>5v};`ng<{Zg5}q;3jPx2nQ7 zcxP;M5Fka2FNt=W#7ffEh=yRZ3}4;oeAQgv z$kO7`=4?OZ^G{I|I7xomAa0#*tDohfy98>KMq>#!drhDQ z5UT>U*QGx5JE<(jciPt;y-MO27@mE`$phX7CwD~JFnlTn4AgtX_$7@a_2wE>F$qIc zg>OG?V~F_5DNN3`X96+OCh2Om{GR}6(l>|VOYSZ^i$WFaxv>jesEzU;7?2unhzM>- zY<##Lm74}*$a%qeY2;1G5A1GPtv9HMh%ss=P%I%)NIP3ZiSmUR#7Z|P6d}K3gGJV*7Puqg0q{w$6(eBPJ>cOI4w-uZ^w&+rwV`nvhpSIRa`^rG9ECVLLE+2 zIU5wGKoV@b@|}TQ#xAyp$L4WG#|BD~I0=v0pLcwdw+{(oASUtjU(l2XMdqI%^|HC- zq7NE}*Z(2T{!_nS_r#H4pK)vUz)haes6YcR%GLlOEDP%GG00GU5~0)a`Yx$H%;F-z znoH>S^~O5Z|L?BWzLdkHd*oNSs7rkSywHH_u~X`gC~y8b^9GoLCR+7q8{ZB74$0d- zcB!jZ`IhLukwF41dAA>_)jfiZUUgxAIV#q9g$6>^bnKGGhEO8zJE%LoCJBFA@2`56 zuXX#Sg_8`;n(7AWF?8}Rp0bCbW7Ow@neigp8#i~={A${X7a4oU$)S|!-<=#*fKK^#QsnC;uH1r6!19JlAf@7QV`*B~hP zZEtYXy}!SPMiuyi(ZR`*R9K1Qk-xB%YCKwey#)BTaaa}mdE#g16aSzS7XB^+H0GU> z#$YL$Y%ow^@iDJ#|AcY ztEMERJt-!3Q<9;+!W0}JuPLW-2F`2^`2B)t6T)SY`68zUiy?+Mv8)#8PFF-w1_&Ms z6?DXAadO4149@-F>xCFJEW`)358#Q;Px=0Gwn}7ntfWX#{&2(xdu0g9Dp;#OjNBup z0Hmtnb7Mjozki5;;k0A;=j6VxHvIpcH*lniNC{N^z?45rg>tCv?KuXnL%xa5a`JON z(#)o*HVcNZ^0TZ^a&C=(u($k3BUFH=D{7LccHiFrhBFVCm8#JYRWh7Ke_q4+98l(o zypSH+Y(SPBHzInS&EZvCMU|52H`yE;{Bh9uz(SXzq+|9U%2l%);_8XoqY7)BQB7nh zURS{4B*`2$hRXU{jNnWEFdE+9a!g%ngd5I?3Exns�`=*c&6UyMZR@EEj^HVYTDJ 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 z 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�_+hMRq9>nBK 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ÁtZ}l$3ja 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�U-nA@>B6jm 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

    D)?Y#Q3;zEPym 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 literal 0 HcmV?d00001 diff --git a/esp-crab/master_recv/.gitignore b/esp-crab/master_recv/.gitignore new file mode 100644 index 0000000..385111f --- /dev/null +++ b/esp-crab/master_recv/.gitignore @@ -0,0 +1,109 @@ +.config +*.o +*.pyc +*.orig + +# gtags +GTAGS +GRTAGS +GPATH + +# emacs +.dir-locals.el + +# emacs temp file suffixes +*~ +.#* +\#*# + +# eclipse setting +.settings + +# MacOS directory files +.DS_Store + +# Components Unit Test Apps files +components/**/build +components/**/sdkconfig +components/**/sdkconfig.old + +# Example project files +examples/**/sdkconfig +examples/**/sdkconfig.old +examples/**/build + +# Doc build artifacts +docs/**/_build/ +docs/**/doxygen-warning-log.txt +docs/**/sphinx-warning-log.txt +docs/**/sphinx-warning-log-sanitized.txt +docs/**/xml/ +docs/**/xml_in/ +docs/**/man/ + +# Downloaded font files +docs/_static/DejaVuSans.ttf +docs/_static/NotoSansSC-Regular.otf + +# Unit test app files +tools/unit-test-app/sdkconfig +tools/unit-test-app/sdkconfig.old +tools/unit-test-app/build +tools/unit-test-app/builds +tools/unit-test-app/output +tools/unit-test-app/test_configs + +# Unit Test CMake compile log folder +log_ut_cmake + +# test application build files +tools/test_apps/**/build +tools/test_apps/**/sdkconfig +tools/test_apps/**/sdkconfig.old + +# IDF monitor test +tools/test_idf_monitor/outputs + +TEST_LOGS + +# gcov coverage reports +*.gcda +*.gcno +coverage.info +coverage_report/ + +test_multi_heap_host + +# VS Code Settings +.vscode/ + +# VIM files +*.swp +*.swo + +# Clion IDE CMake build & config +.idea/ +cmake-build-*/ + +# Results for the checking of the Python coding style and static analysis +.mypy_cache +flake8_output.txt + +# ESP-IDF default build directory name +build +build_esp*/ +build_linux*/ +size_info.txt + +# lock files for examples and components +dependencies.lock + +# managed_components for examples +managed_components + +# pytest log +pytest_embedded_log/ +pytest_log/ +.pytest_cache/ +XUNIT_RESULT.xml + diff --git a/esp-crab/master_recv/CMakeLists.txt b/esp-crab/master_recv/CMakeLists.txt new file mode 100644 index 0000000..b544973 --- /dev/null +++ b/esp-crab/master_recv/CMakeLists.txt @@ -0,0 +1,15 @@ + +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctlycmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +message("EXTRA_COMPONENT_DIRS: " ${EXTRA_COMPONENT_DIRS}) +add_definitions(-D CHIP_ID=1) +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/CMakeLists.txt b/esp-crab/master_recv/components/bsp_C5_dual_antenna/CMakeLists.txt new file mode 100644 index 0000000..0d6f84c --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/CMakeLists.txt @@ -0,0 +1,7 @@ +idf_component_register( + SRCS "bsp_C5_dual_antenna.c" ${SRC_VER} + INCLUDE_DIRS "include" + PRIV_INCLUDE_DIRS "priv_include" + REQUIRES driver spiffs esp_wifi + PRIV_REQUIRES fatfs esp_lcd +) diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/Kconfig b/esp-crab/master_recv/components/bsp_C5_dual_antenna/Kconfig new file mode 100644 index 0000000..7ce695e --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/Kconfig @@ -0,0 +1,93 @@ +menu "Board Support Package" + + config BSP_ERROR_CHECK + bool "Enable error check in BSP" + default y + help + Error check assert the application before returning the error code. + + menu "I2C" + config BSP_I2C_NUM + int "I2C peripheral index" + default 0 + range 0 1 + help + ESP32C5 has two I2C peripherals, pick the one you want to use. + + config BSP_I2C_FAST_MODE + bool "Enable I2C fast mode" + default y + help + I2C has two speed modes: normal (100kHz) and fast (400kHz). + + config BSP_I2C_CLK_SPEED_HZ + int + default 400000 if BSP_I2C_FAST_MODE + default 100000 + endmenu + + menu "SPIFFS - Virtual File System" + config BSP_SPIFFS_FORMAT_ON_MOUNT_FAIL + bool "Format SPIFFS if mounting fails" + default n + help + Format SPIFFS if it fails to mount the filesystem. + + config BSP_SPIFFS_MOUNT_POINT + string "SPIFFS mount point" + default "/spiffs" + help + Mount point of SPIFFS in the Virtual File System. + + config BSP_SPIFFS_PARTITION_LABEL + string "Partition label of SPIFFS" + default "storage" + help + Partition label which stores SPIFFS. + + config BSP_SPIFFS_MAX_FILES + int "Max files supported for SPIFFS VFS" + default 5 + help + Supported max files for SPIFFS in the Virtual File System. + endmenu + + menu "SD card - Virtual File System" + config BSP_SD_FORMAT_ON_MOUNT_FAIL + bool "Format SD card if mounting fails" + default n + help + The SDMMC host will format (FAT) the SD card if it fails to mount the filesystem. + + config BSP_SD_MOUNT_POINT + string "SD card mount point" + default "/sdcard" + help + Mount point of the SD card in the Virtual File System + + endmenu + + menu "Display" + config BSP_DISPLAY_BRIGHTNESS_LEDC_CH + int "LEDC channel index" + default 1 + range 0 7 + help + LEDC channel is used to generate PWM signal that controls display brightness. + Set LEDC index that should be used. + + config BSP_LCD_DRAW_BUF_HEIGHT + int "LCD framebuf height" + default 100 + range 10 240 + help + Framebuf is used for lvgl rendering output. + + config BSP_LCD_DRAW_BUF_DOUBLE + bool "LCD double framebuf" + default n + help + Whether to enable double framebuf. + endmenu + +endmenu diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/LICENSE b/esp-crab/master_recv/components/bsp_C5_dual_antenna/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/README.md b/esp-crab/master_recv/components/bsp_C5_dual_antenna/README.md new file mode 100644 index 0000000..e69de29 diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/bsp_C5_dual_antenna.c b/esp-crab/master_recv/components/bsp_C5_dual_antenna/bsp_C5_dual_antenna.c new file mode 100644 index 0000000..46df003 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/bsp_C5_dual_antenna.c @@ -0,0 +1,538 @@ +/* + * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "driver/gpio.h" +#include "driver/ledc.h" +#include "driver/spi_master.h" +#include "esp_err.h" +#include "esp_log.h" +#include "esp_check.h" +#include "esp_spiffs.h" +#include "esp_lcd_panel_io.h" +#include "esp_lcd_panel_vendor.h" +#include "esp_lcd_panel_ops.h" +#include "esp_vfs_fat.h" + +#include "iot_button.h" +#include "bsp_C5_dual_antenna.h" +#include "esp_lcd_gc9a01.h" +#include "display.h" +#include "touch.h" +#include "esp_lcd_touch_cst816s.h" +#include "esp_lvgl_port.h" +#include "bsp_err_check.h" + +#include +#include +#include +#include +#include +#include "driver/uart.h" +#include "esp_sleep.h" +#include "esp_timer.h" +#include "led_strip.h" +#include "sdkconfig.h" + +static const char *TAG = "ESP-Magnescreen"; +RGB_LED_Config *rgb_led_handle; +bool rgb_task_started = false; +static led_strip_handle_t led_strip; +#if CHIP_ID == MASTER_CHIP + +static lv_disp_t *disp; +static lv_indev_t *disp_indev = NULL; +static esp_lcd_touch_handle_t tp; // LCD touch handle +static esp_lcd_panel_handle_t panel_handle = NULL; + +sdmmc_card_t *bsp_sdcard = NULL; // Global SD card handler +static bool i2c_initialized = false; + +static button_handle_t g_btn_handle = NULL; + +esp_err_t bsp_i2c_init(void) +{ + /* I2C was initialized before */ + if (i2c_initialized) { + return ESP_OK; + } + + const i2c_config_t i2c_conf = { + .mode = I2C_MODE_MASTER, + .sda_io_num = BSP_I2C_SDA, + .sda_pullup_en = GPIO_PULLUP_ENABLE, + .scl_io_num = BSP_I2C_SCL, + .scl_pullup_en = GPIO_PULLUP_ENABLE, + .master.clk_speed = CONFIG_BSP_I2C_CLK_SPEED_HZ + }; + BSP_ERROR_CHECK_RETURN_ERR(i2c_param_config(BSP_I2C_NUM, &i2c_conf)); + BSP_ERROR_CHECK_RETURN_ERR(i2c_driver_install(BSP_I2C_NUM, i2c_conf.mode, 0, 0, 0)); + + i2c_initialized = true; + + return ESP_OK; +} + +esp_err_t bsp_i2c_deinit(void) +{ + BSP_ERROR_CHECK_RETURN_ERR(i2c_driver_delete(BSP_I2C_NUM)); + i2c_initialized = false; + return ESP_OK; +} + +esp_err_t bsp_spiffs_mount(void) +{ + esp_vfs_spiffs_conf_t conf = { + .base_path = CONFIG_BSP_SPIFFS_MOUNT_POINT, + .partition_label = CONFIG_BSP_SPIFFS_PARTITION_LABEL, + .max_files = CONFIG_BSP_SPIFFS_MAX_FILES, +#ifdef CONFIG_BSP_SPIFFS_FORMAT_ON_MOUNT_FAIL + .format_if_mount_failed = true, +#else + .format_if_mount_failed = false, +#endif + }; + + esp_err_t ret_val = esp_vfs_spiffs_register(&conf); + + BSP_ERROR_CHECK_RETURN_ERR(ret_val); + + size_t total = 0, used = 0; + ret_val = esp_spiffs_info(conf.partition_label, &total, &used); + if (ret_val != ESP_OK) { + ESP_LOGE(TAG, "Failed to get SPIFFS partition information (%s)", esp_err_to_name(ret_val)); + } else { + ESP_LOGI(TAG, "Partition size: total: %d, used: %d", total, used); + } + + return ret_val; +} + +esp_err_t bsp_spiffs_unmount(void) +{ + return esp_vfs_spiffs_unregister(CONFIG_BSP_SPIFFS_PARTITION_LABEL); +} + +// Bit number used to represent command and parameter +#define LCD_CMD_BITS 8 +#define LCD_PARAM_BITS 8 +#define LCD_LEDC_CH CONFIG_BSP_DISPLAY_BRIGHTNESS_LEDC_CH + +static esp_err_t bsp_display_brightness_init(void) +{ + // Setup LEDC peripheral for PWM backlight control + const ledc_channel_config_t LCD_backlight_channel = { + .gpio_num = BSP_LCD_BACKLIGHT, + .speed_mode = LEDC_LOW_SPEED_MODE, + .channel = LCD_BACKLIGHT_CHANNEL, + .intr_type = LEDC_INTR_DISABLE, + .timer_sel = 1, + .duty = 0, + .hpoint = 0 + }; + const ledc_timer_config_t LCD_backlight_timer = { + .speed_mode = LEDC_LOW_SPEED_MODE, + .duty_resolution = LEDC_TIMER_10_BIT, + .timer_num = 1, + .freq_hz = 5000, + .clk_cfg = LEDC_AUTO_CLK + }; + + BSP_ERROR_CHECK_RETURN_ERR(ledc_timer_config(&LCD_backlight_timer)); + BSP_ERROR_CHECK_RETURN_ERR(ledc_channel_config(&LCD_backlight_channel)); + + return ESP_OK; +} + +esp_err_t bsp_display_brightness_set(int brightness_percent) +{ + if (brightness_percent > 100) { + brightness_percent = 100; + } + if (brightness_percent < 5) { + brightness_percent = 5; + } + + ESP_LOGD(TAG, "Setting LCD backlight: %d%%", brightness_percent); + uint32_t duty_cycle = (1023 * brightness_percent) / 100; // LEDC resolution set to 10bits, thus: 100% = 1023 + BSP_ERROR_CHECK_RETURN_ERR(ledc_set_duty(LEDC_LOW_SPEED_MODE, LCD_LEDC_CH, duty_cycle)); + BSP_ERROR_CHECK_RETURN_ERR(ledc_update_duty(LEDC_LOW_SPEED_MODE, LCD_LEDC_CH)); + + return ESP_OK; +} + +esp_err_t bsp_display_backlight_off(void) +{ + return bsp_display_brightness_set(0); +} + +esp_err_t bsp_display_backlight_on(void) +{ + return bsp_display_brightness_set(100); +} + +static esp_err_t bsp_lcd_enter_sleep(void) +{ + assert(panel_handle); + return esp_lcd_panel_disp_on_off(panel_handle, false); +} + +static esp_err_t bsp_lcd_exit_sleep(void) +{ + assert(panel_handle); + return esp_lcd_panel_disp_on_off(panel_handle, true); +} + +esp_err_t bsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io) +{ + esp_err_t ret = ESP_OK; + assert(config != NULL && config->max_transfer_sz > 0); + + ESP_RETURN_ON_ERROR(bsp_display_brightness_init(), TAG, "Brightness init failed"); + + /* Initilize I2C */ + BSP_ERROR_CHECK_RETURN_ERR(bsp_i2c_init()); + + ESP_LOGI(TAG, "Initialize SPI bus"); + const spi_bus_config_t bus_config = GC9A01_PANEL_BUS_SPI_CONFIG(BSP_LCD_PCLK, BSP_LCD_DATA0, + BSP_LCD_H_RES * 80 * sizeof(uint16_t)); + ESP_RETURN_ON_ERROR(spi_bus_initialize(BSP_LCD_SPI_NUM, &bus_config, SPI_DMA_CH_AUTO), TAG, "SPI init failed"); + + ESP_LOGD(TAG, "Install panel IO"); + const esp_lcd_panel_io_spi_config_t io_config = { + .dc_gpio_num = BSP_LCD_DC, + .cs_gpio_num = BSP_LCD_CS, + .pclk_hz = BSP_LCD_PIXEL_CLOCK_HZ, + .lcd_cmd_bits = LCD_CMD_BITS, + .lcd_param_bits = LCD_PARAM_BITS, + .spi_mode = 0, + .trans_queue_depth = 10, + }; + + esp_lcd_new_panel_io_spi((esp_lcd_spi_bus_handle_t)BSP_LCD_SPI_NUM, &io_config, ret_io); + + ESP_LOGI(TAG, "Install GC9A01 panel driver"); + esp_lcd_panel_dev_config_t panel_config = { + .reset_gpio_num = BSP_LCD_RST, // Shared with Touch reset + // .color_space = BSP_LCD_COLOR_SPACE, + .rgb_endian = LCD_RGB_ENDIAN_BGR, + .bits_per_pixel = BSP_LCD_BITS_PER_PIXEL, + }; + + ESP_ERROR_CHECK(esp_lcd_new_panel_gc9a01(*ret_io, (const esp_lcd_panel_dev_config_t *)&panel_config, ret_panel)); + + esp_lcd_panel_reset(*ret_panel); + esp_lcd_panel_init(*ret_panel); + esp_lcd_panel_invert_color(*ret_panel, true); + esp_lcd_panel_disp_on_off(*ret_panel, true); + + return ret; + +} + +static lv_disp_t *bsp_display_lcd_init(const bsp_display_cfg_t *cfg) +{ + assert(cfg != NULL); + esp_lcd_panel_io_handle_t io_handle = NULL; + const bsp_display_config_t bsp_disp_cfg = { + .max_transfer_sz = (BSP_LCD_H_RES * CONFIG_BSP_LCD_DRAW_BUF_HEIGHT) * sizeof(uint16_t), + }; + BSP_ERROR_CHECK_RETURN_NULL(bsp_display_new(&bsp_disp_cfg, &panel_handle, &io_handle)); + + esp_lcd_panel_disp_on_off(panel_handle, true); + + /* Add LCD screen */ + ESP_LOGD(TAG, "Add LCD screen"); + const lvgl_port_display_cfg_t disp_cfg = { + .io_handle = io_handle, + .panel_handle = panel_handle, + .buffer_size = cfg->buffer_size, + .double_buffer = cfg->double_buffer, + .hres = BSP_LCD_H_RES, + .vres = BSP_LCD_V_RES, + .monochrome = false, + /* Rotation values must be same as used in esp_lcd for initial settings of the screen */ + .rotation = { + .swap_xy = false, + .mirror_x = true, + .mirror_y = false, + }, + .flags = { + .buff_dma = cfg->flags.buff_dma, + .buff_spiram = cfg->flags.buff_spiram, + } + }; + + return lvgl_port_add_disp(&disp_cfg); +} + +__attribute__((weak)) esp_err_t esp_lcd_touch_enter_sleep(esp_lcd_touch_handle_t tp) +{ + ESP_LOGE(TAG, "Sleep mode not supported!"); + return ESP_FAIL; +} + +__attribute__((weak)) esp_err_t esp_lcd_touch_exit_sleep(esp_lcd_touch_handle_t tp) +{ + ESP_LOGE(TAG, "Sleep mode not supported!"); + return ESP_FAIL; +} + +static esp_err_t bsp_touch_enter_sleep(void) +{ + assert(tp); + return esp_lcd_touch_enter_sleep(tp); +} + +static esp_err_t bsp_touch_exit_sleep(void) +{ + assert(tp); + return esp_lcd_touch_exit_sleep(tp); +} + +esp_err_t bsp_touch_new(const bsp_touch_config_t *config, esp_lcd_touch_handle_t *ret_touch) +{ + /* Initilize I2C */ + BSP_ERROR_CHECK_RETURN_ERR(bsp_i2c_init()); + + /* Initialize touch */ + esp_lcd_touch_config_t tp_cfg = { + .x_max = BSP_LCD_H_RES, + .y_max = BSP_LCD_V_RES, + .rst_gpio_num = GPIO_NUM_NC, // Shared with LCD reset + .int_gpio_num = BSP_LCD_TOUCH_INT, + .levels = { + .reset = 0, + .interrupt = 0, + }, + .flags = { + .swap_xy = 0, + .mirror_x = 0, + .mirror_y = 0, + }, + }; + + // if(tp_cfg.int_gpio_num != GPIO_NUM_NC) { + // ESP_LOGW(TAG, "Touch interrupt supported!"); + // init_touch_isr_mux(); + // tp_cfg.interrupt_callback = lvgl_port_touch_isr_cb; + // } + + esp_lcd_panel_io_handle_t tp_io_handle = NULL; + esp_lcd_panel_io_i2c_config_t tp_io_config = ESP_LCD_TOUCH_IO_I2C_CST816S_CONFIG(); + tp_io_config.scl_speed_hz = 0; + ESP_RETURN_ON_ERROR(esp_lcd_new_panel_io_i2c((esp_lcd_i2c_bus_handle_t)BSP_I2C_NUM, &tp_io_config, &tp_io_handle), TAG, ""); + ESP_RETURN_ON_ERROR(esp_lcd_touch_new_i2c_cst816s(tp_io_handle, &tp_cfg, ret_touch), TAG, "New CST816S failed"); + + return ESP_OK; +} + +static lv_indev_t *bsp_display_indev_init(lv_disp_t *disp) +{ + BSP_ERROR_CHECK_RETURN_NULL(bsp_touch_new(NULL, &tp)); + assert(tp); + + /* Add touch input (for selected screen) */ + const lvgl_port_touch_cfg_t touch_cfg = { + .disp = disp, + .handle = tp, + }; + + return lvgl_port_add_touch(&touch_cfg); +} + +lv_disp_t *bsp_display_start(void) +{ + bsp_display_cfg_t cfg = { + .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .buffer_size = BSP_LCD_H_RES * CONFIG_BSP_LCD_DRAW_BUF_HEIGHT, +#if CONFIG_BSP_LCD_DRAW_BUF_DOUBLE + .double_buffer = 1, +#else + .double_buffer = 0, +#endif + .flags = { + .buff_dma = true, + .buff_spiram = false, + } + }; + return bsp_display_start_with_config(&cfg); +} + +lv_disp_t *bsp_display_start_with_config(const bsp_display_cfg_t *cfg) +{ + assert(cfg != NULL); + BSP_ERROR_CHECK_RETURN_NULL(lvgl_port_init(&cfg->lvgl_port_cfg)); + + BSP_ERROR_CHECK_RETURN_NULL(bsp_display_brightness_init()); + + BSP_NULL_CHECK(disp = bsp_display_lcd_init(cfg), NULL); + + BSP_NULL_CHECK(disp_indev = bsp_display_indev_init(disp), NULL); + + return disp; +} + +lv_indev_t *bsp_display_get_input_dev(void) +{ + return disp_indev; +} + +void bsp_display_rotate(lv_disp_t *disp, lv_disp_rot_t rotation) +{ + lv_disp_set_rotation(disp, rotation); +} + +bool bsp_display_lock(uint32_t timeout_ms) +{ + return lvgl_port_lock(timeout_ms); +} + +void bsp_display_unlock(void) +{ + lvgl_port_unlock(); +} + +esp_err_t bsp_display_enter_sleep(void) +{ + BSP_ERROR_CHECK_RETURN_ERR(bsp_lcd_enter_sleep()); + BSP_ERROR_CHECK_RETURN_ERR(bsp_display_backlight_off()); + BSP_ERROR_CHECK_RETURN_ERR(bsp_touch_enter_sleep()); + return ESP_OK; +} + +esp_err_t bsp_display_exit_sleep(void) +{ + BSP_ERROR_CHECK_RETURN_ERR(bsp_lcd_exit_sleep()); + BSP_ERROR_CHECK_RETURN_ERR(bsp_display_backlight_on()); + BSP_ERROR_CHECK_RETURN_ERR(bsp_touch_exit_sleep()); + return ESP_OK; +} + +esp_err_t bsp_pwm_set_duty(uint8_t duty_percent) +{ + if (duty_percent > 100) { + return ESP_ERR_INVALID_ARG; // 避免输入超出范围 + } + + // 计算实际占空比 + uint32_t duty_value = (1024 * duty_percent) / 100; // 13位最大值 2^13-1 = 8191 + ledc_set_duty(LEDC_LOW_SPEED_MODE, PWM_CHANNEL, duty_value); + ledc_update_duty(LEDC_LOW_SPEED_MODE, PWM_CHANNEL); + + return ESP_OK; +} +esp_err_t bsp_pwm_init(void) +{ + // 配置 LEDC 定时器 + ledc_timer_config_t timer_conf = { + .speed_mode = LEDC_LOW_SPEED_MODE, // 低速模式(80MHz / 分频) + .duty_resolution = PWM_RESOLUTION, // PWM 分辨率 (如 13 位) + .timer_num = LEDC_TIMER_0, // 使用定时器 0 + .freq_hz = PWM_FREQ_HZ // PWM 频率 (如 5000 Hz) + }; + ESP_ERROR_CHECK(ledc_timer_config(&timer_conf)); + + // 配置 LEDC 通道 + ledc_channel_config_t channel_conf = { + .gpio_num = BSP_BEEP_PIN, // PWM 引脚 + .speed_mode = LEDC_LOW_SPEED_MODE, // 低速模式 + .channel = PWM_CHANNEL, // 通道 0 + .timer_sel = LEDC_TIMER_0, // 选择定时器 0 + .duty = 0, // 初始占空比为 0 + .hpoint = 0, // 设置高电平起始点 + }; + ESP_ERROR_CHECK(ledc_channel_config(&channel_conf)); + + // 设置占空比并使能 + ledc_set_duty(LEDC_LOW_SPEED_MODE, PWM_CHANNEL, 0); + ledc_update_duty(LEDC_LOW_SPEED_MODE, PWM_CHANNEL); + + return ESP_OK; +} +esp_err_t bsp_slave_reset(void) +{ + gpio_config_t gpio_conf = { + .pin_bit_mask = ((1ULL<led_power) { + led_strip_set_pixel(led_strip, 0, rgb_led_handle->red, rgb_led_handle->green, rgb_led_handle->blue); + led_strip_refresh(led_strip); + } else { + led_strip_clear(led_strip); + } + vTaskDelay(100 / portTICK_PERIOD_MS); + } + vTaskDelete(NULL); +} +esp_err_t bsp_led_init(void) +{ + rgb_led_handle = calloc(1, sizeof(RGB_LED_Config)); + ESP_LOGI(TAG, "configured to blink addressable LED!"); + led_strip_config_t strip_config = { + .strip_gpio_num = BSP_LED_GPIO, + .max_leds = 1, + }; + + led_strip_rmt_config_t rmt_config = { + .clk_src = RMT_CLK_SRC_DEFAULT, // different clock source can lead to different power consumption + .resolution_hz = 10 * 1000 * 1000, // RMT counter clock frequency: 10MHz + .flags = { + .with_dma = false, // DMA feature is available on chips like ESP32-S3/P4 + } + }; + ESP_ERROR_CHECK(led_strip_new_rmt_device(&strip_config, &rmt_config, &led_strip)); + /* Set all LED off to clear all pixels */ + led_strip_clear(led_strip); + rgb_task_started = true; + xTaskCreate(led_strip_task, "led_strip_task", 4096, NULL, 5, NULL); + ESP_LOGI(TAG, "led strip init"); + return ESP_OK; +} + +esp_err_t bsp_led_power_off(void) +{ + rgb_led_handle->led_power = 0; + return ESP_OK; +} + +esp_err_t bsp_led_set(uint32_t index, uint32_t red, uint32_t green, uint32_t blue) +{ + if (index == 0) { + rgb_led_handle->red = red; + rgb_led_handle->green = green; + rgb_led_handle->blue = blue; + rgb_led_handle->led_power = 1; + } + return ESP_OK; +} + +esp_err_t bsp_led_deinit(void) +{ + if (rgb_led_handle == NULL) { + ESP_LOGW(TAG, "led strip not init"); + return ESP_OK; + } + rgb_task_started = false; + vTaskDelay(200 / portTICK_PERIOD_MS); + free(rgb_led_handle); + led_strip_clear(led_strip); + led_strip_del(led_strip); + ESP_LOGI(TAG, "led strip deinit"); + return ESP_OK; +} \ No newline at end of file diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/idf_component.yml b/esp-crab/master_recv/components/bsp_C5_dual_antenna/idf_component.yml new file mode 100644 index 0000000..7649564 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/idf_component.yml @@ -0,0 +1,22 @@ +targets: + - esp32c5 + +tags: + - bsp + +dependencies: + idf: ">=4.4.5" + esp_lcd_touch_cst816s: "^1" + lvgl/lvgl: "^8" + espressif/esp_lcd_gc9a01: ^2.0.1 + espressif/esp_lcd_touch: ^1.1.2 + + espressif/esp_lvgl_port: + version: "^2" + public: true + + button: + version: ">=2.5" + public: true + espressif/led_strip: "^2.5.3" + diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/bsp_C5_dual_antenna.h b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/bsp_C5_dual_antenna.h new file mode 100644 index 0000000..1eb10f0 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/bsp_C5_dual_antenna.h @@ -0,0 +1,283 @@ +/* + * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @file + * @brief ESP BSP: ESP-Magnescreen + */ + +#pragma once + +#include "sdkconfig.h" +#include "driver/gpio.h" +#include "driver/i2c.h" +#include "lvgl.h" +#include "esp_lvgl_port.h" +#include "iot_button.h" +#include "display.h" +#include "soc/uart_pins.h" +#define MASTER_CHIP 1 +#define SLAVE_CHIP 0 +#define Self_Transmit_and_Receive_Mode 1 +#define Single_Transmit_and_Dual_Receive_Mode 0 + +#if CHIP_ID == MASTER_CHIP + +/* Display */ +#define BSP_LCD_DATA0 (GPIO_NUM_6) +#define BSP_LCD_PCLK (GPIO_NUM_5) +#define BSP_LCD_CS (GPIO_NUM_NC) +#define BSP_LCD_DC (GPIO_NUM_4) +#define BSP_LCD_RST (GPIO_NUM_7) +#define LCD_BACKLIGHT_CHANNEL LEDC_CHANNEL_1 +#define BSP_LCD_BACKLIGHT (GPIO_NUM_3) +#define BSP_LCD_TOUCH_INT (GPIO_NUM_10) +#define BSP_I2C_SCL (GPIO_NUM_8) +#define BSP_I2C_SDA (GPIO_NUM_9) + +/* Buttons */ +#define BSP_BUTTON (GPIO_NUM_1) + +/* Beep */ +#define BSP_BEEP_PIN (GPIO_NUM_0) +#define PWM_CHANNEL LEDC_CHANNEL_0 +#define PWM_FREQ_HZ 2731 +#define PWM_RESOLUTION LEDC_TIMER_10_BIT + +/* LED */ +#define BSP_LED_GPIO (GPIO_NUM_2) + +/* connect */ +#define BSP_RESET_SLAVE (GPIO_NUM_23) +#define BSP_CNT_1 (GPIO_NUM_24) +#define BSP_CNT_2 (GPIO_NUM_25) +#define BSP_CNT_3 (GPIO_NUM_26) +#define BSP_CNT_4 (GPIO_NUM_27) +#define BSP_CNT_5 (GPIO_NUM_10) +#define BSP_CNT_6 (GPIO_NUM_11) + +#else + +#define BSP_LED_GPIO (GPIO_NUM_10) + +#define PIN_NUM_MISO GPIO_NUM_7 +#define PIN_NUM_MOSI GPIO_NUM_5 +#define PIN_NUM_CLK GPIO_NUM_6 +#define PIN_NUM_CS GPIO_NUM_2 + +#endif +/* Buttons */ +typedef enum { + BSP_BUTTON_POWER = 0, + BSP_BUTTON_NUM +} bsp_button_t; + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief BSP display configuration structure + * + */ +typedef struct { + lvgl_port_cfg_t lvgl_port_cfg; /*!< LVGL port configuration */ + uint32_t buffer_size; /*!< Size of the buffer for the screen in pixels */ + bool double_buffer; /*!< True, if should be allocated two buffers */ + struct { + unsigned int buff_dma: 1; /*!< Allocated LVGL buffer will be DMA capable */ + unsigned int buff_spiram: 1; /*!< Allocated LVGL buffer will be in PSRAM */ + } flags; +} bsp_display_cfg_t; +typedef struct { + uint32_t red; // 红色值 + uint32_t green; // 绿色值 + uint32_t blue; // 蓝色值 + bool led_power; // LED 电源开关状态 +} RGB_LED_Config; + +/************************************************************************************************** + * + * I2C interface + * + * There are multiple devices connected to I2C peripheral: + * - Codec ES8311 (configuration only) + * - ADC ES7210 (configuration only) + * - Encryption chip ATECC608A (NOT populated on most boards) + * - LCD Touch controller + * - Inertial Measurement Unit ICM-42607-P + * + * After initialization of I2C, use BSP_I2C_NUM macro when creating I2C devices drivers ie.: + * \code{.c} + * icm42670_handle_t imu = icm42670_create(BSP_I2C_NUM, ICM42670_I2C_ADDRESS); + * \endcode + **************************************************************************************************/ +#define BSP_I2C_NUM CONFIG_BSP_I2C_NUM + +/** + * @brief Init I2C driver + * + * @return + * - ESP_OK On success + * - ESP_ERR_INVALID_ARG I2C parameter error + * - ESP_FAIL I2C driver installation error + * + */ +esp_err_t bsp_i2c_init(void); + +/** + * @brief Deinit I2C driver and free its resources + * + * @return + * - ESP_OK On success + * - ESP_ERR_INVALID_ARG I2C parameter error + * + */ +esp_err_t bsp_i2c_deinit(void); + +/************************************************************************************************** + * + * SPIFFS + * + * After mounting the SPIFFS, it can be accessed with stdio functions ie.: + * \code{.c} + * FILE* f = fopen(BSP_SPIFFS_MOUNT_POINT"/hello.txt", "w"); + * fprintf(f, "Hello World!\n"); + * fclose(f); + * \endcode + **************************************************************************************************/ +#define BSP_SPIFFS_MOUNT_POINT CONFIG_BSP_SPIFFS_MOUNT_POINT + +/** + * @brief Mount SPIFFS to virtual file system + * + * @return + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if esp_vfs_spiffs_register was already called + * - ESP_ERR_NO_MEM if memory can not be allocated + * - ESP_FAIL if partition can not be mounted + * - other error codes + */ +esp_err_t bsp_spiffs_mount(void); + +/** + * @brief Unmount SPIFFS from virtual file system + * + * @return + * - ESP_OK on success + * - ESP_ERR_NOT_FOUND if the partition table does not contain SPIFFS partition with given label + * - ESP_ERR_INVALID_STATE if esp_vfs_spiffs_unregister was already called + * - ESP_ERR_NO_MEM if memory can not be allocated + * - ESP_FAIL if partition can not be mounted + * - other error codes + */ +esp_err_t bsp_spiffs_unmount(void); + +/************************************************************************************************** + * + * LCD interface + * + * ESP-BOX is shipped with 2.4inch ST7789 display controller. + * It features 16-bit colors, 320x240 resolution and capacitive touch controller. + * + * LVGL is used as graphics library. LVGL is NOT thread safe, therefore the user must take LVGL mutex + * by calling bsp_display_lock() before calling and LVGL API (lv_...) and then give the mutex with + * bsp_display_unlock(). + * + * Display's backlight must be enabled explicitly by calling bsp_display_backlight_on() + **************************************************************************************************/ +#define BSP_LCD_PIXEL_CLOCK_HZ (40 * 1000 * 1000) +#define BSP_LCD_SPI_NUM (SPI2_HOST) + +/** + * @brief Initialize display + * + * This function initializes SPI, display controller and starts LVGL handling task. + * LCD backlight must be enabled separately by calling bsp_display_brightness_set() + * + * @return Pointer to LVGL display or NULL when error occurred + */ +lv_disp_t *bsp_display_start(void); + +/** + * @brief Initialize display + * + * This function initializes SPI, display controller and starts LVGL handling task. + * LCD backlight must be enabled separately by calling bsp_display_brightness_set() + * + * @param cfg display configuration + * + * @return Pointer to LVGL display or NULL when error occurred + */ +lv_disp_t *bsp_display_start_with_config(const bsp_display_cfg_t *cfg); +esp_err_t bsp_display_brightness_set(int brightness_percent); +/** + * @brief Get pointer to input device (touch, buttons, ...) + * + * @note The LVGL input device is initialized in bsp_display_start() function. + * + * @return Pointer to LVGL input device or NULL when not initialized + */ +lv_indev_t *bsp_display_get_input_dev(void); + +/** + * @brief Take LVGL mutex + * + * @param timeout_ms Timeout in [ms]. 0 will block indefinitely. + * @return true Mutex was taken + * @return false Mutex was NOT taken + */ +bool bsp_display_lock(uint32_t timeout_ms); + +/** + * @brief Give LVGL mutex + * + */ +void bsp_display_unlock(void); + +/** + * @brief Set display enter sleep mode + * + * All the display (LCD, backlight, touch) will enter sleep mode. + * + * @return + * - ESP_OK on success + * - ESP_ERR_NOT_SUPPORTED if this function is not supported by the panel + */ +esp_err_t bsp_display_enter_sleep(void); + +/** + * @brief Set display exit sleep mode + * + * All the display (LCD, backlight, touch) will exit sleep mode. + * + * @return + * - ESP_OK on success + * - ESP_ERR_NOT_SUPPORTED if this function is not supported by the panel + */ +esp_err_t bsp_display_exit_sleep(void); + +/** + * @brief Rotate screen + * + * Display must be already initialized by calling bsp_display_start() + * + * @param[in] disp Pointer to LVGL display + * @param[in] rotation Angle of the display rotation + */ +void bsp_display_rotate(lv_disp_t *disp, lv_disp_rot_t rotation); + +esp_err_t bsp_pwm_init(void); +esp_err_t bsp_pwm_set_duty(uint8_t duty_percent); +esp_err_t bsp_led_init(void); +esp_err_t bsp_led_power_off(void); +esp_err_t bsp_led_set(uint32_t index, uint32_t red, uint32_t green, uint32_t blue); +esp_err_t bsp_led_deinit(void); +esp_err_t bsp_slave_reset(void); + +#ifdef __cplusplus +} +#endif diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/display.h b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/display.h new file mode 100644 index 0000000..17faea9 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/display.h @@ -0,0 +1,110 @@ +/* + * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @file + * @brief BSP LCD + * + * This file offers API for basic LCD control. + * It is useful for users who want to use the LCD without the default Graphical Library LVGL. + * + * For standard LCD initialization with LVGL graphical library, you can call all-in-one function bsp_display_start(). + */ + +#pragma once +#include "esp_lcd_types.h" + +/* LCD color formats */ +#define ESP_LCD_COLOR_FORMAT_RGB565 (1) +#define ESP_LCD_COLOR_FORMAT_RGB888 (2) + +/* LCD display color format */ +#define BSP_LCD_COLOR_FORMAT (ESP_LCD_COLOR_FORMAT_RGB565) +/* LCD display color bytes endianess */ +#define BSP_LCD_BIGENDIAN (1) +/* LCD display color bits */ +#define BSP_LCD_BITS_PER_PIXEL (16) +/* LCD display color space */ +#define BSP_LCD_COLOR_SPACE (ESP_LCD_COLOR_SPACE_BGR) +/* LCD definition */ +#define BSP_LCD_H_RES (240) +#define BSP_LCD_V_RES (240) + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief BSP display configuration structure + * + */ +typedef struct { + int max_transfer_sz; /*!< Maximum transfer size, in bytes. */ +} bsp_display_config_t; + +/** + * @brief Create new display panel + * + * For maximum flexibility, this function performs only reset and initialization of the display. + * You must turn on the display explicitly by calling esp_lcd_panel_disp_on_off(). + * The display's backlight is not turned on either. You can use bsp_display_backlight_on/off(), + * bsp_display_brightness_set() (on supported boards) or implement your own backlight control. + * + * If you want to free resources allocated by this function, you can use esp_lcd API, ie.: + * + * \code{.c} + * esp_lcd_panel_del(panel); + * esp_lcd_panel_io_del(io); + * spi_bus_free(spi_num_from_configuration); + * \endcode + * + * @param[in] config display configuration + * @param[out] ret_panel esp_lcd panel handle + * @param[out] ret_io esp_lcd IO handle + * @return + * - ESP_OK On success + * - Else esp_lcd failure + */ +esp_err_t bsp_display_new(const bsp_display_config_t *config, esp_lcd_panel_handle_t *ret_panel, esp_lcd_panel_io_handle_t *ret_io); + +/** + * @brief Set display's brightness + * + * Brightness is controlled with PWM signal to a pin controlling backlight. + * Display must be already initialized by calling bsp_display_new() + * + * @param[in] brightness_percent Brightness in [%] + * @return + * - ESP_OK On success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t bsp_display_brightness_set(int brightness_percent); + +/** + * @brief Turn on display backlight + * + * Display must be already initialized by calling bsp_display_new() + * + * @return + * - ESP_OK On success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t bsp_display_backlight_on(void); + +/** + * @brief Turn off display backlight + * + * Display must be already initialized by calling bsp_display_new() + * + * @return + * - ESP_OK On success + * - ESP_ERR_INVALID_ARG Parameter error + */ +esp_err_t bsp_display_backlight_off(void); + +#ifdef __cplusplus +} +#endif diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/esp-crab.h b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/esp-crab.h new file mode 100644 index 0000000..489c6e2 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/esp-crab.h @@ -0,0 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once +#include "bsp/bsp_C5_dual_antenna.h" diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/touch.h b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/touch.h new file mode 100644 index 0000000..3c9857c --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/include/touch.h @@ -0,0 +1,51 @@ +/* + * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @file + * @brief BSP Touchscreen + * + * This file offers API for basic touchscreen initialization. + * It is useful for users who want to use the touchscreen without the default Graphical Library LVGL. + * + * For standard LCD initialization with LVGL graphical library, you can call all-in-one function bsp_display_start(). + */ + +#pragma once +#include "esp_lcd_touch.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief BSP touch configuration structure + * + */ +typedef struct { + void *dummy; /*!< Prepared for future use. */ +} bsp_touch_config_t; + +/** + * @brief Create new touchscreen + * + * If you want to free resources allocated by this function, you can use esp_lcd_touch API, ie.: + * + * \code{.c} + * esp_lcd_touch_del(tp); + * \endcode + * + * @param[in] config touch configuration + * @param[out] ret_touch esp_lcd_touch touchscreen handle + * @return + * - ESP_OK On success + * - Else esp_lcd_touch failure + */ +esp_err_t bsp_touch_new(const bsp_touch_config_t *config, esp_lcd_touch_handle_t *ret_touch); + +#ifdef __cplusplus +} +#endif diff --git a/esp-crab/master_recv/components/bsp_C5_dual_antenna/priv_include/bsp_err_check.h b/esp-crab/master_recv/components/bsp_C5_dual_antenna/priv_include/bsp_err_check.h new file mode 100644 index 0000000..e001999 --- /dev/null +++ b/esp-crab/master_recv/components/bsp_C5_dual_antenna/priv_include/bsp_err_check.h @@ -0,0 +1,58 @@ +/* + * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "esp_check.h" +#include "sdkconfig.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Assert on error, if selected in menuconfig. Otherwise return error code. */ +#if CONFIG_BSP_ERROR_CHECK +#define BSP_ERROR_CHECK_RETURN_ERR(x) ESP_ERROR_CHECK(x) +#define BSP_ERROR_CHECK_RETURN_NULL(x) ESP_ERROR_CHECK(x) +#define BSP_ERROR_CHECK(x, ret) ESP_ERROR_CHECK(x) +#define BSP_NULL_CHECK(x, ret) assert(x) +#define BSP_NULL_CHECK_GOTO(x, goto_tag) assert(x) +#else +#define BSP_ERROR_CHECK_RETURN_ERR(x) do { \ + esp_err_t err_rc_ = (x); \ + if (unlikely(err_rc_ != ESP_OK)) { \ + return err_rc_; \ + } \ + } while(0) + +#define BSP_ERROR_CHECK_RETURN_NULL(x) do { \ + if (unlikely((x) != ESP_OK)) { \ + return NULL; \ + } \ + } while(0) + +#define BSP_NULL_CHECK(x, ret) do { \ + if ((x) == NULL) { \ + return ret; \ + } \ + } while(0) + +#define BSP_ERROR_CHECK(x, ret) do { \ + if (unlikely((x) != ESP_OK)) { \ + return ret; \ + } \ + } while(0) + +#define BSP_NULL_CHECK_GOTO(x, goto_tag) do { \ + if ((x) == NULL) { \ + goto goto_tag; \ + } \ + } while(0) +#endif + +#ifdef __cplusplus +} +#endif diff --git a/esp-crab/master_recv/main/CMakeLists.txt b/esp-crab/master_recv/main/CMakeLists.txt new file mode 100644 index 0000000..3766511 --- /dev/null +++ b/esp-crab/master_recv/main/CMakeLists.txt @@ -0,0 +1,8 @@ +set(LV_UI_DIR ui) +file(GLOB_RECURSE LV_UI_SOURCES ${LV_UI_DIR}/*.c) + +set(APP_DIR app) +file(GLOB_RECURSE APP_SOURCES ${APP_DIR}/*.c) + +idf_component_register(SRCS "app_main.c" ${LV_UI_SOURCES} ${APP_SOURCES} + INCLUDE_DIRS "." ${LV_UI_DIR} ${APP_DIR}) diff --git a/esp-crab/master_recv/main/app/app_gpio.c b/esp-crab/master_recv/main/app/app_gpio.c new file mode 100644 index 0000000..fdefe8f --- /dev/null +++ b/esp-crab/master_recv/main/app/app_gpio.c @@ -0,0 +1,35 @@ +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/gpio.h" +#include "esp_log.h" +#include "esp_timer.h" +#include "esp_log.h" +#include + +#define GPIO_INPUT_IO 27 +#define GPIO_INPUT_PIN_SEL (1ULL << GPIO_INPUT_IO) +extern int64_t time_zero; +static const char *TAG = "GPIO"; +extern QueueHandle_t csi_recv_queue; + +static void IRAM_ATTR gpio_isr_handler(void *arg) +{ + xQueueReset(csi_recv_queue); + time_zero = esp_timer_get_time(); + uint32_t gpio_num = (uint32_t)arg; +} + +void init_gpio() +{ + gpio_config_t io_conf = { + .intr_type = GPIO_INTR_NEGEDGE, + .mode = GPIO_MODE_INPUT, + .pin_bit_mask = GPIO_INPUT_PIN_SEL, + .pull_up_en = GPIO_PULLUP_ENABLE, + .pull_down_en = GPIO_PULLDOWN_DISABLE, + }; + gpio_config(&io_conf); + gpio_install_isr_service(0); + gpio_isr_handler_add(GPIO_INPUT_IO, gpio_isr_handler, (void *)GPIO_INPUT_IO); + ESP_LOGI(TAG, "GPIO %d configured with negative edge interrupt.", GPIO_INPUT_IO); +} \ No newline at end of file diff --git a/esp-crab/master_recv/main/app/app_gpio.h b/esp-crab/master_recv/main/app/app_gpio.h new file mode 100644 index 0000000..c38f9bf --- /dev/null +++ b/esp-crab/master_recv/main/app/app_gpio.h @@ -0,0 +1,11 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif + +void init_gpio(void); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/master_recv/main/app/app_ifft.c b/esp-crab/master_recv/main/app/app_ifft.c new file mode 100644 index 0000000..a6400d9 --- /dev/null +++ b/esp-crab/master_recv/main/app/app_ifft.c @@ -0,0 +1,162 @@ +/* SPI Slave example, receiver (uses SPI Slave driver to communicate with sender) + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "esp_log.h" +#include "app_ifft.h" +#include "IQmathLib.h" +#define PI 3.14159265358979323846f +#define PI_IQ _IQ(3.14159265358979323846) +#define PI_IQ_N2 _IQ(-6.28318530717958647692) +const int bitReverseTable[64] = { + 0, 32, 16, 48, 8, 40, 24, 56, + 4, 36, 20, 52, 12, 44, 28, 60, + 2, 34, 18, 50, 10, 42, 26, 58, + 6, 38, 22, 54, 14, 46, 30, 62, + 1, 33, 17, 49, 9, 41, 25, 57, + 5, 37, 21, 53, 13, 45, 29, 61, + 3, 35, 19, 51, 11, 43, 27, 59, + 7, 39, 23, 55, 15, 47, 31, 63 +}; + +void IRAM_ATTR fft_iq(Complex_Iq *X, int inverse) +{ + int log2N = 6; + int N = 64; + Complex_Iq *temp = (Complex_Iq *)malloc(64 * sizeof(Complex_Iq)); + + // Bit-reversed addressing permutation + for (int i = 0; i < N; i++) { + temp[i] = X[bitReverseTable[i]]; + } + for (int i = 0; i < N; i++) { + X[i] = temp[i]; + } + + // Cooley-Tukey iterative FFT + for (int s = 1; s <= log2N; ++s) { + int m = 1 << s; // 2 power s + int m2 = m >> 1; // m/2 + Complex_Iq w; + w.real = _IQ16(1.0); + w.imag = _IQ16(0.0); + Complex_Iq wm; + _iq16 angle = _IQ16div(PI_IQ_N2, m); + wm.real = _IQ16cos(angle); + wm.imag = _IQ16sin(angle); + if (inverse) wm.imag = -wm.imag; + + for (int j = 0; j < m2; ++j) { + for (int k = j; k < N; k += m) { + Complex_Iq t, u; + u = X[k]; + t.real = _IQ16mpy(w.real , X[k + m2].real) - _IQ16mpy(w.imag , X[k + m2].imag); + t.imag = _IQ16mpy(w.real , X[k + m2].imag) + _IQ16mpy(w.imag , X[k + m2].real); + X[k].real = u.real + t.real; + X[k].imag = u.imag + t.imag; + X[k + m2].real = u.real - t.real; + X[k + m2].imag = u.imag - t.imag; + } + float tmpReal = _IQ16mpy(w.real , wm.real) - _IQ16mpy(w.imag , wm.imag); + w.imag = _IQ16mpy(w.real , wm.imag) + _IQ16mpy(w.imag , wm.real); + w.real = tmpReal; + } + } + + // Scale for inverse FFT + if (inverse) { + for (int i = 0; i < N; i++) { + X[i].real = _IQdiv64(X[i].real); + X[i].imag = _IQdiv64(X[i].imag); + } + } + + free(temp); +} + +// Bit reversal of given index 'x' with 'log2n' bits +unsigned int inline bitReverse(unsigned int x, int log2n) { + int n = 0; + for (int i = 0; i < log2n; i++) { + n <<= 1; + n |= (x & 1); + x >>= 1; + } + return n; +} +void IRAM_ATTR fft(Complex *X, int N, int inverse) +{ + int log2N = log2(N); + Complex *temp = (Complex *)malloc(N * sizeof(Complex)); + + // Bit-reversed addressing permutation + for (int i = 0; i < N; i++) { + temp[i] = X[bitReverse(i, log2N)]; + } + for (int i = 0; i < N; i++) { + X[i] = temp[i]; + } + + // Cooley-Tukey iterative FFT + for (int s = 1; s <= log2N; ++s) { + int m = 1 << s; // 2 power s + int m2 = m >> 1; // m/2 + Complex w; + w.real = 1.0; + w.imag = 0.0; + Complex wm; + wm.real = cosf(-2.0f * PI / m); + wm.imag = sinf(-2.0f * PI / m); + if (inverse) wm.imag = -wm.imag; + + for (int j = 0; j < m2; ++j) { + for (int k = j; k < N; k += m) { + Complex t, u; + u = X[k]; + t.real = w.real * X[k + m2].real - w.imag * X[k + m2].imag; + t.imag = w.real * X[k + m2].imag + w.imag * X[k + m2].real; + X[k].real = u.real + t.real; + X[k].imag = u.imag + t.imag; + X[k + m2].real = u.real - t.real; + X[k + m2].imag = u.imag - t.imag; + } + float tmpReal = w.real * wm.real - w.imag * wm.imag; + w.imag = w.real * wm.imag + w.imag * wm.real; + w.real = tmpReal; + } + } + + // Scale for inverse FFT + if (inverse) { + for (int i = 0; i < N; i++) { + X[i].real /= N; + X[i].imag /= N; + } + } + + free(temp); +} +float complex_magnitude_iq(Complex_Iq z) { + return _IQ16toF(_IQ16mag(z.real, z.imag)); +} + +float complex_phase_iq(Complex_Iq z) { + return _IQ16toF(_IQ16atan2(z.imag, z.real)); +} + +float complex_magnitude(Complex z) { + return sqrt(z.real * z.real + z.imag * z.imag); +} +float complex_phase(Complex z) { + return atan2(z.imag, z.real); +} \ No newline at end of file diff --git a/esp-crab/master_recv/main/app/app_ifft.h b/esp-crab/master_recv/main/app/app_ifft.h new file mode 100644 index 0000000..9665836 --- /dev/null +++ b/esp-crab/master_recv/main/app/app_ifft.h @@ -0,0 +1,26 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif +#include "IQmathLib.h" + +typedef struct { + float real; + float imag; +} Complex; +typedef struct { + _iq16 real; + _iq16 imag; +} Complex_Iq; +void IRAM_ATTR fft_iq(Complex_Iq *X, int inverse) ; +void IRAM_ATTR fft(Complex *X, int N, int inverse); + +float complex_magnitude_iq(Complex_Iq z); +float complex_phase_iq(Complex_Iq z); +float complex_magnitude(Complex z); +float complex_phase(Complex z); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/master_recv/main/app/app_uart.c b/esp-crab/master_recv/main/app/app_uart.c new file mode 100644 index 0000000..6980d2b --- /dev/null +++ b/esp-crab/master_recv/main/app/app_uart.c @@ -0,0 +1,104 @@ +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "sdkconfig.h" +#include "esp_log.h" +#include "app_uart.h" +#include "bsp_C5_dual_antenna.h" +#define UART_PORT_NUM UART_NUM_1 +#define UART_BAUD_RATE 2000000 +#define TXD_PIN (BSP_CNT_4) +#define RXD_PIN (BSP_CNT_3) +#define BUF_SIZE 4096 +static const char *TAG = "UART"; +QueueHandle_t uart_recv_queue; +static QueueHandle_t uart0_queue; +static void uart_event_task(void *pvParameters) +{ + uart_event_t event; + uint8_t* dtmp = (uint8_t*) malloc(2 * BUF_SIZE); + csi_data_t* csi_data; + uint16_t table_row_last=0; + for (;;) { + if (xQueueReceive(uart0_queue, (void *)&event, (TickType_t)portMAX_DELAY)) { + switch (event.type) { + case UART_DATA: + UBaseType_t queue_size = uxQueueMessagesWaiting(uart0_queue); + uart_read_bytes(UART_PORT_NUM, dtmp, event.size, portMAX_DELAY); + // ESP_LOGI(TAG, "[UART DATA]: %d %u", event.size,queue_size); + for (int i = 0; i <= (int)event.size - 32; i++) { + if (dtmp[i] == 0xAA && dtmp[i + 1] == 0x55 && dtmp[i + 30] == 0x55 && dtmp[i + 31] == 0xAA) { + xQueueSend(uart_recv_queue,(csi_data_t*)&dtmp[i], 0); + csi_data = (csi_data_t *)&dtmp[i]; + ESP_LOGD(TAG,"%d,%lld,%.2f",csi_data->start[0],csi_data->time_delta,csi_data->cir[0]); + i = i + 24-1; + } + } + break; + case UART_FIFO_OVF: + ESP_LOGW(TAG, "hw fifo overflow"); + uart_flush_input(UART_PORT_NUM); + xQueueReset(uart0_queue); + break; + case UART_BUFFER_FULL: + ESP_LOGW(TAG, "ring buffer full"); + uart_flush_input(UART_PORT_NUM); + xQueueReset(uart0_queue); + break; + case UART_BREAK: + ESP_LOGD(TAG, "uart rx break"); + break; + case UART_PARITY_ERR: + ESP_LOGD(TAG, "uart parity error"); + break; + case UART_FRAME_ERR: + ESP_LOGD(TAG, "uart frame error"); + break; + default: + ESP_LOGD(TAG, "uart event type: %d", event.type); + break; + } + } + } + free(dtmp); + dtmp = NULL; + vTaskDelete(NULL); +} + +void init_uart() { + uart_config_t uart_config = { + .baud_rate = UART_BAUD_RATE, + .data_bits = UART_DATA_8_BITS, + .parity = UART_PARITY_DISABLE, + .stop_bits = UART_STOP_BITS_1, + .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, + .source_clk = UART_SCLK_DEFAULT, + }; + int intr_alloc_flags = 0; + +#if CONFIG_UART_ISR_IN_IRAM + intr_alloc_flags = ESP_INTR_FLAG_IRAM; +#endif + ESP_ERROR_CHECK(uart_driver_install(UART_PORT_NUM, BUF_SIZE * 2, 0 , 20, &uart0_queue, intr_alloc_flags)); + ESP_ERROR_CHECK(uart_param_config(UART_PORT_NUM, &uart_config)); + ESP_ERROR_CHECK(uart_set_pin(UART_PORT_NUM, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE)); + ESP_LOGI("UART", "UART initialized"); + uart_recv_queue = xQueueCreate(20, sizeof(csi_data_t)); + xTaskCreate(uart_event_task, "uart_event_task", 4096, NULL, 9, NULL); // 核心 1 + +} + +int uart_send_data(const char *data, uint8_t len) { + return uart_write_bytes(UART_PORT_NUM, data, len); +} + +// void uart_receive_data() { +// uint8_t data[BUF_SIZE]; +// int length = uart_read_bytes(UART_PORT_NUM, data, BUF_SIZE, 20 / portTICK_RATE_MS); +// if (length > 0) { +// data[length] = '\0'; +// ESP_LOGI("UART", "Received %d bytes: '%s'", length, (char *)data); +// } +// } diff --git a/esp-crab/master_recv/main/app/app_uart.h b/esp-crab/master_recv/main/app/app_uart.h new file mode 100644 index 0000000..2fe02b5 --- /dev/null +++ b/esp-crab/master_recv/main/app/app_uart.h @@ -0,0 +1,21 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + uint8_t start[2]; + uint32_t id; + int64_t time_delta; + float cir[4]; + uint8_t end[2]; +} __attribute__((packed)) csi_data_t; + +#define DATA_TABLE_SIZE 100 +void init_uart(void); +int uart_send_data(const char *data, uint8_t len); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/master_recv/main/app/app_ui.c b/esp-crab/master_recv/main/app/app_ui.c new file mode 100644 index 0000000..c817583 --- /dev/null +++ b/esp-crab/master_recv/main/app/app_ui.c @@ -0,0 +1,224 @@ +#include +#include +#include "app_ui.h" +#include "ui.h" +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "bsp_C5_dual_antenna.h" +#include "app_uart.h" +#include + +#define DISPLAY_SAMPLE_STEP 3 +#define LVGL_CHART_POINTS (100 / DISPLAY_SAMPLE_STEP) +#define PI 3.14159265 +#define SAMPLE_RATE LVGL_CHART_POINTS + +extern QueueHandle_t uart_recv_queue; +extern QueueHandle_t csi_display_queue; +extern csi_data_t master_data[DATA_TABLE_SIZE]; +lv_chart_series_t * ser[6]; +int16_t sine_wave[LVGL_CHART_POINTS*3]; +float angle = 0; +static const char *TAG = "app_ui"; + +void generate_sine_wave(int16_t *data) +{ + int16_t num_samples = SAMPLE_RATE*3; + for (int i = 0; i < num_samples; i++) { + data[i] = (int16_t)(100 * sin(2 * PI * ((float)i / (float)SAMPLE_RATE))); + } +} + +int get_sine_wave_index(float angle) +{ + int num_samples = SAMPLE_RATE * 3; + int index = (int)((angle / (2 * PI)) * SAMPLE_RATE); + if (index <= SAMPLE_RATE/2) { + index += SAMPLE_RATE; + } + return (index-SAMPLE_RATE/2); +} + +void ScreenSSliderLight_function(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + lv_obj_t * target = lv_event_get_target(e); + int slider_value = lv_slider_get_value(target); + bsp_display_brightness_set(slider_value); +} + +void PhaseCalibration_button(lv_event_t * e) +{ + angle =0; + ESP_LOGI(TAG, "PhaseCalibration_button"); +} + + +void app_ui_init(void) +{ + lv_chart_set_range(ui_ScreenW_Chart, LV_CHART_AXIS_PRIMARY_Y, 0, 100); + lv_chart_set_point_count(ui_ScreenW_Chart, LVGL_CHART_POINTS); + ser[0] = lv_chart_add_series(ui_ScreenW_Chart, lv_color_hex(0x388E3C), LV_CHART_AXIS_PRIMARY_Y); // 深绿 + ser[1] = lv_chart_add_series(ui_ScreenW_Chart, lv_color_hex(0x81C784), LV_CHART_AXIS_PRIMARY_Y); // 浅绿 + ser[4] = lv_chart_add_series(ui_ScreenW_Chart, lv_color_hex(0x1976D2), LV_CHART_AXIS_PRIMARY_Y); // 深蓝 + ser[5] = lv_chart_add_series(ui_ScreenW_Chart, lv_color_hex(0x64B5F6), LV_CHART_AXIS_PRIMARY_Y); // 浅蓝 + lv_chart_set_range(ui_ScreenWP_Chart, LV_CHART_AXIS_PRIMARY_Y, -100, 100); + lv_chart_set_point_count(ui_ScreenWP_Chart, LVGL_CHART_POINTS); + ser[2] = lv_chart_add_series(ui_ScreenWP_Chart, lv_color_hex(0x1976D2), LV_CHART_AXIS_PRIMARY_Y); // 深蓝 + ser[3] = lv_chart_add_series(ui_ScreenWP_Chart, lv_color_hex(0x64B5F6), LV_CHART_AXIS_PRIMARY_Y); // 浅蓝 + + lv_chart_refresh(ui_ScreenW_Chart); + lv_chart_refresh(ui_ScreenWP_Chart); + generate_sine_wave(sine_wave); +} + +float circular_difference(float angle1, float angle2) +{ + float diff = fmod(angle2 - angle1 + PI, 2 * PI); + if (diff < 0) { + diff += 2 * PI; + } + return diff - PI; +} + +void csi_data_display_task(void *arg) +{ + app_ui_init(); + static uint16_t y_range[2] ={0}; + uint8_t count=0; + csi_data_t csi_display_data; + + uint8_t sine_offest[2]; + uint8_t cnt=0; + float range[4][LVGL_CHART_POINTS] = {}; + uint8_t csi_mode = *((bool *)arg); + if (csi_mode){ + ESP_LOGI(TAG,"Self_Transmit_and_Receive_Mode"); + } else { + ESP_LOGI(TAG,"Single_Transmit_and_Dual_Receive_Mode"); + } + if (csi_mode){ + while (xQueueReceive(csi_display_queue, &csi_display_data, portMAX_DELAY) == pdTRUE) { + cnt++; + UBaseType_t queueLength = uxQueueMessagesWaiting(csi_display_queue); + if (queueLength>10){ + ESP_LOGI(TAG, "ui queueLength:%d", queueLength); + } + range[0][count] = csi_display_data.cir[0]*5; + range[1][count] = csi_display_data.cir[1]*5; + range[2][count] = csi_display_data.cir[2]; + range[3][count] = csi_display_data.cir[3]; + + y_range[0] = 500; + y_range[1] = 0; + for (int i=0;irange[0][i]){ + y_range[0] = range[0][i]; + } + if (y_range[0]>range[1][i]){ + y_range[0] = range[1][i]; + } + if (y_range[1]count-20;i--){ + uint8_t index = (i+LVGL_CHART_POINTS)%LVGL_CHART_POINTS; + sum[0] += circular_difference(range[2][count], range[2][index]); + sum[1] += circular_difference(range[3][count], range[3][index]); + } + sum[0] = fmod(sum[0]/20 + range[2][count] + 2 * PI, 2 * PI) - PI; + sum[1] = fmod(sum[1]/20 + range[3][count] + 2 * PI, 2 * PI) - PI; + + sine_offest[0] = get_sine_wave_index(sum[0]); + sine_offest[1] = get_sine_wave_index(sum[1]); + lv_chart_set_ext_y_array(ui_ScreenWP_Chart, ser[2], sine_wave+sine_offest[0]); + lv_chart_set_range(ui_ScreenW_Chart, LV_CHART_AXIS_PRIMARY_Y, y_range[0], y_range[1]); + + lvgl_port_unlock(); + + count++; + if (count == LVGL_CHART_POINTS) { + count = 0; + } + } + }else { + static csi_data_t csi_display_data_new = {0}; + while (xQueueReceive(uart_recv_queue, &csi_display_data_new, portMAX_DELAY) == pdTRUE) { + cnt++; + if (csi_display_data.start[0] == 0){ + goto NEXT; + } + + csi_data_t csi_master_data = master_data[csi_display_data.id % DATA_TABLE_SIZE]; + if (csi_master_data.id != csi_display_data.id){ + ESP_LOGE(TAG, "%ld id_master %ld csi_display_data.id %ld",csi_display_data.id % DATA_TABLE_SIZE,csi_master_data.id,csi_display_data.id); + goto NEXT; + } + range[0][count] = csi_display_data.cir[0]*5; + range[1][count] = csi_master_data.cir[1]*5; + range[2][count] = csi_master_data.cir[2] - csi_display_data.cir[2]; + range[3][count] = csi_display_data.cir[3]; + + y_range[0] = 500; + y_range[1] = 0; + for (int i=0;irange[0][i]){ + y_range[0] = range[0][i]; + } + if (y_range[0]>range[1][i]){ + y_range[0] = range[1][i]; + } + if (y_range[1]count-20;i--){ + uint8_t index = (i+LVGL_CHART_POINTS)%LVGL_CHART_POINTS; + sum[0] += circular_difference(range[2][count], range[2][index]); + sum[1] += circular_difference(range[3][count], range[3][index]); + } + sum[0] = fmod(sum[0]/20 + range[2][count] + 2 * PI, 2 * PI) - PI; + sum[1] = fmod(sum[1]/20 + range[3][count] + 2 * PI, 2 * PI) - PI; + + sine_offest[0] = get_sine_wave_index(sum[0]); + sine_offest[1] = get_sine_wave_index(sum[1]); + lv_chart_set_ext_y_array(ui_ScreenWP_Chart, ser[2], sine_wave+sine_offest[0]); + lv_chart_set_range(ui_ScreenW_Chart, LV_CHART_AXIS_PRIMARY_Y, y_range[0], y_range[1]); + + lvgl_port_unlock(); + + count++; + if (count == LVGL_CHART_POINTS) { + count = 0; + } +NEXT: + csi_display_data = csi_display_data_new; + } + } +} \ No newline at end of file diff --git a/esp-crab/master_recv/main/app/app_ui.h b/esp-crab/master_recv/main/app/app_ui.h new file mode 100644 index 0000000..e35f058 --- /dev/null +++ b/esp-crab/master_recv/main/app/app_ui.h @@ -0,0 +1,14 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif +#include "ui.h" + +void csi_data_display_task(void *arg); +void ScreenSSliderLight_function(lv_event_t * e); + + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/master_recv/main/app_main.c b/esp-crab/master_recv/main/app_main.c new file mode 100644 index 0000000..0f5dc2f --- /dev/null +++ b/esp-crab/master_recv/main/app_main.c @@ -0,0 +1,313 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* Esp-crab Example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include +#include "nvs_flash.h" +#include "esp_mac.h" +#include "rom/ets_sys.h" +#include "esp_log.h" +#include "esp_wifi.h" +#include "esp_netif.h" +#include "esp_now.h" +#include "app_ifft.h" +#include "app_gpio.h" +#include "esp_timer.h" +#include "app_uart.h" +#include "IQmathLib.h" +#include "bsp_C5_dual_antenna.h" +#include "ui.h" +#include "app_ui.h" +#include "esp_csi_gain_ctrl.h" + +#define CONFIG_LESS_INTERFERENCE_CHANNEL 40 +#define CONFIG_WIFI_BAND_MODE WIFI_BAND_MODE_5G_ONLY +#define CONFIG_WIFI_2G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_5G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_2G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_WIFI_5G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_ESP_NOW_PHYMODE WIFI_PHY_MODE_HT40 +#define CONFIG_GAIN_CONTROL 1 // 1:enable gain control, 0:disable gain control +#define CONFIG_FORCE_GAIN 0 // 1:force gain control, 0:automatic gain control +#define CONFIG_PRINT_CSI_DATA 0 +#define CONFIG_CRAB_MODE Self_Transmit_and_Receive_Mode + +csi_data_t master_data[DATA_TABLE_SIZE]; +int64_t time_zero = 0; +typedef struct { + uint32_t id; + uint32_t time; + int8_t fft_gain; + uint8_t agc_gain; + int8_t buf[256]; +} csi_recv_queue_t; +uint32_t recv_cnt = 0; +QueueHandle_t csi_recv_queue; +QueueHandle_t csi_display_queue; +static const uint8_t CONFIG_CSI_SEND_MAC[] = {0x1a, 0x00, 0x00, 0x00, 0x00, 0x00}; +static const char *TAG = "csi_recv"; + +static void wifi_init() +{ + ESP_ERROR_CHECK(esp_event_loop_create_default()); + ESP_ERROR_CHECK(esp_netif_init()); + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(esp_wifi_init(&cfg)); + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); + ESP_ERROR_CHECK(esp_wifi_start()); + + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + .ghz_5g = CONFIG_WIFI_5G_PROTOCOL + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + .ghz_5g = CONFIG_WIFI_5G_BANDWIDTHS + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); + + ESP_ERROR_CHECK(esp_wifi_start()); + ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_NONE)); + + if ((CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) || (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_5G_ONLY && CONFIG_WIFI_5G_BANDWIDTHS == WIFI_BW_HT20)) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } + + ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_STA, CONFIG_CSI_SEND_MAC)); +} + +static void wifi_esp_now_init(esp_now_peer_info_t peer) +{ + ESP_ERROR_CHECK(esp_now_init()); + ESP_ERROR_CHECK(esp_now_set_pmk((uint8_t *)"pmk1234567890123")); + esp_now_rate_config_t rate_config = { + .phymode = CONFIG_ESP_NOW_PHYMODE, + .rate = WIFI_PHY_RATE_MCS0_LGI, + .ersu = false, + .dcm = false + }; + ESP_ERROR_CHECK(esp_now_add_peer(&peer)); + ESP_ERROR_CHECK(esp_now_set_peer_rate_config(peer.peer_addr, &rate_config)); +} + +static void wifi_csi_rx_cb(void *ctx, wifi_csi_info_t *info) +{ + static int64_t last_time = 0; + if (!info || !info->buf) { + ESP_LOGW(TAG, "<%s> wifi_csi_cb", esp_err_to_name(ESP_ERR_INVALID_ARG)); + return; + } + + if (memcmp(info->mac, CONFIG_CSI_SEND_MAC, 6)) { + return; + } + + const wifi_pkt_rx_ctrl_t *rx_ctrl = &info->rx_ctrl; + static int s_count = 0; + static uint8_t agc_gain = 0; + static int8_t fft_gain = 0; +#if CONFIG_GAIN_CONTROL + static uint8_t agc_gain_baseline = 0; + static int8_t fft_gain_baseline = 0; + esp_csi_gain_ctrl_get_rx_gain(rx_ctrl, &agc_gain, &fft_gain); + if (s_count < 100) { + esp_csi_gain_ctrl_record_rx_gain(agc_gain, fft_gain); + } else if (s_count == 100) { + esp_csi_gain_ctrl_get_rx_gain_baseline(&agc_gain_baseline, &fft_gain_baseline); +#if CONFIG_FORCE_GAIN + esp_csi_gain_ctrl_set_rx_force_gain(agc_gain_baseline, fft_gain_baseline); + ESP_LOGI(TAG, "fft_force %d, agc_force %d", fft_gain_baseline, agc_gain_baseline); +#endif + } +#endif + + csi_recv_queue_t *csi_send_queuedata = (csi_recv_queue_t *)calloc(1, sizeof(csi_recv_queue_t)); + memcpy(&(csi_send_queuedata->id), info->payload + 15, sizeof(uint32_t)); + + csi_send_queuedata->time = info->rx_ctrl.timestamp; + csi_send_queuedata->agc_gain = agc_gain; + csi_send_queuedata->fft_gain = fft_gain; + + memset(csi_send_queuedata->buf, 0, 256); + memcpy(csi_send_queuedata->buf + 8, info->buf, info->len); + xQueueSend(csi_recv_queue, &csi_send_queuedata, 0); + +#if CONFIG_PRINT_CSI_DATA + if (!s_count) { + ESP_LOGI(TAG, "================ CSI RECV ================"); + ets_printf("type,id,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,sig_len,rx_state,len,first_word,data\n"); + } + + ets_printf("CSI_DATA,%d," MACSTR ",%d,%d,%d,%d,%d,%d,%d,%d,%d", + csi_send_queuedata->id, MAC2STR(info->mac), rx_ctrl->rssi, rx_ctrl->rate, + rx_ctrl->noise_floor, fft_gain, agc_gain, rx_ctrl->channel, + rx_ctrl->timestamp, rx_ctrl->sig_len, rx_ctrl->rx_state); + + ets_printf(",%d,%d,\"[%d", info->len, info->first_word_invalid, info->buf[0]); + + for (int i = 1; i < info->len; i++) { + ets_printf(",%d", info->buf[i]); + } + + ets_printf("]\"\n"); +#endif + s_count++; + recv_cnt++; +} + +static void wifi_csi_init() +{ + ESP_ERROR_CHECK(esp_wifi_set_promiscuous(true)); + csi_recv_queue = xQueueCreate(20, sizeof(csi_recv_queue_t *)); + csi_display_queue = xQueueCreate(20, sizeof(csi_data_t)); + wifi_csi_config_t csi_config = { + .enable = true, + .acquire_csi_legacy = false, + .acquire_csi_force_lltf = false, + .acquire_csi_ht20 = true, + .acquire_csi_ht40 = true, + .acquire_csi_vht = false, + .acquire_csi_su = false, + .acquire_csi_mu = false, + .acquire_csi_dcm = false, + .acquire_csi_beamformed = false, + .acquire_csi_he_stbc_mode = 2, + .val_scale_cfg = false, + .dump_ack_en = false, + .reserved = false + }; + + ESP_ERROR_CHECK(esp_wifi_set_csi_config(&csi_config)); + ESP_ERROR_CHECK(esp_wifi_set_csi_rx_cb(wifi_csi_rx_cb, NULL)); + ESP_ERROR_CHECK(esp_wifi_set_csi(true)); +} + +static void process_csi_data_task(void *pvParameter) +{ + static int s_count = 0; + csi_recv_queue_t *csi_recv_queue_data = NULL; + Complex_Iq x_iq[64]; + float cir[2] = {}; + float pha[2] = {}; + while (xQueueReceive(csi_recv_queue, &csi_recv_queue_data, portMAX_DELAY) == pdTRUE) { + UBaseType_t queueLength = uxQueueMessagesWaiting(csi_recv_queue); + if (queueLength > 10) { + ESP_LOGW(TAG, "csi queueLength:%d", queueLength); + } +#if !CONFIG_FORCE_GAIN && CONFIG_GAIN_CONTROL + float scaling_factor = 0; + esp_csi_gain_ctrl_get_gain_compensation(&scaling_factor, csi_recv_queue_data->agc_gain, csi_recv_queue_data->fft_gain); +#else + float scaling_factor = 1.0f; +#endif + + for (int i = 0; i < 64; i++) { + x_iq[i].real = _IQ16(csi_recv_queue_data->buf[2 * i]); + x_iq[i].imag = _IQ16(csi_recv_queue_data->buf[2 * i + 1]); + } + fft_iq(x_iq, 1); + cir[0] = complex_magnitude_iq(x_iq[0]) * scaling_factor; + pha[0] = complex_phase_iq(x_iq[0]); + for (int i = 64; i < 128; i++) { + x_iq[i - 64].real = _IQ16(csi_recv_queue_data->buf[2 * i]); + x_iq[i - 64].imag = _IQ16(csi_recv_queue_data->buf[2 * i + 1]); + } + fft_iq(x_iq, 1); + cir[1] = complex_magnitude_iq(x_iq[0]) * scaling_factor; + pha[1] = complex_phase_iq(x_iq[0]); + + csi_data_t data = { + .start = {0xAA, 0x55}, + .id = csi_recv_queue_data->id, + .time_delta = csi_recv_queue_data->time - time_zero, + .cir = {cir[0], cir[1], pha[0], pha[1]}, + .end = {0x55, 0xAA}, + }; + master_data[csi_recv_queue_data->id % DATA_TABLE_SIZE] = data; + xQueueSend(csi_display_queue, &data, 0); + free(csi_recv_queue_data); + } +} + +void app_main() +{ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + bsp_slave_reset(); + bsp_display_cfg_t cfg = { + .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .buffer_size = BSP_LCD_H_RES * CONFIG_BSP_LCD_DRAW_BUF_HEIGHT, + .double_buffer = 0, + .flags = { + .buff_dma = true, + } + }; + bsp_display_start_with_config(&cfg); + bsp_display_lock(0); + ui_init(); + bsp_display_unlock(); + bsp_display_backlight_on(); + wifi_init(); + /** + * @brief Initialize ESP-NOW + * ESP-NOW protocol see: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html + */ + esp_now_peer_info_t peer = { + .channel = CONFIG_LESS_INTERFERENCE_CHANNEL, + .ifidx = WIFI_IF_STA, + .encrypt = false, + .peer_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + }; +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 + wifi_esp_now_init(peer); +#endif + init_gpio(); + + wifi_csi_init(); + vTaskDelay(100 / portTICK_PERIOD_MS); + init_uart(); + bsp_led_init(); + + xTaskCreate(process_csi_data_task, "process_csi_data_task", 4096, NULL, 6, NULL); + bool arg = CONFIG_CRAB_MODE; + xTaskCreate(csi_data_display_task, "csi_data_display_task", 4096, &arg, 6, NULL); + uint32_t recv_cnt_prv = 0; + while (1) { + static bool level = 1; + static uint8_t time = 100; + if ((recv_cnt - recv_cnt_prv) >= 20) { + recv_cnt_prv = recv_cnt; + time = 100; + bsp_led_set(0, level * 30, level * 30, level * 30); + level = !level; + } + if (time > 0) { + time -= 1; + } else { + bsp_led_set(0, 0, 0, 0); + } + vTaskDelay(10 / portTICK_PERIOD_MS); + } +} diff --git a/esp-crab/master_recv/main/idf_component.yml b/esp-crab/master_recv/main/idf_component.yml new file mode 100644 index 0000000..8f6a7ad --- /dev/null +++ b/esp-crab/master_recv/main/idf_component.yml @@ -0,0 +1,7 @@ +## IDF Component Manager Manifest File +dependencies: + idf: '>=4.4.1' + + esp_csi_gain_ctrl: ">=0.1.0" + + espressif/iqmath: ^1.11.0 diff --git a/esp-crab/master_recv/main/ui/CMakeLists.txt b/esp-crab/master_recv/main/ui/CMakeLists.txt new file mode 100644 index 0000000..c30c685 --- /dev/null +++ b/esp-crab/master_recv/main/ui/CMakeLists.txt @@ -0,0 +1,11 @@ +SET(SOURCES screens/ui_ScreenW.c + screens/ui_ScreenWP.c + screens/ui_ScreenM.c + screens/ui_ScreenS.c + ui.c + components/ui_comp_hook.c + ui_helpers.c + ui_events.c + images/ui_img_272184077.c) + +add_library(ui ${SOURCES}) diff --git a/esp-crab/master_recv/main/ui/components/ui_comp_hook.c b/esp-crab/master_recv/main/ui/components/ui_comp_hook.c new file mode 100644 index 0000000..299952a --- /dev/null +++ b/esp-crab/master_recv/main/ui/components/ui_comp_hook.c @@ -0,0 +1,5 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + diff --git a/esp-crab/master_recv/main/ui/filelist.txt b/esp-crab/master_recv/main/ui/filelist.txt new file mode 100644 index 0000000..f6dc657 --- /dev/null +++ b/esp-crab/master_recv/main/ui/filelist.txt @@ -0,0 +1,9 @@ +screens/ui_ScreenW.c +screens/ui_ScreenWP.c +screens/ui_ScreenM.c +screens/ui_ScreenS.c +ui.c +components/ui_comp_hook.c +ui_helpers.c +ui_events.c +images/ui_img_272184077.c diff --git a/esp-crab/master_recv/main/ui/images/ui_img_272184077.c b/esp-crab/master_recv/main/ui/images/ui_img_272184077.c new file mode 100644 index 0000000..6361491 --- /dev/null +++ b/esp-crab/master_recv/main/ui/images/ui_img_272184077.c @@ -0,0 +1,649 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "../ui.h" + +#ifndef LV_ATTRIBUTE_MEM_ALIGN + #define LV_ATTRIBUTE_MEM_ALIGN +#endif + +// IMAGE DATA: assets/指北针.png +const LV_ATTRIBUTE_MEM_ALIGN uint8_t ui_img_272184077_data[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85, + 0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27, + 0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x27,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0xE8,0x00,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x56,0x5A,0xEB,0xB5,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xB5,0xE8,0x00,0x56,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x85,0x5A,0xEB,0xE4,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xE4,0xE8,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0, + 0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33, + 0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91, + 0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62, + 0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF, + 0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF, + 0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0x5A,0xEB,0x91,0x5A,0xEB,0xF0,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xF0,0xE8,0x00,0x91,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0xAA,0x03,0x5A,0xEB,0x62,0x5A,0xEB,0xC1,0x5A,0xEB,0xFF,0xE8,0x00,0xFF,0xE8,0x00,0xC1,0xE8,0x00,0x62,0xF8,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0xEB,0x33,0xE8,0x00,0x33,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + +}; +const lv_img_dsc_t ui_img_272184077 = { + .header.always_zero = 0, + .header.w = 200, + .header.h = 200, + .data_size = sizeof(ui_img_272184077_data), + .header.cf = LV_IMG_CF_TRUE_COLOR_ALPHA, + .data = ui_img_272184077_data +}; + diff --git a/esp-crab/master_recv/main/ui/screens/ui_ScreenM.c b/esp-crab/master_recv/main/ui/screens/ui_ScreenM.c new file mode 100644 index 0000000..5acefc7 --- /dev/null +++ b/esp-crab/master_recv/main/ui/screens/ui_ScreenM.c @@ -0,0 +1,87 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "../ui.h" + +void ui_ScreenM_screen_init(void) +{ + ui_ScreenM = lv_obj_create(NULL); + lv_obj_clear_flag(ui_ScreenM, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_ScreenM, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenM, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenM_LabelPoint = lv_label_create(ui_ScreenM); + lv_obj_set_width(ui_ScreenM_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenM_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenM_LabelPoint, 0); + lv_obj_set_y(ui_ScreenM_LabelPoint, 97); + lv_obj_set_align(ui_ScreenM_LabelPoint, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenM_LabelPoint, "...."); + lv_obj_set_style_text_color(ui_ScreenM_LabelPoint, lv_color_hex(0xBEBEBE), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenM_LabelPoint, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ScreenM_LabelPoint, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenM_LabelPointSelect = lv_label_create(ui_ScreenM); + lv_obj_set_width(ui_ScreenM_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenM_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenM_LabelPointSelect, 5); + lv_obj_set_y(ui_ScreenM_LabelPointSelect, 97); + lv_obj_set_align(ui_ScreenM_LabelPointSelect, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenM_LabelPointSelect, "."); + lv_obj_set_style_text_font(ui_ScreenM_LabelPointSelect, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenM_Button1 = lv_btn_create(ui_ScreenM); + lv_obj_set_width(ui_ScreenM_Button1, 100); + lv_obj_set_height(ui_ScreenM_Button1, 50); + lv_obj_set_x(ui_ScreenM_Button1, 0); + lv_obj_set_y(ui_ScreenM_Button1, -55); + lv_obj_set_align(ui_ScreenM_Button1, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_ScreenM_Button1, LV_OBJ_FLAG_SCROLL_ON_FOCUS); /// Flags + lv_obj_clear_flag(ui_ScreenM_Button1, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_ScreenM_Button1, lv_color_hex(0xDAFFB2), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenM_Button1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(ui_ScreenM_Button1, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_opa(ui_ScreenM_Button1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_side(ui_ScreenM_Button1, LV_BORDER_SIDE_FULL, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_shadow_width(ui_ScreenM_Button1, 1, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_shadow_spread(ui_ScreenM_Button1, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_shadow_ofs_x(ui_ScreenM_Button1, 0, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_shadow_ofs_y(ui_ScreenM_Button1, 2, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenM_Label6 = lv_label_create(ui_ScreenM_Button1); + lv_obj_set_width(ui_ScreenM_Label6, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenM_Label6, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_ScreenM_Label6, LV_ALIGN_CENTER); + lv_obj_set_style_text_color(ui_ScreenM_Label6, lv_color_hex(0x000000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenM_Label6, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenM_Image1 = lv_img_create(ui_ScreenM); + lv_img_set_src(ui_ScreenM_Image1, &ui_img_272184077); + lv_obj_set_width(ui_ScreenM_Image1, LV_SIZE_CONTENT); /// 200 + lv_obj_set_height(ui_ScreenM_Image1, LV_SIZE_CONTENT); /// 200 + lv_obj_set_align(ui_ScreenM_Image1, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_ScreenM_Image1, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_ADV_HITTEST); /// Flags + lv_obj_clear_flag(ui_ScreenM_Image1, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_img_set_angle(ui_ScreenM_Image1, 900); + + ui_ScreenM_Panel1 = lv_obj_create(ui_ScreenM); + lv_obj_set_width(ui_ScreenM_Panel1, 70); + lv_obj_set_height(ui_ScreenM_Panel1, 70); + lv_obj_set_align(ui_ScreenM_Panel1, LV_ALIGN_CENTER); + lv_obj_add_flag(ui_ScreenM_Panel1, LV_OBJ_FLAG_HIDDEN); /// Flags + lv_obj_clear_flag(ui_ScreenM_Panel1, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_radius(ui_ScreenM_Panel1, 100, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenM_Label1 = lv_label_create(ui_ScreenM_Panel1); + lv_obj_set_width(ui_ScreenM_Label1, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenM_Label1, LV_SIZE_CONTENT); /// 1 + lv_obj_set_align(ui_ScreenM_Label1, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenM_Label1, "360.0°"); + lv_obj_set_style_text_font(ui_ScreenM_Label1, &lv_font_montserrat_20, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_add_event_cb(ui_ScreenM_Panel1, ui_event_ScreenM_Panel1, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_ScreenM, ui_event_ScreenM, LV_EVENT_ALL, NULL); + +} diff --git a/esp-crab/master_recv/main/ui/screens/ui_ScreenS.c b/esp-crab/master_recv/main/ui/screens/ui_ScreenS.c new file mode 100644 index 0000000..e1a4337 --- /dev/null +++ b/esp-crab/master_recv/main/ui/screens/ui_ScreenS.c @@ -0,0 +1,86 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "../ui.h" + +void ui_ScreenS_screen_init(void) +{ + ui_ScreenS = lv_obj_create(NULL); + lv_obj_clear_flag(ui_ScreenS, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_ScreenS, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenS, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenS_LabelPoint = lv_label_create(ui_ScreenS); + lv_obj_set_width(ui_ScreenS_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenS_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenS_LabelPoint, 0); + lv_obj_set_y(ui_ScreenS_LabelPoint, 97); + lv_obj_set_align(ui_ScreenS_LabelPoint, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenS_LabelPoint, "...."); + lv_obj_set_style_text_color(ui_ScreenS_LabelPoint, lv_color_hex(0xBEBEBE), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenS_LabelPoint, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ScreenS_LabelPoint, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenS_LabelPointSelect = lv_label_create(ui_ScreenS); + lv_obj_set_width(ui_ScreenS_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenS_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenS_LabelPointSelect, 16); + lv_obj_set_y(ui_ScreenS_LabelPointSelect, 97); + lv_obj_set_align(ui_ScreenS_LabelPointSelect, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenS_LabelPointSelect, "."); + lv_obj_set_style_text_font(ui_ScreenS_LabelPointSelect, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenS_LabelTitle = lv_label_create(ui_ScreenS); + lv_obj_set_width(ui_ScreenS_LabelTitle, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenS_LabelTitle, LV_SIZE_CONTENT); /// 2 + lv_obj_set_x(ui_ScreenS_LabelTitle, 0); + lv_obj_set_y(ui_ScreenS_LabelTitle, -85); + lv_obj_set_align(ui_ScreenS_LabelTitle, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenS_LabelTitle, " Setting "); + lv_obj_set_style_text_font(ui_ScreenS_LabelTitle, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_radius(ui_ScreenS_LabelTitle, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(ui_ScreenS_LabelTitle, lv_color_hex(0xC9C9C9), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenS_LabelTitle, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenS_Container = lv_obj_create(ui_ScreenS); + lv_obj_remove_style_all(ui_ScreenS_Container); + lv_obj_set_width(ui_ScreenS_Container, 241); + lv_obj_set_height(ui_ScreenS_Container, 187); + lv_obj_set_x(ui_ScreenS_Container, 0); + lv_obj_set_y(ui_ScreenS_Container, 3); + lv_obj_set_align(ui_ScreenS_Container, LV_ALIGN_BOTTOM_MID); + lv_obj_clear_flag(ui_ScreenS_Container, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + + ui_ScreenS_LabelLIghtTitle = lv_label_create(ui_ScreenS_Container); + lv_obj_set_height(ui_ScreenS_LabelLIghtTitle, 20); + lv_obj_set_width(ui_ScreenS_LabelLIghtTitle, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenS_LabelLIghtTitle, -58); + lv_obj_set_y(ui_ScreenS_LabelLIghtTitle, 9); + lv_obj_set_align(ui_ScreenS_LabelLIghtTitle, LV_ALIGN_TOP_MID); + lv_label_set_text(ui_ScreenS_LabelLIghtTitle, "Lightness:"); + + ui_ScreenS_LabelLightNum = lv_label_create(ui_ScreenS_Container); + lv_obj_set_width(ui_ScreenS_LabelLightNum, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenS_LabelLightNum, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenS_LabelLightNum, 90); + lv_obj_set_y(ui_ScreenS_LabelLightNum, -55); + lv_obj_set_align(ui_ScreenS_LabelLightNum, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenS_LabelLightNum, "100"); + + ui_ScreenS_SliderLight = lv_slider_create(ui_ScreenS_Container); + lv_slider_set_value(ui_ScreenS_SliderLight, 100, LV_ANIM_OFF); + if(lv_slider_get_mode(ui_ScreenS_SliderLight) == LV_SLIDER_MODE_RANGE) lv_slider_set_left_value(ui_ScreenS_SliderLight, + 0, LV_ANIM_OFF); + lv_obj_set_width(ui_ScreenS_SliderLight, 159); + lv_obj_set_height(ui_ScreenS_SliderLight, 10); + lv_obj_set_x(ui_ScreenS_SliderLight, 27); + lv_obj_set_y(ui_ScreenS_SliderLight, 34); + lv_obj_clear_flag(ui_ScreenS_SliderLight, LV_OBJ_FLAG_GESTURE_BUBBLE); /// Flags + + + lv_obj_add_event_cb(ui_ScreenS_SliderLight, ui_event_ScreenS_SliderLight, LV_EVENT_ALL, NULL); + lv_obj_add_event_cb(ui_ScreenS, ui_event_ScreenS, LV_EVENT_ALL, NULL); + +} diff --git a/esp-crab/master_recv/main/ui/screens/ui_ScreenW.c b/esp-crab/master_recv/main/ui/screens/ui_ScreenW.c new file mode 100644 index 0000000..3a82b34 --- /dev/null +++ b/esp-crab/master_recv/main/ui/screens/ui_ScreenW.c @@ -0,0 +1,71 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "../ui.h" + +void ui_ScreenW_screen_init(void) +{ + ui_ScreenW = lv_obj_create(NULL); + lv_obj_clear_flag(ui_ScreenW, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_ScreenW, lv_color_hex(0xF9F9C9), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenW, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenW_Chart = lv_chart_create(ui_ScreenW); + lv_obj_set_width(ui_ScreenW_Chart, 172); + lv_obj_set_height(ui_ScreenW_Chart, 103); + lv_obj_set_x(ui_ScreenW_Chart, 10); + lv_obj_set_y(ui_ScreenW_Chart, 6); + lv_obj_set_align(ui_ScreenW_Chart, LV_ALIGN_CENTER); + lv_chart_set_type(ui_ScreenW_Chart, LV_CHART_TYPE_LINE); + lv_chart_set_axis_tick(ui_ScreenW_Chart, LV_CHART_AXIS_PRIMARY_X, 10, 5, 5, 2, true, 50); + lv_chart_set_axis_tick(ui_ScreenW_Chart, LV_CHART_AXIS_PRIMARY_Y, 10, 5, 5, 2, true, 50); + lv_chart_set_axis_tick(ui_ScreenW_Chart, LV_CHART_AXIS_SECONDARY_Y, 10, 5, 5, 0, false, 0); + lv_obj_set_style_bg_color(ui_ScreenW_Chart, lv_color_hex(0xFDFCF5), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenW_Chart, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(ui_ScreenW_Chart, lv_color_hex(0x808080), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_opa(ui_ScreenW_Chart, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + + lv_obj_set_style_size(ui_ScreenW_Chart, 0, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_color(ui_ScreenW_Chart, lv_color_hex(0x808080), LV_PART_TICKS | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenW_Chart, 255, LV_PART_TICKS | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ScreenW_Chart, &lv_font_montserrat_12, LV_PART_TICKS | LV_STATE_DEFAULT); + + ui_ScreenW_LabelTitle = lv_label_create(ui_ScreenW); + lv_obj_set_width(ui_ScreenW_LabelTitle, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenW_LabelTitle, LV_SIZE_CONTENT); /// 2 + lv_obj_set_x(ui_ScreenW_LabelTitle, 0); + lv_obj_set_y(ui_ScreenW_LabelTitle, -76); + lv_obj_set_align(ui_ScreenW_LabelTitle, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenW_LabelTitle, " CSI Waveform \n Amplitude"); + lv_obj_set_style_text_font(ui_ScreenW_LabelTitle, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_radius(ui_ScreenW_LabelTitle, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(ui_ScreenW_LabelTitle, lv_color_hex(0xC9C9C9), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenW_LabelTitle, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenW_LabelPoint = lv_label_create(ui_ScreenW); + lv_obj_set_width(ui_ScreenW_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenW_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenW_LabelPoint, 0); + lv_obj_set_y(ui_ScreenW_LabelPoint, 97); + lv_obj_set_align(ui_ScreenW_LabelPoint, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenW_LabelPoint, "...."); + lv_obj_set_style_text_color(ui_ScreenW_LabelPoint, lv_color_hex(0xBEBEBE), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenW_LabelPoint, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ScreenW_LabelPoint, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenW_LabelPointSelect = lv_label_create(ui_ScreenW); + lv_obj_set_width(ui_ScreenW_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenW_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenW_LabelPointSelect, -16); + lv_obj_set_y(ui_ScreenW_LabelPointSelect, 97); + lv_obj_set_align(ui_ScreenW_LabelPointSelect, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenW_LabelPointSelect, "."); + lv_obj_set_style_text_font(ui_ScreenW_LabelPointSelect, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_add_event_cb(ui_ScreenW, ui_event_ScreenW, LV_EVENT_ALL, NULL); + +} diff --git a/esp-crab/master_recv/main/ui/screens/ui_ScreenWP.c b/esp-crab/master_recv/main/ui/screens/ui_ScreenWP.c new file mode 100644 index 0000000..7752a6a --- /dev/null +++ b/esp-crab/master_recv/main/ui/screens/ui_ScreenWP.c @@ -0,0 +1,82 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "../ui.h" + +void ui_ScreenWP_screen_init(void) +{ + ui_ScreenWP = lv_obj_create(NULL); + lv_obj_clear_flag(ui_ScreenWP, LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_ScreenWP, lv_color_hex(0xC2EFF6), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenWP, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenWP_Chart = lv_chart_create(ui_ScreenWP); + lv_obj_set_width(ui_ScreenWP_Chart, 172); + lv_obj_set_height(ui_ScreenWP_Chart, 103); + lv_obj_set_x(ui_ScreenWP_Chart, 10); + lv_obj_set_y(ui_ScreenWP_Chart, 6); + lv_obj_set_align(ui_ScreenWP_Chart, LV_ALIGN_CENTER); + lv_chart_set_type(ui_ScreenWP_Chart, LV_CHART_TYPE_LINE); + lv_chart_set_axis_tick(ui_ScreenWP_Chart, LV_CHART_AXIS_PRIMARY_X, 10, 5, 5, 5, true, 50); + lv_chart_set_axis_tick(ui_ScreenWP_Chart, LV_CHART_AXIS_PRIMARY_Y, 10, 5, 5, 2, true, 50); + lv_chart_set_axis_tick(ui_ScreenWP_Chart, LV_CHART_AXIS_SECONDARY_Y, 10, 5, 5, 0, false, 0); + lv_obj_set_style_bg_color(ui_ScreenWP_Chart, lv_color_hex(0xFDFCF5), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenWP_Chart, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_color(ui_ScreenWP_Chart, lv_color_hex(0x808080), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_border_opa(ui_ScreenWP_Chart, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + + lv_obj_set_style_size(ui_ScreenWP_Chart, 0, LV_PART_INDICATOR | LV_STATE_DEFAULT); + + lv_obj_set_style_text_color(ui_ScreenWP_Chart, lv_color_hex(0x808080), LV_PART_TICKS | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenWP_Chart, 255, LV_PART_TICKS | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ScreenWP_Chart, &lv_font_montserrat_12, LV_PART_TICKS | LV_STATE_DEFAULT); + + ui_ScreenWP_LabelTitle = lv_label_create(ui_ScreenWP); + lv_obj_set_width(ui_ScreenWP_LabelTitle, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenWP_LabelTitle, LV_SIZE_CONTENT); /// 2 + lv_obj_set_x(ui_ScreenWP_LabelTitle, 0); + lv_obj_set_y(ui_ScreenWP_LabelTitle, -76); + lv_obj_set_align(ui_ScreenWP_LabelTitle, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenWP_LabelTitle, " CSI Waveform \n Phase"); + lv_obj_set_style_text_font(ui_ScreenWP_LabelTitle, &lv_font_montserrat_18, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_radius(ui_ScreenWP_LabelTitle, 10, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_color(ui_ScreenWP_LabelTitle, lv_color_hex(0xC9C9C9), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenWP_LabelTitle, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenWP_LabelPoint = lv_label_create(ui_ScreenWP); + lv_obj_set_width(ui_ScreenWP_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenWP_LabelPoint, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenWP_LabelPoint, 0); + lv_obj_set_y(ui_ScreenWP_LabelPoint, 97); + lv_obj_set_align(ui_ScreenWP_LabelPoint, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenWP_LabelPoint, "...."); + lv_obj_set_style_text_color(ui_ScreenWP_LabelPoint, lv_color_hex(0xBEBEBE), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_opa(ui_ScreenWP_LabelPoint, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_text_font(ui_ScreenWP_LabelPoint, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenWP_LabelPointSelect = lv_label_create(ui_ScreenWP); + lv_obj_set_width(ui_ScreenWP_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_height(ui_ScreenWP_LabelPointSelect, LV_SIZE_CONTENT); /// 1 + lv_obj_set_x(ui_ScreenWP_LabelPointSelect, -6); + lv_obj_set_y(ui_ScreenWP_LabelPointSelect, 97); + lv_obj_set_align(ui_ScreenWP_LabelPointSelect, LV_ALIGN_CENTER); + lv_label_set_text(ui_ScreenWP_LabelPointSelect, "."); + lv_obj_set_style_text_font(ui_ScreenWP_LabelPointSelect, &lv_font_montserrat_48, LV_PART_MAIN | LV_STATE_DEFAULT); + + ui_ScreenWP_Container1 = lv_obj_create(ui_ScreenWP); + lv_obj_remove_style_all(ui_ScreenWP_Container1); + lv_obj_set_width(ui_ScreenWP_Container1, 2); + lv_obj_set_height(ui_ScreenWP_Container1, 95); + lv_obj_set_x(ui_ScreenWP_Container1, 9); + lv_obj_set_y(ui_ScreenWP_Container1, 5); + lv_obj_set_align(ui_ScreenWP_Container1, LV_ALIGN_CENTER); + lv_obj_clear_flag(ui_ScreenWP_Container1, LV_OBJ_FLAG_CLICKABLE | LV_OBJ_FLAG_SCROLLABLE); /// Flags + lv_obj_set_style_bg_color(ui_ScreenWP_Container1, lv_color_hex(0xFF0000), LV_PART_MAIN | LV_STATE_DEFAULT); + lv_obj_set_style_bg_opa(ui_ScreenWP_Container1, 255, LV_PART_MAIN | LV_STATE_DEFAULT); + + lv_obj_add_event_cb(ui_ScreenWP, ui_event_ScreenWP, LV_EVENT_ALL, NULL); + +} diff --git a/esp-crab/master_recv/main/ui/ui.c b/esp-crab/master_recv/main/ui/ui.c new file mode 100644 index 0000000..b8865ed --- /dev/null +++ b/esp-crab/master_recv/main/ui/ui.c @@ -0,0 +1,170 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "ui.h" +#include "ui_helpers.h" + +///////////////////// VARIABLES //////////////////// + + +// SCREEN: ui_ScreenW +void ui_ScreenW_screen_init(void); +void ui_event_ScreenW(lv_event_t * e); +lv_obj_t * ui_ScreenW; +lv_obj_t * ui_ScreenW_Chart; +lv_obj_t * ui_ScreenW_LabelTitle; +lv_obj_t * ui_ScreenW_LabelPoint; +lv_obj_t * ui_ScreenW_LabelPointSelect; +// CUSTOM VARIABLES + + +// SCREEN: ui_ScreenWP +void ui_ScreenWP_screen_init(void); +void ui_event_ScreenWP(lv_event_t * e); +lv_obj_t * ui_ScreenWP; +lv_obj_t * ui_ScreenWP_Chart; +lv_obj_t * ui_ScreenWP_LabelTitle; +lv_obj_t * ui_ScreenWP_LabelPoint; +lv_obj_t * ui_ScreenWP_LabelPointSelect; +lv_obj_t * ui_ScreenWP_Container1; +// CUSTOM VARIABLES + + +// SCREEN: ui_ScreenM +void ui_ScreenM_screen_init(void); +void ui_event_ScreenM(lv_event_t * e); +lv_obj_t * ui_ScreenM; +lv_obj_t * ui_ScreenM_LabelPoint; +lv_obj_t * ui_ScreenM_LabelPointSelect; +lv_obj_t * ui_ScreenM_Button1; +lv_obj_t * ui_ScreenM_Label6; +lv_obj_t * ui_ScreenM_Image1; +void ui_event_ScreenM_Panel1(lv_event_t * e); +lv_obj_t * ui_ScreenM_Panel1; +lv_obj_t * ui_ScreenM_Label1; +// CUSTOM VARIABLES + + +// SCREEN: ui_ScreenS +void ui_ScreenS_screen_init(void); +void ui_event_ScreenS(lv_event_t * e); +lv_obj_t * ui_ScreenS; +lv_obj_t * ui_ScreenS_LabelPoint; +lv_obj_t * ui_ScreenS_LabelPointSelect; +lv_obj_t * ui_ScreenS_LabelTitle; +lv_obj_t * ui_ScreenS_Container; +lv_obj_t * ui_ScreenS_LabelLIghtTitle; +lv_obj_t * ui_ScreenS_LabelLightNum; +void ui_event_ScreenS_SliderLight(lv_event_t * e); +lv_obj_t * ui_ScreenS_SliderLight; +// CUSTOM VARIABLES + +// EVENTS +lv_obj_t * ui____initial_actions0; + +// IMAGES AND IMAGE SETS + +///////////////////// TEST LVGL SETTINGS //////////////////// +#if LV_COLOR_DEPTH != 16 + #error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings" +#endif +#if LV_COLOR_16_SWAP !=1 + #error "LV_COLOR_16_SWAP should be 1 to match SquareLine Studio's settings" +#endif + +///////////////////// ANIMATIONS //////////////////// + +///////////////////// FUNCTIONS //////////////////// +void ui_event_ScreenW(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenWP, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenWP_screen_init); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenS, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenS_screen_init); + } +} + +void ui_event_ScreenWP(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenS, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenS_screen_init); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenW, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenW_screen_init); + } +} + +void ui_event_ScreenM(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenWP, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenWP_screen_init); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenS, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenS_screen_init); + } +} + +void ui_event_ScreenM_Panel1(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_CLICKED) { + PhaseCalibration_button(e); + } +} + +void ui_event_ScreenS(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_RIGHT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenWP, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenWP_screen_init); + } + if(event_code == LV_EVENT_GESTURE && lv_indev_get_gesture_dir(lv_indev_get_act()) == LV_DIR_LEFT) { + lv_indev_wait_release(lv_indev_get_act()); + _ui_screen_change(&ui_ScreenW, LV_SCR_LOAD_ANIM_FADE_ON, 200, 0, &ui_ScreenW_screen_init); + } +} + +void ui_event_ScreenS_SliderLight(lv_event_t * e) +{ + lv_event_code_t event_code = lv_event_get_code(e); + lv_obj_t * target = lv_event_get_target(e); + + if(event_code == LV_EVENT_VALUE_CHANGED) { + _ui_slider_set_text_value(ui_ScreenS_LabelLightNum, target, "", ""); + ScreenSSliderLight_function(e); + } +} + +///////////////////// SCREENS //////////////////// + +void ui_init(void) +{ + lv_disp_t * dispp = lv_disp_get_default(); + lv_theme_t * theme = lv_theme_default_init(dispp, lv_palette_main(LV_PALETTE_BLUE), lv_palette_main(LV_PALETTE_RED), + false, LV_FONT_DEFAULT); + lv_disp_set_theme(dispp, theme); + ui_ScreenW_screen_init(); + ui_ScreenWP_screen_init(); + ui_ScreenM_screen_init(); + ui_ScreenS_screen_init(); + ui____initial_actions0 = lv_obj_create(NULL); + lv_disp_load_scr(ui_ScreenW); +} diff --git a/esp-crab/master_recv/main/ui/ui.h b/esp-crab/master_recv/main/ui/ui.h new file mode 100644 index 0000000..a935136 --- /dev/null +++ b/esp-crab/master_recv/main/ui/ui.h @@ -0,0 +1,82 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#ifndef _C5_DUAL_ANTENNA_UI_H +#define _C5_DUAL_ANTENNA_UI_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "lvgl.h" + +#include "ui_helpers.h" +#include "ui_events.h" + + +// SCREEN: ui_ScreenW +void ui_ScreenW_screen_init(void); +void ui_event_ScreenW(lv_event_t * e); +extern lv_obj_t * ui_ScreenW; +extern lv_obj_t * ui_ScreenW_Chart; +extern lv_obj_t * ui_ScreenW_LabelTitle; +extern lv_obj_t * ui_ScreenW_LabelPoint; +extern lv_obj_t * ui_ScreenW_LabelPointSelect; +// CUSTOM VARIABLES + +// SCREEN: ui_ScreenWP +void ui_ScreenWP_screen_init(void); +void ui_event_ScreenWP(lv_event_t * e); +extern lv_obj_t * ui_ScreenWP; +extern lv_obj_t * ui_ScreenWP_Chart; +extern lv_obj_t * ui_ScreenWP_LabelTitle; +extern lv_obj_t * ui_ScreenWP_LabelPoint; +extern lv_obj_t * ui_ScreenWP_LabelPointSelect; +extern lv_obj_t * ui_ScreenWP_Container1; +// CUSTOM VARIABLES + +// SCREEN: ui_ScreenM +void ui_ScreenM_screen_init(void); +void ui_event_ScreenM(lv_event_t * e); +extern lv_obj_t * ui_ScreenM; +extern lv_obj_t * ui_ScreenM_LabelPoint; +extern lv_obj_t * ui_ScreenM_LabelPointSelect; +extern lv_obj_t * ui_ScreenM_Button1; +extern lv_obj_t * ui_ScreenM_Label6; +extern lv_obj_t * ui_ScreenM_Image1; +void ui_event_ScreenM_Panel1(lv_event_t * e); +extern lv_obj_t * ui_ScreenM_Panel1; +extern lv_obj_t * ui_ScreenM_Label1; +// CUSTOM VARIABLES + +// SCREEN: ui_ScreenS +void ui_ScreenS_screen_init(void); +void ui_event_ScreenS(lv_event_t * e); +extern lv_obj_t * ui_ScreenS; +extern lv_obj_t * ui_ScreenS_LabelPoint; +extern lv_obj_t * ui_ScreenS_LabelPointSelect; +extern lv_obj_t * ui_ScreenS_LabelTitle; +extern lv_obj_t * ui_ScreenS_Container; +extern lv_obj_t * ui_ScreenS_LabelLIghtTitle; +extern lv_obj_t * ui_ScreenS_LabelLightNum; +void ui_event_ScreenS_SliderLight(lv_event_t * e); +extern lv_obj_t * ui_ScreenS_SliderLight; +// CUSTOM VARIABLES + +// EVENTS + +extern lv_obj_t * ui____initial_actions0; + +// IMAGES AND IMAGE SETS +LV_IMG_DECLARE(ui_img_272184077); // assets/指北针.png + +// UI INIT +void ui_init(void); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/esp-crab/master_recv/main/ui/ui_events.c b/esp-crab/master_recv/main/ui/ui_events.c new file mode 100644 index 0000000..f4cec05 --- /dev/null +++ b/esp-crab/master_recv/main/ui/ui_events.c @@ -0,0 +1,16 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "ui.h" + +// void ScreenSSliderLight_function(lv_event_t * e) +// { +// // Your code here +// } + +// void PhaseCalibration_button(lv_event_t * e) +// { +// // Your code here +// } diff --git a/esp-crab/master_recv/main/ui/ui_events.h b/esp-crab/master_recv/main/ui/ui_events.h new file mode 100644 index 0000000..4ff3fc4 --- /dev/null +++ b/esp-crab/master_recv/main/ui/ui_events.h @@ -0,0 +1,20 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#ifndef _UI_EVENTS_H +#define _UI_EVENTS_H + +#ifdef __cplusplus +extern "C" { +#endif + +void PhaseCalibration_button(lv_event_t * e); +void ScreenSSliderLight_function(lv_event_t * e); + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/esp-crab/master_recv/main/ui/ui_helpers.c b/esp-crab/master_recv/main/ui/ui_helpers.c new file mode 100644 index 0000000..4cfd22e --- /dev/null +++ b/esp-crab/master_recv/main/ui/ui_helpers.c @@ -0,0 +1,347 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#include "ui_helpers.h" + +void _ui_bar_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_BAR_PROPERTY_VALUE_WITH_ANIM) lv_bar_set_value(target, val, LV_ANIM_ON); + if(id == _UI_BAR_PROPERTY_VALUE) lv_bar_set_value(target, val, LV_ANIM_OFF); +} + +void _ui_basic_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_BASIC_PROPERTY_POSITION_X) lv_obj_set_x(target, val); + if(id == _UI_BASIC_PROPERTY_POSITION_Y) lv_obj_set_y(target, val); + if(id == _UI_BASIC_PROPERTY_WIDTH) lv_obj_set_width(target, val); + if(id == _UI_BASIC_PROPERTY_HEIGHT) lv_obj_set_height(target, val); +} + + +void _ui_dropdown_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_DROPDOWN_PROPERTY_SELECTED) lv_dropdown_set_selected(target, val); +} + +void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val) +{ + if(id == _UI_IMAGE_PROPERTY_IMAGE) lv_img_set_src(target, val); +} + +void _ui_label_set_property(lv_obj_t * target, int id, const char * val) +{ + if(id == _UI_LABEL_PROPERTY_TEXT) lv_label_set_text(target, val); +} + + +void _ui_roller_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM) lv_roller_set_selected(target, val, LV_ANIM_ON); + if(id == _UI_ROLLER_PROPERTY_SELECTED) lv_roller_set_selected(target, val, LV_ANIM_OFF); +} + +void _ui_slider_set_property(lv_obj_t * target, int id, int val) +{ + if(id == _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM) lv_slider_set_value(target, val, LV_ANIM_ON); + if(id == _UI_SLIDER_PROPERTY_VALUE) lv_slider_set_value(target, val, LV_ANIM_OFF); +} + + +void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)) +{ + if(*target == NULL) + target_init(); + lv_scr_load_anim(*target, fademode, spd, delay, false); +} + +void _ui_screen_delete(lv_obj_t ** target) +{ + if(*target == NULL) { + lv_obj_del(*target); + target = NULL; + } +} + +void _ui_arc_increment(lv_obj_t * target, int val) +{ + int old = lv_arc_get_value(target); + lv_arc_set_value(target, old + val); + lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); +} + +void _ui_bar_increment(lv_obj_t * target, int val, int anm) +{ + int old = lv_bar_get_value(target); + lv_bar_set_value(target, old + val, anm); +} + +void _ui_slider_increment(lv_obj_t * target, int val, int anm) +{ + int old = lv_slider_get_value(target); + lv_slider_set_value(target, old + val, anm); + lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); +} + +void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea) +{ + lv_keyboard_set_textarea(keyboard, textarea); +} + +void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value) +{ + if(value == _UI_MODIFY_FLAG_TOGGLE) { + if(lv_obj_has_flag(target, flag)) lv_obj_clear_flag(target, flag); + else lv_obj_add_flag(target, flag); + } + else if(value == _UI_MODIFY_FLAG_ADD) lv_obj_add_flag(target, flag); + else lv_obj_clear_flag(target, flag); +} +void _ui_state_modify(lv_obj_t * target, int32_t state, int value) +{ + if(value == _UI_MODIFY_STATE_TOGGLE) { + if(lv_obj_has_state(target, state)) lv_obj_clear_state(target, state); + else lv_obj_add_state(target, state); + } + else if(value == _UI_MODIFY_STATE_ADD) lv_obj_add_state(target, state); + else lv_obj_clear_state(target, state); +} + + +void _ui_textarea_move_cursor(lv_obj_t * target, int val) + +{ + + if(val == UI_MOVE_CURSOR_UP) lv_textarea_cursor_up(target); + if(val == UI_MOVE_CURSOR_RIGHT) lv_textarea_cursor_right(target); + if(val == UI_MOVE_CURSOR_DOWN) lv_textarea_cursor_down(target); + if(val == UI_MOVE_CURSOR_LEFT) lv_textarea_cursor_left(target); + lv_obj_add_state(target, LV_STATE_FOCUSED); +} + +void scr_unloaded_delete_cb(lv_event_t * e) + +{ + + lv_obj_t ** var = lv_event_get_user_data(e); + lv_obj_del(*var); + (*var) = NULL; + +} + +void _ui_opacity_set(lv_obj_t * target, int val) +{ + lv_obj_set_style_opa(target, val, 0); +} + +void _ui_anim_callback_free_user_data(lv_anim_t * a) +{ + lv_mem_free(a->user_data); + a->user_data = NULL; +} + +void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_x(usr->target, v); + +} + + +void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_y(usr->target, v); + +} + + +void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_width(usr->target, v); + +} + + +void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_height(usr->target, v); + +} + + +void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_obj_set_style_opa(usr->target, v, 0); + +} + + +void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_img_set_zoom(usr->target, v); + +} + + +void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + lv_img_set_angle(usr->target, v); + +} + + +void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + usr->val = v; + + if(v < 0) v = 0; + if(v >= usr->imgset_size) v = usr->imgset_size - 1; + lv_img_set_src(usr->target, usr->imgset[v]); +} + +int32_t _ui_anim_callback_get_x(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_x_aligned(usr->target); + +} + + +int32_t _ui_anim_callback_get_y(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_y_aligned(usr->target); + +} + + +int32_t _ui_anim_callback_get_width(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_width(usr->target); + +} + + +int32_t _ui_anim_callback_get_height(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_height(usr->target); + +} + + +int32_t _ui_anim_callback_get_opacity(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_obj_get_style_opa(usr->target, 0); + +} + +int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_img_get_zoom(usr->target); + +} + +int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return lv_img_get_angle(usr->target); + +} + +int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a) + +{ + + ui_anim_user_data_t * usr = (ui_anim_user_data_t *)a->user_data; + return usr->val; + +} + +void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) +{ + char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; + + lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_arc_get_value(src), postfix); + + lv_label_set_text(trg, buf); +} + +void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix) +{ + char buf[_UI_TEMPORARY_STRING_BUFFER_SIZE]; + + lv_snprintf(buf, sizeof(buf), "%s%d%s", prefix, (int)lv_slider_get_value(src), postfix); + + lv_label_set_text(trg, buf); +} +void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off) +{ + if(lv_obj_has_state(src, LV_STATE_CHECKED)) lv_label_set_text(trg, txt_on); + else lv_label_set_text(trg, txt_off); +} + + +void _ui_spinbox_step(lv_obj_t * target, int val) + +{ + + if(val > 0) lv_spinbox_increment(target); + + else lv_spinbox_decrement(target); + + + lv_event_send(target, LV_EVENT_VALUE_CHANGED, 0); +} + +void _ui_switch_theme(int val) + +{ + +#ifdef UI_THEME_ACTIVE + ui_theme_set(val); +#endif +} + + diff --git a/esp-crab/master_recv/main/ui/ui_helpers.h b/esp-crab/master_recv/main/ui/ui_helpers.h new file mode 100644 index 0000000..18659c5 --- /dev/null +++ b/esp-crab/master_recv/main/ui/ui_helpers.h @@ -0,0 +1,148 @@ +// This file was generated by SquareLine Studio +// SquareLine Studio version: SquareLine Studio 1.5.0 +// LVGL version: 8.3.11 +// Project name: C5_Dual_antenna + +#ifndef _C5_DUAL_ANTENNA_UI_HELPERS_H +#define _C5_DUAL_ANTENNA_UI_HELPERS_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ui.h" + +#define _UI_TEMPORARY_STRING_BUFFER_SIZE 32 +#define _UI_BAR_PROPERTY_VALUE 0 +#define _UI_BAR_PROPERTY_VALUE_WITH_ANIM 1 +void _ui_bar_set_property(lv_obj_t * target, int id, int val); + +#define _UI_BASIC_PROPERTY_POSITION_X 0 +#define _UI_BASIC_PROPERTY_POSITION_Y 1 +#define _UI_BASIC_PROPERTY_WIDTH 2 +#define _UI_BASIC_PROPERTY_HEIGHT 3 +void _ui_basic_set_property(lv_obj_t * target, int id, int val); + +#define _UI_DROPDOWN_PROPERTY_SELECTED 0 +void _ui_dropdown_set_property(lv_obj_t * target, int id, int val); + +#define _UI_IMAGE_PROPERTY_IMAGE 0 +void _ui_image_set_property(lv_obj_t * target, int id, uint8_t * val); + +#define _UI_LABEL_PROPERTY_TEXT 0 +void _ui_label_set_property(lv_obj_t * target, int id, const char * val); + +#define _UI_ROLLER_PROPERTY_SELECTED 0 +#define _UI_ROLLER_PROPERTY_SELECTED_WITH_ANIM 1 +void _ui_roller_set_property(lv_obj_t * target, int id, int val); + +#define _UI_SLIDER_PROPERTY_VALUE 0 +#define _UI_SLIDER_PROPERTY_VALUE_WITH_ANIM 1 +void _ui_slider_set_property(lv_obj_t * target, int id, int val); + +void _ui_screen_change(lv_obj_t ** target, lv_scr_load_anim_t fademode, int spd, int delay, void (*target_init)(void)); + +void _ui_screen_delete(lv_obj_t ** target); + +void _ui_arc_increment(lv_obj_t * target, int val); + +void _ui_bar_increment(lv_obj_t * target, int val, int anm); + +void _ui_slider_increment(lv_obj_t * target, int val, int anm); + +void _ui_keyboard_set_target(lv_obj_t * keyboard, lv_obj_t * textarea); + +#define _UI_MODIFY_FLAG_ADD 0 +#define _UI_MODIFY_FLAG_REMOVE 1 +#define _UI_MODIFY_FLAG_TOGGLE 2 +void _ui_flag_modify(lv_obj_t * target, int32_t flag, int value); + +#define _UI_MODIFY_STATE_ADD 0 +#define _UI_MODIFY_STATE_REMOVE 1 +#define _UI_MODIFY_STATE_TOGGLE 2 +void _ui_state_modify(lv_obj_t * target, int32_t state, int value); + +#define UI_MOVE_CURSOR_UP 0 +#define UI_MOVE_CURSOR_RIGHT 1 +#define UI_MOVE_CURSOR_DOWN 2 +#define UI_MOVE_CURSOR_LEFT 3 +void _ui_textarea_move_cursor(lv_obj_t * target, int val) +; + + +void scr_unloaded_delete_cb(lv_event_t * e); + +void _ui_opacity_set(lv_obj_t * target, int val); + +/** Describes an animation*/ +typedef struct _ui_anim_user_data_t { + lv_obj_t * target; + lv_img_dsc_t ** imgset; + int32_t imgset_size; + int32_t val; +} ui_anim_user_data_t; +void _ui_anim_callback_free_user_data(lv_anim_t * a); + +void _ui_anim_callback_set_x(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_y(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_width(lv_anim_t * a, int32_t v); + +void _ui_anim_callback_set_height(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_opacity(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_zoom(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_angle(lv_anim_t * a, int32_t v); + + +void _ui_anim_callback_set_image_frame(lv_anim_t * a, int32_t v); + + +int32_t _ui_anim_callback_get_x(lv_anim_t * a); + +int32_t _ui_anim_callback_get_y(lv_anim_t * a); + +int32_t _ui_anim_callback_get_width(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_height(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_opacity(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_image_zoom(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_image_angle(lv_anim_t * a); + + +int32_t _ui_anim_callback_get_image_frame(lv_anim_t * a); + + +void _ui_arc_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); + +void _ui_slider_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * prefix, const char * postfix); + +void _ui_checked_set_text_value(lv_obj_t * trg, lv_obj_t * src, const char * txt_on, const char * txt_off); + +void _ui_spinbox_step(lv_obj_t * target, int val) +; + + +void _ui_switch_theme(int val) +; + + + +#ifdef __cplusplus +} /*extern "C"*/ +#endif + +#endif diff --git a/esp-crab/master_recv/partitions.csv b/esp-crab/master_recv/partitions.csv new file mode 100644 index 0000000..0a4f1e6 --- /dev/null +++ b/esp-crab/master_recv/partitions.csv @@ -0,0 +1,5 @@ +# Name, Type, SubType, Offset, Size +nvs, data, nvs, 0x9000, 0x5000 +otadata, data, ota, 0xe000, 0x2000 +phy_init, data, phy, 0x10000, 0x1000 +factory, app, factory, 0x20000, 0x200000 diff --git a/esp-crab/master_recv/sdkconfig.defaults b/esp-crab/master_recv/sdkconfig.defaults new file mode 100644 index 0000000..7d65041 --- /dev/null +++ b/esp-crab/master_recv/sdkconfig.defaults @@ -0,0 +1,32 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32c5" +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_ESP_CONSOLE_UART_CUSTOM=y +CONFIG_ESP_CONSOLE_UART_BAUDRATE=921600 +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +CONFIG_ESP_WIFI_CSI_ENABLED=y +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n +CONFIG_LV_COLOR_16_SWAP=y +CONFIG_LV_FONT_MONTSERRAT_10=y +CONFIG_LV_FONT_MONTSERRAT_12=y +CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y +CONFIG_LV_FONT_MONTSERRAT_20=y +CONFIG_LV_FONT_MONTSERRAT_22=y +CONFIG_LV_FONT_MONTSERRAT_24=y +CONFIG_LV_FONT_MONTSERRAT_26=y +CONFIG_LV_FONT_MONTSERRAT_28=y +CONFIG_LV_FONT_MONTSERRAT_30=y +CONFIG_LV_FONT_MONTSERRAT_32=y +CONFIG_LV_FONT_MONTSERRAT_34=y +CONFIG_LV_FONT_MONTSERRAT_36=y +CONFIG_LV_FONT_MONTSERRAT_38=y +CONFIG_LV_FONT_MONTSERRAT_40=y +CONFIG_LV_FONT_MONTSERRAT_42=y +CONFIG_LV_FONT_MONTSERRAT_44=y +CONFIG_LV_FONT_MONTSERRAT_46=y +CONFIG_LV_FONT_MONTSERRAT_48=y diff --git a/esp-crab/slave_recv/.gitignore b/esp-crab/slave_recv/.gitignore new file mode 100644 index 0000000..385111f --- /dev/null +++ b/esp-crab/slave_recv/.gitignore @@ -0,0 +1,109 @@ +.config +*.o +*.pyc +*.orig + +# gtags +GTAGS +GRTAGS +GPATH + +# emacs +.dir-locals.el + +# emacs temp file suffixes +*~ +.#* +\#*# + +# eclipse setting +.settings + +# MacOS directory files +.DS_Store + +# Components Unit Test Apps files +components/**/build +components/**/sdkconfig +components/**/sdkconfig.old + +# Example project files +examples/**/sdkconfig +examples/**/sdkconfig.old +examples/**/build + +# Doc build artifacts +docs/**/_build/ +docs/**/doxygen-warning-log.txt +docs/**/sphinx-warning-log.txt +docs/**/sphinx-warning-log-sanitized.txt +docs/**/xml/ +docs/**/xml_in/ +docs/**/man/ + +# Downloaded font files +docs/_static/DejaVuSans.ttf +docs/_static/NotoSansSC-Regular.otf + +# Unit test app files +tools/unit-test-app/sdkconfig +tools/unit-test-app/sdkconfig.old +tools/unit-test-app/build +tools/unit-test-app/builds +tools/unit-test-app/output +tools/unit-test-app/test_configs + +# Unit Test CMake compile log folder +log_ut_cmake + +# test application build files +tools/test_apps/**/build +tools/test_apps/**/sdkconfig +tools/test_apps/**/sdkconfig.old + +# IDF monitor test +tools/test_idf_monitor/outputs + +TEST_LOGS + +# gcov coverage reports +*.gcda +*.gcno +coverage.info +coverage_report/ + +test_multi_heap_host + +# VS Code Settings +.vscode/ + +# VIM files +*.swp +*.swo + +# Clion IDE CMake build & config +.idea/ +cmake-build-*/ + +# Results for the checking of the Python coding style and static analysis +.mypy_cache +flake8_output.txt + +# ESP-IDF default build directory name +build +build_esp*/ +build_linux*/ +size_info.txt + +# lock files for examples and components +dependencies.lock + +# managed_components for examples +managed_components + +# pytest log +pytest_embedded_log/ +pytest_log/ +.pytest_cache/ +XUNIT_RESULT.xml + diff --git a/esp-crab/slave_recv/CMakeLists.txt b/esp-crab/slave_recv/CMakeLists.txt new file mode 100644 index 0000000..d059709 --- /dev/null +++ b/esp-crab/slave_recv/CMakeLists.txt @@ -0,0 +1,15 @@ + +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctlycmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +message("EXTRA_COMPONENT_DIRS: " ${EXTRA_COMPONENT_DIRS}) +add_definitions(-D CHIP_ID=0) +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/esp-crab/slave_recv/components/bsp_C5_dual_antenna b/esp-crab/slave_recv/components/bsp_C5_dual_antenna new file mode 120000 index 0000000..ae93b04 --- /dev/null +++ b/esp-crab/slave_recv/components/bsp_C5_dual_antenna @@ -0,0 +1 @@ +../../master_recv/components/bsp_C5_dual_antenna \ No newline at end of file diff --git a/esp-crab/slave_recv/main/CMakeLists.txt b/esp-crab/slave_recv/main/CMakeLists.txt new file mode 100644 index 0000000..e956a10 --- /dev/null +++ b/esp-crab/slave_recv/main/CMakeLists.txt @@ -0,0 +1,5 @@ +set(APP_DIR app) +file(GLOB_RECURSE APP_SOURCES ${APP_DIR}/*.c) + +idf_component_register(SRCS "app_main.c" ${APP_SOURCES} + INCLUDE_DIRS "." ${APP_DIR}) diff --git a/esp-crab/slave_recv/main/app/app_gpio.c b/esp-crab/slave_recv/main/app/app_gpio.c new file mode 100644 index 0000000..579dacb --- /dev/null +++ b/esp-crab/slave_recv/main/app/app_gpio.c @@ -0,0 +1,43 @@ +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/gpio.h" +#include "esp_log.h" +#include "esp_timer.h" +#include "esp_log.h" +#include + + +#define GPIO_INPUT_IO 27 // 设置要使用的 GPIO 引脚编号 +#define GPIO_INPUT_PIN_SEL (1ULL << GPIO_INPUT_IO) // GPIO 位掩码 +extern int64_t time_zero; +static const char *TAG = "GPIO"; +extern QueueHandle_t csi_send_queue; +// 中断服务回调函数 +static void IRAM_ATTR gpio_isr_handler(void *arg) { + xQueueReset(csi_send_queue); + time_zero = esp_timer_get_time(); + uint32_t gpio_num = (uint32_t)arg; // 获取中断的 GPIO 引脚编号 + // ets_printf("GPIO %ld triggered! time: %lld", gpio_num,time_since_boot); +} + +// GPIO 配置和中断初始化 +void init_gpio() { + // 配置 GPIO + gpio_config_t io_conf = { + .intr_type = GPIO_INTR_NEGEDGE, // 设置为下降沿中断 + .mode = GPIO_MODE_INPUT, // 设置为输入模式 + .pin_bit_mask = GPIO_INPUT_PIN_SEL, // 设置 GPIO 位掩码 + .pull_up_en = GPIO_PULLUP_ENABLE, // 启用上拉 + .pull_down_en = GPIO_PULLDOWN_DISABLE, // 禁用下拉 + }; + gpio_config(&io_conf); + + // 安装 GPIO 中断服务 + gpio_install_isr_service(0); + + // 添加中断处理程序 + gpio_isr_handler_add(GPIO_INPUT_IO, gpio_isr_handler, (void *)GPIO_INPUT_IO); + + ESP_LOGI(TAG, "GPIO %d configured with negative edge interrupt.", GPIO_INPUT_IO); +} + diff --git a/esp-crab/slave_recv/main/app/app_gpio.h b/esp-crab/slave_recv/main/app/app_gpio.h new file mode 100644 index 0000000..c38f9bf --- /dev/null +++ b/esp-crab/slave_recv/main/app/app_gpio.h @@ -0,0 +1,11 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif + +void init_gpio(void); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/slave_recv/main/app/app_ifft.c b/esp-crab/slave_recv/main/app/app_ifft.c new file mode 100644 index 0000000..a6400d9 --- /dev/null +++ b/esp-crab/slave_recv/main/app/app_ifft.c @@ -0,0 +1,162 @@ +/* SPI Slave example, receiver (uses SPI Slave driver to communicate with sender) + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "esp_log.h" +#include "app_ifft.h" +#include "IQmathLib.h" +#define PI 3.14159265358979323846f +#define PI_IQ _IQ(3.14159265358979323846) +#define PI_IQ_N2 _IQ(-6.28318530717958647692) +const int bitReverseTable[64] = { + 0, 32, 16, 48, 8, 40, 24, 56, + 4, 36, 20, 52, 12, 44, 28, 60, + 2, 34, 18, 50, 10, 42, 26, 58, + 6, 38, 22, 54, 14, 46, 30, 62, + 1, 33, 17, 49, 9, 41, 25, 57, + 5, 37, 21, 53, 13, 45, 29, 61, + 3, 35, 19, 51, 11, 43, 27, 59, + 7, 39, 23, 55, 15, 47, 31, 63 +}; + +void IRAM_ATTR fft_iq(Complex_Iq *X, int inverse) +{ + int log2N = 6; + int N = 64; + Complex_Iq *temp = (Complex_Iq *)malloc(64 * sizeof(Complex_Iq)); + + // Bit-reversed addressing permutation + for (int i = 0; i < N; i++) { + temp[i] = X[bitReverseTable[i]]; + } + for (int i = 0; i < N; i++) { + X[i] = temp[i]; + } + + // Cooley-Tukey iterative FFT + for (int s = 1; s <= log2N; ++s) { + int m = 1 << s; // 2 power s + int m2 = m >> 1; // m/2 + Complex_Iq w; + w.real = _IQ16(1.0); + w.imag = _IQ16(0.0); + Complex_Iq wm; + _iq16 angle = _IQ16div(PI_IQ_N2, m); + wm.real = _IQ16cos(angle); + wm.imag = _IQ16sin(angle); + if (inverse) wm.imag = -wm.imag; + + for (int j = 0; j < m2; ++j) { + for (int k = j; k < N; k += m) { + Complex_Iq t, u; + u = X[k]; + t.real = _IQ16mpy(w.real , X[k + m2].real) - _IQ16mpy(w.imag , X[k + m2].imag); + t.imag = _IQ16mpy(w.real , X[k + m2].imag) + _IQ16mpy(w.imag , X[k + m2].real); + X[k].real = u.real + t.real; + X[k].imag = u.imag + t.imag; + X[k + m2].real = u.real - t.real; + X[k + m2].imag = u.imag - t.imag; + } + float tmpReal = _IQ16mpy(w.real , wm.real) - _IQ16mpy(w.imag , wm.imag); + w.imag = _IQ16mpy(w.real , wm.imag) + _IQ16mpy(w.imag , wm.real); + w.real = tmpReal; + } + } + + // Scale for inverse FFT + if (inverse) { + for (int i = 0; i < N; i++) { + X[i].real = _IQdiv64(X[i].real); + X[i].imag = _IQdiv64(X[i].imag); + } + } + + free(temp); +} + +// Bit reversal of given index 'x' with 'log2n' bits +unsigned int inline bitReverse(unsigned int x, int log2n) { + int n = 0; + for (int i = 0; i < log2n; i++) { + n <<= 1; + n |= (x & 1); + x >>= 1; + } + return n; +} +void IRAM_ATTR fft(Complex *X, int N, int inverse) +{ + int log2N = log2(N); + Complex *temp = (Complex *)malloc(N * sizeof(Complex)); + + // Bit-reversed addressing permutation + for (int i = 0; i < N; i++) { + temp[i] = X[bitReverse(i, log2N)]; + } + for (int i = 0; i < N; i++) { + X[i] = temp[i]; + } + + // Cooley-Tukey iterative FFT + for (int s = 1; s <= log2N; ++s) { + int m = 1 << s; // 2 power s + int m2 = m >> 1; // m/2 + Complex w; + w.real = 1.0; + w.imag = 0.0; + Complex wm; + wm.real = cosf(-2.0f * PI / m); + wm.imag = sinf(-2.0f * PI / m); + if (inverse) wm.imag = -wm.imag; + + for (int j = 0; j < m2; ++j) { + for (int k = j; k < N; k += m) { + Complex t, u; + u = X[k]; + t.real = w.real * X[k + m2].real - w.imag * X[k + m2].imag; + t.imag = w.real * X[k + m2].imag + w.imag * X[k + m2].real; + X[k].real = u.real + t.real; + X[k].imag = u.imag + t.imag; + X[k + m2].real = u.real - t.real; + X[k + m2].imag = u.imag - t.imag; + } + float tmpReal = w.real * wm.real - w.imag * wm.imag; + w.imag = w.real * wm.imag + w.imag * wm.real; + w.real = tmpReal; + } + } + + // Scale for inverse FFT + if (inverse) { + for (int i = 0; i < N; i++) { + X[i].real /= N; + X[i].imag /= N; + } + } + + free(temp); +} +float complex_magnitude_iq(Complex_Iq z) { + return _IQ16toF(_IQ16mag(z.real, z.imag)); +} + +float complex_phase_iq(Complex_Iq z) { + return _IQ16toF(_IQ16atan2(z.imag, z.real)); +} + +float complex_magnitude(Complex z) { + return sqrt(z.real * z.real + z.imag * z.imag); +} +float complex_phase(Complex z) { + return atan2(z.imag, z.real); +} \ No newline at end of file diff --git a/esp-crab/slave_recv/main/app/app_ifft.h b/esp-crab/slave_recv/main/app/app_ifft.h new file mode 100644 index 0000000..9665836 --- /dev/null +++ b/esp-crab/slave_recv/main/app/app_ifft.h @@ -0,0 +1,26 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif +#include "IQmathLib.h" + +typedef struct { + float real; + float imag; +} Complex; +typedef struct { + _iq16 real; + _iq16 imag; +} Complex_Iq; +void IRAM_ATTR fft_iq(Complex_Iq *X, int inverse) ; +void IRAM_ATTR fft(Complex *X, int N, int inverse); + +float complex_magnitude_iq(Complex_Iq z); +float complex_phase_iq(Complex_Iq z); +float complex_magnitude(Complex z); +float complex_phase(Complex z); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/slave_recv/main/app/app_uart.c b/esp-crab/slave_recv/main/app/app_uart.c new file mode 100644 index 0000000..0a175a9 --- /dev/null +++ b/esp-crab/slave_recv/main/app/app_uart.c @@ -0,0 +1,43 @@ +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/uart.h" +#include "driver/gpio.h" +#include "sdkconfig.h" +#include "esp_log.h" +#include "app_uart.h" + +static const char *TAG = "UART"; + +void init_uart() { + uart_config_t uart_config = { + .baud_rate = UART_BAUD_RATE, + .data_bits = UART_DATA_8_BITS, + .parity = UART_PARITY_DISABLE, + .stop_bits = UART_STOP_BITS_1, + .flow_ctrl = UART_HW_FLOWCTRL_DISABLE, + .source_clk = UART_SCLK_DEFAULT, + }; + int intr_alloc_flags = 0; + +#if CONFIG_UART_ISR_IN_IRAM + intr_alloc_flags = ESP_INTR_FLAG_IRAM; +#endif + ESP_ERROR_CHECK(uart_driver_install(UART_PORT_NUM, BUF_SIZE * 2, 0 , 0, NULL, intr_alloc_flags)); + ESP_ERROR_CHECK(uart_param_config(UART_PORT_NUM, &uart_config)); + ESP_ERROR_CHECK(uart_set_pin(UART_PORT_NUM, TXD_PIN, RXD_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE)); + ESP_LOGI("UART", "UART initialized"); +} + +int uart_send_data(const char *data, uint8_t len) { + return uart_write_bytes(UART_PORT_NUM, data, len); +} + +// void uart_receive_data() { +// uint8_t data[BUF_SIZE]; +// int length = uart_read_bytes(UART_PORT_NUM, data, BUF_SIZE, 20 / portTICK_RATE_MS); +// if (length > 0) { +// data[length] = '\0'; +// ESP_LOGI("UART", "Received %d bytes: '%s'", length, (char *)data); +// } +// } diff --git a/esp-crab/slave_recv/main/app/app_uart.h b/esp-crab/slave_recv/main/app/app_uart.h new file mode 100644 index 0000000..8e99de7 --- /dev/null +++ b/esp-crab/slave_recv/main/app/app_uart.h @@ -0,0 +1,26 @@ + +#pragma once +#ifdef __cplusplus +extern "C" { +#endif + +#define UART_PORT_NUM UART_NUM_0 +#define UART_BAUD_RATE 2000000 +#define TXD_PIN (GPIO_NUM_11) +#define RXD_PIN (GPIO_NUM_12) +#define BUF_SIZE 4096 + +typedef struct { + uint8_t start[2]; + uint32_t id; + int64_t time_delta; + float cir[4]; + uint8_t end[2]; +} __attribute__((packed)) csi_data_t; + +void init_uart(void); +int uart_send_data(const char *data, uint8_t len); + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/esp-crab/slave_recv/main/app_main.c b/esp-crab/slave_recv/main/app_main.c new file mode 100644 index 0000000..0ee8821 --- /dev/null +++ b/esp-crab/slave_recv/main/app_main.c @@ -0,0 +1,291 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* Esp-crab Example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include +#include "nvs_flash.h" +#include "esp_mac.h" +#include "rom/ets_sys.h" +#include "esp_log.h" +#include "esp_wifi.h" +#include "esp_netif.h" +#include "esp_now.h" +#include "app_ifft.h" +#include "app_gpio.h" +#include "esp_timer.h" +#include "app_uart.h" +#include "IQmathLib.h" +#include "bsp_C5_dual_antenna.h" +#include "esp_csi_gain_ctrl.h" + +#define CONFIG_LESS_INTERFERENCE_CHANNEL 40 +#define CONFIG_WIFI_BAND_MODE WIFI_BAND_MODE_5G_ONLY +#define CONFIG_WIFI_2G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_5G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_2G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_WIFI_5G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_ESP_NOW_PHYMODE WIFI_PHY_MODE_HT40 +#define CONFIG_GAIN_CONTROL 1 // 1:enable gain control, 0:disable gain control +#define CONFIG_FORCE_GAIN 0 // 1:force gain control, 0:automatic gain control +#define CONFIG_PRINT_CSI_DATA 1 + +int64_t time_zero = 0; +typedef struct { + uint32_t id; + uint32_t time; + uint8_t fft_gain; + uint8_t agc_gain; + int8_t buf[256]; +} csi_send_queue_t; +uint32_t recv_cnt = 0; +QueueHandle_t csi_send_queue; +static const uint8_t CONFIG_CSI_SEND_MAC[] = {0x1a, 0x00, 0x00, 0x00, 0x00, 0x00}; +static const char *TAG = "csi_recv"; + +static void wifi_init() +{ + ESP_ERROR_CHECK(esp_event_loop_create_default()); + ESP_ERROR_CHECK(esp_netif_init()); + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(esp_wifi_init(&cfg)); + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); + ESP_ERROR_CHECK(esp_wifi_start()); + + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + .ghz_5g = CONFIG_WIFI_5G_PROTOCOL + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + .ghz_5g = CONFIG_WIFI_5G_BANDWIDTHS + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); + + ESP_ERROR_CHECK(esp_wifi_start()); + ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_NONE)); + + if ((CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) || (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_5G_ONLY && CONFIG_WIFI_5G_BANDWIDTHS == WIFI_BW_HT20)) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } + + ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_STA, CONFIG_CSI_SEND_MAC)); +} + +static void wifi_esp_now_init(esp_now_peer_info_t peer) +{ + ESP_ERROR_CHECK(esp_now_init()); + ESP_ERROR_CHECK(esp_now_set_pmk((uint8_t *)"pmk1234567890123")); + esp_now_rate_config_t rate_config = { + .phymode = CONFIG_ESP_NOW_PHYMODE, + .rate = WIFI_PHY_RATE_MCS0_LGI, + .ersu = false, + .dcm = false + }; + ESP_ERROR_CHECK(esp_now_add_peer(&peer)); + ESP_ERROR_CHECK(esp_now_set_peer_rate_config(peer.peer_addr, &rate_config)); + +} + +static void wifi_csi_rx_cb(void *ctx, wifi_csi_info_t *info) +{ + static int64_t last_time = 0; + if (!info || !info->buf) { + ESP_LOGW(TAG, "<%s> wifi_csi_cb", esp_err_to_name(ESP_ERR_INVALID_ARG)); + return; + } + + if (memcmp(info->mac, CONFIG_CSI_SEND_MAC, 6)) { + return; + } + + const wifi_pkt_rx_ctrl_t *rx_ctrl = &info->rx_ctrl; + static int s_count = 0; + static uint8_t agc_gain = 0; + static int8_t fft_gain = 0; +#if CONFIG_GAIN_CONTROL + static uint8_t agc_gain_baseline = 0; + static int8_t fft_gain_baseline = 0; + esp_csi_gain_ctrl_get_rx_gain(info, &agc_gain, &fft_gain); + if (s_count < 100) { + esp_csi_gain_ctrl_record_rx_gain(agc_gain, fft_gain); + } else if (s_count == 100) { + esp_csi_gain_ctrl_get_rx_gain_baseline(&agc_gain_baseline, &fft_gain_baseline); +#if CONFIG_FORCE_GAIN + esp_csi_gain_ctrl_set_rx_force_gain(agc_gain_baseline, fft_gain_baseline); + ESP_LOGI(TAG, "fft_force %d, agc_force %d", fft_gain_baseline, agc_gain_baseline); +#endif + } +#endif + + csi_send_queue_t *csi_send_queuedata = (csi_send_queue_t *)calloc(1, sizeof(csi_send_queue_t)); + memcpy(&(csi_send_queuedata->id), info->payload + 15, sizeof(uint32_t)); + + csi_send_queuedata->time = info->rx_ctrl.timestamp; + csi_send_queuedata->agc_gain = agc_gain; + csi_send_queuedata->fft_gain = fft_gain; + + memset(csi_send_queuedata->buf, 0, 256); + memcpy(csi_send_queuedata->buf + 8, info->buf, info->len); + xQueueSend(csi_send_queue, &csi_send_queuedata, 0); + +#if CONFIG_PRINT_CSI_DATA + if (!s_count) { + ESP_LOGI(TAG, "================ CSI RECV ================"); + ets_printf("type,id,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,ant,rx_state,len,first_word,data\n"); + } + + ets_printf("CSI_DATA,%d," MACSTR ",%d,%d,%d,%d,%d,%d,%d,%d,%d", + csi_send_queuedata->id, MAC2STR(info->mac), rx_ctrl->rssi, rx_ctrl->rate, + rx_ctrl->noise_floor, fft_gain, agc_gain, rx_ctrl->channel, + rx_ctrl->timestamp, rx_ctrl->sig_len, rx_ctrl->rx_state); + + ets_printf(",%d,%d,\"[%d", info->len, info->first_word_invalid, info->buf[0]); + + for (int i = 1; i < info->len; i++) { + ets_printf(",%d", info->buf[i]); + } + + ets_printf("]\"\n"); +#endif + s_count++; + recv_cnt++; +} + +static void wifi_csi_init() +{ + ESP_ERROR_CHECK(esp_wifi_set_promiscuous(true)); + csi_send_queue = xQueueCreate(20, sizeof(csi_send_queue_t *)); + wifi_csi_config_t csi_config = { + .enable = true, + .acquire_csi_legacy = false, + .acquire_csi_force_lltf = false, + .acquire_csi_ht20 = true, + .acquire_csi_ht40 = true, + .acquire_csi_vht = true, + .acquire_csi_su = false, + .acquire_csi_mu = false, + .acquire_csi_dcm = false, + .acquire_csi_beamformed = false, + .acquire_csi_he_stbc_mode = 2, + .val_scale_cfg = false, + .dump_ack_en = false, + .reserved = false + }; + + ESP_ERROR_CHECK(esp_wifi_set_csi_config(&csi_config)); + ESP_ERROR_CHECK(esp_wifi_set_csi_rx_cb(wifi_csi_rx_cb, NULL)); + ESP_ERROR_CHECK(esp_wifi_set_csi(true)); + +} + +static void uart_send_task(void *pvParameter) +{ + static int s_count = 0; + csi_send_queue_t *csi_send_queue_data = NULL; + Complex_Iq x_iq[64]; + float cir[2] = {}; + float pha[2] = {}; + while (xQueueReceive(csi_send_queue, &csi_send_queue_data, portMAX_DELAY) == pdTRUE) { + UBaseType_t queueLength = uxQueueMessagesWaiting(csi_send_queue); + if (queueLength > 10) { + ESP_LOGW(TAG, "csi queueLength:%d", queueLength); + } +#if !CONFIG_FORCE_GAIN && CONFIG_GAIN_CONTROL + float scaling_factor = 0; + esp_csi_gain_ctrl_get_gain_compensation(&scaling_factor, csi_send_queue_data->agc_gain, csi_send_queue_data->fft_gain); +#else + float scaling_factor = 1.0f; +#endif + + for (int i = 0; i < 64; i++) { + x_iq[i].real = _IQ16(csi_send_queue_data->buf[2 * i]); + x_iq[i].imag = _IQ16(csi_send_queue_data->buf[2 * i + 1]); + } + fft_iq(x_iq, 1); + cir[0] = complex_magnitude_iq(x_iq[0]) * scaling_factor; + pha[0] = complex_phase_iq(x_iq[0]); + for (int i = 64; i < 128; i++) { + x_iq[i - 64].real = _IQ16(csi_send_queue_data->buf[2 * i]); + x_iq[i - 64].imag = _IQ16(csi_send_queue_data->buf[2 * i + 1]); + } + fft_iq(x_iq, 1); + cir[1] = complex_magnitude_iq(x_iq[0]) * scaling_factor; + pha[1] = complex_phase_iq(x_iq[0]); + + csi_data_t data = { + .start = {0xAA, 0x55}, + .id = csi_send_queue_data->id, + .time_delta = csi_send_queue_data->time - time_zero, + .cir = {cir[0], cir[1], pha[0], pha[1]}, + .end = {0x55, 0xAA}, + }; + uart_send_data((const char *)&data, sizeof(data)); + free(csi_send_queue_data); + } +} + +void app_main() +{ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + wifi_init(); + + /** + * @brief Initialize ESP-NOW + * ESP-NOW protocol see: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html + */ + esp_now_peer_info_t peer = { + .channel = CONFIG_LESS_INTERFERENCE_CHANNEL, + .ifidx = WIFI_IF_STA, + .encrypt = false, + .peer_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + }; +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 + wifi_esp_now_init(peer); +#endif + init_gpio(); + init_uart(); + bsp_led_init(); + wifi_csi_init(); + xTaskCreate(uart_send_task, "uart_send_task", 4096, NULL, 6, NULL); + uint32_t recv_cnt_prv = 0; + while (1) { + static bool level = 1; + static uint8_t time = 100; + if ((recv_cnt - recv_cnt_prv) >= 20) { + recv_cnt_prv = recv_cnt; + time = 100; + bsp_led_set(0, level * 30, level * 30, level * 30); + level = !level; + } + if (time > 0) { + time -= 1; + } else { + bsp_led_set(0, 0, 0, 0); + } + vTaskDelay(10 / portTICK_PERIOD_MS); + } + +} diff --git a/esp-crab/slave_recv/main/idf_component.yml b/esp-crab/slave_recv/main/idf_component.yml new file mode 100644 index 0000000..8f6a7ad --- /dev/null +++ b/esp-crab/slave_recv/main/idf_component.yml @@ -0,0 +1,7 @@ +## IDF Component Manager Manifest File +dependencies: + idf: '>=4.4.1' + + esp_csi_gain_ctrl: ">=0.1.0" + + espressif/iqmath: ^1.11.0 diff --git a/esp-crab/slave_recv/partitions.csv b/esp-crab/slave_recv/partitions.csv new file mode 100644 index 0000000..0a4f1e6 --- /dev/null +++ b/esp-crab/slave_recv/partitions.csv @@ -0,0 +1,5 @@ +# Name, Type, SubType, Offset, Size +nvs, data, nvs, 0x9000, 0x5000 +otadata, data, ota, 0xe000, 0x2000 +phy_init, data, phy, 0x10000, 0x1000 +factory, app, factory, 0x20000, 0x200000 diff --git a/esp-crab/slave_recv/sdkconfig.defaults b/esp-crab/slave_recv/sdkconfig.defaults new file mode 100644 index 0000000..7d65041 --- /dev/null +++ b/esp-crab/slave_recv/sdkconfig.defaults @@ -0,0 +1,32 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32c5" +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_ESP_CONSOLE_UART_CUSTOM=y +CONFIG_ESP_CONSOLE_UART_BAUDRATE=921600 +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +CONFIG_ESP_WIFI_CSI_ENABLED=y +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n +CONFIG_LV_COLOR_16_SWAP=y +CONFIG_LV_FONT_MONTSERRAT_10=y +CONFIG_LV_FONT_MONTSERRAT_12=y +CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y +CONFIG_LV_FONT_MONTSERRAT_20=y +CONFIG_LV_FONT_MONTSERRAT_22=y +CONFIG_LV_FONT_MONTSERRAT_24=y +CONFIG_LV_FONT_MONTSERRAT_26=y +CONFIG_LV_FONT_MONTSERRAT_28=y +CONFIG_LV_FONT_MONTSERRAT_30=y +CONFIG_LV_FONT_MONTSERRAT_32=y +CONFIG_LV_FONT_MONTSERRAT_34=y +CONFIG_LV_FONT_MONTSERRAT_36=y +CONFIG_LV_FONT_MONTSERRAT_38=y +CONFIG_LV_FONT_MONTSERRAT_40=y +CONFIG_LV_FONT_MONTSERRAT_42=y +CONFIG_LV_FONT_MONTSERRAT_44=y +CONFIG_LV_FONT_MONTSERRAT_46=y +CONFIG_LV_FONT_MONTSERRAT_48=y diff --git a/esp-crab/slave_send/.gitignore b/esp-crab/slave_send/.gitignore new file mode 100644 index 0000000..385111f --- /dev/null +++ b/esp-crab/slave_send/.gitignore @@ -0,0 +1,109 @@ +.config +*.o +*.pyc +*.orig + +# gtags +GTAGS +GRTAGS +GPATH + +# emacs +.dir-locals.el + +# emacs temp file suffixes +*~ +.#* +\#*# + +# eclipse setting +.settings + +# MacOS directory files +.DS_Store + +# Components Unit Test Apps files +components/**/build +components/**/sdkconfig +components/**/sdkconfig.old + +# Example project files +examples/**/sdkconfig +examples/**/sdkconfig.old +examples/**/build + +# Doc build artifacts +docs/**/_build/ +docs/**/doxygen-warning-log.txt +docs/**/sphinx-warning-log.txt +docs/**/sphinx-warning-log-sanitized.txt +docs/**/xml/ +docs/**/xml_in/ +docs/**/man/ + +# Downloaded font files +docs/_static/DejaVuSans.ttf +docs/_static/NotoSansSC-Regular.otf + +# Unit test app files +tools/unit-test-app/sdkconfig +tools/unit-test-app/sdkconfig.old +tools/unit-test-app/build +tools/unit-test-app/builds +tools/unit-test-app/output +tools/unit-test-app/test_configs + +# Unit Test CMake compile log folder +log_ut_cmake + +# test application build files +tools/test_apps/**/build +tools/test_apps/**/sdkconfig +tools/test_apps/**/sdkconfig.old + +# IDF monitor test +tools/test_idf_monitor/outputs + +TEST_LOGS + +# gcov coverage reports +*.gcda +*.gcno +coverage.info +coverage_report/ + +test_multi_heap_host + +# VS Code Settings +.vscode/ + +# VIM files +*.swp +*.swo + +# Clion IDE CMake build & config +.idea/ +cmake-build-*/ + +# Results for the checking of the Python coding style and static analysis +.mypy_cache +flake8_output.txt + +# ESP-IDF default build directory name +build +build_esp*/ +build_linux*/ +size_info.txt + +# lock files for examples and components +dependencies.lock + +# managed_components for examples +managed_components + +# pytest log +pytest_embedded_log/ +pytest_log/ +.pytest_cache/ +XUNIT_RESULT.xml + diff --git a/esp-crab/slave_send/CMakeLists.txt b/esp-crab/slave_send/CMakeLists.txt new file mode 100644 index 0000000..c9c57fd --- /dev/null +++ b/esp-crab/slave_send/CMakeLists.txt @@ -0,0 +1,13 @@ + +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctlycmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/esp-crab/slave_send/main/CMakeLists.txt b/esp-crab/slave_send/main/CMakeLists.txt new file mode 100644 index 0000000..a941e22 --- /dev/null +++ b/esp-crab/slave_send/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRC_DIRS "." + INCLUDE_DIRS ".") diff --git a/esp-crab/slave_send/main/app_main.c b/esp-crab/slave_send/main/app_main.c new file mode 100644 index 0000000..c661c58 --- /dev/null +++ b/esp-crab/slave_send/main/app_main.c @@ -0,0 +1,120 @@ +/* Esp-crab Example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include +#include "nvs_flash.h" +#include "esp_mac.h" +#include "esp_log.h" +#include "esp_wifi.h" +#include "esp_netif.h" +#include "esp_now.h" + +#define CONFIG_LESS_INTERFERENCE_CHANNEL 40 +#define CONFIG_WIFI_BAND_MODE WIFI_BAND_MODE_5G_ONLY +#define CONFIG_WIFI_2G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_5G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_2G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_WIFI_5G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_ESP_NOW_PHYMODE WIFI_PHY_MODE_HT40 +#define CONFIG_SEND_FREQUENCY 40 + +static const uint8_t CONFIG_CSI_SEND_MAC[] = {0x1a, 0x00, 0x00, 0x00, 0x00, 0x00}; +static const char *TAG = "csi_send"; + +static void wifi_init() +{ + ESP_ERROR_CHECK(esp_event_loop_create_default()); + + ESP_ERROR_CHECK(esp_netif_init()); + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(esp_wifi_init(&cfg)); + + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); + + ESP_ERROR_CHECK(esp_wifi_start()); + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + .ghz_5g = CONFIG_WIFI_5G_PROTOCOL + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + .ghz_5g = CONFIG_WIFI_5G_BANDWIDTHS + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); + + ESP_ERROR_CHECK(esp_wifi_start()); + ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_NONE)); + + + if ((CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) || (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_5G_ONLY && CONFIG_WIFI_5G_BANDWIDTHS == WIFI_BW_HT20)) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } + else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } + + ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_STA, CONFIG_CSI_SEND_MAC)); +} + +static void wifi_esp_now_init(esp_now_peer_info_t peer) +{ + ESP_ERROR_CHECK(esp_now_init()); + ESP_ERROR_CHECK(esp_now_set_pmk((uint8_t *)"pmk1234567890123")); + esp_now_rate_config_t rate_config = { + .phymode = CONFIG_ESP_NOW_PHYMODE, + .rate = WIFI_PHY_RATE_MCS0_LGI, + .ersu = false, + .dcm = false + }; + ESP_ERROR_CHECK(esp_now_add_peer(&peer)); + ESP_ERROR_CHECK(esp_now_set_peer_rate_config(peer.peer_addr,&rate_config)); + +} + +void app_main() +{ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + wifi_init(); + + /** + * @breif Initialize ESP-NOW + * ESP-NOW protocol see: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html + */ + esp_now_peer_info_t peer = { + .channel = CONFIG_LESS_INTERFERENCE_CHANNEL, + .ifidx = WIFI_IF_STA, + .encrypt = false, + .peer_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + }; + wifi_esp_now_init(peer); + + ESP_LOGI(TAG, "================ CSI SEND ================"); + ESP_LOGI(TAG, "wifi_channel: %d, send_frequency: %d, mac: " MACSTR, + CONFIG_LESS_INTERFERENCE_CHANNEL, CONFIG_SEND_FREQUENCY, MAC2STR(CONFIG_CSI_SEND_MAC)); + + for (uint32_t count = 0; ;++count) { + esp_err_t ret = esp_now_send(peer.peer_addr, (const uint8_t *)&count, sizeof(count)); + ESP_LOGI(TAG,"count:%ld",count); + if(ret != ESP_OK) { + ESP_LOGW(TAG, "free_heap: %ld <%s> ESP-NOW send error",esp_get_free_heap_size(), esp_err_to_name(ret)); + } + + usleep(1000 * 1000 / CONFIG_SEND_FREQUENCY); + } +} diff --git a/esp-crab/slave_send/main/idf_component.yml b/esp-crab/slave_send/main/idf_component.yml new file mode 100644 index 0000000..c755891 --- /dev/null +++ b/esp-crab/slave_send/main/idf_component.yml @@ -0,0 +1,3 @@ +## IDF Component Manager Manifest File +dependencies: + idf: ">=4.4.1" diff --git a/esp-crab/slave_send/sdkconfig.defaults b/esp-crab/slave_send/sdkconfig.defaults new file mode 100644 index 0000000..a2df59e --- /dev/null +++ b/esp-crab/slave_send/sdkconfig.defaults @@ -0,0 +1,8 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32c5" +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=128 +CONFIG_ESP_WIFI_CSI_ENABLED=y +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n +CONFIG_FREERTOS_HZ=1000 diff --git a/esp-radar/connect_rainmaker/CMakeLists.txt b/esp-radar/connect_rainmaker/CMakeLists.txt new file mode 100644 index 0000000..d4da470 --- /dev/null +++ b/esp-radar/connect_rainmaker/CMakeLists.txt @@ -0,0 +1,11 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/esp-radar/connect_rainmaker/README.md b/esp-radar/connect_rainmaker/README.md new file mode 100644 index 0000000..67c0024 --- /dev/null +++ b/esp-radar/connect_rainmaker/README.md @@ -0,0 +1,79 @@ +# Adding Wi-Fi CSI Functionality in ESP RainMaker [[中文]](./README_cn.md) + +## Build and Flashing Instructions +Follow the ESP RainMaker documentation [Getting Started](https://rainmaker.espressif.com/docs/get-started.html) section to build and flash the firmware. + +## How to Use This Example + +### Parameter Description +- **someone_status**: false - no one, true - someone +- **someone_timeout**: If someone moves within this time in the room, it will be marked as someone present. Time is in seconds. +- **move_status**: false - no movement, true - movement +- **move_count**: Number of times movement is detected between the last ESP RainMaker report. +- **move_threshold**: Threshold value to determine if there is movement. +- **filter_window**: Size of the buffer queue for Wi-Fi CSI waveform jitter values, used for filtering outliers. +- **filter_count**: If the jitter value of the Wi-Fi CSI waveform exceeds the `move_threshold` for `filter_count` times within the buffer queue, it is marked as movement detected. +- **threshold_calibrate**: Enable threshold auto-calibration. +- **threshold_calibrate_timeout**: Auto-calibration timeout, in seconds. + +### App Version +- ESP RainMaker App: [v2.11.1](https://m.apkpure.com/p/com.espressif.rainmaker)+ +> Note: `ESP RainMaker` App version before 2.11.1 does not support `time series` function, `move_count` cannot be displayed normally + +### App Operation +1. Open the RainMaker App. +2. Click on `+` to add a device. +3. Wait for the device to connect to the cloud. +4. Enable `threshold_calibrate` to perform auto-calibration. Ensure there is no one or no movement in the room during calibration. +5. After calibration, the threshold value for movement detection will be displayed in `move_threshold`, and `move_status` will become true when movement is detected. + +### Device +- [x] ESP32-S3-DevKitC-1 +- [x] ESP32-C3-DevKitC + +### Device Operation +1. **Factory Reset**: Press and hold the `BOOT` button for more than 5 seconds to reset the development board to factory defaults. + +## Device Status +- Human Movement Detection + - Green LED indicates movement detected in the room. + - White LED indicates no movement detected in the room. + +- Human Presence Detection + > The current algorithm for human presence detection is not ideal. Therefore, the presence of someone is determined by whether there has been any movement within 1 minute. If there is movement, it is considered someone is present; otherwise, it is considered no one is present. + - LED lights up when there is someone in the room. + - LED turns off when there is no one in the room. + +- Human Movement Detection Threshold + > - The threshold for human movement detection can be set via the mobile app or obtained through auto-calibration. If not set, the default value will be used. + > - During calibration, ensure there is no one or no movement in the room. After calibration, the detection sensitivity will be increased. However, if there is movement in the room, it may result in false detection. Therefore, it is recommended to perform calibration when there is no one in the room. + > - The calibrated threshold will be saved in NVS and will be used after the next reboot. + - During human movement threshold calibration, the LED will flash yellow. + +## Common Issues + +### RainMaker Reporting Failure +------ +- **Issue**: The device-side logs show the following error: + ```shell + E (399431) esp_rmaker_mqtt: Out of MQTT Budget. Dropping publish message. + ``` + +- **Cause**: The amount of data being reported by the device exceeds the limit of `ESP RainMaker`. + +------ +- **Issue**: Continuous movement detection without actual movement or the device does not detect any movement. + +- **Solution**: + 1. Incorrect human movement detection threshold leading to false recognition. + - The default Wi-Fi CSI human movement detection threshold may not meet the actual requirements. Adjust it according to the actual situation or enable auto-calibration through the mobile app. + - The default outlier filtering window size for Wi-Fi CSI may not meet the actual requirements. Adjust it according to the actual situation through the mobile app. + + 2. Unstable network causing inaccurate detection. + - Check if it works properly after replacing the router. + - Try placing the router in a more suitable location. + + 3. The above methods still cannot solve the problem, modify the LOG level and submit [issue](https://github.com/espressif/esp-csi/issues) on github + ```c + esp_log_level_set("esp_radar", ESP_LOG_DEBUG); + ``` \ No newline at end of file diff --git a/esp-radar/connect_rainmaker/README_cn.md b/esp-radar/connect_rainmaker/README_cn.md new file mode 100644 index 0000000..6fdee2b --- /dev/null +++ b/esp-radar/connect_rainmaker/README_cn.md @@ -0,0 +1,78 @@ +# ESP RainMaker 中添加 Wi-Fi CSI 功能 [[English]](./README.md) + +## 编译下载 +按照 ESP RainMaker 文档 [入门](https://rainmaker.espressif.com/docs/get-started.html) 部分构建和烧录固件 + +## 如何使用这个例子 +### 参数说明 +- **someone_status**: false - 无人, true - 有人 +- **someone_timeout**: 房间内在此时间内有人移动则标识为有人,单位为秒 +- **move_status**: false - 无人移动, true - 有人移动 +- **move_count**: 与上一次上报 `ESP RainMaker` 之间检测到的有人移动的次数 +- **move_threshold**: 用于判断是否有人在移动的阈值 +- **filter_window**: `Wi-Fi CSI` 的波形的抖动值的缓冲队列的大小,用于过滤异常值 +- **filter_count**: 在波形的抖动值的缓冲队列内,当检测到 `filter_count` 次,`Wi-Fi CSI` 的波形的抖动值大于 `move_threshold`,标记为有人移动 +- **threshold_calibrate**: 是否使能自校准 +- **threshold_calibrate_timeout**: 自校准超时时间,单位为秒 + +### App 版本 +- ESP RainMaker App: [v2.11.1](https://m.apkpure.com/p/com.espressif.rainmaker)+ +> 注: `ESP RainMaker` App 2.11.1 版本之前的版本不支持 `time series` 功能,`move_count` 无法正常显示 + +### APP 操作 +1. 打开 RainMaker App +2. 点击 `+` 添加设备 +3. 等待设备连接到云端 +4. 点击 `threshold_calibrate` 使能自校准,校准时需要保证房间内无人或人不移动 +5. 校准完成后,有人移动的阈值会显示在 `move_threshold` 中,此时检测到有人移动 move_status 会变为 true + +### 设备 +- [x] ESP32-S3-DevKitC-1 +- [x] ESP32-C3-DevKitC + +### 设备操作 +1. **恢复出厂设置**:按住 `BOOT` 按钮 5 秒以上可将开发板重置为出厂默认设置 + +## 设备状态 +- 人体移动检测 + - 房间内有人移动: LED 亮绿灯 + - 房间内无人移动: LED 亮白灯 + +- 人体存在检测 + > 当前算法人体存在检测效果不理想,因此判断是否有人移动的依据是:1 分钟内是否有人移动,如果有人移动则认为有人存在,否则认为无人存在 + - 房间内有人: LED 亮起 + - 房间内无人: LED 熄灭 + +- 人体移动检测阈值 + > - 人体移动检测阈值可以通过手机 App 设置也可以通过自校准获取,如果没有设置则使用默认值 + > - 校准时需要保证房间内无人或人不移动,校准后检测灵敏度会提高,但是如果房间内有人移动则会导致误检测,因此建议在房间内无人时进行校准 + > - 校准后将会保存在 NVS 中,下次重启后会使用保存的阈值 + - 进行人体移动阈值校准时,LED 黄色闪烁 + +## 常见问题 + +### RainMaker 上报失败 + +------ +- **问题**: 设备端日志上打印如下错误 + ```shell + E (399431) esp_rmaker_mqtt: Out of MQTT Budget. Dropping publish message. + ``` +- **原因**: 设备端上报的数据量超过了 `ESP RainMaker` 的限制 + +------ +- **问题**: 一直检测到有人移动但是实际上没有人移动,或者设备端一直检测不到人移动 + +- **解决方式**: + 1. 人体移动检测阈值不对导致误识别 + - Wi-Fi CSI 默认人体移动检测阈值无法满足实际需求,需要根据实际情况调整或使能自校准,可以通过手机 App 设置 + - Wi-Fi CSI 默认的离群点过滤窗口大小无法满足实际需求,需要根据实际情况调整,可以通过手机 App 设置 + + 2. 网络不稳定导致检测不准确 + - 更换路由器后是否能正常工作 + - 是否可以尝试将路由器放置在更合适的位置 + + 3. 以上方式仍旧无法解决,修改 LOG 等级,在 github 上提交 [issue](https://github.com/espressif/esp-csi/issues) + ```c + esp_log_level_set("esp_radar", ESP_LOG_DEBUG); + ``` diff --git a/esp-radar/connect_rainmaker/main/CMakeLists.txt b/esp-radar/connect_rainmaker/main/CMakeLists.txt new file mode 100644 index 0000000..cfc5701 --- /dev/null +++ b/esp-radar/connect_rainmaker/main/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRC_DIRS "." + INCLUDE_DIRS ".") +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format") diff --git a/esp-radar/connect_rainmaker/main/app_main.c b/esp-radar/connect_rainmaker/main/app_main.c new file mode 100644 index 0000000..5c1bbe2 --- /dev/null +++ b/esp-radar/connect_rainmaker/main/app_main.c @@ -0,0 +1,481 @@ +/* + * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include "freertos/timers.h" + +#include +#include + +#include "ping/ping_sock.h" +#include "lwip/inet.h" +#include "lwip/netdb.h" +#include "lwip/sockets.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include "led_strip.h" +#include + +#include "esp_radar.h" +#include "esp_ping.h" + +#if CONFIG_IDF_TARGET_ESP32C5 +#define WS2812_GPIO 27 +#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 +#define WS2812_GPIO 8 +#elif CONFIG_IDF_TARGET_ESP32S3 +#define WS2812_GPIO 38 +#elif CONFIG_IDF_TARGET_ESP32S2 +#define WS2812_GPIO 18 +#elif CONFIG_IDF_TARGET_ESP32C3 +#define WS2812_GPIO 8 +#endif + +#ifdef CONFIG_IDF_TARGET_ESP32C3 +#define BUTTON_GPIO GPIO_NUM_8 +#else +#define BUTTON_GPIO GPIO_NUM_0 +#endif + +#define BUTTON_WIFI_RESET_TIMEOUT 3 +#define BUTTON_FACTORY_RESET_TIMEOUT 5 +#define AUTO_CALIBRATE_RAPORT_INTERVAL 5 + +#define RADAR_PING_DATA_INTERVAL 10 +#define RADAR_DETECT_BUFF_MAX_SIZE 16 +#define RADAR_PARAM_SOMEONE_STATUS "someone_status" +#define RADAR_PARAM_SOMEONE_TIMEOUT "someone_timeout" +#define RADAR_PARAM_MOVE_STATUS "move_status" +#define RADAR_PARAM_MOVE_COUNT "move_count" +#define RADAR_PARAM_MOVE_THRESHOLD "move_threshold" +#define RADAR_PARAM_FILTER_WINDOW "filter_window" +#define RADAR_PARAM_FILTER_COUNT "filter_count" +#define RADAR_PARAM_THRESHOLD_CALIBRATE "threshold_calibrate" +#define RADAR_PARAM_THRESHOLD_CALIBRATE_TIMEOUT "threshold_calibrate_timeout" +static led_strip_handle_t led_strip; +typedef struct { + bool threshold_calibrate; /**< Self-calibration acquisition, the most suitable threshold, calibration is to ensure that no one is in the room */ + uint8_t threshold_calibrate_timeout; /**< Calibration timeout, the unit is second */ + float someone_timeout; /**< The unit is second, how long no one moves in the room is marked as no one */ + float move_threshold; /**< Use to determine whether someone is moving */ + uint8_t filter_window; /**< window without filtering outliers */ + uint8_t filter_count; /**< Detect multiple times within the outlier window greater than move_threshold to mark as someone moving */ +} radar_detect_config_t; + +static const char *TAG = "app_main"; +static float g_someone_threshold = 0.002; +static nvs_handle_t g_nvs_handle = 0; +static int32_t g_auto_calibrate_timerleft = 0; +static TimerHandle_t g_auto_calibrate_timerhandle = NULL; +static esp_rmaker_device_t *radar_device = NULL; +static radar_detect_config_t g_detect_config = { + .someone_timeout = 3 * 60, + .move_threshold = 0.002, + .filter_window = 5, + .filter_count = 2, + .threshold_calibrate_timeout = 60, +}; + +static esp_err_t ping_router_start(uint32_t interval_ms) +{ + static esp_ping_handle_t ping_handle = NULL; + esp_ping_config_t config = ESP_PING_DEFAULT_CONFIG(); + config.count = 0; + config.timeout_ms = 1000; + config.data_size = 1; + config.interval_ms = interval_ms; + + /** + * @brief Get the Router IP information from the esp-netif + */ + esp_netif_ip_info_t local_ip; + esp_netif_get_ip_info(esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"), &local_ip); + ESP_LOGI(TAG, "Ping: got ip:" IPSTR ", gw: " IPSTR, IP2STR(&local_ip.ip), IP2STR(&local_ip.gw)); + config.target_addr.u_addr.ip4.addr = ip4_addr_get_u32(&local_ip.gw); + config.target_addr.type = ESP_IPADDR_TYPE_V4; + +// esp_ping_get_target(PING_TARGET_IP_ADDRESS, &config.target_addr, sizeof(ip_addr_t)); + esp_ping_callbacks_t cbs = { 0 }; + esp_ping_new_session(&config, &cbs, &ping_handle); + esp_ping_start(ping_handle); + + return ESP_OK; +} + +static void radar_cb(void *ctx, const wifi_radar_info_t *info) +{ + bool someone_status = false; + bool move_status = false; + + /** + * @brief Filtering outliers is more accurate using detection, + * but it takes more time, lower sensitive to the environment + * + * @note Current algorithm limitations: + * 1. Calibration is required to detect whether there are people in the room; + * 2. No calibration is required to detect movement, but the sensitivity is higher after calibration + */ + static uint32_t s_buff_count = 0; + static float s_buff_jitter[RADAR_DETECT_BUFF_MAX_SIZE] = {0}; + uint32_t buff_max_size = g_detect_config.filter_window; + uint32_t buff_outliers_num = g_detect_config.filter_count; + + s_buff_jitter[s_buff_count % buff_max_size] = info->waveform_jitter; + + if (++s_buff_count < buff_max_size) { + return; + } + + for (int i = 0, move_count = 0; i < buff_max_size; i++) { + if (s_buff_jitter[i] > g_detect_config.move_threshold) { + move_count++; + } + + if (move_count >= buff_outliers_num) { + move_status = true; + } + } + + someone_status = (info->waveform_jitter > g_someone_threshold) ? true : false; + static uint32_t s_count = 0; + + if (!s_count++) { + ESP_LOGI(TAG, "================ RADAR RECV ================"); + ESP_LOGI(TAG, "type,sequence,timestamp,waveform_wander,someone_threshold,someone_status,waveform_jitter,move_threshold,move_status\n"); + } + + ESP_LOGI("RADAR_DADA", "RADAR_DADA,%d,%u,%.6f,%.6f,%d,%.6f,%.6f,%d", + s_count, esp_log_timestamp(), + info->waveform_wander, g_someone_threshold, someone_status, + info->waveform_jitter, g_detect_config.move_threshold, move_status); + + /* Calibrate the environment, LED will flash yellow */ + if (g_detect_config.threshold_calibrate) { + static bool led_status = false; + + if (led_status) { + led_strip_set_pixel(led_strip, 0, 0, 0); + } else { + led_strip_set_pixel(led_strip, 0, 255, 255, 0); + } + led_strip_refresh(led_strip); + led_status = !led_status; + return; + } + + /** + * @brief Use LED and LOG to display the detection results + * 1. Someone moves in the room, LED will flash green + * 2. No one moves in the room, LED will flash white + * 3. No one in the room, LED will turn off + */ + static uint32_t s_last_move_time = 0; + static bool s_last_move_status = false; + + if (esp_log_timestamp() - s_last_move_time < g_detect_config.someone_timeout * 1000) { + someone_status = true; + } else { + someone_status = false; + } + + if (move_status) { + if (move_status != s_last_move_status) { + led_strip_set_pixel(led_strip, 0, 0, 255, 0); + ESP_LOGI(TAG, "someone moves in the room"); + } + + s_last_move_time = esp_log_timestamp(); + } else if (move_status != s_last_move_status) { + ESP_LOGI(TAG, "No one moves in the room"); + } else if (esp_log_timestamp() - s_last_move_time > 3 * 1000) { + if (someone_status) { + led_strip_set_pixel(led_strip, 0, 255, 255, 255); + } else { + led_strip_set_pixel(led_strip, 0, 0, 0, 0); + } + } + led_strip_refresh(led_strip); + s_last_move_status = move_status; + + /** + * @brief Report the room status to the cloud every 10 seconds or when the room status changes + */ + if (!esp_rmaker_time_check()) { + return; + } + + static bool s_report_someone_status = false; + static bool s_report_move_status = false; + static uint32_t s_report_move_count = 0; + static uint32_t s_report_move_timestamp = 0; + s_report_move_count = move_status ? s_report_move_count + 1 : s_report_move_count; + + if (s_report_someone_status != someone_status && !someone_status) { + esp_rmaker_param_t *someone_status_param = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_SOMEONE_STATUS); + esp_rmaker_param_update_and_report(someone_status_param, esp_rmaker_bool(someone_status)); + s_report_someone_status = someone_status; + } + + if (move_status != s_report_move_status + /* Reduce the number of times to report data and reduce server pressure */ + || (move_status && esp_log_timestamp() - s_report_move_timestamp > 10 * 1000)) { + esp_rmaker_param_t *someone_status_param = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_SOMEONE_STATUS); + esp_rmaker_param_update(someone_status_param, esp_rmaker_bool(someone_status)); + esp_rmaker_param_t *move_status_param = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_MOVE_STATUS); + esp_rmaker_param_update(move_status_param, esp_rmaker_bool(move_status | (s_report_move_count > 0))); + esp_rmaker_param_t *move_count_param = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_MOVE_COUNT); + esp_rmaker_param_update_and_report(move_count_param, esp_rmaker_int(s_report_move_count)); + + if (!s_report_move_status || !s_report_move_count) { + s_report_move_status = move_status; + } + + s_report_move_count = 0; + s_report_move_timestamp = esp_log_timestamp(); + } +} + +static esp_err_t radar_start() +{ + esp_radar_config_t radar_config = ESP_RADAR_CONFIG_DEFAULT(); +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 + // radar_config.csi_config.acquire_csi_lltf = true; + // radar_config.csi_config.htltf_en = true; +#else + // radar_config.csi_config.lltf_en = true; + // radar_config.csi_config.htltf_en = true; + +#endif + radar_config.dec_config.wifi_radar_cb = radar_cb; + + wifi_ap_record_t ap_info = {0x0}; + esp_wifi_sta_get_ap_info(&ap_info); + memcpy(radar_config.csi_config.filter_mac, ap_info.bssid, sizeof(ap_info.bssid)); + ESP_ERROR_CHECK(esp_radar_csi_init(&radar_config.csi_config)); + ESP_ERROR_CHECK(esp_radar_dec_init(&radar_config.dec_config)); + + esp_radar_start(); + + return ESP_OK; +} + +static void auto_calibrate_timercb(TimerHandle_t timer) +{ + g_auto_calibrate_timerleft -= AUTO_CALIBRATE_RAPORT_INTERVAL; + + if (g_auto_calibrate_timerleft < AUTO_CALIBRATE_RAPORT_INTERVAL) { + g_auto_calibrate_timerleft = g_detect_config.threshold_calibrate_timeout; + g_detect_config.threshold_calibrate = false; + xTimerStop(g_auto_calibrate_timerhandle, portMAX_DELAY); + + esp_radar_train_stop(&g_someone_threshold, &g_detect_config.move_threshold); + esp_rmaker_param_t *move_threshold_param = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_MOVE_THRESHOLD); + esp_rmaker_param_update(move_threshold_param, esp_rmaker_float(g_detect_config.move_threshold)); + + nvs_set_blob(g_nvs_handle, "detect_config", &g_detect_config, sizeof(radar_detect_config_t)); + nvs_commit(g_nvs_handle); + } + + esp_rmaker_param_t *param_threshold_calibrate = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_THRESHOLD_CALIBRATE); + esp_rmaker_param_update(param_threshold_calibrate, esp_rmaker_bool(g_detect_config.threshold_calibrate)); + esp_rmaker_param_t *param_threshold_calibrate_timeout = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_THRESHOLD_CALIBRATE_TIMEOUT); + esp_rmaker_param_update_and_report(param_threshold_calibrate_timeout, esp_rmaker_int(g_auto_calibrate_timerleft)); +} + +/* Callback to handle commands received from the RainMaker cloud */ +static esp_err_t write_cb(const esp_rmaker_device_t *device, const esp_rmaker_param_t *param, + const esp_rmaker_param_val_t val, void *priv_data, esp_rmaker_write_ctx_t *ctx) +{ + const char *param_name = esp_rmaker_param_get_name(param); + + if (strcmp(param_name, RADAR_PARAM_SOMEONE_TIMEOUT) == 0) { + g_detect_config.someone_timeout = val.val.i; + } else if (strcmp(param_name, RADAR_PARAM_MOVE_THRESHOLD) == 0) { + g_detect_config.move_threshold = val.val.f; + } else if (strcmp(param_name, RADAR_PARAM_FILTER_WINDOW) == 0) { + g_detect_config.filter_window = val.val.i; + } else if (strcmp(param_name, RADAR_PARAM_FILTER_COUNT) == 0) { + g_detect_config.filter_count = val.val.i; + } else if (strcmp(param_name, RADAR_PARAM_THRESHOLD_CALIBRATE) == 0) { + g_detect_config.threshold_calibrate = val.val.b; + + if (!g_auto_calibrate_timerhandle) { + g_auto_calibrate_timerhandle = xTimerCreate("auto_calibrate", pdMS_TO_TICKS(AUTO_CALIBRATE_RAPORT_INTERVAL * 1000), + true, NULL, auto_calibrate_timercb); + } + + if (g_detect_config.threshold_calibrate) { + g_auto_calibrate_timerleft = g_detect_config.threshold_calibrate_timeout; + xTimerStart(g_auto_calibrate_timerhandle, portMAX_DELAY); + esp_radar_train_start(); + } else { + g_auto_calibrate_timerleft = 0; + auto_calibrate_timercb(NULL); + } + } else if (strcmp(param_name, RADAR_PARAM_THRESHOLD_CALIBRATE_TIMEOUT) == 0) { + g_detect_config.threshold_calibrate_timeout = val.val.i; + } else { + ESP_LOGE(TAG, "Unhandled parameter '%s'", param_name); + /* Silently ignoring invalid params */ + return ESP_OK; + } + + esp_rmaker_param_update_and_report(param, val); + nvs_set_blob(g_nvs_handle, "detect_config", &g_detect_config, sizeof(radar_detect_config_t)); + nvs_commit(g_nvs_handle); + return ESP_OK; +} +esp_err_t ws2812_led_init(void) +{ + led_strip_config_t strip_config = { + .strip_gpio_num = WS2812_GPIO, + .max_leds = 1, + }; + + led_strip_rmt_config_t rmt_config = { + .clk_src = RMT_CLK_SRC_DEFAULT, // different clock source can lead to different power consumption + .resolution_hz = 10 * 1000 * 1000, // RMT counter clock frequency: 10MHz + .flags = { + .with_dma = false, // DMA feature is available on chips like ESP32-S3/P4 + } + }; + ESP_ERROR_CHECK(led_strip_new_rmt_device(&strip_config, &rmt_config, &led_strip)); + /* Set all LED off to clear all pixels */ + led_strip_clear(led_strip); + return ESP_OK; +} +void app_main() +{ + /* Initialize Application specific hardware drivers and set initial state */ + ws2812_led_init(); + button_handle_t btn_handle = iot_button_create(BUTTON_GPIO, BUTTON_ACTIVE_LOW); + app_reset_button_register(btn_handle, BUTTON_WIFI_RESET_TIMEOUT, BUTTON_FACTORY_RESET_TIMEOUT); + + /* Initialize NVS. */ + esp_err_t err = nvs_flash_init(); + if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + err = nvs_flash_init(); + } + ESP_ERROR_CHECK(err); + nvs_open("wifi_radar", NVS_READWRITE, &g_nvs_handle); + size_t detect_config_size = sizeof(radar_detect_config_t); + nvs_get_blob(g_nvs_handle, "detect_config", &g_detect_config, &detect_config_size); + + /* Reduced output log */ + // esp_log_level_set("esp_radar", ESP_LOG_WARN); + esp_log_level_set("RADAR_DADA", ESP_LOG_WARN); + + /* Initialize Wi-Fi. Note that, this should be called before esp_rmaker_node_init() */ + app_wifi_init(); + + /* Initialize the ESP RainMaker Agent */ + esp_rmaker_config_t rainmaker_cfg = { + .enable_time_sync = true, + }; + esp_rmaker_node_t *node = esp_rmaker_node_init(&rainmaker_cfg, "ESP Wi-Fi CSI Device", "Wi-Fi Radar"); + if (!node) { + ESP_LOGE(TAG, "Could not initialise node. Aborting!!!"); + vTaskDelay(pdMS_TO_TICKS(5000)); + abort(); + } + + /* Create a device and add the relevant parameters to it */ + radar_device = esp_rmaker_device_create("Sensor Light", ESP_RMAKER_DEVICE_LIGHTBULB, NULL); + ESP_ERROR_CHECK(esp_rmaker_device_add_cb(radar_device, write_cb, NULL)); + + typedef struct { + const char *param_name; + uint8_t properties; + const char *ui_type; + esp_rmaker_param_val_t val; + esp_rmaker_param_val_t min; + esp_rmaker_param_val_t max; + esp_rmaker_param_val_t step; + } radar_param_t; + esp_rmaker_param_val_t invalid_val = {.type = RMAKER_VAL_TYPE_INVALID}; + radar_param_t radar_param_list[] = { + {RADAR_PARAM_THRESHOLD_CALIBRATE, PROP_FLAG_READ | PROP_FLAG_WRITE, ESP_RMAKER_UI_TOGGLE, esp_rmaker_bool(g_detect_config.threshold_calibrate), invalid_val, invalid_val, invalid_val}, + {RADAR_PARAM_THRESHOLD_CALIBRATE_TIMEOUT, PROP_FLAG_READ | PROP_FLAG_WRITE, ESP_RMAKER_UI_TEXT, esp_rmaker_int(g_detect_config.threshold_calibrate_timeout), esp_rmaker_int(10), esp_rmaker_int(3600), esp_rmaker_int(10)}, + {RADAR_PARAM_MOVE_THRESHOLD, PROP_FLAG_READ | PROP_FLAG_WRITE, ESP_RMAKER_UI_TEXT, esp_rmaker_float(g_detect_config.move_threshold), esp_rmaker_float(0.01), esp_rmaker_float(0.1), esp_rmaker_float(0.01)}, + {RADAR_PARAM_MOVE_STATUS, PROP_FLAG_READ, ESP_RMAKER_UI_TEXT, esp_rmaker_bool(false), invalid_val, invalid_val, invalid_val}, + {RADAR_PARAM_MOVE_COUNT, PROP_FLAG_READ | PROP_FLAG_TIME_SERIES, ESP_RMAKER_UI_TEXT, esp_rmaker_int(0), esp_rmaker_int(0), esp_rmaker_int(100), esp_rmaker_int(1)}, + {RADAR_PARAM_SOMEONE_STATUS, PROP_FLAG_READ, ESP_RMAKER_UI_TEXT, esp_rmaker_bool(false), invalid_val, invalid_val, invalid_val}, + {RADAR_PARAM_SOMEONE_TIMEOUT, PROP_FLAG_READ | PROP_FLAG_WRITE, ESP_RMAKER_UI_TEXT, esp_rmaker_int(g_detect_config.someone_timeout), esp_rmaker_int(10), esp_rmaker_int(3600), esp_rmaker_int(10)}, + {RADAR_PARAM_FILTER_WINDOW, PROP_FLAG_READ | PROP_FLAG_WRITE, ESP_RMAKER_UI_TEXT, esp_rmaker_int(g_detect_config.filter_window), esp_rmaker_int(1), esp_rmaker_int(16), esp_rmaker_int(1)}, + {RADAR_PARAM_FILTER_COUNT, PROP_FLAG_READ | PROP_FLAG_WRITE, ESP_RMAKER_UI_TEXT, esp_rmaker_int(g_detect_config.filter_count), esp_rmaker_int(1), esp_rmaker_int(16), esp_rmaker_int(1)}, + }; + + for (int i = 0; i < sizeof(radar_param_list) / sizeof(radar_param_list[0]); ++i) { + char radar_param_type[64] = "esp.param."; + strcat(radar_param_type, radar_param_list[i].param_name); + esp_rmaker_param_t *param = esp_rmaker_param_create(radar_param_list[i].param_name, radar_param_type, + radar_param_list[i].val, radar_param_list[i].properties); + + if (radar_param_list[i].ui_type) { + esp_rmaker_param_add_ui_type(param, radar_param_list[i].ui_type); + } + + if (radar_param_list[i].min.type != RMAKER_VAL_TYPE_INVALID) { + esp_rmaker_param_add_bounds(param, radar_param_list[i].min, radar_param_list[i].max, radar_param_list[i].step); + } + + ESP_ERROR_CHECK(esp_rmaker_device_add_param(radar_device, param)); + } + + esp_rmaker_param_t *move_count_param = esp_rmaker_device_get_param_by_name(radar_device, RADAR_PARAM_MOVE_COUNT); + esp_rmaker_device_assign_primary_param(radar_device, move_count_param); + ESP_ERROR_CHECK(esp_rmaker_node_add_device(node, radar_device)); + + /* Enable OTA */ + ESP_ERROR_CHECK(esp_rmaker_ota_enable_default()); + + /* Enable timezone service which will be require for setting appropriate timezone + * from the phone apps for scheduling to work correctly. + * For more information on the various ways of setting timezone, please check + * https://rainmaker.espressif.com/docs/time-service.html. + */ + esp_rmaker_timezone_service_enable(); + + /* Enable scheduling. */ + esp_rmaker_schedule_enable(); + + /* Enable Scenes */ + esp_rmaker_scenes_enable(); + + /* Start the ESP RainMaker Agent */ + esp_rmaker_start(); + + /* Start the Wi-Fi./ + * If the node is provisioned, it will start connection attempts, + * else, it will start Wi-Fi provisioning. The function will return + * after a connection has been successfully established + */ + err = app_wifi_start(POP_TYPE_NONE); + if (err != ESP_OK) { + ESP_LOGE(TAG, "Could not start Wifi. Aborting!!!"); + vTaskDelay(pdMS_TO_TICKS(5000)); + abort(); + } + + /** + * @brief Enable Wi-Fi Radar Detection + */ + radar_start(); + ping_router_start(RADAR_PING_DATA_INTERVAL); +} diff --git a/esp-radar/connect_rainmaker/main/idf_component.yml b/esp-radar/connect_rainmaker/main/idf_component.yml new file mode 100644 index 0000000..d86b52c --- /dev/null +++ b/esp-radar/connect_rainmaker/main/idf_component.yml @@ -0,0 +1,32 @@ +## IDF Component Manager Manifest File +dependencies: + idf: '>=4.4.1' + + esp-radar:">=0.3.0" + + espressif/rmaker_common: 1.4.* + espressif/json_generator: ^1 + espressif/json_parser: =1.0.0 + espressif/esp_rainmaker: + path: components/esp_rainmaker + git: https://github.com/espressif/esp-rainmaker.git + version: ff0dd329020a52ae8cf2fb4f6800d9f8e9cc9eeb + espressif/led_strip: "^2.5.3" + espressif/qrcode: + path: components/qrcode + git: https://github.com/espressif/esp-rainmaker.git + version: ff0dd329020a52ae8cf2fb4f6800d9f8e9cc9eeb + espressif/gpio_button: + path: components/gpio_button + git: https://github.com/espressif/esp-rainmaker.git + version: ff0dd329020a52ae8cf2fb4f6800d9f8e9cc9eeb + espressif/app_wifi: + path: examples/common/app_wifi + git: https://github.com/espressif/esp-rainmaker.git + version: ff0dd329020a52ae8cf2fb4f6800d9f8e9cc9eeb + espressif/app_reset: + path: examples/common/app_reset + git: https://github.com/espressif/esp-rainmaker.git + version: ff0dd329020a52ae8cf2fb4f6800d9f8e9cc9eeb + espressif/esp_schedule: + version: ^1.2.0 diff --git a/esp-radar/connect_rainmaker/partitions.csv b/esp-radar/connect_rainmaker/partitions.csv new file mode 100644 index 0000000..c23e5c2 --- /dev/null +++ b/esp-radar/connect_rainmaker/partitions.csv @@ -0,0 +1,8 @@ +# Note: Firmware partition offset needs to be 64K aligned, initial 36K (9 sectors) are reserved for bootloader and partition table +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0xd000, 32K, +fctry, data, nvs, 0x15000, 16K, +log_status, data, nvs, 0x19000, 16K, +otadata, data, ota, 0x1d000, 8K, +phy_init, data, phy, 0x1f000, 4K, +ota_0, app, ota_0, 0x20000, 1832K, diff --git a/esp-radar/connect_rainmaker/sdkconfig.defaults b/esp-radar/connect_rainmaker/sdkconfig.defaults new file mode 100644 index 0000000..faf4ee7 --- /dev/null +++ b/esp-radar/connect_rainmaker/sdkconfig.defaults @@ -0,0 +1,19 @@ +CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y +CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_OFFSET=0x9000 +CONFIG_ESP_RMAKER_USER_ID_CHECK=y +CONFIG_ESP_RMAKER_LOCAL_CTRL_ENABLE=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 +CONFIG_ESP_WIFI_CSI_ENABLED=y +# CONFIG_ESP_WIFI_AMPDU_TX_ENABLED is not set +# CONFIG_ESP_WIFI_AMPDU_RX_ENABLED is not set +# CONFIG_ESP_WIFI_IRAM_OPT is not set +CONFIG_FREERTOS_HZ=1000 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=3120 +CONFIG_MBEDTLS_DYNAMIC_BUFFER=y +CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN=y diff --git a/esp-radar/console_test/CMakeLists.txt b/esp-radar/console_test/CMakeLists.txt new file mode 100644 index 0000000..209bba5 --- /dev/null +++ b/esp-radar/console_test/CMakeLists.txt @@ -0,0 +1,13 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/system/console/advanced/components) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/esp-radar/console_test/README.md b/esp-radar/console_test/README.md new file mode 100644 index 0000000..41f4b84 --- /dev/null +++ b/esp-radar/console_test/README.md @@ -0,0 +1,178 @@ +| Supported Targets | ESP32 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | --------- | -------- | -------- | + +# esp-csi console_test [[中文]](./README_cn.md) +---------- +## 1 Introduction +This example provides a test platform for Wi-Fi CSI, which includes functions such as data display, data acquisition and data analysis, which can help you quickly understand Wi-Fi CSI. ++ **Display**:you can quickly understand the impact of different antennas, human movement and equipment placement on Wi-Fi signals by viewing the real-time data such as Wi-Fi RF noise bottom, CSI, RSSI and noise floor of RF. ++ **Acquisition**:All collected Wi-Fi CSIS will be stored in files. You can also mark the data for different motor behaviors for later neural network and machine learning. ++ **Analysis**:It can realize the detection of human movement and whether there are people in the room, and help you quickly the application scenario of Wi-Fi CSI. +## 2 Equipment preparation +### 2.1 Equipment +![equipment](./docs/_static/2.1_equipment.png) +This example provides two working modes of `ESP32 DevKitC development board` and `router` as Wi-Fi CSI contracting equipment. Using `ESP32 DevKitC development board` as contracting equipment has better adjustment effect on contracting rate, RF size and channel. In both modes, `ESP32 DevKitC development board` is used as the receiving device for Wi-Fi CSI. + +### 2.2 Compiler Environment +The esp-idf version of the current project is [ESP-IDF Release v5.0.2](https://github.com/espressif/esp-idf/releases/tag/v5.0.2) +```bash +cd esp-idf +git checkout v5.0.2 +git submodule update --init --recursive +./install.sh +. ./export.sh +``` +> Note: Since esp-idf v5.0.0 or above supports destination address filtering, the effect will be better, so it is recommended to use v5.0.0 or above + +## 3 Starting program +### 3.1 Send Wi-Fi CSI ++ **Use `ESP32 DevKitC` to send CSI**:Burn project `csi_send` to `ESP32 DevKitC development board` + + ```bash + cd esp-csi/examples/get-started/csi_send + idf.py set-target esp32s3 + idf.py flash -b 921600 -p /dev/ttyUSB0 monitor + ``` ++ **Use router to send CSI**:The router is not connected to other intelligent devices to avoid network congestion affecting the test effect. + +### 3.2 Receive Wi-Fi CSI ++ Burn project `console_test` to another `ESP32 DevKitC development board` + ```bash + cd esp-csi/examples/console_test + idf.py set-target esp32s3 + idf.py flash -b 921600 -p /dev/ttyUSB1 + ``` + +### 3.3 Start up `esp-csi-tool`. Open the CSI visualization interface ++ Run `esp_csi_tool.py` in `csi_recv` for data analysis. Please close `idf.py monitor` before running. Please use UART port instead of USB Serial/JTAG port. + ```bash + cd esp-csi/examples/console_test/tools + # Install python related dependencies + pip install -r requirements.txt + # Graphical display + python esp_csi_tool.py -p /dev/ttyUSB1 + ``` ++ After running successfully, the following CSI data visualization interface is opened. The left side of the interface is the data display interface `Raw data`, and the right side is the data model interface `Raw model`:![csi tool](./docs/_static/3.3_csi_tool.png) + +## 4 Interface introduction +The real-time visualization interface consists of two parts: the `Raw data` and the `Radar model`. `Raw data` displays the original CSI sub-carrier data, and `Radar model` uses algorithms to analyze the CSI data. As a result, it can be used for detection of someone/noneone, move/static, by selecting the `Raw data` and `Radar model` buttons in the upper right corner, you can choose to display the two interfaces separately. + +### 4.1 Router connection window +The top left is the configuration router connection information window. Use the device to connect to the router and receive the CSI between the router and the device. + +![connection window](./docs/_static/4.1_connect_windows.png) + ++ **SSID**:router account ++ **password**:router password ++ **auto connect**:If checked, the next time you turn it on, it will automatically connect to the last connected router. ++ **connect / disconnect**:connect/disconnect button ++ **custom**:You can send more control commands such as: restart, version acquisition, or enter custom commands on the device side + +### 4.2 CSI data waveform display window +This window can display the waveform of some channel CSI data in real time. If `wave filtering` is checked, the filtered waveform will be displayed. +![csi_waveform window](./docs/_static/4.2_csi_waveform_windows.png) + +### 4.3 RSSI waveform display window +This window displays the RSSI waveform information, which can be used to compare with the CSI waveform to observe the changes of RSSI when the personnel in the room are in different states. +![RSSI_waveform window](./docs/_static/4.3_rssi_waveform_windows.png) + +### 4.4 log display window +This window displays system logs such as time, memory, etc. +![log window](./docs/_static/4.4_log_windows.png) + +### 4.5 Wi-Fi channel data display window +This window displays Wi-Fi channel status information. +![Wi-Fi_data window](./docs/_static/4.5_wi-fi_data_windows.png) + +### 4.6 Room status display window +This window is used to calibrate the room status threshold and display room status ( someone/noneone, move/static ).![room_state window](./docs/_static/4.6_room_state_windows.png) + ++ **delay**:start calibration delay time, no one is required in the room during calibration, and people can leave the room within the delay time after starting calibration. ++ **duration**:calibration process duration. ++ **add**:if checked, the recalibrated threshold will be accumulated based on the current threshold. ++ **start**:start calibration button. ++ **wander(someone) threshold**:the threshold for judging room presence/absence will be set automatically after calibration, or can be set manually by the user. ++ **jitter(move) threshold**:the threshold for judging the move/static of people will be set automatically after calibration, or it can be set manually by the user. ++ **config**:after the user manually sets the threshold, click the configure button. ++ **display table**:if checked, the room status and people status information table will be displayed on the right side of the waveform box. The specific parameters in the table are as follows. + + |status|threshold|value|max|min|mean|std| + |---|---|---|---|---|---|---| + |room/people status|Judgment threshold|real-time value|maximum value|minimum value|average value|standard deviation| + +### 4.7 People movement data display window +This window displays the specific data of indoor people's movement, the bar graph on the left shows the number of people's movement in real time, and the table on the right records the specific movement time. +![people_movedata window](./docs/_static/4.7_people_movedata_windows.png) + ++ **mode**:observation mode, `minute, hour, day` three modes are to record the number of people's movements per minute, hour, and day. ++ **time**:observation time, the default current time, you can manually set the time to start the observation. ++ **auto update**:if checked, the bar graph of the number of people's movements will be automatically updated and displayed in real time. ++ **update**:after clicking, the bar graph of the number of people's movements will be manually updated and displayed. + +The meaning of each parameter in the table is as follows: +|room|human|spend_time|start_time|stop_time| +|---|---|---|---|---| +|room status|people status|spend time of movement|start time of movement|stop time of movement| + +### 4.8 Action collection window +This window is used to collect CSI data when people perform different actions. The collected data will be stored under the path of `esp-csi/examples/console_test/tools/data`, and the collected data can be used for machine learning or neural network. +![collect window](./docs/_static/4.8_collect_windows.png) + ++ **target**:Select the motor behaviors to collect ++ **delay**:Select the delay time of collection, which is how long to wait after clicking the `start` button ++ **duration**:The duration of collecting an action ++ **number**:Collection times ++ **clean**:Click to clear all collected data ++ **start**:start collecting button + +## 5 Operating procedures +Here, taking connecting the router as an example, the operation flow of the visualization system interface is introduced. +### 5.1 connect router ++ Enter the router account and password in turn in the router connection window ++ (option)check `auto connect` ++ Click `connect` + +After the connection is successful, you will see the router status information in the "log print window", and the "CSI data waveform display window" will display the CSI data waveform. + +### 5.2 Calibration threshold +The purpose of calibration is to let the device know the CSI information when there is no one in the room, and to obtain the threshold of personnel movement. If the current version does not calibrate, only personnel movement detection can be performed. The longer the calibration time, the lower the probability of false touches. +![calibration threshold](./docs/_static/5.2_calibration_threshold.png) + ++ Set the delay time of `delay`, here is 10 seconds for example (i.e. 00:00:10), so that people can leave the room. ++ Set the duration of `duration` calibration, here is 10 seconds as an example. ++ Click `start` and select `yes`, the person leaves the room within 10 seconds (`delay` time), ensure that there is no one in the room within 10 seconds during the calibration period (`duration` calibration duration), and return to the room after the calibration. ++ ( option ) to manually adjust the room status threshold and the person status threshold based on the calibration results. + +### 5.3 Observe room status and people status + +After the calibration is completed, the room status will be displayed in the room status display window, and it will be judged that there is noneone static, someone moves, and someone static three status.![room_and_people state](./docs/_static/5.3_observe_room_and_people_state_en.png) + ++ In `filter outliers`, set how many times the threshold is reached in a row to determine the room/people state, so as to filter outliers. ++ Click `config` to configure. ++ ( option ) In the room status waveform window, click the horizontal line in front of `wander` to hide its waveform, which is convenient for observing other waveforms. Similarly, other waveforms can also be hidden by the following method. ++ ( option ) Check `display table` to view the indoor status and people status information table. + +### 5.4 Observer movement times and the time +In these observation windows, the number of people's movements per minute will be displayed in a histogram according to our settings. The time information of each movement is recorded in the table on the right. +![observe people move_data](./docs/_static/5.4_observe_people_move_data_en.png) + ++ In the `mode` of the people's movement data display window, select the observation mode to view the movement of the people in the room in one minute, one hour or one day. Here, choose `minute` as an example. ++ ( option ) Set the time to start the observation in `time`, the default is the current time start. ++ Check `auto update` to automatically update the test results, if not checked, each time you click `update`, the test results will be updated once. + +### 5.5 Collect CSI data for a specific action +![collect csi_data](./docs/_static/5.5_collect_csi_data_en.png) ++ ( option ) Clear previous acquisition data records in `clean` in the motion acquisition window. ++ In `target`, select the action to be collected, here select `move` as an example. ++ In `delay`, set the delayed acquisition time after clicking to start, here is an example of setting a delay of 5 seconds. ++ In `duration`, set the duration of collecting an action in, here we choose 500 ms as an example. ++ In `number`, set the number of times to be collected, here is 1 collection as an example. ++ Click `start`, the system will start collecting data after the delay time, and the personnel will complete the corresponding action within the set time. + +After the collection is over, it will stop automatically. We can see the data we collected under the path of `esp-csi/examples/esp-radar/console_test/tools/data`. +![save csi_data](./docs/_static/5.5_save_csi_data_en.png) + +### 5.6 Window zoom in and out +![zoom in_and_out window](./docs/_static/5.6_zoom_in_and_out_windows_en.png) ++ By selecting `Raw data` and `Radar model` in the upper right corner of the interface, the `Raw data` interface and `Radar model` interface can be displayed separately. ++ Select the critical line between different windows with the mouse, and drag and drop to zoom in/out of each window. diff --git a/esp-radar/console_test/README_cn.md b/esp-radar/console_test/README_cn.md new file mode 100644 index 0000000..8e22699 --- /dev/null +++ b/esp-radar/console_test/README_cn.md @@ -0,0 +1,180 @@ +| Supported Targets | ESP32 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | --------- | -------- | -------- | + +# esp-csi console_test [[English]](./README.md) +---------- +## 1 简介 +console_test 是一款 Wi-Fi CSI 的测试平台,它包含了对 Wi-Fi CSI 的数据采集、数据显示、数据分析等功能,帮助我们更好的了解和应用 Wi-Fi CSI ++ **显示**:通过查看 Wi-Fi 射频底噪、CSI、RSSI 及射频底噪等实时数据,可以快速了解不同天线、人体运动和设备摆放对 Wi-Fi 信号的影响。 ++ **采集**:所有采集到的 Wi-Fi CSI 将存储在文件中。您还可以采集不同运动行为的数据,以供以后的神经网络和机器学习使用 ++ **分析**:可实现检测人体是否运动及房间内是否有人,帮助您快速了解 Wi-Fi CSI 的应用场景 + +## 2 环境准备 +### 2.1 设备 +![设备](./docs/_static/2.1_equipment.png) +本例提供了 `ESP32 DevKitC 开发板` 和 `路由器` 两种设备模式作为 Wi-Fi CSI 发送设备。 其中使用 `ESP32 DevKitC 开发板` 作为发送设备,对发送频率、射频大小、信道的调整效果更好。两种模式下都用 `ESP32 DevKitC 开发板` 作为 Wi-Fi CSI 的接收设备。 + +### 2.2 编译环境 +使用的 esp-idf 版本为 [ESP-IDF Release v5.0.2](https://github.com/espressif/esp-idf/releases/tag/v5.0.2) +```bash +cd esp-idf +git checkout v5.0.2 +git submodule update --init --recursive +./install.sh +. ./export.sh +``` +> 注: 由于 esp-idf v5.0.0 以上的版本支持目的地址过滤,其效果会更好,因此建议使用 v5.0.0 以上的版本 + +## 3 程序启动 +### 3.1 发送 Wi-Fi CSI ++ ** `ESP32 DevKitC 开发板` 发送 CSI**:烧录工程 `csi_send` 到 `ESP32 DevKitC 开发板` 中 + ```bash + cd esp-csi/examples/get-started/csi_send + idf.py set-target esp32s3 + idf.py flash -b 921600 -p /dev/ttyUSB0 monitor + ``` ++ **路由器 发送 CSI**:此时路由器不连接其他智能设备,避免网络拥塞影响测试效果 + +### 3.2 接收 Wi-Fi CSI ++ 烧录 `console_test` 到另一块 `ESP32 DevKitC 开发板` 开发板中 + ```bash + cd esp-csi/examples/console_test + idf.py set-target esp32s3 + idf.py flash -b 921600 -p /dev/ttyUSB1 + ``` + +### 3.3 启动 `esp-csi-tool` 工具,打开 CSI 实时可视化工具,请使用 UART 口而不是 USB Serial/JTAG 口 ++ 运行 `csi_recv` 中的 `esp_csi_tool.py` 进行数据分析,运行前请关闭 `idf.py` 监控 + ```bash + cd esp-csi/examples/console_test/tools + # Install python related dependencies + pip install -r requirements.txt + # Graphical display + python esp_csi_tool.py -p /dev/ttyUSB1 + ``` ++ 运行成功后,打开如下 CSI 数据实时可视化界面,界面左侧为数据显示界面,右侧为数据模型界面: +![csi_tool界面](./docs/_static/3.3_csi_tool.png) + +## 4 界面介绍 +实时可视化界面由数据显示界面 `Raw data` 和数据模型界面 `Radar model` 两部分组成,`Raw data` 显示原始的 CSI 各个子载波的数据,`Radar model` 是使用算法对 CSI 数据分析后的结果,可以用于有人/无人、运动/静止的检测,通过选择勾选右上角 `Raw data` 和 `Radar model` 按钮,可以选择单独显示两个界面 + +### 4.1 路由器连接窗口: +左侧最上方为配置路由器连接信息窗口,使用设备连接到路由器上,接收路由器的与设备之间 CSI + +![路由器连接窗口](./docs/_static/4.1_connect_windows.png) + ++ **ssid**:路由器帐号 ++ **password**:路由器密码 ++ **auto connect**:如果勾选,下次打开时,将自动连接上次连接的路由器 ++ **connect / disconnect**:连接/断开按钮 ++ **custom**:可以发送更多的控制指令如:重启、版本获取,或者输入设备端自定义的命令 + +### 4.2 CSI 数据波形显示窗口 +此窗口可实时显示部分通道 CSI 数据的波形,如果勾选 `wave filtering`,显示的就是滤波后的波形 +![CSI数据波形显示窗口](./docs/_static/4.2_csi_waveform_windows.png) + +### 4.3 RSSI 波形显示窗口 +此窗口显示 RSSI 波形信息,可用于与 CSI 波形比较,观测室内人员处于不同处态时 RSSI 变化情况 +![RSSI波形显示窗口](./docs/_static/4.3_rssi_waveform_windows.png) + +### 4.4 log 显示窗口 +此窗口显示时间,内存等系统日志 +![log显示窗口](./docs/_static/4.4_log_windows.png) + +### 4.5 Wi-Fi 信道数据显示窗口 +此窗口显示 Wi-Fi 信道状态信息 +![Wi-Fi信道数据显示窗口](./docs/_static/4.5_wi-fi_data_windows.png) + +### 4.6 室内状态显示窗口 +此窗口用于校准室内状态阈值,和显示室内状态(有人/无人、运动/静止) +![室内状态显示窗口](./docs/_static/4.6_room_state_windows.png) + ++ **delay**:开始校准延迟时间,校准时要求室内无人,人员可在开始校准后,延迟时间内离开房间 ++ **duration**:校准过程持续时间 ++ **add**:如果勾选,再次校准后的阈值将在当前阈值基础上累加 ++ **start**:开始校准按钮 ++ **wander(someone) threshold**:判断室内有人/无人的阈值,将在校准后自动设置,也可以用户自己手动设置 ++ **jitter(move) threshold**:判断人员静止/运动的阈值,将在校准后自动设置,也可以用户自己手动设置 ++ **config**:用户手动设置阈值后,点击配置按钮 ++ **display table**:如果勾选,将在波形框右侧显示室内状态和人员状态信息表格,表格中具体参数如下 + + |status|threshold|value|max|min|mean|std| + |---|---|---|---|---|---|---| + |状态|阈值|实时值|最大值|最小值|平均值|标准差| + +### 4.7 人员运动数据显示窗口 +此窗口显示室内人员运动的具体数据,左侧以柱状图实时显示人员运动次数,右侧表格记录具体运动时间 +![人员运动数据显示窗口](./docs/_static/4.7_people_movedata_windows.png) + ++ **mode**:观测模式,`minute, hour, day` 三种模式分别为以每分钟、每小时、每天为单位记录人员运动的次数 ++ **time**:时间,默认当前时间,可手动设置开始观测的时间 ++ **auto update**:如果勾选,会自动实时更新显示人员运动次数柱状图 ++ **update**:点击后会手动更新显示人员运动次数柱状图 + +表格各参数意义如下: +|room|human|spend_time|start_time|stop_time| +|---|---|---|---|---| +|房间状态|人员状态|运动时长|运动开始时间|运动结束时间| + +### 4.8 动作采集窗口 +此窗口用于对人员做不同动作时的 CSI 数据进行采集,采集的数据将存储在 `esp-csi/examples/console_test/tools/data` 路径下,采集的数据可用于机器学习或神经网络 +![动作采集窗口](./docs/_static/4.8_collect_windows.png) + ++ **target**:选择要采集的动作 ++ **delay**:选择采集的延迟时间,即点击开始按钮后延迟多久开始采集 ++ **duration**:采集一次动作持续时长 ++ **number**:采集次数 ++ **clean**:点击后将清除所采集的所有数据 ++ **start**:开始采集按钮 + +## 5 操作流程 +这里以连接路由器为例,介绍了可视化系界面使用的操作流程 +### 5.1 连接路由器 ++ 在路由器连接窗口中依次输入路由器帐号和密码 ++ (可选)勾选 `auto connect` ++ 点击 `connect` + +连接成功后,将在 “log 打印窗口” 看到路由器状态信息,同时 “CSI 数据波形显示窗口” 显示 CSI 数据波形 + +### 5.2 校准阈值 +校准的目的是为让设备知晓房间无人状态下的 CSI 信息,并获取到人员移动的阈值,当前版本如果不校准仅能进行人员移动检测,校准时间越长误触的概率越低 +![校准阈值](./docs/_static/5.2_calibration_threshold.png) + ++ 设置 `delay` 延迟时间,这里设置 10 秒为例(即 00:00:10),以便人员可以离开房间 ++ 设置 `duration` 校准持续时长, 这里设置 10 秒为例 ++ 点击 `start` 后选择 `yes`,人员 10 秒(`delay` 延迟时间)内离开房间,确保校准期间 10 秒内(`duration` 校准持续时长)房间内无人,校准结束后返回房间 ++ (选择)可根据校准结果,手动调整房间状态阈值和人员状态阈值 + +### 5.3 观测房间状态和人员状态 +校准结束后,室内状态显示窗口中将显示室内状态,并判断房间内无人、有人静止、有人运动三种状态 +![观测房间和人员状态](./docs/_static/5.3_observe_room_and_people_state.png) + ++ 在 `filter outliers` 中设置连续多少次内达到阈值多少次判定为有人/运动状态,以便过滤异常值 ++ 点击 `config` 进行配置 ++ (选择)在房间状态波形窗口,点击 `wander` 前的横线,可隐藏其波形,方便观测其他波形,同样其他波形也可以用次方法隐藏 ++ (选择)勾选 `display table` ,查看室内状态和人员状态信息表格 + +### 5.4 观测人员运动次数和时间 +在些观测窗口中,将会按照我们的设置以柱状图显示人员每分钟的运动数量在右侧表格中记录了每次运动时间信息。 +![观测人员运动次数和时间](./docs/_static/5.4_observe_people_move_data.png) + ++ 在人员运动数据显示窗口的 `mode` 中,选择观测模式,可以查看某分钟、某小时或某天房间内人员的运行情况,这里选择 `minute` 为例 ++ (选择)在 `time` 中设置开始观测的时间,默认为当前时刻开始 ++ 勾选 `auto update` 自动更新检测结果,如果不勾选,每次点击 `update` 会更新一次检测结果 + +### 5.5 采集特定动作的 CSI 数据 +![采集特定动作的CSI数据](./docs/_static/5.5_collect_csi_data.png) ++ (选择)在动作采集窗口的 `clean` 中清除以前的采集数据记录 ++ 在 `target` 中选择将要采集的动作,这里选择 `move` 为例 ++ 在 `delay` 中设置点击开始后的延迟采集时间,这里设置延迟 5 秒为例 ++ 在 `duration` 中设置采集一个动作持续的时间,这里选择 500 ms 为例 ++ 在 `number` 中设置要采集的次数,这里采集 1 次为例 ++ 点击 `start`,经过延迟时间后系统将开始采集数据,人员在设置时间内完成对应动作 + +采集结束后会自动停止,我们在 `esp-csi/examples/esp-radar/console_test/tools/data` 路径下可以看到我们采集的数据 +![CSI数据存放路径](./docs/_static/5.5_save_csi_data.png) + +### 5.6 窗口放大与缩小 +![窗口放大与缩小](./docs/_static/5.6_zoom_in_and_out_windows.png) ++ 通过选择勾选界面右上角 `Raw data` 与 `Radar model`,可单独显示 “数据显示界面” 和 “数据模型界面” ++ 鼠标选中不同窗口间的临界线,通过拖拽可放大/缩小各窗口 diff --git a/esp-radar/console_test/components/commands/CMakeLists.txt b/esp-radar/console_test/components/commands/CMakeLists.txt new file mode 100644 index 0000000..9230e95 --- /dev/null +++ b/esp-radar/console_test/components/commands/CMakeLists.txt @@ -0,0 +1,5 @@ +idf_component_register(SRC_DIRS "src" + INCLUDE_DIRS "include" + REQUIRES "console" "mbedtls" "nvs_flash" "fatfs" "esp_wifi" "spi_flash") + +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format") diff --git a/esp-radar/console_test/components/commands/include/csi_commands.h b/esp-radar/console_test/components/commands/include/csi_commands.h new file mode 100755 index 0000000..2d6a3a6 --- /dev/null +++ b/esp-radar/console_test/components/commands/include/csi_commands.h @@ -0,0 +1,31 @@ +// Copyright 2020 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include "argtable3/argtable3.h" +#include "esp_console.h" + +#ifdef __cplusplus +extern "C" { +#endif /**< _cplusplus */ + +void cmd_register_ping(void); +void cmd_register_system(void); +void cmd_register_wifi_config(void); +void cmd_register_wifi_scan(void); + +#ifdef __cplusplus +} +#endif /**< _cplusplus */ diff --git a/esp-radar/console_test/components/commands/src/ping_cmd.c b/esp-radar/console_test/components/commands/src/ping_cmd.c new file mode 100644 index 0000000..970218c --- /dev/null +++ b/esp-radar/console_test/components/commands/src/ping_cmd.c @@ -0,0 +1,225 @@ +/* + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include "nvs_flash.h" +#include "argtable3/argtable3.h" +#include "freertos/FreeRTOS.h" +#include "freertos/event_groups.h" +#include "esp_event.h" +#include "esp_log.h" +#include "esp_err.h" +#include "esp_wifi.h" +#include "esp_console.h" + +#include "lwip/inet.h" +#include "lwip/netdb.h" +#include "lwip/sockets.h" + +#include "ping/ping_sock.h" + +static const char *TAG = "ping_cmd"; + +esp_ping_handle_t g_ping_handle = NULL; + +static void ping_cmd_on_success(esp_ping_handle_t hdl, void *args) +{ + uint8_t ttl; + uint16_t seqno; + uint32_t elapsed_time, recv_len; + ip_addr_t target_addr; + esp_ping_get_profile(hdl, ESP_PING_PROF_SEQNO, &seqno, sizeof(seqno)); + esp_ping_get_profile(hdl, ESP_PING_PROF_TTL, &ttl, sizeof(ttl)); + esp_ping_get_profile(hdl, ESP_PING_PROF_IPADDR, &target_addr, sizeof(target_addr)); + esp_ping_get_profile(hdl, ESP_PING_PROF_SIZE, &recv_len, sizeof(recv_len)); + esp_ping_get_profile(hdl, ESP_PING_PROF_TIMEGAP, &elapsed_time, sizeof(elapsed_time)); + ESP_LOGD(TAG, "%d bytes from %s icmp_seq=%d ttl=%d time=%d ms", + recv_len, ipaddr_ntoa((ip_addr_t *)&target_addr), seqno, ttl, elapsed_time); +} + +static void ping_cmd_on_timeout(esp_ping_handle_t hdl, void *args) +{ + uint16_t seqno; + ip_addr_t target_addr; + esp_ping_get_profile(hdl, ESP_PING_PROF_SEQNO, &seqno, sizeof(seqno)); + esp_ping_get_profile(hdl, ESP_PING_PROF_IPADDR, &target_addr, sizeof(target_addr)); + ESP_LOGW(TAG, "From %s icmp_seq=%d timeout", ipaddr_ntoa((ip_addr_t *)&target_addr), seqno); +} + +static void ping_cmd_on_end(esp_ping_handle_t hdl, void *args) +{ + ip_addr_t target_addr; + uint32_t transmitted; + uint32_t received; + uint32_t total_time_ms; + esp_ping_get_profile(hdl, ESP_PING_PROF_REQUEST, &transmitted, sizeof(transmitted)); + esp_ping_get_profile(hdl, ESP_PING_PROF_REPLY, &received, sizeof(received)); + esp_ping_get_profile(hdl, ESP_PING_PROF_IPADDR, &target_addr, sizeof(target_addr)); + esp_ping_get_profile(hdl, ESP_PING_PROF_DURATION, &total_time_ms, sizeof(total_time_ms)); + uint32_t loss = (uint32_t)((1 - ((float)received) / transmitted) * 100); + + if (IP_IS_V4(&target_addr)) { + ESP_LOGI(TAG, "\n--- %s ping statistics ---", inet_ntoa(*ip_2_ip4(&target_addr))); + } else { + ESP_LOGI(TAG, "\n--- %s ping statistics ---", inet6_ntoa(*ip_2_ip6(&target_addr))); + } + + ESP_LOGI(TAG, "%d packets transmitted, %d received, %d%% packet loss, time %dms", + transmitted, received, loss, total_time_ms); + // delete the ping sessions, so that we clean up all resources and can create a new ping session + // we don't have to call delete function in the callback, instead we can call delete function from other tasks + esp_ping_delete_session(hdl); + g_ping_handle = NULL; +} + +static struct { + struct arg_int *timeout; + struct arg_int *interval; + struct arg_int *data_size; + struct arg_int *count; + struct arg_int *tos; + struct arg_str *host; + struct arg_lit *abort; + struct arg_end *end; +} ping_args; + +static int wifi_cmd_ping(int argc, char **argv) +{ + esp_ping_config_t config = ESP_PING_DEFAULT_CONFIG(); + config.count = 0; + config.data_size = 1; + config.interval_ms = 10; + config.task_stack_size = 3072; + + if (arg_parse(argc, argv, (void **)&ping_args) != ESP_OK) { + arg_print_errors(stderr, ping_args.end, argv[0]); + return ESP_FAIL; + } + + if (ping_args.timeout->count > 0) { + config.timeout_ms = ping_args.timeout->ival[0]; + } + + if (ping_args.interval->count > 0) { + config.interval_ms = ping_args.interval->ival[0]; + } + + if (ping_args.data_size->count > 0) { + config.data_size = ping_args.data_size->ival[0]; + } + + if (ping_args.count->count > 0) { + config.count = ping_args.count->ival[0]; + } + + if (ping_args.tos->count > 0) { + config.tos = ping_args.tos->ival[0]; + } + + if (ping_args.abort->count > 0) { + if (g_ping_handle != NULL) { + ESP_LOGI(TAG, "Stopping ping session"); + esp_ping_stop(g_ping_handle); + esp_ping_delete_session(g_ping_handle); + g_ping_handle = NULL; + ESP_LOGI(TAG, "Ping session stopped and deleted"); + } else { + ESP_LOGW(TAG, "No active ping session to stop"); + } + ESP_LOGW(TAG, "esp_ping stop"); + return ESP_OK; + } + + char host[32] = {0}; + + if (ping_args.host->count > 0) { + strcpy(host, ping_args.host->sval[0]); + } else { + esp_netif_ip_info_t local_ip; + esp_netif_get_ip_info(esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"), &local_ip); + sprintf(host, IPSTR, IP2STR(&local_ip.gw)); + ESP_LOGI(TAG, "ping router ip:" IPSTR ", gw: " IPSTR, IP2STR(&local_ip.ip), IP2STR(&local_ip.gw)); + } + + // parse IP address + struct sockaddr_in6 sock_addr6; + ip_addr_t target_addr; + memset(&target_addr, 0, sizeof(target_addr)); + + if (inet_pton(AF_INET6, host, &sock_addr6.sin6_addr) == 1) { + /* convert ip6 string to ip6 address */ + ipaddr_aton(host, &target_addr); + } else { + struct addrinfo hint; + struct addrinfo *res = NULL; + memset(&hint, 0, sizeof(hint)); + + /* convert ip4 string or hostname to ip4 or ip6 address */ + if (getaddrinfo(host, NULL, &hint, &res) != 0) { + printf("ping: unknown host %s\n", host); + return ESP_FAIL; + } + + if (res->ai_family == AF_INET) { + struct in_addr addr4 = ((struct sockaddr_in *)(res->ai_addr))->sin_addr; + inet_addr_to_ip4addr(ip_2_ip4(&target_addr), &addr4); + target_addr.type = IPADDR_TYPE_V4; + } else { + struct in6_addr addr6 = ((struct sockaddr_in6 *)(res->ai_addr))->sin6_addr; + inet6_addr_to_ip6addr(ip_2_ip6(&target_addr), &addr6); + target_addr.type = IPADDR_TYPE_V6; + } + + freeaddrinfo(res); + } + + config.target_addr = target_addr; + + /* stop and delete existing ping session if any */ + if (g_ping_handle != NULL) { + ESP_LOGI(TAG, "Stopping existing ping session before starting new one"); + esp_ping_stop(g_ping_handle); + esp_ping_delete_session(g_ping_handle); + g_ping_handle = NULL; + ESP_LOGI(TAG, "Existing ping session stopped and deleted"); + } + + /* set callback functions */ + esp_ping_callbacks_t cbs = { + .on_ping_success = ping_cmd_on_success, + .on_ping_timeout = ping_cmd_on_timeout, + .on_ping_end = ping_cmd_on_end, + .cb_args = NULL + }; + + esp_ping_new_session(&config, &cbs, &g_ping_handle); + esp_ping_start(g_ping_handle); + + return ESP_OK; +} + +void cmd_register_ping(void) +{ + ping_args.timeout = arg_int0("W", "timeout", "", "Time to wait for a response, in seconds"); + ping_args.interval = arg_int0("i", "interval", "", "Wait interval seconds between sending each packet"); + ping_args.data_size = arg_int0("s", "size", "", "Specify the number of data bytes to be sent"); + ping_args.count = arg_int0("c", "count", "", "Stop after sending count packets"); + ping_args.tos = arg_int0("Q", "tos", "", "Set Type of Service related bits in IP datagrams"); + ping_args.host = arg_str0("h", "host", "", "Host address"); + ping_args.abort = arg_lit0("a", "abort", "Abort running ping"); + ping_args.end = arg_end(10); + const esp_console_cmd_t ping_cmd = { + .command = "ping", + .help = "Send ICMP ECHO_REQUEST to network hosts", + .hint = NULL, + .func = &wifi_cmd_ping, + .argtable = &ping_args + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&ping_cmd)); +} diff --git a/esp-radar/console_test/components/commands/src/system_cmd.c b/esp-radar/console_test/components/commands/src/system_cmd.c new file mode 100644 index 0000000..aaba565 --- /dev/null +++ b/esp-radar/console_test/components/commands/src/system_cmd.c @@ -0,0 +1,264 @@ +// Copyright 2017 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "esp_log.h" + +#include +#include +#include "argtable3/argtable3.h" +#include "mbedtls/base64.h" + +#include "esp_system.h" +#include "esp_partition.h" +#include "esp_console.h" +#include "esp_chip_info.h" + + +static const char *TAG = "system_cmd"; + +/** + * @brief A function which implements version command. + */ +static int version_func(int argc, char **argv) +{ + esp_chip_info_t chip_info = {0}; + + /**< Pint system information */ + esp_chip_info(&chip_info); + ESP_LOGI(TAG, "compile time : %s %s", __DATE__, __TIME__); + ESP_LOGI(TAG, "free heap : %d Bytes", esp_get_free_heap_size()); + ESP_LOGI(TAG, "CPU cores : %d", chip_info.cores); + ESP_LOGI(TAG, "silicon revision : %d", chip_info.revision); + ESP_LOGI(TAG, "feature : %s%s%s%s", + chip_info.features & CHIP_FEATURE_WIFI_BGN ? "/802.11bgn" : "", + chip_info.features & CHIP_FEATURE_BLE ? "/BLE" : "", + chip_info.features & CHIP_FEATURE_BT ? "/BT" : "", + chip_info.features & CHIP_FEATURE_EMB_FLASH ? "/Embedded-Flash:" : "/External-Flash:"); + + return ESP_OK; +} + +/** + * @brief Register version command. + */ +static void register_version() +{ + const esp_console_cmd_t cmd = { + .command = "version", + .help = "Get version of chip and SDK", + .hint = NULL, + .func = &version_func, + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); +} + + +/** + * @brief A function which implements restart command. + */ +static int restart_func(int argc, char **argv) +{ + ESP_LOGI(TAG, "Restarting"); + esp_restart(); +} + +/** + * @brief Register restart command. + */ +static void register_restart() +{ + const esp_console_cmd_t cmd = { + .command = "restart", + .help = "Software reset of the chip", + .hint = NULL, + .func = &restart_func, + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); +} + +/** + * @brief A function which implements reset command. + */ +static int reset_func(int argc, char **argv) +{ + esp_partition_iterator_t part_itra = NULL; + const esp_partition_t *nvs_part = NULL; + + ESP_LOGI(TAG, "Erase part of the nvs partition"); + + part_itra = esp_partition_find(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "nvs"); + nvs_part = esp_partition_get(part_itra); + esp_partition_erase_range(nvs_part, 0, nvs_part->size); + + ESP_LOGI(TAG, "Restarting"); + esp_restart(); +} + +/** + * @brief Register reset command. + */ +static void register_reset() +{ + const esp_console_cmd_t cmd = { + .command = "reset", + .help = "Clear device configuration information", + .hint = NULL, + .func = &reset_func, + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); +} + +/** + * @brief A function which implements heap command. + */ +static int heap_func(int argc, char **argv) +{ +#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) + TaskStatus_t *pxTaskStatusArray = NULL; + volatile UBaseType_t uxArraySize = 0; + uint32_t ulTotalRunTime = 0, ulStatsAsPercentage = 0, ulRunTimeCounte = 0; + const char task_status_char[] = {'r', 'R', 'B', 'S', 'D'}; + + /* Take a snapshot of the number of tasks in case it changes while this + function is executing. */ + uxArraySize = uxTaskGetNumberOfTasks(); + pxTaskStatusArray = malloc(uxTaskGetNumberOfTasks() * sizeof(TaskStatus_t)); + + if (!pxTaskStatusArray) { + return ; + } + + /* Generate the (binary) data. */ + uxArraySize = uxTaskGetSystemState(pxTaskStatusArray, uxArraySize, &ulTotalRunTime); + ulTotalRunTime /= 100UL; + + ESP_LOGI(TAG, "---------------- The State Of Tasks ----------------"); + ESP_LOGI(TAG, "- HWM : usage high water mark (Byte)"); + ESP_LOGI(TAG, "- Status: blocked ('B'), ready ('R'), deleted ('D') or suspended ('S')\n"); + ESP_LOGI(TAG, "TaskName\t\tStatus\tPrio\tHWM\tTaskNum\tCoreID\tRunTimeCounter\tPercentage"); + + for (int i = 0; i < uxArraySize; i++) { +#if( configGENERATE_RUN_TIME_STATS == 1 ) + ulRunTimeCounte = pxTaskStatusArray[i].ulRunTimeCounter; + ulStatsAsPercentage = ulRunTimeCounte / ulTotalRunTime; +#else +#warning configGENERATE_RUN_TIME_STATS must also be set to 1 in FreeRTOSConfig.h to use vTaskGetRunTimeStats(). +#endif + + int core_id = -1; + char precentage_char[4] = {0}; + +#if ( configTASKLIST_INCLUDE_COREID == 1 ) + core_id = (int) pxTaskStatusArray[ i ].xCoreID; +#else +#warning configTASKLIST_INCLUDE_COREID must also be set to 1 in FreeRTOSConfig.h to use xCoreID. +#endif + + /* Write the rest of the string. */ + ESP_LOGI(TAG, "%-16s\t%c\t%u\t%u\t%u\t%hd\t%-16u%-s%%", + pxTaskStatusArray[i].pcTaskName, task_status_char[pxTaskStatusArray[i].eCurrentState], + (uint32_t) pxTaskStatusArray[i].uxCurrentPriority, + (uint32_t) pxTaskStatusArray[i].usStackHighWaterMark, + (uint32_t) pxTaskStatusArray[i].xTaskNumber, core_id, + ulRunTimeCounte, (ulStatsAsPercentage <= 0) ? "<1" : itoa(ulStatsAsPercentage, precentage_char, 10)); + } + + free(pxTaskStatusArray); +#endif /**< ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 */ + +#ifndef CONFIG_SPIRAM_SUPPORT + ESP_LOGI(TAG, "Free heap, current: %d, minimum: %d", + esp_get_free_heap_size(), esp_get_minimum_free_heap_size()); +#else + ESP_LOGI(TAG, "Free heap, internal current: %d, minimum: %d, total current: %d, minimum: %d", + heap_caps_get_free_size(MALLOC_CAP_8BIT | MALLOC_CAP_INTERNAL), + heap_caps_get_minimum_free_size(MALLOC_CAP_8BIT | MALLOC_CAP_INTERNAL), + esp_get_free_heap_size(), esp_get_minimum_free_heap_size()); +#endif /**< CONFIG_SPIRAM_SUPPORT */ + + return ESP_OK; +} + +/** + * @brief Register heap command. + */ +static void register_heap() +{ + const esp_console_cmd_t cmd = { + .command = "heap", + .help = "Get the current size of free heap memory", + .hint = NULL, + .func = &heap_func, + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); +} + + + +static struct { + struct arg_str *tag; + struct arg_str *level; + struct arg_end *end; +} log_args; + +/** + * @brief A function which implements log command. + */ +static int log_func(int argc, char **argv) +{ + const char *level_str[6] = {"NONE", "ERR", "WARN", "INFO", "DEBUG", "VER"}; + + if (arg_parse(argc, argv, (void **)&log_args) != ESP_OK) { + arg_print_errors(stderr, log_args.end, argv[0]); + return ESP_FAIL; + } + + for (int log_level = 0; log_args.level->count && log_level < sizeof(level_str) / sizeof(char *); ++log_level) { + if (!strncasecmp(level_str[log_level], log_args.level->sval[0], sizeof(level_str[log_level]) - 1)) { + const char *tag = log_args.tag->count ? log_args.tag->sval[0] : "*"; + esp_log_level_set(tag, log_level); + } + } + + return ESP_OK; +} + +/** + * @brief Register log command. + */ +static void register_log() +{ + log_args.tag = arg_str0("t", "tag", "", "Tag of the log entries to enable, '*' resets log level for all tags to the given value"); + log_args.level = arg_str0("l", "level", "", "Selects log level to enable (NONE, ERR, WARN, INFO, DEBUG, VER)"); + log_args.end = arg_end(2); + + const esp_console_cmd_t cmd = { + .command = "log", + .help = "Set log level for given tag", + .hint = NULL, + .func = &log_func, + .argtable = &log_args, + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); +} + +void cmd_register_system(void) +{ + register_version(); + register_heap(); + register_restart(); + register_reset(); + register_log(); +} \ No newline at end of file diff --git a/esp-radar/console_test/components/commands/src/wifi_cmd.c b/esp-radar/console_test/components/commands/src/wifi_cmd.c new file mode 100644 index 0000000..effd710 --- /dev/null +++ b/esp-radar/console_test/components/commands/src/wifi_cmd.c @@ -0,0 +1,580 @@ +/* + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include "nvs_flash.h" +#include "argtable3/argtable3.h" +#include "freertos/FreeRTOS.h" +#include "freertos/event_groups.h" + +#include "esp_mac.h" +#include "esp_event.h" +#include "esp_log.h" +#include "esp_err.h" +#include "esp_wifi.h" +#include "esp_console.h" +#include "esp_netif.h" + +#include "lwip/inet.h" +#include "lwip/netdb.h" +#include "lwip/sockets.h" + +#define WIFI_CONNECTED_BIT BIT0 +#define WIFI_DISCONNECTED_BIT BIT1 + +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0) +#define ESP_IF_WIFI_STA ESP_MAC_WIFI_STA +#endif + +static bool s_reconnect = true; +static const char *TAG = "wifi_cmd"; + +static EventGroupHandle_t s_wifi_event_group; + +static bool mac_str2hex(const char *mac_str, uint8_t *mac_hex) +{ + uint32_t mac_data[6] = {0}; + int ret = sscanf(mac_str, MACSTR, mac_data, mac_data + 1, mac_data + 2, + mac_data + 3, mac_data + 4, mac_data + 5); + + for (int i = 0; i < 6; i++) { + mac_hex[i] = mac_data[i]; + } + + return ret == 6 ? true : false; +} + +/* Event handler for catching system events */ +static void wifi_event_handler(void *arg, esp_event_base_t event_base, + int32_t event_id, void *event_data) +{ + if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { + xEventGroupClearBits(s_wifi_event_group, WIFI_DISCONNECTED_BIT); + xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { + if (s_reconnect) { + ESP_LOGI(TAG, "sta disconnect, s_reconnect..."); + esp_wifi_connect(); + } else { + // ESP_LOGI(TAG, "sta disconnect"); + } + + xEventGroupClearBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + xEventGroupSetBits(s_wifi_event_group, WIFI_DISCONNECTED_BIT); + } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) { + wifi_event_sta_connected_t *event = (wifi_event_sta_connected_t *)event_data; + ESP_LOGI(TAG, "Connected to %s (bssid: "MACSTR", channel: %d)", event->ssid, + MAC2STR(event->bssid), event->channel); + } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STACONNECTED) { + ESP_LOGI(TAG, "STA Connecting to the AP again..."); + } +} + +typedef struct { + struct arg_str *ssid; + struct arg_str *password; + struct arg_end *end; +} wifi_args_t; + +static wifi_args_t sta_args; +static wifi_args_t ap_args; + +static int wifi_cmd_sta(int argc, char **argv) +{ + if (arg_parse(argc, argv, (void **) &sta_args) != ESP_OK) { + arg_print_errors(stderr, sta_args.end, argv[0]); + return ESP_FAIL; + } + + const char *ssid = sta_args.ssid->sval[0]; + const char *password = sta_args.password->sval[0]; + wifi_config_t wifi_config = { 0 }; + static esp_netif_t *s_netif_sta = NULL; + + if (!s_wifi_event_group) { + s_wifi_event_group = xEventGroupCreate(); + ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL)); + ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL)); + } + + if (!s_netif_sta) { + // 检查是否已经存在默认的STA netif(可能由esp_radar_wifi_init创建) + s_netif_sta = esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"); + if (!s_netif_sta) { + s_netif_sta = esp_netif_create_default_wifi_sta(); + } + } + + strlcpy((char *) wifi_config.sta.ssid, ssid, sizeof(wifi_config.sta.ssid)); + + if (password) { + strlcpy((char *) wifi_config.sta.password, password, sizeof(wifi_config.sta.password)); + } + + ESP_LOGI(TAG, "sta connecting to '%s'", ssid); + + int bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT, false, true, false); + + if (bits & WIFI_CONNECTED_BIT) { + s_reconnect = false; + xEventGroupClearBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + ESP_ERROR_CHECK(esp_wifi_disconnect()); + xEventGroupWaitBits(s_wifi_event_group, WIFI_DISCONNECTED_BIT, false, true, portMAX_DELAY); + } + + s_reconnect = true; + + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config)); + esp_wifi_connect(); + + xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT, false, true, pdMS_TO_TICKS(5000)); + + return ESP_OK; +} + +static int wifi_cmd_ap(int argc, char **argv) +{ + if (arg_parse(argc, argv, (void **) &ap_args) != ESP_OK) { + arg_print_errors(stderr, ap_args.end, argv[0]); + return ESP_FAIL; + } + + wifi_config_t wifi_config = { + .ap = { + .ssid = "", + .ssid_len = 0, + .max_connection = 4, + .password = "", + .channel = 11, + }, + }; + + const char *ssid = ap_args.ssid->sval[0]; + const char *password = ap_args.password->sval[0]; + static esp_netif_t *s_netif_ap = NULL; + + if (!s_wifi_event_group) { + s_wifi_event_group = xEventGroupCreate(); + ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL)); + ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL)); + } + + if (!s_netif_ap) { + s_netif_ap = esp_netif_create_default_wifi_ap(); + } + + s_reconnect = false; + strlcpy((char *) wifi_config.ap.ssid, ssid, sizeof(wifi_config.ap.ssid)); + + if (password && strlen(password)) { + if (strlen(password) < 8) { + s_reconnect = true; + ESP_LOGE(TAG, "password less than 8"); + return ESP_FAIL; + } + + wifi_config.ap.authmode = WIFI_AUTH_WPA2_PSK; + strlcpy((char *) wifi_config.ap.password, password, sizeof(wifi_config.ap.password)); + } + + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP)); + ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_AP, &wifi_config)); + + ESP_LOGI(TAG, "Starting SoftAP SSID: %s, Password: %s", ssid, password); + + return ESP_OK; +} + +static int wifi_cmd_query(int argc, char **argv) +{ + wifi_config_t cfg; + wifi_mode_t mode; + + esp_wifi_get_mode(&mode); + + if (WIFI_MODE_AP == mode) { + esp_wifi_get_config(WIFI_IF_AP, &cfg); + ESP_LOGI(TAG, "AP mode, %s %s", cfg.ap.ssid, cfg.ap.password); + } else if (WIFI_MODE_STA == mode) { + int bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT, 0, 1, 0); + + if (bits & WIFI_CONNECTED_BIT) { + esp_wifi_get_config(WIFI_IF_STA, &cfg); + ESP_LOGI(TAG, "sta mode, connected %s", cfg.ap.ssid); + } else { + ESP_LOGI(TAG, "sta mode, disconnected"); + } + } else { + ESP_LOGI(TAG, "NULL mode"); + return 0; + } + + return 0; +} + +void cmd_register_wifi(void) +{ + sta_args.ssid = arg_str1(NULL, NULL, "", "SSID of AP"); + sta_args.password = arg_str0(NULL, NULL, "", "password of AP"); + sta_args.end = arg_end(2); + + const esp_console_cmd_t sta_cmd = { + .command = "sta", + .help = "WiFi is station mode, join specified soft-AP", + .hint = NULL, + .func = &wifi_cmd_sta, + .argtable = &sta_args + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&sta_cmd)); + + ap_args.ssid = arg_str1(NULL, NULL, "", "SSID of AP"); + ap_args.password = arg_str0(NULL, NULL, "", "password of AP"); + ap_args.end = arg_end(2); + + const esp_console_cmd_t ap_cmd = { + .command = "ap", + .help = "AP mode, configure ssid and password", + .hint = NULL, + .func = &wifi_cmd_ap, + .argtable = &ap_args + }; + + ESP_ERROR_CHECK(esp_console_cmd_register(&ap_cmd)); + + const esp_console_cmd_t query_cmd = { + .command = "query", + .help = "query WiFi info", + .hint = NULL, + .func = &wifi_cmd_query, + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&query_cmd)); +} + +static struct { + struct arg_str *country_code; + struct arg_int *channel; + struct arg_int *channel_second; + struct arg_str *ssid; + struct arg_str *bssid; + struct arg_str *password; + struct arg_lit *disconnect; + struct arg_int *tx_power; + struct arg_lit *info; + struct arg_int *rate; + struct arg_int *bandwidth; + struct arg_int *protocol; + struct arg_end *end; +} wifi_config_args; + +/** + * @brief A function which implements wifi config command. + */ +static int wifi_config_func(int argc, char **argv) +{ + if (arg_parse(argc, argv, (void **) &wifi_config_args) != ESP_OK) { + arg_print_errors(stderr, wifi_config_args.end, argv[0]); + return ESP_FAIL; + } + + if (!s_wifi_event_group) { + s_wifi_event_group = xEventGroupCreate(); + ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL)); + ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &wifi_event_handler, NULL)); + } + + if (wifi_config_args.disconnect->count) { + s_reconnect = false; + esp_wifi_disconnect(); + return ESP_OK; + } + + esp_err_t ret = ESP_OK; + wifi_config_t wifi_config = {0x0}; + esp_wifi_get_config(WIFI_IF_STA, &wifi_config); + static esp_netif_t *s_netif_sta = NULL; + + wifi_mode_t mode; + esp_wifi_get_mode(&mode); + + if (!s_netif_sta && mode != WIFI_MODE_STA) { + // 检查是否已经存在默认的STA netif(可能由esp_radar_wifi_init创建) + s_netif_sta = esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"); + if (!s_netif_sta) { + s_netif_sta = esp_netif_create_default_wifi_sta(); + } + } + + if (wifi_config_args.ssid->count) { + strcpy((char *)wifi_config.sta.ssid, wifi_config_args.ssid->sval[0]); + } + + if (wifi_config_args.password->count) { + strcpy((char *)wifi_config.sta.password, wifi_config_args.password->sval[0]); + } + + if (wifi_config_args.bssid->count) { + if (!mac_str2hex(wifi_config_args.bssid->sval[0], wifi_config.sta.bssid)) { + ESP_LOGE(TAG, "The format of the address is incorrect. Please enter the format as xx:xx:xx:xx:xx:xx"); + return ESP_ERR_INVALID_ARG; + } + } + + if (strlen((char *)wifi_config.sta.ssid)) { + int bits = xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT, false, true, false); + + if (bits & WIFI_CONNECTED_BIT) { + s_reconnect = false; + xEventGroupClearBits(s_wifi_event_group, WIFI_CONNECTED_BIT); + ESP_ERROR_CHECK(esp_wifi_disconnect()); + xEventGroupWaitBits(s_wifi_event_group, WIFI_DISCONNECTED_BIT, false, true, portMAX_DELAY); + } + + s_reconnect = true; + + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + // esp_err_t esp_wifi_internal_set_fix_rate(wifi_interface_t ifx, bool en, wifi_phy_rate_t rate); + // esp_wifi_internal_set_fix_rate(ESP_IF_WIFI_STA, true, WIFI_PHY_RATE_48M); + // ESP_LOGW(TAG, "------- <%s, %d> ------", __func__, __LINE__); + + // ESP_ERROR_CHECK(esp_wifi_set_bandwidth(WIFI_IF_STA, WIFI_BW_HT20)); + + // ESP_ERROR_CHECK(esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G)); + + ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config)); + esp_wifi_connect(); + xEventGroupWaitBits(s_wifi_event_group, WIFI_CONNECTED_BIT, false, true, pdMS_TO_TICKS(5000)); + } + + if (wifi_config_args.country_code->count) { + wifi_country_t country = {0}; + const char *country_code = wifi_config_args.country_code->sval[0]; + + if (!strcasecmp(country_code, "US")) { + strcpy(country.cc, "US"); + country.schan = 1; + country.nchan = 11; + } else if (!strcasecmp(country_code, "JP")) { + strcpy(country.cc, "JP"); + country.schan = 1; + country.nchan = 14; + } else if (!strcasecmp(country_code, "CN")) { + strcpy(country.cc, "CN"); + country.schan = 1; + country.nchan = 13; + } else { + return ESP_ERR_INVALID_ARG; + } + + ret = esp_wifi_set_country(&country); + } + + if (wifi_config_args.channel->count) { + wifi_config.sta.channel = wifi_config_args.channel->ival[0]; + wifi_second_chan_t second = WIFI_SECOND_CHAN_NONE; + + if (wifi_config_args.channel_second->count < 3) { + second = wifi_config_args.channel_second->ival[0]; + } + + if (wifi_config.sta.channel > 0 && wifi_config.sta.channel <= 14) { + ret = esp_wifi_set_channel(wifi_config.sta.channel, second); + + if (ret == ESP_OK) { + ESP_LOGI(TAG, "Set Channel, channel: %d", wifi_config.sta.channel); + } else { + ESP_LOGE(TAG, "<%s> esp_wifi_set_channel", esp_err_to_name(ret)); + return ESP_ERR_INVALID_ARG; + } + } else { + return ESP_ERR_INVALID_ARG; + } + } + + if (wifi_config_args.tx_power->count) { + esp_wifi_set_max_tx_power(wifi_config_args.tx_power->ival[0]); + } + + if (wifi_config_args.info->count) { + int8_t rx_power = 0; + wifi_country_t country = {0}; + uint8_t primary = 0; + wifi_second_chan_t second = 0; + wifi_mode_t mode = 0; + wifi_bandwidth_t bandwidth = 0; + + esp_wifi_get_channel(&primary, &second); + esp_wifi_get_max_tx_power(&rx_power); + esp_wifi_get_country(&country); + esp_wifi_get_mode(&mode); + esp_wifi_get_bandwidth(mode - 1, &bandwidth); + + country.cc[2] = '\0'; + ESP_LOGI(TAG, "tx_power: %d, country: %s, channel: %d/%d, mode: %d, bandwidth: %d", + rx_power, country.cc, primary, second, mode, bandwidth); + } + + if (wifi_config_args.bandwidth->count) { + ESP_ERROR_CHECK(esp_wifi_set_bandwidth(ESP_IF_WIFI_STA, wifi_config_args.bandwidth->ival[0])); + } + + if (wifi_config_args.rate->count) { + extern esp_err_t esp_wifi_internal_set_fix_rate(wifi_interface_t ifx, bool en, wifi_phy_rate_t rate); + ESP_ERROR_CHECK(esp_wifi_internal_set_fix_rate(ESP_IF_WIFI_STA, true, wifi_config_args.rate->ival[0])); + } + + if (wifi_config_args.protocol->count) { + ESP_ERROR_CHECK(esp_wifi_set_protocol(ESP_IF_WIFI_STA, wifi_config_args.protocol->ival[0])); + } + + return ret; +} + +/** + * @brief Register wifi config command. + */ +void cmd_register_wifi_config() +{ + wifi_config_args.ssid = arg_str0("s", "ssid", "", "SSID of router"); + wifi_config_args.password = arg_str0("p", "password", "", "Password of router"); + wifi_config_args.bssid = arg_str0("b", "bssid", "", "BSSID of router"); + wifi_config_args.disconnect = arg_lit0("d", "disconnect", "Disconnect the router"); + wifi_config_args.channel = arg_int0("c", "channel", "", "Set primary channel"); + wifi_config_args.channel_second = arg_int0("c", "channel_second", "", "Set second channel"); + wifi_config_args.country_code = arg_str0("C", "country_code", "", "Set the current country code"); + wifi_config_args.tx_power = arg_int0("t", "tx_power", "", "Set maximum transmitting power after WiFi start."); + wifi_config_args.rate = arg_int0("r", "rate", "", "Set the bandwidth of ESP32 specified interface"); + wifi_config_args.bandwidth = arg_int0("w", "bandwidth", "", "Set the bandwidth of ESP32 specified interface"); + wifi_config_args.protocol = arg_int0("P", "protocol", "", "Set protocol type of specified interface"); + wifi_config_args.info = arg_lit0("i", "info", "Get Wi-Fi configuration information"); + wifi_config_args.end = arg_end(10); + + const esp_console_cmd_t cmd = { + .command = "wifi_config", + .help = "Set the configuration of the ESP32 STA", + .hint = NULL, + .func = &wifi_config_func, + .argtable = &wifi_config_args, + }; + ESP_ERROR_CHECK(esp_console_cmd_register(&cmd)); +} + +static struct { + struct arg_int *rssi; + struct arg_str *ssid; + struct arg_str *bssid; + struct arg_int *passive; + struct arg_end *end; +} wifi_scan_args; + +/** + * @brief A function which implements wifi scan command. + */ +static esp_err_t wifi_scan_func(int argc, char **argv) +{ + if (arg_parse(argc, argv, (void **) &wifi_scan_args) != ESP_OK) { + arg_print_errors(stderr, wifi_scan_args.end, argv[0]); + return ESP_FAIL; + } + + int8_t filter_rssi = -120; + uint16_t ap_number = 0; + uint8_t bssid[6] = {0x0}; + uint8_t channel = 1; + wifi_second_chan_t second = 0; + wifi_ap_record_t ap_record = {0x0}; + wifi_scan_config_t scan_config = { + .show_hidden = true, + .scan_type = WIFI_SCAN_TYPE_ACTIVE, + }; + + ESP_ERROR_CHECK(esp_wifi_get_channel(&channel, &second)); + ESP_ERROR_CHECK(esp_wifi_disconnect()); + + if (wifi_scan_args.passive->count) { + scan_config.scan_type = WIFI_SCAN_TYPE_PASSIVE; + scan_config.scan_time.passive = wifi_scan_args.passive->ival[0]; + } + + if (wifi_scan_args.ssid->count) { + scan_config.ssid = (uint8_t *)wifi_scan_args.ssid->sval[0]; + } + + if (wifi_scan_args.bssid->count) { + if (!mac_str2hex(wifi_scan_args.bssid->sval[0], bssid)) { + ESP_LOGE(TAG, "The format of the address is incorrect. Please enter the format as xx:xx:xx:xx:xx:xx"); + return ESP_ERR_INVALID_ARG; + } + + scan_config.bssid = bssid; + } + + if (wifi_scan_args.rssi->count) { + filter_rssi = wifi_scan_args.rssi->ival[0]; + ESP_LOGW(TAG, "filter_rssi: %d", filter_rssi); + } + + esp_wifi_scan_stop(); + + int retry_count = 20; + + do { + esp_wifi_disconnect(); + esp_wifi_scan_start(&scan_config, true); + esp_wifi_scan_get_ap_num(&ap_number); + } while (ap_number <= 0 && --retry_count); + + if (ap_number <= 0) { + ESP_LOGE(TAG, "esp_wifi_scan_get_ap_num"); + return ESP_ERR_NOT_FOUND; + } + + ESP_LOGI(TAG, "Get number of APs found, number: %d", ap_number); + + for (int i = 0; i < ap_number; i++) { + memset(&ap_record, 0, sizeof(wifi_ap_record_t)); + + if (ap_record.rssi < filter_rssi) { + continue; + } + + ESP_LOGI(TAG, "Router, ssid: %s, bssid: " MACSTR ", channel: %u, rssi: %d", + ap_record.ssid, MAC2STR(ap_record.bssid), + ap_record.primary, ap_record.rssi); + } + + if (channel > 0 && channel < 13) { + ESP_ERROR_CHECK(esp_wifi_set_channel(channel, second)); + } + + return ESP_OK; +} + +/** + * @brief Register wifi scan command. + */ +void cmd_register_wifi_scan() +{ + wifi_scan_args.rssi = arg_int0("r", "rssi", "", "Filter device uses RSSI"); + wifi_scan_args.ssid = arg_str0("s", "ssid", "", "Filter device uses SSID"); + wifi_scan_args.bssid = arg_str0("b", "bssid", "", "Filter device uses AP's MAC"); + wifi_scan_args.passive = arg_int0("p", "passive", "

    pyqtgraph
    + + + + graphicsView_subcarrier + graphicsView_rssi + + + + diff --git a/esp-radar/console_test/tools/requirements.txt b/esp-radar/console_test/tools/requirements.txt new file mode 100644 index 0000000..c6c07ee --- /dev/null +++ b/esp-radar/console_test/tools/requirements.txt @@ -0,0 +1,8 @@ +argparse +pandas +numpy +path +PyQt5 +pyqtgraph +pyserial +scipy diff --git a/get-started/README.md b/get-started/README.md new file mode 100644 index 0000000..88d884a --- /dev/null +++ b/get-started/README.md @@ -0,0 +1,78 @@ +# Get Started Examples +[[中文]](./README_cn.md) + +This example demonstrates how to obtain CSI data through communication between two espressif chips, and uses a graphical interface to display real-time data of CSI subcarriers + +## hardware + +You need to prepare two development boards for espressif chips, one as the sender and the other as the receiver + +![example_display](./docs/_static/example_display.png) + +1. Use ESP32-C5 / ESP32-C6: ESP32-C5 supports dual-band Wi-Fi communication and is one of the best RF chips available. ESP32-C6 is the best RF chip among the currently released models. +2. Use an external antenna: The PCB antenna has poor directivity and is easily interfered with by the motherboard. +3. The distance between the two devices should be greater than 1 meter. + +## Binding + +1. Burn the firmware of `csi_recv` and `csi_send` on two development boards respectively + + ![device_log](./docs/_static/device_log.png) + + ```shell + # csi_send + cd esp-csi/examples/get-started/csi_send + idf.py set-target esp32c3 + idf.py flash -b 921600 -p /dev/ttyUSB0 monitor + + # csi_recv + cd esp-csi/examples/get-started/csi_recv + idf.py set-target esp32c3 + idf.py flash -b 921600 -p /dev/ttyUSB1 + ``` + +2. Run `csi_data_read_parse.py` in `csi_recv` for data analysis. Please close `idf.py monitor` before running + + ```shell + cd esp-csi-gitlab/examples/get-started/tools + + # Install python related dependencies + pip install -r requirements.txt + + # Graphical display + python csi_data_read_parse.py -p /dev/ttyUSB1 + ``` + +## CSI Data Format + +Taking a line of CSI raw data as an example: + +> type,id,mac,rssi,rate,sig_mode,mcs,bandwidth,smoothing,not_sounding,aggregation,stbc,fec_coding,sgi,noise_floor,ampdu_cnt,channel,secondary_channel,local_timestamp,ant,sig_len,rx_state,len,first_word,data +CSI_DATA,0,94:d9:b3:80:8c:81,-30,11,1,6,1,0,1,0,1,0,0,-93,0,13,2,2751923,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,5,0,20,1,20,1,19,0,17,1,16,2,15,2,14,1,12,0,12,-1,12,-3,12,-4,13,-6,15,-7,16,-8,16,-8,16,-8,16,-6,15,-5,15,-4,14,-4,13,-4,12,-4,11,-4,10,-4,9,-5,8,-6,4,-4,8,-9,9,-10,9,-10,10,-11,11,-10,11,-10,12,-9,11,-8,11,-7,10,-6,9,-6,7,-6,6,-7,5,-7,5,-8,5,-9,5,-10,5,-11,5,-11,6,-11,7,-11,8,-11,9,-10,9,-9,8,-8,8,-7,1,-2,0,0,0,0,0,0,0,0]" + +*ESP32-C5 and ESP32-C6 are:* +>type,seq,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,sig_len,rx_state,len,first_word,data +CSI_DATA,7,1a:00:00:00:00:00,-23,11,-96,32,4,11,372852,47,0,256,0,"[0,0,0,0,0,0,0,0,0,0,0,0,-6,-13,-6,-14,-3,-15,-2,-16,-2,-18,-3,-17,-1,-18,2,-19,0,-21,3,-21,1,-20,4,-21,4,-23,6,-22,7,-21,8,-23,9,-23,10,-21,10,-22,11,-20,12,-19,11,-25,13,-22,12,-23,14,-23,14,-22,14,-21,13,-21,13,-19,14,-22,14,-19,14,-23,16,-22,14,-22,13,-22,14,-21,13,-22,13,-23,13,-23,12,-26,13,-24,13,-24,12,-25,14,-29,13,-26,14,-26,15,-26,13,-27,15,-28,16,-27,14,-30,15,-28,16,-28,18,-27,16,-31,18,-31,19,-31,0,0,0,0,0,0,-29,-23,-28,-21,-30,-18,-26,-20,-30,-21,-25,-23,-26,-21,-25,-22,-26,-19,-22,-22,-24,-19,-22,-20,-24,-20,-24,-18,-23,-18,-22,-18,-25,-17,-23,-18,-21,-18,-21,-17,-24,-14,-22,-16,-21,-14,-22,-15,-21,-19,-23,-16,-22,-17,-23,-13,-23,-16,-25,-15,-21,-17,-22,-15,-21,-17,-23,-16,-20,-16,-21,-20,-21,-19,-21,-19,-19,-20,-17,-20,-18,-20,-16,-21,-15,-21,-15,-20,-13,-21,-11,-20,-10,-20,-11,-19,-9,-20,-8,-22,-6,-19,-7,-20,-4,-19,-2,-18,-2,-18,1,-17,4,-18,0,0,0,0,0,0,0,0,0,0]" + +- **Metadata Fields**: Including type, id, mac, rssi, rate, ... len, first_word, etc. +- **CSI Data**: Stored in the last item data array, enclosed in [...]. It contains the channel state information for each subcarrier. For detailed structure, refer to the Long Training Field (LTF) section of the [ESP-WIFI-CSI Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#wi-fi-channel-state-information). For each subcarrier, the imaginary part is stored first, followed by the real part (i.e., [Imaginary part of subcarrier 1, Real part of subcarrier 1, Imaginary part of subcarrier 2, Real part of subcarrier 2, Imaginary part of subcarrier 3, Real part of subcarrier 3, ...]). +The order of LTF is: LLTF, HT-LTF, STBC-HT-LTF. Depending on the channel and grouping information, not all 3 LTFs may appear. + +## A&Q + +### 1. `csi_send` prints no memory +- **Phenomenon**: The following log appears on the serial port: + ```shell + W (510693) csi_send: ESP-NOW send error + ```` +- **Reason**: The current channel is congested causing congestion in sending packets, so that the ESP-NOW buffer space is full +- **Solution**: Change the Wi-Fi channel or change to a place with a better network environment + +### 2. `csi_data_read_parse.py` Serial port printing exception +- **Phenomenon**: The following log appears on the serial port: + ```shell + element number is not equal + data is not incomplete + ```` +- **Reason**: PYQT takes up a lot of CPU when drawing, causing the PC to be unable to read the serial port buffer queue in time, resulting in data confusion +- **Solution**: Advance the baud rate of the serial port diff --git a/get-started/README_cn.md b/get-started/README_cn.md new file mode 100644 index 0000000..ee92149 --- /dev/null +++ b/get-started/README_cn.md @@ -0,0 +1,83 @@ +# Get Started Examples +[[English]](./README.md) + +本示例演示了如何通过两个 ESP32 芯片之间的通信获取 CSI 数据,并使用图形界面显示 CSI 子载波的实时数据。 + +## 硬件 + +您需要准备两块开发板,一块作为发送方,一块作为接收方。 + +![example_display](./docs/_static/example_display.png) + +为了保证 CSI 的感知效果,请尽量满足以下要求: + +1. 使用 ESP32-C5 / ESP32-C6:ESP32-C5 支持双频WIFI通讯,是目前最好的射频芯片,ESP32-C6是目前已上市芯片中最好的射频芯片。 +2. 使用外部天线:PCB 天线的方向性较差,容易受到主板干扰。 +3. 两个设备之间的距离应大于 1 米。 + +## 绑定 + +1. 分别烧录 `csi_recv` and `csi_send` 到两块 ESP32 上。 + + ![device_log](./docs/_static/device_log.png) + + ```shell + # csi_send + cd esp-csi/examples/get-started/csi_send + idf.py set-target esp32c3 + idf.py flash -b 921600 -p /dev/ttyUSB0 monitor + + # csi_recv + cd esp-csi/examples/get-started/csi_recv + idf.py set-target esp32c3 + idf.py flash -b 921600 -p /dev/ttyUSB1 + ``` + +2. 在 `csi_recv` 里运行 `csi_data_read_parse.py` 做数据分析。 在运行前请关闭 `idf.py monitor` 。 + + ```shell + cd esp-csi-gitlab/examples/get-started/tools + + # Install python related dependencies + pip install -r requirements.txt + + # Graphical display + python csi_data_read_parse.py -p /dev/ttyUSB1 + ``` + +## CSI 数据格式 + +以一行 CSI raw data 为例: + +> type,id,mac,rssi,rate,sig_mode,mcs,bandwidth,smoothing,not_sounding,aggregation,stbc,fec_coding,sgi,noise_floor,ampdu_cnt,channel,secondary_channel,local_timestamp,ant,sig_len,rx_state,len,first_word,data +CSI_DATA,0,94:d9:b3:80:8c:81,-30,11,1,6,1,0,1,0,1,0,0,-93,0,13,2,2751923,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,5,0,20,1,20,1,19,0,17,1,16,2,15,2,14,1,12,0,12,-1,12,-3,12,-4,13,-6,15,-7,16,-8,16,-8,16,-8,16,-6,15,-5,15,-4,14,-4,13,-4,12,-4,11,-4,10,-4,9,-5,8,-6,4,-4,8,-9,9,-10,9,-10,10,-11,11,-10,11,-10,12,-9,11,-8,11,-7,10,-6,9,-6,7,-6,6,-7,5,-7,5,-8,5,-9,5,-10,5,-11,5,-11,6,-11,7,-11,8,-11,9,-10,9,-9,8,-8,8,-7,1,-2,0,0,0,0,0,0,0,0]" + +*esp32-c5 和 esp32-c6 为:* +>type,seq,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,sig_len,rx_state,len,first_word,data +CSI_DATA,7,1a:00:00:00:00:00,-23,11,-96,32,4,11,372852,47,0,256,0,"[0,0,0,0,0,0,0,0,0,0,0,0,-6,-13,-6,-14,-3,-15,-2,-16,-2,-18,-3,-17,-1,-18,2,-19,0,-21,3,-21,1,-20,4,-21,4,-23,6,-22,7,-21,8,-23,9,-23,10,-21,10,-22,11,-20,12,-19,11,-25,13,-22,12,-23,14,-23,14,-22,14,-21,13,-21,13,-19,14,-22,14,-19,14,-23,16,-22,14,-22,13,-22,14,-21,13,-22,13,-23,13,-23,12,-26,13,-24,13,-24,12,-25,14,-29,13,-26,14,-26,15,-26,13,-27,15,-28,16,-27,14,-30,15,-28,16,-28,18,-27,16,-31,18,-31,19,-31,0,0,0,0,0,0,-29,-23,-28,-21,-30,-18,-26,-20,-30,-21,-25,-23,-26,-21,-25,-22,-26,-19,-22,-22,-24,-19,-22,-20,-24,-20,-24,-18,-23,-18,-22,-18,-25,-17,-23,-18,-21,-18,-21,-17,-24,-14,-22,-16,-21,-14,-22,-15,-21,-19,-23,-16,-22,-17,-23,-13,-23,-16,-25,-15,-21,-17,-22,-15,-21,-17,-23,-16,-20,-16,-21,-20,-21,-19,-21,-19,-19,-20,-17,-20,-18,-20,-16,-21,-15,-21,-15,-20,-13,-21,-11,-20,-10,-20,-11,-19,-9,-20,-8,-22,-6,-19,-7,-20,-4,-19,-2,-18,-2,-18,1,-17,4,-18,0,0,0,0,0,0,0,0,0,0]" + +- **元数据字段**:包括 type, id, mac, ... first_word等。 +- **CSI 数据**:由最后一项 data 数组存储,用 [...] 框起。包含每个子载波的信道状态信息。具体结构可参考 [ESP-WIFI-CSI Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#wi-fi-channel-state-information) 的 Long Training Field (LTF) 部分。对于每一个子载波,先储存虚数部分,再储存实数部分(即:[子载波1的虚部,子载波1的实部,子载波2的虚部,子载波2的实部,子载波3的虚部,子载波3的实部,...])。 + +LTF的顺序为:LLTF、HT-LTF、STBC-HT-LTF。根据通道和分组信息,可能不会出现所有3个LTF。 +he order of LTF is: LLTF, HT-LTF, STBC-HT-LTF. Depending on the channel and grouping information, not all 3 LTFs may appear. + +## A&Q + + ### 1. csi_send 打印无内存 + +- **现象**:串口上出现以下日志: +```shell + W (510693) csi_send: ESP-NOW 发送错误 +``` +- **原因**:当前信道拥堵,导致发送数据包时出现拥堵,ESP-NOW 缓冲区空间满 +- **解决方案**:更换 Wi-Fi 信道或更换到网络环境更好的地方 +### 2. csi_data_read_parse.py 串口打印异常 + +- **现象**:串口上出现以下日志: +```shell + element number is not equal + data is not incomplete +``` +- **原因**:绘图时 PYQT 占用大量 CPU,导致 PC 无法及时读取串口缓冲队列,造成数据混乱 +- **解决方案**:提高串口的波特率 diff --git a/get-started/csi_recv/CMakeLists.txt b/get-started/csi_recv/CMakeLists.txt new file mode 100644 index 0000000..727efe3 --- /dev/null +++ b/get-started/csi_recv/CMakeLists.txt @@ -0,0 +1,15 @@ + +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctlycmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +message("EXTRA_COMPONENT_DIRS: " ${EXTRA_COMPONENT_DIRS}) + +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/get-started/csi_recv/README.md b/get-started/csi_recv/README.md new file mode 100644 index 0000000..f2064ed --- /dev/null +++ b/get-started/csi_recv/README.md @@ -0,0 +1 @@ +# CSI_RECV diff --git a/get-started/csi_recv/main/CMakeLists.txt b/get-started/csi_recv/main/CMakeLists.txt new file mode 100644 index 0000000..a941e22 --- /dev/null +++ b/get-started/csi_recv/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRC_DIRS "." + INCLUDE_DIRS ".") diff --git a/get-started/csi_recv/main/app_main.c b/get-started/csi_recv/main/app_main.c new file mode 100644 index 0000000..093f213 --- /dev/null +++ b/get-started/csi_recv/main/app_main.c @@ -0,0 +1,297 @@ +/* + * SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* Get Start Example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#include +#include +#include + +#include "nvs_flash.h" + +#include "esp_mac.h" +#include "rom/ets_sys.h" +#include "esp_log.h" +#include "esp_wifi.h" +#include "esp_netif.h" +#include "esp_now.h" +#include "esp_csi_gain_ctrl.h" + +#define CONFIG_LESS_INTERFERENCE_CHANNEL 11 +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 || (CONFIG_IDF_TARGET_ESP32C6 && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0)) +#define CONFIG_WIFI_BAND_MODE WIFI_BAND_MODE_2G_ONLY +#define CONFIG_WIFI_2G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_5G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_2G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_WIFI_5G_PROTOCOL WIFI_PROTOCOL_11N +#else +#define CONFIG_WIFI_BANDWIDTH WIFI_BW_HT40 +#endif + +#define CONFIG_ESP_NOW_PHYMODE WIFI_PHY_MODE_HT40 +#define CONFIG_ESP_NOW_RATE WIFI_PHY_RATE_MCS0_LGI +#define CONFIG_FORCE_GAIN 0 + +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 +#define CSI_FORCE_LLTF 0 +#endif + +#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 +#define CONFIG_GAIN_CONTROL 1 +#endif + +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0) +#define ESP_IF_WIFI_STA ESP_MAC_WIFI_STA +#endif + +static const uint8_t CONFIG_CSI_SEND_MAC[] = {0x1a, 0x00, 0x00, 0x00, 0x00, 0x00}; +static const char *TAG = "csi_recv"; + +static void wifi_init() +{ + ESP_ERROR_CHECK(esp_event_loop_create_default()); + ESP_ERROR_CHECK(esp_netif_init()); + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(esp_wifi_init(&cfg)); + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); + +#if CONFIG_IDF_TARGET_ESP32C5 + ESP_ERROR_CHECK(esp_wifi_start()); + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + .ghz_5g = CONFIG_WIFI_5G_PROTOCOL + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + .ghz_5g = CONFIG_WIFI_5G_BANDWIDTHS + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); +#elif (CONFIG_IDF_TARGET_ESP32C6 && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0)) || CONFIG_IDF_TARGET_ESP32C61 + ESP_ERROR_CHECK(esp_wifi_start()); + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); +#else + ESP_ERROR_CHECK(esp_wifi_set_bandwidth(ESP_IF_WIFI_STA, CONFIG_WIFI_BANDWIDTH)); + ESP_ERROR_CHECK(esp_wifi_start()); +#endif + + ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_NONE)); +#if CONFIG_IDF_TARGET_ESP32C5 + if ((CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) + || (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_5G_ONLY && CONFIG_WIFI_5G_BANDWIDTHS == WIFI_BW_HT20)) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } +#elif (CONFIG_IDF_TARGET_ESP32C6 && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0)) || CONFIG_IDF_TARGET_ESP32C61 + if (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } +#else + if (CONFIG_WIFI_BANDWIDTH == WIFI_BW_HT20) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } +#endif + + ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_STA, CONFIG_CSI_SEND_MAC)); +} + +static void wifi_esp_now_init(esp_now_peer_info_t peer) +{ + ESP_ERROR_CHECK(esp_now_init()); + ESP_ERROR_CHECK(esp_now_set_pmk((uint8_t *)"pmk1234567890123")); + esp_now_rate_config_t rate_config = { + .phymode = CONFIG_ESP_NOW_PHYMODE, + .rate = CONFIG_ESP_NOW_RATE,// WIFI_PHY_RATE_MCS0_LGI, + .ersu = false, + .dcm = false + }; + ESP_ERROR_CHECK(esp_now_add_peer(&peer)); + ESP_ERROR_CHECK(esp_now_set_peer_rate_config(peer.peer_addr, &rate_config)); + +} + +static void wifi_csi_rx_cb(void *ctx, wifi_csi_info_t *info) +{ + if (!info || !info->buf) { + ESP_LOGW(TAG, "<%s> wifi_csi_cb", esp_err_to_name(ESP_ERR_INVALID_ARG)); + return; + } + + if (memcmp(info->mac, CONFIG_CSI_SEND_MAC, 6)) { + return; + } + + const wifi_pkt_rx_ctrl_t *rx_ctrl = &info->rx_ctrl; + static int s_count = 0; + float compensate_gain = 1.0f; + static uint8_t agc_gain = 0; + static int8_t fft_gain = 0; +#if CONFIG_GAIN_CONTROL + static uint8_t agc_gain_baseline = 0; + static int8_t fft_gain_baseline = 0; + esp_csi_gain_ctrl_get_rx_gain(rx_ctrl, &agc_gain, &fft_gain); + if (s_count < 100) { + esp_csi_gain_ctrl_record_rx_gain(agc_gain, fft_gain); + } else if (s_count == 100) { + esp_csi_gain_ctrl_get_rx_gain_baseline(&agc_gain_baseline, &fft_gain_baseline); +#if CONFIG_FORCE_GAIN + esp_csi_gain_ctrl_set_rx_force_gain(agc_gain_baseline, fft_gain_baseline); + ESP_LOGD(TAG, "fft_force %d, agc_force %d", fft_gain_baseline, agc_gain_baseline); +#endif + } + esp_csi_gain_ctrl_get_gain_compensation(&compensate_gain, agc_gain, fft_gain); + ESP_LOGI(TAG, "compensate_gain %f, agc_gain %d, fft_gain %d", compensate_gain, agc_gain, fft_gain); +#endif + + uint32_t rx_id = *(uint32_t *)(info->payload + 15); +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 + if (!s_count) { + ESP_LOGI(TAG, "================ CSI RECV ================"); + ets_printf("type,seq,mac,rssi,rate,noise_floor,fft_gain,agc_gain,channel,local_timestamp,sig_len,rx_state,len,first_word,data\n"); + } + + ets_printf("CSI_DATA,%d," MACSTR ",%d,%d,%d,%d,%d,%d,%d,%d,%d", + rx_id, MAC2STR(info->mac), rx_ctrl->rssi, rx_ctrl->rate, + rx_ctrl->noise_floor, fft_gain, agc_gain, rx_ctrl->channel, + rx_ctrl->timestamp, rx_ctrl->sig_len, rx_ctrl->rx_state); +#else + if (!s_count) { + ESP_LOGI(TAG, "================ CSI RECV ================"); + ets_printf("type,id,mac,rssi,rate,sig_mode,mcs,bandwidth,smoothing,not_sounding,aggregation,stbc,fec_coding,sgi,noise_floor,ampdu_cnt,channel,secondary_channel,local_timestamp,ant,sig_len,rx_state,len,first_word,data\n"); + } + + ets_printf("CSI_DATA,%d," MACSTR ",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", + rx_id, MAC2STR(info->mac), rx_ctrl->rssi, rx_ctrl->rate, rx_ctrl->sig_mode, + rx_ctrl->mcs, rx_ctrl->cwb, rx_ctrl->smoothing, rx_ctrl->not_sounding, + rx_ctrl->aggregation, rx_ctrl->stbc, rx_ctrl->fec_coding, rx_ctrl->sgi, + rx_ctrl->noise_floor, rx_ctrl->ampdu_cnt, rx_ctrl->channel, rx_ctrl->secondary_channel, + rx_ctrl->timestamp, rx_ctrl->ant, rx_ctrl->sig_len, rx_ctrl->rx_state); + +#endif +#if (CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61) && CSI_FORCE_LLTF + int16_t csi = ((int16_t)(((((uint16_t)info->buf[1]) << 8) | info->buf[0]) << 4) >> 4); + ets_printf(",%d,%d,\"[%d", (info->len - 2) / 2, info->first_word_invalid, (int16_t)(compensate_gain * csi)); + for (int i = 2; i < (info->len - 2); i += 2) { + csi = ((int16_t)(((((uint16_t)info->buf[i + 1]) << 8) | info->buf[i]) << 4) >> 4); + ets_printf(",%d", (int16_t)(compensate_gain * csi)); + } +#else + ets_printf(",%d,%d,\"[%d", info->len, info->first_word_invalid, (int16_t)(compensate_gain * info->buf[0])); + for (int i = 1; i < info->len; i++) { + ets_printf(",%d", (int16_t)(compensate_gain * info->buf[i])); + } +#endif + ets_printf("]\"\n"); + s_count++; +} + +static void wifi_csi_init() +{ + ESP_ERROR_CHECK(esp_wifi_set_promiscuous(true)); + + /**< default config */ +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 + wifi_csi_config_t csi_config = { + .enable = true, + .acquire_csi_legacy = false, + .acquire_csi_force_lltf = CSI_FORCE_LLTF, + .acquire_csi_ht20 = true, + .acquire_csi_ht40 = true, + .acquire_csi_vht = false, + .acquire_csi_su = false, + .acquire_csi_mu = false, + .acquire_csi_dcm = false, + .acquire_csi_beamformed = false, + .acquire_csi_he_stbc_mode = 2, + .val_scale_cfg = 0, + .dump_ack_en = false, + .reserved = false + }; +#elif CONFIG_IDF_TARGET_ESP32C6 + wifi_csi_config_t csi_config = { + .enable = true, + .acquire_csi_legacy = false, + .acquire_csi_ht20 = true, + .acquire_csi_ht40 = true, + .acquire_csi_su = true, + .acquire_csi_mu = true, + .acquire_csi_dcm = true, + .acquire_csi_beamformed = true, + .acquire_csi_he_stbc = 2, + .val_scale_cfg = false, + .dump_ack_en = false, + .reserved = false + }; +#else + wifi_csi_config_t csi_config = { + .lltf_en = true, + .htltf_en = true, + .stbc_htltf2_en = true, + .ltf_merge_en = true, + .channel_filter_en = true, + .manu_scale = false, + .shift = false, + }; +#endif + ESP_ERROR_CHECK(esp_wifi_set_csi_config(&csi_config)); + ESP_ERROR_CHECK(esp_wifi_set_csi_rx_cb(wifi_csi_rx_cb, NULL)); + ESP_ERROR_CHECK(esp_wifi_set_csi(true)); +} + +void app_main() +{ + /** + * @brief Initialize NVS + */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + /** + * @brief Initialize Wi-Fi + */ + wifi_init(); + + /** + * @brief Initialize ESP-NOW + * ESP-NOW protocol see: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html + */ + + esp_now_peer_info_t peer = { + .channel = CONFIG_LESS_INTERFERENCE_CHANNEL, + .ifidx = WIFI_IF_STA, + .encrypt = false, + .peer_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + }; + + wifi_esp_now_init(peer); + + wifi_csi_init(); +} diff --git a/get-started/csi_recv/main/idf_component.yml b/get-started/csi_recv/main/idf_component.yml new file mode 100644 index 0000000..7f4789b --- /dev/null +++ b/get-started/csi_recv/main/idf_component.yml @@ -0,0 +1,4 @@ +## IDF Component Manager Manifest File +dependencies: + idf: ">=4.4.1" + esp_csi_gain_ctrl: ">=0.1.4" diff --git a/get-started/csi_recv/sdkconfig.defaults b/get-started/csi_recv/sdkconfig.defaults new file mode 100644 index 0000000..c4e654d --- /dev/null +++ b/get-started/csi_recv/sdkconfig.defaults @@ -0,0 +1,10 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration +# +CONFIG_PARTITION_TABLE_OFFSET=0xa000 +CONFIG_ESP_CONSOLE_UART_CUSTOM=y +CONFIG_ESP_CONSOLE_UART_BAUDRATE=921600 +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +CONFIG_ESP_WIFI_CSI_ENABLED=y +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n diff --git a/get-started/csi_recv_router/CMakeLists.txt b/get-started/csi_recv_router/CMakeLists.txt new file mode 100644 index 0000000..b82b53d --- /dev/null +++ b/get-started/csi_recv_router/CMakeLists.txt @@ -0,0 +1,19 @@ + +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctlycmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +# (Not part of the boilerplate) +# This example uses an extra component for common functions such as Wi-Fi and Ethernet connection. +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/protocol_examples_common) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +message("EXTRA_COMPONENT_DIRS: " ${EXTRA_COMPONENT_DIRS}) + +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/get-started/csi_recv_router/README.md b/get-started/csi_recv_router/README.md new file mode 100644 index 0000000..708bcb4 --- /dev/null +++ b/get-started/csi_recv_router/README.md @@ -0,0 +1,119 @@ +# Recv router CSI example + +(See the README.md file in the upper level 'examples' directory for more information about examples.) + +The device triggers the router to send packets through the Ping command to obtain the CSI data between the device and the router + +## How to use example +Before project configuration and build, be sure to set the correct chip target using `idf.py set-target `. + +### Hardware Required + +* A development board with ESP32/ESP32-S2/ESP32-C3/ESP32-S3/ESP32-C5/ESP32-C6/ESP32-C61 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.) +* A USB cable for power supply and programming + +### Configure the project + +``` +idf.py menuconfig +``` +Open the project configuration menu (`idf.py menuconfig`) to configure Wi-Fi or Ethernet. See "Establishing Wi-Fi or Ethernet Connection" section in [examples/protocols/README.md](https://github.com/espressif/esp-idf/tree/master/examples/protocols#establishing-wi-fi-or-ethernet-connection) for more details. + +### Build and Flash + +Build the project and flash it to the board, then run monitor tool to view serial output: + +``` +idf.py -p PORT flash monitor +``` + +(Replace PORT with the name of the serial port to use.) + +(To exit the serial monitor, type ``Ctrl-]``.) + +See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects. + +## Example Output + +```shell +I (0) cpu_start: App cpu up. +I (288) cpu_start: Pro cpu start user code +I (288) cpu_start: cpu freq: 240000000 +I (288) cpu_start: Application information: +I (289) cpu_start: Project name: csi_recv_router +I (289) cpu_start: App version: e1dd673-dirty +I (290) cpu_start: Compile time: Jul 14 2022 18:55:08 +I (291) cpu_start: ELF file SHA256: 81680e58e5d0e53c... +I (292) cpu_start: ESP-IDF: v4.4.1-dirty +I (293) heap_init: Initializing. RAM available for dynamic allocation: +I (293) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM +I (294) heap_init: At 3FFB7310 len 00028CF0 (163 KiB): DRAM +I (295) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM +I (296) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM +I (296) heap_init: At 40093AA4 len 0000C55C (49 KiB): IRAM +I (298) spi_flash: detected chip: generic +I (299) spi_flash: flash io: dio +W (299) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header. +I (301) cpu_start: Starting scheduler on PRO CPU. +I (0) cpu_start: Starting scheduler on APP CPU. +I (331) wifi:wifi driver task: 3ffbfa74, prio:23, stack:6656, core=0 +I (332) system_api: Base MAC address is not set +I (332) system_api: read default base MAC address from EFUSE +I (335) wifi:wifi firmware version: 63017e0 +I (335) wifi:wifi certification version: v7.0 +I (335) wifi:config NVS flash: enabled +I (335) wifi:config nano formatting: disabled +I (336) wifi:Init data frame dynamic rx buffer num: 128 +I (336) wifi:Init management frame dynamic rx buffer num: 128 +I (337) wifi:Init management short buffer num: 32 +I (337) wifi:Init dynamic tx buffer num: 32 +I (338) wifi:Init static rx buffer size: 2212 +I (338) wifi:Init static rx buffer num: 10 +I (339) wifi:Init dynamic rx buffer num: 128 +I (340) wifi_init: tcpip mbox: 32 +I (340) wifi_init: udp mbox: 6 +I (340) wifi_init: tcp mbox: 6 +I (341) wifi_init: tcp tx win: 5744 +I (341) wifi_init: tcp rx win: 5744 +I (342) wifi_init: tcp mss: 1440 +I (342) wifi_init: WiFi IRAM OP enabled +I (343) wifi_init: WiFi RX IRAM OP enabled +I (344) example_connect: Connecting to TP-LINK_8C81... +I (345) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07 +I (433) wifi:mode : sta (ac:67:b2:53:78:d0) +I (434) wifi:enable tsf +I (437) example_connect: Waiting for IP(s) +I (2483) wifi:new:<13,2>, old:<1,0>, ap:<255,255>, sta:<13,2>, prof:1 +I (2485) wifi:state: init -> auth (b0) +I (2503) wifi:state: auth -> assoc (0) +I (2509) wifi:state: assoc -> run (10) +I (2510) wifi:connected with TP-LINK_8C81, aid = 1, channel 13, 40D, bssid = 94:d9:b3:80:8c:81 +I (2511) wifi:security: Open Auth, phy: bgn, rssi: -28 +I (2511) wifi:pm start, type: 1 + +I (2535) wifi:AP's beacon interval = 102400 us, DTIM period = 1 +I (3331) esp_netif_handlers: example_connect: sta ip: 192.168.0.107, mask: 255.255.255.0, gw: 192.168.0.1 +I (3332) example_connect: Got IPv4 event: Interface "example_connect: sta" address: 192.168.0.107 +I (4330) example_connect: Got IPv6 event: Interface "example_connect: sta" address: fe80:0000:0000:0000:ae67:b2ff:fe53:78d0, type: ESP_IP6_ADDR_IS_LINK_LOCAL +I (4332) example_connect: Connected to example_connect: sta +I (4332) example_connect: - IPv4 address: 192.168.0.107 +I (4333) example_connect: - IPv6 address: fe80:0000:0000:0000:ae67:b2ff:fe53:78d0, type: ESP_IP6_ADDR_IS_LINK_LOCAL +I (4335) csi_recv_router: got ip:192.168.0.107, gw: 192.168.0.1 +I (4346) csi_recv_router: ================ CSI RECV ================ +type,seq,mac,rssi,rate,sig_mode,mcs,bandwidth,smoothing,not_sounding,aggregation,stbc,fec_coding,sgi,noise_floor,ampdu_cnt,channel,secondary_channel,local_timestamp,ant,sig_len,rx_state,len,first_word,data +CSI_DATA,0,94:d9:b3:80:8c:81,-30,11,1,6,1,0,1,0,1,0,0,-93,0,13,2,2751923,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,5,0,20,1,20,1,19,0,17,1,16,2,15,2,14,1,12,0,12,-1,12,-3,12,-4,13,-6,15,-7,16,-8,16,-8,16,-8,16,-6,15,-5,15,-4,14,-4,13,-4,12,-4,11,-4,10,-4,9,-5,8,-6,4,-4,8,-9,9,-10,9,-10,10,-11,11,-10,11,-10,12,-9,11,-8,11,-7,10,-6,9,-6,7,-6,6,-7,5,-7,5,-8,5,-9,5,-10,5,-11,5,-11,6,-11,7,-11,8,-11,9,-10,9,-9,8,-8,8,-7,1,-2,0,0,0,0,0,0,0,0]" +CSI_DATA,1,94:d9:b3:80:8c:81,-31,11,1,6,1,0,1,0,1,0,0,-93,0,13,2,2794394,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,5,-2,21,-7,20,-7,20,-6,19,-6,17,-5,15,-5,13,-5,11,-6,11,-7,10,-9,9,-10,10,-11,11,-13,12,-14,13,-14,13,-13,13,-12,13,-12,13,-11,13,-9,12,-8,10,-8,9,-8,8,-8,7,-9,6,-10,2,-6,5,-13,5,-13,5,-14,6,-14,7,-14,8,-14,8,-13,8,-12,7,-11,7,-11,6,-10,5,-10,4,-9,3,-10,2,-10,1,-11,1,-11,1,-12,1,-13,2,-14,3,-14,4,-14,5,-13,5,-12,5,-11,4,-10,1,-3,0,0,0,0,0,0,0,0]" +CSI_DATA,2,94:d9:b3:80:8c:81,-30,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2801990,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-4,-7,-16,-27,-15,-27,-13,-27,-12,-25,-10,-24,-10,-21,-10,-19,-11,-16,-12,-14,-14,-13,-16,-12,-18,-12,-20,-12,-21,-13,-22,-14,-22,-15,-21,-16,-20,-16,-19,-16,-17,-16,-16,-14,-15,-13,-14,-11,-14,-9,-15,-7,-15,-6,-9,-2,-19,-3,-19,-3,-21,-3,-22,-3,-22,-4,-22,-5,-21,-6,-20,-6,-19,-7,-17,-6,-16,-5,-15,-4,-14,-2,-14,-1,-14,1,-15,2,-16,3,-18,4,-19,4,-20,3,-21,2,-21,1,-20,0,-19,-1,-18,-3,-16,-3,-4,-1,0,0,0,0,0,0,0,0]" +CSI_DATA,3,94:d9:b3:80:8c:81,-31,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2810526,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-6,-1,-22,-3,-22,-4,-21,-5,-20,-5,-18,-5,-17,-4,-15,-3,-14,-2,-14,0,-14,2,-14,3,-15,4,-16,5,-17,5,-18,5,-18,4,-18,3,-18,3,-18,2,-17,2,-15,2,-14,2,-13,2,-12,3,-11,4,-10,5,-5,3,-10,8,-11,8,-11,9,-12,9,-13,9,-13,9,-13,8,-13,7,-12,6,-11,5,-10,5,-9,5,-8,6,-7,7,-7,7,-6,8,-7,9,-7,10,-7,10,-8,10,-9,10,-10,10,-10,9,-10,8,-9,7,-9,6,-2,1,0,0,0,0,0,0,0,0]" +CSI_DATA,4,94:d9:b3:80:8c:81,-31,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2835649,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-5,3,-19,15,-19,14,-19,13,-19,11,-17,10,-16,10,-14,9,-12,9,-10,10,-8,12,-7,13,-7,15,-7,16,-8,17,-9,18,-10,18,-10,17,-10,17,-11,15,-11,14,-10,13,-9,12,-7,11,-6,11,-4,11,-3,11,-1,6,-1,14,-1,14,-1,15,-1,16,-2,17,-3,17,-3,16,-4,15,-4,14,-3,13,-3,12,-2,11,-1,10,0,10,2,10,3,10,4,11,4,12,4,13,3,14,2,14,1,15,0,14,0,13,-1,12,-1,11,-1,2,0,0,0,0,0,0,0,0]" +CSI_DATA,5,94:d9:b3:80:8c:81,-31,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2848462,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-1,5,-2,21,-3,21,-4,20,-4,18,-4,17,-3,16,-2,14,-1,13,1,12,2,12,4,13,5,13,6,14,6,15,6,16,6,17,5,17,4,17,3,16,3,15,2,14,3,12,3,11,4,10,5,9,6,8,3,4,9,9,9,9,10,9,10,10,10,11,9,11,9,11,8,11,7,11,7,10,6,9,6,7,6,6,7,6,8,5,9,5,9,4,10,4,11,5,11,6,11,7,11,7,10,8,9,8,8,8,7,7,1,1,0,0,0,0,0,0,0,0]" +CSI_DATA,6,94:d9:b3:80:8c:81,-31,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2860318,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-2,-6,-7,-22,-6,-21,-5,-21,-4,-20,-3,-19,-3,-17,-4,-15,-5,-13,-6,-12,-8,-12,-9,-12,-10,-12,-12,-13,-12,-13,-12,-14,-12,-15,-11,-15,-11,-15,-10,-15,-9,-14,-8,-13,-8,-12,-8,-11,-8,-9,-9,-8,-10,-7,-6,-4,-12,-6,-13,-6,-13,-7,-14,-8,-14,-8,-13,-9,-13,-9,-12,-9,-11,-9,-10,-8,-10,-7,-9,-6,-9,-5,-9,-4,-10,-3,-11,-3,-11,-2,-12,-2,-13,-3,-14,-3,-14,-4,-13,-5,-13,-5,-12,-6,-11,-6,-10,-6,-3,-2,0,0,0,0,0,0,0,0]" +CSI_DATA,7,94:d9:b3:80:8c:81,-30,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2867650,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,6,3,25,15,25,15,24,16,22,15,20,14,18,13,16,11,16,8,16,6,17,4,19,2,20,1,22,1,24,1,25,1,25,2,25,3,24,4,23,4,21,5,19,4,18,4,17,2,16,1,15,-1,15,-3,7,-3,17,-6,17,-7,18,-8,19,-7,20,-7,20,-6,20,-5,20,-4,19,-3,17,-3,16,-3,14,-4,13,-5,12,-6,12,-8,12,-9,12,-11,13,-11,14,-12,15,-11,17,-11,17,-10,18,-9,17,-7,16,-6,14,-5,3,-2,0,0,0,0,0,0,0,0]" +CSI_DATA,8,94:d9:b3:80:8c:81,-31,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2874562,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-6,0,-22,1,-22,0,-21,-1,-20,-2,-18,-2,-17,-1,-15,-1,-14,1,-14,2,-13,4,-13,5,-14,6,-15,7,-16,8,-17,8,-17,7,-17,6,-17,5,-17,5,-16,4,-15,4,-13,4,-12,4,-11,4,-10,5,-9,6,-5,4,-9,9,-10,10,-10,10,-11,10,-12,10,-12,10,-12,9,-12,8,-11,7,-11,6,-10,6,-9,6,-8,7,-7,7,-6,8,-6,8,-6,9,-6,10,-6,11,-7,11,-8,11,-9,10,-10,9,-10,8,-9,7,-8,7,-2,1,0,0,0,0,0,0,0,0]" +CSI_DATA,9,94:d9:b3:80:8c:81,-31,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2881588,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,3,-7,13,-26,13,-25,14,-23,14,-22,13,-20,11,-18,9,-17,7,-16,4,-16,2,-17,0,-18,-1,-20,-1,-22,-1,-23,-1,-24,0,-25,1,-25,1,-24,2,-23,3,-21,3,-19,2,-18,0,-16,-1,-15,-3,-14,-4,-14,-4,-8,-8,-16,-9,-16,-9,-17,-10,-18,-9,-19,-8,-19,-7,-19,-6,-19,-6,-18,-5,-17,-5,-15,-5,-13,-6,-12,-8,-11,-9,-10,-11,-10,-12,-10,-13,-11,-14,-12,-14,-13,-13,-14,-12,-15,-11,-15,-10,-15,-9,-14,-8,-13,-2,-4,0,0,0,0,0,0,0,0]" +CSI_DATA,10,94:d9:b3:80:8c:81,-32,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2893341,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-5,-3,-20,-13,-20,-13,-18,-14,-17,-13,-15,-13,-14,-11,-13,-9,-13,-7,-13,-5,-14,-4,-15,-2,-16,-2,-18,-1,-19,-1,-20,-2,-20,-3,-20,-4,-19,-4,-18,-4,-17,-4,-15,-4,-14,-4,-13,-3,-12,-1,-12,0,-12,2,-7,1,-13,4,-14,4,-15,5,-15,5,-16,5,-16,4,-16,3,-15,2,-15,2,-13,1,-12,2,-11,2,-10,3,-9,4,-9,5,-9,6,-9,7,-10,8,-11,8,-12,8,-13,8,-13,7,-13,6,-13,5,-12,4,-11,4,-3,1,0,0,0,0,0,0,0,0]" +CSI_DATA,11,94:d9:b3:80:8c:81,-32,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2912696,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,5,1,22,4,22,5,21,5,19,5,17,5,16,5,14,3,13,1,13,0,13,-2,14,-4,15,-5,16,-6,17,-6,18,-6,18,-5,18,-4,18,-4,17,-3,16,-2,15,-2,13,-2,12,-3,11,-4,10,-5,9,-6,4,-4,10,-10,10,-10,11,-11,11,-10,12,-10,13,-10,13,-9,13,-8,12,-7,11,-7,10,-6,8,-7,7,-7,6,-8,6,-9,5,-10,5,-11,5,-12,6,-12,7,-12,8,-12,9,-12,9,-11,9,-10,9,-9,8,-7,2,-2,0,0,0,0,0,0,0,0]" +CSI_DATA,12,94:d9:b3:80:8c:81,-32,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2921403,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-6,0,-24,2,-23,1,-22,0,-21,-1,-20,-1,-18,-1,-16,0,-15,1,-14,3,-13,5,-13,7,-14,8,-15,9,-16,10,-17,10,-17,9,-18,9,-17,8,-17,7,-16,6,-15,5,-13,5,-12,6,-10,6,-9,7,-8,8,-4,5,-8,11,-8,12,-8,12,-9,13,-10,13,-11,12,-11,12,-11,11,-10,10,-9,9,-8,8,-7,8,-6,8,-4,9,-3,9,-3,10,-3,11,-3,12,-3,12,-4,13,-5,13,-6,13,-6,12,-7,11,-6,10,-6,9,-2,2,0,0,0,0,0,0,0,0]" +CSI_DATA,13,94:d9:b3:80:8c:81,-32,11,1,7,1,0,1,0,1,0,0,-93,0,13,2,2936234,0,67,0,128,1,"[67,48,4,0,0,0,0,0,0,0,-6,-1,-23,-1,-23,-1,-22,-2,-21,-3,-19,-3,-18,-2,-16,-1,-14,0,-14,2,-13,4,-14,5,-14,7,-16,8,-17,8,-18,8,-18,7,-18,6,-18,6,-18,5,-17,5,-15,4,-14,4,-12,4,-11,5,-9,6,-9,7,-5,4,-9,10,-9,11,-10,12,-10,12,-11,12,-12,11,-12,10,-11,9,-11,9,-10,8,-9,7,-8,7,-6,8,-5,8,-5,9,-4,10,-4,11,-4,11,-5,12,-5,12,-6,13,-7,12,-8,12,-8,10,-8,9,-7,8,-2,2,0,0,0,0,0,0,0,0]" +C +``` diff --git a/get-started/csi_recv_router/dependencies.lock b/get-started/csi_recv_router/dependencies.lock new file mode 100644 index 0000000..f6cebed --- /dev/null +++ b/get-started/csi_recv_router/dependencies.lock @@ -0,0 +1,156 @@ +dependencies: + espressif/cmake_utilities: + component_hash: 351350613ceafba240b761b4ea991e0f231ac7a9f59a9ee901f751bddc0bb18f + dependencies: + - name: idf + require: private + version: '>=4.1' + source: + registry_url: https://components.espressif.com + type: service + version: 0.5.3 + espressif/esp_csi_gain_ctrl: + component_hash: bb7b9e28f47f4de968d4aaa2a083ea5764e5994dd0c5146146958060e6b66247 + dependencies: + - name: espressif/cmake_utilities + registry_url: https://components.espressif.com + require: private + version: 0.* + - name: idf + require: private + version: '>=4.4.1' + source: + registry_url: https://components.espressif.com/ + type: service + targets: + - esp32 + - esp32s3 + - esp32s2 + - esp32c3 + - esp32c5 + - esp32c6 + - esp32c61 + version: 0.1.4~1 + espressif/ethernet_init: + component_hash: b7303f1482091766b9b653ec8332775a9485f4df3c69141577de82847c4d2adf + dependencies: + - matches: + - if: $CONFIG{ETHERNET_SPI_USE_CH390} == 1 + name: espressif/ch390 + registry_url: https://components.espressif.com + require: private + version: '*' + - matches: + - if: $CONFIG{ETHERNET_SPI_USE_DM9051} == 1 + name: espressif/dm9051 + registry_url: https://components.espressif.com + require: private + rules: + - if: idf_version >=6.0 + version: ^1.0.0 + version: '*' + - matches: + - if: idf_version >=6.0 + version: ^1.0.0 + name: espressif/dp83848 + registry_url: https://components.espressif.com + require: private + rules: + - if: target in [esp32, esp32p4] + - if: $CONFIG{ETHERNET_PHY_USE_DP83848} == 1 + version: '*' + - matches: + - if: $CONFIG{ETHERNET_SPI_USE_ENC28J60} == 1 + name: espressif/enc28j60 + registry_url: https://components.espressif.com + require: private + version: '*' + - matches: + - if: idf_version >=6.0 + version: ^1.0.0 + name: espressif/ip101 + registry_url: https://components.espressif.com + require: private + rules: + - if: target in [esp32, esp32p4] + - if: $CONFIG{ETHERNET_PHY_USE_IP101} == 1 + version: '*' + - matches: + - if: idf_version >=6.0 + version: ^1.0.0 + name: espressif/ksz80xx + registry_url: https://components.espressif.com + require: private + rules: + - if: target in [esp32, esp32p4] + - if: $CONFIG{ETHERNET_PHY_USE_KSZ80XX} == 1 + version: '*' + - matches: + - if: $CONFIG{ETHERNET_SPI_USE_KSZ8851SNL} == 1 + name: espressif/ksz8851snl + registry_url: https://components.espressif.com + require: private + rules: + - if: idf_version >=6.0 + version: ^1.0.0 + version: '*' + - matches: + - if: $CONFIG{ETHERNET_SPI_USE_LAN865X} == 1 + name: espressif/lan865x + registry_url: https://components.espressif.com + require: private + version: ^0.1.1 + - name: espressif/lan867x + registry_url: https://components.espressif.com + require: private + rules: + - if: target in [esp32, esp32p4] + - if: $CONFIG{ETHERNET_PHY_USE_LAN867X} == 1 + version: '>=2.0.0' + - matches: + - if: idf_version >=6.0 + version: ^1.0.0 + name: espressif/lan87xx + registry_url: https://components.espressif.com + require: private + rules: + - if: target in [esp32, esp32p4] + - if: $CONFIG{ETHERNET_PHY_USE_LAN87XX} == 1 + version: '*' + - matches: + - if: idf_version >=6.0 + version: ^1.0.0 + name: espressif/rtl8201 + registry_url: https://components.espressif.com + require: private + rules: + - if: target in [esp32, esp32p4] + - if: $CONFIG{ETHERNET_PHY_USE_RTL8201} == 1 + version: '*' + - matches: + - if: $CONFIG{ETHERNET_SPI_USE_W5500} == 1 + name: espressif/w5500 + registry_url: https://components.espressif.com + require: private + rules: + - if: idf_version >=6.0 + version: ^1.0.0 + version: '*' + - name: idf + require: private + version: '>=5.4.3,!=5.5.0,!=5.5.1' + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.2.0 + idf: + source: + type: idf + version: 6.1.0 +direct_dependencies: +- espressif/esp_csi_gain_ctrl +- espressif/ethernet_init +- idf +manifest_hash: 612e7d3604727e429e9b873bb7becd2967d5d7c5dc868ee1ff7595b6ee816ffd +target: esp32 +version: 2.0.0 diff --git a/get-started/csi_recv_router/main/CMakeLists.txt b/get-started/csi_recv_router/main/CMakeLists.txt new file mode 100644 index 0000000..a941e22 --- /dev/null +++ b/get-started/csi_recv_router/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRC_DIRS "." + INCLUDE_DIRS ".") diff --git a/get-started/csi_recv_router/main/Kconfig.projbuild b/get-started/csi_recv_router/main/Kconfig.projbuild new file mode 100644 index 0000000..473bc9a --- /dev/null +++ b/get-started/csi_recv_router/main/Kconfig.projbuild @@ -0,0 +1,16 @@ +menu "CSI UDP Configuration" + + config CSI_UDP_TARGET_IP + string "UDP target IP address" + default "192.168.129.11" + help + IP address of the host receiving CSI data (e.g., Raspberry Pi). + + config CSI_UDP_TARGET_PORT + int "UDP target port" + default 5500 + range 1024 65535 + help + UDP port on the target host for receiving CSI data. + +endmenu diff --git a/get-started/csi_recv_router/main/app_main.c b/get-started/csi_recv_router/main/app_main.c new file mode 100644 index 0000000..4113697 --- /dev/null +++ b/get-started/csi_recv_router/main/app_main.c @@ -0,0 +1,254 @@ +/* + * SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* Get recv router csi + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/event_groups.h" + +#include "nvs_flash.h" + +#include "esp_mac.h" +#include "rom/ets_sys.h" +#include "esp_log.h" +#include "esp_wifi.h" +#include "esp_netif.h" +#include "esp_now.h" + +#include "lwip/inet.h" +#include "lwip/netdb.h" +#include "lwip/sockets.h" +#include "ping/ping_sock.h" + +#include "protocol_examples_common.h" +#include "esp_csi_gain_ctrl.h" + +#define CONFIG_SEND_FREQUENCY 100 +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 +#define CSI_FORCE_LLTF 0 +#endif +#define CONFIG_FORCE_GAIN 0 + +#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 +#define CONFIG_GAIN_CONTROL 1 +#endif + +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0) +#define ESP_IF_WIFI_STA ESP_MAC_WIFI_STA +#endif + +static const char *TAG = "csi_recv_router"; + +/* UDP socket for CSI data transmission */ +static int s_udp_socket = -1; +static struct sockaddr_in s_dest_addr; +static char s_udp_buffer[2048]; + +static void wifi_csi_rx_cb(void *ctx, wifi_csi_info_t *info) +{ + if (!info || !info->buf) { + ESP_LOGW(TAG, "<%s> wifi_csi_cb", esp_err_to_name(ESP_ERR_INVALID_ARG)); + return; + } + + if (memcmp(info->mac, ctx, 6)) { + return; + } + + const wifi_pkt_rx_ctrl_t *rx_ctrl = &info->rx_ctrl; + static int s_count = 0; + float compensate_gain = 1.0f; + static uint8_t agc_gain = 0; + static int8_t fft_gain = 0; +#if CONFIG_GAIN_CONTROL + static uint8_t agc_gain_baseline = 0; + static int8_t fft_gain_baseline = 0; + esp_csi_gain_ctrl_get_rx_gain(rx_ctrl, &agc_gain, &fft_gain); + if (s_count < 100) { + esp_csi_gain_ctrl_record_rx_gain(agc_gain, fft_gain); + } else if (s_count == 100) { + esp_csi_gain_ctrl_get_rx_gain_baseline(&agc_gain_baseline, &fft_gain_baseline); +#if CONFIG_FORCE_GAIN + esp_csi_gain_ctrl_set_rx_force_gain(agc_gain_baseline, fft_gain_baseline); + ESP_LOGI(TAG, "fft_force %d, agc_force %d", fft_gain_baseline, agc_gain_baseline); +#endif + } + esp_csi_gain_ctrl_get_gain_compensation(&compensate_gain, agc_gain, fft_gain); + ESP_LOGD(TAG, "compensate_gain %f, agc_gain %d, fft_gain %d", compensate_gain, agc_gain, fft_gain); +#endif + + /* Build CSI data into buffer for UDP transmission */ + int pos = 0; + +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 + if (!s_count) { + ESP_LOGI(TAG, "================ CSI RECV (UDP) ================"); + } + pos = snprintf(s_udp_buffer, sizeof(s_udp_buffer), + "CSI_DATA,%d," MACSTR ",%d,%d,%d,%d,%d,%d,%d,%d,%d", + s_count, MAC2STR(info->mac), rx_ctrl->rssi, rx_ctrl->rate, + rx_ctrl->noise_floor, fft_gain, agc_gain, rx_ctrl->channel, + rx_ctrl->timestamp, rx_ctrl->sig_len, rx_ctrl->rx_state); +#else + if (!s_count) { + ESP_LOGI(TAG, "================ CSI RECV (UDP) ================"); + } + pos = snprintf(s_udp_buffer, sizeof(s_udp_buffer), + "CSI_DATA,%d," MACSTR ",%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", + s_count, MAC2STR(info->mac), rx_ctrl->rssi, rx_ctrl->rate, rx_ctrl->sig_mode, + rx_ctrl->mcs, rx_ctrl->cwb, rx_ctrl->smoothing, rx_ctrl->not_sounding, + rx_ctrl->aggregation, rx_ctrl->stbc, rx_ctrl->fec_coding, rx_ctrl->sgi, + rx_ctrl->noise_floor, rx_ctrl->ampdu_cnt, rx_ctrl->channel, rx_ctrl->secondary_channel, + rx_ctrl->timestamp, rx_ctrl->ant, rx_ctrl->sig_len, rx_ctrl->rx_state); +#endif + +#if (CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61) && CSI_FORCE_LLTF + int16_t csi = ((int16_t)(((((uint16_t)info->buf[1]) << 8) | info->buf[0]) << 4) >> 4); + pos += snprintf(s_udp_buffer + pos, sizeof(s_udp_buffer) - pos, + ",%d,%d,\"[%d", (info->len - 2) / 2, info->first_word_invalid, (int16_t)(compensate_gain * csi)); + for (int i = 2; i < (info->len - 2); i += 2) { + csi = ((int16_t)(((((uint16_t)info->buf[i + 1]) << 8) | info->buf[i]) << 4) >> 4); + pos += snprintf(s_udp_buffer + pos, sizeof(s_udp_buffer) - pos, ",%d", (int16_t)(compensate_gain * csi)); + } +#else + pos += snprintf(s_udp_buffer + pos, sizeof(s_udp_buffer) - pos, + ",%d,%d,\"[%d", info->len, info->first_word_invalid, (int16_t)(compensate_gain * info->buf[0])); + for (int i = 1; i < info->len; i++) { + pos += snprintf(s_udp_buffer + pos, sizeof(s_udp_buffer) - pos, ",%d", (int16_t)(compensate_gain * info->buf[i])); + } +#endif + pos += snprintf(s_udp_buffer + pos, sizeof(s_udp_buffer) - pos, "]\"\n"); + + /* Send via UDP */ + if (s_udp_socket >= 0) { + sendto(s_udp_socket, s_udp_buffer, pos, 0, (struct sockaddr *)&s_dest_addr, sizeof(s_dest_addr)); + } + + s_count++; +} + +static void wifi_csi_init() +{ + /** + * @brief In order to ensure the compatibility of routers, only LLTF sub-carriers are selected. + */ +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 + wifi_csi_config_t csi_config = { + .enable = true, + .acquire_csi_legacy = true, + .acquire_csi_force_lltf = CSI_FORCE_LLTF, + .acquire_csi_ht20 = true, + .acquire_csi_ht40 = true, + .acquire_csi_vht = false, + .acquire_csi_su = false, + .acquire_csi_mu = false, + .acquire_csi_dcm = false, + .acquire_csi_beamformed = false, + .acquire_csi_he_stbc_mode = 2, + .val_scale_cfg = 0, + .dump_ack_en = false, + .reserved = false + }; +#elif CONFIG_IDF_TARGET_ESP32C6 + wifi_csi_config_t csi_config = { + .enable = true, + .acquire_csi_legacy = true, + .acquire_csi_ht20 = true, + .acquire_csi_ht40 = true, + .acquire_csi_su = false, + .acquire_csi_mu = false, + .acquire_csi_dcm = false, + .acquire_csi_beamformed = false, + .acquire_csi_he_stbc = 2, + .val_scale_cfg = false, + .dump_ack_en = false, + .reserved = false + }; +#else + wifi_csi_config_t csi_config = { + .lltf_en = true, + .htltf_en = false, + .stbc_htltf2_en = false, + .ltf_merge_en = true, + .channel_filter_en = true, + .manu_scale = true, + .shift = true, + }; +#endif + static wifi_ap_record_t s_ap_info = {0}; + ESP_ERROR_CHECK(esp_wifi_sta_get_ap_info(&s_ap_info)); + ESP_ERROR_CHECK(esp_wifi_set_csi_config(&csi_config)); + ESP_ERROR_CHECK(esp_wifi_set_csi_rx_cb(wifi_csi_rx_cb, s_ap_info.bssid)); + ESP_ERROR_CHECK(esp_wifi_set_csi(true)); +} + +static void udp_socket_init(void) +{ + s_udp_socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + if (s_udp_socket < 0) { + ESP_LOGE(TAG, "Failed to create UDP socket: errno %d", errno); + return; + } + + memset(&s_dest_addr, 0, sizeof(s_dest_addr)); + s_dest_addr.sin_family = AF_INET; + s_dest_addr.sin_port = htons(CONFIG_CSI_UDP_TARGET_PORT); + inet_pton(AF_INET, CONFIG_CSI_UDP_TARGET_IP, &s_dest_addr.sin_addr); + + ESP_LOGI(TAG, "UDP socket initialized, sending to %s:%d", + CONFIG_CSI_UDP_TARGET_IP, CONFIG_CSI_UDP_TARGET_PORT); +} + +static esp_err_t wifi_ping_router_start() +{ + static esp_ping_handle_t ping_handle = NULL; + + esp_ping_config_t ping_config = ESP_PING_DEFAULT_CONFIG(); + ping_config.count = 0; + ping_config.interval_ms = 1000 / CONFIG_SEND_FREQUENCY; + ping_config.task_stack_size = 3072; + ping_config.data_size = 1; + + esp_netif_ip_info_t local_ip; + esp_netif_get_ip_info(esp_netif_get_handle_from_ifkey("WIFI_STA_DEF"), &local_ip); + ESP_LOGI(TAG, "got ip:" IPSTR ", gw: " IPSTR, IP2STR(&local_ip.ip), IP2STR(&local_ip.gw)); + ping_config.target_addr.u_addr.ip4.addr = ip4_addr_get_u32(&local_ip.gw); + ping_config.target_addr.type = ESP_IPADDR_TYPE_V4; + + esp_ping_callbacks_t cbs = { 0 }; + esp_ping_new_session(&ping_config, &cbs, &ping_handle); + esp_ping_start(ping_handle); + + return ESP_OK; +} + +void app_main() +{ + ESP_ERROR_CHECK(nvs_flash_init()); + ESP_ERROR_CHECK(esp_netif_init()); + ESP_ERROR_CHECK(esp_event_loop_create_default()); + + /** + * @brief This helper function configures Wi-Fi, as selected in menuconfig. + * Read "Establishing Wi-Fi Connection" section in esp-idf/examples/protocols/README.md + * for more information about this function. + */ + ESP_ERROR_CHECK(example_connect()); + + udp_socket_init(); + wifi_csi_init(); + wifi_ping_router_start(); +} diff --git a/get-started/csi_recv_router/main/idf_component.yml b/get-started/csi_recv_router/main/idf_component.yml new file mode 100644 index 0000000..7f4789b --- /dev/null +++ b/get-started/csi_recv_router/main/idf_component.yml @@ -0,0 +1,4 @@ +## IDF Component Manager Manifest File +dependencies: + idf: ">=4.4.1" + esp_csi_gain_ctrl: ">=0.1.4" diff --git a/get-started/csi_recv_router/sdkconfig b/get-started/csi_recv_router/sdkconfig new file mode 100644 index 0000000..499b76d --- /dev/null +++ b/get-started/csi_recv_router/sdkconfig @@ -0,0 +1,3575 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) 6.1.0 Project Configuration +# +# default: +CONFIG_SOC_CAPS_ECO_VER_MAX=301 +# default: +CONFIG_SOC_ADC_SUPPORTED=y +# default: +CONFIG_SOC_DAC_SUPPORTED=y +# default: +CONFIG_SOC_UART_SUPPORTED=y +# default: +CONFIG_SOC_MCPWM_SUPPORTED=y +# default: +CONFIG_SOC_GPTIMER_SUPPORTED=y +# default: +CONFIG_SOC_SDMMC_HOST_SUPPORTED=y +# default: +CONFIG_SOC_BT_SUPPORTED=y +# default: +CONFIG_SOC_PCNT_SUPPORTED=y +# default: +CONFIG_SOC_PHY_SUPPORTED=y +# default: +CONFIG_SOC_WIFI_SUPPORTED=y +# default: +CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y +# default: +CONFIG_SOC_TWAI_SUPPORTED=y +# default: +CONFIG_SOC_EFUSE_SUPPORTED=y +# default: +CONFIG_SOC_EMAC_SUPPORTED=y +# default: +CONFIG_SOC_ULP_SUPPORTED=y +# default: +CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y +# default: +CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y +# default: +CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y +# default: +CONFIG_SOC_RTC_MEM_SUPPORTED=y +# default: +CONFIG_SOC_RTC_TIMER_V1_SUPPORTED=y +# default: +CONFIG_SOC_I2S_SUPPORTED=y +# default: +CONFIG_SOC_I2S_I80_LCD_SUPPORTED=y +# default: +CONFIG_SOC_LCD_I80_SUPPORTED=y +# default: +CONFIG_SOC_RMT_SUPPORTED=y +# default: +CONFIG_SOC_SDM_SUPPORTED=y +# default: +CONFIG_SOC_GPSPI_SUPPORTED=y +# default: +CONFIG_SOC_LEDC_SUPPORTED=y +# default: +CONFIG_SOC_I2C_SUPPORTED=y +# default: +CONFIG_SOC_SUPPORT_COEXISTENCE=y +# default: +CONFIG_SOC_AES_SUPPORTED=y +# default: +CONFIG_SOC_MPI_SUPPORTED=y +# default: +CONFIG_SOC_SHA_SUPPORTED=y +# default: +CONFIG_SOC_FLASH_ENC_SUPPORTED=y +# default: +CONFIG_SOC_SECURE_BOOT_SUPPORTED=y +# default: +CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y +# default: +CONFIG_SOC_BOD_SUPPORTED=y +# default: +CONFIG_SOC_ULP_FSM_SUPPORTED=y +# default: +CONFIG_SOC_CLK_TREE_SUPPORTED=y +# default: +CONFIG_SOC_MPU_SUPPORTED=y +# default: +CONFIG_SOC_WDT_SUPPORTED=y +# default: +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +# default: +CONFIG_SOC_RNG_SUPPORTED=y +# default: +CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y +# default: +CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y +# default: +CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y +# default: +CONFIG_SOC_PM_SUPPORTED=y +# default: +CONFIG_SOC_SPI_EXTERNAL_NOR_FLASH_SUPPORTED=y +# default: +CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 +# default: +CONFIG_SOC_XTAL_SUPPORT_26M=y +# default: +CONFIG_SOC_XTAL_SUPPORT_40M=y +# default: +CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y +# default: +CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y +# default: +CONFIG_SOC_ADC_DMA_SUPPORTED=y +# default: +CONFIG_SOC_ADC_PERIPH_NUM=2 +# default: +CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 +# default: +CONFIG_SOC_ADC_ATTEN_NUM=4 +# default: +CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 +# default: +CONFIG_SOC_ADC_PATT_LEN_MAX=16 +# default: +CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 +# default: +CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 +# default: +CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 +# default: +CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +# default: +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=0 +# default: +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2000000 +# default: +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20000 +# default: +CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 +# default: +CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +# default: +CONFIG_SOC_ADC_SHARED_POWER=y +# default: +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y +# default: +CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y +# default: +CONFIG_SOC_IDCACHE_PER_CORE=y +# default: +CONFIG_SOC_CPU_CORES_NUM=2 +# default: +CONFIG_SOC_CPU_INTR_NUM=32 +# default: +CONFIG_SOC_CPU_HAS_FPU=y +# default: +CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y +# default: +CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 +# default: +CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 +# default: +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40 +# default: +CONFIG_SOC_DAC_CHAN_NUM=2 +# default: +CONFIG_SOC_DAC_RESOLUTION=8 +# default: +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y +# default: +CONFIG_SOC_GPIO_PORT=1 +# default: +CONFIG_SOC_GPIO_PIN_COUNT=40 +# default: +CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +# default: +CONFIG_SOC_GPIO_IN_RANGE_MAX=39 +# default: +CONFIG_SOC_GPIO_OUT_RANGE_MAX=33 +# default: +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA +# default: +CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y +# default: +CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +# default: +CONFIG_SOC_I2C_NUM=2 +# default: +CONFIG_SOC_HP_I2C_NUM=2 +# default: +CONFIG_SOC_I2C_SUPPORT_APB=y +# default: +CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y +# default: +CONFIG_SOC_I2C_SUPPORT_SLAVE=y +# default: +CONFIG_SOC_I2C_STOP_INDEPENDENT=y +# default: +CONFIG_SOC_I2S_HW_VERSION_1=y +# default: +CONFIG_SOC_I2S_SUPPORTS_APLL=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y +# default: +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 +# default: +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 +# default: +CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y +# default: +CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y +# default: +CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y +# default: +CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y +# default: +CONFIG_SOC_LEDC_TIMER_NUM=4 +# default: +CONFIG_SOC_LEDC_CHANNEL_NUM=8 +# default: +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +# default: +CONFIG_SOC_MMU_PERIPH_NUM=2 +# default: +CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=3 +# default: +CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 +# default: +CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 +# default: +CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64 +# default: +CONFIG_SOC_RTCIO_PIN_COUNT=18 +# default: +CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y +# default: +CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y +# default: +CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y +# default: +CONFIG_SOC_SPI_PERIPH_NUM=3 +# default: +CONFIG_SOC_SPI_HD_BOTH_INOUT_SUPPORTED=y +# default: +CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 +# default: +CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 +# default: +CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 +# default: +CONFIG_SOC_TOUCH_SENSOR_VERSION=1 +# default: +CONFIG_SOC_TOUCH_MIN_CHAN_ID=0 +# default: +CONFIG_SOC_TOUCH_MAX_CHAN_ID=9 +# default: +CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y +# default: +CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 +# default: +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 +# default: +CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 +# default: +CONFIG_SOC_UART_NUM=3 +# default: +CONFIG_SOC_UART_HP_NUM=3 +# default: +CONFIG_SOC_UART_SUPPORT_APB_CLK=y +# default: +CONFIG_SOC_UART_SUPPORT_REF_TICK=y +# default: +CONFIG_SOC_UART_FIFO_LEN=128 +# default: +CONFIG_SOC_UART_BITRATE_MAX=5000000 +# default: +CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y +# default: +CONFIG_SOC_SPIRAM_SUPPORTED=y +# default: +CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y +# default: +CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y +# default: +CONFIG_SOC_SHA_ENDIANNESS_BE=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA1=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA256=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA384=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA512=y +# default: +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +# default: +CONFIG_SOC_MPI_OPERATIONS_NUM=1 +# default: +CONFIG_SOC_RSA_MAX_BIT_LEN=4096 +# default: +CONFIG_SOC_AES_SUPPORT_AES_128=y +# default: +CONFIG_SOC_AES_SUPPORT_AES_192=y +# default: +CONFIG_SOC_AES_SUPPORT_AES_256=y +# default: +CONFIG_SOC_SECURE_BOOT_V1=y +# default: +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=1 +# default: +CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 +# default: +CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 +# default: +CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_MODEM_PD=y +# default: +CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y +# default: +CONFIG_SOC_PM_MODEM_PD_BY_SW=y +# default: +CONFIG_SOC_CLK_APLL_SUPPORTED=y +# default: +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +# default: +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +# default: +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y +# default: +CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y +# default: +CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D4=y +# default: +CONFIG_SOC_SDMMC_USE_IOMUX=y +# default: +CONFIG_SOC_SDMMC_NUM_SLOTS=2 +# default: +CONFIG_SOC_SDMMC_DATA_WIDTH_MAX=8 +# default: +CONFIG_SOC_WIFI_WAPI_SUPPORT=y +# default: +CONFIG_SOC_WIFI_CSI_SUPPORT=y +# default: +CONFIG_SOC_WIFI_MESH_SUPPORT=y +# default: +CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y +# default: +CONFIG_SOC_WIFI_NAN_SUPPORT=y +# default: +CONFIG_SOC_BLE_SUPPORTED=y +# default: +CONFIG_SOC_BLE_MESH_SUPPORTED=y +# default: +CONFIG_SOC_BT_CLASSIC_SUPPORTED=y +# default: +CONFIG_SOC_BLUFI_SUPPORTED=y +# default: +CONFIG_SOC_BT_H2C_ENC_KEY_CTRL_ENH_VSC_SUPPORTED=y +# default: +CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y +# default: +CONFIG_SOC_ULP_HAS_ADC=y +# default: +CONFIG_SOC_PHY_COMBO_MODULE=y +# default: +CONFIG_SOC_EMAC_RMII_CLK_OUT_INTERNAL_LOOPBACK=y +# default: +CONFIG_IDF_CMAKE=y +# default: +CONFIG_IDF_TOOLCHAIN="gcc" +# default: +CONFIG_IDF_TOOLCHAIN_GCC=y +# default: +CONFIG_IDF_TARGET_ARCH_XTENSA=y +# default: +CONFIG_IDF_TARGET_ARCH="xtensa" +# default: +CONFIG_IDF_TARGET="esp32" +# default: +CONFIG_IDF_INIT_VERSION="6.1.0" +# default: +CONFIG_IDF_TARGET_ESP32=y +# default: +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 + +# +# Build type +# +# default: +CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y +# default: +# CONFIG_APP_BUILD_TYPE_RAM is not set +# default: +CONFIG_APP_BUILD_GENERATE_BINARIES=y +# default: +CONFIG_APP_BUILD_BOOTLOADER=y +# default: +CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y +# default: +# CONFIG_APP_REPRODUCIBLE_BUILD is not set +# default: +# CONFIG_APP_NO_BLOBS is not set +# default: +# CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# default: +# CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# end of Build type + +# +# Bootloader config +# + +# +# Bootloader manager +# +# default: +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +# default: +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + +# +# Application Rollback +# +# default: +# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set +# end of Application Rollback + +# +# Recovery Bootloader and Rollback +# +# end of Recovery Bootloader and Rollback + +# default: +CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 +# default: +CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y +# default: +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set +# default: +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set + +# +# Log +# +# default: +CONFIG_BOOTLOADER_LOG_VERSION_1=y +# default: +CONFIG_BOOTLOADER_LOG_VERSION=1 +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set +# default: +CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set +# default: +CONFIG_BOOTLOADER_LOG_LEVEL=3 + +# +# Format +# +# default: +# CONFIG_BOOTLOADER_LOG_COLORS is not set +# default: +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format + +# +# Settings +# +# default: +CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y +# default: +CONFIG_BOOTLOADER_LOG_MODE_TEXT=y +# end of Settings +# end of Log + +# default: +CONFIG_BOOTLOADER_CPU_CLK_FREQ_MHZ=80 + +# +# Serial Flash Configurations +# +# default: +# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set +# default: +CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y +# end of Serial Flash Configurations + +# default: +# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set +# default: +CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y +# default: +# CONFIG_BOOTLOADER_FACTORY_RESET is not set +# default: +# CONFIG_BOOTLOADER_APP_TEST is not set +# default: +CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y +# default: +CONFIG_BOOTLOADER_WDT_ENABLE=y +# default: +# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set +# default: +CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# default: +# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set +# default: +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set +# default: +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set +# default: +CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 +# default: +# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set +# end of Bootloader config + +# +# Security features +# +# default: +CONFIG_SECURE_BOOT_V1_SUPPORTED=y +# default: +# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set +# default: +# CONFIG_SECURE_BOOT is not set +# default: +# CONFIG_SECURE_FLASH_ENC_ENABLED is not set +# end of Security features + +# +# Application manager +# +# default: +CONFIG_APP_COMPILE_TIME_DATE=y +# default: +# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set +# default: +# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +# default: +# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set +# default: +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 +# end of Application manager + +# default: +CONFIG_ESP_ROM_HAS_CRC_LE=y +# default: +CONFIG_ESP_ROM_HAS_CRC_BE=y +# default: +CONFIG_ESP_ROM_HAS_MZ_CRC32=y +# default: +CONFIG_ESP_ROM_HAS_JPEG_DECODE=y +# default: +CONFIG_ESP_ROM_HAS_UART_BUF_SWITCH=y +# default: +CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y +# default: +CONFIG_ESP_ROM_HAS_NEWLIB=y +# default: +CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y +# default: +CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y +# default: +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +# default: +CONFIG_ESP_ROM_USB_OTG_NUM=-1 +# default: +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1 +# default: +CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +# default: +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y + +# +# Serial flasher config +# +# default: +# CONFIG_ESPTOOLPY_NO_STUB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +# default: +# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set +# default: +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# default: +# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set +# default: +CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y +# default: +CONFIG_ESPTOOLPY_FLASHMODE="dio" +# default: +# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set +# default: +CONFIG_ESPTOOLPY_FLASHFREQ_40M=y +# default: +# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set +# default: +# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set +# default: +CONFIG_ESPTOOLPY_FLASHFREQ="40m" +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set +# default: +CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set +# default: +CONFIG_ESPTOOLPY_FLASHSIZE="2MB" +# default: +# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set +# default: +CONFIG_ESPTOOLPY_BEFORE_RESET=y +# default: +# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set +# default: +CONFIG_ESPTOOLPY_BEFORE="default-reset" +# default: +CONFIG_ESPTOOLPY_AFTER_RESET=y +# default: +# CONFIG_ESPTOOLPY_AFTER_NORESET is not set +# default: +CONFIG_ESPTOOLPY_AFTER="hard-reset" +# default: +CONFIG_ESPTOOLPY_MONITOR_BAUD=921600 + +# +# Fast Reflashing +# +# end of Fast Reflashing +# end of Serial flasher config + +# +# Partition Table +# +# default: +CONFIG_PARTITION_TABLE_SINGLE_APP=y +# default: +# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set +# default: +# CONFIG_PARTITION_TABLE_TWO_OTA is not set +# default: +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set +# default: +# CONFIG_PARTITION_TABLE_CUSTOM is not set +# default: +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +# default: +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" +# default: +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +# default: +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table + +# +# CSI UDP Configuration +# +# default: +CONFIG_CSI_UDP_TARGET_IP="192.168.129.11" +# default: +CONFIG_CSI_UDP_TARGET_PORT=5500 +# end of CSI UDP Configuration + +# +# Example Connection Configuration +# +# default: +CONFIG_ENV_GPIO_RANGE_MIN=0 +# default: +CONFIG_ENV_GPIO_RANGE_MAX=39 +# default: +CONFIG_ENV_GPIO_IN_RANGE_MAX=39 +# default: +CONFIG_ENV_GPIO_OUT_RANGE_MAX=33 +# default: +CONFIG_EXAMPLE_CONNECT_WIFI=y +# default: +# CONFIG_EXAMPLE_WIFI_SSID_PWD_FROM_STDIN is not set +# default: +CONFIG_EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD=y +# default: +CONFIG_EXAMPLE_WIFI_SSID="Proximus-Home-779782" +# default: +CONFIG_EXAMPLE_WIFI_PASSWORD="d3feran349rsmbrb" +# default: +CONFIG_EXAMPLE_WIFI_CONN_MAX_RETRY=6 +# default: +# CONFIG_EXAMPLE_WIFI_SCAN_METHOD_FAST is not set +# default: +CONFIG_EXAMPLE_WIFI_SCAN_METHOD_ALL_CHANNEL=y + +# +# WiFi Scan threshold +# +# default: +CONFIG_EXAMPLE_WIFI_SCAN_RSSI_THRESHOLD=-127 +# default: +CONFIG_EXAMPLE_WIFI_AUTH_OPEN=y +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WEP is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA2_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA_WPA2_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA2_ENTERPRISE is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA3_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA2_WPA3_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WAPI_PSK is not set +# end of WiFi Scan threshold + +# default: +CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SIGNAL=y +# default: +# CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SECURITY is not set +# default: +# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set +# default: +CONFIG_EXAMPLE_DISABLE_ETHERNET_CONFIG=y +# default: +# CONFIG_EXAMPLE_CONNECT_PPP is not set +# default: +CONFIG_EXAMPLE_CONNECT_IPV4=y +# default: +CONFIG_EXAMPLE_CONNECT_IPV6=y +# default: +CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y +# default: +# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL is not set +# default: +# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL is not set +# default: +# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL is not set +# end of Example Connection Configuration + +# +# Ethernet Configuration +# +# default: +CONFIG_ETHERNET_INIT_OVERRIDE_DISABLE=y +# default: +CONFIG_ETHERNET_SPI_USE_DM9051=0 +# default: +CONFIG_ETHERNET_SPI_USE_KSZ8851SNL=0 +# default: +CONFIG_ETHERNET_SPI_USE_W5500=0 +# default: +CONFIG_ETHERNET_SPI_USE_CH390=0 +# default: +CONFIG_ETHERNET_SPI_USE_ENC28J60=0 +# default: +CONFIG_ETHERNET_SPI_USE_LAN865X=0 +# default: +CONFIG_ETHERNET_PHY_USE_IP101=0 +# default: +CONFIG_ETHERNET_PHY_USE_LAN87XX=0 +# default: +CONFIG_ETHERNET_PHY_USE_LAN867X=0 +# default: +CONFIG_ETHERNET_PHY_USE_DP83848=0 +# default: +CONFIG_ETHERNET_PHY_USE_KSZ80XX=0 +# default: +CONFIG_ETHERNET_PHY_USE_RTL8201=0 +# end of Ethernet Configuration + +# +# Compiler options +# +# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +CONFIG_COMPILER_OPTIMIZATION_PERF=y +# CONFIG_COMPILER_OPTIMIZATION_NONE is not set +# default: +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +# default: +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set +# default: +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +# default: +# CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE is not set +# default: +CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y +# default: +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +# default: +# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set +# default: +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +# default: +# CONFIG_COMPILER_CXX_EXCEPTIONS is not set +# default: +# CONFIG_COMPILER_CXX_RTTI is not set +# default: +CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y +# default: +# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set +# default: +# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set +# default: +# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# default: +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set +# default: +# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC15_WARNINGS is not set +# default: +# CONFIG_COMPILER_DUMP_RTL_FILES is not set +# default: +CONFIG_COMPILER_RT_LIB_GCCLIB=y +# default: +CONFIG_COMPILER_RT_LIB_NAME="gcc" +# default: +CONFIG_COMPILER_ORPHAN_SECTIONS_ERROR=y +# default: +# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set +# default: +# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set +# default: +# CONFIG_COMPILER_STATIC_ANALYZER is not set +# default: +CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR_NO_CHANGE=y +# default: +# CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR_COLD_CONSTEXPR is not set +# default: +# CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR_COLD is not set +# end of Compiler options + +# +# Component config +# + +# +# Bluetooth +# +# default: +# CONFIG_BT_ENABLED is not set + +# +# Common Options +# + +# +# BLE Log +# +# default: +# CONFIG_BLE_LOG_ENABLED is not set +# end of BLE Log + +# default: +# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# default: +# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set +# default: +# CONFIG_BT_LE_USED_MEM_STATISTICS_ENABLED is not set +# end of Common Options +# end of Bluetooth + +# +# Console Library +# +# default: +# CONFIG_CONSOLE_SORTED_HELP is not set +# end of Console Library + +# +# Legacy Driver Configurations +# + +# +# Legacy TWAI Driver Configurations +# +# default: +# CONFIG_TWAI_ISR_IN_IRAM_LEGACY is not set +# default: +# CONFIG_TWAI_SUPPRESS_DEPRECATE_WARN is not set +# default: +# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy TWAI Driver Configurations + +# +# Legacy I2C Driver Configurations +# +# default: +# CONFIG_I2C_SUPPRESS_DEPRECATE_WARN is not set +# default: +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations + +# +# Legacy Touch Sensor Driver Configurations +# +# default: +# CONFIG_TOUCH_SUPPRESS_DEPRECATE_WARN is not set +# default: +# CONFIG_TOUCH_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Touch Sensor Driver Configurations +# end of Legacy Driver Configurations + +# +# eFuse Bit Manager +# +# default: +# CONFIG_EFUSE_CUSTOM_TABLE is not set +# default: +# CONFIG_EFUSE_VIRTUAL is not set +# default: +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set +# default: +CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y +# default: +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set +# default: +CONFIG_EFUSE_MAX_BLK_LEN=192 +# end of eFuse Bit Manager + +# +# ESP-TLS +# +# default: +CONFIG_ESP_TLS_USING_MBEDTLS=y +# default: +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set +# default: +# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set +# default: +# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set +# default: +# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set +# default: +# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set +# default: +# CONFIG_ESP_TLS_PSK_VERIFICATION is not set +# default: +# CONFIG_ESP_TLS_INSECURE is not set +# default: +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y +# end of ESP-TLS + +# +# ADC and ADC Calibration +# +# default: +# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set + +# +# ADC Calibration Configurations +# +# default: +CONFIG_ADC_CALI_EFUSE_TP_ENABLE=y +# default: +CONFIG_ADC_CALI_EFUSE_VREF_ENABLE=y +# default: +CONFIG_ADC_CALI_LUT_ENABLE=y +# end of ADC Calibration Configurations + +# default: +CONFIG_ADC_DISABLE_DAC_OUTPUT=y +# default: +# CONFIG_ADC_ENABLE_DEBUG_LOG is not set +# end of ADC and ADC Calibration + +# +# Wireless Coexistence +# +# default: +CONFIG_ESP_COEX_ENABLED=y +# default: +# CONFIG_ESP_COEX_GPIO_DEBUG is not set +# end of Wireless Coexistence + +# +# Common ESP-related +# +# default: +CONFIG_ESP_ERR_TO_NAME_LOOKUP=y +# end of Common ESP-related + +# +# ESP-Driver:DAC Configurations +# +# default: +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# default: +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +# default: +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of ESP-Driver:DAC Configurations + +# +# ESP-Driver:GPIO Configurations +# +# default: +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:GPIO Configurations + +# +# ESP-Driver:GPTimer Configurations +# +# default: +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# default: +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set +# default: +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y +# default: +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:GPTimer Configurations + +# +# ESP-Driver:I2C Configurations +# +# default: +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# default: +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# default: +CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y +# end of ESP-Driver:I2C Configurations + +# +# ESP-Driver:I2S Configurations +# +# default: +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# default: +# CONFIG_I2S_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:I2S Configurations + +# +# ESP-Driver:I3C Master Configurations +# +# default: +# CONFIG_I3C_MASTER_ISR_CACHE_SAFE is not set +# default: +# CONFIG_I3C_MASTER_ENABLE_DEBUG_LOG is not set +# default: +# CONFIG_I3C_MASTER_ISR_HANDLER_IN_IRAM is not set +# end of ESP-Driver:I3C Master Configurations + +# +# ESP-Driver:LEDC Configurations +# +# default: +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:LEDC Configurations + +# +# ESP-Driver:MCPWM Configurations +# +# default: +CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y +# default: +# CONFIG_MCPWM_ISR_CACHE_SAFE is not set +# default: +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +# default: +CONFIG_MCPWM_OBJ_CACHE_SAFE=y +# default: +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:MCPWM Configurations + +# +# ESP-Driver:PCNT Configurations +# +# default: +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# default: +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:PCNT Configurations + +# +# ESP-Driver:RMT Configurations +# +# default: +CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y +# default: +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y +# default: +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y +# default: +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# default: +# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set +# default: +# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set +# default: +CONFIG_RMT_OBJ_CACHE_SAFE=y +# default: +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# default: +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# end of ESP-Driver:RMT Configurations + +# +# ESP-Driver:Sigma Delta Modulator Configurations +# +# default: +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Sigma Delta Modulator Configurations + +# +# ESP-Driver:SD Host SDMMC Controller Configurations +# +# default: +# CONFIG_SD_HOST_SDMMC_ISR_CACHE_SAFE is not set +# end of ESP-Driver:SD Host SDMMC Controller Configurations + +# +# ESP-Driver:SPI Configurations +# +# default: +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# default: +# CONFIG_SPI_SLAVE_IN_IRAM is not set +# default: +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of ESP-Driver:SPI Configurations + +# +# ESP-Driver:Touch Sensor Configurations +# +# default: +# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_TOUCH_ISR_IRAM_SAFE is not set +# default: +# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set +# default: +# CONFIG_TOUCH_SKIP_FSM_CHECK is not set +# end of ESP-Driver:Touch Sensor Configurations + +# +# ESP-Driver:TWAI Configurations +# +# default: +# CONFIG_TWAI_ISR_IN_IRAM is not set +# default: +# CONFIG_TWAI_IO_FUNC_IN_IRAM is not set +# default: +# CONFIG_TWAI_ISR_CACHE_SAFE is not set +# default: +# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:TWAI Configurations + +# +# ESP-Driver:UART Configurations +# +# default: +# CONFIG_UART_ISR_IN_IRAM is not set +# end of ESP-Driver:UART Configurations + +# +# ESP-Driver:UHCI Configurations +# +# default: +# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set +# default: +# CONFIG_UHCI_ISR_CACHE_SAFE is not set +# default: +# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:UHCI Configurations + +# +# Ethernet +# +# default: +CONFIG_ETH_ENABLED=y +# default: +CONFIG_ETH_USE_ESP32_EMAC=y +# default: +CONFIG_ETH_DMA_BUFFER_SIZE=512 +# default: +CONFIG_ETH_DMA_RX_BUFFER_NUM=10 +# default: +CONFIG_ETH_DMA_TX_BUFFER_NUM=10 +# default: +# CONFIG_ETH_IRAM_OPTIMIZATION is not set +# default: +CONFIG_ETH_USE_SPI_ETHERNET=y +# default: +# CONFIG_ETH_USE_OPENETH is not set +# default: +# CONFIG_ETH_TRANSMIT_MUTEX is not set +# end of Ethernet + +# +# Event Loop Library +# +# default: +# CONFIG_ESP_EVENT_LOOP_PROFILING is not set +# default: +CONFIG_ESP_EVENT_POST_FROM_ISR=y +# default: +CONFIG_ESP_EVENT_POST_FROM_ISR_SIZE=4 +# default: +CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y +# end of Event Loop Library + +# +# GDB Stub +# +# default: +CONFIG_ESP_GDBSTUB_ENABLED=y +# default: +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +# default: +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +# default: +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 +# end of GDB Stub + +# +# ESP HID +# +# default: +CONFIG_ESPHID_TASK_SIZE_BT=2048 +# default: +CONFIG_ESPHID_TASK_SIZE_BLE=4096 +# end of ESP HID + +# +# ESP HTTP client +# +# default: +CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_GET_CONTENT_RANGE is not set +# default: +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 +# default: +CONFIG_ESP_HTTP_CLIENT_PSA_CRYPTO_MIGRATE=y +# default: +# CONFIG_ESP_HTTP_CLIENT_SAVE_RESPONSE_HEADERS is not set +# end of ESP HTTP client + +# +# HTTP Server +# +# default: +CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 +# default: +CONFIG_HTTPD_MAX_URI_LEN=512 +# default: +CONFIG_HTTPD_ERR_RESP_NO_DELAY=y +# default: +CONFIG_HTTPD_PURGE_BUF_LEN=32 +# default: +# CONFIG_HTTPD_LOG_PURGE_DATA is not set +# default: +# CONFIG_HTTPD_WS_SUPPORT is not set +# default: +# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +# default: +CONFIG_HTTPD_ENABLE_EVENTS=y +# default: +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 +# default: +CONFIG_HTTPD_SERVER_PSA_CRYPTO_MIGRATE=y +# end of HTTP Server + +# +# ESP HTTPS OTA +# +# default: +# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set +# default: +# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +# default: +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 +# default: +# CONFIG_ESP_HTTPS_OTA_ENABLE_PARTIAL_DOWNLOAD is not set +# end of ESP HTTPS OTA + +# +# ESP HTTPS server +# +# default: +# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +# default: +# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set +# end of ESP HTTPS server + +# +# Hardware Settings +# +# default: +CONFIG_ESP_HW_SUPPORT_FUNC_IN_IRAM=y + +# +# Chip revision +# +# default: +CONFIG_ESP32_REV_MIN_0=y +# default: +# CONFIG_ESP32_REV_MIN_1 is not set +# default: +# CONFIG_ESP32_REV_MIN_1_1 is not set +# default: +# CONFIG_ESP32_REV_MIN_2 is not set +# default: +# CONFIG_ESP32_REV_MIN_3 is not set +# default: +# CONFIG_ESP32_REV_MIN_3_1 is not set +# default: +CONFIG_ESP32_REV_MIN=0 +# default: +CONFIG_ESP32_REV_MIN_FULL=0 +# default: +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +# default: +CONFIG_ESP32_REV_MAX_FULL=399 +# default: +CONFIG_ESP_REV_MAX_FULL=399 +# default: +CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 +# default: +CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 + +# +# Maximum Supported ESP32 eFuse Block Revision (eFuse Block Rev v0.99) +# +# end of Chip revision + +# +# MAC Config +# +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +# default: +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +# default: +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 +# default: +# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set +# default: +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y +# default: +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 +# default: +# CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR is not set +# default: +# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set +# end of MAC Config + +# +# Sleep Config +# +# default: +# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set +# default: +CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y +# default: +# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set +# default: +CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y +# default: +# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set +# default: +CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 +# default: +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set +# default: +# CONFIG_ESP_SLEEP_DEBUG is not set +# default: +CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y +# default: +# CONFIG_ESP_SLEEP_SET_FLASH_DPD is not set +# end of Sleep Config + +# +# RTC Clock Config +# +# default: +CONFIG_RTC_CLK_SRC_INT_RC=y +# default: +# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set +# default: +# CONFIG_RTC_CLK_SRC_EXT_OSC is not set +# default: +# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set +# default: +CONFIG_RTC_CLK_CAL_CYCLES=1024 +# default: +CONFIG_RTC_CLK_FUNC_IN_IRAM=y +# default: +CONFIG_RTC_TIME_FUNC_IN_IRAM=y +# end of RTC Clock Config + +# +# Peripheral Control +# +# default: +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y +# default: +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y +# end of Peripheral Control + +# +# Main XTAL Config +# +# default: +# CONFIG_XTAL_FREQ_26 is not set +# default: +# CONFIG_XTAL_FREQ_32 is not set +# default: +CONFIG_XTAL_FREQ_40=y +# default: +# CONFIG_XTAL_FREQ_AUTO is not set +# default: +CONFIG_XTAL_FREQ=40 +# end of Main XTAL Config + +# +# Power Supplier +# + +# +# Brownout Detector +# +# default: +CONFIG_ESP_BROWNOUT_DET=y +# default: +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set +# default: +CONFIG_ESP_BROWNOUT_DET_LVL=0 +# default: +CONFIG_ESP_BROWNOUT_USE_INTR=y +# end of Brownout Detector +# end of Power Supplier + +# default: +CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +# default: +CONFIG_ESP_INTR_IN_IRAM=y +# end of Hardware Settings + +# +# ESP-Driver:LCD Controller Configurations +# +# default: +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:LCD Controller Configurations + +# +# LibC +# +# default: +# CONFIG_LIBC_NEWLIB is not set +# default: +CONFIG_LIBC_PICOLIBC=y +# default: +CONFIG_LIBC_PICOLIBC_NEWLIB_COMPATIBILITY=y +# default: +CONFIG_LIBC_MISC_IN_IRAM=y +# default: +CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y +# default: +CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y +# default: +# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set +# default: +# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set +# default: +# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set +# default: +# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set +# default: +CONFIG_LIBC_STDIN_LINE_ENDING_CR=y +# default: +CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y +# default: +# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set +# default: +# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set +# default: +# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set +# default: +CONFIG_LIBC_ASSERT_BUFFER_SIZE=200 +# end of LibC + +# +# ESP-MM: Memory Management Configurations +# +# end of ESP-MM: Memory Management Configurations + +# +# ESP NETIF Adapter +# +# default: +CONFIG_ESP_NETIF_LOST_IP_TIMER_ENABLE=y +# default: +CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# default: +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set +# default: +CONFIG_ESP_NETIF_TCPIP_LWIP=y +# default: +# CONFIG_ESP_NETIF_LOOPBACK is not set +# default: +CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +# default: +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y +# default: +CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS=y +# default: +# CONFIG_ESP_NETIF_L2_TAP is not set +# default: +# CONFIG_ESP_NETIF_BRIDGE_EN is not set +# default: +# 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 +# +# default: +CONFIG_ESP_PHY_ENABLED=y +# default: +CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y +# default: +# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set +# default: +CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 +# default: +CONFIG_ESP_PHY_MAX_TX_POWER=20 +# default: +# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set +# default: +# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set +# default: +CONFIG_ESP_PHY_RF_CAL_PARTIAL=y +# default: +# CONFIG_ESP_PHY_RF_CAL_NONE is not set +# default: +# CONFIG_ESP_PHY_RF_CAL_FULL is not set +# default: +CONFIG_ESP_PHY_CALIBRATION_MODE=0 +# default: +CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 +# default: +# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# default: +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set +# default: +CONFIG_ESP_PHY_IRAM_OPT=y +# default: +# CONFIG_ESP_PHY_DEBUG is not set +# end of PHY + +# +# Power Management +# +# default: +# CONFIG_PM_SLEEP_FUNC_IN_IRAM is not set +# default: +# CONFIG_PM_ENABLE is not set +# default: +# CONFIG_PM_SLP_IRAM_OPT is not set +# end of Power Management + +# +# ESP PSRAM +# +# default: +# CONFIG_SPIRAM is not set +# end of ESP PSRAM + +# +# ESP Ringbuf +# +# default: +# CONFIG_RINGBUF_IN_IRAM is not set +# default: +# CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH is not set +# end of ESP Ringbuf + +# +# ESP-ROM +# +# default: +CONFIG_ESP_ROM_PRINT_IN_IRAM=y +# end of ESP-ROM + +# +# ESP Security Specific +# +# end of ESP Security Specific + +# +# ESP-STDIO +# +# CONFIG_ESP_CONSOLE_UART_DEFAULT is not set +CONFIG_ESP_CONSOLE_UART_CUSTOM=y +# CONFIG_ESP_CONSOLE_NONE is not set +# default: +CONFIG_ESP_CONSOLE_UART=y +# default: +CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y +# default: +# CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set +# default: +CONFIG_ESP_CONSOLE_UART_NUM=0 +# default: +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 +# default: +CONFIG_ESP_CONSOLE_UART_TX_GPIO=1 +# default: +CONFIG_ESP_CONSOLE_UART_RX_GPIO=3 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=921600 +# end of ESP-STDIO + +# +# ESP System Settings +# +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +# default: +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 + +# +# Memory +# +# default: +# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set + +# +# Non-backward compatible options +# +# default: +# CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM is not set +# end of Non-backward compatible options +# end of Memory + +# +# Trace memory +# +# default: +# CONFIG_ESP32_TRAX is not set +# default: +CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 +# end of Trace memory + +# default: +CONFIG_ESP_SYSTEM_IN_IRAM=y +# default: +# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set +# default: +CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +# default: +# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set +# default: +# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set +# default: +CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 +# default: +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 +# default: +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +# default: +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 +# default: +CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y +# default: +# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set +# default: +# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set +# default: +CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 +# default: +CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 +# default: +CONFIG_ESP_INT_WDT=y +# default: +CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 +# default: +CONFIG_ESP_INT_WDT_CHECK_CPU1=y +# default: +CONFIG_ESP_TASK_WDT_EN=y +# default: +CONFIG_ESP_TASK_WDT_INIT=y +# default: +# CONFIG_ESP_TASK_WDT_PANIC is not set +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 +# default: +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# default: +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# default: +# CONFIG_ESP_PANIC_HANDLER_IRAM is not set +# default: +# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set +# default: +CONFIG_ESP_DEBUG_OCDAWARE=y +# default: +# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set +# default: +CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y +# default: +# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set +# end of ESP System Settings + +# +# IPC (Inter-Processor Call) +# +# default: +CONFIG_ESP_IPC_ENABLE=y +# default: +CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 +# default: +CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y +# default: +CONFIG_ESP_IPC_ISR_ENABLE=y +# end of IPC (Inter-Processor Call) + +# +# ESP Timer (High Resolution Timer) +# +# default: +CONFIG_ESP_TIMER_IN_IRAM=y +# default: +# CONFIG_ESP_TIMER_PROFILING is not set +# default: +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +# default: +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y +# default: +CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 +# default: +CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 +# default: +# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set +# default: +CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 +# default: +CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y +# default: +CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y +# default: +# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set +# default: +CONFIG_ESP_TIMER_IMPL_TG0_LAC=y +# end of ESP Timer (High Resolution Timer) + +# +# ESP Trace Configuration +# +# default: +# CONFIG_ESP_TRACE_LIB_EXTERNAL is not set +# default: +CONFIG_ESP_TRACE_LIB_NONE=y +# default: +CONFIG_ESP_TRACE_LIB_NAME="none" +# default: +# CONFIG_ESP_TRACE_TRANSPORT_APPTRACE is not set +# default: +CONFIG_ESP_TRACE_TRANSPORT_NONE=y +# default: +CONFIG_ESP_TRACE_TRANSPORT_NAME="none" +# end of ESP Trace Configuration + +# +# Wi-Fi +# +# default: +CONFIG_ESP_WIFI_ENABLED=y +# default: +CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +# default: +# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set +# default: +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y +# default: +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# default: +CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y +# default: +# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set +# default: +CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 +# default: +CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 +CONFIG_ESP_WIFI_CSI_ENABLED=y +# CONFIG_ESP_WIFI_AMPDU_TX_ENABLED is not set +# CONFIG_ESP_WIFI_AMPDU_RX_ENABLED is not set +# default: +CONFIG_ESP_WIFI_NVS_ENABLED=y +# default: +CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y +# default: +# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set +# default: +CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 +# default: +CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 +# default: +CONFIG_ESP_WIFI_IRAM_OPT=y +# default: +# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set +# default: +CONFIG_ESP_WIFI_RX_IRAM_OPT=y +# default: +CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y +# default: +CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y +# default: +CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +# default: +CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y +# default: +CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y +# default: +CONFIG_ESP_WIFI_WPA3_COMPATIBLE_SUPPORT=y +# default: +# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set +# default: +CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 +# default: +# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set +# default: +CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 +# default: +CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 +# default: +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y +# default: +CONFIG_ESP_WIFI_GMAC_SUPPORT=y +# default: +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y +# default: +# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +# default: +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 +# default: +# CONFIG_ESP_WIFI_NAN_SYNC_ENABLE is not set +# default: +CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y +# default: +CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y +# default: +# CONFIG_ESP_WIFI_WAPI_PSK is not set +# default: +# CONFIG_ESP_WIFI_11KV_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_MBO_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_DPP_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_11R_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set + +# +# WPS Configuration Options +# +# default: +# CONFIG_ESP_WIFI_WPS_STRICT is not set +# default: +# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set +# default: +# CONFIG_ESP_WIFI_WPS_RECONNECT_ON_FAIL is not set +# end of WPS Configuration Options + +# default: +# CONFIG_ESP_WIFI_DEBUG_PRINT is not set +# default: +CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y +# default: +# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set +# end of Wi-Fi + +# +# Core dump +# +# default: +# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +# default: +# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set +# default: +CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# end of Core dump + +# +# FAT Filesystem support +# +# default: +CONFIG_FATFS_VOLUME_COUNT=2 +# default: +# CONFIG_FATFS_LFN_NONE is not set +# default: +CONFIG_FATFS_LFN_HEAP=y +# default: +# CONFIG_FATFS_LFN_STACK is not set +# default: +# CONFIG_FATFS_SECTOR_512 is not set +# default: +CONFIG_FATFS_SECTOR_4096=y +# default: +# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set +# default: +CONFIG_FATFS_CODEPAGE_437=y +# default: +# CONFIG_FATFS_CODEPAGE_720 is not set +# default: +# CONFIG_FATFS_CODEPAGE_737 is not set +# default: +# CONFIG_FATFS_CODEPAGE_771 is not set +# default: +# CONFIG_FATFS_CODEPAGE_775 is not set +# default: +# CONFIG_FATFS_CODEPAGE_850 is not set +# default: +# CONFIG_FATFS_CODEPAGE_852 is not set +# default: +# CONFIG_FATFS_CODEPAGE_855 is not set +# default: +# CONFIG_FATFS_CODEPAGE_857 is not set +# default: +# CONFIG_FATFS_CODEPAGE_860 is not set +# default: +# CONFIG_FATFS_CODEPAGE_861 is not set +# default: +# CONFIG_FATFS_CODEPAGE_862 is not set +# default: +# CONFIG_FATFS_CODEPAGE_863 is not set +# default: +# CONFIG_FATFS_CODEPAGE_864 is not set +# default: +# CONFIG_FATFS_CODEPAGE_865 is not set +# default: +# CONFIG_FATFS_CODEPAGE_866 is not set +# default: +# CONFIG_FATFS_CODEPAGE_869 is not set +# default: +# CONFIG_FATFS_CODEPAGE_932 is not set +# default: +# CONFIG_FATFS_CODEPAGE_936 is not set +# default: +# CONFIG_FATFS_CODEPAGE_949 is not set +# default: +# CONFIG_FATFS_CODEPAGE_950 is not set +# default: +CONFIG_FATFS_CODEPAGE=437 +# default: +CONFIG_FATFS_MAX_LFN=255 +# default: +CONFIG_FATFS_API_ENCODING_ANSI_OEM=y +# default: +# CONFIG_FATFS_API_ENCODING_UTF_8 is not set +# default: +CONFIG_FATFS_FS_LOCK=0 +# default: +CONFIG_FATFS_TIMEOUT_MS=10000 +# default: +CONFIG_FATFS_PER_FILE_CACHE=y +# default: +# CONFIG_FATFS_USE_FASTSEEK is not set +# default: +CONFIG_FATFS_USE_STRFUNC_NONE=y +# default: +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# default: +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set +# default: +CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# default: +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# default: +# CONFIG_FATFS_USE_LABEL is not set +# default: +CONFIG_FATFS_LINK_LOCK=y +# default: +CONFIG_FATFS_USE_DYN_BUFFERS=y + +# +# File system free space calculation behavior +# +# default: +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +# default: +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior +# end of FAT Filesystem support + +# +# FreeRTOS +# + +# +# Kernel +# +# default: +# CONFIG_FREERTOS_SMP is not set +# default: +# CONFIG_FREERTOS_UNICORE is not set +CONFIG_FREERTOS_HZ=1000 +# default: +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set +# default: +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set +# default: +CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y +# default: +CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 +# default: +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 +# default: +# CONFIG_FREERTOS_USE_IDLE_HOOK is not set +# default: +# CONFIG_FREERTOS_USE_TICK_HOOK is not set +# default: +CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 +# default: +# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +# default: +CONFIG_FREERTOS_USE_TIMERS=y +# default: +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +# default: +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set +# default: +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set +# default: +CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y +# default: +CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF +# default: +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 +# default: +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 +# default: +CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 +# default: +CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +# default: +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 +# default: +# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# default: +# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set +# default: +# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# default: +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set +# end of Kernel + +# +# Port +# +# default: +# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +# default: +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# default: +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set +# default: +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y +# default: +CONFIG_FREERTOS_ISR_STACKSIZE=1536 +# default: +CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +# default: +# CONFIG_FREERTOS_FPU_IN_ISR is not set +# default: +CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y +# default: +CONFIG_FREERTOS_CORETIMER_0=y +# default: +# CONFIG_FREERTOS_CORETIMER_1 is not set +# default: +CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y +# default: +# CONFIG_FREERTOS_IN_IRAM is not set +# default: +# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set +# end of Port + +# +# Extra +# +# end of Extra + +# default: +CONFIG_FREERTOS_PORT=y +# default: +CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF +# default: +CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y +# default: +CONFIG_FREERTOS_DEBUG_OCDAWARE=y +# default: +CONFIG_FREERTOS_NUMBER_OF_CORES=2 +# end of FreeRTOS + +# +# Hardware Abstraction Layer (HAL) and Low Level (LL) +# +# default: +CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y +# default: +# CONFIG_HAL_ASSERTION_DISABLE is not set +# default: +# CONFIG_HAL_ASSERTION_SILENT is not set +# default: +# CONFIG_HAL_ASSERTION_ENABLE is not set +# default: +CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 +# default: +CONFIG_HAL_GPIO_USE_ROM_IMPL=y +# end of Hardware Abstraction Layer (HAL) and Low Level (LL) + +# +# Heap memory debugging +# +# default: +CONFIG_HEAP_HAS_EXEC_HEAP=y +# default: +CONFIG_HEAP_POISONING_DISABLED=y +# default: +# CONFIG_HEAP_POISONING_LIGHT is not set +# default: +# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set +# default: +CONFIG_HEAP_TRACING_OFF=y +# default: +# CONFIG_HEAP_TRACING_STANDALONE is not set +# default: +# CONFIG_HEAP_TRACING_TOHOST is not set +# default: +# CONFIG_HEAP_USE_HOOKS is not set +# default: +# CONFIG_HEAP_TASK_TRACKING is not set +# default: +# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set +# default: +# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set +# end of Heap memory debugging + +# +# Log +# +# default: +CONFIG_LOG_VERSION_1=y +# default: +# CONFIG_LOG_VERSION_2 is not set +# default: +CONFIG_LOG_VERSION=1 + +# +# Log Level +# +# default: +# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set +# default: +# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set +# default: +# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set +# default: +CONFIG_LOG_DEFAULT_LEVEL_INFO=y +# default: +# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set +# default: +# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set +# default: +CONFIG_LOG_DEFAULT_LEVEL=3 +# default: +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# default: +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# default: +# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set +# default: +CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# +# default: +# CONFIG_LOG_MASTER_LEVEL is not set +# default: +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# default: +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# default: +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +# default: +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# default: +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +# default: +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +# default: +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# +# default: +# CONFIG_LOG_COLORS is not set +# default: +CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y +# default: +# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Format + +# +# Settings +# +# default: +CONFIG_LOG_MODE_TEXT_EN=y +# default: +CONFIG_LOG_MODE_TEXT=y +# end of Settings + +# default: +CONFIG_LOG_IN_IRAM=y +# end of Log + +# +# LWIP +# +# default: +CONFIG_LWIP_ENABLE=y +# default: +CONFIG_LWIP_LOCAL_HOSTNAME="espressif" +# default: +CONFIG_LWIP_TCPIP_TASK_PRIO=18 +# default: +# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set +# default: +# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set +# default: +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y +# default: +# CONFIG_LWIP_L2_TO_L3_COPY is not set +# default: +# CONFIG_LWIP_IRAM_OPTIMIZATION is not set +# default: +# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set +# default: +CONFIG_LWIP_TIMERS_ONDEMAND=y +# default: +CONFIG_LWIP_ND6=y +# default: +# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set +# default: +CONFIG_LWIP_MAX_SOCKETS=10 +# default: +# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# default: +# CONFIG_LWIP_SO_LINGER is not set +# default: +CONFIG_LWIP_SO_REUSE=y +# default: +CONFIG_LWIP_SO_REUSE_RXTOALL=y +# default: +# CONFIG_LWIP_SO_RCVBUF is not set +# default: +# CONFIG_LWIP_NETBUF_RECVINFO is not set +# default: +CONFIG_LWIP_IP_DEFAULT_TTL=64 +# default: +CONFIG_LWIP_IP4_FRAG=y +# default: +CONFIG_LWIP_IP6_FRAG=y +# default: +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# default: +# CONFIG_LWIP_IP6_REASSEMBLY is not set +# default: +CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 +# default: +CONFIG_LWIP_IPV6_DUP_DETECT_ATTEMPTS=1 +# default: +# CONFIG_LWIP_IP_FORWARD is not set +# default: +# CONFIG_LWIP_STATS is not set +# default: +CONFIG_LWIP_ESP_GRATUITOUS_ARP=y +# default: +CONFIG_LWIP_GARP_TMR_INTERVAL=60 +# default: +CONFIG_LWIP_ESP_MLDV6_REPORT=y +# default: +CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 +# default: +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 +# default: +CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# default: +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# default: +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set +# default: +# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set +# default: +CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y +# default: +# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set +# default: +CONFIG_LWIP_DHCP_OPTIONS_LEN=69 +# default: +CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 +# default: +CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 + +# +# DHCP server +# +# default: +CONFIG_LWIP_DHCPS=y +# default: +CONFIG_LWIP_DHCPS_REPORT_CLIENT_HOSTNAME=y +# default: +CONFIG_LWIP_DHCPS_LEASE_UNIT=60 +# default: +CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +# default: +CONFIG_LWIP_DHCPS_MAX_HOSTNAME_LEN=64 +# default: +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +# end of DHCP server + +# default: +# CONFIG_LWIP_AUTOIP is not set +# default: +CONFIG_LWIP_IPV4=y +# default: +CONFIG_LWIP_IPV6=y +# default: +# CONFIG_LWIP_IPV6_AUTOCONFIG is not set +# default: +CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 +# default: +# CONFIG_LWIP_IPV6_FORWARD is not set +# default: +# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set +# default: +# CONFIG_LWIP_NETIF_LINK_CALLBACK is not set +# default: +CONFIG_LWIP_NETIF_LOOPBACK=y +# default: +CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 + +# +# TCP +# +# default: +CONFIG_LWIP_MAX_ACTIVE_TCP=16 +# default: +CONFIG_LWIP_MAX_LISTENING_TCP=16 +# default: +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y +# default: +CONFIG_LWIP_TCP_MAXRTX=12 +# default: +CONFIG_LWIP_TCP_SYNMAXRTX=12 +# default: +CONFIG_LWIP_TCP_MSS=1440 +# default: +CONFIG_LWIP_TCP_TMR_INTERVAL=250 +# default: +CONFIG_LWIP_TCP_MSL=60000 +# default: +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 +# default: +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 +# default: +CONFIG_LWIP_TCP_WND_DEFAULT=5760 +# default: +CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +# default: +CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 +# default: +CONFIG_LWIP_TCP_QUEUE_OOSEQ=y +# default: +CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 +# default: +CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 +# default: +# CONFIG_LWIP_TCP_SACK_OUT is not set +# default: +CONFIG_LWIP_TCP_OVERSIZE_MSS=y +# default: +# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set +# default: +# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set +# default: +CONFIG_LWIP_TCP_RTO_TIME=1500 +# end of TCP + +# +# UDP +# +# default: +CONFIG_LWIP_MAX_UDP_PCBS=16 +# default: +CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 +# end of UDP + +# +# Checksums +# +# default: +# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set +# default: +# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set +# default: +CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y +# end of Checksums + +# default: +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 +# default: +CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# default: +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set +# default: +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set +# default: +CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# default: +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 +# default: +# CONFIG_LWIP_IPV6_ND6_ROUTE_INFO_OPTION_SUPPORT is not set +# default: +# CONFIG_LWIP_PPP_SUPPORT is not set +# default: +# CONFIG_LWIP_SLIP_SUPPORT is not set + +# +# ICMP +# +# default: +CONFIG_LWIP_ICMP=y +# default: +# CONFIG_LWIP_MULTICAST_PING is not set +# default: +# CONFIG_LWIP_BROADCAST_PING is not set +# end of ICMP + +# +# LWIP RAW API +# +# default: +CONFIG_LWIP_MAX_RAW_PCBS=16 +# end of LWIP RAW API + +# +# SNTP +# +# default: +CONFIG_LWIP_SNTP_MAX_SERVERS=1 +# default: +# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set +# default: +CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +# default: +CONFIG_LWIP_SNTP_STARTUP_DELAY=y +# default: +CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 +# end of SNTP + +# +# DNS +# +# default: +CONFIG_LWIP_DNS_MAX_HOST_IP=1 +# default: +CONFIG_LWIP_DNS_MAX_SERVERS=3 +# default: +# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# default: +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set +# default: +# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set +# end of DNS + +# default: +CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 +# default: +CONFIG_LWIP_ESP_LWIP_ASSERT=y + +# +# Hooks +# +# default: +# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set +# default: +CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y +# default: +# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y +# default: +# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y +# default: +# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y +# default: +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y +# default: +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y +# default: +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y +# default: +# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set +# default: +# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set +# default: +CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y +# default: +# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set +# end of Hooks + +# default: +# CONFIG_LWIP_DEBUG is not set +# end of LWIP + +# +# mbedTLS +# + +# +# Core Configuration +# +# default: +CONFIG_MBEDTLS_VER_4_X_SUPPORT=y +# default: +# CONFIG_MBEDTLS_COMPILER_OPTIMIZATION_NONE is not set +# default: +CONFIG_MBEDTLS_COMPILER_OPTIMIZATION_SIZE=y +# default: +# CONFIG_MBEDTLS_COMPILER_OPTIMIZATION_PERF is not set +# default: +CONFIG_MBEDTLS_FS_IO=y +# default: +# CONFIG_MBEDTLS_THREADING_C is not set +# default: +CONFIG_MBEDTLS_ERROR_STRINGS=y +# default: +CONFIG_MBEDTLS_VERSION_C=y +# default: +CONFIG_MBEDTLS_HAVE_TIME=y +# default: +# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set +# default: +# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set +# default: +CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +# default: +# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set +# default: +# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set +# default: +CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y +# default: +CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 +# default: +CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 +# default: +# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set +# default: +# CONFIG_MBEDTLS_VERSION_FEATURES is not set +# default: +# CONFIG_MBEDTLS_DEBUG is not set +# default: +CONFIG_MBEDTLS_SELF_TEST=y +# end of Core Configuration + +# +# Certificates +# +# default: +CONFIG_MBEDTLS_X509_USE_C=y +# default: +CONFIG_MBEDTLS_PEM_PARSE_C=y +# default: +CONFIG_MBEDTLS_PEM_WRITE_C=y +# default: +CONFIG_MBEDTLS_PK_C=y +# default: +CONFIG_MBEDTLS_PK_PARSE_C=y +# default: +CONFIG_MBEDTLS_PK_WRITE_C=y +# default: +# CONFIG_MBEDTLS_X509_REMOVE_INFO is not set +# default: +CONFIG_MBEDTLS_X509_CRL_PARSE_C=y +# default: +CONFIG_MBEDTLS_X509_CRT_PARSE_C=y +# default: +CONFIG_MBEDTLS_X509_CSR_PARSE_C=y +# default: +# CONFIG_MBEDTLS_X509_CREATE_C is not set +# default: +CONFIG_MBEDTLS_X509_RSASSA_PSS_SUPPORT=y +# default: +# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set +# default: +CONFIG_MBEDTLS_ASN1_PARSE_C=y +# default: +CONFIG_MBEDTLS_ASN1_WRITE_C=y +# default: +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y + +# +# Certificate Bundle Configuration +# +# default: +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set +# default: +# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set +# default: +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 +# end of Certificate Bundle Configuration + +# default: +# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_CROSS_SIGNED_VERIFY is not set +# end of Certificates + +# default: +CONFIG_MBEDTLS_TLS_ENABLED=y + +# +# TLS Protocol Configuration +# +# default: +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +# default: +# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set +# default: +# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set +# default: +CONFIG_MBEDTLS_TLS_SERVER=y +# default: +CONFIG_MBEDTLS_TLS_CLIENT=y +# default: +CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y +# default: +# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set +# default: +# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set +# default: +# CONFIG_MBEDTLS_TLS_DISABLED is not set +# default: +# CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE is not set +# default: +# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set +# default: +CONFIG_MBEDTLS_SSL_CACHE_C=y +# default: +CONFIG_MBEDTLS_SSL_ALL_ALERT_MESSAGES=y + +# +# TLS Key Exchange Configuration +# +# default: +# CONFIG_MBEDTLS_PSK_MODES is not set +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y +# end of TLS Key Exchange Configuration + +# default: +CONFIG_MBEDTLS_SSL_SERVER_NAME_INDICATION=y +# default: +CONFIG_MBEDTLS_SSL_ALPN=y +# default: +CONFIG_MBEDTLS_SSL_MAX_FRAGMENT_LENGTH=y +# default: +# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set +# default: +CONFIG_MBEDTLS_SSL_RENEGOTIATION=y +# default: +CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y +# default: +CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y +# default: +# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set +# end of TLS Protocol Configuration + +# default: +# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set + +# +# Symmetric Ciphers +# +# default: +CONFIG_MBEDTLS_AES_C=y +# default: +# CONFIG_MBEDTLS_CAMELLIA_C is not set +# default: +CONFIG_MBEDTLS_ARIA_C=y +# default: +# CONFIG_MBEDTLS_DES_C is not set +# default: +CONFIG_MBEDTLS_CCM_C=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_CBC=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_CFB=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_CTR=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_OFB=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_XTS=y +# default: +CONFIG_MBEDTLS_GCM_C=y +# default: +# CONFIG_MBEDTLS_NIST_KW_C is not set +# default: +CONFIG_MBEDTLS_AES_ROM_TABLES=y +# default: +# CONFIG_MBEDTLS_AES_FEWER_TABLES is not set +# default: +# CONFIG_MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH is not set +# default: +CONFIG_MBEDTLS_CMAC_C=y +# end of Symmetric Ciphers + +# +# Asymmetric Ciphers +# +# default: +CONFIG_MBEDTLS_BIGNUM_C=y +# default: +CONFIG_MBEDTLS_RSA_C=y +# default: +CONFIG_MBEDTLS_ECP_C=y + +# +# Supported Curves +# +# default: +CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y +# end of Supported Curves + +# +# Elliptic Curve Ciphers Configuration +# +# default: +CONFIG_MBEDTLS_ECP_NIST_OPTIM=y +# default: +# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set +# default: +# CONFIG_MBEDTLS_DHM_C is not set +# default: +CONFIG_MBEDTLS_ECDH_C=y +# default: +# CONFIG_MBEDTLS_ECJPAKE_C is not set +# default: +CONFIG_MBEDTLS_ECDSA_C=y +# default: +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +# default: +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y +# default: +CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +# default: +# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set +# end of Elliptic Curve Ciphers Configuration +# end of Asymmetric Ciphers + +# +# Hash functions +# +# default: +# CONFIG_MBEDTLS_POLY1305_C is not set +# default: +# CONFIG_MBEDTLS_RIPEMD160_C is not set +# default: +CONFIG_MBEDTLS_MD_C=y +# default: +CONFIG_MBEDTLS_MD5_C=y +# default: +CONFIG_MBEDTLS_SHA1_C=y +# default: +# CONFIG_MBEDTLS_SHA224_C is not set +# default: +CONFIG_MBEDTLS_SHA256_C=y +# default: +CONFIG_MBEDTLS_SHA384_C=y +# default: +CONFIG_MBEDTLS_SHA512_C=y +# default: +CONFIG_MBEDTLS_SHA3_C=y +# default: +CONFIG_MBEDTLS_ROM_MD5=y +# end of Hash functions + +# +# Hardware Acceleration +# +# default: +CONFIG_MBEDTLS_HARDWARE_SHA=y +# default: +CONFIG_MBEDTLS_HARDWARE_MPI=y +# default: +CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y +# default: +CONFIG_MBEDTLS_HARDWARE_AES=y +# default: +# CONFIG_MBEDTLS_AES_SOFT_FALLBACK is not set +# default: +CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y +# default: +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set +# default: +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set +# end of Hardware Acceleration + +# +# Entropy and Random Number Generation +# +# default: +# CONFIG_MBEDTLS_ENTROPY_FORCE_SHA256 is not set +# default: +CONFIG_MBEDTLS_CTR_DRBG_C=y +# default: +CONFIG_MBEDTLS_HMAC_DRBG_C=y +# end of Entropy and Random Number Generation + +# +# Encoding/Decoding +# +# default: +CONFIG_MBEDTLS_BASE64_C=y +# default: +CONFIG_MBEDTLS_PKCS5_C=y +# default: +CONFIG_MBEDTLS_PKCS7_C=y +# default: +CONFIG_MBEDTLS_PKCS1_V15=y +# default: +CONFIG_MBEDTLS_PKCS1_V21=y +# end of Encoding/Decoding + +# +# Stream Cipher +# +# default: +# CONFIG_MBEDTLS_CHACHA20_C is not set +# end of Stream Cipher +# end of mbedTLS + +# +# NVS +# +# default: +# CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# default: +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set +# default: +# CONFIG_NVS_BDL_STACK is not set +# default: +# CONFIG_NVS_FLASH_VERIFY_ERASE is not set +# end of NVS + +# +# OpenThread +# +# default: +# CONFIG_OPENTHREAD_ENABLED is not set + +# +# OpenThread Spinel +# +# default: +# CONFIG_OPENTHREAD_SPINEL_ONLY is not set +# end of OpenThread Spinel + +# default: +# CONFIG_OPENTHREAD_DEBUG is not set +# end of OpenThread + +# +# Protocomm +# +# default: +# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0 is not set +# default: +# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1 is not set +# default: +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +# default: +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y +# end of Protocomm + +# +# PThreads +# +# default: +CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 +# default: +CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +# default: +CONFIG_PTHREAD_STACK_MIN=768 +# default: +CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y +# default: +# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set +# default: +# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set +# default: +CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 +# default: +CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" +# end of PThreads + +# +# SD Protocol Layer Configuration +# +# default: +CONFIG_SD_ENABLE_SDIO_SUPPORT=y +# end of SD Protocol Layer Configuration + +# +# MMU Config +# +# default: +CONFIG_MMU_PAGE_SIZE_64KB=y +# default: +CONFIG_MMU_PAGE_MODE="64KB" +# default: +CONFIG_MMU_PAGE_SIZE=0x10000 +# end of MMU Config + +# +# Main Flash configuration +# + +# +# SPI Flash behavior when brownout +# +# default: +CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y +# default: +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!) +# +# default: +CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 +# default: +# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# default: +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set +# default: +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 +# +# default: +# CONFIG_SPI_FLASH_VERIFY_WRITE is not set +# default: +# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set +# default: +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y +# default: +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set +# default: +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set +# default: +# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set +# default: +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +# default: +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +# default: +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +# default: +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 +# default: +CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 +# default: +# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set +# default: +# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set +# default: +# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set + +# +# Auto-detect flash chips +# +# default: +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y +# default: +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y +# default: +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +# default: +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y +# default: +# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set +# default: +# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set +# end of Auto-detect flash chips + +# default: +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y +# end of SPI Flash driver + +# +# SPIFFS Configuration +# +# default: +CONFIG_SPIFFS_MAX_PARTITIONS=3 + +# +# SPIFFS Cache Configuration +# +# default: +CONFIG_SPIFFS_CACHE=y +# default: +CONFIG_SPIFFS_CACHE_WR=y +# default: +# CONFIG_SPIFFS_CACHE_STATS is not set +# end of SPIFFS Cache Configuration + +# default: +CONFIG_SPIFFS_PAGE_CHECK=y +# default: +CONFIG_SPIFFS_GC_MAX_RUNS=10 +# default: +# CONFIG_SPIFFS_GC_STATS is not set +# default: +CONFIG_SPIFFS_PAGE_SIZE=256 +# default: +CONFIG_SPIFFS_OBJ_NAME_LEN=32 +# default: +# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set +# default: +CONFIG_SPIFFS_USE_MAGIC=y +# default: +CONFIG_SPIFFS_USE_MAGIC_LENGTH=y +# default: +CONFIG_SPIFFS_META_LENGTH=4 +# default: +CONFIG_SPIFFS_USE_MTIME=y + +# +# Debug Configuration +# +# default: +# CONFIG_SPIFFS_DBG is not set +# default: +# CONFIG_SPIFFS_API_DBG is not set +# default: +# CONFIG_SPIFFS_GC_DBG is not set +# default: +# CONFIG_SPIFFS_CACHE_DBG is not set +# default: +# CONFIG_SPIFFS_CHECK_DBG is not set +# default: +# CONFIG_SPIFFS_TEST_VISUALISATION is not set +# end of Debug Configuration +# end of SPIFFS Configuration + +# +# TCP Transport +# + +# +# Websocket +# +# default: +CONFIG_WS_TRANSPORT=y +# default: +CONFIG_WS_BUFFER_SIZE=1024 +# default: +# CONFIG_WS_DYNAMIC_BUFFER is not set +# end of Websocket +# end of TCP Transport + +# +# Ultra Low Power (ULP) Co-processor +# +# default: +# 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 +# +# default: +CONFIG_UNITY_ENABLE_FLOAT=y +# default: +CONFIG_UNITY_ENABLE_DOUBLE=y +# default: +# CONFIG_UNITY_ENABLE_64BIT is not set +# default: +# CONFIG_UNITY_ENABLE_COLOR is not set +# default: +CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y +# default: +# CONFIG_UNITY_ENABLE_FIXTURE is not set +# default: +# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# end of Unity unit testing library + +# +# Virtual file system +# +# default: +CONFIG_VFS_SUPPORT_IO=y +# default: +CONFIG_VFS_SUPPORT_DIR=y +# default: +CONFIG_VFS_SUPPORT_SELECT=y +# default: +CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# default: +# CONFIG_VFS_SELECT_IN_RAM is not set +# default: +# CONFIG_VFS_SUPPORT_TERMIOS is not set +# default: +CONFIG_VFS_MAX_COUNT=8 + +# +# Host File System I/O (Semihosting) +# +# default: +CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# end of Host File System I/O (Semihosting) + +# default: +CONFIG_VFS_INITIALIZE_DEV_NULL=y +# end of Virtual file system + +# +# Wear Levelling +# +# default: +# CONFIG_WL_SECTOR_SIZE_512 is not set +# default: +CONFIG_WL_SECTOR_SIZE_4096=y +# default: +CONFIG_WL_SECTOR_SIZE=4096 +# end of Wear Levelling + +# +# CMake Utilities +# +# default: +# CONFIG_CU_RELINKER_ENABLE is not set +# default: +# CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set +# default: +CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y +# default: +# CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set +# default: +# CONFIG_CU_GCC_LTO_ENABLE is not set +# default: +# CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set +# end of CMake Utilities +# end of Component config + +# default: +# 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_ESP32_NO_BLOBS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# CONFIG_APP_ROLLBACK_ENABLE is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE 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=921600 +# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set +# 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_ADC_CAL_EFUSE_TP_ENABLE=y +CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CAL_LUT_ENABLE=y +CONFIG_ADC_DISABLE_DAC=y +# 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_TWO_UNIVERSAL_MAC_ADDRESS is not set +CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y +CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 +# CONFIG_ESP_SYSTEM_PD_FLASH is not set +CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y +CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y +# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set +# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set +# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set +CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 +CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +# CONFIG_ESP32_XTAL_FREQ_26 is not set +CONFIG_ESP32_XTAL_FREQ_40=y +# CONFIG_ESP32_XTAL_FREQ_AUTO is not set +CONFIG_ESP32_XTAL_FREQ=40 +CONFIG_BROWNOUT_DET=y +CONFIG_ESP32_BROWNOUT_DET=y +CONFIG_BROWNOUT_DET_LVL_SEL_0=y +CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y +# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set +CONFIG_BROWNOUT_DET_LVL=0 +CONFIG_ESP32_BROWNOUT_DET_LVL=0 +CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y +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_TIME_SYSCALL_USE_RTC_HRT=y +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y +# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set +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_SPIRAM_SUPPORT is not set +# CONFIG_ESP32_SPIRAM_SUPPORT is not set +# CONFIG_CONSOLE_UART_DEFAULT is not set +CONFIG_CONSOLE_UART_CUSTOM=y +# CONFIG_CONSOLE_UART_NONE is not set +# CONFIG_ESP_CONSOLE_UART_NONE is not set +CONFIG_CONSOLE_UART=y +CONFIG_CONSOLE_UART_CUSTOM_NUM_0=y +# CONFIG_CONSOLE_UART_CUSTOM_NUM_1 is not set +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_TX_GPIO=1 +CONFIG_CONSOLE_UART_RX_GPIO=3 +CONFIG_CONSOLE_UART_BAUDRATE=921600 +# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set +# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set +CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y +CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240 +CONFIG_TRACEMEM_RESERVE_DRAM=0x0 +# CONFIG_ESP32_PANIC_PRINT_HALT is not set +CONFIG_ESP32_PANIC_PRINT_REBOOT=y +# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP32_PANIC_GDBSTUB is not set +CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_MAIN_TASK_STACK_SIZE=3584 +CONFIG_INT_WDT=y +CONFIG_INT_WDT_TIMEOUT_MS=300 +CONFIG_INT_WDT_CHECK_CPU1=y +CONFIG_TASK_WDT=y +CONFIG_ESP_TASK_WDT=y +# CONFIG_TASK_WDT_PANIC is not set +CONFIG_TASK_WDT_TIMEOUT_S=30 +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set +CONFIG_ESP32_DEBUG_OCDAWARE=y +# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set +CONFIG_IPC_TASK_STACK_SIZE=1024 +CONFIG_TIMER_TASK_STACK_SIZE=3584 +# CONFIG_ESP32_APPTRACE_ENABLE is not set +CONFIG_ESP32_WIFI_ENABLED=y +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +# 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=y +# CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED is not set +# CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED is not set +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y +# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set +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_ESP_WIFI_NAN_ENABLE is not set +CONFIG_WPA_MBEDTLS_CRYPTO=y +CONFIG_WPA_MBEDTLS_TLS_CLIENT=y +# CONFIG_WPA_WAPI_PSK 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_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_CPU1 is not set +CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_PPP_SUPPORT 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_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y +# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set +# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set +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_ESP32_ULP_COPROC_ENABLED is not set +CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# CONFIG_SUPPORT_TERMIOS is not set +CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# End of deprecated options diff --git a/get-started/csi_recv_router/sdkconfig.defaults b/get-started/csi_recv_router/sdkconfig.defaults new file mode 100644 index 0000000..fc9a834 --- /dev/null +++ b/get-started/csi_recv_router/sdkconfig.defaults @@ -0,0 +1,51 @@ +# +# Wi-Fi +# +CONFIG_ESP32_WIFI_CSI_ENABLED=y +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED= +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=128 + +# +# UART +# +CONFIG_ESP_CONSOLE_UART_CUSTOM=y +CONFIG_ESP_CONSOLE_UART=y +CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_BAUDRATE=921600 + +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 + +CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=921600 + + +# +# Wi-Fi +# +CONFIG_ESP32_WIFI_CSI_ENABLED=y +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED= +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED= + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_PERF=y + +# +# FreeRTOS +# +CONFIG_FREERTOS_HZ=1000 + +# +# ESP32-specific +# +CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y +CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240 + +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 + +# +# ESP32S3-specific +# +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y +CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=240 diff --git a/get-started/csi_recv_router/sdkconfig.old b/get-started/csi_recv_router/sdkconfig.old new file mode 100644 index 0000000..53ff946 --- /dev/null +++ b/get-started/csi_recv_router/sdkconfig.old @@ -0,0 +1,3566 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) 6.1.0 Project Configuration +# +# default: +CONFIG_SOC_CAPS_ECO_VER_MAX=301 +# default: +CONFIG_SOC_ADC_SUPPORTED=y +# default: +CONFIG_SOC_DAC_SUPPORTED=y +# default: +CONFIG_SOC_UART_SUPPORTED=y +# default: +CONFIG_SOC_MCPWM_SUPPORTED=y +# default: +CONFIG_SOC_GPTIMER_SUPPORTED=y +# default: +CONFIG_SOC_SDMMC_HOST_SUPPORTED=y +# default: +CONFIG_SOC_BT_SUPPORTED=y +# default: +CONFIG_SOC_PCNT_SUPPORTED=y +# default: +CONFIG_SOC_PHY_SUPPORTED=y +# default: +CONFIG_SOC_WIFI_SUPPORTED=y +# default: +CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y +# default: +CONFIG_SOC_TWAI_SUPPORTED=y +# default: +CONFIG_SOC_EFUSE_SUPPORTED=y +# default: +CONFIG_SOC_EMAC_SUPPORTED=y +# default: +CONFIG_SOC_ULP_SUPPORTED=y +# default: +CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y +# default: +CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y +# default: +CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y +# default: +CONFIG_SOC_RTC_MEM_SUPPORTED=y +# default: +CONFIG_SOC_RTC_TIMER_V1_SUPPORTED=y +# default: +CONFIG_SOC_I2S_SUPPORTED=y +# default: +CONFIG_SOC_I2S_I80_LCD_SUPPORTED=y +# default: +CONFIG_SOC_LCD_I80_SUPPORTED=y +# default: +CONFIG_SOC_RMT_SUPPORTED=y +# default: +CONFIG_SOC_SDM_SUPPORTED=y +# default: +CONFIG_SOC_GPSPI_SUPPORTED=y +# default: +CONFIG_SOC_LEDC_SUPPORTED=y +# default: +CONFIG_SOC_I2C_SUPPORTED=y +# default: +CONFIG_SOC_SUPPORT_COEXISTENCE=y +# default: +CONFIG_SOC_AES_SUPPORTED=y +# default: +CONFIG_SOC_MPI_SUPPORTED=y +# default: +CONFIG_SOC_SHA_SUPPORTED=y +# default: +CONFIG_SOC_FLASH_ENC_SUPPORTED=y +# default: +CONFIG_SOC_SECURE_BOOT_SUPPORTED=y +# default: +CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y +# default: +CONFIG_SOC_BOD_SUPPORTED=y +# default: +CONFIG_SOC_ULP_FSM_SUPPORTED=y +# default: +CONFIG_SOC_CLK_TREE_SUPPORTED=y +# default: +CONFIG_SOC_MPU_SUPPORTED=y +# default: +CONFIG_SOC_WDT_SUPPORTED=y +# default: +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +# default: +CONFIG_SOC_RNG_SUPPORTED=y +# default: +CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y +# default: +CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y +# default: +CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y +# default: +CONFIG_SOC_PM_SUPPORTED=y +# default: +CONFIG_SOC_SPI_EXTERNAL_NOR_FLASH_SUPPORTED=y +# default: +CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 +# default: +CONFIG_SOC_XTAL_SUPPORT_26M=y +# default: +CONFIG_SOC_XTAL_SUPPORT_40M=y +# default: +CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y +# default: +CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y +# default: +CONFIG_SOC_ADC_DMA_SUPPORTED=y +# default: +CONFIG_SOC_ADC_PERIPH_NUM=2 +# default: +CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 +# default: +CONFIG_SOC_ADC_ATTEN_NUM=4 +# default: +CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 +# default: +CONFIG_SOC_ADC_PATT_LEN_MAX=16 +# default: +CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 +# default: +CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 +# default: +CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 +# default: +CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +# default: +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=0 +# default: +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2000000 +# default: +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20000 +# default: +CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 +# default: +CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +# default: +CONFIG_SOC_ADC_SHARED_POWER=y +# default: +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y +# default: +CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y +# default: +CONFIG_SOC_IDCACHE_PER_CORE=y +# default: +CONFIG_SOC_CPU_CORES_NUM=2 +# default: +CONFIG_SOC_CPU_INTR_NUM=32 +# default: +CONFIG_SOC_CPU_HAS_FPU=y +# default: +CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y +# default: +CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 +# default: +CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 +# default: +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40 +# default: +CONFIG_SOC_DAC_CHAN_NUM=2 +# default: +CONFIG_SOC_DAC_RESOLUTION=8 +# default: +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y +# default: +CONFIG_SOC_GPIO_PORT=1 +# default: +CONFIG_SOC_GPIO_PIN_COUNT=40 +# default: +CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +# default: +CONFIG_SOC_GPIO_IN_RANGE_MAX=39 +# default: +CONFIG_SOC_GPIO_OUT_RANGE_MAX=33 +# default: +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA +# default: +CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y +# default: +CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +# default: +CONFIG_SOC_I2C_NUM=2 +# default: +CONFIG_SOC_HP_I2C_NUM=2 +# default: +CONFIG_SOC_I2C_SUPPORT_APB=y +# default: +CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y +# default: +CONFIG_SOC_I2C_SUPPORT_SLAVE=y +# default: +CONFIG_SOC_I2C_STOP_INDEPENDENT=y +# default: +CONFIG_SOC_I2S_HW_VERSION_1=y +# default: +CONFIG_SOC_I2S_SUPPORTS_APLL=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +# default: +CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y +# default: +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 +# default: +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 +# default: +CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y +# default: +CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y +# default: +CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y +# default: +CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y +# default: +CONFIG_SOC_LEDC_TIMER_NUM=4 +# default: +CONFIG_SOC_LEDC_CHANNEL_NUM=8 +# default: +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +# default: +CONFIG_SOC_MMU_PERIPH_NUM=2 +# default: +CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=3 +# default: +CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 +# default: +CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 +# default: +CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64 +# default: +CONFIG_SOC_RTCIO_PIN_COUNT=18 +# default: +CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y +# default: +CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y +# default: +CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y +# default: +CONFIG_SOC_SPI_PERIPH_NUM=3 +# default: +CONFIG_SOC_SPI_HD_BOTH_INOUT_SUPPORTED=y +# default: +CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 +# default: +CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 +# default: +CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 +# default: +CONFIG_SOC_TOUCH_SENSOR_VERSION=1 +# default: +CONFIG_SOC_TOUCH_MIN_CHAN_ID=0 +# default: +CONFIG_SOC_TOUCH_MAX_CHAN_ID=9 +# default: +CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y +# default: +CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 +# default: +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 +# default: +CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 +# default: +CONFIG_SOC_UART_NUM=3 +# default: +CONFIG_SOC_UART_HP_NUM=3 +# default: +CONFIG_SOC_UART_SUPPORT_APB_CLK=y +# default: +CONFIG_SOC_UART_SUPPORT_REF_TICK=y +# default: +CONFIG_SOC_UART_FIFO_LEN=128 +# default: +CONFIG_SOC_UART_BITRATE_MAX=5000000 +# default: +CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y +# default: +CONFIG_SOC_SPIRAM_SUPPORTED=y +# default: +CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y +# default: +CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y +# default: +CONFIG_SOC_SHA_ENDIANNESS_BE=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA1=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA256=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA384=y +# default: +CONFIG_SOC_SHA_SUPPORT_SHA512=y +# default: +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +# default: +CONFIG_SOC_MPI_OPERATIONS_NUM=1 +# default: +CONFIG_SOC_RSA_MAX_BIT_LEN=4096 +# default: +CONFIG_SOC_AES_SUPPORT_AES_128=y +# default: +CONFIG_SOC_AES_SUPPORT_AES_192=y +# default: +CONFIG_SOC_AES_SUPPORT_AES_256=y +# default: +CONFIG_SOC_SECURE_BOOT_V1=y +# default: +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=1 +# default: +CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 +# default: +CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 +# default: +CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y +# default: +CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y +# default: +CONFIG_SOC_PM_SUPPORT_MODEM_PD=y +# default: +CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y +# default: +CONFIG_SOC_PM_MODEM_PD_BY_SW=y +# default: +CONFIG_SOC_CLK_APLL_SUPPORTED=y +# default: +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +# default: +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +# default: +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y +# default: +CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y +# default: +CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D4=y +# default: +CONFIG_SOC_SDMMC_USE_IOMUX=y +# default: +CONFIG_SOC_SDMMC_NUM_SLOTS=2 +# default: +CONFIG_SOC_SDMMC_DATA_WIDTH_MAX=8 +# default: +CONFIG_SOC_WIFI_WAPI_SUPPORT=y +# default: +CONFIG_SOC_WIFI_CSI_SUPPORT=y +# default: +CONFIG_SOC_WIFI_MESH_SUPPORT=y +# default: +CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y +# default: +CONFIG_SOC_WIFI_NAN_SUPPORT=y +# default: +CONFIG_SOC_BLE_SUPPORTED=y +# default: +CONFIG_SOC_BLE_MESH_SUPPORTED=y +# default: +CONFIG_SOC_BT_CLASSIC_SUPPORTED=y +# default: +CONFIG_SOC_BLUFI_SUPPORTED=y +# default: +CONFIG_SOC_BT_H2C_ENC_KEY_CTRL_ENH_VSC_SUPPORTED=y +# default: +CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y +# default: +CONFIG_SOC_ULP_HAS_ADC=y +# default: +CONFIG_SOC_PHY_COMBO_MODULE=y +# default: +CONFIG_SOC_EMAC_RMII_CLK_OUT_INTERNAL_LOOPBACK=y +# default: +CONFIG_IDF_CMAKE=y +# default: +CONFIG_IDF_TOOLCHAIN="gcc" +# default: +CONFIG_IDF_TOOLCHAIN_GCC=y +# default: +CONFIG_IDF_TARGET_ARCH_XTENSA=y +# default: +CONFIG_IDF_TARGET_ARCH="xtensa" +# default: +CONFIG_IDF_TARGET="esp32" +# default: +CONFIG_IDF_INIT_VERSION="6.1.0" +# default: +CONFIG_IDF_TARGET_ESP32=y +# default: +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 + +# +# Build type +# +# default: +CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y +# default: +# CONFIG_APP_BUILD_TYPE_RAM is not set +# default: +CONFIG_APP_BUILD_GENERATE_BINARIES=y +# default: +CONFIG_APP_BUILD_BOOTLOADER=y +# default: +CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y +# default: +# CONFIG_APP_REPRODUCIBLE_BUILD is not set +# default: +# CONFIG_APP_NO_BLOBS is not set +# default: +# CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# default: +# CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# end of Build type + +# +# Bootloader config +# + +# +# Bootloader manager +# +# default: +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +# default: +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + +# +# Application Rollback +# +# default: +# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set +# end of Application Rollback + +# +# Recovery Bootloader and Rollback +# +# end of Recovery Bootloader and Rollback + +# default: +CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 +# default: +CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y +# default: +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set +# default: +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set + +# +# Log +# +# default: +CONFIG_BOOTLOADER_LOG_VERSION_1=y +# default: +CONFIG_BOOTLOADER_LOG_VERSION=1 +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set +# default: +CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set +# default: +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set +# default: +CONFIG_BOOTLOADER_LOG_LEVEL=3 + +# +# Format +# +# default: +# CONFIG_BOOTLOADER_LOG_COLORS is not set +# default: +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format + +# +# Settings +# +# default: +CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y +# default: +CONFIG_BOOTLOADER_LOG_MODE_TEXT=y +# end of Settings +# end of Log + +# default: +CONFIG_BOOTLOADER_CPU_CLK_FREQ_MHZ=80 + +# +# Serial Flash Configurations +# +# default: +# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set +# default: +CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y +# end of Serial Flash Configurations + +# default: +# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set +# default: +CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y +# default: +# CONFIG_BOOTLOADER_FACTORY_RESET is not set +# default: +# CONFIG_BOOTLOADER_APP_TEST is not set +# default: +CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y +# default: +CONFIG_BOOTLOADER_WDT_ENABLE=y +# default: +# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set +# default: +CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# default: +# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set +# default: +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set +# default: +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set +# default: +CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 +# default: +# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set +# end of Bootloader config + +# +# Security features +# +# default: +CONFIG_SECURE_BOOT_V1_SUPPORTED=y +# default: +# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set +# default: +# CONFIG_SECURE_BOOT is not set +# default: +# CONFIG_SECURE_FLASH_ENC_ENABLED is not set +# end of Security features + +# +# Application manager +# +# default: +CONFIG_APP_COMPILE_TIME_DATE=y +# default: +# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set +# default: +# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +# default: +# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set +# default: +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 +# end of Application manager + +# default: +CONFIG_ESP_ROM_HAS_CRC_LE=y +# default: +CONFIG_ESP_ROM_HAS_CRC_BE=y +# default: +CONFIG_ESP_ROM_HAS_MZ_CRC32=y +# default: +CONFIG_ESP_ROM_HAS_JPEG_DECODE=y +# default: +CONFIG_ESP_ROM_HAS_UART_BUF_SWITCH=y +# default: +CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y +# default: +CONFIG_ESP_ROM_HAS_NEWLIB=y +# default: +CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y +# default: +CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y +# default: +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +# default: +CONFIG_ESP_ROM_USB_OTG_NUM=-1 +# default: +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1 +# default: +CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +# default: +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y + +# +# Serial flasher config +# +# default: +# CONFIG_ESPTOOLPY_NO_STUB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +# default: +# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set +# default: +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# default: +# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set +# default: +CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y +# default: +CONFIG_ESPTOOLPY_FLASHMODE="dio" +# default: +# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set +# default: +CONFIG_ESPTOOLPY_FLASHFREQ_40M=y +# default: +# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set +# default: +# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set +# default: +CONFIG_ESPTOOLPY_FLASHFREQ="40m" +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set +# default: +CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set +# default: +# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set +# default: +CONFIG_ESPTOOLPY_FLASHSIZE="2MB" +# default: +# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set +# default: +CONFIG_ESPTOOLPY_BEFORE_RESET=y +# default: +# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set +# default: +CONFIG_ESPTOOLPY_BEFORE="default-reset" +# default: +CONFIG_ESPTOOLPY_AFTER_RESET=y +# default: +# CONFIG_ESPTOOLPY_AFTER_NORESET is not set +# default: +CONFIG_ESPTOOLPY_AFTER="hard-reset" +# default: +CONFIG_ESPTOOLPY_MONITOR_BAUD=921600 + +# +# Fast Reflashing +# +# end of Fast Reflashing +# end of Serial flasher config + +# +# Partition Table +# +# default: +CONFIG_PARTITION_TABLE_SINGLE_APP=y +# default: +# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set +# default: +# CONFIG_PARTITION_TABLE_TWO_OTA is not set +# default: +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set +# default: +# CONFIG_PARTITION_TABLE_CUSTOM is not set +# default: +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +# default: +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" +# default: +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +# default: +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table + +# +# Example Connection Configuration +# +# default: +CONFIG_ENV_GPIO_RANGE_MIN=0 +# default: +CONFIG_ENV_GPIO_RANGE_MAX=39 +# default: +CONFIG_ENV_GPIO_IN_RANGE_MAX=39 +# default: +CONFIG_ENV_GPIO_OUT_RANGE_MAX=33 +# default: +CONFIG_EXAMPLE_CONNECT_WIFI=y +# default: +# CONFIG_EXAMPLE_WIFI_SSID_PWD_FROM_STDIN is not set +# default: +CONFIG_EXAMPLE_PROVIDE_WIFI_CONSOLE_CMD=y +# default: +CONFIG_EXAMPLE_WIFI_SSID="myssid" +# default: +CONFIG_EXAMPLE_WIFI_PASSWORD="mypassword" +# default: +CONFIG_EXAMPLE_WIFI_CONN_MAX_RETRY=6 +# default: +# CONFIG_EXAMPLE_WIFI_SCAN_METHOD_FAST is not set +# default: +CONFIG_EXAMPLE_WIFI_SCAN_METHOD_ALL_CHANNEL=y + +# +# WiFi Scan threshold +# +# default: +CONFIG_EXAMPLE_WIFI_SCAN_RSSI_THRESHOLD=-127 +# default: +CONFIG_EXAMPLE_WIFI_AUTH_OPEN=y +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WEP is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA2_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA_WPA2_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA2_ENTERPRISE is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA3_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WPA2_WPA3_PSK is not set +# default: +# CONFIG_EXAMPLE_WIFI_AUTH_WAPI_PSK is not set +# end of WiFi Scan threshold + +# default: +CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SIGNAL=y +# default: +# CONFIG_EXAMPLE_WIFI_CONNECT_AP_BY_SECURITY is not set +# default: +# CONFIG_EXAMPLE_CONNECT_ETHERNET is not set +# default: +CONFIG_EXAMPLE_DISABLE_ETHERNET_CONFIG=y +# default: +# CONFIG_EXAMPLE_CONNECT_PPP is not set +# default: +CONFIG_EXAMPLE_CONNECT_IPV4=y +# default: +CONFIG_EXAMPLE_CONNECT_IPV6=y +# default: +CONFIG_EXAMPLE_CONNECT_IPV6_PREF_LOCAL_LINK=y +# default: +# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_GLOBAL is not set +# default: +# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_SITE_LOCAL is not set +# default: +# CONFIG_EXAMPLE_CONNECT_IPV6_PREF_UNIQUE_LOCAL is not set +# end of Example Connection Configuration + +# +# Ethernet Configuration +# +# default: +CONFIG_ETHERNET_INIT_OVERRIDE_DISABLE=y +# default: +CONFIG_ETHERNET_SPI_USE_DM9051=0 +# default: +CONFIG_ETHERNET_SPI_USE_KSZ8851SNL=0 +# default: +CONFIG_ETHERNET_SPI_USE_W5500=0 +# default: +CONFIG_ETHERNET_SPI_USE_CH390=0 +# default: +CONFIG_ETHERNET_SPI_USE_ENC28J60=0 +# default: +CONFIG_ETHERNET_SPI_USE_LAN865X=0 +# default: +CONFIG_ETHERNET_PHY_USE_IP101=0 +# default: +CONFIG_ETHERNET_PHY_USE_LAN87XX=0 +# default: +CONFIG_ETHERNET_PHY_USE_LAN867X=0 +# default: +CONFIG_ETHERNET_PHY_USE_DP83848=0 +# default: +CONFIG_ETHERNET_PHY_USE_KSZ80XX=0 +# default: +CONFIG_ETHERNET_PHY_USE_RTL8201=0 +# end of Ethernet Configuration + +# +# Compiler options +# +# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +CONFIG_COMPILER_OPTIMIZATION_PERF=y +# CONFIG_COMPILER_OPTIMIZATION_NONE is not set +# default: +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +# default: +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set +# default: +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +# default: +# CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE is not set +# default: +CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y +# default: +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +# default: +# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set +# default: +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +# default: +# CONFIG_COMPILER_CXX_EXCEPTIONS is not set +# default: +# CONFIG_COMPILER_CXX_RTTI is not set +# default: +CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y +# default: +# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set +# default: +# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set +# default: +# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# default: +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set +# default: +# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set +# default: +# CONFIG_COMPILER_DISABLE_GCC15_WARNINGS is not set +# default: +# CONFIG_COMPILER_DUMP_RTL_FILES is not set +# default: +CONFIG_COMPILER_RT_LIB_GCCLIB=y +# default: +CONFIG_COMPILER_RT_LIB_NAME="gcc" +# default: +CONFIG_COMPILER_ORPHAN_SECTIONS_ERROR=y +# default: +# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set +# default: +# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set +# default: +# CONFIG_COMPILER_STATIC_ANALYZER is not set +# default: +CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR_NO_CHANGE=y +# default: +# CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR_COLD_CONSTEXPR is not set +# default: +# CONFIG_COMPILER_CXX_GLIBCXX_CONSTEXPR_COLD is not set +# end of Compiler options + +# +# Component config +# + +# +# Bluetooth +# +# default: +# CONFIG_BT_ENABLED is not set + +# +# Common Options +# + +# +# BLE Log +# +# default: +# CONFIG_BLE_LOG_ENABLED is not set +# end of BLE Log + +# default: +# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# default: +# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set +# default: +# CONFIG_BT_LE_USED_MEM_STATISTICS_ENABLED is not set +# end of Common Options +# end of Bluetooth + +# +# Console Library +# +# default: +# CONFIG_CONSOLE_SORTED_HELP is not set +# end of Console Library + +# +# Legacy Driver Configurations +# + +# +# Legacy TWAI Driver Configurations +# +# default: +# CONFIG_TWAI_ISR_IN_IRAM_LEGACY is not set +# default: +# CONFIG_TWAI_SUPPRESS_DEPRECATE_WARN is not set +# default: +# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy TWAI Driver Configurations + +# +# Legacy I2C Driver Configurations +# +# default: +# CONFIG_I2C_SUPPRESS_DEPRECATE_WARN is not set +# default: +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations + +# +# Legacy Touch Sensor Driver Configurations +# +# default: +# CONFIG_TOUCH_SUPPRESS_DEPRECATE_WARN is not set +# default: +# CONFIG_TOUCH_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Touch Sensor Driver Configurations +# end of Legacy Driver Configurations + +# +# eFuse Bit Manager +# +# default: +# CONFIG_EFUSE_CUSTOM_TABLE is not set +# default: +# CONFIG_EFUSE_VIRTUAL is not set +# default: +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set +# default: +CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y +# default: +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set +# default: +CONFIG_EFUSE_MAX_BLK_LEN=192 +# end of eFuse Bit Manager + +# +# ESP-TLS +# +# default: +CONFIG_ESP_TLS_USING_MBEDTLS=y +# default: +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set +# default: +# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set +# default: +# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set +# default: +# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set +# default: +# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set +# default: +# CONFIG_ESP_TLS_PSK_VERIFICATION is not set +# default: +# CONFIG_ESP_TLS_INSECURE is not set +# default: +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y +# end of ESP-TLS + +# +# ADC and ADC Calibration +# +# default: +# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set + +# +# ADC Calibration Configurations +# +# default: +CONFIG_ADC_CALI_EFUSE_TP_ENABLE=y +# default: +CONFIG_ADC_CALI_EFUSE_VREF_ENABLE=y +# default: +CONFIG_ADC_CALI_LUT_ENABLE=y +# end of ADC Calibration Configurations + +# default: +CONFIG_ADC_DISABLE_DAC_OUTPUT=y +# default: +# CONFIG_ADC_ENABLE_DEBUG_LOG is not set +# end of ADC and ADC Calibration + +# +# Wireless Coexistence +# +# default: +CONFIG_ESP_COEX_ENABLED=y +# default: +# CONFIG_ESP_COEX_GPIO_DEBUG is not set +# end of Wireless Coexistence + +# +# Common ESP-related +# +# default: +CONFIG_ESP_ERR_TO_NAME_LOOKUP=y +# end of Common ESP-related + +# +# ESP-Driver:DAC Configurations +# +# default: +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# default: +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +# default: +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of ESP-Driver:DAC Configurations + +# +# ESP-Driver:GPIO Configurations +# +# default: +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:GPIO Configurations + +# +# ESP-Driver:GPTimer Configurations +# +# default: +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# default: +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set +# default: +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y +# default: +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:GPTimer Configurations + +# +# ESP-Driver:I2C Configurations +# +# default: +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# default: +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# default: +CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y +# end of ESP-Driver:I2C Configurations + +# +# ESP-Driver:I2S Configurations +# +# default: +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# default: +# CONFIG_I2S_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:I2S Configurations + +# +# ESP-Driver:I3C Master Configurations +# +# default: +# CONFIG_I3C_MASTER_ISR_CACHE_SAFE is not set +# default: +# CONFIG_I3C_MASTER_ENABLE_DEBUG_LOG is not set +# default: +# CONFIG_I3C_MASTER_ISR_HANDLER_IN_IRAM is not set +# end of ESP-Driver:I3C Master Configurations + +# +# ESP-Driver:LEDC Configurations +# +# default: +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:LEDC Configurations + +# +# ESP-Driver:MCPWM Configurations +# +# default: +CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y +# default: +# CONFIG_MCPWM_ISR_CACHE_SAFE is not set +# default: +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +# default: +CONFIG_MCPWM_OBJ_CACHE_SAFE=y +# default: +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:MCPWM Configurations + +# +# ESP-Driver:PCNT Configurations +# +# default: +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# default: +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:PCNT Configurations + +# +# ESP-Driver:RMT Configurations +# +# default: +CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y +# default: +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y +# default: +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y +# default: +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# default: +# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set +# default: +# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set +# default: +CONFIG_RMT_OBJ_CACHE_SAFE=y +# default: +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# default: +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# end of ESP-Driver:RMT Configurations + +# +# ESP-Driver:Sigma Delta Modulator Configurations +# +# default: +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Sigma Delta Modulator Configurations + +# +# ESP-Driver:SD Host SDMMC Controller Configurations +# +# default: +# CONFIG_SD_HOST_SDMMC_ISR_CACHE_SAFE is not set +# end of ESP-Driver:SD Host SDMMC Controller Configurations + +# +# ESP-Driver:SPI Configurations +# +# default: +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# default: +# CONFIG_SPI_SLAVE_IN_IRAM is not set +# default: +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of ESP-Driver:SPI Configurations + +# +# ESP-Driver:Touch Sensor Configurations +# +# default: +# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set +# default: +# CONFIG_TOUCH_ISR_IRAM_SAFE is not set +# default: +# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set +# default: +# CONFIG_TOUCH_SKIP_FSM_CHECK is not set +# end of ESP-Driver:Touch Sensor Configurations + +# +# ESP-Driver:TWAI Configurations +# +# default: +# CONFIG_TWAI_ISR_IN_IRAM is not set +# default: +# CONFIG_TWAI_IO_FUNC_IN_IRAM is not set +# default: +# CONFIG_TWAI_ISR_CACHE_SAFE is not set +# default: +# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:TWAI Configurations + +# +# ESP-Driver:UART Configurations +# +# default: +# CONFIG_UART_ISR_IN_IRAM is not set +# end of ESP-Driver:UART Configurations + +# +# ESP-Driver:UHCI Configurations +# +# default: +# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set +# default: +# CONFIG_UHCI_ISR_CACHE_SAFE is not set +# default: +# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:UHCI Configurations + +# +# Ethernet +# +# default: +CONFIG_ETH_ENABLED=y +# default: +CONFIG_ETH_USE_ESP32_EMAC=y +# default: +CONFIG_ETH_DMA_BUFFER_SIZE=512 +# default: +CONFIG_ETH_DMA_RX_BUFFER_NUM=10 +# default: +CONFIG_ETH_DMA_TX_BUFFER_NUM=10 +# default: +# CONFIG_ETH_IRAM_OPTIMIZATION is not set +# default: +CONFIG_ETH_USE_SPI_ETHERNET=y +# default: +# CONFIG_ETH_USE_OPENETH is not set +# default: +# CONFIG_ETH_TRANSMIT_MUTEX is not set +# end of Ethernet + +# +# Event Loop Library +# +# default: +# CONFIG_ESP_EVENT_LOOP_PROFILING is not set +# default: +CONFIG_ESP_EVENT_POST_FROM_ISR=y +# default: +CONFIG_ESP_EVENT_POST_FROM_ISR_SIZE=4 +# default: +CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y +# end of Event Loop Library + +# +# GDB Stub +# +# default: +CONFIG_ESP_GDBSTUB_ENABLED=y +# default: +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +# default: +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +# default: +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 +# end of GDB Stub + +# +# ESP HID +# +# default: +CONFIG_ESPHID_TASK_SIZE_BT=2048 +# default: +CONFIG_ESPHID_TASK_SIZE_BLE=4096 +# end of ESP HID + +# +# ESP HTTP client +# +# default: +CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +# default: +# CONFIG_ESP_HTTP_CLIENT_ENABLE_GET_CONTENT_RANGE is not set +# default: +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 +# default: +CONFIG_ESP_HTTP_CLIENT_PSA_CRYPTO_MIGRATE=y +# default: +# CONFIG_ESP_HTTP_CLIENT_SAVE_RESPONSE_HEADERS is not set +# end of ESP HTTP client + +# +# HTTP Server +# +# default: +CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 +# default: +CONFIG_HTTPD_MAX_URI_LEN=512 +# default: +CONFIG_HTTPD_ERR_RESP_NO_DELAY=y +# default: +CONFIG_HTTPD_PURGE_BUF_LEN=32 +# default: +# CONFIG_HTTPD_LOG_PURGE_DATA is not set +# default: +# CONFIG_HTTPD_WS_SUPPORT is not set +# default: +# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +# default: +CONFIG_HTTPD_ENABLE_EVENTS=y +# default: +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 +# default: +CONFIG_HTTPD_SERVER_PSA_CRYPTO_MIGRATE=y +# end of HTTP Server + +# +# ESP HTTPS OTA +# +# default: +# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set +# default: +# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +# default: +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 +# default: +# CONFIG_ESP_HTTPS_OTA_ENABLE_PARTIAL_DOWNLOAD is not set +# end of ESP HTTPS OTA + +# +# ESP HTTPS server +# +# default: +# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +# default: +# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set +# end of ESP HTTPS server + +# +# Hardware Settings +# +# default: +CONFIG_ESP_HW_SUPPORT_FUNC_IN_IRAM=y + +# +# Chip revision +# +# default: +CONFIG_ESP32_REV_MIN_0=y +# default: +# CONFIG_ESP32_REV_MIN_1 is not set +# default: +# CONFIG_ESP32_REV_MIN_1_1 is not set +# default: +# CONFIG_ESP32_REV_MIN_2 is not set +# default: +# CONFIG_ESP32_REV_MIN_3 is not set +# default: +# CONFIG_ESP32_REV_MIN_3_1 is not set +# default: +CONFIG_ESP32_REV_MIN=0 +# default: +CONFIG_ESP32_REV_MIN_FULL=0 +# default: +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +# default: +CONFIG_ESP32_REV_MAX_FULL=399 +# default: +CONFIG_ESP_REV_MAX_FULL=399 +# default: +CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 +# default: +CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 + +# +# Maximum Supported ESP32 eFuse Block Revision (eFuse Block Rev v0.99) +# +# end of Chip revision + +# +# MAC Config +# +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +# default: +CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +# default: +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +# default: +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 +# default: +# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set +# default: +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y +# default: +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 +# default: +# CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR is not set +# default: +# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set +# end of MAC Config + +# +# Sleep Config +# +# default: +# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set +# default: +CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y +# default: +# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set +# default: +CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y +# default: +# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set +# default: +CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 +# default: +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set +# default: +# CONFIG_ESP_SLEEP_DEBUG is not set +# default: +CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y +# default: +# CONFIG_ESP_SLEEP_SET_FLASH_DPD is not set +# end of Sleep Config + +# +# RTC Clock Config +# +# default: +CONFIG_RTC_CLK_SRC_INT_RC=y +# default: +# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set +# default: +# CONFIG_RTC_CLK_SRC_EXT_OSC is not set +# default: +# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set +# default: +CONFIG_RTC_CLK_CAL_CYCLES=1024 +# default: +CONFIG_RTC_CLK_FUNC_IN_IRAM=y +# default: +CONFIG_RTC_TIME_FUNC_IN_IRAM=y +# end of RTC Clock Config + +# +# Peripheral Control +# +# default: +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y +# default: +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y +# end of Peripheral Control + +# +# Main XTAL Config +# +# default: +# CONFIG_XTAL_FREQ_26 is not set +# default: +# CONFIG_XTAL_FREQ_32 is not set +# default: +CONFIG_XTAL_FREQ_40=y +# default: +# CONFIG_XTAL_FREQ_AUTO is not set +# default: +CONFIG_XTAL_FREQ=40 +# end of Main XTAL Config + +# +# Power Supplier +# + +# +# Brownout Detector +# +# default: +CONFIG_ESP_BROWNOUT_DET=y +# default: +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# default: +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set +# default: +CONFIG_ESP_BROWNOUT_DET_LVL=0 +# default: +CONFIG_ESP_BROWNOUT_USE_INTR=y +# end of Brownout Detector +# end of Power Supplier + +# default: +CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +# default: +CONFIG_ESP_INTR_IN_IRAM=y +# end of Hardware Settings + +# +# ESP-Driver:LCD Controller Configurations +# +# default: +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:LCD Controller Configurations + +# +# LibC +# +# default: +# CONFIG_LIBC_NEWLIB is not set +# default: +CONFIG_LIBC_PICOLIBC=y +# default: +CONFIG_LIBC_PICOLIBC_NEWLIB_COMPATIBILITY=y +# default: +CONFIG_LIBC_MISC_IN_IRAM=y +# default: +CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y +# default: +CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y +# default: +# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set +# default: +# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set +# default: +# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set +# default: +# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set +# default: +CONFIG_LIBC_STDIN_LINE_ENDING_CR=y +# default: +CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y +# default: +# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set +# default: +# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set +# default: +# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set +# default: +CONFIG_LIBC_ASSERT_BUFFER_SIZE=200 +# end of LibC + +# +# ESP-MM: Memory Management Configurations +# +# end of ESP-MM: Memory Management Configurations + +# +# ESP NETIF Adapter +# +# default: +CONFIG_ESP_NETIF_LOST_IP_TIMER_ENABLE=y +# default: +CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# default: +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set +# default: +CONFIG_ESP_NETIF_TCPIP_LWIP=y +# default: +# CONFIG_ESP_NETIF_LOOPBACK is not set +# default: +CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +# default: +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y +# default: +CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS=y +# default: +# CONFIG_ESP_NETIF_L2_TAP is not set +# default: +# CONFIG_ESP_NETIF_BRIDGE_EN is not set +# default: +# 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 +# +# default: +CONFIG_ESP_PHY_ENABLED=y +# default: +CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y +# default: +# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set +# default: +CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 +# default: +CONFIG_ESP_PHY_MAX_TX_POWER=20 +# default: +# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set +# default: +# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set +# default: +CONFIG_ESP_PHY_RF_CAL_PARTIAL=y +# default: +# CONFIG_ESP_PHY_RF_CAL_NONE is not set +# default: +# CONFIG_ESP_PHY_RF_CAL_FULL is not set +# default: +CONFIG_ESP_PHY_CALIBRATION_MODE=0 +# default: +CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 +# default: +# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# default: +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set +# default: +CONFIG_ESP_PHY_IRAM_OPT=y +# default: +# CONFIG_ESP_PHY_DEBUG is not set +# end of PHY + +# +# Power Management +# +# default: +# CONFIG_PM_SLEEP_FUNC_IN_IRAM is not set +# default: +# CONFIG_PM_ENABLE is not set +# default: +# CONFIG_PM_SLP_IRAM_OPT is not set +# end of Power Management + +# +# ESP PSRAM +# +# default: +# CONFIG_SPIRAM is not set +# end of ESP PSRAM + +# +# ESP Ringbuf +# +# default: +# CONFIG_RINGBUF_IN_IRAM is not set +# default: +# CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH is not set +# end of ESP Ringbuf + +# +# ESP-ROM +# +# default: +CONFIG_ESP_ROM_PRINT_IN_IRAM=y +# end of ESP-ROM + +# +# ESP Security Specific +# +# end of ESP Security Specific + +# +# ESP-STDIO +# +# CONFIG_ESP_CONSOLE_UART_DEFAULT is not set +CONFIG_ESP_CONSOLE_UART_CUSTOM=y +# CONFIG_ESP_CONSOLE_NONE is not set +# default: +CONFIG_ESP_CONSOLE_UART=y +# default: +CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_0=y +# default: +# CONFIG_ESP_CONSOLE_UART_CUSTOM_NUM_1 is not set +# default: +CONFIG_ESP_CONSOLE_UART_NUM=0 +# default: +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 +# default: +CONFIG_ESP_CONSOLE_UART_TX_GPIO=1 +# default: +CONFIG_ESP_CONSOLE_UART_RX_GPIO=3 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=921600 +# end of ESP-STDIO + +# +# ESP System Settings +# +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y +# default: +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240 + +# +# Memory +# +# default: +# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set + +# +# Non-backward compatible options +# +# default: +# CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM is not set +# end of Non-backward compatible options +# end of Memory + +# +# Trace memory +# +# default: +# CONFIG_ESP32_TRAX is not set +# default: +CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 +# end of Trace memory + +# default: +CONFIG_ESP_SYSTEM_IN_IRAM=y +# default: +# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set +# default: +CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +# default: +# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set +# default: +# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set +# default: +CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 +# default: +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 +# default: +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +# default: +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 +# default: +CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y +# default: +# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set +# default: +# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set +# default: +CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 +# default: +CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 +# default: +CONFIG_ESP_INT_WDT=y +# default: +CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 +# default: +CONFIG_ESP_INT_WDT_CHECK_CPU1=y +# default: +CONFIG_ESP_TASK_WDT_EN=y +# default: +CONFIG_ESP_TASK_WDT_INIT=y +# default: +# CONFIG_ESP_TASK_WDT_PANIC is not set +CONFIG_ESP_TASK_WDT_TIMEOUT_S=30 +# default: +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# default: +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# default: +# CONFIG_ESP_PANIC_HANDLER_IRAM is not set +# default: +# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set +# default: +CONFIG_ESP_DEBUG_OCDAWARE=y +# default: +# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set +# default: +CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y +# default: +# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set +# end of ESP System Settings + +# +# IPC (Inter-Processor Call) +# +# default: +CONFIG_ESP_IPC_ENABLE=y +# default: +CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 +# default: +CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y +# default: +CONFIG_ESP_IPC_ISR_ENABLE=y +# end of IPC (Inter-Processor Call) + +# +# ESP Timer (High Resolution Timer) +# +# default: +CONFIG_ESP_TIMER_IN_IRAM=y +# default: +# CONFIG_ESP_TIMER_PROFILING is not set +# default: +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +# default: +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y +# default: +CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 +# default: +CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 +# default: +# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set +# default: +CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 +# default: +CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y +# default: +CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y +# default: +# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set +# default: +CONFIG_ESP_TIMER_IMPL_TG0_LAC=y +# end of ESP Timer (High Resolution Timer) + +# +# ESP Trace Configuration +# +# default: +# CONFIG_ESP_TRACE_LIB_EXTERNAL is not set +# default: +CONFIG_ESP_TRACE_LIB_NONE=y +# default: +CONFIG_ESP_TRACE_LIB_NAME="none" +# default: +# CONFIG_ESP_TRACE_TRANSPORT_APPTRACE is not set +# default: +CONFIG_ESP_TRACE_TRANSPORT_NONE=y +# default: +CONFIG_ESP_TRACE_TRANSPORT_NAME="none" +# end of ESP Trace Configuration + +# +# Wi-Fi +# +# default: +CONFIG_ESP_WIFI_ENABLED=y +# default: +CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +# default: +# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set +# default: +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y +# default: +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# default: +CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y +# default: +# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set +# default: +CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 +# default: +CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 +CONFIG_ESP_WIFI_CSI_ENABLED=y +# CONFIG_ESP_WIFI_AMPDU_TX_ENABLED is not set +# CONFIG_ESP_WIFI_AMPDU_RX_ENABLED is not set +# default: +CONFIG_ESP_WIFI_NVS_ENABLED=y +# default: +CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y +# default: +# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set +# default: +CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 +# default: +CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 +# default: +CONFIG_ESP_WIFI_IRAM_OPT=y +# default: +# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set +# default: +CONFIG_ESP_WIFI_RX_IRAM_OPT=y +# default: +CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y +# default: +CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y +# default: +CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +# default: +CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y +# default: +CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y +# default: +CONFIG_ESP_WIFI_WPA3_COMPATIBLE_SUPPORT=y +# default: +# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set +# default: +CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 +# default: +# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set +# default: +CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 +# default: +CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 +# default: +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y +# default: +CONFIG_ESP_WIFI_GMAC_SUPPORT=y +# default: +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y +# default: +# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +# default: +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 +# default: +# CONFIG_ESP_WIFI_NAN_SYNC_ENABLE is not set +# default: +CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y +# default: +CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y +# default: +# CONFIG_ESP_WIFI_WAPI_PSK is not set +# default: +# CONFIG_ESP_WIFI_11KV_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_MBO_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_DPP_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_11R_SUPPORT is not set +# default: +# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set + +# +# WPS Configuration Options +# +# default: +# CONFIG_ESP_WIFI_WPS_STRICT is not set +# default: +# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set +# default: +# CONFIG_ESP_WIFI_WPS_RECONNECT_ON_FAIL is not set +# end of WPS Configuration Options + +# default: +# CONFIG_ESP_WIFI_DEBUG_PRINT is not set +# default: +CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y +# default: +# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set +# end of Wi-Fi + +# +# Core dump +# +# default: +# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +# default: +# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set +# default: +CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# end of Core dump + +# +# FAT Filesystem support +# +# default: +CONFIG_FATFS_VOLUME_COUNT=2 +# default: +# CONFIG_FATFS_LFN_NONE is not set +# default: +CONFIG_FATFS_LFN_HEAP=y +# default: +# CONFIG_FATFS_LFN_STACK is not set +# default: +# CONFIG_FATFS_SECTOR_512 is not set +# default: +CONFIG_FATFS_SECTOR_4096=y +# default: +# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set +# default: +CONFIG_FATFS_CODEPAGE_437=y +# default: +# CONFIG_FATFS_CODEPAGE_720 is not set +# default: +# CONFIG_FATFS_CODEPAGE_737 is not set +# default: +# CONFIG_FATFS_CODEPAGE_771 is not set +# default: +# CONFIG_FATFS_CODEPAGE_775 is not set +# default: +# CONFIG_FATFS_CODEPAGE_850 is not set +# default: +# CONFIG_FATFS_CODEPAGE_852 is not set +# default: +# CONFIG_FATFS_CODEPAGE_855 is not set +# default: +# CONFIG_FATFS_CODEPAGE_857 is not set +# default: +# CONFIG_FATFS_CODEPAGE_860 is not set +# default: +# CONFIG_FATFS_CODEPAGE_861 is not set +# default: +# CONFIG_FATFS_CODEPAGE_862 is not set +# default: +# CONFIG_FATFS_CODEPAGE_863 is not set +# default: +# CONFIG_FATFS_CODEPAGE_864 is not set +# default: +# CONFIG_FATFS_CODEPAGE_865 is not set +# default: +# CONFIG_FATFS_CODEPAGE_866 is not set +# default: +# CONFIG_FATFS_CODEPAGE_869 is not set +# default: +# CONFIG_FATFS_CODEPAGE_932 is not set +# default: +# CONFIG_FATFS_CODEPAGE_936 is not set +# default: +# CONFIG_FATFS_CODEPAGE_949 is not set +# default: +# CONFIG_FATFS_CODEPAGE_950 is not set +# default: +CONFIG_FATFS_CODEPAGE=437 +# default: +CONFIG_FATFS_MAX_LFN=255 +# default: +CONFIG_FATFS_API_ENCODING_ANSI_OEM=y +# default: +# CONFIG_FATFS_API_ENCODING_UTF_8 is not set +# default: +CONFIG_FATFS_FS_LOCK=0 +# default: +CONFIG_FATFS_TIMEOUT_MS=10000 +# default: +CONFIG_FATFS_PER_FILE_CACHE=y +# default: +# CONFIG_FATFS_USE_FASTSEEK is not set +# default: +CONFIG_FATFS_USE_STRFUNC_NONE=y +# default: +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# default: +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set +# default: +CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# default: +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# default: +# CONFIG_FATFS_USE_LABEL is not set +# default: +CONFIG_FATFS_LINK_LOCK=y +# default: +CONFIG_FATFS_USE_DYN_BUFFERS=y + +# +# File system free space calculation behavior +# +# default: +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +# default: +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior +# end of FAT Filesystem support + +# +# FreeRTOS +# + +# +# Kernel +# +# default: +# CONFIG_FREERTOS_SMP is not set +# default: +# CONFIG_FREERTOS_UNICORE is not set +CONFIG_FREERTOS_HZ=1000 +# default: +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set +# default: +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set +# default: +CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y +# default: +CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 +# default: +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 +# default: +# CONFIG_FREERTOS_USE_IDLE_HOOK is not set +# default: +# CONFIG_FREERTOS_USE_TICK_HOOK is not set +# default: +CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 +# default: +# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +# default: +CONFIG_FREERTOS_USE_TIMERS=y +# default: +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +# default: +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set +# default: +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set +# default: +CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y +# default: +CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF +# default: +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 +# default: +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 +# default: +CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 +# default: +CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +# default: +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 +# default: +# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# default: +# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set +# default: +# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# default: +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set +# end of Kernel + +# +# Port +# +# default: +# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +# default: +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# default: +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set +# default: +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y +# default: +CONFIG_FREERTOS_ISR_STACKSIZE=1536 +# default: +CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +# default: +# CONFIG_FREERTOS_FPU_IN_ISR is not set +# default: +CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y +# default: +CONFIG_FREERTOS_CORETIMER_0=y +# default: +# CONFIG_FREERTOS_CORETIMER_1 is not set +# default: +CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y +# default: +# CONFIG_FREERTOS_IN_IRAM is not set +# default: +# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set +# end of Port + +# +# Extra +# +# end of Extra + +# default: +CONFIG_FREERTOS_PORT=y +# default: +CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF +# default: +CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y +# default: +CONFIG_FREERTOS_DEBUG_OCDAWARE=y +# default: +CONFIG_FREERTOS_NUMBER_OF_CORES=2 +# end of FreeRTOS + +# +# Hardware Abstraction Layer (HAL) and Low Level (LL) +# +# default: +CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y +# default: +# CONFIG_HAL_ASSERTION_DISABLE is not set +# default: +# CONFIG_HAL_ASSERTION_SILENT is not set +# default: +# CONFIG_HAL_ASSERTION_ENABLE is not set +# default: +CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 +# default: +CONFIG_HAL_GPIO_USE_ROM_IMPL=y +# end of Hardware Abstraction Layer (HAL) and Low Level (LL) + +# +# Heap memory debugging +# +# default: +CONFIG_HEAP_HAS_EXEC_HEAP=y +# default: +CONFIG_HEAP_POISONING_DISABLED=y +# default: +# CONFIG_HEAP_POISONING_LIGHT is not set +# default: +# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set +# default: +CONFIG_HEAP_TRACING_OFF=y +# default: +# CONFIG_HEAP_TRACING_STANDALONE is not set +# default: +# CONFIG_HEAP_TRACING_TOHOST is not set +# default: +# CONFIG_HEAP_USE_HOOKS is not set +# default: +# CONFIG_HEAP_TASK_TRACKING is not set +# default: +# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set +# default: +# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set +# end of Heap memory debugging + +# +# Log +# +# default: +CONFIG_LOG_VERSION_1=y +# default: +# CONFIG_LOG_VERSION_2 is not set +# default: +CONFIG_LOG_VERSION=1 + +# +# Log Level +# +# default: +# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set +# default: +# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set +# default: +# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set +# default: +CONFIG_LOG_DEFAULT_LEVEL_INFO=y +# default: +# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set +# default: +# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set +# default: +CONFIG_LOG_DEFAULT_LEVEL=3 +# default: +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# default: +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# default: +# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set +# default: +CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# +# default: +# CONFIG_LOG_MASTER_LEVEL is not set +# default: +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# default: +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# default: +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +# default: +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# default: +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +# default: +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +# default: +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# +# default: +# CONFIG_LOG_COLORS is not set +# default: +CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y +# default: +# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Format + +# +# Settings +# +# default: +CONFIG_LOG_MODE_TEXT_EN=y +# default: +CONFIG_LOG_MODE_TEXT=y +# end of Settings + +# default: +CONFIG_LOG_IN_IRAM=y +# end of Log + +# +# LWIP +# +# default: +CONFIG_LWIP_ENABLE=y +# default: +CONFIG_LWIP_LOCAL_HOSTNAME="espressif" +# default: +CONFIG_LWIP_TCPIP_TASK_PRIO=18 +# default: +# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set +# default: +# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set +# default: +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y +# default: +# CONFIG_LWIP_L2_TO_L3_COPY is not set +# default: +# CONFIG_LWIP_IRAM_OPTIMIZATION is not set +# default: +# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set +# default: +CONFIG_LWIP_TIMERS_ONDEMAND=y +# default: +CONFIG_LWIP_ND6=y +# default: +# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set +# default: +CONFIG_LWIP_MAX_SOCKETS=10 +# default: +# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# default: +# CONFIG_LWIP_SO_LINGER is not set +# default: +CONFIG_LWIP_SO_REUSE=y +# default: +CONFIG_LWIP_SO_REUSE_RXTOALL=y +# default: +# CONFIG_LWIP_SO_RCVBUF is not set +# default: +# CONFIG_LWIP_NETBUF_RECVINFO is not set +# default: +CONFIG_LWIP_IP_DEFAULT_TTL=64 +# default: +CONFIG_LWIP_IP4_FRAG=y +# default: +CONFIG_LWIP_IP6_FRAG=y +# default: +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# default: +# CONFIG_LWIP_IP6_REASSEMBLY is not set +# default: +CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 +# default: +CONFIG_LWIP_IPV6_DUP_DETECT_ATTEMPTS=1 +# default: +# CONFIG_LWIP_IP_FORWARD is not set +# default: +# CONFIG_LWIP_STATS is not set +# default: +CONFIG_LWIP_ESP_GRATUITOUS_ARP=y +# default: +CONFIG_LWIP_GARP_TMR_INTERVAL=60 +# default: +CONFIG_LWIP_ESP_MLDV6_REPORT=y +# default: +CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 +# default: +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 +# default: +CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# default: +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# default: +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set +# default: +# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set +# default: +CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y +# default: +# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set +# default: +CONFIG_LWIP_DHCP_OPTIONS_LEN=69 +# default: +CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 +# default: +CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 + +# +# DHCP server +# +# default: +CONFIG_LWIP_DHCPS=y +# default: +CONFIG_LWIP_DHCPS_REPORT_CLIENT_HOSTNAME=y +# default: +CONFIG_LWIP_DHCPS_LEASE_UNIT=60 +# default: +CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +# default: +CONFIG_LWIP_DHCPS_MAX_HOSTNAME_LEN=64 +# default: +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +# end of DHCP server + +# default: +# CONFIG_LWIP_AUTOIP is not set +# default: +CONFIG_LWIP_IPV4=y +# default: +CONFIG_LWIP_IPV6=y +# default: +# CONFIG_LWIP_IPV6_AUTOCONFIG is not set +# default: +CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 +# default: +# CONFIG_LWIP_IPV6_FORWARD is not set +# default: +# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set +# default: +# CONFIG_LWIP_NETIF_LINK_CALLBACK is not set +# default: +CONFIG_LWIP_NETIF_LOOPBACK=y +# default: +CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 + +# +# TCP +# +# default: +CONFIG_LWIP_MAX_ACTIVE_TCP=16 +# default: +CONFIG_LWIP_MAX_LISTENING_TCP=16 +# default: +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y +# default: +CONFIG_LWIP_TCP_MAXRTX=12 +# default: +CONFIG_LWIP_TCP_SYNMAXRTX=12 +# default: +CONFIG_LWIP_TCP_MSS=1440 +# default: +CONFIG_LWIP_TCP_TMR_INTERVAL=250 +# default: +CONFIG_LWIP_TCP_MSL=60000 +# default: +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 +# default: +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 +# default: +CONFIG_LWIP_TCP_WND_DEFAULT=5760 +# default: +CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +# default: +CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 +# default: +CONFIG_LWIP_TCP_QUEUE_OOSEQ=y +# default: +CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 +# default: +CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 +# default: +# CONFIG_LWIP_TCP_SACK_OUT is not set +# default: +CONFIG_LWIP_TCP_OVERSIZE_MSS=y +# default: +# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set +# default: +# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set +# default: +CONFIG_LWIP_TCP_RTO_TIME=1500 +# end of TCP + +# +# UDP +# +# default: +CONFIG_LWIP_MAX_UDP_PCBS=16 +# default: +CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 +# end of UDP + +# +# Checksums +# +# default: +# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set +# default: +# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set +# default: +CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y +# end of Checksums + +# default: +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 +# default: +CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# default: +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set +# default: +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set +# default: +CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# default: +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 +# default: +CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 +# default: +# CONFIG_LWIP_IPV6_ND6_ROUTE_INFO_OPTION_SUPPORT is not set +# default: +# CONFIG_LWIP_PPP_SUPPORT is not set +# default: +# CONFIG_LWIP_SLIP_SUPPORT is not set + +# +# ICMP +# +# default: +CONFIG_LWIP_ICMP=y +# default: +# CONFIG_LWIP_MULTICAST_PING is not set +# default: +# CONFIG_LWIP_BROADCAST_PING is not set +# end of ICMP + +# +# LWIP RAW API +# +# default: +CONFIG_LWIP_MAX_RAW_PCBS=16 +# end of LWIP RAW API + +# +# SNTP +# +# default: +CONFIG_LWIP_SNTP_MAX_SERVERS=1 +# default: +# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set +# default: +CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +# default: +CONFIG_LWIP_SNTP_STARTUP_DELAY=y +# default: +CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 +# end of SNTP + +# +# DNS +# +# default: +CONFIG_LWIP_DNS_MAX_HOST_IP=1 +# default: +CONFIG_LWIP_DNS_MAX_SERVERS=3 +# default: +# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# default: +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set +# default: +# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set +# end of DNS + +# default: +CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 +# default: +CONFIG_LWIP_ESP_LWIP_ASSERT=y + +# +# Hooks +# +# default: +# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set +# default: +CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y +# default: +# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y +# default: +# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y +# default: +# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y +# default: +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y +# default: +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y +# default: +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set +# default: +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set +# default: +CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y +# default: +# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set +# default: +# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set +# default: +CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y +# default: +# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set +# end of Hooks + +# default: +# CONFIG_LWIP_DEBUG is not set +# end of LWIP + +# +# mbedTLS +# + +# +# Core Configuration +# +# default: +CONFIG_MBEDTLS_VER_4_X_SUPPORT=y +# default: +# CONFIG_MBEDTLS_COMPILER_OPTIMIZATION_NONE is not set +# default: +CONFIG_MBEDTLS_COMPILER_OPTIMIZATION_SIZE=y +# default: +# CONFIG_MBEDTLS_COMPILER_OPTIMIZATION_PERF is not set +# default: +CONFIG_MBEDTLS_FS_IO=y +# default: +# CONFIG_MBEDTLS_THREADING_C is not set +# default: +CONFIG_MBEDTLS_ERROR_STRINGS=y +# default: +CONFIG_MBEDTLS_VERSION_C=y +# default: +CONFIG_MBEDTLS_HAVE_TIME=y +# default: +# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set +# default: +# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set +# default: +CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +# default: +# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set +# default: +# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set +# default: +CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y +# default: +CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 +# default: +CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 +# default: +# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set +# default: +# CONFIG_MBEDTLS_VERSION_FEATURES is not set +# default: +# CONFIG_MBEDTLS_DEBUG is not set +# default: +CONFIG_MBEDTLS_SELF_TEST=y +# end of Core Configuration + +# +# Certificates +# +# default: +CONFIG_MBEDTLS_X509_USE_C=y +# default: +CONFIG_MBEDTLS_PEM_PARSE_C=y +# default: +CONFIG_MBEDTLS_PEM_WRITE_C=y +# default: +CONFIG_MBEDTLS_PK_C=y +# default: +CONFIG_MBEDTLS_PK_PARSE_C=y +# default: +CONFIG_MBEDTLS_PK_WRITE_C=y +# default: +# CONFIG_MBEDTLS_X509_REMOVE_INFO is not set +# default: +CONFIG_MBEDTLS_X509_CRL_PARSE_C=y +# default: +CONFIG_MBEDTLS_X509_CRT_PARSE_C=y +# default: +CONFIG_MBEDTLS_X509_CSR_PARSE_C=y +# default: +# CONFIG_MBEDTLS_X509_CREATE_C is not set +# default: +CONFIG_MBEDTLS_X509_RSASSA_PSS_SUPPORT=y +# default: +# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set +# default: +CONFIG_MBEDTLS_ASN1_PARSE_C=y +# default: +CONFIG_MBEDTLS_ASN1_WRITE_C=y +# default: +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y + +# +# Certificate Bundle Configuration +# +# default: +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set +# default: +# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set +# default: +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 +# end of Certificate Bundle Configuration + +# default: +# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set +# default: +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_CROSS_SIGNED_VERIFY is not set +# end of Certificates + +# default: +CONFIG_MBEDTLS_TLS_ENABLED=y + +# +# TLS Protocol Configuration +# +# default: +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +# default: +# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set +# default: +# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set +# default: +CONFIG_MBEDTLS_TLS_SERVER=y +# default: +CONFIG_MBEDTLS_TLS_CLIENT=y +# default: +CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y +# default: +# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set +# default: +# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set +# default: +# CONFIG_MBEDTLS_TLS_DISABLED is not set +# default: +# CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE is not set +# default: +# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set +# default: +CONFIG_MBEDTLS_SSL_CACHE_C=y +# default: +CONFIG_MBEDTLS_SSL_ALL_ALERT_MESSAGES=y + +# +# TLS Key Exchange Configuration +# +# default: +# CONFIG_MBEDTLS_PSK_MODES is not set +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y +# default: +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y +# end of TLS Key Exchange Configuration + +# default: +CONFIG_MBEDTLS_SSL_SERVER_NAME_INDICATION=y +# default: +CONFIG_MBEDTLS_SSL_ALPN=y +# default: +CONFIG_MBEDTLS_SSL_MAX_FRAGMENT_LENGTH=y +# default: +# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set +# default: +CONFIG_MBEDTLS_SSL_RENEGOTIATION=y +# default: +CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y +# default: +CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y +# default: +# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set +# end of TLS Protocol Configuration + +# default: +# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set + +# +# Symmetric Ciphers +# +# default: +CONFIG_MBEDTLS_AES_C=y +# default: +# CONFIG_MBEDTLS_CAMELLIA_C is not set +# default: +CONFIG_MBEDTLS_ARIA_C=y +# default: +# CONFIG_MBEDTLS_DES_C is not set +# default: +CONFIG_MBEDTLS_CCM_C=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_CBC=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_CFB=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_CTR=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_OFB=y +# default: +CONFIG_MBEDTLS_CIPHER_MODE_XTS=y +# default: +CONFIG_MBEDTLS_GCM_C=y +# default: +# CONFIG_MBEDTLS_NIST_KW_C is not set +# default: +CONFIG_MBEDTLS_AES_ROM_TABLES=y +# default: +# CONFIG_MBEDTLS_AES_FEWER_TABLES is not set +# default: +# CONFIG_MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH is not set +# default: +CONFIG_MBEDTLS_CMAC_C=y +# end of Symmetric Ciphers + +# +# Asymmetric Ciphers +# +# default: +CONFIG_MBEDTLS_BIGNUM_C=y +# default: +CONFIG_MBEDTLS_RSA_C=y +# default: +CONFIG_MBEDTLS_ECP_C=y + +# +# Supported Curves +# +# default: +CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y +# default: +CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y +# end of Supported Curves + +# +# Elliptic Curve Ciphers Configuration +# +# default: +CONFIG_MBEDTLS_ECP_NIST_OPTIM=y +# default: +# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set +# default: +# CONFIG_MBEDTLS_DHM_C is not set +# default: +CONFIG_MBEDTLS_ECDH_C=y +# default: +# CONFIG_MBEDTLS_ECJPAKE_C is not set +# default: +CONFIG_MBEDTLS_ECDSA_C=y +# default: +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +# default: +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y +# default: +CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +# default: +# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set +# end of Elliptic Curve Ciphers Configuration +# end of Asymmetric Ciphers + +# +# Hash functions +# +# default: +# CONFIG_MBEDTLS_POLY1305_C is not set +# default: +# CONFIG_MBEDTLS_RIPEMD160_C is not set +# default: +CONFIG_MBEDTLS_MD_C=y +# default: +CONFIG_MBEDTLS_MD5_C=y +# default: +CONFIG_MBEDTLS_SHA1_C=y +# default: +# CONFIG_MBEDTLS_SHA224_C is not set +# default: +CONFIG_MBEDTLS_SHA256_C=y +# default: +CONFIG_MBEDTLS_SHA384_C=y +# default: +CONFIG_MBEDTLS_SHA512_C=y +# default: +CONFIG_MBEDTLS_SHA3_C=y +# default: +CONFIG_MBEDTLS_ROM_MD5=y +# end of Hash functions + +# +# Hardware Acceleration +# +# default: +CONFIG_MBEDTLS_HARDWARE_SHA=y +# default: +CONFIG_MBEDTLS_HARDWARE_MPI=y +# default: +CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y +# default: +CONFIG_MBEDTLS_HARDWARE_AES=y +# default: +# CONFIG_MBEDTLS_AES_SOFT_FALLBACK is not set +# default: +CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y +# default: +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set +# default: +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set +# end of Hardware Acceleration + +# +# Entropy and Random Number Generation +# +# default: +# CONFIG_MBEDTLS_ENTROPY_FORCE_SHA256 is not set +# default: +CONFIG_MBEDTLS_CTR_DRBG_C=y +# default: +CONFIG_MBEDTLS_HMAC_DRBG_C=y +# end of Entropy and Random Number Generation + +# +# Encoding/Decoding +# +# default: +CONFIG_MBEDTLS_BASE64_C=y +# default: +CONFIG_MBEDTLS_PKCS5_C=y +# default: +CONFIG_MBEDTLS_PKCS7_C=y +# default: +CONFIG_MBEDTLS_PKCS1_V15=y +# default: +CONFIG_MBEDTLS_PKCS1_V21=y +# end of Encoding/Decoding + +# +# Stream Cipher +# +# default: +# CONFIG_MBEDTLS_CHACHA20_C is not set +# end of Stream Cipher +# end of mbedTLS + +# +# NVS +# +# default: +# CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# default: +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set +# default: +# CONFIG_NVS_BDL_STACK is not set +# default: +# CONFIG_NVS_FLASH_VERIFY_ERASE is not set +# end of NVS + +# +# OpenThread +# +# default: +# CONFIG_OPENTHREAD_ENABLED is not set + +# +# OpenThread Spinel +# +# default: +# CONFIG_OPENTHREAD_SPINEL_ONLY is not set +# end of OpenThread Spinel + +# default: +# CONFIG_OPENTHREAD_DEBUG is not set +# end of OpenThread + +# +# Protocomm +# +# default: +# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0 is not set +# default: +# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1 is not set +# default: +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +# default: +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y +# end of Protocomm + +# +# PThreads +# +# default: +CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 +# default: +CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +# default: +CONFIG_PTHREAD_STACK_MIN=768 +# default: +CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y +# default: +# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set +# default: +# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set +# default: +CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 +# default: +CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" +# end of PThreads + +# +# SD Protocol Layer Configuration +# +# default: +CONFIG_SD_ENABLE_SDIO_SUPPORT=y +# end of SD Protocol Layer Configuration + +# +# MMU Config +# +# default: +CONFIG_MMU_PAGE_SIZE_64KB=y +# default: +CONFIG_MMU_PAGE_MODE="64KB" +# default: +CONFIG_MMU_PAGE_SIZE=0x10000 +# end of MMU Config + +# +# Main Flash configuration +# + +# +# SPI Flash behavior when brownout +# +# default: +CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y +# default: +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!) +# +# default: +CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 +# default: +# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# default: +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set +# default: +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 +# +# default: +# CONFIG_SPI_FLASH_VERIFY_WRITE is not set +# default: +# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set +# default: +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y +# default: +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set +# default: +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set +# default: +# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set +# default: +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +# default: +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +# default: +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +# default: +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 +# default: +CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 +# default: +# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set +# default: +# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set +# default: +# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set + +# +# Auto-detect flash chips +# +# default: +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORT_ENABLED=y +# default: +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y +# default: +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y +# default: +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +# default: +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y +# default: +# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set +# default: +# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set +# end of Auto-detect flash chips + +# default: +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y +# end of SPI Flash driver + +# +# SPIFFS Configuration +# +# default: +CONFIG_SPIFFS_MAX_PARTITIONS=3 + +# +# SPIFFS Cache Configuration +# +# default: +CONFIG_SPIFFS_CACHE=y +# default: +CONFIG_SPIFFS_CACHE_WR=y +# default: +# CONFIG_SPIFFS_CACHE_STATS is not set +# end of SPIFFS Cache Configuration + +# default: +CONFIG_SPIFFS_PAGE_CHECK=y +# default: +CONFIG_SPIFFS_GC_MAX_RUNS=10 +# default: +# CONFIG_SPIFFS_GC_STATS is not set +# default: +CONFIG_SPIFFS_PAGE_SIZE=256 +# default: +CONFIG_SPIFFS_OBJ_NAME_LEN=32 +# default: +# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set +# default: +CONFIG_SPIFFS_USE_MAGIC=y +# default: +CONFIG_SPIFFS_USE_MAGIC_LENGTH=y +# default: +CONFIG_SPIFFS_META_LENGTH=4 +# default: +CONFIG_SPIFFS_USE_MTIME=y + +# +# Debug Configuration +# +# default: +# CONFIG_SPIFFS_DBG is not set +# default: +# CONFIG_SPIFFS_API_DBG is not set +# default: +# CONFIG_SPIFFS_GC_DBG is not set +# default: +# CONFIG_SPIFFS_CACHE_DBG is not set +# default: +# CONFIG_SPIFFS_CHECK_DBG is not set +# default: +# CONFIG_SPIFFS_TEST_VISUALISATION is not set +# end of Debug Configuration +# end of SPIFFS Configuration + +# +# TCP Transport +# + +# +# Websocket +# +# default: +CONFIG_WS_TRANSPORT=y +# default: +CONFIG_WS_BUFFER_SIZE=1024 +# default: +# CONFIG_WS_DYNAMIC_BUFFER is not set +# end of Websocket +# end of TCP Transport + +# +# Ultra Low Power (ULP) Co-processor +# +# default: +# 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 +# +# default: +CONFIG_UNITY_ENABLE_FLOAT=y +# default: +CONFIG_UNITY_ENABLE_DOUBLE=y +# default: +# CONFIG_UNITY_ENABLE_64BIT is not set +# default: +# CONFIG_UNITY_ENABLE_COLOR is not set +# default: +CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y +# default: +# CONFIG_UNITY_ENABLE_FIXTURE is not set +# default: +# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# end of Unity unit testing library + +# +# Virtual file system +# +# default: +CONFIG_VFS_SUPPORT_IO=y +# default: +CONFIG_VFS_SUPPORT_DIR=y +# default: +CONFIG_VFS_SUPPORT_SELECT=y +# default: +CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# default: +# CONFIG_VFS_SELECT_IN_RAM is not set +# default: +# CONFIG_VFS_SUPPORT_TERMIOS is not set +# default: +CONFIG_VFS_MAX_COUNT=8 + +# +# Host File System I/O (Semihosting) +# +# default: +CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# end of Host File System I/O (Semihosting) + +# default: +CONFIG_VFS_INITIALIZE_DEV_NULL=y +# end of Virtual file system + +# +# Wear Levelling +# +# default: +# CONFIG_WL_SECTOR_SIZE_512 is not set +# default: +CONFIG_WL_SECTOR_SIZE_4096=y +# default: +CONFIG_WL_SECTOR_SIZE=4096 +# end of Wear Levelling + +# +# CMake Utilities +# +# default: +# CONFIG_CU_RELINKER_ENABLE is not set +# default: +# CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set +# default: +CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y +# default: +# CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set +# default: +# CONFIG_CU_GCC_LTO_ENABLE is not set +# default: +# CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set +# end of CMake Utilities +# end of Component config + +# default: +# 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_ESP32_NO_BLOBS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# CONFIG_APP_ROLLBACK_ENABLE is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE 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=921600 +# CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set +# 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_ADC_CAL_EFUSE_TP_ENABLE=y +CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CAL_LUT_ENABLE=y +CONFIG_ADC_DISABLE_DAC=y +# 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_TWO_UNIVERSAL_MAC_ADDRESS is not set +CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y +CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 +# CONFIG_ESP_SYSTEM_PD_FLASH is not set +CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y +CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y +# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set +# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set +# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set +CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 +CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +# CONFIG_ESP32_XTAL_FREQ_26 is not set +CONFIG_ESP32_XTAL_FREQ_40=y +# CONFIG_ESP32_XTAL_FREQ_AUTO is not set +CONFIG_ESP32_XTAL_FREQ=40 +CONFIG_BROWNOUT_DET=y +CONFIG_ESP32_BROWNOUT_DET=y +CONFIG_BROWNOUT_DET_LVL_SEL_0=y +CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y +# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set +CONFIG_BROWNOUT_DET_LVL=0 +CONFIG_ESP32_BROWNOUT_DET_LVL=0 +CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y +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_TIME_SYSCALL_USE_RTC_HRT=y +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y +# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set +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_SPIRAM_SUPPORT is not set +# CONFIG_ESP32_SPIRAM_SUPPORT is not set +# CONFIG_CONSOLE_UART_DEFAULT is not set +CONFIG_CONSOLE_UART_CUSTOM=y +# CONFIG_CONSOLE_UART_NONE is not set +# CONFIG_ESP_CONSOLE_UART_NONE is not set +CONFIG_CONSOLE_UART=y +CONFIG_CONSOLE_UART_CUSTOM_NUM_0=y +# CONFIG_CONSOLE_UART_CUSTOM_NUM_1 is not set +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_TX_GPIO=1 +CONFIG_CONSOLE_UART_RX_GPIO=3 +CONFIG_CONSOLE_UART_BAUDRATE=921600 +# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set +# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set +CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y +CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240 +CONFIG_TRACEMEM_RESERVE_DRAM=0x0 +# CONFIG_ESP32_PANIC_PRINT_HALT is not set +CONFIG_ESP32_PANIC_PRINT_REBOOT=y +# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP32_PANIC_GDBSTUB is not set +CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_MAIN_TASK_STACK_SIZE=3584 +CONFIG_INT_WDT=y +CONFIG_INT_WDT_TIMEOUT_MS=300 +CONFIG_INT_WDT_CHECK_CPU1=y +CONFIG_TASK_WDT=y +CONFIG_ESP_TASK_WDT=y +# CONFIG_TASK_WDT_PANIC is not set +CONFIG_TASK_WDT_TIMEOUT_S=30 +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set +CONFIG_ESP32_DEBUG_OCDAWARE=y +# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set +CONFIG_IPC_TASK_STACK_SIZE=1024 +CONFIG_TIMER_TASK_STACK_SIZE=3584 +# CONFIG_ESP32_APPTRACE_ENABLE is not set +CONFIG_ESP32_WIFI_ENABLED=y +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=128 +# 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=y +# CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED is not set +# CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED is not set +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y +# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set +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_ESP_WIFI_NAN_ENABLE is not set +CONFIG_WPA_MBEDTLS_CRYPTO=y +CONFIG_WPA_MBEDTLS_TLS_CLIENT=y +# CONFIG_WPA_WAPI_PSK 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_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_CPU1 is not set +CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_PPP_SUPPORT 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_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y +# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set +# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set +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_ESP32_ULP_COPROC_ENABLED is not set +CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# CONFIG_SUPPORT_TERMIOS is not set +CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# End of deprecated options diff --git a/get-started/csi_send/CMakeLists.txt b/get-started/csi_send/CMakeLists.txt new file mode 100644 index 0000000..c9c57fd --- /dev/null +++ b/get-started/csi_send/CMakeLists.txt @@ -0,0 +1,13 @@ + +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctlycmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.5) +add_compile_options(-fdiagnostics-color=always) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +string(REGEX REPLACE ".*/\(.*\)" "\\1" CURDIR ${CMAKE_CURRENT_SOURCE_DIR}) +project(${CURDIR}) + +git_describe(PROJECT_VERSION ${COMPONENT_DIR}) +message("Project commit: " ${PROJECT_VERSION}) diff --git a/get-started/csi_send/README.md b/get-started/csi_send/README.md new file mode 100644 index 0000000..d22214e --- /dev/null +++ b/get-started/csi_send/README.md @@ -0,0 +1 @@ +# CSI_SEND diff --git a/get-started/csi_send/main/CMakeLists.txt b/get-started/csi_send/main/CMakeLists.txt new file mode 100644 index 0000000..a941e22 --- /dev/null +++ b/get-started/csi_send/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRC_DIRS "." + INCLUDE_DIRS ".") diff --git a/get-started/csi_send/main/app_main.c b/get-started/csi_send/main/app_main.c new file mode 100644 index 0000000..e26ee5b --- /dev/null +++ b/get-started/csi_send/main/app_main.c @@ -0,0 +1,170 @@ +/* + * SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +/* Get Start Example + + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ +#include +#include +#include +#include + +#include "nvs_flash.h" + +#include "esp_mac.h" +#include "esp_log.h" +#include "esp_wifi.h" +#include "esp_netif.h" +#include "esp_now.h" + +#define CONFIG_LESS_INTERFERENCE_CHANNEL 11 + +#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 || (CONFIG_IDF_TARGET_ESP32C6 && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0)) +#define CONFIG_WIFI_BAND_MODE WIFI_BAND_MODE_2G_ONLY +#define CONFIG_WIFI_2G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_5G_BANDWIDTHS WIFI_BW_HT40 +#define CONFIG_WIFI_2G_PROTOCOL WIFI_PROTOCOL_11N +#define CONFIG_WIFI_5G_PROTOCOL WIFI_PROTOCOL_11N +#else +#define CONFIG_WIFI_BANDWIDTH WIFI_BW_HT40 +#endif + +#define CONFIG_ESP_NOW_PHYMODE WIFI_PHY_MODE_HT40 +#define CONFIG_ESP_NOW_RATE WIFI_PHY_RATE_MCS0_LGI +#define CONFIG_SEND_FREQUENCY 100 + +#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(6, 0, 0) +#define ESP_IF_WIFI_STA ESP_MAC_WIFI_STA +#endif + +static const uint8_t CONFIG_CSI_SEND_MAC[] = {0x1a, 0x00, 0x00, 0x00, 0x00, 0x00}; +static const char *TAG = "csi_send"; + +static void wifi_init() +{ + ESP_ERROR_CHECK(esp_event_loop_create_default()); + + ESP_ERROR_CHECK(esp_netif_init()); + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ESP_ERROR_CHECK(esp_wifi_init(&cfg)); + + ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); + ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); + +#if CONFIG_IDF_TARGET_ESP32C5 + ESP_ERROR_CHECK(esp_wifi_start()); + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + .ghz_5g = CONFIG_WIFI_5G_PROTOCOL + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + .ghz_5g = CONFIG_WIFI_5G_BANDWIDTHS + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); +#elif (CONFIG_IDF_TARGET_ESP32C6 && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0)) || CONFIG_IDF_TARGET_ESP32C61 + ESP_ERROR_CHECK(esp_wifi_start()); + esp_wifi_set_band_mode(CONFIG_WIFI_BAND_MODE); + wifi_protocols_t protocols = { + .ghz_2g = CONFIG_WIFI_2G_PROTOCOL, + }; + ESP_ERROR_CHECK(esp_wifi_set_protocols(ESP_IF_WIFI_STA, &protocols)); + wifi_bandwidths_t bandwidth = { + .ghz_2g = CONFIG_WIFI_2G_BANDWIDTHS, + }; + ESP_ERROR_CHECK(esp_wifi_set_bandwidths(ESP_IF_WIFI_STA, &bandwidth)); +#else + ESP_ERROR_CHECK(esp_wifi_set_bandwidth(ESP_IF_WIFI_STA, CONFIG_WIFI_BANDWIDTH)); + ESP_ERROR_CHECK(esp_wifi_start()); + +#endif + + ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_NONE)); +#if CONFIG_IDF_TARGET_ESP32C5 + if ((CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) + || (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_5G_ONLY && CONFIG_WIFI_5G_BANDWIDTHS == WIFI_BW_HT20)) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } +#elif (CONFIG_IDF_TARGET_ESP32C6 && ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 4, 0)) || CONFIG_IDF_TARGET_ESP32C61 + if (CONFIG_WIFI_BAND_MODE == WIFI_BAND_MODE_2G_ONLY && CONFIG_WIFI_2G_BANDWIDTHS == WIFI_BW_HT20) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } +#else + if (CONFIG_WIFI_BANDWIDTH == WIFI_BW_HT20) { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_NONE)); + } else { + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_LESS_INTERFERENCE_CHANNEL, WIFI_SECOND_CHAN_BELOW)); + } +#endif + ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_STA, CONFIG_CSI_SEND_MAC)); +} + +static void wifi_esp_now_init(esp_now_peer_info_t peer) +{ + ESP_ERROR_CHECK(esp_now_init()); + ESP_ERROR_CHECK(esp_now_set_pmk((uint8_t *)"pmk1234567890123")); + ESP_ERROR_CHECK(esp_now_add_peer(&peer)); + esp_now_rate_config_t rate_config = { + .phymode = CONFIG_ESP_NOW_PHYMODE, + .rate = CONFIG_ESP_NOW_RATE, + .ersu = false, + .dcm = false + }; + ESP_ERROR_CHECK(esp_now_set_peer_rate_config(peer.peer_addr, &rate_config)); +} + +void app_main() +{ + /** + * @brief Initialize NVS + */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + /** + * @brief Initialize Wi-Fi + */ + wifi_init(); + + /** + * @brief Initialize ESP-NOW + * ESP-NOW protocol see: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html + */ + esp_now_peer_info_t peer = { + .channel = CONFIG_LESS_INTERFERENCE_CHANNEL, + .ifidx = WIFI_IF_STA, + .encrypt = false, + .peer_addr = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + }; + wifi_esp_now_init(peer); + + ESP_LOGI(TAG, "================ CSI SEND ================"); + ESP_LOGI(TAG, "wifi_channel: %d, send_frequency: %d, mac: " MACSTR, + CONFIG_LESS_INTERFERENCE_CHANNEL, CONFIG_SEND_FREQUENCY, MAC2STR(CONFIG_CSI_SEND_MAC)); + + for (uint32_t count = 0; ; ++count) { + esp_err_t ret = esp_now_send(peer.peer_addr, (const uint8_t *)&count, sizeof(count)); + if (ret != ESP_OK) { + ESP_LOGW(TAG, "free_heap: %ld <%s> ESP-NOW send error", esp_get_free_heap_size(), esp_err_to_name(ret)); + } + + usleep(1000 * 1000 / CONFIG_SEND_FREQUENCY); + } +} diff --git a/get-started/csi_send/main/idf_component.yml b/get-started/csi_send/main/idf_component.yml new file mode 100644 index 0000000..c755891 --- /dev/null +++ b/get-started/csi_send/main/idf_component.yml @@ -0,0 +1,3 @@ +## IDF Component Manager Manifest File +dependencies: + idf: ">=4.4.1" diff --git a/get-started/csi_send/sdkconfig.defaults b/get-started/csi_send/sdkconfig.defaults new file mode 100644 index 0000000..5b90ed9 --- /dev/null +++ b/get-started/csi_send/sdkconfig.defaults @@ -0,0 +1,8 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Minimal Configuration +# +CONFIG_PARTITION_TABLE_OFFSET=0xa000 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=128 +CONFIG_ESP_WIFI_CSI_ENABLED=y +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=n +CONFIG_FREERTOS_HZ=1000 diff --git a/get-started/tools/.gitignore b/get-started/tools/.gitignore new file mode 100644 index 0000000..63400aa --- /dev/null +++ b/get-started/tools/.gitignore @@ -0,0 +1,2 @@ +*.csv +*.txt \ No newline at end of file diff --git a/get-started/tools/csi_data_read_parse.py b/get-started/tools/csi_data_read_parse.py new file mode 100755 index 0000000..1ba10e7 --- /dev/null +++ b/get-started/tools/csi_data_read_parse.py @@ -0,0 +1,336 @@ +#!/usr/bin/env python3 +# -*-coding:utf-8-*- + +# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: Apache-2.0 +# + +# WARNING: we don't check for Python build-time dependencies until +# check_environment() function below. If possible, avoid importing +# any external libraries here - put in external script, or import in +# their specific function instead. + +import sys +import csv +import json +import argparse +import pandas as pd +import numpy as np + +import serial +from os import path +from io import StringIO + +from PyQt5.Qt import * +from pyqtgraph import PlotWidget +from PyQt5 import QtCore +import pyqtgraph as pg +from pyqtgraph import ScatterPlotItem +from PyQt5.QtCore import pyqtSignal, QThread +import threading +import time +from scipy.optimize import minimize +import matplotlib.pyplot as plt +from scipy.stats import linregress +import statsmodels.api as sm + +# Reduce displayed waveforms to avoid display freezes +CSI_VAID_SUBCARRIER_INTERVAL = 1 +csi_vaid_subcarrier_len =0 + +CSI_DATA_INDEX = 200 # buffer size +CSI_DATA_COLUMNS = 490 +DATA_COLUMNS_NAMES_C5C6 = ['type', 'id', 'mac', 'rssi', 'rate','noise_floor','fft_gain','agc_gain', 'channel', 'local_timestamp', 'sig_len', 'rx_state', 'len', 'first_word', 'data'] +DATA_COLUMNS_NAMES = ['type', 'id', 'mac', 'rssi', 'rate', 'sig_mode', 'mcs', 'bandwidth', 'smoothing', 'not_sounding', 'aggregation', 'stbc', 'fec_coding', + 'sgi', 'noise_floor', 'ampdu_cnt', 'channel', 'secondary_channel', 'local_timestamp', 'ant', 'sig_len', 'rx_state', 'len', 'first_word', 'data'] + +csi_data_array = np.zeros( + [CSI_DATA_INDEX, CSI_DATA_COLUMNS], dtype=np.float64) +csi_data_phase = np.zeros([CSI_DATA_INDEX, CSI_DATA_COLUMNS], dtype=np.float64) +csi_data_complex = np.zeros([CSI_DATA_INDEX, CSI_DATA_COLUMNS], dtype=np.complex64) +agc_gain_data = np.zeros([CSI_DATA_INDEX], dtype=np.float64) +fft_gain_data = np.zeros([CSI_DATA_INDEX], dtype=np.float64) +fft_gains = [] +agc_gains = [] + +class csi_data_graphical_window(QWidget): + def __init__(self): + super().__init__() + + self.resize(1280, 900) + + self.plotWidget_ted = PlotWidget(self) + self.plotWidget_ted.setGeometry(QtCore.QRect(0, 0, 640, 300)) + self.plotWidget_ted.setYRange(-2*np.pi, 2*np.pi) + self.plotWidget_ted.addLegend() + self.plotWidget_ted.setTitle('Phase Data - Last Frame') # 添加标题 + self.plotWidget_ted.setLabel('left', 'Phase (rad)') # Y轴标签 + self.plotWidget_ted.setLabel('bottom', 'Subcarrier Index') # X轴标签 + + self.csi_amplitude_array = np.abs(csi_data_complex) + self.csi_phase_array = np.angle(csi_data_complex) + self.curve = self.plotWidget_ted.plot([], name='CSI Row Data', pen='r') + + self.plotWidget_multi_data = PlotWidget(self) + self.plotWidget_multi_data.setGeometry(QtCore.QRect(0, 300, 1280, 300)) + self.plotWidget_multi_data.getViewBox().enableAutoRange(axis=pg.ViewBox.YAxis) + self.plotWidget_multi_data.addLegend() + self.plotWidget_multi_data.setTitle('Subcarrier Amplitude Data') # 添加标题 + self.plotWidget_multi_data.setLabel('left', 'Amplitude') # Y轴标签 + self.plotWidget_multi_data.setLabel('bottom', 'Time (Cumulative Packet Count)') # X轴标签 + + self.curve_list = [] + agc_curve = self.plotWidget_multi_data.plot( + agc_gain_data, name='AGC Gain', pen=[255,255,0]) + fft_curve = self.plotWidget_multi_data.plot( + fft_gain_data, name='FFT Gain', pen=[255,255,0]) + self.curve_list.append(agc_curve) + self.curve_list.append(fft_curve) + + for i in range(CSI_DATA_COLUMNS): + curve = self.plotWidget_multi_data.plot( + self.csi_amplitude_array[:, i], name=str(i), pen=(255, 255, 255)) + self.curve_list.append(curve) + + + + self.plotWidget_phase_data = PlotWidget(self) + self.plotWidget_phase_data.setGeometry(QtCore.QRect(0, 600, 1280, 300)) + self.plotWidget_phase_data.getViewBox().enableAutoRange(axis=pg.ViewBox.YAxis) + self.plotWidget_phase_data.addLegend() + self.plotWidget_multi_data.setTitle('Subcarrier Phase Data') # 添加标题 + self.plotWidget_multi_data.setLabel('left', 'Phase (rad)') # Y轴标签 + self.plotWidget_multi_data.setLabel('bottom', 'Time (Cumulative Packet Count)') # X轴标签 + + + self.curve_phase_list = [] + for i in range(CSI_DATA_COLUMNS): + phase_curve = self.plotWidget_phase_data.plot( + np.angle(self.csi_amplitude_array[:, i]), name=str(i), pen=(255, 255, 255)) + self.curve_phase_list.append(phase_curve) + + + # IQ 图窗口 + self.plotWidget_iq = PlotWidget(self) + self.plotWidget_iq.setGeometry(QtCore.QRect(640, 0, 640, 300)) + self.plotWidget_iq.setLabel('left', 'Q (Imag)') + self.plotWidget_iq.setLabel('bottom', 'I (Real)') + self.plotWidget_iq.setTitle('IQ Plot - Last Frame') + view_box = self.plotWidget_iq.getViewBox() + view_box.setRange(QtCore.QRectF(-30, -30, 60, 60)) # 可以调整范围的大小,保证原点在中间 + + self.plotWidget_iq.getViewBox().setAspectLocked(True) + self.iq_scatter = ScatterPlotItem(size=6) + self.plotWidget_iq.addItem(self.iq_scatter) + + self.iq_colors = [] + + + + self.timer = pg.QtCore.QTimer() + self.timer.timeout.connect(self.update_data) + self.timer.start(100) + self.deta_len = 0 + + def update_curve_colors(self, color_list): + self.deta_len = len(color_list) + self.iq_colors = color_list + self.plotWidget_ted.setXRange(0, self.deta_len//2) + for i in range(self.deta_len): + self.curve_list[i].setPen(color_list[i]) + self.curve_phase_list[i].setPen(color_list[i]) + + def update_data(self): + + i = np.real(csi_data_complex[-1, :]) + q = np.imag(csi_data_complex[-1, :]) + + points = [] + for idx in range(self.deta_len): + if idx < len(self.iq_colors): + color = self.iq_colors[idx] + else: + color = (200, 200, 200) + points.append({'pos': (i[idx], q[idx]), 'brush': pg.mkBrush(color)}) + + self.iq_scatter.setData(points) + + + self.csi_amplitude_array = np.abs(csi_data_complex) + self.csi_phase_array = np.angle(csi_data_complex) + self.csi_row_data = self.csi_phase_array[-1, :] + + self.curve.setData(self.csi_row_data) + + self.curve_list[CSI_DATA_COLUMNS].setData(agc_gain_data) + self.curve_list[CSI_DATA_COLUMNS+1].setData(fft_gain_data) + + for i in range(CSI_DATA_COLUMNS): + self.curve_list[i].setData(self.csi_amplitude_array[:, i]) + self.curve_phase_list[i].setData(self.csi_phase_array[:, i]) + +def generate_subcarrier_colors(red_range, green_range, yellow_range, total_num,interval=1): + colors = [] + for i in range(total_num): + if red_range and red_range[0] <= i <= red_range[1]: + intensity = int(255 * (i - red_range[0]) / (red_range[1] - red_range[0])) + colors.append((intensity, 0, 0)) + elif green_range and green_range[0] <= i <= green_range[1]: + intensity = int(255 * (i - green_range[0]) / (green_range[1] - green_range[0])) + colors.append((0, intensity, 0)) + elif yellow_range and yellow_range[0] <= i <= yellow_range[1]: + intensity = int(255 * (i - yellow_range[0]) / (yellow_range[1] - yellow_range[0])) + colors.append((0, intensity, intensity)) + else: + colors.append((200, 200, 200)) + + return colors + + +def csi_data_read_parse(port: str, csv_writer, log_file_fd,callback=None): + global fft_gains, agc_gains + set = serial.Serial(port=port, baudrate=921600,bytesize=8, parity='N', stopbits=1) + count =0 + if set.isOpen(): + print('open success') + else: + print('open failed') + return + while True: + strings = str(set.readline()) + if not strings: + break + strings = strings.lstrip('b\'').rstrip('\\r\\n\'') + index = strings.find('CSI_DATA') + + if index == -1: + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + csv_reader = csv.reader(StringIO(strings)) + csi_data = next(csv_reader) + csi_data_len = int (csi_data[-3]) + if len(csi_data) != len(DATA_COLUMNS_NAMES) and len(csi_data) != len(DATA_COLUMNS_NAMES_C5C6): + print('element number is not equal',len(csi_data),len(DATA_COLUMNS_NAMES) ) + # print(csi_data) + log_file_fd.write('element number is not equal\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + try: + csi_raw_data = json.loads(csi_data[-1]) + except json.JSONDecodeError: + print('data is incomplete') + log_file_fd.write('data is incomplete\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + if csi_data_len != len(csi_raw_data): + print('csi_data_len is not equal',csi_data_len,len(csi_raw_data)) + log_file_fd.write('csi_data_len is not equal\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + fft_gain = int(csi_data[6]) + agc_gain = int(csi_data[7]) + + fft_gains.append(fft_gain) + agc_gains.append(agc_gain) + + csv_writer.writerow(csi_data) + + # Rotate data to the left + # csi_data_array[:-1] = csi_data_array[1:] + # csi_data_phase[:-1] = csi_data_phase[1:] + csi_data_complex[:-1] = csi_data_complex[1:] + agc_gain_data[:-1] = agc_gain_data[1:] + fft_gain_data[:-1] = fft_gain_data[1:] + agc_gain_data[-1] = agc_gain + fft_gain_data[-1] = fft_gain + + if count ==0: + count = 1 + print('none',csi_data_len) + if csi_data_len == 106: + colors = generate_subcarrier_colors((0,25), (27,53), None, len(csi_raw_data)) + elif csi_data_len == 114: + colors = generate_subcarrier_colors((0,27), (29,56), None, len(csi_raw_data)) + elif csi_data_len == 52: + colors = generate_subcarrier_colors((0,12), (13,26), None, len(csi_raw_data)) + elif csi_data_len == 234 : + colors = generate_subcarrier_colors((0,28), (29,56), (60,116), len(csi_raw_data)) + elif csi_data_len == 228 : + colors = generate_subcarrier_colors((0,28), (29,57), (57,113), len(csi_raw_data)) + elif csi_data_len == 490 : + colors = generate_subcarrier_colors((0,61), (62,122), (123,245), len(csi_raw_data)) + elif csi_data_len == 128 : + colors = generate_subcarrier_colors((0,31), (32,63), None, len(csi_raw_data)) + elif csi_data_len == 256 : + colors = generate_subcarrier_colors((0,32), (32,63), (64,128), len(csi_raw_data)) + elif csi_data_len == 512 : + colors = generate_subcarrier_colors((0,63), (64,127), (128,256), len(csi_raw_data)) + elif csi_data_len == 384 : + colors = generate_subcarrier_colors((0,63), (64,127), (128,192), len(csi_raw_data)) + elif csi_data_len > 0 and csi_data_len <= 612: + raw_len = len(csi_raw_data) + colors = generate_subcarrier_colors((0,raw_len//2), (raw_len//2+1,raw_len-1), None, raw_len) + callback(colors) + + for i in range(csi_data_len // 2): + csi_data_complex[-1][i] = complex(csi_raw_data[i * 2 + 1], + csi_raw_data[i * 2]) + set.close() + return + + +class SubThread (QThread): + data_ready = pyqtSignal(object) + def __init__(self, serial_port, save_file_name, log_file_name): + super().__init__() + self.serial_port = serial_port + + save_file_fd = open(save_file_name, 'w') + self.log_file_fd = open(log_file_name, 'w') + self.csv_writer = csv.writer(save_file_fd) + self.csv_writer.writerow(DATA_COLUMNS_NAMES) + + def run(self): + csi_data_read_parse(self.serial_port, self.csv_writer, self.log_file_fd,callback=self.data_ready.emit) + + def __del__(self): + self.wait() + self.log_file_fd.close() + + +if __name__ == '__main__': + if sys.version_info < (3, 6): + print(' Python version should >= 3.6') + exit() + + parser = argparse.ArgumentParser( + description='Read CSI data from serial port and display it graphically') + parser.add_argument('-p', '--port', dest='port', action='store', required=True, + help='Serial port number of csv_recv device') + parser.add_argument('-s', '--store', dest='store_file', action='store', default='./csi_data.csv', + help='Save the data printed by the serial port to a file') + parser.add_argument('-l', '--log', dest='log_file', action='store', default='./csi_data_log.txt', + help='Save other serial data the bad CSI data to a log file') + + args = parser.parse_args() + serial_port = args.port + file_name = args.store_file + log_file_name = args.log_file + + app = QApplication(sys.argv) + + subthread = SubThread(serial_port, file_name, log_file_name) + + window = csi_data_graphical_window() + subthread.data_ready.connect(window.update_curve_colors) + subthread.start() + window.show() + + sys.exit(app.exec()) diff --git a/get-started/tools/csi_data_read_parse_1.py b/get-started/tools/csi_data_read_parse_1.py new file mode 100755 index 0000000..65a0b25 --- /dev/null +++ b/get-started/tools/csi_data_read_parse_1.py @@ -0,0 +1,399 @@ +#!/usr/bin/env python3 +# -*-coding:utf-8-*- + +# SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: Apache-2.0 +# + +# WARNING: we don't check for Python build-time dependencies until +# check_environment() function below. If possible, avoid importing +# any external libraries here - put in external script, or import in +# their specific function instead. + +import sys +import csv +import json +import argparse +import pandas as pd +import numpy as np + +import serial +from os import path +from io import StringIO + +from PyQt5.Qt import * +from pyqtgraph import PlotWidget +from PyQt5 import QtCore +import pyqtgraph as pg +from pyqtgraph import ScatterPlotItem +from PyQt5.QtCore import pyqtSignal, QThread +import threading +import time +from scipy.optimize import minimize +import matplotlib.pyplot as plt +from scipy.stats import linregress +import statsmodels.api as sm + +# Reduce displayed waveforms to avoid display freezes +CSI_VAID_SUBCARRIER_INTERVAL = 1 +csi_vaid_subcarrier_len =0 + +CSI_DATA_INDEX = 200 # buffer size +CSI_DATA_COLUMNS = 490 +DATA_COLUMNS_NAMES_C5C6 = ['type', 'id', 'mac', 'rssi', 'rate','noise_floor','fft_gain','agc_gain', 'channel', 'local_timestamp', 'sig_len', 'rx_state', 'len', 'first_word', 'data'] +DATA_COLUMNS_NAMES_NEW = ['type', 'mac','len', 'first_word', 'data'] +DATA_COLUMNS_NAMES = ['type', 'id', 'mac', 'rssi', 'rate', 'sig_mode', 'mcs', 'bandwidth', 'smoothing', 'not_sounding', 'aggregation', 'stbc', 'fec_coding', + 'sgi', 'noise_floor', 'ampdu_cnt', 'channel', 'secondary_channel', 'local_timestamp', 'ant', 'sig_len', 'rx_state', 'len', 'first_word', 'data'] + +csi_data_array = np.zeros( + [CSI_DATA_INDEX, CSI_DATA_COLUMNS], dtype=np.float64) +csi_data_phase = np.zeros([CSI_DATA_INDEX, CSI_DATA_COLUMNS], dtype=np.float64) +csi_data_complex = np.zeros([CSI_DATA_INDEX, CSI_DATA_COLUMNS], dtype=np.complex64) +agc_gain_data = np.zeros([CSI_DATA_INDEX], dtype=np.float64) +fft_gain_data = np.zeros([CSI_DATA_INDEX], dtype=np.float64) +fft_gains = [] +agc_gains = [] + +# RAW_DATA 独立数据数组 +RAW_DATA_COLUMNS = 612 # RAW_DATA 最大长度 +raw_data_complex = np.zeros([CSI_DATA_INDEX, RAW_DATA_COLUMNS], dtype=np.complex64) + +class csi_data_graphical_window(QWidget): + def __init__(self): + super().__init__() + + self.resize(1280, 900) + + self.plotWidget_ted = PlotWidget(self) + self.plotWidget_ted.setGeometry(QtCore.QRect(0, 0, 640, 300)) + self.plotWidget_ted.setYRange(-2*np.pi, 2*np.pi) + self.plotWidget_ted.addLegend() + self.plotWidget_ted.setTitle('Phase Data - Last Frame') # 添加标题 + self.plotWidget_ted.setLabel('left', 'Phase (rad)') # Y轴标签 + self.plotWidget_ted.setLabel('bottom', 'Subcarrier Index') # X轴标签 + + self.csi_amplitude_array = np.abs(csi_data_complex) + self.csi_phase_array = np.angle(csi_data_complex) + self.curve = self.plotWidget_ted.plot([], name='CSI Phase', pen='r') + + # RAW_DATA 相位曲线(蓝色) + self.raw_amplitude_array = np.abs(raw_data_complex) + self.raw_phase_array = np.angle(raw_data_complex) + self.curve_raw = self.plotWidget_ted.plot([], name='RAW Phase', pen='b') + + self.plotWidget_multi_data = PlotWidget(self) + self.plotWidget_multi_data.setGeometry(QtCore.QRect(0, 300, 1280, 300)) + self.plotWidget_multi_data.getViewBox().enableAutoRange(axis=pg.ViewBox.YAxis) + self.plotWidget_multi_data.addLegend() + self.plotWidget_multi_data.setTitle('Subcarrier Amplitude Data') # 添加标题 + self.plotWidget_multi_data.setLabel('left', 'Amplitude') # Y轴标签 + self.plotWidget_multi_data.setLabel('bottom', 'Time (Cumulative Packet Count)') # X轴标签 + + self.curve_list = [] + agc_curve = self.plotWidget_multi_data.plot( + agc_gain_data, name='AGC Gain', pen=[255,255,0]) + fft_curve = self.plotWidget_multi_data.plot( + fft_gain_data, name='FFT Gain', pen=[255,255,0]) + self.curve_list.append(agc_curve) + self.curve_list.append(fft_curve) + + for i in range(CSI_DATA_COLUMNS): + curve = self.plotWidget_multi_data.plot( + self.csi_amplitude_array[:, i], name=str(i), pen=(255, 255, 255)) + self.curve_list.append(curve) + + + + self.plotWidget_phase_data = PlotWidget(self) + self.plotWidget_phase_data.setGeometry(QtCore.QRect(0, 600, 1280, 300)) + self.plotWidget_phase_data.getViewBox().enableAutoRange(axis=pg.ViewBox.YAxis) + self.plotWidget_phase_data.addLegend() + self.plotWidget_multi_data.setTitle('Subcarrier Phase Data') # 添加标题 + self.plotWidget_multi_data.setLabel('left', 'Phase (rad)') # Y轴标签 + self.plotWidget_multi_data.setLabel('bottom', 'Time (Cumulative Packet Count)') # X轴标签 + + + self.curve_phase_list = [] + for i in range(CSI_DATA_COLUMNS): + phase_curve = self.plotWidget_phase_data.plot( + np.angle(self.csi_amplitude_array[:, i]), name=str(i), pen=(255, 255, 255)) + self.curve_phase_list.append(phase_curve) + + + # IQ 图窗口 + self.plotWidget_iq = PlotWidget(self) + self.plotWidget_iq.setGeometry(QtCore.QRect(640, 0, 640, 300)) + self.plotWidget_iq.setLabel('left', 'Q (Imag)') + self.plotWidget_iq.setLabel('bottom', 'I (Real)') + self.plotWidget_iq.setTitle('IQ Plot - Last Frame') + view_box = self.plotWidget_iq.getViewBox() + view_box.setRange(QtCore.QRectF(-30, -30, 60, 60)) # 可以调整范围的大小,保证原点在中间 + + self.plotWidget_iq.getViewBox().setAspectLocked(True) + self.iq_scatter = ScatterPlotItem(size=6) + self.plotWidget_iq.addItem(self.iq_scatter) + + self.iq_colors = [] + + + + self.timer = pg.QtCore.QTimer() + self.timer.timeout.connect(self.update_data) + self.timer.start(100) + self.deta_len = 0 + + def update_curve_colors(self, color_list): + self.deta_len = len(color_list) + self.iq_colors = color_list + self.plotWidget_ted.setXRange(0, self.deta_len//2) + for i in range(self.deta_len): + self.curve_list[i].setPen(color_list[i]) + self.curve_phase_list[i].setPen(color_list[i]) + + def update_data(self): + + i = np.real(csi_data_complex[-1, :]) + q = np.imag(csi_data_complex[-1, :]) + + # points = [] + # for idx in range(self.deta_len): + # if idx < len(self.iq_colors): + # color = self.iq_colors[idx] + # else: + # color = (200, 200, 200) + # points.append({'pos': (i[idx], q[idx]), 'brush': pg.mkBrush(color)}) + + # self.iq_scatter.setData(points) + + # CSI_DATA 相位更新 + self.csi_amplitude_array = np.abs(csi_data_complex) + self.csi_phase_array = np.angle(csi_data_complex) + self.csi_row_data = self.csi_phase_array[-1, :] + + self.csi_row_data = np.unwrap(self.csi_row_data) + self.curve.setData(self.csi_row_data) + + # RAW_DATA 相位更新 + self.raw_amplitude_array = np.abs(raw_data_complex) + self.raw_phase_array = np.angle(raw_data_complex) + self.raw_row_data = self.raw_phase_array[-1, :] + + self.raw_row_data = np.unwrap(self.raw_row_data) + self.curve_raw.setData(self.raw_row_data) + + # self.curve_list[CSI_DATA_COLUMNS].setData(agc_gain_data) + # self.curve_list[CSI_DATA_COLUMNS+1].setData(fft_gain_data) + + for i in range(CSI_DATA_COLUMNS): + self.curve_list[i].setData(self.csi_amplitude_array[:, i]) + # self.curve_phase_list[i].setData(self.csi_phase_array[:, i]) + +def generate_subcarrier_colors(red_range, green_range, yellow_range, total_num,interval=1): + colors = [] + for i in range(total_num): + if red_range and red_range[0] <= i <= red_range[1]: + intensity = int(255 * (i - red_range[0]) / (red_range[1] - red_range[0])) + colors.append((intensity, 0, 0)) + elif green_range and green_range[0] <= i <= green_range[1]: + intensity = int(255 * (i - green_range[0]) / (green_range[1] - green_range[0])) + colors.append((0, intensity, 0)) + elif yellow_range and yellow_range[0] <= i <= yellow_range[1]: + intensity = int(255 * (i - yellow_range[0]) / (yellow_range[1] - yellow_range[0])) + colors.append((0, intensity, intensity)) + else: + colors.append((200, 200, 200)) + + return colors + + +def csi_data_read_parse(port: str, csv_writer, log_file_fd,callback=None): + global fft_gains, agc_gains + set = serial.Serial(port=port, baudrate=921600,bytesize=8, parity='N', stopbits=1) + csi_count = 0 # CSI_DATA 计数器 + raw_count = 0 # RAW_DATA 计数器 + if set.isOpen(): + print('open success') + else: + print('open failed') + return + while True: + strings = str(set.readline()) + if not strings: + break + strings = strings.lstrip('b\'').rstrip('\\r\\n\'') + index = strings.find('CSI_DATA') + raw_index = strings.find('RAW_DATA') + + if index == -1 and raw_index == -1: + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + # RAW_DATA 单独处理 + if raw_index != -1: + csv_reader = csv.reader(StringIO(strings)) + csi_data = next(csv_reader) + csi_data_len = int(csi_data[-3]) + + try: + csi_raw_data = json.loads(csi_data[-1]) + except json.JSONDecodeError: + print('RAW_DATA is incomplete') + log_file_fd.write('RAW_DATA is incomplete\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + if csi_data_len != len(csi_raw_data): + print('RAW_DATA csi_data_len is not equal',csi_data_len,len(csi_raw_data)) + log_file_fd.write('RAW_DATA csi_data_len is not equal\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + # RAW_DATA 使用独立的数据数组 + raw_data_complex[:-1] = raw_data_complex[1:] + # 清空当前行 + raw_data_complex[-1, :] = 0 + + if raw_count == 0: + raw_count = 1 + print('RAW_DATA detected, length:', csi_data_len) + # RAW_DATA 不需要初始化颜色,只是接收数据显示相位 + + # RAW_DATA 转换为复数存入独立数组 + for i in range(csi_data_len // 2): + raw_data_complex[-1][i] = complex(csi_raw_data[i * 2 + 1], + csi_raw_data[i * 2]) + continue + + # CSI_DATA 处理 + csv_reader = csv.reader(StringIO(strings)) + csi_data = next(csv_reader) + csi_data_len = int (csi_data[-3]) + if len(csi_data) != len(DATA_COLUMNS_NAMES) and len(csi_data) != len(DATA_COLUMNS_NAMES_C5C6 ) and len(csi_data) != len(DATA_COLUMNS_NAMES_NEW): + print('element number is not equal',len(csi_data),len(DATA_COLUMNS_NAMES) ) + print(strings) + log_file_fd.write('element number is not equal\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + try: + csi_raw_data = json.loads(csi_data[-1]) + except json.JSONDecodeError: + print('data is incomplete') + log_file_fd.write('data is incomplete\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + if csi_data_len != len(csi_raw_data): + print('csi_data_len is not equal',csi_data_len,len(csi_raw_data)) + log_file_fd.write('csi_data_len is not equal\n') + log_file_fd.write(strings + '\n') + log_file_fd.flush() + continue + + fft_gain = 0 # int(csi_data[6]) + agc_gain = 0 # int(csi_data[7]) + + fft_gains.append(fft_gain) + agc_gains.append(agc_gain) + + csv_writer.writerow(csi_data) + + # Rotate data to the left + # csi_data_array[:-1] = csi_data_array[1:] + # csi_data_phase[:-1] = csi_data_phase[1:] + csi_data_complex[:-1] = csi_data_complex[1:] + agc_gain_data[:-1] = agc_gain_data[1:] + fft_gain_data[:-1] = fft_gain_data[1:] + agc_gain_data[-1] = agc_gain + fft_gain_data[-1] = fft_gain + + if csi_count == 0: + csi_count = 1 + print('CSI_DATA detected, length:',csi_data_len) + if csi_data_len == 106: + colors = generate_subcarrier_colors((0,25), (27,53), None, len(csi_raw_data)) + elif csi_data_len == 114: + colors = generate_subcarrier_colors((0,27), (29,56), None, len(csi_raw_data)) + elif csi_data_len == 52: + colors = generate_subcarrier_colors((0,12), (13,26), None, len(csi_raw_data)) + elif csi_data_len == 234 : + colors = generate_subcarrier_colors((0,28), (29,56), (60,116), len(csi_raw_data)) + elif csi_data_len == 228 : + colors = generate_subcarrier_colors((0,28), (29,56), (57,114), len(csi_raw_data)) + elif csi_data_len == 328 : + colors = generate_subcarrier_colors((0,164), None, None, len(csi_raw_data)) + elif csi_data_len == 490 : + colors = generate_subcarrier_colors((0,61), (62,122), (123,245), len(csi_raw_data)) + elif csi_data_len == 128 : + colors = generate_subcarrier_colors((0,31), (32,63), None, len(csi_raw_data)) + elif csi_data_len == 256 : + colors = generate_subcarrier_colors((0,32), (32,63), (64,128), len(csi_raw_data)) + elif csi_data_len == 512 : + colors = generate_subcarrier_colors((0,63), (64,127), (128,256), len(csi_raw_data)) + elif csi_data_len == 384 : + colors = generate_subcarrier_colors((0,63), (64,127), (128,192), len(csi_raw_data)) + else: + print('Please add more color schemes.') + csi_count = 0 + continue + callback(colors) + + for i in range(csi_data_len // 2): + csi_data_complex[-1][i] = complex(csi_raw_data[i * 2 + 1], + csi_raw_data[i * 2]) + set.close() + return + + +class SubThread (QThread): + data_ready = pyqtSignal(object) + def __init__(self, serial_port, save_file_name, log_file_name): + super().__init__() + self.serial_port = serial_port + + save_file_fd = open(save_file_name, 'w') + self.log_file_fd = open(log_file_name, 'w') + self.csv_writer = csv.writer(save_file_fd) + self.csv_writer.writerow(DATA_COLUMNS_NAMES) + + def run(self): + csi_data_read_parse(self.serial_port, self.csv_writer, self.log_file_fd,callback=self.data_ready.emit) + + def __del__(self): + self.wait() + self.log_file_fd.close() + + +if __name__ == '__main__': + if sys.version_info < (3, 6): + print(' Python version should >= 3.6') + exit() + + parser = argparse.ArgumentParser( + description='Read CSI data from serial port and display it graphically') + parser.add_argument('-p', '--port', dest='port', action='store', required=True, + help='Serial port number of csv_recv device') + parser.add_argument('-s', '--store', dest='store_file', action='store', default='./csi_data.csv', + help='Save the data printed by the serial port to a file') + parser.add_argument('-l', '--log', dest='log_file', action='store', default='./csi_data_log.txt', + help='Save other serial data the bad CSI data to a log file') + + args = parser.parse_args() + serial_port = args.port + file_name = args.store_file + log_file_name = args.log_file + + app = QApplication(sys.argv) + + subthread = SubThread(serial_port, file_name, log_file_name) + + window = csi_data_graphical_window() + subthread.data_ready.connect(window.update_curve_colors) + subthread.start() + window.show() + + sys.exit(app.exec())