diff --git a/Arduino/McLighting/McLighting.ino b/Arduino/McLighting/McLighting.ino index abf3bc7..644b281 100644 --- a/Arduino/McLighting/McLighting.ino +++ b/Arduino/McLighting/McLighting.ino @@ -1,4 +1,8 @@ #include "definitions.h" +// *************************************************************************** +// Load library "ticker" for blinking status led, mqtt send and save state +// *************************************************************************** +#include #include "version.h" // *************************************************************************** @@ -10,10 +14,10 @@ #include #include #include //https://github.com/tzapu/WiFiManager - +#include + #include #include -#include #include //https://github.com/Links2004/arduinoWebSockets #include @@ -25,8 +29,6 @@ GY33_MCU tcs; #endif -#include //https://github.com/bblanchon/ArduinoJson - // MQTT #if defined(ENABLE_MQTT) #if ENABLE_MQTT == 0 @@ -47,12 +49,11 @@ AsyncMqttClient * mqtt_client; WiFiEventHandler wifiConnectHandler; WiFiEventHandler wifiDisconnectHandler; + Ticker mqttReconnectTimer; + Ticker wifiReconnectTimer; #endif -#endif - -#if defined(ARDUINOJSON_VERSION) - #if !(ARDUINOJSON_VERSION_MAJOR == 6 and ARDUINOJSON_VERSION_MINOR >= 8) - #error "Install ArduinoJson v6.8.x or higher" + #if defined(ENABLE_HOMEASSISTANT) + Ticker ha_send_data; #endif #endif @@ -166,21 +167,9 @@ WS2812FX * strip = NULL; } #endif -// *************************************************************************** -// Load library "ticker" for blinking status led, mqtt send and save state -// *************************************************************************** -#include Ticker ticker; -#if defined(ENABLE_MQTT) - #if ENABLE_MQTT == 1 - Ticker mqttReconnectTimer; - Ticker wifiReconnectTimer; - #endif - #if defined(ENABLE_HOMEASSISTANT) - Ticker ha_send_data; - #endif -#endif + void tick() { //toggle state @@ -193,9 +182,6 @@ void tick() { decode_results results; #endif -Ticker settings_save_state; -Ticker settings_save_conf; - // *************************************************************************** // Saved state handling in WifiManager // *************************************************************************** @@ -242,97 +228,22 @@ void saveConfigCallback () { // *************************************************************************** #include "spiffs_webserver.h" -// *************************************************************************** -// Include: Request handlers -// *************************************************************************** -#include "request_handlers.h" - // *************************************************************************** // Include: Custom animations // *************************************************************************** #include "mode_custom_ws2812fx_animations.h" // Add animations in this file -// function to Initialize the strip -void initStrip(uint16_t stripSize = WS2812FXStripSettings.stripSize, char RGBOrder[5] = WS2812FXStripSettings.RGBOrder, uint8_t pin = WS2812FXStripSettings.pin, uint8_t fxoptions = WS2812FXStripSettings.fxoptions ){ - DBG_OUTPUT_PORT.println("Initializing strip!"); -/*#if defined(USE_WS2812FX_DMA) - if (dma != NULL) { - delete(dma); - } -#endif*/ - if (strip != NULL) { - delete(strip); - WS2812FXStripSettings.stripSize = stripSize; - strcpy(WS2812FXStripSettings.RGBOrder, RGBOrder); - WS2812FXStripSettings.pin = pin; - WS2812FXStripSettings.fxoptions = fxoptions; - } - - if (ledstates != NULL) { - delete(ledstates); - } - ledstates = new uint8_t [WS2812FXStripSettings.stripSize]; +// *************************************************************************** +// Include: helper functions +// *************************************************************************** +#include "helper_functions.h" -#if !defined(LED_TYPE_WS2811) - strip = new WS2812FX(stripSize, pin, checkRGBOrder(RGBOrder) + NEO_KHZ800); -#else - strip = new WS2812FX(stripSize, pin, checkRGBOrder(RGBOrder) + NEO_KHZ400); -#endif - // Parameter 1 = number of pixels in strip - // Parameter 2 = Arduino pin number (most are valid) - // Parameter 3 = pixel type flags, add together as needed: - // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) - // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) - // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) - // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) - - // IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across - // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input - // and minimize distance between Arduino and first pixel. Avoid connecting - // on a live circuit...if you must, connect GND first. - strip->init(); - #if defined(USE_WS2812FX_DMA) - initDMA(stripSize); - strip->setCustomShow(DMA_Show); - #endif -//parameters: index, start, stop, mode, color, speed, options - for (uint8_t seg=0; seg < num_segments; seg++) { - (readStateSegmentFS(seg)) ? DBG_OUTPUT_PORT.println("Segment state config FS read Success!") : DBG_OUTPUT_PORT.println("Segment state config FS read failure!"); - strip->setSegment(seg, seg_start, seg_stop , ws2812fx_mode, hex_colors_trans, convertSpeed(ws2812fx_speed), fxoptions); - } - //strip->setSegment(0, 0, (stripSize - 1)/2, ws2812fx_mode, hex_colors_trans, convertSpeed(ws2812fx_speed), fxoptions); - //strip->setSegment(1, ((stripSize - 1)/2) + 1, (stripSize - 1), ws2812fx_mode, hex_colors_trans, convertSpeed(ws2812fx_speed), fxoptions); - strip->setCustomMode(0, F("Autoplay"), myCustomEffect0); - strip->setCustomMode(1, F("Custom WS"), myCustomEffect1); -#if defined(CUSTOM_WS2812FX_ANIMATIONS) - strip->setCustomMode(2, F("TV"), myCustomEffect2); - strip->setCustomMode(3, F("E1.31"), myCustomEffect3); - strip->setCustomMode(4, F("Fire 2012"), myCustomEffect4); - strip->setCustomMode(5, F("Gradient"), myCustomEffect5); - gReverseDirection = (WS2812FXStripSettings.fxoptions & 128); - DBG_OUTPUT_PORT.print("Number of Segments: "); - DBG_OUTPUT_PORT.println(strip->getNumSegments()); - - if (e131 != NULL) { delete(e131); } - e131 = new ESPAsyncE131(END_UNIVERSE - START_UNIVERSE + 1); - float universe_leds = 170.0; // a universe has only 512 (0..511) channels: 3*170 or 4*128 <= 512 - if (strstr(WS2812FXStripSettings.RGBOrder, "W") != NULL) { - //universe_leds = 128.0; - } - float float_enduni = stripSize/universe_leds; - uint8_t END_UNIVERSE = stripSize/universe_leds; - if (float_enduni > END_UNIVERSE) { - END_UNIVERSE = END_UNIVERSE +1; - } - - // if (e131.begin(E131_UNICAST)) // Listen via Unicast - if (e131->begin(E131_MULTICAST, START_UNIVERSE, END_UNIVERSE)) {// Listen via Multicast - DBG_OUTPUT_PORT.println(F("Listening for data...")); - } else { - DBG_OUTPUT_PORT.println(F("*** e131.begin failed ***")); - } -#endif -} +// *************************************************************************** +// Include: other functions +// *************************************************************************** +#include "json_functions.h" +#include "filesystem_functions.h" +#include "request_handlers.h" #if defined(ENABLE_MQTT) void initMqtt() { @@ -713,6 +624,7 @@ void loop() { // *************************************************************************** // Simple statemachine that handles the different modes // *************************************************************************** + if ((mode == OFF) && ((strip->getBrightness() == 0) || !transEffect)) { if(strip->isRunning()) { strip->strip_off(); // Workaround: to be shure, @@ -742,15 +654,6 @@ void loop() { } } } - - if (mode == INIT_STRIP) { - mode = prevmode; - strip->strip_off(); - delay(10); - if(strip->isRunning()) strip->stop(); - initStrip(); - prevmode = INIT_STRIP; - } if (mode == SET) { mode = HOLD; @@ -790,8 +693,16 @@ void loop() { } prevmode = SET; strip->trigger(); - } - + } + + if ((mode == HOLD) || ((mode == OFF) && (strip->getBrightness() > 0) && transEffect)) { + if (ws2812fx_mode == FX_MODE_CUSTOM_0) { + handleAutoPlay(); + } + if(!strip->isRunning()) strip->start(); + strip->service(); + } + if (prevmode != mode) { convertColors(); if (memcmp(hex_colors_trans, strip->getColors(segment), sizeof(hex_colors_trans)) != 0) { @@ -800,13 +711,6 @@ void loop() { } strip->setSpeed(segment, convertSpeed(ws2812fx_speed_actual)); //strip->setBrightness(brightness_actual); - if (prevmode != INIT_STRIP) { // do not save if INIT_STRIP mode was set - #if defined(ENABLE_STATE_SAVE) - if(!settings_save_state.active()) settings_save_state.once(3, tickerSaveState); - #endif - snprintf(last_state, sizeof(last_state), "STA|%2d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d|%3d", prevmode, ws2812fx_mode, ws2812fx_speed, brightness, main_color.red, main_color.green, main_color.blue, main_color.white, back_color.red, back_color.green, back_color.blue, back_color.white, xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); - last_state[sizeof(last_state) - 1] = 0x00; - } #if defined(ENABLE_MQTT) #if ENABLE_MQTT == 0 mqtt_client->publish(mqtt_outtopic, mqtt_buf); @@ -819,22 +723,21 @@ void loop() { #endif #endif } + + prevmode = mode; + #if defined(ENABLE_STATE_SAVE) if (updateState){ - (writeStateFS(updateState)) ? DBG_OUTPUT_PORT.println(" State FS Save Success!") : DBG_OUTPUT_PORT.println("State FS Save failure!"); + (writeStateFS(updateState)) ? DBG_OUTPUT_PORT.println("State FS Save Success!") : DBG_OUTPUT_PORT.println("State FS Save failure!"); + } + if (updateSegState) { + (writeSegmentStateFS(updateSegState, segment)) ? DBG_OUTPUT_PORT.println("Segment State FS Save Success!") : DBG_OUTPUT_PORT.println("Segment State FS Save failure!"); + initStrip(); } if (updateConfig) { (writeConfigFS(updateConfig)) ? DBG_OUTPUT_PORT.println("Config FS Save success!"): DBG_OUTPUT_PORT.println("Config FS Save failure!"); } #endif - - if ((mode == HOLD) || ((mode == OFF) && (strip->getBrightness() > 0) && transEffect)) { - if (ws2812fx_mode == FX_MODE_CUSTOM_0) { - handleAutoPlay(); - } - if(!strip->isRunning()) strip->start(); - strip->service(); - } // Async color transition if (memcmp(hex_colors_trans, strip->getColors(segment), sizeof(hex_colors_trans)) != 0) { @@ -917,7 +820,6 @@ void loop() { } } */ - prevmode = mode; #if defined(ENABLE_REMOTE) handleRemote(); diff --git a/Arduino/McLighting/data/edit.htm b/Arduino/McLighting/data/edit.htm index c8e8727..728b705 100644 --- a/Arduino/McLighting/data/edit.htm +++ b/Arduino/McLighting/data/edit.htm @@ -182,7 +182,9 @@ var mkfile = document.createElement("button"); mkfile.innerHTML = 'MkFile'; document.getElementById(element).appendChild(mkfile); - + var para = document.createElement("text"); + para.innerHTML = " Press Ctrl-S for save, Ctrl-Z for undo, Ctrl-Shift-Z for redo"; + document.getElementById(element).appendChild(para); function httpPostProcessRequest(){ if (xmlHttp.readyState == 4){ if(xmlHttp.status != 200) alert("ERROR["+xmlHttp.status+"]: "+xmlHttp.responseText); diff --git a/Arduino/McLighting/data/edit.htm.gz b/Arduino/McLighting/data/edit.htm.gz index 9466db2..03cc700 100644 Binary files a/Arduino/McLighting/data/edit.htm.gz and b/Arduino/McLighting/data/edit.htm.gz differ diff --git a/Arduino/McLighting/data/index.htm b/Arduino/McLighting/data/index.htm index 647bb87..48bc40b 100644 --- a/Arduino/McLighting/data/index.htm +++ b/Arduino/McLighting/data/index.htm @@ -877,7 +877,7 @@ input[type=number], label{ -
+
+
+
+

selectSeg

+ +
+
+
-

selectCount

- +

selectSegCnt

+
-

selectRGBO

+

selectCount

+ +
+

selectRGBO

-

selectPin

- +

selectPin

+
@@ -983,6 +993,14 @@ input[type=number], label{
+
+

segStart

+ +
+

segStop

+ +
+

selectColors

@@ -1043,6 +1061,9 @@ var language = { white: "White", not_greater: "cannot enter numbers greater than 255", not_less: "cannot enter numbers less than 0", + selectSeg: "Select segment", + segStart: "First LED of selected segment", + segStop: "Last LED of selected segment", wsMessage: "Websocket Message:", selectLanguage: "Select Language:", selectHostname: "Hostname:", @@ -1050,6 +1071,7 @@ var language = { selectMQTTPort: "and Port:", selectMQTTUser: "MQTT Username:", selectMQTTPass: "MQTT Password:", + selectSegCnt: "Number of Segments:", selectCount: "Strip LED Count:", selectRGBO: "RGB Order:", selectPin: "Strip GPIO Pin:", @@ -1099,6 +1121,9 @@ var language = { white: "Wit", not_greater: "Geen nummers hoger dan 255", not_less: "Geen nummers lager dan 0", + selectSeg: "Selecteer segment", + segStart: "Eerste LED van huidige segmenten", + segStop: "Laatste LED van huidige segmenten", wsMessage: "Websocket message:", selectLanguage: "Selecteer Taal:", selectHostname: "Hostname:", @@ -1106,6 +1131,7 @@ var language = { selectMQTTPort: "en Port:", selectMQTTUser: "MQTT gebruikersnaam:", selectMQTTPass: "MQTT wachtwoord:", + selectSegCnt: "Number of Segments:", selectCount: "LED nummer:", selectPin: "Strip GPIO Pin:", selectRGBO: "RGB Order:", @@ -1155,6 +1181,9 @@ var language = { white: "Weiß", not_greater: "Akzeptiere keine Nummern größer 255", not_less: "Akzeptiere keine Nummern kleiner 0", + selectSeg: "Segment wählen", + segStart: "Erste LED des gewählten Segments", + segStop: "Letzte LED des gewählten Segments", wsMessage: "Websocket Message:", selectLanguage: "Sprache auswählen:", selectHostname: "Hostname:", @@ -1162,6 +1191,7 @@ var language = { selectMQTTPort: "und Port:", selectMQTTUser: "MQTT Username:", selectMQTTPass: "MQTT Password:", + selectSegCnt: "Anzahl Segmente:", selectCount: "Strip LED Anzahl:", selectRGBO: "RGB Reihenfolge:", selectPin: "Strip GPIO Pin:", @@ -1281,6 +1311,7 @@ var config = { mqtt_port: 0, mqtt_user: "", mqtt_pass: "", + ws_seg: 1, ws_cnt: 0, ws_rgbo: "", ws_pin: 0, @@ -1289,6 +1320,9 @@ var config = { transitionEffects: true }; var data = { + segment: 0, + start: 0, + stop: 0, mode: 0, color: {w:0, r:0, g:0, b:0, hex:"00000000", w2:0, r2:0, g2:0, b2:0, hex2:"00000000", w3:0, r3:0, g3:0, b3:0, hex3:"00000000"}, brightness: 192, @@ -1341,7 +1375,7 @@ function displayColors(all = false) { } // initial color val numbers when DOM is loaded -function colorNumrVals(){ +function colorNumVals(){ redNumVal.value = red.value; greenNumVal.value = green.value; blueNumVal.value = blue.value; @@ -1447,7 +1481,7 @@ function initcolorSliders(){ displayColors(); initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); // Trigger onChange event to send value redNumVal.dispatchEvent(event); }); @@ -1456,7 +1490,7 @@ function initcolorSliders(){ displayColors(); initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); // Trigger onChange event to send value greenNumVal.dispatchEvent(event); }); @@ -1465,7 +1499,7 @@ function initcolorSliders(){ displayColors(); initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); // Trigger onChange event to send value blueNumVal.dispatchEvent(event); }); @@ -1474,7 +1508,7 @@ function initcolorSliders(){ displayColors(); initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); // Trigger onChange event to send value whiteNumVal.dispatchEvent(event); }); @@ -1482,14 +1516,14 @@ function initcolorSliders(){ bright.addEventListener('input', () => { initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); // Trigger onChange event to send value brightNumVal.dispatchEvent(event); }); speed.addEventListener('input', () => { changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); // Trigger onChange event to send value speedNumVal.dispatchEvent(event); }); @@ -1548,6 +1582,7 @@ function getConfig() { if (typeof res.mqtt_port !== "undefined") config.mqtt_port = res.mqtt_port; if (typeof res.mqtt_user !== "undefined") config.mqtt_user = res.mqtt_user; if (typeof res.mqtt_pass !== "undefined") config.mqtt_pass = res.mqtt_pass; + if (typeof res.ws_seg !== "undefined") config.ws_seg = res.ws_seg; if (typeof res.ws_cnt !== "undefined") config.ws_cnt = res.ws_cnt; if (typeof res.ws_rgbo !== "undefined") { config.ws_rgbo = res.ws_rgbo; @@ -1612,8 +1647,12 @@ function readSettings() { if (typeof(tmpsettings[set]) !== "undefined") settings[set] = tmpsettings[set]; } applySettings(); - if (e && e.substring(0,6) !== "ERROR!") connectAdditionalNodes(); - else console.warn("ERROR loading settings", e); + if (e && e.substring(0,6) !== "ERROR!") { + connectAdditionalNodes(); + } else { + console.warn("ERROR loading settings", e); + saveSettings(); + } }); } function applySettings() { @@ -1684,7 +1723,7 @@ function onSelectColNum(colnum) { white.value = data.color["w" + (colnum > 1 ? colnum : "")]; initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); } function initSettings() { // Add languages to language select @@ -1736,11 +1775,33 @@ function initSettings() { config.mqtt_pass = mqtt_pass.value; ws_send("Cmw" + config.mqtt_pass); }); - var count = document.getElementById("selectcount"); - count.value = config.ws_cnt; - count.addEventListener('change', ()=>{ - config.ws_cnt = count.value; - ws_send("Csc" + config.ws_cnt); + var selsegment = document.getElementById("selectseg"); + for(var i = 0; i < config.ws_seg; i++) { + var option = document.createElement("OPTION"); + option.setAttribute("value", i); + option.innerHTML = i; + selsegment.appendChild(option); + } + selsegment.value = data.segment; + selsegment.addEventListener('change', ()=>{ + data.segment = selsegment.value; + ws_send("Ss" + data.segment); + }); + var num_segments = document.getElementById("selectsegcnt"); + num_segments.value = config.ws_seg; + num_segments.addEventListener('change', ()=>{ + config.ws_seg = num_segments.value; + ws_send("Css" + config.ws_seg); + while (selsegment.firstChild) { + selsegment.removeChild(selsegment.firstChild); + } + for(var i = 0; i < config.ws_seg; i++) { + var option = document.createElement("OPTION"); + option.setAttribute("value", i); + option.innerHTML = i; + selsegment.appendChild(option); + } + selsegment.value = data.segment; }); var pin = document.getElementById("selectpin"); pin.value = config.ws_pin; @@ -1760,6 +1821,28 @@ function initSettings() { config.ws_rgbo = rgbo.value; ws_send("Csr" + config.ws_rgbo); }); + var start = document.getElementById("segstart"); + start.setAttribute("max",config.ws_cnt-1); + start.value = data.start; + start.addEventListener('change', ()=>{ + data.start = start.value; + ws_send("S[" + data.start); + }); + var stop = document.getElementById("segstop"); + stop.setAttribute("max",config.ws_cnt-1); + stop.value = data.stop; + stop.addEventListener('change', ()=>{ + data.stop = stop.value; + ws_send("S]" + data.stop); + }); + var count = document.getElementById("selectcount"); + count.value = config.ws_cnt; + count.addEventListener('change', ()=>{ + config.ws_cnt = count.value; + ws_send("Csc" + config.ws_cnt); + start.setAttribute("max",config.ws_cnt-1); + stop.setAttribute("max",config.ws_cnt-1); + }); var optrev = document.getElementById("selectoptrev"); for (var code in selectoptrev) { var option = document.createElement("OPTION"); @@ -1855,6 +1938,7 @@ function initSettings() { settings.theme_back = colback.value; document.getElementById("container").style.backgroundColor = settings.theme_back; document.getElementById("language").style.backgroundColor = settings.theme_back; + document.getElementById("selectseg").style.backgroundColor = settings.theme_back; document.getElementById("selectrgbo").style.backgroundColor = settings.theme_back; document.getElementById("selectoptrev").style.backgroundColor = settings.theme_back; document.getElementById("selectoptfade").style.backgroundColor = settings.theme_back; @@ -1867,6 +1951,7 @@ function initSettings() { for (var i = 0; i < icons.length; i++) { icons[i].style.color = (yiq >= 125) ? '#222' : '#EEE'; } + document.getElementById("selectSegLbl").style.color = (yiq >= 125) ? '#111' : '#EEE'; document.getElementById("wsmessageLbl").style.color = (yiq >= 125) ? '#111' : '#EEE'; document.getElementById("redNum").style.color = (yiq >= 125) ? '#111' : '#EEE'; document.getElementById("greenNum").style.color = (yiq >= 125) ? '#111' : '#EEE'; @@ -2069,19 +2154,22 @@ function ws_connect() { // document.getElementById('modal').style.display = "none"; // console.log("res", res); if (res) { - // Status starts here if (typeof res.mode !== "undefined") data.mode = res.mode; + if (typeof res.brightness !== "undefined") { + data.brightness = res.brightness; + // init ColorSliderVals + bright.value = res.brightness; + } + // Segment Status starts here + if (typeof res.segment !== "undefined") { data.segment= res.segment; document.getElementById("selectseg").value = data.segment; } + if (typeof res.start !== "undefined") { data.start= res.start; document.getElementById("segstart").value = data.start; } + if (typeof res.stop !== "undefined") { data.stop = res.stop; document.getElementById("segstop").value = data.stop; } if (typeof res.ws2812fx_mode !== "undefined") data.ws2812fx_mode = res.ws2812fx_mode; if (typeof res.speed !== "undefined") { data.speed = res.speed; // init SliderVals speed.value = res.speed; } - if (typeof res.brightness !== "undefined") { - data.brightness = res.brightness; - // init ColorSliderVals - bright.value = res.brightness; - } if (typeof res.color !== "undefined") { data.color.w = res.color[0]; data.color.r = res.color[1]; @@ -2115,7 +2203,7 @@ function ws_connect() { red.value = data.color.r3; green.value = data.color.g3; blue.value = data.color.b3; - white.value = data.color.w3; + white.value = data.color.w3; } } // Config starts here @@ -2124,6 +2212,7 @@ function ws_connect() { if (typeof res.mqtt_port !== "undefined") { config.mqtt_port = res.mqtt_port; document.getElementById("mqtt_port").value = config.mqtt_port; } if (typeof res.mqtt_user !== "undefined") { config.mqtt_user = res.mqtt_user; document.getElementById("mqtt_user").value = config.mqtt_user; } if (typeof res.mqtt_pass !== "undefined") { config.mqtt_pass = res.mqtt_pass; document.getElementById("mqtt_pass").value = config.mqtt_pass; } + if (typeof res.ws_seg !== "undefined") { config.ws_seg = res.ws_seg; document.getElementById("selectsegcnt").value = config.ws_seg; } if (typeof res.ws_cnt !== "undefined") { config.ws_cnt = res.ws_cnt; document.getElementById("selectcount").value = config.ws_cnt; } if (typeof res.ws_rgbo !== "undefined") { config.ws_rgbo = res.ws_rgbo; @@ -2148,6 +2237,7 @@ function ws_connect() { document.getElementById("selectoptgamma").value = (config.ws_fxopt & 8); document.getElementById("selectoptsize").value = (config.ws_fxopt & 6); } + if (typeof res.transEffect !== "undefined") { config.transitionEffects = res.transEffect; document.getElementById("set-transitionEffects").value = config.transitionEffects; } // Modes starts here if (typeof res[0] !== "undefined") { res.forEach(item => { @@ -2157,7 +2247,7 @@ function ws_connect() { }); } // init Color Vals - colorNumrVals(); + colorNumVals(); initSliderColors(); // init Change Range Val changeRangeNumVal(); @@ -2218,6 +2308,8 @@ function select_active_button() { if (arr.indexOf("hidden") === -1) { wsmess.className += " hidden"; } + segments = document.getElementById("segments"); + segments.className = segments.className.replace(/\b hidden\b/g, ""); } if (data.mode >= 1) { document.getElementById(data.ws2812fx_mode).style.backgroundColor = settings.theme_btnsel; @@ -2229,6 +2321,11 @@ function select_active_button() { } else if (data.ws2812fx_mode === 57) { //CUSTOM_WS wsmess = document.getElementById("message"); wsmess.className = wsmess.className.replace(/\b hidden\b/g, ""); + sements = document.getElementById("segments"); + var arr = segments.className.split(" "); + if (arr.indexOf("hidden") === -1) { + segments.className += " hidden"; + } disable_modebuttons(false); disable_color_selection(true); disable_bright_selection(false); @@ -2357,7 +2454,7 @@ function onSelectColor(event) { displayColors(); initSliderColors(); changeRangeNumVal(); - colorNumrVals(); + colorNumVals(); } } function redrawColorPicker() { @@ -2525,7 +2622,7 @@ document.addEventListener("DOMContentLoaded", function(event) { getModes(); readSettings(); ws_connect(); - ws_send("$") + ws_send("$"); document.getElementById("modal-content").innerHTML = language.en.loadModes; //ws_send("C"); getConfig(); diff --git a/Arduino/McLighting/data/index.htm.gz b/Arduino/McLighting/data/index.htm.gz index 50d4637..4383dad 100644 Binary files a/Arduino/McLighting/data/index.htm.gz and b/Arduino/McLighting/data/index.htm.gz differ diff --git a/Arduino/McLighting/definitions.h b/Arduino/McLighting/definitions.h index f74a1ab..74f66a0 100644 --- a/Arduino/McLighting/definitions.h +++ b/Arduino/McLighting/definitions.h @@ -18,6 +18,7 @@ char HOSTNAME[65] = "McLightingRGBW"; // Friedly hostname is configurable just #define ENABLE_OTA 1 // If defined, enable Arduino OTA code. If set to 0 enable Arduino OTA code, if set to 1 enable ESP8266HTTPUpdateServer OTA code. #define ENABLE_MQTT 1 // If defined use MQTT OR AMQTT, if set to 0 enable MQTT client code, see: https://github.com/toblum/McLighting/wiki/MQTT-API, if set to 1, enable Async MQTT code, see: https://github.com/marvinroger/async-mqtt-client //#define ENABLE_MQTT_HOSTNAME_CHIPID // Uncomment/comment to add ESPChipID to end of MQTT hostname +//#define ENABLE_MQTT_INCLUDE_IP // uncomment/comment to add the IP-adress to the MQTT message #define ENABLE_HOMEASSISTANT // If defined, enable Homeassistant integration, ENABLE_MQTT must be active #define MQTT_HOME_ASSISTANT_SUPPORT // If defined, use AMQTT and select Tools -> IwIP Variant -> Higher Bandwidth #define ENABLE_BUTTON 14 // If defined, enable button handling code, see: https://github.com/toblum/McLighting/wiki/Button-control, the value defines the input pin (14 / D5) for switching the LED strip on / off, connect this PIN to ground to trigger button. @@ -30,7 +31,7 @@ char HOSTNAME[65] = "McLightingRGBW"; // Friedly hostname is configurable just #define ENABLE_STATE_SAVE // If defined, load saved state on reboot and save state on SPIFFS #define CUSTOM_WS2812FX_ANIMATIONS // uncomment and put animations in "custom_ws2812fx_animations.h" -//#define USE_HTML_MIN_GZ // uncomment for using index.htm & edit.htm from PROGMEM instead of SPIFFS +#define USE_HTML_MIN_GZ // uncomment for using index.htm & edit.htm from PROGMEM instead of SPIFFS #define TRANS_COLOR_DELAY 5 // Delay for color transition #define TRANS_DELAY 10 // Delay for brightness and speed transition @@ -146,7 +147,7 @@ uint32_t autoParams[][6] = { // main_color, back_color, xtra_color, speed, mod #define DBG_OUTPUT_PORT Serial // Set debug output port // List of all color modes -enum MODE {OFF, HOLD, SET, INIT_STRIP}; +enum MODE {OFF, HOLD, SET}; MODE mode = SET; // Standard mode that is active when software starts MODE prevmode = HOLD; // Do not change @@ -175,8 +176,6 @@ LEDState back_color = { 0, 0, 0, 0 }; // Store the "2nd color" of the strip u LEDState xtra_color = { 0, 0, 0, 0 }; // Store the "3rd color" of the strip used in single color modes bool updateConfig = false; // For WiFiManger custom config and config -char last_state[67]; // Keeps the state representation before auto or off mode -bool updateState = false; // Button handling diff --git a/Arduino/McLighting/filesystem_functions.h b/Arduino/McLighting/filesystem_functions.h new file mode 100644 index 0000000..6128a09 --- /dev/null +++ b/Arduino/McLighting/filesystem_functions.h @@ -0,0 +1,262 @@ +#if defined(ENABLE_STATE_SAVE) + + Ticker save_state; + Ticker save_seg_state; + Ticker save_conf; + + bool updateState = false; + bool updateSegState = false; + + void tickerSaveState(){ + updateState = true; + } + + void tickerSaveConfig(){ + updateConfig = true; + } + + void tickerSaveSegmentState(){ + updateSegState = true; + } + + // Write configuration to FS JSON + bool writeConfigFS(bool save){ + if (save) { + //FS save + DBG_OUTPUT_PORT.println("Saving config: "); + File configFile = SPIFFS.open("/config.json", "w"); + if (!configFile) { + DBG_OUTPUT_PORT.println("Failed!"); + save_conf.detach(); + updateConfig = false; + return false; + } + DBG_OUTPUT_PORT.println(listConfigJSON()); + configFile.print(listConfigJSON()); + configFile.close(); + save_conf.detach(); + updateConfig = false; + return true; + //end save + } else { + DBG_OUTPUT_PORT.println("SaveConfig is false!"); + return false; + } + } + + // Read search_str to FS + bool readConfigFS() { + //read configuration from FS JSON + if (SPIFFS.exists("/config.json")) { + //file exists, reading and loading + DBG_OUTPUT_PORT.print("Reading config file... "); + File configFile = SPIFFS.open("/config.json", "r"); + if (configFile) { + DBG_OUTPUT_PORT.println("Opened!"); + size_t size = configFile.size(); + std::unique_ptr buf(new char[size]); + configFile.readBytes(buf.get(), size); + configFile.close(); + #if defined(ENABLE_MQTT) + const size_t bufferSize = JSON_OBJECT_SIZE(11) + 150; + #else + const size_t bufferSize = JSON_OBJECT_SIZE(7) + 100; + #endif + DynamicJsonDocument jsonBuffer(bufferSize); + DeserializationError error = deserializeJson(jsonBuffer, buf.get()); + DBG_OUTPUT_PORT.print("Config: "); + if (!error) { + DBG_OUTPUT_PORT.println("Parsed!"); + JsonObject root = jsonBuffer.as(); + serializeJson(root, DBG_OUTPUT_PORT); + DBG_OUTPUT_PORT.println(""); + strcpy(HOSTNAME, root["hostname"]); + #if defined(ENABLE_MQTT) + strcpy(mqtt_host, root["mqtt_host"]); + mqtt_port = root["mqtt_port"].as(); + strcpy(mqtt_user, root["mqtt_user"]); + strcpy(mqtt_pass, root["mqtt_pass"]); + #endif + num_segments = constrain(root["ws_seg"].as(), 1, MAX_NUM_SEGMENTS - 1); + WS2812FXStripSettings.stripSize = constrain(root["ws_cnt"].as(), 1, MAXLEDS); + char tmp_rgbOrder[5]; + strcpy(tmp_rgbOrder, root["ws_rgbo"]); + checkRGBOrder(tmp_rgbOrder); + uint8_t temp_pin; + checkPin((uint8_t) root["ws_pin"]); + WS2812FXStripSettings.fxoptions = constrain(root["ws_fxopt"].as(), 0, 255) & 0xFE; + transEffect = root["transEffect"].as(); + jsonBuffer.clear(); + return true; + } else { + DBG_OUTPUT_PORT.print("Failed to load json config: "); + DBG_OUTPUT_PORT.println(error.c_str()); + jsonBuffer.clear(); + } + } else { + DBG_OUTPUT_PORT.println("Failed to open /config.json"); + } + } else { + DBG_OUTPUT_PORT.println("Coudnt find config.json"); + writeConfigFS(true); + } + //end read + return false; + } + + bool writeStateFS(bool save){ + if (save) { + //save the strip state to FS JSON + DBG_OUTPUT_PORT.print("Saving state: "); + //SPIFFS.remove("/stripstate.json") ? DBG_OUTPUT_PORT.println("removed file") : DBG_OUTPUT_PORT.println("failed removing file"); + File configFile = SPIFFS.open("/stripstate.json", "w"); + if (!configFile) { + DBG_OUTPUT_PORT.println("Failed!"); + save_state.detach(); + updateState = false; + return false; + } + DBG_OUTPUT_PORT.println(listStateJSON()); + configFile.print(listStateJSON()); + configFile.close(); + char filename[28]; + save_state.detach(); + updateState = false; + return true; + //end save + } else { + DBG_OUTPUT_PORT.println("SaveState is false!"); + return false; + } + } + + bool readStateFS() { + //read strip state from FS JSON + if (SPIFFS.exists("/stripstate.json")) { + //file exists, reading and loading + DBG_OUTPUT_PORT.print("Reading state file... "); + File configFile = SPIFFS.open("/stripstate.json", "r"); + if (configFile) { + DBG_OUTPUT_PORT.println("Opened!"); + size_t size = configFile.size(); + // Allocate a buffer to store contents of the file. + std::unique_ptr buf(new char[size]); + configFile.readBytes(buf.get(), size); + configFile.close(); + const size_t bufferSize = JSON_OBJECT_SIZE(3) + 50; + DynamicJsonDocument jsonBuffer(bufferSize); + DeserializationError error = deserializeJson(jsonBuffer, buf.get()); + DBG_OUTPUT_PORT.print("Config: "); + if (!error) { + DBG_OUTPUT_PORT.print("Parsed"); + JsonObject root = jsonBuffer.as(); + serializeJson(root, DBG_OUTPUT_PORT); + DBG_OUTPUT_PORT.println(""); + segment = root["segment"]; + mode = static_cast(root["mode"].as()); + brightness = root["brightness"]; + jsonBuffer.clear(); + return true; + } else { + DBG_OUTPUT_PORT.print("Failed to load json config: "); + DBG_OUTPUT_PORT.println(error.c_str()); + jsonBuffer.clear(); + } + } else { + DBG_OUTPUT_PORT.println("Failed to open \"/stripstate.json\""); + } + } else { + DBG_OUTPUT_PORT.println("Couldn't find \"/stripstate.json\""); + writeStateFS(true); + } + //end read + return false; + } + + bool writeSegmentStateFS(bool save, uint8_t seg){ + if (save) { + //save the segment state to FS JSON + DBG_OUTPUT_PORT.print("Saving segment state: "); + char filename[28]; + snprintf(filename, 28, "/stripstate_segment_%02i.json", seg); + filename[27] = 0x00; + File configFile = SPIFFS.open(filename, "w"); + if (!configFile) { + DBG_OUTPUT_PORT.println("Failed!"); + save_seg_state.detach(); + updateSegState = false; + return false; + } + DBG_OUTPUT_PORT.println(listSegmentStateJSON(seg)); + configFile.print(listSegmentStateJSON(seg)); + configFile.close(); + save_seg_state.detach(); + updateSegState = false; + return true; + //end save + } else { + DBG_OUTPUT_PORT.println("SaveSegmentState is false!"); + return false; + } + } + + bool readSegmentStateFS(uint8_t seg) { + //read strip state from FS JSON + char filename[28]; + snprintf(filename, 28, "/stripstate_segment_%02i.json", seg); + filename[27] = 0x00; + if (SPIFFS.exists(filename)) { + //file exists, reading and loading + DBG_OUTPUT_PORT.printf("Reading segmentstate file: %s\r\n", filename); + File configFile = SPIFFS.open(filename, "r"); + if (configFile) { + DBG_OUTPUT_PORT.println("Opened!"); + size_t size = configFile.size(); + // Allocate a buffer to store contents of the file. + std::unique_ptr buf(new char[size]); + configFile.readBytes(buf.get(), size); + configFile.close(); + const size_t bufferSize = JSON_ARRAY_SIZE(12) + JSON_OBJECT_SIZE(7) + 100; + DynamicJsonDocument jsonBuffer(bufferSize); + DeserializationError error = deserializeJson(jsonBuffer, buf.get()); + DBG_OUTPUT_PORT.print("Config: "); + if (!error) { + DBG_OUTPUT_PORT.print("Parsed"); + JsonObject root = jsonBuffer.as(); + serializeJson(root, DBG_OUTPUT_PORT); + DBG_OUTPUT_PORT.println(""); + seg_start = root["start"].as(); + seg_stop = root["stop"].as(); + ws2812fx_mode = root["ws2812fx_mode"].as(); + ws2812fx_speed = root["speed"].as(); + main_color.white = root["color"][0].as(); + main_color.red = root["color"][1].as(); + main_color.green = root["color"][2].as(); + main_color.blue = root["color"][3].as(); + back_color.white = root["color"][4].as(); + back_color.red = root["color"][5].as(); + back_color.green = root["color"][6].as(); + back_color.blue = root["color"][7].as(); + xtra_color.white = root["color"][8].as(); + xtra_color.red = root["color"][9].as(); + xtra_color.green = root["color"][10].as(); + xtra_color.blue = root["color"][11].as(); + convertColors(); + jsonBuffer.clear(); + return true; + } else { + DBG_OUTPUT_PORT.print("Failed to load json config: "); + DBG_OUTPUT_PORT.println(error.c_str()); + jsonBuffer.clear(); + } + } else { + DBG_OUTPUT_PORT.printf("Failed to open \"/%s\"\r\n", filename); + } + } else { + DBG_OUTPUT_PORT.printf("Couldn't find \"/%s\"", filename); + writeSegmentStateFS(true, seg); + } + //end read + return false; + } +#endif diff --git a/Arduino/McLighting/helper_functions.h b/Arduino/McLighting/helper_functions.h new file mode 100644 index 0000000..4562368 --- /dev/null +++ b/Arduino/McLighting/helper_functions.h @@ -0,0 +1,283 @@ +// Prototypes +bool readSegmentStateFS(uint8_t seg); +// End Prototypes + +uint16_t convertSpeed(uint8_t mcl_speed) { + uint16_t ws2812_speed = 61760 * (exp(0.0002336 * mcl_speed) - exp(-0.03181 * mcl_speed)); + ws2812_speed = SPEED_MAX - ws2812_speed; + ws2812_speed = constrain(ws2812_speed, SPEED_MIN, SPEED_MAX); + return ws2812_speed; +} + +uint8_t unconvertSpeed(uint16_t ws2812_speed) { + //log((SPEED_MAX - ws2812_speed)/61760) = (0.0002336 * mcl_speed) - (-0.03181 * mcl_speed); + //log((SPEED_MAX - ws2812_speed)/61760) = (0.0002336 + 0.03181) * mcl_speed; + uint16_t mcl_speed = (log((SPEED_MAX - ws2812_speed)/61760))/ (0.0002336 + 0.03181); + //uint16_t mcl_speed = 61760 * (exp(0.0002336 * mcl_speed) - exp(-0.03181 * mcl_speed)); + mcl_speed = 255 - mcl_speed; + mcl_speed = constrain(mcl_speed, 0, 255); + return mcl_speed; +} + +bool checkPin(uint8_t pin) { + #if defined(USE_WS2812FX_DMA) + #if USE_WS2812FX_DMA == 0 + pin = 3; + #endif + #if USE_WS2812FX_DMA == 1 + pin = 1; + #endif + #if USE_WS2812FX_DMA == 2 + pin = 2; + #endif + #endif + if (((pin >= 0 && pin <= 5) || (pin >= 12 && pin <= 16)) && (pin != WS2812FXStripSettings.pin)) { + WS2812FXStripSettings.pin = pin; + return true; + } + return false; +} + +neoPixelType checkRGBOrder(char rgbOrder[5]) { + for( uint8_t i=0 ; i < sizeof(rgbOrder) ; ++i ) rgbOrder[i] = toupper(rgbOrder[i]) ; + DBG_OUTPUT_PORT.printf("Checking RGB Order: %s ...", rgbOrder); + neoPixelType returnOrder = 0; + if (strcmp(rgbOrder, "GRB") == 0) { + returnOrder = NEO_GRB; + } else if (strcmp(rgbOrder, "GBR") == 0) { + returnOrder = NEO_GBR; + } else if (strcmp(rgbOrder, "RGB") == 0) { + returnOrder = NEO_RGB; + } else if (strcmp(rgbOrder, "RBG") == 0) { + returnOrder = NEO_RBG; + } else if (strcmp(rgbOrder, "BRG") == 0) { + returnOrder = NEO_BRG; + } else if (strcmp(rgbOrder, "BGR") == 0) { + returnOrder = NEO_BGR; + } else if (strcmp(rgbOrder, "WGRB") == 0) { + returnOrder = NEO_WGRB; + } else if (strcmp(rgbOrder, "WGBR") == 0) { + returnOrder = NEO_WGBR; + } else if (strcmp(rgbOrder, "WRGB") == 0) { + returnOrder = NEO_WRGB; + } else if (strcmp(rgbOrder, "WRBG") == 0) { + returnOrder = NEO_WRBG; + } else if (strcmp(rgbOrder, "WBRG") == 0) { + returnOrder = NEO_WBRG; + } else if (strcmp(rgbOrder, "WBGR") == 0) { + returnOrder = NEO_WBGR; + } else if (strcmp(rgbOrder, "GWRB") == 0) { + returnOrder = NEO_GWRB; + } else if (strcmp(rgbOrder, "GWBR") == 0) { + returnOrder = NEO_GWBR; + } else if (strcmp(rgbOrder, "RWGB") == 0) { + returnOrder = NEO_RWGB; + } else if (strcmp(rgbOrder, "RWBG") == 0) { + returnOrder = NEO_RWBG; + } else if (strcmp(rgbOrder, "BWRG") == 0) { + returnOrder = NEO_BWRG; + } else if (strcmp(rgbOrder, "BWGR") == 0) { + returnOrder = NEO_BWGR; + } else if (strcmp(rgbOrder, "GRWB") == 0) { + returnOrder = NEO_GRWB; + } else if (strcmp(rgbOrder, "GBWR") == 0) { + returnOrder = NEO_GBWR; + } else if (strcmp(rgbOrder, "RGWB") == 0) { + returnOrder = NEO_RGWB; + } else if (strcmp(rgbOrder, "RBWG") == 0) { + returnOrder = NEO_RBWG; + } else if (strcmp(rgbOrder, "BRWG") == 0){ + returnOrder = NEO_BRWG; + } else if (strcmp(rgbOrder, "BGWR") == 0) { + returnOrder = NEO_GRBW; + } else if (strcmp(rgbOrder, "GRBW") == 0) { + returnOrder = NEO_GRBW; + } else if (strcmp(rgbOrder, "GBWR") == 0) { + returnOrder = NEO_GBRW; + } else if (strcmp(rgbOrder, "RGBW") == 0) { + returnOrder = NEO_RGBW; + } else if (strcmp(rgbOrder, "RBGW") == 0) { + returnOrder = NEO_RBGW; + } else if (strcmp(rgbOrder, "BRGW") == 0) { + returnOrder = NEO_BRGW; + } else if (strcmp(rgbOrder, "BGRW") == 0) { + returnOrder = NEO_BGRW; + } else { + DBG_OUTPUT_PORT.print("invalid input!"); + uint16_t check = checkRGBOrder(WS2812FXStripSettings.RGBOrder); + if (check != 0) { + returnOrder = static_cast(check); + strcpy(rgbOrder, WS2812FXStripSettings.RGBOrder); + } else { + returnOrder = static_cast(checkRGBOrder(RGBORDER)); + strcpy(rgbOrder, RGBORDER); + } + } + DBG_OUTPUT_PORT.println("success!"); + strcpy(WS2812FXStripSettings.RGBOrder, rgbOrder); + return returnOrder; +} + +// function to Initialize the strip +void initStrip(uint16_t stripSize = WS2812FXStripSettings.stripSize, char RGBOrder[5] = WS2812FXStripSettings.RGBOrder, uint8_t pin = WS2812FXStripSettings.pin, uint8_t fxoptions = WS2812FXStripSettings.fxoptions ){ + DBG_OUTPUT_PORT.println("Initializing strip!"); +/*#if defined(USE_WS2812FX_DMA) + if (dma != NULL) { + delete(dma); + } +#endif*/ + if (strip != NULL) { + strip->strip_off(); + delay(10); + if(strip->isRunning()) strip->stop(); + strip->resetSegments(); + strip->resetSegmentRuntimes(); + delete(strip); + WS2812FXStripSettings.stripSize = stripSize; + strcpy(WS2812FXStripSettings.RGBOrder, RGBOrder); + WS2812FXStripSettings.pin = pin; + WS2812FXStripSettings.fxoptions = fxoptions; + } + + if (ledstates != NULL) { + delete(ledstates); + } + ledstates = new uint8_t [WS2812FXStripSettings.stripSize]; + +#if !defined(LED_TYPE_WS2811) + strip = new WS2812FX(stripSize, pin, checkRGBOrder(RGBOrder) + NEO_KHZ800); +#else + strip = new WS2812FX(stripSize, pin, checkRGBOrder(RGBOrder) + NEO_KHZ400); +#endif + // Parameter 1 = number of pixels in strip + // Parameter 2 = Arduino pin number (most are valid) + // Parameter 3 = pixel type flags, add together as needed: + // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) + // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) + // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) + // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) + + // IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across + // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input + // and minimize distance between Arduino and first pixel. Avoid connecting + // on a live circuit...if you must, connect GND first. + strip->init(); + #if defined(USE_WS2812FX_DMA) + initDMA(stripSize); + strip->setCustomShow(DMA_Show); + #endif + //parameters: index, start, stop, mode, color, speed, options + for (uint8_t seg=0; seg < num_segments; seg++) { + if (seg != segment) { // Read actual segment last + (readSegmentStateFS(seg)) ? DBG_OUTPUT_PORT.println("Segment state config FS read Success!") : DBG_OUTPUT_PORT.println("Segment state config FS read failure!"); + strip->setSegment(seg, seg_start, seg_stop , ws2812fx_mode, hex_colors_trans, convertSpeed(ws2812fx_speed), fxoptions); + } + } + //read actual segment last to set all vars correctly + (readSegmentStateFS(segment)) ? DBG_OUTPUT_PORT.println("Segment state config FS read Success!") : DBG_OUTPUT_PORT.println("Segment state config FS read failure!"); + strip->setSegment(segment, seg_start, seg_stop , ws2812fx_mode, hex_colors_trans, convertSpeed(ws2812fx_speed), fxoptions); + + strip->setCustomMode(0, F("Autoplay"), myCustomEffect0); + strip->setCustomMode(1, F("Custom WS"), myCustomEffect1); + #if defined(CUSTOM_WS2812FX_ANIMATIONS) + strip->setCustomMode(2, F("TV"), myCustomEffect2); + strip->setCustomMode(3, F("E1.31"), myCustomEffect3); + strip->setCustomMode(4, F("Fire 2012"), myCustomEffect4); + strip->setCustomMode(5, F("Gradient"), myCustomEffect5); + gReverseDirection = (WS2812FXStripSettings.fxoptions & 128); + DBG_OUTPUT_PORT.print("Number of Segments: "); + DBG_OUTPUT_PORT.println(strip->getNumSegments()); + + if (e131 != NULL) { delete(e131); } + e131 = new ESPAsyncE131(END_UNIVERSE - START_UNIVERSE + 1); + float universe_leds = 170.0; // a universe has only 512 (0..511) channels: 3*170 or 4*128 <= 512 + if (strstr(WS2812FXStripSettings.RGBOrder, "W") != NULL) { + //universe_leds = 128.0; + } + float float_enduni = stripSize/universe_leds; + uint8_t END_UNIVERSE = stripSize/universe_leds; + if (float_enduni > END_UNIVERSE) { + END_UNIVERSE = END_UNIVERSE +1; + } + + // if (e131.begin(E131_UNICAST)) // Listen via Unicast + if (e131->begin(E131_MULTICAST, START_UNIVERSE, END_UNIVERSE)) {// Listen via Multicast + DBG_OUTPUT_PORT.println(F("Listening for data...")); + } else { + DBG_OUTPUT_PORT.println(F("*** e131.begin failed ***")); + } + #endif +} + + +// Call convertColors whenever main_color, back_color or xtra_color changes. +void convertColors() { + hex_colors_trans[0] = (uint32_t)(main_color.white << 24) | (main_color.red << 16) | (main_color.green << 8) | main_color.blue; + hex_colors_trans[1] = (uint32_t)(back_color.white << 24) | (back_color.red << 16) | (back_color.green << 8) | back_color.blue; + hex_colors_trans[2] = (uint32_t)(xtra_color.white << 24) | (xtra_color.red << 16) | (xtra_color.green << 8) | xtra_color.blue; +} + +uint32_t* convertColors2(uint8_t w, uint8_t r, uint8_t g, uint8_t b, uint8_t w2, uint8_t r2, uint8_t g2, uint8_t b2, uint8_t w3, uint8_t r3, uint8_t g3, uint8_t b3) { + uint32_t hexcolors[3] = {}; + hexcolors[0] = (uint32_t)(w << 24) | (r << 16) | (g << 8) | b; + hexcolors[1] = (uint32_t)(w2 << 24) | (r2 << 16) | (g2 << 8) | b2; + hexcolors[2] = (uint32_t)(w3 << 24) | (r3 << 16) | (g3 << 8) | b3; + return hexcolors; +} + +void getSegmentParams(uint8_t seg) { + seg_start = strip->getSegment(seg)->start;; + seg_stop = strip->getSegment(seg)->stop;; + ws2812fx_mode = strip->getMode(seg); + main_color.white = ((strip->getColors(seg)[0] >> 24) & 0xFF); + main_color.red = ((strip->getColors(seg)[0] >> 16) & 0xFF); + main_color.green = ((strip->getColors(seg)[0] >> 8) & 0xFF); + main_color.blue = ((strip->getColors(seg)[0]) & 0xFF); + back_color.white = ((strip->getColors(seg)[1] >> 24) & 0xFF); + back_color.red = ((strip->getColors(seg)[1] >> 16) & 0xFF); + back_color.green = ((strip->getColors(seg)[1] >> 8) & 0xFF); + back_color.blue = ((strip->getColors(seg)[1]) & 0xFF); + xtra_color.white = ((strip->getColors(seg)[2] >> 24) & 0xFF); + xtra_color.red = ((strip->getColors(seg)[2] >> 16) & 0xFF); + xtra_color.green = ((strip->getColors(seg)[2] >> 8) & 0xFF); + xtra_color.blue = ((strip->getColors(seg)[2] >> 0) & 0xFF); +} + +void calculateColorTransitionSteps() { + //compare all colors and calculate steps + trans_cnt_max = 0; + int calculate_max[4] = {}; + for (uint8_t i=0; i<3; i++){ + for (uint8_t j=0; j<4; j++) { + calculate_max[j] = ((hex_colors[i] >> ((3-j)*8)) & 0xFF) - ((hex_colors_trans[i] >> ((3-j)*8)) & 0xFF); + calculate_max[j] = abs(calculate_max[j]); + trans_cnt_max = max(trans_cnt_max, calculate_max[j]); + } + } +} + +void convertColorsFade() { + if (transEffect) { + if (trans_cnt > 1) { + memcpy(hex_colors, strip->getColors(segment), sizeof(hex_colors)); + DBG_OUTPUT_PORT.println("Color transistion aborted. Restarting...!"); + trans_cnt = 1; + } + calculateColorTransitionSteps(); + } +} + +uint32_t scale_wrgb(uint32_t wrgb, uint8_t level) { + uint8_t w = ((wrgb >> 24) & 0xFF) * level / 255; + uint8_t r = ((wrgb >> 16) & 0xFF) * level / 255; + uint8_t g = ((wrgb >> 8) & 0xFF) * level / 255; + uint8_t b = ((wrgb) & 0xFF) * level / 255; + return (w << 24) | (r << 16) | (g << 8) | b; +} + +uint32_t trans(uint32_t newcolor, uint32_t oldcolor, uint8_t level) { + level = (level * (255/trans_cnt_max)); + newcolor = scale_wrgb(newcolor, level); + oldcolor = scale_wrgb(oldcolor, 255-level); + return newcolor + oldcolor; +} diff --git a/Arduino/McLighting/htm_edit_gz.h b/Arduino/McLighting/htm_edit_gz.h index b1fa888..883cff7 100644 --- a/Arduino/McLighting/htm_edit_gz.h +++ b/Arduino/McLighting/htm_edit_gz.h @@ -1,463 +1,469 @@ #include -#define edit_htm_gz_len 5489 +#define edit_htm_gz_len 5563 static const char edit_htm_gz[] PROGMEM ={ - 0x1f, 0x8b, 0x08, 0x08, 0x10, 0x9c, 0x83, 0x5c, 0x04, 0x00, 0x65, 0x64, - 0x69, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xed, 0x1c, 0x67, 0x7b, 0xf2, - 0x36, 0xf0, 0x7b, 0x7f, 0x85, 0xeb, 0x8e, 0x40, 0x99, 0x21, 0x24, 0x6f, - 0x66, 0x5b, 0x76, 0x12, 0xa0, 0x84, 0x91, 0x84, 0xa4, 0xeb, 0x31, 0xb6, - 0x00, 0x27, 0xc6, 0x76, 0x6c, 0x13, 0x20, 0x69, 0xfa, 0xdb, 0x7b, 0x92, - 0xbc, 0x07, 0x38, 0xa3, 0xf3, 0x29, 0xef, 0x00, 0x4b, 0x77, 0xa7, 0xbb, - 0xd3, 0xe9, 0x74, 0x3a, 0x49, 0x3e, 0xfe, 0xbc, 0xda, 0xa9, 0x0c, 0x6e, - 0x2e, 0x6a, 0xcc, 0xd4, 0x98, 0x49, 0xdf, 0x7e, 0x76, 0x8c, 0xbf, 0x18, - 0x89, 0x93, 0x27, 0x27, 0x2c, 0x92, 0xd9, 0x6f, 0x3f, 0x63, 0x98, 0xe3, - 0x29, 0xe2, 0x04, 0xfc, 0x03, 0x7e, 0x1a, 0xa2, 0x21, 0xa1, 0x6f, 0xfb, - 0x17, 0x67, 0xf5, 0x7a, 0x9f, 0xa9, 0x09, 0xa2, 0xa1, 0x68, 0xc7, 0x39, - 0x52, 0x68, 0x02, 0xe8, 0xc6, 0x4a, 0x42, 0x8c, 0xb1, 0x52, 0xd1, 0x09, - 0x6b, 0xa0, 0xa5, 0x91, 0xe3, 0x75, 0x9d, 0x65, 0x66, 0x48, 0x10, 0xb9, - 0x13, 0x56, 0xe7, 0x35, 0x44, 0x89, 0x92, 0x4f, 0x96, 0x57, 0x64, 0x0c, - 0xd3, 0x46, 0xf2, 0x9c, 0x79, 0x86, 0x42, 0xfa, 0x79, 0xca, 0x88, 0xb2, - 0x80, 0x96, 0x87, 0xcc, 0x4e, 0x3e, 0x7f, 0x64, 0x97, 0xaa, 0x8a, 0x2e, - 0x1a, 0xa2, 0x22, 0x1f, 0x32, 0xdc, 0x48, 0x57, 0xa4, 0xb9, 0x81, 0x9c, - 0x3a, 0x09, 0x8d, 0x8d, 0x43, 0x66, 0x57, 0x5d, 0x3a, 0x45, 0x23, 0x45, - 0x13, 0x90, 0x76, 0xc8, 0x6c, 0xab, 0x4b, 0x06, 0xc0, 0x45, 0x81, 0xf9, - 0xa2, 0x58, 0x2c, 0xba, 0xea, 0x39, 0xfe, 0x7e, 0xa2, 0x29, 0x73, 0x59, - 0xc8, 0xf0, 0x8a, 0xa4, 0x00, 0xe4, 0x17, 0xf5, 0x5d, 0xfc, 0xc7, 0x01, - 0x11, 0x44, 0x5d, 0x95, 0xb8, 0xd5, 0x21, 0x23, 0x2b, 0x32, 0x72, 0x53, - 0x5e, 0x66, 0xf4, 0x29, 0x27, 0x28, 0x8b, 0x43, 0x26, 0x0f, 0x7f, 0xb6, - 0xf3, 0xd0, 0x84, 0x36, 0x19, 0x71, 0x09, 0x26, 0x9f, 0x36, 0xff, 0x66, - 0x8b, 0x4c, 0xd2, 0xc1, 0x18, 0x83, 0x98, 0x19, 0x5d, 0x7c, 0x42, 0xc0, - 0x4e, 0xc1, 0x64, 0xd2, 0xa9, 0x18, 0x73, 0x33, 0x51, 0x82, 0x56, 0x74, - 0x4e, 0xd6, 0x33, 0x3a, 0xd2, 0xc4, 0xb1, 0x0f, 0x60, 0x81, 0xc4, 0xc9, - 0xd4, 0x38, 0x1c, 0x29, 0x92, 0x60, 0xd5, 0xbc, 0x84, 0x69, 0x70, 0x2e, - 0xb9, 0x94, 0x28, 0x89, 0x3a, 0xb4, 0x89, 0x3b, 0xc3, 0xcf, 0xbf, 0xa1, - 0xa8, 0xc0, 0xb8, 0x57, 0x79, 0x9e, 0x82, 0x19, 0xa7, 0x4d, 0x44, 0xd9, - 0x53, 0xa4, 0x72, 0x82, 0x20, 0xca, 0x13, 0x28, 0x5b, 0xc7, 0x01, 0x34, - 0x0a, 0x1c, 0x04, 0x3b, 0x4c, 0x43, 0x12, 0x67, 0x88, 0x8f, 0xc8, 0xd5, - 0x84, 0x28, 0x67, 0x16, 0xa2, 0x60, 0x4c, 0x0f, 0x99, 0xbd, 0xbc, 0x5b, - 0x23, 0xfc, 0x5c, 0xd3, 0xa1, 0x33, 0x00, 0x59, 0x04, 0xb2, 0xda, 0xda, - 0xd6, 0x74, 0x95, 0x93, 0x5d, 0xed, 0xd1, 0x6e, 0xa4, 0xdd, 0x1c, 0xec, - 0x43, 0x51, 0x96, 0x44, 0x19, 0x65, 0x46, 0x92, 0xc2, 0xdf, 0x87, 0xc8, - 0xb5, 0xa7, 0x2e, 0x37, 0x48, 0x76, 0x38, 0x55, 0x1e, 0x91, 0xc6, 0x3c, - 0xbb, 0x2c, 0xc7, 0x6c, 0x6c, 0x3d, 0x86, 0xc9, 0xa6, 0xcd, 0x5e, 0xad, - 0x56, 0xb3, 0x30, 0x6c, 0x34, 0x5d, 0xcf, 0x18, 0x30, 0x32, 0x1e, 0x45, - 0xb4, 0x80, 0x5e, 0x4c, 0xfb, 0x4a, 0x1c, 0xad, 0x3a, 0x1c, 0x47, 0x74, - 0xd8, 0xc6, 0xee, 0x7f, 0xf9, 0x2c, 0xb4, 0x51, 0x51, 0x56, 0xe7, 0x06, - 0xf3, 0x1c, 0x6b, 0xb0, 0x29, 0x2a, 0xc7, 0x8b, 0xc6, 0x0a, 0x9a, 0xdb, - 0x40, 0xf4, 0xd9, 0x63, 0xc6, 0x98, 0x0f, 0x6d, 0xc6, 0x49, 0xcc, 0x36, - 0x1e, 0x92, 0x57, 0x48, 0x13, 0x38, 0x99, 0x4b, 0x33, 0x25, 0x4d, 0xe4, - 0x40, 0xe2, 0x7e, 0x88, 0xf1, 0x67, 0x66, 0xca, 0x53, 0x66, 0x0e, 0x85, - 0x50, 0x21, 0x21, 0xde, 0xf0, 0x1b, 0x32, 0x0c, 0x8c, 0xd1, 0xbd, 0x68, - 0xac, 0x03, 0x71, 0x55, 0xc5, 0xd2, 0x43, 0x84, 0x49, 0xe5, 0xf3, 0xe3, - 0x18, 0x26, 0x1a, 0x49, 0xd1, 0x34, 0x04, 0x87, 0x2e, 0x36, 0x92, 0x8c, - 0x80, 0x78, 0x45, 0xe3, 0xa8, 0x96, 0xc1, 0x98, 0x90, 0x26, 0x89, 0x1b, - 0xf9, 0xa3, 0xfd, 0x94, 0x02, 0xff, 0x3c, 0x42, 0x12, 0x7c, 0xe3, 0x21, - 0x1f, 0x34, 0x03, 0xf2, 0xa7, 0x00, 0x9e, 0x26, 0x16, 0xb5, 0xdf, 0x09, - 0x15, 0xff, 0x88, 0x89, 0xa5, 0x2e, 0xc2, 0x46, 0x3a, 0xac, 0xf0, 0xf0, - 0x70, 0x84, 0xc6, 0x8a, 0x86, 0x98, 0xe7, 0x37, 0xea, 0x8d, 0xf0, 0x76, - 0x08, 0xcc, 0x70, 0x23, 0x09, 0x09, 0xb6, 0xc8, 0x41, 0x72, 0x02, 0x1a, - 0x73, 0x73, 0xc9, 0x08, 0xb1, 0xcf, 0xec, 0x5e, 0xac, 0x36, 0xf8, 0x29, - 0xe2, 0xef, 0x91, 0x70, 0x28, 0x2b, 0x46, 0xc2, 0x6e, 0x30, 0x19, 0xa9, - 0x16, 0xe2, 0x41, 0x3e, 0x52, 0x2f, 0x6e, 0x7f, 0x32, 0xd7, 0xa4, 0x04, - 0x2b, 0x70, 0x06, 0x77, 0x28, 0xce, 0xb8, 0x09, 0xca, 0xa9, 0xf2, 0xe4, - 0x68, 0xc4, 0xe9, 0x68, 0xaf, 0x98, 0x16, 0xaf, 0xca, 0x9d, 0xde, 0x22, - 0xdf, 0x6c, 0x4c, 0x94, 0x12, 0x7c, 0x7e, 0xe8, 0x5f, 0x4e, 0x6b, 0x97, - 0x13, 0xf8, 0x55, 0xc6, 0x8f, 0x95, 0x49, 0xa5, 0x74, 0x83, 0x7f, 0xd4, - 0x3b, 0x68, 0x71, 0x89, 0x7f, 0x34, 0x86, 0xbd, 0xfa, 0xf5, 0x69, 0x6f, - 0x30, 0x2a, 0xdc, 0xe6, 0x85, 0x42, 0x7d, 0x75, 0xdb, 0x2d, 0x97, 0x6f, - 0x1b, 0x07, 0xe2, 0x6d, 0xbf, 0x7c, 0x3e, 0xba, 0xae, 0xcb, 0xb7, 0x57, - 0xe7, 0xd2, 0xcd, 0x75, 0x6f, 0x97, 0xe7, 0x25, 0xe9, 0x02, 0x23, 0xa8, - 0xcb, 0xf3, 0x5e, 0xad, 0x7e, 0x89, 0x7e, 0xd0, 0x74, 0xa9, 0xbd, 0x3d, - 0xcf, 0xe7, 0x4b, 0xdd, 0x49, 0x03, 0x5c, 0xf4, 0x8a, 0x93, 0xea, 0xf5, - 0x4e, 0x33, 0x55, 0x91, 0xce, 0xce, 0x9a, 0xdd, 0xe6, 0xea, 0xe1, 0xf2, - 0xaa, 0xfb, 0x38, 0xa8, 0xd5, 0x76, 0xaa, 0xb3, 0xd2, 0xb4, 0xb5, 0x28, - 0x4d, 0x2f, 0xf7, 0xbb, 0xb7, 0xca, 0x69, 0xb1, 0x54, 0xe8, 0x16, 0x26, - 0xed, 0x7e, 0x9d, 0xe3, 0x51, 0xb1, 0x5d, 0x31, 0xce, 0xf7, 0xfb, 0x17, - 0xe5, 0xfa, 0xa2, 0x74, 0xdf, 0x9b, 0x8b, 0xa7, 0x4d, 0xb5, 0xb4, 0xa7, - 0xf7, 0x7e, 0xc8, 0xb5, 0xe6, 0x9f, 0x9e, 0x1a, 0xbb, 0xe2, 0x76, 0xf1, - 0x9e, 0x37, 0xb8, 0xcb, 0x87, 0x5e, 0x63, 0xda, 0x18, 0xca, 0xf3, 0x83, - 0x4e, 0xee, 0xc2, 0xf8, 0xd4, 0x7e, 0xd2, 0xdb, 0xe2, 0xbd, 0xf4, 0x58, - 0x4f, 0x1d, 0x18, 0x85, 0xfb, 0xeb, 0x41, 0xf5, 0x71, 0x75, 0xa6, 0x95, - 0xf4, 0x52, 0x9e, 0x6b, 0xf6, 0x7a, 0xe2, 0xf6, 0x20, 0x5f, 0xc9, 0x4d, - 0xcf, 0x8b, 0xad, 0xcb, 0x91, 0xb1, 0x9b, 0xdb, 0xd7, 0x7e, 0x50, 0xaf, - 0xaf, 0x24, 0x75, 0xbf, 0xd7, 0xd7, 0x0e, 0xce, 0x8b, 0xf9, 0x51, 0x71, - 0x7f, 0xbc, 0xac, 0x73, 0x83, 0xee, 0x41, 0x6a, 0x6c, 0xec, 0xd7, 0x6e, - 0xf7, 0xda, 0xe7, 0x37, 0xa3, 0x7c, 0xe7, 0x3e, 0x25, 0xc8, 0x37, 0x0d, - 0x75, 0x76, 0x31, 0x19, 0x2e, 0x9a, 0x67, 0xa5, 0xc7, 0xd6, 0x72, 0xff, - 0xf1, 0x66, 0xc8, 0xef, 0x36, 0x84, 0x76, 0xa9, 0x7b, 0x3e, 0xe9, 0xd6, - 0xee, 0xd5, 0xbb, 0xde, 0x60, 0xba, 0xb3, 0x37, 0xe8, 0x17, 0x2e, 0x53, - 0xd5, 0xeb, 0xeb, 0x5c, 0x75, 0xfb, 0xd3, 0xf5, 0xfc, 0x66, 0x32, 0xdb, - 0x57, 0x17, 0xe7, 0xab, 0x9b, 0x6d, 0x59, 0xbd, 0xd5, 0x6f, 0x9b, 0x9d, - 0xe5, 0xd9, 0xac, 0x73, 0xb5, 0x7d, 0x96, 0x9b, 0x16, 0x53, 0x9d, 0xbd, - 0xc7, 0xda, 0x64, 0xb7, 0x51, 0xb9, 0x2d, 0xab, 0x93, 0x59, 0x69, 0x6f, - 0x3a, 0xdc, 0x5f, 0x9c, 0x36, 0x2f, 0x4f, 0xab, 0xbd, 0xf2, 0xb0, 0x7b, - 0x23, 0xf2, 0xdd, 0xa2, 0x26, 0xf1, 0x3b, 0x83, 0x71, 0xfe, 0xaa, 0xad, - 0xef, 0x57, 0x4f, 0xcb, 0xfd, 0xfd, 0xbd, 0x62, 0xbd, 0x70, 0x53, 0xd7, - 0xd5, 0xbb, 0xc9, 0xe5, 0xcd, 0x5d, 0x73, 0x98, 0x2b, 0x3d, 0xed, 0x4c, - 0x74, 0xa1, 0x2b, 0x14, 0x10, 0x2a, 0x9f, 0x2e, 0x66, 0x42, 0xe3, 0x7a, - 0x78, 0xca, 0x4f, 0xca, 0x8d, 0xfe, 0xfd, 0xed, 0xb0, 0x33, 0x54, 0xa6, - 0x7c, 0x6d, 0x88, 0x46, 0x3d, 0xa5, 0xcb, 0x97, 0x26, 0x77, 0x0f, 0x10, - 0x36, 0xfd, 0x70, 0x93, 0x2a, 0x5d, 0xad, 0xe6, 0x3b, 0xb7, 0x3b, 0x7a, - 0xa9, 0xf9, 0x30, 0x6e, 0x2a, 0x8d, 0xb6, 0x8e, 0x16, 0x65, 0x54, 0x3b, - 0xeb, 0x5c, 0x4c, 0xba, 0xcb, 0xe5, 0xc5, 0xf9, 0xd9, 0x1d, 0xdf, 0x38, - 0xdd, 0x7b, 0x30, 0x5a, 0xb9, 0x7c, 0x49, 0x28, 0x55, 0x9f, 0x9a, 0x0d, - 0x79, 0x3e, 0xaf, 0xa6, 0x0a, 0x46, 0xab, 0xf9, 0xa9, 0xbb, 0x5f, 0x9d, - 0x9e, 0x9e, 0x8e, 0x3a, 0xe5, 0xeb, 0x54, 0xb3, 0xf6, 0xc4, 0x9f, 0xb6, - 0xe6, 0x37, 0xfc, 0x7e, 0xa1, 0x7d, 0x5f, 0xbb, 0x44, 0xf7, 0x2d, 0x71, - 0x31, 0x7f, 0xbc, 0x3a, 0x4d, 0x4d, 0xe6, 0xdd, 0x72, 0xf7, 0xa9, 0xd3, - 0x28, 0x0e, 0x85, 0xd2, 0x68, 0xbf, 0xd6, 0xe1, 0x7b, 0xfc, 0x43, 0xf7, - 0xb1, 0x7a, 0x7f, 0x53, 0x10, 0x2b, 0xad, 0xf9, 0xb2, 0x56, 0x39, 0x2f, - 0xee, 0x9c, 0x2b, 0xa3, 0xf6, 0x50, 0x99, 0x1b, 0x0f, 0x8d, 0x49, 0x95, - 0x2b, 0x0c, 0x3e, 0x5d, 0x3e, 0xb4, 0x9a, 0x0b, 0xe3, 0xa0, 0xd9, 0x5b, - 0xcd, 0x97, 0xcd, 0xab, 0xf2, 0xea, 0xe1, 0x6a, 0x38, 0x7c, 0x38, 0x53, - 0x2a, 0x95, 0xcb, 0x4a, 0xe9, 0x61, 0x7a, 0xd9, 0x11, 0x95, 0xc1, 0x75, - 0xe5, 0x53, 0xa3, 0x38, 0xe8, 0xd6, 0x3a, 0xd5, 0x7c, 0xe9, 0x62, 0x55, - 0xc8, 0x7d, 0x6a, 0x14, 0x86, 0xea, 0x7c, 0xfb, 0xbc, 0x98, 0x92, 0x96, - 0xa8, 0x5b, 0x1c, 0x0c, 0xcb, 0xa3, 0xb3, 0x41, 0x55, 0x55, 0xae, 0x90, - 0x04, 0x96, 0x51, 0xbe, 0xaa, 0x8f, 0x16, 0xf3, 0x5d, 0xa5, 0xdd, 0x3e, - 0xbf, 0x2c, 0x4f, 0x95, 0xe1, 0x6a, 0xd7, 0x98, 0x09, 0x3d, 0xbe, 0xbd, - 0x58, 0xcd, 0x2e, 0x0a, 0x9d, 0x56, 0x97, 0x6b, 0xdd, 0x2d, 0x0f, 0x72, - 0x8f, 0x72, 0x59, 0xd9, 0xbb, 0xda, 0x69, 0xee, 0x89, 0x4f, 0xa5, 0xc1, - 0xac, 0x2f, 0xb7, 0xb9, 0x7c, 0xf5, 0xe1, 0xd3, 0x18, 0x69, 0x67, 0xca, - 0xf4, 0x7c, 0xaa, 0x6d, 0xab, 0xf9, 0xed, 0x27, 0x4d, 0x7a, 0x2a, 0x1e, - 0x68, 0xb7, 0xf5, 0x62, 0x07, 0xba, 0xe0, 0xfc, 0x7e, 0x58, 0xd8, 0x79, - 0xbc, 0xea, 0x3e, 0xdd, 0xa8, 0xa9, 0xc5, 0xe8, 0xa6, 0x71, 0x95, 0x6b, - 0xaa, 0xc3, 0xe6, 0xdd, 0x23, 0x0c, 0xe6, 0x7d, 0x43, 0x3f, 0x6b, 0x56, - 0xb4, 0xf6, 0x0f, 0xa5, 0x9b, 0xfa, 0xf2, 0xae, 0xd0, 0x68, 0xf6, 0x77, - 0x6f, 0xaf, 0x97, 0x93, 0x22, 0x5a, 0x34, 0xf5, 0xf3, 0x31, 0xd7, 0x68, - 0x9f, 0xdd, 0xec, 0x36, 0x87, 0x0f, 0x17, 0x4f, 0xfb, 0xad, 0x72, 0xf9, - 0x6e, 0x2f, 0xb5, 0xaa, 0x3e, 0x5e, 0x5d, 0x7c, 0x3a, 0x80, 0x6f, 0x35, - 0x77, 0x50, 0x3f, 0x50, 0xce, 0x96, 0x3b, 0x1d, 0x51, 0x3f, 0xbd, 0x5e, - 0xa0, 0x4f, 0x1d, 0x4e, 0xca, 0x9f, 0x2e, 0x2b, 0x30, 0x88, 0xba, 0x30, - 0x22, 0x6b, 0x67, 0x5d, 0x18, 0x90, 0xb5, 0x33, 0x18, 0x9a, 0xa4, 0x68, - 0x0a, 0xff, 0x9d, 0xe1, 0x0a, 0x5a, 0x54, 0x83, 0xc7, 0x29, 0x85, 0x5d, - 0x54, 0xf7, 0x6b, 0xb9, 0xf2, 0xed, 0xa4, 0x74, 0x91, 0x7f, 0x98, 0x36, - 0xef, 0x76, 0xb4, 0x61, 0xe7, 0x53, 0x09, 0x7f, 0x6a, 0x52, 0x7d, 0x70, - 0xdf, 0x9f, 0x77, 0x67, 0x95, 0x0a, 0x9b, 0x04, 0x4f, 0x9c, 0xd1, 0x90, - 0x8a, 0x38, 0xe3, 0x2d, 0x6e, 0x07, 0x4f, 0x40, 0x71, 0x5d, 0xd1, 0x86, - 0x68, 0x69, 0x4a, 0x03, 0x51, 0x66, 0x7b, 0xcf, 0x1d, 0xb2, 0x11, 0xc8, - 0xf0, 0x2a, 0x98, 0xf5, 0x0c, 0x91, 0xe7, 0xa4, 0x0c, 0x27, 0x89, 0x13, - 0x98, 0x99, 0x66, 0xa2, 0x20, 0x48, 0xb1, 0x26, 0x95, 0x50, 0xff, 0x98, - 0x71, 0xc2, 0x92, 0xed, 0x7d, 0x75, 0xb9, 0x31, 0x00, 0x89, 0x12, 0x93, - 0x84, 0x69, 0x38, 0x22, 0x61, 0x59, 0x87, 0x57, 0x12, 0x8e, 0x9a, 0x02, - 0xf8, 0xa7, 0x54, 0x73, 0x3a, 0xc5, 0xf3, 0x6a, 0x5c, 0xe1, 0xc2, 0xf8, - 0x26, 0x84, 0x32, 0x3b, 0x31, 0x27, 0x66, 0x6b, 0x62, 0x62, 0x52, 0x31, - 0xa6, 0x0e, 0x6f, 0x13, 0x20, 0x44, 0xb0, 0x89, 0xdc, 0x37, 0x0c, 0x0d, - 0x98, 0x18, 0x4e, 0xb8, 0xe3, 0x78, 0x50, 0x00, 0x03, 0x81, 0xd1, 0x0c, - 0x7f, 0xd3, 0x08, 0x49, 0xd1, 0x98, 0xd1, 0x7c, 0x32, 0x16, 0x97, 0xcc, - 0x37, 0x39, 0x13, 0xe7, 0x7b, 0xb2, 0x70, 0x63, 0xe8, 0xba, 0x8d, 0xe1, - 0x64, 0x81, 0x49, 0x58, 0x51, 0x17, 0x0e, 0xe1, 0x05, 0x60, 0x97, 0x47, - 0x19, 0x55, 0x5c, 0x22, 0x29, 0x43, 0x62, 0x99, 0xc3, 0x7c, 0x92, 0xa2, - 0x52, 0x2e, 0x83, 0xb2, 0x39, 0xc5, 0x4e, 0x00, 0xc7, 0xc9, 0x30, 0xdb, - 0x51, 0xe6, 0xcd, 0x12, 0x8b, 0xc3, 0x8c, 0xc9, 0x61, 0xc6, 0xe2, 0x30, - 0x63, 0x72, 0x28, 0xca, 0x63, 0x51, 0x16, 0x0d, 0xc4, 0x6c, 0xeb, 0x44, - 0x50, 0x47, 0x54, 0x93, 0x71, 0x8b, 0xf6, 0x3d, 0x5a, 0x8d, 0x35, 0x6e, - 0x86, 0xf4, 0xd8, 0xa4, 0x6d, 0x1a, 0x6e, 0x56, 0xc7, 0x9a, 0x32, 0x83, - 0x12, 0xa7, 0x32, 0x18, 0x8b, 0xdb, 0x5c, 0xb8, 0x81, 0x0c, 0x25, 0x2e, - 0x96, 0x23, 0x85, 0xbf, 0xe3, 0xbe, 0x98, 0xab, 0x92, 0xc2, 0x09, 0x64, - 0xf1, 0x11, 0x2b, 0x42, 0xf7, 0xaf, 0xf0, 0x34, 0x3a, 0x36, 0x83, 0x6b, - 0xbe, 0xc0, 0xd0, 0x2e, 0xec, 0x47, 0x8e, 0xec, 0x42, 0xd1, 0xae, 0x72, - 0x84, 0xc8, 0x10, 0x42, 0x64, 0x09, 0x1c, 0x6a, 0xf8, 0xa1, 0x6b, 0x32, - 0x5a, 0x88, 0x17, 0x42, 0xfe, 0x25, 0xd7, 0x17, 0xd8, 0x4a, 0x5e, 0x25, - 0xa5, 0x97, 0xe1, 0x91, 0x62, 0x18, 0xca, 0x2c, 0x5a, 0x52, 0x67, 0x9c, - 0x17, 0xf2, 0x84, 0xe5, 0x40, 0x9f, 0x38, 0xe4, 0x1c, 0xa6, 0x10, 0x49, - 0x73, 0xa4, 0x99, 0x2f, 0x54, 0x8d, 0x98, 0xf0, 0x3b, 0x18, 0xb4, 0x7a, - 0x22, 0x06, 0xcb, 0x0e, 0x87, 0x0e, 0x2f, 0x2e, 0x16, 0xd6, 0x68, 0x1b, - 0x6b, 0x36, 0x28, 0xda, 0xae, 0x9f, 0xda, 0x71, 0x0e, 0xd6, 0x87, 0x4e, - 0xde, 0x86, 0xd7, 0x44, 0xd5, 0xb0, 0x32, 0x33, 0xe3, 0xb9, 0xcc, 0x63, - 0xb1, 0x18, 0x18, 0xf8, 0x9c, 0x81, 0xea, 0xa2, 0x84, 0x2e, 0x4d, 0x23, - 0x4c, 0x98, 0xe3, 0x26, 0xcd, 0xe0, 0xce, 0x4a, 0x33, 0x54, 0x3b, 0x49, - 0x87, 0xa1, 0x47, 0x4e, 0x63, 0x96, 0x33, 0xe9, 0xd4, 0x30, 0xd4, 0x23, - 0x77, 0xa1, 0xb9, 0xdc, 0x38, 0x61, 0x04, 0x85, 0x9f, 0x63, 0x0a, 0x59, - 0x4a, 0xbc, 0x46, 0xe9, 0x25, 0x58, 0x52, 0xcf, 0x3a, 0x79, 0x13, 0x8a, - 0x90, 0xc5, 0xb9, 0x24, 0xc0, 0x62, 0xc7, 0xc0, 0x04, 0xeb, 0xaf, 0x9c, - 0x41, 0xe8, 0x2f, 0xaa, 0x12, 0x06, 0x18, 0x73, 0x92, 0x8e, 0xfc, 0xf5, - 0x32, 0x37, 0xc3, 0x75, 0x24, 0xa6, 0x76, 0x90, 0x1d, 0x16, 0x26, 0xc8, - 0x30, 0xdb, 0x2f, 0xaf, 0xce, 0x04, 0x4b, 0xb6, 0x64, 0x96, 0x53, 0x55, - 0x24, 0x0b, 0x95, 0xa9, 0x28, 0x09, 0x09, 0x42, 0x29, 0xe9, 0x95, 0x45, - 0xe5, 0x8c, 0xe9, 0x6b, 0x44, 0xc1, 0xf0, 0x59, 0x51, 0xc0, 0xac, 0xd0, - 0xd1, 0x9c, 0xc1, 0x25, 0xac, 0x17, 0xc0, 0x16, 0x15, 0xaf, 0x0f, 0x7d, - 0x75, 0xb6, 0x24, 0x61, 0x78, 0xe6, 0x1a, 0xe8, 0x8a, 0x93, 0xe6, 0x04, - 0x26, 0xf7, 0x56, 0x51, 0x31, 0x35, 0x9f, 0xa4, 0xa3, 0x39, 0x18, 0xa8, - 0xbc, 0x46, 0x56, 0x0a, 0xe0, 0x16, 0x96, 0x96, 0x64, 0x45, 0x59, 0x46, - 0xda, 0xe9, 0xa0, 0xdd, 0x02, 0xe4, 0x2d, 0x6a, 0x3e, 0x5b, 0x6f, 0xe4, - 0x8b, 0x52, 0xf4, 0x71, 0x36, 0xbb, 0x17, 0x44, 0xed, 0x55, 0x8c, 0x11, - 0x0c, 0x2f, 0x5f, 0xed, 0xfb, 0xaa, 0xa8, 0xbd, 0x95, 0x2d, 0x42, 0x2f, - 0xc0, 0x15, 0x36, 0xd4, 0x57, 0xb2, 0x85, 0x51, 0xfc, 0x7c, 0xe1, 0x41, - 0xf7, 0x76, 0xc6, 0x30, 0x45, 0xd2, 0x04, 0xfc, 0xf5, 0x8d, 0xe9, 0x29, - 0x8c, 0xcc, 0x0b, 0x45, 0x37, 0x2e, 0x34, 0x85, 0x47, 0xba, 0xde, 0x43, - 0x0f, 0x73, 0xa4, 0x1b, 0x09, 0x32, 0x84, 0xed, 0xd1, 0x33, 0x66, 0x12, - 0xe6, 0x20, 0xce, 0x02, 0xfb, 0xc2, 0xaa, 0x6f, 0x70, 0x06, 0x48, 0x75, - 0xc2, 0x14, 0x4d, 0x38, 0x07, 0xd2, 0x06, 0xd4, 0x01, 0x66, 0xae, 0x33, - 0x9f, 0x9f, 0x60, 0xe7, 0x95, 0x64, 0x38, 0x09, 0x69, 0x20, 0x6f, 0xad, - 0xd7, 0xeb, 0xf4, 0x7e, 0x64, 0x53, 0x5e, 0xa8, 0x14, 0xfb, 0x33, 0xc4, - 0x5f, 0x29, 0xa7, 0x0d, 0x5d, 0x55, 0x64, 0x1d, 0x0d, 0xd0, 0x92, 0x0e, - 0x35, 0xe7, 0x83, 0x24, 0xdd, 0x8c, 0x79, 0x9c, 0x0f, 0xf1, 0x3d, 0x80, - 0x34, 0x06, 0xbc, 0xe9, 0x05, 0x18, 0x6d, 0x82, 0x8c, 0x83, 0x47, 0x3c, - 0x00, 0x7c, 0xe8, 0x2f, 0xeb, 0x26, 0xd9, 0xa0, 0xab, 0xa3, 0xc4, 0x3c, - 0x32, 0x9a, 0x3c, 0x42, 0xaf, 0xc8, 0xe0, 0x79, 0x87, 0xed, 0x16, 0x7e, - 0xb2, 0xb5, 0x76, 0x14, 0x84, 0xcc, 0x2a, 0x32, 0xd1, 0x19, 0x96, 0x14, - 0xf1, 0x53, 0xc8, 0xa5, 0x83, 0xe6, 0x22, 0xd4, 0x4e, 0xd1, 0x1d, 0xf3, - 0x81, 0x08, 0x6f, 0x56, 0x05, 0x67, 0x65, 0xb6, 0x56, 0x37, 0x1f, 0x3d, - 0xed, 0xd8, 0x40, 0x66, 0x9f, 0x27, 0xa8, 0x53, 0x48, 0x33, 0x6a, 0x38, - 0x37, 0x00, 0x93, 0x60, 0x2f, 0x2e, 0x07, 0x00, 0xc1, 0xe6, 0xb0, 0xbf, - 0x66, 0x43, 0xe1, 0x74, 0x4c, 0xca, 0x22, 0x0d, 0x10, 0x41, 0x5d, 0xf9, - 0x2c, 0x16, 0xe4, 0xe4, 0x25, 0x91, 0xbf, 0x67, 0x4e, 0x6c, 0x2d, 0x26, - 0x90, 0xcf, 0x8c, 0x5c, 0x1d, 0x93, 0x25, 0x69, 0xfd, 0xce, 0x38, 0xc1, - 0x66, 0xd9, 0x24, 0x98, 0xd2, 0x09, 0x04, 0xaa, 0x49, 0x48, 0x0e, 0x1b, - 0x73, 0x4d, 0x76, 0xf1, 0x63, 0x76, 0xc4, 0x9a, 0x5e, 0x35, 0xe7, 0x9c, - 0x2c, 0xf6, 0x28, 0x97, 0x9a, 0x14, 0x0e, 0xf5, 0xe2, 0x1b, 0xf6, 0xaf, - 0x65, 0x56, 0x42, 0xf2, 0x04, 0x7c, 0xfc, 0x31, 0x53, 0xb0, 0x78, 0xf4, - 0x77, 0x15, 0xf5, 0x3e, 0x0e, 0x8a, 0x97, 0x14, 0xd4, 0x7a, 0x05, 0xfe, - 0x9c, 0x08, 0x4c, 0x5a, 0x0c, 0x00, 0x4a, 0x9c, 0x6e, 0x9c, 0x59, 0xc0, - 0x39, 0x53, 0x3b, 0xf9, 0xb0, 0x86, 0x19, 0xb3, 0x59, 0x8c, 0xa5, 0xcf, - 0x47, 0xba, 0xa1, 0xc1, 0xe4, 0x9e, 0x80, 0x2d, 0x87, 0x30, 0x32, 0x1e, - 0xa5, 0xbd, 0x84, 0xab, 0xd8, 0xeb, 0xc1, 0x5e, 0xfc, 0x5e, 0x3c, 0x96, - 0xda, 0xe8, 0x5c, 0x8b, 0x4d, 0x42, 0x37, 0xf5, 0x46, 0x05, 0xf0, 0x09, - 0x1b, 0x94, 0xe6, 0xe5, 0xdf, 0x35, 0xcc, 0x48, 0x14, 0x91, 0x66, 0x5c, - 0xe2, 0xfe, 0x98, 0xff, 0x39, 0xed, 0x32, 0x81, 0x75, 0xe3, 0xaf, 0xd3, - 0x7f, 0xff, 0x00, 0x24, 0x2d, 0x83, 0xdc, 0x54, 0xda, 0xb7, 0xf5, 0x49, - 0x84, 0x35, 0x63, 0x48, 0x1a, 0x63, 0xf8, 0xe4, 0x23, 0x91, 0x87, 0x1f, - 0x1a, 0xdc, 0x34, 0x00, 0xe6, 0x12, 0xdf, 0x1d, 0xfe, 0x94, 0x4d, 0xfc, - 0xf8, 0x4b, 0xf6, 0xe7, 0x54, 0x32, 0xf9, 0xdd, 0x97, 0xb9, 0x2c, 0x5a, - 0x22, 0x3e, 0x61, 0x91, 0x4a, 0xfe, 0xb8, 0xfd, 0xb3, 0x1f, 0x11, 0x97, - 0x13, 0xcc, 0xec, 0x37, 0xc9, 0x9f, 0xb2, 0x04, 0x33, 0x12, 0xcd, 0x11, - 0x06, 0x07, 0x46, 0xca, 0x98, 0x20, 0xe3, 0x71, 0x44, 0xf2, 0xe5, 0x63, - 0x58, 0x9d, 0x08, 0xc1, 0xe1, 0x84, 0x61, 0x2c, 0x81, 0xbf, 0x65, 0xf6, - 0x93, 0x66, 0x8b, 0xe4, 0xcb, 0x3b, 0x62, 0xf6, 0xbd, 0x33, 0x85, 0x5b, - 0x03, 0x7e, 0x91, 0x5f, 0xc2, 0xd8, 0xc1, 0x4a, 0xd8, 0xc4, 0x0d, 0x80, - 0x10, 0xb5, 0xb3, 0x78, 0x5b, 0x95, 0x4d, 0x12, 0x14, 0xfa, 0xc4, 0x06, - 0x67, 0x39, 0x0f, 0xc2, 0x9d, 0x8a, 0x26, 0x26, 0x02, 0x79, 0x9a, 0xb0, - 0x51, 0xdc, 0x3a, 0x3f, 0x53, 0x0c, 0x78, 0x1a, 0xf8, 0x1f, 0x90, 0xd6, - 0x70, 0xef, 0x98, 0x2b, 0x6d, 0x29, 0xc7, 0x32, 0xbf, 0xfd, 0xe6, 0x32, - 0xe2, 0x08, 0x6f, 0xe4, 0x13, 0xce, 0x45, 0x85, 0xd0, 0x48, 0x59, 0x5c, - 0x78, 0x5a, 0xa6, 0x72, 0x45, 0x63, 0x3a, 0x0f, 0xde, 0xce, 0x59, 0xc7, - 0x4e, 0x6a, 0x3b, 0x69, 0x37, 0x16, 0x73, 0x09, 0xed, 0x9b, 0xe4, 0x07, - 0x10, 0x3d, 0x58, 0x81, 0x53, 0xc4, 0x0a, 0xc6, 0x5a, 0x68, 0x9d, 0x44, - 0x06, 0x5e, 0xac, 0x09, 0xc2, 0x7a, 0x03, 0x40, 0x12, 0x9a, 0xf4, 0x14, - 0x65, 0xdd, 0x4a, 0x47, 0x10, 0x1f, 0x5d, 0x58, 0x16, 0x06, 0x80, 0x81, - 0xa8, 0xfa, 0x0f, 0x66, 0xa0, 0xef, 0xce, 0x9a, 0xbc, 0x35, 0x9e, 0xb7, - 0x28, 0x47, 0x44, 0x82, 0x78, 0x02, 0xad, 0x2a, 0x0b, 0x19, 0x7f, 0x13, - 0xb3, 0x20, 0x4a, 0xd8, 0xd4, 0xd2, 0x96, 0x60, 0xa2, 0x64, 0x48, 0x66, - 0x65, 0x2b, 0x99, 0xd5, 0x35, 0xde, 0xec, 0xca, 0x14, 0xfb, 0x9d, 0x55, - 0x7b, 0x62, 0x68, 0x73, 0xf7, 0x82, 0xed, 0x25, 0x92, 0x85, 0x0b, 0xaa, - 0xc8, 0xf8, 0x1c, 0xb0, 0xb4, 0xcb, 0x58, 0x68, 0x19, 0x2f, 0x61, 0xb3, - 0x66, 0xde, 0x12, 0x6b, 0x0d, 0xef, 0x5a, 0xb9, 0x47, 0x8a, 0xd5, 0x91, - 0x41, 0x48, 0x92, 0xdc, 0x0c, 0x03, 0xf5, 0x06, 0xe2, 0xc7, 0xe2, 0x6c, - 0xc2, 0x80, 0x80, 0x27, 0xec, 0x56, 0x8a, 0x48, 0xb8, 0xc5, 0x32, 0x84, - 0xd6, 0x09, 0x3b, 0xe3, 0x96, 0xe6, 0x2e, 0xf6, 0x76, 0x3e, 0xff, 0xd5, - 0x11, 0x03, 0xcf, 0x66, 0xba, 0x84, 0x16, 0x58, 0xe9, 0x43, 0x6e, 0x6e, - 0x28, 0x47, 0x76, 0x72, 0x95, 0x26, 0x55, 0x59, 0x26, 0xf7, 0xed, 0xd6, - 0x06, 0xe5, 0xe0, 0x81, 0x2d, 0xd5, 0x15, 0x09, 0x56, 0xdd, 0x78, 0x4b, - 0x39, 0x81, 0x93, 0xbb, 0x8e, 0x8e, 0x1c, 0x93, 0xc3, 0xbb, 0xbd, 0xeb, - 0xcc, 0x6d, 0x2e, 0x79, 0xe7, 0x1b, 0x24, 0x79, 0x8c, 0x04, 0x63, 0x27, - 0xfd, 0x7e, 0x9a, 0x23, 0x1c, 0xac, 0x21, 0x2a, 0x89, 0x5e, 0xa2, 0x98, - 0x8a, 0x87, 0x2c, 0xa5, 0x10, 0x20, 0x2c, 0xea, 0x15, 0x9a, 0xd7, 0x5c, - 0x33, 0xb4, 0x88, 0x90, 0x59, 0x33, 0xff, 0x19, 0x9c, 0x7a, 0x54, 0x59, - 0x78, 0x0f, 0x63, 0x84, 0x40, 0xd2, 0x37, 0xc3, 0x98, 0x6c, 0x05, 0x7c, - 0x38, 0x01, 0xf6, 0x58, 0x04, 0x7b, 0x8c, 0x53, 0xea, 0xdf, 0x56, 0x14, - 0x49, 0xe2, 0x54, 0x1d, 0x1d, 0xe7, 0xc8, 0x23, 0x7b, 0x14, 0x44, 0xdb, - 0x1c, 0x3b, 0xc1, 0x27, 0x9e, 0x12, 0x02, 0xf9, 0x0d, 0x87, 0x73, 0x1b, - 0x7f, 0xa4, 0x08, 0x2b, 0x17, 0x11, 0xbd, 0xbc, 0xaa, 0x58, 0xfe, 0x24, - 0xb1, 0xe5, 0x3a, 0x9a, 0xb0, 0x95, 0xb4, 0xe7, 0x47, 0x1c, 0x0e, 0x78, - 0xf1, 0x35, 0x34, 0x83, 0xcd, 0x6a, 0x53, 0x51, 0x92, 0x7f, 0x2d, 0x65, - 0x3d, 0x3a, 0xbd, 0x81, 0xd7, 0x60, 0xfa, 0xf4, 0x15, 0xdd, 0x11, 0xd2, - 0x21, 0x94, 0x86, 0x0f, 0x8a, 0x16, 0x86, 0x69, 0xbe, 0x47, 0x97, 0x7d, - 0x8e, 0xe2, 0x83, 0x68, 0xf1, 0x34, 0x4f, 0x86, 0x0e, 0xe2, 0xc6, 0x1b, - 0x2d, 0x51, 0xe5, 0x34, 0x28, 0xf8, 0x41, 0x11, 0xc2, 0xf4, 0x8f, 0x29, - 0x64, 0x79, 0x2c, 0x08, 0x00, 0xb8, 0x83, 0x2d, 0x66, 0x27, 0x49, 0xc8, - 0xbb, 0x75, 0xea, 0x87, 0xfe, 0xb1, 0xf0, 0x73, 0xd2, 0x47, 0x93, 0x44, - 0xb0, 0x0d, 0x64, 0x10, 0x50, 0x73, 0xc0, 0xff, 0x83, 0xba, 0xdd, 0x9c, - 0xd2, 0x63, 0x8e, 0x92, 0xda, 0x12, 0xfe, 0x17, 0xfe, 0xb2, 0x31, 0x82, - 0xa7, 0x9c, 0xa3, 0xff, 0x7b, 0xf9, 0x03, 0x7a, 0xd9, 0xe7, 0x74, 0x49, - 0xd2, 0xf2, 0x5d, 0x5e, 0x97, 0x52, 0xf0, 0xc0, 0x90, 0xa2, 0x50, 0xb3, - 0x21, 0xd9, 0x42, 0xdb, 0x6c, 0x02, 0x38, 0xb1, 0xac, 0xc6, 0x4a, 0xd3, - 0xd6, 0xa4, 0x35, 0x3d, 0xef, 0xce, 0xc6, 0xda, 0x02, 0x38, 0xea, 0xa7, - 0xf8, 0xa1, 0x8e, 0x03, 0xa2, 0xd5, 0x0b, 0x9a, 0x04, 0xa6, 0x40, 0x34, - 0x58, 0x0d, 0xe9, 0x42, 0x13, 0x30, 0x18, 0x55, 0x1f, 0x33, 0xdb, 0x49, - 0x0f, 0xb2, 0x15, 0x43, 0x99, 0x18, 0x3e, 0x5a, 0x64, 0xdc, 0x85, 0xc1, - 0x3b, 0x81, 0x73, 0x64, 0x5b, 0x49, 0x2f, 0x4d, 0xa7, 0x97, 0xff, 0x2e, - 0x73, 0x7b, 0x09, 0x24, 0x53, 0x90, 0x84, 0x13, 0x9e, 0xef, 0xb1, 0x30, - 0x93, 0x84, 0x07, 0xc8, 0x2c, 0x0b, 0xb3, 0xb1, 0x2a, 0x44, 0xcc, 0x86, - 0x3d, 0x7d, 0xfb, 0x91, 0x62, 0xa5, 0xb7, 0xe8, 0x28, 0xa6, 0x84, 0xcc, - 0xdc, 0xf9, 0x3f, 0x41, 0xa3, 0x91, 0xc1, 0x24, 0x11, 0xeb, 0xbf, 0x11, - 0x4a, 0x92, 0x90, 0x0d, 0x67, 0x8b, 0x41, 0x24, 0x53, 0xf7, 0xbe, 0xae, - 0xa1, 0x48, 0x61, 0x3d, 0x8f, 0xcf, 0x2d, 0xdb, 0xfd, 0x1e, 0xc0, 0x89, - 0x93, 0xf3, 0x0a, 0x49, 0x42, 0xfe, 0xe3, 0x3c, 0x38, 0xf1, 0x17, 0x54, - 0x4f, 0x67, 0xf8, 0x30, 0xd9, 0x1b, 0x14, 0x65, 0x2e, 0xcc, 0xde, 0xaf, - 0x2b, 0xd7, 0x2a, 0xef, 0x9f, 0xa7, 0x28, 0x9f, 0xb9, 0xe2, 0xf5, 0xeb, - 0x7b, 0x27, 0x3b, 0x8b, 0x86, 0x07, 0xca, 0x2a, 0x0c, 0x75, 0x46, 0x66, - 0x9d, 0xa5, 0x6a, 0x3f, 0x5e, 0xdc, 0x49, 0xcf, 0xbd, 0xa2, 0xff, 0x07, - 0x79, 0xa4, 0xff, 0x7d, 0xfc, 0x47, 0x6b, 0x34, 0xdc, 0xc7, 0xeb, 0x53, - 0x65, 0x51, 0x71, 0xda, 0x49, 0x20, 0xea, 0xe5, 0xd3, 0xb0, 0xea, 0x26, - 0x1b, 0x82, 0xcf, 0x81, 0x2d, 0x8c, 0x47, 0x0a, 0xfe, 0x8a, 0x6c, 0x15, - 0xc1, 0xc4, 0x47, 0x82, 0x60, 0x01, 0x3c, 0x50, 0x20, 0x5f, 0xef, 0xe3, - 0xdf, 0xa9, 0xf9, 0x2e, 0xb2, 0xe6, 0xd0, 0xa9, 0xb1, 0x7e, 0x98, 0xcd, - 0x39, 0x40, 0xe1, 0x2d, 0xb6, 0xe0, 0x70, 0x44, 0xb0, 0x49, 0xa7, 0xea, - 0xbb, 0xc8, 0xaa, 0xcd, 0x8d, 0x62, 0x28, 0x7f, 0xab, 0x12, 0x6d, 0x0f, - 0x65, 0xc1, 0x4c, 0x00, 0x72, 0x08, 0xd9, 0xd5, 0x48, 0x60, 0x7c, 0xe2, - 0xc3, 0x05, 0x7b, 0x43, 0x60, 0x83, 0xd2, 0x38, 0x5a, 0xf7, 0x66, 0xfc, - 0x3c, 0x16, 0x12, 0x0e, 0x1f, 0xc8, 0x62, 0x6d, 0x91, 0x6c, 0xd2, 0x7a, - 0x68, 0x53, 0x04, 0xfc, 0x05, 0x1c, 0x6d, 0xa9, 0xcb, 0xf5, 0xe0, 0x54, - 0x08, 0xf8, 0xdf, 0x06, 0xf6, 0x18, 0xbb, 0x69, 0x49, 0xde, 0x70, 0xc2, - 0x21, 0x12, 0x5c, 0xca, 0xd0, 0x79, 0xc8, 0x49, 0x65, 0x6d, 0x46, 0xf0, - 0xf4, 0xa0, 0x67, 0xf8, 0x3b, 0x68, 0x01, 0x83, 0x24, 0x89, 0x38, 0xe6, - 0xc4, 0x2d, 0x8f, 0x32, 0x1e, 0xeb, 0xc8, 0xb8, 0xc6, 0x15, 0x7e, 0x68, - 0x9a, 0xa6, 0x0b, 0x03, 0x3f, 0x25, 0x35, 0x11, 0x1a, 0x52, 0xe4, 0x99, - 0x02, 0x77, 0x0a, 0xe0, 0x20, 0x6c, 0xd0, 0x61, 0x78, 0xb4, 0xe4, 0xd8, - 0xcb, 0x31, 0x51, 0x3c, 0xce, 0xb0, 0x3b, 0x65, 0xdf, 0x32, 0x09, 0xda, - 0x1b, 0x94, 0xeb, 0xa4, 0xbb, 0xf6, 0x06, 0x30, 0x40, 0xf9, 0x9e, 0x22, - 0x8c, 0x40, 0x3a, 0xc4, 0xe4, 0x1b, 0x66, 0xf0, 0xbf, 0x72, 0xfe, 0xf4, - 0x69, 0xdd, 0xf9, 0xbc, 0xbc, 0xc6, 0x37, 0x39, 0xa9, 0xf7, 0x16, 0xe2, - 0xe8, 0xd2, 0x2a, 0x4d, 0x36, 0x5a, 0xd2, 0x0c, 0xbe, 0x1b, 0x15, 0x8c, - 0x44, 0x01, 0xea, 0x35, 0x53, 0x05, 0x80, 0xd3, 0x13, 0x36, 0x89, 0x04, - 0x21, 0xce, 0xd0, 0xbd, 0x8d, 0xe4, 0x77, 0x2c, 0x7b, 0x48, 0x4c, 0x2c, - 0x05, 0x4f, 0x29, 0xb2, 0xc1, 0x04, 0x36, 0xde, 0x52, 0x16, 0x48, 0xab, - 0xc0, 0xd1, 0xfa, 0x84, 0xdf, 0x92, 0xe8, 0x69, 0xcb, 0x35, 0x2d, 0xe3, - 0xc9, 0xc4, 0xd3, 0x36, 0xc5, 0xc8, 0x62, 0x05, 0x55, 0xe8, 0xd1, 0x52, - 0x73, 0x0b, 0xc9, 0xd3, 0x4e, 0x80, 0x5b, 0x8f, 0x65, 0x13, 0x12, 0x01, - 0x90, 0x38, 0xd3, 0x93, 0x37, 0x12, 0x36, 0xd5, 0x90, 0xdc, 0x10, 0xae, - 0x5a, 0x70, 0xa4, 0xc5, 0x0d, 0x41, 0xa3, 0x0d, 0xbb, 0x2e, 0xac, 0xb3, - 0x80, 0xe2, 0x59, 0x88, 0x2d, 0x9d, 0x69, 0x8e, 0xa0, 0xd8, 0xf9, 0x3a, - 0x19, 0x51, 0x16, 0xe7, 0xe6, 0x41, 0xb1, 0x55, 0x7a, 0xd2, 0xc9, 0x52, - 0xa6, 0x53, 0xaf, 0xc3, 0xf8, 0x80, 0x2d, 0x5f, 0x95, 0x9b, 0x90, 0x93, - 0xa4, 0x3e, 0x80, 0xb0, 0x89, 0xd1, 0x64, 0x38, 0x4d, 0x92, 0x46, 0xfe, - 0x69, 0xd6, 0xbf, 0x69, 0x4d, 0xa0, 0xe3, 0x5b, 0x78, 0x59, 0xe3, 0x60, - 0x8f, 0xd6, 0x63, 0xe3, 0xd6, 0xcd, 0x92, 0xf7, 0xda, 0x39, 0x46, 0x21, - 0x09, 0xaf, 0xd7, 0x1c, 0x3f, 0x63, 0x28, 0x8a, 0x7d, 0xc0, 0x8c, 0x3c, - 0xc1, 0x45, 0x46, 0x36, 0x00, 0xf2, 0xfe, 0x21, 0xe4, 0xec, 0x8f, 0xda, - 0xb7, 0x77, 0x3e, 0xc7, 0x74, 0xec, 0x5d, 0x52, 0x96, 0xf9, 0xfa, 0x6b, - 0x47, 0x1d, 0x66, 0xb3, 0xd6, 0x33, 0xe6, 0xce, 0xfa, 0xcd, 0xae, 0x1d, - 0x31, 0x04, 0xef, 0xd5, 0x83, 0x97, 0xd4, 0x87, 0x8d, 0x5e, 0xd8, 0x77, - 0x07, 0x34, 0x4b, 0x07, 0x7f, 0xfa, 0xe8, 0x26, 0x0d, 0xc5, 0xd8, 0xc9, - 0x27, 0xfa, 0xa4, 0xc0, 0xbc, 0xb5, 0x41, 0xf1, 0x97, 0x67, 0x27, 0x49, - 0xcb, 0xaf, 0x19, 0xdc, 0x58, 0xdc, 0x98, 0xbe, 0xeb, 0xf3, 0xf5, 0xc2, - 0xd9, 0xb5, 0x4e, 0x86, 0xf7, 0x6f, 0x48, 0xcf, 0x92, 0xf6, 0x23, 0xdd, - 0xe5, 0x1a, 0x9e, 0x9d, 0x9d, 0x9b, 0xb8, 0xaa, 0xfb, 0xdb, 0xfd, 0xa2, - 0x25, 0x6b, 0x9a, 0xf0, 0xed, 0xf3, 0x8c, 0x6f, 0x73, 0x8c, 0x70, 0x04, - 0xb9, 0x05, 0x2b, 0xb9, 0x04, 0xcd, 0xb0, 0xdb, 0x6b, 0x12, 0x03, 0xcd, - 0xf4, 0xf7, 0x26, 0xa0, 0x28, 0xc9, 0xcd, 0x49, 0x28, 0x09, 0x9c, 0x02, - 0x69, 0xd1, 0xb2, 0x0d, 0xdf, 0x41, 0x9f, 0x04, 0xd9, 0x9b, 0x04, 0x98, - 0xfc, 0x11, 0x7c, 0x1d, 0x03, 0x3c, 0x7c, 0xa7, 0x52, 0xc1, 0x9c, 0x32, - 0x21, 0x62, 0xd1, 0xfa, 0x51, 0xfc, 0xf9, 0x28, 0x14, 0xa0, 0x26, 0x05, - 0x56, 0x89, 0xb8, 0xd8, 0x74, 0xc0, 0x27, 0xd6, 0x71, 0x66, 0xbf, 0xb9, - 0x9b, 0xb8, 0x40, 0x3e, 0x34, 0x5a, 0x22, 0x24, 0xb0, 0xeb, 0x31, 0x7f, - 0xe2, 0xb8, 0x29, 0x9e, 0x49, 0x5a, 0x74, 0x03, 0x73, 0x94, 0x8f, 0x72, - 0x80, 0xdc, 0xfa, 0x9d, 0x3b, 0x4a, 0x36, 0xc4, 0x44, 0x36, 0x18, 0x84, - 0x3f, 0x75, 0xf7, 0xfc, 0x9a, 0xe3, 0x45, 0x18, 0x83, 0x9c, 0x11, 0x7a, - 0xd3, 0xa1, 0x1c, 0x7d, 0x21, 0x1a, 0x20, 0x36, 0x80, 0x05, 0x7d, 0x0d, - 0x38, 0x72, 0x38, 0x7c, 0x0d, 0x67, 0xaf, 0x0f, 0x43, 0x6a, 0xc8, 0xa9, - 0x9d, 0xe8, 0x1a, 0x29, 0xa2, 0xea, 0x4e, 0x8f, 0xac, 0x50, 0xe4, 0x88, - 0x2a, 0x3e, 0xaa, 0x99, 0x28, 0x78, 0x55, 0x8d, 0xaa, 0xd1, 0xa3, 0x9a, - 0x5f, 0x06, 0x38, 0x76, 0x06, 0x35, 0xf1, 0xb2, 0x71, 0x8e, 0xd1, 0x5a, - 0x08, 0xa6, 0x8b, 0xdb, 0xd8, 0xeb, 0x24, 0xa6, 0xfc, 0x67, 0x76, 0x3b, - 0x5c, 0xb5, 0x8d, 0xea, 0x28, 0x35, 0xaa, 0x66, 0x22, 0x8e, 0x23, 0x6a, - 0x44, 0x5e, 0xf9, 0x8b, 0xb4, 0x6b, 0x4c, 0x45, 0xdd, 0x7d, 0x12, 0xda, - 0x35, 0x5d, 0x58, 0x4a, 0xf6, 0x6e, 0x69, 0xf9, 0xf7, 0x87, 0xb6, 0x72, - 0x5b, 0x64, 0x2f, 0xca, 0x7f, 0xbe, 0x8b, 0xd2, 0x82, 0x5a, 0xda, 0xb0, - 0xff, 0xb0, 0x92, 0x67, 0x42, 0xb5, 0x0a, 0xdd, 0x93, 0x6a, 0x9e, 0x4c, - 0xaa, 0xc1, 0x29, 0xd5, 0x06, 0x4e, 0x93, 0xd8, 0x72, 0xe3, 0xde, 0x32, - 0x65, 0x84, 0x7c, 0x05, 0x8e, 0x88, 0x05, 0x25, 0x01, 0x7a, 0x1f, 0xba, - 0xf9, 0xfb, 0xf1, 0xb1, 0x45, 0xd4, 0xc6, 0x6f, 0xf0, 0x14, 0x5b, 0xe8, - 0xa1, 0x2d, 0x9c, 0xb9, 0xac, 0x8c, 0xcc, 0xae, 0x0d, 0x98, 0x8a, 0xd3, - 0xf7, 0xa4, 0xf2, 0x2d, 0x07, 0xfa, 0xa3, 0x8f, 0xf4, 0x07, 0x00, 0x99, - 0x8f, 0x3a, 0xe3, 0x1f, 0xe8, 0xfa, 0x37, 0x99, 0x6c, 0x94, 0xe1, 0x7e, - 0x8c, 0xf9, 0xc6, 0x35, 0xe2, 0x50, 0x79, 0x3e, 0xcc, 0xa0, 0x3f, 0xc8, - 0xac, 0xff, 0x2c, 0xe3, 0x8e, 0x65, 0xe2, 0x96, 0xa1, 0xfb, 0x9e, 0x63, - 0x78, 0xc4, 0xf0, 0x79, 0xc5, 0x49, 0xd0, 0xdb, 0x67, 0x88, 0xff, 0x8c, - 0x0b, 0x1c, 0x64, 0xe0, 0x39, 0x2d, 0x7c, 0xcc, 0x91, 0x72, 0xf3, 0xe6, - 0x86, 0x49, 0x75, 0xdd, 0x01, 0xf2, 0x6a, 0xad, 0x55, 0x1b, 0xd4, 0xde, - 0x71, 0x84, 0x3c, 0xa8, 0x38, 0x30, 0x99, 0xca, 0xc8, 0x8e, 0xca, 0xff, - 0x4c, 0x97, 0x92, 0xcb, 0xf1, 0x60, 0x0c, 0x1a, 0xc9, 0x18, 0x81, 0xb5, - 0x6f, 0x74, 0x38, 0x27, 0xd4, 0xe1, 0x44, 0xac, 0x1c, 0xce, 0xfb, 0x9d, - 0x1f, 0xb0, 0x69, 0xc3, 0xba, 0x3b, 0xd4, 0xb9, 0xc4, 0xbe, 0x02, 0x14, - 0x50, 0x89, 0x69, 0xba, 0xde, 0x06, 0xe3, 0x1b, 0x93, 0x1b, 0x2b, 0xbe, - 0x61, 0x91, 0x6e, 0x88, 0x81, 0x4b, 0xcc, 0xa0, 0x51, 0xa3, 0xd7, 0x08, - 0x70, 0x2c, 0xfe, 0x1d, 0x5c, 0xde, 0x38, 0x61, 0xc9, 0xb1, 0x54, 0x9a, - 0xc6, 0x8a, 0xb6, 0x09, 0x79, 0x2e, 0xd1, 0x38, 0xdd, 0xe9, 0x11, 0x60, - 0x42, 0x33, 0xac, 0x1e, 0xf1, 0xaa, 0x25, 0xae, 0xb7, 0xa3, 0x16, 0x42, - 0x62, 0x90, 0xa3, 0x0d, 0x67, 0xae, 0xc9, 0xcb, 0xc2, 0xec, 0xdb, 0xa3, - 0xd4, 0xe2, 0xd3, 0xe4, 0x45, 0x63, 0x69, 0xc0, 0x87, 0x42, 0xf8, 0x5a, - 0xa9, 0x74, 0xe0, 0x06, 0xcd, 0xb4, 0x05, 0x70, 0x75, 0xb8, 0x83, 0x5d, - 0xa7, 0xe3, 0xc4, 0x3f, 0xd0, 0x9d, 0x61, 0x48, 0x28, 0x92, 0x7b, 0x92, - 0x12, 0x27, 0xca, 0xec, 0x87, 0xdc, 0x5b, 0xf8, 0xc0, 0x28, 0x93, 0x2c, - 0x2e, 0xfc, 0x3c, 0x32, 0x23, 0xd0, 0xd0, 0xfd, 0x51, 0xd4, 0xca, 0xc2, - 0x46, 0xa0, 0xeb, 0x8c, 0xf5, 0xf0, 0x77, 0xba, 0x0b, 0xfc, 0x8e, 0x7b, - 0xe4, 0xe8, 0xc5, 0xde, 0xf5, 0x48, 0xbc, 0x0b, 0x87, 0xff, 0x15, 0x56, - 0x13, 0xeb, 0xc1, 0x01, 0xe0, 0x95, 0x08, 0x91, 0xab, 0x10, 0x3d, 0xba, - 0x4a, 0x9d, 0xaa, 0x6f, 0x59, 0x6d, 0x29, 0xf2, 0xab, 0x16, 0x3c, 0x54, - 0x0a, 0xdc, 0xb1, 0x71, 0x7c, 0x86, 0x65, 0xf1, 0x04, 0xcd, 0xe7, 0x5d, - 0x83, 0xd6, 0x42, 0x2f, 0x82, 0x7a, 0x73, 0x9f, 0x49, 0xb3, 0x14, 0x06, - 0x12, 0xb9, 0x1d, 0x96, 0xb5, 0xae, 0x82, 0x04, 0xf1, 0x49, 0x23, 0x01, - 0xfc, 0xe7, 0xcf, 0xfc, 0xcc, 0x47, 0x8e, 0x8f, 0xe4, 0x46, 0x0e, 0xc9, - 0xc0, 0x0b, 0x34, 0x41, 0x8a, 0xed, 0x8b, 0xc8, 0x33, 0x18, 0xbc, 0x51, - 0x1c, 0xe2, 0xaf, 0xb5, 0x1c, 0xba, 0x6f, 0x34, 0x43, 0xea, 0xd8, 0x56, - 0x9b, 0x43, 0xc9, 0x14, 0xd2, 0x36, 0xa4, 0xa4, 0x17, 0x87, 0x0e, 0x91, - 0x80, 0x20, 0xce, 0x88, 0x76, 0xfc, 0x31, 0x76, 0x71, 0x47, 0xee, 0x3a, - 0x73, 0xcf, 0x03, 0xaa, 0xe0, 0x8d, 0x0f, 0x59, 0xfc, 0x60, 0xdf, 0x92, - 0xf0, 0xc8, 0x93, 0xcb, 0xa9, 0x70, 0x61, 0xec, 0x5f, 0x7e, 0x51, 0xd6, - 0x35, 0xb1, 0x45, 0x4b, 0x62, 0xbb, 0xb8, 0x34, 0x83, 0xef, 0xb2, 0x11, - 0x97, 0xfb, 0xa7, 0xc4, 0x4a, 0x7f, 0xc1, 0x2d, 0x3c, 0x8c, 0x51, 0x96, - 0x94, 0x51, 0xe2, 0x47, 0x5c, 0x00, 0xd7, 0xf0, 0x9e, 0x89, 0x34, 0x87, - 0xd4, 0x7e, 0x5e, 0x92, 0xb1, 0x82, 0xaa, 0x0f, 0xb9, 0x95, 0x97, 0xcb, - 0xc1, 0x08, 0x8c, 0x0a, 0x25, 0x3e, 0xc8, 0x7a, 0x36, 0xdf, 0x42, 0x8a, - 0x71, 0x17, 0xe6, 0x4d, 0x37, 0x6a, 0xac, 0x7b, 0x32, 0xf1, 0x02, 0x36, - 0x4a, 0x07, 0x94, 0x46, 0xdf, 0x46, 0x90, 0xd8, 0x68, 0xb7, 0xf4, 0x7c, - 0x40, 0x00, 0x8f, 0xf5, 0x2d, 0xaa, 0x2c, 0x00, 0x12, 0x46, 0xf6, 0x61, - 0x18, 0xd3, 0x90, 0xf4, 0x75, 0x43, 0x80, 0x84, 0x32, 0x53, 0x74, 0xa9, - 0xd1, 0x23, 0xbd, 0x6f, 0xb1, 0xfa, 0x18, 0x76, 0x1f, 0xe8, 0x73, 0x8c, - 0xbf, 0x3e, 0x9c, 0xa3, 0x4c, 0xb9, 0x62, 0xb8, 0x78, 0x51, 0x1c, 0x71, - 0x86, 0x7e, 0x5f, 0xfa, 0xf9, 0x89, 0x1d, 0x59, 0x58, 0xdd, 0x81, 0x7b, - 0xbb, 0x0f, 0xfc, 0x10, 0x8d, 0x61, 0x1d, 0xb7, 0x15, 0x01, 0x54, 0x0c, - 0x5e, 0x31, 0x37, 0x83, 0x5f, 0xa6, 0x63, 0x76, 0x08, 0xbb, 0x7a, 0x63, - 0x00, 0x53, 0x81, 0x09, 0x8a, 0x67, 0x05, 0x0c, 0x4b, 0xbe, 0x83, 0xc0, - 0x5f, 0x12, 0x43, 0xe9, 0x93, 0x03, 0x2f, 0x22, 0x99, 0x97, 0xce, 0xe8, - 0x4b, 0x7a, 0x56, 0x36, 0x68, 0x14, 0x3b, 0x97, 0x3a, 0xea, 0x2b, 0x63, - 0x63, 0x00, 0xef, 0x50, 0x49, 0x10, 0x15, 0x6c, 0xc4, 0x00, 0xd0, 0x3e, - 0x24, 0xbf, 0x13, 0x85, 0x50, 0xa6, 0x4f, 0xe1, 0x90, 0x84, 0x04, 0xff, - 0x8c, 0x12, 0x8f, 0xdf, 0x3b, 0xda, 0x82, 0x79, 0xc9, 0xa2, 0x1b, 0x04, - 0xee, 0xc3, 0x16, 0xc8, 0x05, 0x2c, 0xc1, 0x8d, 0x36, 0xb9, 0xad, 0x95, - 0xb0, 0x76, 0x3d, 0xfc, 0x86, 0xa7, 0xcc, 0x66, 0x70, 0x95, 0x41, 0xcf, - 0xc2, 0x92, 0xa4, 0x42, 0x7f, 0x27, 0xbc, 0x46, 0x84, 0x5d, 0xcd, 0x21, - 0xb3, 0xa5, 0x73, 0x8f, 0xc8, 0x04, 0xd8, 0x4a, 0x7b, 0x00, 0x46, 0x30, - 0xe3, 0x37, 0x11, 0xbc, 0x5e, 0xeb, 0x79, 0x21, 0xca, 0x00, 0x59, 0x31, - 0x34, 0x29, 0xd3, 0xdf, 0x4a, 0xe3, 0xf7, 0x4c, 0xf1, 0xf0, 0x6c, 0x62, - 0x41, 0xd1, 0x8b, 0x17, 0x11, 0x47, 0xa7, 0x87, 0xce, 0x3a, 0xcc, 0xbc, - 0xb0, 0xe8, 0x4f, 0x2e, 0x78, 0xbd, 0x7c, 0xda, 0x56, 0x9d, 0x35, 0xa4, - 0x60, 0xf7, 0x96, 0x25, 0x1e, 0xdf, 0x6f, 0x62, 0xbe, 0xd6, 0xb0, 0x59, - 0x77, 0x64, 0xfc, 0x4a, 0x5a, 0xa2, 0x0a, 0xc7, 0xda, 0xde, 0xa1, 0x14, - 0x08, 0x0f, 0x94, 0x57, 0x28, 0xe5, 0x36, 0xa8, 0x94, 0xdb, 0x37, 0x2a, - 0x25, 0xc4, 0x80, 0xf0, 0xc3, 0x25, 0x30, 0xd4, 0xe6, 0x64, 0x48, 0x47, - 0x6b, 0x50, 0x80, 0xd9, 0x23, 0x1d, 0xff, 0x37, 0xa8, 0x46, 0x43, 0xaf, - 0x52, 0x4d, 0x7f, 0x2a, 0x8e, 0x8d, 0x10, 0x05, 0xd1, 0x8a, 0x3f, 0x57, - 0x4d, 0x1a, 0xfa, 0x38, 0x35, 0x99, 0x9e, 0xd2, 0x0a, 0x54, 0xc3, 0x8f, - 0xa9, 0xb8, 0x92, 0xd9, 0xa1, 0x2b, 0x3e, 0x2b, 0x98, 0xb6, 0xea, 0x8e, - 0xde, 0x14, 0x1c, 0xc7, 0x0e, 0x53, 0x3f, 0xc2, 0xb5, 0x46, 0x4a, 0xfe, - 0xe2, 0x5b, 0x55, 0x9b, 0x0d, 0x38, 0xeb, 0x6a, 0xdf, 0x84, 0xa6, 0xc8, - 0x65, 0x38, 0xa8, 0xd5, 0xc2, 0x07, 0x7d, 0xbd, 0x77, 0x97, 0xf1, 0x3f, - 0x1d, 0xa4, 0x79, 0x7e, 0xf1, 0xbf, 0xb3, 0x48, 0x33, 0x70, 0x39, 0x18, - 0x13, 0x1c, 0x29, 0x06, 0x15, 0xf3, 0x64, 0x4b, 0x38, 0x3b, 0xd5, 0x10, - 0xce, 0xf2, 0xa9, 0x12, 0x30, 0x9d, 0xc8, 0xfd, 0xf8, 0xdd, 0xd7, 0x3f, - 0xa7, 0x60, 0x69, 0x7c, 0x02, 0x5f, 0xc9, 0x13, 0xf8, 0xf1, 0xf5, 0xcf, - 0xdf, 0x24, 0x73, 0x13, 0x31, 0xed, 0xf4, 0xc4, 0x2c, 0x0d, 0x6f, 0x55, - 0x4b, 0xd3, 0x17, 0x1e, 0x30, 0xcf, 0xa4, 0xb9, 0x1f, 0xa1, 0xe4, 0x67, - 0xa0, 0x4d, 0x0a, 0x8f, 0xcc, 0x8e, 0x0e, 0x06, 0xe2, 0x9e, 0x5c, 0x80, - 0x1d, 0x74, 0xa4, 0x09, 0x09, 0xf2, 0xc2, 0x01, 0xf3, 0x27, 0xd6, 0x99, - 0xf9, 0x93, 0xce, 0x36, 0xc1, 0x2b, 0xd6, 0x9e, 0xbd, 0xcc, 0x04, 0x8b, - 0x8b, 0x58, 0xcb, 0xe7, 0x39, 0xe0, 0x61, 0x2f, 0xb0, 0x62, 0xe7, 0xe6, - 0x2f, 0x80, 0xc7, 0x68, 0x01, 0x2c, 0x53, 0x6f, 0xc7, 0x39, 0xba, 0x76, - 0xf6, 0xbc, 0x21, 0x8b, 0x5e, 0x05, 0xc6, 0x5d, 0xa8, 0x1f, 0x42, 0x52, - 0x4b, 0x90, 0xef, 0x74, 0x88, 0x49, 0x94, 0xb9, 0x30, 0x96, 0x20, 0x7f, - 0x83, 0x47, 0x7d, 0x8e, 0xbb, 0xe3, 0x96, 0x90, 0x9e, 0x19, 0xe9, 0x39, - 0x6c, 0x05, 0xdb, 0xd9, 0xed, 0xec, 0x01, 0xfe, 0x95, 0x85, 0xa5, 0xb9, - 0xfb, 0xc5, 0xe8, 0xae, 0xc5, 0x39, 0xec, 0xb9, 0xe3, 0x64, 0x96, 0x71, - 0xc2, 0xce, 0x8d, 0x71, 0x66, 0x9f, 0xfd, 0xd6, 0x69, 0x1a, 0xb3, 0x61, - 0xbd, 0x7f, 0xfd, 0x18, 0x9f, 0xcc, 0x63, 0x14, 0x7a, 0xbb, 0x9a, 0x75, - 0xf7, 0xff, 0x11, 0x6b, 0x32, 0x09, 0x47, 0xf5, 0x18, 0x11, 0x2a, 0x2d, - 0x11, 0x31, 0x29, 0x28, 0xf3, 0xd5, 0x62, 0xa9, 0x43, 0x6b, 0xcc, 0x1e, - 0x09, 0xad, 0xb3, 0x22, 0x4d, 0xfb, 0xfa, 0xb3, 0x75, 0xa1, 0x99, 0xbc, - 0x28, 0xd8, 0x8b, 0x22, 0x92, 0x9b, 0xe1, 0x18, 0xcb, 0x7b, 0x57, 0xdc, - 0x44, 0xdd, 0xf2, 0xa0, 0x6e, 0x01, 0x2a, 0x45, 0xa0, 0xe2, 0x62, 0x29, - 0xe1, 0x45, 0xf4, 0x39, 0xfa, 0x42, 0xfa, 0x3f, 0x00, 0x33, 0xfc, 0x14, - 0xf6, 0xa1, 0x5e, 0x00, 0x00 + 0x1f, 0x8b, 0x08, 0x08, 0x79, 0x1c, 0x96, 0x5d, 0x04, 0x00, 0x65, 0x64, + 0x69, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xed, 0x1d, 0x6b, 0x57, 0xea, + 0x46, 0xf0, 0x7b, 0xcf, 0xe9, 0x7f, 0x48, 0xd3, 0x87, 0x50, 0x9e, 0xa2, + 0xd7, 0x2a, 0x6a, 0x5b, 0x40, 0x40, 0x45, 0x8a, 0x08, 0x2a, 0xda, 0xd7, + 0x09, 0xc9, 0x02, 0xd1, 0x90, 0xc4, 0x24, 0x08, 0x7a, 0x6b, 0x7f, 0x7b, + 0x67, 0x1f, 0x79, 0x27, 0x10, 0xd4, 0x3e, 0x4f, 0xb9, 0xed, 0x25, 0xec, + 0xce, 0xcc, 0xce, 0xcc, 0xce, 0xce, 0xce, 0xce, 0xee, 0xe6, 0x1e, 0x7c, + 0x76, 0xd4, 0xa9, 0xf5, 0x6f, 0xce, 0xeb, 0xdc, 0xc4, 0x9a, 0x2a, 0xdf, + 0x7e, 0xfa, 0xc9, 0x01, 0xfe, 0xe6, 0x14, 0x41, 0x1d, 0x1f, 0xf2, 0x48, + 0xe5, 0xa1, 0x84, 0xe3, 0x0e, 0x26, 0x48, 0x90, 0xc8, 0x13, 0x3c, 0x5b, + 0xb2, 0xa5, 0xa0, 0x6f, 0x7b, 0xe7, 0x27, 0x8d, 0x46, 0x8f, 0xab, 0x4b, + 0xb2, 0xa5, 0x19, 0x07, 0x05, 0x52, 0x68, 0x43, 0x98, 0xd6, 0x93, 0x82, + 0x38, 0xeb, 0x49, 0x47, 0x87, 0xbc, 0x85, 0x16, 0x56, 0x41, 0x34, 0x4d, + 0x9e, 0x9b, 0x22, 0x49, 0x16, 0x0e, 0x79, 0x53, 0x34, 0x10, 0xa3, 0x4b, + 0x3e, 0x79, 0x51, 0x53, 0x31, 0x50, 0x1b, 0xa9, 0x33, 0xee, 0x23, 0x94, + 0xb2, 0xcf, 0x73, 0x4e, 0x56, 0x25, 0xb4, 0x28, 0x73, 0x5b, 0xc5, 0xe2, + 0xbe, 0x5b, 0xac, 0x6b, 0xa6, 0x6c, 0xc9, 0x9a, 0x5a, 0xe6, 0x84, 0xa1, + 0xa9, 0x29, 0x33, 0x0b, 0x79, 0x2a, 0x15, 0x34, 0xb2, 0xca, 0xdc, 0x07, + 0x7d, 0xe1, 0x29, 0x1b, 0x6a, 0x86, 0x84, 0x8c, 0x32, 0xb7, 0xa9, 0x2f, + 0x38, 0x40, 0x90, 0x25, 0xee, 0xf3, 0xed, 0xed, 0x6d, 0x2f, 0x80, 0x20, + 0xde, 0x8f, 0x0d, 0x6d, 0xa6, 0x4a, 0x39, 0x51, 0x53, 0x34, 0x00, 0xfd, + 0xbc, 0xf1, 0x01, 0xff, 0xf1, 0xc0, 0x48, 0xb2, 0xa9, 0x2b, 0xc2, 0x53, + 0x99, 0x53, 0x35, 0x15, 0xf9, 0x88, 0x2f, 0x72, 0xe6, 0x44, 0x90, 0xb4, + 0x79, 0x99, 0x2b, 0xc2, 0x9f, 0xcd, 0x22, 0xb4, 0x62, 0x8c, 0x87, 0x42, + 0x8a, 0x2b, 0x66, 0xd9, 0x7f, 0xf9, 0x6d, 0x2e, 0xed, 0x41, 0x19, 0x81, + 0xb8, 0x39, 0x53, 0x7e, 0x46, 0xc0, 0x52, 0xc9, 0xe6, 0xd4, 0xad, 0x19, + 0x09, 0x53, 0x59, 0x81, 0x86, 0x4c, 0x41, 0x35, 0x73, 0x26, 0x32, 0xe4, + 0x51, 0x10, 0x62, 0x8e, 0xe4, 0xf1, 0xc4, 0x2a, 0x0f, 0x35, 0x45, 0x72, + 0xaa, 0x5e, 0x22, 0xb5, 0x39, 0x53, 0xbc, 0x0a, 0x55, 0x64, 0x13, 0x1a, + 0xc6, 0x5d, 0x13, 0x12, 0xc3, 0xd2, 0x74, 0xe0, 0x3f, 0xa0, 0x48, 0x7f, + 0xc9, 0x54, 0x30, 0xc6, 0xb2, 0xea, 0x2f, 0xd3, 0x05, 0x49, 0x92, 0xd5, + 0x31, 0x14, 0x2e, 0x67, 0x04, 0x9a, 0xc6, 0x8c, 0x84, 0xbb, 0xd0, 0x40, + 0x8a, 0x60, 0xc9, 0x8f, 0xc8, 0xdb, 0x8e, 0xac, 0xe6, 0xe6, 0xb2, 0x64, + 0x4d, 0xca, 0xdc, 0x4e, 0xd1, 0xa7, 0x1e, 0x71, 0x66, 0x98, 0xd0, 0x3b, + 0x80, 0x2e, 0x03, 0x65, 0x63, 0x45, 0x93, 0xa6, 0x2e, 0xa8, 0xde, 0x46, + 0x69, 0xd7, 0xb2, 0xbe, 0x0f, 0xf7, 0xab, 0xac, 0x2a, 0xb2, 0x8a, 0x72, + 0x43, 0x45, 0x13, 0xef, 0xa3, 0x24, 0xdc, 0xd1, 0x17, 0x2b, 0x65, 0x2c, + 0x4f, 0xb4, 0x47, 0x64, 0x70, 0x1f, 0x3d, 0x16, 0xc5, 0x1a, 0x5c, 0x81, + 0xc2, 0x98, 0x75, 0x78, 0xac, 0xd7, 0xeb, 0x0e, 0x8a, 0x8b, 0x68, 0x9a, + 0x39, 0x0b, 0x86, 0xce, 0xa3, 0x8c, 0xe6, 0xd0, 0xb3, 0x59, 0x7f, 0x09, + 0x51, 0x71, 0x88, 0xef, 0xd5, 0x5d, 0x18, 0x36, 0x0a, 0x57, 0xc8, 0xe8, + 0xa6, 0x65, 0x55, 0x9f, 0x59, 0xdc, 0xc7, 0x84, 0x23, 0x52, 0xd3, 0x05, + 0x51, 0xb6, 0x9e, 0xa0, 0xd1, 0xd5, 0x94, 0x3f, 0xfa, 0x0d, 0x1d, 0x33, + 0x64, 0x4c, 0x05, 0x85, 0xdb, 0xc4, 0x43, 0xf7, 0x0a, 0x19, 0x92, 0xa0, + 0x0a, 0x59, 0xae, 0x62, 0xc8, 0x02, 0x48, 0xdf, 0x8b, 0x1a, 0x1f, 0xb9, + 0xa9, 0xf6, 0x9c, 0x9b, 0x41, 0x29, 0xd4, 0x28, 0x48, 0xb4, 0x42, 0x86, + 0x0e, 0x83, 0x67, 0x78, 0x2f, 0x5b, 0x4b, 0x61, 0x3c, 0x75, 0x49, 0x75, + 0x12, 0x67, 0x6c, 0xc5, 0xe2, 0x28, 0x99, 0x01, 0xc7, 0x93, 0xb5, 0x8d, + 0xca, 0x25, 0x83, 0xcd, 0x27, 0x27, 0x21, 0x51, 0x33, 0x04, 0xaa, 0x76, + 0xb0, 0x33, 0x64, 0x28, 0x72, 0x12, 0x46, 0x69, 0xe7, 0x65, 0xc0, 0xbd, + 0x0f, 0x91, 0x02, 0xdf, 0xc4, 0x43, 0x84, 0x0d, 0x84, 0xfc, 0x29, 0x81, + 0x77, 0x4a, 0x4a, 0xf1, 0x77, 0x42, 0x29, 0x34, 0xae, 0x92, 0xea, 0x8f, + 0xb0, 0x93, 0x8d, 0x2a, 0x2c, 0x97, 0x87, 0x68, 0xa4, 0x19, 0x88, 0xfb, + 0xf8, 0x06, 0x3d, 0x12, 0x1e, 0xcb, 0xc0, 0x93, 0x30, 0x54, 0x90, 0x64, + 0x8b, 0x1f, 0x45, 0x52, 0x42, 0x23, 0x61, 0xa6, 0x58, 0x51, 0x06, 0x9c, + 0xdf, 0x49, 0xda, 0x90, 0x38, 0x41, 0xe2, 0x3d, 0x92, 0xca, 0xaa, 0x66, + 0xa5, 0x9c, 0x56, 0xd3, 0xf1, 0x3a, 0x22, 0x4e, 0x67, 0x35, 0xf1, 0xf5, + 0x94, 0xe4, 0xf5, 0x41, 0x33, 0x43, 0x49, 0xf1, 0x92, 0x60, 0x09, 0x65, + 0x79, 0x2a, 0x8c, 0x51, 0x41, 0x57, 0xc7, 0xfb, 0x43, 0xc1, 0x44, 0x3b, + 0xdb, 0x59, 0xf9, 0xaa, 0xda, 0xb9, 0x98, 0x17, 0x5b, 0xcd, 0xb1, 0x56, + 0x81, 0xcf, 0x0f, 0xbd, 0xcb, 0x49, 0xfd, 0x72, 0x0c, 0x4f, 0x55, 0xfc, + 0xb3, 0x36, 0xae, 0x55, 0x6e, 0xf0, 0x43, 0xa3, 0x83, 0xe6, 0x97, 0xf8, + 0xa1, 0x39, 0xb8, 0x68, 0x5c, 0x1f, 0x5f, 0xf4, 0x87, 0xa5, 0xdb, 0xa2, + 0x54, 0x6a, 0x3c, 0xdd, 0x76, 0xab, 0xd5, 0xdb, 0xe6, 0x9e, 0x7c, 0xdb, + 0xab, 0x9e, 0x0e, 0xaf, 0x1b, 0xea, 0xed, 0xd5, 0xa9, 0x72, 0x73, 0x7d, + 0xf1, 0x41, 0x14, 0x15, 0xe5, 0x1c, 0x23, 0xe8, 0x8b, 0xd3, 0x8b, 0x7a, + 0xe3, 0x12, 0xfd, 0x60, 0x98, 0x4a, 0x7b, 0x73, 0x56, 0x2c, 0x56, 0xba, + 0xe3, 0x26, 0xb8, 0xf7, 0x27, 0x41, 0x69, 0x34, 0x3a, 0xad, 0x4c, 0x4d, + 0x39, 0x39, 0x69, 0x75, 0x5b, 0x4f, 0x0f, 0x97, 0x57, 0xdd, 0xc7, 0x7e, + 0xbd, 0xbe, 0x75, 0x34, 0xad, 0x4c, 0xce, 0xe6, 0x95, 0xc9, 0xe5, 0x6e, + 0xf7, 0x56, 0x3b, 0xde, 0xae, 0x94, 0xba, 0xa5, 0x71, 0xbb, 0xd7, 0x10, + 0x44, 0xb4, 0xdd, 0xae, 0x59, 0xa7, 0xbb, 0xbd, 0xf3, 0x6a, 0x63, 0x5e, + 0xb9, 0xbf, 0x98, 0xc9, 0xc7, 0x2d, 0xbd, 0xb2, 0x63, 0x5e, 0xfc, 0x50, + 0x38, 0x9b, 0x7d, 0xf3, 0xdc, 0xfc, 0x20, 0x6f, 0x6e, 0xdf, 0x8b, 0x96, + 0x70, 0xf9, 0x70, 0xd1, 0x9c, 0x34, 0x07, 0xea, 0x6c, 0xaf, 0x53, 0x38, + 0xb7, 0xbe, 0x69, 0x3f, 0x9b, 0x6d, 0xf9, 0x5e, 0x79, 0x6c, 0x64, 0xf6, + 0xac, 0xd2, 0xfd, 0x75, 0xff, 0xe8, 0xf1, 0xe9, 0xc4, 0xa8, 0x98, 0x95, + 0xa2, 0xd0, 0xba, 0xb8, 0x90, 0x37, 0xfb, 0xc5, 0x5a, 0x61, 0x72, 0xba, + 0x7d, 0x76, 0x39, 0xb4, 0x3e, 0x14, 0x76, 0x8d, 0x1f, 0xf4, 0xeb, 0x2b, + 0x45, 0xdf, 0xbd, 0xe8, 0x19, 0x7b, 0xa7, 0xdb, 0xc5, 0xe1, 0xf6, 0xee, + 0x68, 0xd1, 0x10, 0xfa, 0xdd, 0xbd, 0xcc, 0xc8, 0xda, 0xad, 0xdf, 0xee, + 0xb4, 0x4f, 0x6f, 0x86, 0xc5, 0xce, 0x7d, 0x46, 0x52, 0x6f, 0x9a, 0xfa, + 0xf4, 0x7c, 0x3c, 0x98, 0xb7, 0x4e, 0x2a, 0x8f, 0x67, 0x8b, 0xdd, 0xc7, + 0x9b, 0x81, 0xf8, 0xa1, 0x29, 0xb5, 0x2b, 0xdd, 0xd3, 0x71, 0xb7, 0x7e, + 0xaf, 0xdf, 0x5d, 0xf4, 0x27, 0x5b, 0x3b, 0xfd, 0x5e, 0xe9, 0x32, 0x73, + 0x74, 0x7d, 0x5d, 0x38, 0xda, 0xfc, 0xe6, 0x7a, 0x76, 0x33, 0x9e, 0xee, + 0xea, 0xf3, 0xd3, 0xa7, 0x9b, 0x4d, 0x55, 0xbf, 0x35, 0x6f, 0x5b, 0x9d, + 0xc5, 0xc9, 0xb4, 0x73, 0xb5, 0x79, 0x52, 0x98, 0x6c, 0x67, 0x3a, 0x3b, + 0x8f, 0xf5, 0xf1, 0x87, 0x66, 0xed, 0xb6, 0xaa, 0x8f, 0xa7, 0x95, 0x9d, + 0xc9, 0x60, 0x77, 0x7e, 0xdc, 0xba, 0x3c, 0x3e, 0xba, 0xa8, 0x0e, 0xba, + 0x37, 0xb2, 0xd8, 0xdd, 0x36, 0x14, 0x71, 0xab, 0x3f, 0x2a, 0x5e, 0xb5, + 0xcd, 0xdd, 0xa3, 0xe3, 0x6a, 0x6f, 0x77, 0x67, 0xbb, 0x51, 0xba, 0x69, + 0x98, 0xfa, 0xdd, 0xf8, 0xf2, 0xe6, 0xae, 0x35, 0x28, 0x54, 0x9e, 0xb7, + 0xc6, 0xa6, 0xd4, 0x95, 0x4a, 0x08, 0x55, 0x8f, 0xe7, 0x53, 0xa9, 0x79, + 0x3d, 0x38, 0x16, 0xc7, 0xd5, 0x66, 0xef, 0xfe, 0x76, 0xd0, 0x19, 0x68, + 0x13, 0xb1, 0x3e, 0x40, 0xc3, 0x0b, 0xad, 0x2b, 0x56, 0xc6, 0x77, 0x0f, + 0x10, 0x88, 0xfd, 0x70, 0x93, 0xa9, 0x5c, 0x3d, 0xcd, 0xb6, 0x6e, 0xb7, + 0xcc, 0x4a, 0xeb, 0x61, 0xd4, 0xd2, 0x9a, 0x6d, 0x13, 0xcd, 0xab, 0xa8, + 0x7e, 0xd2, 0x39, 0x1f, 0x77, 0x17, 0x8b, 0xf3, 0xd3, 0x93, 0x3b, 0xb1, + 0x79, 0xbc, 0xf3, 0x60, 0x9d, 0x15, 0x8a, 0x15, 0xa9, 0x72, 0xf4, 0xdc, + 0x6a, 0xaa, 0xb3, 0xd9, 0x51, 0xa6, 0x64, 0x9d, 0xb5, 0xbe, 0xe9, 0xee, + 0x1e, 0x4d, 0x8e, 0x8f, 0x87, 0x9d, 0xea, 0x75, 0xa6, 0x55, 0x7f, 0x16, + 0x8f, 0xcf, 0x66, 0x37, 0xe2, 0x6e, 0xa9, 0x7d, 0x5f, 0xbf, 0x44, 0xf7, + 0x67, 0xf2, 0x7c, 0xf6, 0x78, 0x75, 0x9c, 0x19, 0xcf, 0xba, 0xd5, 0xee, + 0x73, 0xa7, 0xb9, 0x3d, 0x90, 0x2a, 0xc3, 0xdd, 0x7a, 0x47, 0xbc, 0x10, + 0x1f, 0xba, 0x8f, 0x47, 0xf7, 0x37, 0x25, 0xb9, 0x76, 0x36, 0x5b, 0xd4, + 0x6b, 0xa7, 0xdb, 0x5b, 0xa7, 0xda, 0xb0, 0x3d, 0xd0, 0x66, 0xd6, 0x43, + 0x73, 0x7c, 0x24, 0x94, 0xfa, 0xdf, 0x5c, 0x3e, 0x9c, 0xb5, 0xe6, 0xd6, + 0x5e, 0xeb, 0xe2, 0x69, 0xb6, 0x68, 0x5d, 0x55, 0x9f, 0x1e, 0xae, 0x06, + 0x83, 0x87, 0x13, 0xad, 0x56, 0xbb, 0xac, 0x55, 0x1e, 0x26, 0x97, 0x1d, + 0x59, 0xeb, 0x5f, 0xd7, 0xbe, 0x69, 0x6e, 0xf7, 0xbb, 0xf5, 0xce, 0x51, + 0xb1, 0x72, 0xfe, 0x54, 0x2a, 0x7c, 0xd3, 0x2c, 0x0d, 0xf4, 0xd9, 0xe6, + 0xe9, 0x76, 0x46, 0x59, 0xa0, 0xee, 0x76, 0x7f, 0x50, 0x1d, 0x9e, 0xf4, + 0x8f, 0x74, 0xed, 0x0a, 0x29, 0x60, 0x19, 0xd5, 0xab, 0xc6, 0x70, 0x3e, + 0xfb, 0xa0, 0xb5, 0xdb, 0xa7, 0x97, 0xd5, 0x89, 0x36, 0x78, 0xfa, 0x60, + 0x4d, 0xa5, 0x0b, 0xb1, 0x3d, 0x7f, 0x9a, 0x9e, 0x97, 0x3a, 0x67, 0x5d, + 0xe1, 0xec, 0x6e, 0xb1, 0x57, 0x78, 0x54, 0xab, 0xda, 0xce, 0xd5, 0x56, + 0x6b, 0x47, 0x7e, 0xae, 0xf4, 0xa7, 0x3d, 0xb5, 0x2d, 0x14, 0x8f, 0x1e, + 0xbe, 0x19, 0x21, 0xe3, 0x44, 0x9b, 0x9c, 0x4e, 0x8c, 0x4d, 0xbd, 0xb8, + 0xf9, 0x6c, 0x28, 0xcf, 0xdb, 0x7b, 0xc6, 0x6d, 0x63, 0xbb, 0x03, 0x5d, + 0x70, 0x7a, 0x3f, 0x28, 0x6d, 0x3d, 0x5e, 0x75, 0x9f, 0x6f, 0xf4, 0xcc, + 0x7c, 0x78, 0xd3, 0xbc, 0x2a, 0xb4, 0xf4, 0x41, 0xeb, 0xee, 0x11, 0x06, + 0xf4, 0xae, 0x65, 0x9e, 0xb4, 0x6a, 0x46, 0xfb, 0x87, 0xca, 0x4d, 0x63, + 0x71, 0x57, 0x6a, 0xb6, 0x7a, 0x1f, 0x6e, 0xaf, 0x17, 0xe3, 0x6d, 0x34, + 0x6f, 0x99, 0xa7, 0x23, 0xa1, 0xd9, 0x3e, 0xb9, 0xf9, 0xd0, 0x1a, 0x3c, + 0x9c, 0x3f, 0xef, 0x9e, 0x55, 0xab, 0x77, 0x3b, 0x99, 0xa7, 0xa3, 0xc7, + 0xab, 0xf3, 0x6f, 0xf6, 0xe0, 0x5b, 0x2f, 0xec, 0x35, 0xf6, 0xb4, 0x93, + 0xc5, 0x56, 0x47, 0x36, 0x8f, 0xaf, 0xe7, 0xe8, 0x9b, 0x8e, 0xa0, 0x14, + 0x8f, 0x17, 0x35, 0x18, 0x44, 0x5d, 0x18, 0x91, 0xf5, 0x93, 0x2e, 0x0c, + 0xc8, 0xfa, 0x09, 0x0c, 0x4d, 0x52, 0x34, 0x81, 0xbf, 0x4e, 0x70, 0x05, + 0x2d, 0xaa, 0xc3, 0xcf, 0x09, 0x85, 0x9d, 0x1f, 0xed, 0xd6, 0x0b, 0xd5, + 0xdb, 0x71, 0xe5, 0xbc, 0xf8, 0x30, 0x69, 0xdd, 0x6d, 0x19, 0x83, 0xce, + 0x37, 0x15, 0xfc, 0xa9, 0x2b, 0x8d, 0xfe, 0x7d, 0x6f, 0xd6, 0x9d, 0xd6, + 0x6a, 0x7c, 0x1a, 0x5c, 0x73, 0xce, 0x40, 0x3a, 0x12, 0xac, 0x57, 0xba, + 0x1e, 0x3c, 0x3b, 0x25, 0x76, 0x47, 0xab, 0x02, 0xad, 0x09, 0x0d, 0x6a, + 0xb9, 0xcd, 0x1d, 0x5f, 0xcc, 0x47, 0x60, 0x63, 0xea, 0x60, 0x5a, 0xb4, + 0x64, 0x51, 0x50, 0x72, 0x82, 0x22, 0x8f, 0x61, 0xd6, 0x9a, 0xca, 0x92, + 0xa4, 0x24, 0x9d, 0x6c, 0xa2, 0x5d, 0x65, 0xce, 0x8d, 0x65, 0x36, 0x77, + 0xf5, 0x45, 0x92, 0xa0, 0x25, 0x56, 0x62, 0x12, 0xe8, 0xe1, 0x28, 0x86, + 0xe7, 0x3d, 0x4c, 0x93, 0xd0, 0x96, 0x89, 0x12, 0x9a, 0x78, 0xd9, 0xa4, + 0x8b, 0x67, 0xdf, 0xe4, 0x72, 0x46, 0xf1, 0x4f, 0x48, 0xe5, 0xb6, 0x92, + 0x4f, 0xe0, 0xf6, 0x9c, 0xc5, 0x65, 0x92, 0xcc, 0x28, 0xfe, 0x66, 0xa8, + 0x2c, 0xe1, 0x66, 0x0a, 0x5f, 0x73, 0x34, 0xda, 0xe2, 0x04, 0xe9, 0x4e, + 0x10, 0x41, 0x17, 0x1c, 0x04, 0x55, 0x53, 0xfc, 0x4d, 0xa3, 0x2b, 0xcd, + 0xe0, 0x86, 0xb3, 0xf1, 0x48, 0x5e, 0x70, 0x5f, 0x17, 0x6c, 0xa4, 0xef, + 0xc9, 0x2a, 0x91, 0xa3, 0x8b, 0x44, 0x4e, 0x50, 0x25, 0x2e, 0x65, 0xc7, + 0x6c, 0x78, 0x65, 0x20, 0x01, 0xcf, 0x22, 0xca, 0xe9, 0xf2, 0x02, 0x29, + 0x39, 0x12, 0xff, 0x94, 0x8b, 0x69, 0x86, 0xcb, 0x78, 0x0d, 0x8b, 0x48, + 0xca, 0x83, 0x11, 0xa0, 0xa0, 0xc2, 0x5c, 0x48, 0x65, 0x60, 0x25, 0x36, + 0x97, 0x39, 0xc6, 0x65, 0xce, 0xe6, 0x32, 0xc7, 0xb8, 0x94, 0xd5, 0x91, + 0xac, 0xca, 0x16, 0xe2, 0x36, 0x4d, 0x5b, 0x5e, 0x57, 0x62, 0xc6, 0xbe, + 0x4d, 0xfe, 0x1e, 0x3d, 0x8d, 0x0c, 0x61, 0x8a, 0xcc, 0xc4, 0xd4, 0x5d, + 0x22, 0x3e, 0x7e, 0x47, 0x86, 0x36, 0x85, 0x22, 0x56, 0x1d, 0x13, 0xdf, + 0x3b, 0xbc, 0xf8, 0xc0, 0x2c, 0x2d, 0x39, 0xa2, 0x4f, 0x9e, 0x90, 0x60, + 0x9f, 0xcf, 0x74, 0x45, 0x13, 0x24, 0xb2, 0xb8, 0x49, 0x18, 0xf8, 0x87, + 0x96, 0x94, 0x06, 0x1e, 0xc4, 0xab, 0x56, 0x99, 0x6c, 0xa8, 0x97, 0x76, + 0xe3, 0xbd, 0x40, 0x69, 0xdb, 0xad, 0x73, 0x05, 0xca, 0x11, 0x5a, 0x64, + 0xfd, 0x1d, 0x3d, 0x32, 0xa2, 0xd7, 0x7f, 0xb4, 0x14, 0x2f, 0xb8, 0xc2, + 0xab, 0xbb, 0xcf, 0xb1, 0xfd, 0xac, 0x29, 0x70, 0x80, 0xf1, 0xa1, 0x66, + 0x59, 0xda, 0x74, 0x99, 0xd0, 0xae, 0x4f, 0x28, 0x15, 0x29, 0xef, 0xa1, + 0x9e, 0xc2, 0x24, 0xc3, 0xcc, 0x21, 0x92, 0x78, 0xc9, 0x72, 0x9f, 0xeb, + 0x06, 0x31, 0xf2, 0xb7, 0x31, 0x6a, 0x77, 0x4e, 0x22, 0xde, 0x09, 0xa7, + 0x61, 0x96, 0x5c, 0x4e, 0x96, 0x75, 0x00, 0xd1, 0x75, 0x58, 0xca, 0x0f, + 0x61, 0x8a, 0x07, 0x05, 0xbc, 0x2e, 0x75, 0x93, 0x4a, 0xa2, 0x21, 0xeb, + 0x96, 0x93, 0x36, 0x1a, 0xcd, 0x54, 0x11, 0x8b, 0xc8, 0x89, 0x06, 0x4c, + 0x61, 0xa8, 0x21, 0x2b, 0xe8, 0x92, 0x19, 0x69, 0x8a, 0x0d, 0xb1, 0x2c, + 0x87, 0x7b, 0x30, 0xcb, 0x51, 0x55, 0xa5, 0x3d, 0x6c, 0x3d, 0x0a, 0x06, + 0xb7, 0x98, 0x2a, 0xc7, 0x96, 0xa5, 0xef, 0xfb, 0x4a, 0xd9, 0x72, 0xe6, + 0x90, 0x93, 0x34, 0x71, 0x86, 0x69, 0xe4, 0x29, 0xf9, 0x3a, 0xa5, 0x98, + 0xe2, 0x49, 0x3d, 0xef, 0xcd, 0xe7, 0x90, 0x92, 0x3c, 0x4e, 0x76, 0x01, + 0x1a, 0x3f, 0x02, 0x3e, 0xf8, 0x50, 0xed, 0x14, 0xd6, 0x14, 0xb2, 0xae, + 0x60, 0x88, 0x91, 0xa0, 0x98, 0x28, 0x04, 0xa0, 0x0a, 0x53, 0x5c, 0x49, + 0x82, 0x74, 0x0f, 0xba, 0xcb, 0xc6, 0x18, 0x59, 0x8c, 0x87, 0xea, 0xd3, + 0x89, 0x64, 0x4b, 0x98, 0xce, 0x0b, 0xba, 0x8e, 0x54, 0xa9, 0x36, 0x91, + 0x15, 0x29, 0x45, 0x48, 0xa5, 0x03, 0x02, 0xe9, 0x82, 0x35, 0x59, 0x4b, + 0x1e, 0x8c, 0x90, 0x97, 0x25, 0xcc, 0x0d, 0x1d, 0xf5, 0x39, 0x5c, 0xc2, + 0x07, 0x20, 0x1c, 0x81, 0xf1, 0x6a, 0x34, 0x58, 0xe9, 0x88, 0x13, 0x89, + 0xc9, 0xd6, 0x58, 0x57, 0x82, 0x32, 0x23, 0x40, 0x85, 0x57, 0x0b, 0x8c, + 0xc9, 0x05, 0xe5, 0x1d, 0xce, 0xc0, 0x6c, 0xd5, 0x25, 0x12, 0x53, 0x00, + 0x9f, 0xc8, 0xb4, 0x28, 0x2f, 0xab, 0x2a, 0x32, 0x8e, 0xfb, 0xed, 0x33, + 0xc0, 0xde, 0xa0, 0xc6, 0xb4, 0xf1, 0x5a, 0xd6, 0x28, 0xc9, 0x20, 0x73, + 0xd3, 0x7b, 0x49, 0x36, 0xd6, 0xe3, 0x8d, 0xa0, 0xf8, 0x59, 0x6b, 0xdf, + 0x1f, 0xc9, 0xc6, 0xab, 0x39, 0x23, 0x04, 0xc3, 0x8c, 0x61, 0xc3, 0x5d, + 0x97, 0x33, 0x8c, 0x13, 0x64, 0x0d, 0x0f, 0xc4, 0x37, 0xf0, 0x86, 0x49, + 0x86, 0x4d, 0xd8, 0x10, 0xe2, 0x59, 0xa3, 0x16, 0xe8, 0xc1, 0x21, 0xf0, + 0x3e, 0xb6, 0x78, 0x8e, 0x3b, 0x37, 0x90, 0x69, 0x72, 0x35, 0xcb, 0x50, + 0x72, 0x3d, 0x0e, 0x22, 0x1b, 0xc8, 0xaf, 0x3e, 0xa2, 0x2c, 0x2d, 0xb8, + 0x25, 0x05, 0xe0, 0xa3, 0x34, 0x56, 0xd0, 0x9b, 0xc8, 0x23, 0x8b, 0x15, + 0x1b, 0x48, 0xd2, 0xde, 0x60, 0xa0, 0x86, 0x40, 0x39, 0x0b, 0x38, 0xad, + 0x09, 0x78, 0x9e, 0x73, 0xcd, 0xb4, 0xce, 0x0d, 0x4d, 0x04, 0xc6, 0x2e, + 0xd0, 0xc3, 0x0c, 0x99, 0x56, 0x2a, 0xed, 0x9b, 0xfa, 0xe5, 0x11, 0x97, + 0x62, 0x5e, 0x2a, 0x0f, 0x22, 0x4b, 0x4f, 0x3d, 0x0b, 0xe4, 0xe6, 0x0e, + 0x0f, 0xb9, 0x6d, 0x1b, 0xd0, 0x05, 0x75, 0x20, 0x4d, 0x00, 0x9a, 0x99, + 0xdc, 0x67, 0x87, 0xd8, 0x4f, 0xa7, 0x39, 0x41, 0x41, 0x06, 0x28, 0xa9, + 0x7e, 0x71, 0xd1, 0xb9, 0xf8, 0x91, 0xcf, 0xf8, 0xa1, 0x32, 0xfc, 0xcf, + 0x65, 0xce, 0x2d, 0x04, 0x1d, 0xe9, 0x9a, 0x6a, 0xa2, 0x3e, 0x68, 0x94, + 0xb2, 0xed, 0x7e, 0x90, 0x62, 0xda, 0xd1, 0xa0, 0xfb, 0x21, 0x0e, 0x16, + 0xd0, 0x46, 0x80, 0x39, 0x39, 0x87, 0xd1, 0x98, 0x22, 0x23, 0xfc, 0x11, + 0x0f, 0xed, 0x20, 0x81, 0x97, 0x15, 0xf1, 0x46, 0xd8, 0xa7, 0x53, 0x82, + 0x7e, 0x51, 0x19, 0xab, 0xd0, 0xa9, 0x2a, 0xcc, 0x34, 0x83, 0xf6, 0x19, + 0xfe, 0x65, 0xab, 0xcf, 0xdf, 0xa4, 0x2d, 0x95, 0xa6, 0x12, 0xe5, 0x61, + 0x89, 0x91, 0x38, 0x81, 0x7d, 0x0d, 0x50, 0x61, 0x4c, 0x07, 0x50, 0x7c, + 0xd7, 0xf4, 0xb0, 0x05, 0x4c, 0x8f, 0xc0, 0x27, 0xb3, 0xf6, 0x1a, 0xec, + 0xa7, 0xbf, 0x25, 0x07, 0x8a, 0xf5, 0x7d, 0x8a, 0xfa, 0xbd, 0x2c, 0xa7, + 0xc7, 0x30, 0x04, 0x40, 0x29, 0xfe, 0xfc, 0xb2, 0x0f, 0x20, 0x7c, 0x01, + 0xcf, 0x4e, 0x7c, 0x34, 0xa0, 0x89, 0x89, 0xd9, 0xc4, 0x09, 0x48, 0x58, + 0x67, 0xc1, 0xf1, 0x08, 0xe2, 0x8a, 0x8a, 0x2c, 0xde, 0x73, 0x87, 0x8e, + 0x3a, 0x53, 0x28, 0x68, 0x57, 0x9e, 0x6e, 0xca, 0x93, 0x5d, 0x96, 0xce, + 0x28, 0xc5, 0xe7, 0xf9, 0x34, 0xd8, 0xd6, 0x21, 0x04, 0xf4, 0x69, 0xb0, + 0x7a, 0x6b, 0x66, 0xa8, 0x5e, 0xa6, 0x58, 0x9f, 0x2c, 0xeb, 0x64, 0x36, + 0xd1, 0xe6, 0xb1, 0xe3, 0xbc, 0x34, 0x94, 0x18, 0xb0, 0x97, 0xa0, 0x73, + 0x5b, 0x9b, 0x63, 0x05, 0xa9, 0x63, 0x98, 0xd4, 0x0e, 0xb8, 0x92, 0xcd, + 0x68, 0xa8, 0xdf, 0xa8, 0x9b, 0x75, 0x71, 0x02, 0xc4, 0xa0, 0xda, 0x2f, + 0xf7, 0x67, 0x44, 0x6e, 0xda, 0x68, 0x08, 0x52, 0x11, 0x4c, 0xeb, 0xc4, + 0x86, 0x2e, 0x30, 0x2d, 0x15, 0x23, 0xdb, 0xe6, 0x58, 0xcb, 0x18, 0xcd, + 0x9c, 0x0d, 0x4d, 0xcb, 0x80, 0xe0, 0x26, 0x05, 0x9b, 0x40, 0x51, 0x74, + 0xfc, 0xca, 0x7b, 0x89, 0x51, 0x76, 0xc0, 0x5b, 0xbf, 0x84, 0xe6, 0xad, + 0x64, 0xfa, 0xa3, 0x71, 0x06, 0xb6, 0x10, 0x93, 0x29, 0x90, 0x8a, 0x11, + 0x90, 0x39, 0x4a, 0xa8, 0x97, 0x7f, 0xdf, 0x00, 0x24, 0x71, 0x54, 0x96, + 0xf3, 0x08, 0xfd, 0x63, 0xf1, 0xe7, 0xac, 0xc7, 0x20, 0x96, 0x8e, 0xcc, + 0x4e, 0xef, 0x5d, 0x86, 0x26, 0x69, 0x1d, 0xa4, 0xa7, 0x32, 0xbf, 0xb2, + 0x7b, 0xe2, 0x2c, 0x1c, 0x83, 0xd2, 0x30, 0x2b, 0x20, 0x25, 0x09, 0xbe, + 0x42, 0xe0, 0xe0, 0xd1, 0x01, 0xb2, 0x90, 0xfa, 0xae, 0xfc, 0x53, 0x3e, + 0xf5, 0xe3, 0x2f, 0xf9, 0x9f, 0x33, 0xe9, 0xf4, 0x77, 0x5f, 0x14, 0xf2, + 0x68, 0x81, 0xc4, 0x94, 0x4d, 0x2b, 0xfd, 0xe3, 0xe6, 0xcf, 0x21, 0x4c, + 0x5c, 0x41, 0x50, 0xf3, 0x5f, 0xa7, 0x7f, 0xca, 0x13, 0xd4, 0x95, 0x78, + 0x20, 0x10, 0x8e, 0x0f, 0xb5, 0x11, 0xc1, 0xc6, 0xa3, 0x8b, 0x6c, 0x52, + 0x8c, 0x60, 0x1d, 0x27, 0x45, 0x0c, 0x32, 0x0c, 0x64, 0x4b, 0xfd, 0x2d, + 0xb7, 0x9b, 0x66, 0x6d, 0x92, 0x2f, 0xff, 0x30, 0xda, 0x0d, 0xcc, 0x2a, + 0x5e, 0x35, 0x84, 0xe4, 0x7e, 0x89, 0x64, 0x09, 0xab, 0x62, 0x25, 0x47, + 0x00, 0x43, 0xf4, 0xcf, 0xe3, 0xcd, 0x70, 0x3e, 0x4d, 0x70, 0xe8, 0x2f, + 0x3e, 0x62, 0x5e, 0xf4, 0x61, 0xdc, 0xe9, 0x68, 0xcc, 0x30, 0xc8, 0xaf, + 0x31, 0x1f, 0xcb, 0xb2, 0xfb, 0x98, 0xe1, 0xc0, 0x0d, 0xc1, 0xdf, 0x80, + 0xb5, 0x54, 0x04, 0xd7, 0x80, 0x69, 0x63, 0x05, 0x9e, 0xfb, 0xed, 0x37, + 0x8f, 0x59, 0xc7, 0xf8, 0xaa, 0xa0, 0x84, 0x1e, 0x32, 0x84, 0x48, 0xc6, + 0x66, 0xc4, 0xdf, 0x38, 0x15, 0x6e, 0x09, 0xae, 0xfb, 0xc3, 0xdf, 0x4f, + 0xcb, 0x38, 0xca, 0x6c, 0xa6, 0x9d, 0xe6, 0xd6, 0xc9, 0x41, 0x04, 0x82, + 0x83, 0x3e, 0x44, 0x1e, 0x76, 0xd0, 0x15, 0xb7, 0xc4, 0xb3, 0x17, 0xa4, + 0x87, 0xb1, 0x51, 0x1b, 0xcf, 0x40, 0xf8, 0x40, 0xcc, 0x49, 0x02, 0x9b, + 0x0b, 0x4d, 0x5b, 0xb6, 0x14, 0x94, 0xe4, 0x47, 0x2f, 0x9a, 0x8d, 0x02, + 0x70, 0x20, 0xb2, 0xf9, 0x03, 0x5b, 0x02, 0x79, 0x13, 0x51, 0xaf, 0x8e, + 0x23, 0x6d, 0xd2, 0xb4, 0xb9, 0x88, 0x80, 0x09, 0x4f, 0xb9, 0x47, 0xda, + 0x5c, 0xc5, 0xdf, 0xc4, 0x48, 0xa8, 0x2a, 0x56, 0x35, 0xb6, 0x21, 0x31, + 0x9c, 0x1c, 0x49, 0x56, 0x6d, 0xa4, 0xf3, 0xa6, 0x21, 0xb2, 0x6e, 0xcd, + 0xf0, 0xdf, 0xd9, 0xb5, 0x87, 0x96, 0x31, 0xf3, 0xad, 0x6a, 0x5f, 0x96, + 0xb0, 0x71, 0x4e, 0x35, 0xba, 0x06, 0x17, 0x3c, 0xed, 0x3d, 0x1e, 0x5a, + 0xc7, 0x0b, 0xfe, 0x3c, 0xcb, 0x15, 0x63, 0xed, 0xe1, 0xed, 0x43, 0xdf, + 0xf8, 0xb1, 0xfb, 0x34, 0x0c, 0x4a, 0x32, 0xca, 0x91, 0xb0, 0xfe, 0x25, + 0xca, 0x81, 0x3c, 0x1d, 0x73, 0x20, 0xe6, 0x21, 0xbf, 0x91, 0x21, 0x72, + 0x6e, 0xf0, 0x1c, 0x21, 0x76, 0xc8, 0x4f, 0x85, 0x05, 0x3b, 0x7b, 0xb0, + 0x59, 0x2c, 0x7e, 0xb9, 0xcf, 0xc1, 0x6f, 0x96, 0x76, 0xa2, 0x05, 0x76, + 0x9e, 0x56, 0x98, 0x59, 0xda, 0xbe, 0x93, 0xd2, 0xa6, 0xa9, 0x6c, 0x9e, + 0x2b, 0x7c, 0xbb, 0x91, 0x40, 0x45, 0x60, 0xfa, 0x4a, 0x43, 0x53, 0x20, + 0x4d, 0x81, 0x8f, 0x00, 0xa4, 0x70, 0x5a, 0xdd, 0xd5, 0x94, 0xc7, 0x02, + 0xf1, 0xce, 0xfc, 0x32, 0xeb, 0x9b, 0x29, 0x81, 0x99, 0x09, 0x29, 0x3e, + 0x93, 0xc1, 0xe8, 0xe9, 0x90, 0x33, 0x17, 0x08, 0x13, 0x4b, 0xc8, 0x2a, + 0x72, 0x80, 0x2c, 0xa6, 0xe3, 0x23, 0x4c, 0x49, 0x84, 0x49, 0xcb, 0x66, + 0x8d, 0xe6, 0x90, 0x97, 0x0c, 0x37, 0x22, 0x69, 0x9e, 0xe5, 0x9a, 0x23, + 0xe6, 0x28, 0x5d, 0x95, 0xde, 0xc4, 0x1b, 0xa1, 0x90, 0x0e, 0x4e, 0x45, + 0x8c, 0xb3, 0xb0, 0xa3, 0x27, 0xe0, 0xfe, 0x95, 0xe2, 0x01, 0xde, 0xd5, + 0xf8, 0xb6, 0xa6, 0x29, 0x8a, 0xa0, 0x9b, 0xe8, 0xa0, 0x40, 0x7e, 0xf2, + 0xfb, 0x11, 0x78, 0x09, 0xc2, 0x2e, 0xf8, 0x24, 0x53, 0x45, 0x38, 0x2f, + 0xe4, 0x72, 0xef, 0x10, 0x18, 0x6a, 0xd2, 0x93, 0x87, 0x8a, 0x59, 0x7d, + 0xaa, 0xd9, 0x8e, 0x26, 0xb5, 0xe1, 0x39, 0x56, 0xb2, 0x91, 0x76, 0xe6, + 0x52, 0x1c, 0x3f, 0xf8, 0xf1, 0x0d, 0x34, 0x85, 0xf3, 0x04, 0x4c, 0x5b, + 0x4a, 0x68, 0x8d, 0xe6, 0xfc, 0x76, 0x7b, 0x05, 0xaf, 0xee, 0xcc, 0xc9, + 0x3a, 0xdd, 0x12, 0xd1, 0x31, 0x94, 0x48, 0x10, 0x8c, 0x96, 0x46, 0x75, + 0xc0, 0x05, 0x5d, 0x52, 0xda, 0xfa, 0x8f, 0xc4, 0x4b, 0xd8, 0x01, 0x64, + 0x2c, 0x21, 0x61, 0xb4, 0xd2, 0x2c, 0x61, 0xb1, 0x0e, 0x05, 0x3f, 0x68, + 0x52, 0x64, 0x37, 0x60, 0x12, 0x79, 0x11, 0x0b, 0x03, 0x10, 0xde, 0x20, + 0x8d, 0xdb, 0x4a, 0x13, 0xfa, 0x5e, 0xd5, 0x06, 0xa1, 0x7f, 0x2c, 0xfd, + 0x9c, 0x0e, 0x12, 0x25, 0x11, 0x70, 0x13, 0x59, 0x04, 0x96, 0x39, 0x81, + 0x7f, 0x56, 0xff, 0xb3, 0xf9, 0x3f, 0xe9, 0xa0, 0xa9, 0x2f, 0xe0, 0x6f, + 0xe9, 0x2f, 0x1c, 0x32, 0x78, 0x56, 0xda, 0xff, 0xbf, 0xbb, 0xdf, 0xad, + 0xbb, 0x83, 0xfe, 0x98, 0xa4, 0x7f, 0xdf, 0xe6, 0x90, 0x29, 0x09, 0x3f, + 0x10, 0x29, 0x8b, 0xb4, 0x20, 0x92, 0x73, 0x75, 0x2c, 0x28, 0x8c, 0x94, + 0xcc, 0x80, 0xec, 0xac, 0x77, 0x5d, 0x59, 0x62, 0x03, 0xde, 0xdc, 0xb6, + 0x2b, 0x84, 0xdb, 0x0d, 0x94, 0x40, 0xb4, 0x37, 0x81, 0x48, 0xf7, 0x9c, + 0x66, 0xd5, 0x29, 0x14, 0x0d, 0x74, 0xa3, 0x3a, 0x93, 0x41, 0x86, 0xa3, + 0xf2, 0x03, 0x6e, 0x33, 0xed, 0xc3, 0xb6, 0x83, 0x2e, 0x86, 0x11, 0x24, + 0x46, 0x46, 0x62, 0x14, 0x82, 0x1b, 0x76, 0xc7, 0x36, 0x96, 0x0e, 0x12, + 0x75, 0xfb, 0xfb, 0x6f, 0xb3, 0xbd, 0x97, 0x70, 0xc6, 0x06, 0x29, 0x38, + 0x75, 0xfc, 0x26, 0x6b, 0x63, 0x34, 0xfc, 0x50, 0xac, 0x30, 0xca, 0xde, + 0x8e, 0x20, 0xd8, 0xb6, 0x9c, 0x49, 0x3e, 0x84, 0x95, 0x2c, 0x9b, 0x46, + 0x47, 0x36, 0x25, 0xc5, 0x76, 0x24, 0xfe, 0x21, 0x8a, 0x5d, 0x12, 0x82, + 0x12, 0xe1, 0xfe, 0x43, 0x01, 0x28, 0x89, 0xf2, 0x70, 0xda, 0x1a, 0xe4, + 0x62, 0xbd, 0x10, 0xec, 0x25, 0x8a, 0x16, 0x39, 0x71, 0xc1, 0xf2, 0xc3, + 0x31, 0x82, 0x30, 0x52, 0xa2, 0x0c, 0x5b, 0x44, 0xfa, 0xf3, 0x9f, 0xe8, + 0xe2, 0x89, 0x1f, 0xa1, 0xda, 0x3a, 0xc1, 0x47, 0x01, 0x5f, 0xa3, 0x2e, + 0xb6, 0xc0, 0x7b, 0x0f, 0x8d, 0x79, 0xd6, 0x8b, 0xff, 0x48, 0x75, 0x05, + 0xad, 0x17, 0x2f, 0x88, 0xdf, 0x3c, 0x27, 0xda, 0x44, 0xfc, 0x60, 0x76, + 0x69, 0xa4, 0x9f, 0x62, 0x75, 0xb6, 0xca, 0x43, 0x88, 0x89, 0xe7, 0x46, + 0x6f, 0x9e, 0xe0, 0x9f, 0xe5, 0xac, 0xfe, 0x9f, 0x05, 0xfe, 0x24, 0xc5, + 0xc6, 0xcd, 0x02, 0xe6, 0x44, 0x9b, 0xd7, 0xdc, 0xb6, 0x52, 0x88, 0xce, + 0x03, 0x59, 0x58, 0xc8, 0x93, 0x4d, 0xd8, 0x8f, 0xe1, 0x3d, 0x95, 0x47, + 0x0a, 0xbf, 0x4e, 0x52, 0x8c, 0xa0, 0xe2, 0xe3, 0x5c, 0xb0, 0xa2, 0xee, + 0x6b, 0xb0, 0x6d, 0x10, 0x90, 0xc2, 0xad, 0xf9, 0x2e, 0xb6, 0xa6, 0xec, + 0xd6, 0xd8, 0x0f, 0xac, 0x3d, 0x17, 0x28, 0xa6, 0xc9, 0x33, 0x38, 0xb0, + 0x12, 0x6e, 0xd3, 0xad, 0xfa, 0x2e, 0xb6, 0x6a, 0x75, 0xab, 0x18, 0x2a, + 0xd4, 0xac, 0x42, 0x1b, 0x44, 0x79, 0x30, 0x18, 0x00, 0x1d, 0x40, 0x4e, + 0x37, 0x1e, 0x1a, 0x1f, 0xc5, 0xf1, 0x00, 0xdf, 0x50, 0xe0, 0xb0, 0x40, + 0xae, 0xea, 0xfd, 0xc9, 0x45, 0x9f, 0xad, 0xc4, 0x20, 0x84, 0x12, 0x65, + 0x1b, 0x24, 0x5f, 0xb5, 0x02, 0x9c, 0x89, 0x81, 0xbf, 0x80, 0xa9, 0x0d, + 0x7d, 0xb1, 0x02, 0x9e, 0x0a, 0x02, 0x7f, 0xbb, 0xd0, 0x3e, 0xd3, 0x67, + 0x36, 0xe5, 0x0f, 0x3d, 0x5c, 0x2a, 0xee, 0x7a, 0x28, 0x10, 0xf1, 0xba, + 0xd9, 0xb2, 0x04, 0x18, 0xbe, 0xae, 0xf4, 0xb9, 0x04, 0x17, 0x2f, 0x6c, + 0x9b, 0x24, 0xe1, 0xc7, 0x1d, 0x7a, 0x65, 0xd2, 0x46, 0x23, 0x13, 0x59, + 0xd7, 0xb8, 0x22, 0x04, 0x4e, 0xf3, 0x81, 0x51, 0xf0, 0xc7, 0xa4, 0x26, + 0x4e, 0x4f, 0x9a, 0x3a, 0xd5, 0xe0, 0x66, 0x09, 0x1c, 0x76, 0x8e, 0xf6, + 0x22, 0xae, 0xae, 0x5c, 0xdb, 0x39, 0x20, 0x1d, 0x80, 0x33, 0xfc, 0x6e, + 0xd9, 0xb7, 0x5c, 0x8a, 0xf6, 0x0a, 0x65, 0x3c, 0xed, 0xad, 0xbd, 0x01, + 0x0c, 0xe8, 0x03, 0x5f, 0x11, 0x46, 0x20, 0xfd, 0xc2, 0x38, 0x87, 0x89, + 0xfe, 0x2f, 0x9d, 0x63, 0x83, 0xaa, 0x77, 0x3f, 0x2f, 0xeb, 0x7a, 0x2c, + 0x37, 0xf1, 0x7f, 0x86, 0x04, 0xba, 0x44, 0xcb, 0x92, 0x5d, 0x9f, 0x2c, + 0x87, 0xef, 0xd3, 0x45, 0x44, 0xb0, 0x00, 0xb6, 0xd6, 0x54, 0x02, 0xf0, + 0xf4, 0xe8, 0x53, 0x2a, 0x45, 0xc8, 0x73, 0x74, 0x8f, 0x25, 0xfd, 0x1d, + 0xcf, 0x97, 0x89, 0xbd, 0x65, 0xe0, 0x57, 0x86, 0x6c, 0x79, 0x81, 0xc9, + 0x9f, 0x69, 0x73, 0x64, 0xd4, 0xe0, 0x1e, 0x45, 0x2a, 0x64, 0x55, 0xf4, + 0x14, 0xed, 0x92, 0xb6, 0xf1, 0x64, 0xe3, 0x6f, 0x9d, 0xa2, 0xe4, 0xb1, + 0xa6, 0x6a, 0xf4, 0xe8, 0x30, 0xdb, 0xd3, 0xf2, 0xb5, 0x14, 0x66, 0xd8, + 0x67, 0xe8, 0x84, 0x46, 0x18, 0x26, 0xd1, 0x04, 0xe6, 0x8f, 0xa1, 0x99, + 0x2e, 0xd2, 0x2b, 0xc3, 0x5c, 0x06, 0x48, 0x1b, 0x5d, 0x11, 0x6a, 0x3a, + 0xc0, 0x4b, 0x43, 0x41, 0x1b, 0x2a, 0xb1, 0xc1, 0x38, 0x42, 0x32, 0x03, + 0x05, 0x15, 0xcf, 0x96, 0x8a, 0x8a, 0xf2, 0x78, 0x6b, 0x00, 0x54, 0x7c, + 0x44, 0xcf, 0xa2, 0x39, 0x6a, 0x75, 0x01, 0x4c, 0x18, 0x34, 0xb0, 0x37, + 0xad, 0x0b, 0x63, 0x72, 0x4a, 0x38, 0x08, 0x11, 0x35, 0x7d, 0x32, 0xb6, + 0xb3, 0x24, 0x31, 0x15, 0x9e, 0x90, 0x83, 0x7b, 0xec, 0x04, 0x7e, 0x2d, + 0xb3, 0xaf, 0x1a, 0x02, 0x6c, 0x26, 0xfb, 0x0c, 0xdf, 0xbe, 0x5e, 0xf4, + 0x76, 0xe3, 0xc7, 0x38, 0x24, 0xb7, 0xb6, 0xd6, 0x69, 0x41, 0x8e, 0xe2, + 0x38, 0xc7, 0x01, 0xc9, 0x2f, 0xb8, 0x15, 0xcb, 0x87, 0x61, 0xde, 0x61, + 0x64, 0xb9, 0x9b, 0xb8, 0xce, 0x65, 0xae, 0xcf, 0x30, 0x21, 0x67, 0x2b, + 0x97, 0xe7, 0xbe, 0xfa, 0xca, 0xd5, 0x09, 0x6b, 0xd7, 0xfe, 0x8d, 0xf9, + 0xb3, 0x9f, 0xf9, 0xe5, 0xe3, 0x88, 0x20, 0xae, 0x3f, 0xaa, 0x49, 0x7d, + 0xe4, 0xb0, 0xc6, 0x47, 0xc9, 0x0e, 0x1d, 0x3d, 0xfc, 0x15, 0xe3, 0x9e, + 0xb4, 0x95, 0xe4, 0xf4, 0x01, 0x51, 0x2b, 0x85, 0x16, 0xed, 0x7d, 0x92, + 0xbf, 0x21, 0x23, 0x4a, 0xda, 0x5e, 0x73, 0xd4, 0x63, 0xa9, 0x93, 0xfa, + 0xb6, 0xcf, 0x56, 0x88, 0xe8, 0x54, 0xbb, 0xd9, 0xe5, 0xbf, 0x25, 0x33, + 0x4c, 0x38, 0x88, 0x77, 0xa8, 0x2b, 0xf9, 0x26, 0x1b, 0x49, 0x6b, 0xe8, + 0xf0, 0x9f, 0xe0, 0x39, 0x6d, 0x99, 0xb3, 0x84, 0xfb, 0xa0, 0xef, 0x7c, + 0xbd, 0xeb, 0x84, 0xc3, 0xe5, 0x67, 0xb0, 0x3c, 0x4c, 0xd1, 0x5c, 0xbf, + 0xb3, 0xc0, 0xb1, 0xd0, 0xd4, 0x7c, 0x7b, 0xbe, 0x8b, 0x12, 0x4d, 0x90, + 0xf3, 0x52, 0xc0, 0x65, 0x90, 0x46, 0x6d, 0x63, 0x09, 0x9e, 0x5d, 0x4a, + 0x91, 0xfd, 0x53, 0x00, 0x2a, 0xee, 0xc3, 0xd7, 0x01, 0x20, 0xc0, 0x77, + 0x26, 0x13, 0x91, 0xd8, 0x26, 0x64, 0x6c, 0x6a, 0x3f, 0xca, 0x3f, 0xef, + 0x47, 0x43, 0xd4, 0x95, 0xf0, 0xea, 0x13, 0x97, 0x33, 0x37, 0x7d, 0x68, + 0x1f, 0x54, 0x0f, 0x8d, 0x02, 0x86, 0x0d, 0x2d, 0x44, 0x06, 0x5b, 0x84, + 0x06, 0xf6, 0x4d, 0xec, 0x11, 0x87, 0x5d, 0x49, 0xed, 0xd4, 0xa6, 0x1c, + 0x9a, 0xcf, 0x02, 0xb4, 0xc3, 0x04, 0x57, 0xec, 0x2d, 0x52, 0xc2, 0x91, + 0x36, 0xb3, 0xda, 0x42, 0x82, 0x59, 0xc3, 0x8f, 0x6b, 0x1d, 0x9c, 0xc2, + 0x28, 0xe4, 0xf0, 0xd3, 0x2b, 0x4f, 0x1a, 0x99, 0x73, 0xd9, 0x02, 0x05, + 0x00, 0x5c, 0x84, 0x3f, 0x02, 0xb7, 0x0f, 0xc7, 0xeb, 0xe1, 0x6c, 0x73, + 0x39, 0xaa, 0x8a, 0x1c, 0x46, 0x5a, 0x52, 0xa5, 0xc4, 0xd5, 0xdd, 0x99, + 0xf1, 0x35, 0x9a, 0x1a, 0x57, 0x27, 0xc6, 0x36, 0x15, 0x8b, 0xa1, 0xeb, + 0xb1, 0x55, 0x66, 0x2c, 0x0f, 0x8b, 0x30, 0xe3, 0xee, 0xb0, 0x27, 0x3e, + 0x39, 0xe1, 0xb1, 0x62, 0x1b, 0x87, 0x7a, 0x94, 0x04, 0xbe, 0x82, 0x85, + 0xa9, 0xff, 0x5c, 0x53, 0x80, 0x5b, 0xdb, 0xb1, 0x3d, 0xa7, 0xc7, 0x56, + 0x8d, 0xe5, 0x51, 0x5c, 0x95, 0x2c, 0x6a, 0x7f, 0xad, 0xae, 0xad, 0x89, + 0x6c, 0x7a, 0x4f, 0x8b, 0x7b, 0x66, 0x1a, 0x47, 0xe5, 0xfe, 0x5d, 0xb8, + 0xe0, 0x7e, 0xd6, 0x46, 0x61, 0x83, 0x6c, 0x9e, 0x85, 0x0e, 0xb4, 0x51, + 0x6a, 0x50, 0xcd, 0x5a, 0x0f, 0x1e, 0xca, 0xf2, 0x4d, 0xca, 0x76, 0xa1, + 0x77, 0x62, 0x2e, 0xd2, 0x89, 0x39, 0x3c, 0x2d, 0x3b, 0xd0, 0x59, 0x12, + 0xb0, 0x26, 0xd8, 0x21, 0xa7, 0xcc, 0x90, 0xaf, 0xd0, 0xa9, 0xb8, 0xb0, + 0x38, 0x98, 0xe2, 0xfb, 0x6e, 0x60, 0xff, 0x09, 0x41, 0x4a, 0xfc, 0xe6, + 0x75, 0xf8, 0xec, 0x5e, 0xcc, 0x19, 0x35, 0x9c, 0x4c, 0xad, 0x0d, 0x59, + 0x3f, 0x87, 0x6d, 0xc7, 0xb5, 0x04, 0x5a, 0xfb, 0xaa, 0x6b, 0x10, 0xf1, + 0x17, 0x21, 0xc2, 0x90, 0xdc, 0xbb, 0x5d, 0x8d, 0x08, 0xdb, 0xc1, 0xeb, + 0x8c, 0x38, 0xd6, 0x94, 0xdf, 0xc9, 0xa0, 0x13, 0x9b, 0x75, 0xb4, 0x50, + 0xef, 0x67, 0xe2, 0xef, 0x65, 0xe8, 0x7f, 0x9a, 0xb9, 0x27, 0x33, 0x7a, + 0xc7, 0xf4, 0x03, 0x05, 0xc9, 0x9c, 0x66, 0xdc, 0x3c, 0xe4, 0xee, 0x23, + 0x38, 0xe7, 0xab, 0xff, 0x9c, 0x2b, 0x30, 0x64, 0x3c, 0xba, 0x6d, 0xbc, + 0xd7, 0xd1, 0x7b, 0x76, 0xf7, 0x85, 0xd1, 0x5d, 0x7a, 0xd0, 0xfe, 0xa8, + 0x7e, 0x56, 0xef, 0xd7, 0xdf, 0x76, 0xd4, 0x3e, 0x42, 0x83, 0x60, 0x44, + 0xb5, 0xa1, 0x13, 0xf3, 0xff, 0xc9, 0x0e, 0xa7, 0x50, 0x10, 0xc1, 0x3e, + 0x0c, 0x92, 0xbf, 0x82, 0x31, 0xb0, 0xda, 0x1f, 0x1d, 0x52, 0x7f, 0x14, + 0xb3, 0x36, 0x39, 0xed, 0x75, 0x7e, 0xc0, 0x06, 0x0f, 0x4b, 0xfe, 0x48, + 0xd7, 0xb3, 0xd6, 0xad, 0xaa, 0xb0, 0x6e, 0x98, 0x4d, 0xfb, 0x5b, 0x5d, + 0xc3, 0xbc, 0xbc, 0x68, 0x6b, 0x98, 0x1a, 0xe9, 0x91, 0x24, 0xc8, 0xc4, + 0x2c, 0x9a, 0x75, 0x7a, 0xfd, 0x02, 0x47, 0xfa, 0xdf, 0xc1, 0xf5, 0x97, + 0x43, 0x9e, 0x1c, 0xd4, 0xa5, 0x79, 0xb5, 0x25, 0x36, 0xa2, 0xce, 0x14, + 0xb6, 0x0c, 0x70, 0x3b, 0x07, 0xf8, 0x30, 0x2c, 0xbb, 0x73, 0x42, 0xea, + 0x49, 0xec, 0x13, 0xa9, 0xc9, 0x90, 0x00, 0x66, 0x7f, 0xf5, 0xd9, 0x74, + 0xf2, 0x52, 0x3c, 0xe7, 0x1a, 0x32, 0x1d, 0x0b, 0x59, 0xf2, 0x4a, 0xbd, + 0x2c, 0x90, 0x80, 0x42, 0xf8, 0x7a, 0xd2, 0xd9, 0xb0, 0x0e, 0x1b, 0xef, + 0x19, 0x00, 0x36, 0xe0, 0xda, 0x7f, 0x83, 0x0e, 0xa1, 0x90, 0x1f, 0x70, + 0xc7, 0x28, 0xa1, 0x49, 0x2e, 0xda, 0x2a, 0x82, 0xac, 0xf2, 0xef, 0x74, + 0xeb, 0xe3, 0x5d, 0xa3, 0x56, 0xb2, 0x80, 0x09, 0xf2, 0xc9, 0x0d, 0x41, + 0x4f, 0xf7, 0xfb, 0xb1, 0x8b, 0x17, 0x07, 0x83, 0x2e, 0x65, 0x56, 0x20, + 0xdc, 0x99, 0x1e, 0xf8, 0x3b, 0xe1, 0x51, 0xa0, 0x57, 0xc5, 0x57, 0x60, + 0x89, 0x1e, 0x24, 0xf1, 0x57, 0x58, 0xad, 0xac, 0x80, 0x07, 0x88, 0x75, + 0x31, 0xe2, 0x97, 0x39, 0xe6, 0x92, 0x3a, 0x7d, 0xa2, 0xbf, 0x6e, 0x5d, + 0xa7, 0xa9, 0x6b, 0xae, 0xaa, 0xa8, 0x30, 0xb8, 0x97, 0x13, 0x7a, 0x15, + 0x7b, 0x20, 0x10, 0xcc, 0xb0, 0x27, 0x0e, 0x1b, 0x10, 0xbd, 0x55, 0xec, + 0x4f, 0xd1, 0xa6, 0x59, 0x29, 0x8c, 0x31, 0x72, 0x07, 0x2f, 0x4f, 0x6e, + 0xd5, 0xc4, 0x50, 0x20, 0x2d, 0x05, 0x29, 0xf8, 0x6c, 0x8d, 0x41, 0xc4, + 0x0e, 0x9c, 0x74, 0x12, 0x3e, 0xc9, 0xa8, 0x0c, 0x35, 0x43, 0x8a, 0x9d, + 0x5b, 0xee, 0x53, 0x18, 0xd9, 0xf1, 0x7c, 0xe2, 0xaf, 0xe5, 0x7c, 0x7a, + 0x6f, 0xcc, 0x43, 0xae, 0xdb, 0x55, 0xa1, 0x4b, 0x8b, 0x09, 0xeb, 0xd8, + 0x57, 0xda, 0x8f, 0x64, 0x8f, 0xf2, 0xb0, 0x3c, 0xee, 0x90, 0x77, 0xdd, + 0x37, 0x76, 0x87, 0xfb, 0xbe, 0x4a, 0xb6, 0x75, 0x03, 0x75, 0xf0, 0x2a, + 0x92, 0x3c, 0xfe, 0xe1, 0x5c, 0x37, 0x09, 0xc8, 0x55, 0x28, 0xe8, 0x70, + 0x37, 0xef, 0x3f, 0x70, 0x71, 0xd9, 0x3b, 0x25, 0x2e, 0x11, 0xc7, 0x71, + 0x86, 0x59, 0x0e, 0x5f, 0x1d, 0x24, 0xfe, 0xf9, 0x4f, 0x0a, 0xbb, 0xfe, + 0x92, 0x8b, 0x8f, 0x18, 0xa5, 0xaa, 0x68, 0xc3, 0xd4, 0x8f, 0xb8, 0x00, + 0x6e, 0x3e, 0x7e, 0x24, 0x12, 0x95, 0xa9, 0x3d, 0xbd, 0xa4, 0x93, 0xc5, + 0x67, 0xef, 0x75, 0x11, 0xb2, 0x50, 0x80, 0xc1, 0x19, 0x1b, 0x8c, 0xbc, + 0x9b, 0x2d, 0xad, 0xbe, 0xe4, 0x95, 0xe4, 0x82, 0xd1, 0xab, 0xee, 0x29, + 0x39, 0x97, 0x8f, 0x92, 0xc5, 0x7e, 0x94, 0x10, 0xe8, 0x8e, 0xbe, 0x05, + 0x23, 0xb5, 0xda, 0x8e, 0xe9, 0x79, 0x88, 0x10, 0x22, 0x1f, 0x5c, 0xb9, + 0xd9, 0x10, 0x24, 0x28, 0xed, 0xc1, 0xe8, 0xa6, 0x21, 0xee, 0xda, 0x83, + 0x82, 0x44, 0x43, 0x13, 0x74, 0x69, 0xb0, 0x33, 0xd0, 0xaf, 0x1a, 0x07, + 0x09, 0x46, 0x42, 0xa8, 0xfb, 0x09, 0x81, 0xe5, 0x91, 0x21, 0xe5, 0xcb, + 0x1b, 0x0e, 0x26, 0x0c, 0x08, 0x99, 0xbb, 0x0c, 0x3a, 0xdc, 0xcf, 0x0e, + 0x9d, 0xc8, 0xc4, 0xee, 0x1a, 0xdc, 0xf5, 0x3d, 0x60, 0x8a, 0xe8, 0x0e, + 0xab, 0xbb, 0xad, 0x49, 0xa0, 0x6d, 0x70, 0x9b, 0x85, 0x29, 0x3c, 0x31, + 0xf7, 0xed, 0xa5, 0xed, 0xf6, 0x4c, 0x1f, 0x26, 0x0d, 0x06, 0x8b, 0xe7, + 0x0f, 0x0c, 0x4c, 0xbe, 0x23, 0xa0, 0xbf, 0x20, 0x76, 0xd3, 0x23, 0x67, + 0x7e, 0x64, 0x32, 0x8b, 0x9d, 0xd0, 0x77, 0x4c, 0x3d, 0xb9, 0xb0, 0x71, + 0x1c, 0x5d, 0x9a, 0xa8, 0xa7, 0x8d, 0xac, 0x3e, 0xbc, 0xe1, 0x27, 0x45, + 0x34, 0xb1, 0x1a, 0x05, 0x60, 0x7b, 0x90, 0xb1, 0x4f, 0x95, 0xa2, 0x19, + 0x3f, 0x86, 0xf3, 0x21, 0x0a, 0xfc, 0x6f, 0x55, 0x44, 0xfc, 0x52, 0xde, + 0x33, 0x98, 0xc3, 0x1c, 0xca, 0x61, 0xe8, 0x1e, 0x6c, 0xe3, 0x9c, 0xc3, + 0xb2, 0xdf, 0x6a, 0x93, 0x4b, 0x71, 0x29, 0x67, 0xe7, 0x26, 0x68, 0x89, + 0xda, 0x74, 0x0a, 0xf7, 0x42, 0xcc, 0x3c, 0x2c, 0x78, 0x6a, 0xf4, 0x39, + 0x15, 0x30, 0x29, 0xec, 0x87, 0xca, 0xdc, 0x06, 0x7e, 0x25, 0x07, 0x83, + 0xd8, 0xc8, 0xfa, 0x21, 0x86, 0x10, 0x29, 0xb4, 0x10, 0xbc, 0x3e, 0xee, + 0xe3, 0x5c, 0x56, 0x01, 0x94, 0xbe, 0xa6, 0x63, 0x23, 0x8b, 0x5f, 0x9d, + 0x26, 0xc2, 0x6f, 0x86, 0x06, 0x45, 0x2f, 0x01, 0x4c, 0x1c, 0xea, 0x96, + 0xdd, 0xb5, 0x1e, 0xbb, 0x28, 0x1a, 0xca, 0x6a, 0xf8, 0x67, 0x82, 0xac, + 0xa3, 0x41, 0x7b, 0xa0, 0xc1, 0xfe, 0x34, 0x4f, 0x66, 0x85, 0x90, 0xc5, + 0x05, 0x1b, 0xc4, 0x86, 0xde, 0x51, 0xf1, 0x2b, 0x9c, 0x89, 0x46, 0x3c, + 0xd6, 0xf7, 0x26, 0xe5, 0xe0, 0xd7, 0x93, 0xac, 0xa3, 0x9c, 0xdb, 0xb0, + 0x72, 0x6e, 0x5f, 0xad, 0x9c, 0x08, 0x7b, 0xc2, 0x3f, 0x2e, 0x81, 0xa7, + 0xb6, 0xa0, 0x42, 0xd6, 0xdc, 0x80, 0x02, 0xcc, 0x21, 0xb1, 0x82, 0xbf, + 0x4b, 0x45, 0x06, 0x5a, 0x4f, 0x45, 0xf4, 0x35, 0x2f, 0x61, 0x45, 0xd1, + 0x8a, 0x3f, 0x5b, 0x5d, 0x06, 0x7a, 0x5f, 0x75, 0x31, 0x6f, 0xea, 0xc4, + 0xbc, 0xd1, 0xc7, 0x75, 0x3c, 0x29, 0xf7, 0xe8, 0x65, 0xa5, 0x1d, 0x9c, + 0xdb, 0x95, 0xfb, 0xaf, 0x0c, 0xb5, 0x93, 0xc7, 0xbb, 0xef, 0xe2, 0x7e, + 0xe3, 0xe5, 0x7f, 0x09, 0xae, 0xe2, 0x59, 0x1b, 0xee, 0x3a, 0x3e, 0xb4, + 0x8a, 0xd7, 0xd4, 0x2a, 0x1c, 0x63, 0x3b, 0xc3, 0x67, 0xa4, 0x03, 0x57, + 0xca, 0xf1, 0xff, 0x26, 0x08, 0xf5, 0xf1, 0x25, 0xfc, 0x8e, 0x22, 0x0b, + 0x57, 0x80, 0x79, 0xc1, 0x81, 0x6c, 0xd0, 0xb6, 0x48, 0x36, 0xbf, 0xf3, + 0x13, 0x03, 0xe1, 0xe4, 0xa3, 0xae, 0x00, 0xef, 0xa9, 0xc2, 0x8f, 0xdf, + 0x7d, 0xf5, 0x73, 0x06, 0x16, 0xe2, 0x87, 0xf0, 0x95, 0x3e, 0x84, 0x87, + 0xaf, 0x7e, 0xfe, 0x3a, 0x5d, 0x18, 0xcb, 0x59, 0xb7, 0x53, 0xa6, 0x59, + 0x78, 0x75, 0x60, 0x96, 0xbe, 0xa3, 0x82, 0xfb, 0x48, 0xda, 0xfb, 0x11, + 0x4a, 0x7e, 0x06, 0xda, 0xa4, 0x70, 0xdf, 0xee, 0xf5, 0x70, 0x54, 0xef, + 0xcb, 0x3e, 0x38, 0xd1, 0x4a, 0x96, 0xd0, 0x20, 0xaf, 0x87, 0x60, 0x8f, + 0x58, 0x77, 0xec, 0x91, 0x4d, 0x4c, 0xe1, 0xbb, 0xef, 0xbe, 0x7d, 0xda, + 0x14, 0x8f, 0x8b, 0x78, 0xdb, 0x2b, 0x7a, 0xe0, 0xa3, 0xde, 0xbe, 0xc6, + 0xcf, 0xd8, 0x13, 0x20, 0x60, 0xbc, 0x30, 0x9a, 0xad, 0xbc, 0x83, 0x02, + 0x5d, 0xa9, 0xfb, 0x5f, 0xf1, 0x46, 0x2f, 0x67, 0xe3, 0xee, 0x34, 0xcb, + 0x90, 0x5d, 0x93, 0xd4, 0x3b, 0x13, 0xc2, 0x19, 0x6d, 0x26, 0x8d, 0x14, + 0x48, 0x20, 0x61, 0x7f, 0x50, 0x10, 0xee, 0x84, 0x05, 0xa4, 0x87, 0x86, + 0x66, 0x01, 0x9b, 0xc4, 0x66, 0x7e, 0x33, 0xbf, 0x87, 0x9f, 0xf2, 0x90, + 0x09, 0xf0, 0xfe, 0xb3, 0x03, 0x9e, 0x5c, 0x00, 0x1c, 0x31, 0xc0, 0x49, + 0x35, 0xeb, 0x90, 0x9f, 0x59, 0xa3, 0xdc, 0x2e, 0xff, 0xad, 0xa7, 0x6d, + 0xcc, 0x88, 0xf3, 0x0f, 0x1c, 0x1c, 0xe0, 0x13, 0x8c, 0x9c, 0x46, 0xef, + 0xbd, 0xf3, 0x5e, 0x4b, 0xd8, 0xe7, 0x6d, 0x3e, 0xe1, 0x4c, 0x23, 0x27, + 0x43, 0xad, 0x2d, 0x28, 0xa6, 0x06, 0x65, 0xc1, 0x6a, 0x2c, 0x7c, 0x74, + 0x15, 0xeb, 0x9b, 0xe8, 0x4a, 0x3b, 0x5c, 0x75, 0xae, 0xa5, 0xdb, 0x17, + 0xcd, 0xc9, 0xbb, 0xb4, 0x03, 0x38, 0x32, 0xb9, 0xb8, 0x8f, 0xd1, 0xfc, + 0x57, 0xf9, 0x19, 0xee, 0x86, 0x0f, 0x77, 0x03, 0x70, 0x29, 0x02, 0x93, + 0x1a, 0xcb, 0x0a, 0x8f, 0x07, 0x05, 0xf6, 0x6f, 0x3f, 0xfc, 0x01, 0x35, + 0x65, 0x9f, 0x7f, 0x0d, 0x62, 0x00, 0x00 }; diff --git a/Arduino/McLighting/htm_index_gz.h b/Arduino/McLighting/htm_index_gz.h index be6cd62..eb5f9fd 100644 --- a/Arduino/McLighting/htm_index_gz.h +++ b/Arduino/McLighting/htm_index_gz.h @@ -1,1652 +1,1718 @@ #include -#define index_htm_gz_len 19755 +#define index_htm_gz_len 20547 static const char index_htm_gz[] PROGMEM ={ - 0x1f, 0x8b, 0x08, 0x08, 0xb6, 0xdf, 0x88, 0x5d, 0x04, 0x00, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xe4, 0x5d, 0x5d, 0x77, - 0x1b, 0x3d, 0x11, 0xbe, 0xe7, 0x1c, 0xfe, 0xc3, 0xd6, 0x85, 0xd6, 0x06, - 0xdb, 0xf1, 0x47, 0x12, 0x52, 0xa7, 0xce, 0x4b, 0xda, 0xa6, 0xa5, 0xd0, - 0x8f, 0x97, 0xa6, 0x50, 0xa0, 0xf4, 0x84, 0xb5, 0x2d, 0xdb, 0x4b, 0xd6, - 0xbb, 0x66, 0x77, 0xdd, 0x24, 0x0d, 0xf9, 0x27, 0x9c, 0xc3, 0x0d, 0x37, - 0xfc, 0x01, 0xae, 0xb8, 0x82, 0x3f, 0xc6, 0x33, 0x23, 0x69, 0xb5, 0x9f, - 0x8e, 0x9d, 0x26, 0xe6, 0x2b, 0xef, 0x5b, 0xdb, 0x2b, 0x8d, 0x66, 0x46, - 0xa3, 0xd1, 0x68, 0x24, 0x8d, 0xb4, 0x8f, 0xef, 0x3d, 0x7b, 0xfb, 0xf4, - 0xfd, 0xaf, 0xbf, 0x3d, 0xb2, 0xa6, 0xd1, 0xcc, 0x3d, 0xf8, 0xee, 0x77, - 0x1e, 0xab, 0x6f, 0x0b, 0x7f, 0x8f, 0xa7, 0xc2, 0x1e, 0xa9, 0xdf, 0xfc, - 0x1c, 0x39, 0x91, 0x2b, 0x0e, 0x5e, 0x0f, 0x5f, 0x39, 0x93, 0x69, 0xe4, - 0x78, 0x93, 0xc7, 0x5b, 0x9c, 0x92, 0x04, 0x99, 0x89, 0xc8, 0xb6, 0x86, - 0x53, 0x3b, 0x08, 0x45, 0xd4, 0xaf, 0xfc, 0xe2, 0xfd, 0xf3, 0xc6, 0x5e, - 0x25, 0x97, 0xef, 0xd9, 0x33, 0xd1, 0xaf, 0x7c, 0x76, 0xc4, 0xd9, 0xdc, - 0x0f, 0xa2, 0x8a, 0x35, 0xf4, 0xbd, 0x48, 0x78, 0x80, 0x3f, 0x73, 0x46, - 0xd1, 0xb4, 0x3f, 0x12, 0x9f, 0x9d, 0xa1, 0x68, 0xf0, 0x43, 0xdd, 0x72, - 0x3c, 0x27, 0x72, 0x6c, 0xb7, 0x11, 0x0e, 0x6d, 0x57, 0xf4, 0xdb, 0xcd, - 0x56, 0x19, 0xbe, 0x99, 0x3f, 0x70, 0x5c, 0x14, 0x13, 0x83, 0x86, 0x3d, - 0x9f, 0x37, 0x86, 0xf6, 0xdc, 0x1e, 0xb8, 0x22, 0x81, 0xfd, 0x42, 0x84, - 0xa9, 0xb2, 0xae, 0xe3, 0x9d, 0x5a, 0x81, 0x70, 0xfb, 0x95, 0x70, 0x0a, - 0x3e, 0x86, 0x8b, 0xc8, 0x72, 0x00, 0x5c, 0xb1, 0xa6, 0x81, 0x18, 0xf7, - 0x2b, 0xd3, 0x28, 0x9a, 0x87, 0xbd, 0xad, 0xad, 0xc0, 0x3e, 0x6b, 0x4e, - 0x9c, 0x68, 0xba, 0x18, 0x2c, 0x42, 0x11, 0x28, 0x6c, 0xcd, 0xa1, 0x3f, - 0xdb, 0x7a, 0x6e, 0x0f, 0x5e, 0xd9, 0x83, 0xc6, 0xab, 0x85, 0xf0, 0x84, - 0xb7, 0x65, 0xe4, 0xb2, 0x35, 0xb3, 0xc3, 0x48, 0x04, 0x5b, 0x87, 0xc1, - 0x68, 0xe1, 0x78, 0x7e, 0x32, 0x67, 0x64, 0x47, 0xf6, 0xd6, 0xd8, 0xfe, - 0x4c, 0x84, 0x9a, 0xf8, 0xa8, 0x58, 0xd1, 0xc5, 0x1c, 0xcc, 0x3b, 0x33, - 0x7b, 0x22, 0xb6, 0xce, 0x1b, 0x92, 0x81, 0xad, 0x62, 0x36, 0x51, 0x2d, - 0x54, 0x30, 0xf2, 0x17, 0xc3, 0x69, 0xe3, 0xce, 0x39, 0xcd, 0x12, 0x6b, - 0xce, 0xbd, 0x49, 0x99, 0xf8, 0xa2, 0x0b, 0x57, 0x84, 0x53, 0x21, 0xa2, - 0x2c, 0x47, 0x63, 0xf0, 0x10, 0x36, 0x27, 0xbe, 0x3f, 0x71, 0x85, 0x3d, - 0x77, 0x42, 0x66, 0x66, 0x18, 0x86, 0xdf, 0x8c, 0xed, 0x99, 0xe3, 0x5e, - 0xf4, 0x5f, 0xdb, 0xa0, 0x8e, 0xd6, 0xfd, 0xe1, 0x4b, 0x50, 0x48, 0xb7, - 0x0e, 0x23, 0x45, 0xc2, 0x0f, 0xac, 0x4b, 0x4a, 0x1d, 0xd8, 0xc3, 0xd3, - 0x49, 0xe0, 0x2f, 0xbc, 0x51, 0x23, 0x10, 0x73, 0x61, 0x47, 0x3d, 0xcb, - 0xf3, 0xd5, 0xcf, 0x7d, 0x02, 0x98, 0xdb, 0xa3, 0x11, 0xf8, 0xee, 0x59, - 0x2d, 0x7e, 0x9c, 0xd9, 0xc1, 0xc4, 0xf1, 0xe4, 0xd3, 0x15, 0xb0, 0xd4, - 0xad, 0x9e, 0x3d, 0x06, 0x31, 0x7c, 0x0f, 0xc4, 0xd8, 0x0f, 0x04, 0xa3, - 0xc5, 0x1f, 0x29, 0xcc, 0xa9, 0x13, 0x35, 0x06, 0xfe, 0x79, 0x23, 0x74, - 0xbe, 0x30, 0x0a, 0xc7, 0x9b, 0x82, 0x2d, 0xc6, 0x8b, 0xbf, 0x82, 0x1c, - 0x89, 0x94, 0xfa, 0x8a, 0x46, 0x43, 0x35, 0x25, 0x28, 0xd1, 0xdb, 0xed, - 0x34, 0x77, 0xbe, 0xcf, 0xf9, 0x03, 0x7f, 0x74, 0x91, 0xcf, 0x6f, 0x37, - 0x77, 0xc4, 0x4c, 0xa1, 0x86, 0x0c, 0x45, 0x63, 0x2a, 0x48, 0xe6, 0x48, - 0xdf, 0xdd, 0x4f, 0xc0, 0x9e, 0xc9, 0xd4, 0xed, 0x56, 0x2b, 0x99, 0x2a, - 0xe5, 0xd6, 0xab, 0xbc, 0x43, 0x67, 0x38, 0xb3, 0x2f, 0x2a, 0xf5, 0xca, - 0x4f, 0x84, 0xfb, 0x59, 0x44, 0xce, 0xd0, 0x7e, 0x23, 0x16, 0x22, 0xf9, - 0x6c, 0xc9, 0x84, 0xf8, 0xb9, 0x7e, 0x48, 0x92, 0xae, 0x87, 0xb6, 0x17, - 0x36, 0x42, 0x54, 0x62, 0xac, 0xf0, 0x0e, 0x7d, 0xd7, 0x0f, 0x7a, 0xf7, - 0x3b, 0x9d, 0x8e, 0x64, 0x7a, 0x11, 0x45, 0xbe, 0x57, 0xb7, 0x3e, 0x4a, - 0xc5, 0x94, 0x8f, 0x95, 0x4f, 0x71, 0x42, 0x20, 0xd0, 0xb5, 0x13, 0xcf, - 0xe1, 0x62, 0x30, 0x73, 0x64, 0x42, 0xe0, 0xbb, 0x89, 0x12, 0xb2, 0xe6, - 0xc3, 0x45, 0x10, 0x02, 0xbd, 0x35, 0xf7, 0x1d, 0x0f, 0xe2, 0xdf, 0x4f, - 0xd1, 0x70, 0xbc, 0xf9, 0x22, 0xaa, 0x5b, 0xfe, 0x3c, 0xa2, 0xa6, 0x9d, - 0xd7, 0xad, 0x50, 0xb8, 0x62, 0x88, 0x94, 0x48, 0x9c, 0x47, 0x76, 0x20, - 0x6c, 0xc2, 0x21, 0x6b, 0x6e, 0x44, 0x6f, 0x6d, 0xfd, 0xc0, 0x3a, 0x9e, - 0x8b, 0xa1, 0x33, 0xbe, 0xe0, 0x1c, 0x9d, 0x61, 0x7b, 0x43, 0x61, 0xf9, - 0x63, 0xa4, 0x05, 0x33, 0x0b, 0x78, 0x66, 0x02, 0xba, 0x67, 0xfd, 0x60, - 0x2b, 0x41, 0x51, 0xa2, 0xf3, 0x3f, 0x8b, 0x60, 0xec, 0xfa, 0x67, 0x3d, - 0xeb, 0xb3, 0x13, 0x3a, 0xb0, 0x11, 0x8c, 0xf2, 0x70, 0x34, 0x42, 0xd5, - 0x42, 0xeb, 0x77, 0x3a, 0xfb, 0x77, 0x16, 0x2a, 0x6a, 0x45, 0xbe, 0xf5, - 0xbb, 0xa9, 0x33, 0x1a, 0x09, 0xef, 0x77, 0x20, 0x64, 0xbd, 0x3c, 0xb2, - 0xf6, 0xb6, 0x1e, 0x6d, 0xb5, 0x5b, 0x5b, 0xed, 0x76, 0x1a, 0x77, 0xaf, - 0xd7, 0x98, 0xf9, 0x5f, 0x1a, 0x63, 0x7f, 0xb8, 0x08, 0x1b, 0x8e, 0xe7, - 0x89, 0x20, 0x27, 0xc3, 0x3c, 0x48, 0x56, 0xaa, 0x79, 0x88, 0x9c, 0x9c, - 0xf3, 0x20, 0xaa, 0x83, 0xf8, 0xc1, 0x48, 0x04, 0x0d, 0xee, 0x36, 0x3d, - 0x2b, 0xdf, 0x25, 0x0c, 0xa3, 0xa6, 0x7c, 0x80, 0xdc, 0xcd, 0x72, 0xe9, - 0x2f, 0x22, 0xd2, 0x79, 0x62, 0xc9, 0x30, 0x9d, 0x61, 0xb0, 0xce, 0x83, - 0xd1, 0xda, 0x0a, 0x48, 0x04, 0x4c, 0x77, 0xb6, 0xe7, 0xb0, 0x0c, 0x01, - 0x74, 0x02, 0xb4, 0x24, 0x0a, 0x6e, 0xe5, 0xa7, 0x7e, 0x10, 0x88, 0x21, - 0x9a, 0x75, 0x2a, 0xd0, 0x9c, 0x36, 0x46, 0x0c, 0x27, 0xba, 0xa0, 0x46, - 0x66, 0xb9, 0x59, 0x43, 0xd7, 0x19, 0x9e, 0xd2, 0xb0, 0xc1, 0x66, 0x39, - 0xa4, 0x16, 0x77, 0xde, 0x1e, 0xa7, 0x1b, 0x5a, 0x6b, 0x29, 0xd3, 0x63, - 0x4d, 0x6d, 0x44, 0x20, 0x14, 0x92, 0xde, 0x91, 0x51, 0xf2, 0xa4, 0x3e, - 0x3d, 0x77, 0x02, 0xd8, 0x99, 0x73, 0x6b, 0xbb, 0xf5, 0xc3, 0xba, 0xf5, - 0x92, 0x74, 0xdf, 0x83, 0x3a, 0x1d, 0x9d, 0xcf, 0xd1, 0xdb, 0x20, 0x8d, - 0x76, 0xbb, 0x01, 0xb4, 0xf9, 0xde, 0x90, 0xef, 0x03, 0x39, 0xfb, 0x27, - 0x3b, 0xac, 0xc5, 0x44, 0xe7, 0x80, 0xf0, 0xa2, 0xfd, 0xac, 0x02, 0x48, - 0x3e, 0x38, 0x99, 0xa1, 0x33, 0x86, 0xab, 0x37, 0x72, 0x42, 0xaa, 0xe5, - 0xa8, 0xfe, 0xdd, 0xef, 0x7c, 0xd4, 0xbf, 0x3f, 0xc9, 0x06, 0x9a, 0xdb, - 0x43, 0x88, 0x04, 0x4d, 0xd2, 0xdc, 0x96, 0xc0, 0xcd, 0x41, 0xe4, 0x9d, - 0x9c, 0xc8, 0xd1, 0x44, 0x55, 0xda, 0x76, 0x9d, 0x89, 0xd7, 0x70, 0x22, - 0x31, 0x0b, 0x7b, 0xd6, 0x50, 0x50, 0xe5, 0x92, 0x2c, 0x04, 0xf6, 0xc8, - 0x59, 0x84, 0x31, 0x4d, 0xc3, 0x46, 0x3a, 0x09, 0x84, 0xe7, 0xae, 0x0d, - 0x52, 0x63, 0x57, 0x9c, 0x53, 0x0a, 0xff, 0xe8, 0x59, 0x6d, 0xab, 0x65, - 0xd9, 0x8b, 0xc8, 0xe7, 0xa4, 0xdf, 0x2f, 0xc2, 0x08, 0x3d, 0xbd, 0xa1, - 0xe8, 0x1b, 0x72, 0xc6, 0xc6, 0x27, 0xc1, 0xe7, 0x7e, 0x08, 0x77, 0x01, - 0x4a, 0x4e, 0x23, 0x93, 0x1d, 0x39, 0x9f, 0x59, 0x08, 0x2c, 0x2b, 0x99, - 0x41, 0x15, 0xeb, 0x86, 0x30, 0x4b, 0x03, 0x67, 0xd8, 0x18, 0x88, 0x2f, - 0x8e, 0x08, 0xaa, 0xad, 0x66, 0x67, 0xa7, 0x8e, 0xf4, 0x3d, 0xfa, 0xc0, - 0xaf, 0x76, 0x8d, 0x0b, 0x9d, 0x4d, 0x51, 0xc3, 0x46, 0x08, 0x81, 0xb0, - 0x3c, 0xcf, 0x02, 0x7b, 0xce, 0xe9, 0xec, 0x98, 0xc4, 0x55, 0x31, 0x42, - 0x5a, 0x4b, 0x36, 0xbb, 0xf3, 0xf3, 0xa4, 0x10, 0x08, 0x1d, 0x0f, 0x06, - 0x52, 0x16, 0x86, 0x4a, 0xa7, 0xdd, 0x52, 0x90, 0x6a, 0x98, 0xb0, 0xba, - 0x54, 0xd4, 0x48, 0xab, 0x65, 0xaa, 0x9f, 0x1c, 0x65, 0xac, 0xf6, 0x36, - 0x83, 0xa5, 0x47, 0x13, 0x6b, 0xa7, 0xd5, 0x5a, 0x59, 0xac, 0xa0, 0x63, - 0xed, 0x29, 0x24, 0xc6, 0x94, 0x58, 0x6d, 0x4d, 0x7f, 0xe6, 0x78, 0x0d, - 0xc5, 0xe5, 0x1e, 0xc1, 0x65, 0xfa, 0x77, 0xdc, 0x3b, 0x46, 0x62, 0xe8, - 0x07, 0x36, 0x09, 0x9f, 0xd5, 0xf2, 0x66, 0x2d, 0x52, 0x97, 0x1a, 0x64, - 0xb5, 0x67, 0xe1, 0xb2, 0x86, 0x86, 0xed, 0xa6, 0xb1, 0xce, 0x6d, 0x50, - 0x33, 0x20, 0x73, 0x06, 0xd3, 0x0d, 0x03, 0x9f, 0xb4, 0x0c, 0xe4, 0x1b, - 0x35, 0x64, 0x27, 0x33, 0xfc, 0xd0, 0x1f, 0x59, 0xac, 0xe2, 0x5c, 0x95, - 0x1d, 0x16, 0xe7, 0xc6, 0x7f, 0xb9, 0x5c, 0xa3, 0x1b, 0x8d, 0xc6, 0xc0, - 0xf5, 0x87, 0xa7, 0x52, 0x45, 0x4c, 0xab, 0x27, 0xbd, 0x8f, 0xfd, 0x74, - 0x16, 0xd3, 0xa3, 0x26, 0xd6, 0x59, 0xd9, 0x0e, 0x93, 0x77, 0x5f, 0x54, - 0xf7, 0x91, 0x39, 0x71, 0x79, 0x93, 0x92, 0x7c, 0x8a, 0x9b, 0xd9, 0x28, - 0x4f, 0xac, 0x73, 0x7b, 0xad, 0xef, 0xa7, 0x7c, 0x03, 0xeb, 0xfe, 0xf3, - 0xe7, 0xcf, 0x55, 0x4a, 0xde, 0x0e, 0xdd, 0x73, 0x66, 0xe4, 0xc6, 0xdb, - 0xca, 0x0c, 0xc5, 0x9a, 0xae, 0xcb, 0x6e, 0x0f, 0xed, 0xf1, 0x4e, 0xcb, - 0x40, 0x19, 0xa1, 0x34, 0x17, 0x30, 0xd2, 0xc1, 0xd0, 0x0e, 0xd9, 0x19, - 0x33, 0x2a, 0xbf, 0x2b, 0x55, 0x3e, 0x6f, 0x5c, 0x35, 0x7c, 0x5a, 0xb0, - 0x3e, 0xcc, 0xe7, 0x4c, 0x4b, 0x56, 0x3e, 0x99, 0x5e, 0x82, 0xbf, 0x80, - 0x55, 0xdf, 0xe8, 0x6d, 0x52, 0x79, 0xec, 0x41, 0xe8, 0xbb, 0x8b, 0x48, - 0xa4, 0x64, 0xa2, 0xb5, 0x37, 0xa1, 0xe2, 0x26, 0x69, 0xaa, 0x7b, 0x92, - 0x41, 0x27, 0x21, 0x4c, 0x4a, 0xce, 0x19, 0xcd, 0xf5, 0xfe, 0x9d, 0x58, - 0xc2, 0x5f, 0x30, 0x3a, 0x8e, 0xa8, 0x59, 0xb6, 0x33, 0x22, 0x1f, 0x8f, - 0xc7, 0xa5, 0x22, 0xbf, 0x2f, 0x1e, 0xb5, 0xc5, 0x6e, 0x77, 0xb9, 0xe4, - 0xf3, 0x50, 0x31, 0xbb, 0xae, 0xdb, 0xc0, 0x1c, 0xcd, 0x9b, 0x88, 0x9e, - 0x74, 0x6e, 0xa7, 0xf6, 0xc8, 0x3f, 0x53, 0xb9, 0x26, 0x81, 0x3a, 0x7b, - 0x17, 0x36, 0x60, 0x07, 0xff, 0x1a, 0x6d, 0x7c, 0x04, 0x93, 0x81, 0x5d, - 0x6d, 0xd5, 0xe9, 0xbf, 0x66, 0xa7, 0x86, 0xae, 0xc9, 0x26, 0x82, 0x0c, - 0x14, 0x7e, 0x26, 0x33, 0xdb, 0xdb, 0x9c, 0xdb, 0xa6, 0xdc, 0xbd, 0x7c, - 0x6e, 0xa7, 0x26, 0xdb, 0x8f, 0x26, 0x40, 0xe5, 0x56, 0x73, 0x99, 0x79, - 0x34, 0x7a, 0x2f, 0xbd, 0x62, 0x4c, 0x02, 0x16, 0x81, 0x40, 0xdf, 0x8b, - 0x68, 0xee, 0x02, 0x14, 0x0f, 0x81, 0xcf, 0x7e, 0x98, 0xea, 0x9d, 0xd7, - 0x43, 0x26, 0xac, 0x67, 0x07, 0xd6, 0xf3, 0x5a, 0x43, 0x99, 0xf4, 0xde, - 0xad, 0xf6, 0x8d, 0xcc, 0x5a, 0x91, 0xd1, 0x62, 0xb5, 0x57, 0x6a, 0x9d, - 0x10, 0x14, 0x7f, 0x34, 0x1a, 0x34, 0xed, 0x5a, 0xe2, 0x5a, 0x37, 0x67, - 0x6a, 0x4a, 0xc5, 0x93, 0xb6, 0xb0, 0x39, 0x1b, 0xa1, 0x04, 0x18, 0xa4, - 0x22, 0x5a, 0xb9, 0x64, 0x6b, 0x74, 0x76, 0xc0, 0x81, 0xfa, 0x60, 0x5e, - 0x4a, 0x11, 0x8c, 0xec, 0xe0, 0x34, 0x5f, 0xbe, 0x55, 0xb7, 0xe8, 0x7f, - 0xae, 0x8f, 0x2a, 0x0b, 0xb7, 0xe7, 0x3d, 0x1c, 0xab, 0xd7, 0xfe, 0xc8, - 0x76, 0xad, 0xaa, 0xd1, 0xdb, 0x1a, 0xbb, 0x3a, 0xf7, 0x67, 0x9c, 0x7e, - 0x99, 0x36, 0xdf, 0x63, 0xe7, 0x5c, 0x8c, 0x50, 0x3c, 0xd1, 0x15, 0xda, - 0xc9, 0x21, 0x07, 0x53, 0xd0, 0x39, 0x92, 0x76, 0xa0, 0x65, 0xec, 0x57, - 0xbd, 0xf2, 0x87, 0x3c, 0x96, 0xc0, 0xd5, 0x27, 0x2f, 0x8e, 0xf4, 0x15, - 0xd8, 0xb9, 0x39, 0xc4, 0x38, 0xd2, 0x3d, 0x8e, 0x0b, 0xb5, 0x92, 0x03, - 0x69, 0xbb, 0xa5, 0xfa, 0x9c, 0x6c, 0xb0, 0x38, 0xc1, 0xcc, 0x07, 0x62, - 0x53, 0x98, 0xea, 0x72, 0xa6, 0xca, 0x52, 0x7f, 0x6b, 0xd2, 0xbb, 0xb3, - 0x5d, 0x97, 0x80, 0xa4, 0x44, 0x24, 0x03, 0xf9, 0x52, 0x49, 0xb5, 0x87, - 0x3f, 0x25, 0x8b, 0x3e, 0x71, 0xa9, 0xdc, 0xd9, 0x96, 0x76, 0xb5, 0xb4, - 0x1b, 0xd8, 0x64, 0xf1, 0x68, 0x45, 0x33, 0xde, 0xa5, 0xd2, 0x0a, 0xa3, - 0x78, 0x85, 0x16, 0x61, 0x2c, 0xe8, 0x3f, 0xe4, 0xe6, 0x0d, 0xbb, 0xb1, - 0x46, 0x24, 0xc4, 0xac, 0xa6, 0x6f, 0x17, 0xfa, 0x09, 0xbb, 0xad, 0x94, - 0x83, 0xce, 0x5d, 0x19, 0x96, 0xd2, 0x19, 0x59, 0xf7, 0xf7, 0xf6, 0xf6, - 0x38, 0xcb, 0x0c, 0x16, 0xb2, 0xf1, 0x51, 0x03, 0xe2, 0xdd, 0x76, 0x94, - 0xb3, 0x6f, 0xdc, 0xb9, 0x36, 0xcb, 0x7a, 0x29, 0x6f, 0xaa, 0xc7, 0x49, - 0x41, 0xa0, 0xc3, 0xfb, 0x0b, 0x48, 0x60, 0xb9, 0x93, 0xd8, 0x66, 0x24, - 0x71, 0x52, 0x83, 0xfc, 0xb3, 0x84, 0x9f, 0x96, 0x33, 0xde, 0x06, 0x73, - 0x33, 0xf0, 0xcf, 0x0c, 0x87, 0x8d, 0x91, 0x83, 0x29, 0x81, 0x54, 0x46, - 0x64, 0xe4, 0x20, 0x9b, 0x81, 0x80, 0x82, 0x84, 0xa2, 0xb4, 0x44, 0x43, - 0x01, 0xa4, 0x4b, 0xa2, 0x61, 0x16, 0x33, 0xaf, 0xb8, 0x90, 0xcc, 0x2b, - 0x82, 0xd7, 0xc4, 0x96, 0x95, 0x5b, 0x4a, 0xef, 0xc0, 0x6a, 0x52, 0x29, - 0x59, 0x7e, 0x66, 0x9f, 0x37, 0x12, 0xea, 0x9f, 0x2e, 0x40, 0x72, 0x02, - 0x58, 0x5a, 0x7c, 0xf4, 0xa9, 0xc0, 0xe0, 0xc7, 0x7c, 0xe6, 0x9e, 0xd6, - 0xe8, 0x12, 0x58, 0x66, 0x64, 0x80, 0x3e, 0x74, 0xd5, 0xbf, 0x46, 0x27, - 0x3d, 0x36, 0xb4, 0xe4, 0xe0, 0xa0, 0x72, 0xb7, 0xf1, 0xaf, 0x95, 0x05, - 0x68, 0x6f, 0x4b, 0x08, 0xd6, 0xab, 0xbd, 0x42, 0x88, 0x4e, 0x2d, 0xe1, - 0x59, 0x94, 0xe9, 0xe2, 0xee, 0xee, 0x6e, 0x8e, 0xdb, 0xdd, 0x62, 0x6e, - 0xcd, 0x48, 0x56, 0xc2, 0xad, 0x1a, 0xcc, 0xae, 0x65, 0xb7, 0xbd, 0x1a, - 0xbf, 0x69, 0xa6, 0x1e, 0x15, 0x33, 0xb5, 0xa3, 0xc8, 0x36, 0xba, 0x59, - 0x7c, 0x3f, 0x52, 0x14, 0x1f, 0x11, 0x45, 0x12, 0x70, 0x8e, 0xed, 0x9d, - 0x84, 0x90, 0xdb, 0x84, 0x24, 0xd7, 0x0c, 0xdd, 0x52, 0x11, 0x76, 0x97, - 0x8b, 0xb0, 0xdd, 0x29, 0x66, 0xf7, 0x47, 0xaa, 0xb5, 0x1a, 0xdb, 0x85, - 0x32, 0x8c, 0x59, 0x25, 0xb8, 0x4e, 0xa9, 0x10, 0x77, 0x28, 0x97, 0xb2, - 0xb7, 0xd7, 0x14, 0x62, 0x7b, 0xa7, 0x98, 0xad, 0x3d, 0x25, 0xa7, 0xc6, - 0x4e, 0x29, 0x5b, 0x92, 0xe6, 0x52, 0xb6, 0x58, 0x84, 0x84, 0x6a, 0x67, - 0x25, 0xb6, 0xa8, 0xd3, 0xd4, 0xc9, 0xe6, 0x4d, 0x1d, 0x77, 0xc4, 0x7e, - 0x09, 0xfa, 0x1e, 0x2d, 0x56, 0xe6, 0x4d, 0x54, 0x69, 0x57, 0xbc, 0x1f, - 0xf9, 0x3e, 0x86, 0x11, 0x69, 0x2e, 0x8d, 0xef, 0x60, 0xe6, 0x49, 0xf9, - 0xba, 0xb2, 0xdc, 0xca, 0xd5, 0x58, 0xe5, 0xee, 0x5c, 0xaf, 0xc5, 0xad, - 0x12, 0x2d, 0x5e, 0x36, 0xbb, 0x4a, 0x57, 0x20, 0xed, 0x49, 0xc6, 0xe3, - 0x35, 0x0d, 0xc3, 0xf5, 0xf8, 0x89, 0x9c, 0x6f, 0x2d, 0x32, 0x55, 0xdb, - 0x15, 0x17, 0x13, 0xf2, 0x96, 0xdf, 0x78, 0xd5, 0x3c, 0x5a, 0x64, 0xb1, - 0xf2, 0x66, 0x04, 0x70, 0x66, 0x3c, 0xb9, 0xd6, 0xb2, 0x79, 0xb0, 0x2b, - 0x22, 0xd0, 0xe3, 0x49, 0xbe, 0xc4, 0xdc, 0x6c, 0x75, 0xc4, 0x6c, 0xe9, - 0xf4, 0xdf, 0xb8, 0x0b, 0x72, 0x5d, 0xd0, 0xcc, 0x54, 0x4c, 0x8e, 0x70, - 0x5d, 0x67, 0x1e, 0x3a, 0x61, 0x21, 0x8b, 0x3d, 0xcf, 0x8f, 0xaa, 0xbd, - 0xb1, 0x13, 0x84, 0x51, 0x83, 0xb5, 0xa7, 0x66, 0x5d, 0x9a, 0xb1, 0x91, - 0xe5, 0x27, 0xd9, 0x56, 0x4a, 0x32, 0xf6, 0x7d, 0xf0, 0x58, 0xb0, 0x5e, - 0x9d, 0xf7, 0x0c, 0xcc, 0xb4, 0xaf, 0x28, 0xb3, 0x58, 0xd6, 0xb7, 0x3d, - 0x23, 0x8d, 0x75, 0x27, 0xa5, 0x3a, 0xa6, 0xf5, 0xd8, 0x58, 0x99, 0xee, - 0x54, 0x3a, 0x8f, 0x4d, 0x4c, 0x19, 0x4d, 0xd5, 0x74, 0x9e, 0xea, 0x5a, - 0x39, 0x90, 0xd2, 0x6c, 0x33, 0x9f, 0xcb, 0xad, 0xa3, 0x18, 0xe2, 0xc9, - 0x1e, 0xd8, 0xec, 0x64, 0x9c, 0xf7, 0xe6, 0x36, 0xcf, 0x7b, 0xea, 0xed, - 0x9a, 0x2a, 0xb5, 0x3a, 0x34, 0x7b, 0x47, 0x3f, 0x9e, 0x89, 0x91, 0x63, - 0x5b, 0xbe, 0xe7, 0x5e, 0x58, 0xe1, 0x30, 0x10, 0xc2, 0xb3, 0x6c, 0x6f, - 0x64, 0x55, 0x13, 0x6e, 0xca, 0x23, 0x9a, 0xf9, 0x2a, 0x6d, 0xc8, 0x3a, - 0x53, 0x29, 0x13, 0xf2, 0xa8, 0xa5, 0xb5, 0xfa, 0x0a, 0xd8, 0x57, 0xc2, - 0xdd, 0xee, 0xec, 0x6e, 0xaf, 0x86, 0xbc, 0xdd, 0xde, 0xdb, 0x59, 0x1b, - 0xfb, 0xa3, 0xd6, 0xaa, 0xd8, 0x7f, 0xb4, 0x2a, 0xf6, 0x44, 0x75, 0x77, - 0x1e, 0x15, 0x23, 0xcf, 0x2b, 0x56, 0x1e, 0x31, 0x3c, 0xf5, 0x1c, 0xbb, - 0x2d, 0x8d, 0x8c, 0xf4, 0xa5, 0x79, 0x1e, 0xb6, 0xe5, 0xa3, 0x72, 0x85, - 0x06, 0x36, 0xba, 0x2e, 0x3c, 0xdb, 0x66, 0x37, 0xf5, 0xd7, 0xf9, 0xfe, - 0x7e, 0x02, 0x68, 0x12, 0xb0, 0x49, 0xde, 0xcf, 0x54, 0xb0, 0xb4, 0xd8, - 0x55, 0x92, 0x5e, 0x27, 0x4f, 0x8f, 0xd8, 0x6f, 0xee, 0xa6, 0xfe, 0xb6, - 0x57, 0x23, 0x98, 0x2f, 0x57, 0x40, 0xb1, 0x5b, 0x44, 0xb1, 0xb3, 0xb3, - 0x1a, 0x05, 0xc0, 0xe5, 0x31, 0x6e, 0x17, 0x61, 0xec, 0x76, 0x33, 0xb5, - 0x5f, 0x8d, 0x40, 0xbe, 0x58, 0x9e, 0xde, 0x4e, 0x11, 0xbd, 0xed, 0x76, - 0xba, 0xee, 0x3f, 0x5a, 0x8d, 0x5e, 0xbe, 0x58, 0x9e, 0xde, 0x6e, 0x11, - 0xbd, 0x9d, 0xd6, 0x6a, 0x04, 0x00, 0x97, 0xc7, 0xf8, 0xa3, 0x42, 0x8c, - 0x59, 0x7d, 0xd9, 0x5d, 0x91, 0x42, 0xbe, 0x5c, 0x9e, 0xe2, 0x5e, 0x11, - 0xc5, 0xdd, 0x8c, 0xbe, 0xac, 0x48, 0x30, 0x5f, 0x2c, 0x4f, 0xef, 0x51, - 0x11, 0xbd, 0x1f, 0xad, 0xa8, 0x65, 0x3f, 0x2a, 0xd2, 0xb2, 0x76, 0xab, - 0xb0, 0x6b, 0x66, 0xf4, 0x65, 0xc5, 0x9e, 0x92, 0x2b, 0x56, 0x44, 0xb0, - 0xd0, 0x16, 0x3c, 0x6a, 0xdf, 0x48, 0x66, 0x8f, 0xda, 0xd7, 0xcb, 0xac, - 0x5d, 0x6c, 0x0c, 0x5a, 0x2b, 0x6a, 0x1a, 0x01, 0xae, 0x66, 0xf4, 0x76, - 0x69, 0xd0, 0x48, 0x19, 0xbe, 0x70, 0xb6, 0x59, 0xc3, 0x17, 0xce, 0x36, - 0x6d, 0xf8, 0xc2, 0xd9, 0x6d, 0x1b, 0xbe, 0x70, 0xb6, 0x59, 0xc3, 0x17, - 0xce, 0x36, 0x6b, 0xf8, 0xc2, 0xd9, 0x6d, 0x1b, 0xbe, 0x70, 0xb6, 0x69, - 0xc3, 0x17, 0xce, 0x36, 0x6b, 0xf8, 0xc2, 0xd9, 0x6d, 0x1b, 0xbe, 0x70, - 0xb6, 0x61, 0xc3, 0x17, 0xce, 0x36, 0x6c, 0xf8, 0xc2, 0xd9, 0xc6, 0x0c, - 0x9f, 0x76, 0xab, 0x0d, 0xf1, 0xd9, 0x68, 0xb3, 0x86, 0x6f, 0x36, 0xda, - 0xb4, 0xe1, 0x9b, 0x8d, 0x6e, 0xdb, 0xf0, 0xcd, 0x46, 0x9b, 0x35, 0x7c, - 0xb3, 0xd1, 0x66, 0x0d, 0xdf, 0x6c, 0x74, 0xdb, 0x86, 0x6f, 0x36, 0xda, - 0xb4, 0xe1, 0x9b, 0x8d, 0x36, 0x6b, 0xf8, 0x66, 0xa3, 0xdb, 0x36, 0x7c, - 0xb3, 0xd1, 0x86, 0x0d, 0xdf, 0x6c, 0xb4, 0x61, 0xc3, 0x37, 0x1b, 0x6d, - 0xcc, 0xf0, 0xc5, 0x73, 0x7e, 0x43, 0xdd, 0x9d, 0x6c, 0xd6, 0xf2, 0xb9, - 0x93, 0x4d, 0x5b, 0x3e, 0x77, 0x72, 0xdb, 0x96, 0xcf, 0x9d, 0x6c, 0xd6, - 0xf2, 0xb9, 0x93, 0xcd, 0x5a, 0x3e, 0x77, 0x72, 0xdb, 0x96, 0xcf, 0x9d, - 0x6c, 0xda, 0xf2, 0xb9, 0x93, 0xcd, 0x5a, 0x3e, 0x77, 0x72, 0xdb, 0x96, - 0xcf, 0x9d, 0x6c, 0xd8, 0xf2, 0xb9, 0x93, 0x0d, 0x5b, 0x3e, 0x77, 0xb2, - 0x39, 0xcb, 0x17, 0xaf, 0x47, 0x9a, 0x99, 0xb6, 0xbb, 0x59, 0xcb, 0x77, - 0xee, 0x6e, 0xda, 0xf2, 0x9d, 0xbb, 0xb7, 0x6d, 0xf9, 0xce, 0xdd, 0xcd, - 0x5a, 0xbe, 0x73, 0x77, 0xb3, 0x96, 0xef, 0xdc, 0xbd, 0x6d, 0xcb, 0x77, - 0xee, 0x6e, 0xda, 0xf2, 0x9d, 0xbb, 0x9b, 0xb5, 0x7c, 0xe7, 0xee, 0x6d, - 0x5b, 0xbe, 0x73, 0x77, 0xc3, 0x96, 0xef, 0xdc, 0xdd, 0xb0, 0xe5, 0x3b, - 0x77, 0xef, 0xc4, 0xf2, 0x2d, 0xdb, 0x33, 0xd9, 0x79, 0x94, 0xd8, 0x33, - 0x91, 0x3b, 0x95, 0x8d, 0xf3, 0xb0, 0x41, 0x45, 0x32, 0x51, 0xa8, 0x72, - 0xb7, 0x39, 0xb9, 0xc3, 0x6d, 0x08, 0x35, 0x69, 0xff, 0x53, 0x6e, 0xb5, - 0xa4, 0x58, 0x6c, 0xe7, 0x36, 0xc4, 0x15, 0x8d, 0x42, 0xdc, 0x12, 0x82, - 0x83, 0xb7, 0x6c, 0xda, 0xaa, 0xc1, 0xf9, 0x0d, 0x79, 0x26, 0xe0, 0x07, - 0x5b, 0xb4, 0x83, 0xee, 0x04, 0x43, 0x1c, 0x35, 0xa2, 0x53, 0x63, 0xd1, - 0xc9, 0x89, 0x7c, 0x52, 0x5b, 0xc3, 0x9e, 0x33, 0x53, 0x81, 0xc3, 0x49, - 0xa0, 0xc6, 0xd8, 0x81, 0xc9, 0xc7, 0x8e, 0x9b, 0x0c, 0x84, 0x91, 0xf1, - 0xf6, 0x74, 0x1c, 0xc3, 0xa2, 0x42, 0x89, 0x78, 0xd1, 0xc0, 0x8f, 0x10, - 0xcc, 0x56, 0x6d, 0x3c, 0x6a, 0x8d, 0xc4, 0x44, 0x46, 0x5f, 0x75, 0xea, - 0x56, 0x17, 0x90, 0x29, 0xc0, 0x86, 0x8f, 0x5d, 0x6a, 0x27, 0xde, 0x2b, - 0x65, 0xb8, 0x6d, 0x19, 0x96, 0x95, 0x63, 0xcf, 0xf1, 0xc6, 0xfe, 0x32, - 0xe6, 0xf4, 0xc9, 0x03, 0x62, 0x0f, 0xb8, 0xcf, 0xec, 0x60, 0x14, 0xee, - 0xa7, 0x03, 0xeb, 0xf7, 0xd3, 0x5c, 0xca, 0x9f, 0x2e, 0x18, 0xfd, 0x75, - 0x15, 0x31, 0x1b, 0x62, 0xa6, 0x76, 0x0c, 0x7f, 0x7c, 0x2a, 0x2e, 0xc6, - 0x01, 0x8e, 0xb6, 0x85, 0xf9, 0xca, 0xab, 0x80, 0x01, 0x70, 0x82, 0x83, - 0x0b, 0x81, 0x7f, 0x2a, 0x10, 0xa3, 0x17, 0x22, 0x37, 0xb0, 0x89, 0x00, - 0x69, 0xcb, 0xbe, 0x75, 0x95, 0xc3, 0x92, 0xe7, 0x52, 0xe3, 0x91, 0xdf, - 0x31, 0x93, 0x3a, 0x04, 0xaf, 0x94, 0xcd, 0x5a, 0x42, 0x45, 0xe8, 0x38, - 0x8e, 0x87, 0x80, 0x34, 0x8a, 0x63, 0xd8, 0xb2, 0xde, 0xfb, 0x38, 0x51, - 0x26, 0xc3, 0xfd, 0x42, 0x4e, 0x55, 0x44, 0xf8, 0xac, 0x8d, 0x3c, 0x6e, - 0x91, 0xda, 0x38, 0x4f, 0x8c, 0xd9, 0x1d, 0x0e, 0x4f, 0xcb, 0xed, 0x84, - 0x23, 0x1a, 0x05, 0x1b, 0x86, 0x65, 0x71, 0x6f, 0xe8, 0xdf, 0xc8, 0xca, - 0x87, 0xcd, 0x9a, 0xc8, 0xb9, 0x65, 0x51, 0xf8, 0x1d, 0x46, 0x9c, 0xdd, - 0x42, 0x5c, 0x31, 0x40, 0x91, 0xd8, 0xe3, 0x31, 0xc0, 0x44, 0x1c, 0x76, - 0x0b, 0x02, 0xec, 0xda, 0x3f, 0x52, 0x3b, 0xf9, 0x46, 0x22, 0x4d, 0x1c, - 0x38, 0x3c, 0xeb, 0xb6, 0x5a, 0xad, 0x9c, 0x68, 0xe4, 0xef, 0x4c, 0xc4, - 0x7a, 0x42, 0xd3, 0xc6, 0xf6, 0x48, 0x38, 0x1e, 0x45, 0x8f, 0x86, 0x75, - 0x7e, 0x40, 0x24, 0x17, 0x3f, 0x59, 0x1d, 0x7c, 0x70, 0xa9, 0x75, 0xa0, - 0x73, 0x4c, 0xed, 0xdc, 0x2e, 0x53, 0xdb, 0x6b, 0x31, 0xb5, 0x5d, 0xc2, - 0x54, 0xfb, 0x96, 0xb9, 0x6a, 0xaf, 0xc7, 0x16, 0x83, 0xab, 0x3e, 0xa9, - 0xe9, 0xc4, 0xbd, 0x4a, 0x95, 0x53, 0x06, 0x32, 0xa0, 0x40, 0x74, 0x15, - 0x7b, 0x9a, 0xec, 0xf1, 0x57, 0xba, 0x9b, 0x19, 0x2d, 0x49, 0xf6, 0x35, - 0xd5, 0x55, 0xef, 0x04, 0x69, 0x8e, 0x63, 0x5d, 0x39, 0x83, 0xbd, 0x04, - 0x83, 0x21, 0x90, 0x27, 0xae, 0xb1, 0xdf, 0x09, 0x56, 0x58, 0x94, 0x77, - 0xd4, 0xc9, 0xc5, 0xc8, 0x0a, 0xcf, 0x9c, 0x68, 0x38, 0xb5, 0x1a, 0x88, - 0xff, 0x0e, 0x23, 0x1c, 0x47, 0xa6, 0xa8, 0xdf, 0xe1, 0x54, 0x0c, 0x4f, - 0x75, 0xd8, 0x6f, 0x53, 0x41, 0x5c, 0x96, 0x85, 0x2d, 0xe5, 0x83, 0xc8, - 0xe5, 0x51, 0x8c, 0x74, 0xbf, 0x4f, 0x5b, 0x1e, 0xf3, 0xac, 0xbd, 0xa2, - 0xdc, 0x21, 0x1c, 0x15, 0x7f, 0x14, 0x33, 0x20, 0x4f, 0x6f, 0x59, 0x99, - 0x33, 0x54, 0x49, 0x1c, 0xad, 0x14, 0x82, 0x96, 0x2e, 0x8d, 0x20, 0x3c, - 0x39, 0xbe, 0x96, 0x1d, 0x4b, 0xc8, 0xc7, 0x79, 0x9b, 0xf8, 0xe6, 0x6c, - 0xd8, 0x73, 0x60, 0x90, 0x9b, 0xa3, 0x10, 0xad, 0x32, 0xdb, 0x39, 0x18, - 0x0c, 0x90, 0x55, 0x12, 0xfe, 0xb2, 0x2d, 0x7b, 0x48, 0x3e, 0xcd, 0x70, - 0xad, 0x4e, 0xd2, 0x2e, 0x65, 0x3e, 0x8e, 0x9b, 0xaf, 0x54, 0x52, 0xf5, - 0xef, 0xec, 0x26, 0x25, 0xac, 0x9e, 0x4d, 0x75, 0xa4, 0x78, 0x4d, 0x1d, - 0xb6, 0xcb, 0x46, 0x00, 0x19, 0xa6, 0x75, 0xb3, 0x6a, 0x70, 0x93, 0xf5, - 0x58, 0x9d, 0xa0, 0x6a, 0x3f, 0xb4, 0xe2, 0xc6, 0x28, 0xa6, 0x94, 0x2c, - 0xc4, 0x07, 0x1b, 0x4d, 0x91, 0x82, 0xb8, 0x44, 0x79, 0xfe, 0x61, 0x19, - 0x21, 0x23, 0xbf, 0x34, 0xf7, 0xf9, 0x11, 0xf7, 0x57, 0x55, 0x12, 0x4f, - 0x4d, 0xd6, 0x72, 0x16, 0x5e, 0x0b, 0xb3, 0x3c, 0xdf, 0x34, 0x60, 0x93, - 0xeb, 0x07, 0xfa, 0xd9, 0x91, 0x51, 0x29, 0x78, 0x1e, 0x36, 0xc5, 0x72, - 0xfe, 0x50, 0x8b, 0x2a, 0x01, 0xd9, 0xa0, 0xd5, 0xd4, 0x51, 0xa8, 0x25, - 0x5d, 0x33, 0x7d, 0xa8, 0xd9, 0xe2, 0x03, 0xca, 0xa9, 0x38, 0xd5, 0x8e, - 0x89, 0x53, 0xb5, 0x6d, 0x7b, 0xd9, 0x39, 0x3a, 0x13, 0xe3, 0x9e, 0x12, - 0xba, 0x3a, 0x23, 0xca, 0x2d, 0xa8, 0x8f, 0x88, 0x2e, 0x45, 0x5f, 0x4a, - 0x20, 0xf6, 0x4a, 0x8c, 0x82, 0x6a, 0x63, 0xc5, 0xd8, 0xb5, 0x95, 0x91, - 0xbe, 0x0f, 0x27, 0x35, 0x54, 0xd2, 0x65, 0x8a, 0xc1, 0x6d, 0xb6, 0x25, - 0x79, 0x75, 0xa1, 0x30, 0x56, 0xe6, 0xa3, 0xa4, 0xa6, 0x6d, 0x15, 0x11, - 0x98, 0xc5, 0xde, 0x53, 0x6d, 0x72, 0x99, 0xea, 0x6e, 0x0f, 0x5f, 0x23, - 0x1a, 0xd1, 0x92, 0x4d, 0x17, 0x92, 0xb9, 0x95, 0x61, 0x9a, 0xd6, 0x53, - 0xe6, 0x15, 0xff, 0xb3, 0x4f, 0x64, 0x79, 0x8b, 0xd9, 0x80, 0x00, 0x06, - 0x22, 0x3a, 0xa3, 0x59, 0x44, 0x0b, 0xa0, 0x74, 0x1e, 0x04, 0xe6, 0x8c, - 0x4e, 0x57, 0xa8, 0x7c, 0xf8, 0x40, 0xc2, 0x1d, 0x85, 0x0f, 0xb3, 0x9e, - 0x56, 0xd2, 0xd9, 0x4a, 0x55, 0x65, 0x9b, 0xaa, 0xd2, 0xe5, 0xbf, 0x58, - 0x4a, 0xae, 0x3d, 0x10, 0xae, 0x3c, 0x90, 0xcd, 0x3f, 0xd3, 0x52, 0xd9, - 0x4b, 0x9b, 0x83, 0xd8, 0x15, 0xcc, 0xfb, 0x71, 0x29, 0x26, 0x0e, 0x0f, - 0x0f, 0x13, 0x76, 0x9b, 0x5b, 0xb4, 0x50, 0x4b, 0xf2, 0x22, 0xa7, 0x11, - 0x45, 0x44, 0xcc, 0x6d, 0xc7, 0x70, 0x9b, 0x53, 0x1d, 0x29, 0x00, 0x9c, - 0x36, 0x96, 0x3c, 0x97, 0x0e, 0x27, 0xba, 0x9a, 0x5a, 0x62, 0x8c, 0x42, - 0x8e, 0x50, 0xba, 0x11, 0xf2, 0x58, 0x2f, 0x57, 0xa8, 0x61, 0xbb, 0xdd, - 0xce, 0x8f, 0x44, 0x46, 0x72, 0x5c, 0xb7, 0xf8, 0x24, 0x56, 0xce, 0x4a, - 0xe6, 0x8e, 0x09, 0x9b, 0x11, 0x8e, 0x43, 0x4c, 0xa9, 0xad, 0xd2, 0x47, - 0x37, 0xe5, 0x8c, 0x6d, 0x49, 0x2f, 0x2c, 0xef, 0x88, 0x59, 0x4b, 0xab, - 0x40, 0xac, 0x16, 0x45, 0x47, 0x0a, 0x3b, 0xcc, 0x45, 0x34, 0x1b, 0xe9, - 0xb7, 0xf8, 0x8f, 0x84, 0xb8, 0x54, 0x60, 0xd2, 0xee, 0x5e, 0x96, 0x30, - 0xb7, 0xd3, 0xda, 0x1b, 0x8e, 0x87, 0x99, 0x6e, 0x19, 0xb0, 0xda, 0x2b, - 0x94, 0xa5, 0x0d, 0xc2, 0x50, 0x9f, 0x2e, 0xcd, 0x08, 0x15, 0x6b, 0x64, - 0xbe, 0x1b, 0x96, 0xca, 0x2b, 0x31, 0x57, 0x2f, 0xaf, 0xe9, 0x36, 0xff, - 0xd5, 0xa5, 0xfa, 0x65, 0x93, 0x89, 0xf7, 0x65, 0x0c, 0xd6, 0xf3, 0x49, - 0xbd, 0x9e, 0x1e, 0x39, 0x64, 0xa9, 0x46, 0x34, 0x85, 0xac, 0xb8, 0x26, - 0xf1, 0x19, 0xf8, 0x24, 0x93, 0x1a, 0xba, 0x20, 0xf3, 0xca, 0x62, 0xb9, - 0xa9, 0x21, 0x8d, 0xf1, 0xa4, 0x04, 0xb6, 0x16, 0xf1, 0x78, 0xa0, 0x6f, - 0x65, 0x06, 0xfa, 0xed, 0x22, 0xb9, 0x12, 0xdc, 0xf7, 0x8b, 0xbc, 0x9d, - 0x9c, 0x3e, 0xdf, 0x1f, 0xf2, 0x5f, 0x99, 0x82, 0x0a, 0xfe, 0x2b, 0x14, - 0xff, 0xf6, 0x8a, 0xe2, 0xbf, 0x3f, 0x60, 0x37, 0x4a, 0x75, 0xf9, 0x8f, - 0xb0, 0xad, 0x7d, 0x99, 0x62, 0xc6, 0x8f, 0xbc, 0x2f, 0x15, 0x6b, 0xef, - 0xfd, 0x70, 0x2e, 0x30, 0xc8, 0x27, 0x4b, 0x73, 0xca, 0x4a, 0x85, 0xb7, - 0x7e, 0xa0, 0x0c, 0xf4, 0x07, 0xdc, 0xa6, 0xe2, 0x26, 0x86, 0x92, 0x93, - 0x33, 0x4a, 0x38, 0x19, 0xda, 0xde, 0x67, 0x3b, 0xd4, 0x98, 0xca, 0x4e, - 0x23, 0xeb, 0xe5, 0x4f, 0x0e, 0x12, 0x36, 0x4b, 0x49, 0xf9, 0x64, 0x63, - 0xca, 0x8c, 0x4b, 0x7c, 0xfd, 0x41, 0xe9, 0xd8, 0x53, 0xb1, 0xe7, 0x8d, - 0x29, 0xe4, 0xc2, 0xe7, 0x0b, 0x1b, 0xc5, 0x47, 0x03, 0xc9, 0xdf, 0x28, - 0x3f, 0x5b, 0xad, 0xd4, 0x3d, 0x59, 0x43, 0x57, 0x4c, 0x84, 0x76, 0x49, - 0x8c, 0xce, 0x74, 0xbf, 0x9f, 0x39, 0x7d, 0xbb, 0xad, 0xcd, 0x4d, 0x7e, - 0x28, 0x58, 0xe6, 0xef, 0x97, 0x44, 0xef, 0xe7, 0xb4, 0x2e, 0x35, 0xe2, - 0xab, 0x13, 0x88, 0xcd, 0x9d, 0x40, 0xcc, 0x8a, 0x5c, 0x81, 0x96, 0xc9, - 0x49, 0xce, 0x28, 0x9a, 0x7b, 0x3a, 0xb5, 0xd4, 0xc6, 0x1b, 0x0d, 0x5e, - 0xe6, 0x7b, 0x5c, 0x25, 0x6e, 0xc5, 0xd9, 0xd2, 0xd7, 0xe2, 0xc8, 0xa7, - 0xc4, 0x0d, 0x4d, 0x8f, 0xe9, 0xb6, 0x99, 0x83, 0x04, 0xe8, 0xc8, 0xf9, - 0x6c, 0x39, 0x23, 0x5c, 0xa0, 0x81, 0x05, 0x3b, 0x08, 0xfe, 0x04, 0x4b, - 0x51, 0x1e, 0x38, 0xab, 0xc8, 0xab, 0x2e, 0xfa, 0x15, 0x2d, 0x25, 0x6a, - 0x88, 0x8a, 0x2a, 0x18, 0x17, 0x9e, 0xb6, 0x0f, 0x14, 0x3c, 0x88, 0xb4, - 0xb3, 0xb9, 0xf3, 0x83, 0xd7, 0xce, 0x30, 0xf0, 0x43, 0x7f, 0x1c, 0xbd, - 0x3c, 0x7a, 0xbc, 0x35, 0x4f, 0x92, 0xdd, 0x02, 0xdd, 0x22, 0x36, 0xf8, - 0x74, 0xa3, 0xa6, 0x93, 0xca, 0x1d, 0xba, 0x76, 0x18, 0x32, 0x80, 0x39, - 0xfe, 0xa8, 0x01, 0x53, 0xc0, 0xe1, 0xe7, 0x89, 0x45, 0xb7, 0x46, 0xa1, - 0x63, 0xf7, 0x2b, 0xe8, 0xba, 0xb4, 0xa1, 0xb0, 0xd7, 0x6d, 0x3d, 0xda, - 0xdb, 0xdb, 0xed, 0x24, 0x7f, 0x57, 0xa4, 0xde, 0xf4, 0x2b, 0x9d, 0x56, - 0xab, 0xa2, 0x54, 0x46, 0x3d, 0x9c, 0xcf, 0x5c, 0x2f, 0x94, 0xf7, 0x13, - 0xe1, 0x7a, 0xa2, 0xb3, 0xb3, 0xb3, 0xe6, 0x59, 0xb7, 0xe9, 0x07, 0x93, - 0x2d, 0xe4, 0xb6, 0xb6, 0x40, 0x40, 0x13, 0xce, 0x11, 0x97, 0xab, 0x67, - 0x6a, 0xb9, 0xad, 0x5f, 0xb9, 0x2f, 0xc6, 0xf4, 0x5f, 0x45, 0xaf, 0xbf, - 0x29, 0x8a, 0xa0, 0x4d, 0xeb, 0x73, 0xfd, 0x0a, 0x4b, 0xd5, 0x1a, 0x82, - 0x51, 0x6c, 0xdc, 0x3c, 0x6a, 0xef, 0x6c, 0x3f, 0xda, 0xee, 0xb6, 0x91, - 0x70, 0x91, 0x49, 0x08, 0xf0, 0xbc, 0x93, 0x78, 0xde, 0x5a, 0x4e, 0x9f, - 0x45, 0x49, 0x87, 0xe0, 0x21, 0x23, 0x7b, 0x82, 0x65, 0x3f, 0x22, 0xa3, - 0x25, 0x58, 0xb4, 0x90, 0x5a, 0x31, 0x1c, 0xb7, 0x5a, 0xf6, 0x70, 0xd8, - 0xce, 0x73, 0x9c, 0x5d, 0x42, 0x24, 0x16, 0x5b, 0x75, 0x8c, 0x62, 0x71, - 0x0e, 0xf5, 0x22, 0xdc, 0xa7, 0xd5, 0xaf, 0xb0, 0xd9, 0xba, 0xb3, 0x2a, - 0x4e, 0x74, 0x45, 0xf2, 0x4b, 0xae, 0xba, 0x59, 0x0a, 0xcb, 0x51, 0xef, - 0x4a, 0x0b, 0x06, 0x7c, 0x65, 0xd9, 0xba, 0x60, 0x2e, 0x76, 0x2a, 0xf2, - 0x0c, 0xcc, 0x0c, 0x60, 0xb4, 0x08, 0x2f, 0xa8, 0x6a, 0x20, 0x88, 0xc7, - 0x00, 0xea, 0xa9, 0x3a, 0xaa, 0x37, 0x9c, 0xfa, 0xe0, 0x5a, 0x5e, 0x1e, - 0x51, 0x89, 0x17, 0xf3, 0x00, 0x88, 0xdb, 0xcc, 0xda, 0xad, 0xef, 0x3f, - 0xde, 0x22, 0xb8, 0x95, 0x58, 0x4a, 0x69, 0x75, 0x21, 0x57, 0x9d, 0xd6, - 0x57, 0x73, 0xd5, 0xa9, 0x1c, 0x2c, 0x65, 0xe9, 0xf1, 0xd6, 0xa4, 0xa8, - 0x3f, 0x91, 0xbe, 0x9b, 0x74, 0xd3, 0x7d, 0x57, 0xe9, 0xce, 0x7a, 0x81, - 0x0e, 0x94, 0xcb, 0x40, 0xe2, 0x83, 0x1a, 0xab, 0x99, 0x1c, 0xcf, 0x96, - 0xc5, 0xe4, 0x61, 0x29, 0x53, 0x28, 0x69, 0x84, 0x69, 0xe4, 0x4a, 0x1f, - 0x2d, 0x4b, 0xa7, 0x91, 0x45, 0x56, 0x49, 0x65, 0x4b, 0xd7, 0x34, 0x07, - 0xd6, 0xb4, 0xcb, 0x4c, 0x51, 0xf6, 0xa0, 0x5a, 0xcc, 0x8b, 0x1a, 0x7e, - 0x28, 0xaa, 0x46, 0xe3, 0x58, 0x09, 0x0f, 0x9d, 0xfb, 0x42, 0x8d, 0xe9, - 0xa2, 0x3a, 0x16, 0xd7, 0x0a, 0x65, 0x79, 0xe3, 0x25, 0x16, 0x6f, 0x51, - 0xce, 0x52, 0x4c, 0x00, 0xf2, 0x74, 0x2b, 0xa0, 0xf3, 0x46, 0x62, 0x14, - 0x9b, 0x09, 0x39, 0xf0, 0xa1, 0xbc, 0x63, 0xd9, 0x98, 0x71, 0x37, 0xe4, - 0x33, 0xb8, 0x0d, 0x16, 0xc6, 0x96, 0xa4, 0x6f, 0x01, 0xa8, 0x1c, 0x9c, - 0x39, 0x63, 0xe7, 0xf1, 0x96, 0x73, 0xf0, 0xc0, 0x1b, 0x84, 0xf3, 0x7d, - 0xf9, 0xc9, 0x44, 0x74, 0x81, 0xf4, 0x16, 0x53, 0xe5, 0x80, 0xaa, 0x8c, - 0xca, 0x12, 0xc8, 0x81, 0x64, 0xe7, 0x20, 0x66, 0x45, 0x25, 0xcb, 0xaf, - 0x6b, 0x6b, 0x00, 0xad, 0x89, 0x4b, 0xae, 0xc9, 0x75, 0x88, 0x4e, 0x65, - 0xbb, 0x27, 0xc4, 0xfc, 0x89, 0x3f, 0x1e, 0x7f, 0x6d, 0x05, 0xc0, 0xc9, - 0x0d, 0xeb, 0x00, 0xf5, 0xe4, 0x39, 0x91, 0xb4, 0x05, 0xd9, 0xa6, 0x58, - 0x15, 0x8b, 0x24, 0x4e, 0x78, 0xb0, 0x66, 0xe2, 0xb8, 0x45, 0x6d, 0xaa, - 0x2e, 0x3a, 0xf3, 0xbd, 0xa7, 0x74, 0x95, 0x15, 0xae, 0x54, 0x0c, 0x4f, - 0x02, 0xa1, 0xca, 0x55, 0x6b, 0x24, 0xbe, 0x32, 0x59, 0xd1, 0x81, 0x39, - 0xcc, 0x12, 0xc5, 0x99, 0x91, 0x92, 0xac, 0x75, 0x5c, 0x3e, 0xae, 0x32, - 0x13, 0x59, 0x52, 0x77, 0xad, 0x99, 0xe9, 0x34, 0x74, 0xf0, 0x25, 0xc3, - 0xbf, 0x3a, 0xf4, 0x0f, 0x67, 0x85, 0x0f, 0xa1, 0x5f, 0xd7, 0x45, 0xf9, - 0xc0, 0x2d, 0x1f, 0x9e, 0x40, 0x80, 0x7c, 0xdc, 0x3f, 0x93, 0x6e, 0x2e, - 0x2f, 0x21, 0xac, 0xd2, 0x4b, 0xf3, 0x76, 0xaa, 0xc0, 0x5d, 0x5b, 0x3a, - 0x00, 0x49, 0xb7, 0x9c, 0x9b, 0x28, 0xef, 0xad, 0x57, 0xd0, 0x18, 0x43, - 0xd9, 0x18, 0xbe, 0x77, 0xcc, 0xde, 0x2f, 0xfb, 0xf8, 0x55, 0xf1, 0x19, - 0xa8, 0x6b, 0x94, 0xcd, 0xb7, 0x2c, 0xce, 0xe0, 0x9a, 0x96, 0x80, 0x40, - 0xd2, 0x12, 0x97, 0x62, 0xa2, 0xac, 0x46, 0x86, 0x03, 0x20, 0x69, 0xc7, - 0xca, 0x51, 0xe0, 0x5f, 0x27, 0x4e, 0xa6, 0x13, 0x03, 0x4f, 0x73, 0xfc, - 0xbd, 0x59, 0xcc, 0xaa, 0xed, 0xda, 0x92, 0x5a, 0x1b, 0xd5, 0x3c, 0x60, - 0xfc, 0xba, 0xa7, 0xb4, 0x7b, 0x32, 0xd5, 0xf0, 0xf2, 0x13, 0x71, 0xde, - 0x2e, 0x50, 0xf1, 0x55, 0x94, 0x66, 0x69, 0x05, 0x3b, 0xab, 0x55, 0xb0, - 0x5b, 0x5e, 0xc1, 0xce, 0x4d, 0x2a, 0xd8, 0x29, 0xaa, 0x60, 0xe7, 0x2e, - 0x2a, 0xd8, 0xfd, 0xea, 0x0a, 0x76, 0x6f, 0x52, 0xc1, 0x6e, 0x51, 0x05, - 0xbb, 0x5f, 0x59, 0x41, 0xce, 0x5b, 0xd1, 0x54, 0x2c, 0xeb, 0xeb, 0x3f, - 0x5a, 0xa5, 0x47, 0xeb, 0xf5, 0x8a, 0xb8, 0x67, 0xc7, 0x85, 0xae, 0x35, - 0x05, 0xa8, 0x2d, 0x5f, 0x85, 0xb1, 0x92, 0xcf, 0xb2, 0xac, 0x05, 0xcd, - 0x02, 0x6d, 0xe5, 0xe0, 0xda, 0x96, 0xdf, 0xba, 0x5e, 0x33, 0xae, 0x23, - 0xcd, 0xcb, 0x0d, 0x14, 0x72, 0x00, 0x2f, 0x9d, 0xc6, 0xc9, 0x80, 0x86, - 0x28, 0x4e, 0xbc, 0xae, 0xa4, 0x5c, 0xaa, 0x94, 0x0b, 0xe5, 0x72, 0x9d, - 0xad, 0x82, 0x4a, 0x30, 0x1a, 0xe8, 0xd0, 0xb5, 0x75, 0x96, 0xc5, 0x3f, - 0xdb, 0xee, 0x02, 0xe5, 0xb1, 0x74, 0xac, 0xaf, 0xb4, 0xe5, 0x15, 0xa2, - 0x0a, 0x6d, 0xf0, 0x63, 0xb2, 0x86, 0x6f, 0xfb, 0x9c, 0xb3, 0x63, 0xdc, - 0x95, 0xcd, 0x09, 0x64, 0x12, 0x08, 0x1a, 0x1c, 0xf9, 0xeb, 0x2b, 0x85, - 0xc2, 0x38, 0xee, 0x4c, 0x2c, 0x8c, 0x7d, 0x83, 0x82, 0x19, 0x80, 0xbb, - 0xca, 0x01, 0x7d, 0x7e, 0xa5, 0x58, 0x08, 0xc5, 0x9d, 0x49, 0x85, 0x90, - 0x6f, 0x50, 0x28, 0xb4, 0xa3, 0x08, 0x7a, 0xf4, 0xf5, 0xb5, 0x62, 0x21, - 0x1c, 0x77, 0x27, 0x17, 0xc2, 0xbe, 0x49, 0xc1, 0xc8, 0x55, 0xd0, 0xd8, - 0x32, 0xea, 0xa5, 0xae, 0x3d, 0x75, 0x33, 0x4c, 0x57, 0x7e, 0xef, 0xaf, - 0xe5, 0xa3, 0x5b, 0xfa, 0x82, 0x32, 0x08, 0x7c, 0x80, 0xa9, 0x3e, 0xfc, - 0x9c, 0x91, 0x08, 0xc9, 0xe9, 0x22, 0x37, 0xf4, 0x2b, 0xc5, 0x2f, 0x19, - 0xbe, 0x33, 0xf9, 0x4b, 0xf4, 0x1b, 0x6c, 0x00, 0x5e, 0x48, 0xbe, 0x5d, - 0xf9, 0xd3, 0x3c, 0x67, 0x26, 0x82, 0x5b, 0x10, 0x36, 0x98, 0xbb, 0xc3, - 0x01, 0x03, 0xd8, 0xbf, 0x7e, 0xc8, 0x90, 0x2b, 0x32, 0xb8, 0xe5, 0x99, - 0x56, 0x88, 0x72, 0xee, 0xbf, 0x5a, 0x11, 0x2e, 0x9c, 0x05, 0xd0, 0xba, - 0xc2, 0xfe, 0xb5, 0x35, 0xd3, 0x24, 0xce, 0x42, 0x45, 0xe4, 0xd5, 0xc0, - 0x5d, 0x86, 0x0e, 0x0b, 0xa9, 0x67, 0xe1, 0x6b, 0x09, 0x6a, 0x96, 0x51, - 0x57, 0x10, 0x1e, 0x04, 0xa6, 0x30, 0x56, 0xd2, 0x04, 0x63, 0x6a, 0xe5, - 0x7b, 0x77, 0x45, 0x8b, 0xcc, 0x6a, 0xa1, 0x9d, 0x77, 0xae, 0xcc, 0x02, - 0xdd, 0x8d, 0x45, 0x7d, 0x4b, 0x7e, 0xa0, 0x4e, 0xfb, 0xca, 0x89, 0x5b, - 0x72, 0x09, 0x1a, 0xaf, 0x00, 0x28, 0x9d, 0x70, 0x4a, 0x72, 0x45, 0x44, - 0x63, 0x0c, 0xfa, 0xda, 0xc8, 0xf5, 0x94, 0x47, 0x72, 0x72, 0xed, 0xaa, - 0xd3, 0x0a, 0x33, 0xe0, 0x65, 0x9e, 0xf1, 0x36, 0xeb, 0x93, 0xdc, 0x5e, - 0x79, 0x85, 0xae, 0xb4, 0xb8, 0x56, 0xa9, 0x1e, 0x4b, 0x60, 0xae, 0x99, - 0xab, 0x4a, 0xc4, 0x35, 0x4b, 0xc5, 0x70, 0x90, 0x70, 0xe4, 0xaf, 0x35, - 0x9b, 0xf5, 0x7a, 0x86, 0xcd, 0x7e, 0xf1, 0xd1, 0x78, 0x0c, 0x02, 0xa1, - 0xe1, 0xb9, 0x0c, 0x59, 0xd6, 0x35, 0x4f, 0xdc, 0x0d, 0x7a, 0x7d, 0x1f, - 0x65, 0x1b, 0xa7, 0xd9, 0x91, 0xb1, 0x5b, 0x95, 0x75, 0x3b, 0x9e, 0x8e, - 0x40, 0xab, 0x68, 0xa5, 0x68, 0xe4, 0x6a, 0xb1, 0x12, 0x4e, 0x9a, 0x4f, - 0x69, 0x14, 0x39, 0x0c, 0x83, 0x89, 0x8c, 0x5a, 0x49, 0x4f, 0x6a, 0x2c, - 0x5e, 0x82, 0x5f, 0x61, 0x32, 0x46, 0x7f, 0xd7, 0x5b, 0xf4, 0x9b, 0x74, - 0xd5, 0xeb, 0xdb, 0x54, 0xaa, 0xca, 0xb7, 0x98, 0x91, 0x8a, 0xe0, 0x8e, - 0x9b, 0x33, 0x51, 0x5e, 0x45, 0x36, 0xd0, 0x3a, 0x16, 0x6f, 0xde, 0x27, - 0x5e, 0xb9, 0xb0, 0xc7, 0xc3, 0x22, 0xcf, 0x9f, 0x65, 0xad, 0xee, 0x40, - 0x0d, 0xe6, 0x5c, 0x5d, 0xe2, 0xe5, 0xda, 0x79, 0xa2, 0x69, 0x7c, 0x53, - 0xf0, 0x16, 0x9b, 0x9b, 0x85, 0xb2, 0xb2, 0x54, 0xe4, 0x66, 0xcb, 0x5d, - 0xd8, 0xf4, 0x52, 0x45, 0x59, 0x32, 0x26, 0x1a, 0xf5, 0xf9, 0x89, 0x1f, - 0x46, 0xb4, 0x60, 0x2e, 0x15, 0x68, 0xa5, 0x06, 0x31, 0x03, 0xe2, 0x54, - 0x16, 0xbe, 0xdb, 0xf1, 0x70, 0xed, 0x7a, 0x5b, 0x74, 0xad, 0xc3, 0x4a, - 0x95, 0x7f, 0xfd, 0xf3, 0xf7, 0xef, 0x49, 0x00, 0x37, 0xaa, 0xfc, 0xec, - 0x0f, 0x51, 0x74, 0x42, 0x12, 0xf8, 0x8f, 0xab, 0xfd, 0x6a, 0x2d, 0x4f, - 0x95, 0xff, 0xd6, 0x0f, 0xd6, 0xa9, 0xbc, 0x74, 0x44, 0x33, 0xce, 0xe3, - 0xee, 0xce, 0x4e, 0x77, 0x27, 0x21, 0x12, 0x9c, 0x57, 0xf9, 0xcf, 0x13, - 0xc9, 0xee, 0xca, 0x22, 0xf9, 0x45, 0x78, 0xad, 0x35, 0x5d, 0xa2, 0x0f, - 0x14, 0x7c, 0xf1, 0x5f, 0x5c, 0xf9, 0x6f, 0x51, 0x76, 0x8d, 0xca, 0xcf, - 0x01, 0x7e, 0x86, 0x9a, 0x24, 0x04, 0x40, 0x49, 0xff, 0x16, 0x01, 0xac, - 0xb2, 0xc4, 0x79, 0x8b, 0xbe, 0xdf, 0x53, 0x8c, 0x18, 0xb7, 0xd9, 0x75, - 0x24, 0xd6, 0x21, 0xb0, 0xfe, 0xe7, 0x75, 0x9e, 0x64, 0xbd, 0xdf, 0xbd, - 0x78, 0xf2, 0x76, 0x75, 0x7f, 0x57, 0xfe, 0x44, 0xb4, 0x92, 0xbf, 0x71, - 0x8f, 0x57, 0x7b, 0x47, 0xde, 0xd7, 0x36, 0x52, 0x7b, 0x37, 0xd9, 0x42, - 0x38, 0x52, 0xf7, 0x6f, 0x69, 0x9f, 0x0d, 0xa8, 0x77, 0x37, 0x21, 0xb7, - 0xb7, 0xdf, 0xbe, 0x7f, 0x77, 0xf4, 0xcb, 0x75, 0x1b, 0x1a, 0xaf, 0x98, - 0xc2, 0x61, 0xc1, 0x0d, 0x36, 0x75, 0x86, 0xe5, 0xe7, 0x87, 0xcf, 0x8e, - 0x6e, 0xc0, 0x33, 0x0e, 0xd5, 0x6c, 0x72, 0x46, 0x96, 0x61, 0xfa, 0xc5, - 0xe1, 0xeb, 0xd7, 0x87, 0x37, 0xe0, 0x7a, 0x62, 0xcf, 0x66, 0xf6, 0xbf, - 0x8f, 0xed, 0xe3, 0x97, 0xbf, 0xb9, 0x89, 0xac, 0xe1, 0x13, 0xdf, 0xb6, - 0xac, 0xef, 0xba, 0x6b, 0x94, 0x8f, 0x9e, 0x3a, 0xcc, 0x5b, 0xc6, 0x78, - 0xab, 0xc1, 0xd4, 0x6c, 0x2c, 0xab, 0xa1, 0x74, 0xe9, 0xdc, 0x44, 0xe3, - 0x2e, 0xba, 0x07, 0x99, 0xb8, 0x5c, 0x61, 0x47, 0xf1, 0xb5, 0x4d, 0x46, - 0x8e, 0x9f, 0x53, 0xd6, 0x4c, 0xcd, 0x74, 0xcc, 0x4e, 0xd9, 0x0c, 0x80, - 0x15, 0xbd, 0x24, 0xa8, 0x4e, 0x16, 0xac, 0x48, 0xe3, 0x39, 0xe6, 0x33, - 0x2b, 0xd1, 0xa0, 0x89, 0xcf, 0x0d, 0x69, 0x3c, 0x41, 0xac, 0xd3, 0x4a, - 0x34, 0x28, 0xb6, 0xf7, 0xa6, 0x34, 0xa2, 0xd5, 0x44, 0x35, 0x88, 0x6e, - 0x2a, 0x29, 0x50, 0xc0, 0xe6, 0xf0, 0xaa, 0x44, 0xa0, 0x2d, 0x6b, 0xd1, - 0x61, 0xb4, 0x6b, 0xf6, 0x8f, 0xdb, 0x52, 0x6c, 0xd7, 0xfe, 0x2c, 0xde, - 0xd0, 0xe2, 0xde, 0x1a, 0x23, 0xaa, 0x71, 0x8f, 0xb9, 0xb8, 0x87, 0xe2, - 0xb7, 0xe1, 0x1e, 0xea, 0xd0, 0x60, 0x75, 0x70, 0x8d, 0x2f, 0xc4, 0xbf, - 0xa3, 0x41, 0x35, 0x96, 0x56, 0x1c, 0xf6, 0x93, 0x5a, 0xa3, 0x6c, 0x84, - 0xa8, 0x96, 0x5e, 0x5b, 0x97, 0xf9, 0xb1, 0x79, 0x4b, 0xbe, 0x2d, 0x81, - 0xde, 0x5c, 0x96, 0x78, 0x43, 0x55, 0xf2, 0x6d, 0x6f, 0xd7, 0xec, 0x24, - 0xf0, 0xeb, 0x7b, 0xb2, 0xdb, 0x09, 0x44, 0x15, 0xbb, 0x09, 0xfc, 0x7d, - 0xac, 0x58, 0x89, 0x23, 0x86, 0x56, 0x5d, 0xe5, 0xcd, 0x40, 0xc8, 0x1b, - 0xd0, 0xb9, 0x76, 0xf2, 0x67, 0xdc, 0x50, 0xf1, 0x79, 0x4c, 0x16, 0x73, - 0x89, 0xc0, 0x0e, 0x1e, 0xdb, 0x99, 0xf7, 0x92, 0xca, 0xb7, 0xa4, 0x2e, - 0x7d, 0x35, 0x6a, 0x25, 0x41, 0x8e, 0x5f, 0xba, 0x03, 0x51, 0xa2, 0x69, - 0xe9, 0xb5, 0xb6, 0x27, 0x03, 0xd7, 0xc6, 0xf3, 0xc1, 0xb7, 0x81, 0xff, - 0x7b, 0x1a, 0x46, 0xa6, 0x3e, 0xad, 0x52, 0xd8, 0x07, 0x38, 0xa6, 0xfa, - 0x8f, 0xbf, 0xe2, 0x20, 0x43, 0xfb, 0x91, 0xac, 0x93, 0xb5, 0x4e, 0xd4, - 0x5e, 0x61, 0x13, 0xfa, 0x73, 0xe1, 0x95, 0x34, 0xa1, 0x6e, 0x36, 0xa5, - 0x69, 0x5f, 0xdf, 0x6e, 0x71, 0x5b, 0x39, 0x71, 0x84, 0x57, 0xae, 0xa5, - 0xa4, 0x38, 0x96, 0xc5, 0x87, 0xe2, 0x36, 0x0a, 0x67, 0x9e, 0x1c, 0x27, - 0x9d, 0xb1, 0x55, 0x45, 0xe4, 0x17, 0x5e, 0xb2, 0x84, 0xf0, 0xb2, 0x26, - 0xcd, 0x42, 0x0f, 0x27, 0xf4, 0x5a, 0x5a, 0x3e, 0x4a, 0xff, 0x76, 0x5c, - 0x7d, 0xf8, 0xfa, 0xf8, 0xe5, 0xd1, 0xc3, 0xda, 0xbd, 0x7e, 0xbf, 0xd1, - 0xb6, 0xfe, 0xf8, 0x47, 0xcb, 0xc0, 0xe2, 0x84, 0xca, 0x2f, 0xb1, 0xa0, - 0x06, 0x2d, 0x35, 0xc0, 0xef, 0x03, 0x67, 0x84, 0xd2, 0x5b, 0x0f, 0x6b, - 0xd6, 0x41, 0x7c, 0x8b, 0xb7, 0xf9, 0xa3, 0xaa, 0xe0, 0x25, 0xa4, 0x4d, - 0xd7, 0x9f, 0x54, 0x2b, 0x78, 0x57, 0xe7, 0x48, 0x44, 0x32, 0x6c, 0xb0, - 0xb6, 0x9f, 0x06, 0x1c, 0xe1, 0x1c, 0xd1, 0x8c, 0xd8, 0x40, 0x83, 0x1e, - 0xc9, 0x77, 0x85, 0x3e, 0xb9, 0x78, 0x39, 0xaa, 0xe6, 0xa2, 0xe5, 0x6b, - 0x4d, 0xd6, 0xb4, 0xa6, 0x3e, 0xdd, 0xd7, 0xb7, 0x1e, 0x72, 0x3f, 0x79, - 0xb8, 0x2a, 0xc2, 0x78, 0x87, 0xa0, 0x08, 0xd5, 0x14, 0xb5, 0x49, 0x62, - 0x4a, 0x85, 0xfa, 0x2b, 0x51, 0xe6, 0x85, 0xcb, 0xe7, 0x44, 0xf4, 0x12, - 0x3f, 0xea, 0x38, 0xe6, 0x77, 0x24, 0xa3, 0xea, 0x00, 0xfd, 0x01, 0x6e, - 0x60, 0xb0, 0xb0, 0x31, 0x68, 0xc1, 0xab, 0xc0, 0x39, 0xbf, 0x33, 0x4f, - 0x05, 0xbf, 0xca, 0x53, 0xee, 0x0c, 0xf0, 0xd4, 0x9f, 0x5f, 0xd0, 0x75, - 0x21, 0x71, 0x8e, 0xe0, 0xa3, 0x7e, 0x15, 0x52, 0xb5, 0xea, 0x91, 0x37, - 0x71, 0x9d, 0x70, 0x5a, 0xb3, 0x3e, 0x4b, 0xd1, 0xd7, 0x33, 0x90, 0x4e, - 0xd4, 0x64, 0x24, 0x2f, 0xc7, 0x96, 0x9d, 0x44, 0x6d, 0x39, 0x21, 0x26, - 0x27, 0x61, 0x48, 0xb7, 0x7b, 0xd0, 0xc4, 0x3b, 0xac, 0x13, 0xd2, 0x0b, - 0x7e, 0x45, 0x04, 0xb1, 0x68, 0x2f, 0x5c, 0x7e, 0x99, 0xaa, 0xc2, 0x0f, - 0x24, 0x7c, 0xba, 0xe5, 0x33, 0xae, 0x87, 0x70, 0x75, 0x4d, 0xfa, 0xba, - 0x39, 0x85, 0xd7, 0x4b, 0xb4, 0x2c, 0x03, 0x9c, 0xd0, 0x6a, 0x1e, 0x4e, - 0x11, 0xab, 0xf2, 0x95, 0xba, 0xc9, 0xa6, 0x40, 0x4d, 0xca, 0x32, 0x7d, - 0x37, 0x99, 0xab, 0xca, 0x99, 0xcc, 0x5f, 0xbc, 0xb4, 0x7e, 0xd9, 0xad, - 0x62, 0xb6, 0xf8, 0xa1, 0x96, 0x84, 0x8b, 0x03, 0x3b, 0x01, 0x1c, 0xff, - 0x4e, 0x02, 0xa0, 0xd9, 0x92, 0x30, 0xf2, 0x31, 0x0f, 0x16, 0x47, 0x4b, - 0x02, 0xe6, 0x9d, 0xfe, 0x5d, 0x40, 0xe8, 0x28, 0x08, 0xfc, 0xa0, 0x0d, - 0x20, 0xcc, 0xd7, 0xdd, 0x11, 0x1c, 0xab, 0x48, 0xe5, 0xb0, 0x98, 0x0c, - 0xbb, 0x4d, 0x0b, 0x3a, 0x8f, 0x03, 0x45, 0x65, 0x28, 0x3a, 0x40, 0x61, - 0xd1, 0x1e, 0x6e, 0xd8, 0xb4, 0xbe, 0x75, 0xe9, 0x94, 0x1d, 0xce, 0x05, - 0xc9, 0x16, 0x7d, 0x77, 0xf4, 0xf4, 0xed, 0x9b, 0x37, 0x47, 0x4f, 0xdf, - 0xab, 0x37, 0xa0, 0x12, 0xe2, 0x28, 0x40, 0xdb, 0x4f, 0xa0, 0x90, 0xcd, - 0x24, 0x42, 0x17, 0xf7, 0xb2, 0xbc, 0xa6, 0x11, 0x10, 0xc8, 0xf4, 0x1d, - 0x2d, 0x33, 0x7a, 0xb6, 0x9a, 0x4d, 0x00, 0x5a, 0x5b, 0x5b, 0x78, 0xb1, - 0x97, 0x13, 0xc6, 0x4d, 0xd5, 0xc0, 0xc1, 0x00, 0x82, 0x41, 0x12, 0x18, - 0x37, 0xea, 0x81, 0x2b, 0x68, 0x94, 0x1d, 0xe1, 0x0c, 0xc6, 0x8b, 0xc4, - 0x0b, 0x11, 0xd5, 0xd2, 0xc4, 0xd4, 0xc8, 0x90, 0xa4, 0xa7, 0x0a, 0xde, - 0x19, 0xc9, 0x0f, 0x62, 0x10, 0xa2, 0xe3, 0x92, 0xc4, 0xa5, 0xf8, 0x58, - 0x55, 0x65, 0xa2, 0x88, 0x14, 0xd9, 0x74, 0x91, 0x77, 0x38, 0x5e, 0x73, - 0x81, 0x02, 0xfc, 0x5d, 0x04, 0xc0, 0x2d, 0x00, 0x00, 0xfe, 0xe6, 0x14, - 0x20, 0x35, 0xb7, 0x4a, 0x48, 0x19, 0xe2, 0x65, 0x28, 0xdc, 0x2e, 0x46, - 0xf6, 0x77, 0x50, 0x43, 0x91, 0xe4, 0x24, 0xc9, 0xa6, 0x32, 0x64, 0xc8, - 0xfa, 0x20, 0x7f, 0x25, 0x33, 0x67, 0xe6, 0x18, 0x0f, 0x00, 0x5e, 0x8e, - 0xc9, 0x6a, 0xa0, 0x21, 0xc0, 0x2a, 0x31, 0xa6, 0xf6, 0x94, 0xf1, 0x4a, - 0x5a, 0x0c, 0x70, 0x48, 0x61, 0x79, 0x79, 0x11, 0xe6, 0x29, 0xbe, 0x37, - 0x89, 0xb5, 0xed, 0x54, 0x88, 0x39, 0x1d, 0x17, 0x9e, 0xc1, 0x48, 0xa3, - 0x9c, 0x1d, 0x59, 0xa9, 0xbe, 0x36, 0xf2, 0x45, 0xe8, 0x3d, 0x8c, 0xc8, - 0x28, 0x9c, 0x02, 0x2c, 0xff, 0x2a, 0xdc, 0x94, 0xda, 0x62, 0xda, 0xb1, - 0x98, 0x63, 0x3b, 0xcd, 0x6f, 0x8c, 0xc8, 0xda, 0x28, 0x6b, 0x8c, 0x37, - 0xed, 0x9d, 0xe2, 0xe8, 0xf2, 0x34, 0x00, 0x1f, 0xf5, 0xf8, 0xcd, 0xba, - 0x90, 0xf8, 0xd1, 0x68, 0x22, 0x52, 0x8d, 0xc2, 0xee, 0x2b, 0x35, 0x31, - 0x7d, 0xa7, 0xbb, 0xe5, 0x88, 0x1a, 0x32, 0xdd, 0x57, 0x39, 0xdc, 0x0a, - 0xc9, 0x2f, 0xe8, 0x3b, 0x99, 0x41, 0x11, 0x47, 0x48, 0x7f, 0x82, 0xaf, - 0x64, 0x32, 0x4f, 0x85, 0x48, 0x92, 0xf8, 0x4e, 0x66, 0x50, 0xb3, 0x9c, - 0x00, 0x19, 0x58, 0x26, 0xe2, 0x88, 0x61, 0x41, 0x42, 0xe6, 0x84, 0xb5, - 0xca, 0x26, 0x09, 0x79, 0x74, 0xc2, 0x3a, 0x5b, 0xdc, 0x85, 0xb0, 0xcb, - 0xca, 0x52, 0x9e, 0x2c, 0xd8, 0x4a, 0x16, 0xd3, 0xb1, 0x03, 0xcc, 0x92, - 0x56, 0x64, 0x4b, 0xa7, 0x25, 0x21, 0x13, 0xbb, 0xc2, 0x12, 0xfc, 0x98, - 0x13, 0xd4, 0x20, 0x92, 0x07, 0x36, 0xdb, 0x2f, 0x04, 0xac, 0x7e, 0xe6, - 0xa1, 0xcc, 0x3e, 0x05, 0xa0, 0xe8, 0xa7, 0x75, 0x2c, 0x02, 0x0c, 0x1c, - 0x19, 0x38, 0xb3, 0xa4, 0x4f, 0x70, 0x34, 0x9e, 0xf0, 0xcf, 0x2c, 0x94, - 0x59, 0xe5, 0xd6, 0xd8, 0xe8, 0x77, 0x8e, 0x70, 0x7a, 0x4d, 0x58, 0x83, - 0x7e, 0xab, 0x16, 0x7c, 0xd3, 0xa0, 0x66, 0x41, 0x94, 0xea, 0x8c, 0xee, - 0x35, 0xb7, 0x5e, 0x1d, 0x3d, 0xb3, 0x38, 0x25, 0x05, 0x69, 0x96, 0x10, - 0x01, 0x88, 0x2f, 0xeb, 0x2d, 0x79, 0xf9, 0x29, 0x90, 0x78, 0xd9, 0x2e, - 0x46, 0xf5, 0xe2, 0xdb, 0x97, 0x6f, 0x2d, 0x4a, 0xc8, 0x83, 0xbd, 0x9d, - 0xf3, 0x80, 0x1c, 0x83, 0xaa, 0xe7, 0x0c, 0xa4, 0x59, 0xcf, 0x22, 0xaa, - 0xf2, 0x32, 0xab, 0x2c, 0x88, 0x59, 0x3f, 0x02, 0xcc, 0x73, 0xf4, 0x7c, - 0x7a, 0xf9, 0xb9, 0xc8, 0xd7, 0xd3, 0xac, 0xd8, 0x90, 0x42, 0xd3, 0x0a, - 0x0c, 0x3a, 0x43, 0xa0, 0x5e, 0x1d, 0x97, 0x85, 0x36, 0x0b, 0x25, 0xac, - 0x0b, 0x93, 0x19, 0x75, 0xeb, 0x63, 0xe7, 0x4b, 0x96, 0xba, 0x59, 0x30, - 0x30, 0x3a, 0xc3, 0x07, 0x24, 0xc7, 0x70, 0x66, 0x65, 0x67, 0x4b, 0xd7, - 0x29, 0x9e, 0xf6, 0x03, 0x1e, 0xaf, 0x82, 0xcc, 0x34, 0x5d, 0x3c, 0x61, - 0xa7, 0x5c, 0x71, 0x9e, 0x6e, 0x82, 0x78, 0xa6, 0x4d, 0x1d, 0xcf, 0x1c, - 0xf8, 0xcd, 0x83, 0x44, 0x1e, 0x41, 0xf0, 0x88, 0x96, 0x21, 0x6e, 0x66, - 0xb9, 0x9a, 0x5d, 0xb2, 0x9e, 0x12, 0x34, 0x05, 0x99, 0xdc, 0xa0, 0x8e, - 0x41, 0xd5, 0x81, 0x71, 0xb9, 0x1d, 0x9b, 0x02, 0x97, 0x5b, 0xa4, 0x64, - 0x56, 0xe8, 0x47, 0xc6, 0x24, 0x08, 0xa6, 0xf6, 0x81, 0xbe, 0x93, 0x19, - 0xb9, 0xfd, 0x7c, 0xaa, 0x73, 0x9c, 0x66, 0xe9, 0xc4, 0x64, 0x11, 0xf5, - 0x26, 0x6e, 0x72, 0x4d, 0xa8, 0x9f, 0xa0, 0xe5, 0x3e, 0x93, 0x11, 0xa4, - 0xe7, 0x24, 0x98, 0x99, 0xee, 0x02, 0xea, 0x30, 0x3e, 0x58, 0x92, 0x30, - 0xbb, 0xd6, 0x31, 0x81, 0x58, 0x0c, 0x63, 0x55, 0x7f, 0x5b, 0xd9, 0xff, - 0x6d, 0x05, 0x55, 0xc6, 0xe9, 0x38, 0x1a, 0x4d, 0x52, 0x5e, 0x4f, 0x72, - 0x96, 0x46, 0x8e, 0xc4, 0x31, 0x95, 0xd3, 0x09, 0x19, 0x40, 0xb6, 0xa0, - 0x3a, 0x4f, 0x26, 0x64, 0x21, 0xd2, 0x03, 0x22, 0x25, 0x25, 0x46, 0xf6, - 0xb2, 0x81, 0xd0, 0xa0, 0x98, 0xcb, 0x09, 0xd5, 0x4f, 0x7c, 0x36, 0x3b, - 0xc9, 0xe9, 0x55, 0x45, 0x02, 0x5d, 0x29, 0x60, 0xcf, 0x2d, 0x75, 0x10, - 0xdf, 0x08, 0x74, 0x5c, 0x24, 0x8c, 0xc2, 0xbb, 0xf5, 0x11, 0xd1, 0x59, - 0x07, 0xbe, 0x87, 0xc9, 0xc8, 0x12, 0x1f, 0xd1, 0x73, 0x60, 0x8f, 0x63, - 0xc0, 0x32, 0x2f, 0xf1, 0x97, 0x00, 0xa0, 0xb1, 0xd3, 0x9f, 0x03, 0x7e, - 0x71, 0xb6, 0xcc, 0x57, 0xfc, 0x19, 0x34, 0x27, 0x46, 0xea, 0x10, 0x52, - 0x0c, 0xd2, 0xc9, 0x01, 0xb7, 0xb9, 0xdc, 0x4f, 0x3c, 0x15, 0x18, 0x55, - 0x26, 0x02, 0x72, 0x1e, 0xe0, 0xd7, 0xa8, 0x69, 0xbd, 0x10, 0x83, 0x60, - 0xe1, 0x9c, 0x5a, 0x30, 0x2b, 0x19, 0x36, 0xac, 0x53, 0xcf, 0x9f, 0x5b, - 0xfe, 0x2c, 0x7e, 0x86, 0x26, 0x72, 0xb9, 0x40, 0x94, 0xfb, 0x8e, 0xfc, - 0x8d, 0xe6, 0x18, 0x89, 0xbb, 0xf0, 0x71, 0x32, 0x8e, 0xe3, 0x4b, 0xba, - 0x12, 0xca, 0x75, 0xf1, 0x24, 0xbc, 0x3b, 0xa5, 0xa9, 0xc6, 0xd6, 0xe4, - 0x28, 0x1b, 0x9a, 0x16, 0x58, 0xe2, 0x37, 0xfe, 0xcc, 0xb5, 0xed, 0x60, - 0x89, 0xdb, 0xf8, 0x9c, 0x56, 0x7e, 0x07, 0xce, 0xef, 0x25, 0xf7, 0x58, - 0x6d, 0xf3, 0xb4, 0xef, 0x28, 0xb4, 0xeb, 0xa8, 0x9a, 0x4a, 0xb7, 0xc2, - 0x1d, 0xd4, 0x50, 0x24, 0x98, 0x29, 0x71, 0x1c, 0x51, 0x8b, 0x70, 0x38, - 0x5d, 0x9c, 0x2d, 0xf5, 0x1e, 0x0f, 0x71, 0xb9, 0xcb, 0x02, 0x3d, 0x00, - 0x35, 0xc2, 0xc2, 0xc2, 0x70, 0x0a, 0x72, 0x42, 0x84, 0xb8, 0x46, 0x61, - 0x42, 0xac, 0xa1, 0x0a, 0xd0, 0x5b, 0x9e, 0x23, 0x36, 0xd3, 0x0e, 0xe2, - 0x99, 0x08, 0x4e, 0x23, 0xd6, 0xea, 0x42, 0xf7, 0xd0, 0xe8, 0x28, 0xdd, - 0x4f, 0x33, 0xb6, 0xa3, 0xd0, 0x17, 0x08, 0x10, 0xfa, 0xfd, 0xa9, 0xf1, - 0x0e, 0xbf, 0xf8, 0x36, 0x68, 0x4b, 0xf7, 0x10, 0x17, 0x84, 0x69, 0x07, - 0x31, 0xef, 0x18, 0x72, 0x93, 0x88, 0x45, 0x91, 0x63, 0xe8, 0xfb, 0x25, - 0x9e, 0xa1, 0x5f, 0xe2, 0x19, 0xda, 0x8b, 0xb3, 0x42, 0xd7, 0xd0, 0x89, - 0xca, 0x1d, 0xc3, 0x17, 0x40, 0x4a, 0x4e, 0xdd, 0x8c, 0x9c, 0xba, 0xa9, - 0x3f, 0x01, 0xef, 0xa3, 0x72, 0x6f, 0x30, 0x5b, 0xc0, 0xb5, 0xb9, 0xc0, - 0x6a, 0x5e, 0xe0, 0x6c, 0x75, 0x2f, 0x90, 0xd4, 0xeb, 0xbd, 0x6d, 0xbb, - 0x9b, 0x74, 0x02, 0x85, 0xb7, 0xaa, 0x0f, 0x38, 0x91, 0xad, 0x0f, 0x01, - 0x78, 0xb6, 0x3d, 0x5b, 0xc1, 0x13, 0x3c, 0xb3, 0xa1, 0x7b, 0x67, 0xfe, - 0x72, 0x5f, 0x10, 0x5e, 0x20, 0xcb, 0xf5, 0x6b, 0x7c, 0xbc, 0x15, 0xbc, - 0xc5, 0xac, 0x1b, 0xe8, 0xe3, 0x59, 0xfc, 0x2f, 0x78, 0x81, 0xa4, 0x33, - 0x73, 0x1b, 0x3d, 0xdb, 0xb6, 0x4e, 0xa9, 0x47, 0x09, 0xaf, 0xd4, 0x0d, - 0x3c, 0x74, 0x27, 0x62, 0x06, 0x3d, 0x5e, 0xe2, 0x09, 0x9e, 0x86, 0xe5, - 0xae, 0xe0, 0x21, 0x5a, 0x53, 0x04, 0x70, 0x06, 0xcb, 0x7d, 0xc1, 0x9f, - 0x61, 0xa4, 0xc2, 0x42, 0xe9, 0x12, 0x5f, 0xf0, 0x85, 0x38, 0xc5, 0x14, - 0x12, 0x23, 0x18, 0x81, 0x5e, 0xef, 0x09, 0x52, 0xed, 0xd8, 0x50, 0x58, - 0xa7, 0x8e, 0xf8, 0xb2, 0xc4, 0x19, 0x3c, 0x15, 0x6e, 0xa1, 0x33, 0xe8, - 0x5c, 0xef, 0x0b, 0xbe, 0xfd, 0x8c, 0x5a, 0xa1, 0x2b, 0x86, 0x82, 0x93, - 0x84, 0xb7, 0xc4, 0x15, 0xa4, 0x2f, 0x8b, 0xfd, 0x41, 0x1a, 0x7d, 0xaf, - 0xf5, 0x05, 0x51, 0x87, 0x84, 0x89, 0xa5, 0x91, 0x64, 0xe1, 0x1a, 0x47, - 0x70, 0x22, 0x60, 0xcb, 0x05, 0x2d, 0xa3, 0x2e, 0xf5, 0x04, 0x53, 0xa3, - 0xab, 0x3f, 0x07, 0x21, 0xdb, 0x2b, 0x72, 0x08, 0x33, 0x70, 0xc0, 0x4e, - 0x76, 0x2a, 0x07, 0x9a, 0x1f, 0xf3, 0xa6, 0x22, 0xd2, 0x78, 0x73, 0xc3, - 0xdc, 0x4a, 0x7e, 0xa1, 0xd4, 0xbf, 0x8c, 0x67, 0x38, 0x12, 0xa5, 0x9e, - 0xe1, 0x33, 0xb1, 0x88, 0xc2, 0xe1, 0x1d, 0x2f, 0x1d, 0x92, 0x5b, 0xb0, - 0xb8, 0xc6, 0x2d, 0xc4, 0x12, 0x31, 0x9a, 0xd1, 0x8b, 0xca, 0x1c, 0xc2, - 0x0f, 0x0e, 0xf9, 0xb0, 0xc6, 0xc3, 0xb8, 0xc6, 0x23, 0xf4, 0xa0, 0xd7, - 0x1e, 0x0f, 0xb8, 0x33, 0x27, 0xe9, 0x0b, 0x26, 0x5c, 0x14, 0xeb, 0x27, - 0x08, 0x0c, 0xb5, 0x44, 0xb8, 0xdc, 0x3b, 0x9c, 0xd9, 0x2e, 0x2f, 0xfb, - 0x2e, 0x80, 0xab, 0x69, 0x3d, 0x11, 0xde, 0x22, 0xfa, 0x22, 0xac, 0x0f, - 0x2f, 0x8f, 0x9e, 0x1d, 0xbd, 0xb3, 0x7e, 0x79, 0xf4, 0xee, 0xc9, 0xcb, - 0x37, 0xcf, 0x8e, 0xde, 0xd4, 0xad, 0xc5, 0x8c, 0x50, 0x79, 0xfe, 0x70, - 0x4a, 0x25, 0xbe, 0x2c, 0xb8, 0xf5, 0x9c, 0xa5, 0x8e, 0xe1, 0x2b, 0x32, - 0x59, 0x78, 0x70, 0xee, 0x6a, 0x75, 0x4f, 0xa9, 0x6e, 0x4c, 0xeb, 0xc8, - 0x91, 0x7a, 0xb9, 0x20, 0xbd, 0xbc, 0x2b, 0xa2, 0x6a, 0xb8, 0x35, 0x3e, - 0x3c, 0xa4, 0xb5, 0xd2, 0x82, 0xe2, 0x73, 0x11, 0x44, 0xce, 0xa4, 0x74, - 0x45, 0x91, 0x21, 0xa6, 0x2e, 0x74, 0x60, 0x20, 0x9c, 0x99, 0xf5, 0x8a, - 0xbd, 0x43, 0x52, 0x89, 0x43, 0xbd, 0xb2, 0x18, 0x36, 0x48, 0x98, 0x75, - 0x74, 0x24, 0xbc, 0xbf, 0x58, 0x36, 0x85, 0x69, 0xbc, 0x3b, 0x71, 0x84, - 0x45, 0x92, 0xb1, 0x25, 0x2b, 0x8c, 0x8b, 0x65, 0x3e, 0xe2, 0x07, 0xa8, - 0x3d, 0x46, 0x18, 0x6c, 0x5a, 0x60, 0x18, 0x84, 0x42, 0xe0, 0x56, 0xc1, - 0x05, 0x4f, 0x10, 0xc1, 0x73, 0x1d, 0x7c, 0x61, 0xe1, 0x2b, 0x3a, 0xc3, - 0x49, 0x7a, 0x74, 0x53, 0x47, 0x8c, 0x61, 0xaa, 0xe0, 0x66, 0x8d, 0x49, - 0x7f, 0x9f, 0x70, 0x3d, 0x21, 0x86, 0x53, 0xa1, 0x10, 0xd0, 0xdd, 0x65, - 0x75, 0x7c, 0x85, 0x61, 0xca, 0x9d, 0x54, 0x3d, 0xc1, 0x99, 0xe5, 0x3d, - 0x49, 0x6b, 0xbc, 0xf0, 0x4e, 0x49, 0x78, 0x0e, 0xa4, 0xaf, 0x51, 0x7a, - 0x62, 0x3a, 0x53, 0x28, 0x71, 0xe3, 0x2e, 0x7e, 0xd9, 0xa7, 0xd1, 0x02, - 0x7a, 0x83, 0x5f, 0x4f, 0x94, 0x7b, 0x79, 0x86, 0xbc, 0x2f, 0xcd, 0x27, - 0xcd, 0xfc, 0x02, 0xe4, 0x48, 0x2c, 0x59, 0x82, 0x7c, 0x6e, 0x07, 0x03, - 0x51, 0xe4, 0x69, 0x46, 0xc5, 0x8e, 0xe6, 0x3f, 0xff, 0x5e, 0xe6, 0x68, - 0x16, 0xfa, 0x99, 0xc2, 0xf9, 0xe7, 0x9f, 0xcb, 0x3d, 0xcd, 0xc3, 0xd3, - 0x2f, 0x82, 0x7c, 0x8d, 0x00, 0xeb, 0xb3, 0x54, 0x2f, 0xeb, 0x0d, 0x3b, - 0x3b, 0x1e, 0xe8, 0xfd, 0xf3, 0x6f, 0xff, 0xfc, 0xb3, 0x08, 0xca, 0x9c, - 0xce, 0x65, 0x65, 0x4f, 0x5d, 0x7a, 0x0c, 0x56, 0x71, 0x3f, 0x57, 0x5b, - 0x84, 0x9c, 0x07, 0x36, 0xb4, 0x15, 0xaf, 0x6a, 0x0e, 0xcf, 0xfe, 0xf9, - 0x97, 0x29, 0x64, 0xbe, 0x49, 0x17, 0x74, 0xf1, 0xef, 0x5f, 0x87, 0x3c, - 0xf4, 0xbe, 0xd8, 0x53, 0x77, 0xb9, 0x6b, 0xf9, 0x4e, 0x38, 0xe8, 0x1c, - 0x63, 0x1f, 0x5e, 0xd4, 0xcd, 0x5d, 0xd5, 0xe2, 0xe5, 0x48, 0xe1, 0x25, - 0x44, 0x7f, 0x2b, 0x4e, 0xe9, 0x0b, 0xf2, 0x2d, 0xce, 0x9a, 0xab, 0xb8, - 0xa5, 0x3f, 0x83, 0x5b, 0xda, 0x5c, 0xc9, 0x23, 0x7d, 0xc1, 0x2a, 0xbb, - 0xd4, 0x29, 0x7d, 0x19, 0xaf, 0x49, 0x52, 0xaf, 0x4b, 0xd5, 0x6b, 0xe9, - 0xf2, 0xa4, 0x7d, 0xb3, 0xe5, 0xc9, 0x9f, 0xf0, 0x1a, 0xe8, 0x64, 0xc9, - 0xf2, 0xe4, 0x7b, 0xdc, 0x82, 0x7f, 0x8d, 0x47, 0xca, 0xfc, 0xc1, 0x02, - 0x31, 0xe8, 0x32, 0x9f, 0x94, 0xaa, 0x74, 0x66, 0x03, 0xf6, 0x62, 0x9e, - 0xa9, 0x57, 0xde, 0x27, 0xfd, 0x59, 0x20, 0x9c, 0xb0, 0xc8, 0x25, 0x7d, - 0x67, 0x8f, 0xae, 0xf3, 0x48, 0xff, 0xf9, 0xa7, 0x41, 0xc2, 0x25, 0x85, - 0xb7, 0x7c, 0xad, 0x47, 0x0a, 0x6b, 0xfa, 0xd9, 0x59, 0xea, 0x92, 0xe2, - 0x7d, 0xfb, 0x11, 0x00, 0xae, 0x59, 0x9b, 0xd4, 0x0e, 0xd1, 0x32, 0x87, - 0x34, 0x33, 0xa2, 0xe3, 0x3c, 0xa8, 0x03, 0xdb, 0x11, 0x14, 0xfa, 0xa4, - 0x29, 0x50, 0x60, 0xd7, 0xc0, 0xd1, 0xbd, 0x2c, 0x74, 0xe1, 0x78, 0x7b, - 0xac, 0xc0, 0x79, 0xcc, 0x4d, 0xd3, 0x2d, 0x1b, 0x71, 0x57, 0x58, 0xc9, - 0xc4, 0x22, 0xc7, 0x4f, 0xf4, 0x4a, 0xa6, 0x7c, 0x77, 0x02, 0x36, 0xfe, - 0xe5, 0x0e, 0xb8, 0x09, 0x46, 0x36, 0x7b, 0xe0, 0x2f, 0xde, 0x3d, 0x41, - 0x49, 0x7c, 0x6a, 0xb4, 0x2f, 0x9e, 0xbc, 0x43, 0x02, 0x3e, 0x75, 0x02, - 0xda, 0x40, 0xb6, 0x44, 0x9c, 0xf0, 0xe4, 0x05, 0x12, 0xf0, 0xa9, 0x13, - 0x9e, 0xbc, 0xa3, 0x04, 0x7c, 0xc6, 0x09, 0x2f, 0x08, 0x07, 0x3e, 0x75, - 0xc2, 0x07, 0x49, 0x86, 0xbe, 0xe2, 0x24, 0x49, 0x88, 0xbe, 0xe2, 0x24, - 0x49, 0x8a, 0xbe, 0xe2, 0x24, 0x49, 0x8c, 0xbe, 0xe2, 0x24, 0x49, 0x0e, - 0x5f, 0x26, 0x49, 0x12, 0xa4, 0xaf, 0xb8, 0x1a, 0x1f, 0x98, 0x22, 0x7d, - 0x99, 0x24, 0x59, 0xb5, 0x0f, 0x89, 0xba, 0x7d, 0x60, 0x8a, 0xf4, 0x15, - 0xf3, 0xfe, 0x81, 0xd1, 0xd3, 0x97, 0x49, 0x92, 0xf5, 0xf9, 0x90, 0x40, - 0xff, 0xee, 0x03, 0x15, 0xa4, 0x2f, 0x23, 0xb8, 0x0f, 0x04, 0x45, 0x5f, - 0x46, 0x74, 0x0c, 0x45, 0x5f, 0x46, 0x78, 0x1f, 0xa4, 0xf4, 0x3e, 0x24, - 0xc4, 0xc7, 0x49, 0xf4, 0x65, 0x04, 0xc8, 0xb8, 0xe8, 0xcb, 0x50, 0xe4, - 0x1e, 0x41, 0x5f, 0x39, 0x8a, 0xc5, 0x50, 0xa6, 0xb9, 0x28, 0x89, 0xbe, - 0x0c, 0x45, 0x4e, 0xc2, 0x57, 0x61, 0x52, 0x5a, 0x67, 0x4c, 0x5c, 0xb3, - 0xd1, 0x9a, 0x56, 0x0f, 0x1f, 0x95, 0x37, 0x6f, 0xdf, 0xbd, 0x3e, 0x7c, - 0xa5, 0x31, 0xb4, 0x3b, 0x7b, 0x44, 0xe6, 0x08, 0x1e, 0xfc, 0xf1, 0x51, - 0x16, 0x87, 0x89, 0x33, 0x56, 0x48, 0x24, 0x16, 0xc2, 0xf1, 0xe6, 0x28, - 0xc6, 0xb0, 0x8b, 0x04, 0xb2, 0xf3, 0x27, 0xbf, 0x7a, 0x7e, 0x78, 0xfc, - 0x5e, 0x27, 0x77, 0x3b, 0x3a, 0x39, 0x99, 0xba, 0xbd, 0xa7, 0x53, 0x5f, - 0x1f, 0x3d, 0x7b, 0xf9, 0x8b, 0xd7, 0x3a, 0x7d, 0x77, 0x5b, 0xa7, 0x1f, - 0xbf, 0x7a, 0x1b, 0x57, 0x6f, 0xaf, 0x15, 0xa3, 0x4e, 0x26, 0x3f, 0x32, - 0x14, 0x93, 0xe9, 0xed, 0x76, 0x4c, 0xf2, 0xc5, 0xab, 0xc3, 0xa7, 0x2f, - 0x0f, 0x5f, 0xc5, 0xf5, 0x31, 0x35, 0x32, 0x31, 0xc8, 0xb2, 0x4a, 0xa6, - 0x46, 0x16, 0x0f, 0x41, 0x31, 0x69, 0xa4, 0x71, 0x42, 0x56, 0x26, 0x26, - 0x1e, 0x38, 0x8d, 0x00, 0xe3, 0x12, 0x98, 0x87, 0x64, 0x63, 0xd1, 0x76, - 0x64, 0x6a, 0xb6, 0xaa, 0xdb, 0x3a, 0xf9, 0xd5, 0xe1, 0xbb, 0x17, 0x47, - 0xb1, 0x00, 0x74, 0xea, 0xaf, 0x64, 0xb2, 0xe1, 0x9c, 0x02, 0x7a, 0xee, - 0x51, 0x44, 0x8c, 0x99, 0x06, 0xd2, 0x65, 0x76, 0x71, 0x70, 0x42, 0xb5, - 0xe1, 0x38, 0x63, 0xd1, 0x9c, 0x61, 0xc3, 0xe4, 0xf7, 0x61, 0x8d, 0x01, - 0x0b, 0x22, 0xd9, 0xe6, 0x58, 0x45, 0xa6, 0xa0, 0xaf, 0xad, 0x62, 0x24, - 0x89, 0x88, 0x9b, 0x77, 0x09, 0x00, 0xf8, 0x6c, 0xc7, 0x9c, 0xdf, 0x87, - 0x7b, 0xcc, 0xcb, 0x44, 0xd5, 0xda, 0x65, 0x85, 0xf6, 0xe2, 0x69, 0xb6, - 0x80, 0xd0, 0x95, 0x7d, 0x2a, 0x21, 0x4c, 0x6e, 0x54, 0xf7, 0x6a, 0x97, - 0x81, 0x88, 0x16, 0x81, 0x57, 0x15, 0xfd, 0xb7, 0x03, 0xb2, 0x73, 0x4d, - 0xcc, 0x1f, 0x60, 0xe4, 0x22, 0x9f, 0x42, 0xd5, 0xde, 0x8e, 0xff, 0xf8, - 0xc7, 0xcb, 0x93, 0x93, 0x39, 0x3d, 0x9f, 0x9c, 0xf4, 0x3e, 0x7e, 0xba, - 0x22, 0x0b, 0x4a, 0x37, 0x0d, 0x63, 0x6d, 0xf6, 0x90, 0x2e, 0x98, 0x7c, - 0xf0, 0x20, 0xc6, 0x26, 0xea, 0x51, 0xed, 0x52, 0x34, 0x63, 0xf0, 0x7e, - 0x74, 0xf5, 0xc7, 0x3f, 0xa6, 0x73, 0xc7, 0xb8, 0x08, 0x8b, 0x78, 0xf0, - 0xf8, 0x52, 0xf2, 0x5a, 0xd4, 0x9c, 0xda, 0xe1, 0xdb, 0x33, 0x0f, 0xf4, - 0xe6, 0x30, 0xe9, 0x17, 0x55, 0xaf, 0xf6, 0xe0, 0x41, 0x55, 0x7c, 0xf4, - 0x3e, 0xf5, 0x23, 0x7c, 0xd4, 0xae, 0x6a, 0xcc, 0xe2, 0xd5, 0xbe, 0xc2, - 0x82, 0x32, 0x92, 0xe7, 0xf8, 0xd9, 0x47, 0x0d, 0x29, 0xc0, 0xa1, 0x09, - 0x29, 0xa0, 0x92, 0x0b, 0x34, 0x77, 0x00, 0xba, 0x82, 0xc1, 0xea, 0x51, - 0x93, 0x59, 0x51, 0xd7, 0x4e, 0xe3, 0xa2, 0xcb, 0x7e, 0xdf, 0xfb, 0x46, - 0x55, 0x73, 0xc8, 0x0e, 0x36, 0x28, 0xf6, 0xaa, 0x7e, 0x12, 0xcc, 0xfc, - 0xae, 0xe3, 0x02, 0x35, 0xcb, 0xaf, 0x5d, 0x31, 0xc3, 0x46, 0x68, 0x5a, - 0x62, 0x56, 0xb2, 0x6a, 0x8a, 0x0b, 0x15, 0x56, 0x18, 0xd5, 0xf9, 0x89, - 0x11, 0x8a, 0xab, 0xab, 0x6a, 0xad, 0xee, 0xf7, 0x0d, 0x74, 0x82, 0x7d, - 0xd5, 0x04, 0x44, 0xc1, 0xef, 0x8b, 0xe6, 0x10, 0xef, 0xbf, 0xab, 0x52, - 0xd1, 0x7a, 0x85, 0xe7, 0x68, 0x15, 0x64, 0xfe, 0xf1, 0x8f, 0x94, 0xb0, - 0xaf, 0x68, 0xfa, 0x4d, 0xb5, 0x1a, 0xdc, 0x8f, 0xf4, 0xaf, 0xba, 0xdf, - 0x64, 0x60, 0x50, 0xf5, 0xaf, 0x14, 0x58, 0x54, 0xf5, 0xea, 0xa2, 0x56, - 0xf7, 0xae, 0x50, 0xbf, 0x7a, 0xb0, 0x84, 0x76, 0xdd, 0x07, 0x75, 0x1f, - 0x41, 0xb1, 0x2d, 0xc8, 0x26, 0x82, 0xf0, 0xa3, 0x7e, 0x5b, 0x74, 0x6b, - 0xf5, 0x38, 0xcd, 0x43, 0x1a, 0x82, 0x0e, 0x2b, 0x35, 0xd6, 0x9d, 0x20, - 0xcd, 0xe4, 0xd0, 0xf5, 0x43, 0xcc, 0x8b, 0xfc, 0x0c, 0x93, 0x41, 0x13, - 0x13, 0xbf, 0xa7, 0xd8, 0x1f, 0xf4, 0xfa, 0xf7, 0x5a, 0xf5, 0x00, 0x6d, - 0x33, 0x02, 0xbf, 0xf8, 0x01, 0x91, 0x87, 0xbe, 0xd7, 0xf7, 0xea, 0x41, - 0x21, 0xa3, 0x4e, 0x52, 0xc8, 0xce, 0xb8, 0x0a, 0xbf, 0x9e, 0x23, 0xe2, - 0xb0, 0x39, 0x79, 0xaf, 0x0f, 0x61, 0x92, 0xd2, 0xc5, 0x3a, 0x5e, 0x93, - 0x18, 0x4c, 0xc2, 0x55, 0x3d, 0xec, 0x5f, 0xe2, 0x30, 0x8d, 0xea, 0x11, - 0x8c, 0xe7, 0x99, 0xa0, 0x53, 0xc8, 0x6d, 0xb1, 0x5d, 0x47, 0x87, 0x2b, - 0xca, 0xe8, 0xfe, 0x70, 0x5b, 0x74, 0x7f, 0xf0, 0xda, 0x8e, 0xa6, 0x4d, - 0xb8, 0x51, 0x23, 0x7f, 0x56, 0xad, 0x11, 0xe8, 0x2f, 0xe6, 0x14, 0x86, - 0xd5, 0xdb, 0x11, 0xdd, 0x7a, 0x90, 0x2d, 0xf5, 0x02, 0x73, 0xc9, 0xe7, - 0x36, 0x29, 0x5a, 0xaf, 0xdd, 0xec, 0xd6, 0x4d, 0xee, 0x7b, 0x14, 0xc1, - 0x8a, 0x58, 0x6f, 0x1b, 0xa5, 0x98, 0x8f, 0x28, 0xa0, 0x15, 0xe2, 0xf6, - 0x56, 0xab, 0x3e, 0x12, 0x83, 0xc5, 0xa4, 0x77, 0xaf, 0x7d, 0xb5, 0x9f, - 0xd5, 0x9d, 0x44, 0x83, 0x08, 0x28, 0x12, 0xab, 0x43, 0x46, 0xf8, 0x97, - 0x57, 0x52, 0xf8, 0x7e, 0x9f, 0x85, 0xcc, 0xaa, 0x75, 0xe2, 0x3a, 0xe4, - 0x95, 0x8a, 0x00, 0x75, 0xe6, 0xd6, 0x47, 0xdf, 0xac, 0x2b, 0x85, 0xa0, - 0x9f, 0x14, 0x6d, 0x4a, 0xdf, 0xdc, 0x42, 0xd4, 0x6f, 0xeb, 0xb2, 0x18, - 0xc8, 0x07, 0x17, 0x3c, 0x7b, 0x41, 0x8c, 0xa6, 0x4a, 0x0b, 0xa7, 0x14, - 0xb6, 0x16, 0x4b, 0x07, 0x6d, 0xa6, 0x32, 0x54, 0xc2, 0x2b, 0x88, 0xb7, - 0x7f, 0x4f, 0x43, 0x0f, 0xb0, 0x50, 0x17, 0x5c, 0xbc, 0x97, 0x71, 0xac, - 0xae, 0x3f, 0xa8, 0xa8, 0x74, 0xa6, 0xf4, 0x14, 0xba, 0x21, 0x46, 0x06, - 0x58, 0x71, 0xf4, 0xf3, 0x85, 0x40, 0xec, 0xf9, 0xc7, 0x4f, 0x32, 0xd5, - 0xf7, 0x18, 0xb6, 0x2f, 0xab, 0xa9, 0xd3, 0xb8, 0x16, 0x99, 0x34, 0x55, - 0x3c, 0x93, 0x4a, 0x75, 0x4b, 0x25, 0x9d, 0x4c, 0xd1, 0x74, 0xae, 0x78, - 0x8b, 0xf4, 0x94, 0xaa, 0xfb, 0xcd, 0x13, 0x16, 0x7c, 0xb5, 0x42, 0x45, - 0x2c, 0xbe, 0x81, 0x4f, 0x29, 0x72, 0xd4, 0x47, 0xa6, 0x2f, 0xa7, 0x52, - 0xcd, 0xb8, 0xc1, 0xeb, 0xc0, 0x1b, 0x77, 0x86, 0x6f, 0x12, 0x19, 0xbd, - 0x68, 0x7f, 0x08, 0x7d, 0x0e, 0x54, 0x13, 0x57, 0xfd, 0x58, 0x38, 0x2a, - 0xa5, 0x56, 0x47, 0xd2, 0x82, 0x61, 0x55, 0x4a, 0x1f, 0x76, 0x54, 0x83, - 0xe7, 0x6d, 0x07, 0xa0, 0x71, 0x83, 0x2f, 0xe6, 0xe6, 0x60, 0x1a, 0xc9, - 0x57, 0x75, 0x8f, 0x31, 0x9c, 0x85, 0xcd, 0x84, 0x7c, 0x91, 0x60, 0x9e, - 0x90, 0x9d, 0x12, 0x67, 0x13, 0xb6, 0xf4, 0x08, 0x73, 0x6e, 0x83, 0x5c, - 0xc4, 0xd8, 0x25, 0xa6, 0x10, 0x77, 0xcb, 0x21, 0xf1, 0x0a, 0x98, 0xf3, - 0x2d, 0xe1, 0x2b, 0x41, 0x3e, 0x78, 0xa0, 0x7e, 0x51, 0x79, 0xa4, 0x1a, - 0xc5, 0x6a, 0x52, 0x62, 0x9e, 0x4a, 0x94, 0xa4, 0x42, 0xb6, 0xe0, 0x88, - 0xc4, 0xfa, 0x4a, 0x95, 0x22, 0x15, 0x06, 0xc5, 0xab, 0x54, 0xc3, 0xa8, - 0x15, 0x84, 0x92, 0xb6, 0x51, 0x9c, 0xe9, 0xe6, 0x61, 0xce, 0x54, 0x1a, - 0x98, 0x33, 0x0f, 0x39, 0xfe, 0x54, 0xfa, 0xad, 0xb0, 0xc8, 0x73, 0x87, - 0x12, 0x06, 0x59, 0x33, 0x15, 0x7b, 0x75, 0xa1, 0xc8, 0x4a, 0x66, 0xcc, - 0x6a, 0x70, 0x55, 0x29, 0x64, 0xe5, 0xfd, 0xcb, 0xd7, 0x47, 0x6f, 0x7f, - 0xf1, 0xbe, 0x02, 0x15, 0x8a, 0x61, 0xbf, 0xa9, 0x44, 0x52, 0x13, 0x2a, - 0x3d, 0x09, 0x26, 0x6b, 0xc9, 0x88, 0x1f, 0x3c, 0x88, 0x7f, 0x72, 0x0d, - 0x0d, 0xd9, 0x73, 0x31, 0xb4, 0x24, 0xed, 0xb8, 0xce, 0x95, 0x8c, 0x08, - 0x38, 0xfb, 0x86, 0x02, 0x20, 0x4c, 0x9a, 0xf9, 0x8c, 0x34, 0x9e, 0xa2, - 0x7f, 0x96, 0x35, 0x17, 0xf5, 0xdd, 0x64, 0x63, 0x9d, 0x24, 0x3b, 0x46, - 0x48, 0x43, 0x5d, 0xce, 0xa2, 0xa0, 0x8a, 0x86, 0x94, 0xac, 0x3a, 0x63, - 0x41, 0xba, 0xfa, 0x99, 0x6f, 0x5c, 0x4a, 0xfd, 0xda, 0xa6, 0x5d, 0x04, - 0x6e, 0x5f, 0xa8, 0xdf, 0x3c, 0xaa, 0x63, 0xde, 0x1e, 0xaa, 0xc1, 0x39, - 0xee, 0xfd, 0x7d, 0x4f, 0x3d, 0x1b, 0x59, 0x28, 0x0a, 0xca, 0x51, 0x90, - 0x43, 0x90, 0x76, 0x51, 0x40, 0xa2, 0xa2, 0x42, 0x71, 0x5f, 0xbe, 0xc1, - 0x5c, 0xe2, 0x12, 0xe3, 0x7d, 0x2f, 0xdf, 0xbf, 0x5b, 0x57, 0x75, 0xac, - 0xb9, 0x63, 0xa9, 0x8d, 0x26, 0xda, 0x3d, 0x58, 0x54, 0x60, 0x1f, 0x3b, - 0x93, 0x85, 0x7e, 0x86, 0xf8, 0x4b, 0xd1, 0xbf, 0xfd, 0xf6, 0xe8, 0x4d, - 0x29, 0xe2, 0xf6, 0x57, 0x20, 0x7e, 0xfa, 0xea, 0xed, 0xf1, 0x32, 0xa6, - 0x3b, 0x5f, 0x89, 0xfb, 0xe8, 0x59, 0x29, 0xea, 0xee, 0x8d, 0x51, 0xc7, - 0xfe, 0xd8, 0x6a, 0x82, 0x17, 0x4d, 0x03, 0x74, 0x2b, 0x34, 0xa9, 0x35, - 0x96, 0x50, 0xa3, 0xec, 0x5b, 0xa1, 0xa3, 0x1a, 0x67, 0x09, 0x29, 0x82, - 0xb8, 0xad, 0x5a, 0xc9, 0xe6, 0x5a, 0x42, 0x4c, 0x02, 0xdc, 0x0a, 0x2d, - 0x33, 0x86, 0x95, 0xd2, 0x93, 0x3d, 0xf0, 0x2c, 0xfc, 0x86, 0x7e, 0x64, - 0x86, 0xc1, 0x5e, 0xd6, 0xef, 0x80, 0xa3, 0xc7, 0x48, 0x8c, 0x75, 0xca, - 0x42, 0xa0, 0xd7, 0x6b, 0x44, 0xe4, 0xd2, 0x1a, 0x9c, 0x06, 0xa0, 0x76, - 0x2b, 0x55, 0x33, 0xee, 0x54, 0x69, 0xd5, 0xd8, 0xb7, 0x84, 0x3b, 0x58, - 0xcd, 0x3a, 0x60, 0xf5, 0xd6, 0xed, 0xf0, 0x30, 0x58, 0x60, 0x89, 0x0f, - 0x1b, 0x12, 0x87, 0xb3, 0xa5, 0x7c, 0xe4, 0x1d, 0xb2, 0x26, 0x0a, 0x2d, - 0x86, 0xa2, 0x9a, 0x9c, 0xc7, 0x68, 0xf0, 0x8a, 0xdc, 0x5f, 0xaa, 0xf4, - 0xb5, 0xdf, 0x1d, 0x7d, 0x23, 0x7e, 0x88, 0x39, 0x07, 0x56, 0x2b, 0x27, - 0x38, 0x1f, 0x17, 0x59, 0x89, 0x79, 0xe0, 0x13, 0x78, 0x81, 0x32, 0x97, - 0xef, 0xa2, 0xe1, 0x5f, 0x83, 0x8b, 0x48, 0xbc, 0x62, 0xd8, 0xba, 0xb8, - 0x42, 0x4d, 0x7f, 0x58, 0xcd, 0x37, 0x71, 0x9a, 0xf1, 0xde, 0x2d, 0x89, - 0x43, 0x9c, 0x63, 0x28, 0x08, 0xc9, 0xb2, 0xaf, 0xa1, 0x6d, 0xa6, 0x50, - 0xaf, 0x52, 0xb9, 0x15, 0x36, 0xf4, 0x78, 0xb3, 0x06, 0x13, 0xba, 0xc8, - 0x6d, 0xb1, 0x10, 0xd0, 0x0e, 0xe5, 0x31, 0x5e, 0x9b, 0xbb, 0x4e, 0xbf, - 0x33, 0x85, 0x7a, 0xb7, 0x6e, 0x4a, 0x17, 0xc1, 0x3a, 0xe2, 0x58, 0x04, - 0xab, 0x49, 0x22, 0x41, 0xa2, 0x29, 0x27, 0x16, 0x29, 0x85, 0x36, 0xb3, - 0x29, 0x41, 0x6b, 0x0b, 0x3c, 0xbd, 0x2d, 0x9a, 0xb2, 0xb4, 0x8a, 0x67, - 0x43, 0x7a, 0x2e, 0x93, 0xf7, 0x73, 0x96, 0xc9, 0x0e, 0x47, 0xe0, 0x28, - 0x55, 0x59, 0x51, 0x03, 0xc1, 0x14, 0x99, 0x2d, 0xb6, 0x6a, 0x69, 0xa7, - 0xaa, 0x87, 0x37, 0x47, 0x30, 0x0a, 0x8b, 0x1f, 0x47, 0x95, 0x22, 0x20, - 0x1c, 0x27, 0xf8, 0x03, 0x75, 0xde, 0x11, 0x1d, 0xe0, 0xc6, 0x8e, 0x5d, - 0xdc, 0x11, 0x2b, 0xb5, 0xab, 0x94, 0x28, 0xe2, 0x79, 0x6b, 0x46, 0x1c, - 0xcb, 0xe7, 0x7c, 0xf9, 0x69, 0x5c, 0x7e, 0xd6, 0x68, 0x4c, 0xeb, 0xf5, - 0x35, 0x57, 0xdd, 0xde, 0xf8, 0xc9, 0xcc, 0x44, 0xd6, 0xe3, 0x92, 0x15, - 0x35, 0x09, 0xe9, 0xaa, 0xf0, 0x44, 0x26, 0xe5, 0x8d, 0x2e, 0xe5, 0xa0, - 0x2f, 0x39, 0xe0, 0x91, 0x99, 0xe9, 0x1b, 0x09, 0x12, 0x22, 0xb8, 0xf0, - 0x8a, 0xbe, 0x99, 0x23, 0x81, 0x81, 0x34, 0xa0, 0x12, 0xb2, 0x84, 0xcd, - 0x1b, 0xce, 0xf9, 0x22, 0x9c, 0xa2, 0x54, 0x86, 0x4d, 0x1c, 0xd5, 0x4b, - 0x79, 0xa3, 0x19, 0xc1, 0x67, 0xe6, 0xed, 0x1f, 0xc5, 0xa7, 0x07, 0x0f, - 0xf2, 0x69, 0x12, 0x77, 0x94, 0x6b, 0x4c, 0xba, 0x52, 0x7e, 0x5d, 0xec, - 0xd5, 0x7c, 0x62, 0xbf, 0x80, 0x22, 0x5e, 0x01, 0x83, 0x8d, 0x9d, 0xa2, - 0x79, 0x24, 0xb7, 0xe6, 0x55, 0xa6, 0x9e, 0x4a, 0x48, 0x86, 0xbe, 0x59, - 0xd6, 0x93, 0x73, 0xfc, 0x7e, 0x6b, 0x3f, 0x7a, 0x8c, 0x85, 0x30, 0x3e, - 0x44, 0x19, 0xaa, 0x21, 0x63, 0x3f, 0xfa, 0xe1, 0x0f, 0x6b, 0xe2, 0x63, - 0xf4, 0xa9, 0x1f, 0xe7, 0xe0, 0x61, 0x3f, 0xe5, 0x8a, 0x37, 0x19, 0xf1, - 0x83, 0x07, 0x89, 0xa3, 0x9f, 0x74, 0x72, 0xd4, 0xbd, 0xa8, 0xaa, 0x94, - 0xfa, 0x47, 0x6c, 0x23, 0x1c, 0x1f, 0x54, 0x3e, 0xd1, 0x72, 0xdf, 0xd0, - 0x8e, 0xf2, 0x6d, 0x70, 0x02, 0xeb, 0xf2, 0x06, 0xd6, 0x9c, 0x57, 0x6a, - 0x92, 0x2c, 0x4a, 0xf6, 0x52, 0xe4, 0xc0, 0xa9, 0x68, 0x2e, 0x59, 0xde, - 0xc9, 0xae, 0x06, 0x2c, 0x5b, 0x09, 0xc2, 0xda, 0x1b, 0x90, 0x15, 0x2d, - 0x32, 0xd5, 0x03, 0x83, 0xc5, 0x07, 0x96, 0xc2, 0x85, 0x28, 0xbf, 0xee, - 0x50, 0x71, 0xfb, 0x3c, 0x5f, 0x7c, 0x68, 0x8a, 0x3b, 0x28, 0x5e, 0xb8, - 0xc0, 0xe5, 0xd4, 0x17, 0xfd, 0x40, 0x2f, 0x2d, 0x65, 0xbb, 0xec, 0x41, - 0x0b, 0x9a, 0x80, 0x7c, 0xb9, 0xca, 0x35, 0xf7, 0xcf, 0xaa, 0x5e, 0xae, - 0x5b, 0x37, 0xda, 0xb5, 0xda, 0xc1, 0x90, 0xe1, 0x86, 0xb5, 0x7a, 0xaa, - 0x2b, 0x78, 0xf4, 0xfa, 0x9b, 0x11, 0x91, 0xa9, 0xd4, 0x17, 0xb5, 0xfa, - 0x22, 0x23, 0xef, 0x33, 0xdb, 0x89, 0x8a, 0xe5, 0xac, 0xf9, 0xa1, 0x55, - 0x54, 0x8c, 0x07, 0x88, 0x16, 0x16, 0xa9, 0x79, 0x5c, 0x62, 0x7d, 0x24, - 0xaa, 0x67, 0x5a, 0xae, 0x8a, 0x76, 0x2d, 0x69, 0xd9, 0x5f, 0x04, 0x6e, - 0x42, 0xf5, 0x79, 0x9d, 0x30, 0xe7, 0xac, 0x08, 0xb5, 0x38, 0xa8, 0xe8, - 0x52, 0x2b, 0x43, 0x7d, 0x3e, 0xd3, 0x2c, 0x73, 0x9f, 0xe0, 0x75, 0xf9, - 0x44, 0x09, 0xc9, 0x39, 0x34, 0xa2, 0xca, 0x20, 0x79, 0xff, 0xa7, 0x0c, - 0x65, 0xc4, 0xf0, 0x51, 0x33, 0xc2, 0xce, 0xa1, 0x86, 0x89, 0xae, 0xa2, - 0x29, 0xdd, 0x02, 0x72, 0xc4, 0xb3, 0x7a, 0x6c, 0x69, 0x7f, 0xb6, 0xe9, - 0xe2, 0x81, 0x5f, 0xbc, 0x7b, 0x95, 0xb1, 0xd2, 0xda, 0xe4, 0x95, 0x88, - 0x90, 0x30, 0xdf, 0xcb, 0xad, 0xc5, 0x3d, 0x78, 0x50, 0x68, 0xc3, 0x6b, - 0x97, 0x05, 0xab, 0x76, 0x2d, 0xb9, 0xda, 0x95, 0x51, 0x7c, 0x0f, 0x1e, - 0x9a, 0x59, 0xa1, 0x84, 0xea, 0x9a, 0x15, 0xc7, 0x6f, 0xc2, 0x44, 0x4e, - 0x0f, 0x2b, 0xb5, 0x00, 0xcd, 0x2d, 0x71, 0x26, 0x95, 0x32, 0x40, 0x89, - 0xfc, 0x1a, 0x68, 0x50, 0x5f, 0xa0, 0x60, 0xbc, 0x36, 0x5b, 0xb7, 0x4d, - 0x81, 0xc5, 0x37, 0x4e, 0xb5, 0xd6, 0x5b, 0x50, 0xdd, 0x72, 0xaa, 0xda, - 0xf7, 0x6b, 0x29, 0xe5, 0x03, 0x2b, 0x56, 0x20, 0x79, 0xc1, 0x37, 0x45, - 0x98, 0xc0, 0x7e, 0xe7, 0x1c, 0xe9, 0xca, 0x41, 0x9f, 0x16, 0xa1, 0xf7, - 0xf1, 0x4e, 0x52, 0x71, 0x59, 0x80, 0xf6, 0x87, 0x3f, 0x4c, 0xab, 0xb4, - 0x62, 0x37, 0x8f, 0x49, 0xab, 0xbe, 0x34, 0xb7, 0xda, 0xd2, 0xd2, 0x60, - 0x1f, 0xab, 0x4c, 0xbc, 0x12, 0x5d, 0x9d, 0xf6, 0x6d, 0xac, 0x7b, 0x77, - 0x60, 0x22, 0xa7, 0x7a, 0x6a, 0x56, 0x4b, 0x35, 0xfb, 0x1b, 0xdf, 0x92, - 0xed, 0x1e, 0x8b, 0x41, 0x9e, 0xda, 0xa7, 0x1d, 0xe5, 0xcf, 0x0e, 0xc2, - 0xb2, 0xd4, 0x5a, 0xe4, 0x94, 0xad, 0xa0, 0xec, 0x4a, 0xd5, 0x1a, 0x2b, - 0x52, 0xc1, 0x8a, 0x61, 0xaa, 0x07, 0x54, 0x05, 0xaf, 0x6e, 0xd4, 0xae, - 0xb2, 0xe0, 0xb4, 0x03, 0x93, 0x1a, 0xc4, 0xbf, 0x11, 0xd9, 0x75, 0xdc, - 0x1e, 0x0a, 0xe7, 0x24, 0x71, 0x09, 0x6c, 0x30, 0x62, 0xf1, 0x2a, 0x49, - 0x0f, 0x30, 0xf1, 0x03, 0x39, 0x59, 0x34, 0x5a, 0xf6, 0x93, 0x89, 0xdf, - 0x50, 0xbf, 0xb6, 0xb9, 0xeb, 0x9a, 0xc4, 0x5a, 0x4f, 0xa5, 0xa2, 0x44, - 0x6e, 0xca, 0x95, 0x5a, 0xcd, 0xcc, 0xb1, 0x45, 0x29, 0x18, 0x41, 0x93, - 0x42, 0x37, 0x30, 0x2b, 0xad, 0xa9, 0x0a, 0xbd, 0x7c, 0xa5, 0x41, 0xd0, - 0xd7, 0x86, 0x6c, 0x48, 0xae, 0x92, 0x9d, 0x2e, 0x03, 0x96, 0xea, 0x7a, - 0x49, 0x35, 0xd1, 0x6b, 0x76, 0x7a, 0xad, 0x2b, 0xbf, 0x5e, 0x58, 0xe5, - 0x0d, 0xa2, 0xaa, 0xfc, 0xad, 0x17, 0xfe, 0x14, 0x60, 0x7e, 0xd0, 0x74, - 0xc2, 0x42, 0x87, 0x8c, 0x14, 0xb6, 0xc0, 0x45, 0xbd, 0xc6, 0xe9, 0x54, - 0xac, 0xe6, 0x35, 0x75, 0x1f, 0xba, 0x7c, 0x59, 0xe0, 0x6f, 0xe6, 0xd7, - 0xf7, 0x98, 0x7b, 0x5e, 0x32, 0xd3, 0x0c, 0x63, 0x44, 0x1d, 0x4e, 0xc9, - 0xa6, 0xe6, 0x04, 0x66, 0xd6, 0xaa, 0x4b, 0xa5, 0x25, 0x41, 0x2c, 0xbe, - 0xe6, 0xa2, 0x96, 0xf7, 0x1b, 0x5b, 0x69, 0x8c, 0xf9, 0xb5, 0xbb, 0x8c, - 0x54, 0x2a, 0x4a, 0xce, 0x2c, 0x7b, 0xda, 0x2c, 0xfc, 0x26, 0x6a, 0x26, - 0x92, 0xc0, 0x65, 0x8f, 0x3e, 0x52, 0x58, 0x73, 0xe2, 0xc8, 0x32, 0x6b, - 0x16, 0x04, 0x0c, 0xdf, 0x99, 0x22, 0x15, 0x23, 0xe3, 0x22, 0xaf, 0x4b, - 0x6e, 0x25, 0x54, 0x72, 0xfb, 0x0e, 0xd7, 0x94, 0x52, 0x3b, 0x65, 0xf9, - 0x46, 0xb8, 0xa6, 0x5c, 0x7c, 0xc3, 0x79, 0xc1, 0x7a, 0xfa, 0xb5, 0x65, - 0xe5, 0x16, 0x62, 0x5e, 0x6d, 0xd3, 0xaa, 0x29, 0xbb, 0xdd, 0x5a, 0x22, - 0x93, 0xf0, 0x79, 0x79, 0x21, 0x7d, 0x5d, 0x61, 0xa1, 0xc8, 0xfa, 0x92, - 0x42, 0xa1, 0x9b, 0x89, 0x09, 0x05, 0x6f, 0x2a, 0xa3, 0x64, 0x47, 0x4c, - 0x09, 0x29, 0x99, 0xc1, 0x62, 0xca, 0x6f, 0x0d, 0xe5, 0x40, 0x32, 0x5b, - 0x45, 0x44, 0x0b, 0x9b, 0xc4, 0xf8, 0x3f, 0x0e, 0x5d, 0xa0, 0x2b, 0x5f, - 0x11, 0xb1, 0x80, 0x63, 0x5a, 0x78, 0xe7, 0x2d, 0x1c, 0xe1, 0x21, 0x87, - 0x0a, 0x37, 0xf5, 0x5d, 0xb8, 0x80, 0xa3, 0xcb, 0x58, 0x24, 0x54, 0xbf, - 0x6f, 0x55, 0x08, 0xc2, 0xa5, 0xc7, 0x0a, 0x5d, 0xbc, 0x62, 0xd2, 0x2b, - 0xfa, 0x5e, 0x15, 0x8d, 0xb1, 0xd2, 0x7e, 0xd4, 0x69, 0xb6, 0x77, 0xf7, - 0x9a, 0xed, 0x0e, 0xde, 0xe5, 0xdc, 0xee, 0x56, 0xe4, 0x5b, 0x49, 0x79, - 0xfb, 0x1c, 0xd3, 0x49, 0x1a, 0x55, 0x08, 0xea, 0x8c, 0x02, 0x12, 0x2a, - 0xd6, 0x0f, 0xb9, 0x18, 0xbe, 0x2a, 0xbd, 0xbd, 0x76, 0x45, 0x73, 0x17, - 0x9f, 0x02, 0x35, 0x31, 0x15, 0xae, 0xcd, 0x51, 0xc3, 0x26, 0x7c, 0x2c, - 0xa2, 0x13, 0xc3, 0x27, 0x63, 0x19, 0x81, 0x77, 0xff, 0x39, 0xff, 0xa5, - 0xf3, 0x74, 0x70, 0x2d, 0xbf, 0x30, 0x3a, 0x9b, 0x39, 0x90, 0xd1, 0x79, - 0xea, 0x55, 0xde, 0x99, 0xbc, 0xc8, 0x93, 0xc5, 0xf6, 0x5a, 0x4f, 0x5b, - 0xb9, 0x2c, 0x04, 0x7d, 0x48, 0x8a, 0xc0, 0x1a, 0xe7, 0x7e, 0x76, 0x42, - 0x67, 0xe0, 0xb8, 0x4e, 0x84, 0x88, 0xed, 0x8f, 0x9f, 0x64, 0xa2, 0x3a, - 0x1d, 0x7c, 0x42, 0xed, 0x4b, 0xe1, 0x6d, 0xfa, 0xd4, 0x6f, 0x1c, 0xf8, - 0x76, 0xe2, 0xa9, 0xc8, 0x37, 0x0e, 0xef, 0x90, 0x35, 0x97, 0xcb, 0x0f, - 0xa6, 0xde, 0x53, 0x13, 0xd2, 0xaa, 0xcb, 0xc6, 0x57, 0xf6, 0x66, 0xd3, - 0xe6, 0x1c, 0xac, 0xda, 0x52, 0x49, 0xf1, 0x4d, 0xae, 0x39, 0x30, 0xb8, - 0x08, 0x26, 0x8d, 0xda, 0x64, 0xe8, 0x51, 0x39, 0xf3, 0x4c, 0xd1, 0x65, - 0x69, 0x08, 0x5c, 0x18, 0x99, 0x82, 0x18, 0x9f, 0xfb, 0xf3, 0x44, 0x19, - 0xe1, 0xd1, 0x72, 0x09, 0x95, 0x3b, 0xeb, 0xe1, 0xdc, 0x1d, 0xdc, 0x24, - 0x64, 0x94, 0xc4, 0x0e, 0xd2, 0xf5, 0x42, 0xa6, 0xbe, 0xb8, 0xba, 0xc1, - 0x84, 0xde, 0xf0, 0x41, 0x46, 0x83, 0x55, 0x35, 0xe0, 0xe5, 0x59, 0x0f, - 0xaf, 0x07, 0x0e, 0xe8, 0x63, 0x42, 0x1f, 0x03, 0xfa, 0x98, 0x8a, 0xf3, - 0x5e, 0xa5, 0xa5, 0xfe, 0x10, 0xbf, 0x7e, 0xd6, 0x61, 0x20, 0xfe, 0x9c, - 0xf0, 0xe7, 0xa0, 0xa3, 0xe0, 0x3a, 0x69, 0xc0, 0x2e, 0x03, 0xf2, 0xe7, - 0x84, 0x3f, 0x07, 0x5d, 0x05, 0xd8, 0x4d, 0x00, 0xea, 0x33, 0x22, 0xf2, - 0xbd, 0x1d, 0x1e, 0x47, 0x3b, 0x43, 0xb3, 0x55, 0x2a, 0xbf, 0x61, 0x82, - 0x13, 0x62, 0x91, 0x74, 0xf6, 0xda, 0x9d, 0xf1, 0xf9, 0x89, 0xac, 0x01, - 0xc5, 0x82, 0x24, 0x2b, 0x71, 0x82, 0x25, 0x26, 0x80, 0xd7, 0x4d, 0x2d, - 0xc3, 0x84, 0x9e, 0x18, 0xef, 0x36, 0x55, 0xd2, 0xbc, 0x07, 0xf0, 0xc4, - 0x40, 0x24, 0xcb, 0x01, 0xe9, 0x49, 0x31, 0x90, 0x91, 0xa1, 0x13, 0xea, - 0x74, 0x31, 0x4a, 0x37, 0x0d, 0xe2, 0xd2, 0x31, 0xc5, 0x98, 0x9e, 0x70, - 0x7c, 0x2a, 0xfc, 0x48, 0x53, 0x86, 0xae, 0x08, 0x92, 0xed, 0x94, 0xaa, - 0x83, 0x8c, 0xea, 0x8c, 0xd1, 0x98, 0x36, 0xa4, 0x35, 0x8e, 0x97, 0xd1, - 0x3e, 0x9f, 0x21, 0xa0, 0x17, 0x84, 0xd0, 0xdd, 0x31, 0xf3, 0x80, 0xbc, - 0x1a, 0x3a, 0x1f, 0x10, 0x85, 0x38, 0x67, 0xc9, 0x30, 0xe8, 0xd1, 0x26, - 0x7a, 0xe9, 0x97, 0x38, 0xbd, 0xea, 0xba, 0xb6, 0xf5, 0xd3, 0x90, 0x82, - 0x13, 0xd5, 0xab, 0xac, 0x8f, 0xd5, 0xcb, 0xb8, 0x06, 0x17, 0xd6, 0x0b, - 0x24, 0x4c, 0x6c, 0xeb, 0x97, 0x0e, 0xce, 0x8b, 0xf8, 0xdf, 0xfd, 0x0e, - 0x85, 0x23, 0x01, 0xbf, 0x3c, 0x9f, 0x34, 0xb2, 0xb0, 0x7a, 0x12, 0x5c, - 0x1c, 0xcb, 0xf0, 0xab, 0xe0, 0xbb, 0xdf, 0x89, 0x43, 0x1c, 0xfe, 0x10, - 0x56, 0x43, 0x4e, 0x3d, 0x72, 0x6b, 0x4a, 0xa7, 0xa4, 0xf3, 0x66, 0x2e, - 0x5d, 0x4a, 0x15, 0x35, 0xd0, 0xd2, 0x4c, 0x31, 0x11, 0x99, 0x46, 0x6c, - 0xc9, 0xb7, 0x98, 0xe3, 0xae, 0x24, 0x17, 0xbe, 0x75, 0x00, 0xba, 0x7d, - 0xa2, 0xf0, 0xf0, 0x3e, 0x7e, 0x3e, 0xac, 0xd5, 0x65, 0x40, 0xbe, 0x4e, - 0xe3, 0x07, 0xa4, 0x72, 0x34, 0xbe, 0x4e, 0xa4, 0xdf, 0x48, 0xe3, 0x50, - 0xfc, 0x38, 0x91, 0x1e, 0x28, 0x55, 0x29, 0x97, 0x4e, 0x96, 0x4f, 0x48, - 0x97, 0xea, 0xa5, 0x93, 0xf1, 0x40, 0xd4, 0xf6, 0xad, 0x98, 0xb7, 0x88, - 0x5a, 0x3e, 0xcb, 0x1a, 0x02, 0xef, 0x7f, 0x69, 0xbb, 0xba, 0x90, 0x4c, - 0x88, 0x79, 0x4c, 0x67, 0xea, 0x24, 0xcd, 0x6c, 0x3a, 0x57, 0xa5, 0x68, - 0xae, 0x33, 0xb9, 0x3a, 0xc9, 0xb0, 0x9f, 0xce, 0x8f, 0xd3, 0xe2, 0x7a, - 0xa4, 0xf3, 0x75, 0x12, 0x2a, 0x94, 0x90, 0xb5, 0x6a, 0xfe, 0x67, 0xf2, - 0xb6, 0x2b, 0xae, 0x93, 0x54, 0x3a, 0x95, 0xa2, 0x4b, 0xa7, 0xde, 0x95, - 0x96, 0x46, 0x21, 0xdf, 0xa1, 0x6e, 0xe4, 0xf1, 0x6a, 0xa0, 0x69, 0x9a, - 0x97, 0xab, 0x23, 0xf9, 0x53, 0x2c, 0x93, 0x22, 0x00, 0xce, 0xf8, 0xa4, - 0xe5, 0x52, 0x04, 0x41, 0xe9, 0x9f, 0xb4, 0x6c, 0x0a, 0x21, 0x38, 0xe3, - 0x93, 0x91, 0x4f, 0x11, 0x8c, 0xcc, 0x01, 0xd0, 0xbe, 0x52, 0x39, 0x55, - 0x25, 0x75, 0x4d, 0x86, 0x51, 0x68, 0x9d, 0xf1, 0x94, 0xd3, 0xab, 0xb6, - 0x0b, 0x5c, 0xb2, 0xfb, 0xc5, 0xe3, 0x2e, 0x8d, 0xd3, 0xf7, 0x90, 0xc1, - 0x09, 0x2b, 0x5c, 0x31, 0x26, 0xdf, 0x17, 0x88, 0xa1, 0x97, 0x6d, 0x6f, - 0x33, 0xb6, 0x4f, 0xfa, 0xca, 0x31, 0xf3, 0xce, 0x79, 0x26, 0x0a, 0x7a, - 0xbf, 0x83, 0x5d, 0xaf, 0x7e, 0xef, 0x12, 0xd2, 0x6b, 0xf2, 0x25, 0x8f, - 0x57, 0x75, 0xeb, 0x7b, 0x97, 0x2c, 0xaa, 0xc4, 0x33, 0x09, 0x46, 0x3d, - 0xd6, 0x7e, 0xb7, 0xbf, 0x2a, 0x27, 0x78, 0x5b, 0x60, 0x11, 0x27, 0x0e, - 0x2c, 0x56, 0xf0, 0x93, 0xf7, 0xaf, 0x5f, 0x91, 0xab, 0x70, 0x9f, 0x20, - 0xc0, 0xc2, 0x7b, 0x1f, 0xd0, 0xd5, 0x8f, 0x24, 0x5f, 0x45, 0xa9, 0x6e, - 0xc5, 0x3c, 0xa9, 0x46, 0xd5, 0x0f, 0x86, 0x9b, 0x4f, 0xc9, 0xeb, 0xdc, - 0x20, 0xe9, 0x63, 0x18, 0x22, 0x29, 0x66, 0x93, 0x9c, 0xf2, 0x9f, 0xa4, - 0x35, 0x4b, 0x96, 0x92, 0x29, 0x60, 0xa5, 0x70, 0x76, 0x68, 0x5d, 0x52, - 0xba, 0xf4, 0x36, 0xaa, 0xe8, 0xa6, 0x90, 0xc6, 0x4e, 0x4b, 0x17, 0xbf, - 0xb2, 0x68, 0xcd, 0x60, 0xad, 0x96, 0x69, 0x57, 0xae, 0x6d, 0x09, 0x23, - 0xae, 0x66, 0x00, 0x72, 0xa9, 0x84, 0x49, 0x36, 0x61, 0xb0, 0x66, 0x7b, - 0x10, 0xfd, 0xbc, 0xfc, 0x13, 0x08, 0x31, 0x52, 0xae, 0x8c, 0x8f, 0x5e, - 0xbd, 0xb9, 0x5e, 0x7d, 0x3a, 0xb9, 0x0a, 0xe5, 0x52, 0x06, 0x9d, 0x35, - 0xab, 0xd4, 0x59, 0xa1, 0x4a, 0x9d, 0x95, 0x11, 0xd2, 0xdb, 0x36, 0xd7, - 0xab, 0x53, 0x37, 0x57, 0xa7, 0x5c, 0xca, 0xa0, 0xbb, 0x66, 0x9d, 0xba, - 0x2b, 0xd4, 0xa9, 0xab, 0xb5, 0xd0, 0x8c, 0x6d, 0x7c, 0xfd, 0x1f, 0xcc, - 0x31, 0xc3, 0xd0, 0xf2, 0x51, 0x7c, 0x71, 0xd4, 0xd9, 0x14, 0x63, 0xd9, - 0xb3, 0xb7, 0xaf, 0xe1, 0x32, 0xe8, 0x53, 0x7d, 0xc6, 0x0e, 0x49, 0x78, - 0xd8, 0xed, 0xe0, 0x97, 0x30, 0x3e, 0x55, 0x35, 0xb6, 0x9a, 0x71, 0x47, - 0xf6, 0x35, 0xab, 0x6f, 0x3a, 0xa4, 0x24, 0x2d, 0x7b, 0x65, 0x1a, 0x46, - 0xa6, 0x25, 0xa1, 0xb8, 0xbb, 0xa6, 0x81, 0x38, 0x29, 0x05, 0x43, 0xfd, - 0x3e, 0x03, 0xc4, 0x69, 0x69, 0x28, 0x33, 0x26, 0x19, 0x30, 0x95, 0x98, - 0x84, 0x33, 0x43, 0x93, 0x01, 0x93, 0x69, 0x0a, 0xaa, 0x58, 0x62, 0x85, - 0x62, 0x32, 0x52, 0x62, 0x58, 0xe9, 0xc3, 0xb0, 0x36, 0x18, 0x41, 0x01, - 0x8f, 0x7c, 0x8b, 0xcc, 0x60, 0xa2, 0x10, 0x71, 0xba, 0x1a, 0xa8, 0x72, - 0xba, 0x54, 0x68, 0x74, 0x5b, 0xd8, 0xe6, 0xfe, 0x5d, 0x52, 0xac, 0xcb, - 0x4a, 0xb6, 0xea, 0x69, 0x13, 0xcd, 0x65, 0x8d, 0xb0, 0x97, 0x17, 0x45, - 0xe1, 0xac, 0x3d, 0x37, 0x4d, 0xb0, 0x9c, 0x5f, 0x06, 0xd1, 0x34, 0xcb, - 0x1e, 0x0d, 0x56, 0xd3, 0x64, 0xcb, 0xd1, 0x4a, 0x18, 0x8d, 0x68, 0xf9, - 0xb3, 0xc1, 0x4c, 0xce, 0x29, 0x5f, 0x60, 0xda, 0x4f, 0x10, 0xc1, 0x71, - 0x51, 0x77, 0xc4, 0x47, 0x8a, 0x3e, 0xb6, 0x3e, 0xed, 0x9b, 0x31, 0x34, - 0x89, 0xc2, 0x3a, 0xe8, 0x5b, 0xed, 0xbd, 0xd4, 0x9d, 0xa1, 0x8c, 0xa8, - 0xc9, 0xeb, 0xab, 0x6f, 0xec, 0x19, 0xd4, 0x25, 0x9d, 0x40, 0xeb, 0xf5, - 0x18, 0xa8, 0x11, 0xed, 0xb0, 0xf5, 0xdb, 0x81, 0x7e, 0x4f, 0xe1, 0x6f, - 0x07, 0x5b, 0x93, 0xba, 0x55, 0xc1, 0x23, 0x82, 0xed, 0x4f, 0x2b, 0xe9, - 0x41, 0xe1, 0xe6, 0xb8, 0x09, 0x99, 0x42, 0xad, 0x29, 0x19, 0xdc, 0xdf, - 0xfd, 0x4e, 0xac, 0x71, 0xea, 0xb5, 0x40, 0x79, 0x95, 0xbb, 0xa1, 0xbe, - 0xdd, 0x54, 0xd9, 0x6e, 0xaa, 0x69, 0x77, 0xa1, 0x66, 0xb7, 0xaa, 0x63, - 0xda, 0x44, 0x0c, 0xa7, 0xf4, 0x3a, 0x42, 0x2b, 0xe0, 0x4f, 0xce, 0xa7, - 0x29, 0x8c, 0xb2, 0xac, 0xd2, 0x51, 0x37, 0x46, 0x42, 0x41, 0xbf, 0xc3, - 0x87, 0x32, 0x67, 0x79, 0x73, 0x9a, 0x5f, 0x48, 0x7a, 0x28, 0x4b, 0x3d, - 0xac, 0x5b, 0xd5, 0x5a, 0xff, 0xe0, 0x32, 0xe5, 0xd2, 0xcc, 0xec, 0x53, - 0x9c, 0xc0, 0xc0, 0xc5, 0x1a, 0xb1, 0x2d, 0xb7, 0xf1, 0x1b, 0xa5, 0x05, - 0x4d, 0x59, 0x06, 0x38, 0x26, 0x4d, 0xd3, 0x94, 0x16, 0xa6, 0x65, 0x74, - 0x92, 0x37, 0x75, 0xc8, 0x38, 0xb6, 0x7d, 0xfc, 0x7e, 0x2a, 0xc5, 0x4e, - 0xcc, 0x46, 0xc2, 0xbf, 0xd2, 0xfa, 0xa5, 0x7b, 0x4b, 0xda, 0x63, 0xe3, - 0xb5, 0xa0, 0x76, 0xcd, 0x4a, 0x0e, 0x7a, 0xc9, 0xc1, 0xe0, 0xfa, 0xc2, - 0x9d, 0x74, 0xe1, 0xce, 0x7a, 0xa5, 0xbb, 0xe9, 0xd2, 0xdd, 0x92, 0xd2, - 0x79, 0xf3, 0x6c, 0x32, 0x33, 0x9e, 0x76, 0xdc, 0x9f, 0x6a, 0xc9, 0x1e, - 0xb0, 0xc9, 0xd6, 0x61, 0x82, 0x85, 0xed, 0x93, 0x60, 0x45, 0xb9, 0xbd, - 0x37, 0x6c, 0xa3, 0x89, 0x1e, 0x8c, 0x57, 0x95, 0x73, 0x27, 0x5d, 0xbc, - 0xb3, 0x6e, 0xf9, 0x6e, 0xba, 0x7c, 0x57, 0x97, 0xbf, 0xd5, 0x96, 0x22, - 0x7b, 0xb2, 0xc9, 0x86, 0x22, 0x7a, 0x85, 0xed, 0x64, 0x18, 0x91, 0x13, - 0x92, 0x1b, 0xb6, 0xd2, 0x40, 0x79, 0x43, 0xab, 0x0a, 0xb9, 0x93, 0x2e, - 0xdd, 0x59, 0xb3, 0x78, 0x37, 0x5d, 0xbc, 0xab, 0x8a, 0xdf, 0x6a, 0x13, - 0x91, 0x81, 0xde, 0x68, 0x1b, 0x11, 0xc1, 0xe2, 0x46, 0x4a, 0xb0, 0x22, - 0x27, 0xf5, 0x37, 0x6d, 0xa6, 0x33, 0xe5, 0x8f, 0xae, 0x2c, 0xe8, 0x4e, - 0xba, 0x78, 0x67, 0xdd, 0xf2, 0xdd, 0x74, 0xf9, 0xae, 0x2a, 0x7f, 0xbb, - 0x2d, 0x25, 0x07, 0xbd, 0x4d, 0x36, 0x95, 0xa4, 0x58, 0xd8, 0x56, 0x49, - 0x66, 0xf4, 0xf2, 0x4a, 0xae, 0xb5, 0xa4, 0x50, 0xcc, 0xba, 0x6d, 0xec, - 0xfc, 0xad, 0x27, 0x17, 0xbd, 0x54, 0xf0, 0x24, 0x46, 0x74, 0xbb, 0xeb, - 0x05, 0x86, 0xc1, 0xfc, 0xa2, 0x41, 0xcd, 0x4c, 0x52, 0x36, 0xeb, 0x11, - 0x30, 0xc1, 0x42, 0xd1, 0x27, 0x58, 0x51, 0xeb, 0x7a, 0x25, 0x82, 0xe7, - 0xbc, 0xcc, 0x64, 0x2a, 0x2f, 0xd5, 0x63, 0xca, 0xbd, 0x5d, 0x81, 0x32, - 0xc1, 0x62, 0x59, 0x5e, 0x19, 0xef, 0x2b, 0x55, 0x29, 0x4f, 0xd5, 0x67, - 0xb8, 0x08, 0xf0, 0x9d, 0x58, 0x51, 0x53, 0x39, 0x7a, 0x32, 0x40, 0x42, - 0x4a, 0xcd, 0x05, 0x6c, 0x17, 0xc1, 0xa7, 0x55, 0x7d, 0x57, 0xce, 0x47, - 0xbd, 0x5d, 0xd5, 0xa4, 0x94, 0x4f, 0x1f, 0x2b, 0x89, 0xfb, 0x55, 0x2a, - 0xa9, 0xf5, 0xa7, 0x14, 0xda, 0xbe, 0xa2, 0x9b, 0x9a, 0x15, 0xe4, 0x88, - 0x3f, 0xb6, 0x5a, 0xeb, 0x92, 0xa6, 0xbb, 0x59, 0xd6, 0xa0, 0x9b, 0x5c, - 0x26, 0x57, 0x90, 0xd9, 0x49, 0x70, 0x66, 0x79, 0x9e, 0xde, 0x53, 0x10, - 0x20, 0x1a, 0x23, 0x33, 0xf3, 0x65, 0x43, 0xc4, 0x30, 0x3c, 0xf3, 0x35, - 0x73, 0x30, 0xb9, 0x15, 0xd0, 0xe7, 0x48, 0x2d, 0x56, 0xe2, 0x58, 0x79, - 0x35, 0x93, 0x50, 0xcb, 0x02, 0x0d, 0x67, 0xcf, 0x99, 0x15, 0xdc, 0xea, - 0x1f, 0x58, 0x97, 0xa5, 0x46, 0x6b, 0xd5, 0x3e, 0x9d, 0xf3, 0xbc, 0x93, - 0xb9, 0xd9, 0x25, 0x8e, 0xb4, 0xd6, 0xbe, 0x47, 0x77, 0x9d, 0xd0, 0xa5, - 0x63, 0xde, 0x53, 0x46, 0xa2, 0xea, 0x14, 0xf9, 0xac, 0x9c, 0xd2, 0xe9, - 0x37, 0x05, 0x8c, 0x23, 0x4f, 0x9c, 0x52, 0xd4, 0x83, 0xac, 0x36, 0x17, - 0x4a, 0xa9, 0x66, 0xc2, 0xb9, 0xfc, 0x5f, 0x12, 0x00, 0x57, 0x68, 0x2d, - 0x11, 0x90, 0x8f, 0xf1, 0xbf, 0x24, 0x01, 0xaa, 0xcf, 0x5a, 0x02, 0xa0, - 0xb1, 0xfb, 0x7f, 0x4a, 0x02, 0x54, 0xa1, 0xf5, 0x44, 0x20, 0xc7, 0xc4, - 0x75, 0x64, 0xf0, 0x9f, 0x51, 0x53, 0xc9, 0xf7, 0x5a, 0x55, 0xc5, 0x68, - 0xb5, 0x9e, 0xc9, 0xdb, 0x58, 0x65, 0xc0, 0xd9, 0xca, 0xd6, 0xeb, 0x2a, - 0x79, 0x1f, 0xc5, 0xcb, 0xd9, 0x5c, 0x2e, 0x54, 0xcb, 0xf7, 0x59, 0xd0, - 0xa1, 0x7c, 0x75, 0x8f, 0x44, 0x62, 0x9c, 0x38, 0xa7, 0xcb, 0x28, 0xaa, - 0x8b, 0x00, 0xa3, 0xee, 0xdc, 0xa7, 0x1b, 0x7f, 0x29, 0x4e, 0x8b, 0x56, - 0x63, 0x6a, 0x96, 0x19, 0x30, 0x00, 0x15, 0xa8, 0xe1, 0xe2, 0x57, 0xaf, - 0x5f, 0xfd, 0x04, 0x25, 0xde, 0x89, 0x3f, 0x60, 0x51, 0x25, 0xd2, 0x35, - 0x23, 0x00, 0x9c, 0xec, 0xe4, 0x98, 0xfc, 0x90, 0x62, 0xf2, 0xa5, 0x74, - 0x50, 0x26, 0xe9, 0x16, 0xa4, 0x3c, 0x68, 0x19, 0x17, 0x63, 0xa2, 0xf8, - 0xd9, 0x85, 0xde, 0xb6, 0x1e, 0x3c, 0xb0, 0x38, 0x83, 0xb0, 0x2c, 0x42, - 0xe9, 0x97, 0xb7, 0x0a, 0x5f, 0x16, 0x14, 0xc9, 0x31, 0x4c, 0xa1, 0x09, - 0xe7, 0xd8, 0x66, 0x17, 0x74, 0xf3, 0x93, 0xe2, 0x28, 0x49, 0x4a, 0x43, - 0xdf, 0x03, 0xb6, 0x87, 0x0f, 0x41, 0x23, 0x4e, 0xaa, 0x19, 0xcc, 0xe6, - 0x2f, 0x96, 0x41, 0x0c, 0x95, 0xc0, 0x69, 0x5c, 0x83, 0xa5, 0x25, 0x2b, - 0xc7, 0x8b, 0xe1, 0x10, 0xe3, 0xfe, 0xbd, 0x4a, 0xae, 0xb0, 0x7c, 0xcc, - 0xe3, 0xb9, 0x56, 0x38, 0xb5, 0x04, 0xfa, 0xa3, 0x77, 0xef, 0xde, 0xbe, - 0xbb, 0x67, 0xe5, 0x5e, 0x40, 0x23, 0xe9, 0x65, 0x68, 0x5d, 0x25, 0x96, - 0x55, 0xa9, 0x95, 0x6b, 0xdc, 0x5e, 0x7c, 0x06, 0xbc, 0xf2, 0xed, 0x5b, - 0xba, 0xfe, 0xc5, 0x62, 0x0d, 0x88, 0x82, 0xd8, 0x81, 0x94, 0x9c, 0x19, - 0xb0, 0x17, 0x47, 0x45, 0x50, 0x0c, 0x40, 0x4a, 0xcb, 0x68, 0xb3, 0xae, - 0x1d, 0xb6, 0x4a, 0xf8, 0x0e, 0xc9, 0xb8, 0xed, 0x95, 0xb6, 0x55, 0xe8, - 0x33, 0x13, 0x6e, 0xb4, 0x05, 0x60, 0x0e, 0xd6, 0xc0, 0x29, 0x2e, 0x15, - 0x16, 0x61, 0x74, 0x47, 0x6e, 0xae, 0x9a, 0x1e, 0x94, 0x7a, 0x55, 0xd4, - 0x0b, 0xe9, 0x71, 0xc9, 0x28, 0x0e, 0x3e, 0x39, 0x8d, 0xe8, 0x1f, 0x1b, - 0x2f, 0xd0, 0x39, 0x7e, 0xdf, 0x03, 0xae, 0xdc, 0xc4, 0x51, 0x50, 0xfb, - 0x63, 0x2d, 0x73, 0x31, 0x90, 0x21, 0xdf, 0x58, 0xf5, 0xdc, 0xad, 0xb1, - 0x6a, 0x28, 0xa1, 0x56, 0xb2, 0x3a, 0xa1, 0x50, 0xf7, 0xad, 0x9f, 0x1e, - 0xbf, 0x7d, 0xd3, 0x9c, 0xdb, 0x01, 0x1f, 0x5f, 0x2e, 0xd0, 0x33, 0x15, - 0x3a, 0x3e, 0x53, 0x8b, 0xd9, 0x8c, 0xd4, 0xdc, 0x69, 0x91, 0xc1, 0x9b, - 0x23, 0x10, 0x1f, 0x7e, 0x86, 0x99, 0x9e, 0xc5, 0xd6, 0xc6, 0xfc, 0x65, - 0xa8, 0x31, 0x58, 0x13, 0xb1, 0x48, 0x5c, 0xa1, 0xf8, 0x41, 0x1d, 0xbf, - 0x30, 0xaf, 0xd8, 0x2a, 0xfe, 0x33, 0x13, 0x04, 0xa6, 0x2d, 0x4f, 0xa1, - 0x5c, 0xaa, 0x4b, 0x55, 0x0d, 0xb6, 0x3a, 0xde, 0x69, 0x26, 0x1f, 0x19, - 0x4e, 0x4f, 0x85, 0xcc, 0x5f, 0x5e, 0xb3, 0xf3, 0xc9, 0x6b, 0xf7, 0x00, - 0xdd, 0xbe, 0xea, 0x90, 0xfc, 0xca, 0x2f, 0x00, 0xc3, 0x11, 0xb4, 0x21, - 0x1e, 0xe0, 0x87, 0x67, 0x36, 0xe3, 0x94, 0x7b, 0x0e, 0x8c, 0x9e, 0x44, - 0x9a, 0xc1, 0x88, 0xc8, 0xfa, 0xb3, 0x63, 0x0f, 0x1d, 0x6b, 0x60, 0x07, - 0xd5, 0x24, 0x70, 0x7c, 0xad, 0x67, 0xdd, 0x52, 0xa1, 0x83, 0x34, 0x99, - 0x69, 0xb5, 0x8a, 0x3a, 0x19, 0xa5, 0xe5, 0x3a, 0xc0, 0x53, 0x8e, 0x1f, - 0x5b, 0xa9, 0x07, 0xc8, 0x50, 0xb3, 0x6b, 0xd5, 0xbf, 0x50, 0xf9, 0x65, - 0xd9, 0x5b, 0x57, 0x7c, 0xbe, 0x02, 0x66, 0x25, 0xd5, 0x07, 0x54, 0x5c, - 0xba, 0xa4, 0x5b, 0x00, 0x24, 0x8e, 0x67, 0xb4, 0x72, 0x7d, 0x43, 0x55, - 0xc1, 0x40, 0xf4, 0x53, 0x05, 0xf6, 0xaf, 0x45, 0x1d, 0x87, 0xe1, 0x95, - 0xa2, 0x36, 0x10, 0xfd, 0x74, 0x89, 0x15, 0x91, 0x23, 0x9e, 0xaf, 0x1c, - 0xb9, 0x81, 0xe8, 0xa7, 0x4a, 0xac, 0x8a, 0x9c, 0x22, 0x03, 0x4b, 0x91, - 0x1b, 0x88, 0x7e, 0xba, 0xc4, 0x8a, 0xc8, 0x29, 0xc4, 0xb0, 0x14, 0xb9, - 0x81, 0xe8, 0xa7, 0x4b, 0x5c, 0x8f, 0x5c, 0xc6, 0x2a, 0x22, 0xbd, 0x0c, - 0xb9, 0x86, 0xe8, 0x1b, 0xf0, 0x15, 0x04, 0xa2, 0x42, 0x1e, 0x2d, 0x6b, - 0x75, 0x0b, 0xaa, 0xc8, 0x99, 0x92, 0xfd, 0x24, 0xa6, 0xfd, 0xe5, 0xa5, - 0x12, 0xe1, 0x92, 0x28, 0x97, 0x46, 0x05, 0x3b, 0x32, 0x74, 0x17, 0x34, - 0x8a, 0x55, 0x3e, 0xf0, 0xd8, 0xba, 0x82, 0xd5, 0xcb, 0x54, 0x47, 0xc6, - 0x6b, 0x2e, 0x91, 0x92, 0x86, 0xe8, 0x27, 0xc0, 0x57, 0x92, 0x12, 0x87, - 0x7d, 0x96, 0xa2, 0x35, 0x10, 0xfd, 0x64, 0x81, 0x15, 0x1a, 0x80, 0xc3, - 0x44, 0x39, 0x42, 0x74, 0x09, 0xf6, 0x5c, 0x2c, 0x29, 0xc8, 0x64, 0x0a, - 0xff, 0x5f, 0x18, 0x7e, 0x2d, 0xbf, 0xbc, 0x32, 0x41, 0x5d, 0x57, 0xac, - 0x00, 0xcd, 0xcd, 0xc0, 0x3b, 0x59, 0x58, 0xa4, 0xd1, 0x6e, 0x78, 0x6a, - 0xfb, 0xb9, 0x42, 0xa1, 0xd8, 0xd7, 0x7b, 0x9f, 0x37, 0x46, 0x2f, 0x5f, - 0x35, 0x9a, 0x24, 0x52, 0xbc, 0x50, 0xdf, 0xca, 0x43, 0xa4, 0xd6, 0xbc, - 0x57, 0x00, 0xe9, 0xac, 0x00, 0xd3, 0xcd, 0xc0, 0x5c, 0x15, 0xaf, 0x1d, - 0x72, 0xeb, 0x49, 0x0f, 0x73, 0x86, 0xcf, 0xba, 0xc5, 0xaf, 0x1a, 0x95, - 0x42, 0xcf, 0xfb, 0x89, 0xaf, 0x39, 0x12, 0x98, 0x46, 0x5c, 0x02, 0x6e, - 0xb2, 0xa7, 0x43, 0xe3, 0x2e, 0xde, 0xfc, 0xfa, 0xf2, 0x59, 0x22, 0xc3, - 0x19, 0xa9, 0xd4, 0x9f, 0xb0, 0x50, 0x12, 0x39, 0x52, 0x4a, 0xb5, 0x44, - 0x30, 0x03, 0xbd, 0x23, 0xb6, 0xaf, 0xc5, 0xae, 0xaf, 0x98, 0x53, 0x92, - 0xaf, 0x56, 0x9e, 0xbd, 0xfc, 0x65, 0x25, 0x09, 0x1d, 0xce, 0xbd, 0x25, - 0xd0, 0xc7, 0xdf, 0x1e, 0xbe, 0x91, 0xe0, 0x26, 0x52, 0x62, 0x09, 0xf8, - 0xcb, 0x7f, 0x95, 0x77, 0x2c, 0xca, 0x8d, 0x13, 0xb1, 0x5f, 0x31, 0xe1, - 0x51, 0x87, 0x4b, 0xda, 0x26, 0x7d, 0xdc, 0xa3, 0x14, 0x06, 0x8e, 0x83, - 0xb9, 0x19, 0x18, 0x18, 0xee, 0x78, 0x4d, 0xa7, 0x73, 0x93, 0xb4, 0x6e, - 0x1a, 0x48, 0x93, 0x60, 0xbb, 0xb4, 0x9d, 0xa3, 0x0c, 0x7f, 0xc8, 0x2f, - 0x21, 0x69, 0x77, 0xad, 0x7d, 0xda, 0x6b, 0xd3, 0xf2, 0xec, 0xc0, 0x25, - 0xb1, 0x25, 0xad, 0xa4, 0xd5, 0xbe, 0xb5, 0x92, 0x01, 0x3b, 0x2d, 0xeb, - 0x48, 0x7f, 0xf4, 0xf5, 0xcb, 0x97, 0x5f, 0x98, 0xc4, 0xa7, 0xad, 0x38, - 0x2f, 0xaf, 0x4b, 0x17, 0x1a, 0x16, 0x5b, 0x64, 0x4a, 0xa9, 0xa5, 0xcf, - 0xd4, 0x52, 0x65, 0x5f, 0x91, 0xc2, 0x42, 0xf1, 0x7e, 0x6f, 0x06, 0xce, - 0x59, 0xe8, 0xf4, 0x91, 0x02, 0x59, 0xed, 0x95, 0x69, 0x92, 0x46, 0x4e, - 0x5c, 0x09, 0x04, 0xcf, 0x0c, 0x7c, 0x40, 0xea, 0x6b, 0xaf, 0xa0, 0x03, - 0x43, 0x54, 0x95, 0x6d, 0x97, 0xdf, 0x20, 0x23, 0x87, 0x8a, 0x25, 0x7e, - 0x4c, 0xb1, 0x88, 0xe0, 0x4e, 0x00, 0xbc, 0x73, 0x76, 0xaf, 0x11, 0x38, - 0x95, 0x18, 0xb8, 0x87, 0xcd, 0x58, 0x06, 0x9b, 0x56, 0x36, 0x66, 0xbd, - 0xd0, 0xa0, 0x43, 0x5a, 0xb5, 0x45, 0x5c, 0x5d, 0x61, 0x90, 0x48, 0x50, - 0xe1, 0x26, 0x71, 0xf2, 0x95, 0xc1, 0x7f, 0x86, 0x94, 0xc5, 0xd8, 0xce, - 0xfb, 0xcb, 0x68, 0x46, 0x9f, 0x97, 0x6a, 0xc6, 0x4a, 0x0b, 0x47, 0x5a, - 0xb0, 0x25, 0x1f, 0x24, 0x3d, 0xda, 0x6b, 0x7f, 0x35, 0x5d, 0x5d, 0xbf, - 0x82, 0x1d, 0x7b, 0xa0, 0x98, 0xc9, 0x6c, 0xc8, 0xc9, 0x13, 0xed, 0x9d, - 0x46, 0x36, 0xa4, 0xa0, 0x72, 0x35, 0x9b, 0x2d, 0x32, 0xd1, 0xe8, 0x68, - 0x01, 0xce, 0x1a, 0x42, 0x23, 0x0f, 0xf6, 0x2d, 0xf4, 0xda, 0xac, 0x42, - 0x28, 0x45, 0x55, 0xe1, 0xa9, 0x65, 0x1d, 0x00, 0x1a, 0x7a, 0x35, 0x2d, - 0xf5, 0x57, 0x46, 0x79, 0x9c, 0x5a, 0x3b, 0x29, 0x2e, 0xf6, 0x93, 0x8b, - 0xd3, 0xdd, 0x64, 0x01, 0x07, 0xdb, 0xd7, 0x8b, 0x31, 0x9a, 0x65, 0x1a, - 0x56, 0x4e, 0x22, 0x1e, 0x92, 0x32, 0xc8, 0x62, 0x6b, 0x7b, 0x54, 0xb1, - 0x54, 0xed, 0x1b, 0x5c, 0x01, 0x2b, 0x76, 0x0f, 0x95, 0x67, 0x9c, 0xde, - 0x40, 0x2c, 0x02, 0xba, 0x8d, 0x63, 0xbd, 0x9d, 0x9d, 0xb7, 0x7b, 0x07, - 0xd1, 0xd8, 0xc3, 0xd3, 0xd5, 0x12, 0x49, 0x80, 0xa9, 0x7d, 0x58, 0xc2, - 0x64, 0x1f, 0x5a, 0x44, 0x46, 0x57, 0x9c, 0x57, 0x3f, 0xc2, 0xbb, 0x49, - 0x71, 0x3e, 0xc9, 0x73, 0xbc, 0xdf, 0x8d, 0x74, 0x07, 0xa3, 0xed, 0xed, - 0x28, 0x79, 0xc1, 0xee, 0x54, 0x7b, 0x0c, 0x0f, 0xb2, 0x7a, 0x3e, 0x87, - 0x83, 0xc6, 0x25, 0xcf, 0xe5, 0x9c, 0x76, 0x8b, 0x20, 0x32, 0xea, 0x6a, - 0xd9, 0xb8, 0xf0, 0xb1, 0xfa, 0x73, 0x53, 0xb5, 0xf6, 0x82, 0xa7, 0xbc, - 0x58, 0xf3, 0xa5, 0xa5, 0xb8, 0xb5, 0xcf, 0x07, 0xe6, 0x22, 0x07, 0xec, - 0xe0, 0xf5, 0xad, 0xb9, 0x71, 0xf7, 0x95, 0x70, 0xfb, 0xaa, 0x72, 0x22, - 0x57, 0x25, 0x5c, 0xcd, 0xcb, 0x73, 0x11, 0x93, 0x3a, 0x01, 0xc5, 0x17, - 0x8c, 0x74, 0x06, 0x2d, 0x3e, 0x95, 0x37, 0xa8, 0x60, 0x78, 0xaa, 0x30, - 0x0c, 0xc1, 0x2a, 0xaf, 0x71, 0xf5, 0xd6, 0x8e, 0x92, 0x0a, 0xcf, 0xfb, - 0x34, 0xed, 0x82, 0xb7, 0x97, 0x59, 0x70, 0xe3, 0x21, 0xd5, 0x84, 0xc6, - 0x83, 0xa8, 0xe3, 0xbe, 0x3b, 0x77, 0x33, 0xde, 0x83, 0x66, 0x6c, 0x14, - 0xff, 0xf4, 0x86, 0x82, 0x32, 0x54, 0xca, 0xee, 0xb2, 0xb0, 0x94, 0xdb, - 0x53, 0x9c, 0xf2, 0x10, 0x47, 0x0e, 0x93, 0x14, 0xcd, 0x6a, 0x54, 0x15, - 0x63, 0x62, 0x0a, 0xb9, 0xcb, 0x95, 0x2c, 0xac, 0x2c, 0xc3, 0x5c, 0xd7, - 0xee, 0x9c, 0xc0, 0x66, 0x95, 0x27, 0x03, 0xc9, 0xe7, 0xea, 0x10, 0x96, - 0xb3, 0x56, 0xcb, 0x04, 0xdf, 0x45, 0x82, 0x8e, 0xfc, 0xd0, 0x1d, 0x8b, - 0xf4, 0xd7, 0xc9, 0x59, 0xbe, 0xba, 0x50, 0xd9, 0xae, 0xf5, 0x44, 0xd9, - 0x9b, 0xbc, 0x8d, 0x66, 0x9c, 0xf3, 0x09, 0x59, 0xa1, 0xef, 0x80, 0xe2, - 0xdc, 0xba, 0x27, 0xa2, 0x50, 0xf9, 0x7a, 0x3b, 0xf1, 0xd7, 0xbf, 0x06, - 0x60, 0x9b, 0x00, 0xd2, 0x70, 0x6d, 0xc0, 0xdf, 0x34, 0x08, 0x36, 0x68, - 0x25, 0xc1, 0xb3, 0x4a, 0x44, 0x03, 0x93, 0x39, 0xb4, 0x4d, 0xa6, 0x16, - 0xde, 0x6c, 0xfe, 0xf4, 0xcc, 0xb6, 0x21, 0xfe, 0x50, 0xaa, 0xcc, 0xd2, - 0xaa, 0x9f, 0x99, 0xae, 0x4e, 0x6f, 0xec, 0xce, 0x47, 0xce, 0x25, 0x0e, - 0x43, 0x25, 0x8b, 0xf7, 0x80, 0x54, 0xcd, 0x1b, 0xcd, 0xfd, 0x33, 0xfc, - 0x65, 0xed, 0x9f, 0x19, 0xbd, 0x3e, 0xf5, 0x33, 0x0a, 0xdf, 0xa9, 0x50, - 0xbe, 0x3a, 0xa8, 0x52, 0xd7, 0x57, 0xf3, 0x00, 0xd8, 0x54, 0x1b, 0x8e, - 0xb8, 0xea, 0xbc, 0xb4, 0xcb, 0xdc, 0x53, 0x3b, 0xb4, 0x9d, 0xfb, 0x16, - 0x14, 0x91, 0xd2, 0x37, 0x62, 0x57, 0x4e, 0x57, 0x07, 0x84, 0xef, 0x5f, - 0x56, 0x98, 0x13, 0x5c, 0xd3, 0xe6, 0xdd, 0x6a, 0x67, 0x4d, 0x58, 0x6d, - 0x82, 0x7a, 0x26, 0xb7, 0x49, 0xa0, 0x69, 0x82, 0xca, 0x2e, 0x3e, 0x06, - 0x3c, 0xb9, 0xbb, 0xff, 0x89, 0xfc, 0x99, 0x1a, 0x53, 0xc5, 0xc5, 0x6a, - 0x2a, 0xdf, 0x7f, 0x04, 0x5f, 0xd3, 0x23, 0xea, 0x26, 0x45, 0x53, 0x9f, - 0x9f, 0xdd, 0x54, 0x9a, 0xeb, 0x1f, 0x0f, 0x92, 0xd7, 0xe2, 0x72, 0xe5, - 0x06, 0xb6, 0xc2, 0xb9, 0xb8, 0xc3, 0xba, 0x85, 0x9d, 0xfb, 0x86, 0xe2, - 0xb9, 0x2a, 0x51, 0x8e, 0x9c, 0xe9, 0x86, 0x42, 0xdf, 0x18, 0x50, 0x49, - 0x83, 0x64, 0xc3, 0x18, 0x16, 0xe8, 0x48, 0xda, 0x3b, 0xa1, 0x47, 0xc7, - 0x05, 0x91, 0xbb, 0x66, 0x50, 0x51, 0xed, 0x37, 0x8f, 0x39, 0x19, 0xf4, - 0x40, 0x1a, 0x86, 0x35, 0xdc, 0xb4, 0xef, 0xd9, 0x2c, 0x6b, 0x30, 0x59, - 0xfc, 0xfa, 0xe9, 0xd3, 0x67, 0x2f, 0x5e, 0x58, 0x15, 0x80, 0xfd, 0xd7, - 0x80, 0x87, 0x82, 0x98, 0x25, 0xa9, 0xdd, 0x02, 0x68, 0xac, 0x81, 0xe1, - 0xbb, 0x10, 0xa7, 0x0c, 0x40, 0x71, 0x47, 0x2d, 0x4e, 0xf9, 0x2f, 0xa6, - 0xd3, 0xad, 0x9a, 0x10, 0xa8, 0x45, 0xcc, 0x7a, 0x55, 0xfb, 0x68, 0x5c, - 0x71, 0x9a, 0x8b, 0x75, 0xa1, 0x10, 0x8f, 0xa4, 0xdd, 0xe5, 0x8b, 0x5c, - 0x7f, 0xdb, 0x43, 0x80, 0x39, 0x3d, 0xcd, 0x84, 0x1f, 0x89, 0xdb, 0x50, - 0xdf, 0xd0, 0x7e, 0x56, 0x67, 0x1e, 0xc1, 0x89, 0x74, 0xfb, 0xf9, 0x33, - 0x36, 0x9d, 0xf5, 0x0a, 0x67, 0x1f, 0x31, 0x5d, 0x8b, 0x76, 0x42, 0xa3, - 0x33, 0x06, 0xf6, 0x87, 0x44, 0x9c, 0x8e, 0xc7, 0x4b, 0xb3, 0xc0, 0x36, - 0x97, 0xa5, 0x00, 0x3f, 0x48, 0x46, 0xa6, 0x73, 0x3b, 0x11, 0x76, 0xe9, - 0x62, 0x67, 0x1f, 0x43, 0x19, 0x4f, 0x07, 0x6c, 0x56, 0x6f, 0xbd, 0x8d, - 0x52, 0x2c, 0x9a, 0xe9, 0xc4, 0xa0, 0xa0, 0xa5, 0xb3, 0x8f, 0x9e, 0xac, - 0x30, 0xad, 0xca, 0x56, 0xcb, 0x17, 0x2a, 0x2b, 0x0c, 0x1c, 0x75, 0xc2, - 0x56, 0xca, 0x02, 0x1c, 0x5f, 0x2a, 0xb6, 0x6c, 0x67, 0xbb, 0x44, 0xbc, - 0x97, 0x8c, 0x18, 0xe5, 0x17, 0x2a, 0x73, 0x34, 0x81, 0x3f, 0x01, 0x06, - 0x24, 0x30, 0xf7, 0x99, 0xc9, 0x0b, 0xb0, 0xc0, 0xc4, 0x04, 0x94, 0x7e, - 0x59, 0xda, 0x89, 0x27, 0x94, 0xe2, 0x99, 0x0c, 0x17, 0x1f, 0xdd, 0x3c, - 0x55, 0x8b, 0x8d, 0xb4, 0x27, 0x58, 0xa2, 0x8b, 0xe4, 0xe0, 0xe4, 0x33, - 0x83, 0xfe, 0x48, 0x4d, 0xa4, 0x79, 0xf0, 0x9f, 0xd3, 0x5e, 0x06, 0x7c, - 0xbc, 0x97, 0x5c, 0xcb, 0xb3, 0x19, 0xf8, 0x05, 0xb1, 0xb1, 0x74, 0x9d, - 0x5f, 0x1f, 0xcd, 0x8f, 0xf5, 0x55, 0x0c, 0x3d, 0xf0, 0xdf, 0x37, 0xe0, - 0x05, 0xe7, 0x63, 0x79, 0xe7, 0x80, 0x9f, 0xec, 0xf4, 0xac, 0xca, 0x01, - 0x29, 0x9a, 0x2f, 0x4f, 0xb9, 0x3a, 0xba, 0x36, 0x79, 0x69, 0x62, 0x64, - 0xc7, 0x61, 0xe4, 0x71, 0x4f, 0x57, 0x77, 0x26, 0xef, 0x93, 0x8a, 0xac, - 0x38, 0xc9, 0x64, 0x79, 0x5a, 0x79, 0x2e, 0x95, 0x2b, 0xab, 0x22, 0x00, - 0xcb, 0xf2, 0x84, 0xe7, 0xca, 0x3f, 0xea, 0xe5, 0xc8, 0xab, 0xb4, 0x0e, - 0x68, 0x13, 0x23, 0x68, 0x94, 0xf2, 0x07, 0x2d, 0xda, 0x8e, 0x75, 0xdf, - 0x70, 0x2f, 0x81, 0x59, 0x1c, 0x81, 0x29, 0x60, 0x7a, 0xf1, 0xa7, 0x71, - 0xf8, 0xb8, 0x6b, 0xe6, 0x27, 0x70, 0x15, 0x47, 0x20, 0xe8, 0x47, 0x11, - 0x76, 0x3b, 0x70, 0x5d, 0x0e, 0x6e, 0x2d, 0x7f, 0x30, 0xef, 0xac, 0x18, - 0x06, 0x87, 0x6a, 0x9e, 0x45, 0xf5, 0xa1, 0x7e, 0xc8, 0x8a, 0xe1, 0x26, - 0x81, 0x2f, 0xea, 0xec, 0x49, 0x21, 0x3a, 0x6d, 0x80, 0x5c, 0x0f, 0xf4, - 0x09, 0x30, 0x95, 0xef, 0x9d, 0xf9, 0xda, 0xd3, 0x5e, 0xc4, 0xf4, 0x4f, - 0x7b, 0x91, 0x2e, 0x85, 0xb7, 0xaa, 0xdb, 0xf8, 0x82, 0x84, 0x54, 0xcf, - 0x79, 0xe3, 0x0b, 0xff, 0x24, 0x8e, 0xb5, 0x32, 0xa6, 0x9a, 0xea, 0x0d, - 0x88, 0x51, 0x17, 0xd8, 0xbb, 0xd8, 0x3d, 0x42, 0xd8, 0xe3, 0xcd, 0x2a, - 0x49, 0x25, 0x63, 0x11, 0x88, 0xb1, 0x31, 0x20, 0xc8, 0x58, 0x6d, 0x93, - 0xa0, 0x94, 0x89, 0x18, 0xc3, 0xdf, 0x01, 0x03, 0xb4, 0x72, 0x33, 0x3d, - 0x85, 0xc6, 0xb4, 0xba, 0xc8, 0xca, 0x73, 0xa0, 0x94, 0x9c, 0x67, 0x79, - 0x66, 0x4d, 0x17, 0x69, 0x2d, 0x52, 0xc8, 0xd0, 0x29, 0x75, 0x35, 0x29, - 0x81, 0xb8, 0x2a, 0x19, 0x4d, 0x71, 0x0c, 0xc6, 0x6a, 0xbf, 0x6a, 0xc1, - 0x2b, 0x9c, 0x44, 0x90, 0xd7, 0x80, 0x45, 0x56, 0x95, 0x16, 0x2e, 0xd1, - 0x15, 0x88, 0xcf, 0x0b, 0xc3, 0xf2, 0x48, 0x18, 0x16, 0x47, 0x3d, 0x50, - 0xb4, 0xed, 0xc3, 0x47, 0x13, 0xac, 0x8d, 0x64, 0xce, 0x29, 0xa6, 0x55, - 0xd6, 0x81, 0xab, 0x84, 0xde, 0xd3, 0x73, 0xe8, 0x14, 0x6c, 0xcc, 0xbe, - 0x4f, 0x58, 0x3e, 0xc1, 0xac, 0x91, 0xb6, 0x02, 0x52, 0xe2, 0x32, 0x9a, - 0x2d, 0x6f, 0xf5, 0xc2, 0x06, 0x6c, 0x2f, 0xb1, 0xce, 0x1a, 0x93, 0x09, - 0xcb, 0x7c, 0x81, 0x42, 0x3b, 0xc8, 0x61, 0xa9, 0xe1, 0x28, 0xb5, 0x59, - 0x6a, 0x00, 0x62, 0xa9, 0xd5, 0x13, 0x57, 0x6a, 0xf5, 0xc2, 0x02, 0xec, - 0x2a, 0xb5, 0x64, 0x4d, 0x7d, 0xaf, 0x95, 0x7a, 0x0d, 0x52, 0xdb, 0xc8, - 0x61, 0xa9, 0xe9, 0x8c, 0xb7, 0x51, 0x6a, 0x04, 0x62, 0xa9, 0xd5, 0x13, - 0x47, 0x6a, 0xf5, 0xc2, 0x06, 0xec, 0x28, 0xb5, 0x60, 0x8d, 0xc9, 0xd4, - 0x49, 0x7d, 0x09, 0x52, 0x3b, 0xc8, 0x35, 0x75, 0x0d, 0xd3, 0x8d, 0x46, - 0xa9, 0x11, 0x88, 0xa5, 0x56, 0x4f, 0x1c, 0xa9, 0xd5, 0x0b, 0x1b, 0xb0, - 0xa3, 0xd4, 0x82, 0x35, 0x26, 0x53, 0x27, 0x35, 0x8e, 0xf5, 0x0e, 0xb2, - 0x4f, 0x6a, 0x00, 0xba, 0x5c, 0xd6, 0x58, 0xb7, 0x9a, 0xd6, 0x22, 0x18, - 0xdb, 0x37, 0xfd, 0xb2, 0xe4, 0x55, 0x47, 0xec, 0x0c, 0xd1, 0xc1, 0xa8, - 0xd5, 0x99, 0xbd, 0xc4, 0x0f, 0x4b, 0x58, 0x9c, 0x80, 0x84, 0x26, 0x96, - 0x57, 0x3c, 0x38, 0xce, 0x6e, 0x16, 0x0e, 0x80, 0x94, 0x68, 0x88, 0xe0, - 0x11, 0x0c, 0x9e, 0xf2, 0xfb, 0x4e, 0x62, 0x09, 0x46, 0xe0, 0xdf, 0x3a, - 0xa1, 0x54, 0x13, 0x65, 0x1c, 0xaf, 0x50, 0xe8, 0x1c, 0xd0, 0x2c, 0x15, - 0x42, 0x85, 0x27, 0x44, 0x0c, 0x03, 0x53, 0xa2, 0xbf, 0x7f, 0x6e, 0xc3, - 0xec, 0x88, 0xd9, 0x8d, 0x06, 0x8d, 0x0f, 0x9b, 0xe7, 0x34, 0x04, 0xe5, - 0x56, 0x1c, 0xb9, 0x60, 0x30, 0x44, 0xa7, 0xaa, 0x93, 0xea, 0xc6, 0x8f, - 0xba, 0xca, 0xc3, 0x15, 0x82, 0x85, 0xe5, 0xad, 0x3d, 0x91, 0x7c, 0xaf, - 0xb9, 0xfe, 0x04, 0x5c, 0x5d, 0x0d, 0x32, 0xd4, 0x3f, 0xa8, 0x0e, 0x05, - 0x43, 0x4e, 0x2d, 0x8a, 0xc7, 0xcd, 0xf5, 0x28, 0xe1, 0x54, 0x4d, 0xa6, - 0xb6, 0x3f, 0xc9, 0x3b, 0x98, 0x98, 0x10, 0x71, 0x18, 0xb8, 0x53, 0xa5, - 0x4a, 0xef, 0x14, 0xb3, 0xbc, 0x5f, 0x12, 0x99, 0xd5, 0x90, 0x7f, 0xcb, - 0x9c, 0x80, 0xfc, 0x40, 0xa4, 0xf8, 0xab, 0x33, 0x84, 0x15, 0x18, 0x82, - 0x5d, 0x52, 0xc0, 0x12, 0xa8, 0xb0, 0x28, 0x53, 0x40, 0xc0, 0x08, 0x5b, - 0x40, 0xb0, 0x7f, 0x96, 0x31, 0x20, 0x47, 0x8e, 0x35, 0xc8, 0xe7, 0x51, - 0xe6, 0x80, 0x80, 0xb5, 0xf6, 0x30, 0x1a, 0x23, 0x12, 0x43, 0x77, 0x98, - 0x34, 0xff, 0x73, 0x0c, 0x82, 0x88, 0x47, 0x59, 0x04, 0x41, 0x46, 0x98, - 0x04, 0xc1, 0xfd, 0xb3, 0x6c, 0x82, 0x58, 0x72, 0x8c, 0x42, 0xbd, 0x88, - 0xb2, 0x0a, 0x82, 0xac, 0x33, 0x0b, 0xe8, 0x24, 0x4c, 0xe0, 0x7f, 0xb3, - 0x55, 0x00, 0xad, 0xb8, 0x6e, 0x02, 0x00, 0x63, 0xba, 0x09, 0x00, 0xfb, - 0x87, 0x75, 0x13, 0xc8, 0x91, 0x6b, 0x11, 0xf4, 0x3c, 0xae, 0x9b, 0x00, - 0xc0, 0xda, 0x6e, 0x62, 0xbf, 0xaf, 0x83, 0xfe, 0x3b, 0xfb, 0x08, 0x8a, - 0x15, 0x4a, 0xa1, 0x42, 0xdd, 0xed, 0x1b, 0x2d, 0x8e, 0x68, 0xb7, 0x5d, - 0x1c, 0xf3, 0x5c, 0xf9, 0x50, 0xa0, 0x0b, 0x6d, 0x17, 0x47, 0xf4, 0x43, - 0xed, 0x97, 0x3e, 0xc7, 0x13, 0x84, 0x63, 0xc1, 0x82, 0x7f, 0xd2, 0x7d, - 0xf2, 0x63, 0xfd, 0xe2, 0x51, 0x40, 0xa0, 0x9b, 0x12, 0x5b, 0xab, 0x78, - 0xb6, 0x49, 0xa7, 0x19, 0x74, 0x6f, 0x98, 0x0f, 0x46, 0xb5, 0xf0, 0xa9, - 0xe2, 0x90, 0x58, 0x64, 0x2e, 0xef, 0x69, 0x77, 0x46, 0xf3, 0xc9, 0x95, - 0xb6, 0xd3, 0x0b, 0x9b, 0x90, 0xe4, 0x35, 0x41, 0xcf, 0xc5, 0xfe, 0xa4, - 0x64, 0xaa, 0x5c, 0x49, 0x6f, 0x09, 0x45, 0x9c, 0x0b, 0x6f, 0xb5, 0x1e, - 0xf5, 0xf2, 0x06, 0x3c, 0x9b, 0x52, 0xc0, 0xd9, 0x4d, 0xc5, 0x6c, 0x52, - 0x45, 0x7e, 0x95, 0x5c, 0x87, 0x38, 0x77, 0x35, 0x8a, 0xa5, 0x39, 0x3e, - 0xaf, 0xf5, 0xfd, 0x41, 0x39, 0x74, 0x10, 0x94, 0xba, 0xbc, 0xd4, 0x58, - 0xef, 0x41, 0x27, 0xdb, 0x30, 0x76, 0x87, 0x25, 0xad, 0x47, 0x9c, 0x5a, - 0xbe, 0x9c, 0x33, 0xf3, 0x30, 0x68, 0xbc, 0xef, 0xab, 0x8f, 0xca, 0x74, - 0x46, 0xe6, 0xd2, 0xeb, 0xb7, 0xf7, 0xa2, 0x73, 0x9b, 0x75, 0x36, 0x02, - 0xa5, 0x27, 0xf7, 0xf5, 0x67, 0x1f, 0x93, 0xde, 0xb3, 0xdc, 0xbd, 0x5e, - 0x58, 0xce, 0xed, 0xbb, 0x94, 0x53, 0x93, 0xcb, 0xbb, 0x63, 0xb1, 0xb8, - 0x98, 0xcc, 0x97, 0x8d, 0xe7, 0x4b, 0x43, 0x84, 0x52, 0x36, 0xaf, 0xb0, - 0xdc, 0x7e, 0x53, 0x8b, 0x10, 0xad, 0x83, 0xb6, 0x5a, 0xe6, 0xfb, 0x88, - 0x41, 0x19, 0x5a, 0x99, 0xce, 0x01, 0xc2, 0x79, 0x76, 0x4d, 0x60, 0x75, - 0xac, 0x30, 0xf4, 0xcd, 0xfc, 0x27, 0xec, 0x5c, 0x52, 0xf2, 0x10, 0x7b, - 0x0e, 0x63, 0xb1, 0x42, 0x97, 0x0e, 0x02, 0xe9, 0x68, 0x30, 0xee, 0x0f, - 0x46, 0xfb, 0xfd, 0x77, 0xc7, 0x8f, 0x1f, 0xf7, 0x1f, 0x84, 0xe1, 0x76, - 0x14, 0xdc, 0xde, 0xa3, 0x87, 0x75, 0x70, 0x7b, 0x0a, 0x6e, 0x34, 0xda, - 0xed, 0xf7, 0xb7, 0x46, 0x70, 0xfe, 0x1d, 0x13, 0x92, 0xb0, 0x5c, 0xad, - 0x16, 0xd3, 0x49, 0x8b, 0xc6, 0x43, 0x85, 0xc6, 0x50, 0x3e, 0x5b, 0xad, - 0xca, 0xec, 0x3e, 0x08, 0xdb, 0x2c, 0xab, 0x5a, 0x49, 0x41, 0xe7, 0x14, - 0xfc, 0x6d, 0xbc, 0x87, 0xbd, 0xf8, 0xc6, 0x9b, 0xa3, 0xd1, 0x68, 0x23, - 0x79, 0x02, 0x5f, 0x9e, 0x3d, 0x7b, 0xb6, 0x11, 0x43, 0x99, 0x58, 0xbe, - 0x3f, 0xc2, 0xe4, 0x98, 0xdb, 0x8d, 0xba, 0xdd, 0x9e, 0x30, 0x76, 0x7a, - 0x73, 0x7b, 0x42, 0x28, 0xd5, 0x9e, 0x14, 0x56, 0xa8, 0x3d, 0xe1, 0x3b, - 0x1d, 0xb2, 0xd5, 0x66, 0xa0, 0x4b, 0x0b, 0xb8, 0x33, 0x4b, 0x8c, 0x51, - 0x13, 0x39, 0x24, 0xd9, 0x0a, 0xf2, 0x11, 0x0f, 0x68, 0x05, 0x6d, 0xac, - 0x59, 0x2b, 0x08, 0xa5, 0xb4, 0xa2, 0xb0, 0x42, 0x5a, 0xc1, 0x77, 0x26, - 0x64, 0x77, 0xad, 0x08, 0xee, 0x14, 0x9d, 0x78, 0xad, 0x48, 0xc7, 0xc3, - 0x36, 0x6d, 0x09, 0x01, 0x62, 0x48, 0xab, 0x03, 0xca, 0xbb, 0xa7, 0xcc, - 0xdb, 0x83, 0xf7, 0x45, 0x5b, 0x4c, 0xe9, 0xef, 0x91, 0x3a, 0xac, 0x10, - 0xee, 0x4d, 0x31, 0x6a, 0xc1, 0x71, 0x8f, 0xf4, 0x61, 0xfd, 0xd2, 0x9d, - 0x7d, 0xe9, 0x8a, 0x51, 0x66, 0xd7, 0xe5, 0x16, 0xdd, 0x2c, 0x10, 0x8d, - 0xf1, 0x34, 0x5b, 0x0b, 0x47, 0xba, 0x04, 0x1e, 0x31, 0xcd, 0x04, 0xa3, - 0x5a, 0x62, 0x38, 0xa4, 0xd8, 0x11, 0x13, 0x51, 0xff, 0xd9, 0x03, 0xa6, - 0x0a, 0x3f, 0x5a, 0xc4, 0xf8, 0xf6, 0xf0, 0xb5, 0x0b, 0x5e, 0x6a, 0x07, - 0xfc, 0x7a, 0x88, 0x66, 0xd0, 0xb7, 0x07, 0xfe, 0x04, 0x04, 0xb8, 0xf4, - 0x34, 0x0d, 0x13, 0xe3, 0xf1, 0xd8, 0x3b, 0x08, 0xdd, 0x46, 0x18, 0x89, - 0x3a, 0x30, 0xc7, 0x80, 0xb0, 0xdd, 0x06, 0xa4, 0x5a, 0xf2, 0x22, 0x84, - 0xce, 0x3d, 0x10, 0x26, 0x67, 0x9d, 0xfb, 0x21, 0x8d, 0x6e, 0x3c, 0xf7, - 0x43, 0x19, 0x1d, 0x7c, 0xee, 0x89, 0xb4, 0x08, 0x5e, 0x72, 0x3f, 0xb4, - 0x8b, 0x75, 0x76, 0x5f, 0xd5, 0xa8, 0x7a, 0x83, 0x6e, 0xa4, 0x9d, 0x51, - 0xbf, 0x8c, 0x58, 0x5a, 0x00, 0x90, 0x31, 0xe6, 0x97, 0xc1, 0x85, 0x05, - 0xbc, 0xd2, 0xe1, 0xfe, 0xc4, 0xaa, 0x82, 0x18, 0x93, 0x54, 0xe2, 0x87, - 0x7b, 0x45, 0x64, 0x08, 0xbb, 0x1e, 0x6d, 0x3a, 0xf0, 0x72, 0x19, 0x43, - 0x5d, 0xec, 0x76, 0x34, 0x2f, 0x1d, 0x5d, 0xea, 0xad, 0xd6, 0xf3, 0x77, - 0xbc, 0x90, 0xad, 0xe5, 0x46, 0x8c, 0x78, 0xaf, 0x26, 0xe0, 0xbc, 0x06, - 0xfb, 0x69, 0xe2, 0x42, 0x5f, 0xda, 0x0f, 0x1b, 0x4b, 0x11, 0x65, 0x2d, - 0x40, 0xd5, 0x32, 0x98, 0x22, 0x68, 0x31, 0x04, 0x6d, 0xc0, 0xb6, 0xd9, - 0x5f, 0xf1, 0x52, 0x83, 0x52, 0x8c, 0x52, 0x5b, 0xcb, 0x2b, 0x47, 0x70, - 0xca, 0x10, 0x73, 0x36, 0x39, 0xc9, 0x64, 0x1c, 0xe9, 0x36, 0x81, 0xdd, - 0xd4, 0x6a, 0x38, 0x1c, 0x49, 0x48, 0x4d, 0xf1, 0x1b, 0x40, 0xb0, 0x42, - 0x9b, 0x40, 0xca, 0x65, 0x33, 0x44, 0x11, 0x00, 0x01, 0xef, 0xe0, 0xb8, - 0x26, 0x25, 0x12, 0xd0, 0x79, 0xea, 0x86, 0xae, 0x2e, 0xaa, 0xaa, 0xb9, - 0xdb, 0x59, 0x80, 0xba, 0xd1, 0x75, 0xd8, 0xcc, 0x9f, 0x83, 0x37, 0xc9, - 0xa5, 0xf5, 0xb3, 0x5b, 0x2d, 0x79, 0x6e, 0xc3, 0xd6, 0x7e, 0xd2, 0xb3, - 0xaf, 0x56, 0x01, 0x70, 0xe5, 0x2a, 0xae, 0x6e, 0x52, 0xf6, 0x5d, 0xaf, - 0x6d, 0xfa, 0x33, 0x69, 0x26, 0x0f, 0x0e, 0xf9, 0x4e, 0xa3, 0x73, 0x21, - 0x05, 0x5f, 0x64, 0x22, 0xf6, 0x22, 0xb8, 0xac, 0x67, 0x05, 0x39, 0xe5, - 0xaa, 0x84, 0x42, 0x89, 0xb0, 0xbf, 0x42, 0x43, 0x32, 0x2f, 0xda, 0x5c, - 0x4c, 0xd6, 0xce, 0x25, 0x1b, 0xfe, 0xb3, 0x7d, 0xcd, 0x1d, 0x3e, 0x1b, - 0x3a, 0x34, 0xe5, 0x68, 0xae, 0x5f, 0x57, 0x8f, 0x93, 0xcb, 0x9a, 0x2a, - 0x19, 0x6d, 0xe7, 0xcf, 0x4d, 0xe0, 0xf4, 0x49, 0x5c, 0x98, 0x2d, 0xc9, - 0x55, 0xdb, 0xa8, 0x07, 0x66, 0xbd, 0x91, 0x6d, 0xf8, 0x5d, 0xae, 0xa5, - 0xd8, 0xd2, 0xdd, 0xba, 0xd7, 0x77, 0xaa, 0x95, 0x2e, 0x57, 0xd8, 0xd5, - 0x3a, 0x59, 0x2c, 0xfe, 0xaa, 0x1a, 0x45, 0xbd, 0x0a, 0xed, 0x24, 0x87, - 0x6d, 0xaa, 0xf7, 0xc0, 0x4f, 0x8e, 0x00, 0x4c, 0xdd, 0xd0, 0xa3, 0x6e, - 0xea, 0xf9, 0x3b, 0xad, 0xe3, 0x30, 0xf4, 0xde, 0x95, 0xa2, 0x5e, 0x88, - 0x5b, 0x77, 0x5b, 0xb6, 0xf1, 0xee, 0xae, 0x31, 0xfb, 0x68, 0xd3, 0x55, - 0xfa, 0x8e, 0xb5, 0xea, 0xfa, 0x3c, 0x3e, 0x19, 0x83, 0x52, 0xac, 0x21, - 0xce, 0xba, 0x19, 0x74, 0xc7, 0xcb, 0xb2, 0x38, 0x53, 0x8e, 0x31, 0xe3, - 0x16, 0x56, 0x1b, 0xd7, 0x29, 0xe9, 0x35, 0x76, 0x87, 0x2b, 0xc9, 0x36, - 0x6c, 0x68, 0x2c, 0xf0, 0xb7, 0x88, 0x89, 0x25, 0x8f, 0x61, 0xf5, 0x65, - 0xdc, 0x3a, 0x17, 0x7a, 0xcc, 0x5b, 0x5e, 0x17, 0xc5, 0x0c, 0x63, 0x79, - 0xdf, 0x0c, 0x12, 0x4c, 0x82, 0x09, 0x32, 0x35, 0xde, 0xb3, 0x91, 0xe5, - 0x4b, 0x02, 0x55, 0x55, 0x5f, 0x1b, 0xc7, 0xd6, 0x40, 0x56, 0x3d, 0x0f, - 0xce, 0x32, 0x53, 0x28, 0x16, 0xc7, 0x4b, 0x75, 0x8b, 0x8c, 0xce, 0x02, - 0xdf, 0x9c, 0x9c, 0x8e, 0x1f, 0x8e, 0x1f, 0xd2, 0x61, 0xe0, 0x9b, 0xbb, - 0x27, 0x93, 0xb3, 0xbd, 0xed, 0x1e, 0x4f, 0xb1, 0x3e, 0x5c, 0xce, 0x2f, - 0x26, 0x24, 0xc4, 0xbc, 0x20, 0x86, 0x4f, 0xc5, 0xfd, 0x6e, 0x52, 0x01, - 0x39, 0x75, 0xa7, 0x78, 0xd9, 0x4e, 0xdc, 0x47, 0x4b, 0xa0, 0x94, 0x11, - 0x7e, 0xe9, 0xfb, 0xae, 0xce, 0xf4, 0x40, 0x0d, 0xe8, 0x05, 0x4a, 0x64, - 0x64, 0x09, 0xfe, 0x94, 0xc6, 0x11, 0x77, 0x6e, 0x0c, 0x62, 0xa2, 0x6f, - 0x48, 0x6e, 0xa5, 0x4a, 0x39, 0xf6, 0xa3, 0x9e, 0x7c, 0x1a, 0x8c, 0x83, - 0xe2, 0x3d, 0x2e, 0xe0, 0xc7, 0x55, 0xa1, 0xb2, 0x81, 0x73, 0x7a, 0x47, - 0x37, 0x8d, 0x77, 0x32, 0x42, 0xc9, 0xc4, 0x5b, 0x2d, 0x2d, 0x78, 0x32, - 0x96, 0xcf, 0x6a, 0x52, 0xe2, 0x33, 0x10, 0x65, 0x8d, 0xe5, 0xc4, 0x92, - 0x66, 0xf6, 0x34, 0x75, 0x27, 0x71, 0xb1, 0x30, 0xaf, 0x25, 0x9a, 0xb7, - 0x52, 0x28, 0x03, 0x6c, 0xb2, 0x5e, 0x95, 0x60, 0x0b, 0x73, 0x18, 0xc0, - 0x6e, 0x28, 0xcf, 0xb0, 0xc6, 0x70, 0xa1, 0xdd, 0x0c, 0xf3, 0xe6, 0x5c, - 0xe4, 0xeb, 0xc0, 0x29, 0x3e, 0x74, 0xc2, 0x77, 0xc2, 0x33, 0x99, 0x2d, - 0x99, 0x44, 0x4e, 0x7a, 0x9f, 0x4f, 0x96, 0x97, 0x54, 0x12, 0x3d, 0x3d, - 0x7d, 0xf2, 0xa4, 0x86, 0x59, 0xba, 0xd9, 0xf8, 0xfa, 0xc7, 0x2c, 0x5b, - 0x3f, 0x25, 0x60, 0x21, 0xec, 0xad, 0x36, 0x61, 0x6f, 0x64, 0x0f, 0x6a, - 0xe1, 0xe8, 0x58, 0x07, 0x0b, 0x67, 0x8f, 0xc4, 0xfe, 0xc1, 0x58, 0xf1, - 0xd4, 0xae, 0x8d, 0x99, 0xc6, 0x10, 0x20, 0xa9, 0xe9, 0x98, 0x53, 0x4f, - 0x78, 0x1a, 0x9a, 0x7a, 0xb6, 0x9e, 0x76, 0x02, 0xad, 0x86, 0xae, 0xc1, - 0xbc, 0x86, 0x24, 0xa5, 0x0a, 0x56, 0x7d, 0xbd, 0x81, 0x00, 0x4d, 0xb6, - 0x10, 0x01, 0x86, 0xae, 0x04, 0xb0, 0xc6, 0x92, 0x07, 0xda, 0x97, 0x18, - 0x4e, 0x9d, 0x06, 0x20, 0x01, 0x07, 0x86, 0x2f, 0x7e, 0x06, 0x7c, 0x34, - 0x94, 0xf4, 0x07, 0x4a, 0x7a, 0x01, 0xcd, 0xa6, 0x83, 0x77, 0x12, 0x6c, - 0xd3, 0xc1, 0x67, 0xf2, 0x5e, 0xc7, 0x26, 0x34, 0x8f, 0x0b, 0x27, 0x1e, - 0x02, 0x07, 0xa1, 0x73, 0xaf, 0x07, 0x03, 0x47, 0xa4, 0x04, 0xb9, 0x48, - 0x53, 0xc9, 0xfc, 0x91, 0xb3, 0xaa, 0xe1, 0xa6, 0xfe, 0x6c, 0xbc, 0x60, - 0xa3, 0x93, 0xfc, 0xf4, 0x72, 0xbe, 0x5c, 0xc1, 0x57, 0x6e, 0xce, 0x50, - 0x7a, 0xf8, 0x02, 0xf2, 0xd3, 0x8a, 0x3a, 0x2a, 0x8a, 0x4d, 0x83, 0xe4, - 0x04, 0x32, 0x48, 0xdf, 0x26, 0x10, 0x36, 0x5a, 0x19, 0x26, 0x12, 0x1f, - 0x08, 0x24, 0xa7, 0x64, 0x8c, 0xa9, 0x43, 0x2d, 0xf5, 0xd0, 0x8e, 0x98, - 0x5b, 0xcf, 0x60, 0x76, 0x1a, 0xcf, 0x5f, 0x44, 0x8b, 0x79, 0xf0, 0xc0, - 0xc2, 0xf9, 0x73, 0x6d, 0xc7, 0xe2, 0x5e, 0xef, 0xa9, 0x9d, 0xdf, 0xbd, - 0x9e, 0x1f, 0xc9, 0x0c, 0xe7, 0xf2, 0x00, 0x2a, 0xb7, 0x49, 0x08, 0x7b, - 0x1e, 0x71, 0xe0, 0xd5, 0x36, 0xf5, 0x56, 0xd1, 0xea, 0xfe, 0x18, 0xda, - 0xd7, 0xbd, 0x68, 0x7c, 0x38, 0xbc, 0x57, 0x8d, 0xff, 0x59, 0xe5, 0xa9, - 0xa6, 0xd9, 0xd4, 0xd3, 0xbe, 0x77, 0x98, 0x70, 0x07, 0xe7, 0x61, 0x24, - 0x36, 0x6c, 0xda, 0x6d, 0x54, 0xdd, 0xd1, 0x94, 0x24, 0xba, 0xee, 0x9e, - 0x11, 0xf4, 0x6a, 0x19, 0x59, 0x69, 0xb7, 0x11, 0x37, 0xe5, 0xa1, 0x17, - 0xa9, 0x46, 0x74, 0x7d, 0xfc, 0x25, 0x35, 0xb1, 0x5e, 0x36, 0x19, 0x48, - 0x95, 0x02, 0x98, 0xd5, 0xa3, 0xf8, 0xb1, 0x89, 0x49, 0x0e, 0xcf, 0x26, - 0xf3, 0x45, 0xc6, 0xf7, 0xa5, 0x83, 0xba, 0x25, 0x86, 0x4d, 0x96, 0x1d, - 0x86, 0x4d, 0x76, 0xeb, 0xfb, 0x56, 0x91, 0xf2, 0x3c, 0xd0, 0x97, 0x36, - 0x2e, 0xa5, 0xc2, 0x01, 0x9a, 0xf6, 0x1f, 0xde, 0x4f, 0x80, 0xa6, 0xfd, - 0x87, 0x77, 0x17, 0xa0, 0xc9, 0x8a, 0xb2, 0x40, 0xc1, 0x9a, 0x40, 0x33, - 0x05, 0x68, 0x46, 0x1f, 0x5a, 0xbf, 0x3d, 0xcf, 0x96, 0x62, 0x50, 0x65, - 0x95, 0xce, 0x0b, 0x9a, 0x81, 0x0d, 0x28, 0x44, 0x39, 0x5d, 0x33, 0x25, - 0xad, 0xcb, 0xe1, 0x17, 0x9e, 0xe6, 0x3f, 0x67, 0xb9, 0xaf, 0x36, 0x78, - 0x44, 0x70, 0x63, 0x81, 0xbb, 0x36, 0x5e, 0xd5, 0x13, 0x95, 0xe6, 0x2e, - 0xf1, 0xf4, 0xf4, 0xd9, 0x6e, 0xb0, 0x15, 0x02, 0xb1, 0xf3, 0x68, 0x8b, - 0xa1, 0xff, 0xb9, 0xfc, 0x95, 0x52, 0x5b, 0x63, 0xa7, 0xa9, 0xb7, 0x7a, - 0xfd, 0x01, 0x4d, 0x7a, 0xb7, 0xb1, 0xac, 0x16, 0x1d, 0x17, 0xcf, 0x54, - 0xa4, 0x15, 0xb7, 0xe8, 0x25, 0xe2, 0x5a, 0x89, 0xa4, 0xdb, 0x69, 0xe0, - 0x89, 0x30, 0x41, 0xdb, 0x80, 0x41, 0x09, 0x6f, 0xb7, 0x24, 0x11, 0x6f, - 0xc5, 0x40, 0x5c, 0x98, 0x71, 0x4c, 0x01, 0x5d, 0x4d, 0xf9, 0x2b, 0x8c, - 0x97, 0x6e, 0x1c, 0x78, 0x87, 0xf2, 0xd3, 0x70, 0xf5, 0xcb, 0x45, 0xd4, - 0x18, 0x0d, 0xa0, 0x1d, 0xea, 0x53, 0x89, 0xba, 0xd3, 0x1e, 0xf5, 0x57, - 0x89, 0xba, 0xab, 0xa1, 0xde, 0xde, 0x6b, 0x0b, 0xa4, 0x59, 0x42, 0xdb, - 0x26, 0x28, 0x16, 0x42, 0x8d, 0x8d, 0xd0, 0x8e, 0x16, 0x43, 0xc9, 0x83, - 0xaa, 0xf6, 0xe6, 0x6d, 0x93, 0x5e, 0xa1, 0x3f, 0x5b, 0xcd, 0x12, 0x1a, - 0x11, 0x8b, 0x90, 0x14, 0xf4, 0x56, 0x97, 0x82, 0x1e, 0x78, 0x45, 0xa1, - 0x37, 0xba, 0x30, 0x2a, 0x88, 0x0c, 0x7d, 0xb6, 0x15, 0x09, 0xa7, 0x0e, - 0xee, 0x98, 0x58, 0xe6, 0x37, 0x4f, 0xe9, 0xe2, 0xe6, 0xfb, 0x87, 0xda, - 0x18, 0xb2, 0xc9, 0xeb, 0x66, 0xe2, 0xac, 0xe5, 0x84, 0x28, 0xd8, 0xaf, - 0xc0, 0x5f, 0xf3, 0x64, 0xb3, 0x53, 0xcf, 0x12, 0xd5, 0xbb, 0xa8, 0x5e, - 0xac, 0xb5, 0x40, 0xd6, 0x98, 0xdf, 0xa5, 0xec, 0x5e, 0x97, 0x10, 0x42, - 0xb2, 0x5c, 0x9a, 0x35, 0x8d, 0x92, 0x07, 0xfe, 0x1a, 0x82, 0xe7, 0x31, - 0xf8, 0x63, 0x2d, 0x0a, 0xd1, 0xc8, 0x09, 0x43, 0x14, 0xb0, 0x65, 0xe9, - 0x8e, 0x21, 0xc2, 0xc9, 0x45, 0xb4, 0xd1, 0x2a, 0x30, 0x43, 0x54, 0xe4, - 0x77, 0xb6, 0x6c, 0x24, 0x2f, 0x49, 0x53, 0x2c, 0xac, 0x6c, 0x13, 0x69, - 0xeb, 0x1c, 0x82, 0xa1, 0xc6, 0x45, 0x76, 0xaf, 0x30, 0xb7, 0xb6, 0xa2, - 0x36, 0x45, 0x37, 0xa8, 0xab, 0xde, 0x50, 0x87, 0xbc, 0x2a, 0x6b, 0x3e, - 0x54, 0xd9, 0x12, 0x5a, 0xab, 0x7b, 0xec, 0x64, 0x8a, 0x00, 0xe5, 0x03, - 0xbb, 0xf0, 0x6f, 0x9b, 0x80, 0xf2, 0x78, 0x06, 0x2a, 0x72, 0x83, 0x14, - 0xe5, 0x24, 0x2f, 0x0b, 0x0a, 0x74, 0xd1, 0x18, 0xd0, 0x1a, 0xf8, 0xcc, - 0x9c, 0x60, 0x88, 0xbc, 0x6b, 0x9c, 0x1c, 0x2a, 0xa8, 0x88, 0x40, 0xf3, - 0x57, 0xc5, 0xf8, 0xd1, 0x68, 0x7c, 0x76, 0xfd, 0x2a, 0x4c, 0xd4, 0x82, - 0x39, 0x34, 0xf1, 0xe2, 0x8a, 0x21, 0x5f, 0x8d, 0xf8, 0x00, 0xe8, 0x7a, - 0xb2, 0x37, 0xc6, 0x0f, 0x1c, 0xac, 0xc8, 0x34, 0xda, 0x22, 0x0c, 0x0f, - 0x05, 0x8c, 0xf1, 0xc0, 0xd9, 0xf9, 0xe7, 0x98, 0x6a, 0xf3, 0x82, 0xc7, - 0x23, 0x0f, 0x27, 0xd8, 0x8b, 0x16, 0xca, 0xc9, 0x1c, 0x68, 0x11, 0x6a, - 0x90, 0x8e, 0xf6, 0x80, 0x6b, 0x45, 0xb4, 0xd2, 0x1b, 0xc6, 0x14, 0xd0, - 0x2c, 0x28, 0x1d, 0xca, 0xb7, 0x93, 0xb1, 0x0a, 0x9f, 0xcd, 0x04, 0x30, - 0x19, 0x76, 0x23, 0x46, 0x6e, 0x60, 0x8c, 0x22, 0x30, 0x66, 0x06, 0xc6, - 0x38, 0x02, 0x63, 0x6a, 0x60, 0xec, 0x44, 0x60, 0x80, 0x57, 0x9e, 0xb8, - 0xa9, 0xfd, 0x72, 0x05, 0x89, 0xf1, 0xd3, 0x23, 0x5d, 0xa6, 0x81, 0xc1, - 0xef, 0xc0, 0xe0, 0x65, 0x60, 0x94, 0x73, 0xdc, 0x6f, 0x2e, 0xe9, 0x6a, - 0x6c, 0x30, 0xb7, 0x1b, 0xc1, 0x5c, 0x6e, 0xa2, 0xec, 0x45, 0xa0, 0xcc, - 0x4c, 0x94, 0xfd, 0x08, 0x94, 0xa9, 0x89, 0xf2, 0x30, 0x02, 0x05, 0xb4, - 0x36, 0x0e, 0xa8, 0x6d, 0xd7, 0x50, 0xcd, 0x9e, 0xf1, 0x6b, 0x1f, 0x7f, - 0x71, 0x41, 0x71, 0x6a, 0xdb, 0x31, 0xb8, 0x7b, 0x14, 0xc1, 0x5d, 0x6e, - 0xa2, 0x3c, 0x8e, 0x40, 0x99, 0x99, 0x28, 0xa3, 0x18, 0x83, 0x9e, 0x5a, - 0x38, 0x31, 0x26, 0x0d, 0x8a, 0xdb, 0x09, 0x28, 0xee, 0x91, 0xa1, 0x9c, - 0xc7, 0xa6, 0xf5, 0x59, 0xc6, 0x38, 0x02, 0xd5, 0xdd, 0x45, 0x87, 0x12, - 0x4a, 0x4e, 0x1b, 0xee, 0xba, 0x83, 0x01, 0xcf, 0x36, 0xf3, 0x00, 0x43, - 0x49, 0x38, 0xc8, 0x19, 0xe8, 0x3d, 0x84, 0x14, 0x0c, 0x6c, 0x06, 0x7a, - 0x0f, 0xe1, 0x84, 0x83, 0x99, 0x81, 0x19, 0x49, 0xa4, 0x88, 0x2e, 0xb2, - 0x46, 0x31, 0xe3, 0x4e, 0x8a, 0x19, 0x77, 0xd2, 0xcc, 0xb8, 0x8b, 0x6a, - 0xc6, 0x9d, 0x74, 0x33, 0x6e, 0xa5, 0x9c, 0x80, 0x6e, 0x76, 0x3a, 0xe9, - 0x66, 0xa7, 0x93, 0x6e, 0x76, 0xba, 0xe8, 0x06, 0x91, 0x5a, 0xab, 0x66, - 0x27, 0x5e, 0x35, 0xb7, 0xde, 0x09, 0xa0, 0x48, 0xaa, 0xd4, 0x6a, 0x02, - 0x58, 0x93, 0x78, 0xe8, 0xb5, 0x13, 0xb4, 0xcb, 0xce, 0x3d, 0x14, 0x13, - 0x59, 0x2c, 0x18, 0x4a, 0x2c, 0x62, 0xc6, 0x50, 0x93, 0xba, 0xe8, 0x75, - 0x73, 0xf2, 0xa2, 0xa8, 0x48, 0x60, 0xc1, 0xc8, 0x5f, 0xd1, 0xfc, 0xad, - 0x57, 0x79, 0x23, 0x7f, 0x9e, 0xfc, 0x47, 0x8d, 0xfc, 0x01, 0x4c, 0x88, - 0x3f, 0x78, 0x15, 0xcf, 0x9f, 0x3f, 0x81, 0xd2, 0xeb, 0xe6, 0x14, 0x4a, - 0x51, 0xd1, 0xb5, 0x82, 0xd1, 0xb4, 0xa2, 0xf9, 0x5b, 0x4f, 0xbc, 0x33, - 0xdf, 0xe6, 0x2c, 0x4c, 0x49, 0x4c, 0x1c, 0xac, 0x60, 0xdc, 0xab, 0x18, - 0xfe, 0x6a, 0xd2, 0x38, 0xbd, 0xae, 0x4b, 0xe4, 0x94, 0xc4, 0xc5, 0xab, - 0xf2, 0xc6, 0xa8, 0x8a, 0xaa, 0xd8, 0xbf, 0x2c, 0x11, 0x54, 0xdc, 0x9d, - 0x27, 0x4b, 0x8e, 0xbf, 0x20, 0xb9, 0x54, 0x92, 0xc4, 0x27, 0x17, 0x8a, - 0x13, 0xe8, 0xaa, 0x45, 0xa6, 0x21, 0xfa, 0x33, 0x7d, 0x17, 0xef, 0xa7, - 0x50, 0x6d, 0x73, 0x29, 0x6e, 0xa4, 0xdd, 0xae, 0x40, 0x9b, 0x97, 0x54, - 0xd1, 0xb0, 0xe3, 0x36, 0xc0, 0x3b, 0x75, 0xc0, 0x60, 0xd9, 0x51, 0x63, - 0x59, 0x7c, 0xa2, 0xb0, 0xd7, 0x35, 0xa9, 0xc2, 0x1a, 0xdb, 0x21, 0xc0, - 0x78, 0xad, 0x17, 0x9e, 0x47, 0xb6, 0x42, 0x8a, 0x84, 0x11, 0xdf, 0x0a, - 0x5b, 0xe7, 0x1f, 0x8b, 0x68, 0x83, 0xea, 0x6e, 0x60, 0x64, 0x54, 0xaa, - 0xf6, 0xd4, 0xc5, 0xdd, 0xc0, 0xc8, 0x20, 0x47, 0xed, 0xc9, 0xcb, 0xbb, - 0x81, 0x51, 0xd1, 0x72, 0xda, 0x53, 0x17, 0x37, 0x03, 0xeb, 0x43, 0xaf, - 0x1c, 0x24, 0x51, 0x46, 0x89, 0xa9, 0x32, 0xa0, 0x85, 0xb6, 0xda, 0x60, - 0x6b, 0x95, 0xed, 0x34, 0xff, 0x1f, 0xe5, 0x3a, 0x65, 0xd8, 0xe0, 0x82, - 0x32, 0xf1, 0xaf, 0x25, 0xc3, 0x29, 0xa4, 0xe9, 0x2f, 0x18, 0x24, 0x3a, - 0x50, 0x94, 0x4c, 0x35, 0xfd, 0x15, 0xfd, 0x0b, 0x24, 0x2d, 0xc8, 0xc6, - 0x8c, 0xd6, 0x5e, 0xd6, 0x0b, 0x8a, 0xcc, 0x9c, 0xaf, 0x16, 0x45, 0x18, - 0x50, 0x6d, 0x0a, 0x13, 0x82, 0x0d, 0xe7, 0xa4, 0x4d, 0xc7, 0x13, 0x5d, - 0xbd, 0xd8, 0xa8, 0x0b, 0x32, 0x7e, 0x45, 0xf3, 0xa2, 0x8a, 0xf8, 0x50, - 0xc9, 0x9e, 0x82, 0xbb, 0xca, 0x59, 0xc9, 0xb1, 0xc8, 0xc9, 0x00, 0x44, - 0x29, 0x3e, 0xe0, 0x50, 0x7b, 0x74, 0xf7, 0x7e, 0xdb, 0xdc, 0x7f, 0x82, - 0xd2, 0x5d, 0xc9, 0xd9, 0x1b, 0xf2, 0x33, 0x99, 0x06, 0x07, 0x1a, 0xa7, - 0xaf, 0xfa, 0xf8, 0xd4, 0x51, 0x9c, 0x71, 0xb7, 0xbd, 0x75, 0xd1, 0x6e, - 0x2f, 0xbf, 0x91, 0x5a, 0x75, 0xc3, 0xdd, 0x47, 0xd1, 0xeb, 0x32, 0x43, - 0x0e, 0xb5, 0x41, 0x3b, 0x17, 0xda, 0x0a, 0x37, 0x84, 0x13, 0xde, 0x9b, - 0xf1, 0x03, 0xb1, 0x25, 0xf0, 0xf9, 0x5e, 0xf0, 0x9a, 0xc6, 0x09, 0x5e, - 0x48, 0x4a, 0xe8, 0xfc, 0x85, 0x8f, 0x77, 0x5c, 0x4f, 0x14, 0x3a, 0xce, - 0x95, 0xe7, 0x36, 0x64, 0x57, 0xee, 0x31, 0xcd, 0x8b, 0x04, 0x81, 0xe8, - 0x60, 0x46, 0x01, 0x1e, 0xf8, 0x4f, 0x80, 0x0c, 0x62, 0xec, 0x8c, 0xa9, - 0x1e, 0xbd, 0x71, 0x08, 0xa7, 0xd5, 0x54, 0x48, 0x8c, 0xa3, 0x5e, 0xad, - 0xf3, 0x6b, 0x88, 0x4b, 0xdd, 0xb3, 0xa8, 0x5c, 0x11, 0xcf, 0xe4, 0xa9, - 0x04, 0x0e, 0x33, 0x9e, 0x33, 0x3b, 0x97, 0x63, 0xee, 0x05, 0xbd, 0xde, - 0x9f, 0xf2, 0x82, 0x91, 0x0c, 0x0b, 0x02, 0xca, 0x5b, 0x08, 0x6e, 0x53, - 0x91, 0xec, 0xdd, 0x97, 0xee, 0x41, 0x60, 0xd0, 0x99, 0x86, 0x00, 0x02, - 0xc2, 0x4d, 0xd7, 0x94, 0x61, 0x18, 0xec, 0x82, 0x06, 0x7d, 0x5e, 0x47, - 0xcc, 0x2e, 0x68, 0xb4, 0x0f, 0xd3, 0x19, 0xb1, 0x23, 0xaf, 0xb8, 0x8d, - 0xd3, 0x15, 0xaf, 0x63, 0x91, 0x38, 0x6d, 0xef, 0x54, 0x26, 0x21, 0xd6, - 0x17, 0x0a, 0x8d, 0xc3, 0x36, 0x9d, 0x5b, 0xab, 0x91, 0x06, 0xc6, 0x0d, - 0x05, 0x3e, 0x2d, 0xe3, 0x6e, 0x9d, 0x00, 0x9c, 0x19, 0xcf, 0x8f, 0xef, - 0x6c, 0x00, 0x8d, 0xf0, 0x95, 0x0d, 0x78, 0x49, 0xb7, 0x35, 0x5a, 0x0c, - 0x02, 0xdc, 0x72, 0xf4, 0x21, 0x4c, 0x1d, 0x60, 0x26, 0xa3, 0xe4, 0x97, - 0x5f, 0xf4, 0x47, 0xb4, 0xb5, 0x8c, 0x93, 0x22, 0x7a, 0xe4, 0x1e, 0x4d, - 0xee, 0x3d, 0xec, 0x03, 0x43, 0x62, 0x14, 0xf9, 0xfa, 0xc5, 0xcb, 0x2f, - 0x3e, 0x4f, 0xa0, 0xad, 0x7f, 0xfe, 0xc5, 0xc7, 0xcf, 0xec, 0x48, 0xfb, - 0x75, 0x47, 0xf8, 0xb2, 0x89, 0xfb, 0xaf, 0x32, 0x4a, 0xfc, 0x3b, 0xbf, - 0xcd, 0x28, 0xc8, 0x46, 0x5f, 0x6e, 0xf1, 0x2a, 0xec, 0x7d, 0xb1, 0xef, - 0xde, 0xec, 0x73, 0x74, 0x97, 0x03, 0x37, 0xb0, 0xe0, 0xa1, 0x47, 0x62, - 0xee, 0xed, 0x03, 0x37, 0x74, 0xc7, 0xe4, 0xeb, 0x97, 0x5f, 0x7c, 0xf9, - 0xd9, 0x87, 0xdf, 0x9b, 0x22, 0x4b, 0x43, 0x27, 0x78, 0x79, 0x63, 0x2f, - 0xa5, 0xa1, 0xca, 0xea, 0x7d, 0x83, 0x1d, 0x29, 0xcc, 0x6f, 0x82, 0xb0, - 0xe2, 0x54, 0x93, 0x81, 0xeb, 0x29, 0xd3, 0x39, 0x6f, 0x80, 0x32, 0xef, - 0x06, 0xd4, 0xca, 0xfa, 0x50, 0xc8, 0x2a, 0xcc, 0xee, 0xd5, 0xb7, 0x2f, - 0x04, 0xf2, 0x9f, 0xb3, 0x3a, 0xaf, 0x61, 0x28, 0x13, 0xec, 0x74, 0x2b, - 0xf0, 0xbf, 0xa5, 0xf3, 0x47, 0x42, 0xe7, 0x2f, 0xbf, 0xf9, 0xd7, 0x08, - 0x89, 0xc0, 0x6d, 0xa5, 0x7c, 0x2c, 0xbb, 0xb4, 0x67, 0xa3, 0xcd, 0x9d, - 0xd1, 0xbf, 0x46, 0xd2, 0xf6, 0xd5, 0xb9, 0xbf, 0x2d, 0x05, 0xfd, 0x64, - 0x9e, 0x67, 0xe3, 0xed, 0xd1, 0xf8, 0x5f, 0x23, 0xab, 0x00, 0x6e, 0x4c, - 0x21, 0xf7, 0xa7, 0x25, 0x40, 0xe0, 0xbf, 0x4c, 0x04, 0x2b, 0xa1, 0x9a, - 0x3d, 0x0c, 0x6f, 0xb7, 0xba, 0x4f, 0xda, 0x5b, 0x9d, 0x9d, 0xb5, 0x8a, - 0x8e, 0xc1, 0x83, 0x4c, 0x27, 0x0d, 0xb6, 0xb5, 0x03, 0x57, 0x91, 0x2d, - 0x10, 0xc2, 0xa6, 0xef, 0x4e, 0xd1, 0x82, 0xa5, 0xc8, 0xb9, 0x5d, 0x73, - 0xd6, 0x64, 0x81, 0xd8, 0x65, 0x92, 0x29, 0x30, 0x83, 0xb3, 0x4c, 0x97, - 0x51, 0x96, 0xae, 0x03, 0x9f, 0x80, 0xd7, 0x6d, 0xb1, 0x40, 0x88, 0x6d, - 0xb9, 0xd4, 0x2c, 0x82, 0x39, 0x6c, 0x93, 0x33, 0x75, 0x6b, 0xab, 0x7b, - 0x5e, 0xd4, 0xc6, 0x5b, 0xd4, 0x8e, 0x1c, 0xc1, 0xab, 0xc4, 0x66, 0x3a, - 0xf6, 0x57, 0x58, 0xdc, 0x6b, 0x9e, 0xeb, 0x81, 0x56, 0xa6, 0x19, 0xcc, - 0x2a, 0x0b, 0x74, 0x38, 0x9e, 0x65, 0x79, 0x05, 0xa4, 0xb3, 0x63, 0x38, - 0xfa, 0x8d, 0xd8, 0x6e, 0xfd, 0xbe, 0x7a, 0x92, 0x82, 0x91, 0x3f, 0xd1, - 0xd4, 0x0b, 0xe6, 0x49, 0x4d, 0x70, 0xcb, 0xf0, 0x94, 0x80, 0x0b, 0x73, - 0xee, 0x27, 0xf1, 0x13, 0xe8, 0x12, 0x44, 0x23, 0x57, 0xc8, 0x2e, 0x2f, - 0xdb, 0xde, 0x79, 0x6c, 0xe3, 0x7e, 0x57, 0xe5, 0x48, 0x4e, 0x77, 0x04, - 0x65, 0x79, 0xa4, 0x38, 0x4b, 0x6d, 0x64, 0x38, 0xb8, 0xdc, 0xb1, 0xf0, - 0x3e, 0x00, 0x3c, 0xf6, 0x18, 0xf4, 0xa2, 0xb2, 0x13, 0x9c, 0x07, 0xff, - 0xed, 0x0a, 0x9f, 0xc1, 0x7c, 0x44, 0xa8, 0xa3, 0x11, 0xf8, 0xd1, 0xae, - 0x31, 0x55, 0x21, 0x6f, 0x62, 0x21, 0xec, 0xd5, 0xa3, 0x1f, 0xbe, 0x0c, - 0x0c, 0x7f, 0x07, 0xe3, 0xd7, 0xcc, 0xf8, 0x35, 0x3d, 0xee, 0x6b, 0xfd, - 0x4e, 0xb4, 0x17, 0x0a, 0xf3, 0x50, 0xc3, 0xc4, 0xd8, 0xe4, 0xc2, 0xfc, - 0x39, 0x33, 0x7f, 0x4e, 0xc7, 0xb1, 0x8c, 0xec, 0x04, 0x18, 0xa9, 0xe3, - 0x64, 0xc7, 0xe4, 0xc4, 0xfc, 0x39, 0x33, 0x7f, 0x4e, 0x77, 0x0c, 0x4e, - 0x6e, 0xf1, 0x53, 0xdc, 0x1c, 0x37, 0x92, 0x34, 0x3e, 0x55, 0x77, 0xc7, - 0xc9, 0xc3, 0x7b, 0xb2, 0xfc, 0x79, 0x52, 0x37, 0x57, 0xdf, 0xd0, 0x33, - 0x61, 0x0a, 0x68, 0x8a, 0x38, 0x24, 0xdd, 0xc3, 0x31, 0xe4, 0x20, 0x60, - 0x8b, 0x17, 0x88, 0xfb, 0x54, 0x3c, 0x4b, 0x37, 0xc6, 0xa7, 0x04, 0x67, - 0xdc, 0x10, 0xbe, 0x58, 0xaf, 0x96, 0x40, 0x58, 0xc8, 0x79, 0x52, 0xa9, - 0x23, 0xcf, 0xca, 0xcb, 0x7c, 0x99, 0xa4, 0xbd, 0x6d, 0x54, 0x84, 0x68, - 0xf7, 0xf0, 0x7a, 0xb3, 0x5c, 0xbd, 0x10, 0xb9, 0x79, 0x21, 0xee, 0x1f, - 0x8c, 0xa7, 0x94, 0x02, 0x75, 0x38, 0xc6, 0xe7, 0x5f, 0xaf, 0xd7, 0xb0, - 0x35, 0x3e, 0x29, 0xb2, 0xd4, 0xe9, 0x54, 0x58, 0x91, 0xf0, 0xc5, 0x29, - 0x82, 0x79, 0x50, 0x20, 0x70, 0xbe, 0xd1, 0x87, 0x52, 0x3d, 0x2f, 0x46, - 0xa1, 0x17, 0xe3, 0xd0, 0x0b, 0xa8, 0x80, 0xda, 0x04, 0xa8, 0xab, 0x5c, - 0x04, 0x41, 0x32, 0x9a, 0xcd, 0x1b, 0x9e, 0x4d, 0x31, 0x00, 0x30, 0x52, - 0xcd, 0xca, 0x5a, 0x25, 0xe4, 0xcd, 0x75, 0x4e, 0x9f, 0x1f, 0x8b, 0x54, - 0xf5, 0xa4, 0x01, 0xa6, 0x26, 0x40, 0x38, 0x92, 0x7b, 0xb9, 0xba, 0x3c, - 0x39, 0xbf, 0x58, 0xfd, 0x9c, 0x71, 0x67, 0xa5, 0xe8, 0x52, 0xd8, 0x2a, - 0x09, 0x3f, 0xc9, 0xa1, 0xee, 0xb8, 0xcb, 0x12, 0x19, 0x64, 0xed, 0x49, - 0xcf, 0xf5, 0x93, 0xe4, 0xf3, 0x49, 0x79, 0xbe, 0x49, 0xd3, 0x99, 0x54, - 0xc7, 0x7c, 0x89, 0xa5, 0xd0, 0x59, 0x11, 0x1c, 0x04, 0xcf, 0xb2, 0xef, - 0x92, 0x21, 0x50, 0xdf, 0x84, 0x2e, 0x12, 0xba, 0x8a, 0xcf, 0xb2, 0xb3, - 0xb2, 0x3f, 0x30, 0x29, 0xdd, 0xc4, 0x52, 0xfa, 0x9e, 0x29, 0xe1, 0xbb, - 0x75, 0x5f, 0xeb, 0x55, 0x95, 0xa9, 0x87, 0x85, 0xa7, 0xe0, 0x27, 0x28, - 0x78, 0x07, 0xc1, 0x44, 0x91, 0xdf, 0xc5, 0x70, 0x2e, 0x40, 0xbf, 0xf7, - 0xf3, 0xc6, 0xf5, 0xc8, 0x61, 0xab, 0xb1, 0x89, 0x50, 0x4b, 0x7b, 0x7e, - 0x01, 0x32, 0x52, 0x5a, 0x6e, 0xe0, 0x6b, 0xf3, 0x7a, 0x90, 0xe0, 0xc7, - 0x0d, 0xdc, 0x44, 0x80, 0xff, 0xfa, 0xe4, 0xb2, 0x8f, 0x84, 0x38, 0x40, - 0xe7, 0x2b, 0x49, 0x83, 0x8d, 0x9c, 0x1e, 0x58, 0x51, 0xd3, 0xa8, 0xc3, - 0x09, 0xf5, 0xc7, 0x10, 0x24, 0x03, 0xa3, 0x63, 0x98, 0x2f, 0x05, 0xbe, - 0x91, 0xce, 0x14, 0x4a, 0xe3, 0xf4, 0xb1, 0x90, 0x0c, 0x9e, 0x8b, 0xf7, - 0x00, 0xe7, 0x26, 0x28, 0xbb, 0x39, 0x3b, 0x90, 0x33, 0x1f, 0xe4, 0xc8, - 0x07, 0x39, 0xf5, 0x41, 0x8e, 0x7d, 0x90, 0x57, 0x1a, 0x24, 0x0f, 0xbd, - 0xec, 0x44, 0x67, 0x72, 0x64, 0xf9, 0xca, 0xb9, 0x4c, 0xb0, 0x4b, 0x9c, - 0x5b, 0xac, 0xeb, 0xab, 0xe0, 0x1e, 0x74, 0xf5, 0xef, 0x38, 0xd3, 0xab, - 0x3e, 0xf4, 0xba, 0xf9, 0x0c, 0x8c, 0xbe, 0x44, 0x9a, 0x96, 0x61, 0xf1, - 0xca, 0xdc, 0xe8, 0xf2, 0xd6, 0x57, 0x78, 0xbb, 0x76, 0x7b, 0x90, 0xc0, - 0x7f, 0xb2, 0xcf, 0xbe, 0x9a, 0x9f, 0x96, 0xe7, 0xd5, 0xaf, 0xf3, 0x0c, - 0x07, 0x7d, 0x6d, 0x14, 0x51, 0xb4, 0x63, 0xb2, 0x45, 0xe8, 0xa5, 0x12, - 0x9b, 0xf4, 0x3c, 0x35, 0xf3, 0x55, 0xdb, 0x40, 0xdf, 0xe2, 0xc8, 0x92, - 0x6a, 0x25, 0x56, 0x85, 0x6e, 0xbd, 0xfb, 0xae, 0x04, 0x7d, 0x37, 0xf9, - 0x18, 0x20, 0x0b, 0xd9, 0x82, 0x70, 0x48, 0x50, 0x2f, 0xb6, 0x58, 0x37, - 0x1a, 0x35, 0xa3, 0xfb, 0x3c, 0xc9, 0x40, 0xfe, 0xfc, 0xbb, 0xe4, 0xd0, - 0x90, 0x38, 0xd9, 0x4a, 0xc6, 0x07, 0x36, 0xd0, 0xf7, 0x00, 0x64, 0x28, - 0x42, 0x41, 0xb9, 0x57, 0x5c, 0x24, 0xd5, 0x81, 0xc2, 0x8c, 0xd2, 0x27, - 0x96, 0x44, 0x57, 0x1e, 0xbf, 0x82, 0xf3, 0xbe, 0xcb, 0xc2, 0x65, 0x69, - 0x77, 0x73, 0x4f, 0x03, 0x85, 0x03, 0x3f, 0x0d, 0x34, 0x35, 0x60, 0x87, - 0x70, 0xb5, 0xb5, 0x6f, 0xb2, 0x47, 0xe0, 0xc9, 0x74, 0x95, 0x83, 0xc5, - 0xe1, 0x43, 0xae, 0xfa, 0x69, 0x36, 0x9b, 0x2f, 0xbf, 0x84, 0x6e, 0x2b, - 0xed, 0xdb, 0xe0, 0xa2, 0xee, 0x4c, 0xf0, 0x49, 0x7e, 0xe2, 0xca, 0xa7, - 0x73, 0x43, 0xf6, 0x33, 0x86, 0x6a, 0xa1, 0xae, 0xf0, 0xcb, 0xe7, 0x03, - 0x71, 0xec, 0xc6, 0xc4, 0xa9, 0x2e, 0xf0, 0x62, 0x94, 0xc1, 0xd4, 0x93, - 0x24, 0x85, 0x3e, 0xaf, 0xa0, 0x97, 0xcb, 0x64, 0x42, 0x5d, 0x28, 0x02, - 0x49, 0x26, 0xde, 0xe8, 0x9b, 0x6c, 0x60, 0x1a, 0xf6, 0x6f, 0x49, 0xd8, - 0xc3, 0x64, 0xf7, 0xc0, 0x7c, 0x27, 0x6e, 0xa2, 0xbe, 0xc0, 0x25, 0x36, - 0xbc, 0xed, 0xbd, 0xb9, 0x4d, 0x7f, 0x3d, 0x2f, 0x54, 0xda, 0xb7, 0x1e, - 0xd3, 0xed, 0xc7, 0x4a, 0x1d, 0x15, 0xcf, 0x67, 0xf3, 0xc5, 0x42, 0xc4, - 0x03, 0x9a, 0x66, 0x93, 0xcb, 0x72, 0x7e, 0x76, 0xb9, 0x50, 0x61, 0x18, - 0x15, 0x48, 0x39, 0xf9, 0x31, 0x5b, 0xd2, 0xb5, 0x2c, 0xf2, 0x9d, 0x78, - 0x92, 0x9c, 0x97, 0xe5, 0xfa, 0x09, 0xdc, 0x0b, 0x2d, 0x61, 0x99, 0x0f, - 0x83, 0x6c, 0x7e, 0xb6, 0x58, 0x5d, 0x41, 0xb7, 0x74, 0xb1, 0xf5, 0xd3, - 0x65, 0x56, 0xd0, 0x79, 0xdd, 0xd6, 0xe8, 0xd1, 0x78, 0x7f, 0xef, 0xd1, - 0xf6, 0xee, 0xd6, 0xf4, 0x72, 0xbe, 0xc0, 0x63, 0xde, 0xe1, 0x64, 0x48, - 0x64, 0x87, 0x34, 0xa9, 0x1a, 0xce, 0x97, 0xc3, 0xf3, 0xf2, 0x62, 0xb1, - 0x67, 0xe5, 0x14, 0x82, 0xde, 0x61, 0x21, 0xfa, 0x18, 0xf9, 0xf5, 0x3d, - 0x98, 0x41, 0xee, 0x57, 0xbf, 0x1e, 0xd8, 0x93, 0x6b, 0xc0, 0x11, 0x6e, - 0x1d, 0x1f, 0x4a, 0xc4, 0x54, 0x00, 0x0e, 0x61, 0x02, 0xcc, 0x35, 0x05, - 0x16, 0x33, 0x7a, 0x64, 0x47, 0x4e, 0x86, 0x69, 0xa8, 0x42, 0x22, 0x9c, - 0x00, 0x78, 0xc8, 0xa2, 0xdc, 0xb7, 0x38, 0xdf, 0x78, 0xb9, 0x72, 0x6c, - 0x48, 0x81, 0xda, 0xb6, 0x66, 0x8e, 0xb0, 0x0a, 0xcb, 0x7d, 0x0a, 0x24, - 0xcc, 0xa7, 0xba, 0x4d, 0x5a, 0x6f, 0x58, 0x15, 0xd6, 0x0b, 0x10, 0xd6, - 0xf7, 0x98, 0x0c, 0x98, 0x1f, 0x29, 0x56, 0x43, 0x66, 0xe3, 0xbe, 0x45, - 0xeb, 0xa9, 0xec, 0xf1, 0xbc, 0x58, 0xa4, 0x30, 0x28, 0xa9, 0xba, 0xc2, - 0xe3, 0x56, 0xbc, 0x84, 0x8d, 0xe7, 0xe0, 0x6f, 0xf7, 0x7b, 0x01, 0xec, - 0x34, 0xae, 0xd0, 0x5b, 0x36, 0x59, 0xec, 0x4c, 0xda, 0x34, 0xf9, 0xf2, - 0x7c, 0x5e, 0x6c, 0xd6, 0xb7, 0xf2, 0x5c, 0x28, 0x53, 0xd7, 0x1f, 0xab, - 0x0c, 0xa8, 0x5f, 0x22, 0x1c, 0x78, 0x2d, 0x9c, 0xfc, 0x78, 0x35, 0xc7, - 0x16, 0x1f, 0xd3, 0x73, 0x00, 0x97, 0xf1, 0x3d, 0x07, 0x6a, 0x02, 0x3b, - 0x05, 0x89, 0xce, 0xbd, 0xe1, 0xc5, 0xcd, 0xab, 0x19, 0x72, 0x07, 0x8f, - 0x79, 0x12, 0x25, 0x53, 0x68, 0x7d, 0x06, 0x5d, 0xc5, 0x24, 0xff, 0x54, - 0xbc, 0x56, 0x03, 0xdc, 0xe8, 0x21, 0x7e, 0x4a, 0xd2, 0x3a, 0x3a, 0x9e, - 0xac, 0x8b, 0x0b, 0x1f, 0xe0, 0x5f, 0x85, 0xc0, 0x70, 0x0c, 0x8a, 0x59, - 0x06, 0x1a, 0x41, 0x61, 0x5a, 0xa6, 0x8e, 0x3d, 0xa9, 0xe3, 0x08, 0xd4, - 0xbf, 0x4e, 0xe0, 0x20, 0x08, 0xa5, 0x48, 0x01, 0x84, 0xd7, 0x12, 0x9c, - 0xbe, 0x54, 0xd6, 0x36, 0x76, 0x8b, 0xe1, 0x8e, 0x72, 0x7c, 0x7f, 0x1d, - 0x65, 0xe3, 0xc0, 0x2c, 0xba, 0x71, 0xff, 0xd0, 0xcc, 0xb3, 0x01, 0xd5, - 0x69, 0x2d, 0xb2, 0x52, 0x5a, 0x5b, 0x70, 0x68, 0x26, 0x98, 0x39, 0xce, - 0x91, 0x9d, 0x1a, 0xe7, 0x99, 0x33, 0x58, 0x53, 0x65, 0xb5, 0xfc, 0xbd, - 0xcf, 0x14, 0xc4, 0x65, 0xfa, 0x43, 0x41, 0x48, 0x4d, 0xaa, 0xb5, 0xde, - 0x16, 0x41, 0xae, 0xe1, 0xfd, 0x50, 0x60, 0x1e, 0xc0, 0x8f, 0xf7, 0x92, - 0xea, 0xbb, 0x79, 0xec, 0xcb, 0x18, 0x37, 0x3a, 0xc6, 0x8d, 0x86, 0x71, - 0x63, 0x61, 0x28, 0x2e, 0x8e, 0x72, 0x98, 0xde, 0x9f, 0xcf, 0x71, 0x86, - 0x7a, 0x7d, 0x33, 0x5e, 0xaf, 0x16, 0x93, 0x3c, 0x85, 0x19, 0xff, 0x0d, - 0x72, 0xea, 0xb9, 0x24, 0x9b, 0xbc, 0x2f, 0x29, 0x86, 0xbc, 0x9a, 0x8a, - 0x1f, 0xe7, 0x6b, 0x8a, 0x00, 0x0a, 0x54, 0x6e, 0xfa, 0xa0, 0x1e, 0xe8, - 0x05, 0xe6, 0x4b, 0x50, 0x4d, 0x01, 0xc6, 0x32, 0x29, 0x61, 0x7c, 0xa5, - 0xd1, 0xb7, 0x98, 0x9f, 0xc2, 0xe7, 0x99, 0x36, 0xce, 0x3a, 0xd4, 0xac, - 0x24, 0xfc, 0x61, 0x5f, 0x57, 0x52, 0x66, 0x06, 0x17, 0x0d, 0x91, 0xb5, - 0x31, 0x7c, 0x4b, 0x41, 0x20, 0x87, 0x7f, 0xda, 0x46, 0x9b, 0xcf, 0x2e, - 0x45, 0xf9, 0x54, 0x30, 0xf5, 0x26, 0xe8, 0xe1, 0x44, 0xfb, 0x8b, 0x82, - 0x9d, 0x79, 0x91, 0xac, 0xe7, 0xd7, 0xd9, 0x02, 0x9e, 0x11, 0x0c, 0x55, - 0x8f, 0xa8, 0x2b, 0x0a, 0x2e, 0xb1, 0xe9, 0x96, 0x9d, 0xaf, 0xae, 0x3e, - 0x13, 0x7e, 0x81, 0x87, 0x5a, 0x55, 0x1f, 0xb8, 0x80, 0x93, 0xd3, 0x1f, - 0x2e, 0x8b, 0x32, 0x3b, 0xfd, 0x0e, 0x95, 0x0d, 0xfd, 0xaf, 0x04, 0x94, - 0x93, 0x38, 0x18, 0xa7, 0xa1, 0xc6, 0xc5, 0x30, 0x7e, 0x34, 0xdc, 0xa3, - 0x78, 0x7f, 0xc7, 0x18, 0x6d, 0xe1, 0x68, 0x1b, 0xfb, 0x69, 0xf8, 0x9e, - 0x02, 0x43, 0xba, 0x46, 0x81, 0x63, 0x2f, 0x8f, 0xfd, 0x70, 0xd1, 0x38, - 0x97, 0xbc, 0xf1, 0x17, 0x7d, 0x73, 0x4f, 0x45, 0x93, 0x3a, 0x79, 0xc6, - 0x84, 0x45, 0x66, 0xb0, 0x03, 0x2c, 0xd5, 0x9c, 0x67, 0x3f, 0x5d, 0xce, - 0x73, 0x20, 0xb8, 0x9b, 0x14, 0x8b, 0x55, 0x59, 0x28, 0xbd, 0x33, 0x49, - 0x97, 0x22, 0x55, 0x17, 0xcd, 0x25, 0x94, 0x42, 0x41, 0xa2, 0x94, 0x45, - 0x7c, 0x97, 0xab, 0xa4, 0x8f, 0xb3, 0x0c, 0xe6, 0xe0, 0xc0, 0x67, 0x3b, - 0xe7, 0xb4, 0x6a, 0x02, 0xbb, 0xf1, 0x54, 0x59, 0x31, 0x81, 0x1d, 0x9a, - 0x89, 0x0c, 0xf2, 0x93, 0x27, 0x5b, 0xe1, 0xca, 0x55, 0xab, 0xaf, 0xd1, - 0xe6, 0xb6, 0xb7, 0x94, 0x23, 0x58, 0x24, 0x0d, 0xc4, 0x12, 0x6f, 0x40, - 0x8b, 0x39, 0x5a, 0xbd, 0x16, 0x3f, 0x8f, 0x61, 0xd1, 0x9c, 0x02, 0x0b, - 0x03, 0xad, 0xac, 0x81, 0xa0, 0xd6, 0xf7, 0xd9, 0xd0, 0x62, 0x7d, 0x3e, - 0x41, 0x43, 0xdb, 0xdb, 0xb3, 0x8b, 0x21, 0x9d, 0x1d, 0x91, 0x72, 0x90, - 0x36, 0x94, 0x77, 0x10, 0x7a, 0x0f, 0xfa, 0x1a, 0x01, 0x8c, 0x60, 0xa7, - 0x0e, 0x6a, 0x0c, 0x50, 0xc4, 0x6d, 0x1d, 0xd0, 0x0e, 0x00, 0x09, 0xc6, - 0x42, 0xdb, 0xcb, 0xe6, 0x18, 0xbf, 0xbe, 0xd4, 0xb6, 0x18, 0xc8, 0x82, - 0x68, 0x64, 0xdc, 0xb6, 0x76, 0x74, 0xcd, 0x0e, 0xc9, 0xec, 0xa1, 0xa1, - 0x40, 0x1a, 0xab, 0x8b, 0x9f, 0xf2, 0x32, 0xbd, 0x86, 0x3a, 0x46, 0x3e, - 0x6e, 0xe0, 0xf3, 0x46, 0xef, 0x62, 0xa1, 0x1f, 0x50, 0x80, 0x50, 0xd4, - 0x72, 0x9c, 0xc2, 0x26, 0xc6, 0x35, 0x01, 0xf0, 0xe6, 0x9b, 0xea, 0x00, - 0xad, 0xb2, 0x55, 0x57, 0x02, 0x9f, 0x7a, 0x9c, 0x48, 0xf8, 0x09, 0xe6, - 0x07, 0x8d, 0xe4, 0xf7, 0xdf, 0x06, 0xc9, 0xef, 0xbf, 0x1d, 0xc3, 0x03, - 0x58, 0x2f, 0xab, 0xd7, 0x8a, 0x26, 0x20, 0x82, 0x62, 0x09, 0x10, 0xe4, - 0x82, 0xf9, 0x31, 0xc3, 0x71, 0xc1, 0x29, 0xd2, 0x06, 0xae, 0xe5, 0x9c, - 0x03, 0x97, 0x4d, 0xa9, 0x36, 0x07, 0x21, 0xcb, 0x05, 0x54, 0x8b, 0xaf, - 0x7a, 0x8b, 0x31, 0x94, 0x74, 0x72, 0x0e, 0xed, 0x19, 0x6c, 0x45, 0xbc, - 0x02, 0x6a, 0x0c, 0xae, 0xe9, 0x08, 0x08, 0x8d, 0x00, 0x06, 0x3e, 0x80, - 0x01, 0x28, 0x8e, 0xdf, 0x40, 0x13, 0x93, 0x34, 0x00, 0x37, 0x1d, 0x25, - 0x43, 0xa9, 0xc9, 0x69, 0x91, 0xa6, 0x84, 0xf5, 0x36, 0x4e, 0xe2, 0x87, - 0x30, 0xe3, 0xd7, 0x75, 0x9e, 0x8f, 0xc0, 0xca, 0xe1, 0xff, 0xe9, 0xc8, - 0xd8, 0x01, 0x24, 0x84, 0xf7, 0x61, 0xe1, 0x00, 0xbe, 0x43, 0x54, 0xa6, - 0x1b, 0xfa, 0x2c, 0x3d, 0x62, 0x5c, 0xb4, 0xa8, 0x23, 0x51, 0x38, 0x54, - 0x19, 0xd8, 0xc6, 0xb1, 0xb9, 0x5e, 0x37, 0x68, 0x8e, 0x74, 0x9a, 0xe3, - 0x7a, 0x9a, 0x40, 0x4b, 0x92, 0xad, 0xa7, 0x39, 0xd6, 0x69, 0xee, 0xd4, - 0xd3, 0xdc, 0x66, 0x9a, 0xd7, 0x75, 0x34, 0x77, 0x74, 0x9a, 0xbb, 0x8d, - 0x34, 0x2b, 0x56, 0xeb, 0x68, 0xee, 0xea, 0x34, 0xf7, 0x1a, 0x65, 0xdf, - 0x8e, 0xa1, 0xb9, 0xa7, 0xd3, 0xdc, 0x8f, 0xab, 0xa3, 0x6d, 0x96, 0x9d, - 0x1a, 0x3d, 0x1b, 0xc4, 0x45, 0x65, 0x81, 0x43, 0x59, 0x36, 0x41, 0xf1, - 0xf4, 0x63, 0x06, 0xc4, 0x88, 0x16, 0x85, 0x4d, 0xb9, 0x80, 0x07, 0xf2, - 0x73, 0x4a, 0x9f, 0xc7, 0xda, 0xac, 0x53, 0x79, 0x95, 0xe7, 0x83, 0xd9, - 0x60, 0x4a, 0x54, 0x55, 0xb8, 0x13, 0x50, 0xd8, 0x48, 0x0d, 0x59, 0xd0, - 0x37, 0x1e, 0x9b, 0x6d, 0x1c, 0x9e, 0x80, 0x0d, 0x43, 0x59, 0xe2, 0xcb, - 0x4c, 0x7e, 0x81, 0x72, 0x9d, 0x8d, 0x71, 0xca, 0x2c, 0xb1, 0x80, 0x31, - 0x2e, 0xc5, 0x58, 0x77, 0xfa, 0x3e, 0x16, 0x3d, 0xd8, 0xc4, 0x7f, 0x5e, - 0xaa, 0x4d, 0x26, 0xaa, 0x51, 0x7a, 0x4c, 0xe3, 0xd5, 0x7c, 0x59, 0x45, - 0x77, 0xd9, 0x34, 0xc3, 0x3d, 0x33, 0x50, 0x38, 0xa6, 0xd4, 0x51, 0x05, - 0x73, 0xcc, 0x7a, 0x0c, 0x97, 0x4d, 0x56, 0x5f, 0x3d, 0x26, 0xc7, 0x24, - 0xba, 0x11, 0xf1, 0xe2, 0xe9, 0x57, 0xcf, 0xbf, 0x7c, 0xd9, 0x83, 0xd2, - 0xeb, 0x63, 0x3f, 0x13, 0xea, 0x09, 0x66, 0xd7, 0xc5, 0xfb, 0x51, 0xf5, - 0x51, 0xa0, 0x59, 0x29, 0x16, 0x16, 0xf8, 0x1a, 0xfa, 0x5c, 0x16, 0x48, - 0xa9, 0xea, 0xf0, 0xc6, 0x8d, 0xff, 0xdd, 0xfb, 0xf8, 0x8b, 0xcf, 0xe9, - 0x48, 0x06, 0x9e, 0x81, 0x93, 0x79, 0x76, 0x0a, 0x2b, 0x51, 0x55, 0x01, - 0xd5, 0x59, 0x04, 0xd7, 0x39, 0x14, 0x84, 0x35, 0x9b, 0x5f, 0x2e, 0x93, - 0x62, 0xbe, 0x3c, 0xc9, 0x12, 0x40, 0xc7, 0xf0, 0x54, 0x0b, 0xc2, 0xa5, - 0x98, 0xf3, 0x39, 0x86, 0xe2, 0x92, 0xbb, 0xa8, 0x59, 0x49, 0xd7, 0x49, - 0xd4, 0xba, 0x81, 0xde, 0xb1, 0x3b, 0x77, 0x30, 0x9e, 0xa0, 0x11, 0xa4, - 0xeb, 0x0e, 0x82, 0xdf, 0x81, 0x05, 0x6c, 0x22, 0x87, 0xc4, 0x4c, 0xb5, - 0x92, 0x34, 0xc2, 0x79, 0x55, 0x0c, 0x8b, 0x0b, 0xc6, 0x8a, 0x13, 0x73, - 0xdd, 0x01, 0x6d, 0x5c, 0x65, 0x95, 0xb2, 0xb6, 0x01, 0xd5, 0x9b, 0x70, - 0x3a, 0x5c, 0xa8, 0x07, 0xbd, 0x7a, 0xde, 0xdb, 0x2a, 0x4e, 0xf2, 0xf9, - 0xba, 0x7c, 0x1f, 0x1e, 0xd1, 0xcf, 0xe9, 0xea, 0xf4, 0x06, 0x7e, 0xbc, - 0xb7, 0x85, 0x7b, 0x3d, 0xf0, 0xe5, 0x0f, 0x9a, 0xd7, 0xed, 0xd8, 0xe4, - 0x8b, 0x01, 0x00 + 0x1f, 0x8b, 0x08, 0x08, 0xbc, 0x16, 0x96, 0x5d, 0x04, 0x00, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xdc, 0x5d, 0x59, 0x77, + 0x1b, 0x4b, 0x11, 0x7e, 0xe7, 0x1c, 0xfe, 0xc3, 0x44, 0x81, 0x44, 0xe2, + 0x4a, 0xb2, 0x16, 0xdb, 0x38, 0x72, 0xe4, 0x8b, 0x93, 0xeb, 0x84, 0x40, + 0x36, 0xec, 0x40, 0x80, 0x90, 0x63, 0x46, 0x52, 0x4b, 0x1a, 0x3c, 0x9a, + 0x11, 0x33, 0xa3, 0xc8, 0x8e, 0xf1, 0x3f, 0xe1, 0x1c, 0x5e, 0x78, 0xe1, + 0x0f, 0xf0, 0xc4, 0x13, 0xfc, 0x31, 0xbe, 0xaa, 0xee, 0x9e, 0x9e, 0x4d, + 0xb2, 0xe4, 0x45, 0x2c, 0xbe, 0x37, 0x92, 0xa6, 0xbb, 0xba, 0xaa, 0xba, + 0xba, 0xba, 0xba, 0xba, 0x7a, 0x99, 0xa7, 0x0f, 0xbe, 0x7b, 0xf7, 0xfc, + 0xc3, 0x6f, 0xde, 0x1f, 0x59, 0xe3, 0x68, 0xe2, 0x1e, 0x7c, 0xff, 0x7b, + 0x4f, 0xd5, 0xb7, 0x85, 0xbf, 0xa7, 0x63, 0x61, 0x0f, 0xd4, 0x6f, 0x7e, + 0x8e, 0x9c, 0xc8, 0x15, 0x07, 0x6f, 0xfa, 0xaf, 0x9d, 0xd1, 0x38, 0x72, + 0xbc, 0xd1, 0xd3, 0x2d, 0x4e, 0x49, 0x82, 0x4c, 0x44, 0x64, 0x5b, 0xfd, + 0xb1, 0x1d, 0x84, 0x22, 0xea, 0x96, 0x7e, 0xf9, 0xe1, 0x45, 0x6d, 0xaf, + 0x94, 0xcb, 0xf7, 0xec, 0x89, 0xe8, 0x96, 0xbe, 0x38, 0x62, 0x3e, 0xf5, + 0x83, 0xa8, 0x64, 0xf5, 0x7d, 0x2f, 0x12, 0x1e, 0xe0, 0xe7, 0xce, 0x20, + 0x1a, 0x77, 0x07, 0xe2, 0x8b, 0xd3, 0x17, 0x35, 0x7e, 0xa8, 0x5a, 0x8e, + 0xe7, 0x44, 0x8e, 0xed, 0xd6, 0xc2, 0xbe, 0xed, 0x8a, 0x6e, 0xb3, 0xde, + 0x58, 0x84, 0x6f, 0xe2, 0xf7, 0x1c, 0x17, 0xc5, 0x44, 0xaf, 0x66, 0x4f, + 0xa7, 0xb5, 0xbe, 0x3d, 0xb5, 0x7b, 0xae, 0x48, 0x60, 0xbf, 0x10, 0x61, + 0xaa, 0xac, 0xeb, 0x78, 0x67, 0x56, 0x20, 0xdc, 0x6e, 0x29, 0x1c, 0x83, + 0x8f, 0xfe, 0x2c, 0xb2, 0x1c, 0x00, 0x97, 0xac, 0x71, 0x20, 0x86, 0xdd, + 0xd2, 0x38, 0x8a, 0xa6, 0x61, 0x67, 0x6b, 0x2b, 0xb0, 0xe7, 0xf5, 0x91, + 0x13, 0x8d, 0x67, 0xbd, 0x59, 0x28, 0x02, 0x85, 0xad, 0xde, 0xf7, 0x27, + 0x5b, 0x2f, 0xec, 0xde, 0x6b, 0xbb, 0x57, 0x7b, 0x3d, 0x13, 0x9e, 0xf0, + 0xb6, 0x8c, 0x5c, 0xb6, 0x26, 0x76, 0x18, 0x89, 0x60, 0xeb, 0x30, 0x18, + 0xcc, 0x1c, 0xcf, 0x4f, 0xe6, 0x0c, 0xec, 0xc8, 0xde, 0x1a, 0xda, 0x5f, + 0x88, 0x50, 0x1d, 0x1f, 0x25, 0x2b, 0xba, 0x98, 0x82, 0x79, 0x67, 0x62, + 0x8f, 0xc4, 0xd6, 0x79, 0x4d, 0x32, 0xb0, 0x55, 0xcc, 0x26, 0xaa, 0x85, + 0x0a, 0x46, 0xfe, 0xac, 0x3f, 0xae, 0xdd, 0x3b, 0xa7, 0x59, 0x62, 0xf5, + 0xa9, 0x37, 0x5a, 0x24, 0xbe, 0xe8, 0xc2, 0x15, 0xe1, 0x58, 0x88, 0x28, + 0xcb, 0xd1, 0x10, 0x3c, 0x84, 0xf5, 0x91, 0xef, 0x8f, 0x5c, 0x61, 0x4f, + 0x9d, 0x90, 0x99, 0xe9, 0x87, 0xe1, 0xb7, 0x43, 0x7b, 0xe2, 0xb8, 0x17, + 0xdd, 0x37, 0x36, 0xa8, 0xa3, 0x75, 0xbf, 0x79, 0x05, 0x0a, 0xe9, 0xd6, + 0x61, 0xa4, 0x48, 0xf8, 0x91, 0x75, 0x49, 0xa9, 0x3d, 0xbb, 0x7f, 0x36, + 0x0a, 0xfc, 0x99, 0x37, 0xa8, 0x05, 0x62, 0x2a, 0xec, 0xa8, 0x63, 0x79, + 0xbe, 0xfa, 0xb9, 0x4f, 0x00, 0x53, 0x7b, 0x30, 0x00, 0xdf, 0x1d, 0xab, + 0xc1, 0x8f, 0x13, 0x3b, 0x18, 0x39, 0x9e, 0x7c, 0xba, 0x02, 0x96, 0xaa, + 0xd5, 0xb1, 0x87, 0x20, 0x86, 0xef, 0x9e, 0x18, 0xfa, 0x81, 0x60, 0xb4, + 0xf8, 0x23, 0x85, 0x39, 0x73, 0xa2, 0x5a, 0xcf, 0x3f, 0xaf, 0x85, 0xce, + 0x57, 0x46, 0xe1, 0x78, 0x63, 0xb0, 0xc5, 0x78, 0xf1, 0x57, 0x90, 0x23, + 0x91, 0x52, 0x5f, 0xd1, 0x68, 0xa8, 0xa6, 0x04, 0x25, 0x3a, 0xbb, 0xad, + 0xfa, 0xce, 0x0f, 0x39, 0xbf, 0xe7, 0x0f, 0x2e, 0xf2, 0xf9, 0xcd, 0xfa, + 0x8e, 0x98, 0x28, 0xd4, 0x90, 0xa1, 0xa8, 0x8d, 0x05, 0xc9, 0x1c, 0xe9, + 0xbb, 0xfb, 0x09, 0xd8, 0xb9, 0x4c, 0xdd, 0x6e, 0x34, 0x92, 0xa9, 0x52, + 0x6e, 0x9d, 0xd2, 0x31, 0x3a, 0xc3, 0xdc, 0xbe, 0x28, 0x55, 0x4b, 0x3f, + 0x15, 0xee, 0x17, 0x11, 0x39, 0x7d, 0xfb, 0xad, 0x98, 0x89, 0xe4, 0xb3, + 0x25, 0x13, 0xe2, 0xe7, 0xea, 0x21, 0x49, 0xba, 0x1a, 0xda, 0x5e, 0x58, + 0x0b, 0x51, 0x89, 0xa1, 0xc2, 0xdb, 0xf7, 0x5d, 0x3f, 0xe8, 0x3c, 0x6c, + 0xb5, 0x5a, 0x92, 0xe9, 0x59, 0x14, 0xf9, 0x5e, 0xd5, 0xfa, 0x24, 0x15, + 0x53, 0x3e, 0x96, 0x3e, 0xc7, 0x09, 0x81, 0x40, 0xd7, 0x4e, 0x3c, 0x87, + 0xb3, 0xde, 0xc4, 0x91, 0x09, 0x81, 0xef, 0x26, 0x4a, 0xc8, 0x9a, 0xf7, + 0x67, 0x41, 0x08, 0xf4, 0xd6, 0xd4, 0x77, 0x3c, 0x88, 0x7f, 0x3f, 0x45, + 0xc3, 0xf1, 0xa6, 0xb3, 0xa8, 0x6a, 0xf9, 0xd3, 0x88, 0x9a, 0x76, 0x5a, + 0xb5, 0x42, 0xe1, 0x8a, 0x3e, 0x52, 0x22, 0x71, 0x1e, 0xd9, 0x81, 0xb0, + 0x09, 0x87, 0xac, 0xb9, 0x11, 0xbd, 0xb5, 0xf5, 0x23, 0xeb, 0x64, 0x2a, + 0xfa, 0xce, 0xf0, 0x82, 0x73, 0x74, 0x86, 0xed, 0xf5, 0x85, 0xe5, 0x0f, + 0x91, 0x16, 0x4c, 0x2c, 0xe0, 0x99, 0x08, 0xe8, 0x9e, 0xf5, 0xa3, 0xad, + 0x04, 0x45, 0x89, 0xce, 0xff, 0x22, 0x82, 0xa1, 0xeb, 0xcf, 0x3b, 0xd6, + 0x17, 0x27, 0x74, 0x60, 0x23, 0x18, 0xe5, 0xe1, 0x60, 0x80, 0xaa, 0x85, + 0xd6, 0xef, 0x75, 0xf6, 0xef, 0x2d, 0x54, 0xd4, 0x8a, 0x7c, 0xeb, 0xf7, + 0x63, 0x67, 0x30, 0x10, 0xde, 0xef, 0x41, 0xc8, 0x7a, 0x75, 0x64, 0xed, + 0x6d, 0x3d, 0xd9, 0x6a, 0x36, 0xb6, 0x9a, 0xcd, 0x34, 0xee, 0x4e, 0xa7, + 0x36, 0xf1, 0xbf, 0xd6, 0x86, 0x7e, 0x7f, 0x16, 0xd6, 0x1c, 0xcf, 0x13, + 0x41, 0x4e, 0x86, 0x79, 0x90, 0xac, 0x54, 0xf3, 0x10, 0x39, 0x39, 0xe7, + 0x41, 0x54, 0x07, 0xf1, 0x83, 0x81, 0x08, 0x6a, 0xdc, 0x6d, 0x3a, 0x56, + 0xbe, 0x4b, 0x18, 0x46, 0x4d, 0xf9, 0x00, 0xb9, 0x9b, 0xe5, 0xd2, 0x9f, + 0x45, 0xa4, 0xf3, 0xc4, 0x92, 0x61, 0x3a, 0xc3, 0x60, 0x95, 0x07, 0xa3, + 0xb5, 0x15, 0x90, 0x08, 0x98, 0xee, 0x6c, 0x4f, 0x61, 0x19, 0x02, 0xe8, + 0x04, 0x68, 0x49, 0x14, 0xdc, 0xca, 0xcf, 0xfd, 0x20, 0x10, 0x7d, 0x34, + 0xeb, 0x58, 0xa0, 0x39, 0x6d, 0x8c, 0x18, 0x4e, 0x74, 0x41, 0x8d, 0xcc, + 0x72, 0xb3, 0xfa, 0xae, 0xd3, 0x3f, 0xa3, 0x61, 0x83, 0xcd, 0x72, 0x48, + 0x2d, 0xee, 0xbc, 0x3b, 0x49, 0x37, 0xb4, 0xd6, 0x52, 0xa6, 0xc7, 0x9a, + 0x5a, 0x8b, 0x40, 0x28, 0x24, 0xbd, 0x23, 0xa3, 0xe4, 0x49, 0x7d, 0x7a, + 0xe1, 0x04, 0xb0, 0x33, 0xe7, 0xd6, 0x76, 0xe3, 0x9b, 0xaa, 0xf5, 0x8a, + 0x74, 0xdf, 0x83, 0x3a, 0x1d, 0x9d, 0x4f, 0xd1, 0xdb, 0x20, 0x8d, 0x66, + 0xb3, 0x06, 0xb4, 0xf9, 0xde, 0x90, 0xef, 0x03, 0x39, 0xfb, 0x27, 0x3b, + 0xac, 0xc5, 0x44, 0xa7, 0x80, 0xf0, 0xa2, 0xfd, 0xac, 0x02, 0x48, 0x3e, + 0x38, 0x99, 0xa1, 0x33, 0x86, 0xab, 0x33, 0x70, 0x42, 0xaa, 0xe5, 0xa0, + 0xfa, 0xfd, 0xef, 0x7d, 0xd2, 0xbf, 0x3f, 0xcb, 0x06, 0x9a, 0xda, 0x7d, + 0x88, 0x04, 0x4d, 0x52, 0xdf, 0x96, 0xc0, 0xf5, 0x5e, 0xe4, 0x9d, 0x9e, + 0xca, 0xd1, 0x44, 0x55, 0xda, 0x76, 0x9d, 0x91, 0x57, 0x73, 0x22, 0x31, + 0x09, 0x3b, 0x56, 0x5f, 0x50, 0xe5, 0x92, 0x2c, 0x04, 0xf6, 0xc0, 0x99, + 0x85, 0x31, 0x4d, 0xc3, 0x46, 0x3a, 0x09, 0x84, 0xa7, 0xae, 0x0d, 0x52, + 0x43, 0x57, 0x9c, 0x53, 0x0a, 0xff, 0xe8, 0x58, 0x4d, 0xab, 0x61, 0xd9, + 0xb3, 0xc8, 0xe7, 0xa4, 0x3f, 0xcc, 0xc2, 0x08, 0x3d, 0xbd, 0xa6, 0xe8, + 0x1b, 0x72, 0xc6, 0xc6, 0x27, 0xc1, 0xa7, 0x7e, 0x08, 0x77, 0x01, 0x4a, + 0x4e, 0x23, 0x93, 0x1d, 0x39, 0x5f, 0x58, 0x08, 0x2c, 0x2b, 0x99, 0x41, + 0x15, 0x6b, 0x87, 0x30, 0x4b, 0x3d, 0xa7, 0x5f, 0xeb, 0x89, 0xaf, 0x8e, + 0x08, 0xca, 0x8d, 0x7a, 0x6b, 0xa7, 0x8a, 0xf4, 0x3d, 0xfa, 0xc0, 0xaf, + 0x66, 0x85, 0x0b, 0xcd, 0xc7, 0xa8, 0x61, 0x2d, 0x84, 0x40, 0x58, 0x9e, + 0xf3, 0xc0, 0x9e, 0x72, 0x3a, 0x3b, 0x26, 0x71, 0x55, 0x8c, 0x90, 0xd6, + 0x92, 0xcd, 0xee, 0xf4, 0x3c, 0x29, 0x04, 0x42, 0xc7, 0x83, 0x81, 0x94, + 0x85, 0xa1, 0xd2, 0x6a, 0x36, 0x14, 0xa4, 0x1a, 0x26, 0xac, 0x36, 0x15, + 0x35, 0xd2, 0x6a, 0x98, 0xea, 0x27, 0x47, 0x19, 0xab, 0xb9, 0xcd, 0x60, + 0xe9, 0xd1, 0xc4, 0xda, 0x69, 0x34, 0x56, 0x16, 0x2b, 0xe8, 0x58, 0x7b, + 0x0a, 0x89, 0x31, 0x25, 0x56, 0x53, 0xd3, 0x9f, 0x38, 0x5e, 0x4d, 0x71, + 0xb9, 0x47, 0x70, 0x99, 0xfe, 0x1d, 0xf7, 0x8e, 0x81, 0xe8, 0xfb, 0x81, + 0x4d, 0xc2, 0x67, 0xb5, 0xbc, 0x59, 0x8b, 0x54, 0xa5, 0x06, 0x59, 0xcd, + 0x49, 0xb8, 0xac, 0xa1, 0x61, 0xbb, 0x69, 0xac, 0x73, 0x6b, 0xd4, 0x0c, + 0xc8, 0x9c, 0xc0, 0x74, 0xc3, 0xc0, 0x27, 0x2d, 0x03, 0xf9, 0x46, 0x35, + 0xd9, 0xc9, 0x0c, 0x3f, 0xf4, 0x47, 0x16, 0xab, 0x38, 0x57, 0x65, 0x87, + 0xc5, 0xb9, 0xf1, 0x5f, 0x2e, 0xd7, 0xe8, 0x46, 0xad, 0xd6, 0x73, 0xfd, + 0xfe, 0x99, 0x54, 0x11, 0xd3, 0xea, 0x49, 0xef, 0x63, 0x3f, 0x9d, 0xc5, + 0xf4, 0xa8, 0x89, 0x75, 0x56, 0xb6, 0xc3, 0xe4, 0xdd, 0x17, 0xd5, 0x7d, + 0x64, 0x4e, 0x5c, 0xde, 0xa4, 0x24, 0x9f, 0xe2, 0x66, 0x36, 0xca, 0x13, + 0xeb, 0xdc, 0x5e, 0xe3, 0x87, 0x29, 0xdf, 0xc0, 0x7a, 0xf8, 0xe2, 0xc5, + 0x0b, 0x95, 0x92, 0xb7, 0x43, 0x0f, 0x9c, 0x09, 0xb9, 0xf1, 0xb6, 0x32, + 0x43, 0xb1, 0xa6, 0xeb, 0xb2, 0xdb, 0x7d, 0x7b, 0xb8, 0xd3, 0x30, 0x50, + 0x46, 0x28, 0xf5, 0x19, 0x8c, 0x74, 0xd0, 0xb7, 0x43, 0x76, 0xc6, 0x8c, + 0xca, 0xef, 0x4a, 0x95, 0xcf, 0x1b, 0x57, 0x0d, 0x9f, 0x16, 0xac, 0x0f, + 0xf3, 0x39, 0xd1, 0x92, 0x95, 0x4f, 0xa6, 0x97, 0xe0, 0x2f, 0x60, 0xd5, + 0x37, 0x7a, 0x9b, 0x54, 0x1e, 0xbb, 0x17, 0xfa, 0xee, 0x2c, 0x12, 0x29, + 0x99, 0x68, 0xed, 0x4d, 0xa8, 0xb8, 0x49, 0x1a, 0xeb, 0x9e, 0x64, 0xd0, + 0x49, 0x08, 0x93, 0x92, 0x73, 0x46, 0x73, 0xbd, 0x7f, 0x27, 0x96, 0xf0, + 0x57, 0x8c, 0x8e, 0x03, 0x6a, 0x96, 0xed, 0x8c, 0xc8, 0x87, 0xc3, 0xe1, + 0x42, 0x91, 0x3f, 0x14, 0x4f, 0x9a, 0x62, 0xb7, 0xbd, 0x5c, 0xf2, 0x79, + 0xa8, 0x98, 0x5d, 0xd7, 0xad, 0x61, 0x8e, 0xe6, 0x8d, 0x44, 0x47, 0x3a, + 0xb7, 0x63, 0x7b, 0xe0, 0xcf, 0x55, 0xae, 0x49, 0xa0, 0xce, 0xde, 0x86, + 0x0d, 0xd8, 0xc1, 0xbf, 0x5a, 0x13, 0x1f, 0xc1, 0xa8, 0x67, 0x97, 0x1b, + 0x55, 0xfa, 0xaf, 0xde, 0xaa, 0xa0, 0x6b, 0xb2, 0x89, 0x20, 0x03, 0x85, + 0x9f, 0xc9, 0xcc, 0xe6, 0x36, 0xe7, 0x36, 0x29, 0x77, 0x2f, 0x9f, 0xdb, + 0xaa, 0xc8, 0xf6, 0xa3, 0x09, 0xd0, 0x62, 0xab, 0xb9, 0xcc, 0x3c, 0x1a, + 0xbd, 0x97, 0x5e, 0x31, 0x26, 0x01, 0xb3, 0x40, 0xa0, 0xef, 0x45, 0x34, + 0x77, 0x01, 0x8a, 0xc7, 0xc0, 0x67, 0x3f, 0x4e, 0xf5, 0xce, 0xeb, 0x21, + 0x13, 0xd6, 0xb3, 0x05, 0xeb, 0x79, 0xad, 0xa1, 0x4c, 0x7a, 0xef, 0x56, + 0xf3, 0x46, 0x66, 0xad, 0xc8, 0x68, 0xb1, 0xda, 0x2b, 0xb5, 0x4e, 0x08, + 0x8a, 0x3f, 0x6a, 0x35, 0x9a, 0x76, 0x2d, 0x71, 0xad, 0xeb, 0x13, 0x35, + 0xa5, 0xe2, 0x49, 0x5b, 0x58, 0x9f, 0x0c, 0x50, 0x02, 0x0c, 0x52, 0x11, + 0xad, 0x5c, 0xb2, 0x35, 0x5a, 0x3b, 0xe0, 0x40, 0x7d, 0x30, 0x2f, 0x0b, + 0x11, 0x0c, 0xec, 0xe0, 0x2c, 0x5f, 0xbe, 0x51, 0xb5, 0xe8, 0x7f, 0xae, + 0x8f, 0x2a, 0x0b, 0xb7, 0xe7, 0x03, 0x1c, 0xab, 0x37, 0xfe, 0xc0, 0x76, + 0xad, 0xb2, 0xd1, 0xdb, 0x0a, 0xbb, 0x3a, 0x0f, 0x27, 0x9c, 0x7e, 0x99, + 0x36, 0xdf, 0x43, 0xe7, 0x5c, 0x0c, 0x50, 0x3c, 0xd1, 0x15, 0x9a, 0xc9, + 0x21, 0x07, 0x53, 0xd0, 0x29, 0x92, 0x76, 0xa0, 0x65, 0xec, 0x57, 0xbd, + 0xf6, 0xfb, 0x3c, 0x96, 0xc0, 0xd5, 0x27, 0x2f, 0x8e, 0xf4, 0x15, 0xd8, + 0xb9, 0x39, 0xc4, 0x30, 0xd2, 0x3d, 0x8e, 0x0b, 0x35, 0x92, 0x03, 0x69, + 0xb3, 0xa1, 0xfa, 0x9c, 0x6c, 0xb0, 0x38, 0xc1, 0xcc, 0x07, 0x62, 0x53, + 0x98, 0xea, 0x72, 0xa6, 0xca, 0x52, 0x7f, 0x2b, 0xd2, 0xbb, 0xb3, 0x5d, + 0x97, 0x80, 0xa4, 0x44, 0x24, 0x03, 0xf9, 0x52, 0x49, 0xb5, 0x87, 0x3f, + 0x25, 0x8b, 0x3e, 0x73, 0xa9, 0xdc, 0x7c, 0x4b, 0xbb, 0x5a, 0xda, 0x0d, + 0xac, 0xb3, 0x78, 0xb4, 0xa2, 0x19, 0xef, 0x52, 0x69, 0x85, 0x51, 0xbc, + 0x42, 0x8b, 0x30, 0x14, 0xf4, 0x1f, 0x72, 0xf3, 0x86, 0xdd, 0x58, 0x23, + 0x12, 0x62, 0x56, 0xd3, 0xb7, 0x0b, 0xfd, 0x84, 0xdd, 0x46, 0xca, 0x41, + 0xe7, 0xae, 0x0c, 0x4b, 0xe9, 0x0c, 0xac, 0x87, 0x7b, 0x7b, 0x7b, 0x9c, + 0x65, 0x06, 0x0b, 0xd9, 0xf8, 0xa8, 0x01, 0xf1, 0x6e, 0x3b, 0xca, 0xd9, + 0x37, 0xee, 0x5c, 0x93, 0x65, 0xbd, 0x94, 0x37, 0xd5, 0xe3, 0xa4, 0x20, + 0xd0, 0xe1, 0xfd, 0x19, 0x24, 0xb0, 0xdc, 0x49, 0x6c, 0x32, 0x92, 0x38, + 0xa9, 0x46, 0xfe, 0x59, 0xc2, 0x4f, 0xcb, 0x19, 0x6f, 0x83, 0xb9, 0x1e, + 0xf8, 0x73, 0xc3, 0x61, 0x6d, 0xe0, 0x60, 0x4a, 0x20, 0x95, 0x11, 0x19, + 0x39, 0xc8, 0x7a, 0x20, 0xa0, 0x20, 0xa1, 0x58, 0x58, 0xa2, 0xa6, 0x00, + 0xd2, 0x25, 0xd1, 0x30, 0xb3, 0x89, 0x57, 0x5c, 0x48, 0xe6, 0x15, 0xc1, + 0x6b, 0x62, 0xcb, 0xca, 0x2d, 0xa5, 0x77, 0x60, 0xd5, 0xa9, 0x94, 0x2c, + 0x3f, 0xb1, 0xcf, 0x6b, 0x09, 0xf5, 0x4f, 0x17, 0x20, 0x39, 0x01, 0x2c, + 0x2d, 0x3e, 0xfa, 0x54, 0x60, 0xf0, 0x63, 0xbe, 0x70, 0x4f, 0xab, 0xb5, + 0x09, 0x2c, 0x33, 0x32, 0x40, 0x1f, 0xda, 0xea, 0x5f, 0xad, 0x95, 0x1e, + 0x1b, 0x1a, 0x72, 0x70, 0x50, 0xb9, 0xdb, 0xf8, 0xd7, 0xc8, 0x02, 0x34, + 0xb7, 0x25, 0x04, 0xeb, 0xd5, 0x5e, 0x21, 0x44, 0xab, 0x92, 0xf0, 0x2c, + 0x16, 0xe9, 0xe2, 0xee, 0xee, 0x6e, 0x8e, 0xdb, 0xdd, 0x62, 0x6e, 0xcd, + 0x48, 0xb6, 0x80, 0x5b, 0x35, 0x98, 0x5d, 0xcb, 0x6e, 0x73, 0x35, 0x7e, + 0xd3, 0x4c, 0x3d, 0x29, 0x66, 0x6a, 0x47, 0x91, 0xad, 0xb5, 0xb3, 0xf8, + 0x7e, 0xac, 0x28, 0x3e, 0x21, 0x8a, 0x24, 0xe0, 0x1c, 0xdb, 0x3b, 0x09, + 0x21, 0x37, 0x09, 0x49, 0xae, 0x19, 0xda, 0x0b, 0x45, 0xd8, 0x5e, 0x2e, + 0xc2, 0x66, 0xab, 0x98, 0xdd, 0x1f, 0xab, 0xd6, 0xaa, 0x6d, 0x17, 0xca, + 0x30, 0x66, 0x95, 0xe0, 0x5a, 0x0b, 0x85, 0xb8, 0x43, 0xb9, 0x94, 0xbd, + 0xbd, 0xa6, 0x10, 0x9b, 0x3b, 0xc5, 0x6c, 0xed, 0x29, 0x39, 0xd5, 0x76, + 0x16, 0xb2, 0x25, 0x69, 0x2e, 0x65, 0x8b, 0x45, 0x48, 0xa8, 0x76, 0x56, + 0x62, 0x8b, 0x3a, 0x4d, 0x95, 0x6c, 0xde, 0xd8, 0x71, 0x07, 0xec, 0x97, + 0xa0, 0xef, 0x51, 0xb0, 0x32, 0x6f, 0xa2, 0x16, 0x76, 0xc5, 0x87, 0x91, + 0xef, 0x63, 0x18, 0x91, 0xe6, 0xd2, 0xf8, 0x0e, 0x66, 0x9e, 0x94, 0xaf, + 0x2b, 0xcb, 0x6d, 0xb1, 0x1a, 0xab, 0xdc, 0x9d, 0xeb, 0xb5, 0xb8, 0xb1, + 0x40, 0x8b, 0x97, 0xcd, 0xae, 0xd2, 0x15, 0x48, 0x7b, 0x92, 0xf1, 0x78, + 0x4d, 0xc3, 0x70, 0x35, 0x7e, 0x22, 0xe7, 0x5b, 0x8b, 0x4c, 0xd5, 0x76, + 0xc5, 0x60, 0x42, 0xde, 0xf2, 0x1b, 0xaf, 0x9a, 0x47, 0x8b, 0x2c, 0x56, + 0x5e, 0x8c, 0x00, 0xce, 0x8c, 0x27, 0xd7, 0x58, 0x36, 0x0f, 0x76, 0x45, + 0x04, 0x7a, 0x3c, 0xc9, 0x97, 0x98, 0xeb, 0x8d, 0x96, 0x98, 0x2c, 0x9d, + 0xfe, 0x1b, 0x77, 0x41, 0xc6, 0x05, 0xcd, 0x4c, 0xc5, 0xe4, 0x08, 0xd7, + 0x75, 0xa6, 0xa1, 0x13, 0x16, 0xb2, 0xd8, 0xf1, 0xfc, 0xa8, 0xdc, 0x19, + 0x3a, 0x41, 0x18, 0xd5, 0x58, 0x7b, 0x2a, 0xd6, 0xa5, 0x19, 0x1b, 0x59, + 0x7e, 0x92, 0x6d, 0xa5, 0x24, 0x43, 0xdf, 0x07, 0x8f, 0x05, 0xf1, 0xea, + 0xbc, 0x67, 0x60, 0xa6, 0x7d, 0x45, 0x99, 0xc5, 0xb2, 0xbe, 0xeb, 0x19, + 0x69, 0xac, 0x3b, 0x29, 0xd5, 0x31, 0xad, 0xc7, 0xc6, 0xca, 0x74, 0xa7, + 0x85, 0xf3, 0xd8, 0xc4, 0x94, 0xd1, 0x54, 0x4d, 0xe7, 0xa9, 0xae, 0x95, + 0x03, 0x59, 0x98, 0x6d, 0xe6, 0x73, 0xb9, 0x38, 0x8a, 0x21, 0x9e, 0xec, + 0x81, 0xf5, 0x56, 0xc6, 0x79, 0xaf, 0x6f, 0xf3, 0xbc, 0xa7, 0xda, 0xac, + 0xa8, 0x52, 0xab, 0x43, 0xb3, 0x77, 0xf4, 0x93, 0x89, 0x18, 0x38, 0xb6, + 0xe5, 0x7b, 0xee, 0x85, 0x15, 0xf6, 0x03, 0x21, 0x3c, 0xcb, 0xf6, 0x06, + 0x56, 0x39, 0xe1, 0xa6, 0x3c, 0xa1, 0x99, 0xaf, 0xd2, 0x86, 0xac, 0x33, + 0x95, 0x32, 0x21, 0x4f, 0x1a, 0x5a, 0xab, 0xaf, 0x80, 0x7d, 0x25, 0xdc, + 0xcd, 0xd6, 0xee, 0xf6, 0x6a, 0xc8, 0x9b, 0xcd, 0xbd, 0x9d, 0xb5, 0xb1, + 0x3f, 0x69, 0xac, 0x8a, 0xfd, 0xc7, 0xab, 0x62, 0x4f, 0x54, 0x77, 0xe7, + 0x49, 0x31, 0xf2, 0xbc, 0x62, 0xe5, 0x11, 0xc3, 0x53, 0xcf, 0xb1, 0xdb, + 0xd0, 0xc8, 0x48, 0x5f, 0xea, 0xe7, 0x61, 0x53, 0x3e, 0x2a, 0x57, 0xa8, + 0x67, 0xa3, 0xeb, 0xc2, 0xb3, 0xad, 0xb7, 0x53, 0x7f, 0xad, 0x1f, 0xee, + 0x27, 0x80, 0x46, 0x01, 0x9b, 0xe4, 0xfd, 0x4c, 0x05, 0x17, 0x16, 0xbb, + 0x4a, 0xd2, 0x6b, 0xe5, 0xe9, 0x11, 0xfb, 0xf5, 0xdd, 0xd4, 0xdf, 0xf6, + 0x6a, 0x04, 0xf3, 0xe5, 0x0a, 0x28, 0xb6, 0x8b, 0x28, 0xb6, 0x76, 0x56, + 0xa3, 0x00, 0xb8, 0x3c, 0xc6, 0xed, 0x22, 0x8c, 0xed, 0x76, 0xa6, 0xf6, + 0xab, 0x11, 0xc8, 0x17, 0xcb, 0xd3, 0xdb, 0x29, 0xa2, 0xb7, 0xdd, 0x4c, + 0xd7, 0xfd, 0xc7, 0xab, 0xd1, 0xcb, 0x17, 0xcb, 0xd3, 0xdb, 0x2d, 0xa2, + 0xb7, 0xd3, 0x58, 0x8d, 0x00, 0xe0, 0xf2, 0x18, 0x7f, 0x5c, 0x88, 0x31, + 0xab, 0x2f, 0xbb, 0x2b, 0x52, 0xc8, 0x97, 0xcb, 0x53, 0xdc, 0x2b, 0xa2, + 0xb8, 0x9b, 0xd1, 0x97, 0x15, 0x09, 0xe6, 0x8b, 0xe5, 0xe9, 0x3d, 0x29, + 0xa2, 0xf7, 0xe3, 0x15, 0xb5, 0xec, 0xc7, 0x45, 0x5a, 0xd6, 0x6c, 0x14, + 0x76, 0xcd, 0x8c, 0xbe, 0xac, 0xd8, 0x53, 0x72, 0xc5, 0x8a, 0x08, 0x16, + 0xda, 0x82, 0x27, 0xcd, 0x1b, 0xc9, 0xec, 0x49, 0xf3, 0x7a, 0x99, 0x35, + 0x8b, 0x8d, 0x41, 0x63, 0x45, 0x4d, 0x23, 0xc0, 0xd5, 0x8c, 0xde, 0x2e, + 0x0d, 0x1a, 0x29, 0xc3, 0x17, 0x4e, 0x36, 0x6b, 0xf8, 0xc2, 0xc9, 0xa6, + 0x0d, 0x5f, 0x38, 0xb9, 0x6b, 0xc3, 0x17, 0x4e, 0x36, 0x6b, 0xf8, 0xc2, + 0xc9, 0x66, 0x0d, 0x5f, 0x38, 0xb9, 0x6b, 0xc3, 0x17, 0x4e, 0x36, 0x6d, + 0xf8, 0xc2, 0xc9, 0x66, 0x0d, 0x5f, 0x38, 0xb9, 0x6b, 0xc3, 0x17, 0x4e, + 0x36, 0x6c, 0xf8, 0xc2, 0xc9, 0x86, 0x0d, 0x5f, 0x38, 0xd9, 0x98, 0xe1, + 0xd3, 0x6e, 0xb5, 0x21, 0x3e, 0x19, 0x6c, 0xd6, 0xf0, 0x4d, 0x06, 0x9b, + 0x36, 0x7c, 0x93, 0xc1, 0x5d, 0x1b, 0xbe, 0xc9, 0x60, 0xb3, 0x86, 0x6f, + 0x32, 0xd8, 0xac, 0xe1, 0x9b, 0x0c, 0xee, 0xda, 0xf0, 0x4d, 0x06, 0x9b, + 0x36, 0x7c, 0x93, 0xc1, 0x66, 0x0d, 0xdf, 0x64, 0x70, 0xd7, 0x86, 0x6f, + 0x32, 0xd8, 0xb0, 0xe1, 0x9b, 0x0c, 0x36, 0x6c, 0xf8, 0x26, 0x83, 0x8d, + 0x19, 0xbe, 0x78, 0xce, 0x6f, 0xa8, 0xbb, 0xa3, 0xcd, 0x5a, 0x3e, 0x77, + 0xb4, 0x69, 0xcb, 0xe7, 0x8e, 0xee, 0xda, 0xf2, 0xb9, 0xa3, 0xcd, 0x5a, + 0x3e, 0x77, 0xb4, 0x59, 0xcb, 0xe7, 0x8e, 0xee, 0xda, 0xf2, 0xb9, 0xa3, + 0x4d, 0x5b, 0x3e, 0x77, 0xb4, 0x59, 0xcb, 0xe7, 0x8e, 0xee, 0xda, 0xf2, + 0xb9, 0xa3, 0x0d, 0x5b, 0x3e, 0x77, 0xb4, 0x61, 0xcb, 0xe7, 0x8e, 0x36, + 0x67, 0xf9, 0xe2, 0x78, 0xa4, 0x99, 0x69, 0xbb, 0x9b, 0xb5, 0x7c, 0xe7, + 0xee, 0xa6, 0x2d, 0xdf, 0xb9, 0x7b, 0xd7, 0x96, 0xef, 0xdc, 0xdd, 0xac, + 0xe5, 0x3b, 0x77, 0x37, 0x6b, 0xf9, 0xce, 0xdd, 0xbb, 0xb6, 0x7c, 0xe7, + 0xee, 0xa6, 0x2d, 0xdf, 0xb9, 0xbb, 0x59, 0xcb, 0x77, 0xee, 0xde, 0xb5, + 0xe5, 0x3b, 0x77, 0x37, 0x6c, 0xf9, 0xce, 0xdd, 0x0d, 0x5b, 0xbe, 0x73, + 0xf7, 0x5e, 0x2c, 0xdf, 0xb2, 0x35, 0x93, 0x9d, 0x27, 0x89, 0x35, 0x13, + 0xb9, 0x52, 0x59, 0x3b, 0x0f, 0x6b, 0x54, 0x24, 0xb3, 0x0b, 0x55, 0xae, + 0x36, 0x27, 0x57, 0xb8, 0x0d, 0xa1, 0x3a, 0xad, 0x7f, 0xca, 0xa5, 0x96, + 0x14, 0x8b, 0xcd, 0xdc, 0x82, 0xb8, 0xa2, 0x51, 0x88, 0x5b, 0x42, 0xf0, + 0xe6, 0x2d, 0x9b, 0x96, 0x6a, 0x70, 0x7e, 0x43, 0x9e, 0x09, 0xf8, 0xd1, + 0x16, 0xad, 0xa0, 0x3b, 0x41, 0x1f, 0x47, 0x8d, 0xe8, 0xd4, 0x58, 0x74, + 0x7a, 0x2a, 0x9f, 0xd4, 0xd2, 0xb0, 0xe7, 0x4c, 0xd4, 0xc6, 0xe1, 0x24, + 0x50, 0x6d, 0xe8, 0xc0, 0xe4, 0x63, 0xc5, 0x4d, 0x6e, 0x84, 0x91, 0xfb, + 0xed, 0xe9, 0x38, 0x86, 0x45, 0x85, 0x12, 0xfb, 0x45, 0x03, 0x3f, 0xc2, + 0x66, 0xb6, 0x72, 0xed, 0x49, 0x63, 0x20, 0x46, 0x72, 0xf7, 0x55, 0xab, + 0x6a, 0xb5, 0x01, 0x99, 0x02, 0xac, 0xf9, 0x58, 0xa5, 0x76, 0xe2, 0xb5, + 0x52, 0x86, 0xdb, 0x96, 0xdb, 0xb2, 0x72, 0xec, 0x39, 0xde, 0xd0, 0x5f, + 0xc6, 0x9c, 0x3e, 0x79, 0x40, 0xec, 0x01, 0xf7, 0xdc, 0x0e, 0x06, 0xe1, + 0x7e, 0x7a, 0x63, 0xfd, 0x7e, 0x9a, 0x4b, 0xf9, 0xd3, 0x05, 0xa3, 0xbf, + 0x29, 0x63, 0xcf, 0x86, 0x98, 0xa8, 0x15, 0xc3, 0x9f, 0x9c, 0x89, 0x8b, + 0x61, 0x80, 0xa3, 0x6d, 0x61, 0xbe, 0xf2, 0x6a, 0xc3, 0x00, 0x38, 0xc1, + 0xc1, 0x85, 0xc0, 0x3f, 0x13, 0xd8, 0xa3, 0x17, 0x22, 0x37, 0xb0, 0x89, + 0x00, 0x69, 0xcb, 0xbe, 0x75, 0x95, 0xc3, 0x92, 0xe7, 0x52, 0xe3, 0x91, + 0xdf, 0x31, 0x93, 0x7a, 0x0b, 0xde, 0x42, 0x36, 0x2b, 0x09, 0x15, 0xa1, + 0xe3, 0x38, 0x1e, 0x36, 0xa4, 0xd1, 0x3e, 0x86, 0x2d, 0xeb, 0x83, 0x8f, + 0x13, 0x65, 0x72, 0xbb, 0x5f, 0xc8, 0xa9, 0x8a, 0x08, 0x9f, 0xb5, 0x91, + 0xc7, 0x2d, 0x52, 0x0b, 0xe7, 0x89, 0x31, 0xbb, 0xc5, 0xdb, 0xd3, 0x72, + 0x2b, 0xe1, 0xd8, 0x8d, 0x82, 0x05, 0xc3, 0x45, 0xfb, 0xde, 0xd0, 0xbf, + 0x91, 0x95, 0xdf, 0x36, 0x6b, 0x76, 0xce, 0x2d, 0xdb, 0x85, 0xdf, 0x62, + 0xc4, 0xd9, 0x25, 0xc4, 0x15, 0x37, 0x28, 0x12, 0x7b, 0x3c, 0x06, 0x98, + 0x1d, 0x87, 0xed, 0x82, 0x0d, 0x76, 0xcd, 0x1f, 0xab, 0x95, 0x7c, 0x23, + 0x91, 0x3a, 0x0e, 0x1c, 0xce, 0xdb, 0x8d, 0x46, 0x23, 0x27, 0x1a, 0xf9, + 0x3b, 0xb3, 0x63, 0x3d, 0xa1, 0x69, 0x43, 0x7b, 0x20, 0x1c, 0x8f, 0x76, + 0x8f, 0x86, 0x55, 0x7e, 0xc0, 0x4e, 0x2e, 0x7e, 0xb2, 0x5a, 0xf8, 0xe0, + 0x52, 0xeb, 0x40, 0xe7, 0x98, 0xda, 0xb9, 0x5b, 0xa6, 0xb6, 0xd7, 0x62, + 0x6a, 0x7b, 0x01, 0x53, 0xcd, 0x3b, 0xe6, 0xaa, 0xb9, 0x1e, 0x5b, 0x0c, + 0xae, 0xfa, 0xa4, 0xa6, 0x13, 0xf7, 0x2a, 0x55, 0x4e, 0x19, 0xc8, 0x80, + 0x36, 0xa2, 0xab, 0xbd, 0xa7, 0xc9, 0x1e, 0x7f, 0xa5, 0xbb, 0x99, 0xd1, + 0x92, 0x64, 0x5f, 0x53, 0x5d, 0xf5, 0x5e, 0x90, 0xe6, 0x38, 0xd6, 0x95, + 0x33, 0xd8, 0x17, 0x60, 0x30, 0x04, 0xf2, 0xc4, 0x35, 0xf6, 0x7b, 0xc1, + 0x0a, 0x8b, 0x72, 0x4c, 0x9d, 0x5c, 0x0c, 0xac, 0x70, 0xee, 0x44, 0xfd, + 0xb1, 0x55, 0xc3, 0xfe, 0xef, 0x30, 0xc2, 0x71, 0x64, 0xda, 0xf5, 0xdb, + 0x1f, 0x8b, 0xfe, 0x99, 0xde, 0xf6, 0x5b, 0x57, 0x10, 0x97, 0x8b, 0xb6, + 0x2d, 0xe5, 0x37, 0x91, 0xcb, 0xa3, 0x18, 0xe9, 0x7e, 0x9f, 0xb6, 0x3c, + 0xe6, 0x59, 0x7b, 0x45, 0xb9, 0x43, 0x38, 0x6a, 0xff, 0x51, 0xcc, 0x80, + 0x3c, 0xbd, 0x65, 0x65, 0xce, 0x50, 0x25, 0x71, 0x34, 0x52, 0x08, 0x1a, + 0xba, 0x34, 0x36, 0xe1, 0xc9, 0xf1, 0x75, 0xd1, 0xb1, 0x84, 0xfc, 0x3e, + 0x6f, 0xb3, 0xbf, 0x39, 0xbb, 0xed, 0x39, 0x30, 0xc8, 0xcd, 0x51, 0x88, + 0xc6, 0x22, 0xdb, 0xd9, 0xeb, 0xf5, 0x90, 0xb5, 0x60, 0xfb, 0xcb, 0xb6, + 0xec, 0x21, 0xf9, 0x34, 0xc3, 0xb5, 0x3a, 0x49, 0xbb, 0x94, 0xf9, 0x78, + 0xdf, 0x7c, 0xa9, 0x94, 0xaa, 0x7f, 0x6b, 0x37, 0x29, 0x61, 0xf5, 0x6c, + 0xaa, 0x23, 0xc5, 0x6b, 0xea, 0xb0, 0xbd, 0x68, 0x04, 0x90, 0xdb, 0xb4, + 0x6e, 0x56, 0x0d, 0x6e, 0xb2, 0x0e, 0xab, 0x13, 0x54, 0xed, 0x1b, 0x2b, + 0x6e, 0x8c, 0x62, 0x4a, 0xc9, 0x42, 0x7c, 0xb0, 0xd1, 0x14, 0x29, 0xd8, + 0x97, 0x28, 0xcf, 0x3f, 0x2c, 0x23, 0x64, 0xe4, 0x97, 0xe6, 0x3e, 0x3f, + 0xe2, 0xfe, 0xba, 0x4c, 0xe2, 0xa9, 0xc8, 0x5a, 0x4e, 0xc2, 0x6b, 0x61, + 0x96, 0xe7, 0x9b, 0x06, 0xac, 0x73, 0xfd, 0x40, 0x3f, 0x3b, 0x32, 0x2a, + 0x05, 0xcf, 0xc3, 0xa6, 0x58, 0xce, 0x1f, 0x6a, 0x51, 0x25, 0x20, 0x1b, + 0xb4, 0x9a, 0x3a, 0x0a, 0xb5, 0xa4, 0x6b, 0xa6, 0x0f, 0x35, 0x5b, 0x7c, + 0x40, 0x39, 0xb5, 0x4f, 0xb5, 0x65, 0xf6, 0xa9, 0xda, 0xb6, 0xbd, 0xec, + 0x1c, 0x9d, 0xd9, 0xe3, 0x9e, 0x12, 0xba, 0x3a, 0x23, 0xca, 0x2d, 0xa8, + 0x8f, 0x88, 0x2e, 0x45, 0xbf, 0x90, 0x40, 0xec, 0x95, 0x18, 0x05, 0xd5, + 0xc6, 0x8a, 0xb1, 0x6b, 0x2b, 0x23, 0x7d, 0x1f, 0x4e, 0xaa, 0xa9, 0xa4, + 0xcb, 0x14, 0x83, 0xdb, 0x6c, 0x4b, 0xf2, 0xea, 0x42, 0xdb, 0x58, 0x99, + 0x8f, 0x05, 0x35, 0x6d, 0xaa, 0x1d, 0x81, 0x59, 0xec, 0x1d, 0xd5, 0x26, + 0x97, 0xa9, 0xee, 0xf6, 0xf8, 0x0d, 0x76, 0x23, 0x5a, 0xb2, 0xe9, 0x42, + 0x32, 0xb7, 0x72, 0x9b, 0xa6, 0xf5, 0x9c, 0x79, 0xc5, 0xff, 0xec, 0x13, + 0x59, 0xde, 0x6c, 0xd2, 0x23, 0x80, 0x9e, 0x88, 0xe6, 0x34, 0x8b, 0x68, + 0x00, 0x94, 0xce, 0x83, 0xc0, 0x9c, 0xd1, 0xe9, 0x0a, 0x95, 0x0f, 0x1f, + 0x48, 0xb8, 0x83, 0xf0, 0x71, 0xd6, 0xd3, 0x4a, 0x3a, 0x5b, 0xa9, 0xaa, + 0x6c, 0x53, 0x55, 0xda, 0xfc, 0x17, 0x4b, 0xc9, 0xb5, 0x7b, 0xc2, 0x95, + 0x07, 0xb2, 0xf9, 0x67, 0x5a, 0x2a, 0x7b, 0x69, 0x73, 0x10, 0xbb, 0x82, + 0x79, 0x3f, 0x2e, 0xc5, 0xc4, 0xe1, 0xe1, 0x61, 0xc2, 0x6e, 0x73, 0x8b, + 0x16, 0x6a, 0x49, 0x5e, 0xe4, 0x34, 0xa2, 0x88, 0x88, 0xb9, 0x6d, 0x19, + 0x6e, 0x73, 0xaa, 0x23, 0x05, 0x80, 0xd3, 0xc6, 0x92, 0xe7, 0x85, 0xc3, + 0x89, 0xae, 0xa6, 0x96, 0x18, 0xa3, 0x90, 0x23, 0x94, 0x6e, 0x84, 0x3c, + 0xd6, 0xcb, 0x15, 0x6a, 0xd8, 0x6c, 0x36, 0xf3, 0x23, 0x91, 0x91, 0x1c, + 0xd7, 0x2d, 0x3e, 0x89, 0x95, 0xb3, 0x92, 0xb9, 0x63, 0xc2, 0x66, 0x84, + 0xe3, 0x2d, 0xa6, 0xd4, 0x56, 0xe9, 0xa3, 0x9b, 0x72, 0xc6, 0xb6, 0xa4, + 0x17, 0x2e, 0xee, 0x88, 0x59, 0x4b, 0xab, 0x40, 0xac, 0x06, 0xed, 0x8e, + 0x14, 0x76, 0x98, 0xdb, 0xd1, 0x6c, 0xa4, 0xdf, 0xe0, 0x3f, 0x12, 0xe2, + 0x52, 0x81, 0x49, 0xbb, 0x7b, 0xb9, 0x80, 0xb9, 0x9d, 0xc6, 0x5e, 0x7f, + 0xd8, 0xcf, 0x74, 0xcb, 0x80, 0xd5, 0x5e, 0xa1, 0x5c, 0xd8, 0x20, 0x0c, + 0xf5, 0xf9, 0xd2, 0x8c, 0x50, 0xb1, 0x46, 0xe6, 0xbb, 0xe1, 0x42, 0x79, + 0x25, 0xe6, 0xea, 0x8b, 0x6b, 0xba, 0xcd, 0x7f, 0x55, 0xa9, 0x7e, 0xd9, + 0x64, 0xe2, 0x7d, 0x19, 0x83, 0xd5, 0x7c, 0x52, 0xa7, 0xa3, 0x47, 0x0e, + 0x59, 0xaa, 0x16, 0x8d, 0x21, 0x2b, 0xae, 0x49, 0x7c, 0x06, 0x3e, 0xc9, + 0xa4, 0x86, 0x2e, 0xc8, 0xbc, 0xb2, 0x58, 0x6e, 0x6a, 0x48, 0x63, 0x3c, + 0x29, 0x81, 0xad, 0x45, 0x3c, 0x1e, 0xe8, 0x1b, 0x99, 0x81, 0x7e, 0xbb, + 0x48, 0xae, 0x04, 0xf7, 0xc3, 0x22, 0x6f, 0x27, 0xa7, 0xcf, 0x0f, 0xfb, + 0xfc, 0xb7, 0x48, 0x41, 0x05, 0xff, 0x15, 0x8a, 0x7f, 0x7b, 0x45, 0xf1, + 0x3f, 0xec, 0xb1, 0x1b, 0xa5, 0xba, 0xfc, 0x27, 0xd8, 0xd6, 0xae, 0x4c, + 0x31, 0xe3, 0x47, 0xde, 0x97, 0x8a, 0xb5, 0xf7, 0x61, 0x38, 0x15, 0x18, + 0xe4, 0x93, 0xa5, 0x39, 0x65, 0xa5, 0xc2, 0x5b, 0x3f, 0x52, 0x06, 0xfa, + 0x23, 0x6e, 0x53, 0x71, 0x13, 0x43, 0xc9, 0xe9, 0x9c, 0x12, 0x4e, 0xfb, + 0xb6, 0xf7, 0xc5, 0x0e, 0x35, 0xa6, 0x45, 0xa7, 0x91, 0x75, 0xf8, 0x93, + 0x37, 0x09, 0x9b, 0x50, 0x52, 0x3e, 0xd9, 0x98, 0x32, 0xe3, 0x12, 0x5f, + 0x7f, 0x50, 0x3a, 0xf6, 0x54, 0xec, 0x69, 0x6d, 0x0c, 0xb9, 0xf0, 0xf9, + 0xc2, 0x5a, 0xf1, 0xd1, 0x40, 0xf2, 0x37, 0x16, 0x9f, 0xad, 0x56, 0xea, + 0x9e, 0xac, 0xa1, 0x2b, 0x46, 0x42, 0xbb, 0x24, 0x46, 0x67, 0xda, 0x3f, + 0xcc, 0x9c, 0xbe, 0xdd, 0xd6, 0xe6, 0x26, 0x3f, 0x14, 0x2c, 0xf3, 0xf7, + 0x17, 0xec, 0xde, 0xcf, 0x69, 0x5d, 0x6a, 0xc4, 0x57, 0x27, 0x10, 0xeb, + 0x3b, 0x81, 0x98, 0x14, 0xb9, 0x02, 0x0d, 0x93, 0x93, 0x9c, 0x51, 0xd4, + 0xf7, 0x74, 0xea, 0x42, 0x1b, 0x6f, 0x34, 0x78, 0x99, 0xef, 0x71, 0x95, + 0xb8, 0x15, 0x67, 0x4b, 0x5f, 0x8b, 0x23, 0x9f, 0x12, 0x37, 0x34, 0x3d, + 0xa5, 0xdb, 0x66, 0x0e, 0x12, 0xa0, 0x03, 0xe7, 0x8b, 0xe5, 0x0c, 0x70, + 0x81, 0x06, 0x02, 0x76, 0x10, 0xfc, 0x29, 0x42, 0x51, 0x1e, 0x38, 0x2b, + 0xc9, 0xab, 0x2e, 0xba, 0x25, 0x2d, 0x25, 0x6a, 0x88, 0x92, 0x2a, 0x18, + 0x17, 0x1e, 0x37, 0x0f, 0x14, 0x3c, 0x88, 0x34, 0xb3, 0xb9, 0xd3, 0x83, + 0x37, 0x4e, 0x3f, 0xf0, 0x43, 0x7f, 0x18, 0xbd, 0x3a, 0x7a, 0xba, 0x35, + 0x4d, 0x92, 0xdd, 0x02, 0xdd, 0x22, 0x36, 0xf8, 0x74, 0xa3, 0xa6, 0x93, + 0xca, 0xed, 0xbb, 0x76, 0x18, 0x32, 0x80, 0x39, 0xfe, 0xa8, 0x01, 0x53, + 0xc0, 0xe1, 0x97, 0x91, 0x45, 0xb7, 0x46, 0xa1, 0x63, 0x77, 0x4b, 0xe8, + 0xba, 0xb4, 0xa0, 0xb0, 0xd7, 0x6e, 0x3c, 0xd9, 0xdb, 0xdb, 0x6d, 0x25, + 0x7f, 0x97, 0xa4, 0xde, 0x74, 0x4b, 0xad, 0x46, 0xa3, 0xa4, 0x54, 0x46, + 0x3d, 0x9c, 0x4f, 0x5c, 0x2f, 0x94, 0xf7, 0x13, 0xe1, 0x7a, 0xa2, 0xf9, + 0x7c, 0x5e, 0x9f, 0xb7, 0xeb, 0x7e, 0x30, 0xda, 0x42, 0x6e, 0x63, 0x0b, + 0x04, 0x34, 0xe1, 0x1c, 0x71, 0x19, 0x3d, 0x53, 0xe1, 0xb6, 0x6e, 0xe9, + 0xa1, 0x18, 0xd2, 0x7f, 0x25, 0x1d, 0x7f, 0x53, 0x14, 0x41, 0x9b, 0xe2, + 0x73, 0xdd, 0x12, 0x4b, 0xd5, 0xea, 0x83, 0x51, 0x2c, 0xdc, 0x3c, 0x69, + 0xee, 0x6c, 0x3f, 0xd9, 0x6e, 0x37, 0x91, 0x70, 0x91, 0x49, 0x08, 0xf0, + 0xbc, 0x93, 0x78, 0xde, 0x5a, 0x4e, 0x9f, 0x45, 0x49, 0x87, 0xe0, 0x21, + 0x23, 0x7b, 0x84, 0xb0, 0x1f, 0x91, 0xd1, 0x12, 0x2c, 0x0a, 0xa4, 0x96, + 0x0c, 0xc7, 0x8d, 0x86, 0xdd, 0xef, 0x37, 0xf3, 0x1c, 0x67, 0x43, 0x88, + 0xc4, 0x62, 0xa3, 0x8a, 0x51, 0x2c, 0xce, 0xa1, 0x5e, 0x84, 0xfb, 0xb4, + 0xba, 0x25, 0x36, 0x5b, 0xf7, 0x56, 0xc5, 0x91, 0xae, 0x48, 0x3e, 0xe4, + 0xaa, 0x9b, 0xa5, 0xb0, 0x1c, 0xf5, 0xae, 0xb4, 0x60, 0xc0, 0x57, 0x96, + 0xad, 0x0b, 0xe6, 0x62, 0xa7, 0x24, 0xcf, 0xc0, 0x4c, 0x00, 0x46, 0x41, + 0x78, 0x41, 0x55, 0x03, 0x41, 0x3c, 0x06, 0x50, 0x4f, 0xd5, 0x51, 0xbd, + 0xfe, 0xd8, 0x07, 0xd7, 0xf2, 0xf2, 0x88, 0x52, 0x1c, 0xcc, 0x03, 0x20, + 0x6e, 0x33, 0x6b, 0x36, 0x7e, 0xf8, 0x74, 0x8b, 0xe0, 0x56, 0x62, 0x29, + 0xa5, 0xd5, 0x85, 0x5c, 0xb5, 0x1a, 0xb7, 0xe6, 0xaa, 0x55, 0x3a, 0x58, + 0xca, 0xd2, 0xd3, 0xad, 0x51, 0x51, 0x7f, 0x22, 0x7d, 0x37, 0xe9, 0xa6, + 0xfb, 0xae, 0xd2, 0x9d, 0x75, 0x80, 0x0e, 0x94, 0x17, 0x81, 0xc4, 0x07, + 0x35, 0x56, 0x33, 0x39, 0x9e, 0x2d, 0x8b, 0xc9, 0xc3, 0x52, 0xa6, 0x50, + 0xd2, 0x08, 0xd3, 0xc8, 0x95, 0x3e, 0x5a, 0x96, 0x4e, 0x23, 0x8b, 0xac, + 0x92, 0x16, 0x85, 0xae, 0x69, 0x0e, 0xac, 0x69, 0x2f, 0x32, 0x45, 0xd9, + 0x83, 0x6a, 0x31, 0x2f, 0x6a, 0xf8, 0xa1, 0x5d, 0x35, 0x1a, 0xc7, 0x4a, + 0x78, 0xe8, 0xdc, 0x17, 0x6a, 0x4c, 0x17, 0xd5, 0xb1, 0xb8, 0x56, 0x28, + 0xcb, 0x0b, 0x2f, 0xb1, 0x78, 0x8b, 0x72, 0x96, 0x62, 0x02, 0x90, 0xa7, + 0x5b, 0x01, 0x9d, 0x37, 0x12, 0x83, 0xd8, 0x4c, 0xc8, 0x81, 0x0f, 0xe5, + 0x1d, 0xcb, 0xc6, 0x8c, 0xbb, 0x26, 0x9f, 0xc1, 0x6d, 0x30, 0x33, 0xb6, + 0x24, 0x7d, 0x0b, 0x40, 0xe9, 0x60, 0xee, 0x0c, 0x9d, 0xa7, 0x5b, 0xce, + 0xc1, 0x23, 0xaf, 0x17, 0x4e, 0xf7, 0xe5, 0x27, 0x13, 0xd1, 0x05, 0xd2, + 0x4b, 0x4c, 0xa5, 0x03, 0xaa, 0x32, 0x2a, 0x4b, 0x20, 0x07, 0x92, 0x9d, + 0x83, 0x98, 0x15, 0x95, 0x2c, 0xbf, 0xae, 0xad, 0x01, 0xb4, 0x26, 0x2e, + 0xb9, 0x26, 0xd7, 0x21, 0x3a, 0x95, 0xed, 0x9e, 0x12, 0xf3, 0xa7, 0xfe, + 0x70, 0x78, 0xdb, 0x0a, 0x80, 0x93, 0x1b, 0xd6, 0x01, 0xea, 0xc9, 0x73, + 0x22, 0x69, 0x0b, 0xb2, 0x4d, 0xb1, 0x2a, 0x16, 0x49, 0x9c, 0xf0, 0x20, + 0x66, 0xe2, 0xb8, 0x45, 0x6d, 0xaa, 0x2e, 0x3a, 0xf3, 0xbd, 0xe7, 0x74, + 0x95, 0x15, 0xae, 0x54, 0x0c, 0x4f, 0x03, 0xa1, 0xca, 0x95, 0x2b, 0x24, + 0xbe, 0x45, 0xb2, 0xa2, 0x03, 0x73, 0x98, 0x25, 0x8a, 0xb9, 0x91, 0x92, + 0xac, 0x75, 0x5c, 0x3e, 0xae, 0x32, 0x13, 0x59, 0x52, 0x77, 0xad, 0x99, + 0xe9, 0x34, 0x74, 0xf0, 0x25, 0xc3, 0xbf, 0x3a, 0xf4, 0x0f, 0x67, 0x85, + 0x0f, 0xa1, 0x5f, 0xd7, 0x45, 0xf9, 0xc0, 0x2d, 0x1f, 0x9e, 0xc0, 0x06, + 0xf9, 0xb8, 0x7f, 0x26, 0xdd, 0x5c, 0x0e, 0x21, 0xac, 0xd2, 0x4b, 0xf3, + 0x76, 0xaa, 0xc0, 0x5d, 0x5b, 0x3a, 0x00, 0x49, 0xb7, 0x9c, 0x9b, 0x28, + 0xef, 0xad, 0x97, 0xd0, 0x18, 0x7d, 0xd9, 0x18, 0xbe, 0x77, 0xc2, 0xde, + 0x2f, 0xfb, 0xf8, 0x65, 0xf1, 0x05, 0xa8, 0x2b, 0x94, 0xcd, 0xb7, 0x2c, + 0x4e, 0xe0, 0x9a, 0x2e, 0x00, 0x81, 0xa4, 0x25, 0x2e, 0xc5, 0xc4, 0xa2, + 0x1a, 0x19, 0x0e, 0x80, 0xa4, 0x19, 0x2b, 0x47, 0x81, 0x7f, 0x9d, 0x38, + 0x99, 0x4e, 0x0c, 0x3c, 0xcf, 0xf1, 0xf7, 0x76, 0x36, 0x29, 0x37, 0x2b, + 0x4b, 0x6a, 0x6d, 0x54, 0xf3, 0x80, 0xf1, 0xeb, 0x9e, 0xd2, 0xec, 0xc8, + 0x54, 0xc3, 0xcb, 0x4f, 0xc5, 0x79, 0xb3, 0x40, 0xc5, 0x57, 0x51, 0x9a, + 0xa5, 0x15, 0x6c, 0xad, 0x56, 0xc1, 0xf6, 0xe2, 0x0a, 0xb6, 0x6e, 0x52, + 0xc1, 0x56, 0x51, 0x05, 0x5b, 0xf7, 0x51, 0xc1, 0xf6, 0xad, 0x2b, 0xd8, + 0xbe, 0x49, 0x05, 0xdb, 0x45, 0x15, 0x6c, 0xdf, 0xb2, 0x82, 0x9c, 0xb7, + 0xa2, 0xa9, 0x58, 0xd6, 0xd7, 0xf7, 0x56, 0xe9, 0xd1, 0x3a, 0x5e, 0x11, + 0xf7, 0xec, 0xb8, 0xd0, 0xb5, 0xa6, 0x00, 0xb5, 0xe5, 0xab, 0x30, 0x56, + 0xf2, 0x59, 0x96, 0xb5, 0xa0, 0x09, 0xd0, 0x96, 0x0e, 0xae, 0x6d, 0xf9, + 0xad, 0xeb, 0x35, 0xe3, 0x3a, 0xd2, 0x1c, 0x6e, 0xa0, 0x2d, 0x07, 0xf0, + 0xd2, 0x69, 0x9c, 0x0c, 0x68, 0x88, 0xe2, 0xc4, 0xeb, 0x4a, 0xca, 0x50, + 0xa5, 0x0c, 0x94, 0xcb, 0x38, 0x5b, 0x09, 0x95, 0x60, 0x34, 0xd0, 0xa1, + 0x6b, 0xeb, 0x2c, 0x8b, 0x7f, 0xb1, 0xdd, 0x19, 0xca, 0x23, 0x74, 0xac, + 0xaf, 0xb4, 0xe5, 0x08, 0x51, 0x89, 0x16, 0xf8, 0x31, 0x59, 0xc3, 0xb7, + 0x7d, 0xce, 0xd9, 0x31, 0xee, 0xd2, 0xe6, 0x04, 0x32, 0x0a, 0x04, 0x0d, + 0x8e, 0xfc, 0x75, 0x4b, 0xa1, 0x30, 0x8e, 0x7b, 0x13, 0x0b, 0x63, 0xdf, + 0xa0, 0x60, 0x7a, 0xe0, 0xae, 0x74, 0x40, 0x9f, 0xb7, 0x14, 0x0b, 0xa1, + 0xb8, 0x37, 0xa9, 0x10, 0xf2, 0x0d, 0x0a, 0x85, 0x56, 0x14, 0x41, 0x8f, + 0xbe, 0x6e, 0x2b, 0x16, 0xc2, 0x71, 0x7f, 0x72, 0x21, 0xec, 0x9b, 0x14, + 0x8c, 0x8c, 0x82, 0xc6, 0x96, 0x51, 0x87, 0xba, 0xf6, 0xd4, 0xcd, 0x30, + 0x6d, 0xf9, 0xbd, 0xbf, 0x96, 0x8f, 0x6e, 0xe9, 0x0b, 0xca, 0x20, 0xf0, + 0x1e, 0xa6, 0xfa, 0xf0, 0x73, 0x06, 0x22, 0x24, 0xa7, 0x8b, 0xdc, 0xd0, + 0x5b, 0x8a, 0x5f, 0x32, 0x7c, 0x6f, 0xf2, 0x97, 0xe8, 0x37, 0xd8, 0x00, + 0x1c, 0x48, 0xbe, 0x5b, 0xf9, 0xd3, 0x3c, 0x67, 0x22, 0x82, 0x3b, 0x10, + 0x36, 0x98, 0xbb, 0xc7, 0x01, 0x03, 0xd8, 0x6f, 0x3f, 0x64, 0x48, 0x4c, + 0x62, 0xc4, 0x57, 0x43, 0x97, 0x56, 0xf3, 0xff, 0x29, 0xa2, 0xb0, 0x7f, + 0x6d, 0x9d, 0xd6, 0x9b, 0xc8, 0xac, 0xea, 0xec, 0xb4, 0x54, 0xdd, 0xd9, + 0xa5, 0x3b, 0x11, 0xa3, 0xd7, 0x3d, 0x77, 0x19, 0x8f, 0x88, 0xcb, 0xc6, + 0xa0, 0x88, 0xca, 0xae, 0x40, 0x98, 0x89, 0xcb, 0x32, 0x09, 0x4a, 0x90, + 0x50, 0x2c, 0x9c, 0xd4, 0x52, 0x7e, 0x4c, 0x7c, 0xf1, 0xca, 0x60, 0x51, + 0x08, 0x5b, 0x85, 0xf1, 0x9f, 0x60, 0x85, 0xc7, 0x22, 0x67, 0x48, 0x22, + 0x5b, 0x81, 0xbd, 0xa7, 0x5b, 0x2b, 0xf4, 0x8f, 0xad, 0xdb, 0xfb, 0x56, + 0x32, 0x52, 0x87, 0xdb, 0xbf, 0x11, 0x39, 0xcc, 0xab, 0x85, 0x5a, 0x29, + 0xb8, 0xa5, 0x76, 0xb0, 0xc1, 0x0e, 0x15, 0x91, 0xeb, 0x1b, 0x72, 0x1e, + 0xbe, 0x91, 0xa0, 0xab, 0x35, 0xa4, 0xe9, 0x95, 0x0a, 0x63, 0x29, 0x4d, + 0xf0, 0x76, 0x2d, 0xc7, 0x2b, 0x9a, 0x14, 0xb8, 0xbd, 0xbf, 0xa6, 0x58, + 0x67, 0x7e, 0xa0, 0xd3, 0x6e, 0x39, 0xa1, 0x4f, 0x2e, 0x4d, 0xe0, 0xd5, + 0x10, 0x0b, 0xfb, 0xaf, 0x24, 0x57, 0x44, 0x34, 0xc6, 0xa0, 0xaf, 0x13, + 0x5d, 0x4f, 0x79, 0x24, 0x27, 0xd7, 0x46, 0x23, 0x57, 0x34, 0x28, 0x8b, + 0x8c, 0xc8, 0x76, 0xc2, 0x30, 0xbc, 0x86, 0x89, 0x9d, 0x5d, 0xab, 0x54, + 0x49, 0x8b, 0xe0, 0xaa, 0x12, 0xc5, 0x06, 0xe1, 0xda, 0xde, 0xbc, 0x6a, + 0xb4, 0x33, 0xcf, 0xb0, 0xd9, 0x47, 0x70, 0x34, 0x1c, 0x92, 0x51, 0x32, + 0x3c, 0x2f, 0x42, 0x96, 0x9d, 0xb2, 0x25, 0xee, 0x8c, 0xbd, 0xbe, 0x8f, + 0xf2, 0xd8, 0xa7, 0xd9, 0x91, 0x7b, 0xfa, 0x4a, 0xeb, 0x76, 0x3c, 0xbd, + 0x33, 0xb1, 0xa4, 0x95, 0xa2, 0x96, 0xab, 0xc5, 0x4a, 0x38, 0x69, 0x9e, + 0xad, 0x51, 0xe4, 0x30, 0xf4, 0x46, 0x72, 0x37, 0x53, 0x7a, 0xb2, 0x6b, + 0xf1, 0xd2, 0xcc, 0x0a, 0x93, 0x74, 0xfa, 0xbb, 0x7e, 0xa4, 0xbf, 0x49, + 0x57, 0xbd, 0xbe, 0x4d, 0xa5, 0xaa, 0xbc, 0x47, 0xa4, 0x42, 0x04, 0xf7, + 0xdc, 0x9c, 0x89, 0xf2, 0x6a, 0xc7, 0x0b, 0xc5, 0x37, 0x79, 0x53, 0x47, + 0xe2, 0x55, 0x1c, 0x78, 0x04, 0x2a, 0x8e, 0xab, 0xc8, 0x5a, 0xdd, 0x83, + 0x1a, 0x4c, 0xb9, 0xba, 0xc4, 0xcb, 0xb5, 0xf1, 0x03, 0xd3, 0xf8, 0xa6, + 0xe0, 0x1d, 0x36, 0x37, 0x0b, 0x65, 0x65, 0xa9, 0xc8, 0x45, 0xb8, 0xfb, + 0xb0, 0xe9, 0x0b, 0x15, 0x65, 0x25, 0xe7, 0xe6, 0xa7, 0x7e, 0x18, 0xd1, + 0x42, 0x8a, 0x54, 0xa0, 0x95, 0x1a, 0xc4, 0x0c, 0x88, 0x63, 0x59, 0xf8, + 0x7e, 0xc7, 0xc3, 0xb5, 0xeb, 0x6d, 0xd1, 0x75, 0x1f, 0x2b, 0x55, 0xfe, + 0xcd, 0x2f, 0x3e, 0x7c, 0x20, 0x01, 0xdc, 0xa8, 0xf2, 0x93, 0x3f, 0x46, + 0xd1, 0x29, 0x24, 0x70, 0x4b, 0x3f, 0xee, 0x1e, 0x6a, 0xbf, 0x5a, 0xcb, + 0x53, 0xe5, 0xdf, 0xfb, 0xc1, 0x3a, 0x95, 0x97, 0x13, 0x94, 0xcc, 0xa4, + 0x62, 0x77, 0x67, 0xa7, 0xbd, 0x93, 0x10, 0x09, 0xce, 0x31, 0xfd, 0xf7, + 0x89, 0x64, 0x77, 0x65, 0x91, 0xfc, 0x32, 0xbc, 0xd6, 0x9a, 0x2e, 0xd1, + 0x07, 0xda, 0x94, 0xf3, 0x3f, 0x5c, 0xf9, 0xf7, 0x28, 0xbb, 0x46, 0xe5, + 0xa7, 0x00, 0x9f, 0xa3, 0x26, 0x09, 0x01, 0x50, 0xd2, 0x7f, 0x44, 0x00, + 0xab, 0x84, 0xbe, 0x6f, 0xe9, 0xfb, 0xb5, 0xd3, 0x93, 0xc2, 0xe7, 0xde, + 0x8d, 0xfb, 0x4e, 0x53, 0xf5, 0x9d, 0x27, 0xa5, 0xf4, 0x44, 0xb1, 0xef, + 0xdd, 0xb2, 0xeb, 0xec, 0xdc, 0x48, 0x76, 0xab, 0x56, 0xfa, 0xb9, 0x3f, + 0xbb, 0x79, 0x9d, 0x33, 0xf6, 0xc2, 0xd4, 0xbb, 0xef, 0xcf, 0xfe, 0xbb, + 0xab, 0x7d, 0xfc, 0xf2, 0xd9, 0xbb, 0xd5, 0x7d, 0x7c, 0xf9, 0x13, 0x3b, + 0xf7, 0xfc, 0x0d, 0x7a, 0xf9, 0xed, 0x94, 0x47, 0xe8, 0xdd, 0xb6, 0x8d, + 0x9a, 0xbb, 0xc9, 0x06, 0xc2, 0xf1, 0xd2, 0xff, 0x44, 0xf3, 0x6c, 0xb8, + 0x47, 0xbf, 0x7b, 0xff, 0xe1, 0xf8, 0xe8, 0x57, 0xeb, 0xb6, 0x33, 0xde, + 0xb6, 0x86, 0x73, 0xb3, 0xff, 0xa1, 0x96, 0x06, 0xcb, 0x2f, 0x0e, 0xbf, + 0x3b, 0xba, 0x01, 0xcf, 0x38, 0x5f, 0xb6, 0xc9, 0x49, 0x68, 0x86, 0xe9, + 0x97, 0x87, 0x6f, 0xde, 0x1c, 0xde, 0x80, 0xeb, 0x91, 0x3d, 0x99, 0xd8, + 0xff, 0x39, 0xb6, 0x4f, 0x5e, 0xfd, 0xf6, 0x26, 0xb2, 0xc6, 0x34, 0xe0, + 0xae, 0x65, 0xbd, 0x81, 0xae, 0xb1, 0xab, 0xea, 0x3e, 0x3a, 0x89, 0xec, + 0xdb, 0x3b, 0x89, 0x3f, 0xfa, 0x43, 0xf8, 0x05, 0x41, 0x74, 0x7e, 0x87, + 0xa8, 0x8e, 0x1b, 0x87, 0x91, 0x7d, 0x5b, 0x4f, 0xf1, 0xc9, 0x8d, 0x0c, + 0xcb, 0x8a, 0xd5, 0xf6, 0xa7, 0xf7, 0x53, 0x6b, 0x7f, 0xfa, 0x9f, 0xa8, + 0xf4, 0x7d, 0xab, 0xcc, 0x62, 0x1f, 0x53, 0x1f, 0x92, 0x91, 0x27, 0x64, + 0x94, 0xcb, 0x69, 0xb6, 0xe5, 0x28, 0x87, 0x73, 0xe9, 0x0c, 0x5e, 0xe3, + 0x2e, 0xba, 0x45, 0x9e, 0xb8, 0x5c, 0x61, 0x3f, 0xc6, 0x1b, 0x9b, 0x86, + 0x45, 0x7e, 0x4e, 0x35, 0x9c, 0x8a, 0x07, 0x98, 0x7d, 0x06, 0x13, 0x00, + 0x96, 0xf4, 0x82, 0x8a, 0x3a, 0x97, 0xb5, 0x22, 0x8d, 0x17, 0x98, 0xf5, + 0xaf, 0x44, 0x83, 0xc2, 0x03, 0x37, 0xa4, 0xf1, 0x0c, 0x3b, 0x45, 0x57, + 0xa2, 0x41, 0x27, 0x23, 0x6e, 0x4a, 0x23, 0x5a, 0x4d, 0x54, 0xbd, 0xe8, + 0xa6, 0x92, 0x02, 0x05, 0x6c, 0xad, 0x59, 0x95, 0x08, 0xb4, 0x65, 0x2d, + 0x3a, 0x8c, 0x76, 0xcd, 0xfe, 0x71, 0x57, 0x8a, 0xed, 0xda, 0x5f, 0xc4, + 0x5b, 0x0a, 0x81, 0xaf, 0x61, 0x3c, 0xcc, 0x24, 0x92, 0x8b, 0x7b, 0x28, + 0x7e, 0x17, 0x93, 0x28, 0x7d, 0xb0, 0x42, 0x1d, 0xfb, 0xe5, 0xd7, 0x89, + 0xdc, 0x93, 0xe5, 0x88, 0xa5, 0x15, 0x6f, 0x9a, 0x4c, 0x45, 0xf2, 0x6b, + 0x21, 0xaa, 0xa5, 0x57, 0x26, 0x65, 0x7e, 0x3c, 0x22, 0x26, 0xdf, 0x35, + 0x43, 0xef, 0x7d, 0x4c, 0xbc, 0xdf, 0x2f, 0xf9, 0xae, 0xcc, 0x6b, 0xd6, + 0x61, 0xf9, 0xe5, 0x67, 0xd9, 0xc5, 0x58, 0xa2, 0x8a, 0xb5, 0x58, 0xfe, + 0x3e, 0x51, 0xac, 0xc4, 0xfb, 0x2d, 0x57, 0x5d, 0x0b, 0xc9, 0x40, 0xc8, + 0xf7, 0x47, 0x70, 0xed, 0xe4, 0xcf, 0xb8, 0xa1, 0xe2, 0xd3, 0xec, 0x2c, + 0xe6, 0x05, 0x02, 0x3b, 0x78, 0x6a, 0x67, 0xde, 0xea, 0x2c, 0xdf, 0x31, + 0xbd, 0xf4, 0xc5, 0xd2, 0xa5, 0x04, 0x39, 0x7e, 0x65, 0x19, 0x44, 0x89, + 0xa6, 0xa5, 0x97, 0x82, 0x9f, 0xf6, 0x5c, 0x1b, 0xcf, 0x07, 0xef, 0x03, + 0xff, 0x0f, 0xe4, 0x79, 0x8c, 0x7d, 0x8a, 0xe5, 0xd9, 0x07, 0x38, 0xe4, + 0xff, 0xcf, 0xbf, 0xe1, 0x18, 0x58, 0xf3, 0x89, 0xac, 0x93, 0xb5, 0xce, + 0x9e, 0xe7, 0xc2, 0x26, 0xf4, 0xa7, 0xc2, 0x5b, 0xd0, 0x84, 0xba, 0xd9, + 0x94, 0xa6, 0xdd, 0xbe, 0xdd, 0xe2, 0xb6, 0x72, 0xe2, 0xfd, 0xb1, 0xb9, + 0x96, 0x92, 0xe2, 0x58, 0xb6, 0xbb, 0x1e, 0x77, 0xf9, 0x38, 0xd3, 0xa4, + 0x6b, 0xe5, 0x0c, 0xad, 0x32, 0xf6, 0xcd, 0xe2, 0x15, 0x75, 0xd8, 0x9c, + 0x5b, 0xa7, 0x58, 0xcd, 0xe1, 0x88, 0x5e, 0xea, 0xcd, 0x17, 0x91, 0xbc, + 0x1b, 0x96, 0x1f, 0xbf, 0x39, 0x79, 0x75, 0xf4, 0xb8, 0xf2, 0xa0, 0xdb, + 0xad, 0x35, 0xad, 0x3f, 0xfd, 0xc9, 0x32, 0xb0, 0x38, 0xdf, 0xf7, 0x2b, + 0x84, 0x9d, 0xa1, 0xa5, 0x06, 0xf8, 0x43, 0xe0, 0x0c, 0x50, 0x7a, 0xeb, + 0x71, 0xc5, 0x3a, 0x88, 0xdf, 0x81, 0x60, 0xfe, 0xa8, 0x2a, 0x78, 0x85, + 0x73, 0xdd, 0xf5, 0x47, 0xe5, 0x12, 0xde, 0x74, 0x3c, 0x10, 0x91, 0xdc, + 0x74, 0x5d, 0xd9, 0x4f, 0x03, 0x0e, 0x70, 0x0a, 0x73, 0x42, 0x6c, 0xa0, + 0x41, 0x8f, 0xe4, 0x9b, 0x96, 0x9f, 0x5d, 0xbc, 0x1a, 0x94, 0x73, 0x67, + 0x8d, 0x2a, 0x75, 0xd6, 0xb4, 0xba, 0x3e, 0x1b, 0xdd, 0xb5, 0x1e, 0x73, + 0x3f, 0x79, 0xbc, 0x2a, 0xc2, 0x78, 0x1d, 0xad, 0x08, 0xd5, 0x18, 0xb5, + 0x49, 0x62, 0x4a, 0x1d, 0x94, 0x52, 0xa2, 0xcc, 0x0b, 0x97, 0x4f, 0xd9, + 0xe9, 0x85, 0x30, 0xd4, 0x71, 0xc8, 0x6f, 0x98, 0x47, 0xd5, 0x01, 0xfa, + 0x23, 0xdc, 0x5f, 0x63, 0x61, 0x5b, 0x85, 0x05, 0xaf, 0x02, 0xa7, 0xa4, + 0xe7, 0x9e, 0x3e, 0x3a, 0xc0, 0xe7, 0x59, 0x19, 0xe0, 0xb9, 0x3f, 0xbd, + 0xa0, 0xcb, 0x96, 0xe2, 0x1c, 0xc1, 0x07, 0xa5, 0x4b, 0xa4, 0x6a, 0xe5, + 0x23, 0x6f, 0xe4, 0x3a, 0xe1, 0xb8, 0x62, 0x7d, 0x91, 0xa2, 0xaf, 0x66, + 0x20, 0x9d, 0xa8, 0xce, 0x48, 0x5e, 0x0d, 0x2d, 0x3b, 0x89, 0xda, 0x72, + 0x42, 0xf8, 0x61, 0x61, 0x48, 0x77, 0x23, 0x51, 0x78, 0x2a, 0xac, 0x12, + 0xd2, 0x0b, 0x7e, 0xc1, 0x0e, 0xb1, 0x68, 0xcf, 0x5c, 0x7e, 0x15, 0xb5, + 0xc2, 0x0f, 0x24, 0x7c, 0x36, 0x10, 0xae, 0x9a, 0xe5, 0xea, 0x9a, 0x74, + 0x75, 0x73, 0x0a, 0xaf, 0x93, 0x68, 0x59, 0x06, 0x38, 0xa5, 0x98, 0x37, + 0xee, 0x60, 0x50, 0xe5, 0x4b, 0x55, 0x93, 0x4d, 0xdb, 0xdc, 0x29, 0xcb, + 0xf4, 0xdd, 0x64, 0xae, 0x2a, 0x67, 0x32, 0x7f, 0xf9, 0xca, 0xfa, 0x55, + 0xbb, 0x8c, 0xf8, 0xc2, 0xc7, 0x4a, 0x12, 0x2e, 0xde, 0x16, 0x0f, 0xe0, + 0xf8, 0x77, 0x12, 0x00, 0xcd, 0x96, 0x84, 0x91, 0x8f, 0x79, 0xb0, 0x78, + 0xaf, 0x39, 0x60, 0x8e, 0xf5, 0xef, 0x02, 0x42, 0x47, 0x41, 0xe0, 0x07, + 0x4d, 0x00, 0x21, 0xc0, 0xe3, 0x0e, 0xe0, 0x58, 0x45, 0x2a, 0x87, 0xc5, + 0x64, 0xd8, 0xad, 0x5b, 0xd0, 0x79, 0x1c, 0xc7, 0x5c, 0x84, 0xa2, 0x05, + 0x14, 0x10, 0x01, 0x56, 0xc9, 0xeb, 0xd6, 0x7b, 0x97, 0xce, 0x28, 0xe3, + 0x54, 0xa5, 0x6c, 0xd1, 0xe3, 0xa3, 0xe7, 0xef, 0xde, 0xbe, 0x3d, 0x7a, + 0xfe, 0x41, 0xbd, 0x3f, 0x9a, 0x10, 0x47, 0x01, 0xda, 0x7e, 0x04, 0x85, + 0xac, 0x27, 0x11, 0xba, 0xb8, 0xd5, 0xea, 0x0d, 0x8d, 0x80, 0x40, 0xa6, + 0x6f, 0xb8, 0x9a, 0xd0, 0xb3, 0x55, 0xaf, 0x03, 0xd0, 0xda, 0xda, 0xc2, + 0x6b, 0x11, 0x9d, 0x30, 0x6e, 0xaa, 0x1a, 0x8e, 0x55, 0x11, 0x0c, 0x92, + 0xc0, 0xb8, 0x51, 0x0f, 0x5c, 0xe0, 0xa5, 0xec, 0x08, 0x67, 0x30, 0x5e, + 0x24, 0x5e, 0x88, 0xa8, 0x92, 0x26, 0xa6, 0x46, 0x86, 0x24, 0x3d, 0x55, + 0xf0, 0xde, 0x48, 0x7e, 0x14, 0xbd, 0x10, 0x1d, 0x97, 0x24, 0x2e, 0xc5, + 0xc7, 0xaa, 0x2a, 0x13, 0x45, 0xa4, 0xc8, 0xa6, 0x8b, 0x1c, 0xe3, 0x70, + 0xe2, 0x05, 0x0a, 0xf0, 0x77, 0x11, 0x00, 0xb7, 0x00, 0x00, 0xf8, 0x9b, + 0x53, 0x80, 0xd4, 0xdc, 0xc9, 0x23, 0x65, 0x88, 0x57, 0x49, 0x71, 0xbb, + 0x18, 0xd9, 0xdf, 0x43, 0x0d, 0x45, 0x92, 0x93, 0x24, 0x9b, 0xca, 0x90, + 0x21, 0xeb, 0xa3, 0xfc, 0x95, 0xcc, 0x9c, 0x98, 0x43, 0x90, 0x00, 0x78, + 0x35, 0x24, 0xab, 0x81, 0x86, 0x00, 0xab, 0xc4, 0x98, 0xda, 0x79, 0x81, + 0x17, 0x7a, 0x63, 0x80, 0x43, 0x0a, 0xcb, 0xcb, 0x8b, 0x30, 0x4f, 0xf1, + 0xbd, 0x51, 0xac, 0x6d, 0x67, 0x42, 0x4c, 0xe9, 0xb2, 0x85, 0x09, 0x8c, + 0x34, 0xca, 0xd9, 0x91, 0x95, 0xea, 0x6b, 0x03, 0x5f, 0x84, 0xde, 0xe3, + 0x88, 0x8c, 0xc2, 0x19, 0xc0, 0xf2, 0x2f, 0x12, 0x4f, 0xa9, 0x2d, 0xa6, + 0x1d, 0xb3, 0x29, 0x16, 0x9d, 0xfd, 0xda, 0x80, 0xac, 0x8d, 0xb2, 0xc6, + 0x78, 0x4f, 0xe9, 0x19, 0x2e, 0x7e, 0x18, 0x07, 0xe0, 0xa3, 0x1a, 0xbf, + 0x97, 0x1c, 0x12, 0x3f, 0x1a, 0x8c, 0x44, 0xaa, 0x51, 0xd8, 0x7d, 0xa5, + 0x26, 0xa6, 0xef, 0x74, 0xb7, 0x1c, 0x50, 0x43, 0xa6, 0xfb, 0x2a, 0x6f, + 0x56, 0x45, 0xf2, 0x4b, 0xfa, 0x4e, 0x66, 0xd0, 0x7e, 0x4d, 0xa4, 0x3f, + 0xc3, 0x57, 0x32, 0x99, 0xa7, 0x42, 0x24, 0x49, 0x7c, 0x27, 0x33, 0xa8, + 0x59, 0x4e, 0x81, 0x0c, 0x2c, 0x13, 0x71, 0xec, 0x00, 0x44, 0x42, 0xe6, + 0x7e, 0x0a, 0x95, 0x4d, 0x12, 0xf2, 0xe8, 0x7e, 0x8a, 0x6c, 0x71, 0x17, + 0xc2, 0x5e, 0x54, 0x96, 0xf2, 0x64, 0xc1, 0x46, 0xb2, 0x58, 0x1c, 0x15, + 0x47, 0xb9, 0x13, 0xfe, 0x6d, 0xa9, 0xad, 0x61, 0x49, 0x28, 0x1d, 0x4e, + 0x00, 0xd0, 0x0b, 0x7a, 0x63, 0x97, 0xf5, 0xfa, 0xe8, 0x3b, 0x5c, 0x42, + 0xa4, 0x4a, 0x8b, 0xc1, 0xc2, 0x32, 0xfe, 0x94, 0x7a, 0xa7, 0xbd, 0x5a, + 0x09, 0xbd, 0xdb, 0x87, 0xc5, 0xa3, 0x3b, 0x95, 0xa5, 0xd3, 0xf2, 0x5c, + 0xeb, 0xe1, 0xcb, 0xb0, 0x2e, 0x53, 0xf2, 0xc0, 0x66, 0xc1, 0x94, 0x80, + 0xd5, 0xcf, 0x3c, 0x94, 0x59, 0x59, 0x04, 0x14, 0xfd, 0xb4, 0x4e, 0x44, + 0x80, 0x41, 0xac, 0x18, 0xee, 0xbd, 0xcf, 0x02, 0xa1, 0xb1, 0x8d, 0x7f, + 0x66, 0xa1, 0xcc, 0xba, 0x94, 0xc6, 0x46, 0xbf, 0x73, 0x84, 0xd3, 0xab, + 0x38, 0x1a, 0xf4, 0xbd, 0x5a, 0xa2, 0xc9, 0x80, 0x9a, 0x25, 0x0c, 0x00, + 0xbe, 0xe5, 0xa6, 0x25, 0xa9, 0x9e, 0xa8, 0xdd, 0x7c, 0x69, 0x68, 0x13, + 0xfb, 0x27, 0x09, 0x45, 0x18, 0xf7, 0xb9, 0x15, 0x38, 0x25, 0x05, 0x69, + 0xc2, 0xe5, 0x00, 0xc4, 0x97, 0xf5, 0x8e, 0xe6, 0x27, 0x29, 0x90, 0x38, + 0x44, 0x1d, 0xa3, 0x7a, 0xf9, 0xfe, 0xd5, 0x3b, 0x8b, 0x12, 0xf2, 0x60, + 0xef, 0xa6, 0xec, 0x4a, 0xc4, 0xa0, 0xea, 0x39, 0x03, 0x69, 0x82, 0xb7, + 0x44, 0x55, 0x5e, 0x62, 0x98, 0x05, 0x31, 0xc1, 0x52, 0x52, 0x3d, 0xd8, + 0x2c, 0xeb, 0x84, 0xb6, 0x40, 0xe6, 0xc0, 0x4c, 0x78, 0x92, 0xba, 0x22, + 0x85, 0x1b, 0xd1, 0x8d, 0x03, 0xf5, 0xca, 0xd0, 0x2c, 0xb4, 0x89, 0x0a, + 0x02, 0x58, 0x89, 0xce, 0x3a, 0x71, 0xbe, 0x66, 0xa9, 0x9b, 0x50, 0x87, + 0xd1, 0x30, 0x3e, 0x18, 0x3f, 0x84, 0x1b, 0x2e, 0xcd, 0x44, 0xba, 0x4e, + 0x71, 0xc0, 0x02, 0xf0, 0x78, 0x05, 0x70, 0xa6, 0xa1, 0xe3, 0x50, 0x03, + 0xe5, 0x8a, 0xf3, 0x74, 0x13, 0xc4, 0x31, 0x02, 0x32, 0x19, 0xe6, 0xa2, + 0x87, 0x3c, 0x48, 0xe4, 0x11, 0x04, 0x8f, 0xc5, 0x19, 0xe2, 0x66, 0x7e, + 0x4e, 0xec, 0xea, 0x7e, 0x26, 0x41, 0x53, 0x90, 0xc9, 0x0d, 0x28, 0x31, + 0xa8, 0x2c, 0x6f, 0x4d, 0x39, 0x35, 0x05, 0x2e, 0xb7, 0x40, 0x90, 0x41, + 0xa4, 0x1f, 0x19, 0x63, 0x26, 0x98, 0xda, 0x47, 0xfa, 0x4e, 0x66, 0xe4, + 0xf6, 0xeb, 0x50, 0x9d, 0xe3, 0x34, 0x4b, 0x27, 0x66, 0x7c, 0x23, 0x0a, + 0xb8, 0x91, 0x53, 0x45, 0xbd, 0x0a, 0x2d, 0xf7, 0x85, 0xcc, 0x37, 0x3d, + 0x27, 0xc1, 0xcc, 0x44, 0x1d, 0x50, 0x87, 0xf1, 0x81, 0xc2, 0xc4, 0x80, + 0x61, 0x9d, 0x10, 0x88, 0xc5, 0x30, 0x56, 0xf9, 0x77, 0xa5, 0xfd, 0xdf, + 0x95, 0x50, 0x65, 0x9c, 0x8a, 0xa6, 0x71, 0x30, 0xe5, 0xaf, 0x25, 0xe7, + 0x97, 0xe4, 0x02, 0x9d, 0x50, 0x39, 0x9d, 0x90, 0x01, 0x64, 0xdb, 0xaf, + 0xf3, 0x64, 0x42, 0x16, 0x22, 0x3d, 0x94, 0x53, 0x52, 0xc2, 0x27, 0x59, + 0x34, 0x84, 0x1b, 0x14, 0x53, 0x39, 0x15, 0xfc, 0xa9, 0xcf, 0x46, 0x2a, + 0x39, 0x31, 0x2c, 0x49, 0xa0, 0x2b, 0x05, 0xec, 0xb9, 0x0b, 0x5d, 0xdb, + 0xb7, 0x02, 0x1d, 0x17, 0x09, 0x83, 0xf0, 0x7e, 0xbd, 0x5b, 0x74, 0xd6, + 0x9e, 0xef, 0x61, 0x1a, 0xb5, 0xc4, 0xbb, 0xf5, 0x1c, 0x58, 0xef, 0x18, + 0x70, 0x91, 0x7f, 0xfb, 0x2b, 0x00, 0xd0, 0xa8, 0xef, 0x4f, 0x01, 0x3f, + 0x9b, 0x2f, 0xf3, 0x72, 0x7f, 0x0e, 0xcd, 0x89, 0x91, 0x3a, 0x84, 0xd4, + 0x82, 0x4f, 0x91, 0xf4, 0x73, 0x97, 0x7b, 0xb8, 0x67, 0x02, 0xd6, 0x72, + 0x24, 0x20, 0xe7, 0x1e, 0x7e, 0x0d, 0xea, 0xd6, 0x4b, 0xd1, 0x0b, 0x66, + 0xce, 0x99, 0x05, 0xb3, 0x92, 0x61, 0xc3, 0x3a, 0xf3, 0xfc, 0xa9, 0xe5, + 0x4f, 0xe2, 0x67, 0x68, 0x22, 0x97, 0x0b, 0xc4, 0x62, 0xaf, 0x97, 0xbf, + 0xd1, 0x1c, 0x03, 0x71, 0x1f, 0xde, 0x59, 0xc6, 0xe5, 0x7d, 0x45, 0x57, + 0x01, 0xba, 0x2e, 0x9e, 0x84, 0x77, 0xaf, 0x34, 0xd5, 0x48, 0x9c, 0x1c, + 0x93, 0x43, 0xd3, 0x02, 0x4b, 0x3c, 0xde, 0x9f, 0xbb, 0xb6, 0x1d, 0x2c, + 0x71, 0x78, 0x5f, 0x50, 0xcc, 0xba, 0xe7, 0xfc, 0x41, 0x72, 0x8f, 0x38, + 0xa1, 0xa7, 0xbd, 0x5e, 0xa1, 0x9d, 0x5e, 0xd5, 0x54, 0xba, 0x15, 0xee, + 0xa1, 0x86, 0x22, 0xc1, 0xcc, 0x02, 0x97, 0x17, 0xb5, 0x08, 0xfb, 0xe3, + 0xd9, 0x7c, 0xa9, 0xdf, 0x7b, 0x88, 0x4b, 0xbd, 0x66, 0xe8, 0x01, 0xa8, + 0x11, 0x42, 0x22, 0xfd, 0x31, 0xc8, 0x09, 0x11, 0xe2, 0xfa, 0x9c, 0x11, + 0xb1, 0x86, 0x2a, 0x40, 0x6f, 0x79, 0x76, 0x5b, 0x4f, 0xbb, 0xb6, 0x73, + 0x11, 0x9c, 0x45, 0xac, 0xd5, 0x85, 0x8e, 0xad, 0xd1, 0x51, 0xba, 0x97, + 0x6c, 0x68, 0x47, 0xa1, 0x2f, 0xb0, 0x01, 0xf0, 0x0f, 0x67, 0xc6, 0xaf, + 0xfd, 0xea, 0xdb, 0xa0, 0x2d, 0x1d, 0x5b, 0xf8, 0x02, 0xda, 0xb5, 0xcd, + 0xbb, 0xb4, 0xdc, 0x24, 0x62, 0x56, 0xe4, 0xd2, 0xfa, 0xfe, 0x02, 0x9f, + 0xd6, 0x5f, 0xe0, 0xd3, 0xda, 0xb3, 0x79, 0xa1, 0x53, 0xeb, 0x44, 0x8b, + 0x5d, 0xda, 0x97, 0x40, 0x4a, 0xee, 0xe8, 0x84, 0xdc, 0xd1, 0xb1, 0x3f, + 0x02, 0xef, 0x83, 0xc5, 0x7e, 0x6c, 0xb6, 0x80, 0x6b, 0x73, 0x81, 0xeb, + 0xfd, 0x57, 0xe8, 0xcb, 0x35, 0x2e, 0xec, 0x11, 0x6d, 0x44, 0x14, 0xe4, + 0x0b, 0xb1, 0xd2, 0x8d, 0x67, 0xce, 0xc0, 0x19, 0x09, 0x5d, 0x48, 0xd7, + 0x38, 0xef, 0xc5, 0xda, 0xd1, 0xca, 0xc5, 0x8a, 0x5d, 0xd9, 0xc9, 0xea, + 0xae, 0x2c, 0xd5, 0xe2, 0x83, 0x6d, 0xbb, 0x9b, 0xf4, 0x64, 0x85, 0xb7, + 0xaa, 0x23, 0x3b, 0x92, 0x4a, 0x09, 0x39, 0x7a, 0xb6, 0x3d, 0x59, 0xc1, + 0x9d, 0x9d, 0xdb, 0xe8, 0x12, 0x73, 0xff, 0x2e, 0x1d, 0x5a, 0xb4, 0x03, + 0x2b, 0xc7, 0x6d, 0x1c, 0xd5, 0x15, 0x5c, 0xde, 0xac, 0x2f, 0xeb, 0xe3, + 0x59, 0xfc, 0x3f, 0xb8, 0xb2, 0xa4, 0x61, 0x53, 0x1b, 0xe6, 0xc9, 0xb6, + 0xce, 0xc8, 0x2c, 0x08, 0x6f, 0xa1, 0x2f, 0x7b, 0xe8, 0x8e, 0xc4, 0x04, + 0x9d, 0x71, 0x89, 0x3b, 0x7b, 0x16, 0x2e, 0xf6, 0x67, 0x0f, 0xd1, 0xf6, + 0x22, 0x80, 0x47, 0xbb, 0xd8, 0xa1, 0xfd, 0x39, 0x86, 0x5b, 0xc4, 0xa9, + 0x97, 0x38, 0xb4, 0x2f, 0xc5, 0x19, 0x66, 0xf0, 0xe8, 0x7f, 0x04, 0x7a, + 0xbd, 0x3b, 0x4b, 0xb5, 0x63, 0x6b, 0x67, 0x9d, 0x39, 0xe2, 0xeb, 0x12, + 0x8f, 0xf6, 0x4c, 0xb8, 0x85, 0x1e, 0xad, 0x73, 0xbd, 0x43, 0xfb, 0xee, + 0x0b, 0x6a, 0x85, 0x8e, 0x1b, 0x0a, 0x4e, 0x12, 0xde, 0x12, 0x7f, 0x96, + 0xbe, 0x2c, 0x76, 0x6a, 0xc9, 0x85, 0xb8, 0xd6, 0xa1, 0x45, 0x1d, 0x12, + 0xe3, 0x04, 0x0d, 0x87, 0x33, 0xd7, 0x78, 0xb3, 0x23, 0x81, 0x01, 0x49, + 0x50, 0x14, 0x7b, 0xa9, 0x3b, 0x9b, 0x72, 0x11, 0xfc, 0x29, 0x08, 0xd9, + 0x5e, 0x91, 0x57, 0x9b, 0x81, 0x03, 0x76, 0x32, 0xb6, 0x39, 0xd0, 0xfc, + 0xc0, 0x3d, 0x16, 0x91, 0xc6, 0x9b, 0x1b, 0xab, 0x57, 0x72, 0x6e, 0xa5, + 0xfe, 0x65, 0xdc, 0xdb, 0x81, 0x58, 0xe8, 0xde, 0x7e, 0x27, 0x66, 0x51, + 0xd8, 0xbf, 0xe7, 0xc8, 0x2d, 0xf9, 0x36, 0xb3, 0x6b, 0x7c, 0x5b, 0x44, + 0xe8, 0xd1, 0x8c, 0x5e, 0xb4, 0xc8, 0xab, 0xfd, 0xe8, 0x90, 0x23, 0x6e, + 0xdc, 0xa4, 0x6b, 0xdc, 0x5a, 0x0f, 0x7a, 0xed, 0xb1, 0xd7, 0x30, 0x71, + 0x92, 0x0e, 0x6d, 0xc2, 0xcf, 0xb2, 0x7e, 0x8a, 0xdd, 0xeb, 0x96, 0x08, + 0x97, 0xbb, 0xb8, 0x13, 0xdb, 0xe5, 0xa8, 0xfb, 0x0c, 0xb8, 0xea, 0xd6, + 0x33, 0xe1, 0xcd, 0xa2, 0xaf, 0xc2, 0xfa, 0xf8, 0xea, 0xe8, 0xbb, 0xa3, + 0x63, 0xeb, 0x57, 0x47, 0xc7, 0xcf, 0x5e, 0xbd, 0xfd, 0xee, 0xe8, 0x6d, + 0xd5, 0x9a, 0x4d, 0x08, 0x95, 0xe7, 0xf7, 0xc7, 0x54, 0xe2, 0xeb, 0x8c, + 0x5b, 0xcf, 0x59, 0xea, 0xdd, 0xbe, 0x26, 0x93, 0x85, 0x07, 0xe7, 0xbe, + 0x82, 0xab, 0x4a, 0x75, 0x63, 0x5a, 0x47, 0x8e, 0xd4, 0xcb, 0x19, 0xe9, + 0xe5, 0x7d, 0x11, 0x55, 0x83, 0xb3, 0x99, 0x88, 0x40, 0x5a, 0x2b, 0xc5, + 0x73, 0x5f, 0x88, 0x20, 0x72, 0x46, 0x0b, 0x03, 0xba, 0x0c, 0x31, 0x76, + 0xa1, 0x03, 0x3d, 0xe1, 0x4c, 0xac, 0xd7, 0xec, 0xe2, 0x92, 0x4a, 0x1c, + 0xea, 0xc0, 0x6e, 0x58, 0x23, 0x61, 0x56, 0xd1, 0x91, 0xf0, 0xf2, 0x7d, + 0xd9, 0x14, 0xa6, 0xf1, 0xee, 0xc5, 0x9b, 0x17, 0x49, 0xc6, 0x96, 0x04, + 0x78, 0x67, 0xcb, 0x1c, 0xdd, 0x8f, 0x50, 0x7b, 0x8c, 0x30, 0x58, 0x33, + 0xc2, 0x30, 0x08, 0x85, 0xc0, 0x95, 0xb8, 0x33, 0x9e, 0xe5, 0x82, 0xe7, + 0x2a, 0xf8, 0x42, 0xdc, 0x31, 0x9a, 0xe3, 0x1a, 0x18, 0x74, 0x53, 0x47, + 0x0c, 0x61, 0xaa, 0xe0, 0x2b, 0x0e, 0x49, 0x7f, 0x9f, 0x71, 0x3d, 0x21, + 0x86, 0x33, 0xa1, 0x10, 0xd0, 0xc5, 0x9b, 0x55, 0x7c, 0x85, 0x61, 0xca, + 0x27, 0x56, 0x3d, 0xc1, 0x99, 0xe4, 0xdd, 0x61, 0x6b, 0x38, 0xf3, 0xce, + 0x48, 0x78, 0x0e, 0xa4, 0xaf, 0x51, 0x7a, 0x62, 0x3c, 0x51, 0x28, 0x71, + 0x5d, 0x3c, 0x7e, 0xd9, 0x67, 0xd1, 0x0c, 0x7a, 0x83, 0x5f, 0xcf, 0x94, + 0x8f, 0x3c, 0x47, 0xde, 0xd7, 0xfa, 0xb3, 0x7a, 0x3e, 0xfe, 0x3b, 0x10, + 0x4b, 0x22, 0xc0, 0x2f, 0xec, 0xa0, 0x27, 0x8a, 0xdc, 0xe5, 0xa8, 0xd8, + 0x5b, 0xfe, 0xd7, 0x3f, 0x16, 0x79, 0xcb, 0x85, 0xce, 0xb2, 0x70, 0xfe, + 0xf5, 0x97, 0xc5, 0xee, 0xf2, 0xe1, 0xd9, 0x57, 0x41, 0xbe, 0x46, 0x80, + 0xf0, 0x38, 0xd5, 0xcb, 0x7a, 0xcb, 0xce, 0x8e, 0x07, 0x7a, 0xff, 0xfa, + 0xfb, 0xbf, 0xfe, 0x22, 0x82, 0x45, 0x9e, 0xf3, 0xb2, 0xb2, 0x67, 0x2e, + 0x3d, 0x06, 0x8b, 0x7c, 0x68, 0xe3, 0x43, 0xcc, 0xff, 0xf5, 0xd7, 0x31, + 0x24, 0xb8, 0xc8, 0x83, 0x8e, 0x1d, 0x68, 0xd8, 0x06, 0xb4, 0x31, 0x43, + 0x63, 0x00, 0x8c, 0xfd, 0xb6, 0x05, 0x2e, 0xb4, 0x88, 0xbe, 0xae, 0x5e, + 0xee, 0x36, 0xe1, 0xe0, 0x69, 0x00, 0x87, 0x13, 0x4b, 0x01, 0xb3, 0x50, + 0x55, 0x64, 0x93, 0x7e, 0xf4, 0xec, 0x3f, 0x16, 0x11, 0x3e, 0xf4, 0xbe, + 0xda, 0x63, 0x57, 0x4b, 0x53, 0xac, 0x14, 0x0e, 0x96, 0x65, 0x96, 0x3b, + 0xc7, 0xc7, 0xc2, 0x41, 0xf7, 0x1e, 0xfa, 0xf0, 0x03, 0x6f, 0xee, 0x6c, + 0x17, 0x47, 0x85, 0x85, 0x97, 0x68, 0xa5, 0x3b, 0x71, 0xab, 0x5f, 0x92, + 0x77, 0x34, 0xaf, 0xaf, 0xe2, 0x58, 0xff, 0x1c, 0x8e, 0x75, 0x7d, 0x25, + 0x9f, 0xfa, 0x25, 0x77, 0xba, 0xa5, 0x6e, 0xf5, 0xab, 0x38, 0x34, 0x4c, + 0x76, 0x23, 0x55, 0xaf, 0xa5, 0x51, 0x62, 0xfb, 0x66, 0x51, 0xe2, 0x9f, + 0x72, 0x28, 0x7a, 0xb4, 0x24, 0x4a, 0xfc, 0x01, 0xeb, 0x2e, 0xcb, 0x7d, + 0x6a, 0xdd, 0x01, 0x2d, 0x06, 0x5d, 0xe6, 0x55, 0x53, 0x95, 0xe6, 0x36, + 0x60, 0x2f, 0xa6, 0x99, 0x7a, 0xe5, 0xbd, 0xea, 0x9f, 0x07, 0xc2, 0x09, + 0x8b, 0x9c, 0xea, 0x63, 0x7b, 0x70, 0x9d, 0x4f, 0xfd, 0xaf, 0x3f, 0xf7, + 0x12, 0x4e, 0x35, 0xfc, 0xfd, 0x6b, 0x7d, 0x6a, 0x8c, 0x07, 0x5f, 0x9c, + 0xa5, 0x4e, 0xf5, 0x5c, 0x38, 0x11, 0x00, 0xae, 0x09, 0x11, 0x6b, 0x97, + 0x6e, 0x99, 0x4b, 0x9d, 0xf1, 0x49, 0x70, 0x1d, 0x83, 0x03, 0x33, 0x13, + 0x14, 0x7a, 0xd5, 0x29, 0x50, 0x60, 0xd7, 0xc0, 0xd1, 0x83, 0x2c, 0x74, + 0xa1, 0xc7, 0x70, 0xa2, 0xc0, 0xd9, 0x6b, 0x48, 0xd3, 0x5d, 0xe4, 0x33, + 0xac, 0x10, 0x50, 0x46, 0xac, 0xe9, 0xa7, 0x3a, 0xa0, 0x2c, 0x5f, 0x5d, + 0x84, 0x9d, 0x23, 0x72, 0x0b, 0x85, 0x39, 0xff, 0x60, 0x36, 0x51, 0xbc, + 0x3c, 0x7e, 0x86, 0x92, 0xf8, 0xd4, 0x68, 0x5f, 0x3e, 0x3b, 0x46, 0x02, + 0x3e, 0x75, 0x02, 0xda, 0x40, 0xb6, 0x44, 0x9c, 0xf0, 0xec, 0x25, 0x12, + 0xf0, 0xa9, 0x13, 0x9e, 0x1d, 0x53, 0x02, 0x3e, 0xe3, 0x84, 0x97, 0x84, + 0x03, 0x9f, 0x3a, 0xe1, 0xa3, 0x24, 0x43, 0x5f, 0x71, 0x92, 0x24, 0x44, + 0x5f, 0x71, 0x92, 0x24, 0x45, 0x5f, 0x71, 0x92, 0x24, 0x46, 0x5f, 0x71, + 0x92, 0x24, 0x87, 0x2f, 0x93, 0x24, 0x09, 0xd2, 0x57, 0x5c, 0x8d, 0x8f, + 0x4c, 0x91, 0xbe, 0x4c, 0x92, 0xac, 0xda, 0xc7, 0x44, 0xdd, 0x3e, 0x32, + 0x45, 0xfa, 0x8a, 0x79, 0xff, 0xc8, 0xe8, 0xe9, 0xcb, 0x24, 0xc9, 0xfa, + 0x7c, 0x4c, 0xa0, 0x3f, 0xfe, 0x48, 0x05, 0xe9, 0xcb, 0x08, 0xee, 0x23, + 0x41, 0xd1, 0x97, 0x11, 0x1d, 0x43, 0xd1, 0x97, 0x11, 0xde, 0x47, 0x29, + 0xbd, 0x8f, 0x09, 0xf1, 0x71, 0x12, 0x7d, 0x19, 0x01, 0x32, 0x2e, 0xfa, + 0x32, 0x14, 0xb9, 0x47, 0xd0, 0x57, 0x8e, 0x62, 0x31, 0x94, 0x69, 0x2e, + 0x4a, 0xa2, 0x2f, 0x43, 0x91, 0x93, 0xf0, 0x55, 0x98, 0x94, 0xd6, 0x19, + 0x73, 0x96, 0xc2, 0x68, 0x4d, 0xa3, 0x83, 0x8f, 0xd2, 0xdb, 0x77, 0xc7, + 0x6f, 0x0e, 0x5f, 0x6b, 0x0c, 0xcd, 0xd6, 0x1e, 0x91, 0x39, 0xc2, 0x1c, + 0xe4, 0xe4, 0x28, 0x8b, 0xc3, 0x9c, 0x6d, 0x50, 0x48, 0x24, 0x16, 0xc2, + 0xf1, 0xf6, 0x28, 0xc6, 0xb0, 0x8b, 0x04, 0xb2, 0xf3, 0xa7, 0xbf, 0x7e, + 0x71, 0x78, 0xf2, 0x41, 0x27, 0xb7, 0x5b, 0x3a, 0x39, 0x99, 0xba, 0xbd, + 0xa7, 0x53, 0xdf, 0x1c, 0x7d, 0xf7, 0xea, 0x97, 0x6f, 0x74, 0xfa, 0xee, + 0xb6, 0x4e, 0x3f, 0x79, 0xfd, 0x2e, 0xae, 0xde, 0x5e, 0x23, 0x46, 0x9d, + 0x4c, 0x7e, 0x62, 0x28, 0x26, 0xd3, 0x9b, 0xcd, 0x98, 0xe4, 0xcb, 0xd7, + 0x87, 0xcf, 0x5f, 0x1d, 0xbe, 0x8e, 0xeb, 0x63, 0x6a, 0x64, 0xce, 0x3d, + 0xc8, 0x2a, 0x99, 0x1a, 0x59, 0x3c, 0x04, 0xc5, 0xa4, 0x91, 0xc6, 0x09, + 0x59, 0x99, 0x98, 0x33, 0x08, 0x69, 0x04, 0x18, 0x97, 0xc0, 0x3c, 0x24, + 0x1b, 0x8b, 0xb6, 0x25, 0x53, 0xb3, 0x55, 0xdd, 0xd6, 0xc9, 0xaf, 0x0f, + 0x8f, 0x5f, 0x1e, 0xc5, 0x02, 0xd0, 0xa9, 0xbf, 0x96, 0xc9, 0x86, 0x73, + 0xda, 0x11, 0xf6, 0x80, 0xb6, 0x54, 0x99, 0x89, 0x2c, 0xdd, 0x25, 0x1b, + 0xef, 0x6e, 0x29, 0xd7, 0x1c, 0x67, 0x28, 0xea, 0x13, 0xac, 0x5b, 0xfd, + 0x21, 0xac, 0x30, 0x60, 0xc1, 0x56, 0xc8, 0x29, 0x82, 0xf9, 0xb4, 0x6b, + 0x70, 0xab, 0x18, 0x49, 0x62, 0xcb, 0xd6, 0x71, 0x02, 0x00, 0xee, 0xdd, + 0x09, 0xe7, 0x77, 0xe1, 0xe0, 0x73, 0xa0, 0xab, 0x5c, 0xb9, 0x2c, 0xd1, + 0x66, 0x0e, 0x9a, 0xef, 0x60, 0xef, 0xd3, 0x3e, 0x95, 0x10, 0x26, 0x37, + 0xaa, 0x7a, 0x95, 0xcb, 0x40, 0x44, 0xb3, 0xc0, 0x2b, 0x8b, 0xee, 0xbb, + 0x1e, 0xd9, 0xb9, 0x3a, 0x66, 0x40, 0x30, 0x72, 0x91, 0x4f, 0x7b, 0x1d, + 0xdf, 0x0d, 0xff, 0xf4, 0xa7, 0xcb, 0xd3, 0xd3, 0x29, 0x3d, 0x9f, 0x9e, + 0x76, 0x3e, 0x7d, 0xbe, 0x22, 0x0b, 0x4a, 0x17, 0xfd, 0x23, 0xba, 0x78, + 0x48, 0xf7, 0x3b, 0x3f, 0x7a, 0x14, 0x63, 0x13, 0xd5, 0xa8, 0x72, 0x29, + 0xea, 0x31, 0x78, 0x37, 0xba, 0xfa, 0xd3, 0x9f, 0xd2, 0xb9, 0x43, 0xdc, + 0x43, 0x49, 0x3c, 0x78, 0xfc, 0x4e, 0x90, 0x4a, 0x54, 0x1f, 0xdb, 0xe1, + 0xbb, 0xb9, 0x07, 0x7a, 0x53, 0x98, 0xf4, 0x8b, 0xb2, 0x57, 0x79, 0xf4, + 0xa8, 0x2c, 0x3e, 0x79, 0x9f, 0xbb, 0x11, 0x3e, 0x2a, 0x57, 0x15, 0x66, + 0xf1, 0x6a, 0x5f, 0x61, 0x41, 0x19, 0xc9, 0x73, 0xfc, 0xec, 0xa3, 0x86, + 0xb4, 0x43, 0xa6, 0x0e, 0x29, 0xa0, 0x92, 0x33, 0x34, 0x77, 0x00, 0xba, + 0x82, 0xc1, 0xaa, 0x51, 0x9d, 0x59, 0x51, 0x6f, 0x7d, 0xc0, 0x3d, 0xd3, + 0xdd, 0xae, 0xf7, 0xad, 0xaa, 0x66, 0x9f, 0xa7, 0x08, 0xa0, 0xd8, 0x29, + 0xfb, 0x49, 0x30, 0xf3, 0xbb, 0x8a, 0xfb, 0x4b, 0x2d, 0xbf, 0x72, 0xc5, + 0x0c, 0x1b, 0xa1, 0x69, 0x89, 0x59, 0xc9, 0xaa, 0x29, 0x2e, 0xd4, 0xbe, + 0xd4, 0xa8, 0xca, 0x4f, 0x8c, 0x50, 0x5c, 0x5d, 0x95, 0x2b, 0x55, 0xbf, + 0x6b, 0xa0, 0x13, 0xec, 0xab, 0x26, 0x20, 0x0a, 0x7e, 0x57, 0xd4, 0xfb, + 0x78, 0xfd, 0x6c, 0x99, 0x8a, 0x56, 0x4b, 0x3c, 0xcb, 0x2c, 0x21, 0xf3, + 0x4f, 0x7f, 0xa2, 0x84, 0x7d, 0x45, 0xd3, 0xaf, 0xab, 0xe8, 0x77, 0x37, + 0xd2, 0xbf, 0xaa, 0x7e, 0x9d, 0x81, 0x41, 0xd5, 0xbf, 0x52, 0x60, 0x51, + 0xd9, 0xab, 0x8a, 0x4a, 0xd5, 0xbb, 0x42, 0xfd, 0xaa, 0xc1, 0x12, 0xda, + 0x55, 0x1f, 0xd4, 0x7d, 0xec, 0xaa, 0x6e, 0x40, 0x36, 0x11, 0x84, 0x1f, + 0x75, 0x9b, 0xa2, 0x5d, 0xa9, 0xc6, 0x69, 0x1e, 0xd2, 0xb0, 0x6b, 0xb5, + 0x54, 0x61, 0xdd, 0x09, 0xd2, 0x4c, 0xf6, 0x5d, 0x3f, 0xc4, 0xcc, 0xce, + 0xcf, 0x30, 0x19, 0xd4, 0x31, 0x75, 0x7d, 0x8e, 0x65, 0x5a, 0xaf, 0xfb, + 0xa0, 0x51, 0x0d, 0xd0, 0x36, 0x03, 0xf0, 0x8b, 0x1f, 0x10, 0x79, 0xe8, + 0x7b, 0x5d, 0xaf, 0x1a, 0x14, 0x32, 0xea, 0x24, 0x85, 0xec, 0x0c, 0xcb, + 0x98, 0x02, 0xf0, 0x96, 0x4a, 0xac, 0x11, 0x3f, 0xe8, 0x42, 0x98, 0xa4, + 0x74, 0xb1, 0x8e, 0x57, 0x24, 0x06, 0x93, 0x70, 0x55, 0x0d, 0xbb, 0x97, + 0x38, 0x78, 0xa2, 0x7a, 0x04, 0xe3, 0xf9, 0x4e, 0xd0, 0x65, 0x0f, 0x4d, + 0xb1, 0x5d, 0x45, 0x87, 0x2b, 0xca, 0x68, 0x7f, 0xb3, 0x2d, 0xda, 0x3f, + 0x7a, 0x63, 0x47, 0xe3, 0x3a, 0xdc, 0xa8, 0x81, 0x3f, 0x29, 0x57, 0x08, + 0xf4, 0x97, 0x53, 0xda, 0xc7, 0xd7, 0xd9, 0x11, 0xed, 0x6a, 0x90, 0x2d, + 0xf5, 0x12, 0xb3, 0xe1, 0x17, 0x36, 0x29, 0x5a, 0xa7, 0x59, 0x6f, 0x57, + 0x4d, 0xee, 0x07, 0x14, 0x41, 0x4c, 0xaf, 0xb3, 0x8d, 0x52, 0xcc, 0x47, + 0x14, 0x50, 0x8c, 0xbb, 0xb9, 0xd5, 0xa8, 0x0e, 0x44, 0x6f, 0x36, 0xea, + 0x3c, 0x68, 0x5e, 0xed, 0x67, 0x75, 0x27, 0xd1, 0x20, 0x02, 0x8a, 0xc4, + 0xea, 0x90, 0x11, 0xfe, 0xe5, 0x95, 0x14, 0xbe, 0xdf, 0x65, 0x21, 0xb3, + 0x6a, 0x9d, 0xba, 0x0e, 0x79, 0xa5, 0x22, 0x40, 0x9d, 0xb9, 0xf5, 0xd1, + 0x37, 0xab, 0x4a, 0x21, 0xe8, 0x27, 0x6d, 0x57, 0xa6, 0x6f, 0x6e, 0x21, + 0xea, 0xb7, 0x55, 0x59, 0x0c, 0xe4, 0x83, 0x0b, 0x9e, 0xbd, 0x60, 0x93, + 0xaf, 0x4a, 0x0b, 0xc7, 0xb4, 0xef, 0x31, 0x96, 0x0e, 0xda, 0x4c, 0x65, + 0xa8, 0x84, 0xd7, 0x10, 0x6f, 0xf7, 0x81, 0x86, 0xee, 0x21, 0xd4, 0x18, + 0x5c, 0x7c, 0x90, 0x1b, 0xa1, 0x5d, 0xbf, 0x57, 0x52, 0xe9, 0x4c, 0xe9, + 0x39, 0x74, 0x43, 0x0c, 0x0c, 0xb0, 0xe2, 0xe8, 0x17, 0x33, 0x81, 0xc3, + 0x0b, 0x9f, 0x3e, 0xcb, 0x54, 0xdf, 0x63, 0xd8, 0xae, 0xac, 0xa6, 0x4e, + 0xe3, 0x5a, 0x64, 0xd2, 0x54, 0xf1, 0x4c, 0x2a, 0xd5, 0x2d, 0x95, 0x74, + 0x3a, 0x46, 0xd3, 0xb9, 0xe2, 0x1d, 0xd2, 0x53, 0xaa, 0xee, 0xd7, 0x4f, + 0x59, 0xf0, 0xe5, 0x12, 0x15, 0xb1, 0xf8, 0x02, 0x5c, 0xa5, 0xc8, 0x51, + 0x17, 0x99, 0xbe, 0x9c, 0x4a, 0xd5, 0xe3, 0x06, 0xaf, 0x02, 0x6f, 0xdc, + 0x19, 0xbe, 0x4d, 0x64, 0x74, 0xa2, 0xfd, 0x3e, 0xf4, 0x39, 0x50, 0x4d, + 0x5c, 0xf6, 0x63, 0xe1, 0xa8, 0x94, 0x4a, 0x15, 0x49, 0x33, 0x86, 0x55, + 0x29, 0x5d, 0xd8, 0x51, 0x0d, 0x9e, 0xb7, 0x1d, 0x80, 0xc6, 0x05, 0xfa, + 0x88, 0x2e, 0x80, 0x69, 0x24, 0x5f, 0x55, 0x3d, 0xc6, 0x30, 0x0f, 0xeb, + 0x09, 0xf9, 0x22, 0xc1, 0x3c, 0x21, 0x3b, 0x25, 0xce, 0x3a, 0x6c, 0xe9, + 0x11, 0xa6, 0xe7, 0x06, 0xb9, 0x88, 0xb1, 0x4b, 0x4c, 0x21, 0xae, 0x76, + 0x45, 0xe2, 0x15, 0x30, 0xe7, 0x5b, 0xc2, 0x57, 0x82, 0x7c, 0xf4, 0x48, + 0xfd, 0xa2, 0xf2, 0x48, 0x35, 0x8a, 0x55, 0xa7, 0xc4, 0x3c, 0x95, 0x28, + 0x49, 0x85, 0x6c, 0xc1, 0x11, 0x89, 0xf5, 0xb5, 0x2a, 0x45, 0x2a, 0x0c, + 0x8a, 0x57, 0xa9, 0x86, 0x51, 0xc1, 0x86, 0x05, 0x6d, 0xa3, 0x38, 0xd3, + 0xcd, 0xc3, 0x9c, 0xa9, 0x34, 0x30, 0x67, 0x1e, 0x72, 0xfc, 0xa9, 0xf4, + 0x3b, 0x61, 0x91, 0xe7, 0x0e, 0x0b, 0x18, 0x64, 0xcd, 0x54, 0xec, 0x55, + 0x85, 0x22, 0x2b, 0x99, 0x31, 0xf1, 0xec, 0xb2, 0x52, 0xc8, 0xd2, 0x87, + 0x57, 0x6f, 0x8e, 0xde, 0xfd, 0xf2, 0x43, 0x09, 0x2a, 0x14, 0xc3, 0x7e, + 0x5b, 0x8a, 0xa4, 0x26, 0x94, 0x3a, 0x12, 0x4c, 0xd6, 0x92, 0x11, 0x3f, + 0x7a, 0x14, 0xff, 0xe4, 0x1a, 0x1a, 0xb2, 0xe7, 0xa2, 0x6f, 0x49, 0xda, + 0x71, 0x9d, 0x4b, 0x19, 0x11, 0x70, 0xf6, 0x0d, 0x05, 0x40, 0x98, 0x34, + 0xf3, 0x19, 0x69, 0x3c, 0x47, 0xff, 0x5c, 0xd4, 0x5c, 0xd4, 0x77, 0x93, + 0x8d, 0x75, 0x9a, 0xec, 0x18, 0x21, 0x0d, 0x75, 0x39, 0x8b, 0x82, 0x2a, + 0x1a, 0x52, 0xb2, 0xea, 0x8c, 0x05, 0xe9, 0xea, 0x67, 0xbe, 0x71, 0x29, + 0xf5, 0xb6, 0x4d, 0x3b, 0x0b, 0xdc, 0xae, 0x50, 0xbf, 0x79, 0x54, 0xc7, + 0xbc, 0x3d, 0x54, 0x83, 0x73, 0xdc, 0xfb, 0xbb, 0x9e, 0x7a, 0x36, 0xb2, + 0x50, 0x14, 0x94, 0xa3, 0x20, 0x87, 0x20, 0xed, 0xa2, 0x80, 0x44, 0x49, + 0xed, 0xe5, 0x7e, 0xf5, 0x16, 0x73, 0x89, 0x4b, 0x8c, 0xf7, 0x9d, 0x7c, + 0xff, 0x6e, 0x5c, 0x55, 0xb1, 0x6a, 0x80, 0x60, 0x21, 0x4d, 0xb4, 0x3b, + 0xb0, 0xa8, 0xc0, 0x3e, 0x74, 0x46, 0x33, 0xfd, 0x0c, 0xf1, 0x2f, 0x44, + 0xff, 0xee, 0xfd, 0xd1, 0xdb, 0x85, 0x88, 0x9b, 0xb7, 0x40, 0xfc, 0xfc, + 0xf5, 0xbb, 0x93, 0x65, 0x4c, 0xb7, 0x6e, 0x89, 0xfb, 0xe8, 0xbb, 0x85, + 0xa8, 0xdb, 0x37, 0x46, 0x1d, 0xfb, 0x63, 0xab, 0x09, 0x5e, 0xd4, 0x0d, + 0xd0, 0x9d, 0xd0, 0xa4, 0xd6, 0x58, 0x42, 0x8d, 0xb2, 0xef, 0x84, 0x8e, + 0x6a, 0x9c, 0x25, 0xa4, 0x08, 0xe2, 0xae, 0x6a, 0x25, 0x9b, 0x6b, 0x09, + 0x31, 0x09, 0x70, 0x27, 0xb4, 0xcc, 0x18, 0xb6, 0x90, 0x9e, 0xec, 0x81, + 0xf3, 0xf0, 0x5b, 0xfa, 0x91, 0x19, 0x06, 0x3b, 0x59, 0xbf, 0x03, 0x8e, + 0x1e, 0x23, 0x31, 0xd6, 0x29, 0x0b, 0x81, 0x5e, 0xaf, 0x11, 0x91, 0x4b, + 0x6b, 0x70, 0x1a, 0x80, 0xca, 0x9d, 0x54, 0xcd, 0xb8, 0x53, 0x0b, 0xab, + 0xc6, 0xbe, 0x25, 0xdc, 0xc1, 0x72, 0xd6, 0x01, 0xab, 0x36, 0xee, 0x86, + 0x87, 0xde, 0x0c, 0x21, 0x3e, 0x2c, 0xa9, 0x1c, 0x4e, 0x96, 0xf2, 0x91, + 0x77, 0xc8, 0xea, 0x28, 0x34, 0xeb, 0x8b, 0x72, 0x72, 0x1e, 0xa3, 0xc1, + 0x4b, 0x72, 0x85, 0xac, 0xd4, 0xd5, 0x7e, 0x77, 0xf4, 0xad, 0xf8, 0x06, + 0x73, 0x0e, 0x44, 0x2b, 0x47, 0x38, 0x60, 0x19, 0x59, 0x89, 0x79, 0xe0, + 0x33, 0x78, 0x81, 0x32, 0x97, 0xaf, 0xfc, 0xe2, 0x5f, 0xbd, 0x8b, 0x48, + 0xbc, 0x66, 0xd8, 0xaa, 0xb8, 0x42, 0x4d, 0xbf, 0x29, 0xe7, 0x9b, 0x38, + 0xcd, 0x78, 0xe7, 0x8e, 0xc4, 0x21, 0xce, 0x31, 0x14, 0x84, 0x64, 0xd9, + 0xd7, 0xd0, 0x36, 0x53, 0xa8, 0x53, 0x2a, 0xdd, 0x09, 0x1b, 0x7a, 0xbc, + 0x59, 0x83, 0x09, 0x5d, 0xe4, 0xae, 0x58, 0x08, 0x68, 0x8d, 0x15, 0x6b, + 0x4d, 0xd1, 0x3a, 0xfd, 0xce, 0x14, 0xea, 0xdc, 0xb9, 0x29, 0x9d, 0x05, + 0xeb, 0x88, 0x63, 0x16, 0xac, 0x26, 0x89, 0x04, 0x89, 0xba, 0x9c, 0x58, + 0xa4, 0x14, 0xda, 0xcc, 0xa6, 0x04, 0xc5, 0x16, 0x78, 0x7a, 0x5b, 0x34, + 0x65, 0x69, 0x14, 0xcf, 0x86, 0xf4, 0x5c, 0x26, 0xef, 0xe7, 0x2c, 0x93, + 0x1d, 0xce, 0x50, 0x52, 0xaa, 0xb2, 0xa2, 0x06, 0x82, 0x29, 0x32, 0x5b, + 0x6c, 0xd5, 0xd2, 0x4e, 0x55, 0x07, 0x2f, 0x6e, 0x62, 0x14, 0x16, 0x3f, + 0x0e, 0x4a, 0x45, 0x40, 0x38, 0x8f, 0xf2, 0x47, 0xea, 0xbc, 0x03, 0xba, + 0x01, 0x00, 0x8b, 0x7b, 0x71, 0x47, 0x2c, 0x55, 0xae, 0x52, 0xa2, 0x88, + 0xe7, 0xad, 0x19, 0x71, 0x2c, 0x9f, 0xf3, 0xe5, 0xa7, 0x71, 0xf9, 0x59, + 0xa3, 0x31, 0xad, 0xd7, 0xd7, 0x5c, 0x75, 0x7b, 0xe3, 0x27, 0x33, 0x13, + 0x59, 0x8f, 0x4b, 0x56, 0xd4, 0x24, 0xa4, 0xab, 0xc2, 0x13, 0x99, 0x94, + 0x37, 0xba, 0x94, 0x83, 0xae, 0xe4, 0x80, 0x47, 0x66, 0xa6, 0x6f, 0x24, + 0x48, 0x88, 0xe0, 0xc2, 0x2b, 0xfa, 0x66, 0x8e, 0x04, 0x06, 0xd2, 0x80, + 0x4a, 0xc8, 0x12, 0x36, 0x6f, 0x38, 0xa7, 0xb3, 0x70, 0x8c, 0x52, 0x19, + 0x36, 0x71, 0xd6, 0x33, 0xe5, 0x8d, 0x66, 0x04, 0x9f, 0x99, 0xb7, 0x7f, + 0x12, 0x9f, 0x1f, 0x3d, 0xca, 0xa7, 0x49, 0xdc, 0x51, 0xae, 0x31, 0xe9, + 0x8d, 0x2e, 0xeb, 0x62, 0x2f, 0xe7, 0x13, 0xbb, 0x05, 0x14, 0xf1, 0x06, + 0x36, 0x2c, 0xec, 0x14, 0xcd, 0x23, 0xb9, 0x35, 0xaf, 0x32, 0xf5, 0x54, + 0x42, 0x32, 0xf4, 0x4d, 0x58, 0x4f, 0xce, 0xf1, 0xbb, 0x8d, 0xfd, 0xe8, + 0xa9, 0x8d, 0x35, 0x35, 0x5e, 0x8b, 0x56, 0x43, 0xc6, 0x7e, 0xf4, 0xcd, + 0x37, 0x15, 0xf1, 0x29, 0xfa, 0xdc, 0x8d, 0x73, 0xf0, 0xb0, 0x9f, 0x72, + 0xc5, 0xeb, 0x8c, 0xf8, 0xd1, 0xa3, 0xc4, 0xd9, 0x61, 0x3a, 0x7a, 0xec, + 0x5e, 0x94, 0x55, 0x4a, 0xf5, 0x13, 0x96, 0x11, 0x4e, 0x0e, 0x4a, 0x9f, + 0x29, 0xdc, 0xd7, 0xb7, 0xa3, 0x7c, 0x1b, 0x9c, 0xc2, 0xba, 0xbc, 0x85, + 0x35, 0xe7, 0x48, 0x4d, 0x92, 0x45, 0xc9, 0x5e, 0x8a, 0x1c, 0x38, 0x15, + 0xf5, 0x25, 0xe1, 0x9d, 0x6c, 0x34, 0x60, 0x59, 0x24, 0x08, 0xb1, 0x37, + 0x20, 0x2b, 0x0a, 0x32, 0x55, 0x03, 0x83, 0xc5, 0x07, 0x96, 0xc2, 0x40, + 0x94, 0x5f, 0x75, 0xa8, 0xb8, 0x7d, 0x9e, 0x2f, 0xde, 0x37, 0xc5, 0x1d, + 0x14, 0x2f, 0x0c, 0x70, 0x39, 0xd5, 0x59, 0x37, 0xd0, 0xa1, 0xa5, 0x6c, + 0x97, 0x3d, 0x68, 0x40, 0x13, 0x90, 0x2f, 0xa3, 0x5c, 0x53, 0x7f, 0x5e, + 0xf6, 0x72, 0xdd, 0xba, 0xd6, 0xac, 0x54, 0x0e, 0xfa, 0x0c, 0xd7, 0xaf, + 0x54, 0x53, 0x5d, 0xc1, 0xa3, 0xb7, 0xcf, 0x0d, 0x88, 0x4c, 0xa9, 0x3a, + 0xab, 0x54, 0x67, 0x19, 0x79, 0xcf, 0x6d, 0x27, 0x2a, 0x96, 0xb3, 0xe6, + 0x87, 0xa2, 0xa8, 0x18, 0x0f, 0xb0, 0x69, 0x5b, 0xa4, 0xe6, 0x71, 0x89, + 0xf8, 0x48, 0x54, 0xcd, 0xb4, 0x5c, 0x19, 0xed, 0xba, 0xa0, 0x65, 0x7f, + 0x19, 0xb8, 0x09, 0xd5, 0xe7, 0x38, 0x61, 0xce, 0x59, 0x11, 0x2a, 0x38, + 0xa8, 0xe8, 0x52, 0x2b, 0x43, 0x7d, 0xbe, 0xd0, 0x2c, 0x73, 0x9f, 0xe0, + 0x75, 0xf9, 0x44, 0x09, 0xc9, 0x39, 0x34, 0xa2, 0xcc, 0x20, 0x79, 0xff, + 0x67, 0x11, 0xca, 0x88, 0xe1, 0xa3, 0x7a, 0x84, 0x95, 0x43, 0x0d, 0x13, + 0x5d, 0x45, 0x63, 0xba, 0x46, 0xe6, 0x88, 0x67, 0xf5, 0x58, 0xd2, 0xfe, + 0x62, 0xd3, 0xcd, 0x15, 0xbf, 0x3c, 0x7e, 0x9d, 0xb1, 0xd2, 0xda, 0xe4, + 0x2d, 0x10, 0x21, 0x61, 0x7e, 0x90, 0x8b, 0xc5, 0x3d, 0x7a, 0x54, 0x68, + 0xc3, 0x2b, 0x97, 0x05, 0x51, 0xbb, 0x86, 0x8c, 0x76, 0x65, 0x14, 0xdf, + 0x83, 0x87, 0x66, 0x22, 0x94, 0x50, 0x5d, 0x13, 0x71, 0xfc, 0x36, 0x4c, + 0xe4, 0x74, 0x10, 0xa9, 0x05, 0x68, 0x2e, 0xc4, 0x99, 0x54, 0xca, 0x00, + 0x25, 0xf2, 0x31, 0xd0, 0xa0, 0x3a, 0x43, 0xc1, 0x38, 0x36, 0x5b, 0xb5, + 0x4d, 0x81, 0xd9, 0xb7, 0x4e, 0xb9, 0xd2, 0x99, 0x51, 0xdd, 0x72, 0xaa, + 0xda, 0xf5, 0x2b, 0x29, 0xe5, 0x03, 0x2b, 0x56, 0x20, 0x79, 0xc1, 0x37, + 0x6d, 0x46, 0x81, 0xfd, 0xce, 0x39, 0xd2, 0xa5, 0x83, 0x2e, 0x05, 0xa1, + 0xf7, 0xf1, 0x4a, 0x70, 0x71, 0x59, 0x80, 0xf6, 0x9b, 0x6f, 0xd2, 0x2a, + 0xad, 0xd8, 0xcd, 0x63, 0xd2, 0xaa, 0x2f, 0xcd, 0xad, 0xb6, 0xb4, 0x34, + 0xd8, 0xc7, 0x2a, 0x13, 0x47, 0xa2, 0xcb, 0xe3, 0xae, 0x8d, 0xb8, 0x77, + 0x0b, 0x26, 0x72, 0xac, 0xa7, 0x66, 0x95, 0x54, 0xb3, 0xbf, 0xf5, 0x2d, + 0xd9, 0xee, 0xb1, 0x18, 0xe4, 0xb5, 0x0f, 0xb4, 0xa2, 0xfc, 0xc5, 0xc1, + 0xc6, 0x32, 0x15, 0x8b, 0x1c, 0xb3, 0x15, 0x94, 0x5d, 0xa9, 0x5c, 0x61, + 0x45, 0x2a, 0x88, 0x18, 0xa6, 0x7a, 0x40, 0x59, 0x70, 0x74, 0xa3, 0x72, + 0x95, 0x05, 0xa7, 0x15, 0x98, 0xd4, 0x20, 0xfe, 0xad, 0xc8, 0xc6, 0x71, + 0x3b, 0x28, 0x9c, 0x93, 0xc4, 0x25, 0xb0, 0xc1, 0x88, 0xc5, 0x51, 0x92, + 0x0e, 0x60, 0xe2, 0x07, 0x72, 0xb2, 0x68, 0xb4, 0xec, 0x26, 0x13, 0xbf, + 0xa5, 0x7e, 0x6d, 0x73, 0xd7, 0x35, 0x89, 0x95, 0x8e, 0x4a, 0x45, 0x89, + 0xdc, 0x94, 0x2b, 0x15, 0xcd, 0xcc, 0xb1, 0x45, 0x29, 0x18, 0x41, 0x93, + 0x42, 0x37, 0x30, 0x2b, 0xc5, 0x54, 0x85, 0x0e, 0x5f, 0x69, 0x10, 0xf4, + 0xb5, 0x3e, 0x1b, 0x92, 0xab, 0x64, 0xa7, 0xcb, 0x80, 0xa5, 0xba, 0x5e, + 0x52, 0x4d, 0x74, 0xcc, 0x4e, 0xc7, 0xba, 0xf2, 0xf1, 0xc2, 0x32, 0x2f, + 0x10, 0x95, 0xe5, 0x6f, 0x1d, 0xf8, 0x53, 0x80, 0xf9, 0x41, 0xd3, 0x09, + 0x0b, 0x1d, 0x32, 0x52, 0xd8, 0x02, 0x17, 0xf5, 0x1a, 0xa7, 0x53, 0xb1, + 0x9a, 0xd7, 0xd4, 0x7d, 0xe8, 0xf2, 0x65, 0x81, 0xbf, 0x99, 0x8f, 0xef, + 0x31, 0xf7, 0x1c, 0x32, 0xd3, 0x0c, 0x63, 0x44, 0xed, 0x8f, 0xc9, 0xa6, + 0xe6, 0x04, 0x66, 0x62, 0xd5, 0x0b, 0xa5, 0x25, 0x41, 0x2c, 0xbe, 0x27, + 0xa5, 0x92, 0xf7, 0x1b, 0x1b, 0x69, 0x8c, 0xf9, 0xd8, 0x5d, 0x46, 0x2a, + 0x25, 0x25, 0x67, 0x96, 0x3d, 0x2d, 0x16, 0x7e, 0x1b, 0xd5, 0x13, 0x49, + 0xe0, 0xb2, 0x43, 0x1f, 0x29, 0xac, 0x39, 0x71, 0x64, 0x99, 0x35, 0x01, + 0x01, 0xc3, 0x77, 0xa6, 0x48, 0xc9, 0xc8, 0xb8, 0xc8, 0xeb, 0x92, 0x4b, + 0x09, 0xa5, 0xdc, 0xba, 0xc3, 0x35, 0xa5, 0xd4, 0x4a, 0x59, 0xbe, 0x11, + 0xae, 0x29, 0x17, 0xbf, 0x48, 0xa2, 0x20, 0x9e, 0x7e, 0x6d, 0x59, 0xb9, + 0x84, 0x98, 0x57, 0xdb, 0xb4, 0x6a, 0xca, 0x6e, 0xb7, 0x96, 0xc8, 0x24, + 0x7c, 0x5e, 0x5e, 0x48, 0x5f, 0x57, 0x58, 0x28, 0xb2, 0xbe, 0xa4, 0x50, + 0xe8, 0x66, 0x62, 0x42, 0xc1, 0x9b, 0xca, 0x28, 0xd9, 0x11, 0x53, 0x42, + 0x4a, 0x66, 0xb0, 0x98, 0xf2, 0x4b, 0x43, 0x39, 0x90, 0xcc, 0x52, 0x11, + 0xd1, 0xc2, 0x22, 0x31, 0xfe, 0x8f, 0xb7, 0x2e, 0xd0, 0xcd, 0xda, 0xd8, + 0xb1, 0x80, 0xd3, 0x72, 0x78, 0xe5, 0x3c, 0x1c, 0xe1, 0x3e, 0x6f, 0x76, + 0xae, 0xeb, 0x2b, 0xc7, 0x01, 0x47, 0xb7, 0xf9, 0x48, 0xa8, 0x6e, 0xd7, + 0x2a, 0x11, 0x84, 0x4b, 0x8f, 0x25, 0xba, 0xb9, 0xc7, 0xa4, 0x97, 0xf4, + 0xc5, 0x3c, 0x1a, 0x63, 0xa9, 0xf9, 0xa4, 0x55, 0x6f, 0xee, 0xee, 0xd5, + 0x9b, 0x78, 0x57, 0x70, 0xab, 0xd9, 0x2e, 0xc9, 0x97, 0x82, 0xf3, 0xf2, + 0x39, 0xa6, 0x93, 0x34, 0xaa, 0x10, 0xd4, 0x9c, 0x36, 0x24, 0x94, 0xac, + 0x6f, 0xb8, 0x18, 0xbe, 0x4a, 0x9d, 0xbd, 0x66, 0x49, 0x73, 0x17, 0x1f, + 0xc6, 0x35, 0x7b, 0x2a, 0x5c, 0x9b, 0xf7, 0x3d, 0x9b, 0xed, 0x63, 0x11, + 0x1d, 0xdc, 0x3e, 0x1d, 0xca, 0x1d, 0x78, 0x0f, 0x5f, 0xf0, 0x5f, 0x3a, + 0x4f, 0x6f, 0x0f, 0x7e, 0xd8, 0xc0, 0x5f, 0x36, 0x93, 0xae, 0x6f, 0xa3, + 0xbc, 0x36, 0xff, 0x65, 0xf2, 0x22, 0x4f, 0x16, 0xdb, 0x6b, 0x3c, 0x6f, + 0xe4, 0xb2, 0xb0, 0xe9, 0x43, 0x52, 0x04, 0xd6, 0x38, 0xf7, 0x8b, 0x13, + 0x3a, 0x3d, 0xc7, 0x75, 0x22, 0xec, 0x39, 0xff, 0xf4, 0x59, 0x26, 0xaa, + 0x43, 0xda, 0xa7, 0xd4, 0xbe, 0xb4, 0xbd, 0x4d, 0x1f, 0xbe, 0x8e, 0x37, + 0xbe, 0x9d, 0x7a, 0x6a, 0xe7, 0x1b, 0x6f, 0xef, 0x90, 0x35, 0x97, 0xe1, + 0x07, 0x53, 0xef, 0xb1, 0xd9, 0xfd, 0xaa, 0xcb, 0xc6, 0x37, 0xa3, 0x67, + 0xd3, 0xa6, 0xbc, 0xaf, 0xb5, 0xa1, 0x92, 0xe2, 0x0b, 0xb3, 0x73, 0x60, + 0x70, 0x11, 0x4c, 0x1a, 0xb5, 0x49, 0x48, 0x7b, 0x8a, 0x9b, 0xe6, 0xb9, + 0xef, 0x11, 0x1e, 0xf3, 0x4c, 0xbb, 0xcd, 0xd2, 0x25, 0x70, 0x67, 0x6d, + 0x0a, 0x62, 0x78, 0xee, 0x4f, 0x13, 0x65, 0x84, 0x47, 0xe1, 0x13, 0x2a, + 0x37, 0xef, 0xe0, 0x38, 0x24, 0xdc, 0x26, 0x64, 0x2c, 0xd8, 0x4b, 0x48, + 0xf7, 0x55, 0x99, 0xfa, 0xe3, 0x2e, 0x10, 0xb3, 0x15, 0x47, 0x1f, 0xda, + 0x33, 0x88, 0xe9, 0x52, 0xcb, 0xd4, 0xa3, 0x3f, 0x8d, 0x9f, 0xf8, 0x34, + 0xaa, 0x79, 0x52, 0xcd, 0x7f, 0x39, 0xef, 0xe0, 0xdd, 0xfe, 0x01, 0x7d, + 0x8c, 0xe8, 0xa3, 0x47, 0x1f, 0x63, 0x71, 0xde, 0x29, 0x35, 0xd4, 0x1f, + 0xf6, 0xef, 0xcf, 0x5b, 0x0c, 0xc4, 0x9f, 0x23, 0xfe, 0xec, 0xb5, 0x14, + 0x5c, 0x2b, 0x0d, 0xd8, 0x66, 0x40, 0xfe, 0x1c, 0xf1, 0x67, 0xaf, 0xad, + 0x00, 0xdb, 0x09, 0x40, 0x7d, 0x46, 0x46, 0xbe, 0x74, 0xcb, 0xe3, 0xdd, + 0xde, 0xe8, 0x17, 0x2a, 0x95, 0x5f, 0x0f, 0xc5, 0x09, 0xb1, 0x00, 0x5b, + 0x7b, 0xcd, 0xd6, 0xf0, 0xfc, 0x54, 0xd6, 0x80, 0x76, 0x92, 0x24, 0x2b, + 0x71, 0x8a, 0x00, 0x55, 0xdc, 0x3e, 0xf2, 0xcc, 0x6d, 0x42, 0xcb, 0x8c, + 0x6f, 0x9c, 0x2a, 0x69, 0x5e, 0xe2, 0x7b, 0x6a, 0x20, 0x92, 0xe5, 0x80, + 0xf4, 0xb4, 0x18, 0xc8, 0xc8, 0xd0, 0x09, 0x75, 0xba, 0x18, 0xa4, 0x1b, + 0x12, 0xfb, 0xf2, 0x31, 0x41, 0x19, 0x9f, 0xf2, 0xee, 0x56, 0x78, 0xa1, + 0xa6, 0x0c, 0xdd, 0x50, 0x25, 0x5b, 0x35, 0x55, 0x07, 0xb9, 0x27, 0x34, + 0x46, 0x63, 0x5a, 0x9c, 0x22, 0x24, 0xaf, 0xa2, 0x7d, 0x3e, 0x43, 0x41, + 0x6f, 0xf7, 0xa2, 0xab, 0x8b, 0xa6, 0x01, 0xf9, 0x44, 0x74, 0x3e, 0x22, + 0x0a, 0xe5, 0x75, 0x24, 0x1e, 0x5d, 0xb7, 0x63, 0xf6, 0x3e, 0xfd, 0x0a, + 0x47, 0x90, 0x5d, 0xd7, 0xb6, 0x7e, 0x16, 0x5a, 0xb4, 0xf1, 0x99, 0x37, + 0xf7, 0x5a, 0x27, 0xea, 0x4d, 0x9a, 0xbd, 0x0b, 0xeb, 0x25, 0x12, 0x46, + 0xb6, 0xf5, 0x2b, 0x07, 0xe7, 0x65, 0xfc, 0xef, 0x7f, 0x8f, 0x36, 0x33, + 0x01, 0xbf, 0x3c, 0x9f, 0x35, 0xb0, 0x10, 0x7b, 0x09, 0x2e, 0x4e, 0xe4, + 0xe6, 0xad, 0xe0, 0xfb, 0xdf, 0x8b, 0x37, 0x48, 0xfc, 0x31, 0x2c, 0x87, + 0x9c, 0x7a, 0xe4, 0x56, 0x94, 0x06, 0x4a, 0xd7, 0xcf, 0xdc, 0xf9, 0x95, + 0x2a, 0x6a, 0xa0, 0xa5, 0x91, 0x63, 0x22, 0x32, 0x8d, 0xd9, 0xe2, 0x4b, + 0x08, 0x71, 0x55, 0x97, 0x0b, 0xcf, 0x3c, 0x00, 0xdd, 0x2e, 0x51, 0x78, + 0xfc, 0x10, 0x3f, 0x1f, 0x57, 0xaa, 0xf2, 0x40, 0x82, 0x4e, 0xe3, 0x07, + 0xa4, 0xf2, 0x69, 0x04, 0x9d, 0x48, 0xbf, 0x91, 0xc6, 0x47, 0x11, 0xe2, + 0x44, 0x7a, 0xa0, 0x54, 0xa5, 0x5c, 0x3a, 0x59, 0x3e, 0x21, 0x5d, 0xaa, + 0x97, 0x4e, 0xc6, 0x03, 0x51, 0xdb, 0xb7, 0x62, 0xde, 0x22, 0x6a, 0xf9, + 0x2c, 0x6b, 0x38, 0x78, 0xf0, 0x2b, 0xdb, 0xd5, 0x85, 0x64, 0x42, 0xcc, + 0x63, 0x3a, 0x53, 0x27, 0x69, 0x66, 0xd3, 0xb9, 0x2a, 0x45, 0x73, 0x9d, + 0xc9, 0xd5, 0x49, 0x86, 0xfd, 0x74, 0x7e, 0x9c, 0x16, 0xd7, 0x23, 0x9d, + 0xaf, 0x93, 0x50, 0xa1, 0x84, 0xac, 0x55, 0xf3, 0x7f, 0x27, 0x2f, 0x5b, + 0xe3, 0x3a, 0x49, 0xa5, 0x53, 0x29, 0xba, 0x74, 0xea, 0x45, 0xa7, 0x19, + 0x14, 0xfc, 0xd2, 0x11, 0x23, 0x8f, 0xd7, 0x3d, 0x4d, 0x93, 0x33, 0x3e, + 0xd1, 0x1b, 0xed, 0x90, 0xfc, 0x39, 0x96, 0x49, 0x11, 0x00, 0x67, 0x7c, + 0xd6, 0x72, 0x29, 0x82, 0xa0, 0xf4, 0xcf, 0x5a, 0x36, 0x85, 0x10, 0x9c, + 0xf1, 0xd9, 0xc8, 0xa7, 0x08, 0x46, 0xe6, 0x00, 0x68, 0x5f, 0xa9, 0x9c, + 0xaa, 0x92, 0xba, 0xeb, 0xc4, 0x28, 0xb4, 0xce, 0x78, 0xce, 0xe9, 0x65, + 0xdb, 0x05, 0x2e, 0xd9, 0xfd, 0xe2, 0x51, 0x9b, 0x46, 0xf9, 0x07, 0xc8, + 0xe0, 0x84, 0x15, 0x6e, 0xb8, 0x93, 0x2f, 0xfb, 0xc5, 0xc0, 0xcd, 0x96, + 0xba, 0x1e, 0xdb, 0x27, 0x7d, 0xe3, 0x5d, 0x2f, 0xbe, 0x14, 0x85, 0x89, + 0x82, 0xde, 0xef, 0x31, 0x0a, 0x94, 0x7f, 0x70, 0x09, 0xe9, 0xd5, 0xf9, + 0x8e, 0xd1, 0xab, 0xaa, 0xf5, 0x83, 0x4b, 0x16, 0x55, 0xe2, 0x99, 0x04, + 0xa3, 0x1e, 0x2b, 0xbf, 0xdf, 0x5f, 0x95, 0x13, 0xbc, 0xea, 0xb7, 0x88, + 0x13, 0x07, 0x16, 0x2b, 0xf8, 0xe9, 0x87, 0x37, 0xaf, 0xc9, 0xd1, 0x78, + 0x48, 0x10, 0x60, 0xe1, 0x83, 0x0f, 0xe8, 0xf2, 0x27, 0x92, 0xaf, 0xa2, + 0x54, 0xb5, 0x62, 0x9e, 0x54, 0xa3, 0xea, 0x07, 0xc3, 0xcd, 0xe7, 0xe4, + 0x6d, 0x82, 0x90, 0xf4, 0x09, 0x0c, 0x91, 0x14, 0xb3, 0x49, 0x4e, 0x79, + 0x5f, 0xd2, 0x9a, 0x25, 0x4b, 0xc9, 0x14, 0xb0, 0x52, 0x38, 0xb7, 0xb4, + 0x2e, 0x29, 0x5d, 0xfa, 0x2a, 0x65, 0x74, 0x53, 0x48, 0x63, 0xa7, 0xa1, + 0x8b, 0x5f, 0x59, 0x14, 0x71, 0x58, 0xab, 0x65, 0x9a, 0xa5, 0x6b, 0x5b, + 0xc2, 0x88, 0xab, 0x1e, 0x80, 0x5c, 0x2a, 0x61, 0x94, 0x4d, 0xe8, 0xad, + 0xd9, 0x1e, 0x44, 0x3f, 0x2f, 0xff, 0x04, 0x42, 0x8c, 0x94, 0x2b, 0xe3, + 0xa3, 0xf7, 0x66, 0xaf, 0x57, 0x9f, 0x56, 0xae, 0x42, 0xb9, 0x94, 0x5e, + 0x6b, 0xcd, 0x2a, 0xb5, 0x56, 0xa8, 0x52, 0x6b, 0x65, 0x84, 0xf4, 0xaa, + 0xec, 0xf5, 0xea, 0xd4, 0xce, 0xd5, 0x29, 0x97, 0xd2, 0x6b, 0xaf, 0x59, + 0xa7, 0xf6, 0x0a, 0x75, 0x6a, 0x6b, 0x2d, 0x34, 0x63, 0x1b, 0xdf, 0x3e, + 0x09, 0x73, 0xcc, 0x30, 0x14, 0x7c, 0x8a, 0xef, 0x2d, 0x9b, 0x8f, 0x31, + 0x96, 0x7d, 0xf7, 0xee, 0x0d, 0x5c, 0x06, 0x7d, 0xaa, 0xd1, 0xd8, 0x21, + 0x09, 0x2f, 0x4d, 0x79, 0x58, 0x56, 0x43, 0xab, 0x19, 0x76, 0x64, 0x57, + 0xb3, 0xba, 0xa6, 0x3f, 0x4a, 0xca, 0xb2, 0x53, 0xa6, 0x61, 0x64, 0x5a, + 0x12, 0x8a, 0x7b, 0x6b, 0x1a, 0x88, 0x93, 0x52, 0x30, 0xd4, 0xed, 0x33, + 0x40, 0x9c, 0x96, 0x86, 0x32, 0x43, 0x92, 0x01, 0x53, 0x89, 0x49, 0x38, + 0x33, 0x32, 0x19, 0x30, 0x99, 0xa6, 0xa0, 0x8a, 0x05, 0x56, 0x28, 0x25, + 0x23, 0x24, 0x86, 0x95, 0x2e, 0x0c, 0x2b, 0x83, 0x11, 0x14, 0xf0, 0xc8, + 0x37, 0x7d, 0xf5, 0x46, 0x0a, 0x11, 0xa7, 0xab, 0x71, 0x2a, 0xa7, 0x4a, + 0x85, 0x36, 0xb7, 0x81, 0x35, 0xf2, 0xdf, 0x27, 0xc5, 0xba, 0xac, 0x64, + 0xa3, 0x9a, 0xb6, 0xd0, 0x5c, 0xd6, 0x08, 0x7b, 0x79, 0x51, 0x14, 0xce, + 0x9a, 0x73, 0xd3, 0x04, 0xcb, 0xf9, 0x65, 0x10, 0x4d, 0x73, 0xd1, 0xa3, + 0xc1, 0x6a, 0x9a, 0x6c, 0x39, 0x5a, 0x09, 0xa3, 0x11, 0x2d, 0x7f, 0x36, + 0x98, 0xc9, 0x37, 0xe5, 0xeb, 0x73, 0xbb, 0x09, 0x22, 0x38, 0x2d, 0xeb, + 0x0e, 0xf8, 0x3c, 0xd2, 0xa7, 0xc6, 0xe7, 0x7d, 0x33, 0x84, 0x26, 0x51, + 0x58, 0x07, 0x5d, 0xab, 0xb9, 0x97, 0xba, 0xb1, 0x96, 0x11, 0xd5, 0x39, + 0x38, 0xfb, 0xd6, 0x9e, 0x40, 0x5d, 0xd2, 0x09, 0x14, 0xec, 0xc7, 0x38, + 0x8d, 0xad, 0x12, 0x5b, 0xbf, 0xeb, 0xe9, 0x77, 0x0c, 0xff, 0xae, 0xb7, + 0x35, 0xaa, 0x5a, 0x25, 0x3c, 0x62, 0xa7, 0xfe, 0x59, 0x29, 0x3d, 0x26, + 0xdc, 0x1c, 0x37, 0x21, 0x53, 0xa8, 0x35, 0x25, 0x83, 0xfb, 0xfb, 0xdf, + 0x8b, 0x35, 0x4e, 0xbd, 0xba, 0x2d, 0xaf, 0x72, 0x37, 0xd4, 0xb7, 0x9b, + 0x2a, 0xdb, 0x4d, 0x35, 0xed, 0x3e, 0xd4, 0xec, 0x4e, 0x75, 0x4c, 0x9b, + 0x88, 0xfe, 0x98, 0x5e, 0x25, 0x6c, 0x05, 0xfc, 0xc9, 0xf9, 0x34, 0x83, + 0x51, 0x86, 0x55, 0xfa, 0xe9, 0xc6, 0x48, 0x28, 0xe8, 0x63, 0x7c, 0x28, + 0x73, 0x96, 0x37, 0xa7, 0xf9, 0x28, 0xd4, 0x63, 0x59, 0xea, 0x71, 0xd5, + 0x2a, 0x57, 0xba, 0x07, 0x97, 0x29, 0x8f, 0x66, 0x62, 0x9f, 0xe1, 0xf8, + 0x06, 0xee, 0x15, 0x89, 0x4d, 0xb9, 0x8d, 0xdf, 0x74, 0x2c, 0x95, 0x66, + 0x2c, 0x3d, 0x9c, 0x12, 0xa7, 0x59, 0x4a, 0x03, 0xb3, 0x32, 0x3a, 0xc8, + 0x9c, 0x3a, 0x63, 0x1d, 0xdb, 0x3e, 0x7e, 0x87, 0xa0, 0x62, 0x27, 0x66, + 0x23, 0xe1, 0x5e, 0x69, 0xfd, 0xd2, 0xbd, 0x25, 0xed, 0xb0, 0x71, 0x20, + 0xa9, 0x59, 0xb1, 0x92, 0x63, 0x5e, 0x72, 0x30, 0xb8, 0xbe, 0x70, 0x2b, + 0x5d, 0xb8, 0xb5, 0x5e, 0xe9, 0x76, 0xba, 0x74, 0x7b, 0x41, 0xe9, 0xbc, + 0x79, 0x36, 0x99, 0x19, 0x47, 0x3b, 0xee, 0x4f, 0x95, 0x64, 0x0f, 0xd8, + 0x64, 0xeb, 0x30, 0xc1, 0xc2, 0xf6, 0x49, 0xb0, 0xa2, 0xbc, 0xde, 0x1b, + 0xb6, 0xd1, 0x48, 0x0f, 0xc6, 0xab, 0xca, 0xb9, 0x95, 0x2e, 0xde, 0x5a, + 0xb7, 0x7c, 0x3b, 0x5d, 0xbe, 0xad, 0xcb, 0xdf, 0x69, 0x4b, 0x91, 0x3d, + 0xd9, 0x64, 0x43, 0x11, 0xbd, 0xc2, 0x76, 0x32, 0x8c, 0xc8, 0xf9, 0xc8, + 0x0d, 0x5b, 0xa9, 0xa7, 0xbc, 0xa1, 0x55, 0x85, 0xdc, 0x4a, 0x97, 0x6e, + 0xad, 0x59, 0xbc, 0x9d, 0x2e, 0xde, 0x56, 0xc5, 0xef, 0xb4, 0x89, 0xc8, + 0x40, 0x6f, 0xb4, 0x8d, 0x88, 0x60, 0x71, 0x23, 0x25, 0x58, 0x91, 0x73, + 0xfa, 0x9b, 0x36, 0xd3, 0x5c, 0xf9, 0xa3, 0x2b, 0x0b, 0xba, 0x95, 0x2e, + 0xde, 0x5a, 0xb7, 0x7c, 0x3b, 0x5d, 0xbe, 0xad, 0xca, 0xdf, 0x6d, 0x4b, + 0xc9, 0x41, 0x6f, 0x93, 0x4d, 0x25, 0x29, 0x16, 0xb6, 0x55, 0x92, 0x19, + 0x1d, 0x5d, 0xc9, 0xb5, 0x96, 0x14, 0x8a, 0x09, 0xdb, 0xc6, 0xce, 0xdf, + 0x7a, 0x72, 0xd1, 0x91, 0x82, 0x67, 0x31, 0xa2, 0xbb, 0x0d, 0x17, 0x18, + 0x06, 0xf3, 0x31, 0x83, 0x8a, 0x99, 0xa4, 0x6c, 0xd6, 0x23, 0x60, 0x82, + 0x85, 0xa2, 0x4f, 0xb0, 0xa2, 0xc2, 0x7a, 0x0b, 0x04, 0xcf, 0x79, 0x99, + 0xc9, 0x54, 0x5e, 0xaa, 0x27, 0x94, 0x7b, 0xb7, 0x02, 0x65, 0x82, 0xc5, + 0xb2, 0xbc, 0x32, 0xde, 0x57, 0xaa, 0x52, 0x9e, 0xaa, 0x4f, 0x7f, 0x16, + 0xe0, 0x3b, 0x11, 0x50, 0x53, 0x39, 0x7a, 0x32, 0x40, 0x42, 0x4a, 0xcd, + 0x05, 0x6c, 0x17, 0x3b, 0x57, 0xcb, 0xfa, 0xaa, 0xa0, 0x4f, 0x7a, 0xad, + 0xab, 0x4e, 0x29, 0x9f, 0x3f, 0x95, 0x12, 0xd7, 0xcb, 0x94, 0x52, 0xe1, + 0xa7, 0x14, 0xda, 0xae, 0xa2, 0x9b, 0x9a, 0x15, 0xe4, 0x88, 0x3f, 0xb5, + 0x1a, 0xeb, 0x92, 0xa6, 0xab, 0x69, 0xd6, 0xa0, 0x9b, 0x8c, 0x92, 0x2b, + 0xc8, 0xec, 0x24, 0x38, 0x13, 0x9d, 0xa7, 0xb7, 0x64, 0x04, 0xd8, 0xca, + 0x91, 0x99, 0xf9, 0xb2, 0x21, 0x62, 0x18, 0x9e, 0xf9, 0x9a, 0x39, 0x98, + 0x5c, 0x09, 0xe8, 0xf2, 0x36, 0x2f, 0x56, 0xe2, 0x58, 0x79, 0x35, 0x93, + 0x50, 0xcb, 0x02, 0x0d, 0x67, 0xcf, 0x99, 0x15, 0xdc, 0xea, 0x1e, 0x58, + 0x97, 0x0b, 0x8d, 0xd6, 0xaa, 0x7d, 0x3a, 0xe7, 0x79, 0xa7, 0x73, 0x4d, + 0x84, 0x23, 0x67, 0x0a, 0x3e, 0xa0, 0xb7, 0x8e, 0xe8, 0xca, 0x35, 0xef, + 0x39, 0xe3, 0x50, 0x55, 0x8a, 0x7c, 0xd6, 0x4d, 0xe9, 0xf3, 0x9b, 0x02, + 0xc6, 0x8f, 0x27, 0x46, 0x69, 0xc7, 0x84, 0xac, 0x35, 0x17, 0x4a, 0x69, + 0x66, 0xc2, 0xb7, 0xfc, 0x3f, 0xaa, 0x3f, 0xd7, 0x67, 0x2d, 0x09, 0x90, + 0x87, 0xf1, 0x7f, 0x24, 0x00, 0xaa, 0xce, 0x5a, 0xf5, 0xa7, 0x81, 0xfb, + 0xff, 0x49, 0x00, 0x54, 0x9f, 0xf5, 0x24, 0x20, 0xc7, 0xc3, 0x75, 0x44, + 0xf0, 0x5f, 0x51, 0x51, 0xc9, 0xf6, 0x5a, 0x35, 0xc5, 0x40, 0xb5, 0x9e, + 0xb5, 0xdb, 0x54, 0x5d, 0xc0, 0xd8, 0xca, 0x86, 0xeb, 0x2a, 0x79, 0x8d, + 0xc5, 0xab, 0xc9, 0x54, 0x46, 0xa8, 0xe5, 0x7b, 0x54, 0xe8, 0x2c, 0xbf, + 0xba, 0x7e, 0x22, 0x31, 0x42, 0x9c, 0xd3, 0x1d, 0x16, 0xe5, 0x59, 0x80, + 0xf1, 0x76, 0xea, 0xd3, 0x7d, 0xcd, 0xb4, 0xbd, 0x8b, 0xe2, 0x30, 0x15, + 0xcb, 0x0c, 0x15, 0x80, 0x0a, 0xd4, 0x40, 0xf1, 0xeb, 0x37, 0xaf, 0x7f, + 0x8a, 0x12, 0xc7, 0xe2, 0x8f, 0x08, 0xa7, 0x44, 0xba, 0x66, 0x04, 0x80, + 0x03, 0xa1, 0xbc, 0x95, 0x3f, 0xa4, 0xad, 0xfc, 0x52, 0x38, 0x28, 0x93, + 0x74, 0x08, 0x52, 0xbe, 0xb3, 0xdc, 0x4e, 0x63, 0x36, 0xff, 0xb3, 0xf3, + 0xbc, 0x6d, 0x3d, 0x7a, 0x64, 0x71, 0x06, 0x61, 0x99, 0x85, 0xd2, 0x23, + 0x6f, 0x14, 0xbe, 0xa4, 0x2a, 0x92, 0xa3, 0x97, 0x42, 0x13, 0x4e, 0xb1, + 0xbe, 0x2e, 0xe8, 0xc2, 0x28, 0xc5, 0x51, 0x92, 0x94, 0x86, 0x7e, 0x00, + 0x6c, 0x8f, 0x1f, 0x83, 0x46, 0x9c, 0x54, 0x31, 0x98, 0xcd, 0x5f, 0x2c, + 0x83, 0x18, 0x2a, 0x81, 0xd3, 0x38, 0x05, 0x4b, 0x4b, 0x96, 0x4e, 0x66, + 0xfd, 0x3e, 0x46, 0xfc, 0x07, 0xa5, 0x5c, 0x61, 0xf9, 0x98, 0xc7, 0x73, + 0xad, 0x70, 0x2a, 0x09, 0xf4, 0x47, 0xc7, 0xc7, 0xef, 0x8e, 0x1f, 0x58, + 0xb9, 0x17, 0x1f, 0x49, 0x7a, 0x19, 0x5a, 0x57, 0x89, 0x80, 0x2a, 0xb5, + 0x72, 0x85, 0xdb, 0x8b, 0x8f, 0x8e, 0x97, 0xde, 0xbf, 0xa3, 0x5b, 0x63, + 0x2c, 0xd6, 0x80, 0x28, 0x88, 0x5d, 0x47, 0xc9, 0x99, 0x01, 0x7b, 0x79, + 0x54, 0x04, 0xc5, 0x00, 0xa4, 0xb4, 0x8c, 0x36, 0xeb, 0xd4, 0x61, 0x8d, + 0x84, 0x2f, 0xcf, 0x8c, 0xdb, 0x5e, 0x69, 0x5b, 0x89, 0x3e, 0x33, 0xbb, + 0x94, 0xb6, 0x00, 0xcc, 0xbb, 0x34, 0x70, 0xf8, 0x4b, 0xed, 0x87, 0x30, + 0xba, 0x23, 0x57, 0x55, 0x4d, 0x0f, 0x4a, 0xbd, 0xa2, 0xec, 0xa5, 0xf4, + 0xb5, 0xe4, 0xf6, 0x0d, 0x3e, 0x70, 0x8d, 0x4d, 0x43, 0x36, 0x5e, 0xdc, + 0x74, 0xf2, 0xa1, 0x03, 0x5c, 0xb9, 0x29, 0xa3, 0xa0, 0xf6, 0x47, 0x14, + 0x73, 0xd6, 0x93, 0x3b, 0xc5, 0x11, 0xef, 0xdc, 0xad, 0xb0, 0x6a, 0x28, + 0xa1, 0x96, 0xb2, 0x3a, 0xa1, 0x50, 0x77, 0xad, 0x9f, 0x9d, 0xbc, 0x7b, + 0x5b, 0x9f, 0xda, 0x01, 0x9f, 0x7a, 0x2e, 0xd0, 0x33, 0xb5, 0xe3, 0x7c, + 0xa2, 0xc2, 0xd8, 0x8c, 0xd4, 0x5c, 0x85, 0x91, 0xc1, 0x9b, 0x23, 0x10, + 0x9f, 0x99, 0x86, 0x91, 0x9e, 0xc4, 0xc6, 0xc6, 0xfc, 0x65, 0xa8, 0x31, + 0x58, 0x1d, 0x5b, 0x98, 0xb8, 0x42, 0xf1, 0x83, 0x3a, 0xb5, 0x61, 0x5e, + 0xed, 0x56, 0xfc, 0x67, 0xa6, 0x06, 0x4c, 0x5b, 0x1e, 0x5e, 0xb9, 0x54, + 0xb7, 0xc9, 0x1a, 0x6c, 0x55, 0xbc, 0x4b, 0x4f, 0x3e, 0x32, 0x9c, 0x9e, + 0x04, 0x99, 0xbf, 0xbc, 0x66, 0xe7, 0x93, 0xd7, 0xee, 0x01, 0xba, 0x7d, + 0xd5, 0xd9, 0xfa, 0x95, 0x5f, 0x3c, 0x87, 0x93, 0x6b, 0x7d, 0x3c, 0xc0, + 0x03, 0xcf, 0xac, 0xc2, 0x29, 0xc7, 0x1c, 0x18, 0x3d, 0x89, 0x34, 0x83, + 0x11, 0x1b, 0xf2, 0xe7, 0x27, 0x1e, 0x3a, 0x56, 0xcf, 0x0e, 0xca, 0x49, + 0xe0, 0xf8, 0x3e, 0xd3, 0xaa, 0xa5, 0x76, 0x1c, 0xd2, 0x34, 0xa6, 0xd1, + 0x28, 0xea, 0x64, 0x94, 0x96, 0xeb, 0x00, 0xcf, 0x79, 0xdb, 0xd9, 0x4a, + 0x3d, 0x40, 0xee, 0x50, 0xbb, 0x56, 0xfd, 0x0b, 0x95, 0x5f, 0x96, 0xbd, + 0x73, 0xc5, 0xff, 0x77, 0x79, 0x47, 0xa2, 0xdc, 0x3a, 0x11, 0xfb, 0x15, + 0x13, 0x8e, 0xe7, 0x40, 0x92, 0x36, 0xe9, 0xeb, 0x03, 0x5e, 0x08, 0x0c, + 0x94, 0x73, 0x86, 0x6b, 0xe8, 0xe3, 0x9a, 0x4e, 0xe7, 0x4d, 0x92, 0xba, + 0x6d, 0x20, 0x4d, 0x82, 0xed, 0xd0, 0x76, 0x4a, 0x19, 0xfe, 0x90, 0x5f, + 0x42, 0xd2, 0xee, 0x5a, 0x7b, 0xd9, 0x5e, 0x9b, 0x86, 0xb3, 0x03, 0x2f, + 0xc9, 0xae, 0xa4, 0xd5, 0x6a, 0xb5, 0xda, 0x5b, 0x22, 0xcf, 0x31, 0x41, + 0xaa, 0x0f, 0x50, 0x8c, 0xed, 0xef, 0x16, 0x00, 0x52, 0x5c, 0x83, 0x8c, + 0x9c, 0xbe, 0x21, 0xab, 0xc0, 0x10, 0x13, 0x03, 0x61, 0x5c, 0x4b, 0xba, + 0xb8, 0xbd, 0x57, 0x4a, 0x9a, 0x21, 0x26, 0x26, 0x46, 0x20, 0xf1, 0xcd, + 0x3a, 0x2d, 0x27, 0xce, 0x10, 0x13, 0x03, 0x23, 0x94, 0x38, 0x5e, 0x28, + 0xac, 0x26, 0x4e, 0x10, 0x13, 0x13, 0x23, 0x90, 0x38, 0xde, 0x4c, 0xac, + 0x26, 0x4e, 0x10, 0x13, 0x13, 0xa3, 0x9e, 0xb8, 0xb8, 0xe2, 0x08, 0xe9, + 0x65, 0xc4, 0x15, 0xc4, 0x44, 0x03, 0x0f, 0x22, 0x3b, 0x5f, 0xe5, 0xd5, + 0x64, 0x09, 0x62, 0xc2, 0xe0, 0x01, 0x72, 0x96, 0x17, 0x2e, 0xa3, 0x28, + 0xdc, 0x30, 0xcb, 0xe2, 0x18, 0x73, 0xa2, 0x53, 0x1a, 0x57, 0x63, 0x69, + 0x97, 0x35, 0x01, 0xcf, 0x24, 0x05, 0xe6, 0x69, 0xbe, 0xdc, 0xe2, 0xe0, + 0xd8, 0xf9, 0x96, 0x86, 0xec, 0x00, 0x63, 0xea, 0x56, 0x67, 0xb3, 0x58, + 0x55, 0x4b, 0x89, 0x20, 0x26, 0x1a, 0x78, 0x90, 0x94, 0xe8, 0xd2, 0x69, + 0x29, 0x59, 0x86, 0x98, 0xe8, 0x08, 0x01, 0x0d, 0x40, 0x97, 0x54, 0xe9, + 0x7e, 0x6a, 0x05, 0x75, 0xe7, 0x26, 0x2b, 0x14, 0x63, 0x21, 0xff, 0x2f, + 0xc6, 0x13, 0x25, 0x3f, 0x57, 0x99, 0x40, 0x5d, 0x03, 0x2b, 0x40, 0x0b, + 0x3e, 0xe0, 0x1d, 0x0c, 0x37, 0xa4, 0xe1, 0xf1, 0xba, 0x71, 0x9e, 0xdd, + 0xe9, 0x40, 0xb1, 0xf5, 0x93, 0xda, 0xd6, 0xe4, 0x45, 0xe4, 0x5c, 0xbd, + 0x10, 0xff, 0xce, 0xff, 0xbe, 0x0b, 0x61, 0x6c, 0xa2, 0x07, 0x80, 0x8c, + 0x02, 0x60, 0x0e, 0x2c, 0x98, 0x7b, 0xff, 0x66, 0x24, 0xb5, 0x9e, 0x98, + 0xb8, 0xe2, 0x9c, 0xa7, 0x17, 0x51, 0xe4, 0x5c, 0x12, 0xba, 0x67, 0xfa, + 0x89, 0x80, 0x4f, 0x23, 0x1c, 0xc8, 0x11, 0x78, 0x40, 0x13, 0x28, 0x1c, + 0xce, 0xa3, 0x7e, 0xf4, 0xc9, 0xfb, 0x5a, 0xc6, 0xe2, 0x4c, 0xa6, 0x7e, + 0x4c, 0x42, 0xd1, 0x72, 0x84, 0x94, 0xba, 0xda, 0xed, 0x08, 0x0c, 0x79, + 0x3c, 0x51, 0x62, 0x57, 0x0e, 0xef, 0xa4, 0xe4, 0xe3, 0xce, 0xfb, 0x9f, + 0x7c, 0xd3, 0xd1, 0xa1, 0xb3, 0xcd, 0xaa, 0x02, 0xfa, 0xf8, 0xcb, 0x77, + 0x3f, 0x37, 0xc0, 0x17, 0xf3, 0x75, 0x05, 0xf8, 0x27, 0x06, 0xec, 0x2c, + 0xaf, 0x22, 0xfd, 0xde, 0xd7, 0xcf, 0x9e, 0x7d, 0x61, 0x12, 0x9f, 0x35, + 0xe2, 0x3c, 0xbf, 0xc9, 0x5d, 0x68, 0x58, 0xc3, 0x91, 0x2a, 0xc5, 0x96, + 0x3c, 0x63, 0x4b, 0x94, 0x5d, 0x45, 0x0a, 0x0b, 0xc5, 0xd7, 0xc6, 0x09, + 0x5c, 0xf6, 0xc2, 0x5b, 0x24, 0x31, 0x90, 0xd5, 0xb2, 0x4c, 0x95, 0x34, + 0x42, 0x3c, 0x4b, 0x20, 0x48, 0x33, 0xf0, 0x01, 0xa9, 0xab, 0x65, 0x81, + 0x01, 0x43, 0x54, 0x15, 0x3c, 0x9a, 0x73, 0x90, 0x91, 0x89, 0x62, 0x89, + 0x93, 0xc9, 0x33, 0x12, 0xbc, 0x50, 0x80, 0x3c, 0x67, 0x3b, 0x1c, 0x81, + 0x63, 0x89, 0x81, 0x9b, 0xe2, 0x8c, 0x65, 0xb0, 0x69, 0x05, 0x17, 0xd7, + 0x0b, 0x2d, 0xbd, 0xe0, 0x56, 0xec, 0x39, 0x17, 0x0f, 0x2a, 0x24, 0x12, + 0x34, 0xb8, 0x49, 0x1c, 0x12, 0x56, 0x90, 0x0a, 0xc4, 0x29, 0x28, 0xb7, + 0x1d, 0xc6, 0x9a, 0xd1, 0x0c, 0x9b, 0x17, 0x6b, 0xca, 0x4a, 0xeb, 0x51, + 0x5a, 0x07, 0x46, 0xef, 0x44, 0x1d, 0xda, 0xbc, 0x7f, 0x3e, 0x5b, 0xdf, + 0x3c, 0x87, 0x23, 0x00, 0xa0, 0x98, 0xc8, 0xe0, 0xde, 0xd1, 0x53, 0x2d, + 0x4f, 0x23, 0x5b, 0x26, 0xa0, 0x7c, 0x7d, 0x71, 0xb1, 0x4c, 0x44, 0xa7, + 0xa3, 0x75, 0x3d, 0x4b, 0x08, 0x95, 0xbc, 0xc2, 0xb6, 0x40, 0xb6, 0xd9, + 0x84, 0x50, 0x8a, 0x6a, 0xc2, 0x33, 0x4b, 0x3b, 0x00, 0xb4, 0x2c, 0x6b, + 0x96, 0xeb, 0x59, 0x46, 0x79, 0x1c, 0x29, 0x3e, 0xca, 0xae, 0x9e, 0x44, + 0x57, 0x67, 0x8f, 0xa3, 0x25, 0x9c, 0x94, 0xdf, 0x2c, 0x47, 0xa8, 0x96, + 0x71, 0xb9, 0x70, 0x22, 0x91, 0x48, 0xc2, 0x20, 0x8d, 0xad, 0xb4, 0xa8, + 0x62, 0x05, 0xdc, 0x35, 0xb8, 0x02, 0x56, 0x6c, 0x0b, 0x95, 0x26, 0x1c, + 0x2e, 0x42, 0xac, 0x2d, 0xda, 0x8d, 0x63, 0x9d, 0x83, 0x83, 0x97, 0x3b, + 0xe3, 0x60, 0xec, 0xfe, 0xd9, 0x7a, 0x85, 0x24, 0x40, 0xd5, 0xde, 0xcd, + 0x61, 0x0d, 0x01, 0x3d, 0x22, 0xa1, 0x07, 0xd7, 0xeb, 0x1f, 0x21, 0x6f, + 0x9a, 0x5d, 0x4e, 0xd3, 0x14, 0x5f, 0x9b, 0x23, 0xdd, 0xde, 0x70, 0x7f, + 0x3f, 0xa8, 0xbe, 0xa0, 0x77, 0xb2, 0x3f, 0x56, 0x0c, 0xb2, 0x7a, 0x7c, + 0x8c, 0x71, 0xed, 0x4a, 0x6a, 0xbb, 0xa0, 0x4d, 0x28, 0xf0, 0xd3, 0xba, + 0x5e, 0xd5, 0xae, 0xa7, 0x2c, 0x7b, 0x6e, 0x8a, 0xd6, 0x5e, 0x47, 0xe5, + 0x57, 0x1b, 0x7e, 0x42, 0x15, 0xb6, 0xa4, 0x7a, 0xc7, 0x5c, 0x3b, 0x81, + 0x1e, 0xdc, 0xdd, 0x9b, 0xfb, 0x81, 0x5f, 0x89, 0x7b, 0x64, 0x45, 0x88, + 0xef, 0xa2, 0x84, 0xeb, 0x45, 0x7e, 0x29, 0x3c, 0x64, 0x47, 0x20, 0xf8, + 0x8c, 0x91, 0xce, 0xa1, 0xc7, 0xc7, 0xf2, 0x3d, 0x17, 0x0c, 0x4f, 0x05, + 0x46, 0xd7, 0xb7, 0x97, 0xf4, 0x82, 0xca, 0xb5, 0x7d, 0xb6, 0x42, 0x7a, + 0x97, 0xa6, 0x5d, 0x90, 0xbb, 0x4d, 0x4a, 0xf7, 0x33, 0x62, 0xad, 0xd2, + 0x78, 0xb2, 0x75, 0xda, 0x75, 0xe7, 0x6e, 0x46, 0x3e, 0x48, 0xc6, 0x46, + 0xf1, 0x4f, 0x6f, 0xc8, 0x45, 0x44, 0x21, 0xec, 0x07, 0x58, 0xaf, 0xca, + 0x4d, 0x30, 0x0e, 0x8b, 0xf9, 0xb9, 0xd8, 0x7f, 0xaa, 0x9d, 0xe6, 0x28, + 0x15, 0xc0, 0x40, 0x20, 0x72, 0x73, 0x2d, 0x5a, 0x5a, 0x41, 0xb5, 0x0d, + 0x5d, 0x70, 0xfd, 0xa3, 0x43, 0x31, 0x01, 0x73, 0x0b, 0xab, 0xca, 0x3c, + 0xa9, 0x88, 0x3e, 0x53, 0xa7, 0xc3, 0x1c, 0xcc, 0x5d, 0xc6, 0xbd, 0xcf, + 0x22, 0x7c, 0x60, 0x00, 0x66, 0x5d, 0x44, 0x85, 0x8f, 0xce, 0xd3, 0xf5, + 0x95, 0x0a, 0x02, 0xaf, 0xc7, 0x8f, 0x1f, 0xf0, 0x2e, 0x9f, 0x71, 0x00, + 0x29, 0x64, 0x96, 0xac, 0x50, 0x5e, 0xae, 0x0e, 0x11, 0x51, 0x50, 0x22, + 0xbd, 0xbf, 0xf9, 0xf5, 0x48, 0x03, 0xb0, 0x55, 0x09, 0x69, 0xb8, 0xba, + 0xe4, 0xef, 0x62, 0x04, 0x5b, 0xaa, 0x6d, 0xa5, 0x87, 0xa8, 0x88, 0x06, + 0xaa, 0x37, 0xb1, 0x55, 0xaf, 0x12, 0xde, 0x34, 0x23, 0x94, 0x66, 0xeb, + 0x22, 0x7f, 0x28, 0x51, 0x26, 0x71, 0x61, 0xaf, 0x66, 0xeb, 0xb3, 0x5b, + 0xdb, 0x88, 0xc9, 0x39, 0xc9, 0xa4, 0xac, 0x64, 0x91, 0x0f, 0x48, 0xc5, + 0xfc, 0xd3, 0xdc, 0xde, 0xc3, 0x5f, 0xd6, 0xf6, 0x9e, 0x31, 0x7a, 0x90, + 0xbd, 0x52, 0xf8, 0x4e, 0x83, 0xf2, 0x83, 0xc8, 0x01, 0xcd, 0x4b, 0xbf, + 0x38, 0x2f, 0xe6, 0x13, 0xb0, 0xe7, 0xd7, 0x1f, 0x72, 0xd3, 0x79, 0x69, + 0xe7, 0xa9, 0xa7, 0x75, 0x68, 0xb7, 0xf9, 0x25, 0x28, 0x82, 0xf6, 0x9d, + 0x05, 0xbb, 0x72, 0xda, 0xdb, 0x23, 0x7c, 0xff, 0xf2, 0xc4, 0x9a, 0x28, + 0x1b, 0x27, 0x11, 0x6e, 0xb3, 0xb3, 0x24, 0xac, 0x3e, 0x61, 0x76, 0x22, + 0xe3, 0xdc, 0x01, 0x44, 0x76, 0xf5, 0x3e, 0xe0, 0xc9, 0xc3, 0x87, 0x0f, + 0xe5, 0xcf, 0xd8, 0x98, 0x72, 0x2e, 0xd7, 0x33, 0x99, 0xff, 0x1e, 0x7c, + 0x8d, 0x4f, 0xc8, 0xdc, 0x0a, 0x93, 0xb1, 0x38, 0xbf, 0x2d, 0x24, 0xd7, + 0x3d, 0xed, 0x45, 0x77, 0xe2, 0xc9, 0xe8, 0x23, 0xec, 0x85, 0x0b, 0xf1, + 0x32, 0x77, 0x0f, 0x07, 0x89, 0x47, 0x8a, 0xe7, 0xa2, 0x44, 0x39, 0x02, + 0xc7, 0x8f, 0x14, 0xfa, 0xa3, 0x1e, 0x95, 0xd4, 0x8b, 0x1e, 0x19, 0xc3, + 0x0b, 0x9d, 0x95, 0x7b, 0x17, 0x06, 0xc7, 0x80, 0x2e, 0x62, 0x0a, 0xf5, + 0x0a, 0xaa, 0xdd, 0xfa, 0xb1, 0x2b, 0x01, 0xd3, 0xa5, 0x61, 0x58, 0xc3, + 0xd6, 0x43, 0x58, 0x48, 0x8d, 0xc5, 0xaf, 0x8f, 0x8e, 0x3e, 0x38, 0x3e, + 0xb6, 0x1a, 0x00, 0xed, 0x5c, 0x8f, 0x87, 0x94, 0x90, 0xa5, 0xad, 0xdd, + 0x03, 0x68, 0xcc, 0x82, 0x69, 0x40, 0x26, 0x0e, 0x41, 0x80, 0xe2, 0x01, + 0x2d, 0x72, 0x1b, 0x5b, 0xeb, 0xa2, 0x0b, 0x81, 0x58, 0xc4, 0xec, 0x59, + 0xf5, 0x8f, 0x60, 0x93, 0x2e, 0x16, 0xfd, 0x42, 0x20, 0x9e, 0x9a, 0xb6, + 0xaf, 0x5f, 0xe0, 0x3a, 0xde, 0x1e, 0x02, 0xcc, 0x69, 0x6e, 0x22, 0x2e, + 0xb8, 0xb8, 0x1d, 0xf5, 0x05, 0xed, 0x67, 0x71, 0x24, 0x53, 0x3a, 0x21, + 0x6f, 0x3e, 0x0f, 0xc7, 0xae, 0xb3, 0x59, 0xe3, 0x2c, 0x26, 0xc4, 0xb4, + 0x68, 0x07, 0x48, 0x3a, 0x63, 0xa0, 0x7f, 0x48, 0xc4, 0x31, 0x3c, 0x5e, + 0x9a, 0x19, 0xf6, 0xb9, 0x24, 0x06, 0xf8, 0x5e, 0x34, 0x34, 0x6f, 0xdd, + 0x13, 0x61, 0x97, 0x2e, 0x1a, 0xfb, 0x10, 0xca, 0x78, 0x78, 0x61, 0xb3, + 0x7a, 0xef, 0xed, 0x94, 0x62, 0xf1, 0x4d, 0x07, 0x1a, 0x19, 0x2d, 0xc1, + 0x7d, 0xf4, 0x64, 0x83, 0x69, 0x4d, 0xb6, 0x5e, 0x1d, 0xab, 0x58, 0x37, + 0x70, 0x12, 0x0b, 0x5b, 0x32, 0x4b, 0xb8, 0x91, 0x53, 0xb0, 0x65, 0xdf, + 0x02, 0x8c, 0x44, 0xbe, 0x64, 0xc4, 0x28, 0xbf, 0x08, 0xff, 0x4f, 0xe0, + 0x4f, 0x81, 0x01, 0x09, 0xcc, 0x36, 0x33, 0x3a, 0x06, 0x0d, 0x8c, 0x4c, + 0x40, 0x79, 0x61, 0x4c, 0x3b, 0x90, 0x85, 0x52, 0x3c, 0x93, 0xea, 0xec, + 0xbd, 0xdb, 0x23, 0xb5, 0x68, 0x89, 0x3b, 0x82, 0x25, 0x7a, 0x1e, 0xff, + 0x7c, 0x99, 0x5c, 0x80, 0x3d, 0x52, 0x13, 0x72, 0x1e, 0xfc, 0x17, 0xb4, + 0x27, 0x02, 0x1f, 0x6f, 0x45, 0x37, 0xf2, 0xe8, 0x08, 0x7e, 0xbd, 0xf6, + 0x9a, 0x21, 0xf3, 0x9b, 0x93, 0xc5, 0xa9, 0xbe, 0x1a, 0xa2, 0x04, 0xff, + 0x43, 0x08, 0x5e, 0xb8, 0xbe, 0x29, 0x1f, 0x43, 0x70, 0xca, 0x41, 0xc7, + 0x6a, 0x1c, 0xa8, 0x45, 0xfd, 0xa3, 0x2e, 0x57, 0x46, 0x37, 0x26, 0x2f, + 0x75, 0x8c, 0x1c, 0x38, 0x8c, 0xbc, 0xd9, 0xd1, 0xc5, 0x9d, 0xc8, 0x77, + 0xae, 0x22, 0xd6, 0x4f, 0x34, 0x5d, 0x9d, 0x15, 0x57, 0xaa, 0xf2, 0xb5, + 0xd5, 0x10, 0x80, 0x65, 0x5d, 0xd1, 0xe7, 0xc6, 0x3f, 0xe9, 0xa4, 0xc8, + 0xab, 0xd4, 0x0e, 0xe8, 0x13, 0x43, 0xe8, 0x94, 0xf2, 0x07, 0x2d, 0xfe, + 0x4e, 0xf5, 0x4b, 0xeb, 0x5e, 0x02, 0x17, 0x61, 0x04, 0x66, 0x80, 0xe9, + 0xc5, 0x9f, 0x85, 0xe1, 0xe3, 0xee, 0x9b, 0x9f, 0xc0, 0x75, 0x18, 0x01, + 0xef, 0x25, 0x8f, 0xca, 0x4b, 0x11, 0xee, 0x85, 0x88, 0x7b, 0xeb, 0x9e, + 0x9a, 0x77, 0x52, 0x0c, 0x63, 0x43, 0x31, 0xcd, 0xa2, 0xe6, 0x50, 0x3f, + 0x64, 0xbb, 0x70, 0x8f, 0xc0, 0x8c, 0x2a, 0x75, 0x52, 0x88, 0x4e, 0x17, + 0xa0, 0x8b, 0x11, 0xfa, 0xfc, 0x97, 0xca, 0xf7, 0x4e, 0x7c, 0xed, 0x59, + 0x2f, 0x62, 0xfa, 0x67, 0xbd, 0x48, 0x97, 0x7c, 0x76, 0x55, 0xed, 0x9f, + 0x41, 0x94, 0xad, 0x4f, 0x78, 0xff, 0x0c, 0xff, 0x24, 0x8e, 0xb5, 0xc0, + 0xa6, 0x86, 0xea, 0xf4, 0x88, 0x51, 0x17, 0xd8, 0xbb, 0x66, 0x3e, 0x41, + 0xd8, 0xd3, 0x41, 0x11, 0x3b, 0x94, 0xb1, 0x08, 0xc4, 0xd8, 0x5f, 0x10, + 0x64, 0xac, 0xae, 0x49, 0x50, 0x4a, 0x43, 0x8c, 0xd1, 0x6f, 0xcc, 0x00, + 0x8d, 0xae, 0xbf, 0x9e, 0x41, 0x5f, 0x5a, 0x5f, 0x25, 0xf9, 0x25, 0x50, + 0x8a, 0x2e, 0x93, 0x34, 0xb1, 0x66, 0x8b, 0xb4, 0x14, 0xc9, 0xa4, 0x3f, + 0x98, 0xaa, 0x96, 0x94, 0x40, 0xdc, 0x94, 0x8c, 0xa6, 0x38, 0x06, 0x5d, + 0xb5, 0xb3, 0x1a, 0xf0, 0x4a, 0xc7, 0x54, 0x30, 0xf7, 0xb3, 0xc8, 0xaa, + 0xd2, 0xca, 0x4b, 0x74, 0x2b, 0x24, 0x8f, 0x2f, 0x2b, 0xeb, 0x23, 0x61, + 0xb8, 0x3a, 0x2a, 0x41, 0xd1, 0xb6, 0x8f, 0x46, 0x4d, 0xb0, 0x26, 0x35, + 0x73, 0xce, 0x58, 0xad, 0xb2, 0xc6, 0xae, 0x10, 0x3a, 0x47, 0x97, 0x60, + 0x13, 0x6c, 0xcc, 0xae, 0xaf, 0xb2, 0x7c, 0xbe, 0x5a, 0x51, 0xdb, 0x02, + 0x48, 0x55, 0x97, 0xd1, 0xec, 0xfa, 0x16, 0x19, 0x36, 0x60, 0xf3, 0x1a, + 0x6b, 0xac, 0x31, 0x99, 0x8a, 0x3a, 0x5f, 0x61, 0xa5, 0x1d, 0xe4, 0xf2, + 0x5a, 0xc3, 0x41, 0x6f, 0x7d, 0xad, 0x01, 0x88, 0x6b, 0xad, 0x52, 0xdc, + 0x5a, 0xab, 0x0c, 0x0b, 0xb0, 0x6d, 0xad, 0x25, 0x6b, 0xea, 0x7b, 0x65, + 0xad, 0x37, 0x50, 0x6b, 0x07, 0xd9, 0x5f, 0x6b, 0x75, 0x02, 0x5d, 0x5b, + 0x6b, 0x04, 0xe2, 0x5a, 0xab, 0x14, 0xa7, 0xd6, 0x2a, 0xc3, 0x06, 0x6c, + 0x59, 0x6b, 0xc1, 0x1a, 0x93, 0xa9, 0xaa, 0xf5, 0x16, 0x6a, 0xed, 0x20, + 0x57, 0xb4, 0x35, 0xcc, 0x36, 0x6a, 0x6b, 0x8d, 0x40, 0x5c, 0x6b, 0x95, + 0xe2, 0xd4, 0x5a, 0x65, 0xd8, 0x80, 0x2d, 0x6b, 0x2d, 0x58, 0x63, 0x32, + 0x55, 0xb5, 0xc6, 0xa1, 0xde, 0x41, 0xf6, 0xd6, 0x1a, 0x86, 0x5a, 0xe9, + 0x2f, 0xa8, 0xbc, 0xda, 0x6a, 0x6a, 0x0b, 0x80, 0xfa, 0x08, 0x6b, 0xcd, + 0x31, 0xcd, 0x5b, 0x01, 0x6a, 0xa2, 0xb9, 0xe3, 0x61, 0x73, 0x51, 0x33, + 0x66, 0x2e, 0x38, 0x5b, 0xab, 0x6a, 0xfd, 0x10, 0xc9, 0xb0, 0xe6, 0x54, + 0x4a, 0x26, 0x8e, 0x2d, 0xa8, 0x26, 0xfd, 0x57, 0xa7, 0x03, 0x64, 0x99, + 0x46, 0x79, 0x83, 0x1e, 0x67, 0xd0, 0x9e, 0x06, 0xa2, 0xaf, 0x2d, 0xc9, + 0x39, 0x91, 0xcc, 0xcf, 0x82, 0x5a, 0x73, 0xbe, 0x62, 0x9b, 0xa5, 0x23, + 0xab, 0x3a, 0x9b, 0x4d, 0xea, 0x02, 0xb6, 0x50, 0x65, 0x75, 0x67, 0xc4, + 0x2d, 0xcf, 0xaf, 0xca, 0x19, 0x56, 0xdd, 0x44, 0x36, 0xc6, 0x6a, 0x68, + 0xc2, 0x24, 0x8a, 0x35, 0x21, 0x9e, 0x2f, 0xd2, 0x2c, 0xa7, 0x96, 0x75, + 0xf6, 0x47, 0x18, 0x4a, 0xba, 0xe6, 0x23, 0x30, 0x3f, 0xb2, 0x67, 0xb1, + 0xdf, 0x4e, 0xed, 0xff, 0x8c, 0xea, 0x37, 0x53, 0xff, 0x80, 0x2e, 0x10, + 0xdc, 0x0d, 0xb4, 0x6a, 0x87, 0x77, 0x07, 0x43, 0x19, 0x37, 0x8b, 0x55, + 0xbd, 0x0e, 0x02, 0x90, 0xaa, 0x30, 0x22, 0x78, 0xf4, 0x0e, 0x52, 0x39, + 0xbf, 0x95, 0xba, 0x09, 0x46, 0xe0, 0xdf, 0x2a, 0x2d, 0x53, 0x83, 0x23, + 0xe3, 0x78, 0x7b, 0x18, 0xde, 0xee, 0xa9, 0xaf, 0x15, 0x42, 0x95, 0x2f, + 0x45, 0x18, 0x66, 0xf7, 0xe6, 0x31, 0x60, 0x55, 0xc1, 0xec, 0x88, 0x75, + 0x85, 0x06, 0x8d, 0x89, 0xf5, 0xa6, 0x92, 0xa0, 0xdc, 0x86, 0xc3, 0xe4, + 0x31, 0x43, 0xb4, 0x6a, 0x3a, 0x29, 0x6e, 0xfc, 0xa8, 0x6a, 0x3c, 0x5c, + 0x9a, 0x5b, 0x58, 0xde, 0xd6, 0x23, 0x3f, 0x78, 0xd5, 0xcd, 0x77, 0x41, + 0x30, 0x85, 0x80, 0xe9, 0x97, 0x25, 0x5b, 0xf0, 0x7e, 0xdc, 0xe9, 0x19, + 0x57, 0xd5, 0xfa, 0x43, 0x1d, 0xde, 0xea, 0x22, 0x94, 0xc4, 0xd9, 0x8d, + 0xa6, 0x7a, 0x4c, 0x00, 0xa8, 0xe1, 0x67, 0xd5, 0x18, 0x71, 0x82, 0x52, + 0x60, 0x8c, 0x12, 0x09, 0xac, 0x37, 0xb5, 0x02, 0x58, 0x6f, 0xb8, 0xfe, + 0xf0, 0xa3, 0x51, 0xf5, 0x01, 0xdc, 0xac, 0x3d, 0xa4, 0x68, 0x99, 0xcd, + 0xeb, 0x4e, 0xfc, 0xe2, 0x47, 0x45, 0xcd, 0x4f, 0xa1, 0xe6, 0x0c, 0xef, + 0xad, 0xf8, 0x7c, 0xbd, 0x0d, 0x99, 0xe1, 0x20, 0x18, 0xb7, 0x3e, 0xfd, + 0x72, 0x54, 0x9b, 0xea, 0xcc, 0x10, 0x8d, 0xc6, 0x7e, 0xfb, 0x86, 0x23, + 0xe1, 0x57, 0xa9, 0xf6, 0xdc, 0x54, 0xed, 0x39, 0x8f, 0xfc, 0x6d, 0xd4, + 0xb3, 0x45, 0x93, 0x1a, 0x52, 0x14, 0xc1, 0x70, 0xeb, 0xc5, 0x28, 0xe0, + 0xaa, 0x4c, 0x20, 0x43, 0xfd, 0x83, 0x8c, 0xa0, 0x60, 0xc8, 0x31, 0x83, + 0x22, 0xb9, 0xde, 0x10, 0x4a, 0x38, 0xa5, 0x2f, 0xb1, 0x7d, 0xa3, 0xf2, + 0x15, 0x0c, 0x14, 0x8c, 0x38, 0x0c, 0xdc, 0x4a, 0x75, 0x04, 0xb5, 0x89, + 0x59, 0xde, 0x2f, 0x91, 0x8c, 0x32, 0xcc, 0xbf, 0x65, 0x8c, 0x5e, 0x4e, + 0x10, 0x21, 0x77, 0xab, 0xd4, 0x6d, 0x0d, 0xea, 0x66, 0x97, 0xe4, 0xd3, + 0x04, 0x55, 0x58, 0x90, 0x2a, 0x20, 0x60, 0x80, 0x2e, 0x20, 0xd8, 0x3f, + 0x4b, 0x19, 0x90, 0x23, 0x47, 0x1b, 0x64, 0x7a, 0x90, 0x3a, 0x20, 0x60, + 0xa5, 0x3e, 0x0c, 0x47, 0x88, 0xc4, 0xd0, 0x2d, 0xf6, 0x7b, 0xfe, 0x39, + 0x0a, 0x41, 0xc4, 0x83, 0x34, 0x82, 0x20, 0x03, 0x54, 0x82, 0xe0, 0xfe, + 0x59, 0x3a, 0x41, 0x2c, 0x39, 0x4a, 0xa1, 0x32, 0x82, 0xb4, 0x82, 0x20, + 0xab, 0xd4, 0x02, 0x8c, 0x84, 0x09, 0xfc, 0x6f, 0xd6, 0x0a, 0xa0, 0x15, + 0x66, 0x26, 0x00, 0x30, 0xc4, 0x4c, 0x00, 0xd8, 0x3f, 0xcc, 0x4c, 0x20, + 0x47, 0xae, 0x46, 0x50, 0x7a, 0x98, 0x99, 0x00, 0xc0, 0x4a, 0x33, 0xf1, + 0xa4, 0xab, 0x83, 0xfe, 0x3b, 0x6d, 0x04, 0xf9, 0xee, 0x26, 0xd7, 0xdd, + 0xee, 0xc9, 0x83, 0xe6, 0xd7, 0xbb, 0xdd, 0x01, 0x84, 0x79, 0x23, 0x6a, + 0x22, 0xd0, 0x85, 0xb4, 0xb3, 0x13, 0xfa, 0xa1, 0x4e, 0xfa, 0x3e, 0xc1, + 0xb3, 0xef, 0x53, 0xc1, 0x82, 0x7f, 0xd5, 0x3a, 0xff, 0xb1, 0x7a, 0xdf, + 0x53, 0x40, 0xe0, 0x45, 0x5d, 0xd6, 0x56, 0x91, 0x36, 0xa0, 0x73, 0x78, + 0x72, 0xc5, 0xc1, 0x57, 0x7a, 0x34, 0x77, 0xe6, 0xe2, 0x7a, 0xd3, 0x7c, + 0x91, 0xce, 0x19, 0x15, 0x8f, 0x1b, 0xd3, 0xe9, 0xb5, 0x76, 0x46, 0x09, + 0xe7, 0x67, 0x74, 0x6f, 0x90, 0xd2, 0xc5, 0xc9, 0x9a, 0x64, 0x2a, 0x5f, + 0xcb, 0xfb, 0x82, 0x8a, 0x38, 0x17, 0xde, 0x68, 0x2b, 0xd5, 0xcb, 0x1b, + 0xf0, 0x6c, 0xd6, 0x02, 0x6e, 0x1d, 0x14, 0xcc, 0x46, 0x85, 0x27, 0x76, + 0xc9, 0xb5, 0x9f, 0xf3, 0x92, 0x0d, 0xc6, 0xdc, 0x79, 0xf5, 0x51, 0x6d, + 0x0f, 0xf2, 0xbe, 0x83, 0xa0, 0xc4, 0xe5, 0xa5, 0xc6, 0x72, 0x2f, 0x7d, + 0x66, 0x52, 0x8a, 0xdd, 0x66, 0x0b, 0xcb, 0x53, 0x9d, 0x4a, 0xbe, 0xac, + 0xdb, 0x5e, 0x55, 0xa0, 0xe1, 0xaf, 0x3f, 0x7c, 0x54, 0x66, 0x17, 0xa4, + 0x2e, 0x9d, 0x6e, 0xf3, 0x7b, 0xe4, 0x6e, 0xb7, 0x4e, 0x86, 0x20, 0xf4, + 0x68, 0x57, 0x7f, 0xf6, 0x05, 0x9f, 0x1d, 0xd7, 0xbb, 0xd3, 0x29, 0xaf, + 0xe7, 0xfe, 0x43, 0xd6, 0x53, 0xab, 0x97, 0x77, 0x15, 0xba, 0xbc, 0x9a, + 0x2e, 0x56, 0xb5, 0x37, 0x23, 0xfa, 0x08, 0xa5, 0x74, 0x5e, 0x61, 0xb9, + 0x76, 0x53, 0x8b, 0xd8, 0xa0, 0x83, 0x36, 0xda, 0x27, 0xf3, 0x11, 0x83, + 0x32, 0xb4, 0x32, 0x9d, 0xb3, 0xef, 0xcb, 0xe4, 0x86, 0xc0, 0xaa, 0x58, + 0x61, 0xe8, 0xdb, 0xc5, 0x4f, 0x68, 0x5c, 0x62, 0xba, 0x23, 0xfd, 0x09, + 0x8c, 0xc5, 0x0a, 0x5d, 0x5e, 0x6d, 0x8b, 0x87, 0xbd, 0x51, 0xb7, 0x37, + 0x7c, 0xd2, 0x7d, 0x75, 0xf4, 0xe6, 0x9b, 0xdd, 0xd7, 0xca, 0xe1, 0x0e, + 0x14, 0xdc, 0xe1, 0x1b, 0xaf, 0x57, 0xc1, 0x1d, 0x2a, 0xb8, 0xe1, 0xf0, + 0x71, 0xb7, 0xbb, 0x37, 0x84, 0x9b, 0x5b, 0x21, 0x4e, 0x7e, 0xf3, 0xf5, + 0x7a, 0x39, 0x9b, 0x36, 0xe8, 0x3c, 0x54, 0x68, 0x08, 0xe5, 0xf3, 0xf5, + 0x3a, 0x4f, 0x76, 0x41, 0xd8, 0x66, 0x59, 0xb5, 0x4a, 0x0c, 0x32, 0x27, + 0x7f, 0xaa, 0xa3, 0x43, 0xb4, 0xe2, 0x8f, 0x5e, 0x1c, 0x0e, 0x87, 0x8f, + 0xa2, 0xa7, 0xf0, 0xe5, 0x83, 0x0f, 0x3e, 0x78, 0x14, 0x42, 0x99, 0x58, + 0xde, 0x1d, 0x61, 0x7a, 0x9a, 0xd2, 0x8e, 0xba, 0xdd, 0x9f, 0x30, 0x96, + 0x49, 0x7d, 0x7f, 0x42, 0x28, 0xd5, 0x9f, 0x14, 0x56, 0x59, 0x7f, 0xc2, + 0x3c, 0x1d, 0xb2, 0xd1, 0x06, 0x8f, 0x4b, 0x0b, 0xb8, 0x33, 0x4b, 0x0c, + 0x11, 0x13, 0x5d, 0xa5, 0xb5, 0x05, 0xe4, 0x23, 0x5e, 0x22, 0x15, 0xd4, + 0xb1, 0x7a, 0xa9, 0x20, 0x94, 0x92, 0x8a, 0xc2, 0x2a, 0x93, 0x0a, 0xe6, + 0x99, 0x90, 0xed, 0xa5, 0x22, 0xb8, 0x53, 0x74, 0xc2, 0xa5, 0x22, 0xaf, + 0xcc, 0x37, 0xe9, 0x4b, 0x08, 0x10, 0x42, 0x5a, 0xdd, 0xad, 0x79, 0x78, + 0xca, 0xc5, 0x61, 0xdb, 0xae, 0x48, 0xe3, 0x76, 0xf7, 0xae, 0x68, 0x8b, + 0xd5, 0xc2, 0x0e, 0xa9, 0xc3, 0xe2, 0x63, 0x67, 0x32, 0x57, 0x6b, 0x99, + 0x1d, 0xd2, 0x87, 0xa5, 0x51, 0x7b, 0xf6, 0xe5, 0xfd, 0xc4, 0x3c, 0xb9, + 0xc9, 0xf7, 0xe8, 0xd9, 0x9e, 0xe8, 0xe7, 0x67, 0xc9, 0x46, 0xdc, 0x2e, + 0x8f, 0x20, 0x89, 0x69, 0x46, 0xe8, 0x83, 0x1a, 0x9d, 0x17, 0x86, 0x0e, + 0xc6, 0x88, 0xfa, 0xcf, 0x1e, 0x8b, 0x95, 0xb3, 0xf0, 0x2c, 0xe4, 0xc2, + 0x2b, 0xbf, 0x69, 0xe4, 0x55, 0xbc, 0xff, 0xb2, 0xab, 0xa0, 0xe9, 0x5e, + 0x78, 0xe5, 0x3f, 0x01, 0x01, 0xf7, 0x5c, 0xeb, 0x46, 0xa0, 0xd1, 0x68, + 0xe4, 0x1d, 0xdf, 0xee, 0x83, 0x95, 0xe4, 0x38, 0xb9, 0x00, 0x17, 0xe8, + 0xed, 0xc6, 0x3a, 0xf8, 0x0b, 0xb8, 0x29, 0xb7, 0x1b, 0xf2, 0xc2, 0xa1, + 0xde, 0x0e, 0x08, 0xd3, 0x05, 0xd9, 0xdd, 0x90, 0xc6, 0xab, 0xb3, 0xbb, + 0xa1, 0x8c, 0x97, 0x6a, 0x77, 0x44, 0x5a, 0xb8, 0x33, 0xdb, 0x0d, 0xed, + 0x6c, 0x93, 0xec, 0xaa, 0x19, 0x95, 0xb1, 0x69, 0x47, 0xda, 0x99, 0xaf, + 0xe4, 0x01, 0x8b, 0x22, 0x00, 0x32, 0x66, 0x2b, 0x79, 0xe9, 0x92, 0x08, + 0xb2, 0x74, 0xb8, 0x3f, 0xb1, 0x1e, 0x22, 0xc6, 0x24, 0x95, 0xf0, 0x89, + 0x8a, 0x22, 0xd2, 0x87, 0xfd, 0x9a, 0x26, 0xe3, 0x43, 0xbe, 0x0a, 0xa1, + 0x2e, 0xf6, 0x69, 0xea, 0x17, 0xbd, 0x2e, 0xf5, 0x46, 0x3b, 0x11, 0x0f, + 0xbc, 0x04, 0xaf, 0xe4, 0x46, 0xd8, 0xca, 0xe7, 0xd3, 0x79, 0xbe, 0x80, + 0x9d, 0x40, 0xf1, 0x18, 0x3f, 0xee, 0x96, 0x2b, 0x4b, 0x16, 0xa4, 0x2d, + 0x40, 0xd5, 0x52, 0x98, 0xac, 0x42, 0x63, 0x00, 0xda, 0x80, 0x6d, 0xb2, + 0x33, 0xe4, 0xa5, 0x06, 0xa5, 0x18, 0xa5, 0x36, 0xae, 0xaf, 0x9c, 0x20, + 0x50, 0xb4, 0xb8, 0xf3, 0xe9, 0x3c, 0x91, 0x41, 0x25, 0x9a, 0x78, 0x79, + 0x95, 0xeb, 0xf8, 0x72, 0xe7, 0x82, 0xbc, 0xc8, 0xa9, 0x06, 0xc1, 0x06, + 0xad, 0x03, 0xc9, 0x57, 0xf5, 0x10, 0x99, 0x17, 0x84, 0xde, 0xd9, 0x85, + 0x75, 0x29, 0x11, 0xca, 0xd6, 0xd3, 0x36, 0xe4, 0x76, 0x40, 0x35, 0xcd, + 0xc3, 0x4e, 0x32, 0xd4, 0x6b, 0xec, 0x49, 0x3d, 0x7f, 0x0e, 0xde, 0x34, + 0x95, 0xda, 0xcf, 0x4f, 0x59, 0xe8, 0xb5, 0x14, 0x1c, 0x4a, 0x44, 0x1d, + 0xfb, 0x59, 0x34, 0x00, 0x17, 0xcf, 0xb3, 0x94, 0x17, 0x84, 0xae, 0xfb, + 0x52, 0x8a, 0xfe, 0x4c, 0x9a, 0xd1, 0x6b, 0x13, 0xf6, 0x47, 0xe0, 0x3c, + 0x02, 0xc5, 0x8c, 0x44, 0x38, 0x62, 0x86, 0x67, 0x62, 0x49, 0x46, 0x0f, + 0x61, 0x54, 0x70, 0xc1, 0x48, 0xe8, 0x5f, 0xa6, 0x21, 0x99, 0x8f, 0x5b, + 0xaf, 0xa6, 0x1b, 0xe7, 0x61, 0x2b, 0xff, 0xd9, 0xef, 0xbb, 0x1c, 0x3e, + 0x6b, 0x0c, 0x9a, 0x7a, 0xdc, 0xa5, 0xbb, 0x9a, 0x09, 0xab, 0x97, 0x35, + 0x13, 0x33, 0xfa, 0xce, 0x9f, 0x9b, 0x1f, 0xea, 0x73, 0xc4, 0x72, 0xb6, + 0x24, 0x57, 0x4d, 0x3d, 0x16, 0x99, 0xed, 0x46, 0xba, 0xe1, 0x7f, 0xe6, + 0x24, 0xab, 0x2d, 0x9f, 0x38, 0x75, 0xba, 0x4e, 0xb3, 0xd2, 0x83, 0x46, + 0xbb, 0x59, 0xa7, 0xcb, 0xe5, 0x5f, 0xd5, 0xa2, 0x28, 0x57, 0x21, 0x9d, + 0x68, 0xd2, 0xa4, 0x79, 0xc7, 0x7e, 0x72, 0x04, 0x60, 0xca, 0x86, 0x92, + 0xda, 0x89, 0xe7, 0xef, 0xd4, 0x8e, 0x89, 0x2f, 0xdf, 0x5f, 0x8b, 0xea, + 0x4a, 0xdc, 0xbb, 0x1b, 0xca, 0xb5, 0x7e, 0x37, 0x8c, 0xd9, 0x47, 0x13, + 0x53, 0xe9, 0x3b, 0x90, 0xab, 0xb2, 0x79, 0x7c, 0xa6, 0x07, 0xa5, 0x58, + 0x43, 0x9c, 0xf5, 0x1a, 0xf7, 0x81, 0x57, 0x7d, 0x61, 0xaa, 0x1c, 0xa2, + 0xc6, 0x0d, 0xb4, 0x36, 0xcc, 0x28, 0xe9, 0x2d, 0xf6, 0x80, 0x0b, 0xd5, + 0x26, 0x6c, 0x68, 0x2c, 0xf0, 0xb7, 0x80, 0x89, 0x25, 0x8f, 0x61, 0xd5, + 0x65, 0xdc, 0x3b, 0x8f, 0x68, 0xcd, 0x97, 0xd5, 0x57, 0x19, 0xe8, 0xf2, + 0xf5, 0xe5, 0x6d, 0x2f, 0xc2, 0x70, 0xda, 0x50, 0xa7, 0xda, 0xb7, 0xad, + 0xb2, 0x7c, 0x49, 0xa0, 0x68, 0xea, 0x1b, 0xe3, 0xc0, 0x1d, 0xc8, 0xaa, + 0xf4, 0xd2, 0x59, 0x66, 0x0c, 0xc5, 0xe2, 0x78, 0xa9, 0x5e, 0x6e, 0xd3, + 0x29, 0xe6, 0x8b, 0xd3, 0xb3, 0xd1, 0xeb, 0xa3, 0xd7, 0xe9, 0x18, 0xf3, + 0xc5, 0xc7, 0xf3, 0xe9, 0xf9, 0xe1, 0x7e, 0x87, 0xa7, 0x58, 0xef, 0xae, + 0x16, 0x57, 0x53, 0xaa, 0xc4, 0x22, 0x23, 0x86, 0xcf, 0x84, 0x6f, 0x16, + 0x12, 0x01, 0xbd, 0xa4, 0x8a, 0xf1, 0x81, 0xbb, 0x78, 0x03, 0x1e, 0x41, + 0x29, 0x43, 0xfc, 0xd2, 0xf5, 0x3d, 0x57, 0xed, 0xa0, 0x18, 0xe0, 0x34, + 0x9c, 0xc8, 0x88, 0x12, 0xfc, 0x01, 0x14, 0xee, 0x02, 0xde, 0xb9, 0x1a, + 0xc4, 0x84, 0x6d, 0x88, 0xee, 0xa5, 0x48, 0xd9, 0x1d, 0x74, 0xf4, 0x6d, + 0x32, 0x3b, 0x5e, 0xc3, 0x8c, 0x3d, 0xa7, 0x3b, 0x0b, 0xe4, 0x02, 0x7a, + 0x99, 0x50, 0xd0, 0x70, 0x79, 0x00, 0x0e, 0xe4, 0xef, 0xec, 0xa0, 0xc7, + 0x92, 0xa3, 0xa7, 0xd1, 0x10, 0x6b, 0x26, 0x72, 0xe1, 0x16, 0xe0, 0x57, + 0x49, 0x9e, 0x2e, 0x30, 0x4e, 0xf2, 0x48, 0xa6, 0xa5, 0x09, 0xe3, 0xbc, + 0x9f, 0x2c, 0xa7, 0xb7, 0x1f, 0xa5, 0xeb, 0xeb, 0x0f, 0xa7, 0x18, 0xc6, + 0x97, 0x81, 0x28, 0xfe, 0x3c, 0x87, 0xa4, 0x36, 0x23, 0xa9, 0x4a, 0xfc, + 0x77, 0x97, 0x4b, 0xd3, 0x15, 0x80, 0xf9, 0x14, 0x94, 0x62, 0xc9, 0x47, + 0x9b, 0x75, 0x0e, 0xba, 0xb0, 0x80, 0x01, 0xec, 0x36, 0xc2, 0x69, 0x9e, + 0xc6, 0x70, 0xa6, 0xbd, 0xc6, 0xf6, 0xc6, 0x5f, 0x66, 0x17, 0x1c, 0x31, + 0x26, 0x3a, 0x0e, 0xbd, 0x21, 0x0d, 0x64, 0x0c, 0xa5, 0xc4, 0x54, 0xe5, + 0xa8, 0xf3, 0xd9, 0x74, 0xb5, 0xa5, 0x92, 0x28, 0xf5, 0xec, 0xe9, 0xd3, + 0x0a, 0x66, 0xc9, 0x9b, 0xc0, 0xdd, 0x8f, 0x49, 0xb2, 0x39, 0x22, 0x60, + 0x51, 0xd9, 0x7b, 0x6d, 0xc2, 0x5e, 0xcb, 0x1e, 0xb4, 0xc2, 0xc9, 0xa9, + 0x0e, 0x56, 0x1e, 0x49, 0x1a, 0xed, 0x83, 0xb1, 0xe2, 0xa9, 0x5c, 0x1b, + 0x33, 0x8d, 0x3e, 0x40, 0x52, 0xd7, 0x31, 0xa7, 0x9e, 0x90, 0x5a, 0x36, + 0xf5, 0x6c, 0x3c, 0xed, 0x04, 0x5a, 0x35, 0xa6, 0xc1, 0x7c, 0xfb, 0x2b, + 0x6b, 0x55, 0xda, 0xf4, 0xd5, 0x0a, 0x02, 0x34, 0x59, 0x43, 0x08, 0x8c, + 0x1c, 0xa9, 0xc3, 0x1a, 0x4b, 0x1e, 0xc5, 0x6f, 0x53, 0xe8, 0xac, 0x34, + 0x00, 0x09, 0x38, 0x50, 0x7c, 0xf1, 0xb3, 0xe4, 0x76, 0x89, 0xaa, 0xfd, + 0x58, 0xd5, 0x5e, 0x40, 0xb3, 0xea, 0xe0, 0x43, 0x40, 0x5b, 0x75, 0x30, + 0x4d, 0x3e, 0xa6, 0x1c, 0x40, 0xf7, 0xb8, 0x72, 0x7c, 0x19, 0xb1, 0x5f, + 0x5a, 0xd7, 0x25, 0x07, 0x70, 0x44, 0x42, 0x90, 0x8b, 0xb4, 0xaf, 0x54, + 0x7f, 0x02, 0xce, 0x8a, 0x8e, 0x1b, 0xfb, 0xe3, 0xfa, 0x83, 0x8e, 0x4e, + 0xd3, 0xb3, 0xed, 0x62, 0xb5, 0x86, 0xaf, 0xdc, 0x9d, 0xa1, 0xf4, 0x72, + 0xa7, 0x1f, 0x47, 0x05, 0x75, 0x14, 0x14, 0xab, 0x06, 0xd5, 0x13, 0xc8, + 0x20, 0x7d, 0x9d, 0x40, 0xb5, 0xd2, 0x4a, 0xcf, 0xd1, 0x98, 0x20, 0x90, + 0x9c, 0x92, 0xd1, 0x1f, 0x1e, 0xf5, 0xd4, 0x89, 0xed, 0x43, 0xbf, 0x9a, + 0xc1, 0xe4, 0x2c, 0x9c, 0xbf, 0x80, 0x1e, 0xf3, 0xda, 0x6b, 0x16, 0xce, + 0x9f, 0xeb, 0x3b, 0x16, 0xf7, 0xba, 0xa5, 0x76, 0x7e, 0x77, 0x3a, 0x7e, + 0x24, 0xd3, 0x15, 0xdb, 0x6b, 0xd0, 0xb8, 0x75, 0x95, 0xb0, 0xe7, 0x11, + 0x63, 0xaf, 0xb4, 0xc9, 0x5a, 0x05, 0x8b, 0xfb, 0x7d, 0xe8, 0x5f, 0x3b, + 0x91, 0x78, 0xbf, 0xbf, 0x53, 0x89, 0xff, 0x59, 0xe1, 0xa9, 0xae, 0x59, + 0x67, 0x69, 0xdf, 0x9a, 0x44, 0x6c, 0xe0, 0x3c, 0x8c, 0x84, 0xba, 0x3c, + 0xbd, 0x0f, 0x6a, 0x3b, 0x9a, 0x92, 0x04, 0xb7, 0xdd, 0x07, 0x04, 0xbd, + 0x5e, 0x05, 0x36, 0xda, 0x7d, 0x80, 0x77, 0x1a, 0xb0, 0x22, 0xc5, 0x88, + 0xae, 0x8f, 0xbf, 0x24, 0x26, 0x96, 0xcb, 0x80, 0x81, 0x54, 0x29, 0x80, + 0x59, 0x24, 0x85, 0x8f, 0x4d, 0x4c, 0xb2, 0x7f, 0x3e, 0x5d, 0x2c, 0x13, + 0xe9, 0xa3, 0xa4, 0x5a, 0xb6, 0xc0, 0xb0, 0xc9, 0xb2, 0xc3, 0xb0, 0xc9, + 0x6e, 0xb5, 0x6d, 0x05, 0xfc, 0x6d, 0xba, 0x2c, 0xb1, 0xa5, 0xb5, 0x4b, + 0xa9, 0x72, 0xe7, 0x8a, 0x4f, 0x5e, 0xdf, 0x8d, 0x73, 0xc5, 0x27, 0xaf, + 0x3f, 0x9c, 0x73, 0x45, 0xcb, 0xb3, 0x11, 0x39, 0x5a, 0x04, 0xc9, 0x64, + 0x20, 0x19, 0x7d, 0x68, 0xfd, 0xf6, 0x32, 0x59, 0x89, 0x41, 0x95, 0x45, + 0xba, 0xc8, 0x68, 0x06, 0xd6, 0xa3, 0xa8, 0x25, 0xe4, 0xdb, 0x81, 0xa4, + 0x2e, 0x87, 0x5f, 0x48, 0x4d, 0x7f, 0x4e, 0x52, 0x5f, 0x6b, 0xf0, 0x88, + 0xe0, 0x86, 0x07, 0x71, 0x75, 0xbc, 0x68, 0x27, 0x2a, 0xcd, 0x5d, 0xe2, + 0x2d, 0x8a, 0xd6, 0x4f, 0xce, 0x5c, 0x07, 0x67, 0x04, 0x92, 0x26, 0xe7, + 0x69, 0x92, 0x5d, 0x3e, 0xa7, 0x5d, 0x52, 0x58, 0x84, 0x8a, 0xa1, 0xff, + 0x13, 0xf9, 0x2b, 0xa6, 0xbe, 0xc6, 0xd7, 0xbd, 0x5e, 0xea, 0x74, 0x7b, + 0x34, 0xe9, 0xdd, 0xc7, 0xb2, 0x1a, 0x18, 0x2e, 0x9e, 0xa9, 0x48, 0x2d, + 0x6e, 0x60, 0x25, 0xc2, 0x7a, 0x89, 0xa4, 0xdb, 0x6a, 0xe0, 0x09, 0x50, + 0x41, 0x5b, 0x81, 0x41, 0x08, 0x2f, 0x37, 0x24, 0x11, 0xae, 0xc5, 0x40, + 0x5c, 0xa8, 0x71, 0x48, 0x01, 0x6d, 0x55, 0xf9, 0x2b, 0x0c, 0xa1, 0x62, + 0x9c, 0xa7, 0x97, 0x05, 0xab, 0xe3, 0xe6, 0x97, 0x8b, 0xa8, 0x11, 0x2a, + 0x40, 0x33, 0xd4, 0x23, 0x89, 0x7a, 0xd0, 0x1c, 0xf5, 0x57, 0x89, 0xfa, + 0x58, 0x43, 0xbd, 0xdf, 0x69, 0x0f, 0xa4, 0x59, 0x42, 0xd3, 0x2e, 0x28, + 0x16, 0x42, 0xb5, 0x9d, 0xd0, 0xf6, 0xd0, 0x46, 0x91, 0x04, 0x8b, 0xfe, + 0xe6, 0xed, 0x93, 0xde, 0x4a, 0x7f, 0xba, 0xbe, 0x88, 0x68, 0x44, 0xcc, + 0xca, 0x6a, 0x41, 0xb9, 0x7a, 0x2d, 0x28, 0xc1, 0x5b, 0x15, 0xca, 0xd1, + 0x2b, 0xa3, 0x1c, 0xb7, 0xd1, 0x67, 0xd3, 0x2a, 0xe1, 0xd4, 0xc1, 0x1d, + 0x13, 0xf3, 0xf4, 0xf6, 0x88, 0x9e, 0x11, 0xbe, 0x3d, 0xd1, 0xc6, 0x90, + 0x01, 0xaf, 0x9b, 0x89, 0xb3, 0x86, 0x13, 0x22, 0xd7, 0xae, 0xf0, 0x5f, + 0xfd, 0x64, 0xb3, 0x95, 0x65, 0x09, 0xb2, 0x2e, 0xca, 0x8a, 0x35, 0xae, + 0x90, 0x35, 0xe6, 0xb7, 0x29, 0xbb, 0xd3, 0xc6, 0x6d, 0x9f, 0x2c, 0x97, + 0x66, 0x4d, 0xc3, 0xe8, 0x35, 0x7f, 0x0b, 0x41, 0x7a, 0x08, 0xfe, 0x48, + 0xf3, 0xfc, 0x37, 0x74, 0x5d, 0xff, 0xf9, 0x75, 0x59, 0x5e, 0xc7, 0x10, + 0x2e, 0x5c, 0x03, 0xfa, 0x68, 0xe1, 0x0d, 0x29, 0x28, 0x18, 0x0c, 0x6b, + 0x36, 0x92, 0x97, 0xa4, 0xc9, 0xff, 0x64, 0x32, 0x40, 0xda, 0x3a, 0x87, + 0xa0, 0xa8, 0x61, 0xc1, 0x5e, 0x0a, 0xcc, 0xbd, 0xbd, 0xa0, 0x4d, 0xd1, + 0x47, 0x64, 0xaa, 0x1f, 0xa9, 0x43, 0x5e, 0x19, 0x11, 0x0f, 0x9b, 0x6c, + 0x05, 0xbd, 0xd5, 0x3d, 0x76, 0x32, 0xab, 0x00, 0xe5, 0x03, 0xbb, 0xf0, + 0xef, 0x9f, 0x88, 0x31, 0x03, 0x0c, 0x24, 0x8e, 0x87, 0x62, 0xde, 0x0e, + 0x8e, 0x26, 0x0a, 0x2a, 0x20, 0xa8, 0x0c, 0xc7, 0x83, 0x0d, 0x8e, 0x19, + 0xe2, 0x04, 0xba, 0xb5, 0x08, 0x59, 0x85, 0xb2, 0x24, 0xc8, 0x0b, 0x5a, + 0x74, 0xc4, 0xe1, 0x3a, 0xd1, 0x55, 0x9a, 0x07, 0xd8, 0x8a, 0xc6, 0x1b, + 0x52, 0x00, 0xe8, 0xa3, 0xa7, 0xbc, 0x63, 0xe9, 0x60, 0xe4, 0x98, 0x62, + 0xad, 0x89, 0x97, 0xc2, 0x19, 0xb9, 0xe6, 0xaa, 0x95, 0x4b, 0x26, 0x51, + 0x5d, 0xa1, 0x18, 0x4e, 0x1f, 0x26, 0x3a, 0xf0, 0x38, 0x0a, 0xba, 0x00, + 0xe9, 0x75, 0x1e, 0x11, 0x10, 0x0e, 0x85, 0xd8, 0x77, 0x19, 0x8a, 0x14, + 0x4b, 0x94, 0x3f, 0x61, 0xd0, 0x71, 0xc8, 0x1b, 0x7f, 0xf7, 0x9d, 0x7e, + 0x20, 0x2f, 0xeb, 0x8d, 0xcb, 0x0a, 0xf3, 0x42, 0xf9, 0x93, 0x02, 0x74, + 0x1c, 0xf0, 0xda, 0xde, 0x7d, 0x33, 0x1f, 0xc2, 0xc8, 0x75, 0x36, 0x7a, + 0x63, 0x38, 0x3a, 0xbf, 0x79, 0x5e, 0xde, 0x29, 0x2c, 0x98, 0x89, 0x89, + 0x17, 0xd6, 0x4d, 0xe8, 0x12, 0x51, 0x70, 0x0f, 0x31, 0x42, 0x12, 0x33, + 0x7e, 0x4d, 0xc7, 0xa8, 0xec, 0x13, 0x76, 0x94, 0x64, 0xa6, 0x1a, 0xd6, + 0x1b, 0xac, 0xfa, 0xd0, 0x25, 0x8a, 0xe0, 0xfa, 0x98, 0xa1, 0x4a, 0x98, + 0x00, 0x84, 0x80, 0x1b, 0xd7, 0x62, 0xa4, 0x06, 0xc6, 0x30, 0x00, 0xe3, + 0xc2, 0xc0, 0x18, 0x05, 0x60, 0xcc, 0x0c, 0x8c, 0x83, 0x00, 0x0c, 0xb8, + 0xa4, 0x29, 0x9c, 0x6a, 0x3c, 0x5b, 0x7f, 0x9c, 0xdc, 0xc4, 0x27, 0x7a, + 0x9d, 0x7a, 0x06, 0xbf, 0x3d, 0x83, 0x97, 0x9e, 0x51, 0xce, 0x69, 0xb7, + 0xbe, 0xa4, 0xeb, 0x91, 0xc1, 0xdc, 0xe3, 0x00, 0xe6, 0x52, 0x13, 0xe5, + 0x30, 0x00, 0xe5, 0xc2, 0x44, 0x79, 0x12, 0x80, 0x32, 0x33, 0x51, 0x5e, + 0x0f, 0x40, 0x01, 0xa9, 0x8d, 0x4a, 0xc4, 0xf6, 0xd8, 0x10, 0xcd, 0xa1, + 0xf1, 0xeb, 0x09, 0xfe, 0xe2, 0x82, 0xc2, 0xc4, 0x76, 0x60, 0x70, 0xf7, + 0x46, 0x00, 0x77, 0xa9, 0x89, 0xf2, 0x66, 0x00, 0xca, 0x85, 0x89, 0x32, + 0x0c, 0x51, 0xe8, 0x99, 0x85, 0x13, 0xa2, 0xd2, 0x20, 0xb8, 0x83, 0x12, + 0xc1, 0xbd, 0x61, 0x08, 0xe7, 0x4d, 0x53, 0xfb, 0x2c, 0x65, 0x1c, 0x82, + 0xe8, 0x1e, 0x62, 0x78, 0x2d, 0x09, 0xed, 0x3f, 0x2c, 0xb7, 0x68, 0xa5, + 0x4e, 0x61, 0x07, 0x69, 0x09, 0x43, 0x51, 0xb9, 0x23, 0x58, 0x90, 0x7b, + 0x05, 0x92, 0xdf, 0xf9, 0x2b, 0xc8, 0xbd, 0x0c, 0xa7, 0xc2, 0xe1, 0xeb, + 0xe0, 0x5a, 0x22, 0x05, 0x98, 0xc8, 0x0a, 0xc1, 0x8c, 0x5a, 0x09, 0x66, + 0xd4, 0x4a, 0x32, 0xa3, 0x36, 0xa2, 0x19, 0xb5, 0x92, 0xcd, 0xa8, 0x91, + 0x70, 0x4a, 0x64, 0x73, 0xd0, 0x4a, 0x36, 0x07, 0xad, 0x64, 0x73, 0xd0, + 0x46, 0x36, 0x07, 0xad, 0x64, 0x73, 0x10, 0x2e, 0x1b, 0xff, 0xe4, 0x53, + 0x04, 0xc6, 0x6c, 0x34, 0xe9, 0xac, 0x08, 0x1e, 0x79, 0xe7, 0xb8, 0x36, + 0xb5, 0xe3, 0x47, 0x86, 0xf8, 0x5f, 0x2d, 0x73, 0xb8, 0x1a, 0x32, 0xd3, + 0xaa, 0x08, 0x3f, 0x79, 0x57, 0x1f, 0x80, 0x32, 0xc8, 0x5f, 0x6a, 0x99, + 0x7f, 0xd4, 0xa0, 0x29, 0xa9, 0x72, 0xe7, 0x59, 0xcb, 0x9f, 0x27, 0x86, + 0x65, 0x2d, 0x7f, 0x00, 0xe3, 0xe5, 0x8f, 0xb2, 0xc2, 0xa6, 0xcc, 0x15, + 0x41, 0x30, 0xef, 0xea, 0xc3, 0x60, 0x06, 0xf9, 0x20, 0x2d, 0xf5, 0x39, + 0x1a, 0xcc, 0x9f, 0x3f, 0x8e, 0xe6, 0x5d, 0x7d, 0x24, 0xcd, 0x28, 0xc4, + 0x5b, 0x68, 0xa9, 0x77, 0xd0, 0x10, 0xfe, 0x2a, 0x42, 0x71, 0xde, 0x55, + 0x04, 0xe3, 0x0c, 0x59, 0x94, 0xcd, 0x57, 0x56, 0xe3, 0x32, 0xad, 0x40, + 0xce, 0x80, 0x42, 0x2d, 0x67, 0x66, 0x3c, 0xcf, 0x80, 0xe5, 0xe2, 0x7c, + 0xbd, 0x2d, 0x61, 0x6c, 0x1e, 0xb6, 0x62, 0xfc, 0xcb, 0xe2, 0x81, 0x86, + 0xbd, 0xce, 0xb3, 0xea, 0xf1, 0x17, 0xc4, 0x18, 0x8d, 0xa2, 0xf0, 0x18, + 0x93, 0x61, 0x15, 0xba, 0x6e, 0x10, 0x70, 0x92, 0xfe, 0xcc, 0x6b, 0xb0, + 0xbb, 0x29, 0x54, 0xdb, 0xa7, 0x0c, 0x1b, 0xe8, 0xf6, 0x0b, 0xd0, 0xfa, + 0xd5, 0x5e, 0x30, 0xec, 0xa8, 0x09, 0xf0, 0x41, 0x15, 0x30, 0x68, 0x76, + 0xd0, 0x28, 0x1b, 0x1e, 0x2f, 0xf6, 0xae, 0x22, 0x62, 0x6c, 0x6d, 0x3f, + 0x04, 0x18, 0xaf, 0xf6, 0x42, 0x7a, 0x60, 0x2f, 0x24, 0x77, 0x30, 0xe1, + 0xbd, 0xb0, 0x71, 0x18, 0xda, 0x80, 0x3e, 0xa8, 0x5e, 0xb1, 0x06, 0xba, + 0x66, 0x6b, 0x4e, 0x5d, 0xbc, 0x62, 0x0d, 0xf4, 0xf4, 0xd5, 0x9c, 0xbc, + 0x7c, 0xc5, 0x1a, 0xe4, 0x32, 0xaa, 0x39, 0x75, 0xf1, 0x86, 0xb5, 0xda, + 0xff, 0xd0, 0x38, 0x6a, 0xa3, 0x94, 0xd5, 0x21, 0x81, 0xef, 0x9a, 0x04, + 0x05, 0x6e, 0xec, 0x2f, 0x46, 0xd5, 0xa7, 0xb4, 0x90, 0x71, 0xc9, 0xdc, + 0x15, 0x63, 0x5e, 0x35, 0xda, 0x2f, 0x85, 0x5d, 0x93, 0x60, 0xed, 0x06, + 0x78, 0xbe, 0x6d, 0x86, 0x81, 0x6a, 0x9c, 0x8b, 0x20, 0x6e, 0x49, 0x2a, + 0x5e, 0x3f, 0x05, 0x84, 0x2a, 0x7e, 0xc8, 0x5b, 0xc3, 0xd1, 0xdb, 0xd1, + 0xbe, 0xbf, 0x34, 0xff, 0xc5, 0x7f, 0xba, 0xd0, 0x75, 0x17, 0x51, 0x14, + 0xb3, 0xa7, 0x4c, 0xad, 0x17, 0x2d, 0xce, 0xc4, 0x4f, 0x82, 0xe3, 0x1b, + 0x8d, 0x81, 0xcb, 0x00, 0x4a, 0x0e, 0xb8, 0x80, 0x6f, 0x2f, 0xd6, 0x23, + 0xcf, 0x3a, 0xdd, 0x8d, 0x27, 0xe2, 0x02, 0xf8, 0x63, 0x94, 0x94, 0x95, + 0x44, 0x4f, 0xa2, 0xa2, 0xaf, 0xe8, 0x5f, 0x20, 0x69, 0x41, 0x96, 0x47, + 0x36, 0xa9, 0xe2, 0x3c, 0x43, 0xc5, 0xca, 0xd3, 0xf5, 0x32, 0x2b, 0x07, + 0x54, 0xe7, 0x23, 0x84, 0xe0, 0xc2, 0xa9, 0x7c, 0x59, 0x05, 0xbc, 0xdc, + 0xa0, 0x17, 0x1b, 0xf4, 0x56, 0xcc, 0x2f, 0x67, 0x5e, 0xaf, 0x12, 0x1f, + 0x1c, 0xb3, 0xf4, 0xae, 0xe4, 0xac, 0x20, 0xe7, 0x50, 0x38, 0xd4, 0xfe, + 0xa2, 0x14, 0x1f, 0x70, 0x59, 0x3f, 0x74, 0x77, 0x9b, 0x9b, 0x3c, 0x05, + 0x84, 0xd2, 0xdd, 0x9a, 0xf3, 0xc5, 0xe0, 0x4f, 0x65, 0xb4, 0x46, 0xe8, + 0x9b, 0xbe, 0xe6, 0xe3, 0x03, 0x78, 0x71, 0xdd, 0xa3, 0xe9, 0x03, 0xa4, + 0x66, 0xc7, 0x5a, 0xb5, 0xd4, 0x0a, 0x37, 0x15, 0x3e, 0x8a, 0xde, 0xdb, + 0x63, 0x74, 0xb7, 0xbc, 0x54, 0xcf, 0x85, 0xb4, 0xca, 0x3b, 0xc2, 0x9c, + 0xb7, 0xbd, 0xfc, 0x40, 0xac, 0x09, 0xf2, 0xa8, 0xbb, 0xea, 0xc5, 0xd2, + 0x1c, 0xdf, 0xe6, 0x45, 0x74, 0x14, 0xc9, 0x27, 0x9d, 0xee, 0xa5, 0x2c, + 0xba, 0xd9, 0x20, 0x8f, 0x30, 0x49, 0xaf, 0xdc, 0x13, 0xcb, 0xe3, 0x08, + 0x81, 0xe8, 0x8c, 0x52, 0x01, 0x8e, 0xfd, 0x87, 0xa1, 0x06, 0x31, 0xbe, + 0x97, 0xac, 0x92, 0x5e, 0x98, 0xc0, 0xc5, 0x0d, 0x2a, 0x24, 0xe4, 0xce, + 0x6a, 0xe5, 0x3d, 0xf0, 0x32, 0x2e, 0xf5, 0x4b, 0x76, 0xf9, 0x9a, 0x78, + 0x46, 0xf4, 0xc1, 0x36, 0x5d, 0x7a, 0x8e, 0xaf, 0x5d, 0x8e, 0xd9, 0x08, + 0x7a, 0x2f, 0x42, 0xab, 0xb7, 0x76, 0xcf, 0xc5, 0xfe, 0x11, 0x76, 0x36, + 0x4a, 0x8f, 0x33, 0x3a, 0x9e, 0xf3, 0x45, 0x1b, 0x13, 0x18, 0x74, 0x8a, + 0x22, 0x80, 0x80, 0x70, 0xdd, 0x8b, 0x7d, 0x18, 0xf6, 0xda, 0xa0, 0x81, + 0xcd, 0x6b, 0x89, 0xd9, 0x06, 0x8d, 0xb6, 0xb8, 0x5a, 0x23, 0xb6, 0xe4, + 0x15, 0x77, 0xc8, 0xda, 0xe2, 0xb5, 0x2c, 0x12, 0x97, 0x1d, 0xad, 0xca, + 0x24, 0xc4, 0xea, 0x42, 0xa1, 0x73, 0xd8, 0xaa, 0x73, 0x6f, 0x77, 0x52, + 0xff, 0xb8, 0xa1, 0xc0, 0x67, 0x79, 0xd8, 0x03, 0x2c, 0x80, 0x33, 0x9d, + 0x72, 0xf2, 0xf3, 0x25, 0xa0, 0x51, 0xfe, 0x7a, 0x09, 0x32, 0xe9, 0xe1, + 0x52, 0x83, 0x41, 0x80, 0x7b, 0x8e, 0x3e, 0x84, 0xa9, 0x23, 0xff, 0x68, + 0x18, 0xfd, 0xf2, 0x8b, 0x9e, 0x44, 0xbb, 0xf6, 0x38, 0x27, 0xa2, 0x24, + 0xf7, 0x30, 0xf4, 0xf0, 0xf5, 0x2e, 0x30, 0x24, 0x46, 0x91, 0xaf, 0x8f, + 0x9f, 0x7d, 0xf1, 0x59, 0x04, 0x7d, 0xfd, 0xb3, 0x2f, 0xde, 0xff, 0xc0, + 0x8a, 0xf4, 0x54, 0xf9, 0xc4, 0x4d, 0x76, 0x71, 0xff, 0xab, 0x5e, 0x89, + 0xff, 0xe0, 0x0f, 0x7b, 0x05, 0xd9, 0x46, 0xef, 0xbc, 0xc2, 0xc2, 0x7e, + 0x08, 0x18, 0x60, 0xce, 0x45, 0x34, 0x56, 0xd5, 0x2a, 0xb1, 0xd1, 0xbb, + 0x4b, 0x6f, 0xbb, 0xbd, 0x2d, 0x4e, 0x56, 0xea, 0x6f, 0x01, 0x3e, 0xe4, + 0xfc, 0x01, 0x58, 0xf0, 0xd0, 0x23, 0x69, 0x1f, 0x3e, 0x01, 0x6e, 0xe8, + 0xd5, 0xd7, 0xd7, 0xcf, 0xbe, 0xf8, 0xf2, 0xd3, 0x77, 0xbf, 0x37, 0x24, + 0xaf, 0xcc, 0x34, 0xc1, 0xcb, 0x37, 0xb4, 0x31, 0x8e, 0x98, 0xf6, 0xc4, + 0xac, 0xd4, 0x9e, 0xc3, 0x34, 0xab, 0x14, 0x56, 0xdc, 0xe2, 0x60, 0xe0, + 0x6a, 0xca, 0x74, 0xc0, 0x5d, 0x42, 0x99, 0x37, 0x55, 0x2a, 0xeb, 0xfa, + 0xba, 0xa8, 0xab, 0xd0, 0xfe, 0xe7, 0xdf, 0x1e, 0x0b, 0xe4, 0x3f, 0xa7, + 0xfc, 0x3e, 0xfd, 0x54, 0x3d, 0xa1, 0x99, 0xbe, 0xb0, 0x06, 0xb6, 0xd3, + 0x5c, 0xb3, 0x2b, 0x4a, 0x90, 0xda, 0xce, 0xd8, 0xaa, 0x43, 0x6a, 0x1d, + 0x25, 0xa0, 0x5b, 0x52, 0xeb, 0xfc, 0x97, 0xf5, 0xea, 0x0d, 0xa1, 0x57, + 0xcf, 0xbe, 0xf9, 0xd7, 0x54, 0x12, 0x81, 0x9b, 0xd6, 0xf2, 0x4d, 0x39, + 0x7a, 0x7c, 0x30, 0x1c, 0x1c, 0x0c, 0xff, 0x35, 0x35, 0x6d, 0xde, 0x9c, + 0x4f, 0xf6, 0x65, 0x45, 0x3f, 0x5c, 0xa4, 0xc9, 0x68, 0x7f, 0x38, 0xfa, + 0xd7, 0xd4, 0x95, 0x80, 0xeb, 0xe3, 0xff, 0xff, 0xe9, 0x1a, 0x20, 0xf0, + 0x5f, 0x56, 0x05, 0x2b, 0x74, 0xb2, 0x3d, 0xe3, 0xd9, 0x6f, 0xf4, 0x8a, + 0xbd, 0xb3, 0x3e, 0x3f, 0x6f, 0xe4, 0x93, 0x87, 0x07, 0xd2, 0x56, 0x12, + 0x6c, 0xaa, 0x07, 0xae, 0x20, 0x1b, 0x20, 0x54, 0xa8, 0xbe, 0x3b, 0x1b, + 0x76, 0x4b, 0x71, 0x57, 0x60, 0x01, 0x7e, 0xba, 0xda, 0xcc, 0xe7, 0x05, + 0x66, 0xe9, 0x84, 0xde, 0x65, 0x94, 0x6b, 0xd7, 0x82, 0x4f, 0xc0, 0x6b, + 0xb7, 0x2e, 0x23, 0xc4, 0xa6, 0x5c, 0x6a, 0x1a, 0xe1, 0x5d, 0xcb, 0x5e, + 0x19, 0xef, 0x6b, 0x5d, 0x3f, 0x0d, 0x60, 0x76, 0x50, 0xc7, 0x43, 0xc2, + 0x94, 0x63, 0x20, 0xf2, 0xb0, 0xb9, 0xa4, 0xc2, 0x70, 0xeb, 0x51, 0xe1, + 0xc0, 0x20, 0xc9, 0xa9, 0x32, 0x84, 0xfc, 0x1c, 0x8b, 0xbb, 0xe3, 0xf9, + 0x2c, 0x48, 0x65, 0x96, 0xc0, 0x7c, 0x21, 0xc3, 0x67, 0x0e, 0x17, 0x49, + 0x5a, 0x00, 0xe9, 0xec, 0x18, 0xb7, 0x90, 0x87, 0xac, 0xb7, 0xfe, 0x8b, + 0x98, 0x92, 0x02, 0x80, 0xf9, 0x0d, 0x17, 0x4c, 0x51, 0x3f, 0x84, 0x3e, + 0x0a, 0x9b, 0xb3, 0x72, 0x4f, 0x2e, 0x33, 0xe7, 0xb7, 0x12, 0x3f, 0x02, + 0x93, 0x20, 0x3a, 0xb9, 0x42, 0x76, 0x79, 0xd9, 0x77, 0xcd, 0x0b, 0x7c, + 0xd4, 0x6e, 0x2d, 0x16, 0xcf, 0x57, 0xe8, 0x65, 0xb2, 0x2c, 0x8f, 0x04, + 0x67, 0x89, 0x8d, 0x14, 0x07, 0x57, 0x96, 0x16, 0xde, 0x3b, 0x80, 0xc7, + 0xd7, 0x41, 0xbd, 0xa8, 0x7c, 0xb1, 0xd9, 0x83, 0xff, 0x72, 0x81, 0xcf, + 0x60, 0x3e, 0x22, 0x64, 0x68, 0x04, 0x7e, 0xf0, 0x05, 0xaf, 0xa2, 0x90, + 0x17, 0xb1, 0x10, 0xbe, 0x9b, 0xa6, 0x9f, 0xd3, 0xf5, 0x8c, 0x5b, 0x3b, + 0xc6, 0xaf, 0x0b, 0xe3, 0xd7, 0xec, 0xb4, 0xab, 0xd9, 0x9d, 0xe0, 0xbb, + 0x54, 0xcc, 0x43, 0x05, 0x13, 0x23, 0x93, 0x0b, 0xf3, 0xe7, 0x85, 0xf9, + 0x73, 0x36, 0x0a, 0x65, 0xe4, 0xa0, 0x84, 0x91, 0x2a, 0x4e, 0x0e, 0x4c, + 0x4e, 0xcc, 0x9f, 0x17, 0xe6, 0xcf, 0xd9, 0x81, 0xc1, 0xc9, 0x3d, 0x7e, + 0x0a, 0x7f, 0x15, 0x46, 0x38, 0xf6, 0x23, 0xe5, 0xb1, 0x82, 0xde, 0x95, + 0x4c, 0x57, 0x3f, 0x4f, 0xab, 0x96, 0x01, 0x8f, 0xf4, 0x98, 0xf7, 0x02, + 0x9a, 0xfc, 0x9c, 0xc9, 0x47, 0x29, 0xe8, 0x47, 0x15, 0xb0, 0x45, 0x06, + 0xe2, 0x1e, 0x89, 0xb4, 0xf8, 0xd1, 0xe8, 0x8c, 0xe0, 0x0c, 0xbf, 0x04, + 0x57, 0x9b, 0xf5, 0x0a, 0x08, 0x8b, 0x7a, 0xce, 0x0b, 0x71, 0xa4, 0x49, + 0xbe, 0x4d, 0x57, 0x51, 0xdc, 0xd9, 0x47, 0x41, 0x88, 0x7e, 0x0f, 0xd9, + 0x83, 0x7c, 0x7d, 0x9c, 0xa7, 0x60, 0xa1, 0x62, 0x70, 0x66, 0x0a, 0xe3, + 0xe9, 0x72, 0x01, 0x4b, 0x9b, 0xfe, 0x08, 0xd3, 0xbf, 0xde, 0x6c, 0xe0, + 0x14, 0x62, 0x9a, 0x25, 0xb1, 0x63, 0x54, 0x58, 0x90, 0xf0, 0xc5, 0x29, + 0x82, 0x79, 0x50, 0x20, 0x70, 0x92, 0xd4, 0x85, 0x52, 0x3d, 0x19, 0xc3, + 0xb2, 0x8c, 0x51, 0x59, 0x06, 0x34, 0x80, 0xcb, 0xcf, 0x7a, 0x75, 0x4c, + 0x3d, 0x9e, 0xda, 0x40, 0xb8, 0x5e, 0x33, 0xba, 0xcd, 0x0b, 0x9e, 0xfd, + 0x47, 0xc3, 0x7d, 0xcb, 0x66, 0xad, 0x4c, 0x28, 0x21, 0x0f, 0x36, 0x29, + 0x7d, 0xbe, 0x9f, 0x9c, 0x4f, 0xb7, 0xcb, 0x9c, 0x24, 0xc0, 0xd4, 0x04, + 0x08, 0x47, 0xbe, 0xc8, 0xd7, 0xdb, 0xf9, 0x25, 0x86, 0xdd, 0x64, 0x63, + 0xa5, 0xe8, 0x92, 0xb3, 0x3c, 0x09, 0x3f, 0x4d, 0xa1, 0xed, 0xd8, 0x64, + 0x61, 0x99, 0x90, 0x69, 0x4d, 0x7a, 0x6e, 0x9e, 0x46, 0x9f, 0x4d, 0xf3, + 0xcb, 0x01, 0x4d, 0x67, 0x62, 0x1d, 0xf3, 0x19, 0x96, 0x42, 0xa7, 0x72, + 0x83, 0x0d, 0x2c, 0x5e, 0xbf, 0x8b, 0xfa, 0x40, 0x7d, 0x00, 0x26, 0x12, + 0x4c, 0xc5, 0xa7, 0xc9, 0x79, 0xde, 0xed, 0x99, 0x94, 0x6e, 0x43, 0x29, + 0x7d, 0xcf, 0x94, 0x30, 0x6f, 0xd3, 0xd5, 0xac, 0xaa, 0x52, 0xf5, 0xf2, + 0xca, 0x93, 0xcb, 0x25, 0xac, 0x78, 0x8b, 0x8a, 0x89, 0x22, 0xbf, 0x0b, + 0xe1, 0x5c, 0x80, 0x7e, 0xef, 0xe7, 0x8d, 0xdb, 0x91, 0xdd, 0xfc, 0x63, + 0x17, 0xa1, 0x9e, 0xf6, 0xc9, 0x15, 0xd4, 0xf1, 0x7d, 0x68, 0xff, 0x18, + 0xf8, 0x1a, 0xdc, 0xf4, 0x22, 0xfc, 0xb8, 0x85, 0xf7, 0x4f, 0xf0, 0x5f, + 0x97, 0x1e, 0x0a, 0x21, 0x21, 0xf6, 0x3a, 0xfc, 0x5c, 0xd2, 0x60, 0x25, + 0xa7, 0x04, 0xcb, 0x57, 0x23, 0x19, 0x1c, 0xbf, 0x3d, 0x26, 0xd7, 0x3c, + 0xe8, 0x93, 0xc7, 0xcc, 0x94, 0xf8, 0x9c, 0x78, 0xd2, 0x81, 0xd2, 0xa0, + 0x37, 0x4a, 0x72, 0xa7, 0xd1, 0x84, 0x8b, 0xf7, 0x00, 0xa7, 0x26, 0x28, + 0x5f, 0xd6, 0x77, 0x20, 0x2f, 0x7c, 0x90, 0x43, 0x1f, 0xe4, 0xcc, 0x07, + 0x39, 0xf2, 0x41, 0x5e, 0x6b, 0x90, 0x3c, 0xf4, 0xf2, 0x55, 0x50, 0x93, + 0x23, 0xeb, 0xc6, 0xa7, 0xcb, 0x04, 0x5f, 0xec, 0x74, 0x8b, 0x75, 0xaf, + 0xb5, 0xb8, 0x67, 0x8a, 0xd8, 0x1a, 0x95, 0xe7, 0xa5, 0xfe, 0x93, 0x4f, + 0xef, 0x19, 0xac, 0x75, 0xa2, 0xe1, 0x86, 0x7f, 0x31, 0x4c, 0x89, 0xd4, + 0x2c, 0x43, 0xe1, 0x95, 0xb6, 0xd1, 0x8b, 0xd1, 0xaf, 0xf0, 0x49, 0xff, + 0x7e, 0x2f, 0x82, 0xff, 0xa4, 0xc9, 0xbe, 0x5e, 0x9c, 0xe5, 0x97, 0xc5, + 0xaf, 0xcb, 0x04, 0xc7, 0x7c, 0x6d, 0x10, 0x51, 0xb4, 0x43, 0x82, 0xeb, + 0xe8, 0xa5, 0x12, 0x9b, 0x94, 0x0e, 0xd5, 0x70, 0xa7, 0x5b, 0x0c, 0xf4, + 0x2d, 0x0e, 0x2c, 0xb1, 0x56, 0x62, 0x51, 0xe8, 0xde, 0xab, 0xaf, 0x4a, + 0xd0, 0x57, 0xa3, 0xf7, 0x01, 0x32, 0x93, 0x1d, 0x08, 0x47, 0x04, 0x95, + 0xb1, 0xc7, 0xb2, 0xd1, 0xa8, 0x19, 0xd6, 0x73, 0x9e, 0x40, 0xfd, 0xd3, + 0xef, 0xa2, 0x89, 0x51, 0xe3, 0x68, 0x2f, 0x1a, 0x8d, 0x6d, 0xa0, 0xef, + 0x01, 0xc8, 0x10, 0x84, 0x82, 0x72, 0xdf, 0xd5, 0x49, 0xaa, 0x3d, 0x85, + 0x19, 0x24, 0x4f, 0x2c, 0x89, 0xde, 0x59, 0x7f, 0x05, 0x27, 0xab, 0xdb, + 0xcc, 0x65, 0xe9, 0xf1, 0xe0, 0x50, 0x03, 0x85, 0xa3, 0x55, 0x0d, 0x34, + 0x36, 0x60, 0xfb, 0xf0, 0x9e, 0xbe, 0x6b, 0xb2, 0x47, 0xe0, 0xd1, 0x6c, + 0x9d, 0x82, 0xc2, 0x61, 0x22, 0x37, 0xfd, 0x2c, 0xb9, 0x58, 0xac, 0xbe, + 0x04, 0xab, 0x15, 0x77, 0x6d, 0x70, 0xd1, 0x76, 0x26, 0xf8, 0x34, 0x9d, + 0xbb, 0xf5, 0xd3, 0xb9, 0x21, 0xfd, 0x19, 0x41, 0xb3, 0x90, 0x25, 0xfc, + 0xf2, 0x93, 0x9e, 0x38, 0xe0, 0x64, 0xe2, 0xd4, 0x16, 0xf8, 0x1a, 0xd3, + 0x60, 0xea, 0x69, 0x14, 0x83, 0xc9, 0xcb, 0x28, 0x73, 0x15, 0x4d, 0xc9, + 0x82, 0x22, 0x90, 0x64, 0xe2, 0x85, 0xae, 0xc9, 0xc6, 0x72, 0xb1, 0x4a, + 0xbe, 0xa5, 0xca, 0x4e, 0xa2, 0xc7, 0x63, 0x33, 0x4f, 0x3c, 0x7f, 0x3f, + 0xc6, 0x15, 0x36, 0xe4, 0x76, 0x5e, 0xdc, 0xa7, 0xbf, 0x8e, 0x17, 0x2a, + 0xee, 0x5a, 0xc9, 0xf4, 0xe4, 0xba, 0x10, 0x47, 0xc1, 0xf3, 0xf9, 0x62, + 0xb9, 0x14, 0x4e, 0xc8, 0x66, 0xc9, 0x74, 0x9b, 0x2f, 0xce, 0xb7, 0x4b, + 0xe5, 0xfb, 0x55, 0x81, 0xe4, 0xd3, 0x1f, 0x93, 0x15, 0xbd, 0x05, 0xa5, + 0x4b, 0x2a, 0x4f, 0xa3, 0xcb, 0x3c, 0xdf, 0x3c, 0x85, 0xc7, 0xe8, 0x39, + 0xac, 0xf2, 0x61, 0x8c, 0x4d, 0xcf, 0x97, 0xeb, 0x6b, 0xb0, 0x4a, 0x57, + 0x7b, 0x3f, 0x6d, 0x93, 0x8c, 0x4e, 0x46, 0xf7, 0x86, 0x6f, 0x8c, 0x9e, + 0x1c, 0xbe, 0xb1, 0xff, 0x78, 0x6f, 0xb6, 0x5d, 0x2c, 0xf1, 0x40, 0xbd, + 0x3f, 0xed, 0x13, 0xd9, 0x3e, 0xcd, 0xa9, 0xfa, 0x8b, 0x55, 0xff, 0x32, + 0xbf, 0x5a, 0x1e, 0x5a, 0x21, 0xd8, 0xc0, 0x38, 0x2c, 0x85, 0x89, 0x91, + 0x5f, 0xdf, 0x82, 0x09, 0xe4, 0x93, 0xe2, 0xd7, 0x6b, 0xd6, 0xdc, 0x9a, + 0x43, 0xed, 0xbe, 0x2b, 0x11, 0x63, 0x01, 0xd8, 0x87, 0xf9, 0x2f, 0xb7, + 0x14, 0x68, 0xcc, 0xf0, 0x0d, 0xdb, 0x1b, 0x3c, 0xcc, 0x42, 0x15, 0x12, + 0xe1, 0x94, 0x82, 0xfb, 0x35, 0xca, 0xcd, 0xc5, 0xe9, 0xc6, 0xb3, 0xb5, + 0xa3, 0x43, 0x0a, 0xd4, 0xd6, 0x35, 0x73, 0x80, 0x55, 0x58, 0x6e, 0x2a, + 0x90, 0x30, 0x53, 0x75, 0x9d, 0xb4, 0x72, 0x58, 0x14, 0x56, 0x06, 0x54, + 0xd6, 0x97, 0x4c, 0x0a, 0xcc, 0x49, 0xcc, 0xaa, 0x5f, 0x6d, 0xdc, 0x5c, + 0xd4, 0x9e, 0x42, 0x1f, 0x2f, 0xb3, 0x65, 0x0c, 0x63, 0x92, 0x6a, 0x2b, + 0x3c, 0xd8, 0x46, 0xcf, 0x0f, 0x78, 0xe3, 0xe0, 0xe5, 0x6e, 0xa7, 0x04, + 0x3b, 0x0e, 0x2b, 0xf4, 0x9e, 0x55, 0x16, 0x8d, 0x49, 0x93, 0x2e, 0x9f, + 0x5f, 0x2e, 0xb2, 0x41, 0x75, 0x2f, 0x4f, 0x85, 0x30, 0x75, 0xf9, 0xb1, + 0xc8, 0x80, 0xfa, 0x16, 0xe1, 0x8e, 0x96, 0xf0, 0x28, 0xfa, 0x7a, 0x81, + 0x3d, 0x3e, 0xc4, 0x72, 0x00, 0x97, 0xe1, 0x96, 0x03, 0x25, 0x81, 0x46, + 0x41, 0xa2, 0xb3, 0x35, 0xbc, 0xba, 0x7d, 0x7e, 0x81, 0xdc, 0x41, 0x32, + 0xcf, 0xa1, 0x64, 0xc4, 0xc1, 0x4f, 0xc1, 0x54, 0x4c, 0xd3, 0x8f, 0x44, + 0xb6, 0x1a, 0xe0, 0x86, 0xaf, 0xe3, 0xa7, 0x22, 0xcd, 0xe8, 0x14, 0x59, + 0x46, 0xbc, 0x5a, 0xca, 0xd7, 0x1b, 0x04, 0x86, 0x03, 0x67, 0x0c, 0xca, + 0x52, 0x0b, 0x0a, 0xb3, 0x32, 0x75, 0xc0, 0x4c, 0x86, 0xa3, 0xa4, 0xfd, + 0x75, 0x02, 0xe3, 0x52, 0x28, 0x45, 0x0a, 0x20, 0xbc, 0x9a, 0xe0, 0xd8, + 0x52, 0xd9, 0xda, 0x68, 0x16, 0xcb, 0x0d, 0xe5, 0x68, 0x77, 0x86, 0xb2, + 0x76, 0x60, 0x16, 0x66, 0xdc, 0x3f, 0x34, 0xf3, 0x6c, 0x40, 0x19, 0xad, + 0x65, 0x92, 0x4b, 0x6d, 0xf3, 0x0d, 0xcd, 0x0c, 0xb3, 0xc0, 0x29, 0xb2, + 0xd3, 0xe2, 0x3c, 0x71, 0x06, 0x6d, 0x2a, 0xb4, 0x96, 0xbf, 0x77, 0x99, + 0x02, 0x4d, 0x15, 0x81, 0x00, 0x11, 0x52, 0x73, 0x6a, 0xcd, 0xda, 0x22, + 0xc8, 0x0d, 0xe4, 0xf7, 0x05, 0xe6, 0x18, 0x7e, 0xbc, 0x15, 0x15, 0xdf, + 0xcd, 0x03, 0x76, 0xc6, 0xb8, 0xd5, 0x31, 0x6e, 0x35, 0x8c, 0x5b, 0x0b, + 0x43, 0x71, 0x71, 0x92, 0xc2, 0xec, 0xfe, 0x72, 0x81, 0x13, 0xd4, 0x9b, + 0xdb, 0xd1, 0x66, 0xbd, 0x9c, 0xa6, 0x31, 0x4c, 0xf8, 0x6f, 0x91, 0x53, + 0xcf, 0xcb, 0xfc, 0xe8, 0x6d, 0x49, 0xb1, 0xec, 0xfe, 0x58, 0xf6, 0xe3, + 0x62, 0x43, 0x6e, 0x87, 0x81, 0xca, 0x6d, 0x17, 0xc4, 0x03, 0x56, 0x60, + 0xb1, 0x02, 0xd1, 0x64, 0xa0, 0x2c, 0xd3, 0x1c, 0xc6, 0x57, 0x1a, 0x7d, + 0xb3, 0xc5, 0x19, 0x7c, 0x9e, 0x6b, 0xe3, 0xac, 0xd7, 0x03, 0x16, 0x4c, + 0xed, 0xb6, 0x9e, 0x1b, 0x4a, 0x6e, 0x35, 0xce, 0xe8, 0xb9, 0x03, 0xb0, + 0x36, 0x82, 0x6f, 0x31, 0x54, 0xc8, 0xe1, 0x9f, 0x76, 0xd1, 0x16, 0x17, + 0x5b, 0x51, 0x3e, 0x15, 0x4c, 0xd6, 0x04, 0xef, 0x92, 0xd1, 0xf6, 0xa2, + 0x60, 0x67, 0x91, 0x45, 0x9b, 0xc5, 0x4d, 0xb2, 0x84, 0x34, 0x82, 0xa1, + 0xe6, 0x11, 0x6d, 0x45, 0x1e, 0x6d, 0x06, 0x6e, 0xd9, 0xe9, 0xfa, 0xfa, + 0x53, 0x71, 0x01, 0x73, 0xa2, 0x35, 0xf5, 0xd8, 0x05, 0x9c, 0x9e, 0xfd, + 0xb0, 0xcd, 0xf2, 0xe4, 0x0c, 0x66, 0x7d, 0xd0, 0x9a, 0xaf, 0x29, 0x40, + 0x39, 0x89, 0x83, 0x71, 0x1a, 0x5a, 0x5c, 0x0c, 0xe3, 0x27, 0xfd, 0x43, + 0x72, 0x32, 0x7a, 0x8a, 0x2e, 0x5e, 0x4e, 0xf6, 0xd1, 0x4e, 0xc3, 0xf7, + 0x18, 0x18, 0xd2, 0x25, 0x0a, 0x1c, 0x7b, 0x79, 0xec, 0x96, 0x17, 0x8d, + 0x73, 0xc9, 0x5b, 0x7f, 0xd1, 0xb7, 0x3b, 0x2a, 0x9a, 0xc4, 0xc9, 0x33, + 0x26, 0x2c, 0x32, 0x81, 0x0d, 0x60, 0x29, 0xe6, 0x34, 0xf9, 0x69, 0xbb, + 0x48, 0x81, 0xe0, 0xe3, 0x28, 0x5b, 0xae, 0xf3, 0x4c, 0xc9, 0x9d, 0x49, + 0xba, 0x14, 0xa9, 0xb9, 0x68, 0x2e, 0xa1, 0x04, 0x0a, 0x35, 0x8a, 0xb9, + 0x8a, 0xaf, 0x72, 0x93, 0x74, 0x71, 0x96, 0xc1, 0x1c, 0x8c, 0x7d, 0xba, + 0x73, 0x49, 0x8b, 0x26, 0xd0, 0x1b, 0x4f, 0x93, 0x65, 0x53, 0xd8, 0xa0, + 0x99, 0x4a, 0xcf, 0x62, 0x69, 0xb4, 0x57, 0xde, 0xb8, 0x6a, 0xf1, 0x35, + 0x1c, 0xec, 0x7b, 0x4b, 0x39, 0x81, 0x45, 0x52, 0x4f, 0xac, 0xf0, 0x7a, + 0xb4, 0x96, 0xa3, 0xc5, 0x6b, 0xf6, 0xf3, 0x08, 0xd6, 0xcc, 0x31, 0xb0, + 0xd0, 0xd3, 0xca, 0xea, 0x09, 0x6a, 0x5d, 0x9f, 0x0e, 0x2d, 0x37, 0x97, + 0x53, 0x54, 0xb4, 0xc3, 0x43, 0xbb, 0x18, 0x92, 0xd9, 0x09, 0x09, 0x07, + 0x69, 0x43, 0x79, 0xe3, 0xb2, 0x7c, 0x90, 0xd7, 0x10, 0x60, 0x04, 0x3b, + 0x55, 0x50, 0x23, 0x80, 0x22, 0x6e, 0xab, 0x80, 0x0e, 0x00, 0x48, 0x30, + 0x56, 0xb6, 0xbb, 0x6c, 0x8e, 0xf1, 0x9b, 0xad, 0xb6, 0xc3, 0x40, 0x1a, + 0x44, 0x23, 0xe3, 0xbe, 0xb5, 0xa1, 0x6b, 0x1a, 0x24, 0xd3, 0x42, 0x43, + 0x81, 0x34, 0x56, 0x67, 0x3f, 0xa5, 0x79, 0x7c, 0x03, 0x6d, 0x8c, 0x7c, + 0xdc, 0xc2, 0xe7, 0xad, 0x6e, 0x62, 0xc1, 0x0e, 0x28, 0x40, 0x28, 0x6a, + 0x35, 0x8a, 0x61, 0x0f, 0xe3, 0x86, 0x00, 0x78, 0xef, 0x4d, 0x19, 0x40, + 0xab, 0x6c, 0x65, 0x4a, 0xe0, 0x53, 0x77, 0x4e, 0x0b, 0x3f, 0x41, 0xfd, + 0xa0, 0x93, 0xfc, 0xfe, 0x5b, 0x2f, 0xfa, 0xfd, 0xb7, 0x53, 0x48, 0x80, + 0xe5, 0xb2, 0xca, 0x56, 0x34, 0x01, 0x11, 0x04, 0x4b, 0x80, 0x50, 0x2f, + 0x98, 0x1f, 0x33, 0x1c, 0x17, 0x1c, 0x23, 0x6d, 0xe0, 0x5a, 0xce, 0x39, + 0x70, 0xd9, 0x14, 0x6b, 0x73, 0x10, 0xd2, 0x5c, 0x40, 0xb5, 0xf8, 0xaa, + 0xd6, 0x18, 0x43, 0x48, 0xf3, 0x4b, 0xe8, 0xcf, 0xa0, 0x2b, 0x22, 0x0b, + 0xa8, 0x31, 0xb8, 0x26, 0x23, 0x20, 0x34, 0x04, 0x18, 0xf8, 0x00, 0x06, + 0xa0, 0x38, 0xce, 0x81, 0x2e, 0x26, 0x69, 0x00, 0x6e, 0x3c, 0x8c, 0xfa, + 0x52, 0x92, 0xb3, 0x2c, 0x8e, 0x09, 0xeb, 0x65, 0x9c, 0xc4, 0xf7, 0x61, + 0xc6, 0xaf, 0xcb, 0x3c, 0x1d, 0x82, 0x96, 0xc3, 0xff, 0xb3, 0xa1, 0xb1, + 0x01, 0x48, 0x08, 0x6f, 0xc3, 0xc2, 0x01, 0x6e, 0x69, 0x51, 0x99, 0xae, + 0xbf, 0xc5, 0xf8, 0x84, 0x71, 0x51, 0xa3, 0x4e, 0x44, 0xe1, 0xd0, 0x64, + 0xa0, 0x1b, 0xa7, 0xe6, 0x7a, 0xdd, 0xa0, 0x39, 0xd4, 0x69, 0x8e, 0xaa, + 0x69, 0x02, 0x2d, 0x49, 0xb6, 0x9a, 0xe6, 0x48, 0xa7, 0x79, 0x50, 0x4d, + 0x73, 0x9f, 0x69, 0xde, 0x54, 0xd1, 0x3c, 0xd0, 0x69, 0x3e, 0xae, 0xa5, + 0x59, 0xb0, 0x5a, 0x45, 0xf3, 0xb1, 0x4e, 0xf3, 0xb0, 0xb6, 0xee, 0xfb, + 0x21, 0x34, 0x0f, 0x75, 0x9a, 0x4f, 0xc2, 0xda, 0x68, 0x9f, 0xeb, 0x4e, + 0x9d, 0x9e, 0x15, 0xe2, 0xaa, 0xd0, 0xc0, 0xbe, 0x2c, 0x9b, 0xa0, 0x78, + 0xfa, 0x71, 0x01, 0xc4, 0x88, 0x16, 0xf9, 0x6a, 0xba, 0x82, 0x04, 0xf9, + 0x39, 0xa3, 0xcf, 0x53, 0x6d, 0xd6, 0xa9, 0xee, 0xef, 0xa7, 0xbd, 0x8b, + 0xde, 0x8c, 0xa8, 0x2a, 0x1f, 0x4b, 0x20, 0xb0, 0xa1, 0x1a, 0xb2, 0xc0, + 0x36, 0x9e, 0x9a, 0x7d, 0x1c, 0x52, 0x40, 0x87, 0xa1, 0x2c, 0xf1, 0xe5, + 0x42, 0x7e, 0x81, 0x72, 0x9d, 0x7d, 0x71, 0x7a, 0x1c, 0xb2, 0x84, 0x31, + 0x2e, 0x46, 0x07, 0x9b, 0xfa, 0x3e, 0x16, 0x25, 0x0c, 0xf0, 0x9f, 0x67, + 0x6a, 0x93, 0x89, 0x5a, 0x94, 0x92, 0x69, 0xbc, 0x5a, 0xac, 0x0a, 0x97, + 0x52, 0x03, 0xd3, 0xc7, 0x3c, 0x03, 0x95, 0x3b, 0xb2, 0x3b, 0x29, 0x60, + 0x4e, 0x95, 0x1c, 0xab, 0xca, 0x26, 0xad, 0x2f, 0x92, 0xe9, 0x12, 0x12, + 0x3d, 0x3d, 0x39, 0x3e, 0xfa, 0xea, 0x93, 0x2f, 0x9f, 0xe1, 0xbe, 0x57, + 0xb5, 0xc3, 0x79, 0x42, 0x9d, 0x63, 0x30, 0x72, 0x7c, 0x49, 0x57, 0xed, + 0x7a, 0x9e, 0x85, 0x62, 0x61, 0xc1, 0xad, 0x4e, 0xdf, 0x8d, 0x05, 0x12, + 0xaa, 0x3a, 0xbb, 0x71, 0x83, 0x0e, 0x74, 0xde, 0xff, 0xe2, 0x33, 0x3a, + 0x91, 0x81, 0xb4, 0xf5, 0xf4, 0x2c, 0x39, 0x83, 0x95, 0xa8, 0x6a, 0x80, + 0xe2, 0x28, 0x82, 0xdb, 0x1c, 0x0a, 0xc2, 0x96, 0x4d, 0xb7, 0xab, 0x28, + 0x5b, 0xac, 0xe6, 0x49, 0x04, 0xe8, 0xe8, 0x13, 0x6f, 0x49, 0xb8, 0x14, + 0xe8, 0x22, 0x45, 0xff, 0x7f, 0x72, 0x13, 0x35, 0xc9, 0xe9, 0xdd, 0x8e, + 0x5a, 0x37, 0x50, 0x9e, 0xba, 0x38, 0x5f, 0xe5, 0xc4, 0x94, 0x3d, 0x03, + 0x3e, 0x8c, 0xcb, 0x4d, 0x50, 0x81, 0x01, 0xb2, 0x48, 0xdc, 0x14, 0x4b, + 0x49, 0xc3, 0x89, 0x60, 0xc1, 0xb1, 0x78, 0x25, 0xaf, 0x58, 0x31, 0x17, + 0x1e, 0xd0, 0xc9, 0x55, 0xa8, 0x3c, 0x6b, 0x1f, 0x50, 0xe5, 0x94, 0x87, + 0x0f, 0x87, 0x86, 0xd0, 0xdb, 0xe7, 0xad, 0xbd, 0x6c, 0x9e, 0x2e, 0x36, + 0xf9, 0xdb, 0x90, 0x44, 0x3f, 0x67, 0xeb, 0xb3, 0x5b, 0xf8, 0xf1, 0xd6, + 0x1e, 0x6e, 0xf6, 0xc0, 0x97, 0x3f, 0x00, 0xb5, 0x95, 0x2d, 0xd2, 0x23, + 0xa0, 0x01, 0x00 }; diff --git a/Arduino/McLighting/json_functions.h b/Arduino/McLighting/json_functions.h new file mode 100644 index 0000000..cbd5a46 --- /dev/null +++ b/Arduino/McLighting/json_functions.h @@ -0,0 +1,269 @@ +#include //https://github.com/bblanchon/ArduinoJson + +#if defined(ARDUINOJSON_VERSION) + #if !(ARDUINOJSON_VERSION_MAJOR == 6 and ARDUINOJSON_VERSION_MINOR >= 8) + #error "Install ArduinoJson v6.8.x or higher" + #endif +#endif + +char * listStateJSONfull() { + const size_t bufferSize = JSON_ARRAY_SIZE(12) + JSON_OBJECT_SIZE(20) + 250; + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject root = jsonBuffer.to(); + root["segment"] = segment; + root["start"] = seg_start; + root["stop"] = seg_stop; + root["mode"] = (uint8_t) mode; + //getSegmentParams(segment); + root["ws2812fx_mode"] = ws2812fx_mode; + root["ws2812fx_mode_name"] = strip->getModeName(ws2812fx_mode); + root["speed"] = ws2812fx_speed; + root["brightness"] = brightness; + JsonArray color = root.createNestedArray("color"); + color.add(main_color.white); + color.add(main_color.red); + color.add(main_color.green); + color.add(main_color.blue); + color.add(back_color.white); + color.add(back_color.red); + color.add(back_color.green); + color.add(back_color.blue); + color.add(xtra_color.white); + color.add(xtra_color.red); + color.add(xtra_color.green); + color.add(xtra_color.blue); + root["hostname"] = HOSTNAME; + #if defined(ENABLE_MQTT) + root["mqtt_host"] = mqtt_host; + root["mqtt_port"] = mqtt_port; + root["mqtt_user"] = mqtt_user; + root["mqtt_pass"] = mqtt_pass; + #endif + root["ws_seg"] = num_segments; + root["ws_cnt"] = WS2812FXStripSettings.stripSize; + root["ws_rgbo"] = WS2812FXStripSettings.RGBOrder; + root["ws_pin"] = WS2812FXStripSettings.pin; + root["ws_fxopt"] = WS2812FXStripSettings.fxoptions; + root["transEffect"] = transEffect; + uint16_t msg_len = measureJson(root) + 1; + char * buffer = (char *) malloc(msg_len); + serializeJson(root, buffer, msg_len); + jsonBuffer.clear(); + return buffer; +} + +char * listStateJSON() { + const size_t bufferSize = JSON_OBJECT_SIZE(3) + 25; + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject root = jsonBuffer.to(); + root["segment"] = segment; + root["mode"] = (uint8_t) mode; + root["brightness"] = brightness; + uint16_t msg_len = measureJson(root) + 1; + char * buffer = (char *) malloc(msg_len); + serializeJson(root, buffer, msg_len); + jsonBuffer.clear(); + return buffer; +} + +char * listSegmentStateJSON(uint8_t seg) { + const size_t bufferSize = JSON_ARRAY_SIZE(12) + JSON_OBJECT_SIZE(7) + 100; + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject root = jsonBuffer.to(); + root["segment"] = seg; + if (seg == segment) { + root["start"] = seg_start; + root["stop"] = seg_stop; + } else { + root["start"] = strip->getSegment(seg)->start; + root["stop"] = strip->getSegment(seg)->stop; + } + //getSegmentParams(seg); + root["ws2812fx_mode"] = strip->getMode(seg); + root["ws2812fx_mode_name"] = strip->getModeName(strip->getMode(seg)); + root["speed"] = ws2812fx_speed; + JsonArray color = root.createNestedArray("color"); + color.add((strip->getColors(seg)[0] >> 24) & 0xFF); + color.add((strip->getColors(seg)[0] >> 16) & 0xFF); + color.add((strip->getColors(seg)[0] >> 8) & 0xFF); + color.add((strip->getColors(seg)[0]) & 0xFF); + color.add((strip->getColors(seg)[1] >> 24) & 0xFF); + color.add((strip->getColors(seg)[1] >> 16) & 0xFF); + color.add((strip->getColors(seg)[1] >> 8) & 0xFF); + color.add((strip->getColors(seg)[1]) & 0xFF); + color.add((strip->getColors(seg)[2] >> 24) & 0xFF); + color.add((strip->getColors(seg)[2] >> 16) & 0xFF); + color.add((strip->getColors(seg)[2] >> 8) & 0xFF); + color.add((strip->getColors(seg)[2]) & 0xFF); + uint16_t msg_len = measureJson(root) + 1; + char * buffer = (char *) malloc(msg_len); + serializeJson(root, buffer, msg_len); + jsonBuffer.clear(); + return buffer; +} + +void getStateJSON() { + char * buffer = listStateJSONfull(); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send ( 200, "application/json", buffer); + free (buffer); +} + +char * listConfigJSON() { + #if defined(ENABLE_MQTT) + const size_t bufferSize = JSON_OBJECT_SIZE(11) + 150; + #else + const size_t bufferSize = JSON_OBJECT_SIZE(7) + 100; + #endif + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject root = jsonBuffer.to(); + root["hostname"] = HOSTNAME; + #if defined(ENABLE_MQTT) + root["mqtt_host"] = mqtt_host; + root["mqtt_port"] = mqtt_port; + root["mqtt_user"] = mqtt_user; + root["mqtt_pass"] = mqtt_pass; + #endif + root["ws_seg"] = num_segments; + root["ws_cnt"] = WS2812FXStripSettings.stripSize; + root["ws_rgbo"] = WS2812FXStripSettings.RGBOrder; + root["ws_pin"] = WS2812FXStripSettings.pin; + root["ws_fxopt"] = WS2812FXStripSettings.fxoptions; + root["transEffect"] = transEffect; + uint16_t msg_len = measureJson(root) + 1; + char * buffer = (char *) malloc(msg_len); + serializeJson(root, buffer, msg_len); + jsonBuffer.clear(); + return buffer; +} + +void getConfigJSON() { + char * buffer = listConfigJSON(); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send ( 200, "application/json", buffer); + free (buffer); +} + +char * listModesJSON() { + const size_t bufferSize = JSON_ARRAY_SIZE(strip->getModeCount() + 1) + (strip->getModeCount() + 1)*JSON_OBJECT_SIZE(2) + 2000; + DynamicJsonDocument jsonBuffer(bufferSize); + JsonArray root = jsonBuffer.to(); + JsonObject objectoff = root.createNestedObject(); + objectoff["mode"] = "off"; + objectoff["name"] = "OFF"; + for (uint8_t i = 0; i < strip->getModeCount(); i++) { + JsonObject object = root.createNestedObject(); + object["mode"] = i; + object["name"] = strip->getModeName(i); + } + uint16_t msg_len = measureJson(root) + 1; + char * buffer = (char *) malloc(msg_len); + serializeJson(root, buffer, msg_len); + jsonBuffer.clear(); + return buffer; +} + +void getModesJSON() { + char * buffer = listModesJSON(); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send ( 200, "application/json", buffer); + free (buffer); +} + +char * listESPStateJSON() { + const size_t bufferSize = JSON_OBJECT_SIZE(31) + 1500; + DynamicJsonDocument jsonBuffer(bufferSize); + JsonObject root = jsonBuffer.to(); + root["HOSTNAME"] = HOSTNAME; + root["version"] = SKETCH_VERSION; + root["heap"] = ESP.getFreeHeap(); + root["sketch_size"] = ESP.getSketchSize(); + root["free_sketch_space"] = ESP.getFreeSketchSpace(); + root["flash_chip_size"] = ESP.getFlashChipSize(); + root["flash_chip_real_size"] = ESP.getFlashChipRealSize(); + root["flash_chip_speed"] = ESP.getFlashChipSpeed(); + root["sdk_version"] = ESP.getSdkVersion(); + root["core_version"] = ESP.getCoreVersion(); + root["cpu_freq"] = ESP.getCpuFreqMHz(); + root["chip_id"] = ESP.getFlashChipId(); + #if defined(USE_WS2812FX_DMA) + #if USE_WS2812FX_DMA == 0 + root["animation_lib"] = "WS2812FX_DMA"; + #endif + #if USE_WS2812FX_DMA == 1 + root["animation_lib"] = "WS2812FX_UART1"; + #endif + #if USE_WS2812FX_DMA == 2 + root["animation_lib"] = "WS2812FX_UART2"; + #endif + #else + root["animation_lib"] = "WS2812FX"; + #endif + root["ws2812_pin"] = WS2812FXStripSettings.pin; + root["led_count"] = WS2812FXStripSettings.stripSize; + root["rgb_order"] = WS2812FXStripSettings.RGBOrder; + if (strstr(WS2812FXStripSettings.RGBOrder, "W") != NULL) { + root["rgbw_mode"] = "ON"; + } else { + root["rgbw_mode"] = "OFF"; + } + #if defined(ENABLE_BUTTON) + root["button_mode"] = "ON"; + root["button_pin"] = ENABLE_BUTTON; + #else + root["button_mode"] = "OFF"; + #endif + #if defined(ENABLE_BUTTON_GY33) + root["button_gy33"] = "ON"; + root["gy33_pin"] = ENABLE_BUTTON_GY33; + #else + root["button_gy33"] = "OFF"; + #endif + #if defined(ENABLE_REMOTE) + root["ir_remote"] = "ON"; + root["tsop_ir_pin"] = ENABLE_REMOTE; + #else + root["ir_remote"] = "OFF"; + #endif + #if defined(ENABLE_MQTT) + #if ENABLE_MQTT == 0 + root["mqtt"] = "MQTT"; + #endif + #if ENABLE_MQTT == 1 + root["mqtt"] = "AMQTT"; + #endif + #else + root["mqtt"] = "OFF"; + #endif + #if defined(ENABLE_HOMEASSISTANT) + root["home_assistant"] = "ON"; + #else + root["home_assistant"] = "OFF"; + #endif + #if defined(ENABLE_OTA) + #if ENABLE_OTA == 0 + root["ota"] = "ARDUINO"; + #endif + #if ENABLE_OTA == 1 + root["ota"] = "HTTP"; + #endif + #else + root["ota"] = "OFF"; + #endif + #if defined(ENABLE_STATE_SAVE) + root["state_save"] = "SPIFFS"; + #else + root["state_save"] = "OFF"; + #endif + uint16_t msg_len = measureJson(root) + 1; + char * buffer = (char *) malloc(msg_len); + serializeJson(root, buffer, msg_len); + jsonBuffer.clear(); + return buffer; +} +void getESPStateJSON() { + char * buffer = listESPStateJSON(); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "application/json", buffer); + free (buffer); +} diff --git a/Arduino/McLighting/mode_custom_ws2812fx_animations.h b/Arduino/McLighting/mode_custom_ws2812fx_animations.h index 1e57ea7..eab6ee2 100644 --- a/Arduino/McLighting/mode_custom_ws2812fx_animations.h +++ b/Arduino/McLighting/mode_custom_ws2812fx_animations.h @@ -1,3 +1,7 @@ +// Prototypes +uint16_t convertSpeed(uint8_t mcl_speed); +uint32_t trans(uint32_t newcolor, uint32_t oldcolor, uint8_t level); +// End Prototypes /* Example of adding the example: https://github.com/kitesurfer1404/WS2812FX/blob/master/examples/ws2812fx_custom_FastLED/ws2812fx_custom_FastLED.ino @@ -68,7 +72,7 @@ void hsb2rgbAN1(uint16_t index, uint8_t sat, uint8_t bright, uint16_t led) { void updateLed (uint16_t led, uint8_t brightness) { ledstates[led] = brightness; - for (uint16_t i=0; i= 2; k--) { + for( uint16_t k= seg_stop-seg_start - 1; k >= 2; k--) { ledstates[k] = (ledstates[k - 1] + ledstates[k - 2] + ledstates[k - 2]) / 3; } @@ -216,11 +220,11 @@ void Fire2012() { } // Step 4. Map from heat cells to LED colors - for( uint16_t j = 0; j < WS2812FXStripSettings.stripSize; j++) { + for( uint16_t j = seg_start; j <= seg_stop; j++) { CRGB color = HeatColor( ledstates[j]); uint16_t pixelnumber; if( gReverseDirection ) { - pixelnumber = (WS2812FXStripSettings.stripSize - 1) - j; + pixelnumber = seg_stop - j; } else { pixelnumber = j; } @@ -229,15 +233,15 @@ void Fire2012() { } void Gradient() { - for( uint16_t j = 0; j < WS2812FXStripSettings.stripSize; j++) { + for( uint16_t j = seg_start; j <= seg_stop; j++) { uint16_t pixelnumber; uint32_t color; if( gReverseDirection ) { - pixelnumber = (WS2812FXStripSettings.stripSize - 1) - j; + pixelnumber = seg_stop - j; } else { pixelnumber = j; } - color = trans(strip->getColors(segment)[1], strip->getColors(segment)[0], (j*255)/(WS2812FXStripSettings.stripSize - 1)); + color = trans(strip->getColors(segment)[1], strip->getColors(segment)[0], (j*255)/(seg_stop - seg_start)); strip->setPixelColor(pixelnumber, ((color >> 16) & 0xFF), ((color >> 8) & 0xFF), ((color >> 0) & 0xFF), ((color >> 24) & 0xFF)); } } diff --git a/Arduino/McLighting/request_handlers.h b/Arduino/McLighting/request_handlers.h index fa52a32..f636a02 100644 --- a/Arduino/McLighting/request_handlers.h +++ b/Arduino/McLighting/request_handlers.h @@ -1,230 +1,61 @@ // *************************************************************************** // Request handlers // *************************************************************************** - -// Prototypes -char * listStatusJSON(); -#if defined(ENABLE_STATE_SAVE) - bool writeConfigFS(bool); - void tickerSaveConfig(); -#endif - -// Call convertColors whenever main_color, back_color or xtra_color changes. - -void convertColors() { - hex_colors_trans[0] = (uint32_t)(main_color.white << 24) | (main_color.red << 16) | (main_color.green << 8) | main_color.blue; - hex_colors_trans[1] = (uint32_t)(back_color.white << 24) | (back_color.red << 16) | (back_color.green << 8) | back_color.blue; - hex_colors_trans[2] = (uint32_t)(xtra_color.white << 24) | (xtra_color.red << 16) | (xtra_color.green << 8) | xtra_color.blue; -} - -uint32_t* convertColors2(uint8_t w, uint8_t r, uint8_t g, uint8_t b, uint8_t w2, uint8_t r2, uint8_t g2, uint8_t b2, uint8_t w3, uint8_t r3, uint8_t g3, uint8_t b3) { - uint32_t hexcolors[3] = {}; - hexcolors[0] = (uint32_t)(w << 24) | (r << 16) | (g << 8) | b; - hexcolors[1] = (uint32_t)(w2 << 24) | (r2 << 16) | (g2 << 8) | b2; - hexcolors[2] = (uint32_t)(w3 << 24) | (r3 << 16) | (g3 << 8) | b3; - return hexcolors; -} - - -void getSegmentParams(uint8_t seg) { - ws2812fx_mode = strip->getMode(seg); - main_color.white = ((strip->getColors(seg)[0] >> 24) & 0xFF); - main_color.red = ((strip->getColors(seg)[0] >> 16) & 0xFF); - main_color.green = ((strip->getColors(seg)[0] >> 8) & 0xFF); - main_color.blue = ((strip->getColors(seg)[0]) & 0xFF); - back_color.white = ((strip->getColors(seg)[1] >> 24) & 0xFF); - back_color.red = ((strip->getColors(seg)[1] >> 16) & 0xFF); - back_color.green = ((strip->getColors(seg)[1] >> 8) & 0xFF); - back_color.blue = ((strip->getColors(seg)[1]) & 0xFF); - xtra_color.white = ((strip->getColors(seg)[2] >> 24) & 0xFF); - xtra_color.red = ((strip->getColors(seg)[2] >> 16) & 0xFF); - xtra_color.green = ((strip->getColors(seg)[2] >> 8) & 0xFF); - xtra_color.blue = ((strip->getColors(seg)[2] >> 0) & 0xFF); -} - -void calculateColorTransitionSteps() { - //compare all colors and calculate steps - trans_cnt_max = 0; - int calculate_max[4] = {}; - for (uint8_t i=0; i<3; i++){ - for (uint8_t j=0; j<4; j++) { - calculate_max[j] = ((hex_colors[i] >> ((3-j)*8)) & 0xFF) - ((hex_colors_trans[i] >> ((3-j)*8)) & 0xFF); - calculate_max[j] = abs(calculate_max[j]); - trans_cnt_max = max(trans_cnt_max, calculate_max[j]); - } - } -} - -void convertColorsFade() { - if (transEffect) { - if (trans_cnt > 1) { - memcpy(hex_colors, strip->getColors(segment), sizeof(hex_colors)); - DBG_OUTPUT_PORT.println("Color transistion aborted. Restarting...!"); - trans_cnt = 1; - } - calculateColorTransitionSteps(); - } -} - -void getArgs() { - if (mode == SET) { - // Segment - if ((server.arg("seg") != "") && (server.arg("seg").toInt() >= 0) && (server.arg("seg").toInt() <= MAX_NUM_SEGMENTS)) { - prevsegment = segment; - segment = server.arg("seg").toInt(); - getSegmentParams(segment); - memcpy(hex_colors_trans, hex_colors, sizeof(hex_colors_trans)); - } - //color wrgb - if (server.arg("rgb") != "") { - uint32_t rgb = (uint32_t) strtoul(server.arg("rgb").c_str(), NULL, 16); - main_color.white = ((rgb >> 24) & 0xFF); - main_color.red = ((rgb >> 16) & 0xFF); - main_color.green = ((rgb >> 8) & 0xFF); - main_color.blue = ((rgb >> 0) & 0xFF); - } else { - if ((server.arg("r") != "") && (server.arg("r").toInt() >= 0) && (server.arg("r").toInt() <= 255)) { - main_color.red = server.arg("r").toInt(); - } - if ((server.arg("g") != "") && (server.arg("g").toInt() >= 0) && (server.arg("g").toInt() <= 255)) { - main_color.green = server.arg("g").toInt(); - } - if ((server.arg("b") != "") && (server.arg("b").toInt() >= 0) && (server.arg("b").toInt() <= 255)) { - main_color.blue = server.arg("b").toInt(); - } - if ((server.arg("w") != "") && (server.arg("w").toInt() >= 0) && (server.arg("w").toInt() <= 255)){ - main_color.white = server.arg("w").toInt(); - } - } - if (server.arg("rgb2") != "") { - uint32_t rgb2 = (uint32_t) strtoul(server.arg("rgb2").c_str(), NULL, 16); - back_color.white = ((rgb2 >> 24) & 0xFF); - back_color.red = ((rgb2 >> 16) & 0xFF); - back_color.green = ((rgb2 >> 8) & 0xFF); - back_color.blue = ((rgb2 >> 0) & 0xFF); - } else { - if ((server.arg("r2") != "") && (server.arg("r2").toInt() >= 0) && (server.arg("r2").toInt() <= 255)) { - back_color.red = server.arg("r2").toInt(); - } - if ((server.arg("g2") != "") && (server.arg("g2").toInt() >= 0) && (server.arg("g2").toInt() <= 255)) { - back_color.green = server.arg("g2").toInt(); - } - if ((server.arg("b2") != "") && (server.arg("b2").toInt() >= 0) && (server.arg("b2").toInt() <= 255)) { - back_color.blue = server.arg("b2").toInt(); - } - if ((server.arg("w2") != "") && (server.arg("w2").toInt() >= 0) && (server.arg("w2").toInt() <= 255)){ - back_color.white = server.arg("w2").toInt(); - } - } - if (server.arg("rgb3") != "") { - uint32_t rgb3 = (uint32_t) strtoul(server.arg("rgb3").c_str(), NULL, 16); - xtra_color.white = ((rgb3 >> 24) & 0xFF); - xtra_color.red = ((rgb3 >> 16) & 0xFF); - xtra_color.green = ((rgb3 >> 8) & 0xFF); - xtra_color.blue = ((rgb3 >> 0) & 0xFF); - } else { - if ((server.arg("r3") != "") && (server.arg("r3").toInt() >= 0) && (server.arg("r3").toInt() <= 255)) { - xtra_color.red = server.arg("r3").toInt(); - } - if ((server.arg("g3") != "") && (server.arg("g3").toInt() >= 0) && (server.arg("g3").toInt() <= 255)) { - xtra_color.green = server.arg("g3").toInt(); - } - if ((server.arg("b3") != "") && (server.arg("b3").toInt() >= 0) && (server.arg("b3").toInt() <= 255)) { - xtra_color.blue = server.arg("b3").toInt(); - } - if ((server.arg("w3") != "") && (server.arg("w3").toInt() >= 0) && (server.arg("w3").toInt() <= 255)){ - xtra_color.white = server.arg("w3").toInt(); - } - } - main_color.red = constrain(main_color.red, 0, 255); - main_color.green = constrain(main_color.green, 0, 255); - main_color.blue = constrain(main_color.blue, 0, 255); - main_color.white = constrain(main_color.white, 0, 255); - back_color.red = constrain(back_color.red, 0, 255); - back_color.green = constrain(back_color.green, 0, 255); - back_color.blue = constrain(back_color.blue, 0, 255); - back_color.white = constrain(back_color.white, 0, 255); - xtra_color.red = constrain(xtra_color.red, 0, 255); - xtra_color.green = constrain(xtra_color.green, 0, 255); - xtra_color.blue = constrain(xtra_color.blue, 0, 255); - xtra_color.white = constrain(xtra_color.white, 0, 255); - // Speed - if ((server.arg("s") != "") && (server.arg("s").toInt() >= 0) && (server.arg("s").toInt() <= 255)) { - ws2812fx_speed = constrain(server.arg("s").toInt(), 0, 255); - } - //Mode - if ((server.arg("m") != "") && (server.arg("m").toInt() >= 0) && (server.arg("m").toInt() <= strip->getModeCount())) { - ws2812fx_mode = constrain(server.arg("m").toInt(), 0, strip->getModeCount() - 1); - } - // Brightness - if ((server.arg("c") != "") && (server.arg("c").toInt() >= 0) && (server.arg("c").toInt() <= 100)) { - brightness = constrain((int) server.arg("c").toInt() * 2.55, 0, 255); - } else if ((server.arg("p") != "") && (server.arg("p").toInt() >= 0) && (server.arg("p").toInt() <= 255)) { - brightness = constrain(server.arg("p").toInt(), 0, 255); - } - } - DBG_OUTPUT_PORT.printf("Get Args: %s\r\n", listStatusJSON()); -} - -uint16_t convertSpeed(uint8_t mcl_speed) { - uint16_t ws2812_speed = 61760 * (exp(0.0002336 * mcl_speed) - exp(-0.03181 * mcl_speed)); - ws2812_speed = SPEED_MAX - ws2812_speed; - ws2812_speed = constrain(ws2812_speed, SPEED_MIN, SPEED_MAX); - return ws2812_speed; -} - -uint8_t unconvertSpeed(uint16_t ws2812_speed) { - //log((SPEED_MAX - ws2812_speed)/61760) = (0.0002336 * mcl_speed) - (-0.03181 * mcl_speed); - //log((SPEED_MAX - ws2812_speed)/61760) = (0.0002336 + 0.03181) * mcl_speed; - uint16_t mcl_speed = (log((SPEED_MAX - ws2812_speed)/61760))/ (0.0002336 + 0.03181); - //uint16_t mcl_speed = 61760 * (exp(0.0002336 * mcl_speed) - exp(-0.03181 * mcl_speed)); - mcl_speed = 255 - mcl_speed; - mcl_speed = constrain(mcl_speed, 0, 255); - return mcl_speed; -} - // *************************************************************************** // Handler functions for WS and MQTT // *************************************************************************** -void handleSetMainColor(uint8_t * mypayload) { +bool handleSetMainColor(uint8_t * mypayload) { // decode rgb data uint32_t rgb = (uint32_t) strtoul((const char *) &mypayload[1], NULL, 16); - main_color.white = ((rgb >> 24) & 0xFF); - main_color.red = ((rgb >> 16) & 0xFF); - main_color.green = ((rgb >> 8) & 0xFF); - main_color.blue = ((rgb >> 0) & 0xFF); - mode = SET; + if (rgb != strip->getColors(segment)[0]) { + main_color.white = ((rgb >> 24) & 0xFF); + main_color.red = ((rgb >> 16) & 0xFF); + main_color.green = ((rgb >> 8) & 0xFF); + main_color.blue = ((rgb >> 0) & 0xFF); + return true; + } + return false; } -void handleSetBackColor(uint8_t * mypayload) { +bool handleSetBackColor(uint8_t * mypayload) { // decode rgb data uint32_t rgb = (uint32_t) strtoul((const char *) &mypayload[2], NULL, 16); - back_color.white = ((rgb >> 24) & 0xFF); - back_color.red = ((rgb >> 16) & 0xFF); - back_color.green = ((rgb >> 8) & 0xFF); - back_color.blue = ((rgb >> 0) & 0xFF); - mode = SET; + if (rgb != strip->getColors(segment)[1]) { + back_color.white = ((rgb >> 24) & 0xFF); + back_color.red = ((rgb >> 16) & 0xFF); + back_color.green = ((rgb >> 8) & 0xFF); + back_color.blue = ((rgb >> 0) & 0xFF); + return true; + } + return false; } -void handleSetXtraColor(uint8_t * mypayload) { +bool handleSetXtraColor(uint8_t * mypayload) { // decode rgb data uint32_t rgb = (uint32_t) strtoul((const char *) &mypayload[3], NULL, 16); - xtra_color.white = ((rgb >> 24) & 0xFF); - xtra_color.red = ((rgb >> 16) & 0xFF); - xtra_color.green = ((rgb >> 8) & 0xFF); - xtra_color.blue = ((rgb >> 0) & 0xFF); - mode = SET; + if (rgb != strip->getColors(segment)[2]) { + xtra_color.white = ((rgb >> 24) & 0xFF); + xtra_color.red = ((rgb >> 16) & 0xFF); + xtra_color.green = ((rgb >> 8) & 0xFF); + xtra_color.blue = ((rgb >> 0) & 0xFF); + return true; + } + return false; } -void handleSetAllMode(uint8_t * mypayload) { +bool handleSetAllMode(uint8_t * mypayload) { // decode rgb data uint32_t rgb = (uint32_t) strtoul((const char *) &mypayload[1], NULL, 16); - main_color.white = ((rgb >> 24) & 0xFF); - main_color.red = ((rgb >> 16) & 0xFF); - main_color.green = ((rgb >> 8) & 0xFF); - main_color.blue = ((rgb >> 0) & 0xFF); - DBG_OUTPUT_PORT.printf("WS: Set all leds to main color: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", main_color.red, main_color.green, main_color.blue, main_color.white); - ws2812fx_mode = FX_MODE_STATIC; - mode = SET; + if ((mode = OFF) || (ws2812fx_mode != strip->getMode(segment)) || (rgb != strip->getColors(segment)[0])) { + main_color.white = ((rgb >> 24) & 0xFF); + main_color.red = ((rgb >> 16) & 0xFF); + main_color.green = ((rgb >> 8) & 0xFF); + main_color.blue = ((rgb >> 0) & 0xFF); + DBG_OUTPUT_PORT.printf("WS: Set all leds to main color: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", main_color.red, main_color.green, main_color.blue, main_color.white); + ws2812fx_mode = FX_MODE_STATIC; + mode = SET; + return true; + } + return false; } void handleSetSingleLED(uint8_t * mypayload, uint8_t firstChar = 0) { @@ -316,105 +147,6 @@ void handleRangeDifferentColors(uint8_t * mypayload) { } } -bool checkPin(uint8_t pin) { - #if defined(USE_WS2812FX_DMA) - #if USE_WS2812FX_DMA == 0 - pin = 3; - #endif - #if USE_WS2812FX_DMA == 1 - pin = 1; - #endif - #if USE_WS2812FX_DMA == 2 - pin = 2; - #endif - #endif - if (((pin >= 0 && pin <= 5) || (pin >= 12 && pin <= 16)) && (pin != WS2812FXStripSettings.pin)) { - WS2812FXStripSettings.pin = pin; - return true; - } - return false; -} - -neoPixelType checkRGBOrder(char rgbOrder[5]) { - for( uint8_t i=0 ; i < sizeof(rgbOrder) ; ++i ) rgbOrder[i] = toupper(rgbOrder[i]) ; - DBG_OUTPUT_PORT.printf("Checking RGB Order: %s ...", rgbOrder); - neoPixelType returnOrder = 0; - if (strcmp(rgbOrder, "GRB") == 0) { - returnOrder = NEO_GRB; - } else if (strcmp(rgbOrder, "GBR") == 0) { - returnOrder = NEO_GBR; - } else if (strcmp(rgbOrder, "RGB") == 0) { - returnOrder = NEO_RGB; - } else if (strcmp(rgbOrder, "RBG") == 0) { - returnOrder = NEO_RBG; - } else if (strcmp(rgbOrder, "BRG") == 0) { - returnOrder = NEO_BRG; - } else if (strcmp(rgbOrder, "BGR") == 0) { - returnOrder = NEO_BGR; - } else if (strcmp(rgbOrder, "WGRB") == 0) { - returnOrder = NEO_WGRB; - } else if (strcmp(rgbOrder, "WGBR") == 0) { - returnOrder = NEO_WGBR; - } else if (strcmp(rgbOrder, "WRGB") == 0) { - returnOrder = NEO_WRGB; - } else if (strcmp(rgbOrder, "WRBG") == 0) { - returnOrder = NEO_WRBG; - } else if (strcmp(rgbOrder, "WBRG") == 0) { - returnOrder = NEO_WBRG; - } else if (strcmp(rgbOrder, "WBGR") == 0) { - returnOrder = NEO_WBGR; - } else if (strcmp(rgbOrder, "GWRB") == 0) { - returnOrder = NEO_GWRB; - } else if (strcmp(rgbOrder, "GWBR") == 0) { - returnOrder = NEO_GWBR; - } else if (strcmp(rgbOrder, "RWGB") == 0) { - returnOrder = NEO_RWGB; - } else if (strcmp(rgbOrder, "RWBG") == 0) { - returnOrder = NEO_RWBG; - } else if (strcmp(rgbOrder, "BWRG") == 0) { - returnOrder = NEO_BWRG; - } else if (strcmp(rgbOrder, "BWGR") == 0) { - returnOrder = NEO_BWGR; - } else if (strcmp(rgbOrder, "GRWB") == 0) { - returnOrder = NEO_GRWB; - } else if (strcmp(rgbOrder, "GBWR") == 0) { - returnOrder = NEO_GBWR; - } else if (strcmp(rgbOrder, "RGWB") == 0) { - returnOrder = NEO_RGWB; - } else if (strcmp(rgbOrder, "RBWG") == 0) { - returnOrder = NEO_RBWG; - } else if (strcmp(rgbOrder, "BRWG") == 0){ - returnOrder = NEO_BRWG; - } else if (strcmp(rgbOrder, "BGWR") == 0) { - returnOrder = NEO_GRBW; - } else if (strcmp(rgbOrder, "GRBW") == 0) { - returnOrder = NEO_GRBW; - } else if (strcmp(rgbOrder, "GBWR") == 0) { - returnOrder = NEO_GBRW; - } else if (strcmp(rgbOrder, "RGBW") == 0) { - returnOrder = NEO_RGBW; - } else if (strcmp(rgbOrder, "RBGW") == 0) { - returnOrder = NEO_RBGW; - } else if (strcmp(rgbOrder, "BRGW") == 0) { - returnOrder = NEO_BRGW; - } else if (strcmp(rgbOrder, "BGRW") == 0) { - returnOrder = NEO_BGRW; - } else { - DBG_OUTPUT_PORT.print("invalid input!"); - uint16_t check = checkRGBOrder(WS2812FXStripSettings.RGBOrder); - if (check != 0) { - returnOrder = static_cast(check); - strcpy(rgbOrder, WS2812FXStripSettings.RGBOrder); - } else { - returnOrder = static_cast(checkRGBOrder(RGBORDER)); - strcpy(rgbOrder, RGBORDER); - } - } - DBG_OUTPUT_PORT.println("success!"); - strcpy(WS2812FXStripSettings.RGBOrder, rgbOrder); - return returnOrder; -} - bool setModeByStateString(String saved_state_string) { if (getValue(saved_state_string, '|', 0) == "STA") { DBG_OUTPUT_PORT.printf("Parsed state: %s\r\n", saved_state_string.c_str()); @@ -451,7 +183,7 @@ bool setModeByStateString(String saved_state_string) { str_white = getValue(saved_state_string, '|', 16); xtra_color.white = str_white.toInt(); DBG_OUTPUT_PORT.print("Set to state: "); - DBG_OUTPUT_PORT.println(listStatusJSON()); + DBG_OUTPUT_PORT.println(listStateJSON()); //prevmode=mode; //mode = SET; return true; @@ -477,149 +209,6 @@ void handleSetWS2812FXMode(uint8_t * mypayload) { } } -char * listStatusJSONorg() { - const size_t bufferSize = JSON_ARRAY_SIZE(13) + JSON_OBJECT_SIZE(6) + 500; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject root = jsonBuffer.to(); - root["segment"] = segment; - root["mode"] = (uint8_t) mode; - root["ws2812fx_mode"] = ws2812fx_mode; - root["ws2812fx_mode_name"] = strip->getModeName(ws2812fx_mode); - root["speed"] = ws2812fx_speed; - root["brightness"] = brightness; - JsonArray color = root.createNestedArray("color"); - color.add(main_color.white); - color.add(main_color.red); - color.add(main_color.green); - color.add(main_color.blue); - color.add(back_color.white); - color.add(back_color.red); - color.add(back_color.green); - color.add(back_color.blue); - color.add(xtra_color.white); - color.add(xtra_color.red); - color.add(xtra_color.green); - color.add(xtra_color.blue); - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); - return buffer; -} - -char * listStatusJSON() { - const size_t bufferSize = JSON_OBJECT_SIZE(3) + 25; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject root = jsonBuffer.to(); - root["segment"] = segment; - root["mode"] = (uint8_t) mode; - root["brightness"] = brightness; - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); - return buffer; -} - -char * listSegmentStatusJSON(uint8_t seg) { - const size_t bufferSize = JSON_ARRAY_SIZE(12) + JSON_OBJECT_SIZE(7) + 100; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject root = jsonBuffer.to(); - root["segment"] = seg; - root["start"] = strip->getSegment(seg)->start; - root["stop"] = strip->getSegment(seg)->stop; - root["ws2812fx_mode"] = strip->getMode(seg); - root["ws2812fx_mode_name"] = strip->getModeName(strip->getMode(seg)); - root["speed"] = ws2812fx_speed; - getSegmentParams(seg); - JsonArray color = root.createNestedArray("color"); - color.add((strip->getColors(seg)[0] >> 24) & 0xFF); - color.add((strip->getColors(seg)[0] >> 16) & 0xFF); - color.add((strip->getColors(seg)[0] >> 8) & 0xFF); - color.add((strip->getColors(seg)[0]) & 0xFF); - color.add((strip->getColors(seg)[1] >> 24) & 0xFF); - color.add((strip->getColors(seg)[1] >> 16) & 0xFF); - color.add((strip->getColors(seg)[1] >> 8) & 0xFF); - color.add((strip->getColors(seg)[1]) & 0xFF); - color.add((strip->getColors(seg)[2] >> 24) & 0xFF); - color.add((strip->getColors(seg)[2] >> 16) & 0xFF); - color.add((strip->getColors(seg)[2] >> 8) & 0xFF); - color.add((strip->getColors(seg)[2]) & 0xFF); - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); - return buffer; -} - -void getStatusJSON() { - char * buffer = listStatusJSONorg(); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send ( 200, "application/json", buffer); - free (buffer); -} - -char * listConfigJSON() { - #if defined(ENABLE_MQTT) - const size_t bufferSize = JSON_OBJECT_SIZE(10) + 500; - #else - const size_t bufferSize = JSON_OBJECT_SIZE(6) + 150; - #endif - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject root = jsonBuffer.to(); - root["hostname"] = HOSTNAME; - #if defined(ENABLE_MQTT) - root["mqtt_host"] = mqtt_host; - root["mqtt_port"] = mqtt_port; - root["mqtt_user"] = mqtt_user; - root["mqtt_pass"] = mqtt_pass; - #endif - root["num_seg"] = num_segments; - root["ws_cnt"] = WS2812FXStripSettings.stripSize; - root["ws_rgbo"] = WS2812FXStripSettings.RGBOrder; - root["ws_pin"] = WS2812FXStripSettings.pin; - root["ws_fxopt"] = WS2812FXStripSettings.fxoptions; - root["transEffect"] = transEffect; - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); - return buffer; -} - -void getConfigJSON() { - char * buffer = listConfigJSON(); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send ( 200, "application/json", buffer); - free (buffer); -} - -char * listModesJSON() { - const size_t bufferSize = JSON_ARRAY_SIZE(strip->getModeCount() + 1) + (strip->getModeCount() + 1)*JSON_OBJECT_SIZE(2) + 2000; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonArray root = jsonBuffer.to(); - JsonObject objectoff = root.createNestedObject(); - objectoff["mode"] = "off"; - objectoff["name"] = "OFF"; - for (uint8_t i = 0; i < strip->getModeCount(); i++) { - JsonObject object = root.createNestedObject(); - object["mode"] = i; - object["name"] = strip->getModeName(i); - } - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); - return buffer; -} - -void getModesJSON() { - char * buffer = listModesJSON(); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send ( 200, "application/json", buffer); - free (buffer); -} - // *************************************************************************** // HTTP request handlers // *************************************************************************** @@ -662,103 +251,53 @@ void handleNotFound() { // *************************************************************************** // Functions and variables // *************************************************************************** -void Dbg_Prefix(bool mqtt, uint8_t num) { - if (mqtt == true) { +void Dbg_Prefix(bool _mqtt, uint8_t _num) { + if (_mqtt == true) { DBG_OUTPUT_PORT.print("MQTT: "); } else { DBG_OUTPUT_PORT.print("WS: "); - webSocket.sendTXT(num, "OK"); + webSocket.sendTXT(_num, "OK"); } } -void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { +void checkpayload(uint8_t * _payload, bool mqtt = false, uint8_t num = 0) { // Select segment - if (payload[0] == 'S') { - uint8_t seg = (uint8_t) strtol((const char *) &payload[1], NULL, 10); - prevsegment = segment; - segment = constrain(seg, 0, MAX_NUM_SEGMENTS); - getSegmentParams(segment); - memcpy(hex_colors_trans, hex_colors, sizeof(hex_colors_trans)); - mode = SET; - Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set segment to: [%u]\r\n", segment); - } - - // # ==> Set main color - ## ==> Set 2nd color - ### ==> Set 3rd color - if (payload[0] == '#') { - #if defined(ENABLE_MQTT) - snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); - #endif - if (payload[2] == '#') { - handleSetXtraColor(payload); - DBG_OUTPUT_PORT.printf("Set 3rd color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); - } else if (payload[1] == '#') { - handleSetBackColor(payload); - DBG_OUTPUT_PORT.printf("Set 2nd color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", back_color.red, back_color.green, back_color.blue, back_color.white); - } else { - handleSetMainColor(payload); - DBG_OUTPUT_PORT.printf("Set main color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", main_color.red, main_color.green, main_color.blue, main_color.white); + boolean _updateState = false; + boolean _updateSegState = false; + // / ==> Set active segment + if (_payload[0] == 'S') { + if (_payload[1] == 's') { + uint8_t seg = (uint8_t) strtol((const char *) &_payload[2], NULL, 10); + segment = constrain(seg, 0, MAX_NUM_SEGMENTS); + if (prevsegment != segment) { + prevsegment = segment; + getSegmentParams(segment); + memcpy(hex_colors_trans, hex_colors, sizeof(hex_colors_trans)); + mode = SET; + _updateState = true; + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set segment to: [%u]\r\n", segment); + } } - } - - // ? ==> Set speed - if (payload[0] == '?') { - uint8_t d = (uint8_t) strtol((const char *) &payload[1], NULL, 10); - ws2812fx_speed = constrain(d, 0, 255); - mode = SET; - Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set speed to: [%u]\r\n", ws2812fx_speed); - } - - // % ==> Set brightness - if (payload[0] == '%') { - uint8_t b = (uint8_t) strtol((const char *) &payload[1], NULL, 10); - brightness = constrain(b, 0, 255); - mode = SET; - Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set brightness to: [%u]\r\n", brightness); - } - - // * ==> Set main color and light all LEDs (Shortcut) - if (payload[0] == '*') { - handleSetAllMode(payload); - Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set main color and light all LEDs [%s]\r\n", payload); - } - - // ! ==> Set single LED in given color - if (payload[0] == '!') { - handleSetSingleLED(payload, 1); - Dbg_Prefix(mqtt, num); - #if defined(ENABLE_MQTT) - snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); - #endif - DBG_OUTPUT_PORT.printf("Set single LED in given color [%s]\r\n", payload); - } - - // + ==> Set multiple LED in the given colors - if (payload[0] == '+') { - handleSetDifferentColors(payload); - Dbg_Prefix(mqtt, num); - #if defined(ENABLE_MQTT) - snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); - #endif - DBG_OUTPUT_PORT.printf("Set multiple LEDs in given color [%s]\r\n", payload); - } - - // + ==> Set range of LEDs in the given color - if (payload[0] == 'R') { - handleRangeDifferentColors(payload); - Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set range of LEDs in given color [%s]\r\n", payload); - #if defined(ENABLE_MQTT) - snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", payload); - #endif - } - - // $ ==> Get status Info. - if (payload[0] == '$') { - char * buffer = listStatusJSONorg(); + // / ==> Set segment first LED + if (_payload[1] == '[') { + uint16_t segstart = (uint8_t) strtol((const char *) &_payload[2], NULL, 10); + getSegmentParams(segment); + seg_start = constrain(segstart, 0, WS2812FXStripSettings.stripSize); + _updateSegState = true; + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set segment start to: [%u]\r\n", segstart); + } + // / ==> Set segment last LED + if (_payload[1] == ']') { + uint16_t segstop = (uint8_t) strtol((const char *) &_payload[2], NULL, 10); + getSegmentParams(segment); + seg_stop = constrain(segstop, 0, WS2812FXStripSettings.stripSize - 1); + _updateSegState = true; + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set segment stop to: [%u]\r\n", segstop); + } + char * buffer = listSegmentStateJSON(segment); if (mqtt == true) { DBG_OUTPUT_PORT.print("MQTT: "); #if defined(ENABLE_MQTT) @@ -773,98 +312,206 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { DBG_OUTPUT_PORT.print("WS: "); webSocket.sendTXT(num, "OK"); webSocket.sendTXT(num, buffer); + } + } + // / ==> Set WS2812 mode. + if (_payload[0] == '/') { + handleSetWS2812FXMode(_payload); + if (ws2812fx_mode != strip->getMode(segment)) { + _updateSegState = true; + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set WS2812 mode: [%s]\r\n", _payload); + } + } + // # ==> Set main color - ## ==> Set 2nd color - ### ==> Set 3rd color + if (_payload[0] == '#') { + if (_payload[2] == '#') { + _updateSegState = handleSetXtraColor(_payload); + if (_updateSegState) { + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set 3rd color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", xtra_color.red, xtra_color.green, xtra_color.blue, xtra_color.white); + } + } else if (_payload[1] == '#') { + _updateSegState = handleSetBackColor(_payload); + if (_updateSegState) { + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set 2nd color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", back_color.red, back_color.green, back_color.blue, back_color.white); + } + } else { + _updateSegState = handleSetMainColor(_payload); + if (_updateSegState) { + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set main color to: R: [%u] G: [%u] B: [%u] W: [%u]\r\n", main_color.red, main_color.green, main_color.blue, main_color.white); + } + } + if (_updateSegState) { + #if defined(ENABLE_MQTT) + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", _payload); + #endif + mode = SET; } - DBG_OUTPUT_PORT.printf("Get status info: %s\r\n", buffer); - free (buffer); } + // ? ==> Set speed + if (_payload[0] == '?') { + uint8_t d = (uint8_t) strtol((const char *) &_payload[1], NULL, 10); + ws2812fx_speed = constrain(d, 0, 255); + mode = SET; + _updateSegState = true; + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set speed to: [%u]\r\n", ws2812fx_speed); + } - // $ ==> Get config Info. - if (payload[0] == 'C') { - bool updateStrip = false; - bool updateConf = false; - if (payload[1] == 's') { - if (payload[2] == 's') { + // % ==> Set brightness + if (_payload[0] == '%') { + uint8_t b = (uint8_t) strtol((const char *) &_payload[1], NULL, 10); + brightness = constrain(b, 0, 255); + if (strip->getBrightness() != brightness) { + mode = SET; + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set brightness to: [%u]\r\n", brightness); + _updateState = true; + } + } + + // * ==> Set main color and light all LEDs (Shortcut) + if (_payload[0] == '*') { + _updateSegState = handleSetAllMode(_payload); + if (_updateSegState) { + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set main color and light all LEDs [%s]\r\n", _payload); + } + } + + // ! ==> Set single LED in given color + if (_payload[0] == '!') { + handleSetSingleLED(_payload, 1); + Dbg_Prefix(mqtt, num); + #if defined(ENABLE_MQTT) + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", _payload); + #endif + DBG_OUTPUT_PORT.printf("Set single LED in given color [%s]\r\n", _payload); + } + + // + ==> Set multiple LED in the given colors + if (_payload[0] == '+') { + handleSetDifferentColors(_payload); + Dbg_Prefix(mqtt, num); + #if defined(ENABLE_MQTT) + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", _payload); + #endif + DBG_OUTPUT_PORT.printf("Set multiple LEDs in given color [%s]\r\n", _payload); + } + + // + ==> Set range of LEDs in the given color + if (_payload[0] == 'R') { + handleRangeDifferentColors(_payload); + Dbg_Prefix(mqtt, num); + DBG_OUTPUT_PORT.printf("Set range of LEDs in given color [%s]\r\n", _payload); + #if defined(ENABLE_MQTT) + snprintf(mqtt_buf, sizeof(mqtt_buf), "OK %s", _payload); + #endif + } +#if defined(ENABLE_STATE_SAVE) + if (_updateState) { + DBG_OUTPUT_PORT.println("Saving stripstate.json!"); + if(!save_state.active()) save_state.once(3, tickerSaveState); + } + if (_updateSegState) { + DBG_OUTPUT_PORT.println("Saving stripstate_segment.json!"); + if(!save_seg_state.active()) save_seg_state.once(3, tickerSaveSegmentState); + + } + _updateState = false; + _updateSegState = false; +#endif + + // $ ==> Get config Info. + if (_payload[0] == 'C') { + bool _updateStrip = false; + bool _updateConfig = false; + if (_payload[1] == 's') { + if (_payload[2] == 's') { char tmp_segments[3]; - snprintf(tmp_segments, sizeof(tmp_segments), "%s", &payload[3]); + snprintf(tmp_segments, sizeof(tmp_segments), "%s", &_payload[3]); tmp_segments[2] = 0x00; num_segments = constrain(atoi(tmp_segments), 1, MAX_NUM_SEGMENTS - 1); - updateStrip = true; + _updateStrip = true; } - if (payload[2] == 'c') { + if (_payload[2] == 'c') { char tmp_count[6]; - snprintf(tmp_count, sizeof(tmp_count), "%s", &payload[3]); + snprintf(tmp_count, sizeof(tmp_count), "%s", &_payload[3]); tmp_count[5] = 0x00; WS2812FXStripSettings.stripSize = constrain(atoi(tmp_count), 1, MAXLEDS); - updateStrip = true; + _updateStrip = true; } - if (payload[2] == 'r') { + if (_payload[2] == 'r') { char tmp_rgbOrder[5]; - snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", &payload[3]); + snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", &_payload[3]); tmp_rgbOrder[4] = 0x00; checkRGBOrder(tmp_rgbOrder); - updateStrip=true; + _updateStrip=true; } #if !defined(USE_WS2812FX_DMA) - if (payload[2] == 'p') { + if (_payload[2] == 'p') { char tmp_pin[3]; - snprintf(tmp_pin, sizeof(tmp_pin), "%s", &payload[3]); + snprintf(tmp_pin, sizeof(tmp_pin), "%s", &_payload[3]); tmp_pin[2] = 0x00; checkPin(atoi(tmp_pin)); - updateStrip = true; + _updateStrip = true; } #endif - if (payload[2] == 'o') { + if (_payload[2] == 'o') { char tmp_fxoptions[4]; - snprintf(tmp_fxoptions, sizeof(tmp_fxoptions), "%s", &payload[3]); + snprintf(tmp_fxoptions, sizeof(tmp_fxoptions), "%s", &_payload[3]); tmp_fxoptions[3] = 0x00; WS2812FXStripSettings.fxoptions = ((constrain(atoi(tmp_fxoptions), 0, 255)>>1)<<1); - updateStrip = true; + _updateStrip = true; } } - if (updateStrip){ - mode = INIT_STRIP; + if (_updateStrip){ + initStrip(); } - if (payload[1] == 'h') { - snprintf(HOSTNAME, sizeof(HOSTNAME), "%s", &payload[2]); + if (_payload[1] == 'h') { + snprintf(HOSTNAME, sizeof(HOSTNAME), "%s", &_payload[2]); HOSTNAME[sizeof(HOSTNAME) - 1] = 0x00; - updateConf = true; + _updateConfig = true; } #if defined(ENABLE_MQTT) - if (payload[1] == 'm') { - if (payload[2] == 'h') { - snprintf(mqtt_host, sizeof(mqtt_host), "%s", &payload[3]); + if (_payload[1] == 'm') { + if (_payload[2] == 'h') { + snprintf(mqtt_host, sizeof(mqtt_host), "%s", &_payload[3]); mqtt_host[sizeof(mqtt_host) - 1] = 0x00; - updateConf = true; + _updateConfig = true; } - if (payload[2] == 'p') { + if (_payload[2] == 'p') { char tmp_port[6]; - snprintf(tmp_port, sizeof(tmp_port), "%s", &payload[3]); + snprintf(tmp_port, sizeof(tmp_port), "%s", &_payload[3]); tmp_port[sizeof(tmp_port) - 1] = 0x00; mqtt_port = constrain(atoi(tmp_port), 0, 65535); - updateConf = true; + _updateConfig = true; } - if (payload[2] == 'u') { - snprintf(mqtt_user, sizeof(mqtt_user), "%s", &payload[3]); + if (_payload[2] == 'u') { + snprintf(mqtt_user, sizeof(mqtt_user), "%s", &_payload[3]); mqtt_user[sizeof(mqtt_user) - 1] = 0x00; - updateConf = true; + _updateConfig = true; } - if (payload[2] == 'w') { - snprintf(mqtt_pass, sizeof(mqtt_pass), "%s", &payload[3]); + if (_payload[2] == 'w') { + snprintf(mqtt_pass, sizeof(mqtt_pass), "%s", &_payload[3]); mqtt_pass[sizeof(mqtt_pass) - 1] = 0x00; - updateConf = true; + _updateConfig = true; } } - if (updateConf) { + if (_updateConfig) { initMqtt(); } #endif - if (payload[1] == 'e') { + if (_payload[1] == 'e') { char tmp_transEffect[2]; - snprintf(tmp_transEffect, sizeof(tmp_transEffect), "%s", &payload[2]); + snprintf(tmp_transEffect, sizeof(tmp_transEffect), "%s", &_payload[2]); tmp_transEffect[sizeof(tmp_transEffect) - 1] = 0x00; transEffect = atoi(tmp_transEffect); - updateConf = true; + _updateConfig = true; } char * buffer = listConfigJSON(); @@ -884,19 +531,41 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { webSocket.sendTXT(num, buffer); } #if defined(ENABLE_STATE_SAVE) - if (updateStrip || updateConf) { + if (_updateStrip || _updateConfig) { DBG_OUTPUT_PORT.println("Saving config.json!"); - if(!settings_save_conf.active()) settings_save_conf.once(3, tickerSaveConfig); + if(!save_conf.active()) save_conf.once(3, tickerSaveConfig); } #endif - updateStrip = false; - updateConf = false; + _updateStrip = false; + _updateConfig = false; DBG_OUTPUT_PORT.printf("Get status info: %s\r\n", buffer); free (buffer); } - + + // $ ==> Get status Info. + if (_payload[0] == '$') { + char * buffer = listStateJSONfull(); + if (mqtt == true) { + DBG_OUTPUT_PORT.print("MQTT: "); + #if defined(ENABLE_MQTT) + #if ENABLE_MQTT == 0 + mqtt_client->publish(mqtt_outtopic, buffer); + #endif + #if ENABLE_MQTT == 1 + mqtt_client->publish(mqtt_outtopic, qospub, false, buffer); + #endif + #endif + } else { + DBG_OUTPUT_PORT.print("WS: "); + webSocket.sendTXT(num, "OK"); + webSocket.sendTXT(num, buffer); + } + DBG_OUTPUT_PORT.printf("Get status info: %s\r\n", buffer); + free (buffer); + } + // ~ ==> Get WS2812 modes. - if (payload[0] == '~') { + if (_payload[0] == '~') { char * buffer = listModesJSON(); if (mqtt == true) { DBG_OUTPUT_PORT.print("MQTT: "); @@ -920,13 +589,6 @@ void checkpayload(uint8_t * payload, bool mqtt = false, uint8_t num = 0) { DBG_OUTPUT_PORT.println(buffer); free (buffer); } - - // / ==> Set WS2812 mode. - if (payload[0] == '/') { - handleSetWS2812FXMode(payload); - Dbg_Prefix(mqtt, num); - DBG_OUTPUT_PORT.printf("Set WS2812 mode: [%s]\r\n", payload); - } } // *************************************************************************** @@ -1027,6 +689,9 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght DynamicJsonDocument jsonBuffer(bufferSize); JsonObject root = jsonBuffer.to(); root["state"] = (mode != OFF) ? on_cmd : off_cmd; + #if defined(ENABLE_MQTT_INCLUDE_IP) + root["ip"] = WiFi.localIP(); + #endif JsonObject color = root.createNestedObject("color"); color["r"] = main_color.red; color["g"] = main_color.green; @@ -1501,248 +1166,6 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t * payload, size_t lenght } #endif -#if defined(ENABLE_STATE_SAVE) - void tickerSaveState(){ - updateState = true; - } - - void tickerSaveConfig(){ - updateConfig = true; - } - - // Write configuration to FS JSON - bool writeConfigFS(bool saveConfig){ - if (saveConfig) { - //FS save - DBG_OUTPUT_PORT.println("Saving config: "); - File configFile = SPIFFS.open("/config.json", "w"); - if (!configFile) { - DBG_OUTPUT_PORT.println("Failed!"); - settings_save_conf.detach(); - updateConfig = false; - return false; - } - DBG_OUTPUT_PORT.println(listConfigJSON()); - configFile.print(listConfigJSON()); - configFile.close(); - settings_save_conf.detach(); - updateConfig = false; - return true; - //end save - } else { - DBG_OUTPUT_PORT.println("SaveConfig is false!"); - return false; - } - } - - // Read search_str to FS - bool readConfigFS() { - //read configuration from FS JSON - if (SPIFFS.exists("/config.json")) { - //file exists, reading and loading - DBG_OUTPUT_PORT.print("Reading config file... "); - File configFile = SPIFFS.open("/config.json", "r"); - if (configFile) { - DBG_OUTPUT_PORT.println("Opened!"); - size_t size = configFile.size(); - std::unique_ptr buf(new char[size]); - configFile.readBytes(buf.get(), size); - configFile.close(); - #if defined(ENABLE_MQTT) - const size_t bufferSize = JSON_OBJECT_SIZE(5) + 500; - #else - const size_t bufferSize = JSON_OBJECT_SIZE(1) + 150; - #endif - DynamicJsonDocument jsonBuffer(bufferSize); - DeserializationError error = deserializeJson(jsonBuffer, buf.get()); - DBG_OUTPUT_PORT.print("Config: "); - if (!error) { - DBG_OUTPUT_PORT.println("Parsed!"); - JsonObject root = jsonBuffer.as(); - serializeJson(root, DBG_OUTPUT_PORT); - DBG_OUTPUT_PORT.println(""); - strcpy(HOSTNAME, root["hostname"]); - #if defined(ENABLE_MQTT) - strcpy(mqtt_host, root["mqtt_host"]); - mqtt_port = root["mqtt_port"].as(); - strcpy(mqtt_user, root["mqtt_user"]); - strcpy(mqtt_pass, root["mqtt_pass"]); - #endif - num_segments = constrain(root["num_seg"].as(), 1, MAX_NUM_SEGMENTS - 1); - WS2812FXStripSettings.stripSize = constrain(root["ws_cnt"].as(), 1, MAXLEDS); - char tmp_rgbOrder[5]; - strcpy(tmp_rgbOrder, root["ws_rgbo"]); - checkRGBOrder(tmp_rgbOrder); - uint8_t temp_pin; - checkPin((uint8_t) root["ws_pin"]); - WS2812FXStripSettings.fxoptions = constrain(root["ws_fxopt"].as(), 0, 255) & 0xFE; - transEffect = root["transEffect"].as(); - jsonBuffer.clear(); - return true; - } else { - DBG_OUTPUT_PORT.print("Failed to load json config: "); - DBG_OUTPUT_PORT.println(error.c_str()); - jsonBuffer.clear(); - } - } else { - DBG_OUTPUT_PORT.println("Failed to open /config.json"); - } - } else { - DBG_OUTPUT_PORT.println("Coudnt find config.json"); - writeConfigFS(true); - } - //end read - return false; - } - - bool writeStateFS(bool saveConfig){ - if (saveConfig) { - //save the strip state to FS JSON - DBG_OUTPUT_PORT.print("Saving state: "); - //SPIFFS.remove("/stripstate.json") ? DBG_OUTPUT_PORT.println("removed file") : DBG_OUTPUT_PORT.println("failed removing file"); - File configFile = SPIFFS.open("/stripstate.json", "w"); - if (!configFile) { - DBG_OUTPUT_PORT.println("Failed!"); - settings_save_state.detach(); - updateState = false; - return false; - } - DBG_OUTPUT_PORT.println(listStatusJSON()); - configFile.print(listStatusJSON()); - configFile.close(); - char filename[28]; - for (uint8_t seg=0; seg < num_segments; seg++) { - snprintf(filename, 28, "/stripstate_segment_%02i.json", seg); - filename[27] = 0x00; - File configFile = SPIFFS.open(filename, "w"); - if (!configFile) { - DBG_OUTPUT_PORT.println("Failed!"); - settings_save_state.detach(); - updateState = false; - return false; - } - DBG_OUTPUT_PORT.println(listSegmentStatusJSON(seg)); - configFile.print(listSegmentStatusJSON(seg)); - configFile.close(); - } - settings_save_state.detach(); - updateState = false; - return true; - //end save - } else { - DBG_OUTPUT_PORT.println("SaveStateConfig is false!"); - return false; - } - } - - bool readStateFS() { - //read strip state from FS JSON - if (SPIFFS.exists("/stripstate.json")) { - //file exists, reading and loading - DBG_OUTPUT_PORT.print("Reading state file... "); - File configFile = SPIFFS.open("/stripstate.json", "r"); - if (configFile) { - DBG_OUTPUT_PORT.println("Opened!"); - size_t size = configFile.size(); - // Allocate a buffer to store contents of the file. - std::unique_ptr buf(new char[size]); - configFile.readBytes(buf.get(), size); - configFile.close(); - const size_t bufferSize = JSON_OBJECT_SIZE(5) + JSON_ARRAY_SIZE(12) + 500; - DynamicJsonDocument jsonBuffer(bufferSize); - DeserializationError error = deserializeJson(jsonBuffer, buf.get()); - DBG_OUTPUT_PORT.print("Config: "); - if (!error) { - DBG_OUTPUT_PORT.print("Parsed"); - JsonObject root = jsonBuffer.as(); - serializeJson(root, DBG_OUTPUT_PORT); - DBG_OUTPUT_PORT.println(""); - segment = root["segment"]; - mode = static_cast(root["mode"].as()); - brightness = root["brightness"]; - jsonBuffer.clear(); - return true; - } else { - DBG_OUTPUT_PORT.print("Failed to load json config: "); - DBG_OUTPUT_PORT.println(error.c_str()); - jsonBuffer.clear(); - } - } else { - DBG_OUTPUT_PORT.println("Failed to open \"/stripstate.json\""); - } - } else { - DBG_OUTPUT_PORT.println("Couldn't find \"/stripstate.json\""); - writeStateFS(true); - } - //end read - return false; - } - - bool readStateSegmentFS(uint8_t seg) { - //read strip state from FS JSON - char filename[28]; - snprintf(filename, 28, "/stripstate_segment_%02i.json", seg); - filename[27] = 0x00; - if (SPIFFS.exists(filename)) { - //file exists, reading and loading - DBG_OUTPUT_PORT.printf("Reading segmentstate file: %s\r\n", filename); - File configFile = SPIFFS.open(filename, "r"); - if (configFile) { - DBG_OUTPUT_PORT.println("Opened!"); - size_t size = configFile.size(); - // Allocate a buffer to store contents of the file. - std::unique_ptr buf(new char[size]); - configFile.readBytes(buf.get(), size); - configFile.close(); - const size_t bufferSize = JSON_OBJECT_SIZE(5) + JSON_ARRAY_SIZE(12) + 500; - DynamicJsonDocument jsonBuffer(bufferSize); - DeserializationError error = deserializeJson(jsonBuffer, buf.get()); - DBG_OUTPUT_PORT.print("Config: "); - if (!error) { - DBG_OUTPUT_PORT.print("Parsed"); - JsonObject root = jsonBuffer.as(); - serializeJson(root, DBG_OUTPUT_PORT); - DBG_OUTPUT_PORT.println(""); - seg_start = root["start"].as(); - seg_stop = root["stop"].as(); - ws2812fx_mode = root["ws2812fx_mode"].as(); - ws2812fx_speed = root["speed"].as(); - main_color.white = root["color"][0].as(); - main_color.red = root["color"][1].as(); - main_color.green = root["color"][2].as(); - main_color.blue = root["color"][3].as(); - back_color.white = root["color"][4].as(); - back_color.red = root["color"][5].as(); - back_color.green = root["color"][6].as(); - back_color.blue = root["color"][7].as(); - xtra_color.white = root["color"][8].as(); - xtra_color.red = root["color"][9].as(); - xtra_color.green = root["color"][10].as(); - xtra_color.blue = root["color"][11].as(); - convertColors(); - jsonBuffer.clear(); - return true; - } else { - DBG_OUTPUT_PORT.print("Failed to load json config: "); - DBG_OUTPUT_PORT.println(error.c_str()); - jsonBuffer.clear(); - } - } else { - DBG_OUTPUT_PORT.printf("Failed to open \"/%s\"\r\n", filename); - } - } else { - DBG_OUTPUT_PORT.printf("Couldn't find \"/%s\"", filename); - writeStateFS(true); - } - //end read - return false; - } - - - -#endif - - #if defined(ENABLE_REMOTE) // *************************************************************************** // Request handler for IR remote support @@ -2029,18 +1452,3 @@ void handleRemote() { } } #endif - -uint32_t scale_wrgb(uint32_t wrgb, uint8_t level) { - uint8_t w = ((wrgb >> 24) & 0xFF) * level / 255; - uint8_t r = ((wrgb >> 16) & 0xFF) * level / 255; - uint8_t g = ((wrgb >> 8) & 0xFF) * level / 255; - uint8_t b = ((wrgb) & 0xFF) * level / 255; - return (w << 24) | (r << 16) | (g << 8) | b; -} - -uint32_t trans(uint32_t newcolor, uint32_t oldcolor, uint8_t level) { - level = (level * (255/trans_cnt_max)); - newcolor = scale_wrgb(newcolor, level); - oldcolor = scale_wrgb(oldcolor, 255-level); - return newcolor + oldcolor; -} diff --git a/Arduino/McLighting/rest_api.h b/Arduino/McLighting/rest_api.h index f2d680d..6fbbc8c 100644 --- a/Arduino/McLighting/rest_api.h +++ b/Arduino/McLighting/rest_api.h @@ -1,359 +1,406 @@ - // *************************************************************************** - // Setup: Webserver handler - // *************************************************************************** - //list directory - server.on("/list", HTTP_GET, handleFileList); - //create file - server.on("/edit", HTTP_PUT, handleFileCreate); - //delete file - server.on("/edit", HTTP_DELETE, handleFileDelete); - //first callback is called after the request has ended with all parsed arguments - //second callback handles file uploads at that location - server.on("/edit", HTTP_POST, []() { - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", ""); - }, handleFileUpload); +// *************************************************************************** +// Setup: Webserver handler +// *************************************************************************** +//list directory +server.on("/list", HTTP_GET, handleFileList); +//create file +server.on("/edit", HTTP_PUT, handleFileCreate); +//delete file +server.on("/edit", HTTP_DELETE, handleFileDelete); +//first callback is called after the request has ended with all parsed arguments +//second callback handles file uploads at that location +server.on("/edit", HTTP_POST, []() { + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", ""); +}, handleFileUpload); // *************************************************************************** // Setup: SPIFFS Webserver handler // *************************************************************************** - server.on("/", HTTP_GET, [&](){ - #if defined(USE_HTML_MIN_GZ) - server.sendHeader("Content-Encoding", "gzip", true); - server.send_P(200, PSTR("text/html"), index_htm_gz, index_htm_gz_len); - #else - if (!handleFileRead(server.uri())) - handleNotFound(); - #endif - }); - - server.on("/edit", HTTP_GET, [&](){ - #if defined(USE_HTML_MIN_GZ) - server.sendHeader("Content-Encoding", "gzip", true); - server.send_P(200, PSTR("text/html"), edit_htm_gz, edit_htm_gz_len); - #else - if (!handleFileRead("/edit.htm")) - handleNotFound(); - #endif - }); - - - //called when the url is not defined here - //use it to load content from SPIFFS - server.onNotFound([]() { +server.on("/", HTTP_GET, [&](){ + #if defined(USE_HTML_MIN_GZ) + server.sendHeader("Content-Encoding", "gzip", true); + server.send_P(200, PSTR("text/html"), index_htm_gz, index_htm_gz_len); + #else if (!handleFileRead(server.uri())) handleNotFound(); - }); + #endif +}); - server.on("/upload", handleMinimalUpload); +server.on("/edit", HTTP_GET, [&](){ + #if defined(USE_HTML_MIN_GZ) + server.sendHeader("Content-Encoding", "gzip", true); + server.send_P(200, PSTR("text/html"), edit_htm_gz, edit_htm_gz_len); + #else + if (!handleFileRead("/edit.htm")) + handleNotFound(); + #endif +}); - server.on("/esp_status", HTTP_GET, []() { //get heap status, analog input value and all GPIO statuses in one json call - const size_t bufferSize = JSON_OBJECT_SIZE(31) + 1500; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject root = jsonBuffer.to(); - root["HOSTNAME"] = HOSTNAME; - root["version"] = SKETCH_VERSION; - root["heap"] = ESP.getFreeHeap(); - root["sketch_size"] = ESP.getSketchSize(); - root["free_sketch_space"] = ESP.getFreeSketchSpace(); - root["flash_chip_size"] = ESP.getFlashChipSize(); - root["flash_chip_real_size"] = ESP.getFlashChipRealSize(); - root["flash_chip_speed"] = ESP.getFlashChipSpeed(); - root["sdk_version"] = ESP.getSdkVersion(); - root["core_version"] = ESP.getCoreVersion(); - root["cpu_freq"] = ESP.getCpuFreqMHz(); - root["chip_id"] = ESP.getFlashChipId(); - #if defined(USE_WS2812FX_DMA) - #if USE_WS2812FX_DMA == 0 - root["animation_lib"] = "WS2812FX_DMA"; - #endif - #if USE_WS2812FX_DMA == 1 - root["animation_lib"] = "WS2812FX_UART1"; - #endif - #if USE_WS2812FX_DMA == 2 - root["animation_lib"] = "WS2812FX_UART2"; - #endif - #else - root["animation_lib"] = "WS2812FX"; - #endif - root["ws2812_pin"] = WS2812FXStripSettings.pin; - root["led_count"] = WS2812FXStripSettings.stripSize; - root["rgb_order"] = WS2812FXStripSettings.RGBOrder; - if (strstr(WS2812FXStripSettings.RGBOrder, "W") != NULL) { - root["rgbw_mode"] = "ON"; - } else { - root["rgbw_mode"] = "OFF"; - } - #if defined(ENABLE_BUTTON) - root["button_mode"] = "ON"; - root["button_pin"] = ENABLE_BUTTON; - #else - root["button_mode"] = "OFF"; - #endif - #if defined(ENABLE_BUTTON_GY33) - root["button_gy33"] = "ON"; - root["gy33_pin"] = ENABLE_BUTTON_GY33; - #else - root["button_gy33"] = "OFF"; - #endif - #if defined(ENABLE_REMOTE) - root["ir_remote"] = "ON"; - root["tsop_ir_pin"] = ENABLE_REMOTE; - #else - root["ir_remote"] = "OFF"; - #endif - #if defined(ENABLE_MQTT) - #if ENABLE_MQTT == 0 - root["mqtt"] = "MQTT"; - #endif - #if ENABLE_MQTT == 1 - root["mqtt"] = "AMQTT"; - #endif - #else - root["mqtt"] = "OFF"; - #endif - #if defined(ENABLE_HOMEASSISTANT) - root["home_assistant"] = "ON"; - #else - root["home_assistant"] = "OFF"; - #endif - #if defined(ENABLE_OTA) - #if ENABLE_OTA == 0 - root["ota"] = "ARDUINO"; - #endif - #if ENABLE_OTA == 1 - root["ota"] = "HTTP"; - #endif - #else - root["ota"] = "OFF"; - #endif - #if defined(ENABLE_STATE_SAVE) - root["state_save"] = "SPIFFS"; - #else - root["state_save"] = "OFF"; - #endif - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); + +//called when the url is not defined here +//use it to load content from SPIFFS +server.onNotFound([]() { + if (!handleFileRead(server.uri())) + handleNotFound(); +}); + +server.on("/upload", handleMinimalUpload); + +server.on("/esp_status", HTTP_GET, []() { //get heap status, analog input value and all GPIO statuses in one json call + getESPStateJSON(); +}); + +server.on("/restart", []() { + DBG_OUTPUT_PORT.printf("/restart\r\n"); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "restarting..." ); + ESP.restart(); +}); + +server.on("/reset_wlan", []() { + DBG_OUTPUT_PORT.printf("/reset_wlan\r\n"); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "Resetting WLAN and restarting..." ); + WiFiManager wifiManager; + wifiManager.resetSettings(); + ESP.restart(); +}); + +server.on("/start_config_ap", []() { + DBG_OUTPUT_PORT.printf("/start_config_ap\r\n"); + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", "Starting config AP ..." ); + WiFiManager wifiManager; + wifiManager.startConfigPortal(HOSTNAME); +}); + +server.on("/format_spiffs", []() { + DBG_OUTPUT_PORT.printf("/format_spiffs\r\n"); + server.send(200, "text/plain", "Formatting SPIFFS ..." ); + SPIFFS.format(); +}); + +server.on("/get_brightness", []() { + char str_brightness[4]; + snprintf(str_brightness, sizeof(str_brightness), "%i", (int) (brightness / 2.55)); + str_brightness[sizeof(str_brightness) - 1] = 0x00; + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", str_brightness ); + DBG_OUTPUT_PORT.printf("/get_brightness: %i\r\n", (int) (brightness / 2.55)); +}); + +server.on("/get_speed", []() { + char str_speed[4]; + snprintf(str_speed, sizeof(str_speed), "%i", ws2812fx_speed); + str_speed[sizeof(str_speed) - 1] = 0x00; + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", str_speed ); + DBG_OUTPUT_PORT.printf("/get_speed: %i\r\n", ws2812fx_speed); +}); + +server.on("/get_switch", []() { + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", (mode == OFF) ? "0" : "1" ); + DBG_OUTPUT_PORT.printf("/get_switch: %s\r\n", (mode == OFF) ? "0" : "1"); +}); + +server.on("/get_color", []() { + char rgbcolor[10]; + snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", main_color.white, main_color.red, main_color.green, main_color.blue); + rgbcolor[sizeof(rgbcolor) - 1] = 0x00; + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", rgbcolor ); + DBG_OUTPUT_PORT.print("/get_color: "); + DBG_OUTPUT_PORT.println(rgbcolor); +}); + +server.on("/get_color2", []() { + char rgbcolor[10]; + snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", back_color.white, back_color.red, back_color.green, back_color.blue); + rgbcolor[sizeof(rgbcolor) - 1] = 0x00; + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", rgbcolor ); + DBG_OUTPUT_PORT.print("/get_color2: "); + DBG_OUTPUT_PORT.println(rgbcolor); +}); + +server.on("/get_color3", []() { + char rgbcolor[10]; + snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", xtra_color.white, xtra_color.red, xtra_color.green, xtra_color.blue); + rgbcolor[sizeof(rgbcolor) - 1] = 0x00; + server.sendHeader("Access-Control-Allow-Origin", "*"); + server.send(200, "text/plain", rgbcolor ); + DBG_OUTPUT_PORT.print("/get_color3: "); + DBG_OUTPUT_PORT.println(rgbcolor); +}); + +server.on("/get_modes", []() { + getModesJSON(); +}); + +server.on("/status", []() { + getStateJSON(); +}); + +server.on("/config", []() { + + /* + + // This will be used later when web-interface is ready and HTTP_GET will not be allowed to update the Strip Settings + + if(server.args() == 0 and server.method() != HTTP_POST) + { server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "application/json", buffer); - free (buffer); - }); + server.send(200, "text/plain", "Only HTTP POST method is allowed and check the number of arguments!"); + return; + } + + */ + // ToDo do not save if no change + bool _updateStrip = false; + bool _updateConfig = false; + if(server.hasArg("ws_seg")){ + uint8_t wsseg = server.arg("ws_seg").toInt(); + num_segments = constrain(wsseg, 1, MAX_NUM_SEGMENTS - 1); + _updateStrip = true; + } + if(server.hasArg("ws_cnt")){ + uint16_t pixelCt = server.arg("ws_cnt").toInt(); + if (pixelCt > 0) { + WS2812FXStripSettings.stripSize = constrain(pixelCt, 1, MAXLEDS); + _updateStrip = true; + } + } + if(server.hasArg("ws_rgbo")){ + char tmp_rgbOrder[5]; + snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", server.arg("ws_rgbo").c_str()); + tmp_rgbOrder[sizeof(tmp_rgbOrder) - 1] = 0x00; + checkRGBOrder(tmp_rgbOrder); + _updateStrip = true; + } - server.on("/restart", []() { - DBG_OUTPUT_PORT.printf("/restart\r\n"); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "restarting..." ); - ESP.restart(); - }); - - server.on("/reset_wlan", []() { - DBG_OUTPUT_PORT.printf("/reset_wlan\r\n"); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "Resetting WLAN and restarting..." ); - WiFiManager wifiManager; - wifiManager.resetSettings(); - ESP.restart(); - }); - - server.on("/start_config_ap", []() { - DBG_OUTPUT_PORT.printf("/start_config_ap\r\n"); - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "Starting config AP ..." ); - WiFiManager wifiManager; - wifiManager.startConfigPortal(HOSTNAME); - }); - - server.on("/format_spiffs", []() { - DBG_OUTPUT_PORT.printf("/format_spiffs\r\n"); - server.send(200, "text/plain", "Formatting SPIFFS ..." ); - SPIFFS.format(); - }); - - server.on("/get_brightness", []() { - char str_brightness[4]; - snprintf(str_brightness, sizeof(str_brightness), "%i", (int) (brightness / 2.55)); - str_brightness[sizeof(str_brightness) - 1] = 0x00; - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", str_brightness ); - DBG_OUTPUT_PORT.printf("/get_brightness: %i\r\n", (int) (brightness / 2.55)); - }); - - server.on("/get_speed", []() { - char str_speed[4]; - snprintf(str_speed, sizeof(str_speed), "%i", ws2812fx_speed); - str_speed[sizeof(str_speed) - 1] = 0x00; - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", str_speed ); - DBG_OUTPUT_PORT.printf("/get_speed: %i\r\n", ws2812fx_speed); - }); - - server.on("/get_switch", []() { - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", (mode == OFF) ? "0" : "1" ); - DBG_OUTPUT_PORT.printf("/get_switch: %s\r\n", (mode == OFF) ? "0" : "1"); - }); - - server.on("/get_color", []() { - char rgbcolor[10]; - snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", main_color.white, main_color.red, main_color.green, main_color.blue); - rgbcolor[sizeof(rgbcolor) - 1] = 0x00; - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", rgbcolor ); - DBG_OUTPUT_PORT.print("/get_color: "); - DBG_OUTPUT_PORT.println(rgbcolor); - }); - - server.on("/get_color2", []() { - char rgbcolor[10]; - snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", back_color.white, back_color.red, back_color.green, back_color.blue); - rgbcolor[sizeof(rgbcolor) - 1] = 0x00; - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", rgbcolor ); - DBG_OUTPUT_PORT.print("/get_color2: "); - DBG_OUTPUT_PORT.println(rgbcolor); - }); - - server.on("/get_color3", []() { - char rgbcolor[10]; - snprintf(rgbcolor, sizeof(rgbcolor), "%02X%02X%02X%02X", xtra_color.white, xtra_color.red, xtra_color.green, xtra_color.blue); - rgbcolor[sizeof(rgbcolor) - 1] = 0x00; - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", rgbcolor ); - DBG_OUTPUT_PORT.print("/get_color3: "); - DBG_OUTPUT_PORT.println(rgbcolor); - }); - - server.on("/get_modes", []() { - getModesJSON(); - }); - - server.on("/status", []() { - getStatusJSON(); - }); - - server.on("/config", []() { - - /* - - // This will be used later when web-interface is ready and HTTP_GET will not be allowed to update the Strip Settings - - if(server.args() == 0 and server.method() != HTTP_POST) - { - server.sendHeader("Access-Control-Allow-Origin", "*"); - server.send(200, "text/plain", "Only HTTP POST method is allowed and check the number of arguments!"); - return; - } - - */ - - bool updateStrip = false; - bool updateConf = false; - if(server.hasArg("ws_seg")){ - uint8_t wsseg = server.arg("ws_seg").toInt(); - num_segments = constrain(wsseg, 1, MAX_NUM_SEGMENTS - 1); - updateStrip = true; - } - if(server.hasArg("ws_cnt")){ - uint16_t pixelCt = server.arg("ws_cnt").toInt(); - if (pixelCt > 0) { - WS2812FXStripSettings.stripSize = constrain(pixelCt, 1, MAXLEDS); - updateStrip = true; - } - } - if(server.hasArg("ws_rgbo")){ - char tmp_rgbOrder[5]; - snprintf(tmp_rgbOrder, sizeof(tmp_rgbOrder), "%s", server.arg("ws_rgbo").c_str()); - tmp_rgbOrder[sizeof(tmp_rgbOrder) - 1] = 0x00; - checkRGBOrder(tmp_rgbOrder); - updateStrip = true; - } - #if !defined(USE_WS2812FX_DMA) - if(server.hasArg("ws_pin")){ - if (checkPin(server.arg("ws_pin").toInt())) { - updateStrip = true; - DBG_OUTPUT_PORT.print("Pin was set to: "); - DBG_OUTPUT_PORT.println(WS2812FXStripSettings.pin); - } else { - DBG_OUTPUT_PORT.println("invalid input!"); - } + if(server.hasArg("ws_pin")){ + if (checkPin(server.arg("ws_pin").toInt())) { + _updateStrip = true; + DBG_OUTPUT_PORT.print("Pin was set to: "); + DBG_OUTPUT_PORT.println(WS2812FXStripSettings.pin); + } else { + DBG_OUTPUT_PORT.println("invalid input!"); } + } #endif - - if(server.hasArg("ws_fxopt")){ - WS2812FXStripSettings.fxoptions = ((constrain(server.arg("ws_fxopt").toInt(), 0, 255)>>1)<<1); - updateStrip = true; - } + + if(server.hasArg("ws_fxopt")){ + WS2812FXStripSettings.fxoptions = ((constrain(server.arg("ws_fxopt").toInt(), 0, 255)>>1)<<1); + _updateStrip = true; + } - if(updateStrip) { - mode = INIT_STRIP; - } - - if(server.hasArg("hostname")){ - snprintf(HOSTNAME, sizeof(HOSTNAME), "%s", server.arg("hostname").c_str()); - HOSTNAME[sizeof(HOSTNAME) - 1] = 0x00; - updateConf = true; - } - + if(_updateStrip) { + initStrip(); + } + + if(server.hasArg("hostname")){ + snprintf(HOSTNAME, sizeof(HOSTNAME), "%s", server.arg("hostname").c_str()); + HOSTNAME[sizeof(HOSTNAME) - 1] = 0x00; + _updateConfig = true; + } + #if defined(ENABLE_MQTT) - if(server.hasArg("mqtt_host")){ - snprintf(mqtt_host, sizeof(mqtt_host), "%s", server.arg("mqtt_host").c_str()); - mqtt_host[sizeof(mqtt_host) - 1] = 0x00; - updateConf = true; - } - if(server.hasArg("mqtt_port")){ - if ((server.arg("mqtt_port").toInt() >= 0) && (server.arg("mqtt_port").toInt() <=65535)) { - mqtt_port = server.arg("mqttport").toInt(); - updateConf = true; - } - } - if(server.hasArg("mqtt_user")){ - snprintf(mqtt_user, sizeof(mqtt_user), "%s", server.arg("mqtt_user").c_str()); - mqtt_user[sizeof(mqtt_user) - 1] = 0x00; - updateConf = true; - } - if(server.hasArg("mqtt_pass")){ - snprintf(mqtt_pass, sizeof(mqtt_pass), "%s", server.arg("mqtt_pass").c_str()); - mqtt_pass[sizeof(mqtt_pass) - 1] = 0x00; - updateConf = true; - } - if (updateConf) { - initMqtt(); - } + if(server.hasArg("mqtt_host")){ + snprintf(mqtt_host, sizeof(mqtt_host), "%s", server.arg("mqtt_host").c_str()); + mqtt_host[sizeof(mqtt_host) - 1] = 0x00; + _updateConfig = true; + } + if(server.hasArg("mqtt_port")){ + if ((server.arg("mqtt_port").toInt() >= 0) && (server.arg("mqtt_port").toInt() <=65535)) { + mqtt_port = server.arg("mqttport").toInt(); + _updateConfig = true; + } + } + if(server.hasArg("mqtt_user")){ + snprintf(mqtt_user, sizeof(mqtt_user), "%s", server.arg("mqtt_user").c_str()); + mqtt_user[sizeof(mqtt_user) - 1] = 0x00; + _updateConfig = true; + } + if(server.hasArg("mqtt_pass")){ + snprintf(mqtt_pass, sizeof(mqtt_pass), "%s", server.arg("mqtt_pass").c_str()); + mqtt_pass[sizeof(mqtt_pass) - 1] = 0x00; + _updateConfig = true; + } + if (_updateConfig) { + initMqtt(); + } #endif - if(server.hasArg("trans_effect")){ - transEffect = server.arg("trans_effect").toInt(); - updateConf = true; - } + if(server.hasArg("trans_effect")){ + transEffect = server.arg("trans_effect").toInt(); + _updateConfig = true; + } #if defined(ENABLE_STATE_SAVE) - if (updateStrip || updateConf) { - if(!settings_save_conf.active()) settings_save_conf.once(3, tickerSaveConfig); - } + if (_updateStrip || _updateConfig) { + if(!save_conf.active()) save_conf.once(3, tickerSaveConfig); + } #endif - updateStrip = false; - updateConf = false; - getConfigJSON(); - }); - - server.on("/off", []() { + _updateStrip = false; + _updateConfig = false; + getConfigJSON(); +}); + +server.on("/off", []() { + if (prevmode != OFF) { mode = OFF; - getStatusJSON(); - }); + getStateJSON(); + #if defined(ENABLE_STATE_SAVE) + if(!save_state.active()) save_state.once(3, tickerSaveState); + #endif + } +}); - server.on("/on", []() { +server.on("/on", []() { + if (prevmode == OFF) { mode = SET; - getStatusJSON(); - }); + getStateJSON(); + #if defined(ENABLE_STATE_SAVE) + if(!save_state.active()) save_state.once(3, tickerSaveState); + #endif + } +}); - server.on("/set", []() { - prevmode = HOLD; - ws2812fx_mode = FX_MODE_STATIC; +server.on("/set", []() { + prevmode = HOLD; + ws2812fx_mode = FX_MODE_STATIC; + boolean _updateState = false; + boolean _updateSegState = false; + // Segment + if ((server.arg("seg") != "") && (server.arg("seg").toInt() >= 0) && (server.arg("seg").toInt() <= MAX_NUM_SEGMENTS)) { + segment = server.arg("seg").toInt(); + if (prevsegment != segment) { + prevsegment = segment; + getSegmentParams(segment); + memcpy(hex_colors_trans, hex_colors, sizeof(hex_colors_trans)); + mode = SET; + _updateState = true; + } + } + //color wrgb + if (server.arg("rgb") != "") { + uint32_t rgb = (uint32_t) strtoul(server.arg("rgb").c_str(), NULL, 16); + main_color.white = ((rgb >> 24) & 0xFF); + main_color.red = ((rgb >> 16) & 0xFF); + main_color.green = ((rgb >> 8) & 0xFF); + main_color.blue = ((rgb >> 0) & 0xFF); + } else { + if ((server.arg("r") != "") && (server.arg("r").toInt() >= 0) && (server.arg("r").toInt() <= 255)) { + main_color.red = server.arg("r").toInt(); + } + if ((server.arg("g") != "") && (server.arg("g").toInt() >= 0) && (server.arg("g").toInt() <= 255)) { + main_color.green = server.arg("g").toInt(); + } + if ((server.arg("b") != "") && (server.arg("b").toInt() >= 0) && (server.arg("b").toInt() <= 255)) { + main_color.blue = server.arg("b").toInt(); + } + if ((server.arg("w") != "") && (server.arg("w").toInt() >= 0) && (server.arg("w").toInt() <= 255)){ + main_color.white = server.arg("w").toInt(); + } + } + if (server.arg("rgb2") != "") { + uint32_t rgb2 = (uint32_t) strtoul(server.arg("rgb2").c_str(), NULL, 16); + back_color.white = ((rgb2 >> 24) & 0xFF); + back_color.red = ((rgb2 >> 16) & 0xFF); + back_color.green = ((rgb2 >> 8) & 0xFF); + back_color.blue = ((rgb2 >> 0) & 0xFF); + } else { + if ((server.arg("r2") != "") && (server.arg("r2").toInt() >= 0) && (server.arg("r2").toInt() <= 255)) { + back_color.red = server.arg("r2").toInt(); + } + if ((server.arg("g2") != "") && (server.arg("g2").toInt() >= 0) && (server.arg("g2").toInt() <= 255)) { + back_color.green = server.arg("g2").toInt(); + } + if ((server.arg("b2") != "") && (server.arg("b2").toInt() >= 0) && (server.arg("b2").toInt() <= 255)) { + back_color.blue = server.arg("b2").toInt(); + } + if ((server.arg("w2") != "") && (server.arg("w2").toInt() >= 0) && (server.arg("w2").toInt() <= 255)){ + back_color.white = server.arg("w2").toInt(); + } + } + if (server.arg("rgb3") != "") { + uint32_t rgb3 = (uint32_t) strtoul(server.arg("rgb3").c_str(), NULL, 16); + xtra_color.white = ((rgb3 >> 24) & 0xFF); + xtra_color.red = ((rgb3 >> 16) & 0xFF); + xtra_color.green = ((rgb3 >> 8) & 0xFF); + xtra_color.blue = ((rgb3 >> 0) & 0xFF); + } else { + if ((server.arg("r3") != "") && (server.arg("r3").toInt() >= 0) && (server.arg("r3").toInt() <= 255)) { + xtra_color.red = server.arg("r3").toInt(); + } + if ((server.arg("g3") != "") && (server.arg("g3").toInt() >= 0) && (server.arg("g3").toInt() <= 255)) { + xtra_color.green = server.arg("g3").toInt(); + } + if ((server.arg("b3") != "") && (server.arg("b3").toInt() >= 0) && (server.arg("b3").toInt() <= 255)) { + xtra_color.blue = server.arg("b3").toInt(); + } + if ((server.arg("w3") != "") && (server.arg("w3").toInt() >= 0) && (server.arg("w3").toInt() <= 255)){ + xtra_color.white = server.arg("w3").toInt(); + } + } + main_color.red = constrain(main_color.red, 0, 255); + main_color.green = constrain(main_color.green, 0, 255); + main_color.blue = constrain(main_color.blue, 0, 255); + main_color.white = constrain(main_color.white, 0, 255); + back_color.red = constrain(back_color.red, 0, 255); + back_color.green = constrain(back_color.green, 0, 255); + back_color.blue = constrain(back_color.blue, 0, 255); + back_color.white = constrain(back_color.white, 0, 255); + xtra_color.red = constrain(xtra_color.red, 0, 255); + xtra_color.green = constrain(xtra_color.green, 0, 255); + xtra_color.blue = constrain(xtra_color.blue, 0, 255); + xtra_color.white = constrain(xtra_color.white, 0, 255); + + + // Speed + if ((server.arg("s") != "") && (server.arg("s").toInt() >= 0) && (server.arg("s").toInt() <= 255)) { + ws2812fx_speed = constrain(server.arg("s").toInt(), 0, 255); mode = SET; - getArgs(); - getStatusJSON(); - }); + _updateSegState = true; + } + //Mode + if ((server.arg("m") != "") && (server.arg("m").toInt() >= 0) && (server.arg("m").toInt() <= strip->getModeCount())) { + ws2812fx_mode = constrain(server.arg("m").toInt(), 0, strip->getModeCount() - 1); + if (ws2812fx_mode != strip->getMode(segment)) { + mode = SET; + _updateSegState = true; + } + } + + // Brightness + if ((server.arg("c") != "") && (server.arg("c").toInt() >= 0) && (server.arg("c").toInt() <= 100)) { + brightness = constrain((int) server.arg("c").toInt() * 2.55, 0, 255); + } else if ((server.arg("p") != "") && (server.arg("p").toInt() >= 0) && (server.arg("p").toInt() <= 255)) { + brightness = constrain(server.arg("p").toInt(), 0, 255); + } + if (strip->getBrightness() != brightness) { + mode = SET; + _updateState = true; + } + DBG_OUTPUT_PORT.printf("Get Args: %s\r\n", listStateJSONfull()); + getStateJSON(); + +#if defined(ENABLE_STATE_SAVE) + if (_updateState) { + DBG_OUTPUT_PORT.println("Saving stripstate.json!"); + if(!save_state.active()) save_state.once(3, tickerSaveState); + } + if (_updateSegState) { + DBG_OUTPUT_PORT.println("Saving stripstate_segment.json!"); + if(!save_seg_state.active()) save_seg_state.once(3, tickerSaveSegmentState); + } +#endif + _updateState = false; + _updateSegState = false; +}); + + diff --git a/Arduino/McLighting/trash.ino b/Arduino/McLighting/trash.ino deleted file mode 100644 index 10cec98..0000000 --- a/Arduino/McLighting/trash.ino +++ /dev/null @@ -1,33 +0,0 @@ -char * listStatusJSON2() { - const size_t bufferSize = 10*JSON_ARRAY_SIZE(12) + 10*JSON_OBJECT_SIZE(4) + JSON_OBJECT_SIZE(12) + 600; - DynamicJsonDocument jsonBuffer(bufferSize); - JsonObject root = jsonBuffer.to(); - root["mode"] = (uint8_t) mode; - root["brightness"] = brightness; - for(uint8_t i=0; i<10; i++) { - char int2char[3]; - itoa(i, int2char, 10); - JsonObject segments = root.createNestedObject(int2char); - segments["ws2812fx_mode"] = strip->getMode(i); - segments["ws2812fx_mode_name"] = strip->getModeName(strip->getMode(i)); - segments["speed"] = ws2812fx_speed; - JsonArray color = segments.createNestedArray("color"); - color.add(main_color.white); - color.add(main_color.red); - color.add(main_color.green); - color.add(main_color.blue); - color.add(back_color.white); - color.add(back_color.red); - color.add(back_color.green); - color.add(back_color.blue); - color.add(xtra_color.white); - color.add(xtra_color.red); - color.add(xtra_color.green); - color.add(xtra_color.blue); - } - uint16_t msg_len = measureJson(root) + 1; - char * buffer = (char *) malloc(msg_len); - serializeJson(root, buffer, msg_len); - jsonBuffer.clear(); - return buffer; -} diff --git a/Arduino/McLighting/version.h b/Arduino/McLighting/version.h index 55e0789..75c5dc1 100644 --- a/Arduino/McLighting/version.h +++ b/Arduino/McLighting/version.h @@ -1 +1 @@ -#define SKETCH_VERSION "3.0.0.BETA1" +#define SKETCH_VERSION "3.1.0.ALPHA2" diff --git a/Arduino/McLighting/version_info.ino b/Arduino/McLighting/version_info.ino index 9bde1ea..cc4eca4 100644 --- a/Arduino/McLighting/version_info.ino +++ b/Arduino/McLighting/version_info.ino @@ -195,4 +195,10 @@ * removal of saving to EEPROM * first integration of multi segments * + * * 3 October 2019 + * Version Bump to 3.1.0.ALPHA2 + * further code changes + * further integration of multi segments + * integration of multi segments to GUI + * */