Merge branch 'MoonModules:mdev' into mdev
This commit is contained in:
4
.github/ISSUE_TEMPLATE/bug.yml
vendored
4
.github/ISSUE_TEMPLATE/bug.yml
vendored
@@ -48,7 +48,7 @@ body:
|
||||
attributes:
|
||||
label: What version/release of MM WLED?
|
||||
description: You can find this in by going to Config -> Security & Updates -> Scroll to Bottom. Copy and paste the entire line after "Server message"
|
||||
placeholder: "e.g. WLEDMM_0.14.0.2.1_esp32_4MB_max (build 2212061)"
|
||||
placeholder: "e.g. build 2308250, WLEDMM_0.14.0-b27.31_esp32_4MB_M.bin"
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
@@ -57,12 +57,12 @@ body:
|
||||
label: Which microcontroller/board are you seeing the problem on?
|
||||
multiple: true
|
||||
options:
|
||||
- ESP8266
|
||||
- ESP32
|
||||
- ESP32-S3
|
||||
- ESP32-S2
|
||||
- ESP32-C3
|
||||
- Other
|
||||
- ESP8266
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0-b26.30",
|
||||
"version": "0.14.0-b27.31",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "wled",
|
||||
"version": "0.14.0-b26.30",
|
||||
"version": "0.14.0-b27.31",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"clean-css": "^4.2.3",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0-b26.30",
|
||||
"version": "0.14.0-b27.31",
|
||||
"description": "Tools for WLED project",
|
||||
"main": "tools/cdata.js",
|
||||
"directories": {
|
||||
|
||||
@@ -39,12 +39,14 @@
|
||||
; default_envs = esp32dev_qio80
|
||||
; default_envs = esp32_eth_ota1mapp
|
||||
; default_envs = esp32s2_saola
|
||||
; default_envs = esp32c3dev
|
||||
; default_envs = lolin_s2_mini
|
||||
|
||||
; MoonModules entries
|
||||
; ===================
|
||||
|
||||
default_envs =
|
||||
; esp32_4MB_S ;; experimental, optimized for speed
|
||||
esp32_4MB_S ;; experimental, optimized for speed
|
||||
esp32_4MB_M ;; esp32 recommended default
|
||||
esp32_4MB_M_eth
|
||||
esp32_4MB_M_debug
|
||||
@@ -68,9 +70,9 @@ default_envs =
|
||||
esp32_pico_4MB_M
|
||||
esp32_4MB_PSRAM_S
|
||||
; esp32_4MB_PSRAM_REV3_S ;; experimental, optimized for WROVER-E with "revision3" chip
|
||||
esp32S3_8MB_S ;; experimental, optimized for speed
|
||||
esp32S3_8MB_M
|
||||
;; esp32S3_8MB_PSRAM_M ;; experiemental
|
||||
;; esp32S3_8MB_S ;; experimental, optimized for speed
|
||||
;; esp32s2_tinyUF2_PSRAM_S ;; experimental - only for adafruit -S2 boards with tinyUF2 bootloader !!!
|
||||
esp32s2_PSRAM_M ;; experimental
|
||||
esp32c3dev_4MB_M ;; experimental
|
||||
@@ -563,8 +565,8 @@ board = esp32-c3-devkitm-1
|
||||
board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
||||
build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3
|
||||
-D WLED_WATCHDOG_TIMEOUT=0
|
||||
; -DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB
|
||||
-DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip
|
||||
-DARDUINO_USB_CDC_ON_BOOT=1 ;; for virtual CDC USB
|
||||
;-DARDUINO_USB_CDC_ON_BOOT=0 ;; for serial-to-USB chip
|
||||
upload_speed = 460800
|
||||
build_unflags = ${common.build_unflags}
|
||||
lib_deps = ${esp32c3.lib_deps}
|
||||
@@ -676,10 +678,10 @@ platform = ${esp32s2.platform}
|
||||
platform_packages = ${esp32s2.platform_packages}
|
||||
board = lolin_s2_mini
|
||||
board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
||||
build_unflags = ${common.build_unflags} -DARDUINO_USB_CDC_ON_BOOT=1
|
||||
build_unflags = ${common.build_unflags} #-DARDUINO_USB_CDC_ON_BOOT=1
|
||||
build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME=LolinS2
|
||||
-DBOARD_HAS_PSRAM
|
||||
-DARDUINO_USB_CDC_ON_BOOT=0
|
||||
-DARDUINO_USB_CDC_ON_BOOT=1 # try disabling and enabling unflag above in case of board-specific issues, will disable Serial
|
||||
-DARDUINO_USB_MSC_ON_BOOT=0
|
||||
-DARDUINO_USB_DFU_ON_BOOT=0
|
||||
-DLOLIN_WIFI_FIX ; seems to work much better with this
|
||||
@@ -1706,12 +1708,13 @@ build_unflags = ${env:esp32S3_8MB_M.build_unflags} ;; use the same as "normal"
|
||||
${Speed_Flags.build_unflags} ;; to override -Os
|
||||
build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-indentation -Wno-format-truncation
|
||||
${common_mm.build_flags_S}
|
||||
-D WLED_RELEASE_NAME=esp32S3_8MB_PSRAM_S
|
||||
-D WLED_RELEASE_NAME=esp32S3_8MB_S
|
||||
-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 ;; for Serial-to-USB chip
|
||||
;;-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=1 ;; for Hardware-CDC USB mode
|
||||
;;-D WLED_DISABLE_ADALIGHT ;; disables serial protocols - recommended for Hardware-CDC USB (Serial RX will receive junk commands when RX pin is unconnected, unless its pulled down by resistor)
|
||||
${Speed_Flags.build_flags} ;; optimize for speed instead of size
|
||||
-D WLEDMM_FASTPATH ; WLEDMM experimental option. Reduces audio lag (latency), and allows for faster LED framerates. May break compatibility with previous versions.
|
||||
${common_mm.animartrix_build_flags}
|
||||
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-D WLED_DISABLE_LOXONE ; FLASH 1272 bytes
|
||||
-D WLED_DISABLE_ALEXA ; RAM 116 bytes; FLASH 13524 bytes
|
||||
@@ -1731,15 +1734,16 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-inden
|
||||
; -D WLED_DEBUG
|
||||
; -D SR_DEBUG
|
||||
; -D MIC_LOGGER
|
||||
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S}
|
||||
lib_deps = ${esp32s3.lib_deps} ${common_mm.lib_deps_S}
|
||||
${common_mm.animartrix_lib_deps}
|
||||
lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
|
||||
board_build.partitions = tools/WLED_ESP32_8MB.csv
|
||||
;; normal build
|
||||
; RAM: [== ] 24.9% (used 81656 bytes from 327680 bytes)
|
||||
; Flash: [======= ] 66.1% (used 1386229 bytes from 2097152 bytes)
|
||||
;; optimized-for-speed build
|
||||
; RAM: [== ] 24.9% (used 81712 bytes from 327680 bytes)
|
||||
; Flash: [======== ] 75.2% (used 1576113 bytes from 2097152 bytes)
|
||||
; RAM: [=== ] 25.8% (used 84544 bytes from 327680 bytes)
|
||||
; Flash: [======== ] 78.1% (used 1638737 bytes from 2097152 bytes)
|
||||
|
||||
|
||||
;; MM for Adafruit QT Py ESP32-S2 -> 4MB flash, PSRAM, and tinyUF2 bootloader
|
||||
@@ -1769,7 +1773,7 @@ build_flags = ${common.build_flags} ${esp32s2.build_flags}
|
||||
-D WLED_DISABLE_ADALIGHT ;; disables serial protocols when using CDC USB (Serial RX will receive junk commands, unless its pulled down by resistor)
|
||||
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0
|
||||
-D SERVERNAME='"WLED-S2"'
|
||||
-DBOARD_HAS_PSRAM -D WLED_USE_PSRAM_JSON -D WLED_USE_PSRAM
|
||||
-DBOARD_HAS_PSRAM -D WLED_USE_PSRAM_JSON ;; -D WLED_USE_PSRAM
|
||||
-D WLED_DISABLE_LOXONE ;; FLASH 1272 bytes
|
||||
-D WLED_DISABLE_HUESYNC ;; RAM 122 bytes; FLASH 6308 bytes
|
||||
-D WLED_DISABLE_ALEXA ;; RAM 116 bytes; FLASH 13524 bytes
|
||||
@@ -1815,11 +1819,12 @@ build_flags = ${common.build_flags} ${esp32s2.build_flags}
|
||||
-D WLED_WATCHDOG_TIMEOUT=0 -D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
${common_mm.build_flags_S} ${common_mm.build_flags_M}
|
||||
-Wno-misleading-indentation -Wno-format-truncation
|
||||
-D WLED_RELEASE_NAME=esp32S2_4MB_M
|
||||
-D WLED_RELEASE_NAME=esp32s2_4MB_M
|
||||
-DLOLIN_WIFI_FIX -DWLEDMM_WIFI_POWERON_HACK ;; seems to work much better with this
|
||||
-DARDUINO_USB_CDC_ON_BOOT=0
|
||||
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0
|
||||
-D WLED_DISABLE_ADALIGHT ;; disables serial protocols, as the board only has CDC USB
|
||||
-DBOARD_HAS_PSRAM -D WLED_USE_PSRAM_JSON -D WLED_USE_PSRAM
|
||||
-DBOARD_HAS_PSRAM -D WLED_USE_PSRAM_JSON ;; -D WLED_USE_PSRAM
|
||||
; -D WLEDMM_WIFI_POWERON_HACK -DLOLIN_WIFI_FIX ;; use this _only_ if your device is not able to make a WiFI connection!
|
||||
-D WLED_DISABLE_INFRARED ;; save flash space
|
||||
-D WLED_DISABLE_ALEXA ;; save flash space
|
||||
|
||||
@@ -1,6 +1,33 @@
|
||||
#pragma once
|
||||
|
||||
#include "wled.h"
|
||||
|
||||
// softhack007: workaround for ICE (internal compiler error) when compiling with new framework and "-O2":
|
||||
|
||||
/*
|
||||
wled00/../usermods/usermod_v2_animartrix/usermod_v2_animartrix.h: In function 'uint16_t mode_Waves()':
|
||||
wled00/../usermods/usermod_v2_animartrix/usermod_v2_animartrix.h:367:1: error: insn does not satisfy its constraints:
|
||||
}
|
||||
^
|
||||
(insn 811 738 824 24 (set (reg/v:SF 19 f0 [orig:69 result ] [69])
|
||||
(mem/u/c:SF (symbol_ref/u:SI ("*.LC1657") [flags 0x2]) [0 S4 A32])) ".pio/libdeps/my_esp32_16MB_V4_S/animartrix/ANIMartRIX.h":372 47 {movsf_internal}
|
||||
(nil))
|
||||
during RTL pass: postreload
|
||||
wled00/../usermods/usermod_v2_animartrix/usermod_v2_animartrix.h:367:1: internal compiler error: in extract_constrain_insn, at recog.c:2210
|
||||
libbacktrace could not find executable to open
|
||||
Please submit a full bug report,
|
||||
with preprocessed source if appropriate.
|
||||
See <https://gcc.gnu.org/bugs/> for instructions.
|
||||
*/
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && defined(ESP_IDF_VERSION)
|
||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
|
||||
// this pragma temporarily raises gcc optimization level to "-O3", to avoid internal error conditions
|
||||
#pragma GCC push_options
|
||||
#pragma GCC optimize ("O3")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <ANIMartRIX.h>
|
||||
|
||||
#warning WLEDMM usermod: CC BY-NC 3.0 licensed effects by Stefan Petrick, include this usermod only if you accept the terms!
|
||||
@@ -448,4 +475,10 @@ class AnimartrixUsermod : public Usermod {
|
||||
};
|
||||
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && defined(ESP_IDF_VERSION)
|
||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 4, 0)
|
||||
// restore original gcc optimization level
|
||||
#pragma GCC pop_options
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1354,7 +1354,7 @@ bool FourLineDisplayUsermod::handleButton(uint8_t b) {
|
||||
static bool buttonLongPressed = false;
|
||||
static unsigned long buttonPressedTime = 0;
|
||||
static unsigned long buttonWaitTime = 0;
|
||||
bool handled = true;
|
||||
bool handled = false;
|
||||
|
||||
//momentary button logic
|
||||
if (isButtonPressed(b)) { //pressed
|
||||
@@ -1363,11 +1363,12 @@ bool FourLineDisplayUsermod::handleButton(uint8_t b) {
|
||||
buttonPressedBefore = true;
|
||||
|
||||
if (now - buttonPressedTime > 600) { //long press
|
||||
buttonLongPressed = true;
|
||||
//TODO: handleButton() handles button 0 without preset in a different way for double click
|
||||
//so we need to override with same behaviour
|
||||
longPressAction(0);
|
||||
//handled = false;
|
||||
//DEBUG_PRINTLN(F("4LD action."));
|
||||
//if (!buttonLongPressed) longPressAction(0);
|
||||
buttonLongPressed = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
} else if (!isButtonPressed(b) && buttonPressedBefore) { //released
|
||||
@@ -1399,7 +1400,7 @@ bool FourLineDisplayUsermod::handleButton(uint8_t b) {
|
||||
buttonWaitTime = 0;
|
||||
//TODO: handleButton() handles button 0 without preset in a different way for double click
|
||||
//so we need to override with same behaviour
|
||||
shortPressAction(0);
|
||||
//shortPressAction(0);
|
||||
//handled = false;
|
||||
}
|
||||
return handled;
|
||||
|
||||
@@ -21,6 +21,7 @@ void shortPressAction(uint8_t b)
|
||||
case 1: ++effectCurrent %= strip.getModeCount(); stateChanged = true; colorUpdated(CALL_MODE_BUTTON); break;
|
||||
}
|
||||
} else {
|
||||
unloadPlaylist(); // applying a preset unloads the playlist
|
||||
applyPreset(macroButton[b], CALL_MODE_BUTTON_PRESET);
|
||||
}
|
||||
|
||||
@@ -42,6 +43,7 @@ void longPressAction(uint8_t b)
|
||||
case 1: bri += 8; stateUpdated(CALL_MODE_BUTTON); buttonPressedTime[b] = millis(); break; // repeatable action
|
||||
}
|
||||
} else {
|
||||
unloadPlaylist(); // applying a preset unloads the playlist
|
||||
applyPreset(macroLongPress[b], CALL_MODE_BUTTON_PRESET);
|
||||
}
|
||||
|
||||
@@ -63,6 +65,7 @@ void doublePressAction(uint8_t b)
|
||||
case 1: ++effectPalette %= strip.getPaletteCount(); colorUpdated(CALL_MODE_BUTTON); break;
|
||||
}
|
||||
} else {
|
||||
unloadPlaylist(); // applying a preset unloads the playlist
|
||||
applyPreset(macroDoublePress[b], CALL_MODE_BUTTON_PRESET);
|
||||
}
|
||||
|
||||
@@ -262,7 +265,7 @@ void handleButton()
|
||||
shortPressAction(b);
|
||||
buttonPressedBefore[b] = true;
|
||||
buttonPressedTime[b] = now; // continually update (for debouncing to work in release handler)
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!buttonPressedBefore[b]) buttonPressedTime[b] = now;
|
||||
@@ -283,7 +286,7 @@ void handleButton()
|
||||
// released after rising-edge short press action
|
||||
if (macroButton[b] && macroButton[b] == macroLongPress[b] && macroButton[b] == macroDoublePress[b]) {
|
||||
if (dur > WLED_DEBOUNCE_THRESHOLD) buttonPressedBefore[b] = false; // debounce, blocks button for 50 ms once it has been released
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (dur < WLED_DEBOUNCE_THRESHOLD) {buttonPressedBefore[b] = false; continue;} // too short "press", debounce
|
||||
|
||||
@@ -422,7 +422,11 @@
|
||||
#else
|
||||
#if defined(BOARD_HAS_PSRAM) && (defined(WLED_USE_PSRAM) || defined(WLED_USE_PSRAM_JSON))
|
||||
#if defined(ARDUINO_ARCH_ESP32S2) || defined(ARDUINO_ARCH_ESP32C3)
|
||||
#define JSON_BUFFER_SIZE 48000 // WLEDMM
|
||||
#if defined(ARDUINO_ARCH_ESP32C3)
|
||||
#define JSON_BUFFER_SIZE 46000 // WLEDMM - max 46KB on -C3 with PSRAM (chip has 400kb RAM)
|
||||
#else
|
||||
#define JSON_BUFFER_SIZE 36000 // WLEDMM - max 36KB on -S2 with PSRAM (chip has 320kb RAM)
|
||||
#endif
|
||||
#else
|
||||
#define JSON_BUFFER_SIZE 56000 // WLEDMM (was 60000) slightly reduced to avoid build error "region dram0_0_seg overflowed"
|
||||
#endif
|
||||
|
||||
@@ -676,8 +676,7 @@ function populateInfo(i)
|
||||
if (i.ver.includes("0.14.1")) vcn = "Sitting Ducks"; // easter egg
|
||||
if (i.ver.includes("0.14.0")) vcn = "Lupo"; // check for MM versioning scheme
|
||||
if (i.ver.includes("0.14.0-b15")) vcn = "Sitting Ducks"; // late easter egg
|
||||
if (i.ver.includes("0.14.0-b25")) vcn = "This is the way"; // recently watched The Mandalorian? I have spoken ;-)
|
||||
if (i.ver.includes("0.14.0-b26")) vcn = "This is the way";
|
||||
if (i.ver.includes("0.14.0-b2")) vcn = "This is the way"; // recently watched The Mandalorian? I have spoken ;-)
|
||||
if (i.ver.includes("0.14.0-b15.22")) vcn = "Lupo";
|
||||
cn += `v${i.ver} <i>"${vcn}"</i><p>(WLEDMM_${i.ver} ${i.rel}.bin)</p><p><em>build ${i.vid}</em></p><table>
|
||||
${urows}
|
||||
|
||||
@@ -99,10 +99,20 @@ void sendHuePoll();
|
||||
void onHueData(void* arg, AsyncClient* client, void *data, size_t len);
|
||||
|
||||
//improv.cpp
|
||||
enum ImprovRPCType {
|
||||
Command_Wifi = 0x01,
|
||||
Request_State = 0x02,
|
||||
Request_Info = 0x03,
|
||||
Request_Scan = 0x04
|
||||
};
|
||||
|
||||
void handleImprovPacket();
|
||||
void sendImprovRPCResult(ImprovRPCType type, uint8_t n_strings = 0, const char **strings = nullptr);
|
||||
void sendImprovStateResponse(uint8_t state, bool error = false);
|
||||
void sendImprovInfoResponse();
|
||||
void sendImprovRPCResponse(uint8_t commandId);
|
||||
void startImprovWifiScan();
|
||||
void handleImprovWifiScan();
|
||||
void sendImprovIPRPCResult(ImprovRPCType type);
|
||||
|
||||
//ir.cpp
|
||||
void applyRepeatActions();
|
||||
@@ -165,9 +175,11 @@ void handleTransitions();
|
||||
void handleNightlight();
|
||||
byte __attribute__((pure)) scaledBri(byte in); // WLEDMM: added attribute pure
|
||||
|
||||
#ifdef WLED_ENABLE_LOXONE
|
||||
//lx_parser.cpp
|
||||
bool parseLx(int lxValue, byte* rgbw);
|
||||
void parseLxJson(int lxValue, byte segId, bool secondary);
|
||||
#endif
|
||||
|
||||
//mqtt.cpp
|
||||
bool initMqtt();
|
||||
@@ -222,7 +234,7 @@ bool handleSet(AsyncWebServerRequest *request, const String& req, bool apply=tru
|
||||
|
||||
//udp.cpp
|
||||
void notify(byte callMode, bool followUp=false);
|
||||
uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, byte *buffer, uint8_t bri=255, bool isRGBW=false);
|
||||
uint8_t realtimeBroadcast(uint8_t type, IPAddress client, uint16_t length, uint8_t *buffer, uint8_t bri=255, bool isRGBW=false);
|
||||
void realtimeLock(uint32_t timeoutMs, byte md = REALTIME_MODE_GENERIC);
|
||||
void exitRealtime();
|
||||
void handleNotifications();
|
||||
|
||||
@@ -43,44 +43,44 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()=====";
|
||||
// Autogenerated from wled00/data/update.htm, do not edit!!
|
||||
const uint16_t PAGE_update_length = 607;
|
||||
const uint8_t PAGE_update[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x75, 0x53, 0xd1, 0x6e, 0xd4, 0x30,
|
||||
0x10, 0x7c, 0xcf, 0x57, 0x18, 0x3f, 0xdd, 0x49, 0x9c, 0x53, 0x0a, 0x42, 0xa2, 0x24, 0x29, 0x3a,
|
||||
0x5a, 0x21, 0x24, 0xaa, 0x56, 0x6a, 0x0b, 0xe2, 0x09, 0x39, 0xf1, 0x26, 0x31, 0xe7, 0xd8, 0xa9,
|
||||
0xbd, 0xb9, 0xd3, 0x09, 0xf5, 0xdf, 0x59, 0x3b, 0x77, 0x05, 0xa9, 0xf0, 0x12, 0xc5, 0xc9, 0xec,
|
||||
0x64, 0x76, 0x66, 0x52, 0xbc, 0xb8, 0xb8, 0xfe, 0x78, 0xf7, 0xfd, 0xe6, 0x92, 0xf5, 0x38, 0x98,
|
||||
0xaa, 0x38, 0x5c, 0x41, 0xaa, 0xaa, 0x18, 0x00, 0x25, 0x6b, 0x9c, 0x45, 0xb0, 0x58, 0xf2, 0x9d,
|
||||
0x56, 0xd8, 0x97, 0x0a, 0xb6, 0xba, 0x81, 0x55, 0x3a, 0x70, 0x66, 0xe5, 0x00, 0x25, 0xdf, 0x6a,
|
||||
0xd8, 0x8d, 0xce, 0x23, 0xaf, 0xb2, 0x02, 0x35, 0x1a, 0xa8, 0xbe, 0x7d, 0xb9, 0xbc, 0x60, 0xf7,
|
||||
0xa3, 0x92, 0x08, 0x45, 0x3e, 0x3f, 0x2a, 0x42, 0xe3, 0xf5, 0x88, 0x55, 0xd6, 0x4e, 0xb6, 0x41,
|
||||
0xed, 0x2c, 0x5b, 0x2f, 0x96, 0xbf, 0x76, 0xda, 0x2a, 0xb7, 0x13, 0xbd, 0x0e, 0xe8, 0xfc, 0x5e,
|
||||
0xd4, 0xb2, 0xd9, 0x2c, 0x96, 0x8f, 0x4f, 0x90, 0x7b, 0x82, 0x28, 0xd7, 0x4c, 0x03, 0x29, 0x10,
|
||||
0x1d, 0xe0, 0xa5, 0x81, 0x78, 0xbb, 0xde, 0x7f, 0x56, 0x0b, 0x3e, 0xb5, 0x7c, 0x29, 0x02, 0xee,
|
||||
0x0d, 0x08, 0xa5, 0xc3, 0x68, 0xe4, 0xbe, 0xe4, 0xd6, 0x59, 0xe0, 0x2f, 0xff, 0x3b, 0x32, 0x84,
|
||||
0xee, 0xf9, 0x4c, 0x6d, 0x5c, 0xb3, 0xe1, 0x8f, 0x59, 0x91, 0x1f, 0x24, 0x1e, 0xa4, 0xb2, 0xe0,
|
||||
0x9b, 0x92, 0xe7, 0x01, 0x10, 0xb5, 0xed, 0x42, 0x1e, 0xc4, 0xcf, 0x70, 0x3e, 0x96, 0xef, 0x78,
|
||||
0xf5, 0x17, 0x32, 0x52, 0x55, 0xd9, 0x07, 0x3d, 0x44, 0x03, 0xd8, 0xe4, 0xcd, 0x82, 0xcf, 0xf4,
|
||||
0x4d, 0x08, 0x7c, 0xf9, 0x9e, 0x90, 0x09, 0x51, 0xe4, 0xb3, 0xa5, 0xb5, 0x53, 0x7b, 0xe6, 0xac,
|
||||
0x71, 0x52, 0x95, 0xfc, 0x13, 0xe0, 0xd7, 0xc5, 0x92, 0xe8, 0xfa, 0xd3, 0x2a, 0xbb, 0x72, 0xce,
|
||||
0x5e, 0x39, 0xc5, 0x92, 0x75, 0xb7, 0xae, 0xc5, 0x9d, 0xf4, 0xf0, 0xe4, 0x21, 0x21, 0x8a, 0xd6,
|
||||
0xf9, 0x81, 0x51, 0x26, 0xbd, 0xa3, 0xd9, 0x9b, 0xeb, 0xdb, 0x3b, 0xce, 0x64, 0xb2, 0x89, 0x44,
|
||||
0x4e, 0x09, 0xc7, 0x99, 0xa6, 0x57, 0xe4, 0x0b, 0xcb, 0x80, 0x1c, 0xdc, 0x8f, 0x14, 0xce, 0x30,
|
||||
0x19, 0xd4, 0xa3, 0xf4, 0x98, 0xc7, 0xf9, 0x15, 0xc1, 0x24, 0x27, 0x05, 0x61, 0xaa, 0x07, 0x4d,
|
||||
0xa9, 0xde, 0x27, 0x01, 0x61, 0x94, 0x96, 0x35, 0x46, 0x86, 0x50, 0xf2, 0xa0, 0x47, 0x5e, 0x9d,
|
||||
0x88, 0x57, 0x6f, 0xc4, 0xc9, 0xaa, 0x3e, 0x7d, 0x2b, 0x5e, 0x9f, 0x44, 0x67, 0x08, 0x40, 0xea,
|
||||
0x7d, 0x75, 0xe1, 0x76, 0x49, 0x3d, 0xc3, 0x1e, 0x98, 0xa1, 0x6f, 0x06, 0x64, 0x1e, 0x0c, 0xc8,
|
||||
0x00, 0x67, 0xac, 0x90, 0x2c, 0xeb, 0x3d, 0xb4, 0x25, 0xef, 0x11, 0xc7, 0x70, 0x96, 0xe7, 0x9d,
|
||||
0xc6, 0x7e, 0xaa, 0x45, 0xe3, 0x86, 0xfc, 0xb0, 0xe0, 0x64, 0x20, 0xe4, 0x71, 0xc9, 0xfc, 0x30,
|
||||
0x16, 0x38, 0x43, 0xe9, 0x29, 0xa9, 0x92, 0xff, 0xa8, 0x8d, 0xb4, 0x1b, 0xd2, 0xa3, 0x87, 0x8e,
|
||||
0x65, 0xc9, 0xfe, 0x23, 0x11, 0x3d, 0x11, 0xa1, 0xd7, 0x60, 0x54, 0x10, 0xda, 0x1d, 0x78, 0x8f,
|
||||
0x14, 0xcf, 0xb8, 0x45, 0xd8, 0x76, 0xe7, 0xc9, 0xf9, 0xb2, 0x25, 0x91, 0xab, 0xf0, 0x30, 0x91,
|
||||
0x9b, 0xb1, 0x9f, 0xb9, 0x4c, 0x6b, 0x14, 0xda, 0x8e, 0x13, 0xb2, 0xd9, 0xa2, 0x56, 0x1b, 0x38,
|
||||
0x76, 0xf9, 0x68, 0xa4, 0x87, 0x87, 0x49, 0x7b, 0x50, 0x33, 0xba, 0x9e, 0x10, 0xa9, 0x8e, 0x33,
|
||||
0x7c, 0xb6, 0x8e, 0xc8, 0xe6, 0x70, 0x5e, 0x14, 0xf9, 0xfc, 0xfa, 0x1f, 0xd0, 0xf9, 0x10, 0xfd,
|
||||
0x6e, 0x8c, 0x6e, 0x36, 0x25, 0x5f, 0x47, 0xbb, 0xd7, 0xd4, 0xf2, 0x3f, 0x43, 0x29, 0x97, 0xaa,
|
||||
0x50, 0x7a, 0x9b, 0xa5, 0xf8, 0x62, 0x47, 0x89, 0xa6, 0x4a, 0xec, 0x54, 0x3c, 0x21, 0x04, 0x81,
|
||||
0x13, 0xf9, 0x4d, 0xda, 0x96, 0x29, 0xc7, 0xac, 0x43, 0xca, 0xcb, 0xd1, 0xc1, 0x79, 0xd2, 0xda,
|
||||
0x7a, 0x08, 0x7d, 0x8a, 0x64, 0x94, 0x1d, 0xb0, 0xb3, 0x65, 0x91, 0x13, 0x5f, 0x5c, 0x37, 0x16,
|
||||
0x2e, 0xb6, 0x2f, 0xfe, 0xd6, 0xbf, 0x01, 0x81, 0x67, 0xfb, 0x6d, 0xec, 0x03, 0x00, 0x00
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0x75, 0x53, 0xd1, 0x6e, 0xd3, 0x30,
|
||||
0x14, 0x7d, 0xcf, 0x57, 0x78, 0x7e, 0x6a, 0x25, 0xea, 0x6c, 0x03, 0x09, 0x31, 0x92, 0x0c, 0x95,
|
||||
0x4d, 0x08, 0x89, 0x69, 0x95, 0xb6, 0x81, 0x78, 0x42, 0x4e, 0x7c, 0xd3, 0x98, 0x3a, 0x76, 0x66,
|
||||
0xdf, 0xb4, 0xaa, 0xd0, 0xfe, 0x9d, 0x6b, 0xa7, 0x1d, 0x48, 0x83, 0x97, 0x28, 0x4e, 0xce, 0x3d,
|
||||
0x39, 0xf7, 0x9c, 0x93, 0xe2, 0xe4, 0xea, 0xf6, 0xe3, 0xfd, 0xf7, 0xd5, 0x35, 0xeb, 0xb0, 0x37,
|
||||
0x55, 0x71, 0xb8, 0x82, 0x54, 0x55, 0xd1, 0x03, 0x4a, 0xd6, 0x38, 0x8b, 0x60, 0xb1, 0xe4, 0x3b,
|
||||
0xad, 0xb0, 0x2b, 0x15, 0x6c, 0x75, 0x03, 0x8b, 0x74, 0xe0, 0xcc, 0xca, 0x1e, 0x4a, 0xbe, 0xd5,
|
||||
0xb0, 0x1b, 0x9c, 0x47, 0x5e, 0x65, 0x05, 0x6a, 0x34, 0x50, 0x7d, 0xfb, 0x72, 0x7d, 0xc5, 0x1e,
|
||||
0x06, 0x25, 0x11, 0x8a, 0x7c, 0x7a, 0x54, 0x84, 0xc6, 0xeb, 0x01, 0xab, 0xac, 0x1d, 0x6d, 0x83,
|
||||
0xda, 0x59, 0xb6, 0x9c, 0xcd, 0x7f, 0xed, 0xb4, 0x55, 0x6e, 0x27, 0x3a, 0x1d, 0xd0, 0xf9, 0xbd,
|
||||
0xa8, 0x65, 0xb3, 0x99, 0xcd, 0x9f, 0x9e, 0x21, 0x0f, 0x04, 0x51, 0xae, 0x19, 0x7b, 0x52, 0x20,
|
||||
0xd6, 0x80, 0xd7, 0x06, 0xe2, 0xed, 0x72, 0xff, 0x59, 0xcd, 0xf8, 0xd8, 0xf2, 0xb9, 0x08, 0xb8,
|
||||
0x37, 0x20, 0x94, 0x0e, 0x83, 0x91, 0xfb, 0x92, 0x5b, 0x67, 0x81, 0xbf, 0xfa, 0xef, 0x48, 0x1f,
|
||||
0xd6, 0x2f, 0x67, 0x6a, 0xe3, 0x9a, 0x0d, 0x7f, 0xca, 0x8a, 0xfc, 0x20, 0xf1, 0x20, 0x95, 0x05,
|
||||
0xdf, 0x94, 0x3c, 0x0f, 0x80, 0xa8, 0xed, 0x3a, 0xe4, 0x41, 0xfc, 0x0c, 0x97, 0x43, 0xf9, 0x8e,
|
||||
0x57, 0x7f, 0x21, 0x23, 0x55, 0x95, 0x7d, 0xd0, 0x7d, 0x34, 0x80, 0x8d, 0xde, 0xcc, 0xf8, 0x44,
|
||||
0xdf, 0x84, 0xc0, 0xe7, 0xef, 0x09, 0x99, 0x10, 0x45, 0x3e, 0x59, 0x5a, 0x3b, 0xb5, 0x67, 0xce,
|
||||
0x1a, 0x27, 0x55, 0xc9, 0x3f, 0x01, 0x7e, 0x9d, 0xcd, 0x89, 0xae, 0x3b, 0xaf, 0xb2, 0x1b, 0xe7,
|
||||
0xec, 0x8d, 0x53, 0x2c, 0x59, 0x77, 0xe7, 0x5a, 0xdc, 0x49, 0x0f, 0xcf, 0x1e, 0x12, 0xa2, 0x68,
|
||||
0x9d, 0xef, 0x19, 0x65, 0xd2, 0x39, 0x9a, 0x5d, 0xdd, 0xde, 0xdd, 0x73, 0x26, 0x93, 0x4d, 0x24,
|
||||
0x72, 0x4c, 0x38, 0xce, 0x34, 0xbd, 0x22, 0x5f, 0x58, 0x06, 0xe4, 0xe0, 0x7e, 0xa0, 0x70, 0xfa,
|
||||
0xd1, 0xa0, 0x1e, 0xa4, 0xc7, 0x3c, 0xce, 0x2f, 0x08, 0x26, 0x39, 0x29, 0x08, 0x63, 0xdd, 0x6b,
|
||||
0x4a, 0xf5, 0x21, 0x09, 0x08, 0x83, 0xb4, 0xac, 0x31, 0x32, 0x84, 0x92, 0x07, 0x3d, 0xf0, 0xea,
|
||||
0x54, 0x9c, 0xbd, 0x11, 0xa7, 0x8b, 0xfa, 0xfc, 0xad, 0x78, 0x7d, 0x16, 0x9d, 0x21, 0x00, 0xa9,
|
||||
0xf7, 0xd5, 0x95, 0xdb, 0x25, 0xf5, 0x0c, 0x3b, 0x60, 0x86, 0xbe, 0x19, 0x90, 0x79, 0x30, 0x20,
|
||||
0x03, 0x5c, 0xb0, 0x42, 0xb2, 0xac, 0xf3, 0xd0, 0x96, 0xbc, 0x43, 0x1c, 0xc2, 0x45, 0x9e, 0xaf,
|
||||
0x35, 0x76, 0x63, 0x2d, 0x1a, 0xd7, 0xe7, 0x87, 0x05, 0x47, 0x03, 0x21, 0x8f, 0x4b, 0xe6, 0x87,
|
||||
0xb1, 0xc0, 0x19, 0x4a, 0x4f, 0x49, 0x95, 0xfc, 0x47, 0x6d, 0xa4, 0xdd, 0x90, 0x1e, 0xdd, 0xaf,
|
||||
0x59, 0x96, 0xec, 0x3f, 0x12, 0xd1, 0x13, 0x11, 0x3a, 0x0d, 0x46, 0x05, 0xa1, 0xdd, 0x81, 0xf7,
|
||||
0x48, 0xf1, 0x82, 0x5b, 0x84, 0xed, 0xfa, 0x32, 0x39, 0x5f, 0xb6, 0x24, 0x72, 0x11, 0x1e, 0x47,
|
||||
0x72, 0x33, 0xf6, 0x33, 0x97, 0x69, 0x8d, 0x42, 0xdb, 0x61, 0x44, 0x36, 0x59, 0xd4, 0x6a, 0x03,
|
||||
0xc7, 0x2e, 0x1f, 0x8d, 0xf4, 0xf0, 0x38, 0x6a, 0x0f, 0x6a, 0x42, 0xd7, 0x23, 0x22, 0xd5, 0x71,
|
||||
0x82, 0x4f, 0xd6, 0x11, 0xd9, 0x14, 0xce, 0x49, 0x91, 0x4f, 0xaf, 0xff, 0x01, 0x9d, 0x0e, 0xd1,
|
||||
0xef, 0xc6, 0xe8, 0x66, 0x53, 0xf2, 0x65, 0xb4, 0x7b, 0x49, 0x2d, 0xff, 0x33, 0x94, 0x72, 0xa9,
|
||||
0x0a, 0xa5, 0xb7, 0x59, 0x8a, 0x2f, 0x76, 0x94, 0x68, 0xaa, 0xc4, 0x4e, 0xc5, 0x13, 0x42, 0x10,
|
||||
0x38, 0x91, 0xaf, 0xd2, 0xb6, 0x4c, 0x39, 0x66, 0x1d, 0x52, 0x5e, 0x8e, 0x0e, 0xce, 0x93, 0xd6,
|
||||
0xd6, 0x43, 0xe8, 0x52, 0x24, 0x83, 0x5c, 0x03, 0xbb, 0x98, 0x17, 0x39, 0xf1, 0xc5, 0x75, 0x63,
|
||||
0xe1, 0x62, 0xfb, 0xe2, 0x6f, 0xfd, 0x1b, 0x89, 0xb3, 0x5d, 0xb6, 0xec, 0x03, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1574,164 +1574,164 @@ const uint8_t PAGE_settings_time[] PROGMEM = {
|
||||
|
||||
|
||||
// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
|
||||
const uint16_t PAGE_settings_sec_length = 2494;
|
||||
const uint16_t PAGE_settings_sec_length = 2495;
|
||||
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xad, 0x58, 0xff, 0x72, 0xdb, 0xb8,
|
||||
0x11, 0xfe, 0x5f, 0x4f, 0x01, 0x21, 0x33, 0x39, 0xb1, 0xa1, 0x29, 0xc7, 0x49, 0x33, 0x89, 0x23,
|
||||
0x2a, 0xb5, 0x63, 0xe7, 0xe2, 0x8e, 0x1d, 0x7b, 0x22, 0xe5, 0xd2, 0xce, 0xf5, 0x26, 0x03, 0x91,
|
||||
0x90, 0x88, 0x88, 0x24, 0x78, 0x00, 0x68, 0x45, 0xcd, 0xdd, 0x7b, 0xf4, 0x69, 0xfa, 0x30, 0x7d,
|
||||
0x92, 0x7e, 0x0b, 0x92, 0x92, 0xec, 0x38, 0xb9, 0xc9, 0xb4, 0x7f, 0xd8, 0x12, 0x09, 0x60, 0x7f,
|
||||
0x7c, 0xbb, 0xfb, 0xed, 0x42, 0xa3, 0xfe, 0xc9, 0xe5, 0xcb, 0xe9, 0xdf, 0xaf, 0x4e, 0x59, 0xe6,
|
||||
0x8a, 0x7c, 0x3c, 0xa2, 0xff, 0x2c, 0x17, 0xe5, 0x22, 0xe6, 0xb2, 0xe4, 0x78, 0x96, 0x22, 0x1d,
|
||||
0x8f, 0x0a, 0xe9, 0x04, 0x2b, 0x45, 0x21, 0x63, 0x7e, 0xad, 0xe4, 0xaa, 0xd2, 0xc6, 0x71, 0x96,
|
||||
0xe8, 0xd2, 0xc9, 0xd2, 0xc5, 0x7c, 0xa5, 0x52, 0x97, 0xc5, 0x7f, 0xde, 0xdf, 0xe7, 0xe3, 0x5e,
|
||||
0xb3, 0xb5, 0x77, 0x6b, 0x2d, 0x95, 0xd7, 0x2a, 0x91, 0x7b, 0xfe, 0x21, 0x54, 0xa5, 0x72, 0x4a,
|
||||
0xe4, 0x7b, 0x36, 0x11, 0xb9, 0x8c, 0x1f, 0x86, 0x85, 0xf8, 0xa4, 0x8a, 0xba, 0xd8, 0x3c, 0xd7,
|
||||
0x56, 0x1a, 0xff, 0x20, 0x66, 0x78, 0x2e, 0x35, 0x67, 0xbd, 0x5b, 0xaa, 0x5b, 0x83, 0x92, 0x4c,
|
||||
0x18, 0x2b, 0xa1, 0xa4, 0x76, 0xf3, 0xbd, 0xa7, 0x78, 0xeb, 0x94, 0xcb, 0xe5, 0xf8, 0x42, 0xd9,
|
||||
0x84, 0x4d, 0xa4, 0x73, 0xaa, 0x5c, 0xd8, 0xd1, 0xb0, 0x79, 0x39, 0xb2, 0x89, 0x51, 0x95, 0x1b,
|
||||
0xf7, 0xae, 0x85, 0x61, 0xb9, 0x4e, 0x54, 0x15, 0x3a, 0x55, 0x48, 0x5d, 0xbb, 0x30, 0x8d, 0x53,
|
||||
0x9d, 0xd4, 0x05, 0xcc, 0x0d, 0xb1, 0x10, 0xf7, 0x1f, 0x3e, 0x9f, 0xd7, 0x65, 0xe2, 0x94, 0x2e,
|
||||
0xd9, 0xeb, 0x41, 0xf0, 0x79, 0xa5, 0xca, 0x54, 0xaf, 0x22, 0x5d, 0xc9, 0x72, 0xc0, 0x33, 0xe7,
|
||||
0x2a, 0x7b, 0x38, 0x1c, 0x16, 0x45, 0xb4, 0x2c, 0x75, 0xb4, 0xca, 0x65, 0x1a, 0x2d, 0xe4, 0x70,
|
||||
0x2e, 0x85, 0xab, 0x8d, 0xb4, 0x43, 0xdb, 0xaa, 0x1d, 0xde, 0xb3, 0x32, 0xa9, 0x8d, 0x72, 0xeb,
|
||||
0xbd, 0xee, 0x15, 0x0f, 0x7e, 0xdf, 0xc8, 0x3d, 0xbe, 0x2d, 0x77, 0x73, 0x90, 0x87, 0xfc, 0x83,
|
||||
0x95, 0xf9, 0x7c, 0x77, 0xf7, 0xbb, 0x2f, 0x76, 0xd7, 0x55, 0x2a, 0x9c, 0xbc, 0x6b, 0xef, 0xe2,
|
||||
0x2c, 0x1d, 0xc8, 0xe0, 0xb3, 0x91, 0xb0, 0xa7, 0x64, 0x64, 0x9c, 0x3b, 0xcd, 0x25, 0x39, 0x77,
|
||||
0xbc, 0xf6, 0x4b, 0xdb, 0xad, 0xca, 0x5e, 0xce, 0x3e, 0xee, 0x6c, 0x96, 0xf7, 0xef, 0x73, 0x3d,
|
||||
0xfb, 0x28, 0x13, 0xc7, 0xe3, 0xd8, 0xad, 0x2b, 0xa9, 0xe7, 0xf4, 0xae, 0x7f, 0x64, 0x8c, 0x58,
|
||||
0x47, 0xca, 0xfa, 0xcf, 0x1b, 0x12, 0x72, 0x2d, 0xd2, 0xbf, 0x4e, 0x06, 0x32, 0x74, 0x71, 0x7f,
|
||||
0x3f, 0xf8, 0x9c, 0x4b, 0xc7, 0x74, 0x9c, 0x46, 0x89, 0x01, 0x1c, 0xb2, 0x55, 0x3b, 0xe0, 0x0d,
|
||||
0xf2, 0x3c, 0x78, 0xae, 0x23, 0x78, 0x79, 0xe4, 0x9c, 0x51, 0xb3, 0xda, 0x49, 0x2c, 0x98, 0x84,
|
||||
0x87, 0x32, 0x08, 0x6f, 0xbf, 0x27, 0xdd, 0xf0, 0xcd, 0xc9, 0x4f, 0x6e, 0xf8, 0x51, 0x5c, 0x8b,
|
||||
0x4e, 0xc0, 0x17, 0x1b, 0x85, 0x5d, 0x97, 0x10, 0xe1, 0x82, 0x30, 0x8d, 0x66, 0x3a, 0x5d, 0x47,
|
||||
0xa2, 0x02, 0x3e, 0xe9, 0xcb, 0x4c, 0xe5, 0xe9, 0x40, 0xd3, 0x7e, 0x91, 0xa6, 0xa7, 0xd7, 0xb0,
|
||||
0xe2, 0x5c, 0x59, 0xe4, 0xa3, 0x34, 0x03, 0x4e, 0x36, 0xf3, 0x70, 0x10, 0xc4, 0xe3, 0xcf, 0x3f,
|
||||
0x4a, 0xf7, 0xd3, 0x20, 0x08, 0x21, 0xf3, 0x38, 0x59, 0xbe, 0x52, 0xb9, 0xa4, 0x34, 0x1b, 0x10,
|
||||
0x82, 0x7c, 0x96, 0x2c, 0x93, 0xf9, 0x82, 0x07, 0x5f, 0x5d, 0xad, 0x10, 0x6d, 0xe9, 0x10, 0xd4,
|
||||
0xe0, 0xf7, 0xbb, 0xf5, 0x48, 0x63, 0xb4, 0x81, 0x7b, 0xd0, 0x83, 0x62, 0xb0, 0x3a, 0x97, 0x51,
|
||||
0xae, 0x17, 0x03, 0x7e, 0x4a, 0xef, 0x59, 0x0b, 0x1e, 0x22, 0xce, 0xe6, 0x10, 0xed, 0x61, 0x40,
|
||||
0xf6, 0x1b, 0xc0, 0x75, 0xde, 0xbe, 0x07, 0xfa, 0x38, 0x38, 0x57, 0x8b, 0xda, 0x08, 0x8f, 0x76,
|
||||
0x03, 0x03, 0x9b, 0x0b, 0x45, 0x59, 0xf7, 0x8f, 0xf2, 0xac, 0x4c, 0x74, 0x51, 0x01, 0x74, 0xc9,
|
||||
0x2a, 0xb1, 0x90, 0x0c, 0x29, 0x21, 0xfa, 0xc8, 0x85, 0x9d, 0x00, 0xd9, 0x4c, 0xaf, 0xa6, 0x5a,
|
||||
0x58, 0xd7, 0xc4, 0xe8, 0x61, 0xf0, 0x99, 0xd2, 0x5f, 0xc7, 0xde, 0x0b, 0x47, 0x0b, 0x3e, 0x2c,
|
||||
0xaa, 0x84, 0xc9, 0xaf, 0xa7, 0x17, 0xe7, 0xb1, 0x84, 0x2f, 0x49, 0x2e, 0xac, 0x25, 0x47, 0xc8,
|
||||
0xab, 0x81, 0x7b, 0xd1, 0xba, 0x72, 0xc8, 0x49, 0x1a, 0xa2, 0x90, 0xe4, 0x52, 0x98, 0x69, 0x53,
|
||||
0x3c, 0x83, 0xb6, 0x88, 0x7c, 0x6c, 0xdc, 0x1a, 0x4e, 0x8a, 0x52, 0x15, 0xde, 0xde, 0x98, 0x97,
|
||||
0xba, 0x84, 0x67, 0xed, 0x8e, 0x18, 0x70, 0x75, 0x87, 0x06, 0x9d, 0x81, 0x48, 0xec, 0x5d, 0x7d,
|
||||
0x46, 0x16, 0xfa, 0x9a, 0x12, 0xc3, 0x2b, 0x02, 0xb0, 0x07, 0xcf, 0xf6, 0xf7, 0x77, 0xdc, 0xa9,
|
||||
0x2b, 0x02, 0x8d, 0x62, 0x41, 0xfe, 0x74, 0xce, 0x94, 0x72, 0xc5, 0xfe, 0x76, 0x71, 0xfe, 0x1a,
|
||||
0xa5, 0xf9, 0x56, 0xfe, 0x5a, 0x4b, 0xeb, 0x9e, 0x7f, 0x23, 0xf0, 0x3b, 0xaa, 0xb7, 0xe8, 0xb8,
|
||||
0x4c, 0x59, 0x68, 0xb7, 0x15, 0x22, 0x25, 0xa7, 0xc8, 0xbb, 0xd0, 0xbf, 0xb1, 0x0e, 0x65, 0x6d,
|
||||
0xc7, 0xf1, 0x63, 0xb2, 0x22, 0xf8, 0x66, 0x9c, 0xb7, 0x72, 0xe5, 0xae, 0x60, 0x49, 0x32, 0x92,
|
||||
0x65, 0xd8, 0xef, 0x04, 0x34, 0x05, 0x7c, 0x75, 0x39, 0x99, 0x22, 0xc3, 0x87, 0x8d, 0x43, 0x88,
|
||||
0x01, 0x79, 0x52, 0x7a, 0x4f, 0x5e, 0x69, 0x53, 0x9c, 0x20, 0x92, 0xcf, 0xdb, 0xaa, 0x2c, 0xdb,
|
||||
0xa4, 0x1e, 0x70, 0x8a, 0x2f, 0x12, 0x25, 0xa2, 0x84, 0xb1, 0x3f, 0xef, 0xff, 0x12, 0x36, 0xa8,
|
||||
0xd3, 0x5a, 0x19, 0xe0, 0xfd, 0xb5, 0xc8, 0x6b, 0xb0, 0x24, 0x0f, 0xfb, 0x0f, 0xb7, 0x90, 0x25,
|
||||
0x99, 0x4c, 0x96, 0x6f, 0xea, 0x62, 0x5b, 0xe7, 0xfd, 0x41, 0x5f, 0x92, 0x0b, 0xd1, 0x52, 0xae,
|
||||
0x23, 0x84, 0x2a, 0xc9, 0x06, 0xc3, 0x9f, 0xf7, 0xf7, 0x9e, 0xfd, 0x32, 0x0c, 0x50, 0xec, 0x3f,
|
||||
0xf3, 0x63, 0xd8, 0x6b, 0x2b, 0x91, 0x50, 0x09, 0x4e, 0xc5, 0x0c, 0xff, 0x4f, 0xc1, 0xe5, 0x70,
|
||||
0x91, 0x4f, 0x32, 0x35, 0x77, 0xf8, 0x7c, 0x09, 0x72, 0x37, 0x3a, 0xc7, 0xb7, 0xa3, 0x9c, 0x9e,
|
||||
0xaf, 0x04, 0x28, 0x9b, 0xde, 0x8b, 0xca, 0x9e, 0xeb, 0x64, 0x49, 0x47, 0xc0, 0xdf, 0xbe, 0x88,
|
||||
0x27, 0xad, 0xa4, 0x2b, 0x64, 0xe8, 0xbb, 0xaa, 0xfd, 0x72, 0xa2, 0x57, 0xa5, 0x97, 0x8b, 0x80,
|
||||
0xf0, 0xd7, 0xba, 0xa0, 0x0d, 0x60, 0x17, 0xbd, 0x3a, 0x97, 0x5e, 0x81, 0xff, 0xee, 0x77, 0xfb,
|
||||
0x6f, 0x6f, 0xd5, 0x22, 0xdb, 0xbc, 0x6e, 0xcf, 0x9e, 0x21, 0x50, 0x86, 0x5e, 0x9e, 0x48, 0xaa,
|
||||
0x00, 0xfe, 0x0b, 0x92, 0x38, 0xc9, 0xeb, 0x54, 0xda, 0xc1, 0xc6, 0xbb, 0x20, 0xf8, 0xed, 0xb7,
|
||||
0xf6, 0x09, 0xe5, 0x4a, 0x9f, 0x27, 0x72, 0x2e, 0xea, 0xdc, 0xa1, 0xe8, 0x51, 0x0b, 0x3b, 0x65,
|
||||
0x72, 0xb3, 0xc6, 0x01, 0x95, 0xbc, 0xc5, 0x34, 0xe0, 0xde, 0xb2, 0x49, 0x20, 0x4e, 0x9c, 0xff,
|
||||
0x81, 0x3f, 0x90, 0x44, 0xad, 0x77, 0xed, 0x08, 0x1e, 0x0c, 0xf8, 0xfb, 0xf3, 0xd3, 0x13, 0x90,
|
||||
0xa8, 0x4d, 0x5f, 0x70, 0xd4, 0x0d, 0x76, 0xdb, 0x34, 0xd8, 0xd1, 0x37, 0x41, 0xf2, 0x71, 0x0a,
|
||||
0xe3, 0x21, 0x36, 0xb5, 0xcc, 0x8e, 0xd6, 0xe3, 0xcb, 0x06, 0xa6, 0x6a, 0xa7, 0x13, 0x9d, 0xdf,
|
||||
0xbf, 0x3f, 0xf0, 0xed, 0x68, 0x3f, 0x1c, 0xf8, 0x7e, 0x15, 0xd3, 0x8e, 0x7c, 0xe2, 0xb4, 0x01,
|
||||
0x82, 0xa4, 0xfc, 0xcc, 0xc9, 0x82, 0xd2, 0x3a, 0x39, 0xab, 0xb8, 0x77, 0xb5, 0xd9, 0x86, 0xf3,
|
||||
0x45, 0x05, 0x1e, 0x21, 0x77, 0xd8, 0x85, 0x4e, 0x65, 0xc4, 0xae, 0x50, 0xb1, 0x56, 0x32, 0x49,
|
||||
0x71, 0x64, 0x64, 0x1b, 0x3b, 0xbb, 0x02, 0x53, 0x84, 0x37, 0x24, 0xda, 0x9b, 0x12, 0x43, 0x2f,
|
||||
0x2d, 0x08, 0x68, 0x97, 0x67, 0x79, 0x12, 0xff, 0xc2, 0x37, 0x40, 0xf4, 0x3f, 0xfe, 0xc0, 0x2f,
|
||||
0x1f, 0x72, 0xb8, 0xbb, 0x6d, 0x5e, 0x43, 0x1b, 0x7d, 0xb4, 0x2f, 0xaa, 0xf8, 0x09, 0xf7, 0xf8,
|
||||
0xf6, 0x46, 0xc3, 0xb6, 0xeb, 0x8e, 0x3c, 0x37, 0x8c, 0xff, 0xa2, 0x0a, 0xea, 0xdf, 0xac, 0x36,
|
||||
0x39, 0x8a, 0xdc, 0xd3, 0x45, 0x62, 0xc1, 0xa1, 0xcf, 0xb1, 0xd1, 0x6f, 0x18, 0x0d, 0x9b, 0x79,
|
||||
0x83, 0xc8, 0x1c, 0x1c, 0x49, 0x9a, 0x63, 0x0e, 0xb4, 0xd0, 0xdb, 0xe7, 0xa8, 0x8b, 0x1e, 0x53,
|
||||
0x78, 0xa6, 0x6f, 0x1f, 0x2c, 0x6f, 0xe7, 0x91, 0xc9, 0x9c, 0x33, 0x4c, 0x03, 0x99, 0xc6, 0x4a,
|
||||
0xa5, 0x2d, 0x0d, 0x07, 0xa9, 0xba, 0x66, 0x9e, 0x54, 0x62, 0x70, 0x1c, 0xe0, 0x58, 0xdd, 0x7c,
|
||||
0x97, 0xc9, 0xbc, 0x3a, 0xa6, 0x51, 0x05, 0x81, 0x73, 0x88, 0x06, 0xb5, 0x9b, 0x98, 0x37, 0x0f,
|
||||
0x1c, 0x5a, 0x93, 0x5c, 0x25, 0xcb, 0x98, 0xbf, 0x26, 0xb5, 0x2f, 0x46, 0xc3, 0x66, 0x01, 0xa6,
|
||||
0x41, 0xc4, 0xf8, 0xee, 0x33, 0xbd, 0xcd, 0xa1, 0x63, 0x3a, 0x44, 0x15, 0xb4, 0x3d, 0x77, 0xe3,
|
||||
0x84, 0xad, 0x67, 0x85, 0x82, 0x8d, 0x13, 0x71, 0x2d, 0xb7, 0x5b, 0x32, 0xd3, 0x89, 0xcf, 0x0e,
|
||||
0xc6, 0xbd, 0x49, 0x3b, 0x39, 0xb0, 0xfb, 0xec, 0x9d, 0xef, 0xf3, 0x94, 0x9f, 0x75, 0x05, 0x6c,
|
||||
0x0e, 0xc6, 0xdd, 0x58, 0xc3, 0xae, 0xce, 0xde, 0x1c, 0xb2, 0x91, 0x2a, 0xab, 0xda, 0xb5, 0xa2,
|
||||
0x2b, 0x38, 0xb7, 0xd2, 0x26, 0xe5, 0x1e, 0x24, 0xac, 0x6f, 0xe6, 0x26, 0xff, 0xdd, 0xaa, 0x7f,
|
||||
0xe2, 0xeb, 0x63, 0x80, 0x25, 0x3e, 0x21, 0xcf, 0x17, 0x98, 0xca, 0xfc, 0x93, 0x2a, 0x77, 0x9e,
|
||||
0x74, 0x89, 0xb2, 0xa1, 0x4c, 0x8e, 0xf9, 0x86, 0x38, 0x88, 0x09, 0x03, 0xc8, 0xaa, 0x84, 0x43,
|
||||
0xfa, 0x60, 0xc5, 0x93, 0xc5, 0x9f, 0xa0, 0x86, 0x94, 0x17, 0x48, 0x30, 0x30, 0x3d, 0xc6, 0x27,
|
||||
0xa3, 0x12, 0xce, 0xfc, 0xb0, 0x05, 0x8d, 0xbb, 0x09, 0x27, 0xd8, 0x63, 0x96, 0xaa, 0x85, 0x72,
|
||||
0x0c, 0xdb, 0x66, 0x60, 0x12, 0x60, 0x62, 0x00, 0x3f, 0x85, 0xc4, 0x87, 0x1d, 0xca, 0x74, 0xae,
|
||||
0xcd, 0xe1, 0xbd, 0xb9, 0xa0, 0x11, 0xf2, 0xfe, 0xbd, 0x67, 0x4f, 0x9f, 0x3e, 0x7d, 0xce, 0xde,
|
||||
0x95, 0xb2, 0x4c, 0xcc, 0xba, 0x72, 0x32, 0x65, 0xce, 0x88, 0xd2, 0x16, 0xca, 0x5a, 0xaa, 0x10,
|
||||
0x76, 0x8c, 0x8e, 0x67, 0x50, 0xeb, 0xa5, 0x63, 0xab, 0x4c, 0x52, 0xfd, 0xe6, 0x98, 0x5a, 0xa8,
|
||||
0x69, 0xc2, 0xd5, 0x90, 0xa5, 0x9a, 0xbd, 0xb9, 0x9c, 0x32, 0x90, 0x12, 0x5b, 0xeb, 0xda, 0xb0,
|
||||
0x99, 0x28, 0x97, 0x58, 0xa4, 0x05, 0x6d, 0x42, 0x36, 0x39, 0xbb, 0x08, 0x99, 0x74, 0x49, 0xc4,
|
||||
0x2a, 0x55, 0xf6, 0x7b, 0x5d, 0x60, 0xcd, 0x98, 0xb8, 0x8b, 0xad, 0x94, 0x81, 0x34, 0x6b, 0xd9,
|
||||
0xe0, 0x72, 0x7a, 0x14, 0x30, 0xab, 0xe7, 0x6e, 0x25, 0x8c, 0x64, 0xcd, 0xc8, 0x75, 0x0b, 0x73,
|
||||
0x0f, 0xd2, 0x4c, 0x7f, 0xea, 0x92, 0xf1, 0xcd, 0xa5, 0xcf, 0x2b, 0x33, 0xbe, 0x42, 0x30, 0xaa,
|
||||
0xcc, 0x00, 0x84, 0xaf, 0x46, 0xa9, 0x39, 0x71, 0x79, 0x75, 0x23, 0x22, 0x8f, 0x0e, 0x5a, 0x74,
|
||||
0xa6, 0x1a, 0xe8, 0xd1, 0x00, 0xcc, 0x60, 0x46, 0xc8, 0x90, 0xf3, 0xac, 0x9b, 0x28, 0x19, 0xc6,
|
||||
0x2b, 0x8b, 0x46, 0x45, 0xce, 0xb1, 0x52, 0x12, 0x3a, 0x9a, 0x89, 0xdc, 0xea, 0x16, 0x6f, 0x97,
|
||||
0x49, 0x4c, 0x0e, 0xc6, 0x00, 0x12, 0xd6, 0xa9, 0xeb, 0x7b, 0xab, 0xa6, 0x99, 0xdc, 0xbc, 0xa1,
|
||||
0xd9, 0xa0, 0xce, 0x53, 0x36, 0x93, 0x34, 0x47, 0x97, 0x0b, 0x88, 0xf1, 0x58, 0x42, 0x1d, 0x26,
|
||||
0xc3, 0x56, 0x79, 0x1a, 0xd1, 0xb1, 0xd1, 0x6c, 0xdc, 0x3b, 0x51, 0xb6, 0xb3, 0xa6, 0xd9, 0x57,
|
||||
0x6a, 0x87, 0x0c, 0x20, 0x90, 0x43, 0xa6, 0xa1, 0xd2, 0xac, 0x14, 0xf0, 0x16, 0x25, 0x43, 0x9a,
|
||||
0x20, 0xff, 0x61, 0x47, 0x82, 0x07, 0x23, 0xe7, 0x28, 0xba, 0x8c, 0x35, 0x17, 0x80, 0x0d, 0x9a,
|
||||
0x84, 0xfa, 0xcc, 0x3b, 0x3a, 0x52, 0xdb, 0x9c, 0xa6, 0x2a, 0x41, 0xb2, 0x35, 0xd3, 0x0c, 0x61,
|
||||
0x0e, 0x06, 0x58, 0x37, 0xd6, 0x79, 0xdd, 0x6a, 0xee, 0xd5, 0xe7, 0x14, 0x26, 0x6c, 0x4b, 0x1b,
|
||||
0x93, 0xd2, 0xfe, 0x68, 0xa8, 0x1a, 0xd4, 0x4f, 0x64, 0xb9, 0x66, 0x22, 0x49, 0x28, 0x7c, 0xc0,
|
||||
0xe4, 0xbd, 0x7a, 0xa5, 0x58, 0xc7, 0x4d, 0x74, 0x9a, 0x4e, 0xca, 0xf4, 0x0f, 0x62, 0x78, 0xf9,
|
||||
0xbe, 0x8d, 0x21, 0xfd, 0xbd, 0x12, 0x09, 0xe8, 0x91, 0x20, 0x87, 0x9c, 0x3f, 0x38, 0xf8, 0x76,
|
||||
0xd2, 0xc6, 0xee, 0x28, 0xcf, 0xb7, 0x6a, 0x45, 0x99, 0xb2, 0x76, 0x58, 0x44, 0x6e, 0x61, 0x05,
|
||||
0x80, 0x4b, 0x4a, 0x8c, 0x0e, 0x5b, 0x33, 0xfe, 0x1f, 0x2a, 0xe1, 0x68, 0x07, 0x6f, 0x0f, 0x1f,
|
||||
0x30, 0x86, 0x31, 0x48, 0x0b, 0x87, 0x20, 0x2f, 0x7d, 0x0c, 0x14, 0x65, 0x45, 0x22, 0x69, 0x74,
|
||||
0x04, 0x73, 0x36, 0x63, 0x62, 0x97, 0xf5, 0xc4, 0x3c, 0xd9, 0xa3, 0xf1, 0xa4, 0xcb, 0xf2, 0x86,
|
||||
0x70, 0x40, 0x35, 0x8f, 0xc6, 0x7f, 0x40, 0x8f, 0xef, 0x88, 0xe9, 0x7a, 0x17, 0xa2, 0xac, 0x45,
|
||||
0xee, 0xc3, 0xd2, 0x1d, 0xdd, 0xf0, 0x9e, 0x19, 0x9f, 0x36, 0x19, 0x7c, 0x64, 0xd2, 0x5a, 0x95,
|
||||
0x1a, 0x9b, 0xbe, 0x8a, 0x60, 0xcb, 0x54, 0x47, 0x97, 0x7c, 0x63, 0x13, 0xb1, 0x68, 0x5d, 0x81,
|
||||
0x04, 0xdf, 0x62, 0xa2, 0xd3, 0xa6, 0x35, 0x4a, 0x74, 0x2c, 0x3e, 0x73, 0x18, 0xa1, 0xcb, 0x65,
|
||||
0xc3, 0x76, 0xed, 0xb8, 0xce, 0x7a, 0x19, 0x12, 0x2e, 0xe6, 0xc3, 0x16, 0x70, 0x74, 0x23, 0xb2,
|
||||
0xb9, 0x6b, 0xcd, 0xa8, 0xbe, 0x76, 0x6a, 0xef, 0x84, 0xb7, 0xcf, 0xa3, 0xa1, 0xd8, 0x04, 0x62,
|
||||
0xdc, 0x6b, 0xf5, 0x6d, 0x16, 0x7d, 0x96, 0xee, 0x58, 0xed, 0x07, 0xf6, 0x36, 0xe6, 0x7e, 0x26,
|
||||
0xf3, 0x29, 0x57, 0xe1, 0x1e, 0xda, 0xe8, 0x1b, 0xb3, 0x0e, 0xba, 0xde, 0xdd, 0xd8, 0xfd, 0xb0,
|
||||
0x33, 0xc7, 0xa6, 0xd1, 0x64, 0x1e, 0x91, 0x94, 0xf0, 0x96, 0xd5, 0xc1, 0x0f, 0xe3, 0x77, 0x7e,
|
||||
0xdb, 0x06, 0xd1, 0x26, 0x29, 0x37, 0x6c, 0xf5, 0x75, 0x28, 0x3a, 0x2f, 0x59, 0x8b, 0x06, 0xa0,
|
||||
0x69, 0x91, 0xe8, 0x6d, 0xa1, 0x20, 0xbc, 0x3a, 0x18, 0x6e, 0xdc, 0x33, 0x6e, 0x80, 0xd1, 0x61,
|
||||
0x71, 0x73, 0xc7, 0x16, 0x91, 0xde, 0xdd, 0x90, 0x1c, 0x7c, 0x1d, 0x93, 0xaf, 0x74, 0xce, 0x3b,
|
||||
0x31, 0x39, 0x08, 0x77, 0x8c, 0xff, 0x12, 0x90, 0x1d, 0x3c, 0xa8, 0x82, 0x7a, 0xdf, 0x2a, 0xa1,
|
||||
0xc6, 0x11, 0x6a, 0x11, 0x2d, 0x3a, 0xc3, 0x9b, 0x97, 0x2b, 0x5f, 0x9a, 0x97, 0x3f, 0x9d, 0xbe,
|
||||
0x7d, 0xff, 0xf6, 0x6c, 0x7a, 0xda, 0xf4, 0x0d, 0xd0, 0xad, 0xa1, 0x1e, 0x73, 0xe7, 0x89, 0xc8,
|
||||
0x87, 0xa3, 0x47, 0x97, 0xb0, 0x86, 0x6a, 0x6f, 0xca, 0x2b, 0x04, 0x91, 0xc6, 0xaf, 0x35, 0xba,
|
||||
0x09, 0x1a, 0xe0, 0x7c, 0x97, 0x46, 0x18, 0xb8, 0xdc, 0xc8, 0x3d, 0x4f, 0x8c, 0xed, 0x45, 0xcf,
|
||||
0xab, 0x3b, 0x9d, 0x5c, 0x45, 0x6d, 0x5d, 0xbe, 0xba, 0x83, 0xee, 0xc3, 0x0d, 0x75, 0x5b, 0x4f,
|
||||
0x8e, 0x44, 0xc0, 0x33, 0xaa, 0xfc, 0x14, 0xbd, 0x29, 0xea, 0xaa, 0xe6, 0x68, 0x86, 0x0b, 0x56,
|
||||
0x57, 0x2a, 0x6d, 0x39, 0x74, 0x3f, 0x5a, 0xa0, 0x05, 0x67, 0xf5, 0x2c, 0xc2, 0xad, 0x71, 0x78,
|
||||
0xa1, 0x75, 0x89, 0xd9, 0xb0, 0x46, 0xa7, 0x1b, 0xd2, 0x40, 0x38, 0x44, 0xeb, 0x16, 0x66, 0x41,
|
||||
0x3f, 0xa6, 0x7c, 0x98, 0xe5, 0xe8, 0x97, 0x7c, 0x4c, 0xaf, 0x2f, 0x2e, 0x28, 0x1b, 0x7a, 0xec,
|
||||
0x5a, 0x1a, 0xe2, 0x1b, 0xb6, 0x1f, 0x3d, 0x7c, 0x1c, 0xed, 0xef, 0xcd, 0x0e, 0x9e, 0x44, 0x8f,
|
||||
0xf6, 0xd9, 0x7f, 0xfe, 0xf5, 0x6f, 0xc2, 0x60, 0x90, 0x04, 0xec, 0x60, 0xff, 0xe0, 0x11, 0xfb,
|
||||
0x3e, 0x8d, 0x74, 0x79, 0x85, 0x1f, 0xc3, 0x42, 0xa8, 0x32, 0x8a, 0xa2, 0x9d, 0xf5, 0x43, 0x5a,
|
||||
0x3f, 0x2c, 0xd0, 0x33, 0x90, 0x20, 0xb7, 0xcd, 0xfa, 0xd1, 0x8b, 0x64, 0x3b, 0xdb, 0x9b, 0x89,
|
||||
0xf6, 0xa5, 0x2e, 0x30, 0x59, 0xb1, 0xa3, 0x1a, 0xa3, 0xa0, 0xd9, 0x56, 0x34, 0xfe, 0xe6, 0x44,
|
||||
0x84, 0x00, 0xf9, 0xff, 0x01, 0xc8, 0xe1, 0x46, 0xf0, 0x77, 0x09, 0x5b, 0xa9, 0xa5, 0x1a, 0xfa,
|
||||
0x6b, 0x13, 0xdd, 0x16, 0x60, 0xdf, 0x1e, 0xda, 0xc2, 0x5e, 0x62, 0x64, 0xaa, 0xa8, 0x4e, 0xbf,
|
||||
0x70, 0x72, 0x77, 0x2b, 0xc6, 0x16, 0x49, 0x17, 0x40, 0xb4, 0x00, 0x25, 0x9b, 0x7e, 0x62, 0x2b,
|
||||
0x99, 0x28, 0xd0, 0xae, 0x43, 0x6b, 0x5c, 0x6e, 0x7c, 0xed, 0x1d, 0xb1, 0xac, 0x46, 0xe7, 0xf4,
|
||||
0x6f, 0xfd, 0x70, 0x80, 0x1e, 0x88, 0x6b, 0x8f, 0x59, 0xe3, 0x1e, 0x8e, 0xa6, 0xad, 0x19, 0x4d,
|
||||
0xbe, 0x48, 0x17, 0xf4, 0x87, 0xe6, 0x27, 0x1a, 0x8f, 0x5c, 0xbf, 0xc3, 0xa9, 0xe7, 0x71, 0x4c,
|
||||
0xa8, 0xdc, 0x9b, 0x90, 0x3e, 0x7c, 0xb2, 0xe7, 0xe3, 0xfa, 0x32, 0x33, 0xb8, 0xee, 0x2a, 0xb4,
|
||||
0x92, 0x49, 0x92, 0xad, 0xe8, 0xc7, 0x82, 0xb6, 0x73, 0x9f, 0xa3, 0xa7, 0xe3, 0x1e, 0x86, 0x04,
|
||||
0x84, 0x79, 0xcd, 0xe0, 0xf1, 0x7d, 0xb8, 0xcc, 0x72, 0x3d, 0x43, 0x02, 0xe0, 0x2e, 0x6d, 0x86,
|
||||
0xe7, 0x67, 0x2f, 0x4f, 0xdf, 0x4c, 0x4e, 0xbf, 0xc4, 0xbd, 0x77, 0x71, 0x36, 0x65, 0x79, 0xa3,
|
||||
0xca, 0xfb, 0x8a, 0x76, 0xdf, 0xd9, 0x3c, 0x91, 0x06, 0x0e, 0xc2, 0x23, 0x6b, 0x31, 0x34, 0xa0,
|
||||
0xbd, 0xe0, 0xe6, 0x5a, 0x76, 0xbc, 0x68, 0x55, 0xc5, 0x89, 0xc1, 0xfc, 0xad, 0x9e, 0xf9, 0x8b,
|
||||
0x3a, 0x35, 0x3e, 0xda, 0xd2, 0x74, 0x19, 0x62, 0x0d, 0xe2, 0xcc, 0xe6, 0x97, 0x90, 0x6f, 0x8e,
|
||||
0xf8, 0x5f, 0x4e, 0xf8, 0xbd, 0xef, 0x1a, 0xf1, 0x87, 0xd4, 0x7b, 0xf1, 0x41, 0x37, 0x1b, 0xba,
|
||||
0xe6, 0xd0, 0x8f, 0xad, 0xff, 0x05, 0x18, 0x36, 0x57, 0xbc, 0x7c, 0x15, 0x00, 0x00
|
||||
0x11, 0xfe, 0x5f, 0x4f, 0x01, 0xe1, 0x66, 0x72, 0x62, 0x43, 0x53, 0xb6, 0x93, 0x5e, 0x73, 0x8e,
|
||||
0xa8, 0x9c, 0x1d, 0x3b, 0x17, 0x77, 0xec, 0xd8, 0x13, 0x29, 0x97, 0x76, 0xae, 0x37, 0x19, 0x88,
|
||||
0x84, 0x44, 0x44, 0x24, 0xc1, 0x03, 0x40, 0x2b, 0x6a, 0xee, 0xde, 0xa3, 0x4f, 0xd3, 0x87, 0xe9,
|
||||
0x93, 0xf4, 0x5b, 0x90, 0x94, 0x64, 0xc7, 0xc9, 0x4d, 0xa6, 0xfd, 0xc3, 0x96, 0x48, 0x00, 0xfb,
|
||||
0xe3, 0xdb, 0xdd, 0x6f, 0x17, 0x1a, 0xf5, 0x4f, 0xaf, 0x9e, 0x4f, 0xff, 0x7e, 0x7d, 0xc6, 0x32,
|
||||
0x57, 0xe4, 0xe3, 0x11, 0xfd, 0x67, 0xb9, 0x28, 0x17, 0x31, 0x97, 0x25, 0xc7, 0xb3, 0x14, 0xe9,
|
||||
0x78, 0x54, 0x48, 0x27, 0x58, 0x29, 0x0a, 0x19, 0xf3, 0x1b, 0x25, 0x57, 0x95, 0x36, 0x8e, 0xb3,
|
||||
0x44, 0x97, 0x4e, 0x96, 0x2e, 0xe6, 0x2b, 0x95, 0xba, 0x2c, 0xfe, 0xf3, 0xfe, 0x3e, 0x1f, 0xf7,
|
||||
0x9a, 0xad, 0xbd, 0x3b, 0x6b, 0xa9, 0xbc, 0x51, 0x89, 0xdc, 0xf3, 0x0f, 0xa1, 0x2a, 0x95, 0x53,
|
||||
0x22, 0xdf, 0xb3, 0x89, 0xc8, 0x65, 0x7c, 0x10, 0x16, 0xe2, 0x83, 0x2a, 0xea, 0x62, 0xf3, 0x5c,
|
||||
0x5b, 0x69, 0xfc, 0x83, 0x98, 0xe1, 0xb9, 0xd4, 0x9c, 0xf5, 0xee, 0xa8, 0x6e, 0x0d, 0x4a, 0x32,
|
||||
0x61, 0xac, 0x84, 0x92, 0xda, 0xcd, 0xf7, 0x9e, 0xe0, 0xad, 0x53, 0x2e, 0x97, 0xe3, 0x4b, 0x65,
|
||||
0x13, 0x36, 0x91, 0xce, 0xa9, 0x72, 0x61, 0x47, 0xc3, 0xe6, 0xe5, 0xc8, 0x26, 0x46, 0x55, 0x6e,
|
||||
0xdc, 0xbb, 0x11, 0x86, 0xe5, 0x3a, 0x51, 0x55, 0xe8, 0x54, 0x21, 0x75, 0xed, 0xc2, 0x34, 0x4e,
|
||||
0x75, 0x52, 0x17, 0x30, 0x37, 0xc4, 0x42, 0xdc, 0x3f, 0x78, 0x3a, 0xaf, 0xcb, 0xc4, 0x29, 0x5d,
|
||||
0xb2, 0x97, 0x83, 0xe0, 0xe3, 0x4a, 0x95, 0xa9, 0x5e, 0x45, 0xba, 0x92, 0xe5, 0x80, 0x67, 0xce,
|
||||
0x55, 0xf6, 0x68, 0x38, 0x2c, 0x8a, 0x68, 0x59, 0xea, 0x68, 0x95, 0xcb, 0x34, 0x5a, 0xc8, 0xe1,
|
||||
0x5c, 0x0a, 0x57, 0x1b, 0x69, 0x87, 0xb6, 0x55, 0x3b, 0xfc, 0xc6, 0xca, 0xa4, 0x36, 0xca, 0xad,
|
||||
0xf7, 0xba, 0x57, 0x3c, 0xf8, 0x7d, 0x23, 0xf7, 0xe4, 0xae, 0xdc, 0xcd, 0x41, 0x1e, 0xf2, 0x77,
|
||||
0x56, 0xe6, 0xf3, 0xdd, 0xdd, 0x6f, 0x3e, 0xd9, 0x5d, 0x57, 0xa9, 0x70, 0xf2, 0xbe, 0xbd, 0x8b,
|
||||
0xf3, 0x74, 0x20, 0x83, 0x8f, 0x46, 0xc2, 0x9e, 0x92, 0x91, 0x71, 0xee, 0x2c, 0x97, 0xe4, 0xdc,
|
||||
0xc9, 0xda, 0x2f, 0x6d, 0xb7, 0x2a, 0x7b, 0x35, 0x7b, 0xbf, 0xb3, 0x59, 0x3e, 0x78, 0xc0, 0xf5,
|
||||
0xec, 0xbd, 0x4c, 0x1c, 0x8f, 0x63, 0xb7, 0xae, 0xa4, 0x9e, 0xd3, 0xbb, 0xfe, 0xb1, 0x31, 0x62,
|
||||
0x1d, 0x29, 0xeb, 0x3f, 0x6f, 0x49, 0xc8, 0xb5, 0x48, 0xff, 0x3a, 0x19, 0xc8, 0xd0, 0xc5, 0xfd,
|
||||
0xfd, 0xe0, 0x63, 0x2e, 0x1d, 0xd3, 0x71, 0x1a, 0x25, 0x06, 0x70, 0xc8, 0x56, 0xed, 0x80, 0x37,
|
||||
0xc8, 0xf3, 0xe0, 0xa9, 0x8e, 0xe0, 0xe5, 0xb1, 0x73, 0x46, 0xcd, 0x6a, 0x27, 0xb1, 0x60, 0x12,
|
||||
0x1e, 0xca, 0x20, 0xbc, 0xfb, 0x9e, 0x74, 0xc3, 0x37, 0x27, 0x3f, 0xb8, 0xe1, 0x7b, 0x71, 0x23,
|
||||
0x3a, 0x01, 0x9f, 0x6c, 0x14, 0x76, 0x5d, 0x42, 0x84, 0x0b, 0xc2, 0x34, 0x9a, 0xe9, 0x74, 0x1d,
|
||||
0x89, 0x0a, 0xf8, 0xa4, 0xcf, 0x33, 0x95, 0xa7, 0x03, 0x4d, 0xfb, 0x45, 0x9a, 0x9e, 0xdd, 0xc0,
|
||||
0x8a, 0x0b, 0x65, 0x91, 0x8f, 0xd2, 0x0c, 0x38, 0xd9, 0xcc, 0xc3, 0x41, 0x10, 0x8f, 0x3f, 0xfe,
|
||||
0x28, 0xdd, 0x4f, 0x83, 0x20, 0x84, 0xcc, 0x93, 0x64, 0xf9, 0x42, 0xe5, 0x92, 0xd2, 0x6c, 0x40,
|
||||
0x08, 0xf2, 0x59, 0xb2, 0x4c, 0xe6, 0x0b, 0x1e, 0x7c, 0x76, 0xb5, 0x42, 0xb4, 0xa5, 0x43, 0x50,
|
||||
0x83, 0xdf, 0xef, 0xd7, 0x23, 0x8d, 0xd1, 0x06, 0xee, 0x41, 0x0f, 0x8a, 0xc1, 0xea, 0x5c, 0x46,
|
||||
0xb9, 0x5e, 0x0c, 0xf8, 0x19, 0xbd, 0x67, 0x2d, 0x78, 0x88, 0x38, 0x9b, 0x43, 0xb4, 0x87, 0x01,
|
||||
0xd9, 0x6f, 0x00, 0xd7, 0x45, 0xfb, 0x1e, 0xe8, 0xe3, 0xe0, 0x5c, 0x2d, 0x6a, 0x23, 0x3c, 0xda,
|
||||
0x0d, 0x0c, 0x6c, 0x2e, 0x14, 0x65, 0xdd, 0x3f, 0xca, 0xf3, 0x32, 0xd1, 0x45, 0x05, 0xd0, 0x25,
|
||||
0xab, 0xc4, 0x42, 0x32, 0xa4, 0x84, 0xe8, 0x23, 0x17, 0x76, 0x02, 0x64, 0x33, 0xbd, 0x9a, 0x6a,
|
||||
0x61, 0x5d, 0x13, 0xa3, 0x83, 0xe0, 0x23, 0xa5, 0xbf, 0x8e, 0xbd, 0x17, 0x8e, 0x16, 0x7c, 0x58,
|
||||
0x54, 0x09, 0x93, 0x5f, 0x4e, 0x2f, 0x2f, 0x62, 0x09, 0x5f, 0x92, 0x5c, 0x58, 0x4b, 0x8e, 0x90,
|
||||
0x57, 0x03, 0xf7, 0xac, 0x75, 0xe5, 0x88, 0x93, 0x34, 0x44, 0x21, 0xc9, 0xa5, 0x30, 0xd3, 0xa6,
|
||||
0x78, 0x06, 0x6d, 0x11, 0xf9, 0xd8, 0xb8, 0x35, 0x9c, 0x14, 0xa5, 0x2a, 0xbc, 0xbd, 0x31, 0x2f,
|
||||
0x75, 0x09, 0xcf, 0xda, 0x1d, 0x31, 0xe0, 0xea, 0x0e, 0x0d, 0x3a, 0x03, 0x91, 0xd8, 0xbb, 0xfa,
|
||||
0x8c, 0x2c, 0xf4, 0x0d, 0x25, 0x86, 0x57, 0x04, 0x60, 0x0f, 0xbf, 0xdf, 0xdf, 0xdf, 0x71, 0xa7,
|
||||
0xae, 0x08, 0x34, 0x8a, 0x05, 0xf9, 0xd3, 0x39, 0x53, 0xca, 0x15, 0xfb, 0xdb, 0xe5, 0xc5, 0x4b,
|
||||
0x94, 0xe6, 0x6b, 0xf9, 0x6b, 0x2d, 0xad, 0x7b, 0xfa, 0x85, 0xc0, 0xef, 0xa8, 0xde, 0xa2, 0xe3,
|
||||
0x32, 0x65, 0xa1, 0xdd, 0x56, 0x88, 0x94, 0x9c, 0x22, 0xef, 0x42, 0xff, 0xc6, 0x3a, 0x94, 0xb5,
|
||||
0x1d, 0xc7, 0x8f, 0xc9, 0x8a, 0xe0, 0x8b, 0x71, 0xde, 0xca, 0x95, 0xbb, 0x82, 0x25, 0xc9, 0x48,
|
||||
0x96, 0x61, 0xbf, 0x13, 0xd0, 0x14, 0xf0, 0xf5, 0xd5, 0x64, 0x8a, 0x0c, 0x1f, 0x36, 0x0e, 0x21,
|
||||
0x06, 0xe4, 0x49, 0xe9, 0x3d, 0x79, 0xa1, 0x4d, 0x71, 0x8a, 0x48, 0x3e, 0x6d, 0xab, 0xb2, 0x6c,
|
||||
0x93, 0x7a, 0xc0, 0x29, 0xbe, 0x48, 0x94, 0x88, 0x12, 0xc6, 0xfe, 0xbc, 0xff, 0x4b, 0xd8, 0xa0,
|
||||
0x4e, 0x6b, 0x65, 0x80, 0xf7, 0x37, 0x22, 0xaf, 0xc1, 0x92, 0x3c, 0xec, 0x1f, 0x6c, 0x21, 0x4b,
|
||||
0x32, 0x99, 0x2c, 0x5f, 0xd5, 0xc5, 0xb6, 0xce, 0xfb, 0x83, 0xbe, 0x24, 0x17, 0xa2, 0xa5, 0x5c,
|
||||
0x47, 0x08, 0x55, 0x92, 0x0d, 0x86, 0x3f, 0xef, 0xef, 0x7d, 0xff, 0xcb, 0x30, 0x40, 0xb1, 0xff,
|
||||
0xcc, 0x4f, 0x60, 0xaf, 0xad, 0x44, 0x42, 0x25, 0x38, 0x15, 0x33, 0xfc, 0x3f, 0x03, 0x97, 0xc3,
|
||||
0x45, 0x3e, 0xc9, 0xd4, 0xdc, 0xe1, 0xf3, 0x39, 0xc8, 0xdd, 0xe8, 0x1c, 0xdf, 0x8e, 0x73, 0x7a,
|
||||
0xbe, 0x16, 0xa0, 0x6c, 0x7a, 0x2f, 0x2a, 0x7b, 0xa1, 0x93, 0x25, 0x1d, 0x01, 0x7f, 0xfb, 0x22,
|
||||
0x9e, 0xb4, 0x92, 0xae, 0x91, 0xa1, 0x6f, 0xaa, 0xf6, 0xcb, 0xa9, 0x5e, 0x95, 0x5e, 0x2e, 0x02,
|
||||
0xc2, 0x5f, 0xea, 0x82, 0x36, 0x80, 0x5d, 0xf4, 0xea, 0x42, 0x7a, 0x05, 0xfe, 0xbb, 0xdf, 0xed,
|
||||
0xbf, 0xbd, 0x56, 0x8b, 0x6c, 0xf3, 0xba, 0x3d, 0x7b, 0x8e, 0x40, 0x19, 0x7a, 0x79, 0x2a, 0xa9,
|
||||
0x02, 0xf8, 0x2f, 0x48, 0xe2, 0x24, 0xaf, 0x53, 0x69, 0x07, 0x1b, 0xef, 0x82, 0xe0, 0xb7, 0xdf,
|
||||
0xda, 0x27, 0x94, 0x2b, 0x7d, 0x9e, 0xca, 0xb9, 0xa8, 0x73, 0x87, 0xa2, 0x47, 0x2d, 0xec, 0x94,
|
||||
0xc9, 0xed, 0x1a, 0x07, 0x54, 0xf2, 0x0e, 0xd3, 0x80, 0x7b, 0xcb, 0x26, 0x81, 0x38, 0x71, 0xfe,
|
||||
0x3b, 0xfe, 0x50, 0x12, 0xb5, 0xde, 0xb7, 0x23, 0x78, 0x38, 0xe0, 0x6f, 0x2f, 0xce, 0x4e, 0x41,
|
||||
0xa2, 0x36, 0x7d, 0xc6, 0x51, 0x37, 0xd8, 0x6d, 0xd3, 0x60, 0x47, 0xdf, 0x04, 0xc9, 0xc7, 0x29,
|
||||
0x8c, 0x47, 0xd8, 0xd4, 0x32, 0x3b, 0x5a, 0x8f, 0x2f, 0x1b, 0x98, 0xaa, 0x9d, 0x4e, 0x74, 0xfe,
|
||||
0xe0, 0xc1, 0xc0, 0xb7, 0xa3, 0xfd, 0x70, 0xe0, 0xfb, 0x55, 0x4c, 0x3b, 0xf2, 0x89, 0xd3, 0x06,
|
||||
0x08, 0x92, 0xf2, 0x73, 0x27, 0x0b, 0x4a, 0xeb, 0xe4, 0xbc, 0xe2, 0xde, 0xd5, 0x66, 0x1b, 0xce,
|
||||
0x17, 0x15, 0x78, 0x84, 0xdc, 0x61, 0x97, 0x3a, 0x95, 0x11, 0xbb, 0x46, 0xc5, 0x5a, 0xc9, 0x24,
|
||||
0xc5, 0x91, 0x91, 0x6d, 0xec, 0xfc, 0x1a, 0x4c, 0x11, 0xde, 0x92, 0x68, 0x6f, 0x4b, 0x0c, 0xbd,
|
||||
0xb4, 0x20, 0xa0, 0x5d, 0x9e, 0xe5, 0x49, 0xfc, 0x33, 0xdf, 0x00, 0xd1, 0xff, 0xf8, 0x43, 0xbf,
|
||||
0x7c, 0xc4, 0xe1, 0xee, 0xb6, 0x79, 0x0d, 0x6d, 0xf4, 0xde, 0x3e, 0xab, 0xe2, 0xef, 0xb8, 0xc7,
|
||||
0xb7, 0x37, 0x1a, 0xb6, 0x5d, 0x77, 0xe4, 0xb9, 0x61, 0xfc, 0x83, 0x2a, 0xa8, 0x7f, 0xb3, 0xda,
|
||||
0xe4, 0x28, 0x72, 0x4f, 0x17, 0x89, 0x05, 0x87, 0x3e, 0xc5, 0x46, 0xbf, 0x61, 0x34, 0x6c, 0xe6,
|
||||
0x0d, 0x22, 0x73, 0x70, 0x24, 0x69, 0x8e, 0x39, 0xd0, 0x42, 0x6f, 0x9f, 0xa3, 0x2e, 0x7a, 0x4c,
|
||||
0xe1, 0x99, 0xbe, 0xbd, 0xb3, 0xbc, 0x9d, 0x47, 0x26, 0x73, 0xce, 0x30, 0x0d, 0x64, 0x1a, 0x2b,
|
||||
0x95, 0xb6, 0x34, 0x1c, 0xa4, 0xea, 0x86, 0x79, 0x52, 0x89, 0xc1, 0x71, 0x80, 0x63, 0x75, 0xfb,
|
||||
0x5d, 0x26, 0xf3, 0xea, 0x84, 0x46, 0x15, 0x04, 0xce, 0x21, 0x1a, 0xd4, 0x6e, 0x62, 0xde, 0x3c,
|
||||
0x70, 0x68, 0x4d, 0x72, 0x95, 0x2c, 0x63, 0xfe, 0x92, 0xd4, 0x3e, 0x1b, 0x0d, 0x9b, 0x05, 0x98,
|
||||
0x06, 0x11, 0xe3, 0xfb, 0xcf, 0xf4, 0x36, 0x87, 0x4e, 0xe8, 0x10, 0x55, 0xd0, 0xf6, 0xdc, 0xad,
|
||||
0x13, 0xb6, 0x9e, 0x15, 0x0a, 0x36, 0x4e, 0xc4, 0x8d, 0xdc, 0x6e, 0xc9, 0x4c, 0x27, 0x3e, 0x3b,
|
||||
0x1c, 0xf7, 0x26, 0xed, 0xe4, 0xc0, 0x1e, 0xb0, 0x37, 0xbe, 0xcf, 0x53, 0x7e, 0xd6, 0x15, 0xb0,
|
||||
0x39, 0x1c, 0x77, 0x63, 0x0d, 0xbb, 0x3e, 0x7f, 0x75, 0xc4, 0x46, 0xaa, 0xac, 0x6a, 0xd7, 0x8a,
|
||||
0xae, 0xe0, 0xdc, 0x4a, 0x9b, 0x94, 0x7b, 0x90, 0xb0, 0xbe, 0x99, 0x9b, 0xfc, 0x77, 0xab, 0xfe,
|
||||
0x89, 0xaf, 0x8f, 0x01, 0x96, 0xf8, 0x80, 0x3c, 0x5f, 0x60, 0x2a, 0xf3, 0x4f, 0xaa, 0xdc, 0x79,
|
||||
0xd2, 0x25, 0xca, 0x86, 0x32, 0x39, 0xe6, 0x1b, 0xe2, 0x20, 0x26, 0x0c, 0x20, 0xab, 0x12, 0x0e,
|
||||
0xe9, 0x83, 0x15, 0x4f, 0x16, 0x7f, 0x82, 0x1a, 0x52, 0x5e, 0x20, 0xc1, 0xc0, 0xf4, 0x18, 0x9f,
|
||||
0x8c, 0x4a, 0x38, 0xf3, 0xc3, 0x16, 0x34, 0xee, 0x26, 0x9c, 0x60, 0x8f, 0x59, 0xaa, 0x16, 0xca,
|
||||
0x31, 0x6c, 0x9b, 0x81, 0x49, 0x80, 0x89, 0x01, 0xfc, 0x14, 0x12, 0x1f, 0x76, 0x28, 0xd3, 0xb9,
|
||||
0x36, 0x47, 0xdf, 0xcc, 0x05, 0x8d, 0x90, 0x0f, 0xbe, 0xf9, 0xfe, 0xc9, 0x93, 0x27, 0x4f, 0xd9,
|
||||
0x9b, 0x52, 0x96, 0x89, 0x59, 0x57, 0x4e, 0xa6, 0xcc, 0x19, 0x51, 0xda, 0x42, 0x59, 0x4b, 0x15,
|
||||
0xc2, 0x4e, 0xd0, 0xf1, 0x0c, 0x6a, 0xbd, 0x74, 0x6c, 0x95, 0x49, 0xaa, 0xdf, 0x1c, 0x53, 0x0b,
|
||||
0x35, 0x4d, 0xb8, 0x1a, 0xb2, 0x54, 0xb3, 0x57, 0x57, 0x53, 0x06, 0x52, 0x62, 0x6b, 0x5d, 0x1b,
|
||||
0x36, 0x13, 0xe5, 0x12, 0x8b, 0xb4, 0xa0, 0x4d, 0xc8, 0x26, 0xe7, 0x97, 0x21, 0x93, 0x2e, 0x89,
|
||||
0x58, 0xa5, 0xca, 0x7e, 0xaf, 0x0b, 0xac, 0x19, 0x13, 0x77, 0xb1, 0x95, 0x32, 0x90, 0x66, 0x2d,
|
||||
0x1b, 0x5c, 0x4d, 0x8f, 0x03, 0x66, 0xf5, 0xdc, 0xad, 0x84, 0x91, 0xac, 0x19, 0xb9, 0xee, 0x60,
|
||||
0xee, 0x41, 0x9a, 0xe9, 0x0f, 0x5d, 0x32, 0xbe, 0xba, 0xf2, 0x79, 0x65, 0xc6, 0xd7, 0x08, 0x46,
|
||||
0x95, 0x19, 0x80, 0xf0, 0xd9, 0x28, 0x35, 0x27, 0xae, 0xae, 0x6f, 0x45, 0xe4, 0xd1, 0x61, 0x8b,
|
||||
0xce, 0x54, 0x03, 0x3d, 0x1a, 0x80, 0x19, 0xcc, 0x08, 0x19, 0x72, 0x9e, 0x75, 0x13, 0x25, 0xc3,
|
||||
0x78, 0x65, 0xd1, 0xa8, 0xc8, 0x39, 0x56, 0x4a, 0x42, 0x47, 0x33, 0x91, 0x5b, 0xdd, 0xe2, 0xed,
|
||||
0x32, 0x89, 0xc9, 0xc1, 0x18, 0x40, 0xc2, 0x3a, 0x75, 0x7d, 0x6f, 0xd5, 0x34, 0x93, 0x9b, 0x37,
|
||||
0x34, 0x1b, 0xd4, 0x79, 0xca, 0x66, 0x92, 0xe6, 0xe8, 0x72, 0x01, 0x31, 0x1e, 0x4b, 0xa8, 0xc3,
|
||||
0x64, 0xd8, 0x2a, 0x4f, 0x23, 0x3a, 0x36, 0x9a, 0x8d, 0x7b, 0xa7, 0xca, 0x76, 0xd6, 0x34, 0xfb,
|
||||
0x4a, 0xed, 0x90, 0x01, 0x04, 0x72, 0xc8, 0x34, 0x54, 0x9a, 0x95, 0x02, 0xde, 0xa2, 0x64, 0x48,
|
||||
0x13, 0xe4, 0x3f, 0xec, 0x48, 0xf0, 0x60, 0xe4, 0x1c, 0x45, 0x97, 0xb1, 0xe6, 0x02, 0xb0, 0x41,
|
||||
0x93, 0x50, 0x9f, 0x79, 0x47, 0x47, 0x6a, 0x9b, 0xd3, 0x54, 0x25, 0x48, 0xb6, 0x66, 0x9a, 0x21,
|
||||
0xcc, 0xc1, 0x00, 0xeb, 0xc6, 0x3a, 0xaf, 0x5b, 0xcd, 0xbd, 0xfa, 0x9c, 0xc2, 0x84, 0x6d, 0x69,
|
||||
0x63, 0x52, 0xda, 0x1f, 0x0d, 0x55, 0x83, 0xfa, 0xa9, 0x2c, 0xd7, 0x4c, 0x24, 0x09, 0x85, 0x0f,
|
||||
0x98, 0xbc, 0x55, 0x2f, 0x14, 0xeb, 0xb8, 0x89, 0x4e, 0xd3, 0x49, 0x99, 0xfe, 0x41, 0x0c, 0xaf,
|
||||
0xde, 0xb6, 0x31, 0xa4, 0xbf, 0x17, 0x22, 0x01, 0x3d, 0x12, 0xe4, 0x90, 0xf3, 0x07, 0x07, 0x5f,
|
||||
0x4f, 0xda, 0xd8, 0x1d, 0xe7, 0xf9, 0x56, 0xad, 0x28, 0x53, 0xd6, 0x0e, 0x8b, 0xc8, 0x2d, 0xac,
|
||||
0x00, 0x70, 0x49, 0x89, 0xd1, 0x61, 0x6b, 0xc6, 0xff, 0x43, 0x25, 0x1c, 0xef, 0xe0, 0xed, 0xe1,
|
||||
0x03, 0xc6, 0x30, 0x06, 0x69, 0xe1, 0x10, 0xe4, 0xa5, 0x8f, 0x81, 0xa2, 0xac, 0x48, 0x24, 0x8d,
|
||||
0x8e, 0x60, 0xce, 0x66, 0x4c, 0xec, 0xb2, 0x9e, 0x98, 0x27, 0x7b, 0x34, 0x9e, 0x74, 0x59, 0xde,
|
||||
0x10, 0x0e, 0xa8, 0xe6, 0xd1, 0xf8, 0x0f, 0xe8, 0xf1, 0x0d, 0x31, 0x5d, 0xef, 0x52, 0x94, 0xb5,
|
||||
0xc8, 0x7d, 0x58, 0xba, 0xa3, 0x1b, 0xde, 0x33, 0xe3, 0xb3, 0x26, 0x83, 0x8f, 0x4d, 0x5a, 0xab,
|
||||
0x52, 0x63, 0xd3, 0x67, 0x11, 0x6c, 0x99, 0xea, 0xf8, 0x8a, 0x6f, 0x6c, 0x22, 0x16, 0xad, 0x2b,
|
||||
0x90, 0xe0, 0x6b, 0x4c, 0x74, 0xda, 0xb4, 0x46, 0x89, 0x8e, 0xc5, 0x67, 0x0e, 0x23, 0x74, 0xb9,
|
||||
0x6c, 0xd8, 0xae, 0x1d, 0xd7, 0x59, 0x2f, 0x43, 0xc2, 0xc5, 0x7c, 0xd8, 0x02, 0x8e, 0x6e, 0x44,
|
||||
0x36, 0x77, 0xad, 0x19, 0xd5, 0xd7, 0x4e, 0xed, 0x9d, 0xf0, 0xf6, 0x79, 0x34, 0x14, 0x9b, 0x40,
|
||||
0x8c, 0x7b, 0xad, 0xbe, 0xcd, 0xa2, 0xcf, 0xd2, 0x1d, 0xab, 0xfd, 0xc0, 0xde, 0xc6, 0xdc, 0xcf,
|
||||
0x64, 0x3e, 0xe5, 0x2a, 0xdc, 0x43, 0x1b, 0x7d, 0x63, 0xd6, 0x41, 0xd7, 0xbb, 0x1f, 0xbb, 0x6f,
|
||||
0x77, 0xe6, 0xd8, 0x34, 0x9a, 0xcc, 0x23, 0x92, 0x12, 0xde, 0xb1, 0x3a, 0xf8, 0x76, 0xfc, 0xc6,
|
||||
0x6f, 0xdb, 0x20, 0xda, 0x24, 0xe5, 0x86, 0xad, 0x3e, 0x0f, 0x45, 0xe7, 0x25, 0x6b, 0xd1, 0x00,
|
||||
0x34, 0x2d, 0x12, 0xbd, 0x2d, 0x14, 0x84, 0x57, 0x07, 0xc3, 0xad, 0x7b, 0xc6, 0x2d, 0x30, 0x3a,
|
||||
0x2c, 0x6e, 0xef, 0xd8, 0x22, 0xd2, 0xbb, 0x1f, 0x92, 0xc3, 0xcf, 0x63, 0xf2, 0x99, 0xce, 0x79,
|
||||
0x2f, 0x26, 0x87, 0xe1, 0x8e, 0xf1, 0x9f, 0x02, 0xb2, 0x83, 0x07, 0x55, 0x50, 0xef, 0x4b, 0x25,
|
||||
0xd4, 0x38, 0x42, 0x2d, 0xa2, 0x45, 0x67, 0x78, 0xfb, 0x72, 0xe5, 0x4b, 0xf3, 0xea, 0xa7, 0xb3,
|
||||
0xd7, 0x6f, 0x5f, 0x9f, 0x4f, 0xcf, 0x9a, 0xbe, 0x01, 0xba, 0x35, 0xd4, 0x63, 0xee, 0x3d, 0x11,
|
||||
0xf9, 0x70, 0xf4, 0xe8, 0x12, 0xd6, 0x50, 0xed, 0x6d, 0x79, 0x85, 0x20, 0xd2, 0xf8, 0xb5, 0x46,
|
||||
0x37, 0x41, 0x03, 0x9c, 0xef, 0xd2, 0x08, 0x03, 0x97, 0x1b, 0xb9, 0xe7, 0x89, 0xb1, 0xbd, 0xe8,
|
||||
0x79, 0x75, 0x67, 0x93, 0xeb, 0xa8, 0xad, 0xcb, 0x17, 0xf7, 0xd0, 0x7d, 0xb8, 0xa1, 0x6e, 0xeb,
|
||||
0xc9, 0x91, 0x08, 0x78, 0x46, 0x95, 0x9f, 0xa2, 0x37, 0x45, 0x5d, 0xd5, 0x1c, 0xcf, 0x70, 0xc1,
|
||||
0xea, 0x4a, 0xa5, 0x2d, 0x87, 0xee, 0x47, 0x0b, 0xb4, 0xe0, 0xac, 0x9e, 0x45, 0xb8, 0x35, 0x0e,
|
||||
0x2f, 0xb5, 0x2e, 0x31, 0x1b, 0xd6, 0xe8, 0x74, 0x43, 0x1a, 0x08, 0x87, 0x68, 0xdd, 0xc2, 0x2c,
|
||||
0xe8, 0xc7, 0x94, 0x77, 0xb3, 0x1c, 0xfd, 0x92, 0x8f, 0xe9, 0xf5, 0xe5, 0x25, 0x65, 0x43, 0x8f,
|
||||
0xdd, 0x48, 0x43, 0x7c, 0xc3, 0xf6, 0xa3, 0x83, 0xc7, 0xd1, 0xfe, 0xde, 0xec, 0xf0, 0x2f, 0xd1,
|
||||
0xa3, 0x03, 0xf6, 0x9f, 0x7f, 0xfd, 0x9b, 0x30, 0x18, 0x24, 0x01, 0x3b, 0xdc, 0x3f, 0x7c, 0xc4,
|
||||
0xbe, 0x4e, 0x23, 0x5d, 0x5e, 0xe1, 0xc7, 0xb0, 0x10, 0xaa, 0x8c, 0xa2, 0x68, 0x67, 0xfd, 0x88,
|
||||
0xd6, 0x8f, 0x0a, 0xf4, 0x0c, 0x24, 0xc8, 0x5d, 0xb3, 0x7e, 0xf4, 0x22, 0xd9, 0xce, 0xf6, 0x66,
|
||||
0xa2, 0x7d, 0xae, 0x0b, 0x4c, 0x56, 0xec, 0xb8, 0xc6, 0x28, 0x68, 0xb6, 0x15, 0x8d, 0xbf, 0x39,
|
||||
0x11, 0x21, 0x40, 0xfe, 0x7f, 0x00, 0x72, 0xb4, 0x11, 0xfc, 0x55, 0xc2, 0x56, 0x6a, 0xa9, 0x86,
|
||||
0xfe, 0xda, 0x44, 0xb7, 0x05, 0xd8, 0xb7, 0x87, 0xb6, 0xb0, 0x97, 0x18, 0x99, 0x2a, 0xaa, 0xd3,
|
||||
0x4f, 0x9c, 0xdc, 0xdd, 0x8a, 0xb1, 0x45, 0xd2, 0x05, 0x10, 0x2d, 0x40, 0xc9, 0xa6, 0x9f, 0xd8,
|
||||
0x4a, 0x26, 0x0a, 0xb4, 0xeb, 0xd0, 0x1a, 0x97, 0x1b, 0x5f, 0x7b, 0xc7, 0x2c, 0xab, 0xd1, 0x39,
|
||||
0xfd, 0x5b, 0x3f, 0x1c, 0xa0, 0x07, 0xe2, 0xda, 0x63, 0xd6, 0xb8, 0x87, 0xa3, 0x69, 0x6b, 0x46,
|
||||
0x93, 0x2f, 0xd2, 0x05, 0xfd, 0xa1, 0xf9, 0x89, 0xc6, 0x23, 0xd7, 0xef, 0x70, 0xea, 0x79, 0x1c,
|
||||
0x13, 0x2a, 0xf7, 0x26, 0xa4, 0x07, 0xdf, 0xed, 0xf9, 0xb8, 0x3e, 0xcf, 0x0c, 0xae, 0xbb, 0x0a,
|
||||
0xad, 0x64, 0x92, 0x64, 0x2b, 0xfa, 0xb1, 0xa0, 0xed, 0xdc, 0x17, 0xe8, 0xe9, 0xb8, 0x87, 0x21,
|
||||
0x01, 0x61, 0x5e, 0x33, 0x78, 0x7c, 0x1d, 0x2e, 0xb3, 0x5c, 0xcf, 0x90, 0x00, 0xb8, 0x4b, 0x9b,
|
||||
0xe1, 0xc5, 0xf9, 0xf3, 0xb3, 0x57, 0x93, 0xb3, 0x4f, 0x71, 0xef, 0x5d, 0x9e, 0x4f, 0x59, 0xde,
|
||||
0xa8, 0xf2, 0xbe, 0xa2, 0xdd, 0x77, 0x36, 0x4f, 0xa4, 0x81, 0x83, 0xf0, 0xc8, 0x5a, 0x0c, 0x0d,
|
||||
0x68, 0x2f, 0xb8, 0xb9, 0x96, 0x1d, 0x2f, 0x5a, 0x55, 0x71, 0x62, 0x30, 0x7f, 0xab, 0x67, 0xfe,
|
||||
0xa2, 0x4e, 0x8d, 0x8f, 0xb6, 0x34, 0x5d, 0x86, 0x58, 0x83, 0x38, 0xb3, 0xf9, 0x25, 0xe4, 0x8b,
|
||||
0x23, 0xfe, 0xa7, 0x13, 0x7e, 0xef, 0xab, 0x46, 0xfc, 0x21, 0xf5, 0x5e, 0x7c, 0xd0, 0xcd, 0x86,
|
||||
0xae, 0x39, 0xf4, 0x63, 0xeb, 0x7f, 0x01, 0xbc, 0x34, 0x27, 0xd6, 0x7c, 0x15, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
||||
2328
wled00/html_ui.h
2328
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,11 @@
|
||||
#define DIMPROV_PRINTF(x...)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
#undef WLED_DISABLE_IMPROV_WIFISCAN
|
||||
#define WLED_DISABLE_IMPROV_WIFISCAN
|
||||
#endif
|
||||
|
||||
#define IMPROV_VERSION 1
|
||||
|
||||
void parseWiFiCommand(char *rpcData);
|
||||
@@ -28,20 +33,14 @@ enum ImprovPacketByte {
|
||||
RPC_CommandType = 9
|
||||
};
|
||||
|
||||
enum ImprovRPCType {
|
||||
Command_Wifi = 0x01,
|
||||
Request_State = 0x02,
|
||||
Request_Info = 0x03
|
||||
};
|
||||
|
||||
//File dbgf;
|
||||
#ifndef WLED_DISABLE_IMPROV_WIFISCAN
|
||||
static bool improvWifiScanRunning = false;
|
||||
#endif
|
||||
|
||||
//blocking function to parse an Improv Serial packet
|
||||
void handleImprovPacket() {
|
||||
uint8_t header[6] = {'I','M','P','R','O','V'};
|
||||
|
||||
//dbgf = WLED_FS.open("/improv.log","a");
|
||||
|
||||
bool timeout = false;
|
||||
uint8_t waitTime = 25;
|
||||
uint16_t packetByte = 0;
|
||||
@@ -62,12 +61,11 @@ void handleImprovPacket() {
|
||||
byte next = Serial.read();
|
||||
|
||||
DIMPROV_PRINT("Received improv byte: "); DIMPROV_PRINTF("%x\r\n",next);
|
||||
//f.write(next);
|
||||
|
||||
switch (packetByte) {
|
||||
case ImprovPacketByte::Version: {
|
||||
if (next != IMPROV_VERSION) {
|
||||
DIMPROV_PRINTLN(F("Invalid version"));
|
||||
//dbgf.close();
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -75,7 +73,6 @@ void handleImprovPacket() {
|
||||
case ImprovPacketByte::PacketType: {
|
||||
if (next != ImprovPacketType::RPC_Command) {
|
||||
DIMPROV_PRINTF("Non RPC-command improv packet type %i\n",next);
|
||||
//dbgf.close();
|
||||
return;
|
||||
}
|
||||
if (!improvActive) improvActive = 1;
|
||||
@@ -89,7 +86,6 @@ void handleImprovPacket() {
|
||||
if (checksum != next) {
|
||||
DIMPROV_PRINTF("Got RPC checksum %i, expected %i",next,checksum);
|
||||
sendImprovStateResponse(0x01, true);
|
||||
//dbgf.close();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -100,22 +96,23 @@ void handleImprovPacket() {
|
||||
if (WLED_WIFI_CONFIGURED) improvState = 0x03; //provisioning
|
||||
if (Network.isConnected()) improvState = 0x04; //provisioned
|
||||
sendImprovStateResponse(improvState, false);
|
||||
if (improvState == 0x04) sendImprovRPCResponse(ImprovRPCType::Request_State);
|
||||
if (improvState == 0x04) sendImprovIPRPCResult(ImprovRPCType::Request_State);
|
||||
break;
|
||||
}
|
||||
case ImprovRPCType::Request_Info: sendImprovInfoResponse(); break;
|
||||
#ifndef WLED_DISABLE_IMPROV_WIFISCAN
|
||||
case ImprovRPCType::Request_Scan: startImprovWifiScan(); break;
|
||||
#endif
|
||||
default: {
|
||||
DIMPROV_PRINTF("Unknown RPC command %i\n",next);
|
||||
sendImprovStateResponse(0x02, true);
|
||||
}
|
||||
}
|
||||
//dbgf.close();
|
||||
return;
|
||||
}
|
||||
if (packetByte < 6) { //check header
|
||||
if (next != header[packetByte]) {
|
||||
DIMPROV_PRINTLN(F("Invalid improv header"));
|
||||
//dbgf.close();
|
||||
return;
|
||||
}
|
||||
} else if (packetByte > 9) { //RPC data
|
||||
@@ -128,7 +125,6 @@ void handleImprovPacket() {
|
||||
checksum += next;
|
||||
packetByte++;
|
||||
}
|
||||
//dbgf.close();
|
||||
}
|
||||
|
||||
void sendImprovStateResponse(uint8_t state, bool error) {
|
||||
@@ -147,79 +143,116 @@ void sendImprovStateResponse(uint8_t state, bool error) {
|
||||
Serial.write('\n');
|
||||
}
|
||||
|
||||
void sendImprovRPCResponse(byte commandId) {
|
||||
// used by sendImprovIPRPCResult(), sendImprovInfoResponse(), and handleImprovWifiScan()
|
||||
void sendImprovRPCResult(ImprovRPCType type, uint8_t n_strings, const char **strings) {
|
||||
if (improvError > 0 && improvError < 3) sendImprovStateResponse(0x00, true);
|
||||
uint8_t packetLen = 12;
|
||||
char out[64] = {'I','M','P','R','O','V'};
|
||||
char out[256] = {'I','M','P','R','O','V'};
|
||||
out[6] = IMPROV_VERSION;
|
||||
out[7] = ImprovPacketType::RPC_Response;
|
||||
out[8] = 2; //Length (set below)
|
||||
out[9] = commandId;
|
||||
out[10] = 0; //Data len (set below)
|
||||
out[11] = '\0'; //URL len (set below)
|
||||
//out[8] = 2; //Length (set below)
|
||||
out[9] = type;
|
||||
//out[10] = 0; //Data len (set below)
|
||||
uint16_t pos = 11;
|
||||
|
||||
if (Network.isConnected())
|
||||
{
|
||||
IPAddress localIP = Network.localIP();
|
||||
uint8_t len = sprintf(out+12, "http://%d.%d.%d.%d", localIP[0], localIP[1], localIP[2], localIP[3]);
|
||||
if (len > 24) return; //sprintf fail?
|
||||
out[11] = len;
|
||||
out[10] = 1 + len;
|
||||
out[8] = 3 + len; //RPC command type + data len + url len + url
|
||||
packetLen = 13 + len;
|
||||
for (uint8_t s = 0; s < n_strings; s++) {
|
||||
size_t len = strlen(strings[s]);
|
||||
if (pos + len > 254) continue; // simple buffer overflow guard
|
||||
out[pos++] = len;
|
||||
strcpy(out + pos, strings[s]);
|
||||
pos += len;
|
||||
}
|
||||
|
||||
packetLen = pos +1;
|
||||
out[8] = pos -9; // Length of packet (excluding first 9 header bytes and final checksum byte)
|
||||
out[10] = pos -11; // Data len
|
||||
|
||||
uint8_t checksum = 0;
|
||||
for (uint8_t i = 0; i < packetLen -1; i++) checksum += out[i];
|
||||
out[packetLen -1] = checksum;
|
||||
Serial.write((uint8_t*)out, packetLen);
|
||||
Serial.write('\n');
|
||||
DIMPROV_PRINT("RPC result checksum");
|
||||
DIMPROV_PRINTLN(checksum);
|
||||
}
|
||||
|
||||
void sendImprovIPRPCResult(ImprovRPCType type) {
|
||||
if (Network.isConnected())
|
||||
{
|
||||
char urlStr[64];
|
||||
IPAddress localIP = Network.localIP();
|
||||
uint8_t len = sprintf(urlStr, "http://%d.%d.%d.%d", localIP[0], localIP[1], localIP[2], localIP[3]);
|
||||
if (len > 24) return; //sprintf fail?
|
||||
const char *str[1] = {urlStr};
|
||||
sendImprovRPCResult(type, 1, str);
|
||||
} else {
|
||||
sendImprovRPCResult(type, 0);
|
||||
}
|
||||
|
||||
improvActive = 1; //no longer provisioning
|
||||
}
|
||||
|
||||
void sendImprovInfoResponse() {
|
||||
if (improvError > 0 && improvError < 3) sendImprovStateResponse(0x00, true);
|
||||
uint8_t packetLen = 12;
|
||||
char out[128] = {'I','M','P','R','O','V'};
|
||||
out[6] = IMPROV_VERSION;
|
||||
out[7] = ImprovPacketType::RPC_Response;
|
||||
//out[8] = 2; //Length (set below)
|
||||
out[9] = ImprovRPCType::Request_Info;
|
||||
//out[10] = 0; //Data len (set below)
|
||||
out[11] = 4; //Firmware len ("WLED")
|
||||
out[12] = 'W'; out[13] = 'L'; out[14] = 'E'; out[15] = 'D';
|
||||
uint8_t lengthSum = 17;
|
||||
uint8_t vlen = sprintf_P(out+lengthSum,PSTR("0.14.0-b26.30/%i"),VERSION);
|
||||
out[16] = vlen; lengthSum += vlen;
|
||||
uint8_t hlen = 7;
|
||||
#ifdef ESP8266
|
||||
strcpy(out+lengthSum+1,"esp8266");
|
||||
#else
|
||||
hlen = 5;
|
||||
strcpy(out+lengthSum+1,"esp32");
|
||||
#endif
|
||||
out[lengthSum] = hlen;
|
||||
lengthSum += hlen + 1;
|
||||
const char* bString =
|
||||
#ifdef ESP8266
|
||||
"esp8266"
|
||||
#elif CONFIG_IDF_TARGET_ESP32C3
|
||||
"esp32-c3"
|
||||
#elif CONFIG_IDF_TARGET_ESP32S2
|
||||
"esp32-s2"
|
||||
#elif CONFIG_IDF_TARGET_ESP32S3
|
||||
"esp32-s3"
|
||||
#else // ESP32
|
||||
"esp32"
|
||||
#endif
|
||||
;
|
||||
|
||||
//Use serverDescription if it has been changed from the default "WLED", else mDNS name
|
||||
bool useMdnsName = (strcmp(serverDescription, "WLED") == 0 && strlen(cmDNS) > 0);
|
||||
strcpy(out+lengthSum+1,useMdnsName ? cmDNS : serverDescription);
|
||||
uint8_t nlen = strlen(useMdnsName ? cmDNS : serverDescription);
|
||||
out[lengthSum] = nlen;
|
||||
lengthSum += nlen + 1;
|
||||
char vString[32];
|
||||
snprintf_P(vString, sizeof(vString)-1, PSTR("0.14.0-b27.31/%i"),VERSION);
|
||||
const char *str[4] = {"WLED", vString, bString, useMdnsName ? cmDNS : serverDescription};
|
||||
|
||||
packetLen = lengthSum +1;
|
||||
out[8] = lengthSum -9;
|
||||
out[10] = lengthSum -11;
|
||||
|
||||
uint8_t checksum = 0;
|
||||
for (uint8_t i = 0; i < packetLen -1; i++) checksum += out[i];
|
||||
out[packetLen -1] = checksum;
|
||||
Serial.write((uint8_t*)out, packetLen);
|
||||
Serial.write('\n');
|
||||
DIMPROV_PRINT("Info checksum");
|
||||
DIMPROV_PRINTLN(checksum);
|
||||
sendImprovRPCResult(ImprovRPCType::Request_Info, 4, str);
|
||||
}
|
||||
|
||||
#ifndef WLED_DISABLE_IMPROV_WIFISCAN
|
||||
void startImprovWifiScan() {
|
||||
if (improvWifiScanRunning) return;
|
||||
WiFi.scanNetworks(true);
|
||||
improvWifiScanRunning = true;
|
||||
}
|
||||
|
||||
void handleImprovWifiScan() {
|
||||
if (!improvWifiScanRunning) return;
|
||||
int16_t status = WiFi.scanComplete();
|
||||
if (status == WIFI_SCAN_RUNNING) return;
|
||||
// here scan completed or failed (-2)
|
||||
improvWifiScanRunning = false;
|
||||
|
||||
for (int i = 0; i < status; i++) {
|
||||
char rssiStr[8];
|
||||
sprintf(rssiStr, "%d", WiFi.RSSI(i));
|
||||
#ifdef ESP8266
|
||||
bool isOpen = WiFi.encryptionType(i) == ENC_TYPE_NONE;
|
||||
#else
|
||||
bool isOpen = WiFi.encryptionType(i) == WIFI_AUTH_OPEN;
|
||||
#endif
|
||||
|
||||
char ssidStr[33];
|
||||
strcpy(ssidStr, WiFi.SSID(i).c_str());
|
||||
const char *str[3] = {ssidStr, rssiStr, isOpen ? "NO":"YES"};
|
||||
sendImprovRPCResult(ImprovRPCType::Request_Scan, 3, str);
|
||||
}
|
||||
sendImprovRPCResult(ImprovRPCType::Request_Scan, 0);
|
||||
|
||||
WiFi.scanDelete();
|
||||
}
|
||||
#else
|
||||
void startImprovWifiScan() {}
|
||||
void handleImprovWifiScan() {}
|
||||
#endif
|
||||
|
||||
void parseWiFiCommand(char* rpcData) {
|
||||
uint8_t len = rpcData[0];
|
||||
if (!len || len > 126) return;
|
||||
|
||||
@@ -258,7 +258,7 @@ void handlePresets()
|
||||
fdo.remove("ps"); // remove load request for presets to prevent recursive crash (if not called by button and contains preset cycling string "1~5~")
|
||||
deserializeState(fdo, CALL_MODE_NO_NOTIFY, tmpPreset); // may change presetToApply by calling applyPreset()
|
||||
}
|
||||
if (!errorFlag && tmpPreset < 255 && changePreset) presetCycCurr = currentPreset = tmpPreset;
|
||||
if (!errorFlag && tmpPreset < 255 && changePreset) currentPreset = tmpPreset;
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32)
|
||||
//Aircoookie recommended not to delete buffer
|
||||
|
||||
@@ -109,6 +109,7 @@ void WLED::loop()
|
||||
handleRemote();
|
||||
#endif
|
||||
handleSerial();
|
||||
handleImprovWifiScan();
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLEDMM_PROTECT_SERVICE) // WLEDMM experimental: handleNotifications() calls strip.show(); handleTransitions modifies segments
|
||||
if (!suspendStripService) {
|
||||
@@ -827,7 +828,7 @@ void WLED::initAP(bool resetAP)
|
||||
USER_PRINTLN(apSSID); // WLEDMM
|
||||
WiFi.softAPConfig(IPAddress(4, 3, 2, 1), IPAddress(4, 3, 2, 1), IPAddress(255, 255, 255, 0));
|
||||
WiFi.softAP(apSSID, apPass, apChannel, apHide);
|
||||
#if defined(LOLIN_WIFI_FIX) && (defined(ARDUINO_ARCH_ESP32C3) || defined(ARDUINO_ARCH_ESP32S2))
|
||||
#if defined(LOLIN_WIFI_FIX) && (defined(ARDUINO_ARCH_ESP32C3) || defined(ARDUINO_ARCH_ESP32S2) || defined(ARDUINO_ARCH_ESP32S3))
|
||||
WiFi.setTxPower(WIFI_POWER_8_5dBm);
|
||||
#endif
|
||||
|
||||
@@ -962,7 +963,6 @@ void WLED::initConnection()
|
||||
ws.onEvent(wsEvent);
|
||||
#endif
|
||||
|
||||
|
||||
WiFi.disconnect(true); // close old connections
|
||||
#ifdef ESP8266
|
||||
WiFi.setPhyMode(WIFI_PHY_MODE_11N);
|
||||
@@ -1010,7 +1010,7 @@ void WLED::initConnection()
|
||||
|
||||
WiFi.begin(clientSSID, clientPass);
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#if defined(LOLIN_WIFI_FIX) && (defined(ARDUINO_ARCH_ESP32C3) || defined(ARDUINO_ARCH_ESP32S2))
|
||||
#if defined(LOLIN_WIFI_FIX) && (defined(ARDUINO_ARCH_ESP32C3) || defined(ARDUINO_ARCH_ESP32S2) || defined(ARDUINO_ARCH_ESP32S3))
|
||||
WiFi.setTxPower(WIFI_POWER_8_5dBm);
|
||||
#endif
|
||||
WiFi.setSleep(!noWifiSleep);
|
||||
@@ -1228,7 +1228,7 @@ void WLED::handleConnection()
|
||||
if (improvActive) {
|
||||
if (improvError == 3) sendImprovStateResponse(0x00, true);
|
||||
sendImprovStateResponse(0x04);
|
||||
if (improvActive > 1) sendImprovRPCResponse(0x01);
|
||||
if (improvActive > 1) sendImprovIPRPCResult(ImprovRPCType::Command_Wifi);
|
||||
}
|
||||
initInterfaces();
|
||||
userConnected();
|
||||
|
||||
Reference in New Issue
Block a user