Merge branch 'MoonModules:mdev' into ES8388
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0.5.0",
|
||||
"version": "0.14.0.6.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "wled",
|
||||
"version": "0.14.0.5.0",
|
||||
"version": "0.14.0.6.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"clean-css": "^4.2.3",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0.5.0",
|
||||
"version": "0.14.0.6.0",
|
||||
"description": "Tools for WLED project",
|
||||
"main": "tools/cdata.js",
|
||||
"directories": {
|
||||
|
||||
@@ -237,7 +237,7 @@ platform = espressif32@3.5.0
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/Aircoookie/arduino-esp32.git#1.0.6.4
|
||||
|
||||
build_flags = -g
|
||||
-DARDUINO_ARCH_ESP32
|
||||
-DARDUINO_ARCH_ESP32 -DESP32
|
||||
#-DCONFIG_LITTLEFS_FOR_IDF_3_2
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
#use LITTLEFS library by lorol in ESP32 core 1.x.x instead of built-in in 2.x.x
|
||||
@@ -256,13 +256,13 @@ lib_deps =
|
||||
;; ** For compiling with latest Frameworks (IDF4.4.x and arduino-esp32 v2.0.x) **
|
||||
;;; standard platform
|
||||
platformV4 = espressif32@ ~5.1.1
|
||||
platformV4_packages = platformio/framework-arduinoespressif32@ ~3.20004.220825
|
||||
platformV4_packages = platformio/framework-arduinoespressif32@ ~3.20004.0
|
||||
;;; tasmota platform
|
||||
;platformV4 = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.5.1/platform-espressif32-2.0.5.1.zip
|
||||
;platformV4_packages =
|
||||
;;; V4.4.x build flags (without LOROL_LITTLEFS)
|
||||
build_flagsV4 = -g
|
||||
-DARDUINO_ARCH_ESP32
|
||||
-DARDUINO_ARCH_ESP32 -DESP32
|
||||
-DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
;;; V4.4.x libraries (without LOROL_LITTLEFS; with newer NeoPixelBus)
|
||||
@@ -889,7 +889,7 @@ extends = wemos_shield_esp32_4MB_max_base
|
||||
build_flags = ${wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=wemos_shield_esp32_4MB_SPM1423_max ; This will be included in the firmware.bin filename
|
||||
-D SR_DMTYPE=5 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=-1 ; for I2S PDM microphone
|
||||
-D SR_SQUELCH=3 -D SR_GAIN=40 -D SR_FREQ_PROF=5 ; ICS-43434 SPM1423 specific
|
||||
-D SR_SQUELCH=3 -D SR_GAIN=75 -D SR_FREQ_PROF=7 ; SPM1423 specific
|
||||
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
|
||||
; Flash: [========= ] 88.6% (used 1393421 bytes from 1572864 bytes)
|
||||
|
||||
|
||||
@@ -38,6 +38,22 @@
|
||||
#define DEBUGSR_PRINTF(x...)
|
||||
#endif
|
||||
|
||||
#if defined(SR_DEBUG)
|
||||
#define ERRORSR_PRINT(x) DEBUGSR_PRINT(x)
|
||||
#define ERRORSR_PRINTLN(x) DEBUGSR_PRINTLN(x)
|
||||
#define ERRORSR_PRINTF(x...) DEBUGSR_PRINTF(x)
|
||||
#else
|
||||
#if defined(WLED_DEBUG)
|
||||
#define ERRORSR_PRINT(x) DEBUG_PRINT(x)
|
||||
#define ERRORSR_PRINTLN(x) DEBUG_PRINTLN(x)
|
||||
#define ERRORSR_PRINTF(x...) DEBUG_PRINTF(x)
|
||||
#else
|
||||
#define ERRORSR_PRINT(x)
|
||||
#define ERRORSR_PRINTLN(x)
|
||||
#define ERRORSR_PRINTF(x...)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// use audio source class (ESP32 specific)
|
||||
#include "audio_source.h"
|
||||
constexpr i2s_port_t I2S_PORT = I2S_NUM_0; // I2S port to use (do not change !)
|
||||
@@ -130,24 +146,25 @@ static void postProcessFFTResults(bool noiseGateOpen, int numberOfChannels); //
|
||||
static TaskHandle_t FFT_Task = nullptr;
|
||||
|
||||
// Table of multiplication factors so that we can even out the frequency response.
|
||||
#define MAX_PINK 9 // 0 = standard, 1= line-in (pink moise only), 2..4 = IMNP441, 5..6 = ICS-43434, 6..7 = userdef, 9= flat (no pink noise adjustment)
|
||||
#define MAX_PINK 10 // 0 = standard, 1= line-in (pink moise only), 2..4 = IMNP441, 5..6 = ICS-43434, ,7=SPM1423, 8..9 = userdef, 10= flat (no pink noise adjustment)
|
||||
static const float fftResultPink[MAX_PINK+1][NUM_GEQ_CHANNELS] = {
|
||||
{ 1.70f, 1.71f, 1.73f, 1.78f, 1.68f, 1.56f, 1.55f, 1.63f, 1.79f, 1.62f, 1.80f, 2.06f, 2.47f, 3.35f, 6.83f, 9.55f }, // default from SR WLED
|
||||
// { 1.30f, 1.32f, 1.40f, 1.46f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.39f, 3.09f, 4.34f }, // Line-In Generic -> pink noise adjustment only
|
||||
{ 1.24f, 1.20f, 1.30f, 1.40f, 1.48f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.14f, 2.26f, 2.60f, 3.00f, 3.70f, 5.20f }, // Line-In CS5343
|
||||
{ 1.70f, 1.71f, 1.73f, 1.78f, 1.68f, 1.56f, 1.55f, 1.63f, 1.79f, 1.62f, 1.80f, 2.06f, 2.47f, 3.35f, 6.83f, 9.55f }, // 0 default from SR WLED
|
||||
// { 1.30f, 1.32f, 1.40f, 1.46f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.39f, 3.09f, 4.34f }, // - Line-In Generic -> pink noise adjustment only
|
||||
{ 1.24f, 1.20f, 1.30f, 1.40f, 1.48f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.14f, 2.26f, 2.60f, 3.00f, 3.70f, 5.20f }, // 1 Line-In CS5343
|
||||
|
||||
{ 1.82f, 1.72f, 1.70f, 1.50f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.90f, 3.86f, 6.29f}, // IMNP441 datasheet response profile * pink noise
|
||||
{ 2.80f, 2.20f, 1.30f, 1.15f, 1.55f, 2.45f, 4.20f, 2.80f, 3.20f, 3.60f, 4.20f, 4.90f, 5.70f, 6.05f,10.50f,14.85f}, // IMNP441 - big speaker, strong bass
|
||||
{ 1.82f, 1.72f, 1.70f, 1.50f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.90f, 3.86f, 6.29f}, // 2 IMNP441 datasheet response profile * pink noise
|
||||
{ 2.80f, 2.20f, 1.30f, 1.15f, 1.55f, 2.45f, 4.20f, 2.80f, 3.20f, 3.60f, 4.20f, 4.90f, 5.70f, 6.05f,10.50f,14.85f}, // 3 IMNP441 - big speaker, strong bass
|
||||
// next one has not much visual differece compared to default IMNP441 profile
|
||||
{ 12.0f, 6.60f, 2.60f, 1.15f, 1.35f, 2.05f, 2.85f, 2.50f, 2.85f, 3.30f, 2.25f, 4.35f, 3.80f, 3.75f, 6.50f, 9.00f}, // IMNP441 - voice, or small speaker
|
||||
{ 12.0f, 6.60f, 2.60f, 1.15f, 1.35f, 2.05f, 2.85f, 2.50f, 2.85f, 3.30f, 2.25f, 4.35f, 3.80f, 3.75f, 6.50f, 9.00f}, // 4 IMNP441 - voice, or small speaker
|
||||
|
||||
{ 2.75f, 1.60f, 1.40f, 1.46f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 1.75f, 2.55f, 3.60f }, // ICS-43434 datasheet response * pink noise
|
||||
{ 2.25f, 1.20f, 1.00f, 1.20f, 1.80f, 3.20f, 5.10f, 5.50f, 4.00f, 4.80f, 6.70f, 6.40f, 5.80f, 3.90f, 6.00f, 5.10f }, // ICS-43434 - big speaker, strong bass
|
||||
{ 2.75f, 1.60f, 1.40f, 1.46f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 1.75f, 2.55f, 3.60f }, // 5 ICS-43434 datasheet response * pink noise
|
||||
{ 2.25f, 1.20f, 1.00f, 1.20f, 1.80f, 3.20f, 5.10f, 5.50f, 4.00f, 4.80f, 6.70f, 6.40f, 5.80f, 3.90f, 6.00f, 5.10f }, // 6 ICS-43434 - big speaker, strong bass
|
||||
|
||||
{ 2.25f, 1.60f, 1.30f, 1.60f, 2.20f, 3.20f, 3.06f, 2.60f, 2.85f, 3.50f, 4.10f, 4.80f, 5.70f, 6.05f,10.50f,14.85f }, // userdef #1 for ewowi (enhance median/high freqs)
|
||||
{ 4.75f, 3.60f, 2.40f, 2.46f, 3.52f, 1.60f, 1.68f, 3.20f, 2.20f, 2.00f, 2.30f, 2.41f, 2.30f, 1.25f, 4.55f, 6.50f }, // userdef #2 for softhack (mic hidden inside mini-shield)
|
||||
{ 1.65f, 1.00f, 1.05f, 1.30f, 1.48f, 1.30f, 1.80f, 3.00f, 1.50f, 1.65f, 2.56f, 3.00f, 2.60f, 2.30f, 5.00f, 3.00f }, // 7 SPM1423
|
||||
{ 2.25f, 1.60f, 1.30f, 1.60f, 2.20f, 3.20f, 3.06f, 2.60f, 2.85f, 3.50f, 4.10f, 4.80f, 5.70f, 6.05f,10.50f,14.85f }, // 8 userdef #1 for ewowi (enhance median/high freqs)
|
||||
{ 4.75f, 3.60f, 2.40f, 2.46f, 3.52f, 1.60f, 1.68f, 3.20f, 2.20f, 2.00f, 2.30f, 2.41f, 2.30f, 1.25f, 4.55f, 6.50f }, // 9 userdef #2 for softhack (mic hidden inside mini-shield)
|
||||
|
||||
{ 2.38f, 2.18f, 2.07f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.95f, 1.70f, 2.13f, 2.47f } // almost FLAT (IMNP441 but no PINK noise adjustments)
|
||||
{ 2.38f, 2.18f, 2.07f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.70f, 1.95f, 1.70f, 2.13f, 2.47f } // 10 almost FLAT (IMNP441 but no PINK noise adjustments)
|
||||
};
|
||||
|
||||
/* how to make your own profile:
|
||||
@@ -630,6 +647,7 @@ class AudioReactive : public Usermod {
|
||||
#endif
|
||||
#ifndef SR_DMTYPE // I2S mic type
|
||||
uint8_t dmType = 1; // 0=none/disabled/analog; 1=generic I2S
|
||||
#define SR_DMTYPE 1 // default type = I2S
|
||||
#else
|
||||
uint8_t dmType = SR_DMTYPE;
|
||||
#endif
|
||||
@@ -1239,15 +1257,15 @@ class AudioReactive : public Usermod {
|
||||
case 4:
|
||||
DEBUGSR_PRINT(F("AR: Generic I2S Microphone with Master Clock - ")); DEBUGSR_PRINTLN(F(I2S_MIC_CHANNEL_TEXT));
|
||||
//useBandPassFilter = true;
|
||||
audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, true, 1.0f/24.0f);
|
||||
//audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, false, 1.0f/16.0f); // I2S SLAVE mode - does not work, unfortunately
|
||||
audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, 1.0f/24.0f);
|
||||
//audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, 1.0f/24.0f, false); // I2S SLAVE mode - does not work, unfortunately
|
||||
delay(100);
|
||||
if (audioSource) audioSource->initialize(i2swsPin, i2ssdPin, i2sckPin, mclkPin);
|
||||
break;
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||
case 5:
|
||||
DEBUGSR_PRINT(F("AR: I2S PDM Microphone - ")); DEBUGSR_PRINTLN(F(I2S_PDM_MIC_CHANNEL_TEXT));
|
||||
audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, true, 1.0f/4.0f);
|
||||
audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, 1.0f/4.0f);
|
||||
useBandPassFilter = true; // this reduces the noise floor on SPM1423 from 5% Vpp (~380) down to 0.05% Vpp (~5)
|
||||
delay(100);
|
||||
if (audioSource) audioSource->initialize(i2swsPin, i2ssdPin);
|
||||
@@ -1283,7 +1301,7 @@ class AudioReactive : public Usermod {
|
||||
#ifdef WLED_DEBUG
|
||||
DEBUG_PRINTLN(F("AR: Failed to initialize sound input driver. Please check input PIN settings."));
|
||||
#else
|
||||
DEBUGSR_PRINTLN(F("AR: Failed to initialize sound input driver. Please check input PIN settings."));
|
||||
ERRORSR_PRINTLN(F("AR: Failed to initialize sound input driver. Please check input PIN settings."));
|
||||
#endif
|
||||
disableSoundProcessing = true;
|
||||
}
|
||||
@@ -1753,8 +1771,10 @@ class AudioReactive : public Usermod {
|
||||
JsonObject top = root.createNestedObject(FPSTR(_name));
|
||||
top[FPSTR(_enabled)] = enabled;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
JsonObject amic = top.createNestedObject(FPSTR(_analogmic));
|
||||
amic["pin"] = audioPin;
|
||||
#endif
|
||||
|
||||
JsonObject dmic = top.createNestedObject(FPSTR(_digitalmic));
|
||||
dmic[F("type")] = dmType;
|
||||
@@ -1808,9 +1828,20 @@ class AudioReactive : public Usermod {
|
||||
|
||||
configComplete &= getJsonValue(top[FPSTR(_enabled)], enabled);
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
configComplete &= getJsonValue(top[FPSTR(_analogmic)]["pin"], audioPin);
|
||||
#else
|
||||
audioPin = -1; // MCU does not support analog mic
|
||||
#endif
|
||||
|
||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["type"], dmType);
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
if (dmType == 0) dmType = SR_DMTYPE; // MCU does not support analog
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||
if (dmType == 5) dmType = SR_DMTYPE; // MCU does not support PDM
|
||||
#endif
|
||||
#endif
|
||||
|
||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][0], i2ssdPin);
|
||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][1], i2swsPin);
|
||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][2], i2sckPin);
|
||||
@@ -1872,14 +1903,15 @@ class AudioReactive : public Usermod {
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','frequency:profile');"));
|
||||
oappend(SET_F("addOption(dd,'Generic Microphone',0);"));
|
||||
oappend(SET_F("addOption(dd,'Generic Line-In',1);"));
|
||||
oappend(SET_F("addOption(dd,'ICS-43434',5);"));
|
||||
oappend(SET_F("addOption(dd,'ICS-43434 - big speakers',6);"));
|
||||
oappend(SET_F("addOption(dd,'SPM1423',7);"));
|
||||
oappend(SET_F("addOption(dd,'IMNP441',2);"));
|
||||
oappend(SET_F("addOption(dd,'IMNP441 - big speakers',3);"));
|
||||
oappend(SET_F("addOption(dd,'IMNP441 - small speakers',4);"));
|
||||
oappend(SET_F("addOption(dd,'ICS-43434',5);"));
|
||||
oappend(SET_F("addOption(dd,'ICS-43434 - big speakers',6);"));
|
||||
oappend(SET_F("addOption(dd,'userdefined #1',7);"));
|
||||
oappend(SET_F("addOption(dd,'userdefined #2',8);"));
|
||||
oappend(SET_F("addOption(dd,'flat - no adjustments',9);"));
|
||||
oappend(SET_F("addOption(dd,'flat - no adjustments',10);"));
|
||||
oappend(SET_F("addOption(dd,'userdefined #1',8);"));
|
||||
oappend(SET_F("addOption(dd,'userdefined #2',9);"));
|
||||
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','sync:mode');"));
|
||||
oappend(SET_F("addOption(dd,'Off',0);"));
|
||||
|
||||
@@ -150,7 +150,7 @@ class AudioSource {
|
||||
virtual I2S_datatype postProcessSample(I2S_datatype sample_in) {return(sample_in);} // default method can be overriden by instances (ADC) that need sample postprocessing
|
||||
|
||||
// Private constructor, to make sure it is not callable except from derived classes
|
||||
AudioSource(SRate_t sampleRate, int blockSize, bool i2sMaster = true, float sampleScale = 1.0f) :
|
||||
AudioSource(SRate_t sampleRate, int blockSize, float sampleScale, bool i2sMaster) :
|
||||
_sampleRate(sampleRate),
|
||||
_blockSize(blockSize),
|
||||
_initialized(false),
|
||||
@@ -171,8 +171,8 @@ class AudioSource {
|
||||
*/
|
||||
class I2SSource : public AudioSource {
|
||||
public:
|
||||
I2SSource(SRate_t sampleRate, int blockSize, bool i2sMaster=true, float sampleScale = 1.0f) :
|
||||
AudioSource(sampleRate, blockSize, i2sMaster, sampleScale) {
|
||||
I2SSource(SRate_t sampleRate, int blockSize, float sampleScale = 1.0f, bool i2sMaster=true) :
|
||||
AudioSource(sampleRate, blockSize, sampleScale, i2sMaster) {
|
||||
_config = {
|
||||
.mode = i2sMaster ? i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_RX) : i2s_mode_t(I2S_MODE_SLAVE | I2S_MODE_RX),
|
||||
.sample_rate = _sampleRate,
|
||||
@@ -201,7 +201,7 @@ class I2SSource : public AudioSource {
|
||||
if (i2swsPin != I2S_PIN_NO_CHANGE && i2ssdPin != I2S_PIN_NO_CHANGE) {
|
||||
if (!pinManager.allocatePin(i2swsPin, true, PinOwner::UM_Audioreactive) ||
|
||||
!pinManager.allocatePin(i2ssdPin, false, PinOwner::UM_Audioreactive)) { // #206
|
||||
DEBUGSR_PRINTF("\nAR: Failed to allocate I2S pins: ws=%d, sd=%d\n", i2swsPin, i2ssdPin);
|
||||
ERRORSR_PRINTF("\nAR: Failed to allocate I2S pins: ws=%d, sd=%d\n", i2swsPin, i2ssdPin);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -209,7 +209,7 @@ class I2SSource : public AudioSource {
|
||||
// i2ssckPin needs special treatment, since it might be unused on PDM mics
|
||||
if (i2sckPin != I2S_PIN_NO_CHANGE) {
|
||||
if (!pinManager.allocatePin(i2sckPin, true, PinOwner::UM_Audioreactive)) {
|
||||
DEBUGSR_PRINTF("\nAR: Failed to allocate I2S pins: sck=%d\n", i2sckPin);
|
||||
ERRORSR_PRINTF("\nAR: Failed to allocate I2S pins: sck=%d\n", i2sckPin);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
@@ -254,16 +254,22 @@ class I2SSource : public AudioSource {
|
||||
#endif
|
||||
|
||||
if (_i2sMaster == false) {
|
||||
DEBUG_PRINTLN(F("AR: Warning - i2S SLAVE mode is experimental!"));
|
||||
if ((_config.mode & I2S_MODE_MASTER) != 0)
|
||||
DEBUG_PRINTLN(F("AR: Warning - i2S SLAVE mode is experimental!"));
|
||||
if (_config.mode & I2S_MODE_PDM) {
|
||||
// APLL does not work in DAC or PDM "Slave Mode": https://github.com/espressif/esp-idf/issues/1244, https://github.com/espressif/esp-idf/issues/2634
|
||||
_config.use_apll = false;
|
||||
_config.fixed_mclk = 0;
|
||||
}
|
||||
if ((_config.mode & I2S_MODE_MASTER) != 0) {
|
||||
DEBUG_PRINTLN("AR: (oops) I2S SLAVE mode requested but not configured!");
|
||||
}
|
||||
}
|
||||
|
||||
// Reserve the master clock pin if provided
|
||||
_mclkPin = mclkPin;
|
||||
if (mclkPin != I2S_PIN_NO_CHANGE) {
|
||||
if(!pinManager.allocatePin(mclkPin, true, PinOwner::UM_Audioreactive)) {
|
||||
DEBUGSR_PRINTF("\nAR: Failed to allocate I2S pin: MCLK=%d\n", mclkPin);
|
||||
ERRORSR_PRINTF("\nAR: Failed to allocate I2S pin: MCLK=%d\n", mclkPin);
|
||||
return;
|
||||
} else
|
||||
_routeMclk(mclkPin);
|
||||
@@ -283,23 +289,25 @@ class I2SSource : public AudioSource {
|
||||
|
||||
esp_err_t err = i2s_driver_install(I2S_NUM_0, &_config, 0, nullptr);
|
||||
if (err != ESP_OK) {
|
||||
DEBUGSR_PRINTF("AR: Failed to install i2s driver: %d\n", err);
|
||||
ERRORSR_PRINTF("AR: Failed to install i2s driver: %d\n", err);
|
||||
return;
|
||||
}
|
||||
|
||||
DEBUGSR_PRINTF("AR: I2S#0 driver %s aPLL; fixed_mclk=%d.\n", _config.use_apll? "uses":"without", _config.fixed_mclk);
|
||||
DEBUGSR_PRINTF("AR: %d bits, Sample scaling factor = %6.4f\n", _config.bits_per_sample, _sampleScale);
|
||||
if(_config.mode & I2S_MODE_MASTER) {
|
||||
if (_config.mode & I2S_MODE_PDM)
|
||||
if (_config.mode & I2S_MODE_PDM) {
|
||||
DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in PDM MASTER mode."));
|
||||
else
|
||||
} else {
|
||||
DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in MASTER mode."));
|
||||
} else
|
||||
}
|
||||
} else {
|
||||
DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in SLAVE mode."));
|
||||
}
|
||||
|
||||
err = i2s_set_pin(I2S_NUM_0, &_pinConfig);
|
||||
if (err != ESP_OK) {
|
||||
DEBUGSR_PRINTF("AR: Failed to set i2s pin config: %d\n", err);
|
||||
ERRORSR_PRINTF("AR: Failed to set i2s pin config: %d\n", err);
|
||||
i2s_driver_uninstall(I2S_NUM_0); // uninstall already-installed driver
|
||||
return;
|
||||
}
|
||||
@@ -307,7 +315,7 @@ class I2SSource : public AudioSource {
|
||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0)
|
||||
err = i2s_set_clk(I2S_NUM_0, _sampleRate, I2S_SAMPLE_RESOLUTION, I2S_CHANNEL_MONO); // set bit clocks. Also takes care of MCLK routing if needed.
|
||||
if (err != ESP_OK) {
|
||||
DEBUGSR_PRINTF("AR: Failed to configure i2s clocks: %d\n", err);
|
||||
ERRORSR_PRINTF("AR: Failed to configure i2s clocks: %d\n", err);
|
||||
i2s_driver_uninstall(I2S_NUM_0); // uninstall already-installed driver
|
||||
return;
|
||||
}
|
||||
@@ -400,18 +408,25 @@ class ES7243 : public I2SSource {
|
||||
private:
|
||||
// I2C initialization functions for ES7243
|
||||
void _es7243I2cBegin() {
|
||||
Wire.begin(pin_ES7243_SDA, pin_ES7243_SCL, 100000U);
|
||||
bool i2c_initialized = Wire.begin(pin_ES7243_SDA, pin_ES7243_SCL, 100000U);
|
||||
if (i2c_initialized == false) {
|
||||
ERRORSR_PRINTLN(F("AR: ES7243 failed to initialize I2C bus driver."));
|
||||
}
|
||||
}
|
||||
|
||||
void _es7243I2cWrite(uint8_t reg, uint8_t val) {
|
||||
#ifndef ES7243_ADDR
|
||||
Wire.beginTransmission(0x13);
|
||||
#define ES7243_ADDR 0x13 // default address
|
||||
#else
|
||||
Wire.beginTransmission(ES7243_ADDR);
|
||||
#endif
|
||||
Wire.write((uint8_t)reg);
|
||||
Wire.write((uint8_t)val);
|
||||
Wire.endTransmission();
|
||||
uint8_t i2cErr = Wire.endTransmission(); // i2cErr == 0 means OK
|
||||
if (i2cErr != 0) {
|
||||
DEBUGSR_PRINTF("AR: ES7243 I2C write failed with error=%d (addr=0x%X, reg 0x%X, val 0x%X).\n", ES7243_ADDR, i2cErr, reg, val);
|
||||
}
|
||||
}
|
||||
|
||||
void _es7243InitAdc() {
|
||||
@@ -425,20 +440,20 @@ class ES7243 : public I2SSource {
|
||||
}
|
||||
|
||||
public:
|
||||
ES7243(SRate_t sampleRate, int blockSize) :
|
||||
I2SSource(sampleRate, blockSize) {
|
||||
ES7243(SRate_t sampleRate, int blockSize, float sampleScale = 1.0f, bool i2sMaster=true) :
|
||||
I2SSource(sampleRate, blockSize, sampleScale, i2sMaster) {
|
||||
_config.channel_format = I2S_CHANNEL_FMT_ONLY_RIGHT;
|
||||
};
|
||||
|
||||
void initialize(int8_t sdaPin, int8_t sclPin, int8_t i2swsPin, int8_t i2ssdPin, int8_t i2sckPin, int8_t mclkPin) {
|
||||
// check that pins are valid
|
||||
if ((sdaPin < 0) || (sclPin < 0)) {
|
||||
DEBUGSR_PRINTF("\nAR: invalid ES7243 I2C pins: SDA=%d, SCL=%d\n", sdaPin, sclPin);
|
||||
ERRORSR_PRINTF("\nAR: invalid ES7243 I2C pins: SDA=%d, SCL=%d\n", sdaPin, sclPin);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((i2sckPin < 0) || (mclkPin < 0)) {
|
||||
DEBUGSR_PRINTF("\nAR: invalid I2S pin: SCK=%d, MCLK=%d\n", i2sckPin, mclkPin);
|
||||
ERRORSR_PRINTF("\nAR: invalid I2S pin: SCK=%d, MCLK=%d\n", i2sckPin, mclkPin);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -446,7 +461,7 @@ public:
|
||||
PinManagerPinType es7243Pins[2] = { { sdaPin, true }, { sclPin, true } };
|
||||
if (!pinManager.allocateMultiplePins(es7243Pins, 2, PinOwner::HW_I2C)) {
|
||||
pinManager.deallocateMultiplePins(es7243Pins, 2, PinOwner::HW_I2C);
|
||||
DEBUGSR_PRINTF("\nAR: Failed to allocate ES7243 I2C pins: SDA=%d, SCL=%d\n", sdaPin, sclPin);
|
||||
ERRORSR_PRINTF("\nAR: Failed to allocate ES7243 I2C pins: SDA=%d, SCL=%d\n", sdaPin, sclPin);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -543,8 +558,8 @@ public:
|
||||
*/
|
||||
class I2SAdcSource : public I2SSource {
|
||||
public:
|
||||
I2SAdcSource(SRate_t sampleRate, int blockSize) :
|
||||
I2SSource(sampleRate, blockSize) {
|
||||
I2SAdcSource(SRate_t sampleRate, int blockSize, float sampleScale = 1.0f) :
|
||||
I2SSource(sampleRate, blockSize, sampleScale, true) {
|
||||
_config = {
|
||||
.mode = i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_RX | I2S_MODE_ADC_BUILT_IN),
|
||||
.sample_rate = _sampleRate,
|
||||
@@ -570,7 +585,7 @@ class I2SAdcSource : public I2SSource {
|
||||
void initialize(int8_t audioPin, int8_t = I2S_PIN_NO_CHANGE, int8_t = I2S_PIN_NO_CHANGE, int8_t = I2S_PIN_NO_CHANGE, int8_t = I2S_PIN_NO_CHANGE, int8_t = I2S_PIN_NO_CHANGE) {
|
||||
_myADCchannel = 0x0F;
|
||||
if(!pinManager.allocatePin(audioPin, false, PinOwner::UM_Audioreactive)) {
|
||||
DEBUGSR_PRINTF("failed to allocate GPIO for audio analog input: %d\n", audioPin);
|
||||
ERRORSR_PRINTF("failed to allocate GPIO for audio analog input: %d\n", audioPin);
|
||||
return;
|
||||
}
|
||||
_audioPin = audioPin;
|
||||
@@ -578,7 +593,7 @@ class I2SAdcSource : public I2SSource {
|
||||
// Determine Analog channel. Only Channels on ADC1 are supported
|
||||
int8_t channel = digitalPinToAnalogChannel(_audioPin);
|
||||
if (channel > 9) {
|
||||
DEBUGSR_PRINTF("Incompatible GPIO used for audio in: %d\n", _audioPin);
|
||||
ERRORSR_PRINTF("Incompatible GPIO used for analog audio input: %d\n", _audioPin);
|
||||
return;
|
||||
} else {
|
||||
adc_gpio_init(ADC_UNIT_1, adc_channel_t(channel));
|
||||
@@ -588,7 +603,7 @@ class I2SAdcSource : public I2SSource {
|
||||
// Install Driver
|
||||
esp_err_t err = i2s_driver_install(I2S_NUM_0, &_config, 0, nullptr);
|
||||
if (err != ESP_OK) {
|
||||
DEBUGSR_PRINTF("Failed to install i2s driver: %d\n", err);
|
||||
ERRORSR_PRINTF("Failed to install i2s driver: %d\n", err);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -734,8 +749,8 @@ class I2SAdcSource : public I2SSource {
|
||||
// a user recommended this: Try to set .communication_format to I2S_COMM_FORMAT_STAND_I2S and call i2s_set_clk() after i2s_set_pin().
|
||||
class SPH0654 : public I2SSource {
|
||||
public:
|
||||
SPH0654(SRate_t sampleRate, int blockSize) :
|
||||
I2SSource(sampleRate, blockSize)
|
||||
SPH0654(SRate_t sampleRate, int blockSize, float sampleScale = 1.0f, bool i2sMaster=true) :
|
||||
I2SSource(sampleRate, blockSize, sampleScale, i2sMaster)
|
||||
{}
|
||||
|
||||
void initialize(uint8_t i2swsPin, uint8_t i2ssdPin, uint8_t i2sckPin, int8_t = I2S_PIN_NO_CHANGE, int8_t = I2S_PIN_NO_CHANGE, int8_t = I2S_PIN_NO_CHANGE) {
|
||||
|
||||
@@ -1496,11 +1496,12 @@ public:
|
||||
Symbol* var_symbol = current_scope->lookup(variable_name); //lookup here and parent scopes
|
||||
if (node == F_VarRef)
|
||||
{
|
||||
if (var_symbol == nullptr)
|
||||
if (var_symbol == nullptr) {
|
||||
WARNING_ARTI("%s VarRef %s ID not found in scope of %s\n", spaces+50-depth, variable_name, current_scope->scope_name);
|
||||
//only warning: value 0 in interpreter (div 0 is captured)
|
||||
else
|
||||
} else {
|
||||
ANDBG_ARTI("%s VarRef found %s.%s (%u)\n", spaces+50-depth, var_symbol->scope->scope_name, variable_name, depth);
|
||||
}
|
||||
}
|
||||
else //assign and var/formal
|
||||
{
|
||||
@@ -2007,8 +2008,9 @@ public:
|
||||
// valueStack->push(callResult);
|
||||
|
||||
} //function_symbol != nullptr
|
||||
else
|
||||
else {
|
||||
RUNLOG_ARTI("%s %s not found %s\n", spaces+50-depth, key, function_name);
|
||||
}
|
||||
} //external functions
|
||||
|
||||
visitedAlready = true;
|
||||
@@ -2276,8 +2278,9 @@ public:
|
||||
valueStack->push(-valueStack->floatStack[oldIndex + 1]);
|
||||
RUNLOG_ARTI("%s unary - %f (push %u)\n", spaces+50-depth, valueStack->floatStack[oldIndex + 1], valueStack->stack_index );
|
||||
}
|
||||
else
|
||||
else {
|
||||
RUNLOG_ARTI("%s unary operator not supported %u %s\n", spaces+50-depth, operatorx, tokenToString(operatorx));
|
||||
}
|
||||
}
|
||||
|
||||
visitedAlready = true;
|
||||
|
||||
@@ -121,7 +121,6 @@ function downloadCEFile(name) {
|
||||
var url = "https://raw.githubusercontent.com/MoonModules/WLED-Effects/master/CustomEffects/wled/";
|
||||
|
||||
fetchAndExecute(url, name, function(text) {
|
||||
console.log(text);
|
||||
if (name == "wledv032.json" || name == "presets.json") {
|
||||
if (!confirm('Are you sure to download/overwrite ' + name + '?'))
|
||||
return;
|
||||
|
||||
@@ -91,6 +91,10 @@ class AutoSaveUsermod : public Usermod {
|
||||
#endif
|
||||
}
|
||||
|
||||
void enable(bool enable) {
|
||||
enabled = enable;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
// gets called once at boot. Do all initialization that doesn't depend on
|
||||
@@ -155,12 +159,24 @@ class AutoSaveUsermod : public Usermod {
|
||||
* Creating an "u" object allows you to add custom key/value pairs to the Info section of the WLED web UI.
|
||||
* Below it is shown how this could be used for e.g. a light sensor
|
||||
*/
|
||||
//void addToJsonInfo(JsonObject& root) {
|
||||
//JsonObject user = root["u"];
|
||||
//if (user.isNull()) user = root.createNestedObject("u");
|
||||
//JsonArray data = user.createNestedArray(F("Autosave"));
|
||||
//data.add(F("Loaded."));
|
||||
//}
|
||||
void addToJsonInfo(JsonObject& root) {
|
||||
JsonObject user = root["u"];
|
||||
if (user.isNull()) {
|
||||
user = root.createNestedObject("u");
|
||||
}
|
||||
|
||||
JsonArray infoArr = user.createNestedArray(FPSTR(_name)); // name
|
||||
|
||||
String uiDomString = F("<button class=\"btn btn-xs\" onclick=\"requestJson({");
|
||||
uiDomString += FPSTR(_name);
|
||||
uiDomString += F(":{");
|
||||
uiDomString += FPSTR(_autoSaveEnabled);
|
||||
uiDomString += enabled ? F(":false}});\">") : F(":true}});\">");
|
||||
uiDomString += F("<i class=\"icons ");
|
||||
uiDomString += enabled ? "on" : "off";
|
||||
uiDomString += F("\"></i></button>");
|
||||
infoArr.add(uiDomString);
|
||||
}
|
||||
|
||||
/*
|
||||
* addToJsonState() can be used to add custom entries to the /json/state part of the JSON API (state object).
|
||||
@@ -173,9 +189,20 @@ class AutoSaveUsermod : public Usermod {
|
||||
* readFromJsonState() can be used to receive data clients send to the /json/state part of the JSON API (state object).
|
||||
* Values in the state object may be modified by connected clients
|
||||
*/
|
||||
//void readFromJsonState(JsonObject& root) {
|
||||
// if (!initDone) return; // prevent crash on boot applyPreset()
|
||||
//}
|
||||
void readFromJsonState(JsonObject& root) {
|
||||
if (!initDone) return; // prevent crash on boot applyPreset()
|
||||
bool en = enabled;
|
||||
JsonObject um = root[FPSTR(_name)];
|
||||
if (!um.isNull()) {
|
||||
if (um[FPSTR(_autoSaveEnabled)].is<bool>()) {
|
||||
en = um[FPSTR(_autoSaveEnabled)].as<bool>();
|
||||
} else {
|
||||
String str = um[FPSTR(_autoSaveEnabled)]; // checkbox -> off or on
|
||||
en = (bool)(str!="off"); // off is guaranteed to be present
|
||||
}
|
||||
if (en != enabled) enable(en);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* addToConfig() can be used to add custom persistent settings to the cfg.json file in the "um" (usermod) object.
|
||||
|
||||
@@ -164,8 +164,8 @@ uint16_t mode_pongGame(void) {
|
||||
SEGMENT.setPixelColorXY(vW/2, i, BLUE);
|
||||
}
|
||||
|
||||
char tempString[2] = "";
|
||||
sprintf(tempString, "%1d%1d", ball->scoreRight, ball->scoreLeft);
|
||||
char tempString[4] = { '\0' };
|
||||
snprintf(tempString, 4, "%1d%1d", ball->scoreRight, ball->scoreLeft);
|
||||
SEGMENT.drawCharacter(tempString[0], vW/2-5, -2, 5, 8, BLUE);
|
||||
SEGMENT.drawCharacter(tempString[1], vW/2+2, -2, 5, 8, BLUE);
|
||||
|
||||
|
||||
@@ -596,7 +596,7 @@ uint16_t mode_twinkle(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_TWINKLE[] PROGMEM = "Twinkle@!;!,!;!;mp12=0,1d"; //pixels
|
||||
static const char _data_FX_MODE_TWINKLE[] PROGMEM = "Twinkle@!;!,!;!;m12=0,1d"; //pixels
|
||||
|
||||
|
||||
/*
|
||||
@@ -673,7 +673,7 @@ uint16_t mode_sparkle(void) {
|
||||
SEGMENT.setPixelColor(SEGENV.aux0, SEGCOLOR(0));
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_SPARKLE[] PROGMEM = "Sparkle@!;!,!;!;mp12=0,1d";
|
||||
static const char _data_FX_MODE_SPARKLE[] PROGMEM = "Sparkle@!;!,!;!;m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -694,7 +694,7 @@ uint16_t mode_flash_sparkle(void) {
|
||||
}
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_FLASH_SPARKLE[] PROGMEM = "Sparkle Dark@!,!;Bg,Fx;!;mp12=0,1d";
|
||||
static const char _data_FX_MODE_FLASH_SPARKLE[] PROGMEM = "Sparkle Dark@!,!;Bg,Fx;!;m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -717,7 +717,7 @@ uint16_t mode_hyper_sparkle(void) {
|
||||
}
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_HYPER_SPARKLE[] PROGMEM = "Sparkle+@!,!;Bg,Fx;!;mp12=0,1d";
|
||||
static const char _data_FX_MODE_HYPER_SPARKLE[] PROGMEM = "Sparkle+@!,!;Bg,Fx;!;m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -799,7 +799,7 @@ uint16_t mode_android(void) {
|
||||
|
||||
return 3 + ((8 * (uint32_t)(255 - SEGMENT.speed)) / SEGLEN);
|
||||
}
|
||||
static const char _data_FX_MODE_ANDROID[] PROGMEM = "Android@!,Width;!,!;!;mp12=1,1d"; //vertical
|
||||
static const char _data_FX_MODE_ANDROID[] PROGMEM = "Android@!,Width;!,!;!;m12=1,1d"; //vertical
|
||||
|
||||
|
||||
/*
|
||||
@@ -1146,7 +1146,7 @@ uint16_t larson_scanner(bool dual) {
|
||||
uint16_t mode_larson_scanner(void){
|
||||
return larson_scanner(false);
|
||||
}
|
||||
static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;!,!;!;mp12=0,1d";
|
||||
static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;!,!;!;m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -1156,7 +1156,7 @@ static const char _data_FX_MODE_LARSON_SCANNER[] PROGMEM = "Scanner@!,Fade rate;
|
||||
uint16_t mode_dual_larson_scanner(void){
|
||||
return larson_scanner(true);
|
||||
}
|
||||
static const char _data_FX_MODE_DUAL_LARSON_SCANNER[] PROGMEM = "Scanner Dual@!,Fade rate;!,!;!;mp12=0,1d";
|
||||
static const char _data_FX_MODE_DUAL_LARSON_SCANNER[] PROGMEM = "Scanner Dual@!,Fade rate;!,!;!;m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -1508,7 +1508,7 @@ uint16_t mode_fairytwinkle() {
|
||||
}
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_FAIRYTWINKLE[] PROGMEM = "Fairy Twinkle@;;;mp12=0,1d"; //pixels
|
||||
static const char _data_FX_MODE_FAIRYTWINKLE[] PROGMEM = "Fairy Twinkle@;;;m12=0,1d"; //pixels
|
||||
|
||||
|
||||
/*
|
||||
@@ -2016,7 +2016,7 @@ uint16_t mode_fire_2012()
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,mp12=1,1.5d"; //bars
|
||||
static const char _data_FX_MODE_FIRE_2012[] PROGMEM = "Fire 2012@Cooling,Spark rate;1,2,3;!;sx=120,ix=64,m12=1,1.5d"; //bars
|
||||
|
||||
|
||||
// ColorWavesWithPalettes by Mark Kriegsman: https://gist.github.com/kriegsman/8281905786e8b2632aeb
|
||||
@@ -2248,7 +2248,7 @@ uint16_t mode_colortwinkle()
|
||||
}
|
||||
return FRAMETIME_FIXED;
|
||||
}
|
||||
static const char _data_FX_MODE_COLORTWINKLE[] PROGMEM = "Colortwinkles@Fade speed,Spawn speed;1,2,3;!;mp12=0,1d"; //pixels
|
||||
static const char _data_FX_MODE_COLORTWINKLE[] PROGMEM = "Colortwinkles@Fade speed,Spawn speed;1,2,3;!;m12=0,1d"; //pixels
|
||||
|
||||
|
||||
//Calm effect, like a lake at night
|
||||
@@ -2857,7 +2857,7 @@ uint16_t mode_bouncing_balls(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravity,# of balls;!,!,!;!;mp12=1,1.5d"; //bar
|
||||
static const char _data_FX_MODE_BOUNCINGBALLS[] PROGMEM = "Bouncing Balls@Gravity,# of balls;!,!,!;!;m12=1,1.5d"; //bar
|
||||
|
||||
|
||||
/*
|
||||
@@ -2927,7 +2927,7 @@ uint16_t mode_glitter()
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_GLITTER[] PROGMEM = "Glitter@,!;!,!,!;!;mp12=0,1d"; //pixels
|
||||
static const char _data_FX_MODE_GLITTER[] PROGMEM = "Glitter@,!;!,!,!;!;m12=0,1d"; //pixels
|
||||
|
||||
|
||||
//each needs 19 bytes
|
||||
@@ -3000,7 +3000,7 @@ uint16_t mode_popcorn(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;mp12=1,1.5d"; //bar
|
||||
static const char _data_FX_MODE_POPCORN[] PROGMEM = "Popcorn@!,!;!,!,!;!;m12=1,1.5d"; //bar
|
||||
|
||||
|
||||
//values close to 100 produce 5Hz flicker, which looks very candle-y
|
||||
@@ -3227,7 +3227,7 @@ uint16_t mode_starburst(void) {
|
||||
return FRAMETIME;
|
||||
}
|
||||
#undef STARBURST_MAX_FRAG
|
||||
static const char _data_FX_MODE_STARBURST[] PROGMEM = "Fireworks Starburst@Chance,Fragments;,!;!;pal=11,mp12=0,1d";
|
||||
static const char _data_FX_MODE_STARBURST[] PROGMEM = "Fireworks Starburst@Chance,Fragments;,!;!;pal=11,m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -3451,7 +3451,7 @@ uint16_t mode_drip(void)
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips,Fall ratio;!,!;!;mp12=1,1.5d"; //bar
|
||||
static const char _data_FX_MODE_DRIP[] PROGMEM = "Drip@Gravity,# of drips,Fall ratio;!,!;!;m12=1,1.5d"; //bar
|
||||
|
||||
|
||||
/*
|
||||
@@ -3540,7 +3540,7 @@ uint16_t mode_tetrix(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_TETRIX[] PROGMEM = "Tetrix@!,Width;!,!,;!;sx=0,ix=0,pal=11,mp12=1,1.5d";
|
||||
static const char _data_FX_MODE_TETRIX[] PROGMEM = "Tetrix@!,Width;!,!,;!;sx=0,ix=0,pal=11,m12=1,1.5d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -3652,7 +3652,7 @@ uint16_t mode_heartbeat(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!;!;mp12=1,1d";
|
||||
static const char _data_FX_MODE_HEARTBEAT[] PROGMEM = "Heartbeat@!,!;!,!;!;m12=1,1d";
|
||||
|
||||
|
||||
// "Pacifica"
|
||||
@@ -3784,7 +3784,7 @@ uint16_t mode_solid_glitter()
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_SOLID_GLITTER[] PROGMEM = "Solid Glitter@,!;!;0;mp12=0,1d";
|
||||
static const char _data_FX_MODE_SOLID_GLITTER[] PROGMEM = "Solid Glitter@,!;!;0;m12=0,1d";
|
||||
|
||||
|
||||
/*
|
||||
@@ -3893,7 +3893,7 @@ uint16_t mode_twinkleup(void) { // A very short twinkle routine
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_TWINKLEUP[] PROGMEM = "Twinkleup@!,Intensity;!,!;!;mp12=0,1d";
|
||||
static const char _data_FX_MODE_TWINKLEUP[] PROGMEM = "Twinkleup@!,Intensity;!,!;!;m12=0,1d";
|
||||
|
||||
|
||||
// Peaceful noise that's slow and with gradually changing palettes. Does not support WLED palettes or default colours or controls.
|
||||
@@ -3992,7 +3992,7 @@ uint16_t mode_flow(void)
|
||||
|
||||
return FRAMETIME;
|
||||
}
|
||||
static const char _data_FX_MODE_FLOW[] PROGMEM = "Flow@!,!;!,!,!;!;mp12=1,1d"; //vertical
|
||||
static const char _data_FX_MODE_FLOW[] PROGMEM = "Flow@!,!;!,!,!;!;m12=1,1d"; //vertical
|
||||
|
||||
|
||||
/*
|
||||
@@ -6051,7 +6051,7 @@ uint16_t mode_ripplepeak(void) { // * Ripple peak. By Andrew Tuli
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_ripplepeak()
|
||||
static const char _data_FX_MODE_RIPPLEPEAK[] PROGMEM = "Ripple Peak@Fade rate,Max # of ripples,Select bin,Volume (min);!,!;!;c2=0,mp12=0,ssim=0,1d,vo"; // Pixel, Beatsin
|
||||
static const char _data_FX_MODE_RIPPLEPEAK[] PROGMEM = "Ripple Peak@Fade rate,Max # of ripples,Select bin,Volume (min);!,!;!;c2=0,m12=0,si=0,1d,vo"; // Pixel, Beatsin
|
||||
|
||||
|
||||
#ifndef WLED_DISABLE_2D
|
||||
@@ -6099,7 +6099,7 @@ uint16_t mode_2DSwirl(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_2DSwirl()
|
||||
static const char _data_FX_MODE_2DSWIRL[] PROGMEM = "Swirl@!,Sensitivity,Blur;,Bg Swirl;!;ix=64ssim=0,2d,vo"; // Beatsin
|
||||
static const char _data_FX_MODE_2DSWIRL[] PROGMEM = "Swirl@!,Sensitivity,Blur;,Bg Swirl;!;ix=64si=0,2d,vo"; // Beatsin
|
||||
|
||||
|
||||
/////////////////////////
|
||||
@@ -6140,7 +6140,7 @@ uint16_t mode_2DWaverly(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_2DWaverly()
|
||||
static const char _data_FX_MODE_2DWAVERLY[] PROGMEM = "Waverly@Amplification,Sensitivity;;!;ix=64,ssim=0,2d,vo"; // Beatsin
|
||||
static const char _data_FX_MODE_2DWAVERLY[] PROGMEM = "Waverly@Amplification,Sensitivity;;!;ix=64,si=0,2d,vo"; // Beatsin
|
||||
|
||||
#endif // WLED_DISABLE_2D
|
||||
|
||||
@@ -6200,7 +6200,7 @@ uint16_t mode_gravcenter(void) { // Gravcenter. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_gravcenter()
|
||||
static const char _data_FX_MODE_GRAVCENTER[] PROGMEM = "Gravcenter@Rate of fall,Sensitivity;,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_GRAVCENTER[] PROGMEM = "Gravcenter@Rate of fall,Sensitivity;,!;!;ix=128,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -6251,7 +6251,7 @@ uint16_t mode_gravcentric(void) { // Gravcentric. By Andrew
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_gravcentric()
|
||||
static const char _data_FX_MODE_GRAVCENTRIC[] PROGMEM = "Gravcentric@Rate of fall,Sensitivity;!;!;ix=128,mp12=3,ssim=0,1d,vo"; // Corner, Beatsin
|
||||
static const char _data_FX_MODE_GRAVCENTRIC[] PROGMEM = "Gravcentric@Rate of fall,Sensitivity;!;!;ix=128,m12=3,si=0,1d,vo"; // Corner, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -6297,7 +6297,7 @@ uint16_t mode_gravimeter(void) { // Gravmeter. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_gravimeter()
|
||||
static const char _data_FX_MODE_GRAVIMETER[] PROGMEM = "Gravimeter@Rate of fall,Sensitivity;!,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_GRAVIMETER[] PROGMEM = "Gravimeter@Rate of fall,Sensitivity;!,!;!;ix=128,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6320,7 +6320,7 @@ uint16_t mode_juggles(void) { // Juggles. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_juggles()
|
||||
static const char _data_FX_MODE_JUGGLES[] PROGMEM = "Juggles@!,# of balls;,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_JUGGLES[] PROGMEM = "Juggles@!,# of balls;,!;!;m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6352,7 +6352,7 @@ uint16_t mode_matripix(void) { // Matripix. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_matripix()
|
||||
static const char _data_FX_MODE_MATRIPIX[] PROGMEM = "Matripix@!,Brightness;!,!;!;ix=64,mp12=2,ssim=1,1d,vo"; //,rev=1,mi=1,rY=1,mY=1 Circle, WeWillRockYou, reverseX
|
||||
static const char _data_FX_MODE_MATRIPIX[] PROGMEM = "Matripix@!,Brightness;!,!;!;ix=64,m12=2,si=1,1d,vo"; //,rev=1,mi=1,rY=1,mY=1 Circle, WeWillRockYou, reverseX
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6387,7 +6387,7 @@ uint16_t mode_midnoise(void) { // Midnoise. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_midnoise()
|
||||
static const char _data_FX_MODE_MIDNOISE[] PROGMEM = "Midnoise@Fade rate,Maximum length;,!;!;ix=128,mp12=1,ssim=0,1d,vo"; // Bar, Beatsin
|
||||
static const char _data_FX_MODE_MIDNOISE[] PROGMEM = "Midnoise@Fade rate,Maximum length;,!;!;ix=128,m12=1,si=0,1d,vo"; // Bar, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6420,7 +6420,7 @@ uint16_t mode_noisefire(void) { // Noisefire. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_noisefire()
|
||||
static const char _data_FX_MODE_NOISEFIRE[] PROGMEM = "Noisefire@!,!;;;mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_NOISEFIRE[] PROGMEM = "Noisefire@!,!;;;m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -6455,7 +6455,7 @@ uint16_t mode_noisemeter(void) { // Noisemeter. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_noisemeter()
|
||||
static const char _data_FX_MODE_NOISEMETER[] PROGMEM = "Noisemeter@Fade rate,Width;!,!;!;ix=128,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_NOISEMETER[] PROGMEM = "Noisemeter@Fade rate,Width;!,!;!;ix=128,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6489,7 +6489,7 @@ uint16_t mode_pixelwave(void) { // Pixelwave. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_pixelwave()
|
||||
static const char _data_FX_MODE_PIXELWAVE[] PROGMEM = "Pixelwave@!,Sensitivity;!,!;!;ix=64,mp12=2,ssim=0,1d,vo"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_PIXELWAVE[] PROGMEM = "Pixelwave@!,Sensitivity;!,!;!;ix=64,m12=2,si=0,1d,vo"; // Circle, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6530,7 +6530,7 @@ uint16_t mode_plasmoid(void) { // Plasmoid. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_plasmoid()
|
||||
static const char _data_FX_MODE_PLASMOID[] PROGMEM = "Plasmoid@Phase,# of pixels;!,!;!;sx=128,ix=128,mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_PLASMOID[] PROGMEM = "Plasmoid@Phase,# of pixels;!,!;!;sx=128,ix=128,m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -6574,7 +6574,7 @@ uint16_t mode_puddlepeak(void) { // Puddlepeak. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_puddlepeak()
|
||||
static const char _data_FX_MODE_PUDDLEPEAK[] PROGMEM = "Puddlepeak@Fade rate,Puddle size,Select bin,Volume (min);!,!;!;c2=0,mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_PUDDLEPEAK[] PROGMEM = "Puddlepeak@Fade rate,Puddle size,Select bin,Volume (min);!,!;!;c2=0,m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6605,7 +6605,7 @@ uint16_t mode_puddles(void) { // Puddles. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_puddles()
|
||||
static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle size;!,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_PUDDLES[] PROGMEM = "Puddles@Fade rate,Puddle size;!,!;!;m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6633,7 +6633,7 @@ uint16_t mode_pixels(void) { // Pixels. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_pixels()
|
||||
static const char _data_FX_MODE_PIXELS[] PROGMEM = "Pixels@Fade rate,# of pixels;,!;!;mp12=0,ssim=0,1d,vo"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_PIXELS[] PROGMEM = "Pixels@Fade rate,# of pixels;,!;!;m12=0,si=0,1d,vo"; // Pixels, Beatsin
|
||||
|
||||
|
||||
///////////////////////////////
|
||||
@@ -6674,7 +6674,7 @@ uint16_t mode_blurz(void) { // Blurz. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_blurz()
|
||||
static const char _data_FX_MODE_BLURZ[] PROGMEM = "Blurz@Fade rate,Blur amount;!,Color mix;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_BLURZ[] PROGMEM = "Blurz@Fade rate,Blur amount;!,Color mix;!;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||
|
||||
|
||||
/////////////////////////
|
||||
@@ -6709,7 +6709,7 @@ uint16_t mode_DJLight(void) { // Written by ??? Adapted by Wil
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_DJLight()
|
||||
static const char _data_FX_MODE_DJLIGHT[] PROGMEM = "DJ Light@Speed;;;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_DJLIGHT[] PROGMEM = "DJ Light@Speed;;;m12=2,si=0,1d,fr"; // Circle, Beatsin
|
||||
|
||||
|
||||
////////////////////
|
||||
@@ -6745,7 +6745,7 @@ uint16_t mode_freqmap(void) { // Map FFT_MajorPeak to SEGLEN.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_freqmap()
|
||||
static const char _data_FX_MODE_FREQMAP[] PROGMEM = "Freqmap@Fade rate,Starting color;,!;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_FREQMAP[] PROGMEM = "Freqmap@Fade rate,Starting color;,!;!;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -6800,7 +6800,7 @@ uint16_t mode_freqmatrix(void) { // Freqmatrix. By Andreas Plesch
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_freqmatrix()
|
||||
static const char _data_FX_MODE_FREQMATRIX[] PROGMEM = "Freqmatrix@Time delay,Sound effect,Low bin,High bin,Sensivity;;;mp12=3,ssim=0,1d,fr"; // Corner, Beatsin
|
||||
static const char _data_FX_MODE_FREQMATRIX[] PROGMEM = "Freqmatrix@Time delay,Sound effect,Low bin,High bin,Sensivity;;;m12=3,si=0,1d,fr"; // Corner, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6835,7 +6835,7 @@ uint16_t mode_freqpixels(void) { // Freqpixel. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_freqpixels()
|
||||
static const char _data_FX_MODE_FREQPIXELS[] PROGMEM = "Freqpixels@Fade rate,Starting colour and # of pixels;;;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_FREQPIXELS[] PROGMEM = "Freqpixels@Fade rate,Starting colour and # of pixels;;;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6904,7 +6904,7 @@ uint16_t mode_freqwave(void) { // Freqwave. By Andreas Pleschun
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_freqwave()
|
||||
static const char _data_FX_MODE_FREQWAVE[] PROGMEM = "Freqwave@Time delay,Sound effect,Low bin,High bin,Pre-amp;;;mp12=2,ssim=0,1d,fr"; // Circle, Beatsin
|
||||
static const char _data_FX_MODE_FREQWAVE[] PROGMEM = "Freqwave@Time delay,Sound effect,Low bin,High bin,Pre-amp;;;m12=2,si=0,1d,fr"; // Circle, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -6956,7 +6956,7 @@ uint16_t mode_gravfreq(void) { // Gravfreq. By Andrew Tuline.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_gravfreq()
|
||||
static const char _data_FX_MODE_GRAVFREQ[] PROGMEM = "Gravfreq@Rate of fall,Sensivity;,!;!;ix=128,mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_GRAVFREQ[] PROGMEM = "Gravfreq@Rate of fall,Sensivity;,!;!;ix=128,m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -6984,7 +6984,7 @@ uint16_t mode_noisemove(void) { // Noisemove. By: Andrew Tuli
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_noisemove()
|
||||
static const char _data_FX_MODE_NOISEMOVE[] PROGMEM = "Noisemove@Speed of perlin movement,Fade rate;,!;!;mp12=0,ssim=0,1d,fr"; // Pixels, Beatsin
|
||||
static const char _data_FX_MODE_NOISEMOVE[] PROGMEM = "Noisemove@Speed of perlin movement,Fade rate;,!;!;m12=0,si=0,1d,fr"; // Pixels, Beatsin
|
||||
|
||||
|
||||
//////////////////////
|
||||
@@ -7024,7 +7024,7 @@ uint16_t mode_rocktaves(void) { // Rocktaves. Same note from eac
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_rocktaves()
|
||||
static const char _data_FX_MODE_ROCKTAVES[] PROGMEM = "Rocktaves@;,!;!;mp12=1,ssim=0,1d,fr"; // Bar, Beatsin
|
||||
static const char _data_FX_MODE_ROCKTAVES[] PROGMEM = "Rocktaves@;,!;!;m12=1,si=0,1d,fr"; // Bar, Beatsin
|
||||
|
||||
|
||||
///////////////////////
|
||||
@@ -7076,7 +7076,7 @@ uint16_t mode_waterfall(void) { // Waterfall. By: Andrew Tulin
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_waterfall()
|
||||
static const char _data_FX_MODE_WATERFALL[] PROGMEM = "Waterfall@!,Adjust color,Select bin,Volume (min);!,!;!;c2=0,mp12=2,ssim=0,1d,fr"; // Circles, Beatsin
|
||||
static const char _data_FX_MODE_WATERFALL[] PROGMEM = "Waterfall@!,Adjust color,Select bin,Volume (min);!,!;!;c2=0,m12=2,si=0,1d,fr"; // Circles, Beatsin
|
||||
|
||||
|
||||
#ifndef WLED_DISABLE_2D
|
||||
@@ -7136,7 +7136,7 @@ uint16_t mode_2DGEQ(void) { // By Will Tatam. Code reduction by Ewoud Wijma.
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_2DGEQ()
|
||||
static const char _data_FX_MODE_2DGEQ[] PROGMEM = "GEQ@Fade speed,Ripple decay,# of bands,,,Color bars;!,,Peak Color;!;c1=255,c2=64,pal=11,ssim=0,2d,fr"; // Beatsin
|
||||
static const char _data_FX_MODE_2DGEQ[] PROGMEM = "GEQ@Fade speed,Ripple decay,# of bands,,,Color bars;!,,Peak Color;!;c1=255,c2=64,pal=11,si=0,2d,fr"; // Beatsin
|
||||
|
||||
|
||||
/////////////////////////
|
||||
@@ -7194,7 +7194,7 @@ uint16_t mode_2DFunkyPlank(void) { // Written by ??? Adapted by Wil
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_2DFunkyPlank
|
||||
static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;ssim=0,2d,fr"; // Beatsin
|
||||
static const char _data_FX_MODE_2DFUNKYPLANK[] PROGMEM = "Funky Plank@Scroll speed,,# of bands;;;si=0,2d,fr"; // Beatsin
|
||||
|
||||
|
||||
/////////////////////////
|
||||
@@ -7299,7 +7299,7 @@ uint16_t mode_2DAkemi(void) {
|
||||
|
||||
return FRAMETIME;
|
||||
} // mode_2DAkemi
|
||||
static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;ssim=0,2d,fr"; //beatsin
|
||||
static const char _data_FX_MODE_2DAKEMI[] PROGMEM = "Akemi@Color speed,Dance;Head palette,Arms & Legs,Eyes & Mouth;Face palette;si=0,2d,fr"; //beatsin
|
||||
#endif // WLED_DISABLE_2D
|
||||
|
||||
|
||||
|
||||
@@ -419,8 +419,8 @@ void Segment::setMode(uint8_t fx, bool loadDefaults) {
|
||||
sOpt = extractModeDefaults(fx, "c1"); if (sOpt >= 0) custom1 = sOpt;
|
||||
sOpt = extractModeDefaults(fx, "c2"); if (sOpt >= 0) custom2 = sOpt;
|
||||
sOpt = extractModeDefaults(fx, "c3"); if (sOpt >= 0) custom3 = sOpt;
|
||||
sOpt = extractModeDefaults(fx, "mp12"); if (sOpt >= 0) map1D2D = constrain(sOpt, 0, 7);
|
||||
sOpt = extractModeDefaults(fx, "ssim"); if (sOpt >= 0) soundSim = constrain(sOpt, 0, 7);
|
||||
sOpt = extractModeDefaults(fx, "m12"); if (sOpt >= 0) map1D2D = constrain(sOpt, 0, 7);
|
||||
sOpt = extractModeDefaults(fx, "si"); if (sOpt >= 0) soundSim = constrain(sOpt, 0, 7);
|
||||
sOpt = extractModeDefaults(fx, "rev"); if (sOpt >= 0) reverse = (bool)sOpt;
|
||||
sOpt = extractModeDefaults(fx, "mi"); if (sOpt >= 0) mirror = (bool)sOpt; // NOTE: setting this option is a risky business
|
||||
sOpt = extractModeDefaults(fx, "rY"); if (sOpt >= 0) reverse_y = (bool)sOpt;
|
||||
@@ -1865,9 +1865,11 @@ void WS2812FX::deserializeMap(uint8_t n) {
|
||||
JsonArray map = doc[F("map")];
|
||||
if (!map.isNull() && map.size()) { // not an empty map
|
||||
//WLEDMM: if isMatrix then customMap size is whole matrix
|
||||
#ifndef WLED_DISABLE_2D
|
||||
if (isMatrix)
|
||||
customMappingSize = matrixWidth * matrixHeight;
|
||||
else
|
||||
#endif
|
||||
customMappingSize = map.size();
|
||||
customMappingTable = new uint16_t[customMappingSize];
|
||||
for (uint16_t i=0; i<map.size(); i++) {
|
||||
|
||||
@@ -318,7 +318,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
||||
JsonObject light_tr = light["tr"];
|
||||
CJSON(fadeTransition, light_tr["mode"]);
|
||||
int tdd = light_tr["dur"] | -1;
|
||||
if (tdd >= 0) transitionDelayDefault = tdd * 100;
|
||||
if (tdd >= 0) transitionDelay = transitionDelayDefault = tdd * 100;
|
||||
CJSON(strip.paletteFade, light_tr["pal"]);
|
||||
|
||||
JsonObject light_nl = light["nl"];
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
//Defaults
|
||||
#define DEFAULT_CLIENT_SSID "Your_Network"
|
||||
#define DEFAULT_AP_SSID "WLED-AP"
|
||||
#define DEFAULT_AP_PASS "wled1234"
|
||||
#define DEFAULT_OTA_PASS "wledota"
|
||||
|
||||
|
||||
@@ -735,22 +735,22 @@ function populateSegments(s)
|
||||
}
|
||||
// WLEDMM: jMap
|
||||
let map2D = `<div id="seg${i}map2D" data-map="map2D" class="lbl-s hide">Expand 1D FX<br>
|
||||
<div class="sel-p"><select class="sel-p" id="seg${i}mp12" onchange="setMp12(${i})">
|
||||
<option value="0" ${inst.mp12==0?' selected':''}>Pixels</option>
|
||||
<option value="1" ${inst.mp12==1?' selected':''}>Bar</option>
|
||||
<option value="2" ${inst.mp12==2?' selected':''}>Arc</option>
|
||||
<option value="3" ${inst.mp12==3?' selected':''}>Corner</option>
|
||||
<option value="4" ${inst.mp12==4?' selected':''}>jMap</option>
|
||||
<option value="5" ${inst.mp12==5?' selected':''}>Circles</option>
|
||||
<option value="6" ${inst.mp12==6?' selected':''}>Block</option>
|
||||
<div class="sel-p"><select class="sel-p" id="seg${i}m12" onchange="setM12(${i})">
|
||||
<option value="0" ${inst.m12==0?' selected':''}>Pixels</option>
|
||||
<option value="1" ${inst.m12==1?' selected':''}>Bar</option>
|
||||
<option value="2" ${inst.m12==2?' selected':''}>Arc</option>
|
||||
<option value="3" ${inst.m12==3?' selected':''}>Corner</option>
|
||||
<option value="4" ${inst.m12==4?' selected':''}>jMap</option>
|
||||
<option value="5" ${inst.m12==5?' selected':''}>Circles</option>
|
||||
<option value="6" ${inst.m12==6?' selected':''}>Block</option>
|
||||
</select></div>
|
||||
</div>`;
|
||||
let sndSim = `<div data-snd="ssim" class="lbl-s hide">Sound sim<br>
|
||||
<div class="sel-p"><select class="sel-p" id="seg${i}ssim" onchange="setSSim(${i})">
|
||||
<option value="0" ${inst.ssim==0?' selected':''}>BeatSin</option>
|
||||
<option value="1" ${inst.ssim==1?' selected':''}>WeWillRockYou</option>
|
||||
<option value="2" ${inst.ssim==2?' selected':''}>U10_3</option>
|
||||
<option value="3" ${inst.ssim==3?' selected':''}>U14_3</option>
|
||||
let sndSim = `<div data-snd="si" class="lbl-s hide">Sound sim<br>
|
||||
<div class="sel-p"><select class="sel-p" id="seg${i}si" onchange="setSi(${i})">
|
||||
<option value="0" ${inst.si==0?' selected':''}>BeatSin</option>
|
||||
<option value="1" ${inst.si==1?' selected':''}>WeWillRockYou</option>
|
||||
<option value="2" ${inst.si==2?' selected':''}>U10_3</option>
|
||||
<option value="3" ${inst.si==3?' selected':''}>U14_3</option>
|
||||
</select></div>
|
||||
</div>`;
|
||||
//WLEDMM Custom Effects
|
||||
@@ -1220,7 +1220,7 @@ function updateSelectedFx()
|
||||
var selectedName = selectedEffect.querySelector(".lstIname").innerText;
|
||||
var segs = gId("segcont").querySelectorAll(`div[data-map="map2D"]`);
|
||||
for (const seg of segs) if (selectedName.indexOf("\u25A6")<0) seg.classList.remove("hide"); else seg.classList.add("hide");
|
||||
var segs = gId("segcont").querySelectorAll(`div[data-snd="ssim"]`);
|
||||
var segs = gId("segcont").querySelectorAll(`div[data-snd="si"]`);
|
||||
for (const seg of segs) if (selectedName.indexOf("\u266A")<0 && selectedName.indexOf("\266B")<0) seg.classList.add("hide"); else seg.classList.remove("hide"); // also "♫ "?
|
||||
}
|
||||
}
|
||||
@@ -2098,17 +2098,17 @@ function setMiY(s)
|
||||
requestJson(obj);
|
||||
}
|
||||
|
||||
function setMp12(s)
|
||||
function setM12(s)
|
||||
{
|
||||
var value = gId(`seg${s}mp12`).selectedIndex;
|
||||
var obj = {"seg": {"id": s, "mp12": value}};
|
||||
var value = gId(`seg${s}m12`).selectedIndex;
|
||||
var obj = {"seg": {"id": s, "m12": value}};
|
||||
requestJson(obj);
|
||||
}
|
||||
|
||||
function setSSim(s)
|
||||
function setSi(s)
|
||||
{
|
||||
var value = gId(`seg${s}ssim`).selectedIndex;
|
||||
var obj = {"seg": {"id": s, "ssim": value}};
|
||||
var value = gId(`seg${s}si`).selectedIndex;
|
||||
var obj = {"seg": {"id": s, "si": value}};
|
||||
requestJson(obj);
|
||||
}
|
||||
|
||||
@@ -2263,7 +2263,7 @@ function saveP(i,pl)
|
||||
obj.ib = gId(`p${i}ibtgl`).checked;
|
||||
obj.sb = gId(`p${i}sbtgl`).checked;
|
||||
obj.sc = gId(`p${i}sbchk`).checked;
|
||||
if (gId(`p${i}lmp`).value!=="") obj.ledmap = parseInt(gId(`p${i}lmp`).value);
|
||||
if (gId(`p${i}lmp`) && gId(`p${i}lmp`).value!=="") obj.ledmap = parseInt(gId(`p${i}lmp`).value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,18 +6,111 @@
|
||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/>
|
||||
<title>WiFi Settings</title>
|
||||
<script>
|
||||
var d=document;
|
||||
var d = document;
|
||||
var loc = false, locip;
|
||||
var scanLoops = 0, preScanSSID = "";
|
||||
|
||||
function gId(e) { return d.getElementById(e); }
|
||||
function cE(e) { return d.createElement(e); }
|
||||
function H(){window.open("https://kno.wled.ge/features/settings/#wifi-settings");}
|
||||
function B(){window.open("/settings","_self");}
|
||||
function N() {
|
||||
const url = (loc?`http://${locip}`:"") + "/json/net";
|
||||
|
||||
const button = gId("scan");
|
||||
button.disabled = true;
|
||||
button.innerHTML = "Scanning...";
|
||||
|
||||
fetch(url).then((response) => {
|
||||
return response.json();
|
||||
}).then((json) => {
|
||||
// Get the list of networks only, defaulting to an empty array.
|
||||
return Object.assign(
|
||||
{},
|
||||
{"networks": []},
|
||||
json,
|
||||
).networks.sort(
|
||||
// Sort by signal strength, descending.
|
||||
(a, b) => b.rssi - a.rssi
|
||||
).reduce(
|
||||
// Filter out duplicate SSIDs. Since it is sorted by signal
|
||||
// strength, the strongest signal will be kept in the
|
||||
// order it orginally appeared in the array.
|
||||
(unique, other) => {
|
||||
if(!unique.some(obj => obj.ssid === other.ssid)) {
|
||||
unique.push(other);
|
||||
}
|
||||
return unique;
|
||||
},
|
||||
[],
|
||||
);
|
||||
}).then((networks) => {
|
||||
// If there are no networks, fetch it again in a second.
|
||||
// but only do this a few times.
|
||||
if (networks.length === 0 && scanLoops < 10) {
|
||||
scanLoops++;
|
||||
setTimeout(N, 1000);
|
||||
return;
|
||||
}
|
||||
scanLoops = 0;
|
||||
|
||||
let cs = gId("CS");
|
||||
if (cs) {
|
||||
let select = cE("select");
|
||||
select.setAttribute("id", "CS");
|
||||
select.setAttribute("name", "CS");
|
||||
select.setAttribute("onchange", "T()");
|
||||
preScanSSID = cs.value;
|
||||
|
||||
for (let i = 0; i < select.children.length; i++) {
|
||||
select.removeChild(select.children[i]);
|
||||
}
|
||||
|
||||
for (let i = 0; i < networks.length; i++) {
|
||||
const option = cE("option");
|
||||
|
||||
option.setAttribute("value", networks[i].ssid);
|
||||
option.innerHTML = `${networks[i].ssid} (${networks[i].rssi} dBm)`;
|
||||
|
||||
if (networks[i].ssid === cs.value) {
|
||||
option.setAttribute("selected", "selected");
|
||||
}
|
||||
|
||||
select.appendChild(option);
|
||||
}
|
||||
const option = cE("option");
|
||||
|
||||
option.setAttribute("value", "!Cs");
|
||||
option.innerHTML = `Other network...`;
|
||||
select.appendChild(option);
|
||||
|
||||
cs.replaceWith(select);
|
||||
}
|
||||
|
||||
button.disabled = false;
|
||||
button.innerHTML = "Scan";
|
||||
});
|
||||
}
|
||||
// replace WiFi select with custom SSID input field again
|
||||
function T() {
|
||||
let cs = gId("CS");
|
||||
if (!cs || cs.value != "!Cs") return;
|
||||
let input = cE("input");
|
||||
input.type = "text";
|
||||
input.id = "CS";
|
||||
input.name ="CS";
|
||||
input.setAttribute("maxlength",32);
|
||||
input.value = preScanSSID;
|
||||
cs.replaceWith(input);
|
||||
}
|
||||
// https://www.educative.io/edpresso/how-to-dynamically-load-a-js-file-in-javascript
|
||||
function loadJS(FILE_URL, async = true) {
|
||||
let scE = d.createElement("script");
|
||||
let scE = cE("script");
|
||||
scE.setAttribute("src", FILE_URL);
|
||||
scE.setAttribute("type", "text/javascript");
|
||||
scE.setAttribute("async", async);
|
||||
d.body.appendChild(scE);
|
||||
// success event
|
||||
// success event
|
||||
scE.addEventListener("load", () => {
|
||||
//console.log("File loaded");
|
||||
GetV();
|
||||
@@ -31,13 +124,13 @@
|
||||
function S() {
|
||||
if (window.location.protocol == "file:") {
|
||||
loc = true;
|
||||
locip = localStorage.getItem('locIp');
|
||||
locip = localStorage.getItem("locIp");
|
||||
if (!locip) {
|
||||
locip = prompt("File Mode. Please enter WLED IP!");
|
||||
localStorage.setItem('locIp', locip);
|
||||
localStorage.setItem("locIp", locip);
|
||||
}
|
||||
}
|
||||
var url = (loc?`http://${locip}`:'') + '/settings/s.js?p=1';
|
||||
let url = (loc?`http://${locip}`:'') + '/settings/s.js?p=1';
|
||||
loadJS(url, false); // If we set async false, file is loaded and executed, then next statement is processed
|
||||
}
|
||||
</script>
|
||||
@@ -51,7 +144,9 @@
|
||||
</div>
|
||||
<h2>WiFi setup</h2>
|
||||
<h3>Connect to existing network</h3>
|
||||
Network name (SSID, empty to not connect): <br><input type="text" name="CS" maxlength="32"><br>
|
||||
<button type="button" id="scan" onclick="N()">Scan</button><br>
|
||||
Network name (SSID, empty to not connect):<br>
|
||||
<input type="text" id="CS" name="CS" maxlength="32"><br>
|
||||
Network password: <br> <input type="password" name="CP" maxlength="63"><br>
|
||||
Static IP (leave at 0.0.0.0 for DHCP):<br>
|
||||
<input name="I0" type="number" class="s" min="0" max="255" required> .
|
||||
@@ -68,7 +163,7 @@
|
||||
<input name="S1" type="number" class="s" min="0" max="255" required> .
|
||||
<input name="S2" type="number" class="s" min="0" max="255" required> .
|
||||
<input name="S3" type="number" class="s" min="0" max="255" required><br>
|
||||
mDNS address (leave empty for no mDNS):<br/>
|
||||
mDNS address (leave empty for no mDNS):<br>
|
||||
http:// <input type="text" name="CM" maxlength="32"> .local<br>
|
||||
Client IP: <span class="sip"> Not connected </span> <br>
|
||||
<h3>Configure Access Point</h3>
|
||||
@@ -105,4 +200,4 @@
|
||||
<button type="button" onclick="B()">Back</button><button type="submit">Save & Connect</button>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -41,6 +41,9 @@ button.sml {
|
||||
min-width: 40px;
|
||||
margin: 0 0 0 10px;
|
||||
}
|
||||
#scan {
|
||||
margin-top: -10px;
|
||||
}
|
||||
.toprow {
|
||||
top: 0;
|
||||
position: sticky;
|
||||
|
||||
@@ -44,43 +44,43 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()=====";
|
||||
const uint16_t PAGE_update_length = 605;
|
||||
const uint8_t PAGE_update[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0xd1, 0x6e, 0xd3, 0x30,
|
||||
0x14, 0x7d, 0xcf, 0x57, 0x78, 0x7e, 0x6a, 0x25, 0xe6, 0x0c, 0x04, 0x0f, 0x0c, 0x27, 0x43, 0x65,
|
||||
0x13, 0x42, 0x62, 0xda, 0xa4, 0x6d, 0x20, 0x9e, 0x90, 0x13, 0xdf, 0x34, 0xa6, 0x8e, 0x9d, 0xd9,
|
||||
0x37, 0xad, 0x2a, 0xb4, 0x7f, 0xe7, 0xda, 0x69, 0x01, 0x69, 0xf0, 0x12, 0xd5, 0xf1, 0xb9, 0xa7,
|
||||
0xe7, 0x9e, 0x73, 0x22, 0x4f, 0x2e, 0x6f, 0x3e, 0xdc, 0x7f, 0xbb, 0xbd, 0x62, 0x3d, 0x0e, 0xb6,
|
||||
0x96, 0x87, 0x27, 0x28, 0x5d, 0xcb, 0x01, 0x50, 0xb1, 0xd6, 0x3b, 0x04, 0x87, 0x15, 0xdf, 0x19,
|
||||
0x8d, 0x7d, 0xa5, 0x61, 0x6b, 0x5a, 0x38, 0xcd, 0x07, 0xce, 0x9c, 0x1a, 0xa0, 0xe2, 0x5b, 0x03,
|
||||
0xbb, 0xd1, 0x07, 0xe4, 0x75, 0x21, 0xd1, 0xa0, 0x85, 0xfa, 0xeb, 0xe7, 0xab, 0x4b, 0xf6, 0x30,
|
||||
0x6a, 0x85, 0x20, 0xcb, 0xf9, 0x95, 0x8c, 0x6d, 0x30, 0x23, 0xd6, 0x45, 0x37, 0xb9, 0x16, 0x8d,
|
||||
0x77, 0x6c, 0xb5, 0x58, 0xfe, 0xdc, 0x19, 0xa7, 0xfd, 0x4e, 0xf4, 0x26, 0xa2, 0x0f, 0x7b, 0xd1,
|
||||
0xa8, 0x76, 0xb3, 0x58, 0x3e, 0xfd, 0x86, 0x3c, 0x10, 0x44, 0xfb, 0x76, 0x1a, 0x48, 0x81, 0x58,
|
||||
0x03, 0x5e, 0x59, 0x48, 0x3f, 0x57, 0xfb, 0x4f, 0x7a, 0xc1, 0xa7, 0x8e, 0x2f, 0x45, 0xc4, 0xbd,
|
||||
0x05, 0xa1, 0x4d, 0x1c, 0xad, 0xda, 0x57, 0xdc, 0x79, 0x07, 0xfc, 0xc5, 0x7f, 0x47, 0x86, 0xb8,
|
||||
0x7e, 0x3e, 0xd3, 0x58, 0xdf, 0x6e, 0xf8, 0x53, 0x21, 0xcb, 0x83, 0xc4, 0x83, 0x54, 0x16, 0x43,
|
||||
0x5b, 0xf1, 0x32, 0x02, 0xa2, 0x71, 0xeb, 0x58, 0x46, 0xf1, 0x23, 0x5e, 0x8c, 0xd5, 0x5b, 0x5e,
|
||||
0xff, 0x85, 0x4c, 0x54, 0x75, 0xf1, 0xde, 0x0c, 0xc9, 0x00, 0x36, 0x05, 0xbb, 0xe0, 0x33, 0x7d,
|
||||
0x1b, 0x23, 0x5f, 0xbe, 0x23, 0x64, 0x46, 0xc8, 0x72, 0xb6, 0xb4, 0xf1, 0x7a, 0xcf, 0xbc, 0xb3,
|
||||
0x5e, 0xe9, 0x8a, 0x7f, 0x04, 0xfc, 0xb2, 0x58, 0x12, 0x5d, 0xff, 0xaa, 0x2e, 0xae, 0xbd, 0x77,
|
||||
0xd7, 0x5e, 0xb3, 0x6c, 0xdd, 0x9d, 0xef, 0x70, 0xa7, 0x02, 0xfc, 0xf6, 0x90, 0x10, 0xb2, 0xf3,
|
||||
0x61, 0x60, 0x94, 0x49, 0xef, 0x69, 0xf6, 0xf6, 0xe6, 0xee, 0x9e, 0x33, 0x95, 0x6d, 0x22, 0x91,
|
||||
0x53, 0xc6, 0x71, 0x66, 0xe8, 0x8a, 0x7c, 0x61, 0x05, 0x90, 0x83, 0xfb, 0x91, 0xc2, 0x19, 0x26,
|
||||
0x8b, 0x66, 0x54, 0x01, 0xcb, 0x34, 0x7f, 0x4a, 0x30, 0xc5, 0x49, 0x41, 0x9c, 0x9a, 0xc1, 0x50,
|
||||
0xaa, 0x0f, 0x59, 0x40, 0x1c, 0x95, 0x63, 0xad, 0x55, 0x31, 0x56, 0x3c, 0x9a, 0x91, 0xd7, 0x67,
|
||||
0xe2, 0xe5, 0x6b, 0x71, 0x26, 0xde, 0x88, 0x33, 0xda, 0x80, 0x2e, 0x29, 0xd9, 0x26, 0xd4, 0x97,
|
||||
0x7e, 0x97, 0xa5, 0x33, 0xec, 0x81, 0x59, 0xfa, 0xc3, 0x88, 0x2c, 0x80, 0x05, 0x15, 0xe1, 0x9c,
|
||||
0x49, 0xc5, 0x8a, 0x3e, 0x40, 0x57, 0xf1, 0x1e, 0x71, 0x8c, 0xe7, 0x65, 0xb9, 0x36, 0xd8, 0x4f,
|
||||
0x8d, 0x68, 0xfd, 0x50, 0x1e, 0xb6, 0x9b, 0x2c, 0xc4, 0x32, 0x6d, 0x58, 0x1e, 0xc6, 0x22, 0x67,
|
||||
0xa8, 0x02, 0xc5, 0x54, 0xf1, 0xef, 0x8d, 0x55, 0x6e, 0x43, 0x62, 0xcc, 0xb0, 0x66, 0x45, 0xf6,
|
||||
0xfe, 0x48, 0x44, 0x6f, 0x44, 0xec, 0x0d, 0x58, 0x1d, 0x85, 0xf1, 0x07, 0xde, 0x23, 0xc5, 0x33,
|
||||
0x6e, 0x11, 0xb7, 0xeb, 0x8b, 0x6c, 0x7b, 0xd5, 0x91, 0xc8, 0xd3, 0xf8, 0x38, 0x91, 0x95, 0xa9,
|
||||
0x9c, 0xa5, 0xaa, 0xd3, 0x1a, 0xd2, 0xb8, 0x71, 0x42, 0x36, 0xfb, 0xd3, 0x19, 0x0b, 0xc7, 0x22,
|
||||
0x1f, 0x5d, 0x0c, 0xf0, 0x38, 0x99, 0x00, 0x7a, 0x46, 0x37, 0x13, 0x22, 0x75, 0x71, 0x86, 0xcf,
|
||||
0xbe, 0x11, 0xd9, 0x9c, 0xcc, 0x89, 0x2c, 0xe7, 0xeb, 0x7f, 0x40, 0xe7, 0x43, 0x32, 0xbb, 0xb5,
|
||||
0xa6, 0xdd, 0x54, 0x7c, 0x95, 0xbc, 0x5e, 0x51, 0xc5, 0xff, 0x0c, 0xe5, 0x50, 0x6a, 0xa9, 0xcd,
|
||||
0xb6, 0xc8, 0xd9, 0xa5, 0x82, 0x12, 0x4d, 0x9d, 0xd9, 0xa9, 0x75, 0x42, 0x08, 0x02, 0x67, 0xf2,
|
||||
0xdb, 0xbc, 0x2d, 0xd3, 0x9e, 0x39, 0x8f, 0x14, 0x96, 0xa7, 0x83, 0x0f, 0xa4, 0xb5, 0x0b, 0x10,
|
||||
0xfb, 0x1c, 0xc9, 0xa8, 0xd6, 0xc0, 0xce, 0x97, 0xb2, 0x24, 0xbe, 0xb4, 0x6e, 0x6a, 0x5b, 0xaa,
|
||||
0x5e, 0xfa, 0xa6, 0x7f, 0x01, 0x6f, 0x15, 0x51, 0x11, 0xe9, 0x03, 0x00, 0x00
|
||||
0x14, 0x7d, 0xcf, 0x57, 0x78, 0x7e, 0x6a, 0x25, 0xe6, 0x0c, 0x84, 0x90, 0x18, 0x4e, 0x86, 0xca,
|
||||
0x26, 0x84, 0xc4, 0xb4, 0x49, 0xdb, 0x40, 0x3c, 0x21, 0x27, 0xbe, 0x69, 0x4c, 0x1d, 0x3b, 0xb3,
|
||||
0x6f, 0x5a, 0x55, 0x68, 0xff, 0xce, 0xb5, 0xd3, 0x02, 0xd2, 0xe0, 0x25, 0xaa, 0xe3, 0x73, 0x4f,
|
||||
0xcf, 0x3d, 0xe7, 0x44, 0x9e, 0x5c, 0xde, 0x7c, 0xb8, 0xff, 0x76, 0x7b, 0xc5, 0x7a, 0x1c, 0x6c,
|
||||
0x2d, 0x0f, 0x4f, 0x50, 0xba, 0x96, 0x03, 0xa0, 0x62, 0xad, 0x77, 0x08, 0x0e, 0x2b, 0xbe, 0x33,
|
||||
0x1a, 0xfb, 0x4a, 0xc3, 0xd6, 0xb4, 0x70, 0x9a, 0x0f, 0x9c, 0x39, 0x35, 0x40, 0xc5, 0xb7, 0x06,
|
||||
0x76, 0xa3, 0x0f, 0xc8, 0xeb, 0x42, 0xa2, 0x41, 0x0b, 0xf5, 0xd7, 0xcf, 0x57, 0x97, 0xec, 0x61,
|
||||
0xd4, 0x0a, 0x41, 0x96, 0xf3, 0x2b, 0x19, 0xdb, 0x60, 0x46, 0xac, 0x8b, 0x6e, 0x72, 0x2d, 0x1a,
|
||||
0xef, 0xd8, 0x6a, 0xb1, 0xfc, 0xb9, 0x33, 0x4e, 0xfb, 0x9d, 0xe8, 0x4d, 0x44, 0x1f, 0xf6, 0xa2,
|
||||
0x51, 0xed, 0x66, 0xb1, 0x7c, 0xfa, 0x0d, 0x79, 0x20, 0x88, 0xf6, 0xed, 0x34, 0x90, 0x02, 0xb1,
|
||||
0x06, 0xbc, 0xb2, 0x90, 0x7e, 0xae, 0xf6, 0x9f, 0xf4, 0x82, 0x4f, 0x1d, 0x5f, 0x8a, 0x88, 0x7b,
|
||||
0x0b, 0x42, 0x9b, 0x38, 0x5a, 0xb5, 0xaf, 0xb8, 0xf3, 0x0e, 0xf8, 0x8b, 0xff, 0x8e, 0x0c, 0x71,
|
||||
0xfd, 0x7c, 0xa6, 0xb1, 0xbe, 0xdd, 0xf0, 0xa7, 0x42, 0x96, 0x07, 0x89, 0x07, 0xa9, 0x2c, 0x86,
|
||||
0xb6, 0xe2, 0x65, 0x04, 0x44, 0xe3, 0xd6, 0xb1, 0x8c, 0xe2, 0x47, 0xbc, 0x18, 0xab, 0xb7, 0xbc,
|
||||
0xfe, 0x0b, 0x99, 0xa8, 0xea, 0xe2, 0xbd, 0x19, 0x92, 0x01, 0x6c, 0x0a, 0x76, 0xc1, 0x67, 0xfa,
|
||||
0x36, 0x46, 0xbe, 0x7c, 0x47, 0xc8, 0x8c, 0x90, 0xe5, 0x6c, 0x69, 0xe3, 0xf5, 0x9e, 0x79, 0x67,
|
||||
0xbd, 0xd2, 0x15, 0xff, 0x08, 0xf8, 0x65, 0xb1, 0x24, 0xba, 0xfe, 0x55, 0x5d, 0x5c, 0x7b, 0xef,
|
||||
0xae, 0xbd, 0x66, 0xd9, 0xba, 0x3b, 0xdf, 0xe1, 0x4e, 0x05, 0xf8, 0xed, 0x21, 0x21, 0x64, 0xe7,
|
||||
0xc3, 0xc0, 0x28, 0x93, 0xde, 0xd3, 0xec, 0xed, 0xcd, 0xdd, 0x3d, 0x67, 0x2a, 0xdb, 0x44, 0x22,
|
||||
0xa7, 0x8c, 0xe3, 0xcc, 0xd0, 0x15, 0xf9, 0xc2, 0x0a, 0x20, 0x07, 0xf7, 0x23, 0x85, 0x33, 0x4c,
|
||||
0x16, 0xcd, 0xa8, 0x02, 0x96, 0x69, 0xfe, 0x94, 0x60, 0x8a, 0x93, 0x82, 0x38, 0x35, 0x83, 0xa1,
|
||||
0x54, 0x1f, 0xb2, 0x80, 0x38, 0x2a, 0xc7, 0x5a, 0xab, 0x62, 0xac, 0x78, 0x34, 0x23, 0xaf, 0xcf,
|
||||
0xc4, 0xcb, 0xd7, 0xe2, 0x4c, 0xbc, 0x11, 0x67, 0xb4, 0x01, 0x5d, 0x52, 0xb2, 0x4d, 0xa8, 0x2f,
|
||||
0xfd, 0x2e, 0x4b, 0x67, 0xd8, 0x03, 0xb3, 0xf4, 0x87, 0x11, 0x59, 0x00, 0x0b, 0x2a, 0xc2, 0x39,
|
||||
0x93, 0x8a, 0x15, 0x7d, 0x80, 0xae, 0xe2, 0x3d, 0xe2, 0x18, 0xcf, 0xcb, 0x72, 0x6d, 0xb0, 0x9f,
|
||||
0x1a, 0xd1, 0xfa, 0xa1, 0x3c, 0x6c, 0x37, 0x59, 0x88, 0x65, 0xda, 0xb0, 0x3c, 0x8c, 0x45, 0xce,
|
||||
0x50, 0x05, 0x8a, 0xa9, 0xe2, 0xdf, 0x1b, 0xab, 0xdc, 0x86, 0xc4, 0x98, 0x61, 0xcd, 0x8a, 0xec,
|
||||
0xfd, 0x91, 0x88, 0xde, 0x88, 0xd8, 0x1b, 0xb0, 0x3a, 0x0a, 0xe3, 0x0f, 0xbc, 0x47, 0x8a, 0x67,
|
||||
0xdc, 0x22, 0x6e, 0xd7, 0x17, 0xd9, 0xf6, 0xaa, 0x23, 0x91, 0xa7, 0xf1, 0x71, 0x22, 0x2b, 0x53,
|
||||
0x39, 0x4b, 0x55, 0xa7, 0x35, 0xa4, 0x71, 0xe3, 0x84, 0x6c, 0xf6, 0xa7, 0x33, 0x16, 0x8e, 0x45,
|
||||
0x3e, 0xba, 0x18, 0xe0, 0x71, 0x32, 0x01, 0xf4, 0x8c, 0x6e, 0x26, 0x44, 0xea, 0xe2, 0x0c, 0x9f,
|
||||
0x7d, 0x23, 0xb2, 0x39, 0x99, 0x13, 0x59, 0xce, 0xd7, 0xff, 0x80, 0xce, 0x87, 0x64, 0x76, 0x6b,
|
||||
0x4d, 0xbb, 0xa9, 0xf8, 0x2a, 0x79, 0xbd, 0xa2, 0x8a, 0xff, 0x19, 0xca, 0xa1, 0xd4, 0x52, 0x9b,
|
||||
0x6d, 0x91, 0xb3, 0x4b, 0x05, 0x25, 0x9a, 0x3a, 0xb3, 0x53, 0xeb, 0x84, 0x10, 0x04, 0xce, 0xe4,
|
||||
0xb7, 0x79, 0x5b, 0xa6, 0x3d, 0x73, 0x1e, 0x29, 0x2c, 0x4f, 0x07, 0x1f, 0x48, 0x6b, 0x17, 0x20,
|
||||
0xf6, 0x39, 0x92, 0x51, 0xad, 0x81, 0x9d, 0x2f, 0x65, 0x49, 0x7c, 0x69, 0xdd, 0xd4, 0xb6, 0x54,
|
||||
0xbd, 0xf4, 0x4d, 0xff, 0x02, 0xde, 0x6b, 0xb6, 0x81, 0xe9, 0x03, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -6,61 +6,61 @@
|
||||
*/
|
||||
|
||||
// Autogenerated from wled00/data/style.css, do not edit!!
|
||||
const uint16_t PAGE_settingsCss_length = 836;
|
||||
const uint16_t PAGE_settingsCss_length = 847;
|
||||
const uint8_t PAGE_settingsCss[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x55, 0xc1, 0x8e, 0x9b, 0x30,
|
||||
0x14, 0xfc, 0x15, 0xaa, 0x68, 0xa5, 0xad, 0x14, 0x10, 0x10, 0xc8, 0xa6, 0x46, 0x95, 0xaa, 0xde,
|
||||
0x7b, 0xab, 0xaa, 0x4a, 0xd5, 0x1e, 0x0c, 0x7e, 0x04, 0x2b, 0xc6, 0x46, 0xb6, 0xe9, 0x92, 0x22,
|
||||
0xfe, 0xbd, 0xb6, 0x81, 0x85, 0x64, 0xd1, 0xf6, 0x52, 0x45, 0x89, 0x92, 0x3c, 0x63, 0xcf, 0xcc,
|
||||
0x9b, 0x37, 0xae, 0x74, 0xcd, 0x7a, 0x2d, 0xda, 0xa2, 0xf2, 0x71, 0xa1, 0xa9, 0xe0, 0xa8, 0xc6,
|
||||
0x9c, 0x36, 0x2d, 0xc3, 0xf6, 0xc7, 0x90, 0x0b, 0x72, 0xed, 0x4b, 0xc1, 0xb5, 0x5f, 0xe2, 0x9a,
|
||||
0x10, 0xfd, 0x15, 0xaa, 0x68, 0xa5, 0xad, 0x14, 0x10, 0x10, 0xc8, 0xa6, 0x46, 0x95, 0xaa, 0xde,
|
||||
0x7b, 0xab, 0xaa, 0x4a, 0xd5, 0x1e, 0x0c, 0x1e, 0x82, 0x15, 0x63, 0x23, 0xdb, 0x74, 0x49, 0x11,
|
||||
0xff, 0x5e, 0xdb, 0xc0, 0x42, 0xb2, 0x68, 0x7b, 0xa9, 0xa2, 0x44, 0xc4, 0x63, 0xc6, 0x6f, 0xde,
|
||||
0xbc, 0x79, 0xae, 0x74, 0xcd, 0x7a, 0x2d, 0xda, 0xa2, 0xf2, 0x71, 0xa1, 0xa9, 0xe0, 0xa8, 0xc6,
|
||||
0x9c, 0x36, 0x2d, 0xc3, 0xf6, 0xcf, 0x90, 0x0b, 0x72, 0xed, 0x4b, 0xc1, 0xb5, 0x5f, 0xe2, 0x9a,
|
||||
0xb2, 0x2b, 0xfa, 0x01, 0x92, 0x60, 0x8e, 0xf7, 0x0a, 0x73, 0xe5, 0x2b, 0x90, 0xb4, 0xcc, 0x5c,
|
||||
0x59, 0xd1, 0x3f, 0x80, 0x22, 0x09, 0x75, 0xa6, 0xa1, 0xd3, 0x3e, 0x66, 0xf4, 0xcc, 0x51, 0x01,
|
||||
0x58, 0xd1, 0x3f, 0x80, 0x22, 0x09, 0x75, 0xa6, 0xa1, 0xd3, 0x3e, 0x66, 0xf4, 0xcc, 0x51, 0x01,
|
||||
0x5c, 0x83, 0xcc, 0x72, 0x5c, 0x5c, 0xce, 0x52, 0xb4, 0x9c, 0xa0, 0x5d, 0x1c, 0xc7, 0x59, 0x21,
|
||||
0x98, 0x90, 0x68, 0x57, 0x96, 0x65, 0xc6, 0x28, 0x07, 0xbf, 0x02, 0x7a, 0xae, 0x34, 0x8a, 0xc3,
|
||||
0xf0, 0x21, 0xab, 0xb1, 0x3c, 0x53, 0x8e, 0xc2, 0xa1, 0x92, 0x7d, 0x2e, 0x24, 0x01, 0xe9, 0x4f,
|
||||
0xcb, 0x8f, 0xc7, 0xa3, 0xf9, 0x33, 0x50, 0x06, 0xef, 0x0b, 0x25, 0xba, 0x42, 0xf1, 0x31, 0x6c,
|
||||
0xba, 0x01, 0xef, 0x31, 0xaa, 0xc4, 0x6f, 0x90, 0xfd, 0xb4, 0x2e, 0x3e, 0x95, 0x23, 0x06, 0x02,
|
||||
0x85, 0x90, 0x8e, 0x06, 0xe2, 0x82, 0xc3, 0x10, 0xe4, 0x9a, 0xef, 0xf3, 0x56, 0x6b, 0xc1, 0xfb,
|
||||
0x35, 0xa4, 0xc3, 0xe1, 0xb0, 0x86, 0xf4, 0x0f, 0xb6, 0x23, 0x28, 0x14, 0x1c, 0x8a, 0xca, 0x53,
|
||||
0x82, 0x51, 0xe2, 0xb9, 0x0d, 0x26, 0xac, 0x12, 0x13, 0xda, 0x2a, 0x14, 0x27, 0x4d, 0x97, 0x11,
|
||||
0xaa, 0x1a, 0x86, 0xaf, 0x88, 0x72, 0xc7, 0x32, 0x67, 0xa2, 0xb8, 0xac, 0xc4, 0x8a, 0x0d, 0xfa,
|
||||
0x99, 0x6e, 0x14, 0x37, 0x9d, 0x77, 0x1a, 0xdf, 0x59, 0x83, 0x09, 0xa1, 0xfc, 0x8c, 0xec, 0x6f,
|
||||
0x5b, 0xc8, 0x6a, 0xca, 0xfd, 0x91, 0x72, 0x62, 0xeb, 0x45, 0x2b, 0x95, 0x01, 0xdb, 0x08, 0xea,
|
||||
0xd4, 0xdd, 0xe4, 0x3a, 0xd2, 0x74, 0x62, 0xad, 0xb6, 0xbb, 0x47, 0x69, 0x11, 0xac, 0xba, 0x97,
|
||||
0xde, 0x9e, 0xb5, 0xc2, 0x17, 0x7a, 0xf6, 0x15, 0x59, 0xbd, 0x03, 0x2d, 0x1a, 0x29, 0x5e, 0x8c,
|
||||
0x67, 0x1a, 0x14, 0x66, 0x8d, 0x50, 0xd4, 0x9d, 0xaa, 0x34, 0x2d, 0x2e, 0xd7, 0x55, 0xab, 0xe7,
|
||||
0xb6, 0xd9, 0x86, 0xff, 0xf1, 0x29, 0x27, 0xd0, 0xa1, 0x68, 0x08, 0x18, 0xbf, 0x4c, 0x7d, 0x35,
|
||||
0x3d, 0x0e, 0x2a, 0x60, 0xcd, 0xd7, 0x7e, 0xe5, 0x18, 0x06, 0xa5, 0x5e, 0x36, 0xc5, 0xb9, 0x51,
|
||||
0xb8, 0xd5, 0x90, 0x8d, 0x88, 0x5c, 0xbf, 0x83, 0x8a, 0x12, 0xe8, 0x67, 0x6d, 0x1d, 0x59, 0xca,
|
||||
0x9b, 0x56, 0xff, 0x87, 0x96, 0xa6, 0x37, 0x2d, 0x1d, 0xb7, 0x45, 0xe6, 0x24, 0x9c, 0x33, 0x20,
|
||||
0xb3, 0xbd, 0x4e, 0xa7, 0xd3, 0x58, 0xf9, 0xa5, 0xaf, 0x0d, 0x7c, 0xe6, 0x6d, 0x9d, 0x83, 0x7c,
|
||||
0xde, 0xaf, 0xfe, 0xb2, 0x74, 0x9e, 0xf7, 0x0a, 0x18, 0x14, 0xba, 0x5f, 0xe4, 0xad, 0xc1, 0x88,
|
||||
0x5e, 0xcf, 0x8a, 0x9a, 0xbe, 0x6e, 0x6c, 0x33, 0x39, 0x3b, 0x81, 0x7a, 0xa3, 0x18, 0x74, 0xdd,
|
||||
0x6c, 0xfd, 0x28, 0x0c, 0x37, 0x9f, 0x0f, 0x5e, 0x57, 0x9c, 0xd2, 0xed, 0x05, 0x73, 0xfd, 0x98,
|
||||
0x6c, 0xd7, 0xeb, 0xa9, 0x9e, 0x1e, 0xb7, 0xeb, 0xaa, 0x5f, 0x9c, 0xb8, 0x09, 0xe0, 0x75, 0xc1,
|
||||
0x1d, 0xc2, 0xa2, 0x82, 0xe2, 0x92, 0x8b, 0xee, 0xb9, 0xd7, 0xd2, 0x48, 0x5f, 0x0a, 0x59, 0x23,
|
||||
0x55, 0x60, 0x06, 0x8f, 0x51, 0x90, 0x7e, 0x9c, 0x64, 0xf1, 0xa5, 0x4b, 0x02, 0x67, 0x34, 0x4d,
|
||||
0xbc, 0xcd, 0xc7, 0x6f, 0x56, 0x4a, 0x30, 0x93, 0xaf, 0xd7, 0xe7, 0x94, 0x94, 0xc1, 0xf3, 0x4a,
|
||||
0xf6, 0xc8, 0x12, 0x99, 0x9a, 0xb1, 0x68, 0x9f, 0xfd, 0x77, 0xb7, 0x68, 0xd9, 0xaf, 0xc3, 0xcc,
|
||||
0x74, 0xe8, 0xc1, 0x50, 0x78, 0x9d, 0x3e, 0xdb, 0xef, 0x80, 0xa4, 0xb3, 0x38, 0x26, 0x28, 0x3f,
|
||||
0xd0, 0xba, 0x11, 0x52, 0x63, 0xae, 0x87, 0xc0, 0xe8, 0xb0, 0x86, 0x1c, 0xa4, 0x36, 0x48, 0x6f,
|
||||
0xe7, 0x7c, 0xd8, 0x7d, 0xff, 0xf6, 0xdd, 0xd3, 0xd6, 0x8b, 0x8b, 0x09, 0x1e, 0x86, 0x5d, 0xad,
|
||||
0xce, 0xb7, 0xd3, 0xb0, 0xd3, 0x02, 0x2b, 0xdd, 0x8b, 0x06, 0x17, 0x54, 0x5f, 0xcd, 0x8c, 0xbe,
|
||||
0x9d, 0xc9, 0x24, 0x49, 0xee, 0xa2, 0x20, 0x75, 0xe1, 0x60, 0x32, 0xa3, 0x76, 0xce, 0x78, 0x23,
|
||||
0xc7, 0x88, 0xeb, 0x69, 0x95, 0x4e, 0x56, 0xd7, 0x6c, 0xc2, 0xe6, 0x9b, 0x2e, 0x70, 0xad, 0xdc,
|
||||
0xf9, 0xcb, 0xf4, 0x96, 0xb4, 0x03, 0xb2, 0x71, 0x1d, 0xcc, 0x69, 0x90, 0x66, 0x8b, 0x13, 0xdc,
|
||||
0x37, 0x73, 0xe7, 0xc0, 0xcf, 0x47, 0x3f, 0x0d, 0x1f, 0xac, 0x1f, 0xba, 0x29, 0x87, 0x3e, 0x99,
|
||||
0x5b, 0xc1, 0xc6, 0x02, 0x4a, 0x2d, 0x5d, 0x47, 0x2e, 0x50, 0x95, 0x49, 0xa0, 0x99, 0x61, 0xb4,
|
||||
0x95, 0x3a, 0xc7, 0x24, 0x33, 0xf7, 0x58, 0x3d, 0x46, 0x62, 0x89, 0x09, 0x50, 0xee, 0x05, 0xa9,
|
||||
0xda, 0x2f, 0x5f, 0xbd, 0xd8, 0x7e, 0x38, 0x03, 0xa9, 0x59, 0xb5, 0x00, 0xa4, 0x14, 0xf2, 0xdd,
|
||||
0x9d, 0xf3, 0x38, 0xda, 0xdc, 0x79, 0xf8, 0x62, 0x07, 0x1c, 0x7b, 0xaa, 0x90, 0x00, 0xdc, 0xc3,
|
||||
0x9c, 0x78, 0x8f, 0x0b, 0x89, 0xa7, 0xa3, 0xd1, 0xee, 0x63, 0xbf, 0xf2, 0x29, 0xd4, 0x98, 0xb2,
|
||||
0x9b, 0xdc, 0x70, 0xce, 0xdd, 0xbf, 0x9f, 0x2d, 0x0d, 0x56, 0xea, 0xc5, 0x74, 0xee, 0x2e, 0x70,
|
||||
0xd8, 0xdb, 0x00, 0xba, 0x1f, 0x81, 0xf7, 0xf1, 0x25, 0xa7, 0xf0, 0x0e, 0xdf, 0x9b, 0x81, 0x0f,
|
||||
0xff, 0x31, 0xf0, 0x87, 0xbb, 0x48, 0x1b, 0x07, 0x71, 0xba, 0xaa, 0xed, 0x85, 0x38, 0xec, 0xcc,
|
||||
0x05, 0xac, 0xbc, 0x69, 0x16, 0x27, 0x0f, 0x27, 0xb6, 0x30, 0xfc, 0x05, 0x5d, 0xc6, 0x4e, 0xd9,
|
||||
0x86, 0x08, 0x00, 0x00
|
||||
0xdb, 0x8f, 0xc7, 0xa3, 0x59, 0x0c, 0x94, 0xc1, 0xfb, 0x42, 0x89, 0xae, 0x50, 0x7c, 0x0c, 0x9b,
|
||||
0x6e, 0xc0, 0x7b, 0x8c, 0x2a, 0xf1, 0x1b, 0x64, 0x3f, 0xed, 0x8b, 0x4f, 0xe5, 0x88, 0x81, 0x40,
|
||||
0x21, 0xa4, 0x2b, 0x03, 0x71, 0xc1, 0x61, 0x08, 0x72, 0xcd, 0xf7, 0x79, 0xab, 0xb5, 0xe0, 0xfd,
|
||||
0x1a, 0xd2, 0xe1, 0x70, 0x58, 0x43, 0xfa, 0x47, 0xb5, 0x23, 0x28, 0x14, 0x1c, 0x8a, 0xca, 0x53,
|
||||
0x82, 0x51, 0xe2, 0xb9, 0x04, 0x13, 0x56, 0x89, 0x09, 0x6d, 0x15, 0x8a, 0x93, 0xa6, 0xcb, 0x08,
|
||||
0x55, 0x0d, 0xc3, 0x57, 0x44, 0xb9, 0xab, 0x32, 0x67, 0xa2, 0xb8, 0xac, 0xc8, 0x8a, 0x0d, 0xfa,
|
||||
0xb9, 0xdc, 0x28, 0x6e, 0x3a, 0xef, 0x34, 0x7e, 0xb3, 0x06, 0x13, 0x42, 0xf9, 0x19, 0xd9, 0xff,
|
||||
0x36, 0x90, 0xd5, 0x94, 0xfb, 0x63, 0xc9, 0x89, 0x8d, 0x17, 0xad, 0x54, 0x06, 0x6c, 0x23, 0xa8,
|
||||
0x63, 0x77, 0xb3, 0xd6, 0xb1, 0x4c, 0x47, 0xd6, 0x2a, 0xdd, 0x3d, 0x4a, 0x8b, 0x60, 0xd5, 0xbd,
|
||||
0xf4, 0xf6, 0xac, 0x15, 0xbe, 0xd0, 0xb3, 0x9f, 0xc8, 0xf2, 0xbd, 0x53, 0x05, 0xe6, 0xfd, 0xb8,
|
||||
0xee, 0x6b, 0xd1, 0x20, 0xdf, 0x2d, 0x07, 0xe6, 0x51, 0x8a, 0x97, 0xde, 0xae, 0x84, 0x59, 0x23,
|
||||
0x14, 0x75, 0x60, 0x94, 0xa6, 0xc5, 0xe5, 0xba, 0x52, 0xc0, 0xdc, 0x4d, 0xab, 0x83, 0x3f, 0x3e,
|
||||
0xe5, 0x04, 0x3a, 0x14, 0x0d, 0x01, 0xe3, 0x97, 0xa9, 0xdd, 0xa6, 0xf5, 0x41, 0x05, 0xac, 0xf9,
|
||||
0xda, 0xaf, 0x84, 0xc4, 0xa0, 0xd4, 0x4b, 0x52, 0x9c, 0x1b, 0xe2, 0x5b, 0x0d, 0xd9, 0x08, 0xd4,
|
||||
0xc9, 0x20, 0xa8, 0x28, 0x81, 0x7e, 0xa6, 0xdc, 0x71, 0x40, 0x79, 0xd3, 0xea, 0xff, 0xd0, 0xe9,
|
||||
0xf4, 0xa6, 0xd3, 0x63, 0x5a, 0x64, 0x4e, 0xc2, 0x39, 0x03, 0x32, 0xab, 0xee, 0x74, 0x3a, 0x8d,
|
||||
0x91, 0x5f, 0xfa, 0xda, 0xc0, 0x67, 0xde, 0xd6, 0x39, 0xc8, 0xe7, 0xfd, 0x6a, 0xc9, 0x96, 0xf3,
|
||||
0xbc, 0x57, 0xc0, 0xa0, 0xd0, 0xfd, 0xc2, 0x7a, 0x0d, 0xa6, 0x17, 0xf5, 0x4c, 0xb4, 0x69, 0xf7,
|
||||
0x46, 0x9a, 0x49, 0xf0, 0x09, 0xd4, 0x1b, 0xc1, 0xa0, 0xeb, 0xe6, 0x89, 0x88, 0xc2, 0x70, 0xf3,
|
||||
0xfd, 0xe0, 0x75, 0xc7, 0x29, 0xdd, 0xde, 0x30, 0xc7, 0x8f, 0xc9, 0x76, 0xbc, 0x9e, 0xe2, 0xe9,
|
||||
0x71, 0x3b, 0xae, 0xfa, 0x45, 0xa0, 0x9b, 0x00, 0x5e, 0x37, 0xdc, 0x21, 0x2c, 0x2a, 0x28, 0x2e,
|
||||
0xb9, 0xe8, 0x9e, 0x7b, 0x2d, 0x0d, 0xf5, 0xa5, 0x90, 0x35, 0x32, 0x0a, 0x63, 0xf0, 0x18, 0x05,
|
||||
0xe9, 0xc7, 0x89, 0x16, 0x5f, 0x3a, 0x83, 0x70, 0x42, 0xd3, 0xc4, 0xdb, 0x7c, 0xfd, 0x66, 0xa7,
|
||||
0x04, 0x63, 0x08, 0x7a, 0x7d, 0x4e, 0x49, 0x19, 0x3c, 0xaf, 0x68, 0x8f, 0x6c, 0x21, 0x53, 0x33,
|
||||
0x16, 0xee, 0xb3, 0xff, 0xae, 0x16, 0x2d, 0xfb, 0xb5, 0xc7, 0x99, 0x0e, 0x3d, 0x98, 0x12, 0x5e,
|
||||
0x87, 0xd2, 0xf6, 0x3b, 0x20, 0xe9, 0x4c, 0x8e, 0xf1, 0xcf, 0x0f, 0xb4, 0x6e, 0x84, 0xd4, 0x98,
|
||||
0xeb, 0x21, 0x30, 0x3c, 0xac, 0x21, 0x07, 0xa9, 0xf5, 0xd7, 0xdb, 0xf1, 0x1f, 0x76, 0xdf, 0xbf,
|
||||
0x7d, 0xf7, 0xb4, 0xd5, 0xe2, 0x22, 0x82, 0x87, 0x61, 0x57, 0xab, 0xf3, 0xed, 0x34, 0xec, 0xb4,
|
||||
0xc0, 0x4a, 0xf7, 0xa2, 0xc1, 0x05, 0xd5, 0x57, 0x33, 0xa3, 0x6f, 0x67, 0x32, 0x49, 0x92, 0x3b,
|
||||
0x87, 0x48, 0x9d, 0x67, 0x18, 0x2b, 0xa9, 0x9d, 0x32, 0xde, 0xd0, 0x31, 0xe2, 0x7a, 0x5a, 0x99,
|
||||
0x96, 0xe5, 0x35, 0x9b, 0xb0, 0xf9, 0xa6, 0x0b, 0x5c, 0x2b, 0x77, 0xfe, 0x32, 0xbd, 0x25, 0xed,
|
||||
0x80, 0x6c, 0xdc, 0x12, 0xb3, 0x1b, 0xa4, 0xd9, 0xa2, 0x04, 0xf7, 0x64, 0xae, 0x22, 0xf8, 0xf9,
|
||||
0xe8, 0xa7, 0xe1, 0x83, 0xd5, 0x43, 0x37, 0xd9, 0xd3, 0x27, 0x73, 0x59, 0x58, 0x5b, 0x40, 0xa9,
|
||||
0x2d, 0xd7, 0x15, 0x17, 0xa8, 0xca, 0x38, 0xd0, 0x5c, 0x61, 0xb4, 0xe5, 0x3a, 0xc7, 0x24, 0x33,
|
||||
0xd7, 0x5b, 0x3d, 0x3a, 0x65, 0x89, 0x09, 0x50, 0xee, 0x05, 0xa9, 0xda, 0x2f, 0x8f, 0x5e, 0x6c,
|
||||
0x7f, 0x9c, 0x80, 0xd4, 0xcc, 0x5a, 0x00, 0x52, 0x0a, 0xf9, 0x6e, 0xe6, 0x3c, 0x8e, 0x36, 0x33,
|
||||
0x0f, 0x5f, 0xec, 0x80, 0x63, 0x4f, 0x15, 0x12, 0x80, 0x7b, 0x98, 0x13, 0xef, 0x71, 0x29, 0xe2,
|
||||
0xe9, 0x68, 0xb8, 0xfb, 0xd8, 0xaf, 0x74, 0x0a, 0x35, 0xa6, 0xec, 0xc6, 0x37, 0x9c, 0x72, 0xf7,
|
||||
0xef, 0x7b, 0x4b, 0x83, 0x95, 0x7a, 0x31, 0x9d, 0xbb, 0x33, 0x1c, 0xf6, 0xd6, 0x80, 0xee, 0x47,
|
||||
0xe0, 0x7d, 0x7c, 0xc9, 0x29, 0xbc, 0xc3, 0xf7, 0x66, 0xe0, 0xc3, 0x7f, 0x0c, 0xfc, 0xe1, 0xce,
|
||||
0xd2, 0xc6, 0x41, 0x9c, 0x6e, 0x70, 0x7b, 0x4f, 0x0e, 0x3b, 0x73, 0x2f, 0x2b, 0x6f, 0x9a, 0xc5,
|
||||
0x49, 0xc3, 0x89, 0x0d, 0x0c, 0x7f, 0x01, 0xbc, 0xb1, 0xff, 0x31, 0x9d, 0x08, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
@@ -148,106 +148,140 @@ const uint8_t PAGE_settings[] PROGMEM = {
|
||||
|
||||
|
||||
// Autogenerated from wled00/data/settings_wifi.htm, do not edit!!
|
||||
const uint16_t PAGE_settings_wifi_length = 1563;
|
||||
const uint16_t PAGE_settings_wifi_length = 2098;
|
||||
const uint8_t PAGE_settings_wifi[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x57, 0xe1, 0x6e, 0xdb, 0x36,
|
||||
0x10, 0xfe, 0xef, 0xa7, 0x60, 0x38, 0xa0, 0xb0, 0x50, 0x59, 0x8e, 0xed, 0xa5, 0x2b, 0x52, 0xc9,
|
||||
0x5d, 0x62, 0xbb, 0x4d, 0xb6, 0x34, 0xf5, 0xa0, 0xa0, 0xc1, 0x80, 0x01, 0x05, 0x2d, 0x9d, 0x6d,
|
||||
0x2e, 0x14, 0xa9, 0x89, 0x94, 0x9d, 0x20, 0xcd, 0xbb, 0xef, 0x48, 0xc9, 0x8e, 0x9d, 0xc4, 0x6d,
|
||||
0xd1, 0x65, 0x08, 0x1c, 0x98, 0xe4, 0xdd, 0x77, 0xc7, 0xbb, 0xef, 0x8e, 0xe7, 0x70, 0x6f, 0xf8,
|
||||
0x71, 0x70, 0xf1, 0xe7, 0x78, 0x44, 0xe6, 0x26, 0x13, 0xfd, 0xd0, 0xfe, 0x27, 0x82, 0xc9, 0x59,
|
||||
0x44, 0x41, 0x52, 0x5c, 0x03, 0x4b, 0xfb, 0x61, 0x06, 0x86, 0x91, 0x64, 0xce, 0x0a, 0x0d, 0x26,
|
||||
0xa2, 0xa5, 0x99, 0xb6, 0x5e, 0xd3, 0x7a, 0xb7, 0x21, 0x59, 0x06, 0x11, 0x5d, 0x70, 0x58, 0xe6,
|
||||
0xaa, 0x30, 0x94, 0x24, 0x4a, 0x1a, 0x90, 0x28, 0xb6, 0xe4, 0xa9, 0x99, 0x47, 0x07, 0xfb, 0xfb,
|
||||
0x6b, 0xd1, 0x07, 0x47, 0x29, 0x2c, 0x78, 0x02, 0x2d, 0xb7, 0xf0, 0xb9, 0xe4, 0x86, 0x33, 0xd1,
|
||||
0xd2, 0x09, 0x13, 0x10, 0x75, 0xfc, 0x8c, 0x5d, 0xf3, 0xac, 0xcc, 0xd6, 0xeb, 0x52, 0x43, 0xe1,
|
||||
0x16, 0x6c, 0x82, 0x6b, 0xa9, 0xe8, 0x23, 0xcb, 0xfd, 0xd0, 0x70, 0x23, 0xa0, 0x7f, 0xc9, 0xdf,
|
||||
0x71, 0x12, 0x83, 0x31, 0x5c, 0xce, 0x74, 0xd8, 0xae, 0x36, 0x43, 0x9d, 0x14, 0x3c, 0x37, 0xfd,
|
||||
0xc6, 0x82, 0x15, 0x44, 0xa8, 0x84, 0xe7, 0x7e, 0x1a, 0xa5, 0x2a, 0x29, 0x33, 0x74, 0xc8, 0xc7,
|
||||
0x8d, 0x68, 0xaf, 0xf3, 0x66, 0x5a, 0xca, 0xc4, 0x70, 0x25, 0xc9, 0x49, 0xd3, 0xbb, 0x5d, 0x72,
|
||||
0x99, 0xaa, 0x65, 0xa0, 0x72, 0x90, 0x4d, 0x3a, 0x37, 0x26, 0xd7, 0x87, 0xed, 0xf6, 0x95, 0x54,
|
||||
0xc1, 0x52, 0x40, 0x1a, 0xcc, 0xa0, 0x3d, 0x05, 0x66, 0xca, 0x02, 0x74, 0x5b, 0xd7, 0xb6, 0xda,
|
||||
0x3f, 0x2d, 0xf9, 0x94, 0xb7, 0x56, 0x4b, 0xea, 0xdd, 0xad, 0x01, 0x8f, 0x1f, 0x02, 0xae, 0x95,
|
||||
0xa8, 0x4f, 0x3f, 0x6b, 0x10, 0xd3, 0x4d, 0x69, 0xa1, 0x58, 0xfa, 0x5b, 0xdc, 0x34, 0x3e, 0x44,
|
||||
0x7b, 0xfb, 0xde, 0xad, 0x00, 0x43, 0x54, 0x94, 0x06, 0x49, 0x81, 0x16, 0x61, 0x24, 0xc0, 0xfa,
|
||||
0xdc, 0xa4, 0xd5, 0x8d, 0xa8, 0xf7, 0x46, 0x05, 0x08, 0x76, 0x64, 0x4c, 0xc1, 0x27, 0xa5, 0x01,
|
||||
0x3c, 0x28, 0x12, 0xea, 0x1b, 0xcf, 0x7f, 0xb8, 0x6f, 0x6e, 0x72, 0x40, 0x73, 0x06, 0xae, 0x4d,
|
||||
0xfb, 0x6f, 0xb6, 0x60, 0x2b, 0x80, 0x47, 0x82, 0x4c, 0xdf, 0x48, 0x84, 0x00, 0xcf, 0x4f, 0x83,
|
||||
0x89, 0x4a, 0x6f, 0x02, 0x96, 0xa3, 0xd3, 0xe9, 0x60, 0xce, 0x45, 0xda, 0x54, 0x56, 0x9e, 0xa5,
|
||||
0xe9, 0x68, 0x81, 0x5e, 0x9c, 0x71, 0x8d, 0x19, 0x85, 0xa2, 0x49, 0xad, 0xcf, 0xd4, 0x6f, 0x7a,
|
||||
0x51, 0xff, 0xf6, 0x3d, 0x98, 0x4f, 0x4d, 0xef, 0xee, 0x69, 0x39, 0x28, 0x0a, 0x55, 0xa0, 0x7b,
|
||||
0x28, 0x87, 0x74, 0xd0, 0x4a, 0x40, 0x20, 0xd4, 0xac, 0x49, 0x47, 0x76, 0x9f, 0xd4, 0x97, 0xc7,
|
||||
0xc0, 0x90, 0x29, 0x17, 0xe0, 0xae, 0x81, 0xf9, 0x2f, 0xf0, 0xba, 0x67, 0xf5, 0xbe, 0x9a, 0x5a,
|
||||
0x8a, 0x4d, 0xf9, 0xac, 0x2c, 0x98, 0x8b, 0x56, 0x75, 0x0d, 0x32, 0x65, 0xdc, 0x26, 0xe6, 0x2f,
|
||||
0x79, 0x2a, 0x13, 0x95, 0xe5, 0x18, 0x34, 0x20, 0x39, 0x9b, 0x01, 0x49, 0x99, 0x61, 0x7b, 0x18,
|
||||
0xde, 0x8d, 0x00, 0xc7, 0x98, 0x0e, 0x6a, 0x0d, 0x1c, 0xd2, 0x28, 0xaa, 0xf3, 0x82, 0x1c, 0x70,
|
||||
0x78, 0x41, 0x5e, 0x28, 0xa3, 0x12, 0x25, 0x5e, 0xbc, 0x68, 0x3a, 0x5e, 0xec, 0xfb, 0x4d, 0x47,
|
||||
0x98, 0xc8, 0x4a, 0x88, 0xd8, 0xa8, 0x02, 0x51, 0x91, 0x00, 0xe6, 0xd4, 0x40, 0x66, 0x2f, 0x9e,
|
||||
0x9c, 0xe6, 0xd4, 0xf3, 0xbe, 0x7c, 0xa9, 0xc5, 0x50, 0x3f, 0xcb, 0xd1, 0xe1, 0x77, 0x88, 0x4f,
|
||||
0x3e, 0xa8, 0x14, 0x02, 0x32, 0x16, 0xc0, 0x34, 0x10, 0x0c, 0x04, 0x14, 0xe4, 0xf2, 0x6c, 0x34,
|
||||
0x24, 0xa7, 0x63, 0x74, 0xc9, 0xdf, 0x42, 0xd4, 0xdb, 0x88, 0xbe, 0x43, 0xf3, 0x3c, 0x2b, 0xe5,
|
||||
0xe8, 0x60, 0xe1, 0xdf, 0x3a, 0x26, 0x22, 0x11, 0xe9, 0x4b, 0x77, 0x7c, 0x48, 0xa9, 0xf7, 0xf2,
|
||||
0x9e, 0x4c, 0x6d, 0x1d, 0xfc, 0xad, 0xdf, 0xe6, 0x51, 0x87, 0xfa, 0x7b, 0x1d, 0xef, 0xae, 0x11,
|
||||
0xb6, 0x6b, 0xda, 0x87, 0xda, 0xdc, 0x60, 0x15, 0xfc, 0xca, 0x33, 0x5b, 0x2a, 0xa4, 0x2c, 0x04,
|
||||
0xd2, 0xc4, 0x6e, 0x05, 0x89, 0x46, 0xa2, 0xbe, 0x41, 0x41, 0x27, 0x10, 0xb6, 0xab, 0x82, 0xb7,
|
||||
0x59, 0xc7, 0x64, 0x58, 0xcb, 0x11, 0xc5, 0x68, 0x61, 0x71, 0x4d, 0x55, 0x91, 0x35, 0x08, 0xc7,
|
||||
0xb5, 0xfd, 0xf6, 0x59, 0x53, 0x52, 0xd5, 0x5f, 0x3c, 0xa5, 0x04, 0xcb, 0x7b, 0xae, 0xf0, 0x24,
|
||||
0x57, 0xda, 0xd6, 0x61, 0xca, 0x17, 0x24, 0x11, 0x4c, 0xeb, 0x88, 0x1a, 0x85, 0xe1, 0x58, 0x6e,
|
||||
0xef, 0xcd, 0x41, 0xe4, 0xc7, 0xb4, 0xdf, 0x08, 0x91, 0x6d, 0x06, 0xb3, 0x61, 0x79, 0x19, 0xd1,
|
||||
0x6a, 0x41, 0xd1, 0x6a, 0x22, 0x78, 0x72, 0x15, 0xd1, 0x13, 0x6b, 0xf6, 0x6d, 0xd8, 0xae, 0x0e,
|
||||
0xd0, 0x35, 0x84, 0xe8, 0x3f, 0xad, 0xd3, 0x58, 0x2b, 0x1d, 0x5b, 0xa5, 0x63, 0x96, 0x5c, 0xdd,
|
||||
0xeb, 0x6d, 0x69, 0xe8, 0x72, 0x92, 0x71, 0xf4, 0x31, 0x66, 0x0b, 0x20, 0x2f, 0xc8, 0x40, 0x49,
|
||||
0x09, 0x89, 0xb9, 0x17, 0x9e, 0x17, 0xe8, 0x57, 0x65, 0x69, 0xde, 0xad, 0x5a, 0x09, 0x06, 0xb7,
|
||||
0xcc, 0x31, 0x30, 0x5d, 0xdc, 0xea, 0xf5, 0x6b, 0x0d, 0x62, 0x14, 0x81, 0x6b, 0x64, 0xb5, 0xa5,
|
||||
0xa4, 0x04, 0xb3, 0x54, 0x05, 0x9a, 0xc4, 0xf3, 0xc6, 0x79, 0xb5, 0x70, 0xd1, 0x21, 0xcd, 0x38,
|
||||
0x3e, 0x1d, 0xfa, 0x04, 0x90, 0x10, 0x37, 0x56, 0x45, 0x2a, 0x63, 0xd9, 0x6b, 0x11, 0xbc, 0xc3,
|
||||
0x70, 0x52, 0xf4, 0x43, 0x2e, 0xf3, 0xd2, 0xd4, 0xce, 0xd9, 0xca, 0x5c, 0x85, 0x75, 0x10, 0xe3,
|
||||
0xb5, 0xb0, 0x09, 0x0a, 0x90, 0x33, 0xec, 0x95, 0xb4, 0xd7, 0xc5, 0x20, 0xa2, 0xc2, 0x0a, 0x3e,
|
||||
0xc7, 0x50, 0xe2, 0x97, 0xf4, 0x31, 0xca, 0xea, 0x64, 0x8d, 0x34, 0xde, 0x46, 0x7a, 0xd5, 0xab,
|
||||
0x90, 0x62, 0x83, 0x7c, 0x4f, 0x90, 0x89, 0xa4, 0x89, 0xf4, 0xc4, 0x70, 0x30, 0x43, 0xf6, 0x03,
|
||||
0xf7, 0x47, 0x30, 0xc5, 0x64, 0x78, 0x32, 0x18, 0x6f, 0x39, 0x59, 0xc1, 0x9d, 0xee, 0x23, 0x5c,
|
||||
0x65, 0x49, 0x96, 0xd9, 0x04, 0x0a, 0xba, 0xca, 0x2b, 0x52, 0x22, 0xe3, 0x32, 0xa2, 0x28, 0x80,
|
||||
0xe6, 0x22, 0xda, 0x3d, 0x38, 0xa0, 0xa4, 0x80, 0x7f, 0x4a, 0x5e, 0x40, 0xda, 0x27, 0x01, 0xd9,
|
||||
0xc6, 0xe9, 0x3c, 0x13, 0x4e, 0xf7, 0x99, 0x70, 0x7a, 0x3f, 0x86, 0xb3, 0x11, 0xca, 0x19, 0xb6,
|
||||
0xe7, 0x25, 0xbb, 0xd9, 0x88, 0x59, 0xa3, 0x06, 0x7f, 0x8f, 0xba, 0xff, 0xc9, 0xc7, 0xfa, 0xb1,
|
||||
0x7b, 0xdf, 0x79, 0x26, 0x9c, 0xee, 0x33, 0xe1, 0xf4, 0x7e, 0x08, 0xc7, 0x06, 0xa8, 0x51, 0x07,
|
||||
0x0d, 0x2b, 0x12, 0xeb, 0x07, 0xa5, 0xf4, 0xd5, 0x63, 0xb2, 0xc5, 0xdf, 0x11, 0xb7, 0xc6, 0x77,
|
||||
0x24, 0x37, 0xee, 0x3c, 0x13, 0x4e, 0xf7, 0x99, 0x70, 0x7a, 0x3f, 0x86, 0x63, 0x03, 0x94, 0x0d,
|
||||
0xcf, 0x63, 0x82, 0x0f, 0x2b, 0x8e, 0x1e, 0x7a, 0x55, 0xba, 0x55, 0x83, 0xb1, 0x55, 0x2b, 0x15,
|
||||
0xb1, 0x02, 0x55, 0xe1, 0xd6, 0x8f, 0x05, 0x59, 0x91, 0xf1, 0x89, 0x36, 0xf3, 0xc1, 0x25, 0x68,
|
||||
0xb3, 0xcb, 0x10, 0xf7, 0x14, 0x0a, 0xab, 0x3f, 0x10, 0x1c, 0xdf, 0x2c, 0x6c, 0x11, 0x87, 0x24,
|
||||
0xd4, 0x39, 0x93, 0x6b, 0x2f, 0x79, 0x8e, 0xfd, 0xfb, 0xfc, 0xbe, 0x99, 0x41, 0x8a, 0x2f, 0x08,
|
||||
0x0a, 0x38, 0x07, 0xeb, 0x36, 0xe9, 0x9e, 0x68, 0x20, 0x47, 0x49, 0x62, 0x1d, 0x1d, 0x2b, 0x2e,
|
||||
0x4d, 0xd5, 0x21, 0x8f, 0xc6, 0xc4, 0xb6, 0xc5, 0x27, 0x7d, 0x3f, 0x1a, 0x7f, 0xa3, 0x2f, 0x1e,
|
||||
0xc5, 0x8f, 0x1c, 0x6e, 0x58, 0x85, 0x13, 0x9e, 0xa2, 0xad, 0xb1, 0x93, 0x3a, 0x24, 0x5b, 0xea,
|
||||
0xc9, 0x1c, 0x92, 0xab, 0x89, 0xba, 0x5e, 0x43, 0x9c, 0x54, 0x0d, 0xd0, 0x3a, 0xb2, 0x6a, 0x96,
|
||||
0x8f, 0x9d, 0xb1, 0x73, 0x9a, 0xf7, 0xed, 0xee, 0x7a, 0xf4, 0xb8, 0xbb, 0x22, 0xa8, 0xc1, 0x87,
|
||||
0x1e, 0xb3, 0xd8, 0x0c, 0x6e, 0x5f, 0xfb, 0xaf, 0x7a, 0x77, 0xde, 0x17, 0x7c, 0x96, 0x88, 0x9b,
|
||||
0x44, 0x23, 0x3a, 0x72, 0x26, 0xd0, 0x02, 0x26, 0x3a, 0x20, 0xaf, 0xdd, 0x5c, 0xcd, 0x30, 0x84,
|
||||
0x85, 0x5e, 0xb9, 0xb5, 0x11, 0x31, 0xe2, 0x9e, 0x20, 0x14, 0xc1, 0x30, 0x8b, 0xc3, 0x6d, 0x12,
|
||||
0x1d, 0x0d, 0x76, 0x90, 0xe8, 0x7a, 0xc5, 0xa2, 0xce, 0x8a, 0x45, 0x9d, 0xde, 0x03, 0x12, 0xe1,
|
||||
0xd5, 0xed, 0x05, 0xb5, 0x4d, 0x2c, 0x08, 0xfb, 0xa0, 0xd5, 0x98, 0xf8, 0x30, 0x87, 0x2a, 0x77,
|
||||
0x53, 0xd2, 0x82, 0x89, 0x12, 0x2c, 0x15, 0x6d, 0xaa, 0x57, 0x99, 0xb6, 0x07, 0x6c, 0x6a, 0xe7,
|
||||
0x98, 0x89, 0x52, 0x98, 0xd0, 0x4a, 0xf6, 0xa1, 0x4e, 0x87, 0xf6, 0x87, 0x5c, 0x6f, 0x90, 0xe3,
|
||||
0x81, 0x58, 0xa3, 0x96, 0xc3, 0xec, 0x1d, 0x09, 0x6c, 0x99, 0x7a, 0x17, 0x10, 0xbe, 0x55, 0xe7,
|
||||
0xb0, 0x40, 0x6b, 0x4d, 0xfb, 0x74, 0x16, 0x80, 0xa3, 0x1d, 0x4e, 0xbf, 0x29, 0xa4, 0xde, 0x5a,
|
||||
0xc3, 0x4e, 0x39, 0xee, 0x0a, 0xab, 0x8b, 0x3d, 0x4d, 0x57, 0xcb, 0x56, 0x0c, 0x33, 0x5f, 0xc0,
|
||||
0x03, 0xaa, 0x8e, 0xae, 0x73, 0x28, 0xb8, 0x9d, 0xa9, 0x91, 0xf4, 0x8e, 0xa0, 0xe8, 0xba, 0xfd,
|
||||
0x95, 0x51, 0xc5, 0x5e, 0x0b, 0x80, 0xfc, 0x1b, 0x8c, 0xba, 0x8c, 0xab, 0xd4, 0x85, 0xbc, 0xdf,
|
||||
0x18, 0xa0, 0x5d, 0x3b, 0xe1, 0x90, 0x25, 0x37, 0xf3, 0x75, 0xd4, 0x16, 0x1c, 0x73, 0xce, 0xb5,
|
||||
0x2e, 0x41, 0x07, 0x2e, 0xc9, 0xc3, 0x6a, 0x18, 0x00, 0xe9, 0x2c, 0xf1, 0x69, 0x65, 0x8c, 0x6b,
|
||||
0x62, 0x5f, 0x77, 0x3b, 0x54, 0x24, 0xaa, 0xc0, 0xeb, 0x1a, 0x71, 0xe3, 0x13, 0x2e, 0xed, 0xe8,
|
||||
0xaf, 0x41, 0x93, 0x5c, 0x2d, 0x31, 0x16, 0x76, 0x70, 0x2e, 0x33, 0x77, 0xfb, 0x20, 0x6c, 0x73,
|
||||
0x37, 0x5c, 0x55, 0xa3, 0x19, 0xce, 0x61, 0x29, 0xad, 0x6e, 0x65, 0xe6, 0x48, 0x41, 0x6c, 0xac,
|
||||
0x17, 0xe8, 0xb1, 0xbb, 0xd6, 0x76, 0xa2, 0x47, 0x17, 0x27, 0x4f, 0x65, 0xfa, 0x5c, 0x49, 0x68,
|
||||
0xec, 0x4a, 0x06, 0x66, 0x6b, 0x14, 0x8f, 0x7b, 0xdd, 0xd6, 0xf8, 0xe3, 0x68, 0x97, 0xcc, 0xab,
|
||||
0x5a, 0x66, 0x08, 0xe5, 0xf5, 0x4e, 0xa0, 0x5f, 0x68, 0xff, 0xf7, 0xd3, 0x8b, 0xd6, 0xa7, 0x9d,
|
||||
0x28, 0xf8, 0xf3, 0xf2, 0x8f, 0x92, 0x4b, 0x9c, 0x94, 0x5b, 0x43, 0x3e, 0x6b, 0x7d, 0x4c, 0x0c,
|
||||
0xdb, 0x09, 0xf6, 0xf3, 0xbd, 0xac, 0xb3, 0xbc, 0x4b, 0xee, 0x00, 0x79, 0x7c, 0xb1, 0xe4, 0x82,
|
||||
0xcf, 0xe6, 0xe6, 0x0c, 0x2b, 0xf8, 0xeb, 0xd2, 0x48, 0xbc, 0xcb, 0xaf, 0x0a, 0x20, 0xc5, 0x1b,
|
||||
0x97, 0x17, 0x18, 0x0c, 0x8c, 0xe4, 0x7e, 0xe7, 0x5e, 0x6a, 0x93, 0x8c, 0xee, 0x53, 0x4f, 0x93,
|
||||
0xc5, 0xff, 0x3e, 0xbb, 0xb6, 0xed, 0x60, 0x6e, 0xcb, 0xc1, 0x4e, 0xef, 0x76, 0x94, 0xb7, 0xbf,
|
||||
0xe8, 0xff, 0x05, 0xa1, 0x98, 0xa8, 0xba, 0xe1, 0x0f, 0x00, 0x00
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xb5, 0x58, 0x6b, 0x6f, 0xdb, 0xca,
|
||||
0x11, 0xfd, 0xae, 0x5f, 0xb1, 0xde, 0x16, 0x06, 0x09, 0xd3, 0x94, 0x64, 0x35, 0x69, 0x60, 0x8b,
|
||||
0x4a, 0xfd, 0xd0, 0x8d, 0xdd, 0x3a, 0x8e, 0x0a, 0x19, 0xd7, 0x28, 0xd2, 0xe0, 0x5e, 0x9a, 0x1c,
|
||||
0x49, 0x1b, 0x93, 0xbb, 0xbc, 0xdc, 0xa5, 0x64, 0xc3, 0xd6, 0x7f, 0xef, 0xcc, 0x2e, 0xf5, 0xb4,
|
||||
0x9d, 0x16, 0x81, 0x8b, 0x20, 0x09, 0xb9, 0x3b, 0x3b, 0x33, 0x7b, 0xe6, 0xcc, 0x83, 0xea, 0xee,
|
||||
0x9c, 0x7d, 0x39, 0xbd, 0xfe, 0xd7, 0xa0, 0xcf, 0x26, 0x26, 0xcf, 0x7a, 0x5d, 0xfa, 0x97, 0x65,
|
||||
0xb1, 0x1c, 0x47, 0x1c, 0x24, 0xc7, 0x77, 0x88, 0xd3, 0x5e, 0x37, 0x07, 0x13, 0xb3, 0x64, 0x12,
|
||||
0x97, 0x1a, 0x4c, 0xc4, 0x2b, 0x33, 0xda, 0xff, 0xc0, 0xeb, 0xd5, 0x86, 0x8c, 0x73, 0x88, 0xf8,
|
||||
0x54, 0xc0, 0xac, 0x50, 0xa5, 0xe1, 0x2c, 0x51, 0xd2, 0x80, 0x44, 0xb1, 0x99, 0x48, 0xcd, 0x24,
|
||||
0x7a, 0xd7, 0x6a, 0x2d, 0x45, 0xb7, 0xb6, 0x52, 0x98, 0x8a, 0x04, 0xf6, 0xed, 0x4b, 0x20, 0xa4,
|
||||
0x30, 0x22, 0xce, 0xf6, 0x75, 0x12, 0x67, 0x10, 0xb5, 0x83, 0x3c, 0xbe, 0x17, 0x79, 0x95, 0x2f,
|
||||
0xdf, 0x2b, 0x0d, 0xa5, 0x7d, 0x89, 0x6f, 0xf1, 0x5d, 0x2a, 0xfe, 0xcc, 0x72, 0xaf, 0x6b, 0x84,
|
||||
0xc9, 0xa0, 0x77, 0x23, 0x7e, 0x11, 0x6c, 0x08, 0xc6, 0x08, 0x39, 0xd6, 0xdd, 0xa6, 0x5b, 0xec,
|
||||
0xea, 0xa4, 0x14, 0x85, 0xe9, 0x35, 0xa6, 0x71, 0xc9, 0x32, 0x95, 0x88, 0x22, 0x48, 0xa3, 0x54,
|
||||
0x25, 0x55, 0x8e, 0x0e, 0x05, 0xb8, 0x10, 0xed, 0xb4, 0x03, 0x54, 0x2f, 0x2f, 0x95, 0x2a, 0x74,
|
||||
0xd4, 0x0a, 0x8a, 0x12, 0x86, 0xf8, 0x3a, 0x1c, 0x5e, 0x9c, 0x45, 0x9c, 0x1f, 0x8d, 0x2a, 0x99,
|
||||
0x18, 0xa1, 0x24, 0x1b, 0x5f, 0xa4, 0x1e, 0xf8, 0x8f, 0x25, 0x98, 0xaa, 0x94, 0x2c, 0x0d, 0xc7,
|
||||
0x60, 0xfa, 0x19, 0x90, 0x96, 0x93, 0x07, 0xbb, 0x35, 0x5f, 0x8a, 0x26, 0xfd, 0x0d, 0xc9, 0xa4,
|
||||
0x84, 0xd8, 0x40, 0x2d, 0xbc, 0x21, 0x78, 0xee, 0xf9, 0x8f, 0x33, 0x21, 0x53, 0x35, 0x0b, 0x55,
|
||||
0x01, 0xd2, 0xe3, 0x13, 0x63, 0x0a, 0x7d, 0xd8, 0x6c, 0xde, 0x49, 0x15, 0xce, 0x32, 0x20, 0x2b,
|
||||
0xcd, 0x11, 0x9e, 0xae, 0x4a, 0xd0, 0x4d, 0x5d, 0x5f, 0xad, 0xf9, 0xa7, 0x99, 0x18, 0x89, 0xfd,
|
||||
0xc5, 0x2b, 0x5f, 0x53, 0x78, 0xb2, 0xad, 0x70, 0x79, 0x88, 0x07, 0xfc, 0x37, 0x0d, 0xd9, 0x68,
|
||||
0x5d, 0xfa, 0x0a, 0xa5, 0x31, 0x34, 0xda, 0x30, 0x88, 0x3c, 0x84, 0xe2, 0xa3, 0xb5, 0x8f, 0xe6,
|
||||
0xf9, 0x9e, 0x45, 0xea, 0x90, 0x73, 0x7f, 0x8f, 0x37, 0xbf, 0x6b, 0x25, 0x9b, 0x12, 0x0c, 0x0f,
|
||||
0x4c, 0x44, 0x28, 0x70, 0x82, 0x8b, 0xfb, 0x47, 0x26, 0x4c, 0x85, 0xa6, 0xa8, 0xa4, 0xd1, 0x4e,
|
||||
0x2b, 0x30, 0xa1, 0x90, 0x12, 0xca, 0xf3, 0xeb, 0xcf, 0x97, 0x11, 0x27, 0x04, 0x25, 0x9a, 0x0d,
|
||||
0xc3, 0x90, 0x07, 0x23, 0x30, 0xc9, 0x04, 0xef, 0x1d, 0x9a, 0x09, 0xba, 0x04, 0x51, 0x0f, 0x42,
|
||||
0x52, 0xe9, 0xf9, 0xab, 0x95, 0x2f, 0xb7, 0xdf, 0x21, 0x31, 0x61, 0xac, 0xb5, 0x18, 0x4b, 0xef,
|
||||
0x71, 0x1e, 0x3c, 0xa2, 0xbd, 0x99, 0x2a, 0xef, 0xf4, 0xe1, 0xd7, 0x6f, 0xf3, 0x00, 0xcf, 0x2e,
|
||||
0xde, 0x43, 0x8d, 0x21, 0xf7, 0x3c, 0x08, 0x8c, 0x1f, 0xf5, 0x4c, 0x58, 0xe2, 0x89, 0x7d, 0xb0,
|
||||
0xff, 0xf9, 0x61, 0x09, 0x69, 0x95, 0xc0, 0x62, 0xd3, 0x03, 0x94, 0xcd, 0xc1, 0x19, 0xc4, 0xfd,
|
||||
0x34, 0x8a, 0x22, 0x63, 0x1f, 0xfc, 0xa7, 0x27, 0x08, 0x8b, 0x4a, 0x4f, 0x3c, 0xe3, 0xa3, 0xee,
|
||||
0xe0, 0xeb, 0xb7, 0x35, 0x57, 0x1e, 0xc5, 0xc8, 0x6b, 0xa1, 0x28, 0x84, 0x19, 0xc8, 0xb1, 0x99,
|
||||
0xec, 0xee, 0x2e, 0xd9, 0xd1, 0x6d, 0xb7, 0xfc, 0x3a, 0xaa, 0xcb, 0xb5, 0xbd, 0xbd, 0x60, 0xaa,
|
||||
0x44, 0xca, 0x10, 0xe7, 0x6b, 0x91, 0x83, 0xaa, 0x8c, 0x77, 0x15, 0xb4, 0xa1, 0xe3, 0x1f, 0xad,
|
||||
0x91, 0xea, 0x28, 0x03, 0xc3, 0xa4, 0x03, 0xef, 0x74, 0x88, 0xd0, 0xa1, 0x0d, 0xe9, 0x3f, 0xd2,
|
||||
0xaa, 0x89, 0x90, 0x2d, 0x1c, 0x23, 0x83, 0xf7, 0xb7, 0x98, 0xa2, 0xa2, 0x63, 0x63, 0x4a, 0x71,
|
||||
0x5b, 0x19, 0xf0, 0xb8, 0x48, 0x31, 0x70, 0x74, 0x24, 0xd8, 0xde, 0xa1, 0x24, 0x78, 0x6d, 0x4f,
|
||||
0x49, 0xcc, 0x59, 0x39, 0xa6, 0xfd, 0x6b, 0xcf, 0x47, 0x81, 0x75, 0x52, 0xcb, 0x70, 0x1a, 0x67,
|
||||
0x15, 0x1c, 0x8d, 0x54, 0xe9, 0x91, 0x07, 0x80, 0xfe, 0x41, 0xd7, 0x84, 0xc9, 0x44, 0x64, 0x69,
|
||||
0x09, 0xb2, 0xbe, 0xf7, 0x11, 0xec, 0xed, 0xf9, 0x08, 0x30, 0xe4, 0x6a, 0x0a, 0xa7, 0xb4, 0xe7,
|
||||
0xad, 0x64, 0xbe, 0xc2, 0x37, 0x7f, 0xa9, 0x40, 0xa1, 0x02, 0xd5, 0x5d, 0xe0, 0x75, 0xa4, 0xf0,
|
||||
0x5c, 0x4d, 0x2b, 0x61, 0x2f, 0xa7, 0x0a, 0x62, 0x1b, 0xdd, 0x7a, 0xcb, 0x4d, 0xeb, 0x07, 0x0f,
|
||||
0xe0, 0xab, 0xfa, 0xe6, 0xe2, 0x12, 0x88, 0x35, 0x12, 0xfd, 0xfe, 0xe7, 0xc7, 0xe5, 0xce, 0x9c,
|
||||
0x79, 0xf5, 0x1b, 0x45, 0x7a, 0xce, 0xd2, 0x93, 0xdc, 0xff, 0x7d, 0x75, 0x10, 0xc3, 0x55, 0xdf,
|
||||
0x6a, 0x77, 0x77, 0xdb, 0x88, 0x83, 0x16, 0x08, 0xc7, 0xe5, 0x23, 0x21, 0x16, 0x17, 0x98, 0x20,
|
||||
0xa9, 0xbb, 0x98, 0xf0, 0xe7, 0xce, 0x61, 0xb5, 0xe9, 0xb0, 0x7a, 0xd9, 0x61, 0xbe, 0x73, 0x8a,
|
||||
0x59, 0x17, 0xa8, 0x75, 0xc6, 0x7f, 0x41, 0xfe, 0x94, 0xac, 0x66, 0xa9, 0xa5, 0xfd, 0xa6, 0x09,
|
||||
0xe5, 0x07, 0x12, 0xc1, 0x2c, 0xb2, 0x38, 0x81, 0x1b, 0x61, 0x88, 0x7a, 0xf3, 0xf5, 0x04, 0x6a,
|
||||
0x3f, 0x4f, 0x20, 0x3e, 0x5f, 0xcb, 0x55, 0x8c, 0xe3, 0xa3, 0x8b, 0xd6, 0x06, 0x8b, 0x76, 0xe0,
|
||||
0xe9, 0xc9, 0xba, 0xb3, 0x83, 0x84, 0xb5, 0xee, 0xd5, 0x0c, 0x3d, 0x5a, 0x91, 0x4b, 0xc8, 0xa2,
|
||||
0x72, 0xdc, 0x32, 0x0f, 0x05, 0x16, 0x4e, 0x03, 0xf7, 0x94, 0xcb, 0x21, 0xe2, 0x46, 0x7a, 0xf0,
|
||||
0xc9, 0x15, 0x54, 0xf7, 0xbc, 0x79, 0x63, 0xac, 0xc6, 0x2e, 0xac, 0x3c, 0xe8, 0x1c, 0x10, 0x6c,
|
||||
0xd6, 0x46, 0xb4, 0xc6, 0xa7, 0x00, 0xb6, 0xaf, 0xb5, 0xf4, 0x39, 0x53, 0x71, 0xfa, 0xf7, 0x21,
|
||||
0xa5, 0x23, 0x16, 0x08, 0xe7, 0xbe, 0x74, 0x74, 0xb7, 0x35, 0x19, 0x5d, 0x92, 0xdb, 0xc1, 0x2a,
|
||||
0x13, 0x4e, 0x19, 0xb9, 0xbd, 0x4e, 0x8e, 0x23, 0xee, 0xe4, 0x79, 0xf3, 0x7b, 0x3c, 0x8d, 0x17,
|
||||
0x0a, 0x9e, 0x09, 0xc6, 0xfa, 0x41, 0xa2, 0x0a, 0xcc, 0xeb, 0x34, 0xbc, 0x55, 0xe9, 0xc3, 0x46,
|
||||
0x0c, 0x24, 0xc9, 0xc7, 0x69, 0xda, 0x9f, 0x62, 0x21, 0xbe, 0x14, 0x1a, 0x7b, 0x12, 0x94, 0x1e,
|
||||
0x27, 0x37, 0x79, 0xe0, 0x61, 0xc9, 0x78, 0xfc, 0x04, 0xe6, 0x57, 0xcf, 0x9f, 0xbf, 0x2c, 0x07,
|
||||
0x65, 0xa9, 0x4a, 0x74, 0x0f, 0xe5, 0x88, 0x2d, 0x2a, 0x43, 0xca, 0xab, 0xb1, 0xc7, 0xfb, 0xb4,
|
||||
0xce, 0xea, 0xfb, 0x62, 0xd1, 0x63, 0x23, 0x91, 0x81, 0xbd, 0x06, 0x76, 0x30, 0x2c, 0x56, 0xfc,
|
||||
0xb2, 0x5e, 0x57, 0x23, 0x6a, 0x92, 0x23, 0x31, 0xae, 0xca, 0xd8, 0x02, 0xe4, 0xae, 0xc1, 0x46,
|
||||
0xb1, 0xa0, 0x5a, 0xff, 0x6f, 0x79, 0x21, 0x13, 0x95, 0x17, 0x88, 0x13, 0xb0, 0x22, 0x1e, 0x03,
|
||||
0x4b, 0x63, 0x13, 0xef, 0x60, 0xc5, 0x5e, 0xc3, 0x74, 0x88, 0x3c, 0xe0, 0x64, 0xe0, 0x90, 0x47,
|
||||
0x51, 0x5d, 0xea, 0xb1, 0x58, 0x5b, 0x7d, 0x61, 0x51, 0x2a, 0xa3, 0x12, 0x95, 0xed, 0xee, 0x7a,
|
||||
0xb6, 0xb3, 0xb5, 0x02, 0xcf, 0x16, 0xf2, 0x88, 0x24, 0xb2, 0xa1, 0x51, 0x25, 0x6a, 0xa5, 0xce,
|
||||
0x75, 0x61, 0x20, 0xa7, 0x8b, 0x27, 0x17, 0x05, 0xf7, 0xb1, 0x1c, 0xd6, 0x62, 0x78, 0x3e, 0x2f,
|
||||
0xd0, 0xe1, 0x5f, 0x50, 0x3f, 0xfb, 0xac, 0x52, 0x08, 0xd9, 0x20, 0x83, 0x58, 0x03, 0x43, 0x20,
|
||||
0x90, 0xde, 0x37, 0x97, 0xfd, 0x33, 0x76, 0x31, 0x40, 0x97, 0x82, 0x0d, 0x8d, 0x7a, 0x53, 0x63,
|
||||
0x60, 0xb5, 0xf9, 0x3e, 0x49, 0x59, 0x06, 0xfc, 0xa0, 0xb9, 0x2c, 0x9b, 0x9a, 0xc6, 0xa6, 0xf0,
|
||||
0xb1, 0x88, 0xda, 0x3c, 0xd8, 0x69, 0xfb, 0xf3, 0x46, 0xb7, 0x59, 0x37, 0xee, 0xae, 0x36, 0x0f,
|
||||
0xd8, 0xc7, 0xff, 0x26, 0x72, 0x6a, 0xf6, 0xac, 0x2a, 0x33, 0xa4, 0x09, 0x2d, 0x85, 0x89, 0xc6,
|
||||
0x2c, 0x3c, 0x42, 0x41, 0x2b, 0xd0, 0x6d, 0xba, 0x91, 0x85, 0xa2, 0x8e, 0xc1, 0x20, 0xcb, 0x98,
|
||||
0x46, 0x58, 0xfd, 0x7a, 0x5d, 0x2c, 0x54, 0x79, 0x83, 0x11, 0xdd, 0xe9, 0xe9, 0x37, 0xcd, 0x99,
|
||||
0x23, 0xfc, 0x70, 0xc4, 0x19, 0x0e, 0x28, 0x13, 0x85, 0x3b, 0x85, 0xd2, 0x34, 0x49, 0xa4, 0x62,
|
||||
0xca, 0x92, 0x0c, 0xfb, 0x10, 0xa6, 0x89, 0x42, 0x38, 0x66, 0x9b, 0x6b, 0x13, 0xc8, 0x8a, 0x13,
|
||||
0xde, 0x6b, 0x74, 0x91, 0x6d, 0x06, 0xa3, 0xe1, 0x12, 0xca, 0xbd, 0x70, 0xb4, 0x9a, 0x64, 0x22,
|
||||
0xb9, 0x8b, 0xf8, 0x39, 0x99, 0xfd, 0xd8, 0x6d, 0xba, 0x0d, 0x74, 0x0d, 0x55, 0xf4, 0x5e, 0x3e,
|
||||
0xd3, 0x58, 0x1e, 0x3a, 0xa1, 0x43, 0x27, 0x71, 0x72, 0xb7, 0x3a, 0xb7, 0x71, 0x42, 0x57, 0xb7,
|
||||
0xb9, 0x40, 0x1f, 0x87, 0xf1, 0x14, 0xd8, 0x2e, 0x3b, 0x55, 0x58, 0x2d, 0x12, 0xb3, 0x12, 0x9e,
|
||||
0x94, 0xe8, 0x97, 0xb3, 0x34, 0x39, 0x70, 0xc3, 0x10, 0x82, 0x5b, 0x15, 0x08, 0xcc, 0x01, 0x2e,
|
||||
0x75, 0x7a, 0xf5, 0x09, 0x66, 0x14, 0x83, 0x7b, 0x64, 0x35, 0x51, 0xb2, 0x2e, 0x58, 0x28, 0xd3,
|
||||
0x59, 0x9a, 0x6b, 0x6c, 0x7a, 0x48, 0xb8, 0xd9, 0x8e, 0xbf, 0xba, 0xdf, 0x15, 0xb9, 0x4a, 0x05,
|
||||
0x60, 0xcd, 0x55, 0xb4, 0x7e, 0xe5, 0x94, 0x59, 0x74, 0x99, 0x67, 0x8b, 0x03, 0x03, 0x24, 0xd4,
|
||||
0x03, 0x99, 0x94, 0xca, 0x10, 0xfb, 0xc9, 0x03, 0xff, 0x90, 0xc4, 0xbb, 0xb6, 0x2e, 0xb1, 0xb5,
|
||||
0x9a, 0xc4, 0xea, 0x8a, 0xb4, 0x98, 0xf0, 0xe8, 0x71, 0x59, 0x80, 0x22, 0xde, 0x39, 0xe0, 0xd6,
|
||||
0xce, 0xc2, 0x4c, 0x81, 0x21, 0xc1, 0x87, 0xf4, 0xb9, 0xb6, 0xc5, 0xce, 0x4a, 0xd3, 0x60, 0x43,
|
||||
0xd3, 0xfb, 0x8e, 0xd3, 0x34, 0x34, 0x98, 0x37, 0x09, 0x32, 0x9a, 0x61, 0x23, 0x23, 0x58, 0x63,
|
||||
0xc3, 0x5a, 0xa1, 0xfd, 0xc3, 0x90, 0x2a, 0xec, 0xec, 0xfc, 0x74, 0xb0, 0xe1, 0x6c, 0xad, 0xee,
|
||||
0xa2, 0xc5, 0x6b, 0x4b, 0xb2, 0xca, 0x6f, 0xa1, 0xe4, 0x0b, 0x7e, 0x20, 0xb5, 0x72, 0x21, 0x23,
|
||||
0xde, 0xb2, 0xe6, 0x22, 0x7e, 0xf0, 0xee, 0x1d, 0x67, 0x25, 0xfc, 0x51, 0x09, 0x9c, 0x4d, 0x7a,
|
||||
0x2c, 0x64, 0x5b, 0x7a, 0xda, 0x6f, 0xa4, 0xe7, 0xe0, 0x8d, 0xf4, 0x74, 0x7e, 0x4a, 0xcf, 0x1a,
|
||||
0x94, 0x63, 0x9c, 0x74, 0x67, 0xf1, 0xc3, 0x61, 0x63, 0x0d, 0x34, 0xa7, 0xfb, 0xd3, 0x4f, 0x63,
|
||||
0xd6, 0xd8, 0xd4, 0xf3, 0x46, 0x98, 0x7d, 0x7a, 0x23, 0xcc, 0x3e, 0xfd, 0x3c, 0x66, 0x8d, 0x1a,
|
||||
0x34, 0xcc, 0x6c, 0xcc, 0x43, 0x94, 0xd2, 0x77, 0x87, 0xcf, 0x70, 0x1b, 0xfe, 0x0f, 0xb8, 0x35,
|
||||
0x7e, 0xe8, 0x68, 0xad, 0xa7, 0xfd, 0x46, 0x7a, 0x0e, 0xde, 0x48, 0x4f, 0xe7, 0xe7, 0xf4, 0x10,
|
||||
0x40, 0xf9, 0xd9, 0xd5, 0x90, 0x61, 0x83, 0xc6, 0xaf, 0x22, 0xbd, 0x48, 0x5d, 0x57, 0x68, 0x28,
|
||||
0x6b, 0xa5, 0x62, 0x24, 0xe0, 0x12, 0xb7, 0x6e, 0x3a, 0xb5, 0xed, 0xc6, 0x46, 0xb9, 0xa9, 0x6b,
|
||||
0xc3, 0xe7, 0x67, 0x55, 0x86, 0xd9, 0x96, 0x9a, 0xd1, 0xf9, 0xd3, 0x4c, 0x60, 0xef, 0xc3, 0x12,
|
||||
0x71, 0xc8, 0xba, 0xba, 0x88, 0xe5, 0xd2, 0x4b, 0x51, 0x60, 0x1f, 0xb8, 0x5a, 0x15, 0x35, 0x48,
|
||||
0xb1, 0x13, 0xa1, 0x80, 0x75, 0xb0, 0x2e, 0xb7, 0xb6, 0xd5, 0x03, 0x3b, 0x4e, 0x12, 0x72, 0x74,
|
||||
0xa0, 0x84, 0x34, 0xb6, 0xd2, 0x36, 0x8e, 0x07, 0x8c, 0xca, 0xe3, 0x8b, 0xbe, 0x1f, 0x0f, 0x5e,
|
||||
0xad, 0x8f, 0xce, 0xe1, 0xe3, 0xe7, 0x65, 0xd1, 0xa6, 0xdb, 0xb9, 0x48, 0xd1, 0xd6, 0xc0, 0x4a,
|
||||
0x1d, 0xb2, 0x8d, 0xe3, 0xc9, 0x04, 0x92, 0xbb, 0x5b, 0x75, 0xbf, 0x54, 0x71, 0xee, 0x0a, 0x20,
|
||||
0x39, 0xb2, 0x28, 0x96, 0xcf, 0x9d, 0xa1, 0x4f, 0x48, 0xff, 0x47, 0xd5, 0xb5, 0x56, 0x36, 0x70,
|
||||
0x91, 0x5a, 0xab, 0xae, 0xa8, 0xd4, 0xe0, 0xc0, 0x80, 0x51, 0xf4, 0xc2, 0xc7, 0x0f, 0xc1, 0xfb,
|
||||
0xce, 0xdc, 0x7f, 0xc2, 0x9e, 0xc1, 0xec, 0x37, 0x79, 0xc4, 0xfb, 0xd6, 0x04, 0x5a, 0xc0, 0x40,
|
||||
0x87, 0xec, 0x83, 0xfd, 0x85, 0x21, 0x46, 0x08, 0x4b, 0xbd, 0x70, 0x6b, 0x0d, 0x31, 0x66, 0x5b,
|
||||
0x19, 0x7d, 0xd0, 0x48, 0xc8, 0x0e, 0x37, 0x49, 0x74, 0x7c, 0xfa, 0x0a, 0x89, 0xee, 0x17, 0x2c,
|
||||
0x6a, 0x2f, 0x58, 0xd4, 0xee, 0x6c, 0x91, 0x08, 0xaf, 0x4e, 0x17, 0xd4, 0x14, 0x58, 0xfb, 0x61,
|
||||
0xb0, 0xd0, 0x89, 0x0d, 0xbe, 0xeb, 0x3e, 0x01, 0x98, 0x9b, 0x76, 0x91, 0x8a, 0x14, 0xea, 0x45,
|
||||
0xa4, 0x69, 0x23, 0x1e, 0xd1, 0x3c, 0x74, 0xab, 0x14, 0x06, 0xd4, 0xc9, 0x6e, 0x9f, 0x69, 0xf3,
|
||||
0xde, 0x99, 0xd0, 0x6b, 0xe4, 0xd8, 0x12, 0x6b, 0xd4, 0x72, 0x18, 0xbd, 0xe3, 0x0c, 0x4b, 0xa6,
|
||||
0x7e, 0x4d, 0x11, 0xf6, 0xaa, 0x2b, 0x98, 0xa2, 0x35, 0x8f, 0x5a, 0x68, 0x09, 0x38, 0x22, 0xe6,
|
||||
0x38, 0xd2, 0x42, 0xea, 0x2f, 0x4f, 0xd0, 0xb4, 0x64, 0xaf, 0xb0, 0xb8, 0xd8, 0xcb, 0x74, 0x25,
|
||||
0xb6, 0x22, 0xcc, 0x62, 0x0a, 0x5b, 0x54, 0xed, 0xdf, 0x17, 0x50, 0x0a, 0xfa, 0x79, 0x02, 0x49,
|
||||
0x6f, 0x09, 0x7a, 0xe6, 0x3e, 0x4c, 0x1c, 0xf6, 0x3a, 0x03, 0x28, 0xfe, 0x0b, 0xa3, 0x6e, 0x86,
|
||||
0x2e, 0x74, 0x5d, 0xd1, 0x6b, 0x9c, 0xa2, 0x5d, 0x9a, 0x94, 0xd8, 0x0c, 0xbf, 0x08, 0x96, 0xa8,
|
||||
0x4d, 0x05, 0xc6, 0x5c, 0x68, 0x5d, 0x81, 0x0e, 0x6d, 0x90, 0xcf, 0xdc, 0x50, 0x00, 0xd2, 0x5a,
|
||||
0x12, 0x23, 0x67, 0x4c, 0x68, 0x46, 0xdd, 0x9d, 0x86, 0x93, 0x44, 0x95, 0x78, 0x5d, 0x93, 0x3d,
|
||||
0x04, 0x4c, 0x48, 0xfa, 0x15, 0x45, 0x83, 0x66, 0x85, 0x9a, 0x21, 0x16, 0x34, 0x80, 0x57, 0xb9,
|
||||
0xbd, 0x7d, 0xd8, 0x6d, 0x0a, 0x3b, 0xa4, 0xb9, 0x11, 0x0f, 0xe7, 0xb9, 0x94, 0xbb, 0x5b, 0xd1,
|
||||
0x27, 0x19, 0x15, 0xd6, 0x6b, 0xf4, 0xd8, 0x4d, 0x38, 0x1b, 0x81, 0xee, 0x5f, 0x9f, 0xbf, 0x14,
|
||||
0xe9, 0x2b, 0x25, 0xa1, 0xf1, 0x5a, 0x30, 0x30, 0x5a, 0xfd, 0xe1, 0xa0, 0x73, 0xb0, 0x3f, 0xf8,
|
||||
0xd2, 0x7f, 0x4d, 0xe6, 0x7d, 0x2d, 0x73, 0x06, 0xd5, 0xfd, 0xab, 0x8a, 0xfe, 0xca, 0x7b, 0xff,
|
||||
0xb8, 0xb8, 0xde, 0xff, 0xf5, 0x55, 0x2d, 0x1f, 0x78, 0xef, 0x9f, 0x95, 0x90, 0x38, 0x71, 0xef,
|
||||
0x9f, 0x89, 0xf1, 0xfe, 0x97, 0xc4, 0xc4, 0xaf, 0x2a, 0xfb, 0xcb, 0x4a, 0xd6, 0x5a, 0x7e, 0x4d,
|
||||
0xee, 0x1d, 0xf2, 0xf8, 0x7a, 0x26, 0x32, 0x31, 0x9e, 0x98, 0x4b, 0xcc, 0xe0, 0x1f, 0x4b, 0x23,
|
||||
0xf1, 0x6e, 0x7e, 0x28, 0x80, 0x14, 0x6f, 0xdc, 0x5c, 0x23, 0x18, 0x88, 0x64, 0xab, 0xbd, 0x92,
|
||||
0x5a, 0x27, 0xa3, 0xfd, 0x5b, 0x4f, 0xa5, 0xe5, 0xff, 0x7d, 0x06, 0x6e, 0xd2, 0x80, 0x4f, 0xe9,
|
||||
0x40, 0x5f, 0x01, 0xf4, 0x49, 0x40, 0xbf, 0x6d, 0xfe, 0x07, 0x10, 0x1c, 0x76, 0x1f, 0xeb, 0x14,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
@@ -1473,156 +1507,156 @@ const uint8_t PAGE_settings_time[] PROGMEM = {
|
||||
const uint16_t PAGE_settings_sec_length = 2406;
|
||||
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x73, 0xd3, 0x48,
|
||||
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x19, 0xaa, 0x58, 0xeb, 0x50, 0x24, 0x27, 0xb0, 0x5b, 0x40, 0x22,
|
||||
0x73, 0x09, 0x09, 0x47, 0xae, 0x12, 0x92, 0xc2, 0x66, 0xb9, 0x2b, 0x8e, 0xa2, 0xc6, 0xd2, 0xd8,
|
||||
0x1a, 0x2c, 0x6b, 0xb4, 0x33, 0xa3, 0x18, 0x1f, 0xbb, 0xff, 0xfd, 0x9e, 0x1e, 0x49, 0xb6, 0x13,
|
||||
0x12, 0x28, 0xea, 0x3e, 0x24, 0xb6, 0x46, 0x33, 0xfd, 0xf2, 0x74, 0xf7, 0xd3, 0x3d, 0x3e, 0xdc,
|
||||
0x39, 0xb9, 0x7c, 0x39, 0xfe, 0xf7, 0xd5, 0x29, 0xcb, 0xdd, 0xa2, 0x18, 0x1e, 0xd2, 0x7f, 0x56,
|
||||
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x19, 0xaa, 0x58, 0xeb, 0x50, 0x24, 0x27, 0x70, 0x14, 0x90, 0xc8,
|
||||
0x5c, 0x42, 0xc2, 0x92, 0xab, 0x84, 0xa4, 0x62, 0xb3, 0xdc, 0x15, 0xb7, 0x45, 0x8d, 0xa5, 0xb1,
|
||||
0x35, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x31, 0x3e, 0x76, 0xff, 0xfb, 0x3d, 0x3d, 0x92, 0x6c, 0x27,
|
||||
0x04, 0x28, 0xea, 0x3e, 0x24, 0xb6, 0x46, 0x33, 0xfd, 0xf2, 0x74, 0xf7, 0xd3, 0x3d, 0x3e, 0xdc,
|
||||
0x39, 0xb9, 0x7c, 0x35, 0xfe, 0xf7, 0xd5, 0x29, 0xcb, 0xdd, 0xa2, 0x18, 0x1e, 0xd2, 0x7f, 0x56,
|
||||
0x88, 0x72, 0x96, 0x70, 0x59, 0x72, 0x3c, 0x4b, 0x91, 0x0d, 0x0f, 0x17, 0xd2, 0x09, 0x56, 0x8a,
|
||||
0x85, 0x4c, 0xf8, 0xb5, 0x92, 0xcb, 0x4a, 0x1b, 0xc7, 0x59, 0xaa, 0x4b, 0x27, 0x4b, 0x97, 0xf0,
|
||||
0xa5, 0xca, 0x5c, 0x9e, 0xfc, 0x3a, 0x18, 0xf0, 0x61, 0xaf, 0xd9, 0xda, 0xbb, 0xf5, 0x2e, 0x93,
|
||||
0xd7, 0x2a, 0x95, 0xbb, 0xfe, 0x21, 0x54, 0xa5, 0x72, 0x4a, 0x14, 0xbb, 0x36, 0x15, 0x85, 0x4c,
|
||||
0xf6, 0xc2, 0x85, 0xf8, 0xa2, 0x16, 0xf5, 0x62, 0xfd, 0x5c, 0x5b, 0x69, 0xfc, 0x83, 0x98, 0xe0,
|
||||
0xb9, 0xd4, 0x9c, 0xf5, 0x6e, 0xa9, 0x6e, 0x0d, 0x4a, 0x73, 0x61, 0xac, 0x84, 0x92, 0xda, 0x4d,
|
||||
0x77, 0x9f, 0x62, 0xd5, 0x29, 0x57, 0xc8, 0xe1, 0x85, 0xb2, 0x29, 0x1b, 0x49, 0xe7, 0x54, 0x39,
|
||||
0xb3, 0x87, 0x71, 0xb3, 0x78, 0x68, 0x53, 0xa3, 0x2a, 0x37, 0xec, 0x5d, 0x0b, 0xc3, 0x0a, 0x9d,
|
||||
0xaa, 0x2a, 0x74, 0x6a, 0x21, 0x75, 0xed, 0xc2, 0x2c, 0xc9, 0x74, 0x5a, 0x2f, 0x60, 0x6e, 0x88,
|
||||
0x17, 0xc9, 0xce, 0xde, 0xc1, 0xb4, 0x2e, 0x53, 0xa7, 0x74, 0xc9, 0x5e, 0xf7, 0x83, 0xaf, 0x4b,
|
||||
0x55, 0x66, 0x7a, 0x19, 0xe9, 0x4a, 0x96, 0x7d, 0x9e, 0x3b, 0x57, 0xd9, 0xe7, 0x71, 0x3c, 0x2f,
|
||||
0x75, 0xb4, 0x2c, 0x64, 0x16, 0xcd, 0x64, 0x3c, 0x95, 0xc2, 0xd5, 0x46, 0xda, 0xd8, 0xb6, 0x3a,
|
||||
0xe3, 0x07, 0x56, 0xa6, 0xb5, 0x51, 0x6e, 0xb5, 0xdb, 0x2d, 0xf1, 0xe0, 0xaf, 0xb5, 0xd0, 0xe3,
|
||||
0xdb, 0x42, 0xd7, 0x07, 0x79, 0xc8, 0x3f, 0x59, 0x59, 0x4c, 0xb7, 0x77, 0xbf, 0xfb, 0x66, 0x77,
|
||||
0x5d, 0x65, 0xc2, 0xc9, 0xbb, 0xf6, 0xce, 0xce, 0xb2, 0xbe, 0x0c, 0xbe, 0x1a, 0x09, 0x7b, 0x4a,
|
||||
0x46, 0xc6, 0xb9, 0xd3, 0x42, 0x92, 0x67, 0xc7, 0x2b, 0xff, 0x6a, 0xb3, 0x55, 0xd9, 0xcb, 0xc9,
|
||||
0xe7, 0xad, 0xcd, 0xf2, 0xe1, 0x43, 0xae, 0x27, 0x9f, 0x65, 0xea, 0x78, 0x92, 0xb8, 0x55, 0x25,
|
||||
0xf5, 0x94, 0xd6, 0x76, 0x8e, 0x8c, 0x11, 0xab, 0x48, 0x59, 0xff, 0x79, 0x43, 0x42, 0xa1, 0x45,
|
||||
0xf6, 0xcf, 0x51, 0x5f, 0x86, 0x2e, 0xd9, 0x19, 0x04, 0x5f, 0x0b, 0xe9, 0x98, 0x4e, 0xb2, 0x28,
|
||||
0x35, 0x80, 0x43, 0xb6, 0x6a, 0xfb, 0xbc, 0x81, 0x9d, 0x07, 0x07, 0x3a, 0x82, 0x97, 0x47, 0xce,
|
||||
0x19, 0x35, 0xa9, 0x9d, 0xc4, 0x0b, 0x93, 0xf2, 0x50, 0x06, 0xe1, 0xed, 0x75, 0xd2, 0x0d, 0xdf,
|
||||
0x9c, 0xfc, 0xe2, 0xe2, 0xcf, 0xe2, 0x5a, 0x74, 0x02, 0xbe, 0xd9, 0x28, 0xec, 0xaa, 0x84, 0x08,
|
||||
0x17, 0x84, 0x59, 0x34, 0xd1, 0xd9, 0x2a, 0x12, 0x15, 0xf0, 0xc9, 0x5e, 0xe6, 0xaa, 0xc8, 0xfa,
|
||||
0x9a, 0xf6, 0x8b, 0x2c, 0x3b, 0xbd, 0x86, 0x15, 0xe7, 0xca, 0x22, 0x19, 0xa5, 0xe9, 0x73, 0xb2,
|
||||
0x99, 0x87, 0xfd, 0x20, 0x19, 0x7e, 0xfd, 0x87, 0x74, 0xbf, 0xf7, 0x83, 0x10, 0x32, 0x8f, 0xd3,
|
||||
0xf9, 0x2b, 0x55, 0x48, 0xca, 0xb1, 0x3e, 0x21, 0xc8, 0x27, 0xe9, 0x3c, 0x9d, 0xce, 0x78, 0x70,
|
||||
0xef, 0xdb, 0x0a, 0xd1, 0x96, 0x0e, 0x41, 0x0d, 0xfe, 0xba, 0x5b, 0x8f, 0x34, 0x46, 0x1b, 0xb8,
|
||||
0x07, 0x3d, 0xa8, 0x04, 0xab, 0x0b, 0x19, 0x15, 0x7a, 0xd6, 0xe7, 0xa7, 0xb4, 0xce, 0x5a, 0xf0,
|
||||
0x10, 0x71, 0x36, 0x85, 0x68, 0x0f, 0x03, 0x52, 0xdf, 0x00, 0xae, 0xf3, 0x76, 0x1d, 0xe8, 0xe3,
|
||||
0xe0, 0x54, 0xcd, 0x6a, 0x23, 0x3c, 0xda, 0x0d, 0x0c, 0x6c, 0x2a, 0x14, 0x65, 0xdd, 0x7f, 0xca,
|
||||
0xb3, 0x32, 0xd5, 0x8b, 0x0a, 0xa0, 0x4b, 0x56, 0x89, 0x99, 0x64, 0x48, 0x09, 0xb1, 0x83, 0x5c,
|
||||
0xd8, 0x0a, 0x90, 0xcd, 0xf5, 0x72, 0xac, 0x85, 0x75, 0x4d, 0x8c, 0xf6, 0x82, 0xaf, 0x94, 0xfb,
|
||||
0x3a, 0xf1, 0x5e, 0x38, 0x7a, 0xe1, 0xc3, 0xa2, 0x4a, 0x98, 0xfc, 0x7a, 0x7c, 0x71, 0x9e, 0x48,
|
||||
0xf8, 0x92, 0x16, 0xc2, 0x5a, 0x72, 0x84, 0xbc, 0xea, 0xbb, 0x17, 0xad, 0x2b, 0xcf, 0x39, 0x49,
|
||||
0x43, 0x14, 0xd2, 0x42, 0x0a, 0x33, 0x6e, 0x2a, 0xa7, 0xdf, 0x56, 0x90, 0x8f, 0x8d, 0x5b, 0xc1,
|
||||
0x49, 0x51, 0xaa, 0x85, 0xb7, 0x37, 0xe1, 0xa5, 0x2e, 0xe1, 0x59, 0xbb, 0x23, 0x01, 0x5c, 0xdd,
|
||||
0xa1, 0x7e, 0x67, 0x20, 0x12, 0x7b, 0x5b, 0x9f, 0x91, 0x0b, 0x7d, 0x4d, 0x89, 0xe1, 0x15, 0x01,
|
||||
0xd8, 0xfd, 0x67, 0x83, 0xc1, 0x96, 0x3b, 0x75, 0x45, 0xa0, 0x51, 0x2c, 0xc8, 0x9f, 0xce, 0x99,
|
||||
0x52, 0x2e, 0xd9, 0xbf, 0x2e, 0xce, 0x5f, 0xa3, 0x2e, 0xdf, 0xca, 0x3f, 0x6a, 0x69, 0xdd, 0xc1,
|
||||
0x85, 0x4c, 0xf8, 0x8d, 0x92, 0xcb, 0x4a, 0x1b, 0xc7, 0x59, 0xaa, 0x4b, 0x27, 0x4b, 0x97, 0xf0,
|
||||
0xa5, 0xca, 0x5c, 0x9e, 0xfc, 0x7d, 0x30, 0xe0, 0xc3, 0x5e, 0xb3, 0xb5, 0x77, 0xe7, 0x5d, 0x26,
|
||||
0x6f, 0x54, 0x2a, 0x77, 0xfd, 0x43, 0xa8, 0x4a, 0xe5, 0x94, 0x28, 0x76, 0x6d, 0x2a, 0x0a, 0x99,
|
||||
0xec, 0x85, 0x0b, 0xf1, 0x59, 0x2d, 0xea, 0xc5, 0xfa, 0xb9, 0xb6, 0xd2, 0xf8, 0x07, 0x31, 0xc1,
|
||||
0x73, 0xa9, 0x39, 0xeb, 0xdd, 0x51, 0xdd, 0x1a, 0x94, 0xe6, 0xc2, 0x58, 0x09, 0x25, 0xb5, 0x9b,
|
||||
0xee, 0x3e, 0xc3, 0xaa, 0x53, 0xae, 0x90, 0xc3, 0x0b, 0x65, 0x53, 0x36, 0x92, 0xce, 0xa9, 0x72,
|
||||
0x66, 0x0f, 0xe3, 0x66, 0xf1, 0xd0, 0xa6, 0x46, 0x55, 0x6e, 0xd8, 0xbb, 0x11, 0x86, 0x15, 0x3a,
|
||||
0x55, 0x55, 0xe8, 0xd4, 0x42, 0xea, 0xda, 0x85, 0x59, 0x92, 0xe9, 0xb4, 0x5e, 0xc0, 0xdc, 0x10,
|
||||
0x2f, 0x92, 0x9d, 0xbd, 0x83, 0x69, 0x5d, 0xa6, 0x4e, 0xe9, 0x92, 0xbd, 0xe9, 0x07, 0x5f, 0x96,
|
||||
0xaa, 0xcc, 0xf4, 0x32, 0xd2, 0x95, 0x2c, 0xfb, 0x3c, 0x77, 0xae, 0xb2, 0x2f, 0xe2, 0x78, 0x5e,
|
||||
0xea, 0x68, 0x59, 0xc8, 0x2c, 0x9a, 0xc9, 0x78, 0x2a, 0x85, 0xab, 0x8d, 0xb4, 0xb1, 0x6d, 0x75,
|
||||
0xc6, 0x0f, 0xac, 0x4c, 0x6b, 0xa3, 0xdc, 0x6a, 0xb7, 0x5b, 0xe2, 0xc1, 0x5f, 0x6b, 0xa1, 0xc7,
|
||||
0x77, 0x85, 0xae, 0x0f, 0xf2, 0x90, 0x7f, 0xb4, 0xb2, 0x98, 0x6e, 0xef, 0x7e, 0xf7, 0xd5, 0xee,
|
||||
0xba, 0xca, 0x84, 0x93, 0xf7, 0xed, 0x9d, 0x9d, 0x65, 0x7d, 0x19, 0x7c, 0x31, 0x12, 0xf6, 0x94,
|
||||
0x8c, 0x8c, 0x73, 0xa7, 0x85, 0x24, 0xcf, 0x8e, 0x57, 0xfe, 0xd5, 0x66, 0xab, 0xb2, 0x97, 0x93,
|
||||
0x4f, 0x5b, 0x9b, 0xe5, 0xc3, 0x87, 0x5c, 0x4f, 0x3e, 0xc9, 0xd4, 0xf1, 0x24, 0x71, 0xab, 0x4a,
|
||||
0xea, 0x29, 0xad, 0xed, 0x1c, 0x19, 0x23, 0x56, 0x91, 0xb2, 0xfe, 0xf3, 0x96, 0x84, 0x42, 0x8b,
|
||||
0xec, 0x9f, 0xa3, 0xbe, 0x0c, 0x5d, 0xb2, 0x33, 0x08, 0xbe, 0x14, 0xd2, 0x31, 0x9d, 0x64, 0x51,
|
||||
0x6a, 0x00, 0x87, 0x6c, 0xd5, 0xf6, 0x79, 0x03, 0x3b, 0x0f, 0x0e, 0x74, 0x04, 0x2f, 0x8f, 0x9c,
|
||||
0x33, 0x6a, 0x52, 0x3b, 0x89, 0x17, 0x26, 0xe5, 0xa1, 0x0c, 0xc2, 0xbb, 0xeb, 0xa4, 0x1b, 0xbe,
|
||||
0x39, 0xf9, 0xd9, 0xc5, 0x9f, 0xc4, 0x8d, 0xe8, 0x04, 0x7c, 0xb5, 0x51, 0xd8, 0x55, 0x09, 0x11,
|
||||
0x2e, 0x08, 0xb3, 0x68, 0xa2, 0xb3, 0x55, 0x24, 0x2a, 0xe0, 0x93, 0xbd, 0xca, 0x55, 0x91, 0xf5,
|
||||
0x35, 0xed, 0x17, 0x59, 0x76, 0x7a, 0x03, 0x2b, 0xce, 0x95, 0x45, 0x32, 0x4a, 0xd3, 0xe7, 0x64,
|
||||
0x33, 0x0f, 0xfb, 0x41, 0x32, 0xfc, 0xf2, 0xab, 0x74, 0xbf, 0xf5, 0x83, 0x10, 0x32, 0x8f, 0xd3,
|
||||
0xf9, 0x6b, 0x55, 0x48, 0xca, 0xb1, 0x3e, 0x21, 0xc8, 0x27, 0xe9, 0x3c, 0x9d, 0xce, 0x78, 0xf0,
|
||||
0xcd, 0xb7, 0x15, 0xa2, 0x2d, 0x1d, 0x82, 0x1a, 0xfc, 0x75, 0xbf, 0x1e, 0x69, 0x8c, 0x36, 0x70,
|
||||
0x0f, 0x7a, 0x50, 0x09, 0x56, 0x17, 0x32, 0x2a, 0xf4, 0xac, 0xcf, 0x4f, 0x69, 0x9d, 0xb5, 0xe0,
|
||||
0x21, 0xe2, 0x6c, 0x0a, 0xd1, 0x1e, 0x06, 0xa4, 0xbe, 0x01, 0x5c, 0xe7, 0xed, 0x3a, 0xd0, 0xc7,
|
||||
0xc1, 0xa9, 0x9a, 0xd5, 0x46, 0x78, 0xb4, 0x1b, 0x18, 0xd8, 0x54, 0x28, 0xca, 0xba, 0xff, 0x94,
|
||||
0x67, 0x65, 0xaa, 0x17, 0x15, 0x40, 0x97, 0xac, 0x12, 0x33, 0xc9, 0x90, 0x12, 0x62, 0x07, 0xb9,
|
||||
0xb0, 0x15, 0x20, 0x9b, 0xeb, 0xe5, 0x58, 0x0b, 0xeb, 0x9a, 0x18, 0xed, 0x05, 0x5f, 0x28, 0xf7,
|
||||
0x75, 0xe2, 0xbd, 0x70, 0xf4, 0xc2, 0x87, 0x45, 0x95, 0x30, 0xf9, 0xcd, 0xf8, 0xe2, 0x3c, 0x91,
|
||||
0xf0, 0x25, 0x2d, 0x84, 0xb5, 0xe4, 0x08, 0x79, 0xd5, 0x77, 0x2f, 0x5b, 0x57, 0x5e, 0x70, 0x92,
|
||||
0x86, 0x28, 0xa4, 0x85, 0x14, 0x66, 0xdc, 0x54, 0x4e, 0xbf, 0xad, 0x20, 0x1f, 0x1b, 0xb7, 0x82,
|
||||
0x93, 0xa2, 0x54, 0x0b, 0x6f, 0x6f, 0xc2, 0x4b, 0x5d, 0xc2, 0xb3, 0x76, 0x47, 0x02, 0xb8, 0xba,
|
||||
0x43, 0xfd, 0xce, 0x40, 0x24, 0xf6, 0xb6, 0x3e, 0x23, 0x17, 0xfa, 0x86, 0x12, 0xc3, 0x2b, 0x02,
|
||||
0xb0, 0xfb, 0xcf, 0x07, 0x83, 0x2d, 0x77, 0xea, 0x8a, 0x40, 0xa3, 0x58, 0x90, 0x3f, 0x9d, 0x33,
|
||||
0xa5, 0x5c, 0xb2, 0x7f, 0x5d, 0x9c, 0xbf, 0x41, 0x5d, 0x5e, 0xcb, 0x3f, 0x6a, 0x69, 0xdd, 0xc1,
|
||||
0x77, 0x02, 0xbf, 0xa5, 0x7a, 0x83, 0x8e, 0xcb, 0x95, 0x85, 0x76, 0x5b, 0x21, 0x52, 0x72, 0x8c,
|
||||
0xbc, 0x0b, 0xfd, 0x8a, 0x75, 0x28, 0x6b, 0x3b, 0x4c, 0x9e, 0x90, 0x15, 0xc1, 0x77, 0xe3, 0xbc,
|
||||
0x91, 0x2b, 0xb7, 0x05, 0x4b, 0x92, 0x91, 0xce, 0xc3, 0x9d, 0x4e, 0x40, 0x53, 0xc0, 0x57, 0x97,
|
||||
0xa3, 0x31, 0x32, 0x3c, 0x6e, 0x1c, 0x42, 0x0c, 0xc8, 0x93, 0xd2, 0x7b, 0xf2, 0x4a, 0x9b, 0xc5,
|
||||
0xa3, 0x31, 0x32, 0x3c, 0x6e, 0x1c, 0x42, 0x0c, 0xc8, 0x93, 0xd2, 0x7b, 0xf2, 0x5a, 0x9b, 0xc5,
|
||||
0x09, 0x22, 0x79, 0xd0, 0x56, 0x65, 0xd9, 0x26, 0x75, 0x9f, 0x53, 0x7c, 0x91, 0x28, 0x11, 0x25,
|
||||
0x8c, 0xfd, 0x30, 0xf8, 0x18, 0x36, 0xa8, 0xd3, 0xbb, 0x32, 0xc0, 0xfa, 0xb5, 0x28, 0x6a, 0x50,
|
||||
0x24, 0x0f, 0x77, 0xf6, 0x36, 0x90, 0xa5, 0xb9, 0x4c, 0xe7, 0x6f, 0xea, 0xc5, 0xa6, 0xce, 0x77,
|
||||
0xfa, 0x3b, 0x92, 0x5c, 0x88, 0xe6, 0x72, 0x15, 0x21, 0x54, 0x69, 0xde, 0x8f, 0x3f, 0x0c, 0x76,
|
||||
0x9f, 0x7d, 0x8c, 0x03, 0x14, 0xfb, 0x07, 0x7e, 0x0c, 0x7b, 0x6d, 0x25, 0x52, 0x2a, 0xc1, 0xb1,
|
||||
0x98, 0xe0, 0xff, 0x29, 0x88, 0x1c, 0x2e, 0xf2, 0x51, 0xae, 0xa6, 0x0e, 0x9f, 0x2f, 0xc1, 0xec,
|
||||
0x46, 0x17, 0xf8, 0x76, 0x54, 0xd0, 0xf3, 0x95, 0x00, 0x5f, 0xd3, 0xba, 0xa8, 0xec, 0xb9, 0x4e,
|
||||
0xe7, 0x74, 0x04, 0xe4, 0xed, 0x8b, 0x78, 0xd4, 0x4a, 0xba, 0x42, 0x86, 0xbe, 0xab, 0xda, 0x2f,
|
||||
0x27, 0x7a, 0x59, 0x7a, 0xb9, 0x08, 0x08, 0x7f, 0xad, 0x17, 0xb4, 0x01, 0xec, 0xa2, 0x97, 0xe7,
|
||||
0xd2, 0x2b, 0xf0, 0xdf, 0xfd, 0x6e, 0xff, 0xed, 0xad, 0x9a, 0xe5, 0xeb, 0xe5, 0xf6, 0xec, 0x19,
|
||||
0x02, 0x65, 0x68, 0xf1, 0x44, 0x52, 0x05, 0xf0, 0x8f, 0x48, 0xe2, 0xb4, 0xa8, 0x33, 0x69, 0xfb,
|
||||
0x6b, 0xef, 0x82, 0xe0, 0xcf, 0x3f, 0xdb, 0x27, 0x94, 0x2b, 0x7d, 0x9e, 0xc8, 0xa9, 0xa8, 0x0b,
|
||||
0x87, 0xa2, 0x47, 0x2d, 0x6c, 0x95, 0xc9, 0xcd, 0x1a, 0x07, 0x54, 0xf2, 0x16, 0xd3, 0x80, 0x7b,
|
||||
0xcb, 0x26, 0x81, 0x38, 0x71, 0xfe, 0x27, 0xfe, 0x48, 0x12, 0xb5, 0xde, 0xb5, 0x23, 0x78, 0xd4,
|
||||
0xe7, 0xef, 0xcf, 0x4f, 0x4f, 0x40, 0xa2, 0x36, 0x7b, 0xc1, 0x51, 0x37, 0xd8, 0x6d, 0xb3, 0x60,
|
||||
0x4b, 0xdf, 0x08, 0xc9, 0xc7, 0x29, 0x8c, 0xcf, 0xb1, 0xa9, 0x65, 0x76, 0xf4, 0x1d, 0x5f, 0x36,
|
||||
0x30, 0x55, 0x3b, 0x9d, 0xea, 0xe2, 0xe1, 0xc3, 0xbe, 0xef, 0x45, 0x83, 0xb0, 0xef, 0x9b, 0x55,
|
||||
0x42, 0x3b, 0x8a, 0x91, 0xd3, 0x06, 0x08, 0x92, 0xf2, 0x33, 0x27, 0x17, 0x94, 0xd6, 0xe9, 0x59,
|
||||
0xc5, 0xbd, 0xab, 0xcd, 0x36, 0x9c, 0x5f, 0x54, 0xe0, 0x11, 0x72, 0x87, 0x5d, 0xe8, 0x4c, 0x46,
|
||||
0xec, 0x0a, 0x15, 0x6b, 0x25, 0x93, 0x14, 0x47, 0x46, 0xb6, 0xb1, 0xb3, 0x2b, 0x30, 0x45, 0x78,
|
||||
0x43, 0xa2, 0xbd, 0x29, 0x31, 0xf4, 0xd2, 0x82, 0x80, 0x76, 0x79, 0x96, 0x27, 0xf1, 0x2f, 0x7c,
|
||||
0xf7, 0x43, 0xf3, 0xe3, 0x8f, 0xfc, 0xeb, 0xe7, 0x1c, 0xee, 0x6e, 0x9a, 0x57, 0x6c, 0xa3, 0xcf,
|
||||
0xf6, 0x45, 0x95, 0xfc, 0xc6, 0x3d, 0xbe, 0xbd, 0xc3, 0xb8, 0x6d, 0xb9, 0x87, 0x9e, 0x1b, 0x86,
|
||||
0x7f, 0x57, 0x0b, 0x6a, 0xde, 0xac, 0x36, 0x05, 0x8a, 0xdc, 0xd3, 0x45, 0x6a, 0xc1, 0xa1, 0x07,
|
||||
0xd8, 0xe8, 0x37, 0x1c, 0xc6, 0xcd, 0xb0, 0x41, 0x64, 0x0e, 0x8e, 0x24, 0xcd, 0x09, 0x07, 0x5a,
|
||||
0x68, 0xec, 0x53, 0xd4, 0x45, 0x8f, 0x29, 0x3c, 0xd3, 0xb7, 0x4f, 0x96, 0xb7, 0xc3, 0xc8, 0x68,
|
||||
0xca, 0x19, 0x46, 0x81, 0x5c, 0xe3, 0x4d, 0xa5, 0x2d, 0x4d, 0x06, 0x99, 0xba, 0x66, 0x9e, 0x54,
|
||||
0x12, 0x70, 0x1c, 0xe0, 0x58, 0xde, 0x5c, 0xcb, 0x65, 0x51, 0x1d, 0xd3, 0x9c, 0x82, 0xc0, 0x39,
|
||||
0x44, 0x83, 0xda, 0x4d, 0xc2, 0x9b, 0x07, 0x0e, 0xad, 0x69, 0xa1, 0xd2, 0x79, 0xc2, 0x5f, 0x93,
|
||||
0xda, 0x17, 0x87, 0x71, 0xf3, 0x02, 0xa6, 0x41, 0xc4, 0xf0, 0xee, 0x33, 0xbd, 0xf5, 0xa1, 0x63,
|
||||
0x3a, 0x44, 0x15, 0xb4, 0x39, 0x77, 0xe3, 0x84, 0xad, 0x27, 0x0b, 0x05, 0x1b, 0x47, 0xe2, 0x5a,
|
||||
0x6e, 0xb6, 0xe4, 0xa6, 0x13, 0x9f, 0xef, 0x0f, 0x7b, 0xa3, 0x76, 0x72, 0x60, 0x0f, 0xd9, 0x3b,
|
||||
0xdf, 0xe7, 0x29, 0x3f, 0xeb, 0x0a, 0xd8, 0xec, 0x0f, 0xbb, 0x99, 0x86, 0x5d, 0x9d, 0xbd, 0x79,
|
||||
0xce, 0x0e, 0x55, 0x59, 0xd5, 0xae, 0x15, 0x5d, 0xc1, 0xb9, 0xa5, 0x36, 0x19, 0xf7, 0x20, 0xe1,
|
||||
0xfd, 0x7a, 0x68, 0xf2, 0xdf, 0xad, 0xfa, 0x2f, 0xbe, 0x3e, 0x01, 0x58, 0xe2, 0x0b, 0xf2, 0x7c,
|
||||
0x86, 0x91, 0xcc, 0x3f, 0xa9, 0x72, 0xeb, 0x49, 0x97, 0x28, 0x1b, 0xca, 0xe4, 0x84, 0xaf, 0x89,
|
||||
0x83, 0x98, 0x30, 0x80, 0xac, 0x4a, 0x38, 0xa4, 0x0f, 0xde, 0x78, 0xb2, 0xf8, 0x1b, 0xd4, 0x90,
|
||||
0xf2, 0x05, 0x12, 0x0c, 0x4c, 0x8f, 0xd9, 0xc9, 0xa8, 0x94, 0x33, 0x3f, 0x69, 0x41, 0xe3, 0x76,
|
||||
0xc2, 0x09, 0xf6, 0x84, 0x65, 0x6a, 0xa6, 0x1c, 0xc3, 0xb6, 0x09, 0x98, 0x04, 0x98, 0x18, 0xc0,
|
||||
0x4f, 0x21, 0xf1, 0x61, 0x87, 0x32, 0x5d, 0x68, 0xf3, 0xfc, 0xc1, 0x54, 0xd0, 0xfc, 0xf8, 0xf0,
|
||||
0xc1, 0xb3, 0xa7, 0x4f, 0x9f, 0x1e, 0xb0, 0x77, 0xa5, 0x2c, 0x53, 0xb3, 0xaa, 0x9c, 0xcc, 0x98,
|
||||
0x33, 0xa2, 0xb4, 0x0b, 0x65, 0x2d, 0x55, 0x08, 0x3b, 0x46, 0xc7, 0x33, 0xa8, 0xf5, 0xd2, 0xb1,
|
||||
0x65, 0x2e, 0xa9, 0x7e, 0x0b, 0x4c, 0x2d, 0xd4, 0x34, 0xe1, 0x6a, 0xc8, 0x32, 0xcd, 0xde, 0x5c,
|
||||
0x8e, 0x19, 0x48, 0x89, 0xad, 0x74, 0x6d, 0xd8, 0x44, 0x94, 0x73, 0xbc, 0xa4, 0x17, 0xda, 0x84,
|
||||
0x6c, 0x74, 0x76, 0x11, 0x32, 0xe9, 0xd2, 0x88, 0x55, 0xaa, 0xdc, 0xe9, 0x75, 0x81, 0x35, 0xfe,
|
||||
0x8f, 0xf8, 0x8b, 0x2d, 0x95, 0x81, 0x44, 0x6b, 0x59, 0xff, 0x72, 0x7c, 0x14, 0x30, 0xab, 0xa7,
|
||||
0x6e, 0x29, 0x8c, 0x64, 0xcd, 0xd8, 0x75, 0x0b, 0x77, 0x0f, 0xd4, 0x44, 0x7f, 0x59, 0xc3, 0xfd,
|
||||
0xe6, 0xb2, 0xf1, 0xf0, 0x0a, 0x01, 0xa9, 0x72, 0x03, 0x20, 0xee, 0x8d, 0x54, 0x73, 0xe0, 0xf2,
|
||||
0xea, 0x46, 0x54, 0x1e, 0xef, 0xb7, 0x08, 0x8d, 0x35, 0x10, 0xa4, 0x09, 0x98, 0xc1, 0x8c, 0x90,
|
||||
0x21, 0xef, 0x59, 0x37, 0x55, 0x32, 0x8c, 0x58, 0x16, 0xcd, 0x8a, 0x1c, 0x64, 0xa5, 0x24, 0x84,
|
||||
0x34, 0x13, 0x85, 0xd5, 0x2d, 0xe6, 0x2e, 0x97, 0x98, 0x1e, 0x8c, 0x01, 0x2c, 0xac, 0x53, 0x07,
|
||||
0x57, 0x21, 0x75, 0x9c, 0xcb, 0xf5, 0x0a, 0xcd, 0x07, 0x75, 0x91, 0xb1, 0x89, 0xa4, 0x41, 0xba,
|
||||
0x9c, 0x41, 0x8c, 0xc7, 0x13, 0xea, 0x30, 0x1d, 0xb6, 0xca, 0xb3, 0xa8, 0xc1, 0x66, 0xd8, 0x3b,
|
||||
0x51, 0xb6, 0xb3, 0xa6, 0xd9, 0x57, 0x6a, 0x87, 0x2c, 0x20, 0xa0, 0x43, 0xa6, 0xa1, 0xd2, 0x2c,
|
||||
0x15, 0x30, 0x17, 0x25, 0x43, 0xaa, 0xa0, 0x06, 0x60, 0x47, 0x8a, 0x07, 0x23, 0xa7, 0x28, 0xbc,
|
||||
0x9c, 0x35, 0x37, 0x80, 0x35, 0x9a, 0x84, 0xfc, 0xa4, 0xc1, 0x5d, 0x6d, 0xf2, 0x9a, 0x2a, 0x05,
|
||||
0x09, 0xd7, 0x4c, 0x34, 0x84, 0x39, 0x58, 0x60, 0xd5, 0x58, 0xe7, 0x75, 0xab, 0xa9, 0x57, 0x5f,
|
||||
0x50, 0x98, 0xb0, 0x2d, 0x6b, 0x4c, 0xca, 0x76, 0x0e, 0x63, 0x35, 0xf4, 0xfe, 0x9d, 0xc8, 0x72,
|
||||
0xc5, 0x44, 0x9a, 0x52, 0xf8, 0x80, 0xc9, 0x7b, 0xf5, 0x4a, 0xb1, 0x8e, 0x9f, 0xe8, 0x34, 0x9d,
|
||||
0x94, 0xd9, 0xbd, 0x31, 0x6c, 0x23, 0xf2, 0x9e, 0x37, 0xd2, 0xe8, 0xef, 0x95, 0x48, 0x41, 0x91,
|
||||
0x04, 0x39, 0xe4, 0xfc, 0xe0, 0xe0, 0xdb, 0x51, 0x1b, 0xbb, 0xa3, 0xa2, 0xd8, 0xa8, 0x15, 0x65,
|
||||
0xc6, 0xda, 0x81, 0x11, 0xb9, 0x85, 0x37, 0x00, 0x5c, 0x52, 0x62, 0x74, 0xd8, 0x9a, 0xe1, 0xff,
|
||||
0x51, 0x0d, 0x47, 0x5b, 0x78, 0x7b, 0xf8, 0x80, 0x31, 0x8c, 0x41, 0x5a, 0x38, 0x04, 0x79, 0xee,
|
||||
0x63, 0xa0, 0x28, 0x2b, 0x52, 0x49, 0xe3, 0x23, 0xd8, 0xb3, 0x19, 0x15, 0xbb, 0xcc, 0x27, 0xf6,
|
||||
0xc9, 0x1f, 0x0f, 0x47, 0x5d, 0x96, 0x37, 0xa4, 0x03, 0xba, 0x79, 0x3c, 0xfc, 0x01, 0x45, 0xbe,
|
||||
0x23, 0xb6, 0xeb, 0x5d, 0x88, 0xb2, 0x16, 0x85, 0x0f, 0x4b, 0x77, 0x74, 0xcd, 0x7d, 0x66, 0x78,
|
||||
0xda, 0x64, 0xf0, 0x91, 0xc9, 0x6a, 0x55, 0x6a, 0x6c, 0xfa, 0x51, 0xf9, 0x1c, 0x51, 0xf9, 0xb4,
|
||||
0x36, 0x11, 0x93, 0xd6, 0x15, 0x88, 0xf0, 0x2d, 0xa6, 0x3a, 0x6d, 0x5a, 0xa3, 0x44, 0xc7, 0xe4,
|
||||
0x13, 0x87, 0x31, 0xba, 0x9c, 0x37, 0x8c, 0xd7, 0x8e, 0xec, 0xac, 0x97, 0x23, 0xe1, 0x12, 0x1e,
|
||||
0xb7, 0x80, 0xa3, 0x23, 0x91, 0xcd, 0x5d, 0x7b, 0x46, 0xf5, 0xb5, 0x93, 0x7b, 0x27, 0xbc, 0x7d,
|
||||
0x3e, 0x8c, 0xc5, 0x3a, 0x10, 0xc3, 0x5e, 0xab, 0x6f, 0xfd, 0xd2, 0x67, 0xe9, 0x96, 0xd5, 0x7e,
|
||||
0x68, 0x6f, 0x63, 0xee, 0xe7, 0x32, 0x9f, 0x72, 0x15, 0x2e, 0xa2, 0x8d, 0xbe, 0x21, 0xeb, 0xa0,
|
||||
0xeb, 0xdd, 0x8d, 0xdd, 0x2f, 0x5b, 0xb3, 0x6c, 0x16, 0x8d, 0xa6, 0x11, 0x49, 0x09, 0x6f, 0x59,
|
||||
0x1d, 0xfc, 0x32, 0x7c, 0xe7, 0xb7, 0xad, 0x11, 0x6d, 0x92, 0x72, 0xc3, 0x58, 0xf7, 0x42, 0xd1,
|
||||
0x79, 0xc9, 0x5a, 0x34, 0x00, 0x4d, 0x8b, 0x44, 0x6f, 0x03, 0x05, 0xe1, 0xd5, 0xc1, 0x70, 0xe3,
|
||||
0xae, 0x71, 0x03, 0x8c, 0x0e, 0x8b, 0x9b, 0x3b, 0x36, 0x88, 0xf4, 0xee, 0x86, 0x64, 0xff, 0x7e,
|
||||
0x4c, 0xee, 0xe9, 0x9e, 0x77, 0x62, 0xb2, 0x1f, 0x6e, 0x19, 0xff, 0x2d, 0x20, 0x5b, 0x78, 0x50,
|
||||
0x05, 0xf5, 0xbe, 0x57, 0x42, 0x8d, 0x23, 0xd4, 0x26, 0x5a, 0x74, 0xe2, 0x9b, 0x17, 0x2c, 0x5f,
|
||||
0x9a, 0x97, 0xbf, 0x9f, 0xbe, 0x7d, 0xff, 0xf6, 0x6c, 0x7c, 0xda, 0xf4, 0x0e, 0xd0, 0xad, 0xa1,
|
||||
0x3e, 0x73, 0xe7, 0x89, 0xc8, 0x87, 0xa3, 0x47, 0x17, 0xb1, 0x86, 0x6a, 0x6f, 0xca, 0x5b, 0x08,
|
||||
0x22, 0x8d, 0x3f, 0x6a, 0x74, 0x13, 0x34, 0xc1, 0xe9, 0x36, 0x8d, 0x30, 0x70, 0xb9, 0x91, 0xbb,
|
||||
0x9e, 0x18, 0xdb, 0xcb, 0x9e, 0x57, 0x77, 0x3a, 0xba, 0x8a, 0xda, 0xba, 0x7c, 0x75, 0x07, 0xdd,
|
||||
0x87, 0x6b, 0xea, 0xb6, 0x9e, 0x1c, 0x89, 0x80, 0x27, 0x54, 0xf9, 0x19, 0x7a, 0x53, 0xd4, 0x55,
|
||||
0xcd, 0xd1, 0x04, 0x97, 0xac, 0xae, 0x54, 0xda, 0x72, 0xe8, 0x7e, 0xb5, 0x40, 0x1b, 0xce, 0xeb,
|
||||
0x49, 0x84, 0x9b, 0x63, 0x7c, 0xa4, 0x4c, 0xaa, 0xb5, 0x9e, 0x2b, 0x19, 0xd3, 0x4c, 0x18, 0xa3,
|
||||
0x7b, 0x0b, 0x33, 0xa3, 0x1f, 0x53, 0x3e, 0x4d, 0x0a, 0xb4, 0x4c, 0x3e, 0xa4, 0x65, 0x4a, 0x85,
|
||||
0x1e, 0xbb, 0x96, 0x86, 0xc8, 0x86, 0x0d, 0xa2, 0xbd, 0x27, 0xd1, 0x20, 0xfa, 0x35, 0x1a, 0xac,
|
||||
0x89, 0xeb, 0x67, 0x54, 0x2c, 0xd5, 0x5c, 0xc5, 0xfe, 0xfa, 0x40, 0x53, 0xb3, 0x36, 0x76, 0x17,
|
||||
0xd4, 0xb8, 0x9b, 0x1a, 0x99, 0x29, 0xca, 0xd5, 0xde, 0x6d, 0x03, 0xb6, 0xb7, 0xa2, 0x7d, 0x4b,
|
||||
0xba, 0x08, 0x81, 0x06, 0x95, 0x6c, 0x38, 0xd5, 0x56, 0x32, 0x55, 0xa0, 0x1e, 0x87, 0xf6, 0x30,
|
||||
0x5f, 0x57, 0x70, 0xef, 0x88, 0xe5, 0x35, 0xba, 0x87, 0x5f, 0xf5, 0x0d, 0x12, 0x7d, 0x00, 0xe3,
|
||||
0xbf, 0x59, 0xe1, 0x3e, 0x8a, 0xc6, 0xa5, 0x19, 0x4d, 0x80, 0x80, 0x0c, 0x1c, 0xd9, 0xfc, 0x54,
|
||||
0xe1, 0x67, 0xe2, 0x9d, 0xce, 0xa3, 0x5e, 0x3f, 0x0d, 0xd8, 0xfe, 0x60, 0xef, 0xb7, 0xdd, 0xfd,
|
||||
0xc1, 0xfe, 0x3e, 0x7b, 0x99, 0x1b, 0x5c, 0xf6, 0x14, 0x48, 0x74, 0x94, 0xe6, 0x4b, 0xba, 0x2a,
|
||||
0x8c, 0xfd, 0x30, 0xf8, 0x3d, 0x6c, 0x50, 0xa7, 0x77, 0x65, 0x80, 0xf5, 0x1b, 0x51, 0xd4, 0xa0,
|
||||
0x48, 0x1e, 0xee, 0xec, 0x6d, 0x20, 0x4b, 0x73, 0x99, 0xce, 0xdf, 0xd6, 0x8b, 0x4d, 0x9d, 0xef,
|
||||
0xf4, 0x77, 0x24, 0xb9, 0x10, 0xcd, 0xe5, 0x2a, 0x42, 0xa8, 0xd2, 0xbc, 0x1f, 0x7f, 0x18, 0xec,
|
||||
0x3e, 0xff, 0x3d, 0x0e, 0x50, 0xec, 0x1f, 0xf8, 0x31, 0xec, 0xb5, 0x95, 0x48, 0xa9, 0x04, 0xc7,
|
||||
0x62, 0x82, 0xff, 0xa7, 0x20, 0x72, 0xb8, 0xc8, 0x47, 0xb9, 0x9a, 0x3a, 0x7c, 0xbe, 0x02, 0xb3,
|
||||
0x1b, 0x5d, 0xe0, 0xdb, 0x51, 0x41, 0xcf, 0x57, 0x02, 0x7c, 0x4d, 0xeb, 0xa2, 0xb2, 0xe7, 0x3a,
|
||||
0x9d, 0xd3, 0x11, 0x90, 0xb7, 0x2f, 0xe2, 0x51, 0x2b, 0xe9, 0x0a, 0x19, 0xfa, 0xae, 0x6a, 0xbf,
|
||||
0x9c, 0xe8, 0x65, 0xe9, 0xe5, 0x22, 0x20, 0xfc, 0x8d, 0x5e, 0xd0, 0x06, 0xb0, 0x8b, 0x5e, 0x9e,
|
||||
0x4b, 0xaf, 0xc0, 0x7f, 0xf7, 0xbb, 0xfd, 0xb7, 0x6b, 0x35, 0xcb, 0xd7, 0xcb, 0xed, 0xd9, 0x33,
|
||||
0x04, 0xca, 0xd0, 0xe2, 0x89, 0xa4, 0x0a, 0xe0, 0xbf, 0x23, 0x89, 0xd3, 0xa2, 0xce, 0xa4, 0xed,
|
||||
0xaf, 0xbd, 0x0b, 0x82, 0x3f, 0xff, 0x6c, 0x9f, 0x50, 0xae, 0xf4, 0x79, 0x22, 0xa7, 0xa2, 0x2e,
|
||||
0x1c, 0x8a, 0x1e, 0xb5, 0xb0, 0x55, 0x26, 0xb7, 0x6b, 0x1c, 0x50, 0xc9, 0x3b, 0x4c, 0x03, 0xee,
|
||||
0x2d, 0x9b, 0x04, 0xe2, 0xc4, 0xf9, 0x1f, 0xf9, 0x23, 0x49, 0xd4, 0x7a, 0xdf, 0x8e, 0xe0, 0x51,
|
||||
0x9f, 0xbf, 0x3f, 0x3f, 0x3d, 0x01, 0x89, 0xda, 0xec, 0x25, 0x47, 0xdd, 0x60, 0xb7, 0xcd, 0x82,
|
||||
0x2d, 0x7d, 0x23, 0x24, 0x1f, 0xa7, 0x30, 0xbe, 0xc0, 0xa6, 0x96, 0xd9, 0xd1, 0x77, 0x7c, 0xd9,
|
||||
0xc0, 0x54, 0xed, 0x74, 0xaa, 0x8b, 0x87, 0x0f, 0xfb, 0xbe, 0x17, 0x0d, 0xc2, 0xbe, 0x6f, 0x56,
|
||||
0x09, 0xed, 0x28, 0x46, 0x4e, 0x1b, 0x20, 0x48, 0xca, 0xcf, 0x9c, 0x5c, 0x50, 0x5a, 0xa7, 0x67,
|
||||
0x15, 0xf7, 0xae, 0x36, 0xdb, 0x70, 0x7e, 0x51, 0x81, 0x47, 0xc8, 0x1d, 0x76, 0xa1, 0x33, 0x19,
|
||||
0xb1, 0x2b, 0x54, 0xac, 0x95, 0x4c, 0x52, 0x1c, 0x19, 0xd9, 0xc6, 0xce, 0xae, 0xc0, 0x14, 0xe1,
|
||||
0x2d, 0x89, 0xf6, 0xb6, 0xc4, 0xd0, 0x4b, 0x0b, 0x02, 0xda, 0xe5, 0x59, 0x9e, 0xc4, 0xbf, 0xf4,
|
||||
0xdd, 0x0f, 0xcd, 0x8f, 0x3f, 0xf2, 0xaf, 0x5f, 0x70, 0xb8, 0xbb, 0x69, 0x5e, 0xb1, 0x8d, 0x3e,
|
||||
0xd9, 0x97, 0x55, 0xf2, 0x94, 0x7b, 0x7c, 0x7b, 0x87, 0x71, 0xdb, 0x72, 0x0f, 0x3d, 0x37, 0x0c,
|
||||
0xff, 0xa1, 0x16, 0xd4, 0xbc, 0x59, 0x6d, 0x0a, 0x14, 0xb9, 0xa7, 0x8b, 0xd4, 0x82, 0x43, 0x0f,
|
||||
0xb0, 0xd1, 0x6f, 0x38, 0x8c, 0x9b, 0x61, 0x83, 0xc8, 0x1c, 0x1c, 0x49, 0x9a, 0x13, 0x0e, 0xb4,
|
||||
0xd0, 0xd8, 0xa7, 0xa8, 0x8b, 0x1e, 0x53, 0x78, 0xa6, 0x6f, 0x1f, 0x2d, 0x6f, 0x87, 0x91, 0xd1,
|
||||
0x94, 0x33, 0x8c, 0x02, 0xb9, 0xc6, 0x9b, 0x4a, 0x5b, 0x9a, 0x0c, 0x32, 0x75, 0xc3, 0x3c, 0xa9,
|
||||
0x24, 0xe0, 0x38, 0xc0, 0xb1, 0xbc, 0xbd, 0x96, 0xcb, 0xa2, 0x3a, 0xa6, 0x39, 0x05, 0x81, 0x73,
|
||||
0x88, 0x06, 0xb5, 0x9b, 0x84, 0x37, 0x0f, 0x1c, 0x5a, 0xd3, 0x42, 0xa5, 0xf3, 0x84, 0xbf, 0x21,
|
||||
0xb5, 0x2f, 0x0f, 0xe3, 0xe6, 0x05, 0x4c, 0x83, 0x88, 0xe1, 0xfd, 0x67, 0x7a, 0xeb, 0x43, 0xc7,
|
||||
0x74, 0x88, 0x2a, 0x68, 0x73, 0xee, 0xd6, 0x09, 0x5b, 0x4f, 0x16, 0x0a, 0x36, 0x8e, 0xc4, 0x8d,
|
||||
0xdc, 0x6c, 0xc9, 0x4d, 0x27, 0x3e, 0xdf, 0x1f, 0xf6, 0x46, 0xed, 0xe4, 0xc0, 0x1e, 0xb2, 0x77,
|
||||
0xbe, 0xcf, 0x53, 0x7e, 0xd6, 0x15, 0xb0, 0xd9, 0x1f, 0x76, 0x33, 0x0d, 0xbb, 0x3a, 0x7b, 0xfb,
|
||||
0x82, 0x1d, 0xaa, 0xb2, 0xaa, 0x5d, 0x2b, 0xba, 0x82, 0x73, 0x4b, 0x6d, 0x32, 0xee, 0x41, 0xc2,
|
||||
0xfb, 0xf5, 0xd0, 0xe4, 0xbf, 0x5b, 0xf5, 0x5f, 0x7c, 0x7d, 0x02, 0xb0, 0xc4, 0x67, 0xe4, 0xf9,
|
||||
0x0c, 0x23, 0x99, 0x7f, 0x52, 0xe5, 0xd6, 0x93, 0x2e, 0x51, 0x36, 0x94, 0xc9, 0x09, 0x5f, 0x13,
|
||||
0x07, 0x31, 0x61, 0x00, 0x59, 0x95, 0x70, 0x48, 0x1f, 0xbc, 0xf1, 0x64, 0xf1, 0x37, 0xa8, 0x21,
|
||||
0xe5, 0x0b, 0x24, 0x18, 0x98, 0x1e, 0xb3, 0x93, 0x51, 0x29, 0x67, 0x7e, 0xd2, 0x82, 0xc6, 0xed,
|
||||
0x84, 0x13, 0xec, 0x09, 0xcb, 0xd4, 0x4c, 0x39, 0x86, 0x6d, 0x13, 0x30, 0x09, 0x30, 0x31, 0x80,
|
||||
0x9f, 0x42, 0xe2, 0xc3, 0x0e, 0x65, 0xba, 0xd0, 0xe6, 0xc5, 0x83, 0xa9, 0xa0, 0xf9, 0xf1, 0xe1,
|
||||
0x83, 0xe7, 0xcf, 0x9e, 0x3d, 0x3b, 0x60, 0xef, 0x4a, 0x59, 0xa6, 0x66, 0x55, 0x39, 0x99, 0x31,
|
||||
0x67, 0x44, 0x69, 0x17, 0xca, 0x5a, 0xaa, 0x10, 0x76, 0x8c, 0x8e, 0x67, 0x50, 0xeb, 0xa5, 0x63,
|
||||
0xcb, 0x5c, 0x52, 0xfd, 0x16, 0x98, 0x5a, 0xa8, 0x69, 0xc2, 0xd5, 0x90, 0x65, 0x9a, 0xbd, 0xbd,
|
||||
0x1c, 0x33, 0x90, 0x12, 0x5b, 0xe9, 0xda, 0xb0, 0x89, 0x28, 0xe7, 0x78, 0x49, 0x2f, 0xb4, 0x09,
|
||||
0xd9, 0xe8, 0xec, 0x22, 0x64, 0xd2, 0xa5, 0x11, 0xab, 0x54, 0xb9, 0xd3, 0xeb, 0x02, 0x6b, 0xfc,
|
||||
0x1f, 0xf1, 0x17, 0x5b, 0x2a, 0x03, 0x89, 0xd6, 0xb2, 0xfe, 0xe5, 0xf8, 0x28, 0x60, 0x56, 0x4f,
|
||||
0xdd, 0x52, 0x18, 0xc9, 0x9a, 0xb1, 0xeb, 0x0e, 0xee, 0x1e, 0xa8, 0x89, 0xfe, 0xbc, 0x86, 0xfb,
|
||||
0xed, 0x65, 0xe3, 0xe1, 0x15, 0x02, 0x52, 0xe5, 0x06, 0x40, 0x7c, 0x33, 0x52, 0xcd, 0x81, 0xcb,
|
||||
0xab, 0x5b, 0x51, 0x79, 0xbc, 0xdf, 0x22, 0x34, 0xd6, 0x40, 0x90, 0x26, 0x60, 0x06, 0x33, 0x42,
|
||||
0x86, 0xbc, 0x67, 0xdd, 0x54, 0xc9, 0x30, 0x62, 0x59, 0x34, 0x2b, 0x72, 0x90, 0x95, 0x92, 0x10,
|
||||
0xd2, 0x4c, 0x14, 0x56, 0xb7, 0x98, 0xbb, 0x5c, 0x62, 0x7a, 0x30, 0x06, 0xb0, 0xb0, 0x4e, 0x1d,
|
||||
0x5c, 0x85, 0xd4, 0x71, 0x2e, 0xd7, 0x2b, 0x34, 0x1f, 0xd4, 0x45, 0xc6, 0x26, 0x92, 0x06, 0xe9,
|
||||
0x72, 0x06, 0x31, 0x1e, 0x4f, 0xa8, 0xc3, 0x74, 0xd8, 0x2a, 0xcf, 0xa2, 0x06, 0x9b, 0x61, 0xef,
|
||||
0x44, 0xd9, 0xce, 0x9a, 0x66, 0x5f, 0xa9, 0x1d, 0xb2, 0x80, 0x80, 0x0e, 0x99, 0x86, 0x4a, 0xb3,
|
||||
0x54, 0xc0, 0x5c, 0x94, 0x0c, 0xa9, 0x82, 0x1a, 0x80, 0x1d, 0x29, 0x1e, 0x8c, 0x9c, 0xa2, 0xf0,
|
||||
0x72, 0xd6, 0xdc, 0x00, 0xd6, 0x68, 0x12, 0xf2, 0x93, 0x06, 0x77, 0xb5, 0xc9, 0x6b, 0xaa, 0x14,
|
||||
0x24, 0x5c, 0x33, 0xd1, 0x10, 0xe6, 0x60, 0x81, 0x55, 0x63, 0x9d, 0xd7, 0xad, 0xa6, 0x5e, 0x7d,
|
||||
0x41, 0x61, 0xc2, 0xb6, 0xac, 0x31, 0x29, 0xdb, 0x39, 0x8c, 0xd5, 0xd0, 0xfb, 0x77, 0x22, 0xcb,
|
||||
0x15, 0x13, 0x69, 0x4a, 0xe1, 0x03, 0x26, 0xef, 0xd5, 0x6b, 0xc5, 0x3a, 0x7e, 0xa2, 0xd3, 0x74,
|
||||
0x52, 0x66, 0xdf, 0x8c, 0x61, 0x1b, 0x91, 0xf7, 0xbc, 0x91, 0x46, 0x7f, 0xaf, 0x45, 0x0a, 0x8a,
|
||||
0x24, 0xc8, 0x21, 0xe7, 0x07, 0x07, 0xaf, 0x47, 0x6d, 0xec, 0x8e, 0x8a, 0x62, 0xa3, 0x56, 0x94,
|
||||
0x19, 0x6b, 0x07, 0x46, 0xe4, 0x16, 0xde, 0x00, 0x70, 0x49, 0x89, 0xd1, 0x61, 0x6b, 0x86, 0xff,
|
||||
0x47, 0x35, 0x1c, 0x6d, 0xe1, 0xed, 0xe1, 0x03, 0xc6, 0x30, 0x06, 0x69, 0xe1, 0x10, 0xe4, 0xb9,
|
||||
0x8f, 0x81, 0xa2, 0xac, 0x48, 0x25, 0x8d, 0x8f, 0x60, 0xcf, 0x66, 0x54, 0xec, 0x32, 0x9f, 0xd8,
|
||||
0x27, 0x7f, 0x3c, 0x1c, 0x75, 0x59, 0xde, 0x90, 0x0e, 0xe8, 0xe6, 0xf1, 0xf0, 0x07, 0x14, 0xf9,
|
||||
0x8e, 0xd8, 0xae, 0x77, 0x21, 0xca, 0x5a, 0x14, 0x3e, 0x2c, 0xdd, 0xd1, 0x35, 0xf7, 0x99, 0xe1,
|
||||
0x69, 0x93, 0xc1, 0x47, 0x26, 0xab, 0x55, 0xa9, 0xb1, 0xe9, 0x47, 0xe5, 0x73, 0x44, 0xe5, 0xd3,
|
||||
0xda, 0x44, 0x4c, 0x5a, 0x57, 0x20, 0xc2, 0x6b, 0x4c, 0x75, 0xda, 0xb4, 0x46, 0x89, 0x8e, 0xc9,
|
||||
0x27, 0x0e, 0x63, 0x74, 0x39, 0x6f, 0x18, 0xaf, 0x1d, 0xd9, 0x59, 0x2f, 0x47, 0xc2, 0x25, 0x3c,
|
||||
0x6e, 0x01, 0x47, 0x47, 0x22, 0x9b, 0xbb, 0xf6, 0x8c, 0xea, 0x6b, 0x27, 0xf7, 0x4e, 0x78, 0xfb,
|
||||
0x7c, 0x18, 0x8b, 0x75, 0x20, 0x86, 0xbd, 0x56, 0xdf, 0xfa, 0xa5, 0xcf, 0xd2, 0x2d, 0xab, 0xfd,
|
||||
0xd0, 0xde, 0xc6, 0xdc, 0xcf, 0x65, 0x3e, 0xe5, 0x2a, 0x5c, 0x44, 0x1b, 0x7d, 0x43, 0xd6, 0x41,
|
||||
0xd7, 0xbb, 0x1f, 0xbb, 0x5f, 0xb6, 0x66, 0xd9, 0x2c, 0x1a, 0x4d, 0x23, 0x92, 0x12, 0xde, 0xb1,
|
||||
0x3a, 0xf8, 0x65, 0xf8, 0xce, 0x6f, 0x5b, 0x23, 0xda, 0x24, 0xe5, 0x86, 0xb1, 0xbe, 0x09, 0x45,
|
||||
0xe7, 0x25, 0x6b, 0xd1, 0x00, 0x34, 0x2d, 0x12, 0xbd, 0x0d, 0x14, 0x84, 0x57, 0x07, 0xc3, 0xad,
|
||||
0xbb, 0xc6, 0x2d, 0x30, 0x3a, 0x2c, 0x6e, 0xef, 0xd8, 0x20, 0xd2, 0xbb, 0x1f, 0x92, 0xfd, 0x6f,
|
||||
0x63, 0xf2, 0x8d, 0xee, 0x79, 0x2f, 0x26, 0xfb, 0xe1, 0x96, 0xf1, 0x5f, 0x03, 0xb2, 0x85, 0x07,
|
||||
0x55, 0x50, 0xef, 0x7b, 0x25, 0xd4, 0x38, 0x42, 0x6d, 0xa2, 0x45, 0x27, 0xbe, 0x7d, 0xc1, 0xf2,
|
||||
0xa5, 0x79, 0xf9, 0xdb, 0xe9, 0xf5, 0xfb, 0xeb, 0xb3, 0xf1, 0x69, 0xd3, 0x3b, 0x40, 0xb7, 0x86,
|
||||
0xfa, 0xcc, 0xbd, 0x27, 0x22, 0x1f, 0x8e, 0x1e, 0x5d, 0xc4, 0x1a, 0xaa, 0xbd, 0x2d, 0x6f, 0x21,
|
||||
0x88, 0x34, 0xfe, 0xa8, 0xd1, 0x4d, 0xd0, 0x04, 0xa7, 0xdb, 0x34, 0xc2, 0xc0, 0xe5, 0x46, 0xee,
|
||||
0x7a, 0x62, 0x6c, 0x2f, 0x7b, 0x5e, 0xdd, 0xe9, 0xe8, 0x2a, 0x6a, 0xeb, 0xf2, 0xf5, 0x3d, 0x74,
|
||||
0x1f, 0xae, 0xa9, 0xdb, 0x7a, 0x72, 0x24, 0x02, 0x9e, 0x50, 0xe5, 0x67, 0xe8, 0x4d, 0x51, 0x57,
|
||||
0x35, 0x47, 0x13, 0x5c, 0xb2, 0xba, 0x52, 0x69, 0xcb, 0xa1, 0xfb, 0xd5, 0x02, 0x6d, 0x38, 0xaf,
|
||||
0x27, 0x11, 0x6e, 0x8e, 0xf1, 0x91, 0x32, 0xa9, 0xd6, 0x7a, 0xae, 0x64, 0x4c, 0x33, 0x61, 0x8c,
|
||||
0xee, 0x2d, 0xcc, 0x8c, 0x7e, 0x4c, 0xf9, 0x38, 0x29, 0xd0, 0x32, 0xf9, 0x90, 0x96, 0x29, 0x15,
|
||||
0x7a, 0xec, 0x46, 0x1a, 0x22, 0x1b, 0x36, 0x88, 0xf6, 0x9e, 0x44, 0x83, 0xe8, 0x69, 0x34, 0x58,
|
||||
0x13, 0xd7, 0xcf, 0xa8, 0x58, 0xaa, 0xb9, 0x8a, 0xfd, 0xf5, 0x81, 0xa6, 0x66, 0x6d, 0xec, 0x2e,
|
||||
0xa8, 0x71, 0x37, 0x35, 0x32, 0x53, 0x94, 0xab, 0xbd, 0xbb, 0x06, 0x6c, 0x6f, 0x45, 0xfb, 0x96,
|
||||
0x74, 0x11, 0x02, 0x0d, 0x2a, 0xd9, 0x70, 0xaa, 0xad, 0x64, 0xaa, 0x40, 0x3d, 0x0e, 0xed, 0x61,
|
||||
0xbe, 0xae, 0xe0, 0xde, 0x11, 0xcb, 0x6b, 0x74, 0x0f, 0xbf, 0xea, 0x1b, 0x24, 0xfa, 0x00, 0xc6,
|
||||
0x7f, 0xb3, 0xc2, 0x7d, 0x14, 0x8d, 0x4b, 0x33, 0x9a, 0x00, 0x01, 0x19, 0x38, 0xb2, 0xf9, 0xa9,
|
||||
0xc2, 0xcf, 0xc4, 0x3b, 0x9d, 0x47, 0xbd, 0x7e, 0x1a, 0xb0, 0xfd, 0xc1, 0xde, 0xd3, 0xdd, 0xfd,
|
||||
0xc1, 0xfe, 0x3e, 0x7b, 0x95, 0x1b, 0x5c, 0xf6, 0x14, 0x48, 0x74, 0x94, 0xe6, 0x4b, 0xba, 0x2a,
|
||||
0xb7, 0x3d, 0xeb, 0x1c, 0xdd, 0x0c, 0xb7, 0x10, 0x40, 0x0f, 0xa3, 0x9a, 0x96, 0xfb, 0x53, 0x60,
|
||||
0x4c, 0x0a, 0x3d, 0x89, 0x17, 0xb8, 0x25, 0x4a, 0x13, 0x9f, 0x9f, 0xbd, 0x3c, 0x7d, 0x33, 0x3a,
|
||||
0xfd, 0x36, 0x04, 0xbd, 0x8b, 0xb3, 0x31, 0x2b, 0x1a, 0x4d, 0xde, 0x41, 0xf4, 0xb9, 0xce, 0xd0,
|
||||
0x4c, 0x0a, 0x3d, 0x89, 0x17, 0xb8, 0x25, 0x4a, 0x13, 0x9f, 0x9f, 0xbd, 0x3a, 0x7d, 0x3b, 0x3a,
|
||||
0xfd, 0x3a, 0x04, 0xbd, 0x8b, 0xb3, 0x31, 0x2b, 0x1a, 0x4d, 0xde, 0x41, 0xf4, 0xb9, 0xce, 0xd0,
|
||||
0x91, 0x34, 0xf0, 0x0a, 0x6e, 0x58, 0x8b, 0x6e, 0x09, 0x5e, 0xc5, 0xb5, 0xad, 0xec, 0x08, 0xc1,
|
||||
0xaa, 0x8a, 0x53, 0xe9, 0xfa, 0x2b, 0x2d, 0xf3, 0xb7, 0x54, 0x62, 0x7c, 0xda, 0xd2, 0xd0, 0x2b,
|
||||
0x95, 0x0b, 0x91, 0x45, 0xf3, 0x33, 0xc0, 0x77, 0xe7, 0xdb, 0x6f, 0xc7, 0xdb, 0xde, 0x4f, 0xcd,
|
||||
0xb7, 0x31, 0x35, 0x1d, 0x7c, 0xd0, 0x58, 0x4f, 0x33, 0x3e, 0xfd, 0xcc, 0xf8, 0x3f, 0xad, 0x72,
|
||||
0x6e, 0x5b, 0x76, 0x14, 0x00, 0x00
|
||||
0x95, 0x0b, 0x91, 0x45, 0xf3, 0x33, 0xc0, 0x77, 0xe7, 0xdb, 0xaf, 0xc7, 0xdb, 0xde, 0x4f, 0xcd,
|
||||
0xb7, 0x31, 0x35, 0x1d, 0x7c, 0xd0, 0x58, 0x4f, 0x33, 0x3e, 0xfd, 0xcc, 0xf8, 0x3f, 0xf7, 0x0d,
|
||||
0x58, 0x26, 0x76, 0x14, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
||||
1743
wled00/html_ui.h
1743
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,14 @@
|
||||
|
||||
#include "palettes.h"
|
||||
|
||||
#define JSON_PATH_STATE 1
|
||||
#define JSON_PATH_INFO 2
|
||||
#define JSON_PATH_STATE_INFO 3
|
||||
#define JSON_PATH_NODES 4
|
||||
#define JSON_PATH_PALETTES 5
|
||||
#define JSON_PATH_FXDATA 6
|
||||
#define JSON_PATH_NETWORKS 7
|
||||
|
||||
// begin WLEDMM
|
||||
#ifdef ARDUINO_ARCH_ESP32
|
||||
#include <Esp.h>
|
||||
@@ -120,8 +128,8 @@ void deserializeSegment(JsonObject elem, byte it, byte presetId)
|
||||
uint16_t grp = elem["grp"] | seg.grouping;
|
||||
uint16_t spc = elem[F("spc")] | seg.spacing;
|
||||
uint16_t of = seg.offset;
|
||||
uint8_t soundSim = elem["ssim"] | seg.soundSim;
|
||||
uint8_t map1D2D = elem["mp12"] | seg.map1D2D;
|
||||
uint8_t soundSim = elem["si"] | seg.soundSim;
|
||||
uint8_t map1D2D = elem["m12"] | seg.map1D2D;
|
||||
|
||||
//WLEDMM jMap
|
||||
if (map1D2D == M12_jMap && !seg.jMap)
|
||||
@@ -535,8 +543,8 @@ void serializeSegment(JsonObject& root, Segment& seg, byte id, bool forPreset, b
|
||||
root["o1"] = seg.check1;
|
||||
root["o2"] = seg.check2;
|
||||
root["o3"] = seg.check3;
|
||||
root["ssim"] = seg.soundSim;
|
||||
root["mp12"] = seg.map1D2D;
|
||||
root["si"] = seg.soundSim;
|
||||
root["m12"] = seg.map1D2D;
|
||||
}
|
||||
|
||||
void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segmentBounds, bool selectedSegmentsOnly)
|
||||
@@ -1031,6 +1039,35 @@ void serializePalettes(JsonObject root, AsyncWebServerRequest* request)
|
||||
}
|
||||
}
|
||||
|
||||
void serializeNetworks(JsonObject root)
|
||||
{
|
||||
JsonArray networks = root.createNestedArray(F("networks"));
|
||||
int16_t status = WiFi.scanComplete();
|
||||
|
||||
switch (status) {
|
||||
case WIFI_SCAN_FAILED:
|
||||
WiFi.scanNetworks(true);
|
||||
return;
|
||||
case WIFI_SCAN_RUNNING:
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < status; i++) {
|
||||
JsonObject node = networks.createNestedObject();
|
||||
node["ssid"] = WiFi.SSID(i);
|
||||
node["rssi"] = WiFi.RSSI(i);
|
||||
node["bssid"] = WiFi.BSSIDstr(i);
|
||||
node["channel"] = WiFi.channel(i);
|
||||
node["enc"] = WiFi.encryptionType(i);
|
||||
}
|
||||
|
||||
WiFi.scanDelete();
|
||||
|
||||
if (WiFi.scanComplete() == WIFI_SCAN_FAILED) {
|
||||
WiFi.scanNetworks(true);
|
||||
}
|
||||
}
|
||||
|
||||
void serializeNodes(JsonObject root)
|
||||
{
|
||||
JsonArray nodes = root.createNestedArray("nodes");
|
||||
@@ -1081,12 +1118,13 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
{
|
||||
byte subJson = 0;
|
||||
const String& url = request->url();
|
||||
if (url.indexOf("state") > 0) subJson = 1;
|
||||
else if (url.indexOf("info") > 0) subJson = 2;
|
||||
else if (url.indexOf("si") > 0) subJson = 3;
|
||||
else if (url.indexOf("nodes") > 0) subJson = 4;
|
||||
else if (url.indexOf("palx") > 0) subJson = 5;
|
||||
else if (url.indexOf("fxda") > 0) subJson = 6;
|
||||
if (url.indexOf("state") > 0) subJson = JSON_PATH_STATE;
|
||||
else if (url.indexOf("info") > 0) subJson = JSON_PATH_INFO;
|
||||
else if (url.indexOf("si") > 0) subJson = JSON_PATH_STATE_INFO;
|
||||
else if (url.indexOf("nodes") > 0) subJson = JSON_PATH_NODES;
|
||||
else if (url.indexOf("palx") > 0) subJson = JSON_PATH_PALETTES;
|
||||
else if (url.indexOf("fxda") > 0) subJson = JSON_PATH_FXDATA;
|
||||
else if (url.indexOf("net") > 0) subJson = JSON_PATH_NETWORKS;
|
||||
#ifdef WLED_ENABLE_JSONLIVE
|
||||
else if (url.indexOf("live") > 0) {
|
||||
serveLiveLeds(request);
|
||||
@@ -1129,22 +1167,24 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
|
||||
switch (subJson)
|
||||
{
|
||||
case 1: //state
|
||||
case JSON_PATH_STATE:
|
||||
serializeState(lDoc); break;
|
||||
case 2: //info
|
||||
case JSON_PATH_INFO:
|
||||
serializeInfo(lDoc); break;
|
||||
case 4: //node list
|
||||
case JSON_PATH_NODES:
|
||||
serializeNodes(lDoc); break;
|
||||
case 5: //palettes
|
||||
case JSON_PATH_PALETTES:
|
||||
serializePalettes(lDoc, request); break;
|
||||
case 6: // FX helper data
|
||||
case JSON_PATH_FXDATA:
|
||||
serializeModeData(lDoc.as<JsonArray>()); break;
|
||||
case JSON_PATH_NETWORKS:
|
||||
serializeNetworks(lDoc); break;
|
||||
default: //all
|
||||
JsonObject state = lDoc.createNestedObject("state");
|
||||
serializeState(state);
|
||||
JsonObject info = lDoc.createNestedObject("info");
|
||||
serializeInfo(info);
|
||||
if (subJson != 3)
|
||||
if (subJson != JSON_PATH_STATE_INFO)
|
||||
{
|
||||
JsonArray effects = lDoc.createNestedArray(F("effects"));
|
||||
serializeModeNames(effects); // remove WLED-SR extensions from effect names
|
||||
@@ -1202,4 +1242,4 @@ bool serveLiveLeds(AsyncWebServerRequest* request, uint32_t wsClient)
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -137,7 +137,7 @@ void WLED::loop()
|
||||
ntpLastSyncTime = 0;
|
||||
strip.restartRuntime();
|
||||
}
|
||||
if (millis() - lastMqttReconnectAttempt > 30000) {
|
||||
if (millis() - lastMqttReconnectAttempt > 30000 || lastMqttReconnectAttempt == 0) { // lastMqttReconnectAttempt==0 forces immediate broadcast
|
||||
lastMqttReconnectAttempt = millis();
|
||||
initMqtt();
|
||||
yield();
|
||||
@@ -377,7 +377,13 @@ void WLED::setup()
|
||||
#endif
|
||||
updateFSInfo();
|
||||
|
||||
strcpy_P(apSSID, PSTR("WLED-AP")); // otherwise it is empty on first boot until config is saved
|
||||
// generate module IDs must be done before AP setup
|
||||
escapedMac = WiFi.macAddress();
|
||||
escapedMac.replace(":", "");
|
||||
escapedMac.toLowerCase();
|
||||
|
||||
WLED_SET_AP_SSID(); // otherwise it is empty on first boot until config is saved
|
||||
|
||||
DEBUG_PRINTLN(F("Reading config"));
|
||||
deserializeConfigFromFS();
|
||||
|
||||
@@ -411,10 +417,6 @@ void WLED::setup()
|
||||
}
|
||||
#endif
|
||||
|
||||
// generate module IDs
|
||||
escapedMac = WiFi.macAddress();
|
||||
escapedMac.replace(":", "");
|
||||
escapedMac.toLowerCase();
|
||||
// fill in unique mdns default
|
||||
if (strcmp(cmDNS, "x") == 0) sprintf_P(cmDNS, PSTR("wled-%*s"), 6, escapedMac.c_str() + 6);
|
||||
if (mqttDeviceTopic[0] == 0) sprintf_P(mqttDeviceTopic, PSTR("wled/%*s"), 6, escapedMac.c_str() + 6);
|
||||
@@ -500,8 +502,8 @@ void WLED::initAP(bool resetAP)
|
||||
return;
|
||||
|
||||
if (resetAP) {
|
||||
strcpy_P(apSSID, PSTR("WLED-AP"));
|
||||
strcpy_P(apPass, PSTR(DEFAULT_AP_PASS));
|
||||
WLED_SET_AP_SSID();
|
||||
strcpy_P(apPass, PSTR(WLED_AP_PASS));
|
||||
}
|
||||
DEBUG_PRINT(F("Opening access point "));
|
||||
DEBUG_PRINTLN(apSSID);
|
||||
@@ -822,6 +824,7 @@ void WLED::handleConnection()
|
||||
initInterfaces();
|
||||
userConnected();
|
||||
usermods.connected();
|
||||
lastMqttReconnectAttempt = 0; // force immediate update
|
||||
|
||||
// shut down AP
|
||||
if (apBehavior != AP_BEHAVIOR_ALWAYS && apActive) {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
// version code in format yymmddb (b = daily build)
|
||||
#define VERSION 2211201
|
||||
#define VERSION 2211242
|
||||
|
||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||
//#define WLED_USE_MY_CONFIG
|
||||
@@ -175,6 +175,19 @@ using PSRAMDynamicJsonDocument = BasicJsonDocument<PSRAM_Allocator>;
|
||||
#define CLIENT_PASS ""
|
||||
#endif
|
||||
|
||||
#if defined(WLED_AP_PASS) && !defined(WLED_AP_SSID)
|
||||
#error WLED_AP_PASS is defined but WLED_AP_SSID is still the default. \
|
||||
Please change WLED_AP_SSID to something unique.
|
||||
#endif
|
||||
|
||||
#ifndef WLED_AP_SSID
|
||||
#define WLED_AP_SSID DEFAULT_AP_SSID
|
||||
#endif
|
||||
|
||||
#ifndef WLED_AP_PASS
|
||||
#define WLED_AP_PASS DEFAULT_AP_PASS
|
||||
#endif
|
||||
|
||||
#ifndef SPIFFS_EDITOR_AIRCOOOKIE
|
||||
#error You are not using the Aircoookie fork of the ESPAsyncWebserver library.\
|
||||
Using upstream puts your WiFi password at risk of being served by the filesystem.\
|
||||
@@ -230,7 +243,7 @@ WLED_GLOBAL char releaseString[] _INIT(TOSTRING(WLED_RELEASE_NAME)); //WLEDMM: t
|
||||
#define WLED_CODENAME "Hoshi"
|
||||
|
||||
// AP and OTA default passwords (for maximum security change them!)
|
||||
WLED_GLOBAL char apPass[65] _INIT(DEFAULT_AP_PASS);
|
||||
WLED_GLOBAL char apPass[65] _INIT(WLED_AP_PASS);
|
||||
WLED_GLOBAL char otaPass[33] _INIT(DEFAULT_OTA_PASS);
|
||||
|
||||
// Hardware and pin config
|
||||
@@ -728,6 +741,23 @@ WLED_GLOBAL volatile uint8_t jsonBufferLock _INIT(0);
|
||||
#define WLED_WIFI_CONFIGURED (strlen(clientSSID) >= 1 && strcmp(clientSSID, DEFAULT_CLIENT_SSID) != 0)
|
||||
#define WLED_MQTT_CONNECTED (mqtt != nullptr && mqtt->connected())
|
||||
|
||||
#ifndef WLED_AP_SSID_UNIQUE
|
||||
#define WLED_SET_AP_SSID() do { \
|
||||
strcpy_P(apSSID, PSTR(WLED_AP_SSID)); \
|
||||
} while(0)
|
||||
#else
|
||||
#define WLED_SET_AP_SSID() do { \
|
||||
strcpy_P(apSSID, PSTR(WLED_AP_SSID)); \
|
||||
snprintf_P(\
|
||||
apSSID+strlen(WLED_AP_SSID), \
|
||||
sizeof(apSSID)-strlen(WLED_AP_SSID), \
|
||||
PSTR("-%*s"), \
|
||||
6, \
|
||||
escapedMac.c_str() + 6\
|
||||
); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
//macro to convert F to const
|
||||
#define SET_F(x) (const char*)F(x)
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ bool sendLiveLedsWs(uint32_t wsClient)
|
||||
if (!wsc || wsc->queueLength() > 0) return false; //only send if queue free
|
||||
|
||||
uint16_t used = strip.getLengthTotal();
|
||||
const uint16_t MAX_LIVE_LEDS_WS = strip.isMatrix ? 1024 : 256;
|
||||
const uint16_t MAX_LIVE_LEDS_WS = strip.isMatrix ? 4096 : 256; //WLEDMM use 4096 as max matrix size
|
||||
uint16_t n = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS
|
||||
uint16_t pos = (strip.isMatrix ? 6 : 2); //WLEDMM 6 instead of 4
|
||||
uint16_t bufSize = pos + (used/n)*3;
|
||||
|
||||
Reference in New Issue
Block a user