mirror of
https://github.com/wled/WLED.git
synced 2025-08-31 05:20:23 +00:00
Compare commits
55 Commits
v0.14.1-b2
...
v0.14.3
Author | SHA1 | Date | |
---|---|---|---|
![]() |
00f5471270 | ||
![]() |
bff6697690 | ||
![]() |
6d278994ec | ||
![]() |
acf6736afd | ||
![]() |
a42f78b08b | ||
![]() |
9d70ec56f2 | ||
![]() |
7f8ec59939 | ||
![]() |
0398ec40b7 | ||
![]() |
f55465f8b8 | ||
![]() |
6322ab9f07 | ||
![]() |
21d0f10dd7 | ||
![]() |
91c11a18e0 | ||
![]() |
d9b0df94e2 | ||
![]() |
1fc0680c71 | ||
![]() |
c8c394b4e9 | ||
![]() |
59886a1528 | ||
![]() |
a4733b4d91 | ||
![]() |
c932621b5d | ||
![]() |
8422ffcd19 | ||
![]() |
0a815179a2 | ||
![]() |
23aad24027 | ||
![]() |
7ae5459fe7 | ||
![]() |
0a8a88421e | ||
![]() |
4f42a176ef | ||
![]() |
4457067045 | ||
![]() |
3d6f25a9d3 | ||
![]() |
917a981096 | ||
![]() |
89f8b6060f | ||
![]() |
345346315a | ||
![]() |
f1c27e1798 | ||
![]() |
4316024dc7 | ||
![]() |
2b0fad87d2 | ||
![]() |
7afa550ba4 | ||
![]() |
74fed5695f | ||
![]() |
a4a8e2614e | ||
![]() |
0597eeed6b | ||
![]() |
24b60a25d5 | ||
![]() |
27035a8e1d | ||
![]() |
a9eb7cb4fd | ||
![]() |
a11cab0f88 | ||
![]() |
75e857a510 | ||
![]() |
052bdd8eb0 | ||
![]() |
8fb5f0ef3c | ||
![]() |
cdc8640218 | ||
![]() |
51b3d7cb4a | ||
![]() |
3baff4e675 | ||
![]() |
06911e7ad0 | ||
![]() |
4e0f3e35db | ||
![]() |
4f55be4f19 | ||
![]() |
e8b3c66c21 | ||
![]() |
010c3494fd | ||
![]() |
84802d9065 | ||
![]() |
90d696d826 | ||
![]() |
aeb9e2ad9f | ||
![]() |
26ab1bfd4f |
37
CHANGELOG.md
37
CHANGELOG.md
@@ -1,5 +1,42 @@
|
||||
## WLED changelog
|
||||
|
||||
#### Build 2404040
|
||||
- WLED 0.14.3 release
|
||||
- Fix for transition 0 (#3854, #3832, #3720)
|
||||
- Fix for #3855 via #3873 (by @willmmiles)
|
||||
|
||||
#### Build 2403170
|
||||
- WLED 0.14.2 release
|
||||
|
||||
#### Build 2403110
|
||||
- Beta WLED 0.14.2-b2
|
||||
- New AsyncWebServer (improved performance and reduced memory use)
|
||||
- New builds for ESP8266 with 160MHz CPU clock
|
||||
- Fixing stairway usermod and adding buildflags (#3758 by @lost-hope)
|
||||
- Fixing a potential array bounds violation in ESPDMX
|
||||
- Reduced RAM usage (moved strings and TZ data (by @willmmiles) to PROGMEM)
|
||||
- LockedJsonResponse: Release early if possible (by @willmmiles)
|
||||
|
||||
#### Build 2402120
|
||||
- Beta WLED 0.14.2-b1
|
||||
- Possible fix for #3589 & partial fix for #3605
|
||||
- Prevent JSON buffer clear after failed lock attempt
|
||||
- Multiple analog button fix for #3549
|
||||
- UM Audioreactive: add two compiler options (#3732 by @wled-install)
|
||||
- Fix for #3693
|
||||
|
||||
#### Build 2401141
|
||||
- Official release of WLED 0.14.1
|
||||
- Fix for #3566, #3665, #3672
|
||||
- Sorting of palettes in custom palette editor (#3674 by @WoodyLetsCode)
|
||||
|
||||
#### Build 2401060
|
||||
- Version bump: 0.14.1-b3
|
||||
- Global JSON buffer guarding (#3648 by @willmmiles, resolves #3641, #3312, #3367, #3637, #3646, #3447)
|
||||
- Fix for #3632
|
||||
- Custom palette editor mobile UI enhancement (#3617 by @imeszaros)
|
||||
- changelog update
|
||||
|
||||
#### Build 2312290
|
||||
- Fix for #3622, #3613, #3609
|
||||
- Various tweaks and fixes
|
||||
|
@@ -2,6 +2,20 @@
|
||||
|
||||
Here are a few suggestions to make it easier for you to contribute!
|
||||
|
||||
### Describe your PR
|
||||
|
||||
Please add a description of your proposed code changes. It does not need to be an exhaustive essay, however a PR with no description or just a few words might not get accepted, simply because very basic information is missing.
|
||||
|
||||
A good description helps us to review and understand your proposed changes. For example, you could say a few words about
|
||||
* what you try to achieve (new feature, fixing a bug, refactoring, security enhancements, etc.)
|
||||
* how your code works (short technical summary - focus on important aspects that might not be obvious when reading the code)
|
||||
* testing you performed, known limitations, open ends you possibly could not solve.
|
||||
* any areas where you like to get help from an experienced maintainer (yes WLED has become big 😉)
|
||||
|
||||
### Target branch for pull requests
|
||||
|
||||
Please make all PRs against the `0_15` branch.
|
||||
|
||||
### Code style
|
||||
|
||||
When in doubt, it is easiest to replicate the code style you find in the files you want to edit :)
|
||||
@@ -73,6 +87,6 @@ Good:
|
||||
<!-- This is an HTML comment -->
|
||||
```
|
||||
|
||||
There is no set character limit for a comment within a line,
|
||||
though as a rule of thumb you should wrap your comment if it exceeds the width of your editor window.
|
||||
Inline comments are OK if they describe that line only and are not exceedingly wide.
|
||||
There is no hard character limit for a comment within a line,
|
||||
though as a rule of thumb consider wrapping after 120 characters.
|
||||
Inline comments are OK if they describe that line only and are not exceedingly wide.
|
||||
|
1605
package-lock.json
generated
1605
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.1-b2",
|
||||
"version": "0.14.3",
|
||||
"description": "Tools for WLED project",
|
||||
"main": "tools/cdata.js",
|
||||
"directories": {
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
# CI binaries
|
||||
; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth # ESP32 variant builds are temporarily excluded from CI due to toolchain issues on the GitHub Actions Linux environment
|
||||
default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32dev_audioreactive, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB, esp32s3dev_8MB_PSRAM_opi
|
||||
default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, nodemcuv2_160, esp8266_2m_160, esp01_1m_full_160, esp32dev, esp32_eth, esp32dev_audioreactive, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB, esp32s3dev_8MB_PSRAM_opi
|
||||
|
||||
# Release binaries
|
||||
; default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, lolin_s2_mini, esp32c3dev, esp32s3dev_8MB
|
||||
@@ -42,6 +42,7 @@ default_envs = nodemcuv2, esp8266_2m, esp01_1m_full, esp32dev, esp32_eth, esp32d
|
||||
; default_envs = esp32s2_saola
|
||||
; default_envs = esp32c3dev
|
||||
; default_envs = lolin_s2_mini
|
||||
; default_envs = esp32s3dev_16MB_PSRAM_opi
|
||||
|
||||
src_dir = ./wled00
|
||||
data_dir = ./wled00/data
|
||||
@@ -62,7 +63,7 @@ arduino_core_2_7_4 = espressif8266@2.6.2
|
||||
arduino_core_3_0_0 = espressif8266@3.0.0
|
||||
arduino_core_3_2_0 = espressif8266@3.2.0
|
||||
arduino_core_4_1_0 = espressif8266@4.1.0
|
||||
arduino_core_3_1_2 = espressif8266@4.2.0
|
||||
arduino_core_3_1_2 = espressif8266@4.2.1
|
||||
|
||||
# Development platforms
|
||||
arduino_core_develop = https://github.com/platformio/platform-espressif8266#develop
|
||||
@@ -72,8 +73,7 @@ arduino_core_git = https://github.com/platformio/platform-espressif8266#feature/
|
||||
platform_wled_default = ${common.arduino_core_3_1_2}
|
||||
# We use 2.7.4.7 for all, includes PWM flicker fix and Wstring optimization
|
||||
#platform_packages = tasmota/framework-arduinoespressif8266 @ 3.20704.7
|
||||
platform_packages = platformio/framework-arduinoespressif8266
|
||||
platformio/toolchain-xtensa @ ~2.100300.220621 #2.40802.200502
|
||||
platform_packages = platformio/toolchain-xtensa @ ~2.100300.220621 #2.40802.200502
|
||||
platformio/tool-esptool #@ ~1.413.0
|
||||
platformio/tool-esptoolpy #@ ~1.30000.0
|
||||
|
||||
@@ -180,7 +180,7 @@ lib_deps =
|
||||
fastled/FastLED @ 3.6.0
|
||||
IRremoteESP8266 @ 2.8.2
|
||||
makuna/NeoPixelBus @ 2.7.5
|
||||
https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7
|
||||
https://github.com/Aircoookie/ESPAsyncWebServer.git @ 2.2.1
|
||||
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
|
||||
#TFT_eSPI
|
||||
#For compatible OLED display uncomment following
|
||||
@@ -244,7 +244,7 @@ lib_deps =
|
||||
${env.lib_deps}
|
||||
# additional build flags for audioreactive
|
||||
AR_build_flags = -D USERMOD_AUDIOREACTIVE -D UM_AUDIOREACTIVE_USE_NEW_FFT
|
||||
AR_lib_deps = https://github.com/kosme/arduinoFFT#develop @ ^1.9.2
|
||||
AR_lib_deps = https://github.com/kosme/arduinoFFT#419d7b0
|
||||
|
||||
[esp32_idf_V4]
|
||||
;; experimental build environment for ESP32 using ESP-IDF 4.4.x / arduino-esp32 v2.0.5
|
||||
@@ -336,6 +336,11 @@ build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266 #-DWLED
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
monitor_filters = esp8266_exception_decoder
|
||||
|
||||
[env:nodemcuv2_160]
|
||||
extends = env:nodemcuv2
|
||||
board_build.f_cpu = 160000000L
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP8266_160 #-DWLED_DISABLE_2D
|
||||
|
||||
[env:esp8266_2m]
|
||||
board = esp_wroom_02
|
||||
platform = ${common.platform_wled_default}
|
||||
@@ -345,6 +350,11 @@ build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
|
||||
[env:esp8266_2m_160]
|
||||
extends = env:esp8266_2m
|
||||
board_build.f_cpu = 160000000L
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP02_160
|
||||
|
||||
[env:esp01_1m_full]
|
||||
board = esp01_1m
|
||||
platform = ${common.platform_wled_default}
|
||||
@@ -355,6 +365,12 @@ build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01 -D WLED_D
|
||||
; -D WLED_USE_UNREAL_MATH ;; may cause wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
|
||||
[env:esp01_1m_full_160]
|
||||
extends = env:esp01_1m_full
|
||||
board_build.f_cpu = 160000000L
|
||||
build_flags = ${common.build_flags_esp8266} -D WLED_RELEASE_NAME=ESP01_160 -D WLED_DISABLE_OTA
|
||||
; -D WLED_USE_UNREAL_MATH ;; may cause wrong sunset/sunrise times, but saves 7064 bytes FLASH and 975 bytes RAM
|
||||
|
||||
[env:esp07]
|
||||
board = esp07
|
||||
platform = ${common.platform_wled_default}
|
||||
@@ -524,6 +540,11 @@ board_build.f_flash = 80000000L
|
||||
board_build.flash_mode = qio
|
||||
monitor_filters = esp32_exception_decoder
|
||||
|
||||
[env:esp32s3dev_16MB_PSRAM_opi]
|
||||
extends = env:esp32s3dev_8MB_PSRAM_opi
|
||||
board_build.partitions = tools/WLED_ESP32_16MB.csv
|
||||
board_upload.flash_size = 16MB
|
||||
|
||||
[env:esp32s3dev_8MB_PSRAM_qspi]
|
||||
;; ESP32-TinyS3 development board, with 8MB FLASH and PSRAM (memory_type: qio_qspi)
|
||||
extends = env:esp32s3dev_8MB_PSRAM_opi
|
||||
@@ -642,6 +663,8 @@ upload_speed = 115200
|
||||
lib_deps = ${esp32c3.lib_deps}
|
||||
board_build.partitions = tools/WLED_ESP32_2MB_noOTA.csv
|
||||
board_build.flash_mode = dio
|
||||
board_upload.flash_size = 2MB
|
||||
board_upload.maximum_size = 2097152
|
||||
|
||||
[env:wemos_shield_esp32]
|
||||
board = esp32dev
|
||||
|
@@ -50,7 +50,7 @@ starlette==0.23.1
|
||||
# via platformio
|
||||
tabulate==0.9.0
|
||||
# via platformio
|
||||
urllib3==1.26.15
|
||||
urllib3==1.26.18
|
||||
# via requests
|
||||
uvicorn==0.20.0
|
||||
# via platformio
|
||||
|
@@ -11,7 +11,7 @@ The Animated Staircase can be controlled by the WLED API. Change settings such a
|
||||
speed, on/off time and distance by sending an HTTP request, see below.
|
||||
|
||||
## WLED integration
|
||||
To include this usermod in your WLED setup, you have to be able to [compile WLED from source](https://github.com/Aircoookie/WLED/wiki/Compiling-WLED).
|
||||
To include this usermod in your WLED setup, you have to be able to [compile WLED from source](https://kno.wled.ge/advanced/compiling-wled/).
|
||||
|
||||
Before compiling, you have to make the following modifications:
|
||||
|
||||
|
@@ -73,7 +73,11 @@ static uint8_t audioSyncEnabled = 0; // bit field: bit 0 - send, bit 1
|
||||
static bool udpSyncConnected = false; // UDP connection status -> true if connected to multicast group
|
||||
|
||||
// user settable parameters for limitSoundDynamics()
|
||||
static bool limiterOn = true; // bool: enable / disable dynamics limiter
|
||||
#ifdef UM_AUDIOREACTIVE_DYNAMICS_LIMITER_OFF
|
||||
static bool limiterOn = false; // bool: enable / disable dynamics limiter
|
||||
#else
|
||||
static bool limiterOn = true;
|
||||
#endif
|
||||
static uint16_t attackTime = 80; // int: attack time in milliseconds. Default 0.08sec
|
||||
static uint16_t decayTime = 1400; // int: decay time in milliseconds. Default 1.40sec
|
||||
// user settable options for FFTResult scaling
|
||||
@@ -612,7 +616,12 @@ class AudioReactive : public Usermod {
|
||||
};
|
||||
|
||||
// set your config variables to their boot default value (this can also be done in readFromConfig() or a constructor if you prefer)
|
||||
#ifdef UM_AUDIOREACTIVE_ENABLE
|
||||
bool enabled = true;
|
||||
#else
|
||||
bool enabled = false;
|
||||
#endif
|
||||
|
||||
bool initDone = false;
|
||||
|
||||
// variables for UDP sound sync
|
||||
|
@@ -55,6 +55,11 @@ If you want to define default GPIOs during compile time, use the following (defa
|
||||
- `-D ES7243_SDAPIN` : GPIO for I2C SDA pin on ES7243 microphone (-1)
|
||||
- `-D ES7243_SCLPIN` : GPIO for I2C SCL pin on ES7243 microphone (-1)
|
||||
|
||||
Other options:
|
||||
|
||||
- `-D UM_AUDIOREACTIVE_ENABLE` : makes usermod default enabled (not the same as include into build option!)
|
||||
- `-D UM_AUDIOREACTIVE_DYNAMICS_LIMITER_OFF` : disables rise/fall limiter default
|
||||
|
||||
**NOTE** I2S is used for analog audio sampling. Hence, the analog *buttons* (i.e. potentiometers) are disabled when running this usermod with an analog microphone.
|
||||
|
||||
### Advanced Compile-Time Options
|
||||
|
@@ -1,5 +1,13 @@
|
||||
### Stairway lighting
|
||||
# Stairway lighting
|
||||
|
||||
## Install
|
||||
Add the buildflag `-D USERMOD_STAIRCASE_WIPE` to your enviroment to activate it.
|
||||
|
||||
### Configuration
|
||||
`-D STAIRCASE_WIPE_OFF`
|
||||
<br>Have the LEDs wipe off instead of fading out
|
||||
|
||||
## Description
|
||||
Quick usermod to accomplish something similar to [this video](https://www.youtube.com/watch?v=NHkju5ncC4A).
|
||||
|
||||
This usermod enables you to add a lightstrip alongside or on the steps of a staircase.
|
||||
|
@@ -19,10 +19,12 @@ class StairwayWipeUsermod : public Usermod {
|
||||
unsigned long timeStaticStart = 0;
|
||||
uint16_t previousUserVar0 = 0;
|
||||
|
||||
//moved to buildflag
|
||||
//comment this out if you want the turn off effect to be just fading out instead of reverse wipe
|
||||
#define STAIRCASE_WIPE_OFF
|
||||
//#define STAIRCASE_WIPE_OFF
|
||||
public:
|
||||
|
||||
void setup() {
|
||||
}
|
||||
void loop() {
|
||||
//userVar0 (U0 in HTTP API):
|
||||
//has to be set to 1 if movement is detected on the PIR that is the same side of the staircase as the ESP8266
|
||||
@@ -84,7 +86,7 @@ class StairwayWipeUsermod : public Usermod {
|
||||
|
||||
uint16_t getId()
|
||||
{
|
||||
return USERMOD_ID_EXAMPLE;
|
||||
return USERMOD_ID_STAIRWAY_WIPE;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -426,7 +426,7 @@ uint8_t Segment::currentBri(bool useCct) {
|
||||
uint32_t prog = progress();
|
||||
if (prog < 0xFFFFU) {
|
||||
uint32_t curBri = (useCct ? cct : (on ? opacity : 0)) * prog;
|
||||
curBri += (useCct ? _t->_cctT : (on ? _t->_briT : 0)) * (0xFFFFU - prog);
|
||||
curBri += (useCct ? _t->_cctT : _t->_briT) * (0xFFFFU - prog);
|
||||
return curBri / 0xFFFFU;
|
||||
}
|
||||
return (useCct ? cct : (on ? opacity : 0));
|
||||
|
@@ -226,11 +226,11 @@ void handleAnalog(uint8_t b)
|
||||
|
||||
void handleButton()
|
||||
{
|
||||
static unsigned long lastRead = 0UL;
|
||||
static unsigned long lastAnalogRead = 0UL;
|
||||
static unsigned long lastRun = 0UL;
|
||||
unsigned long now = millis();
|
||||
|
||||
if (strip.isUpdating() && (now - lastRun < 400)) return; // don't interfere with strip update (unless strip is updating continuously, e.g. very long strips)
|
||||
if (strip.isUpdating() && (now - lastRun < ANALOG_BTN_READ_CYCLE+1)) return; // don't interfere with strip update (unless strip is updating continuously, e.g. very long strips)
|
||||
lastRun = now;
|
||||
|
||||
for (uint8_t b=0; b<WLED_MAX_BUTTONS; b++) {
|
||||
@@ -243,9 +243,8 @@ void handleButton()
|
||||
if (usermods.handleButton(b)) continue; // did usermod handle buttons
|
||||
|
||||
if (buttonType[b] == BTN_TYPE_ANALOG || buttonType[b] == BTN_TYPE_ANALOG_INVERTED) { // button is not a button but a potentiometer
|
||||
if (now - lastRead > ANALOG_BTN_READ_CYCLE) {
|
||||
if (now - lastAnalogRead > ANALOG_BTN_READ_CYCLE) {
|
||||
handleAnalog(b);
|
||||
lastRead = now;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -325,6 +324,9 @@ void handleButton()
|
||||
shortPressAction(b);
|
||||
}
|
||||
}
|
||||
if (now - lastAnalogRead > ANALOG_BTN_READ_CYCLE) {
|
||||
lastAnalogRead = now;
|
||||
}
|
||||
}
|
||||
|
||||
// If enabled, RMT idle level is set to HIGH when off
|
||||
|
@@ -682,7 +682,7 @@ void serializeConfig() {
|
||||
|
||||
JsonObject wifi = doc.createNestedObject("wifi");
|
||||
wifi[F("sleep")] = !noWifiSleep;
|
||||
wifi[F("phy")] = (int)force802_3g;
|
||||
wifi[F("phy")] = force802_3g;
|
||||
|
||||
#ifdef WLED_USE_ETHERNET
|
||||
JsonObject ethernet = doc.createNestedObject("eth");
|
||||
|
@@ -151,6 +151,7 @@
|
||||
#define USERMOD_ID_WIREGUARD 41 //Usermod "wireguard.h"
|
||||
#define USERMOD_ID_INTERNAL_TEMPERATURE 42 //Usermod "usermod_internal_temperature.h"
|
||||
#define USERMOD_ID_LDR_DUSK_DAWN 43 //Usermod "usermod_LDR_Dusk_Dawn_v2.h"
|
||||
#define USERMOD_ID_STAIRWAY_WIPE 44 //Usermod "stairway-wipe-usermod-v2.h"
|
||||
|
||||
//Access point behavior
|
||||
#define AP_BEHAVIOR_BOOT_NO_CONN 0 //Open AP when no connection after boot
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||
<meta http-equiv="Pragma" content="no-cache">
|
||||
<meta http-equiv="Expires" content="0">
|
||||
@@ -45,6 +46,7 @@
|
||||
width: 7px;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
touch-action: none;
|
||||
}
|
||||
.color-picker-marker {
|
||||
height: 7px;
|
||||
@@ -94,9 +96,14 @@
|
||||
line-height: 1;
|
||||
}
|
||||
.wrap {
|
||||
width: 800px;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
@media (min-width: 800px) {
|
||||
.wrap {
|
||||
width: 800px;
|
||||
}
|
||||
}
|
||||
.palette {
|
||||
height: 20px;
|
||||
}
|
||||
@@ -136,6 +143,9 @@
|
||||
.sendSpan, .editSpan{
|
||||
cursor: pointer;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -191,6 +201,7 @@
|
||||
var gradientLength = rect.width;
|
||||
var mOffs = Math.round((gradientLength / 256) / 2) - 5;
|
||||
var paletteArray = []; //Holds the palettes after load.
|
||||
var paletteName = []; // Holds the names of the palettes after load.
|
||||
var svgSave = '<svg style="width:25px;height:25px" viewBox="0 0 24 24"><path fill=#fff d="M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M7,12L12,17V14H16V10H12V7L7,12Z"/></svg>'
|
||||
var svgEdit = '<svg style="width:25px;height:25px" viewBox="0 0 24 24"><path fill=#fff d="M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M15.1,7.07C15.24,7.07 15.38,7.12 15.5,7.23L16.77,8.5C17,8.72 17,9.07 16.77,9.28L15.77,10.28L13.72,8.23L14.72,7.23C14.82,7.12 14.96,7.07 15.1,7.07M13.13,8.81L15.19,10.87L9.13,16.93H7.07V14.87L13.13,8.81Z"/></svg>'
|
||||
|
||||
@@ -349,24 +360,31 @@
|
||||
var gradientLength = maxX - minX + 1;
|
||||
|
||||
elmnt.onmousedown = dragMouseDown;
|
||||
elmnt.ontouchstart = dragMouseDown;
|
||||
|
||||
function dragMouseDown(e) {
|
||||
removeTrashcan(event)
|
||||
e = e || window.event;
|
||||
e.preventDefault();
|
||||
var isTouch = e.type.startsWith('touch');
|
||||
if (!isTouch) e.preventDefault();
|
||||
// get the mouse cursor position at startup:
|
||||
mousePos = e.clientX;
|
||||
mousePos = isTouch ? e.touches[0].clientX : e.clientX;
|
||||
d.onmouseup = closeDragElement;
|
||||
d.ontouchcancel = closeDragElement;
|
||||
d.ontouchend = closeDragElement;
|
||||
// call a function whenever the cursor moves:
|
||||
d.onmousemove = elementDrag;
|
||||
d.ontouchmove = elementDrag;
|
||||
}
|
||||
|
||||
function elementDrag(e) {
|
||||
e = e || window.event;
|
||||
e.preventDefault();
|
||||
var isTouch = e.type.startsWith('touch');
|
||||
if (!isTouch) e.preventDefault();
|
||||
// calculate the new cursor position:
|
||||
posNew = mousePos - e.clientX;
|
||||
mousePos = e.clientX;
|
||||
var clientX = isTouch ? e.touches[0].clientX : e.clientX;
|
||||
posNew = mousePos - clientX;
|
||||
mousePos = clientX;
|
||||
mousePosInGradient = mousePos - (minX + 1)
|
||||
|
||||
truePos = Math.round((mousePosInGradient/gradientLength)*256);
|
||||
@@ -393,7 +411,10 @@
|
||||
function closeDragElement() {
|
||||
/* stop moving when mouse button is released:*/
|
||||
d.onmouseup = null;
|
||||
d.ontouchcancel = null;
|
||||
d.ontouchend = null;
|
||||
d.onmousemove = null;
|
||||
d.ontouchmove = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -500,8 +521,10 @@
|
||||
if (hst.length > 0 ) {
|
||||
try {
|
||||
var arr = [];
|
||||
const response = await fetch('http://'+hst+'/json/info');
|
||||
const json = await response.json();
|
||||
const responseInfo = await fetch('http://'+hst+'/json/info');
|
||||
const responsePalettes = await fetch('http://'+hst+'/json/palettes');
|
||||
const json = await responseInfo.json();
|
||||
paletteName = await responsePalettes.json();
|
||||
cpalc = json.cpalcount;
|
||||
fetchPalettes(cpalc-1);
|
||||
} catch (error) {
|
||||
@@ -540,6 +563,7 @@
|
||||
alert("The cache of palettes are missig from your browser. You should probably return to the main page and let it load properly for the palettes cache to regenerate before returning here.","Missing cached palettes!")
|
||||
} else {
|
||||
for (const key in wledPalx.p) {
|
||||
wledPalx.p[key].name = paletteName[key];
|
||||
if (key > 245) {
|
||||
delete wledPalx.p[key];
|
||||
continue;
|
||||
@@ -571,8 +595,11 @@
|
||||
}
|
||||
|
||||
const pArray = Object.entries(wledPalx.p).map(([key, value]) => ({
|
||||
[key]: value.flat()
|
||||
[key]: value.flat(),
|
||||
name: value.name
|
||||
}));
|
||||
// Sort pArray by name
|
||||
pArray.sort((a, b) => a.name.localeCompare(b.name));
|
||||
|
||||
paletteArray.push( ...pArray);
|
||||
}
|
||||
@@ -614,6 +641,9 @@
|
||||
editSpan.id = `editSpan${i}`;
|
||||
editSpan.onclick = function() {loadForEdit(i)};
|
||||
editSpan.setAttribute('title', `Copy slot ${i} palette to editor`);
|
||||
if (paletteArray[i].name) {
|
||||
editSpan.setAttribute('title', `Copy ${paletteArray[i].name} palette to editor`);
|
||||
}
|
||||
editSpan.innerHTML = svgEdit;
|
||||
editSpan.classList.add("editSpan")
|
||||
|
||||
|
@@ -26,8 +26,8 @@
|
||||
// success event
|
||||
scE.addEventListener("load", () => {
|
||||
GetV();
|
||||
setABL();
|
||||
checkSi();
|
||||
setABL();
|
||||
d.Sf.addEventListener("submit", trySubmit);
|
||||
if (d.um_p[0]==-1) d.um_p.shift();
|
||||
pinDropdowns();
|
||||
@@ -340,7 +340,7 @@
|
||||
${i+1}:
|
||||
<select name="LT${i}" onchange="UI(true)">${i>=maxB ? '' :
|
||||
'<option value="22" selected>WS281x</option>\
|
||||
<option value="30">SK6812 RGBW</option>\
|
||||
<option value="30">SK6812/WS2814 RGBW</option>\
|
||||
<option value="31">TM1814</option>\
|
||||
<option value="24">400kHz</option>\
|
||||
<option value="25">TM1829</option>\
|
||||
|
@@ -134,7 +134,7 @@
|
||||
<a href="https://github.com/Aircoookie/WLED/" target="_blank">WLED</a> version ##VERSION##<!-- Autoreplaced from package.json --><br><br>
|
||||
<a href="https://github.com/Aircoookie/WLED/wiki/Contributors-and-credits" target="_blank">Contributors, dependencies and special thanks</a><br>
|
||||
A huge thank you to everyone who helped me create WLED!<br><br>
|
||||
(c) 2016-2023 Christian Schwinne <br>
|
||||
(c) 2016-2024 Christian Schwinne <br>
|
||||
<i>Licensed under the <a href="https://github.com/Aircoookie/WLED/blob/master/LICENSE" target="_blank">MIT license</a></i><br><br>
|
||||
Server message: <span class="sip"> Response error! </span><hr>
|
||||
<div id="toast"></div>
|
||||
|
@@ -356,6 +356,22 @@ um_data_t* simulateSound(uint8_t simulationId);
|
||||
void enumerateLedmaps();
|
||||
uint8_t get_random_wheel_index(uint8_t pos);
|
||||
|
||||
// RAII guard class for the JSON Buffer lock
|
||||
// Modeled after std::lock_guard
|
||||
class JSONBufferGuard {
|
||||
bool holding_lock;
|
||||
public:
|
||||
inline JSONBufferGuard(uint8_t module=255) : holding_lock(requestJSONBufferLock(module)) {};
|
||||
inline ~JSONBufferGuard() { if (holding_lock) releaseJSONBufferLock(); };
|
||||
inline JSONBufferGuard(const JSONBufferGuard&) = delete; // Noncopyable
|
||||
inline JSONBufferGuard& operator=(const JSONBufferGuard&) = delete;
|
||||
inline JSONBufferGuard(JSONBufferGuard&& r) : holding_lock(r.holding_lock) { r.holding_lock = false; }; // but movable
|
||||
inline JSONBufferGuard& operator=(JSONBufferGuard&& r) { holding_lock |= r.holding_lock; r.holding_lock = false; return *this; };
|
||||
inline bool owns_lock() const { return holding_lock; }
|
||||
explicit inline operator bool() const { return owns_lock(); };
|
||||
inline void release() { if (holding_lock) releaseJSONBufferLock(); holding_lock = false; }
|
||||
};
|
||||
|
||||
#ifdef WLED_ADD_EEPROM_SUPPORT
|
||||
//wled_eeprom.cpp
|
||||
void applyMacro(byte index);
|
||||
|
@@ -7,302 +7,317 @@
|
||||
*/
|
||||
|
||||
// Autogenerated from wled00/data/cpal/cpal.htm, do not edit!!
|
||||
const uint16_t PAGE_cpal_L = 4721;
|
||||
const uint16_t PAGE_cpal_L = 4970;
|
||||
const uint8_t PAGE_cpal[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xbd, 0x3b, 0x7f, 0x73, 0xdb, 0xb6,
|
||||
0x92, 0xff, 0xe7, 0x53, 0x20, 0x4c, 0x5f, 0x42, 0xd6, 0x14, 0x45, 0xd2, 0xb6, 0x64, 0x4b, 0xa2,
|
||||
0x3b, 0xa9, 0x93, 0x77, 0xce, 0x8d, 0xdd, 0x64, 0x5e, 0x7c, 0x6e, 0x7b, 0x3e, 0xbf, 0x31, 0x4d,
|
||||
0x42, 0x12, 0x1b, 0x8a, 0xe0, 0x03, 0x21, 0xd9, 0xae, 0xac, 0xef, 0x7e, 0xbb, 0x00, 0x48, 0x91,
|
||||
0x94, 0xe4, 0x24, 0xd7, 0x37, 0xd7, 0xf1, 0x44, 0x20, 0xb0, 0x58, 0xec, 0x2e, 0xf6, 0x17, 0x16,
|
||||
0xe8, 0xe8, 0xe5, 0xbb, 0x8f, 0xa7, 0x97, 0xbf, 0x7f, 0x7a, 0x4f, 0xa6, 0x62, 0x96, 0x9e, 0x90,
|
||||
0x51, 0xf9, 0x43, 0xc3, 0x18, 0x7e, 0x66, 0x54, 0x84, 0x30, 0x22, 0xf2, 0x0e, 0xfd, 0xd7, 0x3c,
|
||||
0x59, 0x04, 0xc6, 0x69, 0x18, 0x4d, 0x69, 0xe7, 0x94, 0x65, 0x82, 0xb3, 0xd4, 0x20, 0x2f, 0x22,
|
||||
0x68, 0xd1, 0x4c, 0x04, 0x46, 0xc6, 0x3a, 0x11, 0x8e, 0xd9, 0x04, 0x5a, 0x85, 0x60, 0x1c, 0x5a,
|
||||
0xb3, 0x79, 0x21, 0x3a, 0x9c, 0x2e, 0xc2, 0x34, 0x89, 0x43, 0x41, 0x8d, 0x6d, 0x08, 0x3f, 0xf1,
|
||||
0x70, 0x32, 0x0b, 0xb7, 0x61, 0xda, 0x0a, 0xfe, 0xfe, 0x21, 0x4f, 0x38, 0x2d, 0x0c, 0x52, 0x81,
|
||||
0xbb, 0x08, 0x27, 0x12, 0x91, 0xd2, 0x93, 0x17, 0xbf, 0x9e, 0xbf, 0x7f, 0x47, 0x4e, 0x61, 0x55,
|
||||
0x36, 0x23, 0x9f, 0xc2, 0x94, 0x0a, 0x41, 0xc9, 0xfb, 0x38, 0x01, 0x6a, 0x46, 0x5d, 0x05, 0x42,
|
||||
0x46, 0x45, 0xc4, 0x93, 0x5c, 0x10, 0xf1, 0x98, 0xd3, 0xc0, 0x10, 0xf4, 0x41, 0x74, 0xff, 0x08,
|
||||
0x17, 0xa1, 0xea, 0x35, 0x4e, 0x5e, 0x8c, 0xe7, 0x59, 0x24, 0x12, 0x96, 0x91, 0xc9, 0x87, 0xd8,
|
||||
0xa4, 0xd6, 0x92, 0x53, 0x31, 0xe7, 0x19, 0x89, 0x9d, 0x09, 0x15, 0xef, 0x53, 0x3a, 0x83, 0x35,
|
||||
0x7f, 0x7e, 0x94, 0x43, 0xab, 0x0a, 0x34, 0x7a, 0xdf, 0x80, 0x8c, 0x38, 0x05, 0x6e, 0x35, 0x30,
|
||||
0x02, 0x2e, 0x42, 0x4e, 0xe2, 0x20, 0x66, 0xd1, 0x1c, 0x7b, 0x5e, 0x8c, 0xba, 0x6a, 0x35, 0x24,
|
||||
0x46, 0x3c, 0x22, 0xdd, 0x77, 0x2c, 0x7e, 0x5c, 0x8e, 0x81, 0xa3, 0xce, 0x38, 0x9c, 0x25, 0xe9,
|
||||
0xe3, 0xe0, 0x2d, 0x4f, 0xc2, 0xd4, 0x2e, 0xc2, 0xac, 0xe8, 0x14, 0x94, 0x27, 0xe3, 0xe1, 0x5d,
|
||||
0x18, 0x7d, 0x99, 0x70, 0x36, 0xcf, 0xe2, 0x4e, 0xc4, 0x52, 0xc6, 0x07, 0xaf, 0x3c, 0xcf, 0x1b,
|
||||
0xca, 0x29, 0x45, 0xf2, 0x27, 0x1d, 0x78, 0xbd, 0xfc, 0x61, 0xa8, 0x47, 0xe2, 0x38, 0x1e, 0xce,
|
||||
0x42, 0x3e, 0x49, 0xb2, 0x81, 0x4b, 0x3c, 0x17, 0x06, 0xd2, 0x24, 0xa3, 0x9d, 0x29, 0x4d, 0x26,
|
||||
0x53, 0x31, 0x70, 0x0e, 0x57, 0xaf, 0xf2, 0x90, 0x03, 0x21, 0x1d, 0x94, 0x61, 0x08, 0x43, 0x7c,
|
||||
0x99, 0xb3, 0x22, 0x41, 0x56, 0x06, 0x9c, 0xa6, 0xa1, 0x48, 0x16, 0x74, 0x78, 0x9f, 0xc4, 0x62,
|
||||
0x3a, 0xf0, 0x5c, 0xf7, 0x6f, 0x43, 0x3d, 0xd1, 0x07, 0x4c, 0xab, 0x57, 0x77, 0x4c, 0x80, 0x74,
|
||||
0x4f, 0x37, 0x67, 0x86, 0x77, 0x05, 0x4b, 0xe7, 0x82, 0xea, 0xa5, 0x3b, 0x82, 0xe5, 0x83, 0x43,
|
||||
0x39, 0x65, 0xc2, 0xc3, 0x38, 0xc1, 0xf5, 0xee, 0xd8, 0xc3, 0x72, 0x13, 0x2f, 0xb6, 0x57, 0x8e,
|
||||
0xa4, 0xbd, 0x03, 0x73, 0xbf, 0x50, 0x6e, 0xeb, 0xaf, 0x3c, 0x89, 0xe0, 0x4b, 0x77, 0x6e, 0x59,
|
||||
0xe9, 0x8e, 0xf1, 0x18, 0xc6, 0x11, 0xfd, 0xbc, 0x18, 0xec, 0x03, 0xa3, 0x1b, 0x62, 0x2a, 0x92,
|
||||
0x74, 0x41, 0xb9, 0x86, 0x1c, 0xf8, 0xf9, 0x03, 0x81, 0xb9, 0x49, 0x4c, 0xf8, 0xe4, 0x2e, 0x34,
|
||||
0x7b, 0x47, 0xb6, 0xfa, 0x73, 0x0e, 0xad, 0xe1, 0x9f, 0x9d, 0x24, 0x8b, 0xe9, 0xc3, 0xc0, 0x6f,
|
||||
0xd2, 0xb2, 0xd4, 0x54, 0xee, 0xa3, 0x1c, 0x15, 0xf1, 0x7d, 0x68, 0x29, 0xee, 0xfe, 0x36, 0x14,
|
||||
0x1c, 0xf6, 0x68, 0xcc, 0xf8, 0x6c, 0x20, 0x5b, 0x20, 0x3c, 0xfa, 0xbb, 0xd9, 0x81, 0x11, 0x6b,
|
||||
0xb5, 0x95, 0x09, 0x8d, 0xad, 0xbf, 0x81, 0xcc, 0x3b, 0x44, 0x29, 0xc4, 0x14, 0x94, 0x96, 0xee,
|
||||
0xe6, 0x58, 0x4f, 0x3f, 0xac, 0xa6, 0x63, 0xeb, 0x1b, 0xc4, 0xf0, 0x6a, 0x3c, 0x1e, 0x97, 0x42,
|
||||
0xd8, 0xaf, 0x84, 0xf0, 0xea, 0xf8, 0xce, 0x3f, 0xf2, 0x8f, 0xe4, 0xfa, 0xbe, 0x0f, 0xdc, 0x6c,
|
||||
0xc8, 0x40, 0x11, 0xbf, 0x9b, 0x10, 0xaf, 0x22, 0xc4, 0xab, 0x08, 0x91, 0xcd, 0x92, 0xa5, 0x0a,
|
||||
0xa5, 0x57, 0x92, 0x59, 0x53, 0xdf, 0xad, 0x4a, 0xbd, 0x72, 0xee, 0xe6, 0xa0, 0x62, 0x59, 0x94,
|
||||
0x86, 0x45, 0xb1, 0xcc, 0xc3, 0x38, 0x4e, 0xb2, 0xc9, 0xc0, 0xad, 0x34, 0x7a, 0x08, 0xfb, 0x29,
|
||||
0x92, 0x28, 0x4c, 0x3b, 0xe0, 0x56, 0x26, 0xd9, 0x40, 0x29, 0xe4, 0x0e, 0x5c, 0x6d, 0x75, 0x25,
|
||||
0x45, 0x1e, 0x66, 0xcb, 0x38, 0x29, 0xf2, 0x34, 0x7c, 0x1c, 0x24, 0x99, 0x34, 0x8c, 0x71, 0x4a,
|
||||
0x1f, 0x86, 0x12, 0x59, 0x27, 0x11, 0x74, 0x56, 0x0c, 0x22, 0x50, 0x56, 0x50, 0x9a, 0x9a, 0xe8,
|
||||
0x6a, 0x86, 0x06, 0x3a, 0xd4, 0x26, 0x61, 0x96, 0xc4, 0x71, 0x4a, 0x57, 0xaf, 0x92, 0x6c, 0xcc,
|
||||
0x2a, 0xe4, 0x86, 0x31, 0x44, 0xef, 0xa2, 0x41, 0xbe, 0x8a, 0x72, 0xd3, 0x02, 0x6b, 0x76, 0xb4,
|
||||
0x61, 0xc4, 0x20, 0xa5, 0x7b, 0x1e, 0xe6, 0xda, 0x9a, 0x8e, 0x5c, 0x1c, 0xaf, 0x4c, 0x3e, 0x9c,
|
||||
0x0b, 0xb6, 0x72, 0x72, 0xe5, 0xff, 0x96, 0x75, 0xeb, 0x2d, 0x3b, 0xff, 0x43, 0x5b, 0x64, 0xb1,
|
||||
0x44, 0xde, 0x61, 0x6f, 0x6a, 0x40, 0x9b, 0xea, 0x54, 0x4d, 0x2b, 0x2e, 0x40, 0x88, 0xcb, 0x96,
|
||||
0x7d, 0xd7, 0x3c, 0x85, 0x04, 0xbc, 0x64, 0x79, 0xb9, 0xe6, 0x38, 0x51, 0x3e, 0x06, 0x56, 0xfa,
|
||||
0x8b, 0xb2, 0x68, 0xf1, 0x0e, 0xcb, 0x94, 0x2c, 0x7c, 0x92, 0xae, 0xac, 0x92, 0xfa, 0xae, 0xbd,
|
||||
0xdc, 0x42, 0x51, 0x5b, 0xbe, 0xff, 0x56, 0x0a, 0x95, 0x0e, 0x17, 0xef, 0x92, 0xc5, 0x56, 0x6d,
|
||||
0xd3, 0x6b, 0xa7, 0x74, 0xdc, 0x30, 0x66, 0xb9, 0x47, 0x14, 0x02, 0xd6, 0x67, 0x50, 0x53, 0xdb,
|
||||
0x29, 0x68, 0x16, 0x63, 0x6b, 0x19, 0xcd, 0x79, 0x01, 0x94, 0xe4, 0x2c, 0x41, 0xba, 0x56, 0x18,
|
||||
0x41, 0x64, 0xe0, 0x20, 0xa3, 0xae, 0x0e, 0xd4, 0x18, 0x41, 0xe0, 0x27, 0x4e, 0x16, 0x24, 0x89,
|
||||
0x03, 0x03, 0x95, 0x03, 0x62, 0x24, 0x9a, 0x90, 0xfe, 0xd0, 0x83, 0x2f, 0xe4, 0xc4, 0xc0, 0x68,
|
||||
0xc8, 0xeb, 0x0f, 0x88, 0x98, 0xc9, 0xf8, 0xb1, 0x94, 0x8c, 0x66, 0x1f, 0xa7, 0x4c, 0xbd, 0xed,
|
||||
0x33, 0x36, 0x25, 0x8c, 0xd0, 0xc5, 0x62, 0x52, 0x81, 0x2b, 0x8e, 0xf6, 0x31, 0x2c, 0x95, 0x1e,
|
||||
0xb4, 0x57, 0x29, 0x69, 0x87, 0xcb, 0x1e, 0xe8, 0x30, 0xc8, 0x22, 0xa1, 0xf7, 0x3f, 0xb3, 0x07,
|
||||
0x08, 0xe4, 0xc4, 0x25, 0xfb, 0x3e, 0xfc, 0x19, 0x27, 0xa3, 0x3c, 0x14, 0x53, 0xf2, 0x62, 0x9c,
|
||||
0xa4, 0x69, 0x60, 0xbc, 0x72, 0xdd, 0x7d, 0xd8, 0x02, 0x03, 0x42, 0xa8, 0x71, 0xd1, 0x23, 0xbe,
|
||||
0x3f, 0x3d, 0x5a, 0x1c, 0x9c, 0xf5, 0xfe, 0xbc, 0xf0, 0x0e, 0x88, 0x77, 0x30, 0x3d, 0x58, 0x1c,
|
||||
0x4d, 0x3b, 0x07, 0xf0, 0x75, 0x04, 0xb1, 0xae, 0xfa, 0xf2, 0x7d, 0xd2, 0x43, 0xb8, 0x69, 0xe7,
|
||||
0xe8, 0x4f, 0xa3, 0x7b, 0x02, 0x02, 0x5b, 0x4c, 0x4e, 0x5e, 0x00, 0x89, 0x20, 0x4e, 0x29, 0x21,
|
||||
0x94, 0x9b, 0x71, 0xf2, 0x5c, 0xc2, 0x80, 0xa0, 0x52, 0xc2, 0x1e, 0xfe, 0x0b, 0xc2, 0x2b, 0x45,
|
||||
0x88, 0xd3, 0xdb, 0x11, 0xd4, 0xa8, 0x09, 0xbf, 0x1e, 0xef, 0x80, 0x17, 0x3d, 0xb5, 0x8e, 0xe1,
|
||||
0xfb, 0x36, 0xa1, 0xc4, 0x5b, 0x5a, 0x21, 0x26, 0x4b, 0x6a, 0x67, 0xeb, 0x76, 0xd9, 0x82, 0x04,
|
||||
0x33, 0xac, 0x14, 0x40, 0x7f, 0x02, 0xff, 0xa7, 0x73, 0x8e, 0x74, 0xa7, 0x8f, 0x24, 0xc9, 0xc8,
|
||||
0xbc, 0xa0, 0x24, 0x52, 0xbc, 0x97, 0x88, 0x48, 0x8b, 0xda, 0xbf, 0x4e, 0x34, 0xfa, 0x44, 0xb9,
|
||||
0x72, 0x0a, 0xa1, 0x84, 0x40, 0xb2, 0x24, 0xa6, 0x94, 0x94, 0x12, 0x22, 0x54, 0xca, 0x9a, 0x08,
|
||||
0x46, 0xc0, 0xcf, 0x93, 0x8c, 0xde, 0x13, 0x69, 0x73, 0xa4, 0x80, 0xf0, 0x04, 0x79, 0x00, 0x02,
|
||||
0xab, 0x19, 0xb2, 0x9b, 0xc6, 0x04, 0x44, 0x4a, 0xee, 0x68, 0xca, 0xee, 0x65, 0xaf, 0x02, 0xc3,
|
||||
0xe9, 0xd1, 0x34, 0xcc, 0x26, 0x94, 0x24, 0xa2, 0x50, 0xa0, 0x8e, 0x5e, 0x10, 0xa1, 0x9a, 0xf3,
|
||||
0x20, 0x1c, 0x81, 0xeb, 0xc6, 0x55, 0xcd, 0x30, 0x8b, 0x31, 0x8f, 0x1c, 0x27, 0x7c, 0x66, 0x21,
|
||||
0x12, 0x15, 0x7d, 0x1d, 0xf2, 0x31, 0x8b, 0x28, 0x19, 0x27, 0x59, 0x52, 0x4c, 0x69, 0x6c, 0x83,
|
||||
0x14, 0x4b, 0x4c, 0x21, 0xe7, 0x88, 0x21, 0x42, 0x36, 0x18, 0x99, 0xe7, 0x29, 0x0b, 0x63, 0x40,
|
||||
0x08, 0x6d, 0x1c, 0x8d, 0x69, 0x91, 0xe0, 0x5a, 0x45, 0xca, 0x84, 0x43, 0x2e, 0x99, 0xe4, 0x8e,
|
||||
0xd0, 0x87, 0x04, 0x64, 0x94, 0x4d, 0x4a, 0x19, 0xd7, 0xf1, 0xe5, 0x34, 0x8b, 0x92, 0x54, 0x22,
|
||||
0x74, 0xc8, 0x8b, 0x2d, 0x42, 0xff, 0x7e, 0x99, 0x4b, 0xed, 0x2c, 0x04, 0x38, 0xa5, 0xe8, 0x53,
|
||||
0xa5, 0x2f, 0x5f, 0x51, 0x17, 0x04, 0xdf, 0xa9, 0x32, 0x6f, 0x17, 0x61, 0x92, 0x86, 0x77, 0x29,
|
||||
0x48, 0x5b, 0x62, 0xfd, 0x9a, 0xae, 0xc8, 0x9f, 0x51, 0x57, 0x3b, 0x24, 0x9d, 0x6d, 0xbf, 0xd8,
|
||||
0x95, 0x6e, 0x63, 0x6a, 0x5c, 0x6a, 0x03, 0x7a, 0x01, 0xcc, 0xba, 0x9b, 0x06, 0x64, 0xd9, 0x11,
|
||||
0xac, 0x18, 0x05, 0x1d, 0xcf, 0xce, 0x1f, 0x4e, 0x59, 0x1a, 0x2c, 0x57, 0xb6, 0xd0, 0xbf, 0x9c,
|
||||
0x46, 0x22, 0xa8, 0x4d, 0xc7, 0x24, 0xfd, 0x67, 0xcc, 0x01, 0x40, 0xde, 0xb0, 0xff, 0xd0, 0xf9,
|
||||
0x0f, 0x80, 0x30, 0x2d, 0xbb, 0x84, 0x39, 0xa7, 0xd9, 0x44, 0x4c, 0x03, 0x9c, 0xe7, 0x48, 0x0f,
|
||||
0x65, 0xcf, 0x3e, 0x8e, 0xc7, 0x45, 0x70, 0x01, 0xfe, 0xc6, 0x91, 0xd9, 0x83, 0xd9, 0x04, 0xed,
|
||||
0xfa, 0x87, 0xbd, 0xae, 0x6f, 0x75, 0x0e, 0x6d, 0xcd, 0xf6, 0x5b, 0xce, 0xc3, 0xc7, 0xe0, 0xfa,
|
||||
0xc6, 0x06, 0x87, 0xf2, 0x39, 0x5c, 0xd0, 0xe0, 0x8d, 0x74, 0x7b, 0x0d, 0xaf, 0xe7, 0x1f, 0xae,
|
||||
0xbd, 0x1e, 0xb6, 0x5b, 0x4e, 0xce, 0x3f, 0x80, 0xbf, 0xd2, 0xc9, 0x49, 0x1f, 0x87, 0x21, 0x46,
|
||||
0xba, 0x37, 0xdf, 0xb7, 0x3d, 0xff, 0xad, 0xe7, 0xda, 0x1e, 0x02, 0xc2, 0x0f, 0xf1, 0x7c, 0xdb,
|
||||
0x6f, 0xf6, 0x6c, 0x05, 0x69, 0x42, 0x20, 0xc8, 0x45, 0x1f, 0xfe, 0x39, 0x87, 0x31, 0xaf, 0x7f,
|
||||
0xe5, 0x1d, 0x9c, 0x79, 0xbd, 0x2b, 0xcf, 0x3d, 0xf3, 0xfc, 0xab, 0xfe, 0x39, 0x0e, 0xfc, 0x77,
|
||||
0xe5, 0x14, 0xdf, 0x20, 0x27, 0xe8, 0xf3, 0xfe, 0xbd, 0x9c, 0x20, 0x51, 0xa7, 0x3d, 0xe7, 0xa0,
|
||||
0x6f, 0xfb, 0x40, 0x31, 0x36, 0x24, 0xe1, 0xa7, 0x48, 0x8f, 0x73, 0xb8, 0x4f, 0xd4, 0x90, 0xaf,
|
||||
0xf8, 0x3b, 0x95, 0x7d, 0xf8, 0xe9, 0x97, 0xe3, 0xbe, 0x82, 0xd6, 0x53, 0xf5, 0xb8, 0x84, 0xbe,
|
||||
0xf0, 0x0e, 0x1d, 0xcf, 0xee, 0x3b, 0x6e, 0xff, 0x14, 0x5a, 0xfe, 0x81, 0x6c, 0x12, 0x68, 0xee,
|
||||
0x1f, 0x41, 0xd3, 0xf3, 0xb1, 0x79, 0x08, 0x2d, 0x7f, 0xff, 0xdc, 0xeb, 0x39, 0xfd, 0xbe, 0x7d,
|
||||
0xe4, 0x1c, 0xc2, 0x02, 0xf0, 0xd3, 0x87, 0xb1, 0xbe, 0x7d, 0x2c, 0xc1, 0xe5, 0xc8, 0xb1, 0xe3,
|
||||
0x1f, 0x9d, 0x03, 0x38, 0x34, 0x3d, 0x57, 0xb6, 0xf7, 0x01, 0x08, 0x20, 0x71, 0xee, 0x01, 0x36,
|
||||
0x11, 0xcd, 0x29, 0x34, 0x8f, 0x7c, 0x8d, 0xfb, 0xc0, 0x39, 0xee, 0x55, 0x2b, 0x2a, 0x32, 0x2e,
|
||||
0x60, 0x96, 0xb7, 0x0f, 0xb3, 0x8e, 0x3c, 0x44, 0xe6, 0x1d, 0x23, 0xb2, 0xa3, 0xfe, 0xf9, 0x31,
|
||||
0xf6, 0xc2, 0x42, 0xc7, 0xfb, 0x67, 0x08, 0x76, 0x85, 0x68, 0xfa, 0xe7, 0x6b, 0xe0, 0xda, 0x1e,
|
||||
0x0c, 0xab, 0xb3, 0x24, 0xa8, 0xe6, 0xc7, 0xb1, 0x89, 0xa7, 0xc9, 0xff, 0x37, 0xd5, 0xae, 0x1d,
|
||||
0x64, 0xd3, 0xe4, 0xcb, 0xc7, 0xac, 0x4c, 0xad, 0xd4, 0xa1, 0x76, 0xc6, 0x16, 0xf4, 0x92, 0x87,
|
||||
0xc5, 0x34, 0x0a, 0x33, 0xe8, 0xb1, 0xc1, 0x51, 0x9f, 0x9a, 0x35, 0xa4, 0xd4, 0x61, 0xb0, 0x0c,
|
||||
0x15, 0xbf, 0x75, 0x9b, 0xe8, 0x7f, 0x04, 0xf4, 0x56, 0xed, 0x90, 0x2c, 0xe7, 0x51, 0x1b, 0x4e,
|
||||
0xec, 0x86, 0xb5, 0x04, 0x53, 0x22, 0x1c, 0x4d, 0x9a, 0x05, 0x2f, 0x3d, 0xc8, 0xb3, 0xb2, 0x42,
|
||||
0x90, 0xb0, 0xc1, 0xee, 0xbf, 0xe6, 0x94, 0x3f, 0x7e, 0x06, 0x87, 0x1c, 0x81, 0xab, 0x7e, 0x9b,
|
||||
0xa6, 0xa6, 0xd1, 0x38, 0x96, 0x19, 0xd6, 0x30, 0x19, 0x9b, 0xa1, 0x03, 0x47, 0xaf, 0xf7, 0x61,
|
||||
0x34, 0x35, 0x4d, 0x61, 0x73, 0x2b, 0x38, 0x59, 0x0a, 0x94, 0xd3, 0x5b, 0x21, 0x78, 0x02, 0x19,
|
||||
0x18, 0x35, 0x8d, 0x38, 0x14, 0x61, 0x47, 0xf0, 0x39, 0x85, 0x8c, 0xcd, 0xb0, 0x82, 0x80, 0xbe,
|
||||
0x7e, 0x6d, 0xc2, 0x9a, 0xae, 0xb5, 0x02, 0x4e, 0x9c, 0x54, 0x52, 0x7a, 0xe2, 0xf5, 0xcb, 0x5e,
|
||||
0x9b, 0x59, 0xea, 0x18, 0x8f, 0xd8, 0xe9, 0x89, 0xfb, 0xfa, 0x35, 0x1d, 0xf9, 0x87, 0x87, 0x16,
|
||||
0x2c, 0x63, 0xa2, 0xab, 0xca, 0x02, 0x6f, 0x98, 0x8d, 0x02, 0xaf, 0xf7, 0xfa, 0x35, 0x1f, 0x41,
|
||||
0x73, 0x6f, 0xcf, 0x92, 0x1e, 0x4b, 0x92, 0x76, 0xa1, 0x28, 0xdb, 0xcb, 0xac, 0xa7, 0x27, 0x93,
|
||||
0x07, 0x99, 0x35, 0xa4, 0x29, 0x84, 0x58, 0x1e, 0xd0, 0xa1, 0x61, 0x04, 0x81, 0x80, 0x45, 0x80,
|
||||
0xfb, 0x57, 0xc6, 0x9e, 0xe9, 0xf5, 0xfa, 0xfd, 0xbe, 0xef, 0x1d, 0xfe, 0xa8, 0xe4, 0x08, 0x71,
|
||||
0x88, 0xcd, 0x4c, 0x6b, 0x34, 0x72, 0x2d, 0x47, 0xb0, 0xcf, 0x40, 0x7c, 0x36, 0x01, 0x18, 0x0b,
|
||||
0xf2, 0xdc, 0xf8, 0xb3, 0x08, 0xb9, 0x30, 0x7b, 0xb6, 0xe1, 0x1a, 0x96, 0xa5, 0x25, 0x95, 0x06,
|
||||
0xd1, 0x7b, 0xd3, 0xc0, 0xfc, 0x04, 0xc4, 0x90, 0x3a, 0xd2, 0x65, 0xff, 0x12, 0xce, 0xc0, 0x6a,
|
||||
0x1b, 0x22, 0xb2, 0x53, 0x07, 0xbd, 0x7b, 0x83, 0x36, 0xbe, 0x5e, 0xc0, 0x82, 0xf1, 0x62, 0xb7,
|
||||
0xb0, 0x6c, 0xfa, 0x0c, 0x00, 0xe0, 0x34, 0x6c, 0xb1, 0x03, 0x40, 0xe9, 0x83, 0xa1, 0xf4, 0x0f,
|
||||
0x61, 0x60, 0xeb, 0xdf, 0x2f, 0x50, 0x31, 0x20, 0x12, 0x52, 0x48, 0x96, 0x40, 0x5e, 0x18, 0x02,
|
||||
0x0d, 0x1b, 0x72, 0x8f, 0xfc, 0xef, 0x73, 0x0e, 0xa1, 0x90, 0x7f, 0xe2, 0x2c, 0x97, 0xf8, 0xd0,
|
||||
0xfd, 0x38, 0x98, 0x18, 0x3f, 0xaf, 0xb9, 0x3f, 0x52, 0x6b, 0x4f, 0x2e, 0xb0, 0x67, 0x80, 0x5b,
|
||||
0xd2, 0x82, 0x49, 0xa4, 0x60, 0x92, 0x2c, 0x9f, 0x0b, 0x54, 0x10, 0x47, 0x45, 0x1d, 0x29, 0x00,
|
||||
0xc3, 0x4e, 0x9c, 0x45, 0x98, 0xce, 0x69, 0x20, 0xa0, 0xb5, 0x21, 0x32, 0x75, 0xd0, 0x45, 0xa0,
|
||||
0x4a, 0x64, 0x9f, 0x54, 0x57, 0x53, 0x64, 0xc9, 0x16, 0x66, 0xd4, 0x7a, 0xf6, 0x3c, 0xc7, 0x22,
|
||||
0x57, 0x69, 0x3c, 0xdb, 0x41, 0x35, 0xdf, 0x51, 0x7e, 0x9a, 0x7e, 0x29, 0x77, 0xb3, 0xa8, 0xef,
|
||||
0x66, 0xb1, 0x8b, 0xb4, 0x6a, 0x53, 0x8b, 0x36, 0x85, 0x5b, 0xb7, 0xb6, 0x78, 0x66, 0x71, 0x96,
|
||||
0xe2, 0xea, 0x00, 0x52, 0x93, 0x75, 0x5d, 0xf0, 0x40, 0xf9, 0x8e, 0x11, 0x4d, 0x71, 0x5c, 0xa7,
|
||||
0x98, 0xa3, 0x95, 0x70, 0xb4, 0x12, 0xd0, 0xef, 0xb8, 0x4e, 0x7e, 0xa3, 0x98, 0x61, 0xd8, 0xb1,
|
||||
0x24, 0x5c, 0x75, 0x6e, 0xa5, 0x39, 0xde, 0x4d, 0x33, 0x05, 0xd3, 0x56, 0x33, 0x4f, 0x91, 0x71,
|
||||
0x2c, 0xaa, 0x21, 0xfc, 0x0e, 0x32, 0xd7, 0x7a, 0xb4, 0xae, 0x0a, 0xc8, 0x79, 0x81, 0xd6, 0x81,
|
||||
0x8a, 0xf7, 0x5d, 0xe3, 0x75, 0x4f, 0x14, 0xe6, 0x90, 0xa6, 0xc5, 0xa7, 0xd3, 0x24, 0x8d, 0xcd,
|
||||
0xc4, 0xda, 0x39, 0x94, 0xee, 0x1e, 0x02, 0x23, 0x70, 0x5f, 0x06, 0xfc, 0xf5, 0x6b, 0x10, 0x92,
|
||||
0xfc, 0xdd, 0x05, 0x18, 0x5b, 0x76, 0x5d, 0x9c, 0xb3, 0xf0, 0x0b, 0xbd, 0xa0, 0xef, 0x78, 0x38,
|
||||
0x31, 0xd1, 0xcb, 0xa0, 0x39, 0x5b, 0xb0, 0x6f, 0x54, 0x5c, 0x32, 0x96, 0x8a, 0x24, 0x57, 0x52,
|
||||
0xac, 0x8f, 0x35, 0x75, 0xd0, 0xac, 0xb9, 0xdf, 0xf6, 0xc8, 0x52, 0x6d, 0x25, 0xfd, 0x4e, 0xa7,
|
||||
0xbb, 0x91, 0x82, 0xd1, 0x0d, 0x17, 0xac, 0x10, 0x33, 0x99, 0xca, 0xd1, 0x6b, 0x7e, 0x03, 0x94,
|
||||
0x39, 0x9c, 0x42, 0xfe, 0x1a, 0xd1, 0xa6, 0xa3, 0xb4, 0x1b, 0x76, 0x66, 0x59, 0x4a, 0xf6, 0xc3,
|
||||
0xef, 0x9b, 0xa7, 0xfb, 0x60, 0xf6, 0xf6, 0x1d, 0x65, 0xb6, 0xc4, 0xf5, 0xfc, 0xe0, 0x33, 0x4e,
|
||||
0x8e, 0x59, 0x55, 0x78, 0x92, 0xb0, 0xcf, 0x85, 0x17, 0x3b, 0xfb, 0x8a, 0xcf, 0x0a, 0xb5, 0x00,
|
||||
0xaf, 0xb3, 0x1b, 0x58, 0x1b, 0x45, 0x78, 0x1d, 0x42, 0x6b, 0xb5, 0x56, 0x1d, 0x65, 0x0c, 0x81,
|
||||
0x81, 0xa5, 0x82, 0x90, 0x77, 0xca, 0x6e, 0x13, 0x8e, 0x18, 0xf2, 0xcc, 0x6c, 0xd8, 0x1f, 0xef,
|
||||
0xfe, 0xc0, 0x10, 0x0f, 0x9d, 0x3c, 0xa1, 0x85, 0x29, 0xf1, 0x59, 0xeb, 0x4d, 0xb8, 0x86, 0x10,
|
||||
0x7b, 0x83, 0xdb, 0xd0, 0xc4, 0xb8, 0x17, 0xdc, 0xda, 0xe4, 0x87, 0xa5, 0x58, 0xc1, 0x3f, 0x74,
|
||||
0x95, 0x3f, 0xdc, 0x6e, 0xac, 0xb9, 0x17, 0x18, 0x96, 0xd1, 0x50, 0xe1, 0xb6, 0xcc, 0x82, 0xe6,
|
||||
0x84, 0xb5, 0x6e, 0xb5, 0xdc, 0x38, 0xe6, 0x0d, 0xd4, 0xc1, 0x4e, 0xfc, 0x0a, 0x27, 0x21, 0x02,
|
||||
0xd5, 0x75, 0x51, 0x79, 0xa0, 0xed, 0xe9, 0xc5, 0x96, 0x89, 0xb6, 0xd4, 0x08, 0xa7, 0xe0, 0x91,
|
||||
0xae, 0xa9, 0x37, 0x34, 0xa3, 0x52, 0x0a, 0xd4, 0x01, 0xe9, 0x2e, 0x1a, 0x4b, 0xe5, 0x3b, 0x56,
|
||||
0x5a, 0x48, 0x1f, 0xfd, 0x2c, 0x99, 0x35, 0xf3, 0x03, 0x04, 0x18, 0xfe, 0x45, 0xe0, 0xda, 0xfc,
|
||||
0x9b, 0xb2, 0x32, 0x16, 0x70, 0x47, 0x6e, 0x98, 0x1d, 0x42, 0x4b, 0x7a, 0xd5, 0x2c, 0x60, 0x9d,
|
||||
0x70, 0xcf, 0x5b, 0xa7, 0x7a, 0xa9, 0xc9, 0xad, 0x25, 0x24, 0x0a, 0xfc, 0xe9, 0xe9, 0x1e, 0x4e,
|
||||
0xa5, 0xec, 0xde, 0x51, 0x54, 0x39, 0x39, 0x97, 0x8d, 0x77, 0x74, 0x1c, 0xce, 0x53, 0xc4, 0x26,
|
||||
0x3a, 0x1c, 0x59, 0x83, 0xbe, 0xdf, 0x20, 0x81, 0x5a, 0xb7, 0x67, 0x0c, 0xce, 0xf0, 0x9f, 0x58,
|
||||
0xf1, 0xa1, 0xca, 0xd9, 0x02, 0xd1, 0x31, 0x61, 0x11, 0x98, 0x02, 0x4a, 0x09, 0x23, 0x75, 0x85,
|
||||
0xdc, 0x84, 0xee, 0x66, 0x32, 0x4b, 0xb3, 0x59, 0x1a, 0x5f, 0x6a, 0x78, 0xfa, 0xbc, 0x86, 0x6b,
|
||||
0xb4, 0xe8, 0xa4, 0x74, 0x53, 0xb9, 0xaa, 0x35, 0x86, 0x97, 0x81, 0x1e, 0xc0, 0x74, 0x47, 0x83,
|
||||
0xf4, 0x0e, 0x7e, 0x12, 0xd3, 0xa4, 0xf8, 0x28, 0x13, 0x83, 0xc0, 0x1d, 0x94, 0x58, 0xbc, 0x63,
|
||||
0xbf, 0x3e, 0xd0, 0x1f, 0xd4, 0x3e, 0xf6, 0xe5, 0xe6, 0x6c, 0x4b, 0x06, 0x32, 0x69, 0x4b, 0x1a,
|
||||
0x47, 0x3d, 0x0b, 0xd0, 0x8a, 0xf2, 0x7f, 0xf2, 0x1b, 0x72, 0x91, 0xfa, 0x8a, 0x5f, 0x45, 0xd6,
|
||||
0x88, 0x64, 0x7f, 0x01, 0x4f, 0xcb, 0x09, 0xee, 0x42, 0x43, 0x9f, 0x4d, 0xd6, 0x4a, 0x69, 0x6c,
|
||||
0x46, 0x07, 0xba, 0x19, 0x15, 0x6a, 0x3a, 0x9e, 0x40, 0x24, 0x88, 0x1d, 0x96, 0x49, 0xdd, 0x98,
|
||||
0xe7, 0x41, 0x36, 0x4f, 0x53, 0xbb, 0xea, 0x40, 0x93, 0x91, 0x5d, 0x2b, 0x5a, 0x76, 0x81, 0x9a,
|
||||
0x66, 0x41, 0x39, 0x7d, 0xb7, 0x61, 0x99, 0x34, 0xa0, 0x5f, 0x57, 0x6b, 0xe0, 0xb0, 0x54, 0xe5,
|
||||
0x3a, 0x11, 0x49, 0x8b, 0x82, 0x74, 0x55, 0xf3, 0x35, 0x9b, 0xfc, 0x2d, 0xdb, 0xa2, 0x91, 0x57,
|
||||
0x7d, 0x86, 0x7d, 0x0b, 0xae, 0xee, 0x59, 0x6d, 0x5e, 0x91, 0x01, 0x79, 0x06, 0x06, 0xfd, 0xbf,
|
||||
0xb5, 0xba, 0xad, 0x49, 0xab, 0x99, 0x82, 0x68, 0x97, 0x80, 0xb9, 0x50, 0x9c, 0x2c, 0x20, 0x38,
|
||||
0xa2, 0xf6, 0xbe, 0xab, 0x69, 0x45, 0x50, 0x77, 0x5a, 0x36, 0x8e, 0x9e, 0xae, 0x77, 0x5e, 0xc6,
|
||||
0xc7, 0xf6, 0x8c, 0x86, 0x9a, 0xa8, 0xd5, 0x4a, 0x0d, 0x01, 0xdd, 0x58, 0xa3, 0xa8, 0xeb, 0xf0,
|
||||
0xf7, 0x22, 0xaa, 0x54, 0xad, 0x8d, 0xee, 0x5b, 0x11, 0xed, 0xd0, 0x5c, 0x9b, 0x43, 0x1e, 0x43,
|
||||
0xb9, 0x32, 0xdf, 0xdf, 0x02, 0xcf, 0xd5, 0x1d, 0xbf, 0x35, 0xc4, 0xb0, 0xcb, 0x63, 0x3a, 0x0f,
|
||||
0x9d, 0xc6, 0x7c, 0x3d, 0xf9, 0xf7, 0x6f, 0x9b, 0xfc, 0xb8, 0x07, 0x67, 0x6a, 0x21, 0x13, 0x4c,
|
||||
0x81, 0x9a, 0x68, 0xe0, 0x47, 0x06, 0x19, 0xe4, 0xd9, 0xe5, 0xc5, 0xb9, 0x2e, 0x6c, 0x6c, 0xa9,
|
||||
0x5c, 0x90, 0x87, 0x59, 0x9a, 0x15, 0x81, 0x81, 0x37, 0xcc, 0x83, 0x6e, 0xf7, 0xfe, 0xfe, 0xde,
|
||||
0xb9, 0xdf, 0x77, 0x18, 0x9f, 0x74, 0x7d, 0xd7, 0x75, 0xf1, 0x68, 0x6e, 0x10, 0x79, 0x96, 0x0e,
|
||||
0x0c, 0xbc, 0xff, 0x33, 0x88, 0x2a, 0x85, 0xe8, 0x2f, 0x5d, 0xf7, 0xd0, 0x05, 0x13, 0x2c, 0x7f,
|
||||
0x0c, 0x5e, 0x1d, 0x1d, 0xc1, 0x44, 0x77, 0x08, 0x9d, 0x9c, 0x7d, 0xa1, 0x03, 0x02, 0x1d, 0xf8,
|
||||
0x5f, 0xd9, 0xd1, 0x51, 0x65, 0x15, 0xd2, 0xc1, 0x4b, 0x04, 0xdd, 0x15, 0x03, 0xbd, 0x21, 0x56,
|
||||
0x95, 0x06, 0xc4, 0x75, 0x3c, 0x9b, 0x1c, 0x0d, 0x55, 0xa9, 0xfb, 0xd8, 0xde, 0xbf, 0x3a, 0x38,
|
||||
0x3b, 0xb8, 0xea, 0x9d, 0x1d, 0x5e, 0x79, 0xc7, 0x6f, 0x7d, 0xdb, 0x97, 0xe5, 0x1d, 0x97, 0xf4,
|
||||
0x6d, 0xdf, 0x3b, 0xf3, 0xfa, 0xb5, 0x1e, 0x2c, 0x39, 0x1c, 0x03, 0xa0, 0xef, 0xc2, 0x0c, 0xef,
|
||||
0xf0, 0x6a, 0xff, 0xec, 0xf8, 0xa2, 0x6f, 0xf7, 0xce, 0xb0, 0xf4, 0x73, 0x7c, 0xd6, 0xbf, 0xea,
|
||||
0x01, 0xb2, 0xa3, 0x2b, 0xaf, 0x7f, 0xe6, 0x79, 0x57, 0x47, 0x30, 0x86, 0x05, 0x08, 0xf9, 0x79,
|
||||
0x08, 0x9f, 0xde, 0x7e, 0xbd, 0x18, 0x24, 0xb4, 0xcf, 0x29, 0x6f, 0x38, 0x02, 0xa3, 0xbc, 0xf3,
|
||||
0x33, 0xaa, 0x31, 0xe9, 0x9c, 0xf4, 0xe6, 0x2a, 0xc7, 0x5b, 0x8e, 0x40, 0x30, 0xd5, 0x03, 0xbf,
|
||||
0xab, 0x81, 0xd8, 0xc1, 0x42, 0x60, 0x23, 0xc9, 0x05, 0xef, 0x20, 0x9e, 0xcf, 0xf4, 0x85, 0xa3,
|
||||
0xca, 0xeb, 0xbf, 0xb0, 0x98, 0x3a, 0xca, 0xbf, 0xac, 0xa7, 0xb6, 0xf5, 0x73, 0x17, 0x68, 0x0b,
|
||||
0x6e, 0x87, 0xf1, 0x3c, 0x37, 0x7d, 0x03, 0xd8, 0x6a, 0xdb, 0xf0, 0x57, 0x67, 0xef, 0x58, 0xfb,
|
||||
0x1b, 0x57, 0xdd, 0x92, 0xcf, 0x6f, 0x4f, 0x90, 0x9e, 0x39, 0x39, 0x35, 0xdd, 0xf3, 0x57, 0x32,
|
||||
0x9e, 0x8d, 0x74, 0x6c, 0x29, 0xad, 0x49, 0x55, 0x65, 0x95, 0x61, 0x21, 0x06, 0x11, 0x72, 0x30,
|
||||
0x44, 0x0c, 0xf4, 0xd0, 0x83, 0x89, 0x80, 0xfc, 0x31, 0xe5, 0xef, 0x4e, 0xd6, 0x70, 0x10, 0x29,
|
||||
0x55, 0x9d, 0xdf, 0x44, 0x6c, 0x3d, 0x8f, 0x9b, 0x7e, 0xf9, 0xb5, 0x7e, 0x68, 0x41, 0x82, 0xe4,
|
||||
0xbd, 0x16, 0x46, 0x11, 0xf9, 0x25, 0x2f, 0x74, 0xac, 0x61, 0x59, 0x8e, 0xfa, 0x15, 0x0d, 0x6d,
|
||||
0xd4, 0x73, 0xdd, 0x9f, 0x4a, 0xdd, 0xd4, 0x45, 0x74, 0x7c, 0x60, 0x92, 0x51, 0x63, 0xb0, 0xd1,
|
||||
0xad, 0xee, 0xe7, 0x8c, 0xda, 0x9a, 0x61, 0x1a, 0xfd, 0xe7, 0xe7, 0x8f, 0xbf, 0x98, 0xaa, 0x5e,
|
||||
0x45, 0x83, 0x37, 0xcb, 0xb2, 0x84, 0x6e, 0x0c, 0xae, 0xdf, 0x0c, 0xf5, 0x83, 0x8f, 0x56, 0x42,
|
||||
0x2e, 0x5a, 0xf9, 0x38, 0x9c, 0x8a, 0x64, 0x3e, 0x2e, 0x30, 0x67, 0x32, 0x29, 0xa4, 0xd9, 0x36,
|
||||
0x0a, 0x11, 0x12, 0x72, 0x4c, 0xc7, 0x6d, 0xe3, 0x87, 0x25, 0x77, 0x0a, 0x60, 0x9f, 0x9a, 0x9e,
|
||||
0xb5, 0x32, 0x30, 0x2f, 0x47, 0x98, 0x9b, 0x15, 0x98, 0x42, 0x2d, 0x4c, 0x67, 0x60, 0x8c, 0xa0,
|
||||
0x09, 0xff, 0x25, 0xaf, 0x1c, 0x70, 0x63, 0xd4, 0xe5, 0x83, 0x24, 0x6f, 0x4d, 0xa7, 0x7d, 0xdb,
|
||||
0xd5, 0x04, 0x62, 0x96, 0xef, 0xfc, 0x51, 0xb0, 0xec, 0xb6, 0x71, 0x06, 0xac, 0xe6, 0xc0, 0x29,
|
||||
0x41, 0xc5, 0x2f, 0x1e, 0xe0, 0xad, 0xcb, 0x6f, 0x17, 0xe7, 0x67, 0xe0, 0x03, 0xff, 0x41, 0xe1,
|
||||
0x04, 0x58, 0x08, 0xc8, 0x5e, 0xb1, 0xf3, 0xe7, 0x94, 0xdd, 0xc1, 0x79, 0xe2, 0xc6, 0x5e, 0x62,
|
||||
0x1d, 0x65, 0x60, 0x80, 0x11, 0xa7, 0x78, 0x75, 0x02, 0xa8, 0xba, 0x88, 0xda, 0x58, 0xc1, 0xe9,
|
||||
0x7f, 0x8b, 0xe6, 0xe1, 0x22, 0x86, 0x6d, 0x96, 0x67, 0x41, 0x86, 0x1e, 0x83, 0x4d, 0xa4, 0x72,
|
||||
0xc3, 0xee, 0x17, 0x39, 0xf4, 0xd1, 0x4b, 0xfa, 0x20, 0x6c, 0x83, 0x74, 0x88, 0x21, 0x6d, 0xc3,
|
||||
0xc1, 0xbb, 0x85, 0x39, 0x16, 0x8b, 0x18, 0x70, 0xf3, 0x19, 0x4e, 0x9f, 0xe1, 0xa4, 0xd4, 0x9f,
|
||||
0x0f, 0x82, 0xce, 0x60, 0xb3, 0x53, 0x1a, 0x7f, 0x0a, 0x53, 0xbc, 0x0f, 0xd0, 0x59, 0x05, 0x82,
|
||||
0x22, 0x2d, 0xce, 0x94, 0xd3, 0x71, 0x60, 0x74, 0x81, 0x1c, 0x7b, 0x1b, 0x39, 0x94, 0x73, 0x2c,
|
||||
0xff, 0xd0, 0x16, 0x39, 0xc6, 0x7b, 0xec, 0x1f, 0x10, 0x59, 0xe8, 0x6a, 0x0c, 0x90, 0xcf, 0x92,
|
||||
0x98, 0x41, 0x9b, 0x36, 0x4c, 0x3d, 0x92, 0x19, 0x65, 0x73, 0x61, 0x4a, 0xe6, 0x56, 0xb6, 0x47,
|
||||
0xf7, 0x2d, 0xb9, 0x2a, 0x03, 0xf7, 0x66, 0x1a, 0x9f, 0x3e, 0x7e, 0xbe, 0x84, 0xdd, 0xed, 0x2a,
|
||||
0x39, 0x83, 0x32, 0xa2, 0x80, 0x43, 0x29, 0xcb, 0xbf, 0x33, 0x3e, 0x7b, 0x07, 0x89, 0x45, 0xa9,
|
||||
0x34, 0xa1, 0x76, 0x89, 0x2a, 0xdd, 0x80, 0x63, 0x26, 0x56, 0xd3, 0xb8, 0xbc, 0xf1, 0x35, 0x43,
|
||||
0xcb, 0x7e, 0xe9, 0xad, 0xc2, 0xe2, 0x31, 0x8b, 0xc8, 0xfa, 0x39, 0x12, 0x15, 0x1f, 0xb2, 0x31,
|
||||
0x03, 0x5d, 0x4c, 0xc6, 0xe6, 0xb4, 0x10, 0xc1, 0x9a, 0x7d, 0x06, 0x3b, 0x06, 0x3d, 0x65, 0x35,
|
||||
0xd3, 0xb5, 0x04, 0x7f, 0xac, 0x2c, 0x25, 0xbc, 0x0f, 0x13, 0x41, 0xc6, 0x54, 0x80, 0x32, 0x96,
|
||||
0x71, 0xce, 0xd8, 0x03, 0xf0, 0x3d, 0x43, 0x6e, 0x62, 0x57, 0x5e, 0xd0, 0xa1, 0x15, 0x29, 0x48,
|
||||
0x2a, 0xb5, 0xc6, 0xb4, 0x86, 0x72, 0x4a, 0x79, 0x85, 0x64, 0x9a, 0xea, 0x12, 0x46, 0x38, 0xf2,
|
||||
0x17, 0x42, 0xb0, 0xb0, 0x3a, 0xa0, 0xaf, 0x40, 0x02, 0xe0, 0xa5, 0x56, 0x25, 0x59, 0x29, 0x6c,
|
||||
0x2c, 0xcf, 0xc8, 0xd2, 0x67, 0xb3, 0xd7, 0x00, 0x9b, 0xce, 0x98, 0x20, 0x49, 0x0c, 0xfb, 0x93,
|
||||
0x8c, 0x1f, 0x09, 0x52, 0x0e, 0x19, 0x56, 0x8b, 0xd3, 0xe6, 0xc2, 0x80, 0xbb, 0x7e, 0xf3, 0xa2,
|
||||
0x99, 0x0c, 0xdc, 0x21, 0x96, 0x64, 0xd1, 0x2c, 0xe1, 0x3c, 0x31, 0x14, 0xa3, 0x80, 0x0e, 0xc5,
|
||||
0xde, 0xde, 0xda, 0x41, 0xdc, 0x6a, 0x56, 0x7f, 0x58, 0x02, 0xab, 0xab, 0xb5, 0x55, 0x08, 0x6d,
|
||||
0x15, 0xc3, 0xb5, 0x8c, 0x44, 0x43, 0x46, 0xa0, 0x0c, 0x5c, 0x77, 0x88, 0x52, 0x14, 0x0d, 0x02,
|
||||
0xf2, 0x79, 0x31, 0x85, 0x83, 0x9b, 0x66, 0x5d, 0xb4, 0x59, 0xbf, 0x95, 0x6a, 0xa5, 0x90, 0xe1,
|
||||
0xad, 0x1f, 0x5a, 0x1b, 0x19, 0x73, 0x36, 0x93, 0x07, 0xef, 0x01, 0xb9, 0x85, 0x8d, 0x5e, 0xad,
|
||||
0xb6, 0xb0, 0x34, 0xf2, 0xc0, 0x3f, 0x6c, 0xae, 0x54, 0x72, 0x3f, 0xb8, 0x76, 0xed, 0x7e, 0xf9,
|
||||
0x07, 0x47, 0xae, 0xea, 0xe3, 0x66, 0x55, 0x56, 0x28, 0x44, 0x80, 0x8b, 0xa1, 0x03, 0x2e, 0xa8,
|
||||
0xd9, 0x30, 0x24, 0x54, 0x9e, 0x96, 0x15, 0xc9, 0xfa, 0x39, 0x50, 0x8f, 0x62, 0xd4, 0x42, 0xc3,
|
||||
0x3b, 0x61, 0x08, 0xbd, 0x52, 0xc3, 0xe8, 0x89, 0x7f, 0x70, 0x68, 0xe9, 0x9a, 0x1b, 0xf6, 0x82,
|
||||
0x1f, 0xc0, 0x65, 0x44, 0x92, 0xcd, 0xe9, 0x4a, 0x4d, 0xe0, 0x81, 0xee, 0xc7, 0x6d, 0xc0, 0xf2,
|
||||
0xf9, 0xb0, 0x8e, 0x8c, 0x8d, 0x09, 0x97, 0xa8, 0x5e, 0x2a, 0x6e, 0x92, 0x42, 0xfe, 0x82, 0x80,
|
||||
0x9f, 0x9e, 0x0e, 0x5e, 0x06, 0x01, 0xd5, 0x7c, 0x5b, 0x4b, 0x79, 0x07, 0x70, 0xc7, 0x69, 0xf8,
|
||||
0x65, 0xb5, 0x46, 0x20, 0x10, 0x01, 0xb5, 0x60, 0xbe, 0x91, 0xcd, 0x67, 0x77, 0x90, 0x61, 0x42,
|
||||
0xbc, 0x01, 0x37, 0x04, 0xbd, 0xe2, 0xe9, 0x49, 0x8c, 0x5c, 0xf8, 0xe7, 0x04, 0xe4, 0xf0, 0xf4,
|
||||
0xf4, 0xf2, 0x17, 0x39, 0x0e, 0x0b, 0x7c, 0xc8, 0x04, 0x9d, 0x80, 0xc9, 0x0b, 0xab, 0x81, 0x74,
|
||||
0x85, 0x44, 0xb0, 0xaf, 0x30, 0x03, 0xc7, 0xf4, 0x6b, 0xae, 0x49, 0xea, 0x78, 0x37, 0x28, 0x1d,
|
||||
0x59, 0xad, 0x0b, 0xc2, 0x6b, 0xf7, 0x66, 0xad, 0x57, 0xd7, 0x8e, 0xe3, 0x84, 0x37, 0x43, 0x0a,
|
||||
0x9d, 0x01, 0xee, 0x02, 0x57, 0xbb, 0x04, 0x0a, 0xbf, 0x2a, 0x41, 0xda, 0xf1, 0x00, 0x24, 0xea,
|
||||
0xcc, 0xc2, 0x7c, 0x5d, 0x9a, 0x31, 0x97, 0xb0, 0x3e, 0xc4, 0x9f, 0x71, 0x1a, 0xca, 0x90, 0xbe,
|
||||
0x4d, 0xc1, 0x60, 0x99, 0xd2, 0x88, 0x60, 0x8c, 0x0b, 0xd3, 0xb8, 0xc4, 0x5b, 0x70, 0x7c, 0x17,
|
||||
0x89, 0x82, 0xa9, 0xee, 0x60, 0x21, 0xd8, 0x92, 0x59, 0x52, 0x14, 0xc9, 0x44, 0x29, 0xd9, 0x23,
|
||||
0x9b, 0x73, 0x72, 0xc7, 0xd9, 0x7d, 0x01, 0x12, 0x21, 0xbf, 0xb3, 0x39, 0x29, 0xa6, 0x6c, 0x9e,
|
||||
0xc6, 0x24, 0xe7, 0xec, 0x2e, 0xbc, 0x4b, 0x1f, 0x89, 0x76, 0x40, 0xfa, 0xce, 0x7a, 0x16, 0xc2,
|
||||
0xa6, 0x43, 0x2a, 0x00, 0xcb, 0x64, 0x31, 0xc1, 0x8d, 0x04, 0xc5, 0x97, 0xd7, 0xda, 0x30, 0x21,
|
||||
0xa7, 0x1c, 0x26, 0x8c, 0xf1, 0x82, 0x1e, 0x2f, 0xab, 0xcb, 0x35, 0x15, 0x15, 0x58, 0x91, 0x02,
|
||||
0x69, 0x83, 0x8b, 0x85, 0xb8, 0x44, 0xee, 0x28, 0x80, 0x51, 0x8d, 0x1c, 0xf5, 0x7e, 0x4a, 0x39,
|
||||
0x75, 0xc0, 0x19, 0x5e, 0x20, 0x71, 0xf0, 0x2d, 0x27, 0xc5, 0x15, 0x92, 0x97, 0xe0, 0x1d, 0xcb,
|
||||
0xc9, 0xda, 0xd6, 0xdf, 0x25, 0x8b, 0xa2, 0x9e, 0x8c, 0x6c, 0x1d, 0xae, 0x36, 0x62, 0xe3, 0x41,
|
||||
0xe6, 0xfa, 0x79, 0x04, 0x3a, 0xb3, 0xcd, 0xe1, 0xd6, 0x9d, 0x38, 0x9a, 0xb9, 0x92, 0x37, 0xca,
|
||||
0x0d, 0x0e, 0xe8, 0x11, 0xa6, 0x29, 0x90, 0xba, 0x40, 0xec, 0x4e, 0x52, 0x81, 0x07, 0xcb, 0xe0,
|
||||
0x44, 0x1e, 0xdb, 0x67, 0xd2, 0xd0, 0xbb, 0xff, 0xd4, 0xf8, 0xff, 0x27, 0xfe, 0xa1, 0x0b, 0x5b,
|
||||
0xd6, 0xd2, 0x54, 0x6e, 0xb5, 0x33, 0xd5, 0xca, 0x41, 0x71, 0x70, 0x50, 0x7c, 0xb4, 0xc5, 0xe2,
|
||||
0x87, 0x7c, 0xed, 0xb1, 0x58, 0x50, 0x07, 0xb8, 0xe6, 0x37, 0x76, 0x18, 0xb4, 0x5f, 0x92, 0xea,
|
||||
0x53, 0x66, 0xe8, 0xd4, 0x1e, 0x83, 0x18, 0x7b, 0xdc, 0x0e, 0x55, 0xd1, 0x1d, 0x23, 0x1e, 0x86,
|
||||
0xbf, 0x4a, 0x12, 0x46, 0xe9, 0x18, 0xb2, 0x52, 0x27, 0xbf, 0xd0, 0xc7, 0xc2, 0x64, 0x16, 0x28,
|
||||
0x2f, 0x60, 0xc1, 0xc0, 0x03, 0x21, 0x0d, 0x2b, 0xbc, 0xf2, 0xf8, 0xa1, 0xbc, 0x47, 0x21, 0x6b,
|
||||
0x7b, 0xe0, 0x9d, 0x4d, 0x76, 0x9d, 0xdd, 0xac, 0x6f, 0x9c, 0x76, 0x10, 0x93, 0xd6, 0x89, 0x29,
|
||||
0xf3, 0x54, 0x20, 0xaa, 0xba, 0x90, 0xd9, 0x31, 0x4f, 0xdd, 0xb3, 0xac, 0x5f, 0x49, 0x21, 0x1f,
|
||||
0x49, 0x9b, 0x8f, 0xda, 0xf0, 0xfa, 0xb2, 0x64, 0x03, 0x61, 0x75, 0x73, 0x22, 0x9f, 0x32, 0xe8,
|
||||
0x27, 0x53, 0x88, 0xaf, 0x70, 0xf0, 0x15, 0x21, 0x24, 0x96, 0xeb, 0x7a, 0x05, 0x38, 0xa4, 0x66,
|
||||
0x26, 0x05, 0x8e, 0x1c, 0x2f, 0x03, 0xb6, 0x95, 0x0f, 0x8c, 0xcf, 0x14, 0xdf, 0x87, 0xa8, 0x17,
|
||||
0x33, 0xb5, 0x97, 0x2a, 0xf8, 0xbc, 0x83, 0x00, 0x7e, 0xbc, 0x41, 0x59, 0x9f, 0x31, 0xf5, 0x73,
|
||||
0x00, 0xbb, 0x68, 0x33, 0x51, 0x51, 0x54, 0xb2, 0x10, 0xed, 0x64, 0x21, 0x92, 0x2c, 0x94, 0xef,
|
||||
0xbf, 0x90, 0x85, 0x68, 0x1b, 0x0b, 0x48, 0x38, 0xe4, 0x13, 0x78, 0x67, 0x2f, 0xe9, 0x8f, 0x76,
|
||||
0x94, 0x3f, 0x4e, 0x59, 0xfe, 0xa8, 0xa8, 0x85, 0x1c, 0x73, 0x55, 0x9a, 0x1e, 0xb2, 0xa0, 0x98,
|
||||
0xb9, 0x85, 0xbc, 0xa7, 0xc9, 0x01, 0xa2, 0x84, 0xbe, 0x16, 0x07, 0x15, 0x41, 0x78, 0xaf, 0xb2,
|
||||
0x5d, 0xd5, 0xaa, 0x07, 0x85, 0xa8, 0x12, 0xa0, 0xf3, 0x79, 0x60, 0x18, 0x95, 0x01, 0x50, 0x30,
|
||||
0x00, 0x3a, 0x42, 0x75, 0x2a, 0x15, 0x1f, 0x32, 0x5c, 0xdf, 0xaa, 0xc2, 0x2f, 0x8e, 0xa0, 0x47,
|
||||
0x46, 0x5f, 0xaf, 0xd4, 0x0f, 0x6f, 0x4b, 0x95, 0xaf, 0x57, 0x63, 0x7b, 0xde, 0x8d, 0x95, 0x43,
|
||||
0xc6, 0xfc, 0xea, 0x87, 0x65, 0xd5, 0x81, 0x95, 0x6c, 0xd1, 0x05, 0x1f, 0xfc, 0xa3, 0xe7, 0xba,
|
||||
0xab, 0xbf, 0xd9, 0xe4, 0x56, 0x5e, 0xb7, 0x2e, 0x11, 0x4e, 0xbe, 0xee, 0xad, 0xc3, 0x62, 0xed,
|
||||
0x5b, 0x7f, 0xf9, 0x8d, 0xaf, 0x7d, 0xfc, 0xf2, 0xac, 0x0d, 0x5c, 0x98, 0x84, 0xfb, 0x10, 0xa7,
|
||||
0x83, 0x5c, 0x27, 0xe7, 0xae, 0xdd, 0xf1, 0xb7, 0xdd, 0x2b, 0x7d, 0x98, 0x81, 0xf3, 0x0c, 0x6e,
|
||||
0x77, 0xd5, 0xeb, 0x71, 0xa9, 0x7c, 0x65, 0xdd, 0x96, 0x46, 0xaa, 0x6e, 0xc6, 0x36, 0xde, 0x2f,
|
||||
0x82, 0xb6, 0x95, 0x46, 0x1b, 0x04, 0xd9, 0x4f, 0x49, 0xeb, 0xfa, 0x68, 0x10, 0xe9, 0x75, 0xd5,
|
||||
0xf3, 0xb9, 0x73, 0x3c, 0x7f, 0x1b, 0xf2, 0x3d, 0x86, 0xcd, 0x5f, 0x06, 0x32, 0x25, 0x7b, 0xfd,
|
||||
0xba, 0x39, 0x29, 0xc2, 0xfb, 0xed, 0xd6, 0xfd, 0x54, 0xd8, 0xbe, 0xcb, 0x6a, 0x2c, 0x4a, 0x1b,
|
||||
0xa3, 0xa1, 0x05, 0x11, 0xaa, 0xd9, 0x51, 0xab, 0xc2, 0xd5, 0x55, 0x90, 0x62, 0x05, 0x71, 0xe3,
|
||||
0xe6, 0xe8, 0x8d, 0xbc, 0x15, 0xbd, 0x4e, 0xe2, 0x7f, 0x36, 0xaf, 0x53, 0x6f, 0xde, 0xac, 0x0f,
|
||||
0x47, 0x98, 0x92, 0xd3, 0x5d, 0x07, 0x46, 0x7d, 0xc5, 0xb7, 0x89, 0x18, 0x8d, 0xa5, 0x86, 0x57,
|
||||
0x57, 0xa3, 0x6e, 0x6c, 0xd2, 0x1a, 0x68, 0xd4, 0x79, 0x1b, 0xc3, 0x8d, 0x32, 0xd6, 0x77, 0x11,
|
||||
0x34, 0x54, 0x19, 0x67, 0x2d, 0xcf, 0x9a, 0xd4, 0x42, 0x8f, 0xb1, 0x47, 0xad, 0x6d, 0xc5, 0xc4,
|
||||
0xd2, 0xc3, 0x1a, 0x96, 0xd5, 0x32, 0x0a, 0xb1, 0xcd, 0x22, 0x20, 0xaf, 0xaa, 0xb2, 0xaa, 0xad,
|
||||
0x46, 0x21, 0x94, 0x45, 0x30, 0xf9, 0x98, 0x40, 0x7d, 0x28, 0xdd, 0x67, 0x01, 0x68, 0xfe, 0x25,
|
||||
0x3b, 0xa3, 0x0f, 0xa6, 0xea, 0xb6, 0x85, 0xd4, 0x78, 0xf9, 0xb3, 0x7f, 0x63, 0x29, 0xad, 0x96,
|
||||
0x2f, 0x31, 0xb8, 0xcd, 0xaa, 0x93, 0x54, 0x11, 0x71, 0x06, 0x92, 0x75, 0x6d, 0xb7, 0xbe, 0xc7,
|
||||
0x15, 0x2a, 0x48, 0x5b, 0x6c, 0xbe, 0x0e, 0x54, 0x26, 0x1d, 0x8d, 0xbc, 0x1e, 0xa4, 0x60, 0xa3,
|
||||
0xa3, 0x27, 0xde, 0x7c, 0xb0, 0xa0, 0x4f, 0x37, 0x48, 0x96, 0xe1, 0x1a, 0x58, 0x37, 0x04, 0x37,
|
||||
0x67, 0xf6, 0x3a, 0xac, 0xcc, 0xf5, 0xf6, 0xd8, 0xaa, 0x3a, 0xc8, 0x94, 0xab, 0xef, 0x3a, 0x40,
|
||||
0xe2, 0x91, 0xff, 0x19, 0x20, 0x38, 0x49, 0x26, 0x7f, 0xd2, 0x12, 0xac, 0x71, 0xa3, 0xba, 0xf3,
|
||||
0xe6, 0xbb, 0xf1, 0xbc, 0x45, 0x3f, 0x65, 0x71, 0xf5, 0x2f, 0x3e, 0xf3, 0xd8, 0xa8, 0xb7, 0xd4,
|
||||
0xff, 0x5f, 0x8d, 0xae, 0xfa, 0x5f, 0x63, 0xfe, 0x17, 0x66, 0xba, 0xb1, 0x98, 0x32, 0x33, 0x00,
|
||||
0x00
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xbd, 0x3b, 0xfd, 0x77, 0xdb, 0x36,
|
||||
0x92, 0xbf, 0xe7, 0xaf, 0x40, 0x98, 0xd4, 0x21, 0x6b, 0x8a, 0x22, 0x29, 0x5b, 0xb2, 0x25, 0xd1,
|
||||
0xdd, 0xd4, 0xc9, 0x9e, 0x73, 0xcf, 0x6e, 0xf2, 0x36, 0x3e, 0xb7, 0x3d, 0x9f, 0xf7, 0x99, 0x26,
|
||||
0x21, 0x89, 0x0d, 0x45, 0x70, 0x41, 0x48, 0xb6, 0x2b, 0xeb, 0x7f, 0xbf, 0x19, 0x00, 0xa4, 0x48,
|
||||
0x7d, 0x38, 0xc9, 0x75, 0xdf, 0xf5, 0xf9, 0x45, 0x20, 0x30, 0x18, 0x0c, 0x06, 0xf3, 0x89, 0x41,
|
||||
0x87, 0x2f, 0xdf, 0x7d, 0x3c, 0xbd, 0xfc, 0xfd, 0xd3, 0x7b, 0x32, 0x11, 0xd3, 0xf4, 0x84, 0x0c,
|
||||
0xcb, 0x1f, 0x1a, 0xc6, 0xf0, 0x33, 0xa5, 0x22, 0x24, 0x59, 0x38, 0xa5, 0x81, 0x31, 0x4f, 0xe8,
|
||||
0x7d, 0xce, 0xb8, 0x30, 0xc8, 0x8b, 0x88, 0x65, 0x82, 0x66, 0x22, 0x30, 0xee, 0x93, 0x58, 0x4c,
|
||||
0x82, 0x98, 0xce, 0x93, 0x88, 0xb6, 0xe4, 0x87, 0x9d, 0x64, 0x89, 0x48, 0xc2, 0xb4, 0x55, 0x44,
|
||||
0x61, 0x4a, 0x03, 0xcf, 0x9e, 0x42, 0xc7, 0x74, 0x36, 0x2d, 0xbf, 0x8d, 0x12, 0xe9, 0x8b, 0x89,
|
||||
0x10, 0x79, 0x8b, 0xfe, 0x6b, 0x96, 0xcc, 0x03, 0xe3, 0x34, 0x8c, 0x26, 0xb4, 0x75, 0x0a, 0x68,
|
||||
0x39, 0x4b, 0x0d, 0x52, 0xe1, 0xcf, 0x58, 0x2b, 0xc2, 0x21, 0x9b, 0x40, 0xab, 0x10, 0x8c, 0x43,
|
||||
0x6b, 0x3a, 0x2b, 0x44, 0x8b, 0xd3, 0x79, 0x98, 0x26, 0x71, 0x28, 0xe8, 0x76, 0x84, 0x9f, 0x78,
|
||||
0x38, 0x9e, 0x86, 0x5b, 0x30, 0x55, 0xe0, 0x75, 0xe8, 0xf7, 0x0f, 0x79, 0xc2, 0x69, 0x51, 0x03,
|
||||
0x77, 0x01, 0xee, 0xc5, 0x50, 0x24, 0x22, 0xa5, 0x27, 0xbf, 0x9e, 0xbf, 0x7f, 0x47, 0x4e, 0x61,
|
||||
0x55, 0x36, 0x25, 0x9f, 0x60, 0x13, 0x42, 0x50, 0xf2, 0x3e, 0x4e, 0x80, 0x9a, 0x61, 0x5b, 0x41,
|
||||
0x90, 0x61, 0x11, 0xf1, 0x24, 0x17, 0x44, 0x3c, 0xe6, 0xc0, 0x29, 0x41, 0x1f, 0x44, 0xfb, 0x8f,
|
||||
0x70, 0x1e, 0xaa, 0x5e, 0xe3, 0xe4, 0xc5, 0x68, 0x96, 0x45, 0x22, 0x61, 0x19, 0x19, 0x7f, 0x88,
|
||||
0x4d, 0x6a, 0x2d, 0x38, 0x15, 0x33, 0x9e, 0x91, 0xd8, 0x19, 0x53, 0xf1, 0x3e, 0xa5, 0x53, 0x58,
|
||||
0xf3, 0xe7, 0x47, 0x39, 0xb4, 0xac, 0x40, 0xa3, 0xf7, 0x0d, 0xc8, 0x88, 0x53, 0xd8, 0xad, 0x06,
|
||||
0x46, 0xc0, 0x79, 0xc8, 0x49, 0x1c, 0xc4, 0x2c, 0x9a, 0x61, 0xcf, 0x8b, 0x61, 0x5b, 0xad, 0x86,
|
||||
0xc4, 0x88, 0x47, 0x20, 0xea, 0xc5, 0x1d, 0x8b, 0x1f, 0x17, 0x23, 0xd8, 0x51, 0x6b, 0x14, 0x4e,
|
||||
0x93, 0xf4, 0xb1, 0xff, 0x96, 0xc3, 0xc1, 0xd8, 0x45, 0x98, 0x15, 0xad, 0x82, 0xf2, 0x64, 0x34,
|
||||
0xb8, 0x0b, 0xa3, 0x2f, 0x63, 0xce, 0x66, 0x59, 0xdc, 0x8a, 0x58, 0xca, 0x78, 0xff, 0x95, 0xe7,
|
||||
0x79, 0x03, 0x39, 0xa5, 0x48, 0xfe, 0xa4, 0x7d, 0xaf, 0x9b, 0x3f, 0x0c, 0xf4, 0x48, 0x1c, 0xc7,
|
||||
0x83, 0x69, 0xc8, 0xc7, 0x49, 0xd6, 0x77, 0x89, 0xe7, 0xc2, 0x40, 0x9a, 0x64, 0xb4, 0x35, 0xa1,
|
||||
0xc9, 0x78, 0x22, 0xfa, 0xce, 0xe1, 0xf2, 0x55, 0x1e, 0x72, 0x20, 0xa4, 0x85, 0x3c, 0x0c, 0x61,
|
||||
0x88, 0x2f, 0x72, 0x56, 0x24, 0xb8, 0x95, 0x3e, 0xa7, 0x69, 0x28, 0x92, 0x39, 0x1d, 0x48, 0x11,
|
||||
0xe9, 0x7b, 0xae, 0xfb, 0xc3, 0x40, 0x4f, 0xf4, 0x01, 0xd3, 0xf2, 0xd5, 0x1d, 0x13, 0xc0, 0xdd,
|
||||
0xd3, 0xcd, 0x99, 0xe1, 0x5d, 0xc1, 0xd2, 0x99, 0xa0, 0x7a, 0xe9, 0x96, 0x60, 0x79, 0xff, 0x50,
|
||||
0x4e, 0x19, 0xf3, 0x30, 0x4e, 0x70, 0xbd, 0x3b, 0xf6, 0xb0, 0xd8, 0xc4, 0x8b, 0xed, 0xa5, 0x23,
|
||||
0x69, 0x6f, 0xc1, 0xdc, 0x2f, 0x94, 0xdb, 0xfa, 0x2b, 0x4f, 0x22, 0xf8, 0xd2, 0x9d, 0x5b, 0x56,
|
||||
0xba, 0x63, 0x3c, 0x86, 0x71, 0x44, 0x3f, 0x2b, 0xfa, 0x1d, 0xd8, 0xe8, 0x06, 0x9b, 0x8a, 0x24,
|
||||
0x9d, 0x53, 0xae, 0x21, 0xfb, 0x7e, 0xfe, 0x40, 0x60, 0x6e, 0x12, 0x13, 0x3e, 0xbe, 0x0b, 0xcd,
|
||||
0xee, 0x91, 0xad, 0xfe, 0x9c, 0x43, 0x6b, 0xf0, 0x67, 0x2b, 0xc9, 0x62, 0xfa, 0xd0, 0xf7, 0x9b,
|
||||
0xb4, 0x2c, 0x34, 0x95, 0x1d, 0xe4, 0xa3, 0x22, 0xbe, 0x07, 0x2d, 0xb5, 0xbb, 0x1f, 0x06, 0x82,
|
||||
0xc3, 0x19, 0x8d, 0x18, 0x9f, 0xf6, 0x65, 0x0b, 0x98, 0x47, 0x7f, 0x37, 0x5b, 0x30, 0x62, 0x01,
|
||||
0xc8, 0x2c, 0x9a, 0xb4, 0x42, 0x29, 0x22, 0xfd, 0x8c, 0x65, 0x74, 0xb9, 0x75, 0x5b, 0x1a, 0x7f,
|
||||
0x6f, 0x03, 0xbd, 0x77, 0x88, 0x7c, 0x89, 0x29, 0x88, 0x31, 0xdd, 0xcd, 0x03, 0x3d, 0xfd, 0xb0,
|
||||
0x9a, 0x8e, 0xad, 0x6f, 0x60, 0xcc, 0xab, 0xd1, 0x68, 0x54, 0xb2, 0xa5, 0x53, 0xb1, 0xe5, 0xd5,
|
||||
0xf1, 0x9d, 0x7f, 0xe4, 0x1f, 0xc9, 0xf5, 0x7d, 0x1f, 0xf6, 0xb7, 0xc1, 0x15, 0x45, 0xfc, 0x6e,
|
||||
0x42, 0xbc, 0x8a, 0x10, 0xaf, 0x22, 0x44, 0x36, 0xcb, 0x2d, 0x55, 0x28, 0xbd, 0x92, 0xcc, 0x9a,
|
||||
0x40, 0x6f, 0x15, 0xf3, 0xa5, 0x73, 0x37, 0x03, 0xa1, 0xcb, 0xa2, 0x34, 0x2c, 0x8a, 0x45, 0x1e,
|
||||
0xc6, 0x71, 0x92, 0x8d, 0xfb, 0x6e, 0x25, 0xe3, 0x03, 0x38, 0x61, 0x91, 0x80, 0xd1, 0x6a, 0x81,
|
||||
0xa1, 0x19, 0x67, 0x7d, 0x25, 0xa2, 0x3b, 0x70, 0xad, 0x0b, 0x30, 0x29, 0xf2, 0x30, 0x5b, 0xc4,
|
||||
0x49, 0x91, 0xa7, 0xe1, 0x63, 0x3f, 0xc9, 0xa4, 0xaa, 0x8c, 0x52, 0xfa, 0x30, 0x90, 0xc8, 0x5a,
|
||||
0x89, 0xa0, 0xd3, 0xa2, 0x1f, 0x81, 0xf8, 0x82, 0x18, 0xd5, 0x58, 0x57, 0x53, 0x3d, 0x90, 0xaa,
|
||||
0x75, 0x12, 0xa6, 0x49, 0x1c, 0xa7, 0x74, 0xf9, 0x2a, 0xc9, 0x46, 0xac, 0x42, 0x6e, 0x18, 0x03,
|
||||
0xb4, 0x37, 0x1a, 0xe4, 0xab, 0x28, 0x37, 0x75, 0xb2, 0xa6, 0x59, 0x1b, 0x6a, 0x0d, 0x5c, 0xba,
|
||||
0xe7, 0x61, 0x5e, 0xd7, 0xaf, 0xca, 0x06, 0x84, 0x33, 0xc1, 0x96, 0x7f, 0x9b, 0xd2, 0x38, 0x09,
|
||||
0x89, 0x09, 0x56, 0x5e, 0xd9, 0xff, 0xfe, 0x91, 0x0b, 0x48, 0xac, 0x45, 0x7d, 0x9e, 0xec, 0x5a,
|
||||
0x2e, 0x9d, 0x5c, 0x19, 0xcf, 0x45, 0x5d, 0xf5, 0xcb, 0xce, 0xff, 0xd0, 0xea, 0x5c, 0x2c, 0x90,
|
||||
0x4d, 0x70, 0x8c, 0x35, 0xa0, 0x4d, 0xc9, 0xab, 0xa6, 0x15, 0x17, 0xc0, 0xef, 0xc5, 0x9a, 0x71,
|
||||
0xa8, 0x99, 0x19, 0x09, 0x78, 0xc9, 0xf2, 0x72, 0xcd, 0x51, 0xa2, 0x0c, 0x14, 0xac, 0xf4, 0x17,
|
||||
0xd9, 0xb6, 0xc6, 0x26, 0x58, 0xa6, 0xdc, 0xc2, 0x27, 0x69, 0x07, 0xab, 0x03, 0xda, 0x75, 0xec,
|
||||
0x5b, 0x28, 0x5a, 0x3f, 0x8a, 0x7f, 0x2b, 0x85, 0x4a, 0xdc, 0x8b, 0x77, 0xc9, 0x7c, 0xab, 0x60,
|
||||
0xea, 0xb5, 0x53, 0x3a, 0x6a, 0xe8, 0xbd, 0x3c, 0x23, 0x38, 0x63, 0xf1, 0x19, 0x24, 0xda, 0x76,
|
||||
0x0a, 0x9a, 0xc5, 0xd8, 0x5a, 0x44, 0x33, 0x5e, 0x00, 0x25, 0x39, 0x4b, 0x90, 0xae, 0xe5, 0xc4,
|
||||
0x5b, 0xd4, 0xe8, 0x71, 0xba, 0x9c, 0x4e, 0x97, 0xe8, 0x92, 0xa4, 0x27, 0x22, 0xc3, 0xb6, 0x0e,
|
||||
0x27, 0xd0, 0x25, 0xc1, 0x4f, 0x9c, 0xcc, 0x49, 0x12, 0x43, 0xf8, 0x00, 0x32, 0x02, 0x4e, 0x17,
|
||||
0x35, 0x50, 0x7f, 0xe8, 0xc1, 0x17, 0x72, 0x62, 0x60, 0x34, 0x78, 0xf8, 0x07, 0xb8, 0xe0, 0x64,
|
||||
0xf4, 0x58, 0x72, 0x4b, 0xb3, 0x04, 0xa7, 0x4c, 0xbc, 0xed, 0x33, 0x36, 0xb9, 0x8e, 0xd0, 0xc5,
|
||||
0x7c, 0x5c, 0x81, 0xab, 0x5d, 0x76, 0xd0, 0xcf, 0x95, 0x26, 0x19, 0xdb, 0x9a, 0x19, 0x5c, 0xf6,
|
||||
0x40, 0x87, 0x41, 0x30, 0xfa, 0xf9, 0x99, 0x3d, 0x40, 0x64, 0x40, 0x5c, 0xd2, 0xf1, 0xe1, 0xcf,
|
||||
0x38, 0x19, 0xe6, 0xa1, 0x98, 0x90, 0x17, 0xa3, 0x24, 0x4d, 0x03, 0xe3, 0x95, 0xeb, 0x76, 0xe0,
|
||||
0x58, 0x0c, 0xf0, 0xc9, 0xc6, 0x45, 0x97, 0xf8, 0xfe, 0xe4, 0x68, 0x7e, 0x70, 0xd6, 0xfd, 0xf3,
|
||||
0xc2, 0x3b, 0x20, 0xde, 0xc1, 0xe4, 0x60, 0x7e, 0x34, 0x69, 0x1d, 0xc0, 0xd7, 0x11, 0x38, 0xcf,
|
||||
0xea, 0xcb, 0xf7, 0x49, 0x17, 0xe1, 0x26, 0xad, 0xa3, 0x3f, 0x8d, 0xf6, 0x09, 0x30, 0x6c, 0x3e,
|
||||
0x3e, 0x79, 0x01, 0x24, 0x02, 0x8b, 0x25, 0x87, 0x90, 0x6f, 0xc6, 0xb3, 0x11, 0x08, 0x82, 0x4a,
|
||||
0x0e, 0x7b, 0xf8, 0x2f, 0x30, 0xaf, 0x64, 0x21, 0x4e, 0x5f, 0x77, 0xc9, 0x46, 0x8d, 0xf9, 0x75,
|
||||
0x07, 0x0a, 0x7b, 0xd1, 0x53, 0xeb, 0x18, 0xbe, 0xef, 0x10, 0x4a, 0xbc, 0xa5, 0x66, 0x62, 0x9c,
|
||||
0xa8, 0x4e, 0xb6, 0xae, 0xab, 0x6b, 0x90, 0xa0, 0x9a, 0x95, 0x00, 0xe8, 0x4f, 0xd8, 0xff, 0xe9,
|
||||
0x8c, 0x23, 0xdd, 0xe9, 0x23, 0x49, 0x32, 0x32, 0x2b, 0x28, 0x89, 0xd4, 0xde, 0x4b, 0x44, 0x64,
|
||||
0x8d, 0xda, 0xbf, 0x4e, 0x34, 0x9a, 0x54, 0xb9, 0x72, 0x0a, 0x9e, 0x88, 0x40, 0xf4, 0x25, 0x26,
|
||||
0x94, 0x94, 0x1c, 0x22, 0x54, 0xf2, 0x9a, 0x08, 0x46, 0xc0, 0x4d, 0x90, 0x8c, 0xde, 0x13, 0xa9,
|
||||
0x87, 0xa4, 0x00, 0xef, 0x06, 0x81, 0x05, 0x02, 0xab, 0x19, 0xb2, 0x9b, 0xc6, 0x04, 0x58, 0x4a,
|
||||
0xee, 0x68, 0xca, 0xee, 0x65, 0xaf, 0x02, 0xc3, 0xe9, 0xd1, 0x24, 0xcc, 0xc6, 0x94, 0x24, 0xa2,
|
||||
0x50, 0xa0, 0x8e, 0x5e, 0x10, 0xa1, 0x9a, 0xf3, 0xc0, 0x9b, 0x81, 0xe5, 0xc7, 0x55, 0xcd, 0x30,
|
||||
0x8b, 0x31, 0x30, 0x1d, 0x25, 0x7c, 0x6a, 0x21, 0x12, 0xe5, 0xbc, 0x1d, 0xf2, 0x31, 0x8b, 0x28,
|
||||
0x19, 0x41, 0x78, 0x5d, 0x4c, 0x68, 0x6c, 0x03, 0x17, 0x4b, 0x4c, 0x21, 0xe7, 0x88, 0x21, 0xc2,
|
||||
0x6d, 0x30, 0x32, 0xcb, 0x53, 0x16, 0xc6, 0x80, 0x10, 0xda, 0x38, 0x1a, 0xd3, 0x22, 0xc1, 0xb5,
|
||||
0x8a, 0x94, 0x09, 0x87, 0x5c, 0x32, 0xb9, 0x3b, 0x42, 0x1f, 0x12, 0xe0, 0x51, 0x36, 0x2e, 0x79,
|
||||
0x5c, 0xc7, 0x97, 0xd3, 0x2c, 0x4a, 0x52, 0x89, 0xd0, 0x81, 0xa8, 0x78, 0x93, 0xe9, 0xdf, 0xcf,
|
||||
0x73, 0x29, 0x9d, 0x85, 0x00, 0x43, 0x15, 0x7d, 0xaa, 0xe4, 0xe5, 0x2b, 0xe2, 0x82, 0xe0, 0x3b,
|
||||
0x45, 0xe6, 0xed, 0x3c, 0x4c, 0xd2, 0xf0, 0x2e, 0x05, 0x6e, 0x4b, 0xac, 0x5f, 0x93, 0x15, 0xf9,
|
||||
0x33, 0x6c, 0x6b, 0x83, 0xa4, 0xc3, 0xf7, 0x17, 0xbb, 0xe2, 0x77, 0x8c, 0xb5, 0x4b, 0x69, 0x40,
|
||||
0x2b, 0x80, 0x61, 0x7c, 0x53, 0x81, 0x2c, 0x3b, 0x82, 0x15, 0xa3, 0xa0, 0xe5, 0xd9, 0xf9, 0xc3,
|
||||
0x29, 0x4b, 0x83, 0xc5, 0xd2, 0x16, 0xfa, 0x97, 0xd3, 0x48, 0x04, 0xb5, 0xe9, 0x18, 0xf5, 0xff,
|
||||
0x8c, 0x21, 0x04, 0xf0, 0x1b, 0xce, 0x1f, 0x3a, 0xff, 0x01, 0x10, 0xa6, 0x65, 0x97, 0x30, 0xe7,
|
||||
0x34, 0x1b, 0x43, 0x5e, 0x85, 0xf3, 0x1c, 0x95, 0x55, 0x4d, 0x3f, 0x8e, 0x46, 0x45, 0x70, 0x01,
|
||||
0xf6, 0xc6, 0x91, 0xc1, 0x87, 0xd9, 0x04, 0x6d, 0xfb, 0x87, 0xdd, 0xb6, 0x6f, 0xb5, 0x0e, 0x6d,
|
||||
0xbd, 0xed, 0xb7, 0x9c, 0x87, 0x8f, 0xc1, 0xf5, 0x4d, 0xf9, 0xfd, 0x0b, 0xa6, 0x70, 0xf0, 0x09,
|
||||
0xf6, 0xe5, 0x73, 0x38, 0xa7, 0xc1, 0x1b, 0x69, 0x05, 0x1b, 0x46, 0xd0, 0x3f, 0x5c, 0x19, 0x41,
|
||||
0x6c, 0xaf, 0xd9, 0x3c, 0xff, 0x00, 0xfe, 0x4a, 0x9b, 0x27, 0x4d, 0x1e, 0x7a, 0x21, 0x69, 0xed,
|
||||
0x7c, 0xdf, 0xf6, 0xfc, 0xb7, 0x9e, 0x6b, 0x7b, 0x08, 0x08, 0x3f, 0xc4, 0xf3, 0x6d, 0xbf, 0xd9,
|
||||
0xb3, 0x15, 0xa4, 0x09, 0x81, 0x20, 0x17, 0x3d, 0xf8, 0xe7, 0x1c, 0xc6, 0xbc, 0xde, 0x95, 0x77,
|
||||
0x70, 0xe6, 0x75, 0xaf, 0x3c, 0xf7, 0xcc, 0xf3, 0xaf, 0x7a, 0xe7, 0x38, 0xf0, 0xdf, 0x95, 0x8d,
|
||||
0x7c, 0x83, 0x3b, 0x41, 0x13, 0xf8, 0xef, 0xdd, 0x09, 0x12, 0x75, 0xda, 0x75, 0x0e, 0x7a, 0xb6,
|
||||
0x0f, 0x14, 0x63, 0x43, 0x12, 0x7e, 0x8a, 0xf4, 0x38, 0x87, 0x1d, 0xa2, 0x86, 0x7c, 0xb5, 0xbf,
|
||||
0x53, 0xd9, 0x87, 0x9f, 0x7e, 0x39, 0xee, 0x2b, 0x68, 0x3d, 0x55, 0x8f, 0x4b, 0xe8, 0x0b, 0xef,
|
||||
0xd0, 0xf1, 0xec, 0x9e, 0xe3, 0xf6, 0x4e, 0xa1, 0xe5, 0x1f, 0xc8, 0x26, 0x81, 0x66, 0xe7, 0x08,
|
||||
0x9a, 0x9e, 0x8f, 0xcd, 0x43, 0x68, 0xf9, 0x9d, 0x73, 0xaf, 0xeb, 0xf4, 0x7a, 0xf6, 0x91, 0x73,
|
||||
0x08, 0x0b, 0xc0, 0x4f, 0x0f, 0xc6, 0x7a, 0xf6, 0xb1, 0x04, 0x97, 0x23, 0xc7, 0x8e, 0x7f, 0x74,
|
||||
0x0e, 0xe0, 0xd0, 0xf4, 0x5c, 0xd9, 0xee, 0x00, 0x10, 0x40, 0xe2, 0xdc, 0x03, 0x6c, 0x22, 0x9a,
|
||||
0x53, 0x68, 0x1e, 0xf9, 0x1a, 0xf7, 0x81, 0x73, 0xdc, 0xad, 0x56, 0x54, 0x64, 0x5c, 0xc0, 0x2c,
|
||||
0xaf, 0x03, 0xb3, 0x8e, 0x3c, 0x44, 0xe6, 0x1d, 0x23, 0xb2, 0xa3, 0xde, 0xf9, 0x31, 0xf6, 0xc2,
|
||||
0x42, 0xc7, 0x9d, 0x33, 0x04, 0xbb, 0x42, 0x34, 0xbd, 0xf3, 0x15, 0x70, 0xed, 0x0c, 0x06, 0x55,
|
||||
0xae, 0x0a, 0x92, 0xfa, 0x71, 0x64, 0x62, 0xb6, 0xfa, 0xff, 0x26, 0xe9, 0xb5, 0x44, 0x39, 0x4d,
|
||||
0xbe, 0x7c, 0xcc, 0xca, 0xe8, 0x4b, 0x25, 0xcd, 0x53, 0x36, 0xa7, 0x97, 0x3c, 0x2c, 0x26, 0x51,
|
||||
0x98, 0x41, 0x8f, 0x0d, 0x76, 0xfb, 0xd4, 0xac, 0x21, 0xa5, 0x0e, 0x83, 0x65, 0xa8, 0xf8, 0xad,
|
||||
0xdd, 0x44, 0xff, 0x23, 0xa0, 0xb7, 0x6a, 0x49, 0xb8, 0x9c, 0x47, 0x6d, 0x11, 0x18, 0x86, 0xb5,
|
||||
0x00, 0x4d, 0x22, 0x1c, 0x35, 0x9c, 0x05, 0x2f, 0x3d, 0x08, 0xc5, 0xb2, 0x42, 0x90, 0xb0, 0xb1,
|
||||
0xdd, 0x7f, 0xcd, 0x28, 0x7f, 0xfc, 0x0c, 0xf6, 0x39, 0x02, 0xcb, 0xfd, 0x36, 0x4d, 0x4d, 0xa3,
|
||||
0x91, 0xf6, 0x19, 0xd6, 0x20, 0x19, 0x99, 0xa1, 0x03, 0xa9, 0xdd, 0xfb, 0x30, 0x9a, 0x98, 0xa6,
|
||||
0xb0, 0xb9, 0x15, 0x9c, 0x2c, 0x04, 0xf2, 0xe9, 0xad, 0x10, 0x3c, 0x81, 0x20, 0x8d, 0x9a, 0x46,
|
||||
0x1c, 0x8a, 0xb0, 0x25, 0xf8, 0x8c, 0x42, 0x50, 0x67, 0x58, 0x41, 0x40, 0xf7, 0xf6, 0x4c, 0x58,
|
||||
0xd3, 0xb5, 0x96, 0xb0, 0x13, 0x27, 0x95, 0x94, 0x9e, 0x78, 0xbd, 0xb2, 0xd7, 0x66, 0x96, 0xba,
|
||||
0x26, 0x40, 0xec, 0xf4, 0xc4, 0xdd, 0xdb, 0xa3, 0x43, 0xff, 0xf0, 0xd0, 0x82, 0x65, 0x4c, 0xb4,
|
||||
0x5c, 0x59, 0xe0, 0x0d, 0xb2, 0x61, 0xe0, 0x75, 0xf7, 0xf6, 0xf8, 0x10, 0x9a, 0xfb, 0xfb, 0x96,
|
||||
0x34, 0x60, 0x92, 0xb4, 0x0b, 0x45, 0xd9, 0x7e, 0x66, 0x3d, 0x3d, 0x99, 0x3c, 0xc8, 0xac, 0x01,
|
||||
0x4d, 0xc1, 0xe3, 0xf2, 0x80, 0x0e, 0x0c, 0x23, 0x08, 0x04, 0x2c, 0x02, 0xbb, 0x7f, 0x65, 0xec,
|
||||
0x9b, 0x5e, 0xb7, 0xd7, 0xeb, 0xf9, 0xde, 0xe1, 0x8f, 0x8a, 0x8f, 0xe0, 0x96, 0xd8, 0xd4, 0xb4,
|
||||
0x86, 0x43, 0xd7, 0x72, 0x04, 0xfb, 0x0c, 0xc4, 0x67, 0x63, 0x80, 0xb1, 0x20, 0x14, 0x8e, 0x3f,
|
||||
0x8b, 0x90, 0x0b, 0xb3, 0x6b, 0x1b, 0xae, 0x61, 0x59, 0x9a, 0x53, 0x69, 0x10, 0xbd, 0x37, 0x0d,
|
||||
0x0c, 0x57, 0x80, 0x0d, 0xa9, 0x23, 0x2d, 0xb8, 0x34, 0x4b, 0x46, 0x83, 0x45, 0x76, 0xea, 0xa0,
|
||||
0xb1, 0x6f, 0xd0, 0xc6, 0x57, 0x0b, 0x58, 0x30, 0x5e, 0xec, 0x66, 0x96, 0x4d, 0x9f, 0x01, 0x00,
|
||||
0x9c, 0x86, 0x2d, 0x76, 0x00, 0x28, 0x79, 0x30, 0x94, 0xfc, 0x21, 0x0c, 0x1c, 0xfd, 0xfb, 0x39,
|
||||
0x0a, 0x06, 0x38, 0x46, 0x0a, 0xb1, 0x13, 0xf0, 0x0b, 0x3d, 0xa2, 0x61, 0x43, 0x28, 0x92, 0xff,
|
||||
0x7d, 0xc6, 0xc1, 0x33, 0xf2, 0x4f, 0x9c, 0xe5, 0x12, 0x1f, 0x9a, 0x1f, 0x07, 0x63, 0xe7, 0xe7,
|
||||
0x25, 0xf7, 0x47, 0x6a, 0xed, 0xcb, 0x05, 0xf6, 0x0d, 0x30, 0x4b, 0x9a, 0x31, 0x89, 0x64, 0x4c,
|
||||
0x92, 0xe5, 0x33, 0x81, 0x02, 0xe2, 0x28, 0x27, 0x24, 0x19, 0x60, 0xd8, 0x89, 0x33, 0x0f, 0xd3,
|
||||
0x19, 0x0d, 0x04, 0xb4, 0x36, 0x58, 0xa6, 0xd2, 0x66, 0x04, 0xaa, 0x58, 0xf6, 0x49, 0x75, 0x35,
|
||||
0x59, 0x96, 0x6c, 0xd9, 0x8c, 0x5a, 0xcf, 0x9e, 0xe5, 0x78, 0x89, 0x56, 0x2a, 0xcf, 0x76, 0x50,
|
||||
0xbd, 0xef, 0x28, 0x3f, 0x4d, 0xbf, 0x94, 0xa7, 0x59, 0xd4, 0x4f, 0xb3, 0xd8, 0x45, 0x5a, 0x75,
|
||||
0xa8, 0xc5, 0x3a, 0x85, 0x5b, 0x8f, 0xb6, 0x78, 0x66, 0x71, 0x96, 0xe2, 0xea, 0x00, 0x52, 0xe3,
|
||||
0x75, 0x9d, 0xf1, 0x40, 0xf9, 0x8e, 0x11, 0x4d, 0x71, 0x5c, 0xa7, 0x98, 0xa3, 0x96, 0x70, 0xd4,
|
||||
0x12, 0x90, 0xef, 0xb8, 0x4e, 0x7e, 0xe3, 0x6a, 0xc4, 0xb0, 0x63, 0x49, 0xb8, 0xea, 0xdc, 0x4a,
|
||||
0x73, 0xbc, 0x9b, 0x66, 0x0a, 0xaa, 0xad, 0x66, 0x9e, 0xe2, 0xc6, 0xf1, 0xd2, 0x0e, 0xe1, 0x77,
|
||||
0x90, 0xb9, 0x92, 0xa3, 0xd5, 0x1d, 0x83, 0x9c, 0x17, 0x68, 0x19, 0xa8, 0xf6, 0xbe, 0x6b, 0xbc,
|
||||
0x6e, 0x89, 0xc2, 0x1c, 0xa2, 0xb6, 0xf8, 0x74, 0x92, 0xa4, 0xb1, 0x99, 0x58, 0x3b, 0x87, 0xd2,
|
||||
0xdd, 0x43, 0xa0, 0x04, 0xee, 0xcb, 0x80, 0xef, 0xed, 0x01, 0x93, 0xe4, 0xef, 0x2e, 0xc0, 0xd8,
|
||||
0xb2, 0xeb, 0xec, 0x9c, 0x86, 0x5f, 0xe8, 0x05, 0x7d, 0xc7, 0xc3, 0xb1, 0x89, 0x56, 0x06, 0xd5,
|
||||
0xd9, 0x82, 0x73, 0xa3, 0xe2, 0x92, 0xb1, 0x54, 0x24, 0xb9, 0xe2, 0x62, 0x7d, 0xac, 0x29, 0x83,
|
||||
0x66, 0xcd, 0xfc, 0xae, 0x8f, 0x2c, 0xd4, 0x51, 0xd2, 0xef, 0x34, 0xba, 0x1b, 0x11, 0x19, 0xdd,
|
||||
0x30, 0xc1, 0x0a, 0x31, 0x93, 0x91, 0x1d, 0xbd, 0xe6, 0x37, 0x40, 0x99, 0xc3, 0x29, 0x84, 0xb3,
|
||||
0x11, 0x6d, 0x1a, 0x4a, 0xbb, 0xa1, 0x67, 0x96, 0xa5, 0x78, 0x3f, 0xf8, 0xbe, 0x79, 0xba, 0x0f,
|
||||
0x66, 0x6f, 0x3f, 0x51, 0x66, 0x4b, 0x5c, 0xcf, 0x0f, 0x3e, 0x63, 0xe4, 0x98, 0x55, 0xb9, 0x27,
|
||||
0x09, 0xfb, 0x9c, 0x7b, 0xb1, 0xb3, 0xaf, 0xd8, 0xac, 0x50, 0x33, 0xf0, 0x3a, 0xbb, 0x81, 0xb5,
|
||||
0x91, 0x85, 0xd7, 0x21, 0xb4, 0x96, 0x2b, 0xd1, 0x51, 0xca, 0x10, 0x18, 0x78, 0x9b, 0x10, 0xf2,
|
||||
0x56, 0xd9, 0x6d, 0x42, 0xc6, 0x21, 0x53, 0x68, 0xc3, 0xfe, 0x78, 0xf7, 0x07, 0xba, 0x78, 0xe8,
|
||||
0xe4, 0x09, 0x2d, 0x4c, 0x89, 0xcf, 0x5a, 0x1d, 0xc2, 0x35, 0xb8, 0xd8, 0x1b, 0x3c, 0x86, 0x26,
|
||||
0xc6, 0xfd, 0xe0, 0xd6, 0x26, 0xaf, 0x17, 0x62, 0x09, 0xff, 0xd0, 0x65, 0xfe, 0x70, 0xbb, 0xb1,
|
||||
0xe6, 0x7e, 0x60, 0x58, 0x46, 0x43, 0x84, 0xd7, 0x79, 0x16, 0x34, 0x27, 0xac, 0x64, 0x6b, 0xcd,
|
||||
0x8c, 0x63, 0xdc, 0x40, 0x1d, 0xec, 0xc4, 0xaf, 0x70, 0x1c, 0x22, 0x50, 0x5d, 0x16, 0x95, 0x05,
|
||||
0xda, 0x1e, 0x5e, 0x6c, 0x99, 0x68, 0x4b, 0x89, 0x70, 0x0a, 0x1e, 0xe9, 0x3b, 0xfb, 0x86, 0x64,
|
||||
0x54, 0x42, 0x81, 0x32, 0x20, 0xcd, 0x45, 0x63, 0xa9, 0x7c, 0xc7, 0x4a, 0x73, 0x69, 0xa3, 0x9f,
|
||||
0x25, 0xb3, 0xa6, 0x7e, 0x80, 0x00, 0xdd, 0xbf, 0x08, 0x5c, 0x9b, 0x7f, 0x53, 0x54, 0xc6, 0x02,
|
||||
0xee, 0xc8, 0x03, 0xb3, 0x43, 0x68, 0x49, 0xab, 0x9a, 0x05, 0xac, 0x15, 0xee, 0x7b, 0xab, 0x50,
|
||||
0x2f, 0xdd, 0x49, 0xd7, 0x00, 0x17, 0xe3, 0x81, 0x49, 0x03, 0xfa, 0xf4, 0x74, 0x0f, 0x09, 0x2c,
|
||||
0xbb, 0x77, 0xd4, 0x88, 0x74, 0x69, 0x40, 0x34, 0x04, 0x05, 0xc5, 0xaf, 0x89, 0x98, 0x98, 0x86,
|
||||
0xbc, 0xc6, 0x46, 0x3b, 0xfc, 0xf4, 0x44, 0x9d, 0x9c, 0x4b, 0xb0, 0x77, 0x74, 0x14, 0xce, 0x52,
|
||||
0xa4, 0x43, 0x04, 0xfc, 0x27, 0xea, 0x48, 0x18, 0x5a, 0x5c, 0xbb, 0x37, 0xc8, 0x21, 0x00, 0xf8,
|
||||
0xad, 0x4f, 0xcb, 0x16, 0x98, 0x51, 0x96, 0x4d, 0xd9, 0xac, 0xa0, 0xb3, 0x3c, 0x28, 0xe4, 0x97,
|
||||
0x04, 0x07, 0x6a, 0x22, 0x9a, 0xd6, 0x7b, 0xc0, 0x4c, 0xe9, 0x4f, 0x09, 0x8e, 0x74, 0x07, 0xc9,
|
||||
0x6a, 0x58, 0x7d, 0xaf, 0xd8, 0x97, 0x98, 0x5c, 0x71, 0x8d, 0x05, 0x10, 0x0d, 0xf1, 0x6f, 0xde,
|
||||
0x08, 0x7b, 0x7a, 0xe2, 0x1b, 0x1b, 0x91, 0x1c, 0x49, 0x03, 0xf6, 0x13, 0xdf, 0xb6, 0x19, 0x5e,
|
||||
0xb6, 0x06, 0xa2, 0x95, 0xc2, 0x9e, 0x53, 0x5b, 0x52, 0xf8, 0x89, 0x15, 0x1f, 0xaa, 0x68, 0x36,
|
||||
0x10, 0x2d, 0x13, 0xd8, 0x0f, 0x2c, 0x01, 0x75, 0x85, 0x91, 0xba, 0xaa, 0x6e, 0x42, 0xb7, 0x33,
|
||||
0x19, 0xbf, 0xda, 0x2c, 0x8d, 0x2f, 0x35, 0x3c, 0x7d, 0x5e, 0xf7, 0x35, 0x5a, 0x34, 0xdf, 0xba,
|
||||
0xa9, 0x8c, 0xf8, 0x0a, 0xc3, 0xcb, 0x40, 0x0f, 0x60, 0x20, 0xa8, 0x41, 0xba, 0x07, 0x3f, 0x89,
|
||||
0x49, 0x52, 0x7c, 0x94, 0x21, 0x53, 0xe0, 0xf6, 0x4b, 0x2c, 0xde, 0xb1, 0x5f, 0x1f, 0xe8, 0xf5,
|
||||
0x6b, 0x1f, 0x1d, 0x29, 0xb6, 0xdb, 0xc2, 0xa4, 0x4c, 0x5a, 0x19, 0x8d, 0xa3, 0x1e, 0x1f, 0x69,
|
||||
0x15, 0xfa, 0x3f, 0x59, 0x54, 0xb9, 0x48, 0x7d, 0xc5, 0xaf, 0x22, 0x6b, 0xf8, 0xf8, 0xbf, 0x80,
|
||||
0x67, 0xcd, 0x3d, 0xec, 0x42, 0x43, 0x9f, 0x0d, 0x63, 0x4b, 0x6e, 0x6c, 0xfa, 0x4d, 0xba, 0xe9,
|
||||
0x2f, 0x6b, 0xda, 0x5f, 0x80, 0x8f, 0xac, 0xab, 0x46, 0x36, 0x4b, 0xd3, 0x0d, 0xed, 0x68, 0x76,
|
||||
0xa2, 0x82, 0x54, 0x3d, 0x2b, 0x1d, 0x69, 0x02, 0x55, 0x5d, 0x4b, 0x5a, 0x42, 0x81, 0x56, 0x64,
|
||||
0x20, 0xb3, 0xb4, 0x04, 0x91, 0x5a, 0x11, 0xa4, 0x35, 0x5a, 0x36, 0x49, 0x5f, 0xac, 0xef, 0x5a,
|
||||
0xd6, 0x4f, 0x0d, 0xfb, 0x16, 0xec, 0xfb, 0xb3, 0x82, 0xba, 0x24, 0x7d, 0xf2, 0x0c, 0x0c, 0x3a,
|
||||
0x3d, 0x6b, 0x79, 0x5b, 0x63, 0x44, 0x33, 0xee, 0xd2, 0x76, 0x10, 0x03, 0xc0, 0x38, 0x99, 0x83,
|
||||
0xba, 0xa2, 0x60, 0xbe, 0xab, 0x1d, 0x78, 0x50, 0xb7, 0xd4, 0x36, 0x8e, 0x9e, 0xae, 0x0e, 0x55,
|
||||
0x06, 0x05, 0xeb, 0x33, 0x1a, 0x12, 0xa0, 0x56, 0x2b, 0x0f, 0x1f, 0x8e, 0x7d, 0x85, 0xa2, 0x2e,
|
||||
0x9e, 0xdf, 0x8b, 0xa8, 0x92, 0xa2, 0x75, 0x74, 0xdf, 0x8a, 0x68, 0x87, 0x50, 0xda, 0x1c, 0x0e,
|
||||
0x9d, 0x72, 0xa5, 0x99, 0xbf, 0x05, 0x9e, 0xab, 0x3b, 0x7e, 0x6b, 0xb0, 0x61, 0x97, 0x9b, 0x70,
|
||||
0x1e, 0x5a, 0x8d, 0xf9, 0x7a, 0xf2, 0xef, 0xdf, 0x36, 0xf9, 0x71, 0xdf, 0xeb, 0xd8, 0x42, 0x46,
|
||||
0xd5, 0x02, 0xfd, 0x87, 0x81, 0x1f, 0x19, 0x84, 0xcd, 0x67, 0x97, 0x17, 0xe7, 0xfa, 0x36, 0x67,
|
||||
0xcb, 0x75, 0x0d, 0x79, 0x98, 0xa6, 0x59, 0x11, 0x18, 0x58, 0xb6, 0xef, 0xb7, 0xdb, 0xf7, 0xf7,
|
||||
0xf7, 0xce, 0x7d, 0xc7, 0x61, 0x7c, 0xdc, 0xf6, 0x5d, 0xd7, 0xc5, 0xfb, 0x08, 0x83, 0xa8, 0xd7,
|
||||
0x08, 0x06, 0x16, 0x55, 0x0d, 0xa2, 0xee, 0x7f, 0xf4, 0x97, 0xbe, 0xec, 0xd1, 0xb7, 0x44, 0x78,
|
||||
0xe7, 0xd3, 0x7f, 0x75, 0x74, 0x04, 0x13, 0xdd, 0x01, 0x74, 0x72, 0xf6, 0x85, 0xf6, 0x09, 0x74,
|
||||
0xe0, 0x7f, 0x65, 0x87, 0x2e, 0x67, 0x91, 0x16, 0x16, 0x57, 0x74, 0x57, 0x0c, 0xf4, 0x86, 0x78,
|
||||
0xb3, 0xd6, 0x27, 0xae, 0xe3, 0xd9, 0xe4, 0x68, 0xa0, 0xae, 0xfb, 0x8f, 0xed, 0xce, 0xd5, 0xc1,
|
||||
0xd9, 0xc1, 0x55, 0xf7, 0xec, 0xf0, 0xca, 0x3b, 0x7e, 0xeb, 0xdb, 0xbe, 0xbc, 0xd3, 0x72, 0x49,
|
||||
0xcf, 0xf6, 0xbd, 0x33, 0xaf, 0x57, 0xeb, 0xc1, 0x7b, 0x96, 0x63, 0x00, 0xf4, 0x5d, 0x98, 0xe1,
|
||||
0x1d, 0x5e, 0x75, 0xce, 0x8e, 0x2f, 0x7a, 0x76, 0xf7, 0x0c, 0xef, 0xbb, 0x8e, 0xcf, 0x7a, 0x57,
|
||||
0x5d, 0x40, 0x76, 0x74, 0xe5, 0xf5, 0xce, 0x3c, 0xef, 0xea, 0x08, 0xc6, 0xf0, 0xd6, 0x45, 0x7e,
|
||||
0x1e, 0xc2, 0xa7, 0xd7, 0xa9, 0xdf, 0x80, 0x09, 0x6d, 0x4e, 0xca, 0xca, 0x4f, 0x60, 0x94, 0x65,
|
||||
0x53, 0xa3, 0x1a, 0x93, 0x76, 0x47, 0x1f, 0xae, 0xb2, 0xa9, 0xe5, 0x08, 0x44, 0x10, 0x7a, 0xe0,
|
||||
0x77, 0x35, 0x10, 0x3b, 0x78, 0x19, 0xda, 0x88, 0xec, 0x21, 0xd6, 0x10, 0xcf, 0xa7, 0x37, 0xc2,
|
||||
0x51, 0x25, 0x86, 0x5f, 0x58, 0x4c, 0x1d, 0x15, 0x15, 0xac, 0xa6, 0xae, 0xcb, 0xe7, 0x2e, 0xd0,
|
||||
0x35, 0xb8, 0x1d, 0xca, 0xf3, 0xdc, 0xf4, 0x0d, 0x60, 0x6b, 0x5d, 0x87, 0xbf, 0x3a, 0x7b, 0xc7,
|
||||
0xda, 0xdf, 0xb8, 0xea, 0x96, 0x24, 0x66, 0x7b, 0x54, 0xf8, 0x4c, 0xba, 0xd8, 0x0c, 0xaa, 0xbe,
|
||||
0x12, 0xe6, 0x6d, 0xc4, 0xa0, 0x0b, 0xa9, 0x4d, 0xea, 0x66, 0x5a, 0x29, 0x16, 0x62, 0x00, 0x9b,
|
||||
0x0c, 0x8a, 0x88, 0x3e, 0x1c, 0x7a, 0xd0, 0xc7, 0xcb, 0x1f, 0x53, 0xfe, 0xee, 0xdc, 0x1a, 0x0e,
|
||||
0x22, 0xa5, 0xaa, 0xf3, 0x9b, 0x88, 0xad, 0x07, 0xaf, 0x93, 0x2f, 0xbf, 0xd6, 0x33, 0x35, 0x24,
|
||||
0x48, 0xd6, 0xf6, 0x30, 0xae, 0x93, 0x5f, 0xb2, 0xa8, 0x65, 0x0d, 0xca, 0x3b, 0xb8, 0x5f, 0x51,
|
||||
0xd1, 0x86, 0x5d, 0xd7, 0xfd, 0xa9, 0x94, 0x4d, 0x5d, 0x48, 0xc0, 0x57, 0x3b, 0x19, 0x35, 0xfa,
|
||||
0x1b, 0xdd, 0xaa, 0x6e, 0x69, 0xd4, 0xd6, 0x0c, 0xd3, 0xe8, 0x3f, 0x3f, 0x7f, 0xfc, 0xc5, 0x54,
|
||||
0x97, 0x74, 0x34, 0x78, 0xb3, 0x28, 0xcb, 0x08, 0x46, 0xff, 0xfa, 0xcd, 0x40, 0xbf, 0xa2, 0x59,
|
||||
0xcb, 0x42, 0xc4, 0x5a, 0x12, 0x02, 0xa9, 0xa0, 0x4c, 0x42, 0x04, 0x86, 0x43, 0x26, 0x85, 0xdc,
|
||||
0xc2, 0x46, 0x26, 0x42, 0x16, 0x82, 0x39, 0x88, 0x6d, 0xbc, 0x5e, 0x70, 0xa7, 0x80, 0xed, 0x53,
|
||||
0xd3, 0xb3, 0x96, 0x06, 0x26, 0x23, 0x08, 0x73, 0xb3, 0x04, 0x55, 0xa8, 0x05, 0x90, 0xf2, 0xfd,
|
||||
0x93, 0xa0, 0xff, 0x25, 0xcb, 0x2e, 0x78, 0x30, 0xaa, 0x00, 0x23, 0xc9, 0x5b, 0xd1, 0x69, 0xdf,
|
||||
0xb6, 0x35, 0x81, 0x98, 0xda, 0x38, 0x7f, 0x14, 0x2c, 0xbb, 0x6d, 0x24, 0xbe, 0xd5, 0x1c, 0x48,
|
||||
0x8d, 0x94, 0xff, 0xe2, 0x01, 0x56, 0x9e, 0x7e, 0xbb, 0x38, 0x3f, 0x03, 0x1b, 0xf8, 0x0f, 0x0a,
|
||||
0x69, 0x6f, 0x21, 0x20, 0x64, 0xc7, 0xce, 0x9f, 0x53, 0x76, 0x07, 0x49, 0xd4, 0x8d, 0xbd, 0xc0,
|
||||
0x00, 0xb5, 0x6f, 0x80, 0x12, 0xa7, 0x58, 0x3e, 0x02, 0x54, 0x6d, 0x44, 0x6d, 0x2c, 0x21, 0xd4,
|
||||
0xde, 0x22, 0x79, 0xb8, 0x88, 0x61, 0x9b, 0x65, 0x02, 0xcc, 0xd0, 0x62, 0xb0, 0xb1, 0x14, 0x6e,
|
||||
0x38, 0xfd, 0x22, 0x87, 0x3e, 0x7a, 0x49, 0x1f, 0x84, 0x6d, 0x90, 0x16, 0x31, 0xa4, 0x6e, 0x60,
|
||||
0xf4, 0x2b, 0x66, 0x78, 0x43, 0xc6, 0x60, 0x37, 0x9f, 0x21, 0xe5, 0x0e, 0xc7, 0xa5, 0xfc, 0x7c,
|
||||
0x10, 0x74, 0x0a, 0x87, 0x9d, 0xd2, 0xf8, 0x53, 0x98, 0x62, 0x4d, 0x44, 0x07, 0xcf, 0x08, 0x8a,
|
||||
0xb4, 0x38, 0x13, 0x4e, 0x47, 0x81, 0xd1, 0x06, 0x72, 0xec, 0x6d, 0xe4, 0x50, 0xce, 0xf1, 0xce,
|
||||
0x8b, 0xae, 0x91, 0x63, 0xbc, 0xc7, 0xfe, 0x3e, 0x91, 0xb7, 0x7b, 0x8d, 0x01, 0xf2, 0x59, 0x12,
|
||||
0xd3, 0x5f, 0xa7, 0x0d, 0x43, 0x8f, 0x64, 0x4a, 0xd9, 0x4c, 0x98, 0x72, 0x73, 0x4b, 0xdb, 0xa3,
|
||||
0x1d, 0x4b, 0xae, 0xca, 0xc0, 0xbc, 0x99, 0xc6, 0xa7, 0x8f, 0x9f, 0x2f, 0xe1, 0x74, 0xdb, 0x8a,
|
||||
0xcf, 0x86, 0x8a, 0xd4, 0x43, 0xc9, 0xcb, 0xbf, 0x33, 0x3e, 0x7d, 0x07, 0x81, 0x45, 0x29, 0x34,
|
||||
0xa1, 0x36, 0x89, 0x2a, 0xdc, 0x80, 0xdc, 0x1a, 0xaf, 0x10, 0xb9, 0xac, 0x84, 0x9b, 0xa1, 0x65,
|
||||
0xbf, 0xf4, 0x96, 0x61, 0xf1, 0x98, 0x45, 0x64, 0xf5, 0xc6, 0x8b, 0x8a, 0x0f, 0xd9, 0x88, 0x81,
|
||||
0x2c, 0x26, 0x23, 0x13, 0xc2, 0xa2, 0x60, 0xb5, 0x7d, 0x06, 0x27, 0x06, 0x3d, 0xe5, 0x15, 0xae,
|
||||
0x6b, 0x09, 0xfe, 0x58, 0x69, 0x4a, 0x78, 0x1f, 0x26, 0x82, 0x8c, 0xa8, 0x00, 0x61, 0x2c, 0xfd,
|
||||
0x9c, 0xb1, 0x0f, 0xe0, 0xfb, 0x86, 0x3c, 0xc4, 0xb6, 0x2c, 0x52, 0xa2, 0x16, 0x7d, 0x15, 0xb2,
|
||||
0xaa, 0xc1, 0x02, 0xa5, 0x1a, 0x9a, 0x4a, 0x19, 0x83, 0x9c, 0xa4, 0x5e, 0x11, 0x52, 0x43, 0x42,
|
||||
0x0f, 0xd9, 0x12, 0x63, 0x59, 0x8f, 0x33, 0x4d, 0x55, 0xd1, 0x82, 0x34, 0x05, 0x7f, 0xc1, 0x97,
|
||||
0x0b, 0xab, 0x05, 0x82, 0x0f, 0x7b, 0x81, 0x65, 0xa9, 0x55, 0x1d, 0x91, 0x3c, 0x35, 0xbc, 0xdc,
|
||||
0x92, 0x17, 0xc7, 0xcd, 0x5e, 0x03, 0x8c, 0x43, 0xc6, 0x04, 0x49, 0x62, 0x38, 0xe8, 0x64, 0xf4,
|
||||
0x48, 0x90, 0x05, 0x10, 0xaa, 0xad, 0xb1, 0xac, 0xb9, 0x30, 0xe0, 0xae, 0x97, 0xb1, 0x34, 0xb7,
|
||||
0x02, 0x77, 0x80, 0x17, 0xda, 0xa8, 0xdf, 0x90, 0x73, 0x0c, 0xc4, 0x30, 0xa0, 0x03, 0xb1, 0xbf,
|
||||
0xbf, 0xb2, 0x34, 0xb7, 0x9a, 0x13, 0xaf, 0x17, 0xc0, 0x89, 0xe5, 0x4a, 0xbd, 0x84, 0x56, 0xaf,
|
||||
0xc1, 0x8a, 0xd9, 0x4d, 0x16, 0xd2, 0x15, 0x97, 0xc4, 0x1a, 0x97, 0x14, 0x01, 0xf9, 0xac, 0x98,
|
||||
0x40, 0x5e, 0xa8, 0xb7, 0x2e, 0xd6, 0xb7, 0x7e, 0x2b, 0xe5, 0x53, 0x21, 0xc3, 0x12, 0x2a, 0xaa,
|
||||
0x2d, 0x19, 0x71, 0x36, 0x95, 0xd7, 0x16, 0x7d, 0x72, 0x0b, 0x12, 0xb3, 0x5c, 0x6e, 0xd9, 0xd2,
|
||||
0xd0, 0x03, 0x43, 0xb3, 0xb9, 0x52, 0xb9, 0xfb, 0xfe, 0xb5, 0x6b, 0xf7, 0xca, 0x3f, 0x48, 0xcb,
|
||||
0xaa, 0x8f, 0x9b, 0x65, 0x79, 0xbf, 0x23, 0x02, 0x5c, 0x0c, 0x2d, 0x79, 0x41, 0xcd, 0x86, 0x46,
|
||||
0xa2, 0x14, 0xae, 0xa9, 0xa3, 0xac, 0x3e, 0x00, 0xf5, 0xc8, 0x46, 0xcd, 0x34, 0x2c, 0xb0, 0x83,
|
||||
0x0f, 0x97, 0xa2, 0x0a, 0xbf, 0x60, 0x42, 0x1c, 0xf9, 0xda, 0xb3, 0x26, 0x24, 0x68, 0x56, 0xe8,
|
||||
0x89, 0x7f, 0x70, 0x68, 0xe9, 0xcb, 0x4c, 0xa2, 0x00, 0x91, 0x02, 0x91, 0x64, 0x33, 0xba, 0x54,
|
||||
0xb8, 0x78, 0xa0, 0xfb, 0xf1, 0x84, 0xb0, 0x2e, 0x31, 0xa8, 0xaf, 0xc3, 0x46, 0x84, 0xcb, 0x55,
|
||||
0x5e, 0xaa, 0x8d, 0x26, 0x85, 0xfc, 0x05, 0xde, 0x3f, 0x3d, 0x1d, 0xbc, 0x0c, 0x02, 0xaa, 0x59,
|
||||
0x62, 0x2d, 0x64, 0x71, 0xe5, 0x8e, 0xd3, 0xf0, 0xcb, 0x72, 0x85, 0x40, 0x20, 0x02, 0x6a, 0xc1,
|
||||
0x7c, 0x23, 0x9b, 0x4d, 0xef, 0x20, 0x8a, 0x05, 0x9f, 0x06, 0xa6, 0x0e, 0x7a, 0xc5, 0xd3, 0x93,
|
||||
0x18, 0xba, 0xf0, 0xcf, 0x09, 0xb0, 0xe8, 0xe9, 0xe9, 0xe5, 0x2f, 0x72, 0x1c, 0x16, 0xf8, 0x90,
|
||||
0x09, 0x3a, 0x06, 0xb3, 0x22, 0xac, 0x06, 0xd2, 0x25, 0x12, 0xc1, 0xbe, 0xb2, 0x99, 0x30, 0xe0,
|
||||
0xd7, 0x5c, 0x93, 0xd4, 0xf2, 0x6e, 0x90, 0x71, 0xf2, 0x1a, 0x34, 0x08, 0x21, 0x83, 0x5f, 0x89,
|
||||
0xdc, 0xb5, 0xe3, 0x38, 0xe1, 0xcd, 0x80, 0x42, 0x67, 0x80, 0x07, 0xc4, 0xd5, 0x01, 0x82, 0x2e,
|
||||
0x2c, 0x4b, 0x90, 0x75, 0x9f, 0x03, 0xcc, 0x76, 0xa6, 0x61, 0xbe, 0xba, 0xf3, 0x32, 0x17, 0xb0,
|
||||
0x3e, 0xf8, 0xb8, 0x51, 0x1a, 0xe2, 0xdd, 0x07, 0xb2, 0x1f, 0xbe, 0xf0, 0x67, 0x69, 0xa1, 0x93,
|
||||
0x2c, 0x18, 0x07, 0x2b, 0x86, 0x5e, 0x20, 0x38, 0xa1, 0xb2, 0x5f, 0xda, 0xd3, 0x14, 0x92, 0x9b,
|
||||
0x29, 0x7a, 0x70, 0x53, 0x01, 0x43, 0x54, 0xbf, 0x29, 0x49, 0x40, 0x5e, 0xa9, 0x97, 0x30, 0x06,
|
||||
0x78, 0x8c, 0x4b, 0x7c, 0xa5, 0x80, 0x0f, 0x61, 0x91, 0xa1, 0x55, 0x8d, 0x1c, 0xd0, 0x90, 0x69,
|
||||
0x52, 0x14, 0xc9, 0x58, 0xc9, 0xed, 0x23, 0x9b, 0x71, 0x72, 0xc7, 0xd9, 0x7d, 0x01, 0x9c, 0x24,
|
||||
0xbf, 0xb3, 0x19, 0x29, 0x26, 0x6c, 0x96, 0xc6, 0x24, 0xe7, 0xec, 0x2e, 0xbc, 0x4b, 0x1f, 0x89,
|
||||
0x36, 0x8e, 0xfa, 0x4d, 0xc1, 0x34, 0x04, 0x39, 0x82, 0x30, 0x05, 0x96, 0xc9, 0x62, 0x82, 0x02,
|
||||
0x00, 0xba, 0x24, 0x9f, 0x1d, 0xc0, 0x84, 0x9c, 0x72, 0x98, 0x30, 0xc2, 0x07, 0x14, 0xf8, 0x98,
|
||||
0xa0, 0x5c, 0x53, 0x51, 0x81, 0x57, 0x84, 0x70, 0x4a, 0x60, 0xfe, 0xc1, 0x67, 0x92, 0x3b, 0x0a,
|
||||
0x60, 0x54, 0x23, 0x47, 0x55, 0x9a, 0x50, 0x4e, 0x1d, 0x30, 0xd4, 0x17, 0x48, 0x1c, 0x7c, 0xcb,
|
||||
0x49, 0x71, 0x85, 0xe4, 0x25, 0x58, 0xee, 0x72, 0xb2, 0x36, 0x1f, 0xef, 0x92, 0x79, 0x51, 0x0f,
|
||||
0x94, 0xb6, 0x0e, 0x57, 0x07, 0xb8, 0xf1, 0x02, 0xd7, 0xa8, 0x99, 0x4e, 0xb1, 0x65, 0x78, 0xed,
|
||||
0xcd, 0x02, 0x5a, 0x0e, 0xc5, 0x6f, 0xe4, 0x9b, 0x49, 0x9d, 0x08, 0x43, 0x28, 0x08, 0xab, 0x20,
|
||||
0xae, 0x48, 0x52, 0x81, 0x49, 0x2f, 0x9e, 0x1a, 0x64, 0x66, 0x53, 0x69, 0x3b, 0xda, 0xff, 0xd4,
|
||||
0xf8, 0xff, 0x27, 0x7e, 0xdd, 0x86, 0xe3, 0x5d, 0x93, 0x70, 0x6e, 0xad, 0x47, 0xd1, 0x95, 0xcd,
|
||||
0xe3, 0x60, 0xf3, 0xf8, 0x70, 0x8b, 0x11, 0x19, 0xf0, 0x95, 0x11, 0x64, 0x41, 0x1d, 0xe0, 0x9a,
|
||||
0xdf, 0xd8, 0x61, 0xb0, 0xfe, 0x74, 0x58, 0x67, 0xc0, 0xa1, 0x53, 0x7b, 0xac, 0x63, 0xec, 0x73,
|
||||
0x3b, 0x54, 0x55, 0x10, 0xf4, 0xc6, 0xe8, 0x9a, 0x2b, 0x4e, 0x18, 0xa5, 0xad, 0xc9, 0x4a, 0x59,
|
||||
0xfe, 0x42, 0x1f, 0x0b, 0x93, 0x59, 0x20, 0xf4, 0x80, 0x05, 0x9d, 0x22, 0xb8, 0x5b, 0xbc, 0x72,
|
||||
0x97, 0xa9, 0x91, 0x32, 0x48, 0x85, 0xbc, 0x6c, 0x05, 0x83, 0x6f, 0xb2, 0xeb, 0xec, 0x66, 0x55,
|
||||
0x02, 0xdc, 0x41, 0x4c, 0x5a, 0x27, 0xa6, 0x8c, 0xa1, 0x81, 0xa8, 0xaa, 0x42, 0xb6, 0x63, 0x9e,
|
||||
0x2a, 0x7c, 0xad, 0x5e, 0xb6, 0xe1, 0x3e, 0x92, 0xf5, 0x7d, 0xd4, 0x86, 0x57, 0xd5, 0xab, 0x0d,
|
||||
0x84, 0x55, 0x29, 0x4b, 0x3e, 0x35, 0xd1, 0xcf, 0xdc, 0x10, 0x5f, 0xe1, 0xe0, 0x23, 0x51, 0x08,
|
||||
0x7a, 0x83, 0x52, 0xa6, 0xd0, 0xb3, 0x37, 0xa3, 0x3c, 0xf0, 0x0d, 0x58, 0x9d, 0xd9, 0x76, 0xb5,
|
||||
0x61, 0x7c, 0xa6, 0xf8, 0x7e, 0x47, 0xbd, 0x68, 0xaa, 0xbd, 0x24, 0xc2, 0xe7, 0x37, 0x04, 0xf0,
|
||||
0x63, 0x49, 0x6b, 0x95, 0xff, 0xea, 0xf7, 0x19, 0x76, 0xb1, 0xbe, 0x89, 0x8a, 0xa2, 0x72, 0x0b,
|
||||
0xd1, 0xce, 0x2d, 0x44, 0x72, 0x0b, 0xe5, 0x9b, 0x3d, 0xdc, 0x42, 0xb4, 0x6d, 0x0b, 0x48, 0x38,
|
||||
0xc4, 0x3a, 0xf8, 0x88, 0x42, 0xd2, 0x1f, 0xed, 0xb8, 0x9a, 0x39, 0x65, 0xf9, 0xa3, 0xa2, 0x16,
|
||||
0xe2, 0xdf, 0x65, 0xa9, 0x7a, 0xb8, 0x05, 0xb5, 0x99, 0xdb, 0xa6, 0xe1, 0xc1, 0x72, 0x03, 0xda,
|
||||
0xa3, 0xbd, 0xbd, 0x67, 0x11, 0xbe, 0x5e, 0x6c, 0x9b, 0xb4, 0x1d, 0x7d, 0xd4, 0x64, 0x10, 0x52,
|
||||
0x0c, 0x7d, 0x6b, 0x0c, 0xaa, 0xf6, 0x8b, 0x75, 0xb4, 0xed, 0x92, 0x5c, 0xbd, 0x31, 0x45, 0x89,
|
||||
0x03, 0x95, 0xca, 0x03, 0xc3, 0xa8, 0xf4, 0x8b, 0x82, 0x7e, 0xd1, 0x21, 0x4a, 0x6b, 0xa9, 0x57,
|
||||
0x10, 0xdc, 0xfb, 0x56, 0x15, 0x30, 0xe0, 0x08, 0x3a, 0x0a, 0x74, 0x41, 0x4a, 0xba, 0xb1, 0x3a,
|
||||
0xae, 0x5c, 0x90, 0x1a, 0xdb, 0xf7, 0x6e, 0xac, 0x1c, 0x92, 0x85, 0x57, 0xaf, 0x17, 0x55, 0x07,
|
||||
0x56, 0x2e, 0x44, 0x1b, 0x5c, 0xc3, 0x8f, 0x9e, 0xeb, 0x2e, 0x7f, 0xb0, 0xc9, 0xad, 0x2c, 0xaf,
|
||||
0x2f, 0x10, 0x4e, 0xbe, 0x16, 0xaf, 0xc3, 0x62, 0xad, 0x43, 0x7f, 0xf9, 0x8d, 0xaf, 0x0e, 0x7e,
|
||||
0x79, 0xd6, 0x06, 0x2e, 0xcc, 0x3f, 0x7c, 0x88, 0x2c, 0x82, 0x5c, 0xe7, 0x25, 0xae, 0xdd, 0xf2,
|
||||
0xb7, 0xd5, 0x11, 0x3f, 0x4c, 0xc1, 0x36, 0x07, 0xb7, 0xbb, 0xea, 0x33, 0xb8, 0x54, 0xbe, 0xb4,
|
||||
0x6e, 0x4b, 0x1b, 0xa0, 0x2a, 0xa1, 0x1b, 0x4f, 0x5a, 0x41, 0x98, 0x4b, 0x9b, 0x10, 0x04, 0xd9,
|
||||
0x4f, 0xc9, 0x5a, 0xb9, 0xb0, 0x1f, 0xe9, 0x75, 0xd5, 0xeb, 0xc9, 0x73, 0xbc, 0x7a, 0x30, 0xe4,
|
||||
0xfb, 0x1b, 0x9b, 0xbf, 0x0c, 0x64, 0x10, 0xb9, 0xb7, 0xd7, 0x9c, 0x14, 0xe1, 0x7b, 0x86, 0xb5,
|
||||
0x7a, 0x64, 0xb8, 0x5e, 0xbb, 0x6c, 0x2c, 0x4a, 0x1b, 0xa3, 0xa1, 0x05, 0xae, 0xb2, 0xd9, 0xb1,
|
||||
0x5c, 0x99, 0xfe, 0xba, 0x84, 0x53, 0xbc, 0x17, 0xdd, 0xa8, 0x14, 0xbe, 0x91, 0x55, 0xf0, 0xeb,
|
||||
0x24, 0xfe, 0x67, 0xb3, 0x7c, 0x7e, 0xf3, 0x66, 0x95, 0x17, 0x62, 0x36, 0x42, 0x77, 0xe5, 0xca,
|
||||
0xba, 0xa4, 0xbb, 0x89, 0x18, 0x75, 0xb1, 0x86, 0x57, 0x5f, 0xc4, 0xdd, 0xd8, 0x64, 0x6d, 0xa0,
|
||||
0x71, 0x7b, 0xdd, 0x18, 0x6e, 0xdc, 0xe0, 0x7d, 0x17, 0x41, 0x03, 0x15, 0x23, 0xd7, 0x22, 0xc3,
|
||||
0x71, 0xcd, 0xb3, 0x19, 0xfb, 0xd4, 0xda, 0x76, 0x8f, 0x5a, 0x1a, 0x70, 0xc3, 0xb2, 0xd6, 0x94,
|
||||
0x42, 0x6c, 0xd3, 0x08, 0x08, 0xf7, 0xaa, 0x60, 0x6f, 0xab, 0x52, 0x08, 0xa5, 0x11, 0x4c, 0x3e,
|
||||
0x1e, 0x51, 0x1f, 0x4a, 0xf6, 0x59, 0x00, 0x92, 0x7f, 0xc9, 0xce, 0xe8, 0x83, 0xa9, 0xba, 0x6d,
|
||||
0x21, 0x25, 0x5e, 0xfe, 0x74, 0x6e, 0x2c, 0x25, 0xd5, 0xf2, 0xe5, 0x0d, 0xb7, 0x59, 0x95, 0x44,
|
||||
0x16, 0x11, 0x67, 0xc0, 0x59, 0xd7, 0x76, 0xeb, 0x67, 0x5c, 0xa1, 0x82, 0x00, 0xc9, 0xe6, 0x2b,
|
||||
0x3f, 0x68, 0xd2, 0xe1, 0xd0, 0xeb, 0x42, 0x64, 0x38, 0x3c, 0x7a, 0xe2, 0xcd, 0x07, 0x2a, 0x3a,
|
||||
0xb1, 0x43, 0xb2, 0x0c, 0xd7, 0xc0, 0x2b, 0x53, 0xb0, 0xa2, 0x66, 0xb7, 0xc5, 0xca, 0x10, 0x74,
|
||||
0x9f, 0x2d, 0xab, 0x1c, 0xae, 0x5c, 0x7d, 0x57, 0xee, 0x8c, 0xb7, 0x1d, 0xcf, 0x00, 0x41, 0x12,
|
||||
0x9d, 0xfc, 0x49, 0x4b, 0xb0, 0x46, 0x05, 0x7d, 0xe7, 0x4b, 0x87, 0xc6, 0x73, 0x26, 0xfd, 0x74,
|
||||
0xc9, 0xd5, 0xbf, 0xf8, 0xac, 0x67, 0xe3, 0xaa, 0xa9, 0xfe, 0xff, 0xfe, 0xb4, 0xd5, 0xff, 0xbf,
|
||||
0xf5, 0xbf, 0x04, 0xfa, 0x03, 0x25, 0xd7, 0x35, 0x00, 0x00
|
||||
};
|
||||
|
@@ -41,47 +41,47 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()=====";
|
||||
#endif
|
||||
|
||||
// Autogenerated from wled00/data/update.htm, do not edit!!
|
||||
const uint16_t PAGE_update_length = 616;
|
||||
const uint16_t PAGE_update_length = 613;
|
||||
const uint8_t PAGE_update[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30,
|
||||
0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x71, 0x36, 0xad, 0x78, 0xa1, 0x24, 0x29, 0x94,
|
||||
0x56, 0xa8, 0x12, 0x12, 0x95, 0xda, 0x82, 0x78, 0x42, 0x8e, 0xbd, 0xb9, 0x98, 0x73, 0xec, 0xd4,
|
||||
0xde, 0xdc, 0xe9, 0x84, 0xfa, 0xdf, 0xd9, 0x38, 0x77, 0x05, 0xf1, 0xf1, 0x12, 0xc5, 0xd9, 0xd9,
|
||||
0xf1, 0xee, 0xcc, 0xa4, 0x3c, 0xb9, 0xfa, 0xf4, 0xfe, 0xfe, 0xeb, 0xed, 0x35, 0xeb, 0xb0, 0x77,
|
||||
0x75, 0x79, 0x78, 0x82, 0x32, 0x75, 0xd9, 0x03, 0x2a, 0xa6, 0x83, 0x47, 0xf0, 0x58, 0xf1, 0x9d,
|
||||
0x35, 0xd8, 0x55, 0x06, 0xb6, 0x56, 0xc3, 0x2a, 0x1f, 0x38, 0xf3, 0xaa, 0x87, 0x8a, 0x6f, 0x2d,
|
||||
0xec, 0x86, 0x10, 0x91, 0xd7, 0x45, 0x89, 0x16, 0x1d, 0xd4, 0x5f, 0x3e, 0x5e, 0x5f, 0xb1, 0x87,
|
||||
0xc1, 0x28, 0x84, 0x52, 0xce, 0x9f, 0xca, 0xa4, 0xa3, 0x1d, 0xb0, 0x2e, 0xda, 0xd1, 0x6b, 0xb4,
|
||||
0xc1, 0xb3, 0xcb, 0xc5, 0xf2, 0xc7, 0xce, 0x7a, 0x13, 0x76, 0xa2, 0xb3, 0x09, 0x43, 0xdc, 0x8b,
|
||||
0x46, 0xe9, 0xcd, 0x62, 0xf9, 0xf4, 0x0c, 0x79, 0x20, 0x88, 0x09, 0x7a, 0xec, 0x69, 0x02, 0xb1,
|
||||
0x06, 0xbc, 0x76, 0x30, 0xbd, 0x5e, 0xee, 0x6f, 0xcc, 0x82, 0x8f, 0x2d, 0x5f, 0x8a, 0x84, 0x7b,
|
||||
0x07, 0xc2, 0xd8, 0x34, 0x38, 0xb5, 0xaf, 0xb8, 0x0f, 0x1e, 0xf8, 0x8b, 0xff, 0xb6, 0xf4, 0x69,
|
||||
0xfd, 0x77, 0x4f, 0xe3, 0x82, 0xde, 0xf0, 0xa7, 0xa2, 0x94, 0x87, 0x11, 0x0f, 0xa3, 0xb2, 0x14,
|
||||
0x75, 0xc5, 0x65, 0x02, 0x44, 0xeb, 0xd7, 0x49, 0x26, 0xf1, 0x3d, 0x5d, 0x0c, 0xd5, 0x6b, 0x5e,
|
||||
0xff, 0x86, 0x9c, 0xa8, 0xea, 0xe2, 0xad, 0xed, 0x27, 0x01, 0xd8, 0x18, 0xdd, 0x82, 0xcf, 0xf4,
|
||||
0x3a, 0x25, 0xbe, 0x7c, 0x43, 0xc8, 0x8c, 0x28, 0xe5, 0x2c, 0x69, 0x13, 0xcc, 0x9e, 0x05, 0xef,
|
||||
0x82, 0x32, 0x15, 0xff, 0x00, 0xf8, 0x79, 0xb1, 0x24, 0xba, 0xee, 0xac, 0x2e, 0xb2, 0x64, 0x77,
|
||||
0xa1, 0xc5, 0x9d, 0x8a, 0xf0, 0xac, 0x1d, 0x55, 0xca, 0x36, 0xc4, 0x9e, 0x91, 0x17, 0x5d, 0xa0,
|
||||
0x9e, 0xdb, 0x4f, 0x77, 0xf7, 0x9c, 0xa9, 0x2c, 0x4f, 0xc5, 0x85, 0x1c, 0x33, 0x90, 0x33, 0x4b,
|
||||
0x35, 0x12, 0x84, 0x15, 0x40, 0xd2, 0xed, 0x07, 0x72, 0xa5, 0x1f, 0x1d, 0xda, 0x41, 0x45, 0x94,
|
||||
0x13, 0xc1, 0x8a, 0x60, 0x8a, 0xd3, 0xd5, 0x69, 0x6c, 0x7a, 0x4b, 0x76, 0x3e, 0x4c, 0x37, 0xdf,
|
||||
0xf8, 0x84, 0xca, 0x39, 0x30, 0x6c, 0x0b, 0x31, 0x11, 0xe5, 0x39, 0x2b, 0xd3, 0xa0, 0x3c, 0x2b,
|
||||
0xb4, 0x53, 0x29, 0x55, 0x3c, 0xd9, 0x81, 0xd7, 0x2f, 0xc5, 0xe9, 0x2b, 0x71, 0xba, 0x6a, 0xce,
|
||||
0x68, 0x1b, 0x2a, 0xd2, 0x16, 0xb1, 0xbe, 0x0a, 0xbb, 0xbc, 0x05, 0xc3, 0x0e, 0x98, 0xa3, 0x11,
|
||||
0x12, 0xb2, 0xc6, 0x7a, 0x15, 0xf7, 0x44, 0xa1, 0x58, 0xd1, 0x45, 0x68, 0x2b, 0xde, 0x21, 0x0e,
|
||||
0xe9, 0x5c, 0xca, 0xb5, 0xc5, 0x6e, 0x6c, 0x84, 0x0e, 0xbd, 0x7c, 0x67, 0xa3, 0x0e, 0x21, 0x6c,
|
||||
0x2c, 0xc8, 0x69, 0x65, 0x19, 0xc1, 0x81, 0x4a, 0x90, 0x38, 0x43, 0x15, 0xc9, 0xaf, 0x8a, 0x7f,
|
||||
0x6b, 0x9c, 0xf2, 0x1b, 0x92, 0xc5, 0xf6, 0x6b, 0x56, 0x64, 0x13, 0x8e, 0x3c, 0xf4, 0x45, 0xa4,
|
||||
0xce, 0x82, 0x33, 0x49, 0xd8, 0x70, 0xa0, 0x3d, 0x52, 0xfc, 0x49, 0x2d, 0xd2, 0x76, 0x7d, 0x91,
|
||||
0xe5, 0xaf, 0x5a, 0x9a, 0x70, 0x95, 0x1e, 0x47, 0x92, 0x76, 0x0a, 0xa9, 0x54, 0x79, 0x87, 0xd2,
|
||||
0xfa, 0x61, 0x44, 0x36, 0xcb, 0xd5, 0x5a, 0x07, 0xc7, 0x40, 0x1f, 0x45, 0x8d, 0xf0, 0x38, 0xda,
|
||||
0x08, 0x66, 0x46, 0x37, 0x23, 0x22, 0x65, 0x72, 0x86, 0xcf, 0x32, 0x12, 0xd9, 0xec, 0xd4, 0x49,
|
||||
0x29, 0xe7, 0xf2, 0x3f, 0xa0, 0xf3, 0x61, 0xd2, 0x5e, 0x3b, 0xab, 0x37, 0x15, 0xbf, 0x9c, 0xa4,
|
||||
0xbf, 0xa4, 0xa8, 0xff, 0x6a, 0xca, 0x1e, 0xd5, 0xa5, 0xb1, 0xdb, 0x22, 0x5b, 0x39, 0x05, 0x95,
|
||||
0x68, 0xea, 0xcc, 0x4e, 0xe9, 0x13, 0x42, 0x10, 0x38, 0x93, 0xdf, 0xe6, 0x65, 0x99, 0x09, 0xcc,
|
||||
0x07, 0x64, 0xda, 0x05, 0x3a, 0x84, 0x48, 0xb3, 0xb6, 0x11, 0x52, 0x97, 0xfd, 0x18, 0xd4, 0x1a,
|
||||
0xd8, 0xf9, 0xb2, 0x94, 0xc4, 0x37, 0xad, 0x3b, 0xa5, 0x6e, 0x8a, 0xe0, 0xf4, 0x6f, 0xff, 0x04,
|
||||
0xbf, 0xf4, 0xfc, 0x82, 0xf1, 0x03, 0x00, 0x00
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0xcb, 0x6e, 0xdb, 0x30,
|
||||
0x10, 0xbc, 0xeb, 0x2b, 0x18, 0x9e, 0x6c, 0xa0, 0x21, 0xfb, 0xba, 0x34, 0x95, 0x94, 0xd6, 0x4d,
|
||||
0x50, 0x04, 0x28, 0x90, 0x00, 0x49, 0x5a, 0xf4, 0x54, 0x50, 0xe4, 0xca, 0x62, 0x4d, 0x91, 0x0a,
|
||||
0xb9, 0xb2, 0x61, 0x14, 0xf9, 0xf7, 0xae, 0x28, 0x3b, 0x2d, 0xfa, 0xb8, 0x08, 0xa2, 0x76, 0x76,
|
||||
0xb8, 0x3b, 0x33, 0x2a, 0x4f, 0x2e, 0xae, 0x3f, 0xdc, 0x7d, 0xbd, 0xb9, 0x64, 0x1d, 0xf6, 0xae,
|
||||
0x2e, 0x0f, 0x4f, 0x50, 0xa6, 0x2e, 0x7b, 0x40, 0xc5, 0x74, 0xf0, 0x08, 0x1e, 0x2b, 0xbe, 0xb3,
|
||||
0x06, 0xbb, 0xca, 0xc0, 0xd6, 0x6a, 0x38, 0xcd, 0x07, 0xce, 0xbc, 0xea, 0xa1, 0xe2, 0x5b, 0x0b,
|
||||
0xbb, 0x21, 0x44, 0xe4, 0x75, 0x51, 0xa2, 0x45, 0x07, 0xf5, 0x97, 0x4f, 0x97, 0x17, 0xec, 0x7e,
|
||||
0x30, 0x0a, 0xa1, 0x94, 0xf3, 0xa7, 0x32, 0xe9, 0x68, 0x07, 0xac, 0x8b, 0x76, 0xf4, 0x1a, 0x6d,
|
||||
0xf0, 0x6c, 0xb5, 0x58, 0xfe, 0xd8, 0x59, 0x6f, 0xc2, 0x4e, 0x74, 0x36, 0x61, 0x88, 0x7b, 0xd1,
|
||||
0x28, 0xbd, 0x59, 0x2c, 0x1f, 0x9f, 0x20, 0xf7, 0x04, 0x31, 0x41, 0x8f, 0x3d, 0x4d, 0x20, 0xd6,
|
||||
0x80, 0x97, 0x0e, 0xa6, 0xd7, 0xd5, 0xfe, 0xca, 0x2c, 0xf8, 0xd8, 0xf2, 0xa5, 0x48, 0xb8, 0x77,
|
||||
0x20, 0x8c, 0x4d, 0x83, 0x53, 0xfb, 0x8a, 0xfb, 0xe0, 0x81, 0x3f, 0xfb, 0x6f, 0x4b, 0x9f, 0xd6,
|
||||
0x7f, 0xf7, 0x34, 0x2e, 0xe8, 0x0d, 0x7f, 0x2c, 0x4a, 0x79, 0x18, 0xf1, 0x30, 0x2a, 0x4b, 0x51,
|
||||
0x57, 0x5c, 0x26, 0x40, 0xb4, 0x7e, 0x9d, 0x64, 0x12, 0xdf, 0xd3, 0xf9, 0x50, 0xbd, 0xe1, 0xf5,
|
||||
0x6f, 0xc8, 0x89, 0xaa, 0x2e, 0xde, 0xd9, 0x7e, 0x12, 0x80, 0x8d, 0xd1, 0x2d, 0xf8, 0x4c, 0xaf,
|
||||
0x53, 0xe2, 0xcb, 0xb7, 0x84, 0xcc, 0x88, 0x52, 0xce, 0x92, 0x36, 0xc1, 0xec, 0x59, 0xf0, 0x2e,
|
||||
0x28, 0x53, 0xf1, 0x8f, 0x80, 0x9f, 0x17, 0x4b, 0xa2, 0xeb, 0x5e, 0xd6, 0x45, 0x96, 0xec, 0x36,
|
||||
0xb4, 0xb8, 0x53, 0x11, 0x9e, 0xb4, 0xa3, 0x4a, 0xd9, 0x86, 0xd8, 0x33, 0xf2, 0xa2, 0x0b, 0xd4,
|
||||
0x73, 0x73, 0x7d, 0x7b, 0xc7, 0x99, 0xca, 0xf2, 0x54, 0x5c, 0xc8, 0x31, 0x03, 0x39, 0xb3, 0x54,
|
||||
0x23, 0x41, 0x58, 0x01, 0x24, 0xdd, 0x7e, 0x20, 0x57, 0xfa, 0xd1, 0xa1, 0x1d, 0x54, 0x44, 0x39,
|
||||
0x11, 0x9c, 0x12, 0x4c, 0x71, 0xba, 0x3a, 0x8d, 0x4d, 0x6f, 0xc9, 0xce, 0xfb, 0xe9, 0xe6, 0x2b,
|
||||
0x9f, 0x50, 0x39, 0x07, 0x86, 0x6d, 0x21, 0x26, 0xa2, 0x3c, 0x63, 0x65, 0x1a, 0x94, 0x67, 0x85,
|
||||
0x76, 0x2a, 0xa5, 0x8a, 0x27, 0x3b, 0xf0, 0xfa, 0xb9, 0x78, 0xf1, 0x5a, 0xbc, 0xa2, 0x55, 0xa8,
|
||||
0x42, 0x2b, 0xc4, 0xfa, 0x22, 0xec, 0xf2, 0x0a, 0x0c, 0x3b, 0x60, 0x8e, 0xee, 0x4f, 0xc8, 0x1a,
|
||||
0xeb, 0x55, 0xdc, 0x53, 0xbf, 0x62, 0x45, 0x17, 0xa1, 0xad, 0x78, 0x87, 0x38, 0xa4, 0x33, 0x29,
|
||||
0xd7, 0x16, 0xbb, 0xb1, 0x11, 0x3a, 0xf4, 0xf2, 0xbd, 0x8d, 0x3a, 0x84, 0xb0, 0xb1, 0x20, 0xa7,
|
||||
0x7d, 0x65, 0x04, 0x07, 0x2a, 0x41, 0xe2, 0x0c, 0x55, 0x24, 0xb3, 0x2a, 0xfe, 0xad, 0x71, 0xca,
|
||||
0x6f, 0x48, 0x13, 0xdb, 0xaf, 0x59, 0x91, 0x1d, 0x38, 0xf2, 0xd0, 0x17, 0x91, 0x3a, 0x0b, 0xce,
|
||||
0x24, 0x61, 0xc3, 0x81, 0xf6, 0x48, 0xf1, 0x27, 0xb5, 0x48, 0xdb, 0xf5, 0x79, 0xd6, 0xbe, 0x6a,
|
||||
0x69, 0xc2, 0xd3, 0xf4, 0x30, 0x92, 0xae, 0x53, 0x42, 0xa5, 0xca, 0x3b, 0x94, 0xd6, 0x0f, 0x23,
|
||||
0xb2, 0x59, 0xab, 0xd6, 0x3a, 0x38, 0xa6, 0xf9, 0xa8, 0x68, 0x84, 0x87, 0xd1, 0x46, 0x30, 0x33,
|
||||
0xba, 0x19, 0x11, 0x29, 0x90, 0x33, 0x7c, 0xd6, 0x90, 0xc8, 0x66, 0x9b, 0x4e, 0x4a, 0x39, 0x97,
|
||||
0xff, 0x01, 0x9d, 0x0f, 0x93, 0xf0, 0xda, 0x59, 0xbd, 0xa9, 0xf8, 0x6a, 0xd2, 0x7d, 0x45, 0x39,
|
||||
0xff, 0xd5, 0x94, 0x0d, 0xaa, 0x4b, 0x63, 0xb7, 0x45, 0xf6, 0x71, 0x4a, 0x29, 0xd1, 0xd4, 0x99,
|
||||
0x9d, 0xa2, 0x27, 0x84, 0x20, 0x70, 0x26, 0xbf, 0xc9, 0xcb, 0x32, 0x13, 0x98, 0x0f, 0xc8, 0xb4,
|
||||
0x0b, 0x74, 0x08, 0x91, 0x66, 0x6d, 0x23, 0xa4, 0x2e, 0xfb, 0x31, 0xa8, 0x35, 0xb0, 0xb3, 0x65,
|
||||
0x29, 0x89, 0x6f, 0x5a, 0x77, 0x8a, 0xdc, 0x94, 0xbf, 0xe9, 0xc7, 0xfe, 0x09, 0x81, 0xae, 0xc2,
|
||||
0xc6, 0xee, 0x03, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -210,7 +210,7 @@ void sendImprovInfoResponse() {
|
||||
//Use serverDescription if it has been changed from the default "WLED", else mDNS name
|
||||
bool useMdnsName = (strcmp(serverDescription, "WLED") == 0 && strlen(cmDNS) > 0);
|
||||
char vString[20];
|
||||
sprintf_P(vString, PSTR("0.14.1-b2/%i"), VERSION);
|
||||
sprintf_P(vString, PSTR("0.14.3/%i"), VERSION);
|
||||
const char *str[4] = {"WLED", vString, bString, useMdnsName ? cmDNS : serverDescription};
|
||||
|
||||
sendImprovRPCResult(ImprovRPCType::Request_Info, 4, str);
|
||||
|
@@ -214,7 +214,14 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
|
||||
#endif
|
||||
|
||||
byte fx = seg.mode;
|
||||
if (getVal(elem["fx"], &fx, 0, strip.getModeCount())) { //load effect ('r' random, '~' inc/dec, 0-255 exact value)
|
||||
byte last = strip.getModeCount();
|
||||
// partial fix for #3605
|
||||
if (!elem["fx"].isNull() && elem["fx"].is<const char*>()) {
|
||||
const char *tmp = elem["fx"].as<const char *>();
|
||||
if (strlen(tmp) > 3 && (strchr(tmp,'r') || strchr(tmp,'~') != strrchr(tmp,'~'))) last = 0; // we have "X~Y(r|[w]~[-])" form
|
||||
}
|
||||
// end fix
|
||||
if (getVal(elem["fx"], &fx, 0, last)) { //load effect ('r' random, '~' inc/dec, 0-255 exact value, 5~10r pick random between 5 & 10)
|
||||
if (!presetId && currentPlaylist>=0) unloadPlaylist();
|
||||
if (fx != seg.mode) seg.setMode(fx, elem[F("fxdef")]);
|
||||
}
|
||||
@@ -1013,6 +1020,30 @@ void serializeModeNames(JsonArray arr)
|
||||
}
|
||||
}
|
||||
|
||||
// Global buffer locking response helper class (to make sure lock is released when AsyncJsonResponse is destroyed)
|
||||
class LockedJsonResponse: public AsyncJsonResponse {
|
||||
bool _holding_lock;
|
||||
public:
|
||||
// WARNING: constructor assumes requestJSONBufferLock() was successfully acquired externally/prior to constructing the instance
|
||||
// Not a good practice with C++. Unfortunately AsyncJsonResponse only has 2 constructors - for dynamic buffer or existing buffer,
|
||||
// with existing buffer it clears its content during construction
|
||||
// if the lock was not acquired (using JSONBufferGuard class) previous implementation still cleared existing buffer
|
||||
inline LockedJsonResponse(JsonDocument* doc, bool isArray) : AsyncJsonResponse(doc, isArray), _holding_lock(true) {};
|
||||
|
||||
virtual size_t _fillBuffer(uint8_t *buf, size_t maxLen) {
|
||||
size_t result = AsyncJsonResponse::_fillBuffer(buf, maxLen);
|
||||
// Release lock as soon as we're done filling content
|
||||
if (((result + _sentLength) >= (_contentLength)) && _holding_lock) {
|
||||
releaseJSONBufferLock();
|
||||
_holding_lock = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// destructor will remove JSON buffer lock when response is destroyed in AsyncWebServer
|
||||
virtual ~LockedJsonResponse() { if (_holding_lock) releaseJSONBufferLock(); };
|
||||
};
|
||||
|
||||
void serveJson(AsyncWebServerRequest* request)
|
||||
{
|
||||
byte subJson = 0;
|
||||
@@ -1032,10 +1063,10 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
}
|
||||
#endif
|
||||
else if (url.indexOf("pal") > 0) {
|
||||
request->send_P(200, "application/json", JSON_palette_names);
|
||||
request->send_P(200, F("application/json"), JSON_palette_names);
|
||||
return;
|
||||
}
|
||||
else if (url.indexOf("cfg") > 0 && handleFileRead(request, "/cfg.json")) {
|
||||
else if (url.indexOf("cfg") > 0 && handleFileRead(request, F("/cfg.json"))) {
|
||||
return;
|
||||
}
|
||||
else if (url.length() > 6) { //not just /json
|
||||
@@ -1047,7 +1078,9 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
request->send(503, "application/json", F("{\"error\":3}"));
|
||||
return;
|
||||
}
|
||||
AsyncJsonResponse *response = new AsyncJsonResponse(&doc, subJson==JSON_PATH_FXDATA || subJson==JSON_PATH_EFFECTS); // will clear and convert JsonDocument into JsonArray if necessary
|
||||
// releaseJSONBufferLock() will be called when "response" is destroyed (from AsyncWebServer)
|
||||
// make sure you delete "response" if no "request->send(response);" is made
|
||||
LockedJsonResponse *response = new LockedJsonResponse(&doc, subJson==JSON_PATH_FXDATA || subJson==JSON_PATH_EFFECTS); // will clear and convert JsonDocument into JsonArray if necessary
|
||||
|
||||
JsonVariant lDoc = response->getRoot();
|
||||
|
||||
@@ -1060,7 +1093,7 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
case JSON_PATH_NODES:
|
||||
serializeNodes(lDoc); break;
|
||||
case JSON_PATH_PALETTES:
|
||||
serializePalettes(lDoc, request->hasParam("page") ? request->getParam("page")->value().toInt() : 0); break;
|
||||
serializePalettes(lDoc, request->hasParam(F("page")) ? request->getParam(F("page"))->value().toInt() : 0); break;
|
||||
case JSON_PATH_EFFECTS:
|
||||
serializeModeNames(lDoc); break;
|
||||
case JSON_PATH_FXDATA:
|
||||
@@ -1090,7 +1123,6 @@ void serveJson(AsyncWebServerRequest* request)
|
||||
DEBUG_PRINT(F("JSON content length: ")); DEBUG_PRINTLN(len);
|
||||
|
||||
request->send(response);
|
||||
releaseJSONBufferLock();
|
||||
}
|
||||
|
||||
#ifdef WLED_ENABLE_JSONLIVE
|
||||
@@ -1130,7 +1162,7 @@ bool serveLiveLeds(AsyncWebServerRequest* request, uint32_t wsClient)
|
||||
oappendi(n);
|
||||
oappend("}");
|
||||
if (request) {
|
||||
request->send(200, "application/json", buffer);
|
||||
request->send(200, F("application/json"), buffer);
|
||||
}
|
||||
#ifdef WLED_ENABLE_WEBSOCKETS
|
||||
else {
|
||||
|
@@ -137,6 +137,8 @@ void stateUpdated(byte callMode) {
|
||||
if (strip.getTransition() == 0) {
|
||||
jsonTransitionOnce = false;
|
||||
transitionActive = false;
|
||||
applyFinalBri();
|
||||
strip.trigger();
|
||||
return;
|
||||
}
|
||||
|
||||
|
219
wled00/ntp.cpp
219
wled00/ntp.cpp
@@ -48,129 +48,118 @@ Timezone* tz;
|
||||
#define TZ_ANCHORAGE 20
|
||||
#define TZ_MX_CENTRAL 21
|
||||
#define TZ_PAKISTAN 22
|
||||
|
||||
#define TZ_COUNT 23
|
||||
#define TZ_INIT 255
|
||||
|
||||
byte tzCurrent = TZ_INIT; //uninitialized
|
||||
|
||||
/* C++11 form -- static std::array<std::pair<TimeChangeRule, TimeChangeRule>, TZ_COUNT> TZ_TABLE PROGMEM = {{ */
|
||||
static const std::pair<TimeChangeRule, TimeChangeRule> TZ_TABLE[] PROGMEM = {
|
||||
/* TZ_UTC */ {
|
||||
{Last, Sun, Mar, 1, 0}, // UTC
|
||||
{Last, Sun, Mar, 1, 0} // Same
|
||||
},
|
||||
/* TZ_UK */ {
|
||||
{Last, Sun, Mar, 1, 60}, //British Summer Time
|
||||
{Last, Sun, Oct, 2, 0} //Standard Time
|
||||
},
|
||||
/* TZ_EUROPE_CENTRAL */ {
|
||||
{Last, Sun, Mar, 2, 120}, //Central European Summer Time
|
||||
{Last, Sun, Oct, 3, 60} //Central European Standard Time
|
||||
},
|
||||
/* TZ_EUROPE_EASTERN */ {
|
||||
{Last, Sun, Mar, 3, 180}, //East European Summer Time
|
||||
{Last, Sun, Oct, 4, 120} //East European Standard Time
|
||||
},
|
||||
/* TZ_US_EASTERN */ {
|
||||
{Second, Sun, Mar, 2, -240}, //EDT = UTC - 4 hours
|
||||
{First, Sun, Nov, 2, -300} //EST = UTC - 5 hours
|
||||
},
|
||||
/* TZ_US_CENTRAL */ {
|
||||
{Second, Sun, Mar, 2, -300}, //CDT = UTC - 5 hours
|
||||
{First, Sun, Nov, 2, -360} //CST = UTC - 6 hours
|
||||
},
|
||||
/* TZ_US_MOUNTAIN */ {
|
||||
{Second, Sun, Mar, 2, -360}, //MDT = UTC - 6 hours
|
||||
{First, Sun, Nov, 2, -420} //MST = UTC - 7 hours
|
||||
},
|
||||
/* TZ_US_ARIZONA */ {
|
||||
{First, Sun, Nov, 2, -420}, //MST = UTC - 7 hours
|
||||
{First, Sun, Nov, 2, -420} //MST = UTC - 7 hours
|
||||
},
|
||||
/* TZ_US_PACIFIC */ {
|
||||
{Second, Sun, Mar, 2, -420}, //PDT = UTC - 7 hours
|
||||
{First, Sun, Nov, 2, -480} //PST = UTC - 8 hours
|
||||
},
|
||||
/* TZ_CHINA */ {
|
||||
{Last, Sun, Mar, 1, 480}, //CST = UTC + 8 hours
|
||||
{Last, Sun, Mar, 1, 480}
|
||||
},
|
||||
/* TZ_JAPAN */ {
|
||||
{Last, Sun, Mar, 1, 540}, //JST = UTC + 9 hours
|
||||
{Last, Sun, Mar, 1, 540}
|
||||
},
|
||||
/* TZ_AUSTRALIA_EASTERN */ {
|
||||
{First, Sun, Oct, 2, 660}, //AEDT = UTC + 11 hours
|
||||
{First, Sun, Apr, 3, 600} //AEST = UTC + 10 hours
|
||||
},
|
||||
/* TZ_NEW_ZEALAND */ {
|
||||
{Last, Sun, Sep, 2, 780}, //NZDT = UTC + 13 hours
|
||||
{First, Sun, Apr, 3, 720} //NZST = UTC + 12 hours
|
||||
},
|
||||
/* TZ_NORTH_KOREA */ {
|
||||
{Last, Sun, Mar, 1, 510}, //Pyongyang Time = UTC + 8.5 hours
|
||||
{Last, Sun, Mar, 1, 510}
|
||||
},
|
||||
/* TZ_INDIA */ {
|
||||
{Last, Sun, Mar, 1, 330}, //India Standard Time = UTC + 5.5 hours
|
||||
{Last, Sun, Mar, 1, 330}
|
||||
},
|
||||
/* TZ_SASKACHEWAN */ {
|
||||
{First, Sun, Nov, 2, -360}, //CST = UTC - 6 hours
|
||||
{First, Sun, Nov, 2, -360}
|
||||
},
|
||||
/* TZ_AUSTRALIA_NORTHERN */ {
|
||||
{First, Sun, Apr, 3, 570}, //ACST = UTC + 9.5 hours
|
||||
{First, Sun, Apr, 3, 570}
|
||||
},
|
||||
/* TZ_AUSTRALIA_SOUTHERN */ {
|
||||
{First, Sun, Oct, 2, 630}, //ACDT = UTC + 10.5 hours
|
||||
{First, Sun, Apr, 3, 570} //ACST = UTC + 9.5 hours
|
||||
},
|
||||
/* TZ_HAWAII */ {
|
||||
{Last, Sun, Mar, 1, -600}, //HST = UTC - 10 hours
|
||||
{Last, Sun, Mar, 1, -600}
|
||||
},
|
||||
/* TZ_NOVOSIBIRSK */ {
|
||||
{Last, Sun, Mar, 1, 420}, //CST = UTC + 7 hours
|
||||
{Last, Sun, Mar, 1, 420}
|
||||
},
|
||||
/* TZ_ANCHORAGE */ {
|
||||
{Second, Sun, Mar, 2, -480}, //AKDT = UTC - 8 hours
|
||||
{First, Sun, Nov, 2, -540} //AKST = UTC - 9 hours
|
||||
},
|
||||
/* TZ_MX_CENTRAL */ {
|
||||
{First, Sun, Apr, 2, -360}, //CST = UTC - 6 hours
|
||||
{First, Sun, Apr, 2, -360}
|
||||
},
|
||||
/* TZ_PAKISTAN */ {
|
||||
{Last, Sun, Mar, 1, 300}, //Pakistan Standard Time = UTC + 5 hours
|
||||
{Last, Sun, Mar, 1, 300}
|
||||
}
|
||||
};
|
||||
|
||||
void updateTimezone() {
|
||||
delete tz;
|
||||
TimeChangeRule tcrDaylight = {Last, Sun, Mar, 1, 0}; //UTC
|
||||
TimeChangeRule tcrStandard = tcrDaylight; //UTC
|
||||
|
||||
switch (currentTimezone) {
|
||||
case TZ_UK : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 60}; //British Summer Time
|
||||
tcrStandard = {Last, Sun, Oct, 2, 0}; //Standard Time
|
||||
break;
|
||||
}
|
||||
case TZ_EUROPE_CENTRAL : {
|
||||
tcrDaylight = {Last, Sun, Mar, 2, 120}; //Central European Summer Time
|
||||
tcrStandard = {Last, Sun, Oct, 3, 60}; //Central European Standard Time
|
||||
break;
|
||||
}
|
||||
case TZ_EUROPE_EASTERN : {
|
||||
tcrDaylight = {Last, Sun, Mar, 3, 180}; //East European Summer Time
|
||||
tcrStandard = {Last, Sun, Oct, 4, 120}; //East European Standard Time
|
||||
break;
|
||||
}
|
||||
case TZ_US_EASTERN : {
|
||||
tcrDaylight = {Second, Sun, Mar, 2, -240}; //EDT = UTC - 4 hours
|
||||
tcrStandard = {First, Sun, Nov, 2, -300}; //EST = UTC - 5 hours
|
||||
break;
|
||||
}
|
||||
case TZ_US_CENTRAL : {
|
||||
tcrDaylight = {Second, Sun, Mar, 2, -300}; //CDT = UTC - 5 hours
|
||||
tcrStandard = {First, Sun, Nov, 2, -360}; //CST = UTC - 6 hours
|
||||
break;
|
||||
}
|
||||
case TZ_US_MOUNTAIN : {
|
||||
tcrDaylight = {Second, Sun, Mar, 2, -360}; //MDT = UTC - 6 hours
|
||||
tcrStandard = {First, Sun, Nov, 2, -420}; //MST = UTC - 7 hours
|
||||
break;
|
||||
}
|
||||
case TZ_US_ARIZONA : {
|
||||
tcrDaylight = {First, Sun, Nov, 2, -420}; //MST = UTC - 7 hours
|
||||
tcrStandard = {First, Sun, Nov, 2, -420}; //MST = UTC - 7 hours
|
||||
break;
|
||||
}
|
||||
case TZ_US_PACIFIC : {
|
||||
tcrDaylight = {Second, Sun, Mar, 2, -420}; //PDT = UTC - 7 hours
|
||||
tcrStandard = {First, Sun, Nov, 2, -480}; //PST = UTC - 8 hours
|
||||
break;
|
||||
}
|
||||
case TZ_CHINA : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 480}; //CST = UTC + 8 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_JAPAN : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 540}; //JST = UTC + 9 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_AUSTRALIA_EASTERN : {
|
||||
tcrDaylight = {First, Sun, Oct, 2, 660}; //AEDT = UTC + 11 hours
|
||||
tcrStandard = {First, Sun, Apr, 3, 600}; //AEST = UTC + 10 hours
|
||||
break;
|
||||
}
|
||||
case TZ_NEW_ZEALAND : {
|
||||
tcrDaylight = {Last, Sun, Sep, 2, 780}; //NZDT = UTC + 13 hours
|
||||
tcrStandard = {First, Sun, Apr, 3, 720}; //NZST = UTC + 12 hours
|
||||
break;
|
||||
}
|
||||
case TZ_NORTH_KOREA : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 510}; //Pyongyang Time = UTC + 8.5 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_INDIA : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 330}; //India Standard Time = UTC + 5.5 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_SASKACHEWAN : {
|
||||
tcrDaylight = {First, Sun, Nov, 2, -360}; //CST = UTC - 6 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_AUSTRALIA_NORTHERN : {
|
||||
tcrDaylight = {First, Sun, Apr, 3, 570}; //ACST = UTC + 9.5 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_AUSTRALIA_SOUTHERN : {
|
||||
tcrDaylight = {First, Sun, Oct, 2, 630}; //ACDT = UTC + 10.5 hours
|
||||
tcrStandard = {First, Sun, Apr, 3, 570}; //ACST = UTC + 9.5 hours
|
||||
break;
|
||||
}
|
||||
case TZ_HAWAII : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, -600}; //HST = UTC - 10 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_NOVOSIBIRSK : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 420}; //CST = UTC + 7 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_ANCHORAGE : {
|
||||
tcrDaylight = {Second, Sun, Mar, 2, -480}; //AKDT = UTC - 8 hours
|
||||
tcrStandard = {First, Sun, Nov, 2, -540}; //AKST = UTC - 9 hours
|
||||
break;
|
||||
}
|
||||
case TZ_MX_CENTRAL : {
|
||||
tcrDaylight = {First, Sun, Apr, 2, -360}; //CST = UTC - 6 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
case TZ_PAKISTAN : {
|
||||
tcrDaylight = {Last, Sun, Mar, 1, 300}; //Pakistan Standard Time = UTC + 5 hours
|
||||
tcrStandard = tcrDaylight;
|
||||
break;
|
||||
}
|
||||
TimeChangeRule tcrDaylight, tcrStandard;
|
||||
auto tz_table_entry = currentTimezone;
|
||||
if (tz_table_entry >= TZ_COUNT) {
|
||||
tz_table_entry = 0;
|
||||
}
|
||||
|
||||
tzCurrent = currentTimezone;
|
||||
memcpy_P(&tcrDaylight, &TZ_TABLE[tz_table_entry].first, sizeof(tcrDaylight));
|
||||
memcpy_P(&tcrStandard, &TZ_TABLE[tz_table_entry].second, sizeof(tcrStandard));
|
||||
|
||||
tz = new Timezone(tcrDaylight, tcrStandard);
|
||||
}
|
||||
|
@@ -30,8 +30,8 @@
|
||||
bool dmxStarted = false;
|
||||
int sendPin = 2; //default on ESP8266
|
||||
|
||||
//DMX value array and size. Entry 0 will hold startbyte
|
||||
uint8_t dmxDataStore[dmxMaxChannel] = {};
|
||||
//DMX value array and size. Entry 0 will hold startbyte, so we need 512+1 elements
|
||||
uint8_t dmxDataStore[dmxMaxChannel+1] = {};
|
||||
int channelSize;
|
||||
|
||||
|
||||
@@ -106,4 +106,4 @@ void DMXESPSerial::update() {
|
||||
|
||||
// Function to update the DMX bus
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@@ -195,6 +195,8 @@ void exitRealtime() {
|
||||
realtimeIP[0] = 0;
|
||||
if (useMainSegmentOnly) { // unfreeze live segment again
|
||||
strip.getMainSegment().freeze = false;
|
||||
} else {
|
||||
strip.show(); // possible fix for #3589
|
||||
}
|
||||
updateInterfaces(CALL_MODE_WS_SEND);
|
||||
}
|
||||
@@ -525,7 +527,7 @@ void handleNotifications()
|
||||
if (realtimeOverride && !(realtimeMode && useMainSegmentOnly)) return;
|
||||
|
||||
uint16_t totalLen = strip.getLengthTotal();
|
||||
if (udpIn[0] == 1) //warls
|
||||
if ((udpIn[0] == 1) && (packetSize > 5)) //warls - avoiding infinite "for" loop (unsigned underflow)
|
||||
{
|
||||
for (size_t i = 2; i < packetSize -3; i += 4)
|
||||
{
|
||||
@@ -540,7 +542,7 @@ void handleNotifications()
|
||||
|
||||
id++; if (id >= totalLen) break;
|
||||
}
|
||||
} else if (udpIn[0] == 3) //drgbw
|
||||
} else if ((udpIn[0] == 3) && (packetSize > 5)) //drgbw - avoiding infinite "for" loop (unsigned underflow)
|
||||
{
|
||||
uint16_t id = 0;
|
||||
for (size_t i = 2; i < packetSize -3; i += 4)
|
||||
|
@@ -170,7 +170,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef USERMOD_KLIPPER_PERCENTAGE
|
||||
#include "..\usermods\usermod_v2_klipper_percentage\usermod_v2_klipper_percentage.h"
|
||||
#include "../usermods/usermod_v2_klipper_percentage/usermod_v2_klipper_percentage.h"
|
||||
#endif
|
||||
|
||||
#ifdef USERMOD_BOBLIGHT
|
||||
@@ -201,6 +201,9 @@
|
||||
#include "../usermods/LDR_Dusk_Dawn_v2/usermod_LDR_Dusk_Dawn_v2.h"
|
||||
#endif
|
||||
|
||||
#ifdef USERMOD_STAIRCASE_WIPE
|
||||
#include "../usermods/stairway_wipe_basic/stairway-wipe-usermod-v2.h"
|
||||
#endif
|
||||
void registerUsermods()
|
||||
{
|
||||
/*
|
||||
@@ -380,4 +383,8 @@ void registerUsermods()
|
||||
#ifdef USERMOD_LDR_DUSK_DAWN
|
||||
usermods.add(new LDR_Dusk_Dawn_v2());
|
||||
#endif
|
||||
|
||||
#ifdef USERMOD_STAIRCASE_WIPE
|
||||
usermods.add(new StairwayWipeUsermod());
|
||||
#endif
|
||||
}
|
||||
|
@@ -3,12 +3,12 @@
|
||||
/*
|
||||
Main sketch, global variable declarations
|
||||
@title WLED project sketch
|
||||
@version 0.14.1-a1
|
||||
@version 0.14.3
|
||||
@author Christian Schwinne
|
||||
*/
|
||||
|
||||
// version code in format yymmddb (b = daily build)
|
||||
#define VERSION 2312290
|
||||
#define VERSION 2404040
|
||||
|
||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||
//#define WLED_USE_MY_CONFIG
|
||||
|
@@ -80,13 +80,13 @@ void createEditHandler(bool enable) {
|
||||
editHandler = &server.addHandler(new SPIFFSEditor("","",WLED_FS));//http_username,http_password));
|
||||
#endif
|
||||
#else
|
||||
editHandler = &server.on("/edit", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
editHandler = &server.on(SET_F("/edit"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 501, "Not implemented", F("The FS editor is disabled in this build."), 254);
|
||||
});
|
||||
#endif
|
||||
} else {
|
||||
editHandler = &server.on("/edit", HTTP_ANY, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 401, "Access Denied", FPSTR(s_unlock_cfg), 254);
|
||||
editHandler = &server.on(SET_F("/edit"), HTTP_ANY, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 401, F("Access Denied"), FPSTR(s_unlock_cfg), 254);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -95,11 +95,11 @@ bool captivePortal(AsyncWebServerRequest *request)
|
||||
{
|
||||
if (ON_STA_FILTER(request)) return false; //only serve captive in AP mode
|
||||
String hostH;
|
||||
if (!request->hasHeader("Host")) return false;
|
||||
hostH = request->getHeader("Host")->value();
|
||||
if (!request->hasHeader(F("Host"))) return false;
|
||||
hostH = request->getHeader(F("Host"))->value();
|
||||
|
||||
if (!isIp(hostH) && hostH.indexOf("wled.me") < 0 && hostH.indexOf(cmDNS) < 0) {
|
||||
DEBUG_PRINTLN("Captive portal");
|
||||
if (!isIp(hostH) && hostH.indexOf(F("wled.me")) < 0 && hostH.indexOf(cmDNS) < 0) {
|
||||
DEBUG_PRINTLN(F("Captive portal"));
|
||||
AsyncWebServerResponse *response = request->beginResponse(302);
|
||||
response->addHeader(F("Location"), F("http://4.3.2.1"));
|
||||
request->send(response);
|
||||
@@ -117,7 +117,7 @@ void initServer()
|
||||
|
||||
#ifdef WLED_ENABLE_WEBSOCKETS
|
||||
#ifndef WLED_DISABLE_2D
|
||||
server.on("/liveview2D", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/liveview2D"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_liveviewws2D, PAGE_liveviewws2D_length);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
@@ -126,7 +126,7 @@ void initServer()
|
||||
});
|
||||
#endif
|
||||
#endif
|
||||
server.on("/liveview", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/liveview"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_liveview, PAGE_liveview_length);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
@@ -135,13 +135,13 @@ void initServer()
|
||||
});
|
||||
|
||||
//settings page
|
||||
server.on("/settings", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/settings"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveSettings(request);
|
||||
});
|
||||
|
||||
// "/settings/settings.js&p=x" request also handled by serveSettings()
|
||||
|
||||
server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/style.css"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/css", PAGE_settingsCss, PAGE_settingsCss_length);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
@@ -149,31 +149,31 @@ void initServer()
|
||||
request->send(response);
|
||||
});
|
||||
|
||||
server.on("/favicon.ico", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/favicon.ico"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if(!handleFileRead(request, "/favicon.ico"))
|
||||
{
|
||||
request->send_P(200, "image/x-icon", favicon, 156);
|
||||
}
|
||||
});
|
||||
|
||||
server.on("/welcome", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/welcome"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveSettings(request);
|
||||
});
|
||||
|
||||
server.on("/reset", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/reset"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 200,F("Rebooting now..."),F("Please wait ~10 seconds..."),129);
|
||||
doReboot = true;
|
||||
});
|
||||
|
||||
server.on("/settings", HTTP_POST, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/settings"), HTTP_POST, [](AsyncWebServerRequest *request){
|
||||
serveSettings(request, true);
|
||||
});
|
||||
|
||||
server.on("/json", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/json"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveJson(request);
|
||||
});
|
||||
|
||||
AsyncCallbackJsonWebHandler* handler = new AsyncCallbackJsonWebHandler("/json", [](AsyncWebServerRequest *request) {
|
||||
AsyncCallbackJsonWebHandler* handler = new AsyncCallbackJsonWebHandler(F("/json"), [](AsyncWebServerRequest *request) {
|
||||
bool verboseResponse = false;
|
||||
bool isConfig = false;
|
||||
|
||||
@@ -222,15 +222,15 @@ void initServer()
|
||||
}, JSON_BUFFER_SIZE);
|
||||
server.addHandler(handler);
|
||||
|
||||
server.on("/version", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/version"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain", (String)VERSION);
|
||||
});
|
||||
|
||||
server.on("/uptime", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/uptime"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain", (String)millis());
|
||||
});
|
||||
|
||||
server.on("/freeheap", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/freeheap"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send(200, "text/plain", (String)ESP.getFreeHeap());
|
||||
});
|
||||
|
||||
@@ -244,17 +244,17 @@ void initServer()
|
||||
});
|
||||
#endif
|
||||
|
||||
server.on("/teapot", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/teapot"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 418, F("418. I'm a teapot."), F("(Tangible Embedded Advanced Project Of Twinkling)"), 254);
|
||||
});
|
||||
|
||||
server.on("/upload", HTTP_POST, [](AsyncWebServerRequest *request) {},
|
||||
server.on(SET_F("/upload"), HTTP_POST, [](AsyncWebServerRequest *request) {},
|
||||
[](AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data,
|
||||
size_t len, bool final) {handleUpload(request, filename, index, data, len, final);}
|
||||
);
|
||||
|
||||
#ifdef WLED_ENABLE_SIMPLE_UI
|
||||
server.on("/simple.htm", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/simple.htm"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, "/simple.htm")) return;
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_simple, PAGE_simple_L);
|
||||
@@ -264,14 +264,14 @@ void initServer()
|
||||
});
|
||||
#endif
|
||||
|
||||
server.on("/iro.js", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/iro.js"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "application/javascript", iroJs, iroJs_length);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
setStaticContentCacheHeaders(response);
|
||||
request->send(response);
|
||||
});
|
||||
|
||||
server.on("/rangetouch.js", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/rangetouch.js"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "application/javascript", rangetouchJs, rangetouchJs_length);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
setStaticContentCacheHeaders(response);
|
||||
@@ -282,20 +282,20 @@ void initServer()
|
||||
|
||||
#ifndef WLED_DISABLE_OTA
|
||||
//init ota page
|
||||
server.on("/update", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/update"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (otaLock) {
|
||||
serveMessage(request, 401, "Access Denied", FPSTR(s_unlock_ota), 254);
|
||||
serveMessage(request, 401, F("Access Denied"), FPSTR(s_unlock_ota), 254);
|
||||
} else
|
||||
serveSettings(request); // checks for "upd" in URL and handles PIN
|
||||
});
|
||||
|
||||
server.on("/update", HTTP_POST, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/update"), HTTP_POST, [](AsyncWebServerRequest *request){
|
||||
if (!correctPIN) {
|
||||
serveSettings(request, true); // handle PIN page POST request
|
||||
return;
|
||||
}
|
||||
if (otaLock) {
|
||||
serveMessage(request, 401, "Access Denied", FPSTR(s_unlock_ota), 254);
|
||||
serveMessage(request, 401, F("Access Denied"), FPSTR(s_unlock_ota), 254);
|
||||
return;
|
||||
}
|
||||
if (Update.hasError()) {
|
||||
@@ -328,19 +328,19 @@ void initServer()
|
||||
}
|
||||
});
|
||||
#else
|
||||
server.on("/update", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 501, "Not implemented", F("OTA updating is disabled in this build."), 254);
|
||||
server.on(SET_F("/update"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 501, F("Not implemented"), F("OTA updating is disabled in this build."), 254);
|
||||
});
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef WLED_ENABLE_DMX
|
||||
server.on("/dmxmap", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
server.on(SET_F("/dmxmap"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
request->send_P(200, "text/html", PAGE_dmxmap , dmxProcessor);
|
||||
});
|
||||
#else
|
||||
server.on("/dmxmap", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 501, "Not implemented", F("DMX support is not enabled in this build."), 254);
|
||||
server.on(SET_F("/dmxmap"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
serveMessage(request, 501, F("Not implemented"), F("DMX support is not enabled in this build."), 254);
|
||||
});
|
||||
#endif
|
||||
|
||||
@@ -354,8 +354,8 @@ void initServer()
|
||||
});
|
||||
|
||||
#ifdef WLED_ENABLE_PIXART
|
||||
server.on("/pixart.htm", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, "/pixart.htm")) return;
|
||||
server.on(SET_F("/pixart.htm"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, F("/pixart.htm"))) return;
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_pixart, PAGE_pixart_L);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
@@ -365,8 +365,8 @@ void initServer()
|
||||
#endif
|
||||
|
||||
#ifndef WLED_DISABLE_PXMAGIC
|
||||
server.on("/pxmagic.htm", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, "/pxmagic.htm")) return;
|
||||
server.on(SET_F("/pxmagic.htm"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, F("/pxmagic.htm"))) return;
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_pxmagic, PAGE_pxmagic_L);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
@@ -375,8 +375,8 @@ void initServer()
|
||||
});
|
||||
#endif
|
||||
|
||||
server.on("/cpal.htm", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, "/cpal.htm")) return;
|
||||
server.on(SET_F("/cpal.htm"), HTTP_GET, [](AsyncWebServerRequest *request){
|
||||
if (handleFileRead(request, F("/cpal.htm"))) return;
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_cpal, PAGE_cpal_L);
|
||||
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||
@@ -442,7 +442,7 @@ void setStaticContentCacheHeaders(AsyncWebServerResponse *response)
|
||||
|
||||
void serveIndex(AsyncWebServerRequest* request)
|
||||
{
|
||||
if (handleFileRead(request, "/index.htm")) return;
|
||||
if (handleFileRead(request, F("/index.htm"))) return;
|
||||
|
||||
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||
|
||||
@@ -586,7 +586,7 @@ void serveSettings(AsyncWebServerRequest* request, bool post)
|
||||
// if OTA locked or too frequent PIN entry requests fail hard
|
||||
if ((subPage == SUBPAGE_WIFI && wifiLock && otaLock) || (post && !correctPIN && millis()-lastEditTime < PIN_RETRY_COOLDOWN))
|
||||
{
|
||||
serveMessage(request, 401, "Access Denied", FPSTR(s_unlock_ota), 254); return;
|
||||
serveMessage(request, 401, F("Access Denied"), FPSTR(s_unlock_ota), 254); return;
|
||||
}
|
||||
|
||||
if (post) { //settings/set POST request, saving
|
||||
|
Reference in New Issue
Block a user