diff --git a/Software/src/devboard/mqtt/mqtt.cpp b/Software/src/devboard/mqtt/mqtt.cpp
index 420d904a..921ad6e8 100644
--- a/Software/src/devboard/mqtt/mqtt.cpp
+++ b/Software/src/devboard/mqtt/mqtt.cpp
@@ -56,6 +56,7 @@ SensorConfig sensorConfigs[] = {
{"max_charge_power", "Battery Emulator Battery Max Charge Power", "{{ value_json.max_charge_power }}", "W",
"power"},
{"bms_status", "Battery Emulator BMS Status", "{{ value_json.bms_status }}", "", ""},
+ {"pause_status", "Battery Emulator Pause Status", "{{ value_json.pause_status }}", "", ""},
};
@@ -112,25 +113,30 @@ static void publish_common_info(void) {
} else {
#endif // HA_AUTODISCOVERY
- doc["SOC"] = ((float)datalayer.battery.status.reported_soc) / 100.0;
- doc["SOC_real"] = ((float)datalayer.battery.status.real_soc) / 100.0;
- doc["state_of_health"] = ((float)datalayer.battery.status.soh_pptt) / 100.0;
- doc["temperature_min"] = ((float)((int16_t)datalayer.battery.status.temperature_min_dC)) / 10.0;
- doc["temperature_max"] = ((float)((int16_t)datalayer.battery.status.temperature_max_dC)) / 10.0;
- doc["stat_batt_power"] = ((float)((int32_t)datalayer.battery.status.active_power_W));
- doc["battery_current"] = ((float)((int16_t)datalayer.battery.status.current_dA)) / 10.0;
- doc["battery_voltage"] = ((float)datalayer.battery.status.voltage_dV) / 10.0;
- // publish only if cell voltages have been populated...
- if (datalayer.battery.info.number_of_cells != 0u &&
- datalayer.battery.status.cell_voltages_mV[datalayer.battery.info.number_of_cells - 1] != 0u) {
- doc["cell_max_voltage"] = ((float)datalayer.battery.status.cell_max_voltage_mV) / 1000.0;
- doc["cell_min_voltage"] = ((float)datalayer.battery.status.cell_min_voltage_mV) / 1000.0;
- }
- doc["total_capacity"] = ((float)datalayer.battery.info.total_capacity_Wh);
- doc["remaining_capacity"] = ((float)datalayer.battery.status.remaining_capacity_Wh);
- doc["max_discharge_power"] = ((float)datalayer.battery.status.max_discharge_power_W);
- doc["max_charge_power"] = ((float)datalayer.battery.status.max_charge_power_W);
doc["bms_status"] = getBMSStatus(datalayer.battery.status.bms_status);
+ doc["pause_status"] = get_emulator_pause_status();
+
+ //only publish these values if BMS is active and we are comunication with the battery (can send CAN messages to the battery)
+ if (datalayer.battery.status.bms_status == ACTIVE && can_send_CAN && millis() > BOOTUP_TIME) {
+ doc["SOC"] = ((float)datalayer.battery.status.reported_soc) / 100.0;
+ doc["SOC_real"] = ((float)datalayer.battery.status.real_soc) / 100.0;
+ doc["state_of_health"] = ((float)datalayer.battery.status.soh_pptt) / 100.0;
+ doc["temperature_min"] = ((float)((int16_t)datalayer.battery.status.temperature_min_dC)) / 10.0;
+ doc["temperature_max"] = ((float)((int16_t)datalayer.battery.status.temperature_max_dC)) / 10.0;
+ doc["stat_batt_power"] = ((float)((int32_t)datalayer.battery.status.active_power_W));
+ doc["battery_current"] = ((float)((int16_t)datalayer.battery.status.current_dA)) / 10.0;
+ doc["battery_voltage"] = ((float)datalayer.battery.status.voltage_dV) / 10.0;
+ // publish only if cell voltages have been populated...
+ if (datalayer.battery.info.number_of_cells != 0u &&
+ datalayer.battery.status.cell_voltages_mV[datalayer.battery.info.number_of_cells - 1] != 0u) {
+ doc["cell_max_voltage"] = ((float)datalayer.battery.status.cell_max_voltage_mV) / 1000.0;
+ doc["cell_min_voltage"] = ((float)datalayer.battery.status.cell_min_voltage_mV) / 1000.0;
+ }
+ doc["total_capacity"] = ((float)datalayer.battery.info.total_capacity_Wh);
+ doc["remaining_capacity"] = ((float)datalayer.battery.status.remaining_capacity_Wh);
+ doc["max_discharge_power"] = ((float)datalayer.battery.status.max_discharge_power_W);
+ doc["max_charge_power"] = ((float)datalayer.battery.status.max_charge_power_W);
+ }
serializeJson(doc, mqtt_msg);
if (!mqtt_publish(state_topic.c_str(), mqtt_msg, false)) {
diff --git a/Software/src/devboard/safety/safety.cpp b/Software/src/devboard/safety/safety.cpp
index 51148ed7..41b63858 100644
--- a/Software/src/devboard/safety/safety.cpp
+++ b/Software/src/devboard/safety/safety.cpp
@@ -9,9 +9,23 @@ static bool battery_empty_event_fired = false;
#define MAX_SOH_DEVIATION_PPTT 2500
+//battery pause status begin
+bool emulator_pause_request_ON = false;
+bool emulator_pause_CAN_send_ON = false;
+bool can_send_CAN = true;
+
+battery_pause_status emulator_pause_status = NORMAL;
+//battery pause status end
+
void update_machineryprotection() {
// Start checking that the battery is within reason. Incase we see any funny business, raise an event!
+ // Pause function is on
+ if (emulator_pause_request_ON) {
+ datalayer.battery.status.max_discharge_power_W = 0;
+ datalayer.battery.status.max_charge_power_W = 0;
+ }
+
// Battery is overheated!
if (datalayer.battery.status.temperature_max_dC > 500) {
set_event(EVENT_BATTERY_OVERHEAT, datalayer.battery.status.temperature_max_dC);
@@ -138,6 +152,13 @@ void update_machineryprotection() {
#ifdef DOUBLE_BATTERY // Additional Double-Battery safeties are checked here
// Check if the Battery 2 BMS is still sending CAN messages. If we go 60s without messages we raise an error
+
+ // Pause function is on
+ if (emulator_pause_request_ON) {
+ datalayer.battery2.status.max_discharge_power_W = 0;
+ datalayer.battery2.status.max_charge_power_W = 0;
+ }
+
if (!datalayer.battery2.status.CAN_battery_still_alive) {
set_event(EVENT_CAN2_RX_FAILURE, 0);
} else {
@@ -171,3 +192,67 @@ void update_machineryprotection() {
#endif // DOUBLE_BATTERY
}
+
+//battery pause status begin
+void setBatteryPause(bool pause_battery, bool pause_CAN) {
+
+ emulator_pause_CAN_send_ON = pause_CAN;
+
+ if (pause_battery) {
+
+ set_event(EVENT_PAUSE_BEGIN, 1);
+ emulator_pause_request_ON = true;
+ emulator_pause_status = PAUSING;
+ datalayer.battery.status.max_discharge_power_W = 0;
+ datalayer.battery.status.max_charge_power_W = 0;
+#ifdef DOUBLE_BATTERY
+ datalayer.battery2.status.max_discharge_power_W = 0;
+ datalayer.battery2.status.max_charge_power_W = 0;
+#endif
+
+ } else {
+ clear_event(EVENT_PAUSE_BEGIN);
+ set_event(EVENT_PAUSE_END, 0);
+ emulator_pause_request_ON = false;
+ emulator_pause_CAN_send_ON = false;
+ emulator_pause_status = RESUMING;
+ clear_event(EVENT_PAUSE_END);
+ }
+}
+
+/// @brief handle emulator pause status
+/// @return true if CAN messages should be sent to battery, false if not
+void emulator_pause_state_send_CAN_battery() {
+
+ if (emulator_pause_status == NORMAL)
+ can_send_CAN = true;
+
+ // in some inverters this values are not accurate, so we need to check if we are consider 1.8 amps as the limit
+ if (emulator_pause_request_ON && emulator_pause_status == PAUSING && datalayer.battery.status.current_dA < 18 &&
+ datalayer.battery.status.current_dA > -18) {
+ emulator_pause_status = PAUSED;
+ }
+
+ if (!emulator_pause_request_ON && emulator_pause_status == RESUMING) {
+ emulator_pause_status = NORMAL;
+ can_send_CAN = true;
+ }
+
+ can_send_CAN = (!emulator_pause_CAN_send_ON || emulator_pause_status == NORMAL);
+}
+
+std::string get_emulator_pause_status() {
+ switch (emulator_pause_status) {
+ case NORMAL:
+ return "RUNNING";
+ case PAUSING:
+ return "PAUSING";
+ case PAUSED:
+ return "PAUSED";
+ case RESUMING:
+ return "RESUMING";
+ default:
+ return "UNKNOWN";
+ }
+}
+//battery pause status
diff --git a/Software/src/devboard/safety/safety.h b/Software/src/devboard/safety/safety.h
index 8c547728..097f5d35 100644
--- a/Software/src/devboard/safety/safety.h
+++ b/Software/src/devboard/safety/safety.h
@@ -1,11 +1,26 @@
#ifndef SAFETY_H
#define SAFETY_H
#include
+#include
#define MAX_CAN_FAILURES 50
#define MAX_CHARGE_DISCHARGE_LIMIT_FAILURES 1
+//battery pause status begin
+enum battery_pause_status { NORMAL = 0, PAUSING = 1, PAUSED = 2, RESUMING = 3 };
+extern bool emulator_pause_request_ON;
+extern bool emulator_pause_CAN_send_ON;
+extern battery_pause_status emulator_pause_status;
+extern bool can_send_CAN;
+//battery pause status end
+
void update_machineryprotection();
+//battery pause status begin
+void setBatteryPause(bool pause_battery, bool pause_CAN);
+void emulator_pause_state_send_CAN_battery();
+std::string get_emulator_pause_status();
+//battery pause status end
+
#endif
diff --git a/Software/src/devboard/utils/events.cpp b/Software/src/devboard/utils/events.cpp
index 8ceeb75d..edaa046f 100644
--- a/Software/src/devboard/utils/events.cpp
+++ b/Software/src/devboard/utils/events.cpp
@@ -198,6 +198,8 @@ void init_events(void) {
events.entries[EVENT_RESET_EFUSE].level = EVENT_LEVEL_INFO;
events.entries[EVENT_RESET_PWR_GLITCH].level = EVENT_LEVEL_INFO;
events.entries[EVENT_RESET_CPU_LOCKUP].level = EVENT_LEVEL_WARNING;
+ events.entries[EVENT_PAUSE_BEGIN].level = EVENT_LEVEL_WARNING;
+ events.entries[EVENT_PAUSE_END].level = EVENT_LEVEL_INFO;
events.entries[EVENT_EEPROM_WRITE].log = false; // Don't log the logger...
@@ -367,6 +369,10 @@ const char* get_event_message_string(EVENTS_ENUM_TYPE event) {
return "Info: The board was reset due to a detected power glitch";
case EVENT_RESET_CPU_LOCKUP:
return "Warning: The board was reset due to CPU lockup. Inform developers!";
+ case EVENT_PAUSE_BEGIN:
+ return "Warning: The emulator is trying to pause the battery.";
+ case EVENT_PAUSE_END:
+ return "Info: The emulator is attempting to resume battery operation from pause.";
default:
return "";
}
diff --git a/Software/src/devboard/utils/events.h b/Software/src/devboard/utils/events.h
index 9cecf393..34ce9282 100644
--- a/Software/src/devboard/utils/events.h
+++ b/Software/src/devboard/utils/events.h
@@ -93,6 +93,8 @@
XX(EVENT_RESET_EFUSE) \
XX(EVENT_RESET_PWR_GLITCH) \
XX(EVENT_RESET_CPU_LOCKUP) \
+ XX(EVENT_PAUSE_BEGIN) \
+ XX(EVENT_PAUSE_END) \
XX(EVENT_NOF_EVENTS)
typedef enum { EVENTS_ENUM_TYPE(GENERATE_ENUM) } EVENTS_ENUM_TYPE;
diff --git a/Software/src/devboard/webserver/webserver.cpp b/Software/src/devboard/webserver/webserver.cpp
index 75824a84..5dd318e2 100644
--- a/Software/src/devboard/webserver/webserver.cpp
+++ b/Software/src/devboard/webserver/webserver.cpp
@@ -1,6 +1,7 @@
#include "webserver.h"
#include
#include "../../datalayer/datalayer.h"
+#include "../../lib/bblanchon-ArduinoJson/ArduinoJson.h"
#include "../utils/events.h"
#include "../utils/led_handler.h"
#include "../utils/timer.h"
@@ -34,6 +35,7 @@ unsigned const long MAX_WIFI_RETRY_INTERVAL = 90000; // Maximum wifi ret
unsigned long last_wifi_monitor_time = millis(); //init millis so wifi monitor doesn't run immediately
unsigned long wifi_reconnect_interval = DEFAULT_WIFI_RECONNECT_INTERVAL;
unsigned long last_wifi_attempt_time = millis(); //init millis so wifi monitor doesn't run immediately
+const char get_firmware_info_html[] = R"rawliteral(%X%)rawliteral";
void init_webserver() {
// Configure WiFi
@@ -53,6 +55,13 @@ void init_webserver() {
server.on("/logout", HTTP_GET, [](AsyncWebServerRequest* request) { request->send(401); });
+ // Route for firmware info from ota update page
+ server.on("/GetFirmwareInfo", HTTP_GET, [](AsyncWebServerRequest* request) {
+ if (WEBSERVER_AUTH_REQUIRED && !request->authenticate(http_username, http_password))
+ return request->requestAuthentication();
+ request->send_P(200, "application/json", get_firmware_info_html, get_firmware_info_processor);
+ });
+
// Route for root / web page
server.on("/", HTTP_GET, [](AsyncWebServerRequest* request) {
if (WEBSERVER_AUTH_REQUIRED && !request->authenticate(http_username, http_password))
@@ -159,6 +168,19 @@ void init_webserver() {
}
});
+ // Route for pause/resume Battery emulator
+ server.on("/pause", HTTP_GET, [](AsyncWebServerRequest* request) {
+ if (WEBSERVER_AUTH_REQUIRED && !request->authenticate(http_username, http_password))
+ return request->requestAuthentication();
+ if (request->hasParam("p")) {
+ String valueStr = request->getParam("p")->value();
+ setBatteryPause(valueStr == "true" || valueStr == "1", false);
+ request->send(200, "text/plain", "Updated successfully");
+ } else {
+ request->send(400, "text/plain", "Bad Request");
+ }
+ });
+
// Route for editing SOCMin
server.on("/updateSocMin", HTTP_GET, [](AsyncWebServerRequest* request) {
if (WEBSERVER_AUTH_REQUIRED && !request->authenticate(http_username, http_password))
@@ -414,10 +436,8 @@ void wifi_monitor() {
if (ota_active && ota_timeout_timer.elapsed()) {
// OTA timeout, try to restore can and clear the update event
- ESP32Can.CANInit();
- clear_event(EVENT_OTA_UPDATE);
set_event(EVENT_OTA_UPDATE_TIMEOUT, 0);
- ota_active = false;
+ onOTAEnd(false);
}
}
@@ -444,6 +464,24 @@ void init_ElegantOTA() {
ElegantOTA.onEnd(onOTAEnd);
}
+String get_firmware_info_processor(const String& var) {
+ if (var == "X") {
+ String content = "";
+ static JsonDocument doc;
+#ifdef HW_LILYGO
+ doc["hardware"] = "LilyGo T-CAN485";
+#endif // HW_LILYGO
+#ifdef HW_STARK
+ doc["hardware"] = "Stark CMR Module";
+#endif // HW_STARK
+
+ doc["firmware"] = String(version_number);
+ serializeJson(doc, content);
+ return content;
+ }
+ return String();
+}
+
String processor(const String& var) {
if (var == "X") {
String content = "";
@@ -696,6 +734,10 @@ String processor(const String& var) {
} else {
content += "✕";
}
+ if (emulator_pause_status == NORMAL)
+ content += "Pause status: " + String(get_emulator_pause_status().c_str()) + "
";
+ else
+ content += "Pause status: " + String(get_emulator_pause_status().c_str()) + "
";
// Close the block
content += "";
@@ -772,6 +814,10 @@ String processor(const String& var) {
} else {
content += "✕";
}
+ if (emulator_pause_status == NORMAL)
+ content += "Pause status: " + String(get_emulator_pause_status().c_str()) + "
";
+ else
+ content += "Pause status: " + String(get_emulator_pause_status().c_str()) + "
";
content += "";
content += "";
@@ -833,6 +879,11 @@ String processor(const String& var) {
content += "";
#endif // defined CHEVYVOLT_CHARGER || defined NISSANLEAF_CHARGER
+ if (emulator_pause_request_ON)
+ content += "";
+ else
+ content += "";
+
content += "";
content += " ";
content += "";
@@ -866,6 +917,12 @@ String processor(const String& var) {
content += " setTimeout(function(){ window.open(\"/\",\"_self\"); }, 1000);";
content += "}";
}
+ content += "function PauseBattery(pause){";
+ content +=
+ "var xhr=new "
+ "XMLHttpRequest();xhr.onload=function() { "
+ "window.location.reload();};xhr.open('GET','/pause?p='+pause,true);xhr.send();";
+ content += "}";
content += "";
@@ -880,8 +937,10 @@ String processor(const String& var) {
}
void onOTAStart() {
+ //try to Pause the battery
+ setBatteryPause(true, true);
+
// Log when OTA has started
- ESP32Can.CANStop();
set_event(EVENT_OTA_UPDATE, 0);
// If already set, make a new attempt
@@ -903,8 +962,13 @@ void onOTAProgress(size_t current, size_t final) {
}
void onOTAEnd(bool success) {
+
+ ota_active = false;
+ clear_event(EVENT_OTA_UPDATE);
+
// Log when OTA has finished
if (success) {
+ // a reboot will be done by the OTA library. no need to do anything here
#ifdef DEBUG_VIA_USB
Serial.println("OTA update finished successfully!");
#endif // DEBUG_VIA_USB
@@ -912,12 +976,9 @@ void onOTAEnd(bool success) {
#ifdef DEBUG_VIA_USB
Serial.println("There was an error during OTA update!");
#endif // DEBUG_VIA_USB
-
- // If we fail without a timeout, try to restore CAN
- ESP32Can.CANInit();
+ //try to Resume the battery pause and CAN communication
+ setBatteryPause(false, false);
}
- ota_active = false;
- clear_event(EVENT_OTA_UPDATE);
}
template // This function makes power values appear as W when under 1000, and kW when over
diff --git a/Software/src/devboard/webserver/webserver.h b/Software/src/devboard/webserver/webserver.h
index 09486d9e..e447f9a3 100644
--- a/Software/src/devboard/webserver/webserver.h
+++ b/Software/src/devboard/webserver/webserver.h
@@ -103,6 +103,7 @@ void init_ElegantOTA();
* @return String
*/
String processor(const String& var);
+String get_firmware_info_processor(const String& var);
/**
* @brief Executes on OTA start
diff --git a/Software/src/lib/ayushsharma82-ElegantOTA/CurrentPlainHTML.txt b/Software/src/lib/ayushsharma82-ElegantOTA/CurrentPlainHTML.txt
new file mode 100644
index 00000000..c1dd1c04
--- /dev/null
+++ b/Software/src/lib/ayushsharma82-ElegantOTA/CurrentPlainHTML.txt
@@ -0,0 +1,212 @@
+
+
+
+
+
+ Battery Emulator OTA Update
+
+
+
+
+
+
+ Battery Emulator
+ OTA update
+ based on
+
+
+
+
+
+
+
+
+
+
+
+ Update Successful
+
+
+
+
+
+
+ Unexpected Error
+
+
+ Please try again
+
+
+
+
+
+
+
+
+ OTA Mode
+
+
+
+
+
+
+
+
+ Firmware Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Software/src/lib/ayushsharma82-ElegantOTA/howtochangeHTML.txt b/Software/src/lib/ayushsharma82-ElegantOTA/howtochangeHTML.txt
new file mode 100644
index 00000000..09191a52
--- /dev/null
+++ b/Software/src/lib/ayushsharma82-ElegantOTA/howtochangeHTML.txt
@@ -0,0 +1,30 @@
+Modifying HTML for the ElegantOTA Library
+
+This guide provides the necessary steps to update and modify the HTML used in the ElegantOTA library.
+Follow these steps carefully to ensure that your changes are properly integrated.
+
+Steps to Modify the HTML:
+
+1 - Edit the CurrentPlainHTML.txt:
+
+Locate the file CurrentPlainHTML.txt in your project directory.
+Modify the HTML content as needed. This file contains the plain HTML code that will be served through the OTA interface.
+
+Convert the HTML to GZIP and Decimal Format:
+
+Copy the content of the updated CurrentPlainHTML.txt.
+Navigate to the CyberChef tool for encoding and compression.
+Apply the following recipe:
+Gzip with the "Dynamic Huffman Coding" option enabled.
+Convert to Decimal with a comma separator.
+Use this link for the process: https://gchq.github.io/CyberChef/#recipe=Gzip('Dynamic%20Huffman%20Coding','','',false)To_Decimal('Comma',false)
+
+2 - Update the ELEGANT_HTML Array:
+
+Copy the resulting decimal output from CyberChef.
+Replace the existing content of the ELEGANT_HTML array in elop.cpp with the new decimal data from CyberChef.
+
+3 - Adjust the ELEGANT_HTML Array Size:
+
+After updating the ELEGANT_HTML array in both elop.h and elop.cpp, update the array size to match the length of the new output from CyberChef.
+Ensure that the array size reflects the new length of the compressed HTML to avoid errors during compilation.
diff --git a/Software/src/lib/ayushsharma82-ElegantOTA/src/ElegantOTA.cpp b/Software/src/lib/ayushsharma82-ElegantOTA/src/ElegantOTA.cpp
index 42b84778..a414f349 100644
--- a/Software/src/lib/ayushsharma82-ElegantOTA/src/ElegantOTA.cpp
+++ b/Software/src/lib/ayushsharma82-ElegantOTA/src/ElegantOTA.cpp
@@ -43,6 +43,15 @@ void ElegantOTAClass::begin(ELEGANTOTA_WEBSERVER *server, const char * username,
return request->requestAuthentication();
}
+ // Pre-OTA update callback
+ if (preUpdateCallback != NULL) preUpdateCallback();
+
+ // Sleep for 3 seconds to allow asynchronous preUpdateCallback tasks to complete
+ unsigned long sleepStart = millis();
+ while (millis() - sleepStart < 3000) { // Sleep for 3 second
+ delay(1); // Yield to other tasks
+ }
+
// Get header x-ota-mode value, if present
OTA_Mode mode = OTA_MODE_FIRMWARE;
// Get mode from arg
@@ -73,7 +82,7 @@ void ElegantOTAClass::begin(ELEGANTOTA_WEBSERVER *server, const char * username,
#endif
// Pre-OTA update callback
- if (preUpdateCallback != NULL) preUpdateCallback();
+ //if (preUpdateCallback != NULL) preUpdateCallback();
// Start update process
#if defined(ESP8266)
diff --git a/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.cpp b/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.cpp
index de3abdc2..e6200c2e 100644
--- a/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.cpp
+++ b/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.cpp
@@ -1,345 +1,3 @@
#include "elop.h"
-const uint8_t ELEGANT_HTML[10214] PROGMEM = {
-31,139,8,0,0,0,0,0,2,3,164,86,231,118,219,184,18,254,159,167,160,121,206,114,9,11,162,37,89,150,
-21,73,112,122,110,154,203,246,226,235,155,3,131,160,136,24,2,184,0,232,114,101,189,251,14,72,213,56,61,127,
-72,148,153,111,190,105,0,70,91,169,102,238,166,224,65,238,38,242,224,222,200,255,2,73,213,152,132,92,133,7,
-247,130,96,148,115,154,250,1,12,39,220,209,128,229,212,88,238,72,248,219,175,207,155,253,48,216,89,223,84,116,
-194,73,120,41,248,85,161,141,11,3,166,149,227,10,132,175,68,234,114,146,242,75,193,120,179,154,224,64,40,225,
-4,149,77,203,168,228,164,157,180,86,96,78,56,201,15,158,73,62,166,202,29,255,250,40,120,35,28,31,237,212,
-203,181,136,101,70,20,46,240,236,73,56,209,105,41,57,216,51,218,90,109,196,88,168,131,123,113,86,42,230,132,
-86,49,154,2,17,235,130,140,128,191,229,4,24,37,204,112,234,56,88,240,179,56,148,66,93,132,40,49,92,190,
-17,214,13,69,22,103,81,148,37,182,44,188,35,118,125,28,207,173,21,32,172,105,26,34,100,184,43,141,26,102,
-218,196,181,29,26,232,44,88,154,250,167,228,230,230,23,46,57,115,218,60,146,50,254,209,91,59,5,117,242,30,
-212,217,143,8,165,49,69,67,197,175,130,195,210,81,207,254,248,220,114,115,201,77,76,201,193,116,101,131,121,27,
-20,1,83,150,84,65,32,36,100,185,144,169,119,32,68,43,65,225,5,89,66,211,148,167,71,58,229,22,137,196,
-209,241,17,157,84,58,111,94,30,189,14,163,72,120,223,97,190,201,8,54,210,88,160,25,74,116,205,34,94,120,
-133,167,75,99,131,173,22,182,229,185,51,156,195,112,134,134,139,184,7,54,166,139,208,51,50,157,13,235,64,5,
-52,17,202,241,177,17,238,38,138,98,182,154,145,181,29,132,41,80,202,184,49,220,156,104,41,88,45,187,185,68,
-222,151,241,90,85,17,28,87,69,224,29,42,45,111,50,195,83,174,124,181,217,240,1,75,214,166,36,20,138,201,
-50,229,225,224,142,38,85,90,221,76,116,121,87,71,79,132,11,7,239,45,90,136,104,179,46,190,16,179,217,50,
-10,169,143,2,228,137,38,188,88,212,138,31,147,173,214,112,17,28,235,179,158,113,199,114,16,203,193,39,204,208,
-108,134,98,52,148,154,81,249,139,211,134,142,121,226,114,94,103,45,165,230,34,188,189,221,138,195,106,9,156,8,
-214,5,81,20,93,9,149,234,171,100,66,1,243,144,167,130,198,97,92,84,193,178,77,166,165,54,208,119,94,117,
-16,120,44,20,162,90,148,219,7,203,28,39,139,193,188,77,18,38,169,181,62,229,190,154,226,154,4,194,75,241,
-49,95,72,62,190,121,57,223,63,212,41,127,146,115,118,113,174,175,193,6,243,67,158,130,235,104,240,37,118,12,
-159,232,75,254,125,166,218,104,248,53,122,224,218,179,75,16,240,246,185,226,38,14,153,20,236,34,196,107,199,201,
-55,240,248,234,176,126,32,241,243,173,175,143,220,135,209,164,24,231,46,68,235,29,251,40,150,104,58,111,83,25,
-69,50,121,251,150,219,195,234,72,136,162,227,243,119,156,185,164,48,218,105,127,228,36,57,181,199,87,234,196,232,
-130,27,119,147,128,5,25,75,28,166,60,163,165,4,228,7,50,153,143,7,114,118,73,77,240,134,76,249,117,117,
-138,14,166,179,25,190,222,152,14,215,15,108,47,45,73,248,232,241,147,167,207,158,255,231,197,203,87,175,223,28,
-30,29,159,252,244,243,47,191,254,246,251,31,127,254,245,55,61,103,128,61,206,197,187,11,57,81,186,248,199,88,
-87,94,94,93,223,252,191,213,238,236,118,247,122,251,253,251,141,29,200,26,153,2,95,57,88,98,91,156,46,93,
-180,163,81,122,107,15,14,14,118,59,205,116,134,65,208,124,84,16,68,106,89,16,228,42,21,84,173,137,86,13,
-110,147,170,157,77,233,15,122,66,142,202,201,57,55,104,142,144,37,158,6,128,246,81,212,238,237,183,219,247,119,
-247,110,151,139,157,46,138,186,157,253,126,103,111,111,183,215,170,174,18,31,129,148,180,134,233,200,38,146,171,177,
-203,135,105,163,129,236,105,122,70,178,164,102,16,251,25,26,46,72,130,7,84,165,122,242,248,198,113,187,193,110,
-5,120,122,54,180,7,173,161,109,54,81,154,20,165,205,227,67,234,242,36,147,90,155,122,88,99,196,104,187,179,
-215,67,75,112,240,250,220,195,254,170,255,208,38,253,56,58,166,164,133,25,240,166,43,222,180,209,192,172,65,250,
-40,61,101,16,192,189,179,91,98,79,233,217,104,212,233,54,217,15,187,157,53,27,87,0,14,54,62,237,1,166,
-27,248,219,128,64,1,126,225,16,96,87,86,224,3,6,40,24,136,32,174,31,240,228,5,191,254,82,27,222,135,
-5,190,55,224,193,187,40,113,250,23,103,132,26,199,109,8,21,94,223,143,218,123,155,219,43,251,201,59,45,84,
-28,66,231,225,156,95,127,165,179,222,211,206,130,73,65,141,229,47,149,139,109,2,55,176,117,38,166,184,131,112,
-251,131,121,123,76,45,239,117,191,198,206,46,90,8,176,121,194,218,189,91,24,52,218,48,236,87,163,206,25,22,
-160,39,70,221,161,128,8,209,237,126,67,108,247,70,100,153,155,254,131,57,87,153,248,167,227,35,23,251,18,232,
-109,199,187,77,129,162,222,46,66,131,185,64,72,194,15,198,232,188,226,253,161,48,89,48,99,120,33,41,227,241,
-206,233,255,30,53,255,110,53,239,55,254,187,115,182,35,198,56,4,180,207,21,38,35,141,6,253,161,139,216,22,
-105,69,209,34,125,50,17,42,229,215,199,208,209,11,206,180,217,70,40,170,218,163,208,87,113,7,55,59,219,172,
-209,71,176,60,26,177,237,206,237,135,116,16,242,158,54,97,123,45,27,179,225,117,50,63,244,72,86,221,240,158,
-224,11,178,92,197,207,201,180,116,89,127,48,181,85,237,220,113,124,117,66,63,79,206,133,74,54,196,226,82,113,
-203,104,193,99,174,152,78,249,111,63,191,124,162,39,133,86,92,57,208,68,104,89,14,117,101,126,8,54,229,119,
-52,231,152,181,193,13,128,26,20,80,133,250,20,227,69,38,50,159,9,11,89,176,35,185,200,130,133,194,201,214,
-139,228,9,152,135,0,90,180,209,183,217,93,234,95,141,95,107,38,153,209,147,39,115,67,177,60,181,103,104,101,
-101,85,121,224,213,75,242,124,184,179,189,117,47,216,14,158,114,199,205,68,40,30,136,44,160,42,208,213,109,24,
-8,27,208,224,113,153,101,220,128,148,23,124,72,75,151,107,19,4,193,115,238,31,148,193,163,115,93,94,228,52,
-21,239,120,30,140,114,231,10,59,216,217,201,170,205,68,155,241,65,165,37,5,227,202,242,32,56,124,249,43,44,
-236,120,111,142,201,7,210,35,183,136,42,165,140,162,248,16,86,111,111,79,170,239,214,22,92,214,194,214,76,208,
-108,117,165,31,174,84,65,102,253,138,138,34,127,139,235,44,216,88,77,22,32,132,132,11,144,48,138,62,44,3,
-216,171,135,238,201,26,201,37,178,225,52,125,46,53,117,111,158,109,2,46,37,172,247,124,115,15,56,215,203,113,
-11,183,160,188,238,190,12,94,224,140,188,76,124,159,64,182,143,113,10,19,168,64,76,87,1,99,88,160,41,219,
-188,146,235,244,63,16,81,36,146,170,63,96,70,192,52,168,82,115,3,207,124,146,190,215,78,12,13,24,201,238,
-46,250,15,136,63,50,134,222,172,94,68,53,233,250,33,196,128,249,96,171,22,16,182,250,131,78,20,109,80,218,
-34,228,55,161,92,191,218,134,140,50,194,86,151,6,90,29,96,134,200,100,253,250,5,36,92,16,182,60,100,177,
-34,237,253,221,206,94,191,11,239,10,204,73,179,179,15,243,221,254,254,125,172,73,115,185,213,197,142,44,118,250,
-184,132,54,41,71,102,209,38,37,180,137,57,45,207,72,236,191,254,128,135,127,125,137,174,61,89,230,155,157,238,
-98,183,191,241,114,49,167,197,252,134,111,119,250,163,81,1,151,47,54,167,113,209,232,117,97,253,254,104,212,69,
-141,118,247,140,20,75,215,38,132,38,111,179,12,143,253,127,60,198,185,255,231,57,190,241,127,33,238,178,36,237,
-94,93,5,79,136,194,191,16,142,47,136,198,111,137,27,42,50,137,21,230,88,99,7,54,203,198,191,108,213,59,
-110,245,58,12,4,224,245,4,144,1,14,135,207,197,156,242,34,233,110,147,38,187,255,45,41,205,137,220,143,136,
-15,67,194,150,215,200,113,69,73,101,52,227,99,124,223,129,239,177,35,51,128,215,128,142,139,213,30,230,117,39,
-254,191,19,243,249,204,204,132,222,137,28,33,1,241,66,127,140,255,238,192,124,62,35,51,192,215,208,123,4,196,
-204,213,73,249,24,127,25,182,24,200,48,84,117,158,12,95,12,168,136,148,152,62,48,98,49,46,88,82,9,26,
-78,72,110,136,121,138,119,241,100,212,100,32,83,132,110,136,147,209,187,13,180,151,193,12,121,58,32,27,98,42,
-193,211,0,108,4,186,197,196,16,122,50,160,203,81,98,33,140,210,211,1,110,136,9,13,16,60,48,108,51,224,
-162,34,170,45,15,22,95,22,40,195,233,212,158,148,207,119,202,107,248,61,36,60,59,28,50,37,159,111,146,120,
-141,190,3,18,237,130,160,78,201,231,187,4,183,196,70,24,19,153,224,116,124,190,57,228,102,200,184,152,172,78,
-138,158,12,95,140,20,184,87,52,78,6,100,58,88,130,144,226,3,194,23,226,138,16,203,34,253,84,216,86,152,
-184,51,203,234,84,244,84,120,148,89,24,235,1,97,191,101,160,75,24,45,167,131,155,129,74,6,59,112,50,106,
-49,128,160,19,46,56,25,224,94,138,153,69,193,34,79,137,46,136,195,132,89,118,50,114,49,144,116,106,89,242,
-100,64,119,29,104,141,144,76,218,132,124,253,221,138,205,181,149,123,77,195,215,155,161,94,3,24,151,138,170,167,
-89,112,50,190,206,211,136,129,98,11,197,67,167,227,235,221,97,183,131,227,162,83,218,61,78,5,150,2,78,233,
-86,9,57,37,182,36,208,212,106,210,31,32,57,29,115,136,91,103,240,201,33,219,1,105,75,74,152,60,72,56,
-41,81,208,108,164,157,16,217,149,208,203,153,170,122,66,184,33,169,234,138,206,62,33,177,28,25,162,141,234,19,
-209,171,142,48,97,152,85,158,8,232,86,152,162,224,69,63,21,240,197,112,74,154,186,202,169,208,221,70,183,147,
-21,142,233,248,249,251,103,153,141,118,5,165,204,166,227,231,205,49,59,151,1,104,84,195,176,24,63,231,55,108,
-93,58,130,110,45,62,33,63,111,144,91,170,24,151,167,209,196,253,116,64,39,4,41,98,229,158,56,33,92,144,
-11,213,214,21,33,241,32,145,95,137,56,92,121,50,176,25,42,110,173,154,221,39,164,150,163,146,4,233,125,58,
-224,27,66,9,32,205,78,70,252,42,60,4,93,44,121,128,112,73,64,105,56,194,30,32,182,55,99,238,74,73,
-121,128,96,67,0,21,133,48,251,164,232,162,36,42,43,213,251,132,244,110,132,198,217,251,190,144,127,140,152,1,
-6,3,49,16,69,111,19,137,31,20,128,221,128,30,161,128,106,138,10,59,202,38,198,0,146,61,123,179,73,131,
-130,6,248,24,207,3,60,179,227,90,11,231,82,111,3,110,109,69,23,241,110,75,156,224,121,174,50,26,126,60,
-112,238,95,249,135,41,75,235,160,159,128,181,108,83,119,239,197,35,238,5,77,138,243,65,42,25,232,253,100,26,
-196,165,99,181,172,107,200,210,255,89,193,128,138,109,77,53,195,76,153,213,49,205,220,182,9,166,103,63,13,36,
-250,15,100,175,41,87,199,15,181,198,181,30,39,175,188,255,159,2,147,6,137,192,37,157,61,164,184,59,61,110,
-167,23,1,179,187,138,5,34,146,240,102,205,199,187,31,141,0,47,222,244,92,229,191,131,145,166,207,32,52,51,
-63,74,51,225,34,61,83,236,2,204,31,35,190,103,108,2,74,247,128,87,253,133,123,233,202,128,29,149,216,222,
-176,124,61,149,98,230,96,51,102,71,74,33,61,247,128,99,75,138,59,84,78,108,217,213,113,239,164,254,168,255,
-65,31,214,174,60,138,212,22,215,74,123,229,160,202,174,61,149,81,247,218,221,71,178,165,43,181,244,35,30,46,
-106,84,230,189,185,172,20,156,196,151,130,119,221,131,195,248,185,119,226,147,243,152,199,79,190,90,153,230,254,23,
-106,195,83,150,101,80,96,141,101,243,199,145,105,150,13,49,103,223,196,116,75,41,38,18,148,58,198,214,157,235,
-135,172,40,64,238,31,191,126,21,243,134,236,124,27,23,208,232,95,68,60,254,1,196,67,160,74,20,203,152,219,
-49,85,243,34,117,12,62,250,213,212,174,115,166,192,243,198,68,249,134,36,7,237,100,177,235,18,26,227,242,46,
-227,96,232,100,32,77,114,138,2,91,98,131,104,241,235,44,62,196,246,27,149,19,64,171,170,138,107,159,140,189,
-204,199,248,147,6,241,121,123,241,91,92,150,125,242,102,33,65,189,233,185,85,137,84,183,4,175,114,35,44,49,
-16,5,90,155,40,80,151,176,243,133,25,123,216,8,5,29,199,95,181,128,208,20,219,16,70,251,115,202,43,24,
-105,57,183,186,169,152,206,40,211,206,182,145,101,52,243,220,35,35,59,50,115,176,201,106,140,145,26,30,174,223,
-5,86,214,109,110,251,82,255,91,53,68,87,21,34,60,205,13,237,248,122,61,110,110,78,169,154,154,39,213,252,
-207,199,174,233,74,22,138,179,229,188,233,216,88,30,101,203,195,25,83,198,33,187,100,69,59,86,89,168,225,147,
-246,90,176,224,16,114,49,25,162,75,80,165,89,129,200,37,180,199,77,91,87,9,153,111,83,77,173,101,152,5,
-253,237,245,171,125,173,203,67,48,29,88,108,234,134,162,132,194,115,223,189,61,58,118,137,107,213,105,173,111,108,
-204,194,246,241,11,237,159,222,246,131,14,144,244,173,53,203,184,45,152,139,170,200,60,25,34,62,100,171,50,212,
-134,52,191,189,190,182,230,143,190,155,24,155,84,26,47,41,61,55,202,182,93,242,242,142,123,195,37,223,69,60,
-69,199,14,195,187,69,108,200,202,250,64,29,81,244,251,227,161,244,198,85,253,141,26,139,124,149,166,9,135,223,
-88,169,134,48,163,10,102,212,92,105,170,33,157,210,98,2,11,149,172,70,44,180,27,142,112,67,28,223,243,45,
-8,183,87,42,142,55,140,224,191,32,183,107,20,70,193,127,0,115,40,118,143,183,185,216,49,76,103,85,165,233,
-48,155,129,43,112,174,136,123,207,136,91,255,54,242,218,15,234,37,96,199,115,79,108,116,45,178,24,3,71,198,
-44,236,243,243,216,100,241,232,24,15,46,171,218,159,70,17,114,236,185,71,118,220,194,105,15,110,200,156,214,37,
-14,214,196,205,121,223,187,200,111,72,26,210,178,132,194,8,51,54,216,46,225,132,135,56,1,131,233,167,16,158,
-250,100,214,179,96,197,196,96,119,27,154,20,123,237,216,194,248,117,57,85,152,27,36,58,1,172,190,159,226,129,
-216,23,188,159,172,223,188,185,146,87,92,179,146,195,83,143,114,144,218,115,255,46,42,39,197,186,117,193,231,78,
-213,146,19,5,56,30,22,78,125,7,85,112,40,206,174,104,150,67,232,250,248,29,137,248,63,215,254,109,69,14,
-85,201,153,161,98,22,194,82,148,158,191,98,171,166,238,55,201,15,72,171,158,226,202,154,253,141,249,248,245,179,
-171,69,222,172,180,22,168,252,245,175,239,68,194,7,69,89,105,19,129,31,127,160,113,207,253,154,135,165,4,220,
-181,221,54,166,61,195,32,180,251,188,43,141,240,11,220,140,7,218,169,121,240,187,242,249,250,232,141,135,22,25,
-212,188,247,60,191,238,70,45,176,197,142,176,176,157,157,49,244,186,5,81,236,246,130,198,23,163,14,40,65,129,
-62,101,48,139,247,70,127,252,241,151,213,118,158,169,31,110,210,115,28,116,186,77,162,4,198,66,2,137,232,88,
-131,172,19,241,41,80,236,2,155,31,137,144,25,200,192,64,70,221,163,205,155,104,173,127,181,52,34,37,56,203,
-122,144,157,251,136,174,193,125,120,8,73,179,68,59,8,244,44,232,6,182,34,199,117,27,28,6,171,57,43,32,
-152,2,78,10,68,235,225,253,81,48,131,228,140,233,0,143,105,20,5,2,154,125,168,148,142,48,237,70,65,46,
-46,2,77,19,187,18,221,27,5,98,248,54,120,28,27,62,193,152,230,140,207,163,138,5,138,22,42,80,32,217,
-152,168,185,210,144,7,21,35,1,45,75,14,65,11,32,155,56,52,245,154,166,71,246,117,215,224,147,35,152,8,
-112,78,14,200,161,72,132,22,100,31,248,57,104,150,82,231,13,84,64,158,75,70,57,121,99,86,156,35,67,159,
-12,152,184,207,145,180,179,133,246,112,118,114,241,129,185,196,237,201,245,128,203,247,163,121,158,8,78,92,75,106,
-136,211,169,1,84,87,18,130,254,191,45,42,132,204,41,111,23,77,172,51,27,21,203,203,77,34,178,121,157,83,
-57,97,133,113,218,208,206,172,152,26,41,117,51,149,117,11,49,235,214,117,253,74,239,79,45,202,206,235,235,229,
-167,134,38,137,140,102,102,3,120,255,180,147,114,255,246,235,43,238,194,190,158,180,194,68,85,97,240,145,167,147,
-9,173,33,27,125,111,67,51,93,39,211,13,50,189,75,166,247,200,244,62,153,62,168,81,191,214,159,189,88,22,
-50,187,170,4,173,175,138,190,204,168,223,151,16,165,165,40,38,245,144,136,49,187,17,163,193,79,47,57,75,50,
-162,104,94,146,82,66,189,20,63,185,40,132,42,105,10,228,104,247,181,121,14,14,97,82,113,42,201,107,40,184,
-32,6,68,83,65,182,236,63,37,85,228,21,75,160,101,239,152,37,92,168,36,3,105,194,102,70,46,73,141,22,
-250,173,67,222,40,227,51,62,208,249,209,218,141,70,85,70,234,170,28,64,31,222,191,49,112,37,58,174,20,138,
-89,69,37,240,255,179,111,157,235,145,234,72,244,85,216,60,1,177,64,67,7,122,211,115,76,248,161,6,129,245,
-13,105,37,176,221,195,199,187,95,149,68,145,125,221,247,255,56,215,57,135,82,160,84,10,96,85,228,51,187,62,
-51,1,65,154,19,154,243,172,140,224,241,54,92,2,222,58,21,199,77,85,68,196,241,67,85,38,248,110,170,90,
-153,96,233,53,90,167,251,143,151,9,43,155,105,172,175,163,3,193,156,214,146,69,248,71,127,211,57,213,230,144,
-137,236,170,110,50,81,181,181,45,245,171,137,54,56,166,130,209,69,223,162,203,253,64,71,118,29,233,91,30,251,
-7,178,196,94,152,236,197,255,42,230,199,161,82,211,36,129,12,232,98,123,76,3,76,207,52,130,150,50,173,68,
-17,149,85,201,80,241,85,191,33,105,140,239,131,165,19,48,26,170,239,11,222,124,31,199,11,76,236,84,185,138,
-89,100,174,186,222,104,252,35,211,139,226,161,183,117,73,53,21,172,108,230,36,47,104,198,76,225,145,78,135,105,
-21,183,18,182,245,93,213,54,208,204,136,182,77,53,144,45,39,188,124,166,57,79,76,110,127,162,106,110,48,87,
-227,178,160,123,43,94,162,8,107,171,87,63,68,214,188,36,67,131,39,78,21,186,228,48,167,232,90,12,173,103,
-84,196,79,187,173,135,78,77,57,203,147,235,80,123,82,165,169,100,77,68,252,250,117,86,5,227,98,54,176,247,
-156,149,213,162,218,48,125,19,51,219,99,221,222,238,127,8,154,49,89,200,182,40,168,184,119,9,151,117,78,239,
-81,206,101,67,120,195,138,94,159,249,252,191,173,26,102,39,185,157,36,246,38,111,217,79,194,78,121,214,10,102,
-155,92,130,129,213,235,118,170,182,117,59,161,150,179,140,149,73,55,1,85,110,183,185,93,176,178,237,160,116,61,
-221,154,22,238,69,106,194,105,94,101,179,203,199,209,38,152,30,24,120,147,123,61,56,35,19,29,250,205,150,39,
-157,3,199,225,185,165,186,170,166,49,111,238,145,119,29,38,248,75,76,15,52,69,87,251,94,30,113,128,163,71,
-84,249,56,122,186,184,21,82,105,234,138,151,13,19,125,148,112,9,137,41,65,98,120,227,175,231,69,102,203,231,
-204,126,230,9,171,236,152,170,48,151,54,109,19,94,217,60,21,180,96,54,43,110,44,177,205,123,20,227,173,212,
-55,112,157,35,11,158,36,57,3,151,198,93,87,208,87,156,249,32,163,44,66,218,156,77,125,71,143,38,234,62,
-217,123,203,29,92,42,65,251,203,140,188,70,150,123,221,35,238,72,152,252,146,211,134,161,120,129,77,58,81,53,
-10,24,77,249,131,189,224,21,104,142,98,243,6,60,208,222,220,190,143,118,77,75,96,39,227,62,26,188,84,163,
-238,103,85,21,136,200,88,84,121,78,100,73,107,34,27,193,227,166,100,82,70,112,240,242,202,11,222,220,141,44,
-19,52,225,12,146,186,168,10,50,78,82,214,138,125,230,244,109,178,169,54,92,37,18,94,210,28,77,153,83,249,
-196,18,242,147,137,10,177,178,45,152,170,22,49,99,112,133,98,143,111,196,130,198,243,114,4,220,21,94,74,214,
-44,16,147,155,134,200,176,220,250,117,203,153,8,183,254,146,166,233,68,34,42,178,219,135,240,98,121,7,215,242,
-131,163,245,79,203,9,63,110,92,96,150,182,92,245,249,23,87,125,76,146,55,184,223,135,77,233,44,217,208,183,
-188,21,216,190,155,128,16,55,247,242,58,174,213,5,149,205,236,190,220,117,228,32,240,212,50,140,195,1,225,37,
-12,44,180,36,76,231,51,86,178,154,83,52,18,81,213,88,237,1,130,89,14,96,172,215,18,220,86,16,169,77,
-77,145,216,86,25,153,157,186,35,133,141,88,195,152,196,214,248,186,149,72,96,115,251,40,66,232,87,82,248,149,
-20,20,249,43,41,252,74,10,142,20,4,142,178,186,49,152,233,77,86,121,219,176,235,184,227,198,101,7,252,57,
-174,236,112,245,71,0,173,84,165,210,92,117,150,89,147,92,227,156,215,145,96,113,243,193,181,245,167,122,8,243,
-196,27,166,35,28,86,143,47,130,214,171,243,156,222,193,146,183,117,233,29,220,85,78,28,34,189,99,54,147,196,
-197,93,165,114,149,179,180,81,0,252,2,19,238,14,216,250,247,4,248,3,224,132,130,21,189,3,199,12,174,222,
-136,186,198,240,193,64,246,39,9,221,238,167,222,146,190,70,161,82,20,55,226,185,195,26,154,12,69,251,70,172,
-185,227,138,11,144,241,87,196,116,77,176,98,60,67,228,211,37,186,69,120,129,152,240,69,67,138,102,86,51,104,
-130,63,35,252,57,113,24,225,96,1,79,250,133,124,130,23,114,15,209,227,2,29,212,122,165,187,92,247,246,14,
-47,97,147,53,162,198,236,157,52,103,175,35,8,6,42,201,130,65,76,11,76,204,45,150,193,10,36,62,110,0,
-77,53,0,249,230,132,35,120,244,17,30,49,207,25,176,23,114,233,76,84,250,19,244,237,171,127,86,73,245,219,
-119,164,192,50,196,193,157,19,96,33,225,47,8,127,32,210,54,207,187,105,89,223,255,239,7,187,235,173,130,180,
-96,3,171,162,174,155,246,247,38,17,124,56,28,221,132,101,31,251,222,161,37,47,20,66,180,212,24,48,30,192,
-180,60,105,65,207,80,97,241,50,229,37,135,161,99,246,43,100,216,200,172,247,53,142,57,85,32,208,109,227,182,
-180,149,76,16,67,68,64,152,3,207,13,186,6,122,103,218,207,46,29,78,248,228,111,3,46,108,140,6,34,170,
-151,78,255,145,112,193,204,60,168,32,67,194,228,177,38,99,253,52,161,119,96,155,44,73,204,116,163,245,246,138,
-104,40,50,80,239,192,113,46,79,239,40,65,19,143,134,215,178,27,107,94,24,43,55,58,157,210,144,237,157,140,
-214,196,235,212,207,8,67,7,16,223,32,19,112,48,192,105,66,2,133,224,80,210,71,44,44,49,129,50,164,73,
-88,120,180,50,186,168,143,250,117,146,228,217,82,128,133,32,255,186,118,128,101,26,20,201,49,217,35,65,18,189,
-122,233,22,167,236,6,67,137,10,240,111,127,241,206,222,197,163,223,190,47,214,148,227,116,228,45,79,238,96,137,
-225,7,150,31,90,62,44,48,158,169,248,176,115,217,199,143,139,18,110,238,237,112,59,255,129,18,188,211,209,242,
-78,23,203,59,7,15,21,2,19,49,241,93,247,241,38,248,23,203,63,120,234,59,124,164,0,68,136,255,70,17,
-142,191,145,30,222,146,30,54,210,224,45,105,160,164,25,172,87,24,57,142,173,203,22,45,91,31,246,65,235,14,
-39,235,114,217,180,45,91,180,43,195,78,123,220,45,118,218,67,142,195,63,224,55,80,126,67,87,125,123,191,235,
-87,47,64,30,247,26,134,22,126,191,233,21,134,49,46,136,112,88,213,175,196,115,17,53,211,181,153,125,175,136,
-233,169,26,64,212,251,75,249,158,122,18,7,75,177,183,213,122,40,13,87,82,199,223,120,54,40,94,112,92,95,
-176,171,31,228,119,226,161,92,79,247,43,239,184,182,241,39,185,187,208,251,206,158,222,159,220,251,11,249,174,122,
-18,31,150,226,211,174,26,111,145,192,174,217,246,2,28,28,226,140,160,255,54,7,115,6,25,104,89,204,158,132,
-56,103,83,22,30,236,111,189,189,202,185,124,71,173,165,90,82,176,132,183,197,226,209,80,232,186,189,211,214,53,
-19,49,149,108,125,248,63,18,67,89,183,92,5,179,9,114,176,231,97,62,197,182,107,193,39,70,245,74,10,113,
-13,182,25,135,39,215,125,207,155,26,32,199,208,58,123,143,57,188,188,239,208,59,89,126,96,29,46,15,56,100,
-172,36,225,251,30,15,129,229,93,84,86,11,222,117,41,88,242,136,67,95,213,238,120,134,175,247,28,222,89,158,
-87,47,36,120,192,39,228,48,55,176,124,239,81,167,15,85,52,208,83,225,251,21,93,207,38,8,78,115,9,42,
-142,110,135,184,115,236,29,8,70,179,37,51,233,83,118,51,164,30,254,103,62,210,148,189,78,181,246,124,106,181,
-87,143,76,7,52,229,121,174,159,153,254,96,215,153,231,134,23,48,124,241,5,133,40,110,111,60,38,55,246,147,
-51,241,193,9,108,215,118,124,219,251,56,191,36,105,141,227,200,241,66,217,59,250,124,252,219,184,199,28,206,203,
-113,89,55,246,214,0,124,188,110,119,165,232,66,239,54,191,125,253,141,157,235,80,146,27,132,161,191,194,212,44,
-87,49,6,182,228,67,210,123,159,146,222,219,183,7,43,111,86,112,43,219,226,198,201,180,235,119,200,226,137,166,
-202,216,15,190,254,108,55,164,90,243,163,123,238,172,176,212,204,249,217,138,247,229,105,152,229,169,212,12,248,190,
-40,248,224,18,150,108,165,95,58,203,47,251,173,232,233,47,81,219,7,68,169,248,217,117,235,157,155,237,72,237,
-218,185,173,241,93,159,191,183,83,174,29,203,1,199,66,33,192,130,142,7,192,139,189,253,72,177,32,210,185,204,
-124,255,228,84,1,116,112,224,175,229,207,123,35,151,111,174,143,74,155,35,243,55,159,177,210,165,183,187,113,59,
-34,140,248,188,27,230,99,31,21,28,139,122,170,84,238,222,75,71,78,118,204,72,212,172,14,36,56,221,58,189,
-217,0,134,210,52,133,214,64,66,211,160,20,12,221,129,50,101,189,190,170,101,67,235,160,47,74,216,6,150,87,
-204,242,178,76,156,115,182,198,209,39,72,66,242,217,202,52,26,118,153,81,86,128,228,244,232,147,85,200,99,59,
-158,194,187,8,8,164,226,166,129,196,12,154,61,169,137,23,91,209,112,194,249,105,91,77,162,180,246,128,225,149,
-159,79,182,3,174,102,181,53,20,54,116,59,148,188,165,21,88,125,51,150,160,66,101,172,183,207,178,254,199,75,
-131,126,211,127,167,248,239,238,110,249,176,85,1,9,127,178,5,211,123,211,165,222,172,195,229,48,161,43,139,178,
-154,202,178,10,197,56,186,29,192,97,193,158,182,2,115,245,184,61,17,90,179,176,6,169,70,94,50,250,63,19,
-134,146,29,53,23,245,60,52,223,170,219,169,31,170,106,220,4,129,75,124,22,20,176,48,69,59,81,80,140,48,
-184,11,89,124,217,224,214,156,44,32,29,6,136,39,104,229,102,125,44,119,203,10,250,74,53,183,169,230,201,249,
-132,86,233,157,107,80,103,93,88,83,244,232,99,63,171,206,100,88,104,150,86,220,62,152,33,206,236,214,126,2,
-119,247,234,195,234,108,120,247,153,161,159,119,119,69,226,212,7,31,125,186,123,207,170,253,145,62,153,126,109,250,
-141,124,16,20,144,253,163,254,113,255,164,5,50,110,76,182,131,201,93,26,242,89,120,150,158,61,110,129,244,126,
-99,124,239,96,43,218,81,201,50,38,231,244,136,235,104,54,49,155,167,118,184,42,123,108,199,210,199,2,239,139,
-42,59,111,181,38,77,78,207,79,239,184,23,194,110,211,64,241,110,211,67,237,211,82,90,24,78,80,53,193,20,
-90,219,254,152,186,19,123,200,77,105,140,178,112,97,231,178,52,66,193,66,200,211,200,64,124,4,20,64,194,206,
-87,3,145,213,157,69,96,107,218,142,192,9,38,17,230,44,29,242,241,237,78,28,203,224,156,21,174,142,82,119,
-69,195,200,58,196,68,254,92,183,102,225,101,62,107,213,178,252,111,49,64,58,237,156,229,60,93,119,248,220,116,
-120,61,166,106,54,227,29,189,168,44,0,186,209,159,82,216,1,253,41,157,138,192,237,210,33,184,140,14,243,94,
-142,27,248,90,67,47,143,28,140,42,116,97,228,139,6,160,140,93,250,56,144,67,118,176,54,206,181,136,209,59,
-147,2,118,251,34,82,192,223,250,67,201,85,36,68,20,67,177,171,132,183,254,110,88,59,200,26,46,128,187,195,
-184,28,159,151,10,174,227,243,181,77,189,77,242,207,96,84,21,202,162,68,91,253,16,12,42,216,130,104,13,48,
-121,52,13,55,20,57,193,121,7,120,243,90,150,134,253,208,250,30,34,78,18,130,187,124,93,183,31,42,237,67,
-112,221,77,130,30,110,41,77,97,46,110,103,241,82,113,166,25,142,154,4,207,106,66,96,51,33,242,158,240,249,
-142,36,43,129,196,8,188,103,57,224,45,43,34,220,21,48,202,95,199,226,241,225,73,111,73,219,190,181,60,159,
-207,231,217,188,166,107,95,78,191,174,92,143,16,4,197,106,93,9,252,164,178,255,77,31,244,237,254,194,74,1,
-102,38,125,9,56,107,111,133,67,34,129,159,188,183,162,204,19,182,152,78,89,22,183,166,225,154,213,203,6,14,
-144,212,132,209,138,171,33,222,109,166,99,97,220,30,33,122,203,134,145,158,25,168,166,27,23,86,118,171,18,101,
-117,186,138,85,20,208,159,105,151,85,229,106,186,146,181,157,228,61,195,248,4,204,115,197,187,135,52,117,127,223,
-161,239,240,139,52,147,119,200,193,17,169,224,88,94,1,197,144,122,59,253,235,126,188,88,68,86,235,193,241,109,
-95,67,94,102,149,252,5,231,119,128,174,52,5,199,31,47,232,87,85,241,10,127,87,188,0,241,69,222,122,9,
-26,224,129,97,170,164,35,53,57,182,66,113,104,255,226,34,166,212,51,157,229,129,194,58,14,132,225,171,248,2,
-18,30,85,235,60,161,4,200,163,99,224,157,126,191,15,153,44,97,89,192,158,209,52,255,211,148,252,244,198,2,
-254,137,51,215,163,71,94,159,36,155,122,94,247,28,47,192,228,121,156,121,29,53,211,106,158,150,203,103,230,5,
-29,127,255,196,202,253,136,192,167,228,146,134,62,235,35,127,204,175,50,255,170,57,110,131,28,255,53,153,26,180,
-111,132,145,35,93,45,183,87,138,220,19,40,82,5,154,180,229,235,56,63,105,248,135,18,128,161,195,0,213,88,
-26,173,140,115,234,10,27,130,79,224,130,186,168,190,84,143,164,8,68,21,12,23,89,113,108,63,102,67,179,174,
-217,245,107,214,63,81,1,223,52,234,26,181,20,53,205,220,49,25,160,138,154,175,157,197,24,232,128,87,95,15,
-122,235,151,10,25,75,169,227,157,230,248,203,124,254,182,237,127,91,84,58,53,243,10,191,83,192,189,83,165,26,
-240,61,247,119,61,115,200,230,245,78,95,190,190,177,40,90,191,83,15,184,139,108,254,254,169,65,171,9,114,21,
-28,81,18,4,22,252,229,18,112,207,241,114,2,154,213,75,84,194,6,213,36,115,33,58,61,198,65,116,153,118,
-32,199,179,146,93,180,60,233,20,118,141,56,29,163,9,13,141,100,134,131,100,155,59,161,135,204,74,86,252,109,
-161,249,98,164,19,75,191,92,125,19,160,105,207,55,119,23,202,194,68,136,155,139,102,60,5,69,32,115,115,168,
-150,16,65,35,164,122,110,89,223,28,62,21,109,169,4,209,186,12,3,81,146,82,242,84,60,94,194,15,192,24,
-147,134,233,101,224,135,11,253,141,213,252,126,217,28,175,126,167,70,33,168,230,200,227,38,42,117,112,132,210,32,
-219,233,71,58,8,31,166,11,123,88,191,98,90,114,101,230,41,236,238,0,197,22,12,225,109,110,23,222,148,194,
-13,208,206,117,106,119,1,49,242,167,92,230,215,5,22,155,27,187,130,145,154,213,142,196,80,146,170,99,91,78,
-91,245,244,163,184,77,155,225,37,186,9,12,0,239,227,191,138,161,210,115,28,22,95,198,151,194,137,117,127,142,
-233,171,96,214,28,27,42,9,202,133,17,45,240,21,75,119,185,185,67,214,84,57,56,190,233,178,192,54,17,77,
-151,18,128,68,222,40,199,43,237,49,25,60,51,57,101,210,139,133,75,86,240,101,178,40,135,211,16,196,42,64,
-218,156,125,177,236,77,100,56,193,89,106,92,63,193,112,56,242,123,39,225,141,88,143,181,41,24,68,40,87,240,
-144,210,94,135,40,5,182,250,72,189,54,171,54,182,126,193,184,50,49,240,152,155,184,177,207,158,52,19,241,243,
-231,70,74,241,165,93,73,242,146,149,159,199,32,2,207,39,132,203,128,223,197,53,57,128,140,186,236,165,180,243,
-114,220,79,125,237,92,177,73,186,155,135,203,64,211,165,134,3,245,114,169,121,164,139,186,213,194,212,198,100,148,
-82,181,192,14,132,187,202,83,80,37,7,101,115,194,83,11,17,97,120,190,110,7,220,169,39,84,39,9,66,137,
-101,138,173,157,156,181,235,55,66,144,59,180,69,68,80,178,144,190,205,254,142,14,23,231,93,64,134,157,249,236,
-89,177,218,188,88,230,159,78,36,13,150,27,118,167,216,63,15,135,43,224,18,59,28,77,67,104,221,53,222,14,
-208,253,171,150,74,248,185,125,69,130,32,130,49,189,142,90,28,160,167,89,0,53,72,169,248,200,137,201,13,84,
-224,172,111,70,13,66,92,214,158,249,226,72,170,218,156,137,56,116,70,97,208,101,12,231,22,122,175,9,54,200,
-183,116,119,196,142,52,131,180,135,150,162,5,188,152,186,84,49,241,180,79,216,87,5,193,107,83,236,77,23,119,
-237,165,136,201,45,186,153,151,231,151,192,140,199,164,12,33,91,26,220,168,206,128,189,132,97,144,204,111,203,88,
-222,79,170,238,156,191,28,111,167,97,41,200,237,80,128,19,231,238,229,225,134,214,176,247,201,242,166,129,250,227,
-238,151,233,79,146,145,84,77,51,45,78,139,187,229,224,216,144,234,164,32,152,119,93,224,173,86,245,214,184,42,
-109,183,28,222,14,120,237,118,201,9,228,113,148,215,247,81,118,202,37,53,82,165,167,83,161,196,211,247,41,218,
-202,25,69,170,61,235,57,188,49,73,197,118,221,224,240,83,212,210,62,54,40,243,41,5,55,168,132,103,249,34,
-178,144,58,174,149,103,79,118,72,241,29,66,242,198,194,79,106,149,185,13,225,28,209,48,208,51,186,69,202,89,
-200,245,185,229,164,197,10,197,73,179,186,91,234,87,19,28,117,130,117,49,88,45,23,235,136,108,110,67,32,73,
-74,96,121,65,64,251,243,135,45,56,205,28,34,0,159,142,168,170,251,253,80,167,215,165,9,49,65,11,154,202,
-40,60,191,208,110,90,217,176,117,54,65,151,89,163,20,205,75,112,74,167,134,201,19,223,30,155,113,85,159,43,
-104,236,227,240,85,55,55,204,124,223,106,237,8,2,59,16,255,180,119,220,93,138,227,190,255,247,83,232,151,223,
-245,59,7,108,28,200,108,239,189,247,190,155,217,201,13,243,142,5,94,166,207,167,63,203,10,70,194,217,169,183,
-203,21,30,143,98,197,13,91,150,37,89,146,25,119,228,153,120,193,124,215,193,99,40,158,12,231,194,145,169,95,
-91,57,39,131,144,53,178,249,92,94,18,140,190,229,204,52,54,118,197,223,172,4,5,144,195,48,40,197,50,224,
-41,92,72,34,128,50,97,39,100,220,151,152,123,39,73,113,106,8,11,164,139,168,191,212,155,90,173,248,14,34,
-51,96,240,42,23,110,248,0,194,146,15,188,136,44,206,171,8,84,159,53,241,68,168,129,155,252,0,26,149,2,
-90,91,2,250,158,192,116,228,48,14,154,55,107,23,98,18,19,76,73,59,252,142,32,161,159,111,106,181,73,13,
-15,237,71,79,234,255,26,160,97,50,142,37,192,114,9,10,127,255,21,2,172,78,179,227,138,176,131,205,79,206,
-217,27,232,107,18,45,128,203,178,218,111,61,55,187,133,1,67,167,111,202,253,218,210,12,0,238,87,95,27,14,
-80,230,185,35,90,119,169,48,174,155,179,227,209,96,23,59,1,222,249,195,181,172,45,24,112,31,57,152,54,228,
-46,11,107,211,61,48,91,93,14,115,27,7,232,76,117,240,5,29,33,70,179,153,24,23,67,9,2,160,75,193,
-124,148,65,153,185,37,115,35,132,22,138,128,121,255,126,186,1,141,34,80,249,101,20,130,34,133,113,172,131,53,
-66,225,130,142,141,221,212,250,72,249,248,145,174,238,37,48,26,214,193,212,18,22,167,232,39,31,179,233,103,190,
-182,91,114,237,146,78,70,194,24,69,65,103,186,61,135,36,161,19,222,254,27,215,136,14,43,119,234,138,1,194,
-183,34,160,182,60,229,129,8,194,87,77,164,175,133,47,193,107,91,101,222,10,83,59,17,128,169,140,34,59,78,
-144,142,67,192,76,163,97,91,145,111,83,180,16,199,231,175,86,197,42,20,195,21,192,161,1,12,211,227,168,95,
-213,58,239,49,35,34,119,140,158,17,76,30,4,192,212,170,25,102,204,84,147,243,163,138,106,118,149,174,225,243,
-17,144,47,18,143,199,117,182,53,198,30,206,7,155,130,126,41,66,47,218,45,100,134,128,109,15,235,136,40,251,
-108,100,227,58,203,81,183,50,11,222,107,17,232,207,9,253,16,214,43,195,152,134,106,217,204,99,121,35,81,75,
-78,99,114,94,12,185,208,167,137,237,66,108,20,222,1,10,177,202,228,12,171,226,42,200,119,14,150,191,180,65,
-161,248,144,69,219,142,172,79,14,99,8,174,55,105,130,217,30,81,117,162,5,36,230,187,168,63,155,184,89,127,
-159,156,151,83,44,166,84,140,174,136,254,40,70,23,7,83,246,209,85,204,146,98,72,69,237,49,246,60,193,152,
-139,251,34,143,140,202,216,140,59,241,236,16,43,36,48,231,56,123,175,101,202,99,59,111,229,177,116,35,224,91,
-174,147,20,51,200,211,174,41,44,88,191,159,122,21,71,174,220,71,15,2,12,249,86,252,41,51,249,15,6,107,
-83,182,0,160,74,100,38,148,248,51,94,147,106,106,174,141,217,186,175,197,174,188,4,218,0,190,172,178,241,166,
-124,86,208,191,103,227,21,100,90,107,28,113,8,125,74,162,152,100,87,145,202,33,105,61,151,132,40,126,63,253,
-156,212,180,115,121,14,12,108,237,79,115,100,70,182,227,202,50,7,155,136,169,181,184,97,27,207,212,34,154,55,
-113,182,102,14,156,237,81,215,150,182,97,109,225,239,249,174,45,201,213,22,149,27,72,239,86,150,112,134,18,53,
-127,170,167,122,224,222,146,253,68,172,190,153,53,49,153,55,70,112,217,241,3,167,34,158,81,146,68,70,19,41,
-60,243,62,20,177,196,231,71,163,135,230,95,74,15,131,15,20,159,39,163,211,30,170,22,84,174,180,101,82,72,
-39,181,254,212,37,7,109,47,5,48,160,19,83,95,72,39,88,94,117,94,207,74,24,75,91,118,22,164,123,253,
-180,173,155,232,216,116,166,36,119,130,11,54,17,68,110,88,238,140,29,31,88,174,208,196,75,26,39,43,20,49,
-212,197,48,236,172,55,177,55,162,161,135,3,87,174,4,23,116,28,138,213,98,109,216,208,208,130,152,218,127,23,
-49,93,16,211,39,20,246,114,95,14,147,178,28,89,60,105,39,135,145,28,100,193,152,52,107,8,110,177,1,201,
-89,148,11,137,20,227,253,68,210,72,38,22,101,33,12,197,33,88,245,230,241,33,99,245,230,1,154,178,221,93,
-47,111,183,165,100,180,255,16,201,160,21,13,236,124,36,184,203,52,248,107,8,240,110,5,1,142,197,105,26,88,
-252,87,225,50,134,73,151,124,168,23,152,9,9,226,85,35,142,76,48,41,82,120,7,75,2,23,139,121,131,85,
-70,13,137,54,73,51,40,130,205,154,133,197,52,70,82,12,9,109,50,229,131,25,162,28,209,34,217,84,99,47,
-228,160,227,240,141,198,136,93,224,111,175,112,147,88,37,53,166,150,43,231,175,175,85,159,183,139,202,169,48,40,
-211,65,101,29,114,222,93,219,112,59,227,245,39,208,130,39,15,111,93,191,254,132,149,21,179,72,141,196,50,235,
-183,66,174,171,104,201,245,236,214,1,184,53,40,150,203,193,164,15,147,120,79,192,130,255,200,166,165,190,74,244,
-33,210,252,124,154,92,92,142,152,27,95,103,62,25,212,128,203,117,152,44,24,151,77,53,11,13,197,18,244,85,
-38,84,20,88,72,197,219,44,193,197,94,203,32,194,95,129,112,170,241,105,30,41,233,75,182,165,134,221,158,59,
-212,144,239,76,228,119,212,144,71,184,220,128,7,5,215,206,55,63,254,248,142,64,193,35,154,146,222,163,25,29,
-154,39,143,113,167,18,128,229,85,81,227,140,51,175,128,214,9,241,15,9,212,87,182,254,181,29,126,73,143,88,
-26,5,105,181,47,71,130,123,154,5,69,142,68,74,143,132,251,175,20,220,21,191,234,114,121,92,46,143,70,27,
-77,171,229,248,236,77,206,216,155,124,206,236,141,140,106,128,51,129,209,156,26,187,170,19,112,157,236,36,176,75,
-137,106,199,183,91,185,164,17,76,79,15,180,126,222,43,50,200,106,221,137,118,95,91,65,67,50,15,82,51,119,
-162,34,189,145,36,85,145,143,79,72,86,22,100,133,134,241,232,116,5,148,18,192,126,197,25,84,102,221,15,211,
-83,146,164,245,205,54,238,155,69,181,130,76,9,220,186,250,245,200,209,130,28,225,142,178,160,73,11,154,52,23,
-154,4,74,205,79,50,152,72,61,240,156,172,230,255,115,84,102,65,101,22,84,102,65,101,14,56,228,126,54,198,
-64,236,101,179,10,242,120,234,198,2,250,85,249,59,145,145,117,71,71,74,188,2,119,136,183,65,166,227,106,148,
-0,221,126,122,46,113,215,237,22,195,63,146,102,2,136,22,112,52,60,76,75,69,163,38,157,138,99,5,62,83,
-112,69,177,64,97,178,46,177,195,255,58,226,103,17,83,132,30,219,155,189,186,239,44,205,117,39,28,35,105,7,
-53,189,12,252,231,93,244,150,24,248,12,224,51,79,179,1,207,166,29,88,15,124,14,85,87,39,243,41,202,103,
-52,214,71,89,168,245,217,118,85,168,112,230,32,43,131,206,150,141,20,238,189,25,88,7,178,254,76,46,12,44,
-209,23,196,57,86,75,79,148,164,24,4,28,48,114,165,36,151,97,37,108,140,224,26,97,108,125,197,45,40,184,
-81,110,64,225,79,250,241,241,178,195,62,127,61,163,251,130,207,163,170,252,159,84,91,159,4,181,12,67,173,121,
-31,98,6,218,89,7,121,7,31,202,93,216,83,162,83,214,86,151,77,176,251,117,51,227,105,101,158,231,12,83,
-92,186,223,109,54,161,204,0,67,29,209,199,18,102,241,143,119,180,123,212,78,96,199,184,127,162,19,216,197,180,
-117,223,46,45,76,39,229,102,252,111,98,103,246,245,93,187,103,211,204,187,37,160,95,148,95,171,93,101,32,195,
-247,122,39,237,89,149,102,152,250,148,246,180,74,115,235,45,246,117,71,165,237,37,180,127,215,133,75,229,224,63,
-218,248,242,64,124,186,39,13,86,77,109,176,90,24,3,102,58,153,206,233,38,187,132,158,43,57,208,39,61,192,
-76,228,75,96,20,26,231,160,139,6,58,187,185,210,105,39,3,250,172,141,115,192,136,166,238,249,35,54,187,158,
-102,153,171,189,221,1,163,44,186,142,161,101,124,59,71,118,12,223,209,97,119,182,149,173,99,118,229,202,129,117,
-255,23,115,43,44,7,109,149,225,59,224,138,52,48,111,21,209,230,40,126,210,7,130,208,53,249,188,115,91,198,
-107,46,207,159,250,19,178,188,1,176,11,153,0,0
-};
+const uint8_t ELEGANT_HTML[40500] PROGMEM = {31,139,8,0,159,33,231,102,0,255,237,189,121,127,219,70,146,55,254,119,230,243,153,247,0,51,27,153,180,0,8,55,47,209,89,219,137,39,222,245,145,95,108,103,14,71,147,5,73,144,68,12,18,28,128,212,97,153,243,218,247,91,213,141,147,144,68,101,51,179,207,243,252,134,39,208,71,117,117,93,93,221,93,0,78,31,76,227,201,230,106,29,40,139,205,50,122,252,251,223,157,210,191,18,249,171,249,168,21,172,90,72,81,148,211,69,224,79,249,8,199,203,96,227,43,147,133,159,164,193,102,212,122,255,238,185,214,107,41,39,149,220,149,191,12,70,173,243,48,184,88,199,201,166,165,76,226,213,38,88,161,244,69,56,221,44,70,211,224,60,156,4,26,159,168,74,184,10,55,161,31,105,233,196,143,130,145,169,27,37,104,155,112,19,5,143,159,250,155,77,144,92,41,223,46,183,145,191,137,19,229,205,187,39,202,251,245,212,223,4,167,39,162,8,240,78,39,73,184,222,136,154,126,122,181,154,40,179,237,106,178,9,227,21,176,13,38,31,179,218,111,55,254,102,155,254,16,140,227,120,211,238,40,215,162,169,236,5,84,211,141,2,208,190,50,82,252,11,63,220,40,243,96,243,13,206,219,15,79,254,16,108,158,135,201,242,194,79,130,23,171,89,252,176,51,172,86,14,103,74,155,170,50,212,47,240,2,109,183,75,244,92,7,140,111,163,128,14,159,94,189,152,182,31,206,36,152,31,131,36,5,134,15,59,250,38,184,220,60,19,116,66,203,4,69,207,10,161,149,91,129,129,23,83,198,233,155,102,56,89,254,93,112,18,166,73,184,154,107,196,48,63,92,5,9,0,78,34,63,77,95,134,233,70,247,167,212,88,56,157,6,64,248,46,96,146,231,21,0,73,176,140,207,131,82,67,111,10,64,73,0,121,250,17,34,211,238,12,233,188,74,217,157,18,68,105,80,103,22,189,78,78,10,185,88,197,27,37,94,69,64,92,85,62,6,193,90,33,254,161,153,253,90,104,235,93,184,12,226,237,166,125,163,112,168,138,101,24,70,103,72,77,60,163,66,138,63,7,81,32,176,138,5,0,232,224,52,173,97,89,156,238,208,173,92,254,210,141,159,108,4,208,111,103,193,4,98,199,242,241,171,25,145,209,177,194,139,123,113,130,89,89,103,3,208,111,70,250,143,32,163,192,89,170,71,120,110,146,112,221,212,98,186,157,76,130,52,125,22,71,219,165,68,15,31,210,142,7,84,181,132,135,236,95,90,244,69,234,78,137,65,117,234,169,138,201,124,169,21,187,133,143,110,86,30,61,172,50,6,102,226,59,110,248,25,161,36,204,193,129,157,92,39,241,28,66,91,233,101,94,211,186,173,166,207,141,167,79,183,155,13,254,184,166,36,207,129,212,81,184,9,61,221,92,69,129,62,13,211,117,228,95,141,30,142,163,120,242,241,33,245,50,87,150,27,74,174,226,85,192,5,5,57,4,214,241,56,13,146,243,32,1,230,171,224,66,121,181,5,9,129,230,27,153,220,6,113,70,143,37,115,234,100,35,225,161,159,42,164,231,48,237,233,156,13,53,132,236,16,184,117,145,203,224,214,236,121,102,145,147,0,204,14,207,131,239,253,205,66,90,242,13,198,9,105,37,4,50,96,209,26,7,65,110,206,103,193,102,178,168,86,149,102,156,56,144,21,215,227,143,29,160,196,104,53,140,9,121,177,95,210,120,5,60,201,70,124,79,67,98,209,158,159,42,255,241,246,205,107,2,144,4,155,109,178,98,8,82,10,201,162,77,124,32,162,180,131,36,137,147,124,28,58,57,161,214,98,112,139,211,219,15,159,19,186,10,159,12,30,170,226,32,67,88,194,93,109,163,136,83,36,63,47,194,213,52,190,208,97,9,99,127,10,148,11,10,71,193,70,201,70,3,101,212,106,17,54,148,150,141,52,50,233,150,17,79,223,44,130,21,15,114,57,215,234,163,222,111,57,232,253,54,99,30,232,242,5,203,17,153,161,95,175,221,153,92,235,242,128,213,85,85,174,21,248,39,73,56,222,110,130,116,0,1,220,98,244,201,83,158,135,17,124,151,129,242,225,33,171,245,195,51,69,32,114,152,165,104,48,164,205,202,85,70,201,250,117,40,145,228,156,156,144,55,6,10,38,31,149,109,248,251,223,229,136,101,7,18,187,218,72,210,162,10,45,2,2,19,228,71,111,97,128,253,121,64,162,66,126,32,103,34,239,244,164,236,162,41,210,97,83,200,249,28,181,150,241,116,27,5,112,21,147,56,77,227,36,156,135,43,148,107,103,42,143,209,71,80,108,54,202,113,154,36,1,60,64,137,81,187,133,97,31,56,96,108,140,8,175,97,56,107,207,142,142,102,122,186,93,147,19,154,150,143,219,178,185,53,10,67,69,90,157,142,208,164,225,12,26,39,218,241,149,120,86,240,229,111,91,248,159,111,131,8,163,79,156,60,137,162,246,67,106,237,3,170,103,152,103,160,206,96,163,167,109,191,51,108,180,117,254,232,241,117,209,198,132,218,240,59,192,116,162,51,21,70,163,214,100,17,70,83,234,64,171,83,20,12,169,224,132,72,29,76,95,199,211,32,237,132,250,198,159,191,38,55,27,117,94,190,120,253,159,173,163,163,144,250,78,231,85,140,142,142,166,237,176,179,235,20,34,34,123,165,94,231,141,13,30,24,106,186,29,111,146,32,192,33,196,161,24,33,209,23,73,250,201,232,122,55,148,38,199,215,67,168,219,60,9,55,87,71,71,64,63,63,27,149,114,58,170,15,148,102,48,89,65,242,125,28,133,19,81,182,154,132,10,213,4,170,197,82,240,134,165,128,58,180,77,3,13,220,198,120,67,51,133,180,245,245,132,152,159,157,142,90,225,106,18,109,167,65,107,176,87,211,199,80,119,181,140,183,251,117,226,101,184,105,13,106,137,41,40,170,9,233,107,169,147,93,78,5,226,232,53,248,228,235,193,58,147,21,58,30,61,48,134,25,113,136,82,67,49,184,192,252,160,79,234,164,179,219,117,48,56,52,40,5,80,99,181,248,252,249,65,187,197,73,232,132,82,46,216,57,58,146,118,124,73,227,196,171,96,26,250,237,86,27,92,5,177,82,56,134,81,156,96,206,68,85,7,172,176,29,8,63,23,13,210,175,115,30,31,166,184,234,77,6,136,243,95,65,226,216,255,29,199,151,104,131,253,172,96,138,174,119,6,135,180,35,157,213,255,81,83,102,103,120,159,122,232,218,183,231,40,64,237,7,112,158,219,173,9,36,235,99,75,45,153,147,95,129,199,189,201,122,163,53,252,85,148,107,130,22,133,243,5,76,69,89,99,159,180,163,206,181,84,211,232,232,40,210,127,254,57,72,209,33,152,132,163,163,55,227,95,96,195,116,140,110,155,152,76,14,198,201,244,205,197,234,251,36,94,7,201,230,74,71,11,81,59,82,91,211,96,230,111,35,64,254,58,210,229,241,32,218,157,251,137,242,114,116,29,92,178,21,29,92,239,118,234,101,229,116,88,54,216,84,26,246,241,201,211,103,223,124,251,252,15,223,189,248,143,255,124,249,234,245,155,239,255,191,31,222,190,123,255,227,31,255,244,231,191,248,227,9,96,207,23,225,47,31,163,229,42,94,255,45,73,55,219,243,139,203,171,79,134,105,217,142,235,117,123,253,227,19,112,109,116,13,124,163,65,14,59,85,167,121,23,211,211,211,233,231,244,241,227,199,182,165,77,119,42,10,38,55,22,164,34,92,22,5,131,21,20,106,85,42,202,10,158,146,207,157,98,192,36,67,63,26,189,222,46,199,65,34,53,94,153,233,132,6,128,246,58,71,166,215,53,205,190,237,126,206,19,45,167,115,228,88,221,158,229,186,182,103,240,80,66,20,152,142,140,225,244,52,213,163,96,53,223,44,134,211,227,227,78,250,97,122,54,154,233,2,131,54,157,117,50,187,154,162,7,62,180,126,249,244,138,134,238,50,118,5,192,15,103,195,244,177,49,76,53,173,51,213,215,219,116,209,126,5,47,86,159,69,49,138,240,161,128,209,238,60,178,92,175,147,3,71,175,199,4,246,93,252,199,56,153,222,12,93,245,71,134,58,1,222,126,129,183,127,124,172,78,142,71,189,206,244,195,4,4,116,207,62,143,210,15,254,217,233,169,229,104,147,175,108,171,212,198,5,1,127,23,223,222,3,106,163,4,255,17,32,248,12,94,116,8,176,185,21,252,160,1,31,13,28,129,174,13,61,249,46,184,60,180,13,234,67,6,159,26,32,224,14,156,199,248,45,28,163,213,188,109,130,84,106,57,255,200,116,107,217,121,251,250,47,113,184,106,183,160,121,234,34,184,188,103,103,169,167,86,134,201,154,102,13,47,224,192,164,112,79,198,16,189,182,175,90,29,181,210,90,222,219,167,126,26,120,206,125,218,177,217,141,160,2,24,161,152,97,166,247,25,7,199,38,14,123,124,100,157,169,33,234,133,167,206,48,4,133,252,71,189,227,240,145,119,58,202,121,211,251,90,226,26,193,18,250,201,19,204,181,65,58,239,81,219,214,194,206,145,103,119,58,3,89,160,53,130,23,216,64,163,49,227,221,68,166,20,205,36,1,166,165,147,160,125,242,225,175,79,180,191,24,90,255,248,167,147,179,147,112,174,162,110,73,143,154,5,115,50,58,62,246,191,114,58,147,7,35,3,174,142,100,95,4,47,100,26,92,190,97,141,22,56,251,154,217,233,28,177,122,172,227,139,182,165,106,214,163,201,113,175,131,228,211,211,201,35,235,115,83,157,78,135,122,170,33,187,196,141,221,240,82,151,70,111,52,227,17,158,16,252,110,148,167,170,207,71,215,219,205,172,55,184,6,63,33,59,123,29,47,44,244,115,125,28,174,48,63,47,21,107,111,87,1,22,67,215,65,59,88,77,48,16,189,255,225,197,179,120,137,73,37,185,185,81,167,67,244,20,226,32,36,179,9,236,20,203,83,181,154,18,166,104,176,2,64,0,5,212,112,117,27,198,25,39,102,196,137,20,92,72,79,163,140,11,41,4,103,86,22,146,103,104,30,4,76,59,21,189,157,221,134,250,129,240,69,77,125,150,196,203,103,178,161,118,244,33,61,43,244,101,86,72,30,122,245,98,244,124,120,242,232,1,38,29,143,148,111,2,204,124,150,88,79,163,185,190,191,194,74,5,13,135,74,152,194,223,127,186,157,193,179,162,98,92,244,223,253,237,102,129,53,69,69,121,30,144,79,169,60,25,199,219,143,11,127,26,254,18,44,176,34,190,217,172,211,193,201,9,170,32,83,143,147,57,77,107,80,13,142,70,64,211,127,229,213,139,119,148,114,66,93,122,51,106,224,81,244,96,68,51,119,248,196,175,144,250,249,243,247,252,251,224,1,70,236,16,139,67,132,77,103,87,140,235,84,72,86,165,50,165,113,234,232,136,134,114,76,17,42,169,122,6,4,190,102,6,4,147,129,230,50,128,93,120,187,132,72,134,100,14,25,147,173,233,115,76,40,54,47,191,173,2,204,75,164,212,245,106,30,112,22,201,109,67,53,32,99,251,238,193,119,24,221,95,232,164,44,96,249,27,117,138,19,136,33,20,61,47,57,81,67,204,64,170,227,178,144,129,175,67,154,244,176,146,224,140,124,106,84,245,147,43,248,250,163,105,77,167,38,157,193,4,99,238,94,34,253,160,248,147,36,241,175,74,110,17,35,45,188,161,9,48,31,60,16,5,194,148,255,81,231,232,168,130,210,131,209,232,61,230,61,61,206,166,89,206,8,83,186,76,189,32,153,153,108,39,163,40,211,61,30,131,1,73,93,163,108,102,105,213,213,200,236,218,150,219,115,224,92,168,193,72,179,186,56,183,123,221,190,26,143,180,60,203,81,55,163,44,167,167,110,161,43,219,211,36,211,149,45,116,37,249,176,61,27,181,233,151,172,60,253,243,72,90,242,91,100,166,229,100,185,112,106,74,238,75,242,97,45,135,121,211,234,157,158,174,49,2,171,201,135,246,250,216,115,144,222,63,61,117,58,199,166,115,54,90,231,93,91,98,38,247,243,108,166,206,233,127,62,87,23,244,191,88,168,52,195,251,57,12,247,177,28,97,140,99,41,120,54,90,169,111,71,129,250,113,20,171,63,143,54,195,213,104,217,94,169,129,26,171,27,180,185,61,54,206,212,174,170,121,61,163,215,245,250,182,215,65,231,151,237,141,42,138,80,1,243,76,53,97,207,237,94,223,245,28,183,135,18,49,74,80,117,42,67,37,48,198,153,93,213,51,60,211,112,123,102,191,3,210,46,219,162,133,21,23,176,207,84,11,32,76,195,113,92,203,181,109,163,3,86,84,209,112,24,13,179,235,57,102,175,215,239,238,163,225,50,26,38,237,26,244,12,199,106,64,195,99,52,52,211,1,35,109,211,118,204,125,68,186,2,17,199,237,26,110,191,103,239,163,209,35,52,204,110,215,48,108,215,1,9,247,208,232,11,106,152,125,18,21,199,49,129,105,29,15,19,36,37,68,28,203,192,240,189,135,131,9,130,50,53,250,125,195,49,208,8,28,146,58,26,38,72,10,60,208,81,207,176,189,30,74,236,113,5,52,37,68,28,3,29,53,13,244,117,15,13,144,148,233,225,26,32,154,101,245,65,245,61,92,64,85,224,130,9,129,231,218,174,109,129,119,171,209,188,138,202,153,234,2,136,231,118,251,158,107,2,198,6,5,202,152,128,236,125,226,173,215,119,13,211,179,129,107,140,18,21,76,72,132,28,213,115,108,104,85,215,100,154,204,43,120,128,98,150,1,25,235,66,202,186,182,193,20,169,162,1,68,129,70,215,48,93,136,96,31,221,173,163,65,84,239,171,118,15,56,24,196,217,61,36,72,128,28,72,186,103,56,221,158,109,187,251,88,128,96,132,133,99,64,75,187,61,167,183,143,5,184,239,170,174,215,115,28,116,6,249,123,72,0,4,19,195,236,247,192,56,34,121,29,15,226,27,208,48,123,93,219,179,251,30,11,105,21,13,200,32,208,48,65,75,215,6,243,80,98,143,39,0,66,76,113,128,71,207,116,60,86,151,42,38,16,32,32,226,154,144,15,116,101,31,13,104,2,208,128,145,3,215,123,208,152,125,52,72,6,137,28,102,223,2,205,186,93,27,80,86,163,69,157,43,232,11,90,0,87,8,135,69,5,7,116,196,52,225,9,66,248,220,46,80,101,174,44,246,69,195,131,164,219,125,195,54,92,210,133,0,69,42,120,16,91,108,180,226,218,70,223,197,148,107,15,11,192,32,138,82,126,31,58,199,50,90,197,132,84,193,132,152,119,173,94,31,172,111,64,132,232,225,17,16,215,233,119,89,138,247,240,32,33,5,30,166,209,7,189,12,207,97,43,86,195,4,140,129,160,247,208,82,223,236,130,96,117,68,200,52,128,36,182,219,131,136,89,22,43,75,21,17,146,15,32,130,76,215,50,251,93,182,166,85,68,160,112,192,163,235,25,86,223,236,177,198,86,145,128,144,146,156,131,243,158,227,244,88,54,170,72,16,103,9,11,199,50,123,166,219,35,85,216,227,11,105,139,167,130,164,93,7,136,176,233,168,98,65,210,1,106,244,251,176,231,61,88,6,194,227,170,62,178,16,69,251,61,207,54,160,49,132,199,85,5,15,162,57,9,186,229,245,250,166,131,249,32,208,184,218,183,97,44,233,164,13,78,223,96,173,189,170,32,66,38,12,157,129,132,217,164,185,251,120,80,119,33,98,176,233,14,228,180,203,182,163,138,8,209,156,36,189,215,119,128,45,6,178,6,76,136,115,132,137,225,154,174,197,234,82,69,131,172,58,11,59,208,180,192,126,102,76,21,17,232,3,137,58,28,11,19,66,136,2,117,60,152,234,100,7,49,148,66,124,88,109,171,104,208,24,71,88,184,30,153,24,88,187,6,68,104,180,133,176,67,27,76,215,244,156,6,68,64,85,226,140,227,162,39,70,151,245,165,134,8,169,37,81,4,227,173,101,194,132,0,72,29,21,18,34,87,237,162,63,189,174,69,189,169,35,2,57,36,138,216,224,11,232,46,36,100,117,252,12,30,142,129,178,193,241,91,62,138,71,241,241,71,62,218,140,54,199,63,211,209,46,243,225,179,85,156,15,18,249,51,184,236,236,7,85,28,88,53,81,215,2,119,225,241,108,70,147,227,118,120,148,124,254,123,120,180,238,28,183,87,4,179,115,28,203,25,76,123,115,122,26,124,222,136,69,173,160,115,28,238,176,38,14,159,234,16,152,235,207,201,209,223,15,134,185,88,28,0,243,175,201,95,15,6,24,134,119,3,76,254,218,14,63,3,199,67,97,242,198,118,26,126,66,116,144,71,231,211,112,30,164,155,44,225,101,49,23,175,76,25,104,91,101,196,51,172,206,102,145,196,23,188,251,252,45,111,170,182,94,68,81,48,247,35,197,79,230,188,246,170,180,142,39,98,22,79,14,122,121,1,171,237,51,180,124,110,201,83,14,63,229,188,175,147,129,60,149,243,145,105,109,94,157,116,6,185,187,143,133,42,156,139,13,1,106,232,253,40,71,92,110,33,252,48,122,210,126,223,81,207,71,17,118,137,110,90,158,142,26,226,64,90,34,58,128,22,90,158,30,94,153,23,170,139,154,23,183,214,108,101,251,161,239,40,220,10,75,226,225,10,235,234,223,189,123,245,114,20,237,212,111,111,175,203,123,214,141,21,223,29,80,241,135,192,199,30,123,189,230,55,35,17,19,128,250,196,87,44,96,47,195,52,104,183,103,106,218,1,72,218,212,158,98,55,27,19,73,202,198,150,103,0,56,211,32,129,114,138,125,241,146,180,96,51,96,244,3,237,193,65,28,2,162,106,138,229,238,142,58,107,79,65,23,218,158,242,167,79,196,196,175,152,44,119,212,215,5,6,215,79,219,173,237,154,160,138,157,90,44,214,35,5,177,41,180,53,43,119,111,145,118,94,144,49,75,27,242,238,123,177,167,89,167,64,188,241,105,47,2,189,63,247,163,109,48,68,120,3,247,45,29,137,56,132,111,128,203,240,162,221,66,188,75,194,65,22,20,26,7,98,208,174,49,160,203,93,102,89,88,108,78,253,215,9,128,158,112,168,197,215,216,41,12,70,255,118,61,219,29,97,31,96,129,163,116,247,95,29,218,58,125,48,165,0,136,61,189,225,102,184,13,116,132,218,80,102,62,72,139,29,84,217,148,47,155,154,242,158,60,68,61,139,102,136,226,121,185,122,22,37,49,0,135,178,186,19,193,170,56,89,82,240,1,83,38,228,164,63,189,122,249,29,150,91,126,8,176,13,75,59,187,58,54,43,176,188,243,253,155,183,239,90,106,139,187,35,168,15,26,135,186,56,108,216,3,202,104,95,218,6,74,58,76,205,245,72,172,154,199,219,213,180,141,25,42,234,7,211,147,4,51,248,141,31,61,66,180,209,45,219,79,25,212,167,126,2,46,137,64,27,17,230,184,62,110,125,213,186,121,191,43,171,248,35,49,182,34,222,92,113,167,98,215,171,232,78,188,202,202,23,130,11,236,193,170,108,70,77,43,125,216,111,30,71,193,255,193,157,218,161,71,241,138,52,234,10,18,184,9,176,84,184,154,7,69,151,184,71,180,145,141,2,20,195,133,245,36,135,54,200,67,32,65,17,93,163,17,38,138,157,95,129,119,11,29,62,4,113,81,179,64,91,214,131,58,215,85,151,212,185,18,159,1,37,224,184,171,10,186,14,208,189,219,170,254,179,240,101,131,154,39,124,219,110,189,103,233,42,180,152,4,39,25,17,3,132,126,190,131,22,15,223,209,192,197,93,251,191,166,35,234,59,88,27,17,206,38,6,238,96,74,1,141,96,9,194,194,166,1,198,251,140,69,48,241,136,172,88,195,162,0,153,25,106,183,212,72,141,116,10,97,38,245,75,41,29,139,116,176,177,162,9,50,178,173,99,89,96,199,49,92,180,143,241,235,241,76,245,37,42,209,142,63,180,227,71,26,16,179,85,239,199,230,209,209,3,4,52,110,194,117,20,124,221,70,120,116,130,56,151,63,199,91,132,142,97,237,122,21,93,41,194,58,224,56,80,218,180,112,218,65,40,87,132,216,51,10,96,217,32,48,82,71,19,176,35,131,232,131,113,198,40,235,8,1,68,100,93,11,25,216,6,89,183,59,15,120,213,180,117,43,248,18,232,52,131,136,200,7,114,99,254,118,243,216,37,42,139,40,71,84,250,183,155,75,18,224,23,43,88,47,72,224,223,14,216,189,199,242,116,132,197,218,128,74,125,35,118,167,219,104,0,206,13,202,181,43,187,225,159,168,48,13,104,63,210,46,135,92,62,55,135,175,177,101,96,192,87,207,203,253,1,166,71,198,91,208,62,59,165,81,56,13,58,0,120,121,64,29,249,17,140,232,232,211,80,38,230,113,203,163,63,112,28,231,94,148,19,233,2,78,30,169,131,113,128,181,210,64,29,248,51,236,66,92,35,180,64,131,15,75,187,32,99,56,156,65,162,33,101,40,15,89,119,6,70,118,202,64,6,24,72,195,105,150,196,1,32,131,47,3,55,232,6,227,93,13,182,166,109,46,56,118,24,4,26,40,173,214,142,130,250,175,41,48,90,91,4,20,50,48,48,117,119,168,93,4,227,143,225,70,163,161,154,80,9,52,127,250,203,22,209,64,164,122,67,109,25,127,210,48,158,112,206,192,25,106,113,249,172,116,56,67,59,218,204,95,134,209,213,96,27,106,169,191,74,53,68,26,133,112,197,96,228,131,165,182,13,85,13,26,22,5,154,72,80,159,82,244,212,43,127,242,150,79,159,163,190,250,54,152,199,129,242,254,133,250,67,60,198,34,188,250,93,16,157,7,155,112,226,43,175,3,68,175,61,73,16,160,163,190,70,142,242,22,240,213,82,35,173,39,4,90,129,146,97,183,230,219,101,252,75,8,167,32,3,151,37,228,231,111,175,150,227,24,1,14,12,170,92,71,118,3,33,101,219,4,136,74,223,109,176,130,59,226,71,34,19,242,30,178,100,212,179,119,227,120,122,117,189,132,251,136,29,52,99,88,166,115,184,90,0,203,205,110,145,92,203,20,138,24,34,214,201,156,140,159,155,120,45,185,110,174,47,119,254,120,156,12,46,80,32,104,127,224,43,28,206,58,215,21,118,209,6,95,194,200,12,48,190,7,9,181,9,243,140,11,37,166,195,187,10,236,22,166,186,176,212,133,173,46,28,117,225,170,11,15,123,111,232,31,243,51,67,139,83,46,170,157,240,17,9,86,70,189,222,80,86,110,172,98,95,36,94,205,5,88,9,4,100,7,26,59,50,191,234,199,241,20,44,92,174,85,40,177,40,84,200,207,50,94,197,233,26,251,193,234,219,231,175,112,172,253,16,204,17,212,157,168,175,2,56,238,42,146,252,73,172,34,220,19,234,224,167,234,203,16,17,26,220,188,66,165,145,177,77,66,152,253,215,193,133,154,131,18,189,225,254,153,193,114,151,130,103,81,169,207,61,227,171,29,54,223,17,2,183,46,165,118,221,175,42,172,52,134,235,56,197,245,4,232,104,22,61,60,196,0,67,66,26,105,62,34,113,86,3,218,231,166,42,4,13,10,14,203,183,28,104,186,229,82,155,128,13,30,227,148,206,216,79,187,102,250,209,166,51,180,52,215,245,70,233,64,98,228,175,225,47,103,7,59,68,114,194,174,170,33,89,35,53,94,111,230,112,244,214,42,154,167,8,121,2,140,224,87,191,66,219,10,103,247,4,189,146,219,32,233,149,124,65,73,178,18,13,98,210,36,255,53,153,207,85,101,13,99,79,22,208,200,250,35,58,32,40,179,65,24,75,10,179,182,132,154,129,166,178,196,7,14,149,20,39,103,242,140,141,112,118,2,218,35,182,239,44,215,23,26,220,125,128,154,4,3,81,107,56,246,39,31,137,94,171,169,164,54,183,132,72,12,48,162,156,25,46,49,44,139,198,7,108,14,103,24,193,82,154,218,95,227,138,3,234,230,0,187,196,177,204,132,236,134,43,76,211,194,169,176,237,216,43,142,47,68,237,204,53,184,190,73,94,6,131,12,91,246,128,180,116,29,174,52,217,225,34,15,141,86,243,50,155,194,88,200,222,163,175,147,69,99,239,137,168,179,48,136,166,67,137,189,22,207,102,32,220,64,179,96,114,138,102,4,136,146,98,55,1,19,84,201,235,208,16,174,137,17,63,195,237,102,250,147,208,228,198,34,221,46,33,14,87,215,242,234,132,65,132,97,95,11,49,46,236,120,221,231,111,219,120,19,168,211,72,157,78,213,61,187,165,46,18,117,22,206,33,200,88,102,34,91,146,9,214,142,251,137,190,21,86,185,16,53,172,253,192,171,187,46,18,48,32,108,35,21,254,200,22,99,36,90,23,195,45,245,176,73,82,177,222,135,217,108,169,122,174,109,96,49,41,70,198,228,29,43,39,104,68,210,193,33,46,11,182,129,185,122,238,103,93,199,48,87,8,157,29,152,82,99,190,236,79,124,219,159,101,160,154,161,28,2,32,211,158,4,179,241,76,123,174,39,219,4,193,214,131,53,194,37,32,89,187,1,120,64,134,105,154,101,200,208,191,93,184,156,171,233,249,92,61,15,167,65,172,194,61,60,135,229,245,183,211,48,86,195,89,2,183,82,13,16,40,55,85,69,60,69,206,74,102,96,221,70,46,177,228,20,5,12,146,193,129,67,151,217,200,71,22,165,34,210,98,125,234,44,135,200,82,183,231,74,177,187,147,185,74,212,127,92,57,117,57,80,140,97,83,198,85,158,193,90,15,67,30,148,10,23,105,69,57,68,5,32,33,63,77,63,6,23,165,26,124,90,20,230,203,24,41,219,44,159,35,95,158,175,253,21,229,22,39,200,146,39,8,99,94,104,159,98,140,25,50,5,158,36,204,189,150,174,252,53,100,50,9,39,27,68,6,33,160,31,230,228,50,132,141,187,18,197,230,9,166,37,48,93,26,197,196,104,249,32,37,129,228,185,231,161,127,115,230,38,222,203,3,217,16,78,17,229,200,96,180,93,4,83,237,19,34,94,178,180,21,252,121,160,5,237,39,29,172,167,74,138,239,21,78,196,5,80,89,58,217,83,152,61,50,68,229,20,97,155,164,100,40,198,250,114,63,79,72,184,242,229,108,54,43,101,202,212,100,62,110,187,125,5,155,12,138,229,120,202,137,162,35,14,105,15,132,180,210,138,129,247,151,216,184,207,88,78,69,110,200,187,53,89,180,30,76,247,178,199,209,22,72,201,99,68,152,47,36,47,69,10,249,234,137,15,215,187,224,203,21,75,78,150,176,216,6,185,28,138,20,140,53,80,172,156,59,52,156,151,114,211,96,29,250,217,201,20,225,189,57,218,18,5,140,114,156,92,193,43,79,220,67,48,207,170,99,154,103,236,161,156,231,236,227,158,103,85,59,145,39,103,70,172,158,94,239,101,145,33,186,139,1,41,75,250,151,81,248,151,81,248,151,81,248,151,81,128,81,208,211,68,163,229,172,235,92,152,253,49,38,143,112,166,177,136,35,103,220,153,219,65,135,185,103,151,121,127,26,165,98,167,45,65,136,253,197,64,248,36,67,44,54,173,49,17,196,213,220,136,109,164,55,54,98,22,240,91,89,194,201,123,188,72,252,117,109,61,103,167,103,45,239,227,178,163,245,38,158,85,22,121,89,202,78,23,147,73,205,200,102,149,0,21,5,179,13,18,232,143,78,153,59,56,231,255,34,193,146,9,186,139,221,194,29,86,255,215,40,67,19,81,148,160,19,139,79,100,238,39,205,53,174,63,241,148,244,114,224,162,196,114,140,112,2,233,67,195,102,114,211,150,44,76,121,94,45,207,201,114,172,90,70,81,199,169,229,152,34,35,42,170,112,143,178,10,73,145,94,233,200,114,83,194,140,186,144,163,133,140,188,10,101,216,121,114,222,52,39,23,229,43,197,139,228,74,113,137,230,70,203,187,204,169,178,52,123,186,85,191,119,135,197,108,154,100,229,169,226,116,135,235,52,130,203,60,145,78,178,146,90,37,167,148,182,211,133,204,85,221,96,125,1,196,165,216,74,52,144,242,147,238,230,137,158,149,37,231,105,38,86,35,56,237,66,235,99,193,147,164,210,42,146,126,250,96,245,96,84,127,58,203,178,232,76,100,216,70,57,131,207,100,134,85,201,160,51,202,152,97,227,93,166,145,91,191,251,247,143,193,21,79,21,82,133,38,176,144,186,235,98,126,47,12,65,27,129,167,211,96,142,117,112,221,95,97,238,205,186,132,162,226,132,244,129,78,21,51,85,136,50,88,124,14,87,51,186,94,21,164,16,243,21,140,86,60,145,169,207,107,176,138,79,171,10,26,145,45,159,150,226,162,66,140,255,156,33,166,122,98,18,95,79,173,39,0,183,124,62,91,5,88,155,28,11,120,245,196,250,12,154,165,1,134,240,226,154,15,166,33,89,20,86,253,248,66,102,98,240,168,103,34,9,59,10,144,27,76,147,113,45,32,198,106,116,154,167,87,60,115,78,7,34,105,167,211,114,110,56,187,202,138,228,167,114,105,184,94,108,28,108,46,2,200,89,189,28,155,180,44,119,167,207,225,122,152,215,248,29,100,162,67,41,150,72,41,18,108,145,208,45,82,28,78,17,170,196,75,44,112,29,88,80,164,153,36,199,99,155,14,250,120,145,20,101,69,162,121,173,128,108,36,203,191,172,3,200,218,20,169,89,102,177,188,42,51,180,41,123,47,89,190,152,246,139,180,188,200,79,31,126,250,18,49,104,125,211,135,140,151,93,199,124,56,50,171,43,119,228,98,88,142,98,185,138,69,14,6,150,210,218,13,213,16,12,95,110,97,108,140,237,113,239,30,45,32,12,89,49,187,240,100,122,206,65,141,208,64,140,200,47,227,240,46,88,125,5,49,202,248,186,7,53,32,83,208,70,115,19,186,181,87,212,190,169,168,189,87,212,185,169,168,131,162,115,242,87,2,205,203,123,7,71,174,212,179,250,98,31,245,206,238,42,125,234,95,181,111,121,61,238,215,188,78,180,187,193,222,68,180,70,192,24,106,15,134,235,0,174,11,159,213,53,111,133,203,14,200,225,80,93,200,168,252,222,8,149,212,56,115,136,50,181,90,95,210,216,43,83,197,112,45,70,223,204,117,146,67,117,54,36,163,188,85,45,222,84,186,40,236,84,11,147,189,168,149,21,38,4,69,221,90,81,97,144,234,165,51,51,133,10,94,189,66,99,121,89,252,10,102,46,203,98,223,160,10,61,243,109,50,232,40,94,144,165,240,73,234,229,115,178,64,184,170,224,27,161,231,133,115,70,136,194,204,140,189,210,25,139,146,18,105,106,84,224,197,117,57,34,240,177,88,152,203,6,3,177,29,184,44,237,132,232,61,209,86,117,3,177,12,237,50,45,23,111,40,205,69,185,200,18,87,178,111,37,116,185,113,128,251,243,236,16,232,130,75,144,39,88,16,175,47,254,231,25,178,173,49,86,59,63,10,33,231,243,146,152,23,178,77,19,45,163,44,213,229,162,36,215,124,206,122,136,168,219,187,160,65,65,60,87,233,85,148,239,102,128,253,187,1,154,93,204,63,21,187,127,0,64,140,184,48,21,119,66,180,29,5,177,216,74,191,50,28,52,130,196,68,244,16,128,22,176,243,122,244,185,11,224,85,16,97,94,4,27,125,55,76,178,97,6,6,199,187,41,41,129,30,132,40,186,142,161,240,110,68,235,163,73,21,38,141,37,89,9,207,200,23,210,117,15,181,73,24,121,74,38,204,103,42,124,87,145,130,133,23,190,120,158,188,178,56,193,181,174,85,83,171,150,135,86,94,180,47,237,172,200,84,236,158,68,188,103,250,145,66,252,114,200,136,224,32,245,205,130,20,6,147,237,24,75,37,227,224,19,54,56,219,186,131,73,167,142,43,99,58,229,42,83,154,10,83,89,221,116,83,248,170,180,62,254,83,62,199,148,235,229,153,91,151,83,75,38,116,138,29,206,98,86,42,65,240,108,19,243,3,242,245,239,4,35,134,4,114,180,100,109,154,105,30,90,153,13,103,169,238,66,115,238,172,83,49,51,178,30,36,242,206,122,210,37,44,87,43,251,165,119,214,111,246,91,37,36,145,121,40,140,146,119,90,169,47,108,10,38,92,119,2,58,216,181,51,224,77,152,54,190,21,251,179,239,218,101,120,72,199,226,64,4,126,35,199,35,147,156,66,182,177,105,127,183,240,52,232,37,234,253,67,180,74,54,74,14,252,67,188,51,201,174,7,223,80,120,107,51,182,152,153,211,170,82,206,233,204,250,244,140,1,103,220,224,243,246,138,122,133,143,90,169,241,27,121,170,188,221,157,99,199,78,54,236,241,128,147,15,158,72,84,150,91,111,17,54,217,88,182,53,77,179,99,217,82,182,215,14,163,160,112,12,20,238,104,85,236,215,215,246,178,217,114,72,88,188,96,139,219,37,20,248,54,173,242,230,56,21,107,206,29,246,30,140,90,86,121,241,185,211,156,199,221,46,175,40,31,208,8,150,71,39,109,7,125,59,190,173,189,122,131,178,165,82,164,65,99,101,145,135,88,196,74,230,94,170,72,80,139,245,233,130,33,92,161,137,247,162,153,130,243,119,47,182,215,48,220,227,61,39,231,2,125,223,166,110,16,233,59,219,34,211,122,239,182,154,77,104,189,173,117,0,251,47,239,30,244,119,62,211,228,25,235,238,63,98,218,122,71,147,194,159,188,79,155,150,165,224,202,54,165,91,93,103,56,184,205,178,25,23,219,106,135,141,172,251,155,113,28,29,80,76,11,242,60,186,250,92,58,125,69,241,146,108,151,118,239,160,69,114,169,177,96,25,159,35,131,182,236,138,100,177,159,39,147,255,92,75,39,56,188,171,241,167,82,134,216,226,203,114,202,85,196,102,223,129,132,202,188,129,123,12,184,7,140,248,55,12,184,123,70,152,17,100,101,144,232,53,88,229,95,97,143,111,2,43,12,244,191,76,243,125,77,243,173,244,100,171,2,163,118,15,115,134,27,18,240,236,17,119,62,184,211,156,221,212,172,176,44,247,108,23,83,55,154,103,154,93,235,150,118,7,97,218,214,249,158,148,252,155,235,8,45,156,90,116,237,175,247,19,133,199,30,168,11,182,167,192,140,218,149,217,226,158,34,220,214,164,237,219,99,123,114,159,38,221,158,130,113,208,171,172,71,220,171,201,192,9,188,96,124,159,38,45,171,7,202,98,224,189,99,249,246,166,86,121,100,196,48,113,120,139,93,44,144,184,52,60,253,154,230,138,213,227,27,26,196,242,241,126,221,121,101,117,62,171,121,200,114,106,195,242,252,237,18,39,154,170,75,219,1,35,118,147,180,221,213,84,182,44,117,120,51,77,11,84,119,54,83,178,218,157,235,219,98,98,247,107,243,50,70,121,227,66,162,122,219,138,87,227,134,69,109,157,230,230,134,106,42,112,203,114,80,179,228,31,212,16,143,186,119,183,208,60,154,30,212,66,177,192,212,216,12,22,155,246,234,149,162,59,133,100,208,53,101,13,161,163,34,94,168,84,184,153,15,46,248,0,127,206,132,190,150,144,111,168,215,212,135,27,112,249,103,163,145,81,17,55,123,41,214,233,204,253,114,183,79,175,111,50,53,189,155,1,9,51,144,141,0,85,48,7,104,105,211,56,112,171,150,222,54,3,191,199,248,115,216,20,252,166,214,121,56,174,244,187,220,254,97,211,192,134,158,223,53,202,223,60,255,188,87,203,135,76,64,75,109,151,125,28,41,243,141,14,86,47,55,207,7,161,1,20,60,90,166,190,109,106,122,63,44,132,191,117,79,52,104,50,103,152,138,123,155,187,245,251,223,241,35,96,42,215,142,40,124,1,214,16,55,44,23,1,40,8,189,96,39,95,68,120,43,165,93,36,69,108,35,13,9,140,37,129,240,174,144,66,113,56,67,69,134,84,41,134,222,179,131,37,121,181,186,105,208,193,80,41,111,9,41,116,185,144,76,250,31,225,96,87,112,176,106,56,24,220,116,126,240,143,193,225,203,134,231,121,224,22,237,69,104,101,30,142,70,75,223,120,90,5,174,59,162,5,116,62,42,38,188,98,150,197,51,94,168,194,87,170,66,191,157,97,22,174,5,198,138,11,178,110,107,95,94,106,90,34,9,246,58,65,146,90,132,23,197,240,252,254,119,184,86,148,175,70,145,241,17,3,211,203,39,124,95,206,108,122,151,47,94,147,151,27,216,184,63,205,116,92,91,24,167,142,200,245,109,130,157,47,215,243,73,45,188,199,218,11,239,201,194,240,248,146,128,223,255,238,94,145,68,232,69,233,49,39,144,5,121,243,123,138,112,108,99,110,218,25,230,42,99,232,125,236,127,112,196,144,198,151,150,34,206,145,99,118,0,4,87,117,202,235,56,113,73,231,73,254,56,164,83,186,240,79,225,123,106,136,59,59,211,8,241,65,122,164,103,74,182,112,206,247,231,22,227,255,7,233,200,156,41,180,23,45,30,175,132,167,116,0,20,238,220,175,132,184,103,69,131,176,224,182,248,162,9,121,187,14,121,109,233,13,213,36,143,91,143,197,147,52,232,102,153,186,126,122,130,130,245,122,18,170,100,115,235,113,185,80,118,252,197,233,194,218,123,2,19,72,96,113,222,250,241,233,194,126,76,119,116,216,202,231,49,225,244,244,100,45,50,179,6,228,142,178,66,65,126,136,83,214,220,214,99,186,242,137,174,91,198,5,178,231,115,5,163,40,61,17,2,23,125,235,86,75,185,92,70,43,234,44,238,249,128,59,108,94,92,92,232,23,54,221,97,243,132,238,172,119,130,242,45,133,158,45,245,52,190,28,181,104,86,220,115,12,154,189,182,148,236,138,115,19,207,144,18,34,54,106,217,56,46,51,168,202,133,22,174,10,7,95,145,87,85,232,97,133,198,107,220,72,129,174,126,142,180,4,119,209,198,115,177,32,29,241,116,218,226,52,220,179,127,139,187,215,175,240,4,10,40,64,139,110,59,178,52,13,221,86,92,83,239,71,112,81,116,91,115,245,254,121,215,155,0,77,189,75,114,166,216,58,166,32,248,58,186,21,117,113,238,232,222,167,165,217,215,93,197,52,81,7,33,121,154,71,117,250,17,29,43,221,60,83,175,102,227,84,20,208,205,253,34,93,42,224,228,16,60,221,212,122,142,238,76,52,232,188,6,44,52,27,168,209,191,163,247,20,35,210,60,154,168,0,65,174,0,248,138,215,167,66,125,29,149,53,151,18,29,36,68,232,17,178,168,72,95,239,81,182,71,157,236,3,35,27,56,244,208,43,156,162,217,82,49,143,138,185,84,172,87,45,230,70,88,68,237,226,24,133,92,42,228,104,166,173,117,117,23,69,60,96,101,218,122,79,244,194,243,144,7,244,236,137,196,158,232,167,33,148,130,255,65,199,115,173,235,125,34,25,38,110,53,114,175,137,83,184,237,155,110,146,135,112,142,59,59,234,230,66,179,65,20,28,187,186,187,176,49,52,241,97,31,201,217,177,189,64,9,52,102,118,17,85,9,113,61,239,161,83,159,150,182,9,142,3,72,15,24,45,8,148,125,78,135,159,150,22,122,138,155,169,233,230,132,4,1,120,42,142,6,130,16,159,108,62,232,33,9,130,1,182,41,128,78,7,142,130,116,212,180,209,73,211,209,187,196,48,15,34,226,64,142,76,162,22,110,122,133,66,116,224,145,60,17,183,93,128,6,31,44,240,129,8,191,32,122,163,69,19,148,114,32,113,182,6,236,88,16,113,134,187,136,65,58,152,25,22,36,72,99,20,249,136,90,67,62,18,224,39,64,86,197,17,178,250,132,34,121,82,36,187,134,72,115,197,17,234,0,54,166,91,0,194,165,73,206,76,144,196,178,0,12,201,30,56,134,254,2,25,130,9,190,113,125,46,202,71,76,57,130,133,126,17,125,248,8,63,238,185,6,121,243,64,77,79,247,206,1,149,233,160,217,232,180,11,17,65,35,46,48,148,7,46,161,13,209,34,225,69,183,232,200,234,82,103,20,100,66,142,168,17,36,120,132,158,60,146,132,183,1,0,60,167,114,164,85,14,30,151,196,154,154,145,11,56,65,114,29,194,158,142,80,130,40,104,106,192,214,66,85,200,38,186,74,210,139,222,128,85,146,31,22,41,149,56,32,238,32,177,11,52,8,97,62,45,50,208,25,194,2,160,192,97,214,61,52,196,53,192,224,46,115,156,217,155,103,64,214,88,126,244,62,176,236,163,16,88,192,63,208,83,113,4,245,225,142,161,91,72,134,248,106,80,111,152,28,48,17,57,56,199,191,135,134,157,5,50,189,9,68,132,196,196,195,183,11,172,29,254,239,65,239,112,243,89,244,136,58,139,76,72,154,6,86,245,53,11,40,137,35,226,11,145,157,105,67,149,112,4,82,163,106,100,66,56,88,228,89,53,113,76,16,109,200,181,248,103,126,129,1,224,4,106,208,63,216,75,66,164,153,100,26,81,135,254,201,122,18,103,208,243,9,232,12,22,129,37,108,22,64,69,182,14,108,246,88,79,32,253,19,97,199,4,166,108,104,136,124,148,66,182,150,142,187,104,134,196,199,38,227,4,24,122,23,204,134,154,0,131,30,178,89,230,209,2,25,111,58,250,180,116,89,61,96,112,64,5,170,78,253,32,101,32,59,69,255,36,75,96,2,41,53,190,244,15,147,120,110,67,130,22,192,205,57,39,197,135,48,17,243,72,87,161,101,200,98,65,17,71,2,61,18,89,198,144,69,21,116,135,76,176,212,247,206,93,116,130,64,1,151,46,225,230,160,42,178,64,191,115,36,2,115,18,90,40,61,181,77,60,163,127,4,129,163,38,137,243,194,52,206,193,19,139,196,153,20,128,197,132,168,141,31,90,137,41,115,2,212,0,127,72,195,96,219,196,40,193,22,131,148,152,132,3,178,207,255,48,200,76,99,174,192,255,52,184,17,145,208,156,48,145,192,192,4,95,176,232,5,74,176,0,49,179,128,40,1,1,187,0,149,142,128,19,105,32,37,144,172,139,3,206,1,190,24,127,132,204,35,1,116,147,89,108,250,64,115,78,160,113,66,28,80,14,198,40,244,136,144,133,220,97,109,134,116,132,57,195,170,37,255,217,38,25,56,38,156,92,250,231,100,192,67,121,220,8,146,72,76,90,45,51,136,75,44,64,180,7,70,54,86,128,193,224,4,198,160,89,57,18,80,143,61,12,227,231,124,8,100,250,231,30,236,222,194,36,94,226,0,130,68,253,19,105,80,222,136,135,19,204,221,244,30,152,5,115,205,9,142,194,9,196,155,8,130,64,24,58,11,26,87,208,51,34,47,214,140,160,89,164,251,208,75,12,73,4,137,178,200,150,225,6,149,164,176,224,35,11,14,24,2,128,144,20,16,228,220,238,3,95,92,237,64,195,19,10,163,4,236,253,57,29,161,54,9,56,132,20,92,34,9,196,151,68,153,212,73,124,37,185,72,237,69,14,228,0,230,131,164,130,82,232,44,255,114,89,206,151,57,84,30,234,201,22,19,93,33,118,157,3,15,110,10,6,13,124,36,131,202,67,34,11,60,176,34,244,136,124,52,248,176,116,35,72,142,8,195,146,109,242,63,244,134,80,34,139,197,99,34,136,66,26,211,39,59,70,34,138,225,64,14,121,132,50,253,211,160,99,64,112,133,149,163,127,104,12,248,134,209,103,129,22,224,56,16,81,112,4,58,225,144,21,3,166,11,242,74,86,150,6,86,66,132,255,1,152,145,34,36,72,117,132,223,70,227,27,76,17,97,64,248,145,70,146,253,35,253,22,255,36,189,164,52,212,50,13,50,22,114,108,136,130,28,161,73,211,32,145,140,54,85,38,171,42,76,18,144,39,143,136,108,131,67,67,29,89,11,156,161,109,72,43,29,144,170,74,19,68,190,0,78,33,12,52,34,243,17,57,113,66,247,97,3,161,77,30,9,196,190,147,132,217,205,57,221,191,254,139,204,115,207,38,21,114,163,49,247,160,51,175,184,60,123,160,75,19,148,236,66,5,165,124,69,130,194,151,226,40,124,157,80,225,79,159,62,208,52,60,189,149,111,44,36,238,140,164,104,90,145,155,53,93,185,159,94,115,91,213,139,27,138,214,156,138,243,78,205,61,227,71,133,225,158,72,226,194,247,114,131,40,65,19,199,210,57,77,235,68,177,2,15,121,23,163,253,153,132,152,223,21,33,221,88,51,160,137,175,252,195,68,67,44,144,99,46,88,15,104,87,120,241,176,28,194,35,150,15,178,197,127,172,59,96,177,167,178,243,42,147,196,174,105,249,36,135,80,14,94,163,25,166,171,80,220,176,66,87,81,49,221,4,241,232,174,126,124,129,70,149,93,197,4,86,236,115,156,137,148,28,207,15,114,1,80,166,151,218,175,229,228,157,151,169,101,126,136,155,34,97,206,119,192,44,79,206,231,172,210,116,142,142,43,147,63,218,203,113,178,153,24,17,137,166,116,20,72,89,247,246,69,170,216,178,165,137,166,155,39,17,125,241,108,12,204,161,137,122,149,100,122,144,68,158,46,153,31,109,39,184,111,129,34,254,178,27,95,64,167,120,158,1,137,121,69,126,162,98,125,231,249,112,110,197,70,50,168,111,157,155,165,4,252,99,184,180,202,9,154,245,35,12,228,75,81,249,83,235,4,0,227,232,138,111,219,195,171,18,104,217,68,95,161,216,136,116,181,48,102,115,145,188,77,100,88,231,94,57,13,131,20,188,63,248,203,228,252,219,148,35,213,188,202,10,92,110,92,75,83,20,241,168,59,190,109,102,173,248,201,94,249,211,19,161,45,213,68,190,95,133,124,182,31,223,85,141,149,169,184,209,87,109,69,67,241,113,35,189,53,248,203,79,127,224,71,148,204,63,181,176,62,32,111,16,216,42,221,123,171,205,247,33,235,84,148,252,164,162,195,213,197,14,182,0,184,39,38,223,129,229,54,147,83,187,129,219,193,70,199,97,19,7,133,222,95,157,89,87,0,139,123,160,86,86,69,50,48,184,98,82,168,63,150,73,202,235,20,210,124,176,201,190,97,249,166,170,215,21,141,230,107,174,148,11,77,92,214,87,211,195,50,12,113,189,94,110,199,246,76,9,249,148,238,190,129,216,83,236,58,41,233,174,126,89,27,165,128,39,9,175,220,68,190,18,147,93,219,253,85,117,61,170,137,179,13,36,22,55,158,172,45,60,213,209,52,190,170,194,172,80,182,42,59,251,146,244,86,220,243,241,54,65,170,222,22,242,128,129,82,240,73,12,96,13,82,116,63,115,233,96,9,45,51,151,116,252,91,152,75,128,249,117,198,178,122,17,67,217,74,98,34,129,29,107,92,163,234,99,25,140,77,32,207,128,123,240,179,186,93,164,100,105,112,107,232,176,90,72,254,228,105,216,93,161,98,121,130,4,82,41,68,19,66,154,90,84,10,237,53,199,243,71,239,47,21,67,138,185,18,25,106,90,186,113,26,236,40,86,65,203,242,36,158,76,159,201,9,100,187,44,92,69,81,33,90,101,201,226,155,236,222,38,87,229,187,73,30,40,85,112,136,254,95,149,42,121,29,75,73,166,150,152,38,117,201,127,215,48,123,114,74,195,47,230,16,188,194,137,89,168,243,164,24,115,233,66,148,69,101,88,166,250,154,93,225,62,13,173,253,115,230,123,101,180,237,46,116,195,108,148,134,130,87,85,131,79,87,154,87,77,209,251,21,110,1,142,145,22,75,225,204,252,102,73,169,194,148,247,195,174,144,226,50,109,30,52,202,109,125,31,161,98,192,15,200,230,231,216,87,219,82,110,22,203,183,242,22,112,183,90,188,234,189,174,15,30,58,193,189,67,6,181,90,205,61,41,55,177,253,32,47,18,19,163,40,8,82,186,230,187,54,238,229,251,18,13,52,19,155,108,229,75,125,234,131,71,70,142,67,135,144,70,42,85,167,85,85,50,229,131,129,71,35,55,95,105,127,203,200,221,76,40,121,169,118,195,40,179,55,100,87,141,23,189,104,59,135,238,58,94,119,253,234,37,79,5,137,185,107,217,141,202,243,193,158,54,68,149,218,165,242,52,25,49,105,90,82,248,58,149,171,230,106,147,167,61,87,36,154,151,103,90,165,249,71,22,30,32,211,106,225,18,55,77,108,242,105,74,37,181,41,196,165,164,93,165,13,189,38,4,74,25,53,44,234,132,7,253,112,219,70,186,111,37,223,218,29,156,36,251,200,20,13,166,143,179,167,174,159,158,136,66,119,86,134,156,190,12,55,48,55,207,223,98,111,255,237,247,47,158,63,127,123,67,101,88,44,110,230,46,207,234,31,43,101,223,80,160,195,251,23,119,10,89,228,143,131,40,195,35,187,33,74,182,239,206,120,85,154,175,222,9,162,129,232,229,153,9,7,95,211,51,126,89,134,247,158,252,155,17,55,151,106,121,35,25,133,130,49,144,40,66,183,247,155,168,56,214,125,56,187,110,197,179,46,66,57,170,179,251,82,186,156,226,215,83,178,208,94,41,169,77,185,8,8,169,173,2,160,84,174,1,249,226,66,57,246,92,132,153,239,133,232,55,149,41,71,167,43,34,41,187,10,234,195,67,60,73,94,36,101,241,12,242,148,162,3,232,218,191,44,155,47,37,44,39,228,251,228,149,70,178,139,51,42,169,242,164,210,67,145,132,203,4,229,17,46,252,203,90,174,92,60,86,209,250,44,192,181,218,203,210,28,165,105,250,65,2,202,242,120,151,234,44,32,136,165,49,166,136,87,83,138,0,64,248,14,255,68,117,251,206,79,166,100,80,148,23,223,28,168,114,164,18,120,192,38,215,122,241,77,29,219,127,182,185,200,12,162,242,163,136,21,104,234,196,23,95,124,81,194,125,38,107,200,10,45,229,246,30,52,79,252,16,155,145,15,223,226,14,101,120,98,38,45,119,164,55,134,14,200,9,172,237,82,112,203,63,102,233,18,253,148,167,205,56,200,120,164,236,190,13,216,157,67,228,14,7,219,100,161,79,46,227,134,245,21,186,101,58,77,186,171,183,62,167,231,215,43,35,229,225,201,67,148,18,182,82,52,248,207,93,2,205,124,185,251,46,133,146,213,40,221,108,96,111,89,20,150,21,205,137,101,81,242,202,27,214,70,173,255,165,181,81,69,121,138,208,81,5,119,39,175,7,221,220,176,232,70,18,250,219,10,67,126,75,251,118,231,255,7,204,7,128,255,85,230,131,127,184,87,185,92,53,224,61,24,201,218,134,37,168,34,40,43,79,68,113,196,160,225,16,161,87,8,219,124,252,223,239,77,158,77,209,143,0,0};
diff --git a/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.h b/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.h
index 42369c0c..5cefa5de 100644
--- a/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.h
+++ b/Software/src/lib/ayushsharma82-ElegantOTA/src/elop.h
@@ -3,6 +3,6 @@
#include
-extern const uint8_t ELEGANT_HTML[10214];
+extern const uint8_t ELEGANT_HTML[40500];
#endif