From 02405b4856d75a0cd29bf8ff5ba9239562ec8072 Mon Sep 17 00:00:00 2001 From: Woody Date: Wed, 3 Apr 2024 12:05:15 +0200 Subject: [PATCH 01/11] Create stale.yml --- .github/workflows/stale.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000000..4d531fd519 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,27 @@ +name: 'Close stale issues and PRs' +on: + schedule: + - cron: '0 12 * * *' + workflow_dispatch: + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + days-before-stale: 120 + days-before-close: 7 + exempt-issue-labels: 'pinned,keep,enhancement,confirmed' + exempt-pr-labels: 'pinned,keep,enhancement,confirmed' + stale-issue-message: > + Hey! This issue has been open for quite some time without any new comments now. + It will be closed automatically in a week if no further activity occurs. + + Thank you for using WLED! ✨ + stale-pr-message: > + Hey! This pull request has been open for quite some time without any new comments now. + It will be closed automatically in a week if no further activity occurs. + + Thank you for using WLED! ✨ + debug-only: true From bff6697690cd6a3de72f183403949e75644a3e00 Mon Sep 17 00:00:00 2001 From: Will Miles Date: Mon, 1 Apr 2024 11:25:31 -0400 Subject: [PATCH 02/11] Update to AsyncWebServer v2.2.1 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 0adc18cf28..cbe13c0dd8 100644 --- a/platformio.ini +++ b/platformio.ini @@ -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.2.0 + 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 From 00f5471270757e435753d7bbce46870ba1144cca Mon Sep 17 00:00:00 2001 From: Blaz Kristan Date: Thu, 4 Apr 2024 21:59:41 +0200 Subject: [PATCH 03/11] Build bump, changelog udate --- CHANGELOG.md | 3 ++- wled00/wled.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cff856a4b..f1fe5cbdd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,9 @@ ## WLED changelog -#### Build 2403290 +#### 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 diff --git a/wled00/wled.h b/wled00/wled.h index ba38c5c796..5834025c69 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -3,12 +3,12 @@ /* Main sketch, global variable declarations @title WLED project sketch - @version 0.14.2 + @version 0.14.3 @author Christian Schwinne */ // version code in format yymmddb (b = daily build) -#define VERSION 2403290 +#define VERSION 2404040 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG From a418cd2a2a5afd4bedbafca15239d510797c46fa Mon Sep 17 00:00:00 2001 From: Woody Date: Sat, 13 Apr 2024 19:37:49 +0200 Subject: [PATCH 04/11] Activate stale (#3898) * Update stale.yml Update pr text Schedule action 3 times a day * Delete old .github/stale.yml * Set exempt-all-milestones to true in stale.yml --- .github/stale.yml | 20 -------------------- .github/workflows/stale.yml | 6 +++--- 2 files changed, 3 insertions(+), 23 deletions(-) delete mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 811db619ae..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 120 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - keep - - enhancement - - confirmed -# Label to use when marking an issue as stale -staleLabel: stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - Hey! This issue has been open for quite some time without any new comments now. - It will be closed automatically in a week if no further activity occurs. - - Thank you for using WLED! -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 4d531fd519..aaad16a44c 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,7 +1,7 @@ name: 'Close stale issues and PRs' on: schedule: - - cron: '0 12 * * *' + - cron: '0 6,12,18 * * *' workflow_dispatch: jobs: @@ -14,6 +14,7 @@ jobs: days-before-close: 7 exempt-issue-labels: 'pinned,keep,enhancement,confirmed' exempt-pr-labels: 'pinned,keep,enhancement,confirmed' + exempt-all-milestones: true stale-issue-message: > Hey! This issue has been open for quite some time without any new comments now. It will be closed automatically in a week if no further activity occurs. @@ -23,5 +24,4 @@ jobs: Hey! This pull request has been open for quite some time without any new comments now. It will be closed automatically in a week if no further activity occurs. - Thank you for using WLED! ✨ - debug-only: true + Thank you for contributing to WLED! ❤️ From d2b4d2531752ea7548cc9ba1a4e35915f0213b74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Apr 2024 19:38:03 +0200 Subject: [PATCH 05/11] Bump idna from 3.4 to 3.7 (#3895) Bumps [idna](https://github.com/kjd/idna) from 3.4 to 3.7. - [Release notes](https://github.com/kjd/idna/releases) - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst) - [Commits](https://github.com/kjd/idna/compare/v3.4...v3.7) --- updated-dependencies: - dependency-name: idna dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8b55606dcb..c56efad498 100644 --- a/requirements.txt +++ b/requirements.txt @@ -26,7 +26,7 @@ h11==0.14.0 # via # uvicorn # wsproto -idna==3.4 +idna==3.7 # via # anyio # requests @@ -50,6 +50,8 @@ starlette==0.23.1 # via platformio tabulate==0.9.0 # via platformio +typing-extensions==4.11.0 + # via starlette urllib3==1.26.18 # via requests uvicorn==0.20.0 From cd928bc586cedf5bc5f4ed418c2ce743efc29523 Mon Sep 17 00:00:00 2001 From: Woody Date: Sun, 14 Apr 2024 13:14:03 +0200 Subject: [PATCH 06/11] Increase operations-per-run in stale.yml Because of this we don't need to run this action 3 times a day --- .github/workflows/stale.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index aaad16a44c..58a0b18d87 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,7 +1,7 @@ name: 'Close stale issues and PRs' on: schedule: - - cron: '0 6,12,18 * * *' + - cron: '0 12 * * *' workflow_dispatch: jobs: @@ -15,6 +15,7 @@ jobs: exempt-issue-labels: 'pinned,keep,enhancement,confirmed' exempt-pr-labels: 'pinned,keep,enhancement,confirmed' exempt-all-milestones: true + operations-per-run: 150 stale-issue-message: > Hey! This issue has been open for quite some time without any new comments now. It will be closed automatically in a week if no further activity occurs. From b2e68db380326804d545b7bc71233edf8c041b35 Mon Sep 17 00:00:00 2001 From: Woody Date: Mon, 15 Apr 2024 22:55:38 +0200 Subject: [PATCH 07/11] Increase operations-per-run in stale.yml again --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 58a0b18d87..5d62571e1e 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -15,7 +15,7 @@ jobs: exempt-issue-labels: 'pinned,keep,enhancement,confirmed' exempt-pr-labels: 'pinned,keep,enhancement,confirmed' exempt-all-milestones: true - operations-per-run: 150 + operations-per-run: 1000 stale-issue-message: > Hey! This issue has been open for quite some time without any new comments now. It will be closed automatically in a week if no further activity occurs. From 6272969983c35e824622cf7d7515165eeff2e02f Mon Sep 17 00:00:00 2001 From: Woody Date: Tue, 16 Apr 2024 15:07:12 +0200 Subject: [PATCH 08/11] Set stale-pr-label & stale-issue-label to 'stale' in stale.yml Hopefully this fixes the error messages that were thrown the last time the action was executed --- .github/workflows/stale.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 5d62571e1e..1f2557160c 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,6 +12,8 @@ jobs: with: days-before-stale: 120 days-before-close: 7 + stale-issue-label: 'stale' + stale-pr-label: 'stale' exempt-issue-labels: 'pinned,keep,enhancement,confirmed' exempt-pr-labels: 'pinned,keep,enhancement,confirmed' exempt-all-milestones: true From ecc9443677e1c69291138e8bf8f54d524614a144 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 11 May 2024 14:45:42 +0200 Subject: [PATCH 09/11] (0_14 branch only) adding compatibility for building with upstream arduinoFFT 2.xx support compilation with new arduinoFFT versions 2.x --- usermods/audioreactive/audio_reactive.h | 18 +++++++++++++----- usermods/audioreactive/readme.md | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/usermods/audioreactive/audio_reactive.h b/usermods/audioreactive/audio_reactive.h index fec0525ec7..7169539570 100644 --- a/usermods/audioreactive/audio_reactive.h +++ b/usermods/audioreactive/audio_reactive.h @@ -177,9 +177,6 @@ constexpr uint16_t samplesFFT_2 = 256; // meaningfull part of FFT resul // These are the input and output vectors. Input vectors receive computed results from FFT. static float vReal[samplesFFT] = {0.0f}; // FFT sample inputs / freq output - these are our raw result bins static float vImag[samplesFFT] = {0.0f}; // imaginary parts -#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT -static float windowWeighingFactors[samplesFFT] = {0.0f}; -#endif // Create FFT object #ifdef UM_AUDIOREACTIVE_USE_NEW_FFT @@ -198,9 +195,15 @@ static float windowWeighingFactors[samplesFFT] = {0.0f}; #include #ifdef UM_AUDIOREACTIVE_USE_NEW_FFT -static ArduinoFFT FFT = ArduinoFFT( vReal, vImag, samplesFFT, SAMPLE_RATE, windowWeighingFactors); +#if defined(FFT_LIB_REV) && FFT_LIB_REV > 0x19 + // arduinoFFT 2.x has a slightly different API + static ArduinoFFT FFT = ArduinoFFT( vReal, vImag, samplesFFT, SAMPLE_RATE, true); +#else + static float windowWeighingFactors[samplesFFT] = {0.0f}; // cache for FFT windowing factors + static ArduinoFFT FFT = ArduinoFFT( vReal, vImag, samplesFFT, SAMPLE_RATE, windowWeighingFactors); +#endif #else -static arduinoFFT FFT = arduinoFFT(vReal, vImag, samplesFFT, SAMPLE_RATE); + static arduinoFFT FFT = arduinoFFT(vReal, vImag, samplesFFT, SAMPLE_RATE); #endif // Helper functions @@ -300,7 +303,12 @@ void FFTcode(void * parameter) #endif #ifdef UM_AUDIOREACTIVE_USE_NEW_FFT + #if defined(FFT_LIB_REV) && FFT_LIB_REV > 0x19 + // arduinoFFT 2.x has a slightly different API + FFT.majorPeak(&FFT_MajorPeak, &FFT_Magnitude); // let the effects know which freq was most dominant + #else FFT.majorPeak(FFT_MajorPeak, FFT_Magnitude); // let the effects know which freq was most dominant + #endif #else FFT.MajorPeak(&FFT_MajorPeak, &FFT_Magnitude); // let the effects know which freq was most dominant #endif diff --git a/usermods/audioreactive/readme.md b/usermods/audioreactive/readme.md index 47804b611f..8959021ba7 100644 --- a/usermods/audioreactive/readme.md +++ b/usermods/audioreactive/readme.md @@ -38,7 +38,7 @@ Alternatively, you can use the latest arduinoFFT development version. ArduinoFFT `develop` library is slightly more accurate, and slightly faster than our customised library, however also needs additional 2kB RAM. * `build_flags` = `-D USERMOD_AUDIOREACTIVE` `-D UM_AUDIOREACTIVE_USE_NEW_FFT` -* `lib_deps`= `https://github.com/kosme/arduinoFFT#develop @ 1.9.2` +* `lib_deps`= `https://github.com/kosme/arduinoFFT#419d7b0` ## Configuration From 2aec21a6d02247389b88a19791e3b6e69a9177f9 Mon Sep 17 00:00:00 2001 From: Blaz Kristan Date: Wed, 15 May 2024 15:34:53 +0200 Subject: [PATCH 10/11] Palette loading optimisation - fixes #3978 - FX: Firenoise can use selected palette --- platformio_override.ini.sample | 65 ---------------------------------- wled00/FX.cpp | 20 +++++------ wled00/FX.h | 8 ++--- wled00/FX_fcn.cpp | 28 +++++++-------- 4 files changed, 26 insertions(+), 95 deletions(-) delete mode 100644 platformio_override.ini.sample diff --git a/platformio_override.ini.sample b/platformio_override.ini.sample deleted file mode 100644 index d6ea5d9649..0000000000 --- a/platformio_override.ini.sample +++ /dev/null @@ -1,65 +0,0 @@ -# Example PlatformIO Project Configuration Override -# ------------------------------------------------------------------------------ -# Copy to platformio_override.ini to activate overrides -# ------------------------------------------------------------------------------ -# Please visit documentation: https://docs.platformio.org/page/projectconf.html - -[platformio] -default_envs = WLED_tasmota_1M - -[env:WLED_tasmota_1M] -board = esp01_1m -platform = ${common.platform_wled_default} -platform_packages = ${common.platform_packages} -board_build.ldscript = ${common.ldscript_1m128k} -lib_deps = ${esp8266.lib_deps} -build_unflags = ${common.build_unflags} -build_flags = ${common.build_flags_esp8266} -; ********************************************************************* -; *** Use custom settings from file my_config.h - -DWLED_USE_MY_CONFIG -; ********************************************************************* -; -; -; *** To use the below defines/overrides, copy and paste each onto it's own line just below build_flags in the section above. -; -; disable specific features -; -D WLED_DISABLE_OTA -; -D WLED_DISABLE_ALEXA -; -D WLED_DISABLE_HUESYNC -; -D WLED_DISABLE_INFRARED -; -D WLED_DISABLE_WEBSOCKETS -; PIN defines - uncomment and change, if needed: -; -D LEDPIN=2 -; -D BTNPIN=0 -; -D TOUCHPIN=T0 -; -D IRPIN=4 -; -D RLYPIN=12 -; -D RLYMDE=1 -; digital LED strip types - uncomment only one ! - this will disable WS281x / SK681x support -; -D USE_APA102 -; -D USE_WS2801 -; -D USE_LPD8806 -; PIN defines for 2 wire LEDs - -D CLKPIN=0 - -D DATAPIN=2 -; to drive analog LED strips (aka 5050) hardware configuration is no longer necessary -; configure the settings in the UI as follows (hard): -; for the Magic Home LED Controller use PWM pins 5,12,13,15 -; for the H801 controller use PINs 15,13,12,14 (W2 = 04) -; for the BW-LT11 controller use PINs 12,4,14,5 -; -; set the name of the module - make sure there is a quote-backslash-quote before the name and a backslash-quote-quote after the name -; -D SERVERNAME="\"WLED\"" -; -; set the number of LEDs -; -D DEFAULT_LED_COUNT=30 -; -; set milliampere limit when using ESP pin to power leds -; -D ABL_MILLIAMPS_DEFAULT=850 -; -; enable IR by setting remote type -; -D IRTYPE=0 ;0 Remote disabled | 1 24-key RGB | 2 24-key with CT | 3 40-key blue | 4 40-key RGB | 5 21-key RGB | 6 6-key black | 7 9-key red | 8 JSON remote -; -; set default color order of your led strip -; -D DEFAULT_LED_COLOR_ORDER=COL_ORDER_GRB diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 3f720385f2..cb8813c930 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -4863,25 +4863,25 @@ uint16_t mode_2Dfirenoise(void) { // firenoise2d. By Andrew Tuline SEGMENT.fill(BLACK); } - uint16_t xscale = SEGMENT.intensity*4; - uint32_t yscale = SEGMENT.speed*8; - uint8_t indexx = 0; + unsigned xscale = SEGMENT.intensity*4; + unsigned yscale = SEGMENT.speed*8; + unsigned indexx = 0; - SEGPALETTE = CRGBPalette16( CRGB(0,0,0), CRGB(0,0,0), CRGB(0,0,0), CRGB(0,0,0), - CRGB::Red, CRGB::Red, CRGB::Red, CRGB::DarkOrange, - CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, - CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); + CRGBPalette16 pal = SEGMENT.check1 ? SEGPALETTE : CRGBPalette16(CRGB::Black, CRGB::Black, CRGB::Black, CRGB::Black, + CRGB::Red, CRGB::Red, CRGB::Red, CRGB::DarkOrange, + CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, + CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); for (int j=0; j < cols; j++) { for (int i=0; i < rows; i++) { - indexx = inoise8(j*yscale*rows/255, i*xscale+millis()/4); // We're moving along our Perlin map. - SEGMENT.setPixelColorXY(j, i, ColorFromPalette(SEGPALETTE, min(i*(indexx)>>4, 255), i*255/cols, LINEARBLEND)); // With that value, look up the 8 bit colour palette value and assign it to the current LED. + indexx = inoise8(j*yscale*rows/255, i*xscale+strip.now/4); // We're moving along our Perlin map. + SEGMENT.setPixelColorXY(j, i, ColorFromPalette(pal, min(i*(indexx)>>4, 255U), i*255/cols, LINEARBLEND)); // With that value, look up the 8 bit colour palette value and assign it to the current LED. } // for i } // for j return FRAMETIME; } // mode_2Dfirenoise() -static const char _data_FX_MODE_2DFIRENOISE[] PROGMEM = "Firenoise@X scale,Y scale;;!;2"; +static const char _data_FX_MODE_2DFIRENOISE[] PROGMEM = "Firenoise@X scale,Y scale,,,,Palette;;!;2;pal=66"; ////////////////////////////// diff --git a/wled00/FX.h b/wled00/FX.h index 0d679ba649..167ed8f0f0 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -91,7 +91,7 @@ //#define SEGCOLOR(x) strip._segments[strip.getCurrSegmentId()].currentColor(x, strip._segments[strip.getCurrSegmentId()].colors[x]) //#define SEGLEN strip._segments[strip.getCurrSegmentId()].virtualLength() #define SEGCOLOR(x) strip.segColor(x) /* saves us a few kbytes of code */ -#define SEGPALETTE strip._currentPalette +#define SEGPALETTE Segment::getCurrentPalette() #define SEGLEN strip._virtualSegmentLength /* saves us a few kbytes of code */ #define SPEED_FORMULA_L (5U + (50U*(255U - SEGMENT.speed))/SEGLEN) @@ -414,6 +414,7 @@ typedef struct Segment { static uint16_t _usedSegmentData; // perhaps this should be per segment, not static + static CRGBPalette16 _currentPalette; // palette used for current effect (includes transition, used in color_from_palette()) static CRGBPalette16 _randomPalette; // actual random palette static CRGBPalette16 _newRandomPalette; // target random palette static unsigned long _lastPaletteChange; // last random palette change time in millis() @@ -530,6 +531,7 @@ typedef struct Segment { static void modeBlend(bool blend) { _modeBlend = blend; } #endif static void handleRandomPalette(); + inline static const CRGBPalette16 &getCurrentPalette(void) { return Segment::_currentPalette; } void setUp(uint16_t i1, uint16_t i2, uint8_t grp=1, uint8_t spc=0, uint16_t ofs=UINT16_MAX, uint16_t i1Y=0, uint16_t i2Y=1, uint8_t segId = 255); bool setColor(uint8_t slot, uint32_t c); //returns true if changed @@ -567,7 +569,7 @@ typedef struct Segment { uint8_t currentMode(void); uint32_t currentColor(uint8_t slot); CRGBPalette16 &loadPalette(CRGBPalette16 &tgt, uint8_t pal); - CRGBPalette16 ¤tPalette(CRGBPalette16 &tgt, uint8_t paletteID); + void setCurrentPalette(void); // 1D strip uint16_t virtualLength(void) const; @@ -693,7 +695,6 @@ class WS2812FX { // 96 bytes panels(1), #endif // semi-private (just obscured) used in effect functions through macros - _currentPalette(CRGBPalette16(CRGB::Black)), _colors_t{0,0,0}, _virtualSegmentLength(0), // true private variables @@ -888,7 +889,6 @@ class WS2812FX { // 96 bytes // end 2D support void loadCustomPalettes(void); // loads custom palettes from JSON - CRGBPalette16 _currentPalette; // palette used for current effect (includes transition) std::vector customPalettes; // TODO: move custom palettes out of WS2812FX class // using public variables to reduce code size increase due to inline function getSegment() (with bounds checking) diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index f9cf3e1e73..10847ef572 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -77,6 +77,7 @@ uint16_t Segment::_usedSegmentData = 0U; // amount of RAM all segments use for t uint16_t Segment::maxWidth = DEFAULT_LED_COUNT; uint16_t Segment::maxHeight = 1; +CRGBPalette16 Segment::_currentPalette = CRGBPalette16(CRGB::Black); CRGBPalette16 Segment::_randomPalette = CRGBPalette16(DEFAULT_COLOR); CRGBPalette16 Segment::_newRandomPalette = CRGBPalette16(DEFAULT_COLOR); unsigned long Segment::_lastPaletteChange = 0; // perhaps it should be per segment @@ -201,7 +202,7 @@ void Segment::resetIfRequired() { CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) { if (pal < 245 && pal > GRADIENT_PALETTE_COUNT+13) pal = 0; - if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0; + if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0; // TODO remove strip dependency by moving customPalettes out of strip //default palette. Differs depending on effect if (pal == 0) switch (mode) { case FX_MODE_FIRE_2012 : pal = 35; break; // heat palette @@ -343,8 +344,8 @@ void Segment::handleTransition() { // transition progression between 0-65535 uint16_t Segment::progress() { if (isInTransition()) { - unsigned long timeNow = millis(); - if (_t->_dur > 0 && timeNow - _t->_start < _t->_dur) return (timeNow - _t->_start) * 0xFFFFU / _t->_dur; + unsigned diff = millis() - _t->_start; + if (_t->_dur > 0 && diff < _t->_dur) return diff * 0xFFFFU / _t->_dur; } return 0xFFFFU; } @@ -448,18 +449,17 @@ uint32_t Segment::currentColor(uint8_t slot) { #endif } -CRGBPalette16 &Segment::currentPalette(CRGBPalette16 &targetPalette, uint8_t pal) { - loadPalette(targetPalette, pal); - uint16_t prog = progress(); +void Segment::setCurrentPalette() { + loadPalette(_currentPalette, palette); + unsigned prog = progress(); if (strip.paletteFade && prog < 0xFFFFU) { // blend palettes // there are about 255 blend passes of 48 "blends" to completely blend two palettes (in _dur time) // minimum blend time is 100ms maximum is 65535ms - uint16_t noOfBlends = ((255U * prog) / 0xFFFFU) - _t->_prevPaletteBlends; - for (int i=0; i_prevPaletteBlends++) nblendPaletteTowardPalette(_t->_palT, targetPalette, 48); - targetPalette = _t->_palT; // copy transitioning/temporary palette + unsigned noOfBlends = ((255U * prog) / 0xFFFFU) - _t->_prevPaletteBlends; + for (unsigned i = 0; i < noOfBlends; i++, _t->_prevPaletteBlends++) nblendPaletteTowardPalette(_t->_palT, _currentPalette, 48); + _currentPalette = _t->_palT; // copy transitioning/temporary palette } - return targetPalette; } // relies on WS2812FX::service() to call it max every 8ms or more (MIN_SHOW_DELAY) @@ -1078,11 +1078,7 @@ uint32_t Segment::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8_ uint8_t paletteIndex = i; if (mapping && virtualLength() > 1) paletteIndex = (i*255)/(virtualLength() -1); if (!wrap && strip.paletteBlend != 3) paletteIndex = scale8(paletteIndex, 240); //cut off blend at palette "end" - CRGBPalette16 curPal; - curPal = currentPalette(curPal, palette); - //if (isInTransition()) curPal = _t->_palT; - //else loadPalette(curPal, palette); - CRGB fastled_col = ColorFromPalette(curPal, paletteIndex, pbri, (strip.paletteBlend == 3)? NOBLEND:LINEARBLEND); // NOTE: paletteBlend should be global + CRGB fastled_col = ColorFromPalette(_currentPalette, paletteIndex, pbri, (strip.paletteBlend == 3)? NOBLEND:LINEARBLEND); // NOTE: paletteBlend should be global return RGBW32(fastled_col.r, fastled_col.g, fastled_col.b, 0); } @@ -1187,7 +1183,7 @@ void WS2812FX::service() { _colors_t[0] = seg.currentColor(0); _colors_t[1] = seg.currentColor(1); _colors_t[2] = seg.currentColor(2); - seg.currentPalette(_currentPalette, seg.palette); // we need to pass reference + seg.setCurrentPalette(); // load actual palette if (!cctFromRgb || correctWB) busses.setSegmentCCT(seg.currentBri(true), correctWB); for (int c = 0; c < NUM_COLORS; c++) _colors_t[c] = gamma32(_colors_t[c]); From 2f6f0d2f3e3ca7c016d7f507a9a5433564484de0 Mon Sep 17 00:00:00 2001 From: Blaz Kristan Date: Sat, 18 May 2024 15:17:08 +0200 Subject: [PATCH 11/11] WLED 0.14.4 --- CHANGELOG.md | 4 + package-lock.json | 4 +- package.json | 2 +- wled00/html_other.h | 66 ++++----- wled00/html_settings.h | 322 ++++++++++++++++++++--------------------- wled00/wled.h | 2 +- 6 files changed, 202 insertions(+), 198 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1fe5cbdd8..5613f2d0e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## WLED changelog +#### Build 2405180 +- WLED 0.14.4 release +- Fix for #3978 + #### Build 2404040 - WLED 0.14.3 release - Fix for transition 0 (#3854, #3832, #3720) diff --git a/package-lock.json b/package-lock.json index a7330143f1..7b57cebc03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wled", - "version": "0.14.3", + "version": "0.14.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "wled", - "version": "0.14.3", + "version": "0.14.4", "license": "ISC", "dependencies": { "clean-css": "^4.2.3", diff --git a/package.json b/package.json index 3bd73b76db..8171059d5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wled", - "version": "0.14.3", + "version": "0.14.4", "description": "Tools for WLED project", "main": "tools/cdata.js", "directories": { diff --git a/wled00/html_other.h b/wled00/html_other.h index 3f94026157..0d7c39db6c 100644 --- a/wled00/html_other.h +++ b/wled00/html_other.h @@ -43,45 +43,45 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()====="; // Autogenerated from wled00/data/update.htm, do not edit!! 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, 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, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0x5d, 0x6f, 0xd4, 0x30, + 0x10, 0x7c, 0xcf, 0xaf, 0x70, 0xfd, 0x74, 0x27, 0x51, 0x1b, 0x50, 0x5f, 0x28, 0x49, 0x0a, 0x47, + 0x2b, 0x54, 0x09, 0xa9, 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, 0xbc, 0xf9, 0x70, 0xff, 0xf5, 0xf6, 0x8a, 0x75, 0xd8, 0xbb, + 0xba, 0x3c, 0x3c, 0x41, 0x99, 0xba, 0xec, 0x01, 0x15, 0xd3, 0xc1, 0x23, 0x78, 0xac, 0xf8, 0xce, + 0x1a, 0xec, 0x2a, 0x03, 0x5b, 0xab, 0xe1, 0x34, 0x1f, 0x38, 0xf3, 0xaa, 0x87, 0x8a, 0x6f, 0x2d, + 0xec, 0x86, 0x10, 0x91, 0xd7, 0x45, 0x89, 0x16, 0x1d, 0xd4, 0x5f, 0x3e, 0x5d, 0x5d, 0xb2, 0x87, + 0xc1, 0x28, 0x84, 0x52, 0xce, 0x9f, 0xca, 0xa4, 0xa3, 0x1d, 0xb0, 0x2e, 0xda, 0xd1, 0x6b, 0xb4, + 0xc1, 0xb3, 0xd5, 0x62, 0xf9, 0x63, 0x67, 0xbd, 0x09, 0x3b, 0xd1, 0xd9, 0x84, 0x21, 0xee, 0x45, + 0xa3, 0xf4, 0x66, 0xb1, 0x7c, 0x7a, 0x86, 0x3c, 0x10, 0xc4, 0x04, 0x3d, 0xf6, 0x34, 0x81, 0x58, + 0x03, 0x5e, 0x39, 0x98, 0x5e, 0x57, 0xfb, 0x6b, 0xb3, 0xe0, 0x63, 0xcb, 0x97, 0x22, 0xe1, 0xde, + 0x81, 0x30, 0x36, 0x0d, 0x4e, 0xed, 0x2b, 0xee, 0x83, 0x07, 0xfe, 0xe2, 0xbf, 0x2d, 0x7d, 0x5a, + 0xff, 0xdd, 0xd3, 0xb8, 0xa0, 0x37, 0xfc, 0xa9, 0x28, 0xe5, 0x61, 0xc4, 0xc3, 0xa8, 0x2c, 0x45, + 0x5d, 0x71, 0x99, 0x00, 0xd1, 0xfa, 0x75, 0x92, 0x49, 0x7c, 0x4f, 0x17, 0x43, 0xf5, 0x86, 0xd7, + 0xbf, 0x21, 0x27, 0xaa, 0xba, 0x78, 0x67, 0xfb, 0x49, 0x00, 0x36, 0x46, 0xb7, 0xe0, 0x33, 0xbd, + 0x4e, 0x89, 0x2f, 0xdf, 0x12, 0x32, 0x23, 0x4a, 0x39, 0x4b, 0xda, 0x04, 0xb3, 0x67, 0xc1, 0xbb, + 0xa0, 0x4c, 0xc5, 0x3f, 0x02, 0x7e, 0x5e, 0x2c, 0x89, 0xae, 0x7b, 0x5d, 0x17, 0x59, 0xb2, 0xbb, + 0xd0, 0xe2, 0x4e, 0x45, 0x78, 0xd6, 0x8e, 0x2a, 0x65, 0x1b, 0x62, 0xcf, 0xc8, 0x8b, 0x2e, 0x50, + 0xcf, 0xed, 0xcd, 0xdd, 0x3d, 0x67, 0x2a, 0xcb, 0x53, 0x71, 0x21, 0xc7, 0x0c, 0xe4, 0xcc, 0x52, + 0x8d, 0x04, 0x61, 0x05, 0x90, 0x74, 0xfb, 0x81, 0x5c, 0xe9, 0x47, 0x87, 0x76, 0x50, 0x11, 0xe5, + 0x44, 0x70, 0x4a, 0x30, 0xc5, 0xe9, 0xea, 0x34, 0x36, 0xbd, 0x25, 0x3b, 0x1f, 0xa6, 0x9b, 0xaf, + 0x7d, 0x42, 0xe5, 0x1c, 0x18, 0xb6, 0x85, 0x98, 0x88, 0xf2, 0x9c, 0x95, 0x69, 0x50, 0x9e, 0x15, + 0xda, 0xa9, 0x94, 0x2a, 0x9e, 0xec, 0xc0, 0xeb, 0x97, 0xe2, 0xd5, 0x99, 0x38, 0xa3, 0x55, 0xa8, + 0x42, 0x2b, 0xc4, 0xfa, 0x32, 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, 0x73, 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, + 0x24, 0x61, 0xc3, 0x81, 0xf6, 0x48, 0xf1, 0x27, 0xb5, 0x48, 0xdb, 0xf5, 0x45, 0xd6, 0xbe, 0x6a, + 0x69, 0xc2, 0xd3, 0xf4, 0x38, 0x92, 0xae, 0x53, 0x42, 0xa5, 0xca, 0x3b, 0x94, 0xd6, 0x0f, 0x23, + 0xb2, 0x59, 0xab, 0xd6, 0x3a, 0x38, 0xa6, 0xf9, 0xa8, 0x68, 0x84, 0xc7, 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 + 0x9d, 0xa2, 0x27, 0x84, 0x20, 0x70, 0x26, 0xbf, 0xcd, 0xcb, 0x32, 0x13, 0x98, 0x0f, 0xc8, 0xb4, + 0x0b, 0x74, 0x08, 0x91, 0x66, 0x6d, 0x23, 0xa4, 0x2e, 0xfb, 0x31, 0xa8, 0x35, 0xb0, 0xf3, 0x65, + 0x29, 0x89, 0x6f, 0x5a, 0x77, 0x8a, 0xdc, 0x94, 0xbf, 0xe9, 0xc7, 0xfe, 0x09, 0xb5, 0x43, 0x19, + 0xed, 0xee, 0x03, 0x00, 0x00 }; diff --git a/wled00/html_settings.h b/wled00/html_settings.h index a1bd61e9ea..26cd29517c 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -1607,168 +1607,168 @@ const uint8_t PAGE_settings_time[] PROGMEM = { // Autogenerated from wled00/data/settings_sec.htm, do not edit!! -const uint16_t PAGE_settings_sec_length = 2548; +const uint16_t PAGE_settings_sec_length = 2549; const uint8_t PAGE_settings_sec[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x9d, 0x58, 0x6d, 0x53, 0xdb, 0x48, - 0x12, 0xfe, 0xee, 0x5f, 0x31, 0x9e, 0xad, 0xca, 0x4a, 0x17, 0x21, 0x03, 0x49, 0x6d, 0x25, 0x60, - 0x99, 0x83, 0x40, 0x36, 0x5c, 0x41, 0xa0, 0xb0, 0xd9, 0xdc, 0x55, 0x2e, 0x95, 0x92, 0xa5, 0xb1, - 0x35, 0xb1, 0xac, 0xd1, 0xce, 0x8c, 0x70, 0x7c, 0xd9, 0xfc, 0xf7, 0x7b, 0x7a, 0x24, 0xf9, 0x85, - 0x40, 0x72, 0xb9, 0x0f, 0x60, 0x69, 0x5e, 0x7a, 0xba, 0x9f, 0xee, 0x7e, 0xba, 0x47, 0xfd, 0xee, - 0xe9, 0xd5, 0xab, 0xd1, 0xbf, 0xae, 0xcf, 0x58, 0x66, 0xe7, 0xf9, 0xa0, 0x4f, 0xff, 0x59, 0x1e, - 0x17, 0xd3, 0x88, 0x8b, 0x82, 0xe3, 0x5d, 0xc4, 0xe9, 0xa0, 0x3f, 0x17, 0x36, 0x66, 0x9d, 0x44, - 0x15, 0x56, 0x14, 0x36, 0xe2, 0x0b, 0x99, 0xda, 0x2c, 0x4a, 0xc5, 0x9d, 0x4c, 0xc4, 0x8e, 0x7b, - 0x09, 0x64, 0x21, 0xad, 0x8c, 0xf3, 0x1d, 0x93, 0xc4, 0xb9, 0x88, 0xf6, 0x82, 0x79, 0xfc, 0x59, - 0xce, 0xab, 0xf9, 0xea, 0xbd, 0x32, 0x42, 0xbb, 0x97, 0x78, 0x8c, 0xf7, 0x42, 0x71, 0xd6, 0x29, - 0xe2, 0xb9, 0x88, 0xf8, 0x9d, 0x14, 0x8b, 0x52, 0x69, 0xcb, 0x9b, 0x53, 0x92, 0x2c, 0xd6, 0x46, - 0xe0, 0x90, 0xca, 0x4e, 0x76, 0x5e, 0x60, 0xd4, 0x4a, 0x9b, 0x8b, 0xc1, 0xa5, 0x34, 0x09, 0x1b, - 0x0a, 0x6b, 0x65, 0x31, 0x35, 0xfd, 0x5e, 0x3d, 0xd8, 0x37, 0x89, 0x96, 0xa5, 0x1d, 0x74, 0xee, - 0x62, 0xcd, 0x72, 0x95, 0xc8, 0x32, 0xb0, 0x72, 0x2e, 0x54, 0x65, 0x83, 0x34, 0x4a, 0x55, 0x52, - 0xcd, 0xa1, 0x6e, 0x80, 0x89, 0xa8, 0xbb, 0x47, 0x3f, 0xa5, 0x56, 0x56, 0x45, 0x3c, 0xb3, 0xb6, - 0x3c, 0xe0, 0x87, 0x93, 0xaa, 0x48, 0xac, 0x54, 0x05, 0x7b, 0xe3, 0xf9, 0x5f, 0x16, 0xb2, 0x48, - 0xd5, 0x22, 0x54, 0xa5, 0x28, 0x3c, 0xb7, 0xc0, 0x1c, 0xf4, 0x7a, 0xb3, 0x42, 0x85, 0x8b, 0x5c, - 0xa4, 0xe1, 0x54, 0xf4, 0x26, 0x22, 0xb6, 0x95, 0x16, 0xa6, 0x67, 0x1a, 0x25, 0x7a, 0xbf, 0x18, - 0x91, 0x54, 0x5a, 0xda, 0xe5, 0x4e, 0x3b, 0xc4, 0xfd, 0xaf, 0x2b, 0xa1, 0x27, 0xf7, 0x84, 0x4e, - 0x85, 0xbd, 0xbd, 0xb9, 0xf0, 0x78, 0x6f, 0xbd, 0x38, 0xe0, 0x1f, 0x8d, 0xc8, 0x27, 0x9b, 0xbb, - 0x6e, 0x1f, 0xdb, 0x55, 0x95, 0x69, 0x6c, 0xc5, 0x83, 0x7b, 0xa6, 0xe7, 0xa9, 0x67, 0xfd, 0x2f, - 0x5a, 0x40, 0xbf, 0x82, 0x91, 0xb2, 0xf6, 0x2c, 0x17, 0x64, 0xfa, 0xc9, 0xd2, 0x4d, 0xad, 0x97, - 0x4a, 0x73, 0x35, 0xfe, 0xb4, 0xb1, 0xd8, 0x3e, 0x79, 0xc2, 0xd5, 0xf8, 0x93, 0x48, 0x2c, 0x8f, - 0x22, 0xbb, 0x2c, 0x85, 0x9a, 0xd0, 0x58, 0xf7, 0x58, 0xeb, 0x78, 0x19, 0x4a, 0xe3, 0x7e, 0xb7, - 0x24, 0xe4, 0x2a, 0x4e, 0xff, 0x31, 0xf4, 0x6c, 0x20, 0xa2, 0xee, 0xae, 0xff, 0x25, 0x17, 0x96, - 0xa9, 0x28, 0x0d, 0x13, 0x0d, 0x78, 0x44, 0x73, 0xac, 0xc7, 0x6b, 0xbf, 0x70, 0xff, 0x50, 0x85, - 0x30, 0xf7, 0xd8, 0x5a, 0x2d, 0xc7, 0x95, 0x15, 0x98, 0xd0, 0x09, 0x0f, 0xac, 0x1f, 0xdc, 0x1f, - 0xa7, 0xb3, 0x79, 0xc0, 0xad, 0xf8, 0x6c, 0x7b, 0x9f, 0xe2, 0xbb, 0xb8, 0x15, 0xf0, 0xcd, 0xc2, - 0xd8, 0x2c, 0x0b, 0x88, 0x10, 0x7e, 0x90, 0x86, 0x63, 0x95, 0x2e, 0xc3, 0xb8, 0x04, 0x4e, 0xe9, - 0xab, 0x4c, 0xe6, 0xa9, 0xa7, 0x68, 0x7d, 0x9c, 0xa6, 0x67, 0x77, 0xd0, 0xe2, 0x42, 0x1a, 0x44, - 0xab, 0xd0, 0x1e, 0x27, 0x9d, 0x79, 0xe0, 0xf9, 0xd1, 0xe0, 0xcb, 0xef, 0xc2, 0xfe, 0xe1, 0xf9, - 0x01, 0x64, 0x9e, 0x24, 0xb3, 0xd7, 0x32, 0x17, 0x14, 0x84, 0x1e, 0x21, 0xc8, 0xc7, 0xc9, 0x2c, - 0x99, 0x4c, 0xb9, 0xff, 0xe8, 0x6c, 0x09, 0xef, 0x0b, 0x0b, 0xbf, 0xf9, 0x5f, 0x1f, 0x3e, 0x47, - 0x68, 0xad, 0x34, 0xcc, 0xc3, 0x39, 0x48, 0x15, 0xa3, 0x72, 0x11, 0xe6, 0x6a, 0xea, 0xf1, 0x33, - 0x1a, 0x67, 0x0d, 0x78, 0x70, 0x3d, 0x9b, 0x40, 0xb4, 0x83, 0x01, 0xb9, 0xa1, 0x01, 0xd7, 0x45, - 0x33, 0x0e, 0xf4, 0xb1, 0x71, 0x22, 0xa7, 0x95, 0x8e, 0x1d, 0xda, 0x35, 0x0c, 0x6c, 0x12, 0x4b, - 0x8a, 0xc2, 0x7f, 0x17, 0xe7, 0x45, 0xa2, 0xe6, 0x25, 0x40, 0x17, 0xac, 0x8c, 0xa7, 0x82, 0x21, - 0x26, 0xe2, 0x2e, 0x62, 0x61, 0xc3, 0x41, 0x26, 0x53, 0x8b, 0x91, 0x8a, 0x8d, 0xad, 0x7d, 0xb4, - 0xe7, 0x7f, 0xa1, 0xe4, 0x50, 0x91, 0xb3, 0xc2, 0xd2, 0x84, 0x73, 0x8b, 0x2c, 0xa0, 0xf2, 0x9b, - 0xd1, 0xe5, 0x45, 0x64, 0x61, 0x4b, 0x92, 0xc7, 0xc6, 0x90, 0x21, 0x64, 0x95, 0x27, 0x8e, 0x1a, - 0x53, 0x0e, 0x38, 0x49, 0x83, 0x17, 0x92, 0x5c, 0xc4, 0x7a, 0x54, 0xa7, 0x96, 0xd7, 0xa4, 0x98, - 0xf3, 0x8d, 0x5d, 0xc2, 0xc8, 0xb8, 0x90, 0x73, 0xa7, 0x6f, 0xc4, 0x0b, 0x55, 0x90, 0x65, 0xf5, - 0x8a, 0x08, 0x70, 0xb5, 0x9b, 0xbc, 0x56, 0x41, 0x04, 0xf8, 0xe6, 0x79, 0x5a, 0xcc, 0xd5, 0x1d, - 0x05, 0x86, 0x3b, 0x08, 0xc0, 0xee, 0xbf, 0xdc, 0xdd, 0xdd, 0x30, 0xa7, 0x2a, 0x09, 0x34, 0xf2, - 0x05, 0xd9, 0xd3, 0x1a, 0x53, 0x88, 0x05, 0xfb, 0xe7, 0xe5, 0xc5, 0x1b, 0xe4, 0xe9, 0x8d, 0xf8, - 0xb3, 0x12, 0xc6, 0x1e, 0x7e, 0xc7, 0xf1, 0x1b, 0x47, 0x6f, 0xa0, 0x93, 0x49, 0x83, 0xd3, 0x4d, - 0x09, 0x4f, 0x89, 0x11, 0xe2, 0x2e, 0x70, 0x23, 0xc6, 0x22, 0xcd, 0xcd, 0x20, 0x7a, 0x4e, 0x5a, - 0xf8, 0xdf, 0xf5, 0xf3, 0x5a, 0xae, 0xdd, 0x12, 0x4c, 0x32, 0x92, 0x59, 0xd0, 0x6d, 0x05, 0xd4, - 0x9c, 0x72, 0x7d, 0x35, 0x1c, 0xf1, 0x60, 0x23, 0x9f, 0x9d, 0x72, 0xbe, 0x7f, 0x48, 0x16, 0x15, - 0xce, 0xa2, 0xd7, 0x4a, 0xcf, 0x4f, 0xe1, 0xd1, 0xc3, 0x26, 0x3b, 0x8b, 0x26, 0xb8, 0x3d, 0x4e, - 0x7e, 0x06, 0xac, 0x21, 0x05, 0x8e, 0x79, 0xbf, 0xfb, 0x81, 0xe2, 0x9f, 0x32, 0x03, 0x73, 0x85, - 0x8f, 0xf1, 0xbb, 0x38, 0xaf, 0xc0, 0xa5, 0x3c, 0xe8, 0xee, 0xad, 0xa1, 0x4b, 0x32, 0x91, 0xcc, - 0xde, 0x56, 0xf3, 0x75, 0xbe, 0x77, 0xbd, 0xae, 0x20, 0x53, 0xc2, 0x99, 0x58, 0x86, 0x70, 0x59, - 0x92, 0x79, 0xbd, 0xf7, 0xbb, 0x3b, 0x2f, 0x3f, 0xf4, 0x7c, 0x24, 0xfd, 0x7b, 0x7e, 0x02, 0xbd, - 0x4d, 0x19, 0x27, 0x94, 0x8a, 0xa3, 0x78, 0x8c, 0xff, 0x67, 0x60, 0x7c, 0x98, 0xca, 0x87, 0x99, - 0x9c, 0x58, 0xfc, 0xbe, 0x42, 0x09, 0xd0, 0x2a, 0xc7, 0xd3, 0x71, 0x4e, 0xef, 0xd7, 0x31, 0x88, - 0x9d, 0xc6, 0xe3, 0xd2, 0x5c, 0xa8, 0x64, 0x46, 0x5b, 0xc0, 0xf2, 0x2e, 0x99, 0x87, 0x8d, 0xa4, - 0x6b, 0x44, 0xea, 0x6d, 0xd9, 0x3c, 0x9c, 0xaa, 0x45, 0xe1, 0xe4, 0xc2, 0x31, 0xfc, 0x8d, 0x9a, - 0xd3, 0x02, 0xb0, 0x8c, 0x5a, 0x5c, 0x08, 0x77, 0x80, 0x7b, 0x76, 0xab, 0xdd, 0xd3, 0x8d, 0x9c, - 0x66, 0xab, 0xe1, 0x66, 0xef, 0x39, 0x1c, 0xa6, 0x69, 0xf0, 0x54, 0x50, 0x26, 0xf0, 0x0f, 0x08, - 0xe6, 0x24, 0xaf, 0x52, 0x61, 0xbc, 0x95, 0x75, 0xbe, 0xff, 0xd7, 0x5f, 0xcd, 0x1b, 0xd2, 0x96, - 0x7e, 0x4f, 0xc5, 0x24, 0xae, 0x72, 0x8b, 0xe4, 0x47, 0x4e, 0x6c, 0xa4, 0xcb, 0x76, 0xae, 0x03, - 0x2a, 0x7b, 0x8f, 0x71, 0xc0, 0xc5, 0x45, 0x1d, 0x48, 0x9c, 0x6a, 0xc1, 0x47, 0xfe, 0xd4, 0x12, - 0xc5, 0x3e, 0xb4, 0xc2, 0x7f, 0xea, 0xf1, 0x77, 0x17, 0x67, 0xa7, 0x20, 0x53, 0x93, 0x1e, 0x71, - 0xe4, 0x0f, 0x56, 0x9b, 0xd4, 0xdf, 0x38, 0x6f, 0xe8, 0xd5, 0xa4, 0x69, 0xa3, 0x86, 0xe6, 0x51, - 0x96, 0x5c, 0xee, 0x1c, 0xca, 0x89, 0xc7, 0xc9, 0xbf, 0x07, 0x44, 0xc5, 0xa1, 0x2b, 0x55, 0x89, - 0xca, 0x7d, 0x57, 0xbd, 0x76, 0x03, 0xcf, 0x95, 0xb7, 0x88, 0x56, 0xe7, 0x43, 0xab, 0x34, 0xa0, - 0x24, 0x2d, 0xce, 0xad, 0x98, 0x53, 0x9c, 0x27, 0xe7, 0x25, 0x77, 0x36, 0xd7, 0xcb, 0xb0, 0x7b, - 0x5e, 0x82, 0x58, 0xc8, 0x2e, 0x76, 0xa9, 0x52, 0x11, 0xb2, 0x6b, 0xa4, 0xb0, 0x11, 0x4c, 0x90, - 0x43, 0x19, 0x29, 0xc9, 0xce, 0xaf, 0x41, 0x1d, 0xc1, 0x96, 0x44, 0xb3, 0x2d, 0x31, 0x70, 0xd2, - 0x10, 0xa3, 0x22, 0x37, 0xc2, 0xa9, 0x2d, 0x48, 0xb5, 0xd8, 0x66, 0x04, 0x56, 0xa0, 0x22, 0xec, - 0xc8, 0xd1, 0x03, 0x78, 0x7b, 0x81, 0x08, 0x11, 0x8c, 0xe6, 0x9d, 0xb4, 0x19, 0x82, 0x9b, 0xfb, - 0x47, 0x3b, 0x7b, 0x07, 0x77, 0x4a, 0xa6, 0x6c, 0xd7, 0x0f, 0x4d, 0x99, 0x4b, 0xeb, 0x46, 0x91, - 0xa4, 0xc0, 0x79, 0x6a, 0xb3, 0xc1, 0xfe, 0x93, 0x27, 0xde, 0xaa, 0x20, 0xaf, 0xad, 0x0d, 0x1a, - 0x6b, 0x6b, 0x2b, 0x6c, 0x98, 0x29, 0x63, 0xe9, 0xa8, 0xa7, 0xc8, 0x2a, 0x6a, 0x12, 0x8e, 0x00, - 0xe9, 0xd3, 0xfa, 0xf1, 0x80, 0x03, 0x6e, 0x08, 0x7d, 0xaa, 0x90, 0x0f, 0xfe, 0x57, 0xec, 0x80, - 0xc8, 0x2d, 0x22, 0xbf, 0xe7, 0xc7, 0x4c, 0x8b, 0xc9, 0x2a, 0x01, 0xb7, 0x17, 0xb6, 0x16, 0x21, - 0x5d, 0xbf, 0x21, 0xfb, 0xff, 0x45, 0xca, 0x7a, 0xf1, 0x5a, 0x12, 0x21, 0xeb, 0x4a, 0xe5, 0x37, - 0x85, 0xbf, 0x67, 0xc2, 0x4f, 0xe6, 0xa8, 0x8c, 0x7e, 0xe3, 0x2e, 0x16, 0x83, 0x5a, 0xf5, 0x34, - 0x1c, 0x4e, 0xc2, 0xd8, 0x05, 0x49, 0xf4, 0xc0, 0x16, 0x91, 0xf0, 0xcd, 0x30, 0x6a, 0x56, 0xac, - 0x32, 0x9b, 0xc0, 0x3c, 0x6a, 0x01, 0x05, 0x2c, 0xc0, 0xc5, 0x61, 0xe8, 0x50, 0xb2, 0x5f, 0x3b, - 0xfd, 0x5e, 0xd3, 0x2a, 0xf5, 0x1d, 0x65, 0x0f, 0xfe, 0x2e, 0xe7, 0x04, 0x22, 0xab, 0x74, 0x0e, - 0xee, 0x75, 0x2c, 0x9e, 0x18, 0x18, 0x70, 0x88, 0x85, 0x6e, 0x41, 0xbf, 0x57, 0x77, 0x7e, 0x54, - 0x63, 0x51, 0xba, 0xc8, 0x96, 0x88, 0x23, 0x78, 0xd1, 0x90, 0x4d, 0x40, 0x53, 0x1d, 0x26, 0xf1, - 0x4e, 0x4f, 0x1f, 0x0d, 0x67, 0x75, 0x27, 0x37, 0x9c, 0x70, 0x86, 0x16, 0x2e, 0x53, 0x98, 0x29, - 0xe1, 0x38, 0x2c, 0x4d, 0xe5, 0x1d, 0x73, 0x5c, 0x1f, 0xa1, 0xf4, 0x40, 0xb7, 0xc5, 0xf6, 0x58, - 0x26, 0xf2, 0xf2, 0x84, 0x0f, 0x3a, 0x7d, 0x60, 0x6b, 0x61, 0x15, 0x75, 0x01, 0x11, 0xaf, 0x5f, - 0x38, 0x4e, 0x4d, 0x10, 0x5c, 0xb3, 0x88, 0xbf, 0xa1, 0x63, 0x8f, 0xfa, 0xbd, 0x7a, 0x02, 0xaa, - 0x41, 0xc4, 0xe0, 0xe1, 0x3d, 0x9d, 0xd5, 0xa6, 0x13, 0xda, 0x44, 0x84, 0xb6, 0xde, 0xb7, 0xb5, - 0xc3, 0x54, 0xe3, 0xb9, 0x84, 0x8e, 0xc3, 0xf8, 0x4e, 0xac, 0x97, 0x64, 0xba, 0x15, 0x9f, 0xed, - 0x0f, 0x3a, 0xc3, 0xa6, 0xc1, 0x63, 0x4f, 0xd8, 0xad, 0xeb, 0xbf, 0x88, 0x2e, 0xaa, 0x12, 0xd8, - 0xec, 0x0f, 0xda, 0x5e, 0x94, 0x5d, 0x9f, 0xbf, 0x3d, 0x60, 0x7d, 0x59, 0x94, 0x95, 0x6d, 0x44, - 0x97, 0x30, 0x6e, 0xa1, 0x74, 0xca, 0x1d, 0x48, 0x98, 0x5f, 0x35, 0xbb, 0xee, 0xd9, 0xc8, 0xff, - 0xe0, 0xf1, 0x39, 0xc0, 0x8a, 0x3f, 0xd7, 0xe9, 0x50, 0xbf, 0xc9, 0x62, 0xe3, 0x4d, 0x15, 0x60, - 0x31, 0x22, 0x96, 0x88, 0xaf, 0x79, 0x1c, 0x05, 0xca, 0x87, 0x2c, 0x04, 0x19, 0x92, 0x18, 0x33, - 0x8e, 0xbb, 0xff, 0x86, 0x63, 0xe8, 0xf0, 0x39, 0xd2, 0x1c, 0x05, 0x18, 0x3d, 0xaf, 0x96, 0x09, - 0x67, 0xae, 0x43, 0xc6, 0x89, 0x9b, 0x69, 0x1f, 0xb3, 0xe7, 0x2c, 0x95, 0x53, 0x69, 0x19, 0x96, - 0x8d, 0x41, 0xec, 0xc0, 0x44, 0x03, 0xfe, 0x0d, 0x97, 0x2c, 0x62, 0x8d, 0xb6, 0xbf, 0xf3, 0xe4, - 0x97, 0x97, 0x2f, 0x5e, 0xbc, 0x38, 0x64, 0xb7, 0x85, 0x28, 0x12, 0xbd, 0x2c, 0xad, 0x48, 0x99, - 0xd5, 0x71, 0x61, 0xe6, 0xd2, 0x18, 0x04, 0x60, 0xc8, 0x4e, 0xd0, 0x82, 0x68, 0x90, 0x6e, 0x61, - 0xd9, 0x22, 0x13, 0x44, 0xa4, 0x39, 0xda, 0x48, 0xea, 0x62, 0x60, 0x64, 0xc0, 0x52, 0xc5, 0xde, - 0x5e, 0x8d, 0x18, 0xaa, 0x03, 0x5b, 0xaa, 0x4a, 0xb3, 0x71, 0x5c, 0xcc, 0x30, 0x49, 0x13, 0x4a, - 0x07, 0x6c, 0x78, 0x7e, 0x19, 0x30, 0x61, 0x93, 0x90, 0x95, 0xb2, 0xe8, 0x76, 0x5a, 0x97, 0xea, - 0x01, 0x15, 0x11, 0xb6, 0x90, 0x1a, 0xd2, 0x8c, 0x61, 0xde, 0xd5, 0xe8, 0xd8, 0x67, 0x46, 0x4d, - 0x2c, 0xf4, 0x12, 0xac, 0x6e, 0x82, 0xef, 0xa1, 0xed, 0xe0, 0x19, 0xab, 0xcf, 0x6d, 0x18, 0xbe, - 0xbd, 0x72, 0x11, 0xa5, 0x07, 0xd7, 0x30, 0xa8, 0xcc, 0x34, 0xcc, 0x7f, 0xd4, 0x3f, 0xf5, 0x8e, - 0xab, 0xeb, 0x2d, 0x5f, 0x3c, 0xdb, 0x6f, 0x70, 0x19, 0x29, 0xe0, 0x46, 0xf7, 0x15, 0x06, 0x35, - 0x02, 0x86, 0x68, 0x67, 0x6d, 0xcb, 0xcf, 0xd0, 0xef, 0x1a, 0x74, 0x0e, 0x64, 0x1c, 0x2b, 0x04, - 0xa1, 0xa3, 0x58, 0x9c, 0x1b, 0xd5, 0x20, 0x6d, 0x33, 0x81, 0x56, 0x4e, 0x6b, 0x40, 0xc2, 0xda, - 0xe3, 0xba, 0x4e, 0xab, 0x51, 0x26, 0x56, 0x23, 0xd4, 0xac, 0x55, 0x79, 0xca, 0xc6, 0x82, 0xae, - 0x3d, 0xc5, 0x14, 0x62, 0x1c, 0x96, 0x38, 0x0e, 0xad, 0x7a, 0x73, 0x78, 0x1a, 0xd2, 0xb6, 0xfe, - 0x78, 0xd0, 0x39, 0x95, 0xa6, 0xd5, 0xa6, 0x5e, 0x57, 0x28, 0x0b, 0xdf, 0x13, 0xc8, 0x01, 0x53, - 0x38, 0x52, 0x2f, 0x24, 0xf0, 0x8e, 0x0b, 0x86, 0x00, 0x41, 0xe4, 0x43, 0x8f, 0x04, 0x2f, 0x60, - 0x2c, 0xf8, 0x36, 0x63, 0xf5, 0x7d, 0x6d, 0x85, 0x26, 0xa1, 0x3e, 0x76, 0x86, 0xf6, 0xe5, 0x3a, - 0x9a, 0x29, 0x3f, 0x10, 0x66, 0x75, 0x7b, 0x49, 0x98, 0x23, 0xf7, 0x97, 0xb5, 0x76, 0xee, 0x6c, - 0x39, 0x71, 0xc7, 0xe7, 0xe4, 0x26, 0x2c, 0x4b, 0x6b, 0x95, 0xd2, 0x6e, 0xbf, 0x27, 0x6b, 0xd4, - 0x4f, 0x45, 0xb1, 0x64, 0x71, 0x92, 0x90, 0xfb, 0x80, 0xc9, 0x3b, 0xf9, 0x5a, 0xb2, 0x96, 0xc6, - 0x68, 0x37, 0xed, 0x14, 0xe9, 0x0f, 0x7c, 0x78, 0xf5, 0xae, 0xf1, 0x21, 0xfd, 0xbd, 0x06, 0x2b, - 0x2a, 0x4d, 0x90, 0x43, 0xce, 0x0f, 0x36, 0xde, 0x0c, 0x1b, 0xdf, 0x1d, 0xe7, 0xf9, 0xfa, 0xd8, - 0xb8, 0x48, 0x59, 0xc3, 0xd1, 0x88, 0x2d, 0xcc, 0x00, 0x70, 0x41, 0x81, 0xd1, 0x62, 0xab, 0x07, - 0xff, 0x57, 0x0e, 0x1c, 0x6f, 0x20, 0xed, 0x80, 0x03, 0xba, 0x50, 0x03, 0x01, 0x61, 0xe1, 0xde, - 0x99, 0x43, 0x5f, 0x52, 0x3c, 0x24, 0x82, 0xba, 0x78, 0xb0, 0x65, 0xdd, 0xb1, 0xb7, 0xf1, 0x4e, - 0x6c, 0x93, 0x3d, 0x1b, 0x0c, 0xdb, 0xf8, 0xae, 0x49, 0x06, 0xf4, 0xf2, 0x6c, 0xf0, 0x03, 0x4a, - 0xbc, 0x25, 0x76, 0xeb, 0x5c, 0xc6, 0x45, 0x15, 0xe7, 0xce, 0x21, 0xed, 0xd6, 0x15, 0xd7, 0xe9, - 0xc1, 0x59, 0x1d, 0xbb, 0xc7, 0x3a, 0xad, 0x64, 0xa1, 0xb0, 0xe8, 0x51, 0xec, 0x1a, 0x76, 0x3a, - 0xbe, 0xe2, 0x2b, 0x9d, 0x88, 0x39, 0xab, 0x12, 0xc4, 0x77, 0x83, 0xe6, 0x5a, 0xe9, 0x46, 0xa9, - 0xb8, 0x85, 0x68, 0x6c, 0x71, 0x9b, 0x29, 0x66, 0x35, 0xc3, 0x35, 0x75, 0x94, 0x75, 0xa8, 0x38, - 0x46, 0xbc, 0xd7, 0x40, 0x8d, 0x2a, 0x47, 0x3a, 0xb7, 0xdd, 0x11, 0xf2, 0xae, 0x29, 0x93, 0xad, - 0xf0, 0xe6, 0xbd, 0xdf, 0x8b, 0x57, 0x2e, 0x18, 0x74, 0x9a, 0xf3, 0x56, 0x93, 0x2e, 0x3e, 0x37, - 0xb4, 0x76, 0x77, 0xa7, 0xc6, 0xdb, 0xae, 0x2d, 0x76, 0xc1, 0x56, 0xda, 0x88, 0xd7, 0xe7, 0x0d, - 0x58, 0x0b, 0x5d, 0xe7, 0x61, 0xec, 0x7e, 0xdd, 0xb8, 0x52, 0xb8, 0xa2, 0x4b, 0x52, 0x82, 0x7b, - 0x5a, 0xfb, 0xbf, 0x0e, 0x6e, 0xdd, 0xb2, 0x15, 0xa2, 0x75, 0x38, 0xae, 0x78, 0xea, 0x71, 0x28, - 0x5a, 0x2b, 0x59, 0x83, 0x06, 0xa0, 0x69, 0x90, 0xe8, 0xac, 0xa1, 0x20, 0xbc, 0x5a, 0x18, 0xb6, - 0xae, 0x7c, 0x5b, 0x60, 0xb4, 0x58, 0x6c, 0xaf, 0x58, 0x23, 0xd2, 0x79, 0x18, 0x92, 0xfd, 0xc7, - 0x31, 0x79, 0xa4, 0x5a, 0x3e, 0x88, 0xc9, 0x7e, 0xb0, 0xa1, 0xfc, 0xb7, 0x80, 0x6c, 0xe0, 0x41, - 0xb9, 0xd3, 0x79, 0x38, 0x79, 0x6a, 0x13, 0xa8, 0x2c, 0x34, 0xb8, 0xf4, 0xb6, 0x6f, 0xb8, 0x2e, - 0x1d, 0xaf, 0xfe, 0x38, 0xbb, 0x79, 0x77, 0x73, 0x3e, 0x3a, 0xab, 0x6b, 0x05, 0x28, 0x56, 0x53, - 0x5d, 0x79, 0x70, 0x47, 0xe8, 0x1c, 0xd1, 0xa1, 0x9b, 0x70, 0x4d, 0xaf, 0xdb, 0xf2, 0xe6, 0x31, - 0x11, 0xc5, 0x9f, 0x15, 0x2a, 0x08, 0xca, 0xdd, 0x64, 0x93, 0x3a, 0x18, 0xf8, 0x5b, 0x8b, 0x1d, - 0x47, 0x86, 0xcd, 0x6d, 0xdb, 0x1d, 0x77, 0x36, 0xbc, 0x0e, 0x9b, 0x8c, 0x7c, 0xfd, 0x00, 0xc5, - 0x07, 0x2b, 0xba, 0x36, 0x8e, 0x10, 0x89, 0x74, 0xc7, 0x94, 0xf3, 0x29, 0xea, 0x51, 0xd8, 0xe6, - 0xcb, 0xf1, 0x18, 0xb7, 0xdc, 0x36, 0x49, 0x9a, 0x44, 0x68, 0x3f, 0x23, 0xa1, 0xe0, 0x66, 0xd5, - 0x38, 0xc4, 0xd5, 0xbd, 0x77, 0x2c, 0x75, 0xa2, 0x94, 0x9a, 0x49, 0xd1, 0xa3, 0x1e, 0xbc, 0x87, - 0x3a, 0x1d, 0xeb, 0x29, 0x7d, 0xee, 0xfa, 0x38, 0xce, 0x51, 0x22, 0xf9, 0x80, 0x86, 0x29, 0x08, - 0x3a, 0xec, 0x4e, 0x68, 0xa2, 0x19, 0xb6, 0x1b, 0xee, 0x3d, 0x0f, 0x9f, 0xad, 0x88, 0xea, 0x67, - 0xc4, 0x2f, 0xe4, 0x4c, 0xf6, 0xdc, 0x9d, 0x8d, 0xda, 0x57, 0xa5, 0xcd, 0x0e, 0xa8, 0x70, 0x27, - 0xd1, 0x22, 0x95, 0x14, 0xa1, 0x9d, 0xfb, 0x87, 0x6f, 0x2e, 0x45, 0xa9, 0x16, 0x74, 0xfb, 0x04, - 0xf9, 0x49, 0x51, 0x73, 0xa8, 0x29, 0x45, 0x22, 0x41, 0x38, 0x16, 0xe5, 0x60, 0xb6, 0xca, 0xdb, - 0xce, 0x31, 0xcb, 0x2a, 0x54, 0x0b, 0x37, 0xea, 0x0a, 0x22, 0x78, 0x1f, 0x77, 0x2e, 0xbd, 0x54, - 0x85, 0x40, 0xa1, 0x52, 0x8c, 0xfa, 0x3c, 0xc0, 0x05, 0x66, 0xac, 0xbf, 0x13, 0xb9, 0xfb, 0x47, - 0xb7, 0xb5, 0xa8, 0xe3, 0x25, 0x3e, 0xdb, 0xdf, 0xdd, 0xfb, 0x6d, 0x67, 0x7f, 0x77, 0xff, 0x39, - 0x7b, 0x95, 0x69, 0xdc, 0xb4, 0x25, 0xa8, 0x73, 0x98, 0x64, 0x0b, 0xfa, 0x4e, 0xd1, 0xd4, 0xa8, - 0x0b, 0x54, 0x2f, 0x5c, 0xfd, 0x00, 0x3b, 0x94, 0xaa, 0x4b, 0xec, 0x4f, 0x81, 0x31, 0xce, 0xd5, - 0xb8, 0x37, 0xc7, 0x15, 0x5d, 0xe8, 0xde, 0xc5, 0xf9, 0xab, 0xb3, 0xb7, 0xc3, 0xb3, 0x6f, 0xe1, - 0xef, 0x5c, 0x9e, 0x8f, 0x58, 0x5e, 0x9f, 0xe4, 0x0c, 0x44, 0x5d, 0x6b, 0x15, 0x1d, 0x0a, 0x0d, - 0xab, 0x60, 0x86, 0x31, 0xa8, 0x8e, 0x60, 0x53, 0xdc, 0x95, 0x8b, 0x96, 0x06, 0x8c, 0x2c, 0x39, - 0x25, 0xac, 0xfb, 0x9e, 0xc0, 0xdc, 0x27, 0x02, 0xe2, 0x79, 0x5a, 0x52, 0x93, 0x2a, 0x25, 0x09, - 0x51, 0x44, 0xfd, 0x0d, 0xe6, 0xbb, 0x5d, 0xec, 0xb7, 0x4d, 0x6c, 0xe7, 0xa7, 0xba, 0xd8, 0x1e, - 0x95, 0x1a, 0xfc, 0x50, 0xf3, 0x4e, 0x9d, 0x3c, 0x7d, 0xd9, 0xfd, 0x2f, 0x9b, 0x42, 0x3b, 0x5f, - 0xe9, 0x15, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x9d, 0x58, 0x6d, 0x73, 0xdb, 0xb8, + 0x11, 0xfe, 0xce, 0x5f, 0x01, 0xe1, 0x66, 0x52, 0xb2, 0xa1, 0x29, 0xdb, 0x97, 0xb9, 0xc9, 0xd9, + 0xa2, 0x5c, 0x3b, 0x76, 0x1a, 0x77, 0xec, 0xd8, 0x63, 0xc9, 0x97, 0x76, 0xae, 0x37, 0x19, 0x8a, + 0x84, 0x44, 0x44, 0x14, 0xc1, 0x03, 0x40, 0x2b, 0x6a, 0x2e, 0xff, 0xbd, 0xcf, 0x82, 0xa4, 0x5e, + 0x1c, 0xfb, 0xae, 0xd7, 0x0f, 0xb6, 0x48, 0xbc, 0x2c, 0x76, 0x9f, 0xdd, 0x7d, 0x76, 0xc1, 0x41, + 0xef, 0xfc, 0xe6, 0xcd, 0xf8, 0x5f, 0xb7, 0x17, 0x2c, 0xb7, 0x8b, 0x62, 0x38, 0xa0, 0xff, 0xac, + 0x48, 0xca, 0x59, 0xcc, 0x45, 0xc9, 0xf1, 0x2e, 0x92, 0x6c, 0x38, 0x58, 0x08, 0x9b, 0x30, 0x2f, + 0x55, 0xa5, 0x15, 0xa5, 0x8d, 0xf9, 0x52, 0x66, 0x36, 0x8f, 0x33, 0xf1, 0x20, 0x53, 0xb1, 0xe7, + 0x5e, 0x42, 0x59, 0x4a, 0x2b, 0x93, 0x62, 0xcf, 0xa4, 0x49, 0x21, 0xe2, 0x83, 0x70, 0x91, 0x7c, + 0x96, 0x8b, 0x7a, 0xb1, 0x7e, 0xaf, 0x8d, 0xd0, 0xee, 0x25, 0x99, 0xe0, 0xbd, 0x54, 0x9c, 0x79, + 0x65, 0xb2, 0x10, 0x31, 0x7f, 0x90, 0x62, 0x59, 0x29, 0x6d, 0x79, 0x7b, 0x4a, 0x9a, 0x27, 0xda, + 0x08, 0x1c, 0x52, 0xdb, 0xe9, 0xde, 0x6b, 0x8c, 0x5a, 0x69, 0x0b, 0x31, 0xbc, 0x96, 0x26, 0x65, + 0x23, 0x61, 0xad, 0x2c, 0x67, 0x66, 0xd0, 0x6f, 0x06, 0x07, 0x26, 0xd5, 0xb2, 0xb2, 0x43, 0xef, + 0x21, 0xd1, 0xac, 0x50, 0xa9, 0xac, 0x42, 0x2b, 0x17, 0x42, 0xd5, 0x36, 0xcc, 0xe2, 0x4c, 0xa5, + 0xf5, 0x02, 0xea, 0x86, 0x98, 0x88, 0x7b, 0x07, 0xf4, 0x53, 0x69, 0x65, 0x55, 0xcc, 0x73, 0x6b, + 0xab, 0x23, 0x7e, 0x3c, 0xad, 0xcb, 0xd4, 0x4a, 0x55, 0xb2, 0x77, 0x7e, 0xf0, 0x65, 0x29, 0xcb, + 0x4c, 0x2d, 0x23, 0x55, 0x89, 0xd2, 0x77, 0x0b, 0xcc, 0x51, 0xbf, 0x3f, 0x2f, 0x55, 0xb4, 0x2c, + 0x44, 0x16, 0xcd, 0x44, 0x7f, 0x2a, 0x12, 0x5b, 0x6b, 0x61, 0xfa, 0xa6, 0x55, 0xa2, 0xff, 0x9d, + 0x11, 0x69, 0xad, 0xa5, 0x5d, 0xed, 0x75, 0x43, 0x3c, 0xf8, 0xba, 0x16, 0x7a, 0xf6, 0x48, 0xe8, + 0x4c, 0xd8, 0xfb, 0xbb, 0x2b, 0x9f, 0xf7, 0x37, 0x8b, 0x43, 0xfe, 0xd1, 0x88, 0x62, 0xba, 0xbd, + 0xeb, 0xfe, 0xb9, 0x5d, 0x75, 0x95, 0x25, 0x56, 0x3c, 0xb9, 0x67, 0x76, 0x99, 0xf9, 0x36, 0xf8, + 0xa2, 0x05, 0xf4, 0x2b, 0x19, 0x29, 0x6b, 0x2f, 0x0a, 0x41, 0xa6, 0x9f, 0xad, 0xdc, 0xd4, 0x66, + 0xa9, 0x34, 0x37, 0x93, 0x4f, 0x5b, 0x8b, 0xed, 0x8b, 0x17, 0x5c, 0x4d, 0x3e, 0x89, 0xd4, 0xf2, + 0x38, 0xb6, 0xab, 0x4a, 0xa8, 0x29, 0x8d, 0xf5, 0x4e, 0xb5, 0x4e, 0x56, 0x91, 0x34, 0xee, 0x77, + 0x47, 0x42, 0xa1, 0x92, 0xec, 0x1f, 0x23, 0xdf, 0x86, 0x22, 0xee, 0xed, 0x07, 0x5f, 0x0a, 0x61, + 0x99, 0x8a, 0xb3, 0x28, 0xd5, 0x80, 0x47, 0xb4, 0xc7, 0xfa, 0xbc, 0xf1, 0x0b, 0x0f, 0x8e, 0x55, + 0x04, 0x73, 0x4f, 0xad, 0xd5, 0x72, 0x52, 0x5b, 0x81, 0x09, 0x9d, 0xf2, 0xd0, 0x06, 0xe1, 0xe3, + 0x71, 0x3a, 0x9b, 0x87, 0xdc, 0x8a, 0xcf, 0xb6, 0xff, 0x29, 0x79, 0x48, 0x3a, 0x01, 0xdf, 0x2c, + 0x4c, 0xcc, 0xaa, 0x84, 0x08, 0x11, 0x84, 0x59, 0x34, 0x51, 0xd9, 0x2a, 0x4a, 0x2a, 0xe0, 0x94, + 0xbd, 0xc9, 0x65, 0x91, 0xf9, 0x8a, 0xd6, 0x27, 0x59, 0x76, 0xf1, 0x00, 0x2d, 0xae, 0xa4, 0x41, + 0xb4, 0x0a, 0xed, 0x73, 0xd2, 0x99, 0x87, 0x7e, 0x10, 0x0f, 0xbf, 0xfc, 0x5d, 0xd8, 0x9f, 0xfc, + 0x20, 0x84, 0xcc, 0xb3, 0x74, 0xfe, 0x56, 0x16, 0x82, 0x82, 0xd0, 0x27, 0x04, 0xf9, 0x24, 0x9d, + 0xa7, 0xd3, 0x19, 0x0f, 0x9e, 0x9d, 0xad, 0xe0, 0x7d, 0x61, 0xe1, 0xb7, 0xe0, 0xeb, 0xd3, 0xe7, + 0x08, 0xad, 0x95, 0x86, 0x79, 0x38, 0x07, 0xa9, 0x62, 0x54, 0x21, 0xa2, 0x42, 0xcd, 0x7c, 0x7e, + 0x41, 0xe3, 0xac, 0x05, 0x0f, 0xae, 0x67, 0x53, 0x88, 0x76, 0x30, 0x20, 0x37, 0x34, 0xe0, 0xba, + 0x6a, 0xc7, 0x81, 0x3e, 0x36, 0x4e, 0xe5, 0xac, 0xd6, 0x89, 0x43, 0xbb, 0x81, 0x81, 0x4d, 0x13, + 0x49, 0x51, 0xf8, 0xef, 0xf2, 0xb2, 0x4c, 0xd5, 0xa2, 0x02, 0xe8, 0x82, 0x55, 0xc9, 0x4c, 0x30, + 0xc4, 0x44, 0xd2, 0x43, 0x2c, 0x6c, 0x39, 0xc8, 0xe4, 0x6a, 0x39, 0x56, 0x89, 0xb1, 0x8d, 0x8f, + 0x0e, 0x82, 0x2f, 0x94, 0x1c, 0x2a, 0x76, 0x56, 0x58, 0x9a, 0x70, 0x6e, 0x91, 0x25, 0x54, 0x7e, + 0x37, 0xbe, 0xbe, 0x8a, 0x2d, 0x6c, 0x49, 0x8b, 0xc4, 0x18, 0x32, 0x84, 0xac, 0xf2, 0xc5, 0x49, + 0x6b, 0xca, 0x11, 0x27, 0x69, 0xf0, 0x42, 0x5a, 0x88, 0x44, 0x8f, 0x9b, 0xd4, 0xf2, 0xdb, 0x14, + 0x73, 0xbe, 0xb1, 0x2b, 0x18, 0x99, 0x94, 0x72, 0xe1, 0xf4, 0x8d, 0x79, 0xa9, 0x4a, 0xb2, 0xac, + 0x59, 0x11, 0x03, 0xae, 0x6e, 0x93, 0xdf, 0x29, 0x88, 0x00, 0xdf, 0x3e, 0x4f, 0x8b, 0x85, 0x7a, + 0xa0, 0xc0, 0x70, 0x07, 0x01, 0xd8, 0xc3, 0x1f, 0xf7, 0xf7, 0xb7, 0xcc, 0xa9, 0x2b, 0x02, 0x8d, + 0x7c, 0x41, 0xf6, 0x74, 0xc6, 0x94, 0x62, 0xc9, 0xfe, 0x79, 0x7d, 0xf5, 0x0e, 0x79, 0x7a, 0x27, + 0x7e, 0xad, 0x85, 0xb1, 0xc7, 0xbf, 0xe3, 0xf8, 0xad, 0xa3, 0xb7, 0xd0, 0xc9, 0xa5, 0xc1, 0xe9, + 0xa6, 0x82, 0xa7, 0xc4, 0x18, 0x71, 0x17, 0xba, 0x11, 0x63, 0x91, 0xe6, 0x66, 0x18, 0xbf, 0x22, + 0x2d, 0x82, 0xdf, 0xf5, 0xf3, 0x46, 0xae, 0xdd, 0x11, 0x4c, 0x32, 0xd2, 0x79, 0xd8, 0xeb, 0x04, + 0x34, 0x9c, 0x72, 0x7b, 0x33, 0x1a, 0xf3, 0x70, 0x2b, 0x9f, 0x9d, 0x72, 0x41, 0x70, 0x4c, 0x16, + 0x95, 0xce, 0xa2, 0xb7, 0x4a, 0x2f, 0xce, 0xe1, 0xd1, 0xe3, 0x36, 0x3b, 0xcb, 0x36, 0xb8, 0x7d, + 0x4e, 0x7e, 0x06, 0xac, 0x11, 0x05, 0x8e, 0xf9, 0x79, 0xff, 0x17, 0x8a, 0x7f, 0xca, 0x0c, 0xcc, + 0x95, 0x01, 0xc6, 0x1f, 0x92, 0xa2, 0x06, 0x97, 0xf2, 0xb0, 0x77, 0xb0, 0x81, 0x2e, 0xcd, 0x45, + 0x3a, 0x7f, 0x5f, 0x2f, 0x36, 0xf9, 0xde, 0xf3, 0x7b, 0x82, 0x4c, 0x89, 0xe6, 0x62, 0x15, 0xc1, + 0x65, 0x69, 0xee, 0xf7, 0x7f, 0xde, 0xdf, 0xfb, 0xf1, 0x97, 0x7e, 0x80, 0xa4, 0xff, 0x99, 0x9f, + 0x41, 0x6f, 0x53, 0x25, 0x29, 0xa5, 0xe2, 0x38, 0x99, 0xe0, 0xff, 0x05, 0x18, 0x1f, 0xa6, 0xf2, + 0x51, 0x2e, 0xa7, 0x16, 0xbf, 0x6f, 0x50, 0x02, 0xb4, 0x2a, 0xf0, 0x74, 0x5a, 0xd0, 0xfb, 0x6d, + 0x02, 0x62, 0xa7, 0xf1, 0xa4, 0x32, 0x57, 0x2a, 0x9d, 0xd3, 0x16, 0xb0, 0xbc, 0x4b, 0xe6, 0x51, + 0x2b, 0xe9, 0x16, 0x91, 0x7a, 0x5f, 0xb5, 0x0f, 0xe7, 0x6a, 0x59, 0x3a, 0xb9, 0x70, 0x0c, 0x7f, + 0xa7, 0x16, 0xb4, 0x00, 0x2c, 0xa3, 0x96, 0x57, 0xc2, 0x1d, 0xe0, 0x9e, 0xdd, 0x6a, 0xf7, 0x74, + 0x27, 0x67, 0xf9, 0x7a, 0xb8, 0xdd, 0x7b, 0x09, 0x87, 0x69, 0x1a, 0x3c, 0x17, 0x94, 0x09, 0xfc, + 0x17, 0x04, 0x73, 0x5a, 0xd4, 0x99, 0x30, 0xfe, 0xda, 0xba, 0x20, 0xf8, 0xed, 0xb7, 0xf6, 0x0d, + 0x69, 0x4b, 0xbf, 0xe7, 0x62, 0x9a, 0xd4, 0x85, 0x45, 0xf2, 0x23, 0x27, 0xb6, 0xd2, 0x65, 0x37, + 0xd7, 0x01, 0x95, 0x7d, 0xc4, 0x38, 0xe0, 0xe2, 0xb2, 0x09, 0x24, 0x4e, 0xb5, 0xe0, 0x23, 0x7f, + 0x69, 0x89, 0x62, 0x9f, 0x5a, 0x11, 0xbc, 0xf4, 0xf9, 0x87, 0xab, 0x8b, 0x73, 0x90, 0xa9, 0xc9, + 0x4e, 0x38, 0xf2, 0x07, 0xab, 0x4d, 0x16, 0x6c, 0x9d, 0x37, 0xf2, 0x1b, 0xd2, 0xb4, 0x71, 0x4b, + 0xf3, 0x28, 0x4b, 0x2e, 0x77, 0x8e, 0xe5, 0xd4, 0xe7, 0xe4, 0xdf, 0x23, 0xa2, 0xe2, 0xc8, 0x95, + 0xaa, 0x54, 0x15, 0x81, 0xab, 0x5e, 0xfb, 0xa1, 0xef, 0xca, 0x5b, 0x4c, 0xab, 0x8b, 0x91, 0x55, + 0x1a, 0x50, 0x92, 0x16, 0x97, 0x56, 0x2c, 0x28, 0xce, 0xd3, 0xcb, 0x8a, 0x3b, 0x9b, 0x9b, 0x65, + 0xd8, 0xbd, 0xa8, 0x40, 0x2c, 0x64, 0x17, 0xbb, 0x56, 0x99, 0x88, 0xd8, 0x2d, 0x52, 0xd8, 0x08, + 0x26, 0xc8, 0xa1, 0x8c, 0x94, 0x64, 0x97, 0xb7, 0xa0, 0x8e, 0x70, 0x47, 0xa2, 0xd9, 0x95, 0x18, + 0x3a, 0x69, 0x88, 0x51, 0x51, 0x18, 0xe1, 0xd4, 0x16, 0xa4, 0x5a, 0x62, 0x73, 0x02, 0x2b, 0x54, + 0x31, 0x76, 0x14, 0xe8, 0x01, 0xfc, 0x83, 0x50, 0x44, 0x08, 0x46, 0xf3, 0x41, 0xda, 0x1c, 0xc1, + 0xcd, 0x83, 0x93, 0xbd, 0x83, 0xa3, 0x07, 0x25, 0x33, 0xb6, 0x1f, 0x44, 0xa6, 0x2a, 0xa4, 0x75, + 0xa3, 0x48, 0x52, 0xe0, 0x3c, 0xb3, 0xf9, 0xf0, 0xf0, 0xc5, 0x0b, 0x7f, 0x5d, 0x90, 0x37, 0xd6, + 0x86, 0xad, 0xb5, 0x8d, 0x15, 0x36, 0xca, 0x95, 0xb1, 0x74, 0xd4, 0x4b, 0x64, 0x15, 0x35, 0x09, + 0x27, 0x80, 0xf4, 0x65, 0xf3, 0x78, 0xc4, 0x01, 0x37, 0x84, 0xbe, 0x54, 0xc8, 0x87, 0xe0, 0x2b, + 0x76, 0x40, 0xe4, 0x0e, 0x91, 0x3f, 0xf2, 0x63, 0xae, 0xc5, 0x74, 0x9d, 0x80, 0xbb, 0x0b, 0x3b, + 0x8b, 0x90, 0xae, 0xdf, 0x90, 0xfd, 0xff, 0x22, 0x65, 0xb3, 0x78, 0x23, 0x89, 0x90, 0x75, 0xa5, + 0xf2, 0x9b, 0xc2, 0xdf, 0x37, 0xd1, 0x27, 0x73, 0x52, 0xc5, 0x3f, 0x70, 0x17, 0x8b, 0x61, 0xa3, + 0x7a, 0x16, 0x8d, 0xa6, 0x51, 0xe2, 0x82, 0x24, 0x7e, 0x62, 0x8b, 0x48, 0xf9, 0x76, 0x18, 0xb5, + 0x2b, 0xd6, 0x99, 0x4d, 0x60, 0x9e, 0x74, 0x80, 0x02, 0x16, 0xe0, 0xe2, 0x30, 0x74, 0x28, 0xd9, + 0xaf, 0xde, 0xa0, 0xdf, 0xb6, 0x4a, 0x03, 0x47, 0xd9, 0xc3, 0xbf, 0xc9, 0x05, 0x81, 0xc8, 0x6a, + 0x5d, 0x80, 0x7b, 0x1d, 0x8b, 0xa7, 0x06, 0x06, 0x1c, 0x63, 0xa1, 0x5b, 0x30, 0xe8, 0x37, 0x9d, + 0x1f, 0xd5, 0x58, 0x94, 0x2e, 0xb2, 0x25, 0xe6, 0x08, 0x5e, 0x34, 0x64, 0x53, 0xd0, 0x94, 0xc7, + 0x24, 0xde, 0xe9, 0xe9, 0xa3, 0xe1, 0xac, 0xe9, 0xe4, 0x46, 0x53, 0xce, 0xd0, 0xc2, 0xe5, 0x0a, + 0x33, 0x15, 0x1c, 0x87, 0xa5, 0x99, 0x7c, 0x60, 0x8e, 0xeb, 0x63, 0x94, 0x1e, 0xe8, 0xb6, 0xdc, + 0x1d, 0xcb, 0x45, 0x51, 0x9d, 0xf1, 0xa1, 0x37, 0x00, 0xb6, 0x16, 0x56, 0x51, 0x17, 0x10, 0xf3, + 0xe6, 0x85, 0xe3, 0xd4, 0x14, 0xc1, 0x35, 0x8f, 0xf9, 0x3b, 0x3a, 0xf6, 0x64, 0xd0, 0x6f, 0x26, + 0xa0, 0x1a, 0x44, 0x0c, 0x9f, 0xde, 0xe3, 0xad, 0x37, 0x9d, 0xd1, 0x26, 0x22, 0xb4, 0xcd, 0xbe, + 0x9d, 0x1d, 0xa6, 0x9e, 0x2c, 0x24, 0x74, 0x1c, 0x25, 0x0f, 0x62, 0xb3, 0x24, 0xd7, 0x9d, 0xf8, + 0xfc, 0x70, 0xe8, 0x8d, 0xda, 0x06, 0x8f, 0xbd, 0x60, 0xf7, 0xae, 0xff, 0x22, 0xba, 0xa8, 0x2b, + 0x60, 0x73, 0x38, 0xec, 0x7a, 0x51, 0x76, 0x7b, 0xf9, 0xfe, 0x88, 0x0d, 0x64, 0x59, 0xd5, 0xb6, + 0x15, 0x5d, 0xc1, 0xb8, 0xa5, 0xd2, 0x19, 0x77, 0x20, 0x61, 0x7e, 0xdd, 0xec, 0xba, 0x67, 0x23, + 0xff, 0x83, 0xc7, 0x57, 0x00, 0x2b, 0xf9, 0xdc, 0xa4, 0x43, 0xf3, 0x26, 0xcb, 0xad, 0x37, 0x55, + 0x82, 0xc5, 0x88, 0x58, 0x62, 0xbe, 0xe1, 0x71, 0x14, 0xa8, 0x00, 0xb2, 0x10, 0x64, 0x48, 0x62, + 0xcc, 0x38, 0xee, 0xfe, 0x2b, 0x8e, 0xa1, 0xc3, 0x17, 0x48, 0x73, 0x14, 0x60, 0xf4, 0xbc, 0x5a, + 0xa6, 0x9c, 0xb9, 0x0e, 0x19, 0x27, 0x6e, 0xa7, 0x7d, 0xc2, 0x5e, 0xb1, 0x4c, 0xce, 0xa4, 0x65, + 0x58, 0x36, 0x01, 0xb1, 0x03, 0x13, 0x0d, 0xf8, 0xb7, 0x5c, 0xb2, 0x4c, 0x34, 0xda, 0x7e, 0xef, + 0xc5, 0x77, 0x3f, 0xbe, 0x7e, 0xfd, 0xfa, 0x98, 0xdd, 0x97, 0xa2, 0x4c, 0xf5, 0xaa, 0xb2, 0x22, + 0x63, 0x56, 0x27, 0xa5, 0x59, 0x48, 0x63, 0x10, 0x80, 0x11, 0x3b, 0x43, 0x0b, 0xa2, 0x41, 0xba, + 0xa5, 0x65, 0xcb, 0x5c, 0x10, 0x91, 0x16, 0x68, 0x23, 0xa9, 0x8b, 0x81, 0x91, 0x21, 0xcb, 0x14, + 0x7b, 0x7f, 0x33, 0x66, 0xa8, 0x0e, 0x6c, 0xa5, 0x6a, 0xcd, 0x26, 0x49, 0x39, 0xc7, 0x24, 0x4d, + 0x28, 0x1d, 0xb2, 0xd1, 0xe5, 0x75, 0xc8, 0x84, 0x4d, 0x23, 0x56, 0xc9, 0xb2, 0xe7, 0x75, 0x2e, + 0xd5, 0x43, 0x2a, 0x22, 0x6c, 0x29, 0x35, 0xa4, 0x19, 0xc3, 0xfc, 0x9b, 0xf1, 0x69, 0xc0, 0x8c, + 0x9a, 0x5a, 0xe8, 0x25, 0x58, 0xd3, 0x04, 0x3f, 0x42, 0xdb, 0xc1, 0x33, 0x51, 0x9f, 0xbb, 0x30, + 0x7c, 0x7f, 0xe3, 0x22, 0x4a, 0x0f, 0x6f, 0x61, 0x50, 0x95, 0x6b, 0x98, 0xff, 0xac, 0x7f, 0x9a, + 0x1d, 0x37, 0xb7, 0x3b, 0xbe, 0xf8, 0xfe, 0xb0, 0xc5, 0x65, 0xac, 0x80, 0x1b, 0xdd, 0x57, 0x18, + 0xd4, 0x08, 0x19, 0xa2, 0x9d, 0x75, 0x2d, 0x3f, 0x43, 0xbf, 0x6b, 0xd0, 0x39, 0x90, 0x71, 0xac, + 0x14, 0x84, 0x8e, 0x62, 0x49, 0x61, 0x54, 0x8b, 0xb4, 0xcd, 0x05, 0x5a, 0x39, 0xad, 0x01, 0x09, + 0xeb, 0x8e, 0xeb, 0x39, 0xad, 0xc6, 0xb9, 0x58, 0x8f, 0x50, 0xb3, 0x56, 0x17, 0x19, 0x9b, 0x08, + 0xba, 0xf6, 0x94, 0x33, 0x88, 0x71, 0x58, 0xe2, 0x38, 0xb4, 0xea, 0xed, 0xe1, 0x59, 0x44, 0xdb, + 0x06, 0x93, 0xa1, 0x77, 0x2e, 0x4d, 0xa7, 0x4d, 0xb3, 0xae, 0x54, 0x16, 0xbe, 0x27, 0x90, 0x43, + 0xa6, 0x70, 0xa4, 0x5e, 0x4a, 0xe0, 0x9d, 0x94, 0x0c, 0x01, 0x82, 0xc8, 0x87, 0x1e, 0x29, 0x5e, + 0xc0, 0x58, 0xf0, 0x6d, 0xce, 0x9a, 0xfb, 0xda, 0x1a, 0x4d, 0x42, 0x7d, 0xe2, 0x0c, 0x1d, 0xc8, + 0x4d, 0x34, 0x53, 0x7e, 0x20, 0xcc, 0x9a, 0xf6, 0x92, 0x30, 0x47, 0xee, 0xaf, 0x1a, 0xed, 0xdc, + 0xd9, 0x72, 0xea, 0x8e, 0x2f, 0xc8, 0x4d, 0x58, 0x96, 0x35, 0x2a, 0x65, 0xbd, 0x41, 0x5f, 0x36, + 0xa8, 0x9f, 0x8b, 0x72, 0xc5, 0x92, 0x34, 0x25, 0xf7, 0x01, 0x93, 0x0f, 0xf2, 0xad, 0x64, 0x1d, + 0x8d, 0xd1, 0x6e, 0xda, 0x29, 0xb2, 0x3f, 0xf0, 0xe1, 0xcd, 0x87, 0xd6, 0x87, 0xf4, 0xf7, 0x16, + 0xac, 0xa8, 0x34, 0x41, 0x0e, 0x39, 0x7f, 0xb0, 0xf1, 0x6e, 0xd4, 0xfa, 0xee, 0xb4, 0x28, 0x36, + 0xc7, 0x26, 0x65, 0xc6, 0x5a, 0x8e, 0x46, 0x6c, 0x61, 0x06, 0x80, 0x0b, 0x0a, 0x8c, 0x0e, 0x5b, + 0x3d, 0xfc, 0xbf, 0x72, 0xe0, 0x74, 0x0b, 0x69, 0x07, 0x1c, 0xd0, 0x85, 0x1a, 0x08, 0x08, 0x0b, + 0xf7, 0xce, 0x1d, 0xfa, 0x92, 0xe2, 0x21, 0x15, 0xd4, 0xc5, 0x83, 0x2d, 0x9b, 0x8e, 0xbd, 0x8b, + 0x77, 0x62, 0x9b, 0xfc, 0xfb, 0xe1, 0xa8, 0x8b, 0xef, 0x86, 0x64, 0x40, 0x2f, 0xdf, 0x0f, 0xff, + 0x80, 0x12, 0xef, 0x89, 0xdd, 0xbc, 0xeb, 0xa4, 0xac, 0x93, 0xc2, 0x39, 0xa4, 0xdb, 0xba, 0xe6, + 0x3a, 0x3d, 0xbc, 0x68, 0x62, 0xf7, 0x54, 0x67, 0xb5, 0x2c, 0x15, 0x16, 0x3d, 0x8b, 0x5d, 0xcb, + 0x4e, 0xa7, 0x37, 0x7c, 0xad, 0x13, 0x31, 0x67, 0x5d, 0x81, 0xf8, 0xee, 0xd0, 0x5c, 0x2b, 0xdd, + 0x2a, 0x95, 0x74, 0x10, 0x4d, 0x2c, 0x6e, 0x33, 0xe5, 0xbc, 0x61, 0xb8, 0xb6, 0x8e, 0x32, 0x8f, + 0x8a, 0x63, 0xcc, 0xfb, 0x2d, 0xd4, 0xa8, 0x72, 0xa4, 0x73, 0xd7, 0x1d, 0x21, 0xef, 0xda, 0x32, + 0xd9, 0x09, 0x6f, 0xdf, 0x07, 0xfd, 0x64, 0xed, 0x82, 0xa1, 0xd7, 0x9e, 0xb7, 0x9e, 0x74, 0xf1, + 0xb9, 0xa5, 0xb5, 0xbb, 0x3b, 0xb5, 0xde, 0x76, 0x6d, 0xb1, 0x0b, 0xb6, 0xca, 0xc6, 0xbc, 0x39, + 0x6f, 0xc8, 0x3a, 0xe8, 0xbc, 0xa7, 0xb1, 0xfb, 0xcb, 0xd6, 0x95, 0xc2, 0x15, 0x5d, 0x92, 0x12, + 0x3e, 0xd2, 0x3a, 0xf8, 0xcb, 0xf0, 0xde, 0x2d, 0x5b, 0x23, 0xda, 0x84, 0xe3, 0x9a, 0xa7, 0x9e, + 0x87, 0xa2, 0xb3, 0x92, 0xb5, 0x68, 0x00, 0x9a, 0x16, 0x09, 0x6f, 0x03, 0x05, 0xe1, 0xd5, 0xc1, + 0xb0, 0x73, 0xe5, 0xdb, 0x01, 0xa3, 0xc3, 0x62, 0x77, 0xc5, 0x06, 0x11, 0xef, 0x69, 0x48, 0x0e, + 0x9f, 0xc7, 0xe4, 0x99, 0x6a, 0xf9, 0x24, 0x26, 0x87, 0xe1, 0x96, 0xf2, 0xdf, 0x02, 0xb2, 0x85, + 0x07, 0xe5, 0x8e, 0xf7, 0x74, 0xf2, 0x34, 0x26, 0x50, 0x59, 0x68, 0x71, 0xe9, 0xef, 0xde, 0x70, + 0x5d, 0x3a, 0xde, 0xfc, 0x74, 0x71, 0xf7, 0xe1, 0xee, 0x72, 0x7c, 0xd1, 0xd4, 0x0a, 0x50, 0xac, + 0xa6, 0xba, 0xf2, 0xe4, 0x8e, 0xc8, 0x39, 0xc2, 0xa3, 0x9b, 0x70, 0x43, 0xaf, 0xbb, 0xf2, 0x16, + 0x09, 0x11, 0xc5, 0xaf, 0x35, 0x2a, 0x08, 0xca, 0xdd, 0x74, 0x9b, 0x3a, 0x18, 0xf8, 0x5b, 0x8b, + 0x3d, 0x47, 0x86, 0xed, 0x6d, 0xdb, 0x1d, 0x77, 0x31, 0xba, 0x8d, 0xda, 0x8c, 0x7c, 0xfb, 0x04, + 0xc5, 0x87, 0x6b, 0xba, 0x36, 0x8e, 0x10, 0x89, 0x74, 0x27, 0x94, 0xf3, 0x19, 0xea, 0x51, 0xd4, + 0xe5, 0xcb, 0xe9, 0x04, 0xb7, 0xdc, 0x2e, 0x49, 0xda, 0x44, 0xe8, 0x3e, 0x23, 0xa1, 0xe0, 0xe6, + 0xf5, 0x24, 0xc2, 0xd5, 0xbd, 0x7f, 0x2a, 0x75, 0xaa, 0x94, 0x9a, 0x4b, 0xd1, 0xa7, 0x1e, 0xbc, + 0x8f, 0x3a, 0x9d, 0xe8, 0x19, 0x7d, 0xee, 0xfa, 0x38, 0x29, 0x50, 0x22, 0xf9, 0x90, 0x86, 0x29, + 0x08, 0x3c, 0xf6, 0x20, 0x34, 0xd1, 0x0c, 0xdb, 0x8f, 0x0e, 0x5e, 0x45, 0xaf, 0xd6, 0x44, 0xf5, + 0x67, 0xc4, 0x2f, 0xe5, 0x5c, 0xf6, 0xdd, 0x9d, 0x8d, 0xda, 0x57, 0xa5, 0xcd, 0x1e, 0xa8, 0x70, + 0x2f, 0xd5, 0x22, 0x93, 0x14, 0xa1, 0xde, 0xe3, 0xc3, 0xb7, 0x97, 0xa2, 0x54, 0x0b, 0xba, 0x7d, + 0x82, 0xfc, 0xa4, 0x68, 0x38, 0xd4, 0x54, 0x22, 0x95, 0x20, 0x1c, 0x8b, 0x72, 0x30, 0x5f, 0xe7, + 0xad, 0x77, 0xca, 0xf2, 0x1a, 0xd5, 0xc2, 0x8d, 0xba, 0x82, 0x08, 0xde, 0xc7, 0x9d, 0x4b, 0xaf, + 0x54, 0x29, 0x50, 0xa8, 0x14, 0xa3, 0x3e, 0x0f, 0x70, 0x81, 0x19, 0x9b, 0xef, 0x44, 0xee, 0xfe, + 0xd1, 0xeb, 0x2c, 0xf2, 0xfc, 0x34, 0x60, 0x87, 0xfb, 0x07, 0x3f, 0xec, 0x1d, 0xee, 0x1f, 0xbe, + 0x62, 0x6f, 0x72, 0x8d, 0x9b, 0xb6, 0x04, 0x75, 0x8e, 0xd2, 0x7c, 0x49, 0xdf, 0x29, 0xda, 0x1a, + 0x75, 0x85, 0xea, 0x85, 0xab, 0x1f, 0x60, 0x87, 0x52, 0x4d, 0x89, 0xfd, 0x53, 0x60, 0x4c, 0x0a, + 0x35, 0xe9, 0x2f, 0x70, 0x45, 0x17, 0xba, 0x7f, 0x75, 0xf9, 0xe6, 0xe2, 0xfd, 0xe8, 0xe2, 0x5b, + 0xf8, 0xbd, 0xeb, 0xcb, 0x31, 0x2b, 0x9a, 0x93, 0x9c, 0x81, 0xa8, 0x6b, 0x9d, 0xa2, 0x23, 0xa1, + 0x61, 0x15, 0xcc, 0x30, 0x06, 0xd5, 0x11, 0x6c, 0x8a, 0xbb, 0x72, 0xd9, 0xd1, 0x80, 0x91, 0x15, + 0xa7, 0x84, 0x75, 0xdf, 0x13, 0x98, 0xfb, 0x44, 0x40, 0x3c, 0x4f, 0x4b, 0x1a, 0x52, 0xa5, 0x24, + 0x21, 0x8a, 0x68, 0xbe, 0xc1, 0xfc, 0x6e, 0x17, 0xfb, 0x6d, 0x13, 0xeb, 0xfd, 0xa9, 0x2e, 0xb6, + 0x4f, 0xa5, 0x06, 0x3f, 0xd4, 0xbc, 0x53, 0x27, 0x4f, 0x5f, 0x76, 0xff, 0x0b, 0x1c, 0x5a, 0x5c, + 0xe0, 0xe9, 0x15, 0x00, 0x00 }; diff --git a/wled00/wled.h b/wled00/wled.h index 5834025c69..5d4cca4e93 100644 --- a/wled00/wled.h +++ b/wled00/wled.h @@ -8,7 +8,7 @@ */ // version code in format yymmddb (b = daily build) -#define VERSION 2404040 +#define VERSION 2405180 //uncomment this if you have a "my_config.h" file you'd like to use //#define WLED_USE_MY_CONFIG