Build-time detection of secret.h

Added geocode call to devserver and fixed frontend implementation
This commit is contained in:
Mark van Renswoude 2018-01-08 16:27:04 +01:00
parent 5d6c5f7b74
commit 6cc2b5de02
13 changed files with 2626 additions and 2544 deletions

5
API.md
View File

@ -6,6 +6,7 @@
- [POST /api/connection](#post-apiconnection)
- [GET /api/steps](#get-apisteps)
- [POST /api/steps](#post-apisteps)
- [GET /api/geocode/latlong](#get-apigeocodelatlong)
- [POST /api/firmware](#post-apifirmware)
## GET /api/version
@ -116,6 +117,10 @@ An optional array 'startTime' can be included which specifies the delay, for eac
}
```
## GET /api/geocode/latlong
Internally calls the Google Maps Geocode API and returns the results as-is. Only accepts the 'address' GET parameter. If configured in the firmware, the API key is added as well. This prevents the API key from being exposed.
## POST /api/firmware
Uploads new firmware. The bin file should be posted as a multipart/form-data file attachment. Name is not relevant.

View File

@ -83,6 +83,22 @@ app.post('/api/steps', function(req, res)
res.sendStatus(400);
});
app.get('/api/geocode/latlong', function(req, res)
{
res.send({
results: [{
geometry: {
location: {
lat: 51.5719149,
lng: 4.768323
}
}
}],
status: 'OK'
});
});
app.listen(3000, function()
{
console.log('Development server listening on port 3000')

View File

@ -0,0 +1,7 @@
@Echo Off
echo -DASYNC_TCP_SSL_ENABLED=1
if exist src\secret.h (
echo -DSecretsPresent=1
)
echo -D

View File

@ -18,4 +18,4 @@ lib_deps =
ESP Async WebServer
NTPClient
Time
build_flags = -D ASYNC_TCP_SSL_ENABLED=1
build_flags = !platformio-buildflags.bat

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
#ifndef __assets_version
#define __assets_version
const uint8_t VersionMajor = 2;
const uint8_t VersionMinor = 0;
const uint8_t VersionPatch = 0;
const uint8_t VersionMetadata = 10;
const char VersionBranch[] = "release/2.0";
const char VersionSemVer[] = "2.0.0-beta.1";
const char VersionFullSemVer[] = "2.0.0-beta.1+10";
const char VersionCommitDate[] = "2018-01-07";
#endif
#ifndef __assets_version
#define __assets_version
const uint8_t VersionMajor = 2;
const uint8_t VersionMinor = 0;
const uint8_t VersionPatch = 0;
const uint8_t VersionMetadata = 12;
const char VersionBranch[] = "release/2.0";
const char VersionSemVer[] = "2.0.0-beta.1";
const char VersionFullSemVer[] = "2.0.0-beta.1+12";
const char VersionCommitDate[] = "2018-01-08";
#endif

View File

@ -5,10 +5,6 @@
// It is included in .gitignore by default so that you won't
// accidentally commit the dark secrets hidden within.
#define SecretsPresent
// They're not really that dark though.
// Used for the Geocode API to get the local timezone

View File

@ -9,7 +9,10 @@
#include <ESPAsyncTCP.h>
#include "../debug.h"
#ifdef SecretsPresent
#include "../secret.h"
#endif
struct ResponseBuffer
@ -20,6 +23,15 @@ struct ResponseBuffer
};
struct RequestArg
{
String address;
AsyncWebServerRequest *request;
ResponseBuffer* responseData;
size_t responseOffset;
};
String urlencode(const String url)
{
String encoded;
@ -59,133 +71,161 @@ void memcpy_unaligned(void* dest, void* source, size_t length)
}
void mapsGeocodeDisconnect(void* arg, AsyncClient* c);
void mapsGeocodeData(void* arg, AsyncClient* c, void* data, size_t len);
void mapsGeocodeConnect(void* arg, AsyncClient* client)
{
RequestArg* requestArg = (RequestArg*)arg;
client->onError(nullptr, nullptr);
client->onData(mapsGeocodeData, arg);
client->onDisconnect(mapsGeocodeDisconnect, arg);
#ifdef SecretsPresent
String url = "/maps/api/geocode/json?address=" + urlencode(requestArg->address) + "&key=" + urlencode(GoogleAPIKey);
#else
String url = "/maps/api/geocode/json?address=" + urlencode(requestArg->address);
#endif
client->write(String("GET " + url + " HTTP/1.0\r\nHost: maps.googleapis.com\n\r\n").c_str());
}
void mapsGeocodeData(void* arg, AsyncClient* c, void* data, size_t len)
{
RequestArg* requestArg = (RequestArg*)arg;
_dln("> OnData");
// Store all received chunks in a linked list
ResponseBuffer* next = new ResponseBuffer;
next->data = malloc(len);
memcpy_unaligned(next->data, data, len);
next->length = len;
next->next = nullptr;
if (requestArg->responseData == nullptr)
requestArg->responseData = next;
else
{
ResponseBuffer* prev = requestArg->responseData;
while (prev->next != nullptr)
prev = prev->next;
prev->next = next;
}
_dln("< OnData");
}
void mapsGeocodeDisconnect(void* arg, AsyncClient* client)
{
RequestArg* requestArg = (RequestArg*)arg;
_dln("> OnDisconnect");
if (requestArg->responseData == nullptr)
{
requestArg->request->send(500);
return;
}
// Send back the linked list using a chunked response
AsyncWebServerResponse *response = requestArg->request->beginChunkedResponse("application/json", [requestArg](uint8_t *buffer, size_t maxLen, size_t index) -> size_t
{
_dln("> ChunkedResponse");
if (requestArg->responseOffset >= requestArg->responseData->length)
{
// End of the chunk, go to the next one
ResponseBuffer* next = requestArg->responseData->next;
delete requestArg->responseData;
requestArg->responseData = next;
requestArg->responseOffset = 0;
}
if (requestArg->responseData == nullptr)
{
// We sent the last one, clean up what remains
ResponseBuffer* next;
while (requestArg->responseData != nullptr)
{
next = requestArg->responseData->next;
free(requestArg->responseData->data);
delete requestArg->responseData;
requestArg->responseData = next;
}
return 0;
}
if (maxLen >= requestArg->responseData->length - requestArg->responseOffset)
{
// Send the remainder of the chunk
memcpy_unaligned(buffer, (uint8_t*)requestArg->responseData->data + requestArg->responseOffset, requestArg->responseData->length - requestArg->responseOffset);
requestArg->responseOffset = requestArg->responseData->length;
}
else
{
memcpy_unaligned(buffer, (uint8_t*)requestArg->responseData->data + requestArg->responseOffset, maxLen);
requestArg->responseOffset += maxLen;
}
_dln("< ChunkedResponse");
});
requestArg->request->send(response);
delete requestArg;
delete client;
_dln("< OnDisconnect");
}
void handleGetLatLong(AsyncWebServerRequest *request)
{
_dln("API :: get lat long");
RequestArg* requestArg = new RequestArg();
requestArg->request = request;
requestArg->responseData = nullptr;
requestArg->responseOffset = 0;
AsyncWebParameter* addressParam = request->getParam("address");
if (addressParam == nullptr)
{
request->send(400);
delete requestArg;
return;
}
String address = addressParam->value();
if (!address.length())
requestArg->address = addressParam->value();
if (!requestArg->address.length())
{
request->send(400);
delete requestArg;
return;
}
AsyncClient* httpClient = new AsyncClient();
httpClient->onError([&](void* arg, AsyncClient* client, int error)
httpClient->onError([](void* arg, AsyncClient* client, int error)
{
RequestArg* requestArg = (RequestArg*)arg;
_dln("API :: get lat long: OnError");
request->send(500);
requestArg->request->send(500);
delete requestArg;
delete client;
});
httpClient->onConnect([&](void * arg, AsyncClient* client)
{
client->onError(nullptr, nullptr);
ResponseBuffer* responseData = nullptr;
client->onData([&](void* arg, AsyncClient* c, void* data, size_t len)
{
_dln("> OnData");
// Store all received chunks in a linked list
ResponseBuffer* next = new ResponseBuffer;
next->data = malloc(len);
memcpy_unaligned(next->data, data, len);
next->length = len;
next->next = nullptr;
if (responseData == nullptr)
responseData = next;
else
{
ResponseBuffer* prev = responseData;
while (prev->next != nullptr)
prev = prev->next;
prev->next = next;
}
_dln("< OnData");
});
client->onDisconnect([&](void* arg, AsyncClient* c)
{
_dln("> OnDisconnect");
if (responseData == nullptr)
{
request->send(500);
return;
}
// Send back the linked list using a chunked response
ResponseBuffer* sendChunk = responseData;
size_t sendOffset = 0;
AsyncWebServerResponse *response = request->beginChunkedResponse("application/json", [&](uint8_t *buffer, size_t maxLen, size_t index) -> size_t
{
_dln("> ChunkedResponse");
if (sendOffset >= sendChunk->length)
{
// End of the chunk, go to the next one
sendChunk = sendChunk->next;
sendOffset = 0;
}
if (sendChunk == nullptr)
{
// We sent the last one, clean up the linked list
ResponseBuffer* next;
while (responseData != nullptr)
{
next = responseData->next;
free(responseData->data);
delete responseData;
responseData = next;
}
return 0;
}
if (maxLen >= sendChunk->length - sendOffset)
{
// Send the remainder of the chunk
memcpy_unaligned(buffer, (uint8_t*)sendChunk->data + sendOffset, sendChunk->length - sendOffset);
sendOffset = sendChunk->length;
}
else
{
memcpy_unaligned(buffer, (uint8_t*)sendChunk->data + sendOffset, maxLen);
sendOffset += maxLen;
}
_dln("< ChunkedResponse");
});
request->send(response);
delete c;
_dln("< OnDisconnect");
});
#ifdef SecretsPresent
String url = "/maps/api/geocode/json?address=" + urlencode(address) + "&key=" + urlencode(GoogleAPIKey);
#else
String url = "/maps/api/geocode/json?address=" + urlencode(address);
#endif
client->write(String("GET " + url + " HTTP/1.0\r\nHost: maps.googleapis.com\n\r\n").c_str());
});
httpClient->onConnect(mapsGeocodeConnect, requestArg);
if (!httpClient->connect("maps.googleapis.com", 443, true))
{
_dln("API :: get lat long: failed to connect to Google API");
delete requestArg;
delete httpClient;
request->send(500);

View File

@ -298,8 +298,6 @@ function startApp()
{
// TODO show "now updating, please wait"
console.log("Update sent");
})
.catch(function(error)
{
@ -384,10 +382,14 @@ function startApp()
self.searchingLocation = true;
axios.get('http://maps.googleapis.com/maps/api/geocode/json', { params: { address: self.triggers.time.location }})
axios.get('/api/geocode/latlong', { params: { address: self.triggers.time.location }})
.then(function(response)
{
alert(response.data);
if (Array.isArray(response.data.results) && response.data.results.length > 0)
{
var location = response.data.results[0].geometry.location;
self.triggers.time.latlong = location.lat + ',' + location.lng;
}
})
.catch(function(error)
{
@ -420,7 +422,6 @@ function startApp()
activeTab: function(newValue)
{
console.log(newValue);
window.location.hash = '#' + newValue;
}
}

2
web/dist/bundle.js vendored

File diff suppressed because one or more lines are too long

View File

@ -91,9 +91,11 @@
<label for="latlong">{{ $t('triggers.timeLatLong') }}</label>
<input type="text" id="latlong" v-model="triggers.time.latlong">
<label for="location" class="label-inline">{{ $t('triggers.timeLocation') }}</label>
<input type="text" id="location" v-model="triggers.time.location">
<button class="button" @click.prevent="searchLocation" :disabled="searchingLocation">{{ $t('triggers.timeLocationSearch') }}</button>
<div class="suboptions">
<label for="location" class="label-inline">{{ $t('triggers.timeLocation') }}</label>
<input type="text" id="location" v-model="triggers.time.location">
<button class="button" @click.prevent="searchLocation" :disabled="searchingLocation">{{ $t('triggers.timeLocationSearch') }}</button>
</div>
</fieldset>