From 6a52e70ea7655caa78300950549035dd8f145fdc Mon Sep 17 00:00:00 2001 From: N0vaPixel Date: Sun, 12 Mar 2017 23:31:16 +0100 Subject: [PATCH 01/11] Splitted JS part of the HTML files --- esp8266_deauther/Attack.cpp | 6 +- esp8266_deauther/Attack.h | 2 + esp8266_deauther/Settings.cpp | 2 +- esp8266_deauther/data.h | 98 +++++-- esp8266_deauther/esp8266_deauther.ino | 63 +++-- htmlfiles/attack.html | 171 ------------ htmlfiles/clients.html | 147 ---------- htmlfiles/index.html | 151 ---------- htmlfiles/settings.html | 222 --------------- web_server/attack.html | 63 +++++ web_server/clients.html | 41 +++ web_server/index.html | 43 +++ web_server/js/attack.js | 101 +++++++ web_server/js/clients.js | 98 +++++++ {htmlfiles => web_server/js}/functions.js | 47 ++-- web_server/js/index.js | 99 +++++++ web_server/js/settings.js | 114 ++++++++ {htmlfiles => web_server}/manifest.json | 74 ++--- {htmlfiles => web_server}/minifier.html | 98 +++---- {htmlfiles => web_server}/readme.md | 12 +- web_server/settings.html | 99 +++++++ {htmlfiles => web_server}/style.css | 320 +++++++++++----------- 22 files changed, 1055 insertions(+), 1016 deletions(-) delete mode 100644 htmlfiles/attack.html delete mode 100644 htmlfiles/clients.html delete mode 100644 htmlfiles/index.html delete mode 100644 htmlfiles/settings.html create mode 100644 web_server/attack.html create mode 100644 web_server/clients.html create mode 100644 web_server/index.html create mode 100644 web_server/js/attack.js create mode 100644 web_server/js/clients.js rename {htmlfiles => web_server/js}/functions.js (77%) create mode 100644 web_server/js/index.js create mode 100644 web_server/js/settings.js rename {htmlfiles => web_server}/manifest.json (94%) rename {htmlfiles => web_server}/minifier.html (97%) rename {htmlfiles => web_server}/readme.md (97%) create mode 100644 web_server/settings.html rename {htmlfiles => web_server}/style.css (93%) diff --git a/esp8266_deauther/Attack.cpp b/esp8266_deauther/Attack.cpp index b1dcc7cd..91cb9601 100644 --- a/esp8266_deauther/Attack.cpp +++ b/esp8266_deauther/Attack.cpp @@ -11,7 +11,7 @@ void Attack::generate(){ uint8_t _randomMacBuffer[6]; beaconAdrs._clear(); - for(int i=0;i extern "C" { diff --git a/esp8266_deauther/Settings.cpp b/esp8266_deauther/Settings.cpp index 7820e5ec..f44b3634 100644 --- a/esp8266_deauther/Settings.cpp +++ b/esp8266_deauther/Settings.cpp @@ -17,7 +17,7 @@ void Settings::load(){ ssidHidden = (bool)EEPROM.read(ssidHiddenAdr); - if((int)EEPROM.read(apChannelAdr) >= 1 && (int)EEPROM.read(apChannelAdr) <= 11){ + if((int)EEPROM.read(apChannelAdr) >= 1 && (int)EEPROM.read(apChannelAdr) <= 14){ apChannel = (int)EEPROM.read(apChannelAdr); } else { apChannel = 1; diff --git a/esp8266_deauther/data.h b/esp8266_deauther/data.h index b2f4c726..298da51a 100644 --- a/esp8266_deauther/data.h +++ b/esp8266_deauther/data.h @@ -5,7 +5,7 @@ static uint8_t data_macBuffer; static char data_vendorBuffer; static String data_vendorStrBuffer = ""; -static char data_websiteBuffer[6500]; +static char data_websiteBuffer[5000]; /* I used the program memory (https://www.arduino.cc/en/Reference/PROGMEM) so I don't need an external SD card reader to hold the HTML files and the very ling vendor list. @@ -16,16 +16,21 @@ For files larger then 6000 bytes change the size of data_websiteBuffer. The vendor list contains 11 bytes per row. The first 3 bytes are the beginning mac adress and the other 8 are the vendorname. */ +const static uint8_t data_indexHTML[] PROGMEM = {0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x61,0x76,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x53,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x57,0x69,0x46,0x69,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x63,0x61,0x6e,0x28,0x29,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x72,0x74,0x22,0x3e,0x73,0x63,0x61,0x6e,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x61,0x20,0x69,0x64,0x3d,0x22,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x22,0x3e,0x73,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x46,0x6f,0x75,0x6e,0x64,0x22,0x3e,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x30,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x20,0x4d,0x41,0x43,0x3a,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x4d,0x41,0x43,0x22,0x3e,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x20,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x20,0x69,0x64,0x3d,0x22,0x77,0x70,0x61,0x5f,0x69,0x6e,0x66,0x6f,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x57,0x50,0x41,0x2a,0x20,0x3d,0x20,0x57,0x50,0x41,0x2f,0x57,0x50,0x41,0x32,0x20,0x61,0x75,0x74,0x6f,0x20,0x6d,0x6f,0x64,0x65,0x20,0x3c,0x62,0x72,0x3e,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x6f,0x75,0x73,0x20,0x73,0x63,0x61,0x6e,0x3a,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6e,0x53,0x63,0x61,0x6e,0x28,0x29,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x22,0x3e,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x20}; +const static uint8_t data_clientsHTML[] PROGMEM = {0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x61,0x76,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x53,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x3e,0x53,0x63,0x61,0x6e,0x20,0x74,0x69,0x6d,0x65,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x31,0x30,0x22,0x3e,0x73,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x63,0x61,0x6e,0x28,0x29,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x53,0x63,0x61,0x6e,0x22,0x3e,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x61,0x20,0x69,0x64,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x22,0x3e,0x72,0x65,0x61,0x64,0x79,0x21,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x75,0x73,0x22,0x3e,0x41,0x50,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x6f,0x66,0x66,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x73,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x21,0x3c,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x30,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e}; +const static uint8_t data_attackHTML[] PROGMEM = {0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x61,0x76,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x41,0x50,0x3a,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x22,0x3e,0x20,0x3c,0x2f,0x75,0x6c,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3a,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x3e,0x20,0x3c,0x2f,0x75,0x6c,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x5b,0x64,0x65,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x5d,0x3a,0x3c,0x2f,0x62,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x53,0x65,0x6e,0x64,0x73,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x64,0x69,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x28,0x73,0x29,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x57,0x69,0x46,0x69,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x28,0x73,0x29,0x2e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x3c,0x2f,0x62,0x3e,0x20,0x49,0x66,0x20,0x6e,0x6f,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x73,0x65,0x6e,0x74,0x20,0x61,0x73,0x20,0x62,0x72,0x6f,0x61,0x64,0x63,0x61,0x73,0x74,0x21,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x5b,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x66,0x6c,0x6f,0x6f,0x64,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x5d,0x3a,0x3c,0x2f,0x62,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x3a,0x29,0x20,0x53,0x70,0x61,0x6d,0x73,0x20,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x20,0x53,0x53,0x49,0x44,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x57,0x69,0x46,0x69,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x28,0x73,0x29,0x2e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x28,0x6c,0x69,0x73,0x74,0x3a,0x29,0x20,0x53,0x70,0x61,0x6d,0x73,0x20,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6c,0x6c,0x20,0x53,0x53,0x49,0x44,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x62,0x65,0x6c,0x6f,0x77,0x2e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x70,0x72,0x6f,0x62,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x5b,0x70,0x72,0x6f,0x62,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x66,0x6c,0x6f,0x6f,0x64,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x5d,0x3a,0x3c,0x2f,0x62,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x53,0x70,0x61,0x6d,0x73,0x20,0x70,0x72,0x6f,0x62,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6c,0x6c,0x20,0x53,0x53,0x49,0x44,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x62,0x65,0x6c,0x6f,0x77,0x2e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x6c,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x75,0x73,0x65,0x20,0x61,0x6e,0x64,0x20,0x73,0x70,0x61,0x6d,0x20,0x57,0x69,0x46,0x69,0x20,0x74,0x72,0x61,0x63,0x6b,0x65,0x72,0x73,0x2e,0x20,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x53,0x53,0x49,0x44,0x73,0x3a,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x22,0x3e,0x30,0x2f,0x36,0x34,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x63,0x6c,0x65,0x61,0x72,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x63,0x6c,0x6f,0x6e,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x61,0x64,0x64,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x72,0x65,0x73,0x65,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x73,0x61,0x76,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3e,0x73,0x61,0x76,0x65,0x64,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e}; +const static uint8_t data_settingsHTML[] PROGMEM = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x2f,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x57,0x69,0x46,0x69,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x73,0x69,0x64,0x22,0x3e,0x53,0x53,0x49,0x44,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x22,0x20,0x6d,0x69,0x6e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x33,0x32,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x68,0x69,0x64,0x64,0x65,0x6e,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x22,0x3e,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x22,0x20,0x6d,0x69,0x6e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x38,0x22,0x20,0x6d,0x61,0x78,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x33,0x32,0x22,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x6d,0x75,0x73,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x38,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x21,0x20,0x28,0x6e,0x65,0x65,0x64,0x73,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x29,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x22,0x3e,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x31,0x34,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x41,0x50,0x20,0x73,0x63,0x61,0x6e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x73,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x41,0x50,0x73,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x53,0x63,0x61,0x6e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x3e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x73,0x63,0x61,0x6e,0x20,0x74,0x69,0x6d,0x65,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x32,0x35,0x35,0x22,0x3e,0x73,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x22,0x3e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x2d,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x36,0x35,0x35,0x33,0x36,0x22,0x3e,0x73,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x22,0x3e,0x57,0x50,0x41,0x32,0x20,0x62,0x65,0x61,0x63,0x6f,0x6e,0x73,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x75,0x73,0x65,0x4c,0x65,0x64,0x22,0x3e,0x75,0x73,0x65,0x20,0x4c,0x45,0x44,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x75,0x73,0x65,0x4c,0x65,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x75,0x73,0x65,0x4c,0x65,0x64,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x22,0x3e,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x34,0x35,0x22,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x20,0x63,0x6f,0x64,0x65,0x73,0x3a,0x20,0x3c,0x61,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x61,0x62,0x6f,0x75,0x74,0x63,0x68,0x65,0x72,0x2e,0x63,0x6f,0x2e,0x75,0x6b,0x2f,0x32,0x30,0x31,0x32,0x2f,0x30,0x37,0x2f,0x6c,0x69,0x6e,0x75,0x78,0x2d,0x77,0x69,0x66,0x69,0x2d,0x64,0x65,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x65,0x64,0x2d,0x72,0x65,0x61,0x73,0x6f,0x6e,0x2d,0x63,0x6f,0x64,0x65,0x73,0x2f,0x22,0x3e,0x63,0x6c,0x69,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x22,0x3e,0x70,0x61,0x63,0x6b,0x65,0x74,0x72,0x61,0x74,0x65,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x31,0x30,0x30,0x22,0x3e,0x70,0x6b,0x74,0x73,0x2f,0x73,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x20,0x2d,0x20,0x6d,0x61,0x79,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x21,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x22,0x3e,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x68,0x6f,0x70,0x70,0x69,0x6e,0x67,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x20,0x2d,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x72,0x61,0x74,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x21,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x22,0x3e,0x72,0x65,0x73,0x65,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x61,0x76,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x22,0x3e,0x73,0x61,0x76,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3e,0x3c,0x2f,0x70,0x3e,0x3c,0x62,0x72,0x20,0x5c,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x4e,0x61,0x6d,0x65,0x73,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x64,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x22,0x3e,0x20,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x4d,0x41,0x43,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x56,0x65,0x6e,0x64,0x6f,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x58,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x28,0x29,0x22,0x3e,0x63,0x6c,0x65,0x61,0x72,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x6a,0x73,0x2f,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e}; const static char data_error404[] PROGMEM = "

ERROR 404

¯\\_(ツ)_/¯

"; + +const static uint8_t data_functionsJS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x61,0x64,0x72,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x20,0x7d,0x3b,0x20,0x7d,0x20,0x69,0x66,0x28,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x38,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x76,0x61,0x72,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x58,0x4d,0x4c,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x28,0x29,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x6f,0x6e,0x72,0x65,0x61,0x64,0x79,0x73,0x74,0x61,0x74,0x65,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x20,0x69,0x66,0x28,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x72,0x65,0x61,0x64,0x79,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x20,0x34,0x29,0x7b,0x20,0x69,0x66,0x28,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x20,0x32,0x30,0x30,0x29,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x6f,0x70,0x65,0x6e,0x28,0x22,0x47,0x45,0x54,0x22,0x2c,0x20,0x61,0x64,0x72,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x73,0x65,0x6e,0x64,0x28,0x29,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x6f,0x6e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d}; +const static uint8_t data_indexJS[] PROGMEM = {0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x27,0x74,0x61,0x62,0x6c,0x65,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x46,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x72,0x74,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x4d,0x41,0x43,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x4d,0x41,0x43,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x20,0x26,0x26,0x20,0x21,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x29,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x3b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x27,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x27,0x3b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x72,0x20,0x3e,0x20,0x62,0x2e,0x72,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x72,0x20,0x3c,0x20,0x62,0x2e,0x72,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x3b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x75,0x6d,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x38,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x50,0x41,0x2a,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x34,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x50,0x41,0x32,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x50,0x41,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x37,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x20,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x35,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x45,0x50,0x22,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x20,0x7b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x29,0x3b,0x20,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x49,0x6e,0x66,0x6f,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x61,0x70,0x4d,0x41,0x43,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x27,0x27,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x43,0x68,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x53,0x49,0x44,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x52,0x53,0x53,0x49,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x2e,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x22,0x3e,0x27,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x63,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x73,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x20,0x2b,0x20,0x27,0x20,0x3c,0x6d,0x65,0x74,0x65,0x72,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x20,0x2b,0x20,0x27,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x2d,0x33,0x30,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x2d,0x31,0x30,0x30,0x22,0x20,0x6c,0x6f,0x77,0x3d,0x22,0x2d,0x38,0x30,0x22,0x20,0x68,0x69,0x67,0x68,0x3d,0x22,0x2d,0x36,0x30,0x22,0x20,0x6f,0x70,0x74,0x69,0x6d,0x75,0x6d,0x3d,0x22,0x2d,0x35,0x30,0x22,0x3e,0x3c,0x2f,0x6d,0x65,0x74,0x65,0x72,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x67,0x65,0x74,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x65,0x29,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x65,0x29,0x20,0x7b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x64,0x65,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x61,0x70,0x4d,0x41,0x43,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x6d,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x63,0x61,0x6e,0x28,0x29,0x20,0x7b,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6e,0x53,0x63,0x61,0x6e,0x28,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x29,0x20,0x7b,0x20,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x20,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x74,0x6f,0x70,0x22,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x6e,0x75,0x6d,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x41,0x50,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x20,0x2b,0x20,0x6e,0x75,0x6d,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x26,0x26,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x29,0x20,0x73,0x63,0x61,0x6e,0x28,0x29,0x3b,0x20,0x7d,0x2c,0x20,0x31,0x30,0x30,0x30,0x29,0x3b}; +const static uint8_t data_clientsJS[] PROGMEM = {0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x27,0x74,0x61,0x62,0x6c,0x65,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x74,0x61,0x72,0x74,0x53,0x63,0x61,0x6e,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x61,0x2c,0x20,0x62,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x70,0x20,0x3e,0x20,0x62,0x2e,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x70,0x20,0x3c,0x20,0x62,0x2e,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x3b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x29,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x27,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x20,0x7b,0x20,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x29,0x3b,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x27,0x27,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x50,0x6b,0x74,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x56,0x65,0x6e,0x64,0x6f,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4d,0x41,0x43,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x41,0x50,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x22,0x3e,0x27,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x70,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x76,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x6e,0x20,0x2b,0x20,0x27,0x20,0x3c,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x75,0x65,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x65,0x64,0x69,0x74,0x3c,0x2f,0x61,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x6d,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x61,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x64,0x65,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x20,0x7d,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x20,0x7d,0x2c,0x20,0x36,0x30,0x30,0x30,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x63,0x61,0x6e,0x28,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x74,0x69,0x6d,0x65,0x3d,0x22,0x20,0x2b,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x22,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x72,0x65,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x7d,0x2c,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x2a,0x20,0x31,0x30,0x30,0x30,0x29,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x6e,0x75,0x6d,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x20,0x2b,0x20,0x6e,0x75,0x6d,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x20,0x3a,0x2f,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x69,0x64,0x29,0x20,0x7b,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x4e,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x20,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x64,0x5d,0x2e,0x6d,0x29,0x3b,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x69,0x64,0x3d,0x22,0x20,0x2b,0x20,0x69,0x64,0x20,0x2b,0x20,0x22,0x26,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x20,0x2b,0x20,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b}; +const static uint8_t data_attackJS[] PROGMEM = {0x76,0x61,0x72,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x29,0x5b,0x30,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x4c,0x69,0x73,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x29,0x5b,0x31,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x49,0x6e,0x66,0x6f,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x73,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x74,0x61,0x74,0x75,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x74,0x61,0x72,0x74,0x2f,0x53,0x74,0x6f,0x70,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x61,0x70,0x73,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x6c,0x69,0x3e,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x6c,0x69,0x3e,0x22,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x6c,0x69,0x3e,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x6c,0x69,0x3e,0x22,0x3b,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x61,0x70,0x73,0x3b,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x27,0x3e,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x6e,0x61,0x6d,0x65,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x20,0x22,0x72,0x65,0x61,0x64,0x79,0x22,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x27,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x31,0x65,0x63,0x62,0x31,0x65,0x27,0x3e,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x27,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x30,0x30,0x27,0x3e,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x27,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x27,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x28,0x22,0x20,0x2b,0x20,0x69,0x20,0x2b,0x20,0x22,0x29,0x27,0x3e,0x73,0x74,0x6f,0x70,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x27,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x27,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x28,0x22,0x20,0x2b,0x20,0x69,0x20,0x2b,0x20,0x22,0x29,0x27,0x3e,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x22,0x2f,0x36,0x34,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x58,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x5b,0x69,0x5d,0x20,0x2b,0x20,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x28,0x27,0x20,0x2b,0x20,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x78,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x7d,0x20,0x73,0x73,0x69,0x64,0x4c,0x69,0x73,0x74,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x7d,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x20,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x29,0x3b,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x28,0x6e,0x75,0x6d,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x53,0x74,0x61,0x72,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x20,0x2b,0x20,0x6e,0x75,0x6d,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x36,0x34,0x29,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x53,0x53,0x49,0x44,0x20,0x6c,0x69,0x73,0x74,0x20,0x66,0x75,0x6c,0x6c,0x20,0x3a,0x28,0x22,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x20,0x76,0x61,0x72,0x20,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x6e,0x65,0x77,0x20,0x53,0x53,0x49,0x44,0x3a,0x22,0x29,0x3b,0x20,0x69,0x66,0x20,0x28,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x20,0x2b,0x20,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x36,0x34,0x29,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x53,0x53,0x49,0x44,0x20,0x6c,0x69,0x73,0x74,0x20,0x66,0x75,0x6c,0x6c,0x20,0x3a,0x28,0x22,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x7b,0x20,0x76,0x61,0x72,0x20,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x6e,0x65,0x77,0x20,0x53,0x53,0x49,0x44,0x3a,0x22,0x29,0x3b,0x20,0x69,0x66,0x20,0x28,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x20,0x2b,0x20,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x28,0x6e,0x75,0x6d,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x20,0x2b,0x20,0x6e,0x75,0x6d,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2c,0x20,0x33,0x30,0x30,0x30,0x29,0x3b}; +const static uint8_t data_settingsJS[] PROGMEM = {0x76,0x61,0x72,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x54,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x73,0x69,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x61,0x76,0x65,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x75,0x73,0x65,0x4c,0x65,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x75,0x73,0x65,0x4c,0x65,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x73,0x73,0x69,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x3b,0x20,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x3b,0x20,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x3b,0x20,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x3b,0x20,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x3b,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x3b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3b,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x3b,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x50,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x3b,0x20,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x3b,0x20,0x75,0x73,0x65,0x4c,0x65,0x64,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x75,0x73,0x65,0x4c,0x65,0x64,0x3b,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x3b,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x4e,0x61,0x6d,0x65,0x73,0x20,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x2b,0x20,0x22,0x2f,0x35,0x30,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x4d,0x41,0x43,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x56,0x65,0x6e,0x64,0x6f,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x58,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x66,0x6f,0x72,0x20,0x28,0x76,0x61,0x72,0x20,0x69,0x20,0x3d,0x20,0x30,0x3b,0x20,0x69,0x20,0x3c,0x20,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x69,0x2b,0x2b,0x29,0x20,0x7b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x5d,0x2e,0x6d,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x5d,0x2e,0x76,0x20,0x2b,0x20,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x5d,0x2e,0x6e,0x20,0x2b,0x20,0x27,0x20,0x3c,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x75,0x65,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x27,0x20,0x2b,0x20,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x65,0x64,0x69,0x74,0x3c,0x2f,0x61,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x28,0x27,0x20,0x2b,0x20,0x69,0x20,0x2b,0x20,0x27,0x29,0x22,0x3e,0x78,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x7d,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x54,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x69,0x64,0x29,0x20,0x7b,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x4e,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x20,0x22,0x20,0x2b,0x20,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x64,0x5d,0x2e,0x6d,0x29,0x3b,0x20,0x69,0x66,0x20,0x28,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x65,0x64,0x69,0x74,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x69,0x64,0x3d,0x22,0x20,0x2b,0x20,0x69,0x64,0x20,0x2b,0x20,0x22,0x26,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x20,0x2b,0x20,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x28,0x69,0x64,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x20,0x2b,0x20,0x69,0x64,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x20,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x53,0x61,0x76,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x3f,0x73,0x73,0x69,0x64,0x3d,0x22,0x20,0x2b,0x20,0x73,0x73,0x69,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x3d,0x22,0x20,0x2b,0x20,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x3d,0x22,0x20,0x2b,0x20,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x3d,0x22,0x20,0x2b,0x20,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x3d,0x22,0x20,0x2b,0x20,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x3d,0x22,0x20,0x2b,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3d,0x22,0x20,0x2b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x22,0x20,0x2b,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x3d,0x22,0x20,0x2b,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x3d,0x22,0x20,0x2b,0x20,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x75,0x73,0x65,0x4c,0x65,0x64,0x3d,0x22,0x20,0x2b,0x20,0x75,0x73,0x65,0x4c,0x65,0x64,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x3d,0x22,0x20,0x2b,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x75,0x72,0x6c,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x52,0x65,0x73,0x65,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x28,0x29,0x20,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b}; + const static uint8_t data_styleCSS[] PROGMEM = {0x2f,0x2a,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x2a,0x2f,0x20,0x2a,0x2c,0x20,0x62,0x6f,0x64,0x79,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x61,0x72,0x69,0x61,0x6c,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x34,0x33,0x32,0x39,0x32,0x39,0x3b,0x20,0x7d,0x20,0x68,0x31,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x32,0x70,0x78,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x30,0x2e,0x36,0x65,0x6d,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x32,0x65,0x6d,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x34,0x70,0x78,0x3b,0x20,0x7d,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x38,0x46,0x38,0x46,0x38,0x46,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x33,0x34,0x65,0x6d,0x20,0x30,0x2e,0x33,0x65,0x6d,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x30,0x2e,0x36,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x33,0x35,0x70,0x78,0x3b,0x20,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x7b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x32,0x70,0x78,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x70,0x78,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x41,0x39,0x39,0x44,0x39,0x44,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x35,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x32,0x65,0x6d,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x32,0x70,0x78,0x3b,0x20,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x5d,0x20,0x7b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x20,0x7d,0x20,0x2e,0x77,0x61,0x72,0x6e,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x63,0x32,0x30,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x2e,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x63,0x32,0x30,0x30,0x30,0x30,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x7d,0x20,0x2e,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x30,0x30,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x7d,0x20,0x2e,0x72,0x69,0x67,0x68,0x74,0x20,0x7b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x20,0x72,0x69,0x67,0x68,0x74,0x3b,0x20,0x7d,0x20,0x2e,0x62,0x6f,0x6c,0x64,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x20,0x7d,0x20,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x20,0x7d,0x20,0x2e,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x7d,0x20,0x2e,0x62,0x6c,0x75,0x65,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x20,0x7d,0x20,0x2e,0x73,0x6d,0x61,0x6c,0x6c,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x37,0x32,0x37,0x32,0x37,0x32,0x20,0x7d,0x20,0x2f,0x2a,0x20,0x4e,0x61,0x76,0x69,0x67,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2a,0x2f,0x20,0x6e,0x61,0x76,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x3b,0x20,0x7d,0x20,0x6e,0x61,0x76,0x20,0x61,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x39,0x39,0x39,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x35,0x65,0x6d,0x3b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x20,0x7d,0x20,0x6e,0x61,0x76,0x20,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x30,0x66,0x30,0x66,0x30,0x3b,0x20,0x7d,0x20,0x2f,0x2a,0x20,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2a,0x2f,0x20,0x23,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x33,0x34,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x7b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x39,0x36,0x30,0x70,0x78,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x32,0x32,0x32,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x32,0x32,0x32,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x30,0x66,0x30,0x66,0x30,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x64,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x30,0x66,0x30,0x66,0x30,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x2c,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x64,0x20,0x7b,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x31,0x65,0x6d,0x20,0x30,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x64,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x31,0x31,0x61,0x34,0x63,0x63,0x3b,0x20,0x7d,0x20,0x2f,0x2a,0x20,0x53,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x2a,0x2f,0x20,0x23,0x73,0x61,0x76,0x65,0x64,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x20,0x7d,0x20,0x23,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x31,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x23,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x33,0x30,0x70,0x78,0x3b,0x20,0x7d,0x20,0x23,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x20,0x7b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x20,0x7d,0x20,0x23,0x61,0x70,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x31,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x23,0x72,0x73,0x73,0x69,0x42,0x61,0x72,0x20,0x7b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x70,0x78,0x3b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x7d,0x20,0x23,0x72,0x73,0x73,0x69,0x42,0x61,0x72,0x20,0x3e,0x20,0x64,0x69,0x76,0x20,0x7b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x35,0x32,0x70,0x78,0x3b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x63,0x32,0x30,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x23,0x77,0x70,0x61,0x5f,0x69,0x6e,0x66,0x6f,0x20,0x7b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x30,0x2e,0x33,0x34,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x23,0x73,0x61,0x76,0x65,0x64,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x20,0x7d}; -const static uint8_t data_functionsJS[] PROGMEM = {0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x61,0x64,0x72,0x2c,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x7d,0x2c,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x38,0x30,0x30,0x30,0x29,0x7b,0x20,0x76,0x61,0x72,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x20,0x3d,0x20,0x6e,0x65,0x77,0x20,0x58,0x4d,0x4c,0x48,0x74,0x74,0x70,0x52,0x65,0x71,0x75,0x65,0x73,0x74,0x28,0x29,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x6f,0x6e,0x72,0x65,0x61,0x64,0x79,0x73,0x74,0x61,0x74,0x65,0x63,0x68,0x61,0x6e,0x67,0x65,0x20,0x3d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x20,0x7b,0x20,0x69,0x66,0x28,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x72,0x65,0x61,0x64,0x79,0x53,0x74,0x61,0x74,0x65,0x20,0x3d,0x3d,0x20,0x34,0x29,0x7b,0x20,0x69,0x66,0x28,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x20,0x32,0x30,0x30,0x29,0x20,0x63,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x28,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x6f,0x70,0x65,0x6e,0x28,0x22,0x47,0x45,0x54,0x22,0x2c,0x20,0x61,0x64,0x72,0x2c,0x20,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x73,0x65,0x6e,0x64,0x28,0x29,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3b,0x20,0x78,0x6d,0x6c,0x68,0x74,0x74,0x70,0x2e,0x6f,0x6e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x43,0x61,0x6c,0x6c,0x62,0x61,0x63,0x6b,0x3b,0x20,0x7d}; const static uint8_t data_manifest[] PROGMEM = {0x7b,0x20,0x22,0x73,0x69,0x74,0x65,0x73,0x22,0x3a,0x5b,0x20,0x22,0x65,0x72,0x72,0x6f,0x72,0x34,0x30,0x34,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x2c,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x2c,0x20,0x22,0x69,0x6e,0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x20,0x5d,0x2c,0x20,0x22,0x6a,0x73,0x6f,0x6e,0x22,0x3a,0x5b,0x20,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x49,0x6e,0x66,0x6f,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x20,0x5d,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x73,0x22,0x3a,0x5b,0x20,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x41,0x50,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x53,0x74,0x61,0x72,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x53,0x61,0x76,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x52,0x65,0x73,0x65,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x65,0x64,0x69,0x74,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x20,0x5d,0x20,0x7d}; -const static uint8_t data_indexHTML[] PROGMEM = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x61,0x76,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x53,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x57,0x69,0x46,0x69,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x73,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x63,0x61,0x6e,0x28,0x29,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x72,0x74,0x22,0x3e,0x73,0x63,0x61,0x6e,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x61,0x20,0x69,0x64,0x3d,0x22,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x22,0x3e,0x73,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x46,0x6f,0x75,0x6e,0x64,0x22,0x3e,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x30,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x20,0x4d,0x41,0x43,0x3a,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x4d,0x41,0x43,0x22,0x3e,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x20,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x20,0x69,0x64,0x3d,0x22,0x77,0x70,0x61,0x5f,0x69,0x6e,0x66,0x6f,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x57,0x50,0x41,0x2a,0x20,0x3d,0x20,0x57,0x50,0x41,0x2f,0x57,0x50,0x41,0x32,0x20,0x61,0x75,0x74,0x6f,0x20,0x6d,0x6f,0x64,0x65,0x20,0x3c,0x62,0x72,0x3e,0x20,0x63,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x6f,0x75,0x73,0x20,0x73,0x63,0x61,0x6e,0x3a,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6e,0x53,0x63,0x61,0x6e,0x28,0x29,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x22,0x3e,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x27,0x74,0x61,0x62,0x6c,0x65,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x46,0x6f,0x75,0x6e,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x72,0x74,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x4d,0x41,0x43,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x4d,0x41,0x43,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x29,0x7b,0x20,0x69,0x66,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x20,0x26,0x26,0x20,0x21,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x29,0x7b,0x20,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x3b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x27,0x3b,0x20,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x20,0x73,0x63,0x61,0x6e,0x49,0x6e,0x66,0x6f,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x27,0x3b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x61,0x2c,0x62,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x72,0x20,0x3e,0x20,0x62,0x2e,0x72,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x72,0x20,0x3c,0x20,0x62,0x2e,0x72,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x3b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x28,0x6e,0x75,0x6d,0x29,0x7b,0x20,0x69,0x66,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x38,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x50,0x41,0x2a,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x34,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x50,0x41,0x32,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x32,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x50,0x41,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x37,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x6e,0x6f,0x6e,0x65,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x69,0x66,0x28,0x6e,0x75,0x6d,0x20,0x3d,0x3d,0x20,0x35,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x22,0x57,0x45,0x50,0x22,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x7b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x29,0x3b,0x20,0x6e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x49,0x6e,0x66,0x6f,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x4e,0x65,0x74,0x77,0x6f,0x72,0x6b,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x61,0x70,0x4d,0x41,0x43,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x27,0x27,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x43,0x68,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x53,0x49,0x44,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x52,0x53,0x53,0x49,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x2e,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x65,0x20,0x3d,0x3d,0x20,0x31,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x22,0x3e,0x27,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x63,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x73,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x2b,0x27,0x20,0x3c,0x6d,0x65,0x74,0x65,0x72,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x27,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x2b,0x27,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x2d,0x33,0x30,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x2d,0x31,0x30,0x30,0x22,0x20,0x6c,0x6f,0x77,0x3d,0x22,0x2d,0x38,0x30,0x22,0x20,0x68,0x69,0x67,0x68,0x3d,0x22,0x2d,0x36,0x30,0x22,0x20,0x6f,0x70,0x74,0x69,0x6d,0x75,0x6d,0x3d,0x22,0x2d,0x35,0x30,0x22,0x3e,0x3c,0x2f,0x6d,0x65,0x74,0x65,0x72,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x67,0x65,0x74,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x65,0x29,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x65,0x29,0x7b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x2b,0x27,0x29,0x22,0x3e,0x64,0x65,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x61,0x70,0x4d,0x41,0x43,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x6d,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x2b,0x27,0x29,0x22,0x3e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x63,0x61,0x6e,0x28,0x29,0x7b,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x43,0x6f,0x6e,0x53,0x63,0x61,0x6e,0x28,0x29,0x7b,0x20,0x69,0x66,0x28,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x29,0x7b,0x20,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x74,0x61,0x72,0x74,0x22,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x20,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x3d,0x20,0x74,0x72,0x75,0x65,0x3b,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x53,0x63,0x61,0x6e,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x74,0x6f,0x70,0x22,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x6e,0x75,0x6d,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x41,0x50,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x2b,0x6e,0x75,0x6d,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x20,0x69,0x66,0x28,0x61,0x75,0x74,0x6f,0x53,0x63,0x61,0x6e,0x20,0x26,0x26,0x20,0x63,0x61,0x6e,0x53,0x63,0x61,0x6e,0x29,0x20,0x73,0x63,0x61,0x6e,0x28,0x29,0x3b,0x20,0x7d,0x2c,0x31,0x30,0x30,0x30,0x29,0x3b,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x20}; -const static uint8_t data_clientsHTML[] PROGMEM = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x61,0x76,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x53,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x3e,0x53,0x63,0x61,0x6e,0x20,0x74,0x69,0x6d,0x65,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x31,0x30,0x22,0x3e,0x73,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x63,0x61,0x6e,0x28,0x29,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x72,0x74,0x53,0x63,0x61,0x6e,0x22,0x3e,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x61,0x20,0x69,0x64,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x22,0x3e,0x72,0x65,0x61,0x64,0x79,0x21,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x74,0x61,0x74,0x75,0x73,0x22,0x3e,0x41,0x50,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x6f,0x66,0x66,0x20,0x77,0x68,0x69,0x6c,0x65,0x20,0x73,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x21,0x3c,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x30,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x27,0x74,0x61,0x62,0x6c,0x65,0x27,0x29,0x5b,0x30,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x74,0x61,0x72,0x74,0x53,0x63,0x61,0x6e,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x28,0x61,0x2c,0x62,0x29,0x20,0x7b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x70,0x20,0x3e,0x20,0x62,0x2e,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x2d,0x31,0x3b,0x20,0x69,0x66,0x20,0x28,0x61,0x2e,0x70,0x20,0x3c,0x20,0x62,0x2e,0x70,0x29,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x31,0x3b,0x20,0x72,0x65,0x74,0x75,0x72,0x6e,0x20,0x30,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x29,0x7b,0x20,0x69,0x66,0x28,0x6f,0x6e,0x6f,0x66,0x66,0x29,0x7b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x27,0x3b,0x20,0x7d,0x65,0x6c,0x73,0x65,0x7b,0x20,0x73,0x63,0x61,0x6e,0x42,0x74,0x6e,0x2e,0x73,0x74,0x79,0x6c,0x65,0x2e,0x76,0x69,0x73,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x20,0x3d,0x20,0x27,0x68,0x69,0x64,0x64,0x65,0x6e,0x27,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x3d,0x3d,0x20,0x75,0x6e,0x64,0x65,0x66,0x69,0x6e,0x65,0x64,0x29,0x7b,0x20,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x20,0x66,0x61,0x6c,0x73,0x65,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x73,0x6f,0x72,0x74,0x28,0x63,0x6f,0x6d,0x70,0x61,0x72,0x65,0x29,0x3b,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x46,0x6f,0x75,0x6e,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x64,0x65,0x76,0x69,0x63,0x65,0x73,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x22,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x27,0x27,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x20,0x30,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x50,0x6b,0x74,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x56,0x65,0x6e,0x64,0x6f,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4d,0x41,0x43,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x41,0x50,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x22,0x3e,0x27,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x70,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x76,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x6e,0x2b,0x27,0x20,0x3c,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x75,0x65,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x2b,0x27,0x29,0x22,0x3e,0x65,0x64,0x69,0x74,0x3c,0x2f,0x61,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x6d,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x61,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x20,0x3d,0x3d,0x20,0x31,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x2b,0x27,0x29,0x22,0x3e,0x64,0x65,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x27,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2e,0x69,0x2b,0x27,0x29,0x22,0x3e,0x73,0x65,0x6c,0x65,0x63,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x6c,0x6f,0x61,0x64,0x20,0x3d,0x3d,0x20,0x74,0x72,0x75,0x65,0x29,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x20,0x7d,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x20,0x7d,0x2c,0x36,0x30,0x30,0x30,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x63,0x61,0x6e,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x74,0x69,0x6d,0x65,0x3d,0x22,0x2b,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x7b,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x63,0x61,0x6e,0x6e,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x22,0x3b,0x20,0x74,0x6f,0x67,0x67,0x6c,0x65,0x42,0x74,0x6e,0x28,0x66,0x61,0x6c,0x73,0x65,0x29,0x3b,0x20,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x20,0x73,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x72,0x65,0x63,0x6f,0x6e,0x6e,0x65,0x63,0x74,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x74,0x72,0x75,0x65,0x29,0x3b,0x20,0x7d,0x2c,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x2a,0x31,0x30,0x30,0x30,0x29,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x28,0x6e,0x75,0x6d,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x2b,0x6e,0x75,0x6d,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x20,0x3a,0x2f,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x69,0x64,0x29,0x7b,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x4e,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x20,0x22,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x64,0x5d,0x2e,0x6d,0x29,0x3b,0x20,0x69,0x66,0x28,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x69,0x64,0x3d,0x22,0x2b,0x69,0x64,0x2b,0x22,0x26,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x2b,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e}; -const static uint8_t data_attackHTML[] PROGMEM = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6e,0x61,0x76,0x20,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x41,0x50,0x3a,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x22,0x3e,0x20,0x3c,0x2f,0x75,0x6c,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x53,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3a,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x69,0x64,0x3d,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x3e,0x20,0x3c,0x2f,0x75,0x6c,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x5b,0x64,0x65,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x5d,0x3a,0x3c,0x2f,0x62,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x53,0x65,0x6e,0x64,0x73,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x61,0x6e,0x64,0x20,0x64,0x69,0x73,0x73,0x6f,0x63,0x69,0x61,0x74,0x69,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x74,0x6f,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x28,0x73,0x29,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x57,0x69,0x46,0x69,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x28,0x73,0x29,0x2e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x4e,0x6f,0x74,0x65,0x3a,0x20,0x3c,0x2f,0x62,0x3e,0x20,0x49,0x66,0x20,0x6e,0x6f,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x20,0x69,0x73,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x73,0x20,0x61,0x72,0x65,0x20,0x73,0x65,0x6e,0x74,0x20,0x61,0x73,0x20,0x62,0x72,0x6f,0x61,0x64,0x63,0x61,0x73,0x74,0x21,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x5b,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x66,0x6c,0x6f,0x6f,0x64,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x5d,0x3a,0x3c,0x2f,0x62,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x28,0x63,0x6c,0x6f,0x6e,0x65,0x3a,0x29,0x20,0x53,0x70,0x61,0x6d,0x73,0x20,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x20,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x20,0x53,0x53,0x49,0x44,0x20,0x61,0x73,0x20,0x74,0x68,0x65,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x57,0x69,0x46,0x69,0x20,0x61,0x63,0x63,0x65,0x73,0x73,0x20,0x70,0x6f,0x69,0x6e,0x74,0x28,0x73,0x29,0x2e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x28,0x6c,0x69,0x73,0x74,0x3a,0x29,0x20,0x53,0x70,0x61,0x6d,0x73,0x20,0x62,0x65,0x61,0x63,0x6f,0x6e,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6c,0x6c,0x20,0x53,0x53,0x49,0x44,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x62,0x65,0x6c,0x6f,0x77,0x2e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x3e,0x70,0x72,0x6f,0x62,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x5b,0x70,0x72,0x6f,0x62,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x66,0x6c,0x6f,0x6f,0x64,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x5d,0x3a,0x3c,0x2f,0x62,0x3e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x53,0x70,0x61,0x6d,0x73,0x20,0x70,0x72,0x6f,0x62,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74,0x20,0x66,0x72,0x61,0x6d,0x65,0x73,0x20,0x77,0x69,0x74,0x68,0x20,0x61,0x6c,0x6c,0x20,0x53,0x53,0x49,0x44,0x73,0x20,0x69,0x6e,0x20,0x74,0x68,0x65,0x20,0x6c,0x69,0x73,0x74,0x20,0x62,0x65,0x6c,0x6f,0x77,0x2e,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x55,0x73,0x65,0x66,0x75,0x6c,0x6c,0x20,0x74,0x6f,0x20,0x63,0x6f,0x6e,0x66,0x75,0x73,0x65,0x20,0x61,0x6e,0x64,0x20,0x73,0x70,0x61,0x6d,0x20,0x57,0x69,0x46,0x69,0x20,0x74,0x72,0x61,0x63,0x6b,0x65,0x72,0x73,0x2e,0x20,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x53,0x53,0x49,0x44,0x73,0x3a,0x20,0x3c,0x73,0x70,0x61,0x6e,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x22,0x3e,0x30,0x2f,0x36,0x34,0x3c,0x2f,0x73,0x70,0x61,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x63,0x6c,0x65,0x61,0x72,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x63,0x6c,0x6f,0x6e,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x61,0x64,0x64,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x72,0x65,0x73,0x65,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x22,0x3e,0x73,0x61,0x76,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3e,0x73,0x61,0x76,0x65,0x64,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x76,0x61,0x72,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x29,0x5b,0x30,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x4c,0x69,0x73,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x42,0x79,0x54,0x61,0x67,0x4e,0x61,0x6d,0x65,0x28,0x22,0x74,0x61,0x62,0x6c,0x65,0x22,0x29,0x5b,0x31,0x5d,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x22,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x22,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x49,0x6e,0x66,0x6f,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x73,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x74,0x61,0x74,0x75,0x73,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x53,0x74,0x61,0x72,0x74,0x2f,0x53,0x74,0x6f,0x70,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x20,0x61,0x70,0x73,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x6c,0x69,0x3e,0x22,0x2b,0x72,0x65,0x73,0x2e,0x61,0x70,0x73,0x5b,0x69,0x5d,0x2b,0x22,0x3c,0x2f,0x6c,0x69,0x3e,0x22,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x6c,0x69,0x3e,0x22,0x2b,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x5b,0x69,0x5d,0x2b,0x22,0x3c,0x2f,0x6c,0x69,0x3e,0x22,0x3b,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x41,0x50,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x61,0x70,0x73,0x3b,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x72,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x27,0x3e,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x22,0x2b,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x6e,0x61,0x6d,0x65,0x2b,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x20,0x3d,0x3d,0x20,0x22,0x72,0x65,0x61,0x64,0x79,0x22,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x27,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x31,0x65,0x63,0x62,0x31,0x65,0x27,0x3e,0x22,0x2b,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2b,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x20,0x73,0x74,0x79,0x6c,0x65,0x3d,0x27,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x23,0x66,0x30,0x30,0x27,0x3e,0x22,0x2b,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x73,0x74,0x61,0x74,0x75,0x73,0x2b,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x73,0x5b,0x69,0x5d,0x2e,0x72,0x75,0x6e,0x6e,0x69,0x6e,0x67,0x29,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x27,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x27,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x28,0x22,0x2b,0x69,0x2b,0x22,0x29,0x27,0x3e,0x73,0x74,0x6f,0x70,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x27,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x27,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x27,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x28,0x22,0x2b,0x69,0x2b,0x22,0x29,0x27,0x3e,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x73,0x73,0x69,0x64,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x22,0x2f,0x36,0x34,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x58,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x72,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x74,0x64,0x3e,0x22,0x2b,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x5b,0x69,0x5d,0x2b,0x22,0x3c,0x2f,0x74,0x64,0x3e,0x22,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x28,0x27,0x2b,0x69,0x2b,0x27,0x29,0x22,0x3e,0x78,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x22,0x3c,0x2f,0x74,0x72,0x3e,0x22,0x3b,0x20,0x7d,0x20,0x73,0x73,0x69,0x64,0x4c,0x69,0x73,0x74,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x7d,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x29,0x7b,0x20,0x63,0x6c,0x65,0x61,0x72,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x72,0x65,0x73,0x75,0x6c,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x29,0x3b,0x20,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x72,0x65,0x6c,0x6f,0x61,0x64,0x28,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x74,0x61,0x72,0x74,0x53,0x74,0x6f,0x70,0x28,0x6e,0x75,0x6d,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x53,0x74,0x61,0x72,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x2b,0x6e,0x75,0x6d,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x36,0x34,0x29,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x53,0x53,0x49,0x44,0x20,0x6c,0x69,0x73,0x74,0x20,0x66,0x75,0x6c,0x6c,0x20,0x3a,0x28,0x22,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x7b,0x20,0x76,0x61,0x72,0x20,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x6e,0x65,0x77,0x20,0x53,0x53,0x49,0x44,0x3a,0x22,0x29,0x3b,0x20,0x69,0x66,0x28,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x2b,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x20,0x3e,0x3d,0x20,0x36,0x34,0x29,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x53,0x53,0x49,0x44,0x20,0x6c,0x69,0x73,0x74,0x20,0x66,0x75,0x6c,0x6c,0x20,0x3a,0x28,0x22,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x7b,0x20,0x76,0x61,0x72,0x20,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x6e,0x65,0x77,0x20,0x53,0x53,0x49,0x44,0x3a,0x22,0x29,0x3b,0x20,0x69,0x66,0x28,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x2b,0x5f,0x73,0x73,0x69,0x64,0x4e,0x61,0x6d,0x65,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x28,0x6e,0x75,0x6d,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x2b,0x6e,0x75,0x6d,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x28,0x29,0x3b,0x20,0x72,0x65,0x73,0x75,0x6c,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x20,0x3d,0x20,0x73,0x65,0x74,0x49,0x6e,0x74,0x65,0x72,0x76,0x61,0x6c,0x28,0x67,0x65,0x74,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2c,0x33,0x30,0x30,0x30,0x29,0x3b,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e}; -const static uint8_t data_settingsHTML[] PROGMEM = {0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x63,0x68,0x61,0x72,0x73,0x65,0x74,0x3d,0x22,0x75,0x74,0x66,0x2d,0x38,0x22,0x3e,0x20,0x3c,0x6c,0x69,0x6e,0x6b,0x20,0x72,0x65,0x6c,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x73,0x68,0x65,0x65,0x74,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x20,0x73,0x72,0x63,0x3d,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x3e,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x6d,0x65,0x74,0x61,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x76,0x69,0x65,0x77,0x70,0x6f,0x72,0x74,0x22,0x20,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x3d,0x22,0x77,0x69,0x64,0x74,0x68,0x3d,0x64,0x65,0x76,0x69,0x63,0x65,0x2d,0x77,0x69,0x64,0x74,0x68,0x2c,0x20,0x69,0x6e,0x69,0x74,0x69,0x61,0x6c,0x2d,0x73,0x63,0x61,0x6c,0x65,0x3d,0x30,0x2e,0x38,0x22,0x3e,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x20,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x50,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x72,0x69,0x67,0x68,0x74,0x22,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x23,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x22,0x3e,0x52,0x65,0x73,0x74,0x61,0x72,0x74,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x75,0x6c,0x3e,0x20,0x3c,0x2f,0x6e,0x61,0x76,0x3e,0x20,0x3c,0x64,0x69,0x76,0x20,0x69,0x64,0x3d,0x22,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x22,0x3e,0x20,0x3c,0x68,0x31,0x3e,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x3c,0x2f,0x68,0x31,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x57,0x69,0x46,0x69,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x73,0x69,0x64,0x22,0x3e,0x53,0x53,0x49,0x44,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x22,0x20,0x6d,0x69,0x6e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x33,0x32,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x68,0x69,0x64,0x64,0x65,0x6e,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x22,0x3e,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x22,0x20,0x6d,0x69,0x6e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x38,0x22,0x20,0x6d,0x61,0x78,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3d,0x22,0x33,0x32,0x22,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x6d,0x75,0x73,0x74,0x20,0x68,0x61,0x76,0x65,0x20,0x61,0x74,0x20,0x6c,0x65,0x61,0x73,0x74,0x20,0x38,0x20,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x21,0x20,0x28,0x6e,0x65,0x65,0x64,0x73,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x29,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x22,0x3e,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x31,0x31,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x41,0x50,0x20,0x73,0x63,0x61,0x6e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x3e,0x73,0x63,0x61,0x6e,0x20,0x66,0x6f,0x72,0x20,0x68,0x69,0x64,0x64,0x65,0x6e,0x20,0x41,0x50,0x73,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x69,0x64,0x3d,0x22,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x53,0x63,0x61,0x6e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x3e,0x64,0x65,0x66,0x61,0x75,0x6c,0x74,0x20,0x73,0x63,0x61,0x6e,0x20,0x74,0x69,0x6d,0x65,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x32,0x35,0x35,0x22,0x3e,0x73,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x3e,0x41,0x74,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x22,0x3e,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x2d,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x36,0x35,0x35,0x33,0x36,0x22,0x3e,0x73,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x30,0x20,0x3d,0x20,0x6e,0x6f,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x22,0x3e,0x57,0x50,0x41,0x32,0x20,0x62,0x65,0x61,0x63,0x6f,0x6e,0x73,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x75,0x73,0x65,0x4c,0x65,0x64,0x22,0x3e,0x75,0x73,0x65,0x20,0x4c,0x45,0x44,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x75,0x73,0x65,0x4c,0x65,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x75,0x73,0x65,0x4c,0x65,0x64,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x22,0x3e,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x72,0x65,0x61,0x73,0x6f,0x6e,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x34,0x35,0x22,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x72,0x65,0x61,0x73,0x6f,0x6e,0x20,0x63,0x6f,0x64,0x65,0x73,0x3a,0x20,0x3c,0x61,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x22,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x22,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x61,0x62,0x6f,0x75,0x74,0x63,0x68,0x65,0x72,0x2e,0x63,0x6f,0x2e,0x75,0x6b,0x2f,0x32,0x30,0x31,0x32,0x2f,0x30,0x37,0x2f,0x6c,0x69,0x6e,0x75,0x78,0x2d,0x77,0x69,0x66,0x69,0x2d,0x64,0x65,0x61,0x75,0x74,0x68,0x65,0x6e,0x74,0x69,0x63,0x61,0x74,0x65,0x64,0x2d,0x72,0x65,0x61,0x73,0x6f,0x6e,0x2d,0x63,0x6f,0x64,0x65,0x73,0x2f,0x22,0x3e,0x63,0x6c,0x69,0x63,0x6b,0x3c,0x2f,0x61,0x3e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x22,0x3e,0x70,0x61,0x63,0x6b,0x65,0x74,0x72,0x61,0x74,0x65,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x6e,0x75,0x6d,0x62,0x65,0x72,0x22,0x20,0x69,0x64,0x3d,0x22,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x22,0x20,0x6d,0x69,0x6e,0x3d,0x22,0x31,0x22,0x20,0x6d,0x61,0x78,0x3d,0x22,0x31,0x30,0x30,0x22,0x3e,0x70,0x6b,0x74,0x73,0x2f,0x73,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x20,0x2d,0x20,0x6d,0x61,0x79,0x20,0x63,0x61,0x75,0x73,0x65,0x20,0x69,0x6e,0x73,0x74,0x61,0x62,0x69,0x6c,0x69,0x74,0x79,0x21,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x6c,0x61,0x62,0x65,0x6c,0x20,0x66,0x6f,0x72,0x3d,0x22,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x22,0x3e,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x68,0x6f,0x70,0x70,0x69,0x6e,0x67,0x3a,0x3c,0x2f,0x6c,0x61,0x62,0x65,0x6c,0x3e,0x20,0x3c,0x69,0x6e,0x70,0x75,0x74,0x20,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x22,0x20,0x76,0x61,0x6c,0x75,0x65,0x3d,0x22,0x66,0x61,0x6c,0x73,0x65,0x22,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x3e,0x6f,0x6e,0x6c,0x79,0x20,0x66,0x6f,0x72,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x20,0x61,0x74,0x74,0x61,0x63,0x6b,0x20,0x2d,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x72,0x61,0x74,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x62,0x65,0x20,0x69,0x67,0x6e,0x6f,0x72,0x65,0x64,0x21,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x22,0x3e,0x72,0x65,0x73,0x65,0x74,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x73,0x61,0x76,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x22,0x3e,0x73,0x61,0x76,0x65,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x73,0x6d,0x61,0x6c,0x6c,0x22,0x20,0x69,0x64,0x3d,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3e,0x3c,0x2f,0x70,0x3e,0x3c,0x62,0x72,0x20,0x5c,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x70,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x62,0x6f,0x6c,0x64,0x22,0x20,0x69,0x64,0x3d,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x22,0x3e,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x4e,0x61,0x6d,0x65,0x73,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x20,0x69,0x64,0x3d,0x22,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x22,0x3e,0x20,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x4d,0x41,0x43,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x56,0x65,0x6e,0x64,0x6f,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x58,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x62,0x72,0x20,0x2f,0x3e,0x20,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x28,0x29,0x22,0x3e,0x63,0x6c,0x65,0x61,0x72,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x70,0x3e,0x20,0x3c,0x2f,0x64,0x69,0x76,0x3e,0x20,0x3c,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x20,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x20,0x3c,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x76,0x61,0x72,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x54,0x61,0x62,0x6c,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x73,0x69,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x61,0x76,0x65,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x61,0x76,0x65,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x75,0x73,0x65,0x4c,0x65,0x64,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x75,0x73,0x65,0x4c,0x65,0x64,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x20,0x3d,0x20,0x64,0x6f,0x63,0x75,0x6d,0x65,0x6e,0x74,0x2e,0x67,0x65,0x74,0x45,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x42,0x79,0x49,0x64,0x28,0x27,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x27,0x29,0x3b,0x20,0x76,0x61,0x72,0x20,0x72,0x65,0x73,0x3b,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x72,0x65,0x73,0x20,0x3d,0x20,0x4a,0x53,0x4f,0x4e,0x2e,0x70,0x61,0x72,0x73,0x65,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x3b,0x20,0x73,0x73,0x69,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x3b,0x20,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x3b,0x20,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x3b,0x20,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x3b,0x20,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x3b,0x20,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x3b,0x20,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3b,0x20,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x3b,0x20,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x50,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x3b,0x20,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x61,0x74,0x74,0x61,0x63,0x6b,0x45,0x6e,0x63,0x72,0x79,0x70,0x74,0x65,0x64,0x3b,0x20,0x75,0x73,0x65,0x4c,0x65,0x64,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x75,0x73,0x65,0x4c,0x65,0x64,0x3b,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x20,0x3d,0x20,0x72,0x65,0x73,0x2e,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x3b,0x20,0x63,0x6c,0x69,0x65,0x6e,0x74,0x4e,0x61,0x6d,0x65,0x73,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x20,0x4e,0x61,0x6d,0x65,0x73,0x20,0x22,0x2b,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x2b,0x22,0x2f,0x35,0x30,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x74,0x72,0x20,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x3c,0x74,0x68,0x3e,0x4d,0x41,0x43,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x56,0x65,0x6e,0x64,0x6f,0x72,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x4e,0x61,0x6d,0x65,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x74,0x68,0x3e,0x58,0x3c,0x2f,0x74,0x68,0x3e,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x66,0x6f,0x72,0x28,0x76,0x61,0x72,0x20,0x69,0x3d,0x30,0x3b,0x69,0x3c,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6c,0x65,0x6e,0x67,0x74,0x68,0x3b,0x69,0x2b,0x2b,0x29,0x7b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x72,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x5d,0x2e,0x6d,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x5d,0x2e,0x76,0x2b,0x27,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x27,0x2b,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x5d,0x2e,0x6e,0x2b,0x27,0x20,0x3c,0x61,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x62,0x6c,0x75,0x65,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x27,0x2b,0x69,0x2b,0x27,0x29,0x22,0x3e,0x65,0x64,0x69,0x74,0x3c,0x2f,0x61,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x74,0x64,0x3e,0x3c,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x63,0x6c,0x61,0x73,0x73,0x3d,0x22,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x22,0x20,0x6f,0x6e,0x63,0x6c,0x69,0x63,0x6b,0x3d,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x28,0x27,0x2b,0x69,0x2b,0x27,0x29,0x22,0x3e,0x78,0x3c,0x2f,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3e,0x3c,0x2f,0x74,0x64,0x3e,0x27,0x3b,0x20,0x74,0x72,0x20,0x2b,0x3d,0x20,0x27,0x3c,0x2f,0x74,0x72,0x3e,0x27,0x3b,0x20,0x7d,0x20,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x54,0x61,0x62,0x6c,0x65,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x74,0x72,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x68,0x61,0x6e,0x67,0x65,0x4e,0x61,0x6d,0x65,0x28,0x69,0x64,0x29,0x7b,0x20,0x76,0x61,0x72,0x20,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x3d,0x20,0x70,0x72,0x6f,0x6d,0x70,0x74,0x28,0x22,0x4e,0x61,0x6d,0x65,0x20,0x66,0x6f,0x72,0x20,0x22,0x2b,0x72,0x65,0x73,0x2e,0x6e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x5b,0x69,0x64,0x5d,0x2e,0x6d,0x29,0x3b,0x20,0x69,0x66,0x28,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x20,0x21,0x3d,0x20,0x6e,0x75,0x6c,0x6c,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x65,0x64,0x69,0x74,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x69,0x64,0x3d,0x22,0x2b,0x69,0x64,0x2b,0x22,0x26,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x2b,0x6e,0x65,0x77,0x4e,0x61,0x6d,0x65,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x28,0x69,0x64,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x3f,0x6e,0x75,0x6d,0x3d,0x22,0x2b,0x69,0x64,0x2c,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x73,0x61,0x76,0x65,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x7b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x69,0x6e,0x67,0x2e,0x2e,0x2e,0x22,0x3b,0x20,0x76,0x61,0x72,0x20,0x75,0x72,0x6c,0x20,0x3d,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x53,0x61,0x76,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x3f,0x73,0x73,0x69,0x64,0x3d,0x22,0x2b,0x73,0x73,0x69,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x3d,0x22,0x2b,0x73,0x73,0x69,0x64,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x3d,0x22,0x2b,0x70,0x61,0x73,0x73,0x77,0x6f,0x72,0x64,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x3d,0x22,0x2b,0x61,0x70,0x43,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x3d,0x22,0x2b,0x61,0x70,0x53,0x63,0x61,0x6e,0x48,0x69,0x64,0x64,0x65,0x6e,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x3d,0x22,0x2b,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x3d,0x22,0x2b,0x74,0x69,0x6d,0x65,0x6f,0x75,0x74,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x3d,0x22,0x2b,0x64,0x65,0x61,0x75,0x74,0x68,0x52,0x65,0x61,0x73,0x6f,0x6e,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x3d,0x22,0x2b,0x70,0x61,0x63,0x6b,0x65,0x74,0x52,0x61,0x74,0x65,0x2e,0x76,0x61,0x6c,0x75,0x65,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x3d,0x22,0x2b,0x73,0x73,0x69,0x64,0x45,0x6e,0x63,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x75,0x73,0x65,0x4c,0x65,0x64,0x3d,0x22,0x2b,0x75,0x73,0x65,0x4c,0x65,0x64,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x75,0x72,0x6c,0x20,0x2b,0x3d,0x20,0x22,0x26,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x3d,0x22,0x2b,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x48,0x6f,0x70,0x2e,0x63,0x68,0x65,0x63,0x6b,0x65,0x64,0x3b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x75,0x72,0x6c,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x7b,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x65,0x74,0x53,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x52,0x65,0x73,0x65,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x7b,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x73,0x61,0x76,0x65,0x64,0x2e,0x69,0x6e,0x6e,0x65,0x72,0x48,0x54,0x4d,0x4c,0x20,0x3d,0x20,0x22,0x73,0x61,0x76,0x65,0x64,0x22,0x3b,0x20,0x7d,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x28,0x29,0x7b,0x20,0x67,0x65,0x74,0x52,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x28,0x22,0x72,0x65,0x73,0x74,0x61,0x72,0x74,0x45,0x53,0x50,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x29,0x7b,0x20,0x69,0x66,0x28,0x72,0x65,0x73,0x70,0x6f,0x6e,0x73,0x65,0x54,0x65,0x78,0x74,0x20,0x3d,0x3d,0x20,0x22,0x74,0x72,0x75,0x65,0x22,0x29,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x65,0x6c,0x73,0x65,0x20,0x61,0x6c,0x65,0x72,0x74,0x28,0x22,0x65,0x72,0x72,0x6f,0x72,0x22,0x29,0x3b,0x20,0x7d,0x29,0x3b,0x20,0x7d,0x20,0x67,0x65,0x74,0x44,0x61,0x74,0x61,0x28,0x29,0x3b,0x20,0x3c,0x2f,0x73,0x63,0x72,0x69,0x70,0x74,0x3e,0x20,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e}; - /* Based on Wireshark manufacturer database source: https://www.wireshark.org/tools/oui-lookup.html @@ -22944,6 +22949,8 @@ String data_getVendor(uint8_t first,uint8_t second,uint8_t third){ return data_vendorStrBuffer; } +/*/////////////////////////////// HTML files //////////////////////////////////*/ + char* data_getIndexHTML(){ int _size = sizeof(data_indexHTML); for(int i=0;i= 1 && server.arg("apChannel").toInt() <= 11){ + if(server.arg("apChannel").toInt() >= 1 && server.arg("apChannel").toInt() <= 14){ settings.apChannel = server.arg("apChannel").toInt(); } } diff --git a/htmlfiles/attack.html b/htmlfiles/attack.html deleted file mode 100644 index 5833f136..00000000 --- a/htmlfiles/attack.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - - - -
-

Attack

- -

Selected AP:

-
    -
- -
- -

Selected Clients:

-
    -
- -
- - -
- -

-
- deauth [deauthentication attack]:
- Sends deauthentication frames and dissociation frames to the selected client(s) in the selected WiFi access point(s). -
- Note: - If no client is selected, the packets are sent as broadcast! -

- beacon [beacon flood attack]:
- (clone:) Spams beacon frames with a similar SSID as the selected WiFi access point(s).
- (list:) Spams beacon frames with all SSIDs in the list below. -

- probe request [probe request flood attack]:
- Spams probe request frames with all SSIDs in the list below.
- Usefull to confuse and spam WiFi trackers. -

-
-

SSIDs: 0/64

-
- -
-
-

saved

-
- - - \ No newline at end of file diff --git a/htmlfiles/clients.html b/htmlfiles/clients.html deleted file mode 100644 index 8c334099..00000000 --- a/htmlfiles/clients.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - -
-

Scan for client devices

- - - s - - - ready! -
-

AP will be off while scanning!

-
- -

Client devices found: 0

- -
- -
- - -
- - - - \ No newline at end of file diff --git a/htmlfiles/index.html b/htmlfiles/index.html deleted file mode 100644 index b48b814a..00000000 --- a/htmlfiles/index.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - -
-

Scan for WiFi access points

- - - scanning... - -

Networks found: 0

-

- MAC: -

-
- -
- - -
-

-
- WPA* = WPA/WPA2 auto mode -
- continuous scan: -

- - - - diff --git a/htmlfiles/settings.html b/htmlfiles/settings.html deleted file mode 100644 index 7a5ea307..00000000 --- a/htmlfiles/settings.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - - - -
-

Settings

- -

WiFi

- - - -
- - -
- - - -

must have at least 8 characters! (needs restart)

-
- - - - -
-
-

AP scan

- - - - -
-
-

Client Scan

- - - s - -
-
- -

Attack

- - - s -

0 = no timeout

- - - -
- - - -
- - - -

reason codes: click

- - - pkts/s -

only for deauth attack - may cause instability!

- - - -

only for deauth attack - packetrate will be ignored!

-
- -
-


-
-
- -

Client Names

- - -
MACVendorNameX
-
-

-
- - -
- - - - \ No newline at end of file diff --git a/web_server/attack.html b/web_server/attack.html new file mode 100644 index 00000000..d8ab892b --- /dev/null +++ b/web_server/attack.html @@ -0,0 +1,63 @@ + + + + + + + + + +
+

Attack

+ +

Selected AP:

+
    +
+ +
+ +

Selected Clients:

+
    +
+ +
+ + +
+ +

+
+ deauth [deauthentication attack]:
+ Sends deauthentication frames and dissociation frames to the selected client(s) in the selected WiFi access point(s). +
+ Note: + If no client is selected, the packets are sent as broadcast! +

+ beacon [beacon flood attack]:
+ (clone:) Spams beacon frames with a similar SSID as the selected WiFi access point(s).
+ (list:) Spams beacon frames with all SSIDs in the list below. +

+ probe request [probe request flood attack]:
+ Spams probe request frames with all SSIDs in the list below.
+ Usefull to confuse and spam WiFi trackers. +

+
+

SSIDs: 0/64

+
+ +
+
+

saved

+
+ + + + \ No newline at end of file diff --git a/web_server/clients.html b/web_server/clients.html new file mode 100644 index 00000000..6f51fa09 --- /dev/null +++ b/web_server/clients.html @@ -0,0 +1,41 @@ + + + + + + + + + +
+

Scan for client devices

+ + + s + + + ready! +
+

AP will be off while scanning!

+
+ +

Client devices found: 0

+ +
+ +
+ + +
+ + + + \ No newline at end of file diff --git a/web_server/index.html b/web_server/index.html new file mode 100644 index 00000000..fa2a7401 --- /dev/null +++ b/web_server/index.html @@ -0,0 +1,43 @@ + + + + + + + + + +
+

Scan for WiFi access points

+ + + scanning... + +

Networks found: 0

+

+ MAC: +

+
+ +
+ + +
+

+
+ WPA* = WPA/WPA2 auto mode +
+ continuous scan: +

+ + + + diff --git a/web_server/js/attack.js b/web_server/js/attack.js new file mode 100644 index 00000000..cf3e30e4 --- /dev/null +++ b/web_server/js/attack.js @@ -0,0 +1,101 @@ +var selectedAPs = document.getElementById("selectedAPs"); +var selectedClients = document.getElementById("selectedClients"); +var table = document.getElementsByTagName("table")[0]; +var ssidList = document.getElementsByTagName("table")[1]; +var saved = document.getElementById("saved"); +var ssidCounter = document.getElementById("ssidCounter"); +var resultInterval; +var res; + +function getResults() { + getResponse("attackInfo.json", function(responseText) { + res = JSON.parse(responseText); + var aps = ""; + var clients = ""; + var tr = "AttackStatusStart/Stop"; + for (var i = 0; i < res.aps.length; i++) aps += "
  • " + res.aps[i] + "
  • "; + for (var i = 0; i < res.clients.length; i++) clients += "
  • " + res.clients[i] + "
  • "; + + selectedAPs.innerHTML = aps; + selectedClients.innerHTML = clients; + + for (var i = 0; i < res.attacks.length; i++) { + if (res.attacks[i].running) tr += ""; + else tr += ""; + + tr += "" + res.attacks[i].name + ""; + if (res.attacks[i].status == "ready") tr += "" + res.attacks[i].status + ""; + else tr += "" + res.attacks[i].status + ""; + if (res.attacks[i].running) tr += ""; + else tr += ""; + + tr += ""; + } + table.innerHTML = tr; + + ssidCounter.innerHTML = res.ssid.length + "/64"; + + var tr = "NameX"; + for (var i = 0; i < res.ssid.length; i++) { + tr += ""; + tr += "" + res.ssid[i] + ""; + tr += ''; + tr += ""; + } + ssidList.innerHTML = tr; + + }, function() { + clearInterval(resultInterval); + location.reload(); + }); +} + +function startStop(num) { + getResponse("attackStart.json?num=" + num, function(responseText) { + if (responseText == "true") getResults(); + else alert("error"); + }); +} + +function addSSID() { + saved.innerHTML = ""; + if (res.ssid.length >= 64) alert("SSID list full :("); + else { + var _ssidName = prompt("new SSID:"); + if (_ssidName != null) getResponse("addSSID.json?name=" + _ssidName, getResults); + } +} + +function cloneSSID() { + saved.innerHTML = ""; + if (res.ssid.length >= 64) alert("SSID list full :("); + else { + var _ssidName = prompt("new SSID:"); + if (_ssidName != null) getResponse("cloneSSID.json?name=" + _ssidName, getResults); + } +} + +function deleteSSID(num) { + saved.innerHTML = ""; + getResponse("deleteSSID.json?num=" + num, getResults); +} + +function randomSSID() { + saved.innerHTML = ""; + getResponse("randomSSID.json", getResults); +} +function clearSSID() { + saved.innerHTML = ""; + getResponse("clearSSID.json", getResults); +} +function saveSSID() { + saved.innerHTML = "saved"; + getResponse("saveSSID.json", getResults); +} +function resetSSID() { + saved.innerHTML = "saved"; + getResponse("resetSSID.json", getResults); +} + +getResults(); +resultInterval = setInterval(getResults, 3000); \ No newline at end of file diff --git a/web_server/js/clients.js b/web_server/js/clients.js new file mode 100644 index 00000000..b2451251 --- /dev/null +++ b/web_server/js/clients.js @@ -0,0 +1,98 @@ +var table = document.getElementsByTagName('table')[0]; +var scanBtn = document.getElementById("startScan"); +var scanTime = document.getElementById("scanTime"); +var clientsFound = document.getElementById("clientsFound"); +var scanStatus = document.getElementById("clientScanStatus"); + +var res; + +function compare(a, b) { + if (a.p > b.p) return -1; + if (a.p < b.p) return 1; + return 0; +} + +function toggleBtn(onoff) { + if (onoff) { + scanBtn.style.visibility = 'visible'; + } else { + scanBtn.style.visibility = 'hidden'; + } +} + +function getResults(reload) { + if (reload == undefined) { + reload = false; + } + getResponse("ClientScanResults.json", function(responseText) { + res = JSON.parse(responseText); + res.clients = res.clients.sort(compare); + + clientsFound.innerHTML = "Client devices found: " + res.clients.length; + + var tr = ''; + if (res.clients.length > 0) tr += 'PktsVendorNameMACAPSelect'; + + for (var i = 0; i < res.clients.length; i++) { + + if (res.clients[i].s == 1) tr += ''; + else tr += ''; + tr += '' + res.clients[i].p + ''; + tr += '' + res.clients[i].v + ''; + tr += '' + res.clients[i].n + ' edit'; + tr += '' + res.clients[i].m + ''; + tr += '' + res.clients[i].a + ''; + + if (res.clients[i].s == 1) tr += ''; + else tr += ''; + + tr += ''; + } + table.innerHTML = tr; + toggleBtn(true); + scanStatus.innerHTML = ""; + + if (reload == true) location.reload(); + + }, function() { + location.reload(); + }, 6000); + +} + +function scan() { + getResponse("ClientScan.json?time=" + scanTime.value, function(responseText) { + if (responseText == "true") { + scanStatus.innerHTML = "scanning..."; + toggleBtn(false); + setTimeout(function() { + scanStatus.innerHTML = "reconnecting..."; + getResults(true); + }, scanTime.value * 1000); + } + else alert(responseText); + }); +} + +function select(num) { + getResponse("clientSelect.json?num=" + num, function(responseText) { + if (responseText == "true") getResults(); + else alert("error :/"); + }); +} + +function changeName(id) { + var newName = prompt("Name for " + res.clients[id].m); + if (newName != null) { + getResponse("setName.json?id=" + id + "&name=" + newName, function(responseText) { + if (responseText == "true") getResults(); + else alert("error"); + }); + } +} + +getResponse("ClientScanTime.json", function(responseText) { + scanTime.value = responseText; +}); + +getResults(); \ No newline at end of file diff --git a/htmlfiles/functions.js b/web_server/js/functions.js similarity index 77% rename from htmlfiles/functions.js rename to web_server/js/functions.js index e63cd0df..3341896e 100644 --- a/htmlfiles/functions.js +++ b/web_server/js/functions.js @@ -1,21 +1,28 @@ -function getResponse(adr, callback, timeoutCallback, timeout){ - if(timeoutCallback === undefined) { - timeoutCallback = function(){ - location.reload() - }; - } - if(timeout === undefined) { - timeout = 8000; - } - var xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function() { - if(xmlhttp.readyState == 4){ - if(xmlhttp.status == 200) callback(xmlhttp.responseText); - else timeoutCallback(); - } - }; - xmlhttp.open("GET", adr, true); - xmlhttp.send(); - xmlhttp.timeout = timeout; - xmlhttp.ontimeout = timeoutCallback; +function getResponse(adr, callback, timeoutCallback, timeout){ + if(timeoutCallback === undefined) { + timeoutCallback = function(){ + location.reload() + }; + } + if(timeout === undefined) { + timeout = 8000; + } + var xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + if(xmlhttp.readyState == 4){ + if(xmlhttp.status == 200) callback(xmlhttp.responseText); + else timeoutCallback(); + } + }; + xmlhttp.open("GET", adr, true); + xmlhttp.send(); + xmlhttp.timeout = timeout; + xmlhttp.ontimeout = timeoutCallback; +} + +function restartESP() { + getResponse("restartESP.json", function(responseText) { + if (responseText == "true") getData(); + else alert("error"); + }); } \ No newline at end of file diff --git a/web_server/js/index.js b/web_server/js/index.js new file mode 100644 index 00000000..69bebdcb --- /dev/null +++ b/web_server/js/index.js @@ -0,0 +1,99 @@ +var table = document.getElementsByTagName('table')[0]; +var networkInfo = document.getElementById('networksFound'); +var scanBtn = document.getElementById('apScanStart'); +var scanInfo = document.getElementById('scanInfo'); +var apMAC = document.getElementById('apMAC'); +var startStopScan = document.getElementById('startStopScan'); +var autoScan = false; +var canScan = true; + +function toggleBtn(onoff) { + if (onoff && !autoScan) { + scanInfo.style.visibility = 'hidden'; + scanBtn.style.visibility = 'visible'; + } else { + scanInfo.style.visibility = 'visible'; + scanBtn.style.visibility = 'hidden'; + } +} + +function compare(a, b) { + if (a.r > b.r) return -1; + if (a.r < b.r) return 1; + return 0; +} + +function getEncryption(num) { + if (num == 8) return "WPA*"; + else if (num == 4) return "WPA2"; + else if (num == 2) return "WPA"; + else if (num == 7) return "none"; + else if (num == 5) return "WEP"; +} + +function getResults() { + toggleBtn(true); + getResponse("APScanResults.json", function(responseText) { + var res = JSON.parse(responseText); + res.aps = res.aps.sort(compare); + networkInfo.innerHTML = "Networks found: " + res.aps.length; + apMAC.innerHTML = ""; + + var tr = ''; + if (res.aps.length > 0) tr += 'ChSSIDRSSIEncrypt.Select'; + + for (var i = 0; i < res.aps.length; i++) { + + if (res.aps[i].se == 1) tr += ''; + else tr += ''; + tr += '' + res.aps[i].c + ''; + tr += '' + res.aps[i].ss + ''; + tr += '' + res.aps[i].r + ' '; + tr += '' + getEncryption(res.aps[i].e) + ''; + + if (res.aps[i].se) { + tr += ''; + apMAC.innerHTML = res.aps[i].m; + } + else tr += ''; + tr += ''; + } + table.innerHTML = tr; + canScan = true; + }); +} + +function scan() { + canScan = false; + toggleBtn(false); + getResponse("APScan.json", function(responseText) { + if (responseText == "true") getResults(); + else alert("error"); + toggleBtn(true); + }); +} + +function startConScan() { + if (autoScan) { + autoScan = false; + startStopScan.innerHTML = "start"; + toggleBtn(true); + } else { + autoScan = true; + startStopScan.innerHTML = "stop"; + toggleBtn(false); + } +} + +function select(num) { + getResponse("APSelect.json?num=" + num, function(responseText) { + if (responseText == "true") getResults(); + else alert("error"); + }); +} + +getResults(); + +setInterval(function() { + if (autoScan && canScan) scan(); +}, 1000); \ No newline at end of file diff --git a/web_server/js/settings.js b/web_server/js/settings.js new file mode 100644 index 00000000..940d6e1a --- /dev/null +++ b/web_server/js/settings.js @@ -0,0 +1,114 @@ +var nameListTable = document.getElementById('nameList'); +var ssid = document.getElementById('ssid'); +var ssidHidden = document.getElementById('ssidHidden'); +var password = document.getElementById('password'); +var apChannel = document.getElementById('apChannel'); +var apScanHidden = document.getElementById('apScanHidden'); +var scanTime = document.getElementById('scanTime'); +var timeout = document.getElementById('timeout'); +var deauthReason = document.getElementById('deauthReason'); +var packetRate = document.getElementById('packetRate'); +var saved = document.getElementById('saved'); +var clientNames = document.getElementById('clientNames'); +var ssidEnc = document.getElementById('ssidEnc'); +var useLed = document.getElementById('useLed'); +var channelHop = document.getElementById('channelHop'); +var res; + +function getData() { + getResponse("settings.json", function(responseText) { + res = JSON.parse(responseText); + + ssid.value = res.ssid; + ssidHidden.checked = res.ssidHidden; + password.value = res.password; + apChannel.value = res.apChannel; + apScanHidden.checked = res.apScanHidden; + scanTime.value = res.clientScanTime; + timeout.value = res.attackTimeout; + deauthReason.value = res.deauthReason; + packetRate.value = res.attackPacketRate; + ssidEnc.checked = res.attackEncrypted; + useLed.checked = res.useLed; + channelHop.checked = res.channelHop; + + + clientNames.innerHTML = "Client Names " + res.nameList.length + "/50"; + + var tr = 'MACVendorNameX'; + + for (var i = 0; i < res.nameList.length; i++) { + + tr += ''; + tr += '' + res.nameList[i].m + ''; + tr += '' + res.nameList[i].v + ''; + tr += '' + res.nameList[i].n + ' edit'; + tr += ''; + + tr += ''; + } + + nameListTable.innerHTML = tr; + }); +} + +function changeName(id) { + var newName = prompt("Name for " + res.nameList[id].m); + if (newName != null) { + getResponse("editNameList.json?id=" + id + "&name=" + newName, function(responseText) { + if (responseText == "true") getData(); + else alert("error"); + }); + } +} + +function deleteName(id) { + getResponse("deleteName.json?num=" + id, function(responseText) { + if (responseText == "true") getData(); + else alert("error"); + }); +} + +function saveSettings() { + saved.innerHTML = "saving..."; + var url = "settingsSave.json"; + url += "?ssid=" + ssid.value; + url += "&ssidHidden=" + ssidHidden.checked; + url += "&password=" + password.value; + url += "&apChannel=" + apChannel.value; + url += "&apScanHidden=" + apScanHidden.checked; + url += "&scanTime=" + scanTime.value; + url += "&timeout=" + timeout.value; + url += "&deauthReason=" + deauthReason.value; + url += "&packetRate=" + packetRate.value; + url += "&ssidEnc=" + ssidEnc.checked; + url += "&useLed=" + useLed.checked; + url += "&channelHop=" + channelHop.checked; + + getResponse(url, function(responseText) { + if (responseText == "true") { + getData(); + saved.innerHTML = "saved"; + } + else alert("error"); + }); +} + +function resetSettings() { + getResponse("settingsReset.json", function(responseText) { + if (responseText == "true") { + getData(); + saved.innerHTML = "saved"; + } + else alert("error"); + }); +} + +function clearNameList() { + getResponse("clearNameList.json", function(responseText) { + if (responseText == "true") getData(); + else alert("error"); + }); +} + +getData(); \ No newline at end of file diff --git a/htmlfiles/manifest.json b/web_server/manifest.json similarity index 94% rename from htmlfiles/manifest.json rename to web_server/manifest.json index 509fb4ab..4b5ca76d 100644 --- a/htmlfiles/manifest.json +++ b/web_server/manifest.json @@ -1,38 +1,38 @@ -{ -"sites":[ - "error404.html", - "style.css", - "functions.js", - "index.html", - "clients.html", - "attack.html", - "settings.html" -], -"json":[ - "APScanResults.json", - "ClientScanResults.json", - "settings.json", - "attackInfo.json" -], -"commands":[ - "APScan.json", - "APSelect.json", - "ClientScan.json", - "ClientScanTime.json", - "clientSelect.json", - "setName.json", - "attackStart.json", - "settingsSave.json", - "settingsReset.json", - "deleteName.json", - "clearNameList.json", - "editNameList.json", - "addSSID.json", - "cloneSSID.json", - "deleteSSID.json", - "randomSSID.json", - "clearSSID.json", - "resetSSID.json", - "saveSSID.json" -] +{ +"sites":[ + "error404.html", + "style.css", + "functions.js", + "index.html", + "clients.html", + "attack.html", + "settings.html" +], +"json":[ + "APScanResults.json", + "ClientScanResults.json", + "settings.json", + "attackInfo.json" +], +"commands":[ + "APScan.json", + "APSelect.json", + "ClientScan.json", + "ClientScanTime.json", + "clientSelect.json", + "setName.json", + "attackStart.json", + "settingsSave.json", + "settingsReset.json", + "deleteName.json", + "clearNameList.json", + "editNameList.json", + "addSSID.json", + "cloneSSID.json", + "deleteSSID.json", + "randomSSID.json", + "clearSSID.json", + "resetSSID.json", + "saveSSID.json" +] } \ No newline at end of file diff --git a/htmlfiles/minifier.html b/web_server/minifier.html similarity index 97% rename from htmlfiles/minifier.html rename to web_server/minifier.html index c66f59e6..a56d6c2c 100644 --- a/htmlfiles/minifier.html +++ b/web_server/minifier.html @@ -1,50 +1,50 @@ - - - - - - -
    -

    - - - -
    -
    -

    - + + + + + + +
    +

    + + + +
    +
    +

    + \ No newline at end of file diff --git a/htmlfiles/readme.md b/web_server/readme.md similarity index 97% rename from htmlfiles/readme.md rename to web_server/readme.md index 9d4e48e7..d9ba54c0 100644 --- a/htmlfiles/readme.md +++ b/web_server/readme.md @@ -1,7 +1,7 @@ -**1** open minifier.html -**2** paste the html code in the upper textfield -**3** click on `minifiy + byte-ify` -**4** copy the results -**5** go to data.h and replace the array (of the changed html file) with the copied bytes - +**1** open minifier.html +**2** paste the html code in the upper textfield +**3** click on `minifiy + byte-ify` +**4** copy the results +**5** go to data.h and replace the array (of the changed html file) with the copied bytes + ** now upload your new sketch :)** \ No newline at end of file diff --git a/web_server/settings.html b/web_server/settings.html new file mode 100644 index 00000000..76ce12d3 --- /dev/null +++ b/web_server/settings.html @@ -0,0 +1,99 @@ + + + + + + + + +
    +

    Settings

    + +

    WiFi

    + + + +
    + + +
    + + + +

    must have at least 8 characters! (needs restart)

    +
    + + + + +
    +
    +

    AP scan

    + + + + +
    +
    +

    Client Scan

    + + + s + +
    +
    + +

    Attack

    + + + s +

    0 = no timeout

    + + + +
    + + + +
    + + + +

    reason codes: click

    + + + pkts/s +

    only for deauth attack - may cause instability!

    + + + +

    only for deauth attack - packetrate will be ignored!

    +
    + +
    +


    +
    +
    + +

    Client Names

    + + +
    MACVendorNameX
    +
    +

    +
    + + +
    + + + + \ No newline at end of file diff --git a/htmlfiles/style.css b/web_server/style.css similarity index 93% rename from htmlfiles/style.css rename to web_server/style.css index e1be6e32..9aae73e7 100644 --- a/htmlfiles/style.css +++ b/web_server/style.css @@ -1,161 +1,161 @@ -/* Global */ - -*, -body { - margin: 0; - padding: 0; - font-family: arial; - color: #432929; -} -h1 { - font-size: 22px; - margin-bottom: 0.6em; - background: #00B0FF; - color: #fff; - padding: 0.2em; - border-radius: 4px; -} -button { - background: #00B0FF; - color: #fff; - border: 1px solid #8F8F8F; - border-radius: 14px; - padding: 0.34em 0.3em; - margin-bottom: 0.6em; -} -button:hover { - color: #000; -} -label { - display: inline-block; - width: 135px; -} -input { - height: 22px; - width: 120px; - border: 1px solid #A99D9D; - border-radius: 5px; - padding: 0.2em; - margin: 2px; -} -input[type="checkbox"] { - height: 15px; - width: auto; -} -.warn { - color: #c20000; -} -.warnBtn { - background: #c20000; - color: #fff; -} -.warnBtn:hover { - background: #f00; - color: #000; -} -.selectedBtn { - background: #fff; - color: #000; -} -.selectedBtn:hover { - background: #00B0FF; - color: #fff; -} -.right { - float: right; -} -.bold { - font-weight: bold; -} -.block { - display: block; -} -.marginNull { - margin: 0 -} -.blue { - color: #00B0FF -} -.small { - font-size: 14px; - color: #727272 -} -/* Navigation */ - -nav { - background: #222; -} -nav a { - background: #222; - color: #999; - padding: 0.5em; - display: inline-block; - text-decoration: none; -} -nav a:hover { - background: #000; - color: #f0f0f0; -} -/* Content */ - -#content { - padding: 0.34em; -} -table { - padding: 0; - width: 100%; - max-width: 960px; - margin: 0 auto; - border-spacing: 0; - background: #222222; -} -table th { - background: #222222; - color: #f0f0f0; -} -table td { - font-size: 14px; - background: #f0f0f0; -} -table th, -table td { - text-align: center; - padding: 0.1em 0; -} -table .selected td { - background: #11a4cc; -} -/* Specific */ - -#saved { - display: inline; -} -#clientScanStatus { - margin-left: 1em; -} -#clientScanStart { - margin-left: 30px; -} -#scanTime { - width: 60px; -} -#apScanStatus { - margin-left: 1em; -} -#rssiBar { - width: 100px; - height: 15px; - background: #fff; -} -#rssiBar > div { - width: 52px; - height: 15px; - background: #c20000; -} -#wpa_info { - padding-left: 0.34em; -} -#saved { - display: inline; - margin-left: 20px; +/* Global */ + +*, +body { + margin: 0; + padding: 0; + font-family: arial; + color: #432929; +} +h1 { + font-size: 22px; + margin-bottom: 0.6em; + background: #00B0FF; + color: #fff; + padding: 0.2em; + border-radius: 4px; +} +button { + background: #00B0FF; + color: #fff; + border: 1px solid #8F8F8F; + border-radius: 14px; + padding: 0.34em 0.3em; + margin-bottom: 0.6em; +} +button:hover { + color: #000; +} +label { + display: inline-block; + width: 135px; +} +input { + height: 22px; + width: 120px; + border: 1px solid #A99D9D; + border-radius: 5px; + padding: 0.2em; + margin: 2px; +} +input[type="checkbox"] { + height: 15px; + width: auto; +} +.warn { + color: #c20000; +} +.warnBtn { + background: #c20000; + color: #fff; +} +.warnBtn:hover { + background: #f00; + color: #000; +} +.selectedBtn { + background: #fff; + color: #000; +} +.selectedBtn:hover { + background: #00B0FF; + color: #fff; +} +.right { + float: right; +} +.bold { + font-weight: bold; +} +.block { + display: block; +} +.marginNull { + margin: 0 +} +.blue { + color: #00B0FF +} +.small { + font-size: 14px; + color: #727272 +} +/* Navigation */ + +nav { + background: #222; +} +nav a { + background: #222; + color: #999; + padding: 0.5em; + display: inline-block; + text-decoration: none; +} +nav a:hover { + background: #000; + color: #f0f0f0; +} +/* Content */ + +#content { + padding: 0.34em; +} +table { + padding: 0; + width: 100%; + max-width: 960px; + margin: 0 auto; + border-spacing: 0; + background: #222222; +} +table th { + background: #222222; + color: #f0f0f0; +} +table td { + font-size: 14px; + background: #f0f0f0; +} +table th, +table td { + text-align: center; + padding: 0.1em 0; +} +table .selected td { + background: #11a4cc; +} +/* Specific */ + +#saved { + display: inline; +} +#clientScanStatus { + margin-left: 1em; +} +#clientScanStart { + margin-left: 30px; +} +#scanTime { + width: 60px; +} +#apScanStatus { + margin-left: 1em; +} +#rssiBar { + width: 100px; + height: 15px; + background: #fff; +} +#rssiBar > div { + width: 52px; + height: 15px; + background: #c20000; +} +#wpa_info { + padding-left: 0.34em; +} +#saved { + display: inline; + margin-left: 20px; } \ No newline at end of file From ae30634abd4098fc3976d6d2c6d931bbc68d03f5 Mon Sep 17 00:00:00 2001 From: N0vaPixel Date: Mon, 13 Mar 2017 01:14:00 +0100 Subject: [PATCH 02/11] Removed useless listener --- esp8266_deauther/esp8266_deauther.ino | 1 - 1 file changed, 1 deletion(-) diff --git a/esp8266_deauther/esp8266_deauther.ino b/esp8266_deauther/esp8266_deauther.ino index 87e44aa3..11de2998 100644 --- a/esp8266_deauther/esp8266_deauther.ino +++ b/esp8266_deauther/esp8266_deauther.ino @@ -75,7 +75,6 @@ void setup() { server.onNotFound(load404); server.on("/", loadIndexHTML); - server.on("/index", loadIndexHTML); server.on("/clients", loadClientsHTML); server.on("/attack", loadAttackHTML); server.on("/settings", loadSettingsHTML); From c09da5fa8a1f6687ebb750a7e4bb2b66e0fe4feb Mon Sep 17 00:00:00 2001 From: N0vaPixel Date: Mon, 13 Mar 2017 16:25:55 +0100 Subject: [PATCH 03/11] Code visibility --- esp8266_deauther/esp8266_deauther.ino | 48 +++++++-------------------- 1 file changed, 12 insertions(+), 36 deletions(-) diff --git a/esp8266_deauther/esp8266_deauther.ino b/esp8266_deauther/esp8266_deauther.ino index 11de2998..9227ad8f 100644 --- a/esp8266_deauther/esp8266_deauther.ino +++ b/esp8266_deauther/esp8266_deauther.ino @@ -127,45 +127,21 @@ void loop() { } } -void loadIndexHTML() { - server.send ( 200, "text/html", data_getIndexHTML()); -} -void loadClientsHTML() { - server.send ( 200, "text/html", data_getClientsHTML()); -} -void loadAttackHTML() { - server.send ( 200, "text/html", data_getAttackHTML()); -} -void loadSettingsHTML() { - server.send( 200, "text/html", data_getSettingsHTML()); -} -void load404() { - server.send ( 404, "text/html", data_get404()); -} +void loadIndexHTML() {server.send ( 200, "text/html", data_getIndexHTML());} +void loadClientsHTML() {server.send ( 200, "text/html", data_getClientsHTML());} +void loadAttackHTML() {server.send ( 200, "text/html", data_getAttackHTML());} +void loadSettingsHTML() {server.send( 200, "text/html", data_getSettingsHTML());} +void load404() {server.send ( 404, "text/html", data_get404());} -void loadFunctionsJS() { - server.send( 200, "text/javascript", data_getFunctionsJS()); -} -void loadIndexJS() { - server.send ( 200, "text/javascript", data_getIndexJS()); -} -void loadClientsJS() { - server.send ( 200, "text/javascript", data_getClientsJS()); -} -void loadAttackJS() { - server.send ( 200, "text/javascript", data_getAttackJS()); -} -void loadSettingsJS() { - server.send( 200, "text/html", data_getSettingsJS()); -} +void loadFunctionsJS() {server.send( 200, "text/javascript", data_getFunctionsJS());} +void loadIndexJS() {server.send ( 200, "text/javascript", data_getIndexJS());} +void loadClientsJS() {server.send ( 200, "text/javascript", data_getClientsJS());} +void loadAttackJS() {server.send ( 200, "text/javascript", data_getAttackJS());} +void loadSettingsJS() {server.send( 200, "text/html", data_getSettingsJS());} -void loadStyle() { - server.send ( 200, "text/css", data_getStyle()); -} +void loadStyle() {server.send ( 200, "text/css", data_getStyle());} -void loadManifest() { - server.send ( 200, "text/css", data_getManifest()); -} +void loadManifest() {server.send ( 200, "text/css", data_getManifest());} //==========AP-Scan========== void startAPScan() { From 4613963e3c24bd4b4799dee9e6c653d06f7fe5af Mon Sep 17 00:00:00 2001 From: N0vaPixel Date: Mon, 13 Mar 2017 16:46:23 +0100 Subject: [PATCH 04/11] Moved setup() and loop() to avoid the problem of missing declarations when compiling on linux based OS --- esp8266_deauther/esp8266_deauther.ino | 163 +++++++++++++------------- 1 file changed, 81 insertions(+), 82 deletions(-) diff --git a/esp8266_deauther/esp8266_deauther.ino b/esp8266_deauther/esp8266_deauther.ino index 9227ad8f..8cd16e76 100644 --- a/esp8266_deauther/esp8266_deauther.ino +++ b/esp8266_deauther/esp8266_deauther.ino @@ -46,87 +46,6 @@ void startWifi() { if (settings.ssid.length() < 1 || settings.ssid.length() > 32) Serial.println("WARNING: SSID length must be between 1 and 32 characters!"); } -void setup() { - - Serial.begin(115200); - delay(2000); - - pinMode(2, OUTPUT); - delay(50); - digitalWrite(2, HIGH); - - EEPROM.begin(4096); - - settings.load(); - if (debug) settings.info(); - nameList.load(); - ssidList.load(); - - Serial.println(""); - Serial.println("starting..."); - - startWifi(); - attack.stopAll(); - attack.generate(); - - /* ========== Web Server ========== */ - - /* HTML sites */ - server.onNotFound(load404); - - server.on("/", loadIndexHTML); - server.on("/clients", loadClientsHTML); - server.on("/attack", loadAttackHTML); - server.on("/settings", loadSettingsHTML); - - server.on("/js/index.js", loadIndexJS); - server.on("/js/clients.js", loadClientsJS); - server.on("/js/attack.js", loadAttackJS); - server.on("/js/settings.js", loadSettingsJS); - server.on("/js/functions.js", loadFunctionsJS); - - /* header links */ - server.on ("/style.css", loadStyle); - server.on ("/manifest.json", loadManifest); - - /* JSON */ - server.on("/APScanResults.json", sendAPResults); - server.on("/APScan.json", startAPScan); - server.on("/APSelect.json", selectAP); - server.on("/ClientScan.json", startClientScan); - server.on("/ClientScanResults.json", sendClientResults); - server.on("/ClientScanTime.json", sendClientScanTime); - server.on("/clientSelect.json", selectClient); - server.on("/setName.json", setClientName); - server.on("/attackInfo.json", sendAttackInfo); - server.on("/attackStart.json", startAttack); - server.on("/settings.json", getSettings); - server.on("/settingsSave.json", saveSettings); - server.on("/settingsReset.json", resetSettings); - server.on("/deleteName.json", deleteName); - server.on("/clearNameList.json", clearNameList); - server.on("/editNameList.json", editClientName); - server.on("/addSSID.json", addSSID); - server.on("/cloneSSID.json", cloneSSID); - server.on("/deleteSSID.json", deleteSSID); - server.on("/randomSSID.json", randomSSID); - server.on("/clearSSID.json", clearSSID); - server.on("/resetSSID.json", resetSSID); - server.on("/saveSSID.json", saveSSID); - server.on("/restartESP.json", restartESP); - - server.begin(); -} - -void loop() { - if (clientScan.sniffing) { - if (clientScan.stop()) startWifi(); - } else { - server.handleClient(); - attack.run(); - } -} - void loadIndexHTML() {server.send ( 200, "text/html", data_getIndexHTML());} void loadClientsHTML() {server.send ( 200, "text/html", data_getClientsHTML());} void loadAttackHTML() {server.send ( 200, "text/html", data_getAttackHTML());} @@ -321,4 +240,84 @@ void editClientName() { server.send( 200, "text/json", "true"); } } - + +void setup() { + + Serial.begin(115200); + delay(2000); + + pinMode(2, OUTPUT); + delay(50); + digitalWrite(2, HIGH); + + EEPROM.begin(4096); + + settings.load(); + if (debug) settings.info(); + nameList.load(); + ssidList.load(); + + Serial.println(""); + Serial.println("starting..."); + + startWifi(); + attack.stopAll(); + attack.generate(); + + /* ========== Web Server ========== */ + + /* HTML sites */ + server.onNotFound(load404); + + server.on("/", loadIndexHTML); + server.on("/clients", loadClientsHTML); + server.on("/attack", loadAttackHTML); + server.on("/settings", loadSettingsHTML); + + server.on("/js/index.js", loadIndexJS); + server.on("/js/clients.js", loadClientsJS); + server.on("/js/attack.js", loadAttackJS); + server.on("/js/settings.js", loadSettingsJS); + server.on("/js/functions.js", loadFunctionsJS); + + /* header links */ + server.on ("/style.css", loadStyle); + server.on ("/manifest.json", loadManifest); + + /* JSON */ + server.on("/APScanResults.json", sendAPResults); + server.on("/APScan.json", startAPScan); + server.on("/APSelect.json", selectAP); + server.on("/ClientScan.json", startClientScan); + server.on("/ClientScanResults.json", sendClientResults); + server.on("/ClientScanTime.json", sendClientScanTime); + server.on("/clientSelect.json", selectClient); + server.on("/setName.json", setClientName); + server.on("/attackInfo.json", sendAttackInfo); + server.on("/attackStart.json", startAttack); + server.on("/settings.json", getSettings); + server.on("/settingsSave.json", saveSettings); + server.on("/settingsReset.json", resetSettings); + server.on("/deleteName.json", deleteName); + server.on("/clearNameList.json", clearNameList); + server.on("/editNameList.json", editClientName); + server.on("/addSSID.json", addSSID); + server.on("/cloneSSID.json", cloneSSID); + server.on("/deleteSSID.json", deleteSSID); + server.on("/randomSSID.json", randomSSID); + server.on("/clearSSID.json", clearSSID); + server.on("/resetSSID.json", resetSSID); + server.on("/saveSSID.json", saveSSID); + server.on("/restartESP.json", restartESP); + + server.begin(); +} + +void loop() { + if (clientScan.sniffing) { + if (clientScan.stop()) startWifi(); + } else { + server.handleClient(); + attack.run(); + } +} From 1d13f78215d6696f414439ee45e532f3dfc36c67 Mon Sep 17 00:00:00 2001 From: N0vaPixel Date: Mon, 13 Mar 2017 20:58:53 +0100 Subject: [PATCH 05/11] Minor improvements --- esp8266_deauther/Mac.cpp | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/esp8266_deauther/Mac.cpp b/esp8266_deauther/Mac.cpp index 1cd0a6bc..5d95939f 100644 --- a/esp8266_deauther/Mac.cpp +++ b/esp8266_deauther/Mac.cpp @@ -1,12 +1,9 @@ #include "Mac.h" Mac::Mac(){ - adress[0] = 0x00; - adress[1] = 0x00; - adress[2] = 0x00; - adress[3] = 0x00; - adress[4] = 0x00; - adress[5] = 0x00; + for(int i=0;i<6;i++){ + adress[i] = 0x00; + } } void Mac::set(uint8_t first, uint8_t second, uint8_t third, uint8_t fourth, uint8_t fifth, uint8_t sixth){ @@ -23,19 +20,16 @@ void Mac::setAt(uint8_t first, int num){ } void Mac::setMac(Mac adr){ - adress[0] = adr._get(0); - adress[1] = adr._get(1); - adress[2] = adr._get(2); - adress[3] = adr._get(3); - adress[4] = adr._get(4); - adress[5] = adr._get(5); + for(int i=0;i<6;i++){ + adress[i] = adr._get(i); + } } bool Mac::valid(){ for(int i=0;i<6;i++){ - if(adress[i] != 0xFF && adress[i] != 0x00) return true; + if(adress[i] == 0xFF || adress[i] == 0x00) return false; } - return false; + return true; } String Mac::toString(){ @@ -50,17 +44,11 @@ String Mac::toString(){ return value; } -void Mac::_print(){ - Serial.print(Mac::toString()); -} +void Mac::_print(){Serial.print(Mac::toString());} -void Mac::_println(){ - Serial.println(Mac::toString()); -} +void Mac::_println(){Serial.println(Mac::toString());} -uint8_t Mac::_get(int num){ - return adress[num]; -} +uint8_t Mac::_get(int num){return adress[num];} bool Mac::compare(Mac target){ for(int i=0;i<6;i++){ From 7f85e1c0b326c893cf4b5b0206bff713fb7ef725 Mon Sep 17 00:00:00 2001 From: Stefan Kremser Date: Tue, 14 Mar 2017 21:46:09 +0100 Subject: [PATCH 06/11] Some minor readme changes --- README.md | 54 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index bef97353..348b3bda 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # ESP8266 Deauther -Build your own WiFi jammer with an ESP8266. +Deauthentication attack and other hacks using an ESP8266. ![esp8266 deauther with a smartphone](https://raw.githubusercontent.com/spacehuhn/esp8266_deauther/master/screenshots/smartphone_esp_1.jpg) @@ -24,39 +24,40 @@ Build your own WiFi jammer with an ESP8266. Basically it’s a device which performs a [deauth attack](https://en.wikipedia.org/wiki/Wi-Fi_deauthentication_attack). You select the clients you want to disconnect from their network and start the attack. As long as the attack is running, the -selected devices are unable to connect to their network. +selected devices are unable to connect to their network. +Other attacks also have been implemented, such as beacon or probe request flooding. ### How it works -The 802.11 WiFi protocol contains a so called [deauthentication frame](https://mrncciew.com/2014/10/11/802-11-mgmt-deauth-disassociation-frames/). It is used to disconnect clients safely from a wireless +The 802.11 Wi-Fi protocol contains a so called [deauthentication frame](https://mrncciew.com/2014/10/11/802-11-mgmt-deauth-disassociation-frames/). It is used to disconnect clients safely from a wireless network. -Because these packets are unencrypted, you just need the mac address of the WiFi router and of the client device which you want to disconnect from the network. You don’t need to be in the network or know the password, it’s enough to be in its range. +Because these management packets are unencrypted, you just need the mac address of the Wi-Fi router and of the client device which you want to disconnect from the network. You don’t need to be in the network or know the password, it’s enough to be in its range. ### What an ESP8266 is -The [ESP8266](https://de.wikipedia.org/wiki/ESP8266) is a very cheap micro controller with build in WiFi. It contains a powerfull 160 MHz processor and you can program it -with the [Arduino IDE](https://www.arduino.cc/en/Main/Software). This makes it perfect for this project. +The [ESP8266](https://de.wikipedia.org/wiki/ESP8266) is a cheap micro controller with build in Wi-Fi. It contains a powerfull 160 MHz processor and it can be programed using [Arduino](https://www.arduino.cc/en/Main/Software). You can buy these chips for under $2 from China! ### How to protect against it -With [802.11w-2009](https://en.wikipedia.org/wiki/IEEE_802.11w-2009) WiFi got an update to encrypt management frames. +With [802.11w-2009](https://en.wikipedia.org/wiki/IEEE_802.11w-2009) Wi-Fi got an update to encrypt management frames. So make sure your router is up to date and has management frame protection enabled. But be sure that your client device supports it too, both ends need to have it enabled! -The only problem is that most devices don’t use it. I tested it with different WiFi networks and devices, it worked every time! It seems that even newer devices which support frame protection don’t use it by default. +The only problem is that most devices don’t use it. I tested it with different Wi-Fi networks and devices, it worked every time! It seems that even newer devices which support frame protection don’t use it by default. ## Disclaimer -Use it only for testing purposes on your own devices! +Use it only for testing purposes on your own devices! +I don't take any responsibility for what you do with this program. Please check the legal regulations in your country before using it. Jamming transmitters are illegal in most countries and this device can fall into the same category (even if it’s technically not the same). My intention with this project is to draw attention to this issue. -This attack shows how vulnerable the 802.11 WiFi standard is and that it has to be fixed. +This attack shows how vulnerable the 802.11 Wi-Fi standard is and that it has to be fixed. **A solution is already there, why don’t we use it?** ## Installation @@ -111,9 +112,9 @@ Make sure you select the right com-port, the right upload size of your ESP8266 a **11** Scroll down and before `#endif` add following lines: `typedef void (*freedom_outside_cb_t)(uint8 status);` -`int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);` -`void wifi_unregister_send_pkt_freedom_cb(void);` -`int wifi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);` +`int Wi-Fi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb);` +`void Wi-Fi_unregister_send_pkt_freedom_cb(void);` +`int Wi-Fi_send_pkt_freedom(uint8 *buf, int len, bool sys_seq);` ![screenshot of notepad, copy paste the right code](https://raw.githubusercontent.com/spacehuhn/esp8266_deauther/master/screenshots/notepad_screenshot_1.JPG) @@ -121,9 +122,9 @@ Make sure you select the right com-port, the right upload size of your ESP8266 a **12** Go to the SDK_fix folder of this project -**13** Copy ESP8266WiFi.cpp and ESP8266WiFi.h +**13** Copy ESP8266Wi-Fi.cpp and ESP8266Wi-Fi.h -**14** Past these files here `packages` > `esp8266` > `hardware` > `esp8266` > `2.0.0` > `libraries` > `ESP8266WiFi` > `src` +**14** Past these files here `packages` > `esp8266` > `hardware` > `esp8266` > `2.0.0` > `libraries` > `ESP8266Wi-Fi` > `src` **15** Open `esp8266_deauther` > `esp8266_deauther.ino` in Arduino @@ -143,7 +144,7 @@ First start your ESP8266 by giving it power. You can use your smartphone if you have a USB OTG cable. ![esp8266 deauther with a smartphone](https://raw.githubusercontent.com/spacehuhn/esp8266_deauther/master/screenshots/smartphone_esp_2.jpg) -Scan for WiFi networks and connect to `pwned`. The password is `deauther`. +Scan for Wi-Fi networks and connect to `pwned`. The password is `deauther`. Once connected, you can open up your browser and go to `192.168.4.1`. You can now scan for networks... @@ -152,7 +153,7 @@ You can now scan for networks... scan for client devices... ![webinterface client scanner](https://raw.githubusercontent.com/spacehuhn/esp8266_deauther/master/screenshots/web_screenshot_2.JPG) -Note: While scanning the ESP8266 will shut down its access point, so you may have to go to your settings and reconnect to the WiFi network manually. +Note: While scanning the ESP8266 will shut down its access point, so you may have to go to your settings and reconnect to the Wi-Fi network manually. ...and start different attacks. ![webinterface attack menu](https://raw.githubusercontent.com/spacehuhn/esp8266_deauther/master/screenshots/web_screenshot_3.JPG) @@ -168,14 +169,14 @@ Yes, but I will not implement this 'feature' for ethical and legal reasons. **Can it sniff handshakes?** The ESP8266 has a promiscuous mode in which you can sniff packets, but handshake packets are dropped and there is no other way to get them with the functions provided by the SDK. -Maybe someone will find a way around this barrier but I wasn't able to. +Maybe someone will find a way around this barrier. **espcomm_sync failed/espcomm_open when uploading** The ESP upload tool can't communicate with the chip, make sure the right port is selected! You can also try out different USB ports and cables. If this doesn't solve it you may have to install USB drivers. -Which drivers you need depends on the board, most boards use a cp2102, cp2104 or ch340. +Which drivers you need depends on the board, most boards use a cp2102 or ch340. **AP scan doesn't work** @@ -184,8 +185,8 @@ Try out switching the browser or open the website with another device. **Deauth attack won't work** -If you see 0 pkts/s on the website you have made a mistake. Check if you have followed the the installation steps correctly and that the right SDK installed, it must be version 2.0.0! -If it can send packets but your target don't loose its connection then the WiFi router uses [802.11w](#how-to-protect-against-it) and it's protected against such attacks or they communicate via 5 GHz WiFi, which the ESP8266 doesn't support. +If you see 0 pkts/s on the website you've made a mistake. Check if you have followed the the installation steps correctly and that the right SDK installed, it must be version 2.0.0! +If it can send packets but your target don't loose its connection then the Wi-Fi router uses [802.11w](#how-to-protect-against-it) and it's protected against such attacks or they communicate via 5 GHz Wi-Fi, which the ESP8266 doesn't support. ###If you have other questions or problems with the ESP8266 you can also check out the official [community forum](http://www.esp8266.com/). @@ -193,7 +194,7 @@ If it can send packets but your target don't loose its connection then the WiFi ## License -This project is licensed under the MIT License - see the [license file](LICENSE) file for details +This project is licensed under the MIT License - see the [license file](LICENSE) file for details. ## Sources and additional links @@ -207,14 +208,15 @@ ESP8266: packet injection with ESP8266: * http://hackaday.com/2016/01/14/inject-packets-with-an-esp8266/ -* http://bbs.espressif.com/viewtopic.php?f=7&t=1357&p=10205&hilit=wifi_pkt_freedom#p10205 +* http://bbs.espressif.com/viewtopic.php?f=7&t=1357&p=10205&hilit=Wi-Fi_pkt_freedom#p10205 * https://github.com/pulkin/esp8266-injection-example 802.11w-2009: https://en.wikipedia.org/wiki/IEEE_802.11w-2009 -wifi_send_pkt_freedom function limitations: http://esp32.com/viewtopic.php?f=13&t=586&p=2648&hilit=wifi_send_pkt_freedom#p2648 +Wi-Fi_send_pkt_freedom function limitations: http://esp32.com/viewtopic.php?f=13&t=586&p=2648&hilit=Wi-Fi_send_pkt_freedom#p2648 -esp32 esp_wifi_internal function limitations: http://esp32.com/viewtopic.php?f=13&t=586&p=2648&hilit=wifi_send_pkt_freedom#p2648 +esp32 esp_Wi-Fi_internal function limitations: http://esp32.com/viewtopic.php?f=13&t=586&p=2648&hilit=Wi-Fi_send_pkt_freedom#p2648 Videos: -[![Cheap Wifi 'Jammer' Device | NodeMCU](https://img.youtube.com/vi/oQQhBdCQOTM/0.jpg)](https://www.youtube.com/watch?v=oQQhBdCQOTM) +[![Cheap Wi-Fi 'Jammer' Device | NodeMCU](https://img.youtube.com/vi/oQQhBdCQOTM/0.jpg)](https://www.youtube.com/watch?v=oQQhBdCQOTM) +[![Wifi 'Jammer' Device V1.1 | Setup Tutorial](https://img.youtube.com/vi/r5aoV5AolNo/0.jpg)](https://www.youtube.com/watch?v=r5aoV5AolNo) From 705decc3d30088741c16110e095a05320653590d Mon Sep 17 00:00:00 2001 From: Stefan Kremser Date: Tue, 14 Mar 2017 21:53:27 +0100 Subject: [PATCH 07/11] fixed a few spelling errors I'm not a native speaker, if you find more errors please feel free to correnct them! thx. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 348b3bda..e6068b2c 100644 --- a/README.md +++ b/README.md @@ -36,15 +36,15 @@ Because these management packets are unencrypted, you just need the mac address ### What an ESP8266 is -The [ESP8266](https://de.wikipedia.org/wiki/ESP8266) is a cheap micro controller with build in Wi-Fi. It contains a powerfull 160 MHz processor and it can be programed using [Arduino](https://www.arduino.cc/en/Main/Software). +The [ESP8266](https://de.wikipedia.org/wiki/ESP8266) is a cheap micro controller with built-in Wi-Fi. It contains a powerfull 160 MHz processor and it can be programmed using [Arduino](https://www.arduino.cc/en/Main/Software). You can buy these chips for under $2 from China! ### How to protect against it With [802.11w-2009](https://en.wikipedia.org/wiki/IEEE_802.11w-2009) Wi-Fi got an update to encrypt management frames. -So make sure your router is up to date and has management frame protection enabled. But be sure that your client device -supports it too, both ends need to have it enabled! +So make sure your router is up to date and has management frame protection enabled. But note that your client device needs to +support it too, both ends need to have it enabled! The only problem is that most devices don’t use it. I tested it with different Wi-Fi networks and devices, it worked every time! It seems that even newer devices which support frame protection don’t use it by default. From a71946d09abecee3e98cf63d9dcd8356e9414b11 Mon Sep 17 00:00:00 2001 From: Stefan Kremser Date: Thu, 16 Mar 2017 22:36:34 +0100 Subject: [PATCH 08/11] added buffer functions and fixed APScan issue --- esp8266_deauther/APScan.cpp | 74 +++++++++++++++++++++++++-- esp8266_deauther/APScan.h | 12 ++++- esp8266_deauther/data.h | 30 ++++++++++- esp8266_deauther/esp8266_deauther.ino | 8 +-- 4 files changed, 114 insertions(+), 10 deletions(-) diff --git a/esp8266_deauther/APScan.cpp b/esp8266_deauther/APScan.cpp index 77039b02..c3c8f455 100644 --- a/esp8266_deauther/APScan.cpp +++ b/esp8266_deauther/APScan.cpp @@ -26,6 +26,8 @@ bool APScan::start(){ _ssid.toCharArray(names[i],33); //data_getVendor(WiFi.BSSID(i)[0],WiFi.BSSID(i)[1],WiFi.BSSID(i)[2]).toCharArray(vendors[i],9); if(debug){ + Serial.print((String)i); + Serial.print(" - "); _ap._print(); Serial.print(" - "); Serial.print(channels[i]); @@ -44,7 +46,8 @@ bool APScan::start(){ } //for debugging the APScan crash bug - /*if(debug){ + /* + if(debug){ for(int i=results;i #include "Mac.h" #include "MacList.h" #include "Settings.h" +#include extern String data_getVendor(uint8_t first,uint8_t second,uint8_t third); +extern ESP8266WebServer server; +extern void sendBuffer(); +extern void sendToBuffer(String str); +extern void sendHeader(int code, String type, size_t _size); extern const bool debug; extern Settings settings; @@ -21,6 +26,7 @@ class APScan{ String getResults(); String getResult(int i); void select(int num); + void sendResults(); String getAPName(int num); String getAPEncryption(int num); @@ -38,6 +44,7 @@ class APScan{ int selectedSum; MacList aps; private: + int channels[maxAPScanResults]; int rssi[maxAPScanResults]; char names[maxAPScanResults][33]; @@ -47,6 +54,7 @@ class APScan{ String getEncryption(int code); bool selected[maxAPScanResults]; + }; -#endif +#endif diff --git a/esp8266_deauther/data.h b/esp8266_deauther/data.h index 298da51a..c4c99beb 100644 --- a/esp8266_deauther/data.h +++ b/esp8266_deauther/data.h @@ -5,7 +5,10 @@ static uint8_t data_macBuffer; static char data_vendorBuffer; static String data_vendorStrBuffer = ""; -static char data_websiteBuffer[5000]; +const int bufSize = 5000; +int bufc = 0; //buffer counter; +char data_websiteBuffer[bufSize]; + /* I used the program memory (https://www.arduino.cc/en/Reference/PROGMEM) so I don't need an external SD card reader to hold the HTML files and the very ling vendor list. @@ -31,6 +34,31 @@ const static uint8_t data_settingsJS[] PROGMEM = {0x76,0x61,0x72,0x20,0x6e,0x61, const static uint8_t data_styleCSS[] PROGMEM = {0x2f,0x2a,0x20,0x47,0x6c,0x6f,0x62,0x61,0x6c,0x20,0x2a,0x2f,0x20,0x2a,0x2c,0x20,0x62,0x6f,0x64,0x79,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x66,0x61,0x6d,0x69,0x6c,0x79,0x3a,0x20,0x61,0x72,0x69,0x61,0x6c,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x34,0x33,0x32,0x39,0x32,0x39,0x3b,0x20,0x7d,0x20,0x68,0x31,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x32,0x32,0x70,0x78,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x30,0x2e,0x36,0x65,0x6d,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x32,0x65,0x6d,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x34,0x70,0x78,0x3b,0x20,0x7d,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x38,0x46,0x38,0x46,0x38,0x46,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x33,0x34,0x65,0x6d,0x20,0x30,0x2e,0x33,0x65,0x6d,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x62,0x6f,0x74,0x74,0x6f,0x6d,0x3a,0x20,0x30,0x2e,0x36,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x62,0x75,0x74,0x74,0x6f,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x6c,0x61,0x62,0x65,0x6c,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x33,0x35,0x70,0x78,0x3b,0x20,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x20,0x7b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x32,0x32,0x70,0x78,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x32,0x30,0x70,0x78,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x3a,0x20,0x31,0x70,0x78,0x20,0x73,0x6f,0x6c,0x69,0x64,0x20,0x23,0x41,0x39,0x39,0x44,0x39,0x44,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x72,0x61,0x64,0x69,0x75,0x73,0x3a,0x20,0x35,0x70,0x78,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x32,0x65,0x6d,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x32,0x70,0x78,0x3b,0x20,0x7d,0x20,0x69,0x6e,0x70,0x75,0x74,0x5b,0x74,0x79,0x70,0x65,0x3d,0x22,0x63,0x68,0x65,0x63,0x6b,0x62,0x6f,0x78,0x22,0x5d,0x20,0x7b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x61,0x75,0x74,0x6f,0x3b,0x20,0x7d,0x20,0x2e,0x77,0x61,0x72,0x6e,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x63,0x32,0x30,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x2e,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x63,0x32,0x30,0x30,0x30,0x30,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x7d,0x20,0x2e,0x77,0x61,0x72,0x6e,0x42,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x30,0x30,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x42,0x74,0x6e,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x7d,0x20,0x2e,0x72,0x69,0x67,0x68,0x74,0x20,0x7b,0x20,0x66,0x6c,0x6f,0x61,0x74,0x3a,0x20,0x72,0x69,0x67,0x68,0x74,0x3b,0x20,0x7d,0x20,0x2e,0x62,0x6f,0x6c,0x64,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x77,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x62,0x6f,0x6c,0x64,0x3b,0x20,0x7d,0x20,0x2e,0x62,0x6c,0x6f,0x63,0x6b,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x20,0x7d,0x20,0x2e,0x6d,0x61,0x72,0x67,0x69,0x6e,0x4e,0x75,0x6c,0x6c,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x7d,0x20,0x2e,0x62,0x6c,0x75,0x65,0x20,0x7b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x30,0x30,0x42,0x30,0x46,0x46,0x20,0x7d,0x20,0x2e,0x73,0x6d,0x61,0x6c,0x6c,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x37,0x32,0x37,0x32,0x37,0x32,0x20,0x7d,0x20,0x2f,0x2a,0x20,0x4e,0x61,0x76,0x69,0x67,0x61,0x74,0x69,0x6f,0x6e,0x20,0x2a,0x2f,0x20,0x6e,0x61,0x76,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x3b,0x20,0x7d,0x20,0x6e,0x61,0x76,0x20,0x61,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x39,0x39,0x39,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x35,0x65,0x6d,0x3b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x2d,0x62,0x6c,0x6f,0x63,0x6b,0x3b,0x20,0x74,0x65,0x78,0x74,0x2d,0x64,0x65,0x63,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x6e,0x6f,0x6e,0x65,0x3b,0x20,0x7d,0x20,0x6e,0x61,0x76,0x20,0x61,0x3a,0x68,0x6f,0x76,0x65,0x72,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x30,0x30,0x30,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x30,0x66,0x30,0x66,0x30,0x3b,0x20,0x7d,0x20,0x2f,0x2a,0x20,0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x2a,0x2f,0x20,0x23,0x63,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x20,0x7b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x33,0x34,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x7b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x25,0x3b,0x20,0x6d,0x61,0x78,0x2d,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x39,0x36,0x30,0x70,0x78,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x3a,0x20,0x30,0x20,0x61,0x75,0x74,0x6f,0x3b,0x20,0x62,0x6f,0x72,0x64,0x65,0x72,0x2d,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x3a,0x20,0x30,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x32,0x32,0x32,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x32,0x32,0x32,0x32,0x32,0x32,0x3b,0x20,0x63,0x6f,0x6c,0x6f,0x72,0x3a,0x20,0x23,0x66,0x30,0x66,0x30,0x66,0x30,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x64,0x20,0x7b,0x20,0x66,0x6f,0x6e,0x74,0x2d,0x73,0x69,0x7a,0x65,0x3a,0x20,0x31,0x34,0x70,0x78,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x30,0x66,0x30,0x66,0x30,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x68,0x2c,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x74,0x64,0x20,0x7b,0x20,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x3a,0x20,0x30,0x2e,0x31,0x65,0x6d,0x20,0x30,0x3b,0x20,0x7d,0x20,0x74,0x61,0x62,0x6c,0x65,0x20,0x2e,0x73,0x65,0x6c,0x65,0x63,0x74,0x65,0x64,0x20,0x74,0x64,0x20,0x7b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x31,0x31,0x61,0x34,0x63,0x63,0x3b,0x20,0x7d,0x20,0x2f,0x2a,0x20,0x53,0x70,0x65,0x63,0x69,0x66,0x69,0x63,0x20,0x2a,0x2f,0x20,0x23,0x73,0x61,0x76,0x65,0x64,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x20,0x7d,0x20,0x23,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x31,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x23,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x72,0x74,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x33,0x30,0x70,0x78,0x3b,0x20,0x7d,0x20,0x23,0x73,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x20,0x7b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x36,0x30,0x70,0x78,0x3b,0x20,0x7d,0x20,0x23,0x61,0x70,0x53,0x63,0x61,0x6e,0x53,0x74,0x61,0x74,0x75,0x73,0x20,0x7b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x31,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x23,0x72,0x73,0x73,0x69,0x42,0x61,0x72,0x20,0x7b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x31,0x30,0x30,0x70,0x78,0x3b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x66,0x66,0x66,0x3b,0x20,0x7d,0x20,0x23,0x72,0x73,0x73,0x69,0x42,0x61,0x72,0x20,0x3e,0x20,0x64,0x69,0x76,0x20,0x7b,0x20,0x77,0x69,0x64,0x74,0x68,0x3a,0x20,0x35,0x32,0x70,0x78,0x3b,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3a,0x20,0x31,0x35,0x70,0x78,0x3b,0x20,0x62,0x61,0x63,0x6b,0x67,0x72,0x6f,0x75,0x6e,0x64,0x3a,0x20,0x23,0x63,0x32,0x30,0x30,0x30,0x30,0x3b,0x20,0x7d,0x20,0x23,0x77,0x70,0x61,0x5f,0x69,0x6e,0x66,0x6f,0x20,0x7b,0x20,0x70,0x61,0x64,0x64,0x69,0x6e,0x67,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x30,0x2e,0x33,0x34,0x65,0x6d,0x3b,0x20,0x7d,0x20,0x23,0x73,0x61,0x76,0x65,0x64,0x20,0x7b,0x20,0x64,0x69,0x73,0x70,0x6c,0x61,0x79,0x3a,0x20,0x69,0x6e,0x6c,0x69,0x6e,0x65,0x3b,0x20,0x6d,0x61,0x72,0x67,0x69,0x6e,0x2d,0x6c,0x65,0x66,0x74,0x3a,0x20,0x32,0x30,0x70,0x78,0x3b,0x20,0x7d}; const static uint8_t data_manifest[] PROGMEM = {0x7b,0x20,0x22,0x73,0x69,0x74,0x65,0x73,0x22,0x3a,0x5b,0x20,0x22,0x65,0x72,0x72,0x6f,0x72,0x34,0x30,0x34,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x73,0x74,0x79,0x6c,0x65,0x2e,0x63,0x73,0x73,0x22,0x2c,0x20,0x22,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x73,0x2e,0x6a,0x73,0x22,0x2c,0x20,0x22,0x69,0x6e,0x64,0x65,0x78,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x68,0x74,0x6d,0x6c,0x22,0x20,0x5d,0x2c,0x20,0x22,0x6a,0x73,0x6f,0x6e,0x22,0x3a,0x5b,0x20,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x52,0x65,0x73,0x75,0x6c,0x74,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x49,0x6e,0x66,0x6f,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x20,0x5d,0x2c,0x20,0x22,0x63,0x6f,0x6d,0x6d,0x61,0x6e,0x64,0x73,0x22,0x3a,0x5b,0x20,0x22,0x41,0x50,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x41,0x50,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x43,0x6c,0x69,0x65,0x6e,0x74,0x53,0x63,0x61,0x6e,0x54,0x69,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x69,0x65,0x6e,0x74,0x53,0x65,0x6c,0x65,0x63,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x61,0x74,0x74,0x61,0x63,0x6b,0x53,0x74,0x61,0x72,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x53,0x61,0x76,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x65,0x74,0x74,0x69,0x6e,0x67,0x73,0x52,0x65,0x73,0x65,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x4e,0x61,0x6d,0x65,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x65,0x64,0x69,0x74,0x4e,0x61,0x6d,0x65,0x4c,0x69,0x73,0x74,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x61,0x64,0x64,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x6f,0x6e,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x64,0x65,0x6c,0x65,0x74,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x72,0x61,0x6e,0x64,0x6f,0x6d,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x63,0x6c,0x65,0x61,0x72,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x72,0x65,0x73,0x65,0x74,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x2c,0x20,0x22,0x73,0x61,0x76,0x65,0x53,0x53,0x49,0x44,0x2e,0x6a,0x73,0x6f,0x6e,0x22,0x20,0x5d,0x20,0x7d}; + +void sendBuffer(){ + if(bufc > 0){ + server.sendContent_P(data_websiteBuffer, bufc); + bufc = 0; + } +} + +void sendToBuffer(String str){ + int len = str.length(); + int _counter = bufc + len; + if(_counter >= 5000){ + server.sendContent_P(data_websiteBuffer, bufc); + bufc = 0; + } + memcpy(data_websiteBuffer + bufc, str.c_str(), len); + bufc += len; +} + + +void sendHeader(int code, String type, size_t _size){ + server.sendHeader("Content-Length", (String)_size); + server.send(code, type, ""); +} + /* Based on Wireshark manufacturer database source: https://www.wireshark.org/tools/oui-lookup.html diff --git a/esp8266_deauther/esp8266_deauther.ino b/esp8266_deauther/esp8266_deauther.ino index 8cd16e76..ab32a720 100644 --- a/esp8266_deauther/esp8266_deauther.ino +++ b/esp8266_deauther/esp8266_deauther.ino @@ -8,6 +8,8 @@ extern "C" { #include "user_interface.h" } +ESP8266WebServer server(80); + #include #include "data.h" #include "NameList.h" @@ -21,8 +23,6 @@ extern "C" { const bool debug = true; /* ========== DEBUG ========== */ -ESP8266WebServer server(80); - NameList nameList; APScan apScan; @@ -71,12 +71,14 @@ void startAPScan() { } void sendAPResults() { + apScan.sendResults(); + /* if (server.hasArg("apid")) { int apid = server.arg("apid").toInt(); server.send ( 200, "text/json", apScan.getResult(apid)); } else { server.send ( 200, "text/json", apScan.getResults()); - } + }*/ } void selectAP() { From ecc4c08a22b2cd62bba397d770c5beafef7f8232 Mon Sep 17 00:00:00 2001 From: Stefan Kremser Date: Thu, 16 Mar 2017 23:04:48 +0100 Subject: [PATCH 09/11] Fixed loop bug in Mac library @N0vaPixel never change a running system! This caused a bug in the beacon flood attack. --- esp8266_deauther/Mac.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esp8266_deauther/Mac.cpp b/esp8266_deauther/Mac.cpp index 5d95939f..33c34acd 100644 --- a/esp8266_deauther/Mac.cpp +++ b/esp8266_deauther/Mac.cpp @@ -27,7 +27,7 @@ void Mac::setMac(Mac adr){ bool Mac::valid(){ for(int i=0;i<6;i++){ - if(adress[i] == 0xFF || adress[i] == 0x00) return false; + if(adress[i] != 0xFF && adress[i] != 0x00) return true; } return true; } @@ -57,4 +57,4 @@ bool Mac::compare(Mac target){ return true; } - + From e1b5f135bb5f83ec2b0033caf646a1ac9c06d994 Mon Sep 17 00:00:00 2001 From: Stefan Kremser Date: Thu, 16 Mar 2017 23:04:48 +0100 Subject: [PATCH 10/11] Fixed loop bug in Mac library @N0vaPixel never change a running system! This caused a bug in the beacon flood attack. --- esp8266_deauther/Mac.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/esp8266_deauther/Mac.cpp b/esp8266_deauther/Mac.cpp index 5d95939f..0e406b34 100644 --- a/esp8266_deauther/Mac.cpp +++ b/esp8266_deauther/Mac.cpp @@ -27,9 +27,9 @@ void Mac::setMac(Mac adr){ bool Mac::valid(){ for(int i=0;i<6;i++){ - if(adress[i] == 0xFF || adress[i] == 0x00) return false; + if(adress[i] != 0xFF && adress[i] != 0x00) return true; } - return true; + return false; } String Mac::toString(){ @@ -57,4 +57,4 @@ bool Mac::compare(Mac target){ return true; } - + From 529fc76a3ad580d0fe994bdb1c32923285aa8089 Mon Sep 17 00:00:00 2001 From: Stefan Kremser Date: Sat, 25 Mar 2017 10:50:56 +0100 Subject: [PATCH 11/11] hopefully fixed clientscan bug --- esp8266_deauther/ClientScan.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/esp8266_deauther/ClientScan.cpp b/esp8266_deauther/ClientScan.cpp index 305407cf..243fc6d7 100644 --- a/esp8266_deauther/ClientScan.cpp +++ b/esp8266_deauther/ClientScan.cpp @@ -25,9 +25,11 @@ void ClientScan::start(int _time){ curChannel = 0; for(int i=0;i