Bus progress

This commit is contained in:
cschwinne 2020-12-07 01:39:42 +01:00
parent c930d6ddc0
commit 854501385e
9 changed files with 709 additions and 308 deletions

View File

@ -6,6 +6,7 @@
*/
#include "wled.h"
#include "bus_wrapper.h"
class BusManager {
public:
@ -16,7 +17,7 @@ class BusManager {
int add(uint8_t busType, uint8_t* pins, uint16_t len = 1) {
if (numBusses >= WLED_MAX_BUSSES) return -1;
if (IS_DIGITAL(busType)) {
busses[numBusses] = new BusDigital(busType, pins, len);
busses[numBusses] = new BusDigital(busType, pins, len, numBusses);
} else {
busses[numBusses] = new BusPwm(busType, pins);
}
@ -45,6 +46,11 @@ class BusManager {
}
}
void setBrightness(uint8_t b) {
for (uint8_t i = 0; i < numBusses; i++) {
busses[i]->setBrightness(b);
}
}
private:
uint8_t numBusses = 0;
@ -62,7 +68,7 @@ class Bus {
virtual void setPixelColor(uint16_t pix, uint32_t c) {};
virtual void setBrightness(uint8_t b) {};
virtual void setBrightness(uint8_t b) { _bri = b; };
virtual uint32_t getPixelColor(uint16_t pix) { return 0; };
@ -88,20 +94,38 @@ class Bus {
return _type;
}
bool isOk() {
return _valid;
}
protected:
uint8_t _type = TYPE_NONE;
uint8_t _bri = 255;
uint16_t _start;
bool _valid = false;
};
class BusDigital : public Bus {
public:
BusDigital(uint8_t type, uint8_t* pins, uint16_t len) : Bus(type) {
if (!IS_DIGITAL(type)) return;
BusDigital(uint8_t type, uint8_t* pins, uint16_t len, uint8_t nr) : Bus(type) {
if (!IS_DIGITAL(type) || !len) return;
_pins[0] = pins[0];
if (IS_2PIN(type)) _pins[1] = pins[1];
_len = len;
_iType = PolyBus::getI(type, _pins, nr);
if (_iType == I_NONE) return;
_valid = true;
};
void show() {
PolyBus::show(_busPtr, _iType);
}
void setPixelColor(uint16_t pix, uint32_t c) {
}
uint8_t getColorOrder() {
return _colorOrder;
}
@ -113,23 +137,109 @@ class BusDigital : public Bus {
private:
uint8_t _colorOrder = COL_ORDER_GRB;
uint8_t _pins[2];
uint16_t _len;
uint8_t _pins[2] = {255, 255};
uint8_t _iType = I_NONE;
uint16_t _len = 0;
void * _busPtr = nullptr;
};
class BusPwm : public Bus {
public:
BusPwm(uint8_t type, uint8_t* pins) : Bus(type) {
if (!IS_ANALOG(type)) return;
if (!IS_PWM(type)) return;
uint8_t numPins = NUM_PWM_PINS(type);
if (numPins == 0) numPins = 1;
#ifdef ESP8266
analogWriteRange(255); //same range as one RGB channel
analogWriteFreq(WLED_PWM_FREQ_ESP8266);
#else
_ledcStart = pinManager.allocateLedc(numPins);
if (_ledcStart == 255) { //no more free LEDC channels
deallocatePins(); return;
}
#endif
for (uint8_t i = 0; i < numPins; i++) {
_pins[i] = pins[i];
if (!pinManager.allocatePin(_pins[i])) {
deallocatePins(); return;
}
#ifdef ESP8266
pinMode(_pins[i], OUTPUT);
#else
ledcSetup(_ledcStart + i, WLED_PWM_FREQ_ESP32, 8);
ledcAttachPin(_pins[i], _ledcStart + i);
#endif
}
_valid = true;
};
void setPixelColor(uint16_t pix, uint32_t c) {
if (pix != 0 || !_valid) return; //only react to first pixel
uint8_t r = c >> 16;
uint8_t g = c >> 8;
uint8_t b = c ;
uint8_t w = c >> 24;
switch (_type) {
case TYPE_ANALOG_1CH: //one channel (white), use highest RGBW value
_data[0] = max(r, max(g, max(b, w))); break;
case TYPE_ANALOG_2CH: //warm white + cold white, we'll need some nice handling here, for now just R+G channels
case TYPE_ANALOG_3CH: //standard dumb RGB
case TYPE_ANALOG_4CH: //RGBW
case TYPE_ANALOG_5CH: //we'll want the white handling from 2CH here + RGB
_data[0] = r; _data[1] = g; _data[2] = b; _data[3] = w; _data[4] = 0; break;
default: return;
}
}
//does no index check
uint32_t getPixelColor(uint16_t pix) {
return ((_data[3] << 24) | (_data[0] << 16) | (_data[1] << 8) | (_data[2]));
}
void show() {
uint8_t numPins = NUM_PWM_PINS(_type);
for (uint8_t i = 0; i < numPins; i++) {
uint8_t scaled = (_data[i] * _bri) / 255;
#ifdef ESP8266
analogWrite(_pins[i], scaled);
#else
ledcWrite(_ledcStart + i, scaled);
#endif
}
}
~BusPwm() {
deallocatePins();
};
private:
uint8_t _pins[5];
uint8_t _data[5];
uint8_t _data[5] = {255, 255, 255, 255, 255};
#ifdef ARDUINO_ARCH_ESP32
uint8_t _ledcStart = 255;
#endif
void deallocatePins() {
uint8_t numPins = NUM_PWM_PINS(_type);
for (uint8_t i = 0; i < numPins; i++) {
if (!pinManager.isPinOk(_pins[i])) continue;
#ifdef ESP8266
digitalWrite(_pins[i], LOW); //turn off PWM interrupt
#else
if (_ledcStart < 16) ledcDetachPin(_pins[i], _ledcStart + i);
#endif
pinManager.deallocatePin(_pins[i]);
}
#ifdef ARDUINO_ARCH_ESP32
pinManager.deallocateLedc(_ledcStart, numPins);
#endif
}
};
#endif

248
wled00/bus_wrapper.h Normal file
View File

@ -0,0 +1,248 @@
#ifndef BusWrapper_h
#define BusWrapper_h
#include "wled.h"
//Hardware SPI Pins
#define P_8266_HS_MOSI 13
#define P_8266_HS_CLK 14
#define P_32_HS_MOSI 13
#define P_32_HS_CLK 14
#define P_32_VS_MOSI 23
#define P_32_VS_CLK 18
//The dirty list of possible bus types. Quite a lot...
#define I_NONE 0
//ESP8266 RGB
#define I_8266_U0_NEO_3 1
#define I_8266_U1_NEO_3 2
#define I_8266_DM_NEO_3 3
#define I_8266_BB_NEO_3 4
//RGBW
#define I_8266_U0_NEO_4 5
#define I_8266_U1_NEO_4 6
#define I_8266_DM_NEO_4 7
#define I_8266_BB_NEO_4 8
//400Kbps
#define I_8266_U0_400_3 9
#define I_8266_U1_400_3 10
#define I_8266_DM_400_3 11
#define I_8266_BB_400_3 12
//TM1418 (RGBW)
#define I_8266_U0_TM1_4 13
#define I_8266_U1_TM1_4 14
#define I_8266_DM_TM1_4 15
#define I_8266_BB_TM1_4 16
/*** ESP32 Neopixel methods ***/
//RGB
#define I_32_R0_NEO_3 17
#define I_32_R1_NEO_3 18
#define I_32_R2_NEO_3 19
#define I_32_R3_NEO_3 20
#define I_32_R4_NEO_3 21
#define I_32_R5_NEO_3 22
#define I_32_R6_NEO_3 23
#define I_32_R7_NEO_3 24
#define I_32_I0_NEO_3 25
#define I_32_I1_NEO_3 26
//RGBW
#define I_32_R0_NEO_4 27
#define I_32_R1_NEO_4 28
#define I_32_R2_NEO_4 29
#define I_32_R3_NEO_4 30
#define I_32_R4_NEO_4 31
#define I_32_R5_NEO_4 32
#define I_32_R6_NEO_4 33
#define I_32_R7_NEO_4 34
#define I_32_I0_NEO_4 35
#define I_32_I1_NEO_4 36
//400Kbps
#define I_32_R0_400_3 37
#define I_32_R1_400_3 38
#define I_32_R2_400_3 39
#define I_32_R3_400_3 40
#define I_32_R4_400_3 41
#define I_32_R5_400_3 42
#define I_32_R6_400_3 43
#define I_32_R7_400_3 44
#define I_32_I0_400_3 45
#define I_32_I1_400_3 46
//TM1418 (RGBW)
#define I_32_R0_TM1_4 47
#define I_32_R1_TM1_4 48
#define I_32_R2_TM1_4 49
#define I_32_R3_TM1_4 50
#define I_32_R4_TM1_4 51
#define I_32_R5_TM1_4 52
#define I_32_R6_TM1_4 53
#define I_32_R7_TM1_4 54
#define I_32_I0_TM1_4 55
#define I_32_I1_TM1_4 56
//Bit Bang theoratically possible, but very undesirable and not needed (no pin restrictions on RMT and I2S)
//APA102
#define I_HS_DOT_3 57 //hardware SPI
#define I_SS_DOT_3 58 //soft SPI
//LPD8806
#define I_HS_LPD_3 59
#define I_SS_LPD_3 60
//WS2801
#define I_HS_WS1_3 61
#define I_SS_WS1_3 62
//P9813
#define I_HS_P98_3 63
#define I_SS_P98_3 64
/*** ESP8266 Neopixel methods ***/
#ifdef ESP8266
//RGB
#define B_8266_U0_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart0Ws2813Method> //3 chan, esp8266, gpio1
#define B_8266_U1_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart1Ws2813Method> //3 chan, esp8266, gpio2
#define B_8266_DM_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Dma800KbpsMethod> //3 chan, esp8266, gpio3
#define B_8266_BB_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266BitBang800KbpsMethod> //3 chan, esp8266, bb (any pin)
//RGBW
#define B_8266_U0_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp8266Uart0Ws2813Method> //4 chan, esp8266, gpio1
#define B_8266_U1_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp8266Uart1Ws2813Method> //4 chan, esp8266, gpio2
#define B_8266_DM_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp8266Dma800KbpsMethod> //4 chan, esp8266, gpio3
#define B_8266_BB_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp8266BitBang800KbpsMethod> //4 chan, esp8266, bb (any pin)
//400Kbps
#define B_8266_U0_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart0400KbpsMethod> //3 chan, esp8266, gpio1
#define B_8266_U1_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart1400KbpsMethod> //3 chan, esp8266, gpio2
#define B_8266_DM_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Dma400KbpsMethod> //3 chan, esp8266, gpio3
#define B_8266_BB_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266BitBang400KbpsMethod> //3 chan, esp8266, bb (any pin)
//TM1418 (RGBW)
#define B_8266_U0_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp8266Uart0Tm1814Method>
#define B_8266_U1_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp8266Uart1Tm1814Method>
#define B_8266_DM_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp8266DmaTm1814Method>
#define B_8266_BB_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp8266BitBangTm1814Method>
#endif
/*** ESP32 Neopixel methods ***/
#ifdef ARDUINO_ARCH_ESP32
//RGB
#define B_32_R0_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt0Ws2812xMethod>
#define B_32_R1_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt1Ws2812xMethod>
#define B_32_R2_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt2Ws2812xMethod>
#define B_32_R3_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt3Ws2812xMethod>
#define B_32_R4_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt4Ws2812xMethod>
#define B_32_R5_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt5Ws2812xMethod>
#define B_32_R6_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt6Ws2812xMethod>
#define B_32_R7_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt7Ws2812xMethod>
#define B_32_I0_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32I2s0800KbpsMethod>
#define B_32_I1_NEO_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32I2s1800KbpsMethod>
//RGBW
#define B_32_R0_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt0Ws2812xMethod>
#define B_32_R1_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt1Ws2812xMethod>
#define B_32_R2_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt2Ws2812xMethod>
#define B_32_R3_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt3Ws2812xMethod>
#define B_32_R4_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt4Ws2812xMethod>
#define B_32_R5_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt5Ws2812xMethod>
#define B_32_R6_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt6Ws2812xMethod>
#define B_32_R7_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32Rmt7Ws2812xMethod>
#define B_32_I0_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32I2s0800KbpsMethod>
#define B_32_I1_NEO_4 NeoPixelBrightnessBus<NeoGrbwFeature, NeoEsp32I2s1800KbpsMethod>
//400Kbps
#define B_32_R0_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt0400KbpsMethod>
#define B_32_R1_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt1400KbpsMethod>
#define B_32_R2_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt2400KbpsMethod>
#define B_32_R3_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt3400KbpsMethod>
#define B_32_R4_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt4400KbpsMethod>
#define B_32_R5_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt5400KbpsMethod>
#define B_32_R6_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt6400KbpsMethod>
#define B_32_R7_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32Rmt7400KbpsMethod>
#define B_32_I0_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32I2s0400KbpsMethod>
#define B_32_I1_400_3 NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp32I2s1400KbpsMethod>
//TM1418 (RGBW)
#define B_32_R0_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt0Tm1814Method>
#define B_32_R1_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt1Tm1814Method>
#define B_32_R2_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt2Tm1814Method>
#define B_32_R3_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt3Tm1814Method>
#define B_32_R4_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt4Tm1814Method>
#define B_32_R5_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt5Tm1814Method>
#define B_32_R6_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt6Tm1814Method>
#define B_32_R7_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32Rmt7Tm1814Method>
#define B_32_I0_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32I2s0Tm1814Method>
#define B_32_I1_TM1_4 NeoPixelBrightnessBus<NeoWrgbTm1814Feature, NeoEsp32I2s1Tm1814Method>
//Bit Bang theoratically possible, but very undesirable and not needed (no pin restrictions on RMT and I2S)
#endif
//APA102
#define B_HS_DOT_3 NeoPixelBrightnessBus<DotStarBgrFeature, DotStarSpiMethod> //hardware SPI
#define B_SS_DOT_3 NeoPixelBrightnessBus<DotStarBgrFeature, DotStarMethod> //soft SPI
//LPD8806
#define B_HS_LPD_3 NeoPixelBrightnessBus<Lpd8806GrbFeature, Lpd8806SpiMethod>
#define B_SS_LPD_3 NeoPixelBrightnessBus<Lpd8806GrbFeature, Lpd8806Method>
//WS2801
#define B_HS_WS1_3 NeoPixelBrightnessBus<NeoRbgFeature, NeoWs2801SpiMethod>
#define B_SS_WS1_3 NeoPixelBrightnessBus<NeoRbgFeature, NeoWs2801Method>
//P9813
#define B_HS_P98_3 NeoPixelBrightnessBus<P9813BgrFeature, P9813SpiMethod>
#define B_SS_P98_3 NeoPixelBrightnessBus<P9813BgrFeature, P9813Method>
//handles pointer type conversion for all possible bus types
class PolyBus {
public:
static void show(void* busPtr, uint8_t busType) {
(static_cast<NeoPixelBrightnessBus<NeoGrbFeature, NeoEsp8266Uart1Ws2813Method>*>(busPtr))->Show();
};
//gives back the internal type index (I_XX_XXX_X above) for the input
static uint8_t getI(uint8_t busType, uint8_t* pins, uint8_t num = 0) {
if (!IS_DIGITAL(busType)) return I_NONE;
if (IS_2PIN(busType)) { //SPI LED chips
bool isHSPI = false;
#ifdef ESP8266
if (pins[0] == P_8266_HS_MOSI && pins[1] == P_8266_HS_CLK) isHSPI = true;
#else
if (pins[0] == P_32_HS_MOSI && pins[1] == P_32_HS_CLK) isHSPI = true;
if (pins[0] == P_32_VS_MOSI && pins[1] == P_V2_HS_CLK) isHSPI = true;
#endif
uint8_t t = I_NONE;
switch (busType) {
case TYPE_APA102: t = I_SS_DOT_3;
case TYPE_LPD8806: t = I_SS_LPD_3;
case TYPE_WS2801: t = I_SS_WS1_3;
case TYPE_P9813: t = I_SS_P98_3;
}
if (t > I_NONE && isHSPI) t--; //hardware SPI has one smaller ID than software
return t;
} else {
#ifdef ESP8266
uint8_t offset = pins[0] -1; //for driver: 0 = uart0, 1 = uart1, 2 = dma, 3 = bitbang
if (offset > 3) offset = 3;
switch (busType) {
case TYPE_WS2812_RGB:
case TYPE_WS2812_WWA:
return I_8266_U0_NEO_3 + offset;
case TYPE_SK6812_RGBW:
return I_8266_U0_NEO_4 + offset;
case TYPE_WS2811_400KHZ:
return I_8266_U0_400_3 + offset;
}
#else //ESP32
uint8_t offset = num; //RMT bus # == bus index in BusManager
if (offset > 9) return I_NONE;
switch (busType) {
case TYPE_WS2812_RGB:
case TYPE_WS2812_WWA:
return I_32_R0_NEO_3 + offset;
case TYPE_SK6812_RGBW:
return I_32_R0_NEO_4 + offset;
case TYPE_WS2811_400KHZ:
return I_32_R0_400_3 + offset;
}
#endif
}
return I_NONE;
}
};
#endif

View File

@ -95,6 +95,7 @@
#define TYPE_WS2812_RGB 22
#define TYPE_GS8608 23 //same driver as WS2812, but will require signal 2x per second (else displays test pattern)
#define TYPE_WS2811_400KHZ 24 //half-speed WS2812 protocol, used by very old WS2811 units
#define TYPE_TM1814 25
#define TYPE_SK6812_RGBW 30
//"Analog" types (PWM) (32-47)
#define TYPE_ONOFF 40 //binary output (relays etc.)
@ -108,11 +109,10 @@
#define TYPE_APA102 51
#define TYPE_LPD8806 52
#define TYPE_P9813 53
#define TYPE_TM1814 54
#define IS_DIGITAL(t) (t & 0x10) //digital are 16-31 and 48-63
#define IS_ANALOG(t) (t > 39 && t < 46)
#define NUM_PWM_PINS(t) (t - 40) //for analog PWM 40-45 only
#define IS_PWM(t) (t > 40 && t < 46)
#define NUM_PWM_PINS(t) (t - 40) //for analog PWM 41-45 only
#define IS_2PIN(t) (t > 47)
//Color orders
@ -181,7 +181,11 @@
#define E131_MAX_UNIVERSE_COUNT 9
#define ABL_MILLIAMPS_DEFAULT 850; // auto lower brightness to stay close to milliampere limit
#define ABL_MILLIAMPS_DEFAULT 850 // auto lower brightness to stay close to milliampere limit
// PWM settings
#define WLED_PWM_FREQ_ESP8266 880 //PWM frequency proven as good for LEDs
#define WLED_PWM_FREQ_ESP32 5000
#define TOUCH_THRESHOLD 32 // limit to recognize a touch, higher value means more sensitive

View File

@ -1905,7 +1905,6 @@ function requestJson(command, rinfo = true, verbose = true) {
nlTar = s.nl.tbri;
nlFade = s.nl.fade;
syncSend = s.udpn.send;
savedPresets = s.pss;
currentPreset = s.ps;
d.getElementById('cyToggle').checked = (s.pl < 0) ? false : true;
d.getElementById('cycs').value = s.ccnf.min;

View File

@ -155,6 +155,7 @@ class PinManagerClass {
uint8_t pinAlloc[3] = {0x00, 0x00, 0x00}; //24bit, 1 bit per pin, we use first 17bits
#else
uint8_t pinAlloc[5] = {0x00, 0x00, 0x00, 0x00, 0x00}; //40bit, 1 bit per pin, we use all bits
uint8_t ledcAlloc[2] = {0x00, 0x00}; //16 LEDC channels
#endif
public:
@ -162,6 +163,10 @@ class PinManagerClass {
bool allocatePin(byte gpio, bool output = true);
bool isPinAllocated(byte gpio);
bool isPinOk(byte gpio, bool output = true);
#ifdef ARDUINO_ARCH_ESP32
byte allocateLedc(byte channels);
void deallocateLedc(byte pos, byte channels);
#endif
};
//playlist.cpp

View File

@ -7,7 +7,7 @@
*/
// Autogenerated from wled00/data/index.htm, do not edit!!
const uint16_t PAGE_index_L = 34148;
const uint16_t PAGE_index_L = 34141;
const uint8_t PAGE_index[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xdc, 0xbd, 0x69, 0x7b, 0xe2, 0x48,
0xd2, 0x28, 0xfa, 0xfd, 0xfc, 0x0a, 0x8a, 0x9a, 0xa9, 0x46, 0x85, 0x00, 0xb1, 0x1a, 0xe3, 0xa2,
@ -1855,293 +1855,292 @@ const uint8_t PAGE_index[] PROGMEM = {
0xca, 0xb0, 0xb8, 0x50, 0x7a, 0x9a, 0xb3, 0x19, 0x10, 0x47, 0x86, 0x2d, 0xfa, 0xab, 0x44, 0x35,
0xa0, 0xc2, 0xaf, 0x52, 0xda, 0x8c, 0x4f, 0x1a, 0x3a, 0x0e, 0x2b, 0x25, 0x96, 0xa6, 0xb2, 0x8c,
0xc6, 0x4a, 0xc9, 0x73, 0xf8, 0xcd, 0xf1, 0x0c, 0x4c, 0x08, 0xd9, 0xa2, 0xbf, 0x9e, 0x65, 0x30,
0x1c, 0xf8, 0xe2, 0xac, 0xe0, 0x3a, 0x52, 0x38, 0xa4, 0xec, 0xac, 0x28, 0x78, 0x7b, 0xae, 0xc5,
0x67, 0xc5, 0x9c, 0xb6, 0x1d, 0xfa, 0xee, 0x0b, 0x29, 0x6f, 0x29, 0xd0, 0x07, 0xdd, 0xd1, 0xd1,
0x61, 0xb2, 0x9f, 0x25, 0x70, 0x80, 0xa0, 0xc3, 0x18, 0xdd, 0x26, 0x89, 0xb1, 0xbe, 0x94, 0x72,
0x36, 0x12, 0x16, 0x96, 0x9b, 0x0b, 0x50, 0x5b, 0xb8, 0x9a, 0xf7, 0x97, 0xf1, 0xaa, 0xbd, 0x7c,
0xe4, 0x28, 0xcf, 0xb7, 0x20, 0xee, 0xf2, 0x65, 0xb3, 0x3c, 0x89, 0x82, 0x83, 0xd1, 0x70, 0x4b,
0xa5, 0x6a, 0x2d, 0x5a, 0xb7, 0x31, 0x71, 0x35, 0x55, 0x4d, 0x4b, 0x0a, 0x51, 0x12, 0x62, 0xe4,
0x0c, 0xe6, 0x3a, 0x33, 0x0e, 0xa2, 0xe1, 0x32, 0x77, 0xab, 0xf1, 0x4f, 0x6d, 0xaf, 0x26, 0xb7,
0xfd, 0x78, 0xde, 0x65, 0xc3, 0x34, 0x54, 0xa6, 0x45, 0x78, 0x27, 0x83, 0x2d, 0x13, 0xe5, 0xce,
0xd4, 0x2d, 0xca, 0x06, 0x3f, 0x6c, 0x17, 0x58, 0x0e, 0x42, 0xc8, 0xf5, 0xb0, 0xf8, 0xb9, 0xa5,
0x01, 0x55, 0xf2, 0x84, 0x25, 0x11, 0x7d, 0x4a, 0x95, 0x5d, 0x55, 0xb1, 0x57, 0x91, 0x87, 0x2c,
0xc5, 0x13, 0x7f, 0x5b, 0xe2, 0x90, 0xee, 0x68, 0xe7, 0x58, 0x2f, 0x3c, 0x4a, 0xc4, 0xdc, 0x01,
0xb0, 0x6a, 0xbc, 0x18, 0x05, 0xa4, 0x44, 0xfb, 0xfb, 0xd6, 0x68, 0xc3, 0xd9, 0x59, 0xf4, 0x40,
0xa4, 0x17, 0x65, 0x99, 0x98, 0x40, 0x49, 0x3c, 0x3e, 0xa2, 0xb7, 0x77, 0x25, 0x6d, 0xe4, 0x48,
0x3b, 0x38, 0x67, 0xb3, 0x45, 0x8b, 0x99, 0x4a, 0x35, 0x0b, 0x47, 0x45, 0x86, 0x32, 0x15, 0x63,
0x3f, 0x55, 0xef, 0xb9, 0x72, 0x0f, 0xb0, 0xc2, 0xc9, 0x60, 0xe8, 0x62, 0x6b, 0x85, 0x3f, 0xa0,
0x37, 0xd2, 0xd4, 0x22, 0x3b, 0xc2, 0xda, 0xe7, 0xca, 0xc7, 0x72, 0xc7, 0xaa, 0x71, 0xbf, 0xb8,
0xdd, 0xca, 0x3d, 0x2c, 0x9d, 0x93, 0x55, 0x29, 0xbe, 0x6d, 0xed, 0xe7, 0xf7, 0x68, 0xd8, 0xa4,
0x7e, 0xa7, 0x1a, 0xcf, 0x39, 0xee, 0xcf, 0x19, 0x34, 0xd8, 0x7a, 0x4d, 0xcf, 0x59, 0x90, 0x34,
0x24, 0x64, 0x97, 0x46, 0xeb, 0x7b, 0x16, 0x85, 0x50, 0x9a, 0x0f, 0xf3, 0x34, 0x49, 0xbe, 0xd0,
0xad, 0xca, 0x4e, 0xe0, 0x72, 0x18, 0x89, 0x2f, 0x74, 0x8b, 0xb2, 0xad, 0x61, 0x8e, 0x98, 0xce,
0xe1, 0x26, 0x06, 0xa3, 0xfe, 0x2b, 0x89, 0x12, 0xd2, 0xe5, 0xf4, 0x39, 0xbc, 0x05, 0xe9, 0x47,
0xf8, 0xe7, 0x5e, 0x55, 0xe0, 0xa6, 0xe0, 0x9f, 0x79, 0x6e, 0x7b, 0xa0, 0xb2, 0x20, 0xae, 0xae,
0x4a, 0xfb, 0xb6, 0xaf, 0x98, 0xf4, 0x40, 0xa2, 0xfb, 0xd2, 0xe1, 0xd8, 0xaa, 0x08, 0x9b, 0x67,
0x32, 0x13, 0xf8, 0x62, 0x0a, 0xbd, 0x20, 0x29, 0xe6, 0xda, 0xaa, 0x77, 0xcf, 0xbe, 0x09, 0xad,
0x34, 0x30, 0xb2, 0x1b, 0x40, 0xd3, 0xf8, 0x68, 0x95, 0xae, 0x2f, 0x17, 0xa8, 0xb3, 0x0b, 0x23,
0xf4, 0x40, 0x44, 0x5e, 0x2d, 0x6d, 0xfe, 0xdb, 0x5b, 0x39, 0xb0, 0x5b, 0xf9, 0xb2, 0x88, 0x94,
0xc2, 0x03, 0x98, 0xb2, 0x72, 0xf0, 0x4c, 0xe1, 0x54, 0x88, 0xa0, 0x45, 0xb7, 0x78, 0xf1, 0xd6,
0xda, 0xd2, 0x6b, 0xbb, 0xa5, 0xb7, 0xd6, 0x10, 0x64, 0x8c, 0x90, 0x45, 0x50, 0x88, 0x34, 0x84,
0x7d, 0x22, 0x9a, 0x35, 0x1b, 0xd9, 0x68, 0xc4, 0x59, 0xc7, 0x30, 0xaa, 0x46, 0xd3, 0x2a, 0x91,
0x0f, 0x2b, 0x74, 0x4c, 0x82, 0x0a, 0x77, 0xd4, 0x74, 0x75, 0xa8, 0xb1, 0xa3, 0x3f, 0xe4, 0xbd,
0xd7, 0xe2, 0xbe, 0xb7, 0xf1, 0xdd, 0xb7, 0x9a, 0xa4, 0x59, 0x57, 0x51, 0xc6, 0x78, 0x4f, 0x47,
0xdf, 0x25, 0x7d, 0x99, 0x98, 0x4e, 0x7f, 0x23, 0xc9, 0x3a, 0x5d, 0xc1, 0x18, 0x30, 0x83, 0xe4,
0x66, 0x48, 0xb5, 0xf7, 0x88, 0x6d, 0x77, 0x5f, 0xd5, 0xdd, 0xe5, 0xe9, 0x48, 0xc5, 0xa7, 0x32,
0xfa, 0x29, 0x68, 0xcc, 0x11, 0xee, 0x93, 0xa0, 0xfb, 0x94, 0x48, 0xd0, 0x58, 0x5e, 0xd8, 0x83,
0x3f, 0x4a, 0x25, 0x42, 0xca, 0xfb, 0x47, 0x75, 0x74, 0x5c, 0xa0, 0xd0, 0x94, 0xcb, 0xf0, 0x3c,
0x7d, 0xf1, 0x4f, 0x54, 0x62, 0x72, 0x50, 0x13, 0x72, 0xd6, 0xa5, 0xd3, 0xfe, 0xe3, 0x7b, 0x16,
0x2b, 0x4e, 0xc4, 0x10, 0x15, 0x87, 0x38, 0x32, 0x0f, 0x56, 0x9d, 0xb7, 0xa1, 0x1c, 0x12, 0x2d,
0x30, 0xf9, 0x9a, 0x9e, 0x98, 0x08, 0xe6, 0x25, 0xfc, 0xe5, 0x2c, 0x10, 0x50, 0x36, 0x68, 0x05,
0x46, 0xf7, 0xcd, 0x17, 0x7e, 0x2d, 0x68, 0xa3, 0x4d, 0x03, 0x0c, 0xc5, 0x2c, 0x22, 0x38, 0xd0,
0x5e, 0xbe, 0xdf, 0xf1, 0xed, 0x3b, 0x7f, 0x85, 0xd5, 0x55, 0x02, 0x58, 0x95, 0xc8, 0x85, 0x01,
0x6d, 0x36, 0xdf, 0x80, 0x1b, 0xbc, 0x8f, 0x50, 0xf1, 0x5c, 0x8c, 0xe4, 0xb3, 0xa7, 0x7e, 0x6b,
0x93, 0x13, 0x7d, 0x45, 0xd1, 0x40, 0x56, 0xe7, 0x47, 0x74, 0x8e, 0x66, 0xfc, 0xa0, 0xfb, 0x33,
0xb9, 0x1f, 0xaf, 0xa2, 0xf2, 0x26, 0xcd, 0xaf, 0x18, 0x5f, 0xab, 0xf4, 0x86, 0x1a, 0xc7, 0x75,
0x49, 0x3e, 0xce, 0x20, 0xee, 0xeb, 0xa1, 0xb8, 0x47, 0x8e, 0xa5, 0x18, 0xe3, 0xe4, 0x0f, 0xfd,
0x70, 0x0f, 0x22, 0x49, 0x57, 0x97, 0x50, 0x08, 0xfb, 0x69, 0x41, 0x13, 0x0a, 0x73, 0x84, 0x28,
0x14, 0xe8, 0xe0, 0x87, 0x1a, 0x13, 0xe3, 0x4b, 0x8d, 0x52, 0x4a, 0xea, 0x3e, 0x51, 0x27, 0xc9,
0x7f, 0x39, 0x0b, 0xee, 0x36, 0x4a, 0x76, 0x44, 0x2e, 0x1e, 0x3f, 0xae, 0xe3, 0xe8, 0x46, 0xaf,
0x0c, 0x7a, 0xbb, 0x60, 0x0f, 0xff, 0xb6, 0xa8, 0xc0, 0x65, 0x05, 0xa7, 0xba, 0x1a, 0x6a, 0xf9,
0xad, 0xf1, 0x99, 0x59, 0x51, 0x88, 0x41, 0xfb, 0xde, 0x34, 0x7d, 0x93, 0x55, 0xb3, 0x17, 0x63,
0x4f, 0xff, 0xf6, 0x1e, 0x86, 0x80, 0xa2, 0x2c, 0xea, 0x7e, 0x29, 0xfc, 0x7d, 0x30, 0xc5, 0x00,
0xf0, 0xd3, 0x24, 0x58, 0x5d, 0x6d, 0xbf, 0xe6, 0x72, 0xdc, 0xb3, 0x49, 0xf0, 0xab, 0x17, 0x5c,
0x3a, 0xd8, 0x9a, 0x0b, 0x7f, 0x74, 0xc2, 0x50, 0xb8, 0x93, 0x2f, 0x3d, 0xec, 0xf1, 0x2f, 0x73,
0x1f, 0xe4, 0x38, 0x94, 0xa8, 0x13, 0x4c, 0x5b, 0x68, 0x4b, 0xc8, 0x6a, 0xb9, 0x20, 0x91, 0xad,
0xed, 0x7e, 0x25, 0xd2, 0x86, 0x80, 0x0f, 0xcd, 0xf1, 0xeb, 0xa6, 0x2b, 0x18, 0xa8, 0x8e, 0x7b,
0x19, 0x5c, 0xa1, 0xf4, 0x6b, 0xc5, 0xb6, 0xa0, 0xe8, 0x40, 0x43, 0xb7, 0xed, 0x5c, 0xe5, 0xfe,
0x37, 0xe3, 0xa5, 0xdb, 0x72, 0xf1, 0x5e, 0xa9, 0xb8, 0x3f, 0x32, 0x96, 0x17, 0x5a, 0x12, 0xa1,
0xfa, 0xc7, 0xfa, 0x34, 0xeb, 0x73, 0xcf, 0x99, 0xa4, 0xf8, 0xad, 0x71, 0x1e, 0xb6, 0xb8, 0x78,
0xae, 0xa2, 0x1b, 0x53, 0x40, 0x7c, 0x8a, 0x6e, 0x94, 0x59, 0x9e, 0xa8, 0xc2, 0xd4, 0x74, 0x57,
0xd0, 0xf1, 0x07, 0x1a, 0xbe, 0x04, 0xda, 0x75, 0x40, 0x5b, 0x74, 0xb7, 0xd9, 0x92, 0xdb, 0xc6,
0xde, 0xbb, 0xfa, 0x0a, 0xec, 0xe6, 0x2c, 0x60, 0x5b, 0x94, 0x3f, 0xd0, 0xcb, 0x4e, 0xb6, 0xdb,
0x15, 0x5c, 0xfc, 0x3e, 0xd7, 0x81, 0x55, 0xd1, 0x66, 0xc8, 0x5d, 0x69, 0xbc, 0x66, 0x6b, 0xfe,
0x2f, 0x01, 0xf8, 0xf7, 0x78, 0x12, 0x58, 0x69, 0xdf, 0x0c, 0xb4, 0x6d, 0xce, 0x6f, 0x9b, 0xa2,
0x57, 0x6d, 0xd1, 0xdb, 0xa0, 0x25, 0x9b, 0x74, 0x03, 0x00, 0x88, 0xc8, 0x80, 0x3a, 0x32, 0x16,
0xfa, 0x16, 0x2b, 0x6a, 0x90, 0xe9, 0x92, 0xb9, 0x6d, 0x4a, 0x5d, 0xe9, 0xc3, 0x65, 0x55, 0x5d,
0x1d, 0xd1, 0x51, 0xc5, 0xa6, 0xd4, 0x61, 0x6e, 0x5d, 0x37, 0xbc, 0x6d, 0xb9, 0xe3, 0x74, 0xdb,
0xc7, 0x3a, 0x9c, 0xc9, 0xac, 0xee, 0xc4, 0x7d, 0x75, 0x39, 0xbb, 0x43, 0x7c, 0x50, 0x10, 0x83,
0xfd, 0xd8, 0x1a, 0x8a, 0x66, 0x4f, 0x48, 0x24, 0x55, 0xf4, 0x50, 0x51, 0xf8, 0xc5, 0x03, 0x19,
0xbd, 0x0a, 0x68, 0x20, 0x6f, 0x67, 0x33, 0xb5, 0xe0, 0x9b, 0x8a, 0xdc, 0x3f, 0x30, 0x16, 0x04,
0xe4, 0xb3, 0x0a, 0x37, 0xa4, 0x82, 0x72, 0xa1, 0xcf, 0x9d, 0x6d, 0x41, 0x8d, 0xb1, 0x4c, 0xb4,
0x15, 0x7f, 0x56, 0xde, 0x96, 0x42, 0xd2, 0xb2, 0xe5, 0x9e, 0x5e, 0x62, 0x91, 0x60, 0x8d, 0x31,
0x70, 0x97, 0x19, 0x1a, 0x96, 0x4d, 0x48, 0x8a, 0x43, 0xc2, 0xe5, 0x7b, 0xec, 0xc9, 0xf3, 0x03,
0x43, 0xb3, 0xdd, 0xf8, 0x64, 0xe8, 0xbf, 0x51, 0xde, 0xe8, 0xac, 0xfc, 0xa6, 0x38, 0x73, 0x8b,
0x34, 0xc1, 0xa7, 0x7b, 0xbd, 0xef, 0x29, 0x92, 0x2d, 0x72, 0xbe, 0x7e, 0xbf, 0xef, 0x0d, 0x54,
0x14, 0x15, 0x9b, 0x2c, 0x43, 0x3b, 0xf2, 0x04, 0x3f, 0xef, 0x32, 0xde, 0x02, 0x77, 0x51, 0x81,
0xdb, 0x80, 0x65, 0x41, 0xa5, 0x83, 0x2f, 0x6d, 0xac, 0x81, 0x7d, 0x4d, 0x5c, 0xe3, 0x1a, 0x18,
0x9f, 0x81, 0xea, 0x52, 0x39, 0xe9, 0x26, 0x11, 0x1e, 0x99, 0x28, 0x06, 0x0e, 0xa9, 0x22, 0x40,
0xa6, 0xb2, 0xe0, 0xe4, 0xb9, 0xf3, 0x4d, 0xed, 0x87, 0x4c, 0xdc, 0x15, 0xb2, 0xbc, 0x1f, 0x75,
0x30, 0x1b, 0x38, 0x16, 0x2e, 0x38, 0x10, 0x0d, 0xec, 0x7d, 0xbf, 0x80, 0xd8, 0x27, 0xf5, 0x66,
0x32, 0x8d, 0xb6, 0x80, 0x2d, 0x26, 0xf0, 0x34, 0xac, 0xb0, 0x28, 0x2f, 0x2b, 0xbe, 0x78, 0xf0,
0xf9, 0xbe, 0x30, 0x36, 0xf0, 0xb2, 0x53, 0xe8, 0x40, 0x99, 0xc0, 0xb3, 0xfd, 0xfb, 0x8e, 0xc6,
0xef, 0xca, 0xf2, 0xdd, 0x31, 0x6f, 0x59, 0x7a, 0x60, 0x87, 0x35, 0x38, 0xe0, 0x61, 0xbe, 0xfd,
0xfc, 0x41, 0xdd, 0x95, 0xaa, 0x1d, 0xcb, 0xc4, 0xd5, 0xa9, 0x72, 0x50, 0xab, 0x76, 0x90, 0xc5,
0x95, 0x60, 0x3b, 0xd4, 0xb3, 0x63, 0x5e, 0xb2, 0x74, 0x64, 0xf7, 0x39, 0xe2, 0x3e, 0x1f, 0x76,
0x2f, 0xf8, 0xc0, 0xcf, 0x29, 0xc2, 0x39, 0x53, 0xbd, 0xec, 0x23, 0x9d, 0x6f, 0xb6, 0x23, 0x37,
0x9e, 0x12, 0x72, 0x25, 0xe6, 0x24, 0x17, 0xda, 0xd1, 0x6b, 0xc0, 0xf6, 0x19, 0x78, 0x18, 0xc0,
0x53, 0xa4, 0x35, 0x25, 0x09, 0x4c, 0x51, 0xa1, 0xb2, 0x1b, 0x84, 0xc5, 0xbf, 0x06, 0x42, 0x27,
0xb2, 0x61, 0x61, 0x12, 0x58, 0x70, 0x4a, 0xf9, 0xf0, 0x9d, 0x70, 0x6e, 0x82, 0x36, 0xae, 0x66,
0xf5, 0x3d, 0x4f, 0xef, 0x62, 0x26, 0x60, 0x9e, 0x24, 0x4b, 0xdc, 0x05, 0x0f, 0x0e, 0x87, 0xb4,
0x2b, 0x8e, 0xe4, 0xba, 0x55, 0xa4, 0x1a, 0x8f, 0x9b, 0xf1, 0xfe, 0x36, 0x27, 0x6d, 0x00, 0xd2,
0x38, 0xdc, 0xdc, 0x3a, 0x6e, 0x84, 0x65, 0x42, 0x1d, 0xc8, 0x67, 0xed, 0xc7, 0xb5, 0x95, 0x5f,
0xab, 0x8d, 0x47, 0x2f, 0x20, 0xc2, 0x04, 0xaf, 0xb1, 0x02, 0x16, 0xd3, 0xa9, 0x51, 0xa7, 0x78,
0xe6, 0x4a, 0xce, 0x5e, 0xe7, 0x9d, 0x9d, 0xc1, 0x9a, 0x45, 0xc9, 0xe7, 0x6e, 0xe7, 0x59, 0xfc,
0xac, 0xf3, 0x20, 0x58, 0xca, 0x57, 0xe8, 0x3b, 0x19, 0xb5, 0x85, 0x00, 0xd0, 0xdd, 0x77, 0xc6,
0x4a, 0x86, 0xe9, 0xec, 0x10, 0xa4, 0xca, 0x0e, 0xdc, 0xed, 0x9d, 0xbc, 0xc7, 0x37, 0x7c, 0x13,
0xd3, 0xd4, 0xa6, 0x75, 0x09, 0x62, 0x84, 0x40, 0xc3, 0x58, 0xa6, 0xec, 0x18, 0x2b, 0x42, 0x8b,
0x14, 0xb0, 0x04, 0x4d, 0x8d, 0xd5, 0x84, 0xaa, 0x20, 0xba, 0x9d, 0x1a, 0xa3, 0x05, 0xda, 0xea,
0x08, 0x18, 0x3d, 0x00, 0x4d, 0x85, 0x3b, 0xb4, 0x8f, 0x5c, 0xb8, 0xb7, 0x38, 0x6b, 0xbb, 0x76,
0x84, 0x07, 0x71, 0xec, 0x95, 0xee, 0x70, 0x2c, 0x4c, 0x37, 0x0f, 0x89, 0xe7, 0x28, 0x9d, 0x2b,
0x14, 0x6b, 0xd1, 0xe3, 0x01, 0xe9, 0xfb, 0xf1, 0x3d, 0x6f, 0xc5, 0x43, 0x7f, 0x23, 0xdd, 0x83,
0x8c, 0xac, 0xb2, 0xdd, 0xb6, 0x2f, 0x1b, 0x66, 0x1d, 0xc7, 0x2b, 0x33, 0xf6, 0x34, 0xfd, 0x11,
0x31, 0x45, 0xcf, 0xf4, 0x6e, 0x82, 0xca, 0x7b, 0x7a, 0x6e, 0xa0, 0x4e, 0x61, 0x5b, 0x44, 0x95,
0x6c, 0x37, 0x41, 0x85, 0xb7, 0xa7, 0xd8, 0x37, 0x46, 0xcc, 0x45, 0x7b, 0xe0, 0x4c, 0xda, 0xdc,
0x2e, 0xf4, 0xcd, 0x90, 0xb3, 0xe3, 0x0b, 0xb9, 0x15, 0x38, 0x3c, 0x7b, 0xa0, 0x6d, 0xad, 0x1e,
0xc0, 0x98, 0xac, 0xed, 0x2f, 0x41, 0xc9, 0x46, 0x0e, 0x1c, 0x8d, 0xec, 0xb5, 0xb5, 0x52, 0x8b,
0x08, 0xac, 0xfc, 0xcf, 0xed, 0x88, 0x04, 0x4a, 0xd3, 0x82, 0x24, 0x35, 0x3e, 0xe3, 0xcb, 0x71,
0x7c, 0xf5, 0x49, 0xbe, 0xf8, 0x34, 0x31, 0xae, 0x50, 0x6c, 0x7b, 0x3f, 0xfd, 0x0d, 0xef, 0x60,
0x38, 0xb0, 0x10, 0xd6, 0x4a, 0xbc, 0x31, 0xda, 0x17, 0x14, 0xfe, 0x1b, 0xd4, 0x44, 0xca, 0x67,
0xee, 0xb4, 0x2e, 0xe7, 0x41, 0xa5, 0x8b, 0x74, 0xcb, 0x2f, 0x34, 0xb2, 0xf9, 0x15, 0xc5, 0x76,
0x43, 0xfa, 0xa8, 0x86, 0xec, 0xc6, 0x18, 0x94, 0x31, 0x40, 0xd1, 0x13, 0x0c, 0x1e, 0x36, 0xe9,
0xd4, 0xaf, 0x59, 0x51, 0xb2, 0xeb, 0x40, 0x95, 0x35, 0xa0, 0xfe, 0xf7, 0x1d, 0x2b, 0x48, 0xb7,
0x85, 0x55, 0x8f, 0x27, 0xdc, 0x3d, 0xac, 0xac, 0x99, 0x42, 0xd6, 0x91, 0xba, 0xb6, 0xda, 0x3c,
0x8c, 0x02, 0x7a, 0x0d, 0x77, 0xcc, 0x6d, 0xd0, 0x77, 0x9a, 0xd1, 0x67, 0x9a, 0x19, 0x25, 0xda,
0x76, 0xa7, 0x87, 0xff, 0x0f, 0xdc, 0x25, 0x14, 0xd9, 0x71, 0xef, 0xf0, 0x6f, 0x25, 0x95, 0x9b,
0x85, 0x7f, 0x77, 0x26, 0xbb, 0x99, 0x4d, 0x76, 0x4d, 0xff, 0xbc, 0x9a, 0x6e, 0xd3, 0xc3, 0xa8,
0x97, 0xab, 0x88, 0xc3, 0x81, 0x52, 0xf4, 0xcb, 0xe5, 0x3a, 0x29, 0x63, 0x90, 0xd1, 0x8d, 0xc3,
0x22, 0xe4, 0xa8, 0x40, 0xac, 0xab, 0x48, 0xbd, 0x87, 0x61, 0x2e, 0x17, 0x29, 0x40, 0x8f, 0x32,
0xd8, 0x2f, 0xce, 0x6d, 0x0f, 0x44, 0xd5, 0xf5, 0xfe, 0xfe, 0x0e, 0x93, 0x49, 0x93, 0x37, 0xfc,
0x66, 0x72, 0x46, 0x17, 0x5a, 0x43, 0xce, 0xe8, 0x3e, 0xbb, 0x65, 0x8d, 0x41, 0xf6, 0x37, 0xac,
0x31, 0xf4, 0xd7, 0x45, 0xd3, 0xbc, 0xeb, 0x6f, 0x06, 0xea, 0x87, 0xd8, 0x82, 0x69, 0x19, 0x6f,
0x03, 0x69, 0x19, 0x7f, 0x03, 0x44, 0xcb, 0x18, 0x7e, 0x2c, 0xe3, 0xdf, 0xb3, 0xe6, 0xd1, 0x2d,
0xdd, 0xc0, 0xd4, 0xda, 0x03, 0xa9, 0xed, 0xf7, 0x94, 0xeb, 0x7b, 0x71, 0xbe, 0xa3, 0xfa, 0xde,
0xb8, 0x9f, 0xef, 0xd0, 0x07, 0xba, 0xb3, 0x8f, 0x77, 0x58, 0x2b, 0xe4, 0x67, 0x2a, 0xd7, 0xca,
0xee, 0x70, 0xfc, 0x77, 0x37, 0x5e, 0xcd, 0xcc, 0x66, 0x5d, 0x87, 0x62, 0x7e, 0x5b, 0x31, 0xa7,
0x82, 0xa2, 0xbb, 0x37, 0x2d, 0x6d, 0x6b, 0xbb, 0x6d, 0x9b, 0x0c, 0xfc, 0xcd, 0x82, 0x64, 0xeb,
0xd8, 0xea, 0x56, 0xba, 0xdf, 0x3c, 0x3c, 0xc4, 0x71, 0x73, 0x74, 0x0f, 0xa1, 0xb4, 0x69, 0xb9,
0xe2, 0xff, 0x2f, 0x5d, 0x7a, 0x21, 0x65, 0xe0, 0x15, 0x79, 0xb7, 0x7d, 0x4a, 0x8a, 0xdb, 0x5d,
0x60, 0xaf, 0x5c, 0xb4, 0xfb, 0xdf, 0xbc, 0x04, 0xf4, 0xb5, 0xfb, 0x16, 0x40, 0xe2, 0x9d, 0x00,
0x69, 0x5c, 0xe0, 0x7f, 0x3b, 0x30, 0x1f, 0x51, 0x0c, 0x69, 0xc2, 0x91, 0xe0, 0xb3, 0x0d, 0x22,
0xfe, 0x96, 0x1b, 0xb3, 0xf7, 0xff, 0x74, 0x8c, 0x27, 0x4b, 0x50, 0x56, 0xda, 0x1f, 0xb5, 0xef,
0x82, 0x0e, 0xcb, 0x1f, 0xbd, 0x17, 0x5a, 0xad, 0x8c, 0x31, 0x80, 0x93, 0x87, 0xf6, 0x36, 0x84,
0x1f, 0x8c, 0x85, 0x3f, 0x7e, 0x80, 0x44, 0xb4, 0x29, 0x90, 0x8f, 0xfc, 0x2a, 0xb8, 0x7d, 0xb0,
0x42, 0x64, 0x57, 0xa0, 0xf0, 0x5e, 0x0f, 0xd5, 0xa8, 0x10, 0x21, 0xe3, 0xfe, 0x8f, 0x13, 0xf2,
0x46, 0x3d, 0xa8, 0xb4, 0x03, 0x1b, 0xe0, 0xa8, 0x90, 0x8e, 0x09, 0xcc, 0x0a, 0x9a, 0x3f, 0x76,
0xee, 0x31, 0x9b, 0xec, 0x47, 0x19, 0x13, 0x3a, 0x33, 0xe1, 0xd9, 0x75, 0xfc, 0xf6, 0x67, 0x2a,
0x60, 0x97, 0x8c, 0xd5, 0xc5, 0x36, 0x0f, 0x0f, 0x83, 0x41, 0xa7, 0x69, 0x09, 0x02, 0x3d, 0x3a,
0xbd, 0x85, 0x9f, 0xd6, 0xe2, 0xe0, 0x1b, 0xef, 0x05, 0xa8, 0x88, 0xd6, 0xcb, 0x1f, 0x40, 0x36,
0x18, 0xf9, 0xdc, 0x0c, 0x1d, 0x14, 0xd1, 0x95, 0x06, 0x28, 0xa8, 0xa9, 0x0b, 0x20, 0x47, 0xf5,
0x4f, 0xed, 0x67, 0x86, 0xf2, 0xb6, 0x6c, 0x44, 0xdb, 0xff, 0x44, 0xef, 0x0d, 0x79, 0xbe, 0x7c,
0x24, 0xdb, 0x8a, 0x51, 0x9f, 0x7d, 0xa8, 0xed, 0x78, 0x9b, 0xa3, 0x76, 0xe7, 0x60, 0xd7, 0x99,
0xc4, 0xba, 0x70, 0xca, 0x83, 0x9b, 0x76, 0xb0, 0x82, 0x2c, 0xae, 0xdc, 0x30, 0xe9, 0xd0, 0xe4,
0xb2, 0x63, 0x2b, 0x68, 0x2b, 0xb4, 0xa3, 0x0c, 0x86, 0x6a, 0xe1, 0xc5, 0xb1, 0xec, 0x99, 0x77,
0x03, 0x6b, 0x00, 0x85, 0x1c, 0x28, 0x67, 0x0c, 0x94, 0xe0, 0x43, 0x39, 0x1a, 0x19, 0x29, 0xeb,
0x9b, 0xa2, 0xfc, 0xab, 0x17, 0x04, 0x2a, 0x6f, 0x90, 0x51, 0x0c, 0x71, 0x4b, 0xa7, 0x27, 0xcd,
0x9c, 0xa5, 0x95, 0x85, 0x65, 0xdf, 0x65, 0xbb, 0x14, 0x23, 0x2c, 0x31, 0x7a, 0x80, 0xfd, 0x38,
0xef, 0x76, 0xee, 0x3b, 0xbe, 0x38, 0x01, 0x4e, 0xf0, 0x47, 0x40, 0x3a, 0xbd, 0x5b, 0x95, 0xc1,
0xad, 0x34, 0x1d, 0x81, 0x23, 0x77, 0xb8, 0x06, 0x61, 0x6d, 0x49, 0x38, 0xb3, 0x81, 0xfb, 0x06,
0xb0, 0x3c, 0x1e, 0xa5, 0xe7, 0xd7, 0x8d, 0xe6, 0xff, 0x08, 0xca, 0xf2, 0x68, 0x0e, 0x94, 0xb5,
0xa0, 0xeb, 0xf8, 0x0c, 0xdf, 0xa8, 0x9b, 0x46, 0x73, 0x0c, 0x89, 0xb7, 0x4c, 0x67, 0xf1, 0xfc,
0x0e, 0x97, 0x1f, 0xdd, 0xf6, 0x4b, 0xb5, 0x91, 0x03, 0xd8, 0x4a, 0xf8, 0x61, 0x9a, 0xeb, 0x94,
0x66, 0xba, 0x16, 0x8f, 0xe3, 0x5e, 0x67, 0xc7, 0x53, 0xca, 0x6f, 0x5b, 0x6f, 0xd3, 0xc6, 0xf1,
0x99, 0xab, 0x15, 0x5b, 0xab, 0x15, 0xcd, 0x6a, 0x1b, 0xde, 0xa8, 0xcf, 0x80, 0xbd, 0xc0, 0xaa,
0xa7, 0xca, 0xb8, 0x72, 0x28, 0x89, 0x89, 0x31, 0xfb, 0xa4, 0xe3, 0x4c, 0xfc, 0xb4, 0x65, 0x75,
0x7e, 0x4d, 0x1a, 0x8b, 0xf3, 0xa7, 0x4f, 0x95, 0x10, 0xd5, 0xd4, 0x26, 0x86, 0xe2, 0xc5, 0x46,
0x7f, 0xfa, 0x24, 0x0d, 0xb0, 0x2c, 0x56, 0x26, 0xe3, 0xc5, 0x33, 0x0b, 0xd3, 0xcc, 0x0b, 0x38,
0x87, 0xe1, 0x5e, 0x0e, 0xde, 0xc5, 0x8f, 0x3f, 0x48, 0x94, 0xfa, 0x56, 0xd4, 0xef, 0xb3, 0xec,
0x03, 0x76, 0x05, 0x59, 0x72, 0x0e, 0x2a, 0x11, 0x91, 0x21, 0x53, 0x0f, 0xba, 0x35, 0x3f, 0xdd,
0x92, 0x77, 0xbd, 0x25, 0x8f, 0xb6, 0x9a, 0xf3, 0xfa, 0xc4, 0xda, 0x50, 0xdd, 0x03, 0x76, 0xc7,
0xd9, 0x27, 0xd8, 0x96, 0x70, 0xd1, 0x8f, 0xbd, 0x36, 0x42, 0x43, 0x03, 0xaf, 0x48, 0x06, 0xcc,
0x5f, 0x45, 0x37, 0xc9, 0x1d, 0xdb, 0xe6, 0x6a, 0xaf, 0x25, 0x6f, 0xa3, 0xaf, 0xb5, 0x0d, 0x0b,
0xf1, 0x6d, 0x58, 0x14, 0x53, 0x31, 0xd9, 0xd5, 0x1a, 0x38, 0x23, 0xbe, 0xb0, 0x6b, 0xc8, 0x39,
0xd2, 0xb9, 0xda, 0x2f, 0xdc, 0x15, 0x3a, 0xbd, 0xf6, 0x4a, 0x60, 0xe3, 0xc0, 0xf8, 0xd9, 0xb9,
0x97, 0xcd, 0x48, 0xc5, 0xd0, 0x2a, 0x8d, 0x54, 0x51, 0x1a, 0x9f, 0x1f, 0xb5, 0xf4, 0xde, 0xd0,
0x8a, 0x28, 0xdb, 0x4c, 0xe9, 0x6c, 0x18, 0xb2, 0x5e, 0x64, 0x7a, 0xf4, 0xef, 0x7f, 0x8e, 0x30,
0xcd, 0xe9, 0x5a, 0x0c, 0x9f, 0xce, 0x66, 0x87, 0x17, 0xb2, 0xf3, 0x64, 0x5e, 0x60, 0x17, 0x5c,
0x06, 0xf9, 0x25, 0x5e, 0x19, 0xe3, 0x1b, 0xd7, 0x8d, 0xcc, 0x9b, 0x78, 0x56, 0x2e, 0x26, 0xde,
0x8b, 0x03, 0x99, 0x49, 0xef, 0x08, 0xcc, 0xd8, 0x56, 0xb4, 0xd6, 0xd1, 0xa1, 0xa3, 0xa3, 0x5a,
0x51, 0xd5, 0x95, 0x6a, 0xad, 0x96, 0x2d, 0x3b, 0x3b, 0x1c, 0xaa, 0x6c, 0x7a, 0xf4, 0x90, 0x1f,
0x9b, 0x47, 0x19, 0xa4, 0xde, 0x71, 0xd5, 0x22, 0xb4, 0xc5, 0xe2, 0x44, 0xfb, 0x31, 0xb7, 0xda,
0xbb, 0x7e, 0x8b, 0x1f, 0xf4, 0xc3, 0x5e, 0xc3, 0x14, 0x49, 0x03, 0xb8, 0xc7, 0xa2, 0xee, 0xd1,
0x99, 0xbd, 0xef, 0x56, 0x23, 0xf0, 0xa8, 0xa7, 0x3f, 0x73, 0xd8, 0x4e, 0x94, 0x3c, 0xca, 0x91,
0x66, 0xee, 0x17, 0x24, 0x8b, 0x16, 0xf4, 0xef, 0xf5, 0x18, 0x5d, 0xfd, 0x88, 0x30, 0x21, 0xb7,
0x5f, 0x7f, 0xb1, 0x8a, 0x63, 0xab, 0xc2, 0xca, 0x4b, 0x97, 0x20, 0x1c, 0x3f, 0x15, 0x87, 0xf4,
0xe8, 0xd2, 0x21, 0xcb, 0x79, 0xb3, 0x54, 0x12, 0x06, 0x54, 0x5c, 0x54, 0x2b, 0xd6, 0xeb, 0x3d,
0x7f, 0xa9, 0x44, 0x43, 0xc0, 0x4f, 0x12, 0x09, 0x2e, 0x10, 0x4c, 0x8b, 0x2e, 0x57, 0xde, 0xe7,
0x51, 0xf9, 0x40, 0x7b, 0xb2, 0x71, 0x35, 0x4a, 0xca, 0xd7, 0xc4, 0x51, 0x9f, 0xb3, 0x34, 0x51,
0x4f, 0x4b, 0xf2, 0xd3, 0x94, 0xc3, 0xb6, 0x90, 0x29, 0x84, 0x45, 0x2b, 0xc4, 0x2a, 0x61, 0xc2,
0x6e, 0x2e, 0xbf, 0xd4, 0xcb, 0xa6, 0x70, 0xfb, 0x84, 0xd2, 0x54, 0xfd, 0x2c, 0xdf, 0xb2, 0xd4,
0xf3, 0x8d, 0xf0, 0xe5, 0x47, 0x95, 0x69, 0x2e, 0x7a, 0x1c, 0xfd, 0x79, 0x5b, 0x3b, 0x7f, 0x73,
0xb5, 0x73, 0x59, 0x6f, 0xe7, 0xe0, 0xc1, 0x76, 0xde, 0xb9, 0xda, 0x99, 0xd6, 0xdb, 0x79, 0xde,
0x86, 0x16, 0xeb, 0xdd, 0x77, 0xf3, 0xf4, 0x98, 0x8d, 0x96, 0x45, 0x74, 0x7b, 0x4a, 0x5e, 0x9f,
0xea, 0x45, 0x31, 0x54, 0x34, 0x02, 0xf2, 0xd7, 0x53, 0x76, 0x06, 0xb5, 0x02, 0x5d, 0xdf, 0x38,
0xa8, 0x9f, 0x5e, 0xa6, 0xe5, 0xfd, 0x50, 0x3e, 0xe0, 0x75, 0xd3, 0x2f, 0xd3, 0x53, 0x59, 0xf5,
0x65, 0xcb, 0xaa, 0x82, 0x4e, 0x43, 0xdb, 0xe1, 0xa0, 0xcc, 0xdb, 0xcb, 0xad, 0xe6, 0x9d, 0x9d,
0x8d, 0xb8, 0xab, 0x18, 0x80, 0xda, 0x74, 0xab, 0xdf, 0x7a, 0x0d, 0xb3, 0x7b, 0xf3, 0x32, 0x0a,
0x43, 0x3c, 0xe7, 0x57, 0x89, 0xfb, 0x57, 0xd1, 0xdd, 0x7b, 0x7c, 0xc3, 0x11, 0xe3, 0xd1, 0x3c,
0xf7, 0xc9, 0x47, 0x5e, 0xad, 0xea, 0x2a, 0x0c, 0x3a, 0xa7, 0x3e, 0x07, 0xdb, 0x91, 0x82, 0x9d,
0xd9, 0xa8, 0xb6, 0xcf, 0x2c, 0xd5, 0xe9, 0x79, 0x09, 0x47, 0x41, 0x89, 0x67, 0x2d, 0xa9, 0xd7,
0x57, 0x91, 0xf7, 0x27, 0xf2, 0xdf, 0xaf, 0xd4, 0x1b, 0xf6, 0x5e, 0xfa, 0xbe, 0xf3, 0x69, 0xa0,
0x66, 0xed, 0xf9, 0x3c, 0x08, 0x86, 0xc3, 0xea, 0x8b, 0x99, 0x1c, 0x71, 0xc6, 0x86, 0xd1, 0xf7,
0xeb, 0x20, 0x0f, 0x2b, 0x4b, 0xf7, 0xc0, 0x8d, 0x9d, 0xda, 0xc2, 0xcd, 0xb7, 0xaf, 0x4d, 0x83,
0x1e, 0x52, 0x43, 0x6f, 0x5f, 0x80, 0xd5, 0xc2, 0xd3, 0xed, 0xab, 0xcc, 0x14, 0xae, 0x23, 0xe0,
0x02, 0xdd, 0x33, 0x1e, 0xdf, 0xe7, 0x9b, 0xde, 0xe3, 0xfb, 0x4b, 0xfc, 0x67, 0xba, 0xf1, 0x2f,
0x1e, 0x64, 0x4b, 0x3a, 0xaf, 0xc8, 0xad, 0xeb, 0xb0, 0x5d, 0x37, 0x6c, 0xd2, 0x46, 0xe7, 0xfc,
0x72, 0xdf, 0x93, 0x27, 0x62, 0xfb, 0xde, 0x85, 0xc5, 0x3a, 0xf6, 0x6b, 0xc1, 0x70, 0x92, 0xa9,
0x0d, 0x02, 0x1f, 0xcb, 0x5d, 0x45, 0x09, 0x50, 0x59, 0x71, 0xdd, 0xe9, 0x89, 0x0e, 0xfe, 0x33,
0x92, 0x1e, 0xe0, 0x0f, 0x35, 0x5e, 0x67, 0xa3, 0x86, 0x5f, 0x48, 0x28, 0xf7, 0x26, 0x78, 0x90,
0xab, 0x4d, 0xfe, 0x83, 0x7b, 0xe9, 0xd1, 0x2e, 0xac, 0xba, 0xae, 0x76, 0x82, 0x02, 0xf0, 0xf7,
0xec, 0x8c, 0xb8, 0x72, 0x8f, 0x99, 0x2a, 0xff, 0x99, 0xf6, 0x2a, 0x10, 0x9c, 0xf7, 0xce, 0xf0,
0xff, 0xcf, 0xcd, 0xf5, 0x06, 0x0b, 0x4f, 0x56, 0x00, 0xa9, 0x96, 0xa6, 0xa1, 0xda, 0x4e, 0xad,
0xcb, 0xa6, 0xad, 0x73, 0x9b, 0xea, 0xe1, 0xe0, 0xe1, 0x1e, 0x76, 0xea, 0x44, 0xf7, 0xf0, 0x80,
0xe4, 0xf0, 0xef, 0x53, 0x4d, 0xd2, 0xbb, 0x08, 0xa1, 0x5c, 0xca, 0x52, 0x33, 0x98, 0x43, 0x4d,
0xfb, 0xad, 0x52, 0x19, 0x80, 0x8a, 0x8d, 0x64, 0xd5, 0x21, 0x71, 0x11, 0x3e, 0x9b, 0x8c, 0x5e,
0x71, 0x6c, 0x91, 0x45, 0x78, 0xf2, 0x1c, 0x5f, 0x39, 0x58, 0x90, 0xe3, 0x98, 0x4c, 0x39, 0x80,
0x14, 0x48, 0x78, 0x3e, 0x7c, 0xa9, 0x92, 0x26, 0x93, 0xd1, 0x8b, 0x17, 0x3e, 0xd5, 0x7c, 0x6e,
0x27, 0x0e, 0x5f, 0xf9, 0xba, 0xb9, 0x47, 0x2e, 0xb6, 0x89, 0x0f, 0x1c, 0x2b, 0x1e, 0x1e, 0x4a,
0x92, 0xbd, 0x58, 0x14, 0xf8, 0xe4, 0xfa, 0x22, 0xdc, 0x10, 0x9d, 0xff, 0xb9, 0x07, 0x62, 0xc7,
0x9f, 0xfd, 0x0b, 0xf8, 0x7a, 0x2d, 0x87, 0x5c, 0x7d, 0xb4, 0xf7, 0x6f, 0x7f, 0x57, 0x4c, 0x48,
0xbe, 0xb3, 0x8e, 0x89, 0x5d, 0x0f, 0xed, 0xb1, 0x8b, 0xf1, 0x60, 0x70, 0x19, 0x97, 0x8b, 0xf5,
0x14, 0x5a, 0x5f, 0x0e, 0xde, 0xc6, 0x79, 0x98, 0xa6, 0xe9, 0x55, 0x1c, 0x0d, 0x30, 0xca, 0xc9,
0xe0, 0x26, 0xbe, 0x8a, 0xbd, 0x0a, 0xc2, 0x60, 0x4f, 0xc9, 0xad, 0xab, 0x1d, 0x13, 0x39, 0x64,
0x35, 0xff, 0x99, 0xb4, 0x61, 0x76, 0x64, 0x37, 0x2c, 0x5c, 0xb9, 0x5a, 0x9b, 0x96, 0xce, 0xc5,
0x43, 0xa7, 0x04, 0x8a, 0xef, 0x88, 0xc0, 0x4f, 0xcb, 0xda, 0x78, 0x55, 0xf8, 0x42, 0xca, 0xaa,
0x1c, 0xfd, 0xdf, 0xa7, 0xab, 0x79, 0x9c, 0x2f, 0xc5, 0xcf, 0xd1, 0x34, 0x4d, 0xf9, 0x30, 0x2f,
0x01, 0xe4, 0xc3, 0x7a, 0xf5, 0x76, 0xaa, 0xfe, 0xca, 0xfc, 0x02, 0x4e, 0x70, 0xd8, 0xca, 0x40,
0xab, 0x02, 0x2a, 0xc3, 0x3c, 0x75, 0x8d, 0x33, 0xc7, 0xe8, 0x9a, 0x36, 0x4f, 0x6f, 0x1b, 0x52,
0xa1, 0xc7, 0xa3, 0x51, 0x71, 0xaa, 0x70, 0xf1, 0x3b, 0x46, 0x68, 0xb4, 0x15, 0x0a, 0x34, 0xd7,
0x08, 0xeb, 0x60, 0x3b, 0x7b, 0x9a, 0xcf, 0x9d, 0x3d, 0xd1, 0xf4, 0xe9, 0xdb, 0x3e, 0xcf, 0xc9,
0xa4, 0xce, 0xee, 0xd5, 0x6d, 0xeb, 0xb0, 0x27, 0xaf, 0xea, 0x94, 0xbd, 0x6a, 0x8f, 0xaf, 0xa2,
0x29, 0xa8, 0x8b, 0x7d, 0xc7, 0x3e, 0xda, 0xe5, 0x8e, 0x9d, 0x5a, 0x1a, 0x7e, 0xc3, 0xa5, 0xba,
0x7a, 0x5e, 0xa5, 0x17, 0xd8, 0xf4, 0x16, 0xf8, 0xc2, 0x8e, 0xe7, 0x3e, 0xb1, 0x22, 0x88, 0xf1,
0xb9, 0xd4, 0x69, 0xdb, 0x89, 0x76, 0x2f, 0x0e, 0xcf, 0x06, 0xab, 0xaa, 0xdb, 0xc1, 0xc1, 0xd9,
0x58, 0x64, 0xb7, 0x56, 0xb1, 0xe2, 0xaf, 0xb7, 0x57, 0x73, 0x19, 0x1f, 0xab, 0x04, 0xfe, 0x54,
0x92, 0x08, 0x3f, 0xa3, 0x82, 0x3c, 0x77, 0xa0, 0x1e, 0x73, 0xd3, 0xa6, 0xf5, 0xe8, 0xb6, 0xb7,
0x3f, 0x1a, 0xb6, 0xb8, 0xbe, 0xa2, 0xaa, 0x27, 0xc3, 0xb0, 0x6a, 0xae, 0xe8, 0x65, 0x36, 0x34,
0xa4, 0xfa, 0xc5, 0x7d, 0xae, 0xe2, 0x30, 0xec, 0xbf, 0xb1, 0xc3, 0xbd, 0x8d, 0x1b, 0x21, 0xd5,
0xdc, 0xd7, 0x09, 0x1a, 0x9d, 0x16, 0x69, 0xb1, 0xd2, 0x57, 0xeb, 0xf6, 0x76, 0xab, 0x24, 0x6d,
0x69, 0x33, 0xe3, 0x12, 0x4e, 0x43, 0x0e, 0x32, 0x7e, 0xe0, 0x81, 0xdf, 0x24, 0xb5, 0x72, 0x5b,
0x86, 0x6f, 0x29, 0x7c, 0x65, 0xbd, 0x8a, 0x97, 0x3a, 0x26, 0xb4, 0x6a, 0x23, 0x5b, 0x9a, 0xac,
0xa9, 0x9e, 0x2d, 0xc5, 0x20, 0xfd, 0x8f, 0x4d, 0x6b, 0xb2, 0xca, 0x3b, 0x2e, 0xb5, 0xc3, 0x0b,
0x6c, 0x26, 0xe1, 0xba, 0xa0, 0x87, 0xc9, 0xf3, 0xa2, 0xf5, 0x8d, 0x69, 0x7d, 0x53, 0xe7, 0xf9,
0xfd, 0x69, 0xb2, 0xce, 0xbb, 0xee, 0xf3, 0x86, 0x67, 0xdd, 0x8a, 0xed, 0x54, 0x52, 0x5f, 0x5b,
0xd9, 0xa5, 0x09, 0xc2, 0xc1, 0x00, 0x4b, 0xa0, 0x5a, 0xef, 0x97, 0x0f, 0xe2, 0x11, 0x9a, 0x25,
0x95, 0xe2, 0xd7, 0xf7, 0xf6, 0xf3, 0xa5, 0xb5, 0x20, 0xa0, 0x7d, 0x8c, 0xa8, 0x1c, 0xc4, 0x2b,
0x8c, 0xec, 0xd5, 0x13, 0xa8, 0x70, 0x7c, 0x41, 0xbb, 0x4f, 0x02, 0x8c, 0x44, 0xbf, 0xe6, 0x0e,
0x42, 0xdb, 0xed, 0x50, 0x86, 0x8d, 0x81, 0x83, 0x3b, 0xf9, 0x8c, 0x9e, 0xaa, 0x27, 0x41, 0x24,
0x06, 0x89, 0x5f, 0x81, 0x80, 0x70, 0x54, 0x43, 0x14, 0x46, 0xeb, 0x21, 0xd1, 0x5d, 0x1a, 0x53,
0x03, 0x1f, 0x23, 0xe3, 0xbf, 0xd9, 0x97, 0x74, 0x0d, 0xf8, 0x2f, 0x28, 0x5e, 0x6a, 0x35, 0x09,
0xdd, 0x8b, 0xc7, 0x22, 0x12, 0xf5, 0xc7, 0x15, 0xc3, 0xab, 0x6e, 0xe3, 0x99, 0xfa, 0x7a, 0x74,
0xd1, 0xc4, 0x0e, 0x99, 0xaa, 0x03, 0x9b, 0x6a, 0x2f, 0x17, 0x35, 0xdc, 0xa2, 0xdb, 0x91, 0x96,
0x97, 0x20, 0x8b, 0xc2, 0xe2, 0xb1, 0x33, 0xe2, 0x3c, 0xfd, 0xf5, 0xd7, 0x9b, 0x45, 0x14, 0x25,
0xbf, 0xfe, 0x5a, 0x04, 0xd0, 0x38, 0x6d, 0x35, 0x2d, 0xe5, 0x78, 0x42, 0x7e, 0xfd, 0x95, 0xe8,
0x73, 0x6b, 0x99, 0x4e, 0x25, 0x12, 0x2a, 0xe1, 0x53, 0x61, 0x47, 0x7a, 0xcb, 0xfe, 0x37, 0xc9,
0xec, 0x1a, 0xbb, 0xed, 0x21, 0x21, 0xcb, 0x60, 0x1a, 0x72, 0x94, 0x22, 0xcf, 0x3f, 0xe3, 0x59,
0x3a, 0x37, 0xae, 0xbc, 0xac, 0xe9, 0xfd, 0xf5, 0xbd, 0x23, 0xae, 0x6b, 0xb1, 0x84, 0x3d, 0x76,
0x01, 0xb2, 0xf5, 0x5e, 0x57, 0x4f, 0x1c, 0xf9, 0x66, 0x36, 0xdc, 0x2f, 0x31, 0xd0, 0x89, 0xc1,
0x76, 0x77, 0x4f, 0x16, 0x47, 0x3e, 0xe3, 0xc4, 0xfb, 0xec, 0xd6, 0x31, 0x1e, 0xb1, 0x0f, 0xe3,
0xec, 0x09, 0xad, 0xd4, 0xa1, 0xc7, 0x84, 0x67, 0xb7, 0x40, 0x68, 0xb4, 0xd4, 0x70, 0xe7, 0x7e,
0xd6, 0x2d, 0x9e, 0xce, 0x6e, 0x07, 0x37, 0xbe, 0x7e, 0x4c, 0xea, 0xc0, 0xd7, 0xbe, 0xc2, 0xdd,
0xae, 0x24, 0xc1, 0x13, 0x7e, 0xd5, 0xb9, 0xe0, 0x50, 0x06, 0xf4, 0xd4, 0x33, 0x67, 0x1c, 0x03,
0xc9, 0xee, 0xcb, 0x40, 0xa2, 0x7c, 0xcc, 0xe7, 0x35, 0x0c, 0x45, 0xe6, 0xf0, 0xdd, 0x1f, 0x1d,
0x98, 0x84, 0xdf, 0x8b, 0x4f, 0xe4, 0x25, 0x72, 0x56, 0x24, 0x0f, 0x04, 0xdc, 0x32, 0x43, 0xa6,
0x1b, 0x44, 0x10, 0xc5, 0xf2, 0xf2, 0xae, 0xdb, 0xd9, 0xdf, 0x8f, 0x01, 0xb3, 0x12, 0xb0, 0xfd,
0x89, 0x8a, 0x47, 0x81, 0xa3, 0x1c, 0x01, 0x90, 0xf3, 0x23, 0xe3, 0x4a, 0xfb, 0x25, 0x98, 0x26,
0xf1, 0xea, 0xaa, 0x90, 0xc3, 0xd0, 0x9b, 0x66, 0x5b, 0xc3, 0x73, 0x68, 0x78, 0x4e, 0xa5, 0x76,
0x9e, 0x56, 0xbe, 0xb1, 0xf6, 0x35, 0xad, 0xe1, 0xda, 0x6d, 0x9c, 0x01, 0xc9, 0x47, 0x0e, 0xc6,
0x84, 0x92, 0x15, 0x6a, 0x4f, 0x58, 0xba, 0x22, 0x1e, 0xfe, 0x0f, 0x54, 0x57, 0xea, 0xb7, 0xc7,
0x9c, 0x02, 0x12, 0x6c, 0xf9, 0x35, 0x4f, 0x6f, 0x22, 0x60, 0x38, 0x96, 0x21, 0xcc, 0x04, 0x10,
0xbd, 0x6a, 0x94, 0xdd, 0xca, 0xb8, 0x87, 0x32, 0x67, 0x8a, 0x39, 0x0e, 0xff, 0xb6, 0xb4, 0xac,
0x35, 0x67, 0x57, 0xe6, 0x43, 0x3d, 0xba, 0xfa, 0x2d, 0x10, 0xb9, 0x2f, 0x2a, 0x5d, 0x65, 0xf5,
0xae, 0xa4, 0xf7, 0x30, 0x91, 0x6a, 0xab, 0x17, 0xa0, 0xcc, 0xc6, 0x53, 0xfe, 0x3b, 0x8d, 0xb1,
0xea, 0x73, 0x90, 0xef, 0xe4, 0xad, 0x2c, 0x95, 0x24, 0x1f, 0x5f, 0xf9, 0x93, 0x54, 0x84, 0xae,
0x87, 0xeb, 0x3a, 0x59, 0xb8, 0x04, 0x68, 0x64, 0x31, 0xbe, 0x65, 0xa5, 0xdf, 0xb8, 0x79, 0x99,
0xba, 0x1b, 0xad, 0x9c, 0x3a, 0x16, 0x23, 0x34, 0xe1, 0xc6, 0x60, 0xa9, 0xcd, 0xa5, 0x45, 0x32,
0x11, 0x03, 0x88, 0x54, 0x5f, 0x29, 0x8e, 0x1a, 0x4a, 0xf5, 0x4d, 0x8c, 0x07, 0x35, 0x5d, 0x93,
0x5a, 0xb6, 0x4c, 0xf0, 0x2b, 0xcc, 0x07, 0x0f, 0x0f, 0x40, 0x82, 0x5d, 0xfb, 0x59, 0x3b, 0x1b,
0x18, 0x7c, 0x94, 0x4d, 0xc1, 0xcc, 0x72, 0x68, 0xf5, 0xe9, 0x36, 0x89, 0x0d, 0x04, 0x59, 0x22,
0xc9, 0x35, 0xc4, 0x1a, 0xa9, 0x0f, 0xfd, 0x6d, 0x6e, 0x8d, 0x9f, 0x01, 0x6b, 0x35, 0xc7, 0x46,
0x85, 0x8d, 0x5d, 0x42, 0xa0, 0xa6, 0xe6, 0x88, 0xb5, 0x60, 0xd2, 0xd1, 0x0d, 0x10, 0x98, 0xe1,
0xfc, 0x12, 0x4f, 0x47, 0x59, 0x1f, 0x66, 0x07, 0x0a, 0x53, 0xa3, 0x43, 0xf4, 0x9f, 0x5e, 0x97,
0xa9, 0xf7, 0x87, 0x69, 0xd3, 0xac, 0x5b, 0x52, 0xf2, 0x5b, 0xc0, 0xbf, 0xe9, 0xe0, 0xe9, 0xae,
0x33, 0xee, 0xbc, 0xc0, 0x3f, 0x4a, 0xaf, 0x4c, 0x6b, 0xad, 0x41, 0x94, 0xfa, 0x4d, 0x4e, 0x38,
0x62, 0x2f, 0x2b, 0x0e, 0x48, 0x94, 0x82, 0xe3, 0x40, 0xbf, 0x80, 0x74, 0x2e, 0xe8, 0x13, 0xc3,
0x1c, 0x75, 0x52, 0xaa, 0xd1, 0xa1, 0x31, 0xbe, 0xcd, 0xf3, 0xe0, 0xae, 0x1f, 0x17, 0xf4, 0x97,
0x1b, 0x69, 0x52, 0xfe, 0x32, 0x82, 0x9d, 0xf1, 0xbb, 0x28, 0xca, 0xba, 0xbc, 0x47, 0xf6, 0x44,
0xbf, 0xdf, 0xc7, 0x48, 0x97, 0xa1, 0x0a, 0x1b, 0x45, 0x24, 0x27, 0x53, 0xe4, 0x2d, 0x8c, 0x8e,
0x1c, 0xc9, 0x75, 0x58, 0x59, 0x8f, 0xa2, 0x05, 0x17, 0x43, 0x15, 0xa9, 0x2c, 0xaf, 0x83, 0x65,
0x3d, 0xd2, 0x4b, 0x56, 0x0e, 0x8a, 0xab, 0x12, 0xf3, 0xd6, 0x69, 0x5c, 0xcb, 0x97, 0x5c, 0x95,
0x2e, 0x81, 0xb8, 0x5d, 0xf9, 0x6c, 0xa9, 0xcc, 0xd7, 0x21, 0x59, 0xac, 0xe6, 0x38, 0x8b, 0xde,
0x1c, 0xf5, 0xb5, 0x64, 0x4a, 0xa0, 0x73, 0x47, 0x9c, 0x53, 0x7b, 0xc7, 0x5e, 0x0d, 0xf9, 0x5e,
0x50, 0xf6, 0x58, 0xdc, 0x6f, 0xc4, 0x46, 0x09, 0xa0, 0x75, 0xcc, 0x50, 0x91, 0x9e, 0xb0, 0x3b,
0xaa, 0xdc, 0x84, 0xcb, 0x3e, 0x1f, 0xe8, 0xc1, 0xaa, 0xae, 0xbb, 0xda, 0xd8, 0xef, 0x03, 0x4a,
0xcc, 0x6e, 0x9d, 0x17, 0x35, 0x8b, 0xda, 0xa7, 0xb9, 0x6d, 0x9f, 0x58, 0x01, 0xf1, 0x7e, 0x62,
0xec, 0x4b, 0x5e, 0x1e, 0xcc, 0x66, 0xdf, 0xa3, 0x4a, 0x18, 0xf7, 0x8b, 0x08, 0xd8, 0x3a, 0x9d,
0xd4, 0xa1, 0x19, 0x28, 0x88, 0x7f, 0x2c, 0xcb, 0x26, 0x6a, 0xb5, 0x59, 0x7c, 0x99, 0xa2, 0xbd,
0x48, 0x7a, 0x83, 0x4d, 0xe3, 0xe6, 0x62, 0xd5, 0x70, 0x96, 0x2f, 0x51, 0x86, 0xa3, 0x13, 0x66,
0xb3, 0xc2, 0xb6, 0x2e, 0xd2, 0x35, 0x56, 0x40, 0xb1, 0xe3, 0xa1, 0x1e, 0xa8, 0xf8, 0x3a, 0xdb,
0xb1, 0x34, 0xc1, 0x13, 0xad, 0x66, 0xf5, 0xe2, 0xc7, 0x03, 0xd8, 0xd3, 0xe3, 0xac, 0x3c, 0x11,
0xc7, 0x03, 0x0c, 0xdc, 0x88, 0x7f, 0x17, 0xe5, 0x32, 0x39, 0xf9, 0xbf, 0x67, 0xbc, 0xb2, 0xce,
0x05, 0x95, 0x01, 0x00
0x1c, 0xf8, 0xe2, 0x5d, 0xb8, 0x16, 0x86, 0x15, 0xe6, 0xa2, 0x68, 0xdb, 0x88, 0xef, 0xbe, 0x90,
0x8e, 0x96, 0xe2, 0x79, 0xd0, 0x55, 0x1c, 0x9d, 0x19, 0xfb, 0x59, 0x02, 0xe7, 0x04, 0x3a, 0x73,
0xd1, 0xa5, 0x91, 0x18, 0xeb, 0xbb, 0x27, 0x67, 0x23, 0x61, 0x61, 0x79, 0xb3, 0x00, 0x51, 0x85,
0xab, 0x79, 0x7f, 0x19, 0xaf, 0xda, 0xcb, 0x47, 0x8e, 0xf2, 0x7c, 0xd9, 0xe1, 0x2e, 0x5f, 0x36,
0xcb, 0x93, 0xc4, 0x37, 0x18, 0x0d, 0xb7, 0x54, 0xaa, 0xd6, 0xa2, 0xe5, 0x19, 0x13, 0xf3, 0x52,
0xd5, 0xb4, 0x40, 0x10, 0x25, 0x21, 0x06, 0xc8, 0x60, 0xe6, 0x32, 0xe3, 0x58, 0x19, 0x2e, 0xab,
0xb6, 0x1a, 0x9b, 0xd4, 0x66, 0x69, 0x72, 0x77, 0x8f, 0xe7, 0x5d, 0xb6, 0x3f, 0x43, 0x9d, 0x59,
0x84, 0x57, 0x2f, 0xd8, 0x32, 0x11, 0xe8, 0x4c, 0x5d, 0x96, 0x6c, 0xf0, 0xc3, 0xf6, 0x74, 0xe5,
0x58, 0x83, 0x5c, 0x0f, 0x8b, 0x9f, 0x5b, 0x8a, 0x4e, 0x25, 0x36, 0x58, 0x82, 0xcf, 0xa7, 0x54,
0x99, 0x4f, 0x15, 0x7b, 0x15, 0xb1, 0xc7, 0xd2, 0x2f, 0xf1, 0xb7, 0x25, 0xf5, 0xe8, 0x8e, 0x76,
0x0e, 0xe9, 0xc2, 0xa3, 0x44, 0xcc, 0x1d, 0x00, 0x47, 0xc6, 0xfb, 0x4f, 0x40, 0x4a, 0xb4, 0xbf,
0x6f, 0x8d, 0x36, 0x9c, 0x9d, 0x45, 0x0f, 0x04, 0x74, 0x51, 0x06, 0x88, 0x09, 0x94, 0xc4, 0x53,
0x22, 0x3a, 0x75, 0x57, 0xd2, 0x46, 0x8e, 0xb4, 0x83, 0x73, 0xb6, 0x4e, 0xb4, 0x78, 0xa6, 0xd4,
0xa6, 0x70, 0xf0, 0x63, 0x28, 0x53, 0xb1, 0xe9, 0x53, 0xf5, 0x9e, 0x2b, 0x2f, 0x00, 0x2b, 0x6a,
0x0c, 0x46, 0x28, 0xb6, 0x16, 0xf2, 0x03, 0xea, 0x21, 0x4d, 0x2d, 0xb2, 0x23, 0xac, 0x7d, 0xae,
0x5c, 0x29, 0x77, 0xac, 0x1a, 0xf7, 0x8b, 0xdb, 0xad, 0x4c, 0xc2, 0x52, 0x2d, 0x59, 0x95, 0xe2,
0xdb, 0xd6, 0x7e, 0x7e, 0x8f, 0x22, 0x4d, 0xaa, 0x71, 0xaa, 0x61, 0x9b, 0xe3, 0xfe, 0x9c, 0x41,
0x83, 0x1d, 0xd6, 0xf4, 0x9c, 0x05, 0x49, 0x43, 0x10, 0x76, 0x29, 0xae, 0xbe, 0x67, 0x89, 0x07,
0x85, 0xf6, 0x30, 0x4f, 0x93, 0xe4, 0x0b, 0x5d, 0x9e, 0xec, 0x04, 0x2e, 0x47, 0x8b, 0xf8, 0x42,
0x97, 0x25, 0xdb, 0x1a, 0xe6, 0xc0, 0xe8, 0x1c, 0x55, 0x62, 0x30, 0xea, 0xbf, 0x92, 0x28, 0x21,
0x95, 0x4d, 0x9f, 0xa3, 0x58, 0x90, 0x1a, 0x84, 0x7f, 0xee, 0x55, 0xe5, 0x6a, 0x8a, 0xf1, 0x99,
0xe7, 0xb6, 0xa3, 0x29, 0xcb, 0xdb, 0xea, 0x46, 0xb4, 0x6f, 0xbb, 0x84, 0x49, 0x47, 0x23, 0xba,
0x16, 0x1d, 0x8e, 0xad, 0x8a, 0xb0, 0x47, 0x26, 0x33, 0x81, 0x0f, 0xa3, 0xd0, 0x43, 0x91, 0x62,
0xae, 0x8d, 0x77, 0xf7, 0xec, 0x0b, 0xcf, 0x4a, 0x03, 0x23, 0xbb, 0x01, 0xb4, 0x80, 0x8f, 0x56,
0xe9, 0xfa, 0x72, 0x81, 0xaa, 0xb9, 0x30, 0x42, 0x47, 0xc3, 0x02, 0xdd, 0x47, 0xd9, 0xb4, 0xbf,
0xbd, 0x95, 0x03, 0xbb, 0x95, 0x2f, 0x8b, 0x48, 0xe9, 0x35, 0x80, 0x29, 0x2b, 0x3f, 0xce, 0x14,
0x0e, 0x7f, 0x08, 0x5a, 0x74, 0x8b, 0xf7, 0x6b, 0xad, 0x2d, 0xbd, 0xb6, 0x5b, 0x7a, 0x6b, 0x0d,
0x41, 0x86, 0x02, 0x59, 0x04, 0x85, 0x48, 0x43, 0xd8, 0x27, 0xa2, 0x59, 0xb3, 0x91, 0x8d, 0x46,
0x9c, 0x75, 0xda, 0xa2, 0x6a, 0x34, 0xad, 0x12, 0xf9, 0xb0, 0x42, 0xc7, 0x24, 0x8f, 0x70, 0x47,
0x4d, 0x8f, 0x86, 0x1a, 0x3b, 0xfa, 0x43, 0x4e, 0x7a, 0x2d, 0x5e, 0x7a, 0x1b, 0xdf, 0x7d, 0x79,
0x49, 0x0a, 0x74, 0x15, 0x4c, 0x8c, 0xb7, 0x6e, 0x74, 0x51, 0xd2, 0x77, 0x86, 0xe9, 0xf4, 0x37,
0x12, 0xa0, 0xd3, 0x15, 0x8c, 0x01, 0x33, 0x48, 0x3c, 0x86, 0x54, 0x7b, 0x8f, 0xd8, 0x76, 0xc5,
0x55, 0xdd, 0x5d, 0x9e, 0x8e, 0x54, 0x18, 0x2a, 0xa3, 0x86, 0x82, 0xc6, 0x1c, 0x51, 0x3d, 0x09,
0xba, 0x4f, 0x89, 0x04, 0x8d, 0xc5, 0x82, 0x3d, 0xf8, 0xa3, 0x34, 0x1f, 0xa4, 0xa3, 0x7f, 0x54,
0x47, 0xc7, 0x05, 0xca, 0x46, 0xb9, 0x8c, 0xc2, 0xd3, 0x17, 0xff, 0x44, 0x5d, 0x25, 0xc7, 0x2e,
0x21, 0x9f, 0x5c, 0x3a, 0xd4, 0x3f, 0xbe, 0x67, 0xe9, 0xe1, 0x44, 0x0c, 0x51, 0x3f, 0x88, 0x23,
0xf3, 0x60, 0xd5, 0x79, 0x1b, 0xca, 0x21, 0x09, 0x02, 0x93, 0xaf, 0xe9, 0x25, 0x89, 0x60, 0x5e,
0xc2, 0x5f, 0xce, 0x02, 0x39, 0x64, 0x83, 0xc6, 0x5e, 0x74, 0xad, 0x7c, 0xe1, 0xd7, 0x62, 0x33,
0xda, 0x34, 0xc0, 0x50, 0xcc, 0x22, 0x82, 0x03, 0xcd, 0xe2, 0xfb, 0x1d, 0xdf, 0xbe, 0xda, 0x57,
0x58, 0x5d, 0x25, 0x80, 0x55, 0x89, 0x5c, 0x18, 0xd0, 0x66, 0xf3, 0x0d, 0xb8, 0xc1, 0x6b, 0x07,
0x15, 0xb6, 0xc5, 0x08, 0x38, 0x7b, 0xea, 0xb7, 0xb6, 0x2c, 0xd1, 0x37, 0x11, 0x0d, 0x64, 0x75,
0x7e, 0x44, 0x1f, 0x68, 0xc6, 0x0f, 0x7a, 0x39, 0x93, 0x97, 0xf1, 0x2a, 0x2a, 0x6f, 0xd2, 0xfc,
0x8a, 0xf1, 0xb5, 0x4a, 0x6f, 0xa8, 0x71, 0x5c, 0x97, 0xe4, 0xca, 0x0c, 0x52, 0xbd, 0x1e, 0x8a,
0x7b, 0xe4, 0x58, 0x8a, 0x31, 0x4e, 0x6e, 0xcf, 0x0f, 0xf7, 0x20, 0x92, 0x74, 0x75, 0x09, 0x85,
0xb0, 0x9f, 0x16, 0x34, 0xa1, 0xcc, 0x46, 0x88, 0x42, 0xb9, 0x0d, 0x7e, 0xa8, 0x31, 0x31, 0xbe,
0xd4, 0x28, 0xa5, 0x40, 0xee, 0x13, 0x75, 0x92, 0x98, 0x97, 0xb3, 0x7c, 0x6e, 0xa3, 0x64, 0x47,
0xe4, 0xe2, 0x29, 0xe3, 0x3a, 0x8e, 0x6e, 0xf4, 0xca, 0xa0, 0x27, 0x0a, 0xf6, 0xf0, 0x6f, 0x8b,
0xa6, 0x5b, 0x56, 0x70, 0x6a, 0xa5, 0xa1, 0x96, 0xdf, 0x1a, 0x86, 0x99, 0xf5, 0x81, 0x18, 0x9b,
0xef, 0x4d, 0xd3, 0x05, 0x59, 0x35, 0x7b, 0x31, 0xf6, 0xf4, 0x6f, 0xef, 0x61, 0x08, 0x28, 0x98,
0xa2, 0xee, 0x97, 0xa2, 0xdc, 0x07, 0x53, 0x8c, 0xf3, 0x3e, 0x4d, 0x82, 0xd5, 0xd5, 0xf6, 0xdb,
0x2c, 0xc7, 0x75, 0x9a, 0x04, 0xbf, 0x7a, 0x8f, 0xa5, 0x63, 0xaa, 0xb9, 0xf0, 0x47, 0x07, 0x09,
0x85, 0x3b, 0xf9, 0xa0, 0xc3, 0x1e, 0xff, 0x32, 0xd7, 0x3e, 0x8e, 0xb3, 0x87, 0x3a, 0xa8, 0xb4,
0x45, 0xb0, 0x84, 0xac, 0x96, 0x7b, 0x10, 0xd9, 0xda, 0xee, 0x37, 0x1f, 0x6d, 0x08, 0xf8, 0xd0,
0x1c, 0xbf, 0x6e, 0xba, 0x82, 0x81, 0xea, 0xb8, 0x97, 0xc1, 0x15, 0x4a, 0xbf, 0x56, 0x08, 0x0b,
0x0a, 0x02, 0x34, 0x74, 0x9b, 0xc8, 0x55, 0xae, 0x79, 0x33, 0x5e, 0xba, 0x2d, 0xf7, 0xeb, 0x95,
0x8a, 0xfb, 0x23, 0x63, 0x60, 0xa1, 0x25, 0x11, 0xaa, 0x7f, 0xac, 0x0f, 0xad, 0x3e, 0xf7, 0x9c,
0x49, 0x8a, 0xdf, 0x1a, 0xce, 0x61, 0x8b, 0x27, 0xe7, 0x2a, 0xba, 0x31, 0x05, 0xc4, 0xa7, 0xe8,
0x46, 0x59, 0xdf, 0x89, 0x2a, 0x4c, 0x4d, 0xaf, 0x04, 0x1d, 0x66, 0xa0, 0xe1, 0x32, 0xa0, 0x3d,
0x04, 0xb4, 0xe1, 0x76, 0x9b, 0xc9, 0xb8, 0x6d, 0xd3, 0xbd, 0xab, 0x4b, 0xc0, 0x6e, 0x3e, 0x01,
0xb6, 0xe1, 0xf8, 0x03, 0xbd, 0xec, 0x64, 0xa2, 0x5d, 0xc1, 0xc5, 0xef, 0xf3, 0x10, 0x58, 0x15,
0x6d, 0xf6, 0xda, 0x95, 0xc6, 0x6b, 0x26, 0xe5, 0xff, 0x12, 0x80, 0x7f, 0x8f, 0xc3, 0x80, 0x95,
0xf6, 0xcd, 0x40, 0xdb, 0x56, 0xfb, 0xb6, 0xc5, 0x79, 0xd5, 0xe4, 0xbc, 0x0d, 0x5a, 0x32, 0x3d,
0x37, 0x00, 0x80, 0x88, 0x0c, 0xa8, 0x23, 0x9b, 0xa0, 0x6f, 0x31, 0x96, 0x06, 0x99, 0x2e, 0x99,
0xdb, 0x16, 0xd3, 0x95, 0x3e, 0x5c, 0xc6, 0xd3, 0xd5, 0x11, 0x1d, 0x55, 0x4c, 0x47, 0x1d, 0x56,
0xd5, 0x75, 0xfb, 0xda, 0x96, 0xab, 0x4c, 0xb7, 0x19, 0xac, 0xc3, 0x67, 0xcc, 0xea, 0x4e, 0xdc,
0x57, 0x97, 0xb3, 0x3b, 0x92, 0x07, 0xc5, 0x2a, 0xd8, 0x8f, 0xad, 0xa1, 0x68, 0xf6, 0x84, 0x44,
0x52, 0x45, 0x0f, 0x15, 0x85, 0x5f, 0x3c, 0x90, 0xd1, 0xab, 0x80, 0x06, 0xf2, 0x76, 0x36, 0x53,
0x0b, 0xbe, 0xa9, 0xaf, 0xfd, 0x03, 0x63, 0x41, 0x40, 0x3e, 0xab, 0xa8, 0x42, 0x2a, 0xf6, 0x16,
0xba, 0xd6, 0xd9, 0x86, 0xd2, 0x18, 0xb2, 0x44, 0x1b, 0xeb, 0x67, 0xe5, 0x6d, 0x29, 0x24, 0x2d,
0x5b, 0x5e, 0xe8, 0x25, 0x16, 0x09, 0xd6, 0x18, 0xea, 0x76, 0x99, 0xa1, 0xfd, 0xd8, 0x84, 0xa4,
0x38, 0x24, 0x5c, 0xbe, 0xae, 0x9e, 0x3c, 0x3f, 0x30, 0x34, 0xdb, 0x8d, 0x4f, 0x86, 0xfe, 0x1b,
0xe5, 0x74, 0xce, 0x3a, 0x6e, 0x0a, 0x27, 0xb7, 0x48, 0x13, 0x7c, 0xa1, 0xd7, 0xfb, 0x9e, 0x02,
0xd6, 0x22, 0xe7, 0xeb, 0xf7, 0xfb, 0xde, 0x40, 0x05, 0x4b, 0xb1, 0xc9, 0x32, 0xb4, 0x03, 0x4c,
0xf0, 0x2b, 0x2e, 0xe3, 0x2d, 0x70, 0x17, 0x15, 0xb8, 0x0d, 0x58, 0x16, 0x54, 0x3a, 0xc6, 0xd2,
0xc6, 0x1a, 0xd8, 0xd7, 0xc4, 0x35, 0xae, 0x81, 0x71, 0x0d, 0xa8, 0x2e, 0x95, 0x93, 0x6e, 0x12,
0xe1, 0x91, 0x89, 0x42, 0xdd, 0x90, 0x2a, 0x02, 0x64, 0x2a, 0x0b, 0x4e, 0x9e, 0x3b, 0xdf, 0xd4,
0x7e, 0xc8, 0x92, 0x5d, 0x21, 0xcb, 0xfb, 0x51, 0xc7, 0xac, 0x81, 0x63, 0xe1, 0x82, 0xe3, 0xcd,
0xc0, 0xde, 0xf7, 0x0b, 0x88, 0x7d, 0x52, 0x6f, 0x26, 0xd3, 0x68, 0x0b, 0xd8, 0x62, 0xe9, 0x4e,
0xc3, 0x0a, 0x8b, 0xf2, 0xb2, 0xe2, 0x72, 0x07, 0x9f, 0xef, 0x0b, 0x63, 0xea, 0x2e, 0x3b, 0x85,
0x0e, 0x94, 0xa5, 0x3b, 0x9b, 0xb9, 0xef, 0x68, 0xe3, 0xae, 0x0c, 0xdc, 0x1d, 0xf3, 0x96, 0xa5,
0x07, 0x76, 0xf4, 0x82, 0x03, 0x1e, 0xe6, 0xdb, 0xcf, 0x1f, 0xd4, 0x95, 0xa8, 0xda, 0xb1, 0x4c,
0xf8, 0x9c, 0x2a, 0x07, 0xb5, 0x6a, 0x07, 0x59, 0x5c, 0x89, 0xa9, 0x43, 0x3d, 0x3b, 0xe6, 0x25,
0x4b, 0x47, 0x76, 0x9f, 0x23, 0xee, 0xf3, 0x61, 0x2f, 0x82, 0x0f, 0xfc, 0x6a, 0x22, 0x9c, 0x33,
0xd5, 0x03, 0x3e, 0xd2, 0xc7, 0x66, 0x3b, 0x72, 0xe3, 0x29, 0x21, 0x57, 0x62, 0x4e, 0x72, 0xa1,
0x1d, 0x9d, 0x03, 0x6c, 0xd7, 0x80, 0x87, 0x01, 0x3c, 0x45, 0x5a, 0x53, 0x92, 0xc0, 0x14, 0x15,
0x2a, 0xbb, 0x41, 0x58, 0xfc, 0x6b, 0x20, 0x74, 0x22, 0x1b, 0x16, 0x26, 0x81, 0x05, 0xa7, 0x94,
0x0f, 0xdf, 0x09, 0xe7, 0x26, 0x68, 0xe3, 0x6a, 0x56, 0xdf, 0xf3, 0xf4, 0x2e, 0x66, 0xe2, 0xe2,
0x49, 0xb2, 0xc4, 0x5d, 0xf0, 0xe0, 0x70, 0x48, 0xbb, 0xe2, 0x48, 0xae, 0x5b, 0x45, 0xaa, 0xf1,
0xb8, 0x19, 0xd6, 0x6f, 0x73, 0xd2, 0x06, 0x20, 0x8d, 0xc3, 0xcd, 0xad, 0xe3, 0x46, 0xf4, 0x25,
0xd4, 0x81, 0x7c, 0xd6, 0xee, 0x5a, 0x5b, 0xf9, 0xb5, 0xda, 0x78, 0xf4, 0x02, 0x22, 0x4c, 0xf0,
0x1a, 0x2b, 0x60, 0x31, 0x9d, 0x1a, 0x75, 0x8a, 0x67, 0x6e, 0xde, 0xec, 0x75, 0xde, 0xd9, 0x19,
0xac, 0x59, 0x94, 0x7c, 0xee, 0x76, 0x9e, 0xc5, 0xcf, 0x3a, 0x0f, 0x82, 0xa5, 0x5c, 0x82, 0xbe,
0x93, 0xc1, 0x59, 0x08, 0x00, 0xdd, 0x7d, 0x67, 0xac, 0x64, 0x98, 0xce, 0x0e, 0xb1, 0xa8, 0xec,
0xf8, 0xdc, 0xde, 0xc9, 0x7b, 0x7c, 0xaa, 0x37, 0x31, 0x4d, 0x6d, 0x5a, 0x97, 0x20, 0x06, 0x02,
0x34, 0x8c, 0x65, 0xca, 0xfe, 0xaf, 0x22, 0xb4, 0x48, 0x01, 0x4b, 0xd0, 0xd4, 0x58, 0x4d, 0xa8,
0x0a, 0xa2, 0xdb, 0xa9, 0x31, 0x5a, 0xa0, 0xad, 0x8e, 0x80, 0xd1, 0x03, 0xd0, 0x54, 0xb8, 0x43,
0xfb, 0xc8, 0x85, 0x7b, 0x8b, 0xb3, 0xb6, 0x6b, 0x47, 0x14, 0x10, 0xc7, 0x5e, 0xe9, 0x8e, 0xba,
0xc2, 0x74, 0xf3, 0x90, 0x78, 0x8e, 0xd2, 0xb9, 0x42, 0xb1, 0x16, 0x3d, 0x1e, 0x90, 0xbe, 0x1f,
0xdf, 0xf3, 0x56, 0x3c, 0xf4, 0x37, 0xd2, 0x0b, 0xc8, 0xc8, 0x2a, 0xdb, 0x4d, 0xf8, 0xb2, 0x61,
0xd6, 0x71, 0x3c, 0x26, 0x63, 0x4f, 0xd3, 0x1f, 0x11, 0x53, 0xf4, 0x4c, 0xef, 0x26, 0xa8, 0xbc,
0xa7, 0x57, 0x05, 0xea, 0x14, 0xb6, 0x45, 0x54, 0xc9, 0x76, 0x13, 0x54, 0x78, 0x7b, 0x8a, 0x7d,
0x63, 0xab, 0x5c, 0xb4, 0xc7, 0xc7, 0xa4, 0xcd, 0xed, 0x42, 0xdf, 0x0c, 0x39, 0x3b, 0xbe, 0x90,
0x5b, 0x81, 0xc3, 0x81, 0x07, 0xda, 0xd6, 0xea, 0x01, 0x0c, 0xbd, 0xda, 0xfe, 0xe0, 0x93, 0x6c,
0xe4, 0xc0, 0xd1, 0xc8, 0x5e, 0x5b, 0x2b, 0xb5, 0xc0, 0xbf, 0xca, 0xcd, 0xdc, 0x0e, 0x3c, 0xa0,
0x34, 0x2d, 0x48, 0x52, 0xe3, 0x33, 0xbe, 0x03, 0xc7, 0xc7, 0x9d, 0xe4, 0xc3, 0x4e, 0x13, 0xe3,
0xf1, 0xc4, 0x26, 0xf6, 0xd3, 0xdf, 0xf0, 0x0e, 0x86, 0xe3, 0x07, 0x61, 0xad, 0xc4, 0x1b, 0xa3,
0x19, 0x41, 0xe1, 0xbf, 0x41, 0x4d, 0xa4, 0x7c, 0xcd, 0x4e, 0xeb, 0x72, 0x1e, 0x54, 0xba, 0x48,
0xef, 0xfb, 0x42, 0x23, 0x9b, 0x1f, 0x4b, 0x6c, 0xb7, 0x97, 0x8f, 0x6a, 0xc8, 0x6e, 0x8c, 0x41,
0xdd, 0xf9, 0x17, 0x3d, 0xc1, 0xe0, 0x61, 0x93, 0x4e, 0xfd, 0x9a, 0x15, 0x0c, 0xbb, 0x0e, 0x54,
0x59, 0x03, 0xea, 0x7f, 0xdf, 0x7f, 0x82, 0x74, 0x5b, 0x58, 0xf5, 0x78, 0xc2, 0xdd, 0xc3, 0xca,
0x9a, 0x29, 0x64, 0x1d, 0xa9, 0x6b, 0xab, 0xcd, 0xc3, 0x28, 0xa0, 0x47, 0x6f, 0xc7, 0xdc, 0x06,
0x7d, 0xa7, 0x19, 0x7d, 0xa6, 0x99, 0x51, 0xa2, 0x6d, 0xf7, 0x6d, 0xf8, 0xff, 0xc0, 0x2b, 0x42,
0x91, 0x1d, 0xf7, 0x0e, 0xff, 0x56, 0x52, 0xb9, 0x59, 0xf8, 0x77, 0x67, 0xb2, 0x9b, 0xd9, 0x64,
0xd7, 0x74, 0xc3, 0xab, 0xe9, 0x36, 0x3d, 0x0c, 0x6e, 0xb9, 0x8a, 0x38, 0xea, 0x27, 0x05, 0xb9,
0x5c, 0xae, 0x93, 0x32, 0x06, 0x19, 0xdd, 0xf8, 0x25, 0x42, 0x8e, 0x8a, 0xb7, 0xba, 0x8a, 0xd4,
0xb3, 0x17, 0xe6, 0x72, 0x91, 0xe2, 0xf0, 0x28, 0xbb, 0xfc, 0xe2, 0xdc, 0x76, 0x34, 0x54, 0x5d,
0xef, 0xef, 0xef, 0x30, 0x99, 0x34, 0x79, 0xc3, 0x6f, 0x26, 0x67, 0xf4, 0x94, 0x35, 0xe4, 0x8c,
0x5e, 0xb2, 0x5b, 0xd6, 0x18, 0x64, 0x7f, 0xc3, 0x1a, 0x43, 0xb7, 0x5c, 0xb4, 0xc0, 0xbb, 0xfe,
0x66, 0xa0, 0x7e, 0x88, 0x2d, 0x98, 0x96, 0xf1, 0x36, 0x90, 0x96, 0xf1, 0x37, 0x40, 0xb4, 0x8c,
0xe1, 0xc7, 0x32, 0xfe, 0x3d, 0x6b, 0x1e, 0xbd, 0xcf, 0x0d, 0x4c, 0xad, 0x3d, 0x90, 0xda, 0x7e,
0x4f, 0x79, 0xb8, 0x17, 0xe7, 0x3b, 0xaa, 0xef, 0x8d, 0x97, 0xf9, 0x0e, 0x7d, 0xa0, 0xd7, 0xfa,
0x78, 0x87, 0xb5, 0x42, 0xee, 0xa4, 0x72, 0xad, 0xec, 0x0e, 0xc7, 0x7f, 0x77, 0xe3, 0xd5, 0xcc,
0x6c, 0xd6, 0x75, 0x28, 0xe6, 0xb7, 0x15, 0xab, 0x29, 0x28, 0xba, 0x7b, 0xd3, 0xd2, 0x84, 0xb6,
0xdb, 0xb6, 0xc9, 0xc0, 0xdf, 0x2c, 0x48, 0xb6, 0x8e, 0xad, 0x6e, 0x8c, 0xfb, 0xcd, 0xc3, 0x43,
0x1c, 0x37, 0x47, 0xf7, 0x10, 0x4a, 0x9b, 0x06, 0x2a, 0xfe, 0xff, 0xd2, 0xa5, 0x17, 0x52, 0x06,
0x5e, 0x91, 0x77, 0xdb, 0xa7, 0xa4, 0xb8, 0xdd, 0x05, 0xf6, 0xca, 0x45, 0xbb, 0xff, 0xcd, 0x4b,
0x40, 0x5f, 0xbb, 0x6f, 0x01, 0x24, 0xde, 0x09, 0x90, 0xc6, 0x05, 0xfe, 0xb7, 0x03, 0xf3, 0x11,
0xc5, 0x90, 0x26, 0x1c, 0x09, 0xbe, 0xce, 0x20, 0xe2, 0x6f, 0xb9, 0x31, 0x7b, 0xff, 0x4f, 0xc7,
0x78, 0xb2, 0x04, 0x65, 0xa5, 0xfd, 0x51, 0xfb, 0x2e, 0xe8, 0xb0, 0xfc, 0xd1, 0x7b, 0xa1, 0xd5,
0xca, 0x18, 0xe3, 0x34, 0x79, 0x68, 0x6f, 0x43, 0xf8, 0xc1, 0x90, 0xf7, 0xe3, 0x07, 0x48, 0x44,
0x9b, 0x02, 0xf9, 0xc8, 0xaf, 0x82, 0xdb, 0x07, 0x2b, 0x44, 0x76, 0x05, 0x8a, 0xe2, 0xf5, 0x50,
0x8d, 0x0a, 0x11, 0x32, 0xee, 0xff, 0x38, 0x21, 0x6f, 0xd4, 0xbb, 0x49, 0x3b, 0xb0, 0x01, 0x0e,
0xfe, 0xe8, 0x98, 0xc0, 0xac, 0xa0, 0xf9, 0x63, 0x1f, 0x1e, 0xb3, 0xc9, 0x7e, 0x94, 0xa1, 0x9f,
0x33, 0x13, 0x85, 0x5d, 0x87, 0x69, 0x7f, 0xa6, 0xe2, 0x72, 0xc9, 0x90, 0x5c, 0x6c, 0xf3, 0xf0,
0x30, 0x18, 0x74, 0x9a, 0x96, 0x20, 0xd0, 0xdb, 0xd2, 0x5b, 0xf8, 0x69, 0x2d, 0xdc, 0xbd, 0x71,
0x52, 0x80, 0x8a, 0x68, 0xa4, 0xfc, 0x01, 0x64, 0x83, 0x91, 0xcf, 0xcd, 0xd0, 0x41, 0x11, 0x3d,
0x66, 0x80, 0x82, 0x9a, 0xba, 0x00, 0xf2, 0x47, 0xff, 0xd4, 0x7e, 0x66, 0x28, 0x6f, 0xcb, 0x46,
0x50, 0xfd, 0x4f, 0xf4, 0xac, 0x90, 0xe7, 0xcb, 0xb7, 0xb0, 0xad, 0x50, 0xf4, 0xd9, 0x87, 0xda,
0x8e, 0xb7, 0x39, 0x6a, 0xf7, 0x01, 0x76, 0x9d, 0x49, 0xac, 0x0b, 0xa7, 0x3c, 0xb8, 0x69, 0x07,
0x2b, 0xc8, 0xe2, 0xca, 0x0d, 0x93, 0x8e, 0x40, 0x2e, 0x3b, 0xb6, 0x62, 0xb3, 0x42, 0x3b, 0xca,
0x60, 0xa8, 0x16, 0x45, 0x1c, 0xcb, 0x9e, 0x79, 0x37, 0xb0, 0x06, 0x50, 0xc8, 0x81, 0x72, 0xc6,
0x40, 0x09, 0x3e, 0x94, 0x3f, 0x91, 0x91, 0xb2, 0xbe, 0x29, 0x98, 0xbf, 0x7a, 0x28, 0xa0, 0xf2,
0xd4, 0x18, 0x85, 0x0a, 0xb7, 0x74, 0x7a, 0xd2, 0x9a, 0x59, 0x5a, 0x59, 0x58, 0xf6, 0x5d, 0xb6,
0xe7, 0x30, 0xc2, 0x12, 0xa3, 0xa3, 0xd7, 0x8f, 0xf3, 0x6e, 0xe7, 0xbe, 0xe3, 0x8b, 0x13, 0xe0,
0x04, 0x7f, 0x04, 0xa4, 0xd3, 0xbb, 0x55, 0x19, 0xdc, 0x4a, 0xd3, 0x11, 0x38, 0x72, 0x87, 0x6b,
0x10, 0xd6, 0x96, 0x84, 0x33, 0x1b, 0xb8, 0x6f, 0x00, 0xcb, 0xe3, 0x51, 0x7a, 0x7e, 0xdd, 0x36,
0xfe, 0x8f, 0xa0, 0x2c, 0x8f, 0xe6, 0x40, 0x59, 0x0b, 0xba, 0x8e, 0xcf, 0xf0, 0x29, 0xba, 0x69,
0x34, 0xc7, 0xc8, 0x77, 0xcb, 0x74, 0x16, 0xcf, 0xef, 0x70, 0xf9, 0xd1, 0x6d, 0xbf, 0x54, 0x1b,
0x39, 0x80, 0xad, 0x44, 0x19, 0xa6, 0xb9, 0x4e, 0x69, 0xa6, 0x6b, 0x61, 0x37, 0xee, 0x75, 0x76,
0x3c, 0xa5, 0xfc, 0xb6, 0xf5, 0x36, 0x6d, 0x1c, 0x9f, 0xb9, 0x5a, 0xb1, 0xb5, 0x5a, 0xd1, 0xac,
0xb6, 0xe1, 0x8d, 0xfa, 0x0c, 0xd8, 0x0b, 0xac, 0x7a, 0xaa, 0x8c, 0x2b, 0x87, 0x92, 0x98, 0x18,
0xb3, 0x4f, 0x3a, 0x9c, 0xc4, 0x4f, 0x5b, 0x56, 0xe7, 0xd7, 0xa4, 0xb1, 0x38, 0x7f, 0xfa, 0x54,
0x89, 0x44, 0x4d, 0x6d, 0x62, 0xc4, 0x5d, 0x6c, 0xf4, 0xa7, 0x4f, 0xd2, 0x00, 0xcb, 0x62, 0x65,
0x32, 0x2c, 0x3c, 0xb3, 0x30, 0xcd, 0xbc, 0x80, 0x73, 0x18, 0xee, 0xe5, 0xe0, 0x5d, 0xfc, 0xc6,
0x83, 0x44, 0xa9, 0x6f, 0x05, 0xf7, 0x3e, 0xcb, 0x3e, 0x60, 0x57, 0x90, 0x25, 0xe7, 0xa0, 0x12,
0xf8, 0x18, 0x32, 0xf5, 0xa0, 0x5b, 0xf3, 0xd3, 0x2d, 0x79, 0xd7, 0x5b, 0xf2, 0x68, 0xab, 0x39,
0xaf, 0x4f, 0xac, 0x0d, 0xd5, 0x3d, 0x60, 0x77, 0x9c, 0x7d, 0x82, 0x6d, 0x09, 0x17, 0xfd, 0xd8,
0x6b, 0x23, 0x34, 0x34, 0xf0, 0x8a, 0x64, 0x5c, 0xfc, 0x55, 0x74, 0x93, 0xdc, 0x11, 0x77, 0x9e,
0x69, 0xe7, 0x24, 0x6f, 0xa3, 0xaf, 0xb5, 0x0d, 0x0b, 0xf1, 0x6d, 0x58, 0x14, 0x53, 0x31, 0xd9,
0xd5, 0x1a, 0x38, 0x23, 0xbe, 0xb0, 0x6b, 0xc8, 0x39, 0xd2, 0xb9, 0xda, 0xfd, 0xdb, 0x15, 0x21,
0xbd, 0xf6, 0x18, 0x60, 0xe3, 0xc0, 0xf8, 0xd9, 0xb9, 0x97, 0xcd, 0x48, 0xc5, 0xd0, 0x2a, 0x8d,
0x54, 0x51, 0x1a, 0x9f, 0x1f, 0xb5, 0xf4, 0xde, 0xd0, 0x8a, 0x28, 0xdb, 0x4c, 0xe9, 0x53, 0x18,
0xb2, 0x5e, 0x64, 0x7a, 0xf4, 0xef, 0x7f, 0x75, 0x30, 0xcd, 0xe9, 0x5a, 0x0c, 0x5f, 0xc8, 0x66,
0xbf, 0x16, 0xb2, 0xf3, 0x64, 0x5e, 0x60, 0x17, 0x5c, 0x06, 0xf9, 0x25, 0x5e, 0x19, 0xe3, 0x53,
0xd6, 0x8d, 0xcc, 0x9b, 0x78, 0x56, 0x2e, 0x26, 0xde, 0x8b, 0x03, 0x99, 0x49, 0xcf, 0x05, 0xcc,
0xd8, 0x56, 0xb4, 0xd6, 0xd1, 0xa1, 0xa3, 0xa3, 0x5a, 0x51, 0xd5, 0x95, 0x6a, 0xad, 0x96, 0x2d,
0x3b, 0x3b, 0x1c, 0xaa, 0x6c, 0x7a, 0xdb, 0x90, 0xdf, 0x94, 0x47, 0x19, 0xa4, 0xde, 0x71, 0xd5,
0x22, 0xb4, 0xc5, 0xe2, 0x44, 0xbb, 0x2b, 0xb7, 0xda, 0xbb, 0x7e, 0x8b, 0xbb, 0xf3, 0xc3, 0xce,
0xc1, 0x14, 0x30, 0x03, 0xb8, 0xc7, 0xa2, 0xee, 0xb8, 0x99, 0xbd, 0xef, 0x56, 0x03, 0xed, 0xa8,
0x17, 0x3e, 0x73, 0xd8, 0x4e, 0x94, 0x3c, 0xca, 0x01, 0x65, 0xee, 0x17, 0x24, 0x8b, 0x16, 0xf4,
0xef, 0xf5, 0x18, 0x3d, 0xfa, 0x88, 0x30, 0x21, 0xb7, 0x5f, 0x7f, 0x98, 0x8a, 0x43, 0xa8, 0xc2,
0xca, 0x4b, 0x97, 0x20, 0x1c, 0x3f, 0x15, 0x87, 0xf4, 0xb6, 0xd2, 0x21, 0xcb, 0x79, 0xb3, 0x54,
0x12, 0x06, 0x54, 0x5c, 0x54, 0x2b, 0xd6, 0xeb, 0x3d, 0x7f, 0xa9, 0x44, 0x43, 0xc0, 0x4f, 0x12,
0x09, 0x2e, 0x10, 0x4c, 0x8b, 0x2e, 0x57, 0xde, 0xe7, 0x51, 0xf9, 0x40, 0x7b, 0xb2, 0x71, 0x35,
0x4a, 0xca, 0xd7, 0xc4, 0x51, 0x9f, 0xb3, 0x34, 0x51, 0x2f, 0x48, 0xf2, 0x0b, 0x94, 0xc3, 0xb6,
0xc8, 0x28, 0x84, 0x45, 0x2b, 0x92, 0x2a, 0x61, 0xc2, 0x6e, 0x2e, 0xbf, 0xd4, 0xcb, 0xa6, 0x70,
0xbb, 0x7e, 0xd2, 0x54, 0xfd, 0x2c, 0x9f, 0xac, 0xd4, 0xf3, 0x8d, 0xf0, 0xe5, 0x47, 0x95, 0x69,
0x2e, 0x7a, 0x1c, 0xe4, 0x79, 0x5b, 0x3b, 0x7f, 0x73, 0xb5, 0x73, 0x59, 0x6f, 0xe7, 0xe0, 0xc1,
0x76, 0xde, 0xb9, 0xda, 0x99, 0xd6, 0xdb, 0x79, 0xde, 0x86, 0x16, 0xeb, 0x79, 0x77, 0xf3, 0xc2,
0x98, 0x8d, 0x96, 0x45, 0x74, 0x7b, 0x4a, 0xce, 0x9d, 0xea, 0xe1, 0x30, 0x54, 0x34, 0x02, 0xf2,
0xd7, 0x53, 0xf6, 0xf9, 0xb4, 0xe2, 0x59, 0xdf, 0x38, 0xa8, 0x9f, 0x1e, 0xa0, 0xe5, 0xfd, 0x50,
0xbe, 0xd3, 0x75, 0xd3, 0x2f, 0xd3, 0x53, 0x59, 0xf5, 0x65, 0xcb, 0xaa, 0x82, 0x4e, 0x43, 0xdb,
0xe1, 0xa0, 0xcc, 0xdb, 0xcb, 0xad, 0xe6, 0x9d, 0x9d, 0x8d, 0xb8, 0xab, 0x18, 0x80, 0xda, 0x74,
0xab, 0xdf, 0x7a, 0x0d, 0xb3, 0x7b, 0xf3, 0x32, 0xd8, 0x42, 0x3c, 0xe7, 0xc7, 0x87, 0xfb, 0x57,
0xd1, 0xdd, 0x7b, 0x7c, 0xaa, 0x11, 0xc3, 0xce, 0x3c, 0xf7, 0xc9, 0x15, 0x5e, 0xad, 0xea, 0x2a,
0x0c, 0x3a, 0xa7, 0x3e, 0x07, 0xdb, 0x91, 0x82, 0x9d, 0xd9, 0xa8, 0xb6, 0xcf, 0x2c, 0xd5, 0xe9,
0x79, 0x09, 0x47, 0x41, 0x89, 0x67, 0x2d, 0xa9, 0xd7, 0x57, 0x91, 0xf7, 0x27, 0x72, 0xd3, 0xaf,
0xd4, 0x1b, 0xf6, 0x5e, 0xfa, 0xbe, 0xf3, 0x05, 0xa0, 0x66, 0xed, 0xf9, 0x3c, 0x08, 0x86, 0xc3,
0xea, 0xc3, 0x98, 0x1c, 0x58, 0xc6, 0x86, 0xd1, 0xf7, 0xeb, 0x20, 0x0f, 0x2b, 0x4b, 0xf7, 0xc0,
0x8d, 0x9d, 0xda, 0xc2, 0xcd, 0xb7, 0xaf, 0x4d, 0x83, 0x1e, 0x52, 0x43, 0x6f, 0x5f, 0x80, 0xd5,
0xc2, 0xd3, 0xed, 0xab, 0xcc, 0x14, 0xae, 0x23, 0xe0, 0x02, 0xdd, 0x33, 0x1e, 0xdf, 0xe7, 0x9b,
0xde, 0xe3, 0xfb, 0x4b, 0xfc, 0x67, 0xba, 0xf1, 0x2f, 0x1e, 0x64, 0x4b, 0x3a, 0xaf, 0xc8, 0xad,
0xeb, 0xb0, 0x5d, 0x37, 0x6c, 0xd2, 0x46, 0xe7, 0xfc, 0x40, 0xdf, 0x93, 0x27, 0x62, 0xfb, 0xde,
0x85, 0xc5, 0x3a, 0xf6, 0xa3, 0xc0, 0x70, 0x92, 0xa9, 0x0d, 0x02, 0xdf, 0xc4, 0x5d, 0x45, 0x09,
0x50, 0x59, 0x71, 0xdd, 0xe9, 0x89, 0x0e, 0xfe, 0x33, 0x92, 0x8e, 0xde, 0x0f, 0x35, 0x5e, 0x67,
0xa3, 0x86, 0x5f, 0x48, 0x28, 0xf7, 0x26, 0x78, 0x90, 0xab, 0x4d, 0xfe, 0x83, 0x7b, 0xe9, 0xd1,
0x2e, 0xac, 0xba, 0xae, 0x76, 0x82, 0x02, 0xf0, 0xf7, 0xec, 0x8c, 0xb8, 0x72, 0x8f, 0x99, 0x2a,
0xff, 0x99, 0xf6, 0x2a, 0x10, 0x9c, 0xf7, 0xce, 0xf0, 0xff, 0xcf, 0xcd, 0xf5, 0x06, 0x0b, 0x4f,
0x56, 0x9c, 0xa8, 0x96, 0xa6, 0xa1, 0xda, 0x4e, 0xad, 0xcb, 0xa6, 0xad, 0x73, 0x9b, 0xea, 0xe1,
0xe0, 0xe1, 0x1e, 0x76, 0xea, 0x44, 0xf7, 0xf0, 0x80, 0xe4, 0xf0, 0xef, 0x53, 0x4d, 0xd2, 0xf3,
0x07, 0xa1, 0x5c, 0xca, 0x52, 0x33, 0x98, 0x43, 0x4d, 0xfb, 0x49, 0x52, 0x19, 0x67, 0x8a, 0x8d,
0x64, 0xd5, 0x21, 0x71, 0x11, 0x3e, 0x9b, 0x8c, 0x5e, 0x71, 0x08, 0x91, 0x45, 0x78, 0xf2, 0x1c,
0x1f, 0x33, 0x58, 0x90, 0xe3, 0x98, 0x4c, 0x39, 0x80, 0x14, 0x48, 0x78, 0x3e, 0x7c, 0xa9, 0x92,
0x26, 0x93, 0xd1, 0x8b, 0x17, 0x3e, 0xd5, 0x7c, 0x6e, 0x27, 0x0e, 0x5f, 0xf9, 0xba, 0xb9, 0x47,
0x2e, 0xb6, 0x89, 0xef, 0x18, 0x2b, 0x1e, 0x1e, 0x4a, 0x92, 0xbd, 0x58, 0x14, 0xf8, 0xb2, 0xfa,
0x22, 0xdc, 0x10, 0x9d, 0xff, 0xb9, 0x07, 0x62, 0xc7, 0x9f, 0xfd, 0x0b, 0xf8, 0x7a, 0x2d, 0x87,
0x5c, 0x7d, 0x9b, 0xf7, 0x6f, 0x7f, 0x57, 0x4c, 0x48, 0x3e, 0xa7, 0x8e, 0x89, 0x5d, 0x0f, 0xed,
0xb1, 0x8b, 0xf1, 0x60, 0x70, 0x19, 0x97, 0x8b, 0xf5, 0x14, 0x5a, 0x5f, 0x0e, 0xde, 0xc6, 0x79,
0x98, 0xa6, 0xe9, 0x55, 0x1c, 0x0d, 0x30, 0x98, 0xc9, 0xe0, 0x26, 0xbe, 0x8a, 0xbd, 0x0a, 0xc2,
0x60, 0x4f, 0xc9, 0xad, 0xab, 0x1d, 0x13, 0x20, 0x64, 0x35, 0xff, 0x99, 0xb4, 0x61, 0x76, 0x00,
0x37, 0x2c, 0x5c, 0xb9, 0x5a, 0x9b, 0x96, 0xce, 0xc5, 0x43, 0xa7, 0x04, 0x0a, 0xe3, 0x88, 0xc0,
0x4f, 0xcb, 0xda, 0x78, 0x55, 0x94, 0x42, 0xca, 0xaa, 0x1c, 0xfd, 0xdf, 0xa7, 0xab, 0x79, 0x9c,
0x2f, 0xc5, 0xcf, 0xd1, 0x34, 0x4d, 0xf9, 0x30, 0x2f, 0x01, 0xe4, 0xc3, 0x7a, 0xf5, 0x76, 0xaa,
0xfe, 0x98, 0xfc, 0x02, 0x4e, 0x70, 0xd8, 0xca, 0x40, 0xab, 0x02, 0x2a, 0xc3, 0x3c, 0x75, 0x8d,
0x33, 0xc7, 0x20, 0x9a, 0x36, 0x4f, 0x6f, 0x1b, 0x52, 0xa1, 0xc7, 0xa3, 0x51, 0x71, 0xaa, 0x70,
0xf1, 0x3b, 0x46, 0x68, 0xb4, 0x15, 0x0a, 0x34, 0xd7, 0x08, 0xeb, 0x60, 0x3b, 0x7b, 0x9a, 0xcf,
0x9d, 0x3d, 0xd1, 0xf4, 0xe9, 0xdb, 0x3e, 0xcf, 0xc9, 0xa4, 0xce, 0xee, 0xd5, 0x6d, 0xeb, 0xb0,
0x27, 0xaf, 0xea, 0x94, 0xbd, 0x6a, 0x8f, 0xaf, 0xa2, 0x29, 0x76, 0x8b, 0x7d, 0xc7, 0x3e, 0xda,
0xe5, 0x8e, 0x9d, 0x5a, 0x1a, 0x7e, 0xc3, 0xa5, 0xba, 0x7a, 0x45, 0xa5, 0x17, 0xd8, 0xf4, 0x16,
0xf8, 0xc2, 0x0e, 0xdb, 0x3e, 0xb1, 0x02, 0x85, 0xf1, 0xb9, 0xd4, 0x69, 0xdb, 0x89, 0x76, 0x2f,
0x0e, 0xcf, 0x06, 0xab, 0xaa, 0xdb, 0xc1, 0xc1, 0xd9, 0x58, 0x64, 0xb7, 0x56, 0xb1, 0xe2, 0xaf,
0xb7, 0x57, 0xf3, 0x0c, 0x1f, 0xab, 0x04, 0xfe, 0x54, 0x92, 0x08, 0xbf, 0x96, 0x82, 0x3c, 0x77,
0xa0, 0xde, 0x6c, 0xd3, 0xa6, 0xf5, 0xe8, 0xb6, 0xb7, 0x3f, 0x1a, 0xb6, 0xb8, 0xbe, 0xa2, 0xaa,
0x27, 0xc3, 0xe8, 0x69, 0xae, 0x20, 0x65, 0x36, 0x34, 0xa4, 0xfa, 0xc5, 0x7d, 0xae, 0xe2, 0x30,
0xec, 0xbf, 0xb1, 0xa3, 0xba, 0x8d, 0x1b, 0x91, 0xd3, 0xdc, 0xd7, 0x09, 0x1a, 0x9d, 0x16, 0x69,
0xb1, 0xd2, 0x57, 0xeb, 0xf6, 0x76, 0xab, 0x24, 0x6d, 0x69, 0x33, 0xe3, 0xf9, 0x4d, 0x43, 0x0e,
0x32, 0x7e, 0xc7, 0x81, 0x9f, 0x1e, 0xb5, 0x72, 0x5b, 0x86, 0x6f, 0x29, 0x7c, 0x65, 0xbd, 0x8a,
0x33, 0x3a, 0x26, 0xb4, 0x6a, 0x23, 0x5b, 0x9a, 0xac, 0xa9, 0x9e, 0x2d, 0xc5, 0x20, 0xfd, 0x8f,
0x4d, 0x6b, 0xb2, 0xca, 0x73, 0x2d, 0xb5, 0xc3, 0x0b, 0x6c, 0x26, 0xe1, 0xba, 0xa0, 0xf7, 0xc7,
0xf3, 0xa2, 0xf5, 0x29, 0x69, 0x7d, 0x53, 0xe7, 0xf9, 0xfd, 0x69, 0xb2, 0xce, 0xbb, 0xee, 0xf3,
0x86, 0x67, 0xdd, 0x8a, 0xed, 0x54, 0x52, 0x5f, 0x5b, 0xd9, 0xa5, 0x09, 0xc2, 0xc1, 0x00, 0x4b,
0xa0, 0x5a, 0xef, 0x97, 0x0f, 0xe2, 0x11, 0x9a, 0x25, 0x95, 0xe2, 0xd7, 0xf7, 0xf6, 0x2b, 0xa5,
0xb5, 0x58, 0x9f, 0x7d, 0x0c, 0x9c, 0x1c, 0xc4, 0x2b, 0x0c, 0xe0, 0xd5, 0x13, 0xa8, 0x70, 0x7c,
0x41, 0xbb, 0x4f, 0x02, 0x8c, 0x44, 0x3f, 0xda, 0x0e, 0x42, 0xdb, 0xed, 0x50, 0x46, 0x87, 0x81,
0x83, 0x3b, 0xf9, 0x8c, 0x9e, 0xaa, 0x97, 0x3f, 0x24, 0x06, 0x89, 0x5f, 0x81, 0x80, 0x70, 0x54,
0x43, 0x14, 0x06, 0xe5, 0x21, 0xd1, 0x5d, 0x1a, 0x53, 0x03, 0x1f, 0x23, 0xe3, 0xbf, 0xd9, 0x97,
0x74, 0x0d, 0xf8, 0x2f, 0x28, 0x2c, 0x6a, 0x35, 0x09, 0xdd, 0x8b, 0xc7, 0x22, 0x12, 0xf5, 0x37,
0x14, 0xc3, 0xab, 0x6e, 0xe3, 0x35, 0xfa, 0x7a, 0x10, 0xd1, 0xc4, 0x8e, 0x8c, 0xaa, 0xe3, 0x97,
0x6a, 0x2f, 0x17, 0x35, 0xdc, 0xa2, 0xdb, 0x91, 0x96, 0x97, 0x20, 0x8b, 0xc2, 0xe2, 0xb1, 0x33,
0xe2, 0x3c, 0xfd, 0xf5, 0xd7, 0x9b, 0x45, 0x14, 0x25, 0xbf, 0xfe, 0x5a, 0x04, 0xd0, 0x38, 0x6d,
0x35, 0x2d, 0xe5, 0x78, 0x42, 0x7e, 0xfd, 0x95, 0xe8, 0x73, 0x6b, 0x99, 0x4e, 0x25, 0xe0, 0x29,
0xe1, 0x53, 0x61, 0x47, 0x7a, 0xcb, 0xfe, 0x37, 0xc9, 0xec, 0x1a, 0xbb, 0xed, 0x91, 0x1f, 0xcb,
0x60, 0x1a, 0x72, 0x30, 0x22, 0xcf, 0x3f, 0xe3, 0x59, 0x3a, 0x37, 0xae, 0xbc, 0xac, 0xe9, 0xfd,
0xf5, 0xbd, 0x23, 0x7c, 0x6b, 0xb1, 0x84, 0x3d, 0x76, 0x01, 0xb2, 0xf5, 0x5e, 0x57, 0x4f, 0x1c,
0xf9, 0x66, 0x36, 0xdc, 0x2f, 0x31, 0x9e, 0x89, 0xc1, 0x76, 0x77, 0x4f, 0x16, 0x47, 0x3e, 0xe3,
0xc4, 0xfb, 0xec, 0xd6, 0x31, 0x1e, 0xb1, 0x0f, 0xe3, 0xec, 0x09, 0xad, 0xd4, 0xa1, 0x37, 0x83,
0x67, 0xb7, 0x40, 0x68, 0xb4, 0xd4, 0x70, 0xe7, 0x7e, 0xd6, 0x2d, 0x9e, 0xce, 0x6e, 0x07, 0x37,
0xbe, 0x7e, 0x33, 0xea, 0xc0, 0xd7, 0xbe, 0xc2, 0xdd, 0xae, 0x24, 0xc1, 0x13, 0x7e, 0xbc, 0xb9,
0xe0, 0x50, 0x06, 0xf4, 0xa2, 0x33, 0x67, 0x1c, 0x03, 0xc9, 0xee, 0xcb, 0x78, 0xa1, 0x7c, 0xcc,
0xe7, 0x35, 0x0c, 0x45, 0xe6, 0xf0, 0xdd, 0x1f, 0x1d, 0x98, 0x84, 0xdf, 0x8b, 0x4f, 0xe4, 0x25,
0x72, 0x56, 0x24, 0x0f, 0x04, 0xdc, 0x32, 0x43, 0xa6, 0x1b, 0x44, 0x10, 0xc5, 0xf2, 0xf2, 0xae,
0xdb, 0xd9, 0xdf, 0x8f, 0x01, 0xb3, 0x12, 0xb0, 0xfd, 0x89, 0x0a, 0x3b, 0x81, 0xa3, 0x1c, 0x01,
0x90, 0xf3, 0x23, 0xe3, 0x4a, 0xfb, 0x25, 0x98, 0x26, 0xf1, 0xea, 0xaa, 0x90, 0xc3, 0xd0, 0x9b,
0x66, 0x5b, 0xc3, 0x73, 0x68, 0x78, 0x4e, 0xa5, 0x76, 0x9e, 0x56, 0xbe, 0xb1, 0xf6, 0x35, 0xad,
0xe1, 0xda, 0x6d, 0x9c, 0x01, 0xc9, 0x47, 0x0e, 0xc6, 0x84, 0x92, 0x15, 0x6a, 0x4f, 0x58, 0xba,
0x22, 0x1e, 0xfe, 0x0f, 0x54, 0x57, 0xea, 0x27, 0xc6, 0x9c, 0x02, 0x12, 0x6c, 0xf9, 0x35, 0x4f,
0x6f, 0x22, 0x60, 0x38, 0x96, 0x21, 0xcc, 0x04, 0x10, 0x3d, 0x5e, 0x94, 0xdd, 0xca, 0xf0, 0x86,
0x32, 0x67, 0x8a, 0x39, 0x0e, 0xff, 0xb6, 0xb4, 0xac, 0x35, 0x67, 0x57, 0xe6, 0x43, 0x3d, 0xba,
0xfa, 0x2d, 0x10, 0xb9, 0x2f, 0x2a, 0x5d, 0x65, 0xf5, 0xae, 0xa4, 0xf7, 0x30, 0x91, 0x6a, 0xab,
0x17, 0xa0, 0xcc, 0xc6, 0x53, 0xfe, 0x3b, 0x8d, 0xb1, 0xea, 0xab, 0x8f, 0xef, 0xe4, 0xad, 0x2c,
0x95, 0x24, 0x1f, 0x5f, 0xf9, 0x93, 0x54, 0x84, 0xae, 0xf7, 0xe9, 0x3a, 0x59, 0xb8, 0x04, 0x68,
0x64, 0x31, 0xbe, 0x65, 0xa5, 0xdf, 0xb8, 0x79, 0x99, 0xba, 0x1b, 0xad, 0x9c, 0x3a, 0x16, 0x23,
0x34, 0xe1, 0xc6, 0x98, 0xa8, 0xcd, 0xa5, 0x45, 0x32, 0x11, 0x03, 0x88, 0x54, 0x5f, 0x29, 0x8e,
0x1a, 0x4a, 0xf5, 0x4d, 0x8c, 0x07, 0x35, 0x5d, 0x93, 0x5a, 0xb6, 0x4c, 0xf0, 0x2b, 0xcc, 0x07,
0x0f, 0x0f, 0x40, 0x82, 0x5d, 0xfb, 0xf5, 0x3a, 0x1b, 0x18, 0x7c, 0x7b, 0x4d, 0xc1, 0xcc, 0x72,
0x68, 0xf5, 0x85, 0x36, 0x89, 0x0d, 0x04, 0x59, 0x22, 0xc9, 0x35, 0xc4, 0x1a, 0xa9, 0x0f, 0xfd,
0x6d, 0x6e, 0x8d, 0x9f, 0x01, 0x6b, 0x35, 0xc7, 0x46, 0x85, 0x8d, 0x5d, 0x22, 0x9d, 0xa6, 0xe6,
0x88, 0xb5, 0x60, 0xd2, 0xd1, 0x0d, 0x10, 0x98, 0xe1, 0xfc, 0x12, 0x4f, 0x47, 0x59, 0x1f, 0x66,
0x07, 0x0a, 0x53, 0xa3, 0x43, 0xf4, 0x9f, 0x5e, 0x97, 0xa9, 0xf7, 0x87, 0x69, 0xd3, 0xac, 0x5b,
0x52, 0xf2, 0x5b, 0xc0, 0xbf, 0xe9, 0xe0, 0xe9, 0xae, 0x33, 0xee, 0xbc, 0xc0, 0x3f, 0x4a, 0xaf,
0x4c, 0x6b, 0xad, 0x41, 0x94, 0xfa, 0xe9, 0x4d, 0x38, 0x62, 0x2f, 0x2b, 0x0e, 0x48, 0x94, 0x82,
0xe3, 0x40, 0xbf, 0x80, 0x74, 0x2e, 0xe8, 0x13, 0xa3, 0x19, 0x75, 0x52, 0xaa, 0xd1, 0xa1, 0x31,
0xbe, 0xcd, 0xf3, 0xe0, 0xae, 0x1f, 0x17, 0xf4, 0x97, 0x1b, 0x69, 0x52, 0xfe, 0x32, 0x82, 0x9d,
0xf1, 0xbb, 0x28, 0xca, 0xba, 0xbc, 0x47, 0xf6, 0x44, 0xbf, 0xdf, 0xc7, 0x80, 0x96, 0xa1, 0x8a,
0x0e, 0x45, 0x24, 0x27, 0x53, 0xe4, 0x2d, 0x8c, 0x0e, 0x10, 0xc9, 0x75, 0x58, 0x59, 0x8f, 0xa2,
0x05, 0x17, 0x43, 0x15, 0xa9, 0x2c, 0xaf, 0x63, 0x62, 0x3d, 0xd2, 0x4b, 0x56, 0x0e, 0x8a, 0xab,
0x12, 0xf3, 0xd6, 0x69, 0x5c, 0xcb, 0x97, 0x5c, 0x95, 0x2e, 0x81, 0xb8, 0x5d, 0xf9, 0x3a, 0xa9,
0xcc, 0xd7, 0x21, 0x59, 0xac, 0xe6, 0x38, 0x8b, 0x9e, 0x16, 0xf5, 0xb5, 0x64, 0x4a, 0xa0, 0x73,
0x47, 0x9c, 0x53, 0x7b, 0xae, 0x5e, 0x0d, 0xf9, 0x5e, 0x50, 0xf6, 0x58, 0xdc, 0x6f, 0xc4, 0x46,
0x09, 0xa0, 0x75, 0xcc, 0x50, 0x91, 0x9e, 0xb0, 0x3b, 0xaa, 0xdc, 0x84, 0xcb, 0x3e, 0x1f, 0xe8,
0xc1, 0xaa, 0xae, 0xbb, 0xda, 0xd8, 0xcf, 0x00, 0x4a, 0xcc, 0x6e, 0x9d, 0x17, 0x35, 0x8b, 0xda,
0xa7, 0xb9, 0x6d, 0x9f, 0x58, 0x01, 0xf1, 0x7e, 0x62, 0xec, 0x4b, 0x5e, 0x1e, 0xcc, 0x66, 0xdf,
0xa3, 0x4a, 0x18, 0xf7, 0x8b, 0x08, 0xd8, 0x3a, 0x9d, 0xd4, 0xa1, 0x19, 0x28, 0x88, 0x7f, 0x2c,
0xcb, 0x26, 0x6a, 0xb5, 0x59, 0x7c, 0x99, 0xa2, 0xbd, 0x48, 0x7a, 0x83, 0x4d, 0xe3, 0xe6, 0x62,
0xd5, 0x70, 0x96, 0x2f, 0x51, 0x86, 0xa3, 0x13, 0x66, 0xb3, 0xc2, 0xb6, 0x2e, 0xd2, 0x35, 0x56,
0x40, 0xb1, 0xe3, 0xa1, 0x1e, 0xa8, 0xf8, 0x3a, 0xdb, 0xb1, 0x34, 0xc1, 0x13, 0xad, 0x66, 0xf5,
0xe2, 0xc7, 0x03, 0xd8, 0xd3, 0xe3, 0xac, 0x3c, 0x11, 0xc7, 0x03, 0x8c, 0xcf, 0x88, 0x7f, 0x17,
0xe5, 0x32, 0x39, 0xf9, 0xbf, 0x4e, 0x14, 0xf6, 0x99, 0xec, 0x94, 0x01, 0x00
};

View File

@ -341,7 +341,6 @@ void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segme
if (errorFlag) root[F("error")] = errorFlag;
root[F("ps")] = currentPreset;
root[F("pss")] = savedPresets;
root[F("pl")] = (presetCyclingEnabled) ? 0: -1;
usermods.addToJsonState(root);
@ -603,7 +602,7 @@ bool serveLiveLeds(AsyncWebServerRequest* request, uint32_t wsClient)
for (uint16_t i= 0; i < used; i += n)
{
olen += sprintf(obuf + olen, "\"%06X\",", strip.getPixelColor(i));
olen += sprintf(obuf + olen, "\"%06X\",", strip.getPixelColor(i) & 0xFFFFFF);
}
olen -= 1;
oappend((const char*)F("],\"n\":"));

View File

@ -51,4 +51,42 @@ bool PinManagerClass::isPinOk(byte gpio, bool output)
#endif
return false;
}
}
#ifdef ARDUINO_ARCH_ESP32
byte PinManagerClass::allocateLedc(byte channels)
{
if (channels > 16 || channels == 0) return 255;
byte ca = 0;
for (byte i = 0; i < 16; i++) {
byte by = i >> 3;
byte bi = i - 8*by;
if (bitRead(ledcAlloc[by], bi)) { //found occupied pin
ca = 0;
} else {
ca++;
}
if (ca >= channels) { //enough free channels
byte in = (i + 1) - ca;
for (byte j = 0; j < ca; j++) {
byte b = in + j;
byte by = b >> 3;
byte bi = b - 8*by;
bitWrite(ledcAlloc[by], bi, true);
}
return in;
}
}
return 255; //not enough consecutive free LEDC channels
}
void PinManagerClass::deallocateLedc(byte pos, byte channels)
{
for (byte j = pos; j < pos + channels; j++) {
if (j > 16) return;
byte by = j >> 3;
byte bi = j - 8*by;
bitWrite(ledcAlloc[by], bi, false);
}
}
#endif

View File

@ -498,7 +498,6 @@ WLED_GLOBAL JsonDocument* fileDoc;
WLED_GLOBAL bool doCloseFile _INIT(false);
// presets
WLED_GLOBAL uint16_t savedPresets _INIT(0);
WLED_GLOBAL int16_t currentPreset _INIT(-1);
WLED_GLOBAL bool isPreset _INIT(false);