From 789eeb1ecbd0af855cc0b7d71888d2cf1d83b5bb Mon Sep 17 00:00:00 2001 From: "Ernest (ErNis)" Date: Sun, 10 Mar 2024 14:15:11 +0200 Subject: [PATCH] clean up --- printermonitor/OctoPrintClient.cpp | 414 ------ printermonitor/OctoPrintClient.h | 104 -- printermonitor/OpenWeatherMapClient.cpp | 323 ---- printermonitor/OpenWeatherMapClient.h | 93 -- printermonitor/RepetierClient.cpp | 367 ----- printermonitor/RepetierClient.h | 104 -- printermonitor/Settings.h | 132 -- printermonitor/TimeClient.cpp | 236 --- printermonitor/TimeClient.h | 66 - printermonitor/WeatherStationFonts.h | 1301 ----------------- printermonitor/libs/ArduinoJson/ArduinoJson.h | 5 - printermonitor/libs/ArduinoJson/CHANGELOG.md | 463 ------ .../libs/ArduinoJson/CMakeLists.txt | 16 - .../libs/ArduinoJson/CONTRIBUTING.md | 11 - printermonitor/libs/ArduinoJson/LICENSE.md | 10 - printermonitor/libs/ArduinoJson/README.md | 110 -- printermonitor/libs/ArduinoJson/SUPPORT.md | 27 - printermonitor/libs/ArduinoJson/appveyor.yml | 20 - printermonitor/libs/ArduinoJson/banner.svg | 367 ----- printermonitor/libs/ArduinoJson/keywords.txt | 15 - .../libs/ArduinoJson/src/ArduinoJson.h | 17 - .../libs/ArduinoJson/src/ArduinoJson.hpp | 17 - .../src/ArduinoJson/Configuration.hpp | 151 -- .../src/ArduinoJson/Data/Encoding.hpp | 37 - .../ArduinoJson/Data/JsonBufferAllocated.hpp | 22 - .../src/ArduinoJson/Data/JsonFloat.hpp | 18 - .../src/ArduinoJson/Data/JsonInteger.hpp | 23 - .../src/ArduinoJson/Data/JsonVariantAs.hpp | 42 - .../ArduinoJson/Data/JsonVariantContent.hpp | 27 - .../ArduinoJson/Data/JsonVariantDefault.hpp | 23 - .../src/ArduinoJson/Data/JsonVariantType.hpp | 27 - .../ArduinoJson/src/ArduinoJson/Data/List.hpp | 94 -- .../ArduinoJson/Data/ListConstIterator.hpp | 50 - .../src/ArduinoJson/Data/ListIterator.hpp | 60 - .../src/ArduinoJson/Data/ListNode.hpp | 24 - .../src/ArduinoJson/Data/NonCopyable.hpp | 23 - .../src/ArduinoJson/Data/ReferenceType.hpp | 24 - .../src/ArduinoJson/Data/ValueSaver.hpp | 52 - .../ArduinoJson/Deserialization/Comments.hpp | 61 - .../Deserialization/JsonParser.hpp | 103 -- .../Deserialization/JsonParserImpl.hpp | 192 --- .../Deserialization/StringWriter.hpp | 41 - .../src/ArduinoJson/DynamicJsonBuffer.hpp | 170 --- .../ArduinoJson/src/ArduinoJson/JsonArray.hpp | 227 --- .../src/ArduinoJson/JsonArrayImpl.hpp | 26 - .../src/ArduinoJson/JsonArraySubscript.hpp | 122 -- .../src/ArduinoJson/JsonBuffer.hpp | 78 - .../src/ArduinoJson/JsonBufferBase.hpp | 127 -- .../src/ArduinoJson/JsonBufferImpl.hpp | 17 - .../src/ArduinoJson/JsonObject.hpp | 322 ---- .../src/ArduinoJson/JsonObjectImpl.hpp | 28 - .../src/ArduinoJson/JsonObjectSubscript.hpp | 110 -- .../ArduinoJson/src/ArduinoJson/JsonPair.hpp | 16 - .../src/ArduinoJson/JsonVariant.hpp | 355 ----- .../src/ArduinoJson/JsonVariantBase.hpp | 24 - .../src/ArduinoJson/JsonVariantCasts.hpp | 59 - .../ArduinoJson/JsonVariantComparisons.hpp | 138 -- .../src/ArduinoJson/JsonVariantImpl.hpp | 126 -- .../src/ArduinoJson/JsonVariantOr.hpp | 52 - .../src/ArduinoJson/JsonVariantSubscripts.hpp | 86 -- .../src/ArduinoJson/Polyfills/attributes.hpp | 29 - .../src/ArduinoJson/Polyfills/ctype.hpp | 18 - .../src/ArduinoJson/Polyfills/isFloat.hpp | 38 - .../src/ArduinoJson/Polyfills/isInteger.hpp | 19 - .../src/ArduinoJson/Polyfills/math.hpp | 19 - .../src/ArduinoJson/Polyfills/parseFloat.hpp | 90 -- .../ArduinoJson/Polyfills/parseInteger.hpp | 41 - .../ArduinoJson/src/ArduinoJson/RawJson.hpp | 46 - .../ArduinoJson/Serialization/DummyPrint.hpp | 22 - .../Serialization/DynamicStringBuilder.hpp | 35 - .../ArduinoJson/Serialization/FloatParts.hpp | 89 -- .../Serialization/IndentedPrint.hpp | 68 - .../Serialization/JsonPrintable.hpp | 117 -- .../Serialization/JsonSerializer.hpp | 32 - .../Serialization/JsonSerializerImpl.hpp | 103 -- .../ArduinoJson/Serialization/JsonWriter.hpp | 155 -- .../ArduinoJson/Serialization/Prettyfier.hpp | 133 -- .../Serialization/StaticStringBuilder.hpp | 36 - .../Serialization/StreamPrintAdapter.hpp | 39 - .../src/ArduinoJson/StaticJsonBuffer.hpp | 126 -- .../StringTraits/ArduinoStream.hpp | 61 - .../ArduinoJson/StringTraits/CharPointer.hpp | 62 - .../ArduinoJson/StringTraits/FlashString.hpp | 59 - .../ArduinoJson/StringTraits/StdStream.hpp | 60 - .../ArduinoJson/StringTraits/StdString.hpp | 74 - .../ArduinoJson/StringTraits/StringTraits.hpp | 36 - .../src/ArduinoJson/TypeTraits/EnableIf.hpp | 19 - .../ArduinoJson/TypeTraits/FloatTraits.hpp | 150 -- .../src/ArduinoJson/TypeTraits/IsArray.hpp | 24 - .../src/ArduinoJson/TypeTraits/IsBaseOf.hpp | 27 - .../src/ArduinoJson/TypeTraits/IsChar.hpp | 23 - .../src/ArduinoJson/TypeTraits/IsConst.hpp | 21 - .../TypeTraits/IsFloatingPoint.hpp | 18 - .../src/ArduinoJson/TypeTraits/IsIntegral.hpp | 26 - .../src/ArduinoJson/TypeTraits/IsSame.hpp | 21 - .../TypeTraits/IsSignedIntegral.hpp | 28 - .../TypeTraits/IsUnsignedIntegral.hpp | 28 - .../src/ArduinoJson/TypeTraits/IsVariant.hpp | 17 - .../ArduinoJson/TypeTraits/RemoveConst.hpp | 20 - .../TypeTraits/RemoveReference.hpp | 20 - 100 files changed, 9444 deletions(-) delete mode 100644 printermonitor/OctoPrintClient.cpp delete mode 100644 printermonitor/OctoPrintClient.h delete mode 100644 printermonitor/OpenWeatherMapClient.cpp delete mode 100644 printermonitor/OpenWeatherMapClient.h delete mode 100644 printermonitor/RepetierClient.cpp delete mode 100644 printermonitor/RepetierClient.h delete mode 100644 printermonitor/Settings.h delete mode 100644 printermonitor/TimeClient.cpp delete mode 100644 printermonitor/TimeClient.h delete mode 100644 printermonitor/WeatherStationFonts.h delete mode 100644 printermonitor/libs/ArduinoJson/ArduinoJson.h delete mode 100644 printermonitor/libs/ArduinoJson/CHANGELOG.md delete mode 100644 printermonitor/libs/ArduinoJson/CMakeLists.txt delete mode 100644 printermonitor/libs/ArduinoJson/CONTRIBUTING.md delete mode 100644 printermonitor/libs/ArduinoJson/LICENSE.md delete mode 100644 printermonitor/libs/ArduinoJson/README.md delete mode 100644 printermonitor/libs/ArduinoJson/SUPPORT.md delete mode 100644 printermonitor/libs/ArduinoJson/appveyor.yml delete mode 100644 printermonitor/libs/ArduinoJson/banner.svg delete mode 100644 printermonitor/libs/ArduinoJson/keywords.txt delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson.h delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp delete mode 100644 printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp diff --git a/printermonitor/OctoPrintClient.cpp b/printermonitor/OctoPrintClient.cpp deleted file mode 100644 index 832835b..0000000 --- a/printermonitor/OctoPrintClient.cpp +++ /dev/null @@ -1,414 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ - -#include "OctoPrintClient.h" - -OctoPrintClient::OctoPrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - updatePrintClient(ApiKey, server, port, user, pass, psu); -} - -void OctoPrintClient::updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - server.toCharArray(myServer, 100); - myApiKey = ApiKey; - myPort = port; - encodedAuth = ""; - if (user != "") { - String userpass = user + ":" + pass; - base64 b64; - encodedAuth = b64.encode(userpass, true); - } - pollPsu = psu; -} - -boolean OctoPrintClient::validate() { - boolean rtnValue = false; - printerData.error = ""; - if (String(myServer) == "") { - printerData.error += "Server address is required; "; - } - if (myApiKey == "") { - printerData.error += "ApiKey is required; "; - } - if (printerData.error == "") { - rtnValue = true; - } - return rtnValue; -} - -WiFiClient OctoPrintClient::getSubmitRequest(String apiGetData) { - WiFiClient printClient; - printClient.setTimeout(5000); - - Serial.println("Getting Octoprint Data via GET"); - Serial.println(apiGetData); - result = ""; - if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection - printClient.println(apiGetData); - printClient.println("Host: " + String(myServer) + ":" + String(myPort)); - printClient.println("X-Api-Key: " + myApiKey); - if (encodedAuth != "") { - printClient.print("Authorization: "); - printClient.println("Basic " + encodedAuth); - } - printClient.println("User-Agent: ArduinoWiFi/1.1"); - printClient.println("Connection: close"); - if (printClient.println() == 0) { - Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); - Serial.println(); - resetPrintData(); - printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; - return printClient; - } - } - else { - Serial.println("Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort)); //error message if no client connect - Serial.println(); - resetPrintData(); - printerData.error = "Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort); - return printClient; - } - - // Check HTTP status - char status[32] = {0}; - printClient.readBytesUntil('\r', status, sizeof(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0 && strcmp(status, "HTTP/1.1 409 CONFLICT") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - printerData.state = ""; - printerData.error = "Response: " + String(status); - return printClient; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!printClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - } - - return printClient; -} - -WiFiClient OctoPrintClient::getPostRequest(String apiPostData, String apiPostBody) { - WiFiClient printClient; - printClient.setTimeout(5000); - - Serial.println("Getting Octoprint Data via POST"); - Serial.println(apiPostData + " | " + apiPostBody); - result = ""; - if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection - printClient.println(apiPostData); - printClient.println("Host: " + String(myServer) + ":" + String(myPort)); - printClient.println("Connection: close"); - printClient.println("X-Api-Key: " + myApiKey); - if (encodedAuth != "") { - printClient.print("Authorization: "); - printClient.println("Basic " + encodedAuth); - } - printClient.println("User-Agent: ArduinoWiFi/1.1"); - printClient.println("Content-Type: application/json"); - printClient.print("Content-Length: "); - printClient.println(apiPostBody.length()); - printClient.println(); - printClient.println(apiPostBody); - if (printClient.println() == 0) { - Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); - Serial.println(); - resetPrintData(); - printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; - return printClient; - } - } - else { - Serial.println("Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort)); //error message if no client connect - Serial.println(); - resetPrintData(); - printerData.error = "Connection to OctoPrint failed: " + String(myServer) + ":" + String(myPort); - return printClient; - } - - // Check HTTP status - char status[32] = {0}; - printClient.readBytesUntil('\r', status, sizeof(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0 && strcmp(status, "HTTP/1.1 409 CONFLICT") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - printerData.state = ""; - printerData.error = "Response: " + String(status); - return printClient; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!printClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - } - - return printClient; -} - -void OctoPrintClient::getPrinterJobResults() { - if (!validate()) { - return; - } - //**** get the Printer Job status - String apiGetData = "GET /api/job HTTP/1.1"; - WiFiClient printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize = JSON_OBJECT_SIZE(1) + JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 2*JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + 710; - DynamicJsonBuffer jsonBuffer(bufferSize); - - // Parse JSON object - JsonObject& root = jsonBuffer.parseObject(printClient); - if (!root.success()) { - Serial.println("OctoPrint Data Parsing failed: " + String(myServer) + ":" + String(myPort)); - printerData.error = "OctoPrint Data Parsing failed: " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - return; - } - - printerData.averagePrintTime = (const char*)root["job"]["averagePrintTime"]; - printerData.estimatedPrintTime = (const char*)root["job"]["estimatedPrintTime"]; - printerData.fileName = (const char*)root["job"]["file"]["name"]; - printerData.fileSize = (const char*)root["job"]["file"]["size"]; - printerData.lastPrintTime = (const char*)root["job"]["lastPrintTime"]; - printerData.progressCompletion = (const char*)root["progress"]["completion"]; - printerData.progressFilepos = (const char*)root["progress"]["filepos"]; - printerData.progressPrintTime = (const char*)root["progress"]["printTime"]; - printerData.progressPrintTimeLeft = (const char*)root["progress"]["printTimeLeft"]; - printerData.filamentLength = (const char*)root["job"]["filament"]["tool0"]["length"]; - printerData.state = (const char*)root["state"]; - - if (isOperational()) { - Serial.println("Status: " + printerData.state); - } else { - Serial.println("Printer Not Operational"); - } - - //**** get the Printer Temps and Stat - apiGetData = "GET /api/printer?exclude=sd,history HTTP/1.1"; - printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize2 = 3*JSON_OBJECT_SIZE(2) + 2*JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(9) + 300; - DynamicJsonBuffer jsonBuffer2(bufferSize2); - - // Parse JSON object - JsonObject& root2 = jsonBuffer2.parseObject(printClient); - if (!root2.success()) { - printerData.isPrinting = false; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"]; - return; - } - - String printing = (const char*)root2["state"]["flags"]["printing"]; - if (printing == "true") { - printerData.isPrinting = true; - } else { - printerData.isPrinting = false; - } - printerData.toolTemp = (const char*)root2["temperature"]["tool0"]["actual"]; - printerData.toolTargetTemp = (const char*)root2["temperature"]["tool0"]["target"]; - printerData.bedTemp = (const char*)root2["temperature"]["bed"]["actual"]; - printerData.bedTargetTemp = (const char*)root2["temperature"]["bed"]["target"]; - - if (isPrinting()) { - Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); - } -} - -void OctoPrintClient::getPrinterPsuState() { - //**** get the PSU state (if enabled and printer operational) - if (pollPsu && isOperational()) { - if (!validate()) { - printerData.isPSUoff = false; // we do not know PSU state, so assume on. - return; - } - String apiPostData = "POST /api/plugin/psucontrol HTTP/1.1"; - String apiPostBody = "{\"command\":\"getPSUState\"}"; - WiFiClient printClient = getPostRequest(apiPostData,apiPostBody); - if (printerData.error != "") { - printerData.isPSUoff = false; // we do not know PSU state, so assume on. - return; - } - const size_t bufferSize3 = JSON_OBJECT_SIZE(2) + 300; - DynamicJsonBuffer jsonBuffer3(bufferSize3); - - // Parse JSON object - JsonObject& root3 = jsonBuffer3.parseObject(printClient); - if (!root3.success()) { - printerData.isPSUoff = false; // we do not know PSU state, so assume on - return; - } - - String psu = (const char*)root3["isPSUOn"]; - if (psu == "true") { - printerData.isPSUoff = false; // PSU checked and is on - } else { - printerData.isPSUoff = true; // PSU checked and is off, set flag - } - printClient.stop(); //stop client - } else { - printerData.isPSUoff = false; // we are not checking PSU state, so assume on - } -} - -// Reset all PrinterData -void OctoPrintClient::resetPrintData() { - printerData.averagePrintTime = ""; - printerData.estimatedPrintTime = ""; - printerData.fileName = ""; - printerData.fileSize = ""; - printerData.lastPrintTime = ""; - printerData.progressCompletion = ""; - printerData.progressFilepos = ""; - printerData.progressPrintTime = ""; - printerData.progressPrintTimeLeft = ""; - printerData.state = ""; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.filamentLength = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = ""; - printerData.isPrinting = false; - printerData.isPSUoff = false; - printerData.error = ""; -} - -String OctoPrintClient::getAveragePrintTime(){ - return printerData.averagePrintTime; -} - -String OctoPrintClient::getEstimatedPrintTime() { - return printerData.estimatedPrintTime; -} - -String OctoPrintClient::getFileName() { - return printerData.fileName; -} - -String OctoPrintClient::getFileSize() { - return printerData.fileSize; -} - -String OctoPrintClient::getLastPrintTime(){ - return printerData.lastPrintTime; -} - -String OctoPrintClient::getProgressCompletion() { - return String(printerData.progressCompletion.toInt()); -} - -String OctoPrintClient::getProgressFilepos() { - return printerData.progressFilepos; -} - -String OctoPrintClient::getProgressPrintTime() { - return printerData.progressPrintTime; -} - -String OctoPrintClient::getProgressPrintTimeLeft() { - String rtnValue = printerData.progressPrintTimeLeft; - if (getProgressCompletion() == "100") { - rtnValue = "0"; // Print is done so this should be 0 this is a fix for OctoPrint - } - return rtnValue; -} - -String OctoPrintClient::getState() { - return printerData.state; -} - -boolean OctoPrintClient::isPrinting() { - return printerData.isPrinting; -} - -boolean OctoPrintClient::isPSUoff() { - return printerData.isPSUoff; -} - -boolean OctoPrintClient::isOperational() { - boolean operational = false; - if (printerData.state == "Operational" || isPrinting()) { - operational = true; - } - return operational; -} - -String OctoPrintClient::getTempBedActual() { - return printerData.bedTemp; -} - -String OctoPrintClient::getTempBedTarget() { - return printerData.bedTargetTemp; -} - -String OctoPrintClient::getTempToolActual() { - return printerData.toolTemp; -} - -String OctoPrintClient::getTempToolTarget() { - return printerData.toolTargetTemp; -} - -String OctoPrintClient::getFilamentLength() { - return printerData.filamentLength; -} - -String OctoPrintClient::getError() { - return printerData.error; -} - -String OctoPrintClient::getValueRounded(String value) { - float f = value.toFloat(); - int rounded = (int)(f+0.5f); - return String(rounded); -} - -String OctoPrintClient::getPrinterType() { - return printerType; -} - -int OctoPrintClient::getPrinterPort() { - return myPort; -} - -String OctoPrintClient::getPrinterName() { - return printerData.printerName; -} - -void OctoPrintClient::setPrinterName(String printer) { - printerData.printerName = printer; -} diff --git a/printermonitor/OctoPrintClient.h b/printermonitor/OctoPrintClient.h deleted file mode 100644 index 1761ccc..0000000 --- a/printermonitor/OctoPrintClient.h +++ /dev/null @@ -1,104 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ - -#pragma once -#include -#include "libs/ArduinoJson/ArduinoJson.h" -#include - -class OctoPrintClient { - -private: - char myServer[100]; - int myPort = 80; - String myApiKey = ""; - String encodedAuth = ""; - boolean pollPsu; - const String printerType = "OctoPrint"; - - void resetPrintData(); - boolean validate(); - WiFiClient getSubmitRequest(String apiGetData); - WiFiClient getPostRequest(String apiPostData, String apiPostBody); - - String result; - - typedef struct { - String averagePrintTime; - String estimatedPrintTime; - String fileName; - String fileSize; - String lastPrintTime; - String progressCompletion; - String progressFilepos; - String progressPrintTime; - String progressPrintTimeLeft; - String state; - String toolTemp; - String toolTargetTemp; - String filamentLength; - String bedTemp; - String bedTargetTemp; - boolean isPrinting; - boolean isPSUoff; - String error; - String printerName; - } PrinterStruct; - - PrinterStruct printerData; - - -public: - OctoPrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu); - void getPrinterJobResults(); - void getPrinterPsuState(); - void updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu); - - String getAveragePrintTime(); - String getEstimatedPrintTime(); - String getFileName(); - String getFileSize(); - String getLastPrintTime(); - String getProgressCompletion(); - String getProgressFilepos(); - String getProgressPrintTime(); - String getProgressPrintTimeLeft(); - String getState(); - boolean isPrinting(); - boolean isOperational(); - boolean isPSUoff(); - String getTempBedActual(); - String getTempBedTarget(); - String getTempToolActual(); - String getTempToolTarget(); - String getFilamentLength(); - String getValueRounded(String value); - String getError(); - String getPrinterType(); - int getPrinterPort(); - String getPrinterName(); - void setPrinterName(String printer); -}; diff --git a/printermonitor/OpenWeatherMapClient.cpp b/printermonitor/OpenWeatherMapClient.cpp deleted file mode 100644 index 5a6e367..0000000 --- a/printermonitor/OpenWeatherMapClient.cpp +++ /dev/null @@ -1,323 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#include "OpenWeatherMapClient.h" - -OpenWeatherMapClient::OpenWeatherMapClient(String ApiKey, int CityIDs[], int cityCount, boolean isMetric, String language) { - updateCityIdList(CityIDs, cityCount); - updateLanguage(language); - myApiKey = ApiKey; - setMetric(isMetric); -} - -void OpenWeatherMapClient::updateWeatherApiKey(String ApiKey) { - myApiKey = ApiKey; -} - -void OpenWeatherMapClient::updateLanguage(String language) { - lang = language; - if (lang == "") { - lang = "en"; - } -} - -void OpenWeatherMapClient::updateWeather() { - WiFiClient weatherClient; - String apiGetData = "GET /data/2.5/group?id=" + myCityIDs + "&units=" + units + "&cnt=1&APPID=" + myApiKey + "&lang=" + lang + " HTTP/1.1"; - - Serial.println("Getting Weather Data"); - Serial.println(apiGetData); - result = ""; - if (weatherClient.connect(servername, 80)) { //starts client connection, checks for connection - weatherClient.println(apiGetData); - weatherClient.println("Host: " + String(servername)); - weatherClient.println("User-Agent: ArduinoWiFi/1.1"); - weatherClient.println("Connection: close"); - weatherClient.println(); - } - else { - Serial.println("connection for weather data failed"); //error message if no client connect - Serial.println(); - return; - } - - while(weatherClient.connected() && !weatherClient.available()) delay(1); //waits for data - - Serial.println("Waiting for data"); - - // Check HTTP status - char status[32] = {0}; - weatherClient.readBytesUntil('\r', status, sizeof(status)); - Serial.println("Response Header: " + String(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - return; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!weatherClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - return; - } - - const size_t bufferSize = 710; - DynamicJsonBuffer jsonBuffer(bufferSize); - - weathers[0].cached = false; - weathers[0].error = ""; - // Parse JSON object - JsonObject& root = jsonBuffer.parseObject(weatherClient); - if (!root.success()) { - Serial.println(F("Weather Data Parsing failed!")); - weathers[0].error = "Weather Data Parsing failed!"; - return; - } - - weatherClient.stop(); //stop client - - if (root.measureLength() <= 150) { - Serial.println("Error Does not look like we got the data. Size: " + String(root.measureLength())); - weathers[0].cached = true; - weathers[0].error = (const char*)root["message"]; - Serial.println("Error: " + weathers[0].error); - return; - } - int count = root["cnt"]; - - for (int inx = 0; inx < count; inx++) { - weathers[inx].lat = (const char*)root["list"][inx]["coord"]["lat"]; - weathers[inx].lon = (const char*)root["list"][inx]["coord"]["lon"]; - weathers[inx].dt = (const char*)root["list"][inx]["dt"]; - weathers[inx].city = (const char*)root["list"][inx]["name"]; - weathers[inx].country = (const char*)root["list"][inx]["sys"]["country"]; - weathers[inx].temp = (const char*)root["list"][inx]["main"]["temp"]; - weathers[inx].humidity = (const char*)root["list"][inx]["main"]["humidity"]; - weathers[inx].condition = (const char*)root["list"][inx]["weather"][0]["main"]; - weathers[inx].wind = (const char*)root["list"][inx]["wind"]["speed"]; - weathers[inx].weatherId = (const char*)root["list"][inx]["weather"][0]["id"]; - weathers[inx].description = (const char*)root["list"][inx]["weather"][0]["description"]; - weathers[inx].icon = (const char*)root["list"][inx]["weather"][0]["icon"]; - weathers[inx].sunrise = (const char*)root["list"][inx]["sys"]["sunrise"]; - weathers[inx].sunset = (const char*)root["list"][inx]["sys"]["sunset"]; - - Serial.println("lat: " + weathers[inx].lat); - Serial.println("lon: " + weathers[inx].lon); - Serial.println("dt: " + weathers[inx].dt); - Serial.println("city: " + weathers[inx].city); - Serial.println("country: " + weathers[inx].country); - Serial.println("temp: " + weathers[inx].temp); - Serial.println("humidity: " + weathers[inx].humidity); - Serial.println("condition: " + weathers[inx].condition); - Serial.println("wind: " + weathers[inx].wind); - Serial.println("weatherId: " + weathers[inx].weatherId); - Serial.println("description: " + weathers[inx].description); - Serial.println("icon: " + weathers[inx].icon); - Serial.println("sunrise: " + weathers[inx].sunrise); - Serial.println("sunset: " + weathers[inx].sunset); - Serial.println(); - - } -} - -String OpenWeatherMapClient::roundValue(String value) { - float f = value.toFloat(); - int rounded = (int)(f+0.5f); - return String(rounded); -} - -void OpenWeatherMapClient::updateCityIdList(int CityIDs[], int cityCount) { - myCityIDs = ""; - for (int inx = 0; inx < cityCount; inx++) { - if (CityIDs[inx] > 0) { - if (myCityIDs != "") { - myCityIDs = myCityIDs + ","; - } - myCityIDs = myCityIDs + String(CityIDs[inx]); - } - } -} - -void OpenWeatherMapClient::setMetric(boolean isMetric) { - if (isMetric) { - units = "metric"; - } else { - units = "imperial"; - } -} - -String OpenWeatherMapClient::getWeatherResults() { - return result; -} - -String OpenWeatherMapClient::getLat(int index) { - return weathers[index].lat; -} - -String OpenWeatherMapClient::getLon(int index) { - return weathers[index].lon; -} - -String OpenWeatherMapClient::getDt(int index) { - return weathers[index].dt; -} - -String OpenWeatherMapClient::getCity(int index) { - return weathers[index].city; -} - -String OpenWeatherMapClient::getCountry(int index) { - return weathers[index].country; -} - -String OpenWeatherMapClient::getTemp(int index) { - return weathers[index].temp; -} - -String OpenWeatherMapClient::getTempRounded(int index) { - return roundValue(getTemp(index)); -} - -String OpenWeatherMapClient::getHumidity(int index) { - return weathers[index].humidity; -} - -String OpenWeatherMapClient::getHumidityRounded(int index) { - return roundValue(getHumidity(index)); -} - -String OpenWeatherMapClient::getCondition(int index) { - return weathers[index].condition; -} - -String OpenWeatherMapClient::getWind(int index) { - return weathers[index].wind; -} - -String OpenWeatherMapClient::getWindRounded(int index) { - return roundValue(getWind(index)); -} - -String OpenWeatherMapClient::getWeatherId(int index) { - return weathers[index].weatherId; -} - -String OpenWeatherMapClient::getDescription(int index) { - return weathers[index].description; -} - -String OpenWeatherMapClient::getIcon(int index) { - return weathers[index].icon; -} - -boolean OpenWeatherMapClient::getCached() { - return weathers[0].cached; -} - -String OpenWeatherMapClient::getMyCityIDs() { - return myCityIDs; -} - -String OpenWeatherMapClient::getError() { - return weathers[0].error; -} - -String OpenWeatherMapClient::getSunrise() { - return weathers[0].sunrise; -} - -String OpenWeatherMapClient::getSunset() { - return weathers[0].sunset; -} - -String OpenWeatherMapClient::getWeatherIcon(int index) -{ - int id = getWeatherId(index).toInt(); - String W = ")"; - switch(id) - { - case 800: W = "B"; break; - case 801: W = "Y"; break; - case 802: W = "H"; break; - case 803: W = "H"; break; - case 804: W = "Y"; break; - - case 200: W = "0"; break; - case 201: W = "0"; break; - case 202: W = "0"; break; - case 210: W = "0"; break; - case 211: W = "0"; break; - case 212: W = "0"; break; - case 221: W = "0"; break; - case 230: W = "0"; break; - case 231: W = "0"; break; - case 232: W = "0"; break; - - case 300: W = "R"; break; - case 301: W = "R"; break; - case 302: W = "R"; break; - case 310: W = "R"; break; - case 311: W = "R"; break; - case 312: W = "R"; break; - case 313: W = "R"; break; - case 314: W = "R"; break; - case 321: W = "R"; break; - - case 500: W = "R"; break; - case 501: W = "R"; break; - case 502: W = "R"; break; - case 503: W = "R"; break; - case 504: W = "R"; break; - case 511: W = "R"; break; - case 520: W = "R"; break; - case 521: W = "R"; break; - case 522: W = "R"; break; - case 531: W = "R"; break; - - case 600: W = "W"; break; - case 601: W = "W"; break; - case 602: W = "W"; break; - case 611: W = "W"; break; - case 612: W = "W"; break; - case 615: W = "W"; break; - case 616: W = "W"; break; - case 620: W = "W"; break; - case 621: W = "W"; break; - case 622: W = "W"; break; - - case 701: W = "M"; break; - case 711: W = "M"; break; - case 721: W = "M"; break; - case 731: W = "M"; break; - case 741: W = "M"; break; - case 751: W = "M"; break; - case 761: W = "M"; break; - case 762: W = "M"; break; - case 771: W = "M"; break; - case 781: W = "M"; break; - - default:break; - } - return W; -} diff --git a/printermonitor/OpenWeatherMapClient.h b/printermonitor/OpenWeatherMapClient.h deleted file mode 100644 index 33dec23..0000000 --- a/printermonitor/OpenWeatherMapClient.h +++ /dev/null @@ -1,93 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#pragma once -#include -#include "libs/ArduinoJson/ArduinoJson.h" - -class OpenWeatherMapClient { - -private: - String myCityIDs = ""; - String myApiKey = ""; - String units = ""; - String lang = ""; - - const char* servername = "api.openweathermap.org"; // remote server we will connect to - String result; - - typedef struct { - String lat; - String lon; - String dt; - String city; - String country; - String temp; - String humidity; - String condition; - String wind; - String weatherId; - String description; - String icon; - boolean cached; - String error; - String sunrise; - String sunset; - } weather; - - weather weathers[5]; - - String roundValue(String value); - -public: - OpenWeatherMapClient(String ApiKey, int CityIDs[], int cityCount, boolean isMetric, String language); - void updateWeather(); - void updateWeatherApiKey(String ApiKey); - void updateCityIdList(int CityIDs[], int cityCount); - void updateLanguage(String language); - void setMetric(boolean isMetric); - - String getWeatherResults(); - - String getLat(int index); - String getLon(int index); - String getDt(int index); - String getCity(int index); - String getCountry(int index); - String getTemp(int index); - String getTempRounded(int index); - String getHumidity(int index); - String getHumidityRounded(int index); - String getCondition(int index); - String getWind(int index); - String getWindRounded(int index); - String getWeatherId(int index); - String getDescription(int index); - String getIcon(int index); - boolean getCached(); - String getMyCityIDs(); - String getWeatherIcon(int index); - String getError(); - String getSunrise(); - String getSunset(); -}; diff --git a/printermonitor/RepetierClient.cpp b/printermonitor/RepetierClient.cpp deleted file mode 100644 index e547916..0000000 --- a/printermonitor/RepetierClient.cpp +++ /dev/null @@ -1,367 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol query via POST api call */ -/* 07 April 2019 : Jon Smith : Redesigned this class for Repetier Server */ - -#include "RepetierClient.h" - -RepetierClient::RepetierClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - updatePrintClient(ApiKey, server, port, user, pass, psu); -} - -void RepetierClient::updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu) { - server.toCharArray(myServer, 100); - myApiKey = ApiKey; - myPort = port; - encodedAuth = ""; - if (user != "") { - String userpass = user + ":" + pass; - base64 b64; - encodedAuth = b64.encode(userpass, true); - } - pollPsu = psu; -} - -boolean RepetierClient::validate() { - boolean rtnValue = false; - printerData.error = ""; - if (String(myServer) == "") { - printerData.error += "Server address is required; "; - } - if (myApiKey == "") { - printerData.error += "ApiKey is required; "; - } - if (printerData.error == "") { - rtnValue = true; - } - return rtnValue; -} - -WiFiClient RepetierClient::getSubmitRequest(String apiGetData) { - WiFiClient printClient; - printClient.setTimeout(5000); - - Serial.println("Getting Repetier Data via GET"); - Serial.println(apiGetData); - result = ""; - if (printClient.connect(myServer, myPort)) { //starts client connection, checks for connection - printClient.println(apiGetData); - printClient.println("Host: " + String(myServer) + ":" + String(myPort)); - printClient.println("X-Api-Key: " + myApiKey); - if (encodedAuth != "") { - printClient.print("Authorization: "); - printClient.println("Basic " + encodedAuth); - } - printClient.println("User-Agent: ArduinoWiFi/1.1"); - printClient.println("Connection: close"); - if (printClient.println() == 0) { - Serial.println("Connection to " + String(myServer) + ":" + String(myPort) + " failed."); - Serial.println(); - resetPrintData(); - printerData.error = "Connection to " + String(myServer) + ":" + String(myPort) + " failed."; - return printClient; - } - } - else { - Serial.println("Connection to Repetier failed: " + String(myServer) + ":" + String(myPort)); //error message if no client connect - Serial.println(); - resetPrintData(); - printerData.error = "Connection to Repetier failed: " + String(myServer) + ":" + String(myPort); - return printClient; - } -/* - // Check HTTP status - char status[32] = {0}; - printClient.readBytesUntil('\r', status, sizeof(status)); - if (strcmp(status, "HTTP/1.1 200 OK") != 0) { - Serial.print(F("Unexpected response: ")); - Serial.println(status); - printerData.state = ""; - printerData.error = "Response: " + String(status); - return printClient; - } - - // Skip HTTP headers - char endOfHeaders[] = "\r\n\r\n"; - if (!printClient.find(endOfHeaders)) { - Serial.println(F("Invalid response")); - printerData.error = "Invalid response from " + String(myServer) + ":" + String(myPort); - printerData.state = ""; - } -*/ - return printClient; -} - - -void RepetierClient::getPrinterJobResults() { - if (!validate()) { - return; - } - //**** get the Printer Job status - String apiGetData = "GET /printer/api/?a=listPrinter&apikey=" + myApiKey; - WiFiClient printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize = JSON_OBJECT_SIZE(1) + JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + 2*JSON_OBJECT_SIZE(5) + JSON_OBJECT_SIZE(6) + 710; - DynamicJsonBuffer jsonBuffer(bufferSize); - - // Parse JSON object - JsonArray& root = jsonBuffer.parseArray(printClient); - - if (!root.success()) { - printerData.error = "Repetier Data Parsing failed: " + String(myServer) + ":" + String(myPort); - Serial.println(printerData.error); - printerData.state = ""; - return; - } - - int inx = 0; - int count = root.size(); - Serial.println("Size of root: " + String(count)); - for (int i = 0; i < count; i++) { - Serial.println("Printer: " + String((const char*)root[i]["slug"])); - if (String((const char*)root[i]["slug"]) == printerData.printerName) { - inx = i; - break; - } - } - - JsonObject& pr = root[inx]; - - //printerData.averagePrintTime = (const char*)pr[""]; - printerData.estimatedPrintTime = (const char*)pr["printTime"]; - printerData.fileName = (const char*) pr["job"]; - printerData.fileSize = (const char*) pr["totalLines"]; - //printerData.filamentLength = (const char*) pr[""]; - printerData.state = (const char*) pr["online"]; - //printerData.lastPrintTime = (const char*) pr[""]; - printerData.progressCompletion = (const char*) pr["done"]; - printerData.progressFilepos = (const char*) pr["linesSend"]; - printerData.progressPrintTime = (const char*) pr["printedTimeComp"]; - -//Figure out Time Left - long timeTot=0; - long timeElap=0; - long timeLeft=0; - if (printerData.estimatedPrintTime != "" ) { - timeTot = atol(pr["printTime"]); - } - if (printerData.progressPrintTime != "") { - timeElap= atol(pr["printedTimeComp"]); - } - timeLeft = timeTot-timeElap; - printerData.progressPrintTimeLeft = String(timeLeft); - - if (printerData.fileName != "none") { - printerData.isPrinting = true; - } else { - printerData.isPrinting = false; - } - - if (printerData.isPrinting) { - Serial.println("Printing: " + printerData.fileName); - } - - if (isOperational()) { - Serial.println("Status: " + printerData.state); - } else { - Serial.println("Printer Not Operational"); - } - - //**** get the Printer Temps and Stat - apiGetData = "GET /printer/api/?a=stateList&apikey=" + myApiKey; - printClient = getSubmitRequest(apiGetData); - if (printerData.error != "") { - return; - } - const size_t bufferSize2 = 3*JSON_OBJECT_SIZE(2) + 2*JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(9) + 300; - DynamicJsonBuffer jsonBuffer2(bufferSize2); - - //Parse JSON object - JsonObject& root2 = jsonBuffer2.parseObject(printClient); - - //Select printer - JsonObject& pr2 = root2[printerData.printerName]; - - if (!root2.success()) { - printerData.isPrinting = false; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = ""; - return; - } - - printerData.toolTemp = (const char*) pr2["extruder"][0]["tempRead"]; - printerData.toolTargetTemp = (const char*) pr2["extruder"][0]["tempSet"]; - printerData.bedTemp = (const char*) pr2["heatedBeds"][0]["tempRead"]; - printerData.bedTargetTemp = (const char*) pr2["heatedBeds"][0]["tempSet"]; - - if (printerData.isPrinting) { - Serial.println("Status: " + printerData.state + " " + printerData.fileName + "(" + printerData.progressCompletion + "%)"); - } -} - -void RepetierClient::getPrinterPsuState() { - //**** get the PSU state (if enabled and printer operational) - //Not implemented in Repetier Server AFAIK -} - -// Reset all PrinterData -void RepetierClient::resetPrintData() { - printerData.averagePrintTime = ""; - printerData.estimatedPrintTime = ""; - printerData.fileName = ""; - printerData.fileSize = ""; - printerData.lastPrintTime = ""; - printerData.progressCompletion = ""; - printerData.progressFilepos = ""; - printerData.progressPrintTime = ""; - printerData.progressPrintTimeLeft = ""; - printerData.state = ""; - printerData.toolTemp = ""; - printerData.toolTargetTemp = ""; - printerData.filamentLength = ""; - printerData.bedTemp = ""; - printerData.bedTargetTemp = ""; - printerData.isPrinting = false; - printerData.isPSUoff = false; - printerData.error = ""; -} - -String RepetierClient::getAveragePrintTime(){ - return printerData.averagePrintTime; -} - -String RepetierClient::getEstimatedPrintTime() { - return printerData.estimatedPrintTime; -} - -String RepetierClient::getFileName() { - return printerData.fileName; -} - -String RepetierClient::getFileSize() { - return printerData.fileSize; -} - -String RepetierClient::getLastPrintTime(){ - return printerData.lastPrintTime; -} - -String RepetierClient::getProgressCompletion() { - return String(printerData.progressCompletion.toInt()); -} - -String RepetierClient::getProgressFilepos() { - return printerData.progressFilepos; -} - -String RepetierClient::getProgressPrintTime() { - return printerData.progressPrintTime; -} - -String RepetierClient::getProgressPrintTimeLeft() { - String rtnValue = printerData.progressPrintTimeLeft; - if (getProgressCompletion() == "100") { - rtnValue = "0"; // Print is done so this should be 0 this is a fix for OctoPrint - } - return rtnValue; -} - -String RepetierClient::getState() { - String rtnValue = "Offline"; - if (printerData.state == "1") { - rtnValue = "Operational"; - } - return rtnValue; -} - -boolean RepetierClient::isPrinting() { - return printerData.isPrinting; -} - -boolean RepetierClient::isPSUoff() { - return printerData.isPSUoff; -} - -boolean RepetierClient::isOperational() { - boolean operational = false; - if (printerData.state == "1" || isPrinting()) { - operational = true; - } - return operational; -} - -String RepetierClient::getTempBedActual() { - String temp = printerData.bedTemp; - temp.remove(temp.indexOf(".") + 3); - return temp; -} - -String RepetierClient::getTempBedTarget() { - return printerData.bedTargetTemp; -} - -String RepetierClient::getTempToolActual() { - String temp = printerData.toolTemp; - temp.remove(temp.indexOf(".") + 3); - return temp; -} - -String RepetierClient::getTempToolTarget() { - return printerData.toolTargetTemp; -} - -String RepetierClient::getFilamentLength() { - return printerData.filamentLength; -} - -String RepetierClient::getError() { - return printerData.error; -} - -String RepetierClient::getValueRounded(String value) { - float f = value.toFloat(); - int rounded = (int)(f+0.5f); - return String(rounded); -} - -String RepetierClient::getPrinterType() { - return printerType; -} - -int RepetierClient::getPrinterPort() { - return myPort; -} - -String RepetierClient::getPrinterName() { - return printerData.printerName; -} - -void RepetierClient::setPrinterName(String printer) { - printerData.printerName = printer; -} diff --git a/printermonitor/RepetierClient.h b/printermonitor/RepetierClient.h deleted file mode 100644 index 7c92105..0000000 --- a/printermonitor/RepetierClient.h +++ /dev/null @@ -1,104 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -/* 07 April 2019 : Jon Smith : added class for Repetier Server (kg4iae@github)*/ - - -#pragma once -#include -#include "libs/ArduinoJson/ArduinoJson.h" -#include - -class RepetierClient { - -private: - char myServer[100]; - int myPort = 3344; - String myApiKey = ""; - String encodedAuth = ""; - boolean pollPsu; - const String printerType = "Repetier"; - - void resetPrintData(); - boolean validate(); - WiFiClient getSubmitRequest(String apiGetData); - WiFiClient getPostRequest(String apiPostData, String apiPostBody); - - String result; - - typedef struct { - String averagePrintTime; - String estimatedPrintTime; - String fileName; - String fileSize; - String lastPrintTime; - String progressCompletion; - String progressFilepos; - String progressPrintTime; - String progressPrintTimeLeft; - String state; - String toolTemp; - String toolTargetTemp; - String filamentLength; - String bedTemp; - String bedTargetTemp; - boolean isPrinting; - boolean isPSUoff; - String error; - String printerName; - } PrinterStruct; - - PrinterStruct printerData; - - -public: - RepetierClient(String ApiKey, String server, int port, String user, String pass, boolean psu); - void getPrinterJobResults(); - void getPrinterPsuState(); - void updatePrintClient(String ApiKey, String server, int port, String user, String pass, boolean psu); - - String getAveragePrintTime(); - String getEstimatedPrintTime(); - String getFileName(); - String getFileSize(); - String getLastPrintTime(); - String getProgressCompletion(); - String getProgressFilepos(); - String getProgressPrintTime(); - String getProgressPrintTimeLeft(); - String getState(); - boolean isPrinting(); - boolean isOperational(); - boolean isPSUoff(); - String getTempBedActual(); - String getTempBedTarget(); - String getTempToolActual(); - String getTempToolTarget(); - String getFilamentLength(); - String getValueRounded(String value); - String getError(); - String getPrinterType(); - int getPrinterPort(); - String getPrinterName(); - void setPrinterName(String printer); -}; diff --git a/printermonitor/Settings.h b/printermonitor/Settings.h deleted file mode 100644 index c107211..0000000 --- a/printermonitor/Settings.h +++ /dev/null @@ -1,132 +0,0 @@ -/** The MIT License (MIT) - -Copyright (c) 2018 David Payne - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -// Additional Contributions: -/* 15 Jan 2019 : Owen Carter : Add psucontrol setting */ - -/****************************************************************************** - * Printer Monitor is designed for the Wemos D1 ESP8266 - * Wemos D1 Mini: https://amzn.to/2qLyKJd - * 0.96" OLED I2C 128x64 Display (12864) SSD1306 - * OLED Display: https://amzn.to/2JDEAUF - ******************************************************************************/ -/****************************************************************************** - * NOTE: The settings here are the default settings for the first loading. - * After loading you will manage changes to the settings via the Web Interface. - * If you want to change settings again in the settings.h, you will need to - * erase the file system on the Wemos or use the “Reset Settings” option in - * the Web Interface. - ******************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "TimeClient.h" -#include "RepetierClient.h" -#include "OctoPrintClient.h" -#include "OpenWeatherMapClient.h" -#include "WeatherStationFonts.h" -#include "FS.h" -#include "SH1106Wire.h" -#include "SSD1306Wire.h" -#include "OLEDDisplayUi.h" - -//****************************** -// Start Settings -//****************************** - -#define PRINTER_MON - -// OctoPrint / Repetier Monitoring -- Monitor your 3D OctoPrint or Repetier Server -//#define USE_REPETIER_CLIENT // Uncomment this line to use the Repetier Printer Server -- OctoPrint is used by default and is most common -#if defined(PRINTER_MON) -String PrinterApiKey = ""; // ApiKey from your User Account on OctoPrint / Repetier -String PrinterHostName = "octopi";// Default 'octopi' -- or hostname if different (optional if your IP changes) -String PrinterServer = ""; // IP or Address of your OctoPrint / Repetier Server (DO NOT include http://) -int PrinterPort = 80; // the port you are running your OctoPrint / Repetier server on (usually 80); -String PrinterAuthUser = ""; // only used if you have haproxy or basic athentintication turned on (not default) -String PrinterAuthPass = ""; // only used with haproxy or basic auth (only needed if you must authenticate) -#endif - -// Weather Configuration -boolean DISPLAYWEATHER = false; // true = show weather when not printing / false = no weather -String WeatherApiKey = ""; // Your API Key from http://openweathermap.org/ -// Default City Location (use http://openweathermap.org/find to find city ID) -int CityIDs[] = { 593116 }; //Only USE ONE for weather marquee -boolean IS_METRIC = true; // false = Imperial and true = Metric -// Languages: ar, bg, ca, cz, de, el, en, fa, fi, fr, gl, hr, hu, it, ja, kr, la, lt, mk, nl, pl, pt, ro, ru, se, sk, sl, es, tr, ua, vi, zh_cn, zh_tw -String WeatherLanguage = "en"; //Default (en) English - -// MQTT -boolean MqttUse = false; -String MqttServer = ""; -int MqttPort = 1883; -String MqttUser = "admin"; -String MqttPsw = "admin"; -String MqttTempTopic = ""; -String MqttLwtTopic = ""; - -// Webserver -const int WEBSERVER_PORT = 80; // The port you can access this device on over HTTP -const boolean WEBSERVER_ENABLED = true; // Device will provide a web interface via http://[ip]:[port]/ -boolean IS_BASIC_AUTH = false; // true = require athentication to change configuration settings / false = no auth -char* www_username = "admin"; // User account for the Web Interface -char* www_password = "password"; // Password for the Web Interface - -// Date and Time -float UtcOffset = +3; // Hour offset from GMT for your timezone -boolean DstUsed = true; -boolean IS_24HOUR = true; // 23:00 millitary 24 hour clock -int minutesBetweenDataRefresh = 15; -boolean DISPLAYCLOCK = true; // true = Show Clock when not printing / false = turn off display when not printing -int DayTimeBrightness = 255; -int NightTimeBrightness = 100; - -// Display Settings -const int I2C_DISPLAY_ADDRESS = 0x3c; // I2C Address of your Display (usually 0x3c or 0x3d) -//const int I2C_DISPLAY_ADDRESS = 0x78; // I2C Address of your Display (usually 0x3c or 0x3d) -const int SDA_PIN = D2; -//const int SCL_PIN = D1; // original code D5 -- Monitor Easy Board use D1 -const int SCL_PIN = D5; -boolean INVERT_DISPLAY = false; // true = pins at top | false = pins at the bottom -//#define DISPLAY_SH1106 // Uncomment this line to use the SH1106 display -- SSD1306 is used by default and is most common - -// LED Settings -const int externalLight = LED_BUILTIN; // LED will always flash on bootup or Wifi Errors -boolean USE_FLASH = true; // true = System LED will Flash on Service Calls; false = disabled LED flashing - -// PSU Control -boolean HAS_PSU = false; // Set to true if https://github.com/kantlivelong/OctoPrint-PSUControl/ in use - -// OTA Updates -boolean ENABLE_OTA = true; // this will allow you to load firmware to the device over WiFi (see OTA for ESP8266) -String OTA_Password = ""; // Set an OTA password here -- leave blank if you don't want to be prompted for password - -//****************************** -// End Settings -//****************************** - -String themeColor = "light-green"; // this can be changed later in the web interface. diff --git a/printermonitor/TimeClient.cpp b/printermonitor/TimeClient.cpp deleted file mode 100644 index ab091ba..0000000 --- a/printermonitor/TimeClient.cpp +++ /dev/null @@ -1,236 +0,0 @@ -/**The MIT License (MIT) - -Copyright (c) 2015 by Daniel Eichhorn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -/* -Modified by David Payne for use in the Scrolling Marquee -*/ - -#include "TimeClient.h" -#include // https://github.com/JChristensen/Timezone - -TimeClient::TimeClient(float utcOffset) { - myUtcOffset = utcOffset; -} - -void TimeClient::updateTime() { - WiFiClient client; - - if (!client.connect(ntpServerName, httpPort)) { - Serial.println("connection failed"); - return; - } - - // This will send the request to the server - client.print(String("GET / HTTP/1.1\r\n") + - String("Host: www.google.com\r\n") + - String("Connection: close\r\n\r\n")); - int repeatCounter = 0; - while(!client.available() && repeatCounter < 10) { - delay(1000); - Serial.println("."); - repeatCounter++; - } - - String line; - - int size = 0; - client.setNoDelay(false); - while(client.connected()) { - while((size = client.available()) > 0) { - line = client.readStringUntil('\n'); - line.toUpperCase(); - // example: - // date: Thu, 19 Nov 2015 20:25:40 GMT - if (line.startsWith("DATE: ")) { - Serial.println(line); - Serial.println(line.substring(23, 25) + ":" + line.substring(26, 28) + ":" +line.substring(29, 31)); - int parsedHours = line.substring(23, 25).toInt(); - int parsedMinutes = line.substring(26, 28).toInt(); - int parsedSeconds = line.substring(29, 31).toInt(); - Serial.println(String(parsedHours) + ":" + String(parsedMinutes) + ":" + String(parsedSeconds)); - - int parsedDay = line.substring(11, 13).toInt(); - String parsedMonthStr = line.substring(14, 17); - int parsedMonth; - if (parsedMonthStr == "JAN") { - parsedMonth = 1; - } else if (parsedMonthStr == "FEB") { - parsedMonth = 2; - } else if (parsedMonthStr == "MAR") { - parsedMonth = 3; - } else if (parsedMonthStr == "APR") { - parsedMonth = 4; - } else if (parsedMonthStr == "MAY") { - parsedMonth = 5; - } else if (parsedMonthStr == "JUN") { - parsedMonth = 6; - } else if (parsedMonthStr == "JUL") { - parsedMonth = 7; - } else if (parsedMonthStr == "AUG") { - parsedMonth = 8; - } else if (parsedMonthStr == "SEP") { - parsedMonth = 9; - } else if (parsedMonthStr == "OCT") { - parsedMonth = 10; - } else if (parsedMonthStr == "NOV") { - parsedMonth = 11; - } else if (parsedMonthStr == "DEC") { - parsedMonth = 12; - } - int parsedYear = line.substring(18, 22).toInt(); - - Serial.println(String(parsedYear) + "-" + String(parsedMonth) + "-" + String(parsedDay)); - - localEpoc = (parsedHours * 60 * 60 + parsedMinutes * 60 + parsedSeconds); - Serial.println(localEpoc); - - tmElements_t tm; - tm.Month = parsedMonth; - tm.Day = parsedDay; - tm.Year = CalendarYrToTm(parsedYear); - tm.Hour = parsedHours; - tm.Minute = parsedMinutes; - tm.Second = parsedSeconds; - - unixEpoc = makeTime(tm); - Serial.println(unixEpoc); - - localMillisAtUpdate = millis(); - client.stop(); - } - } - } - -} - -void TimeClient::setUtcOffset(float utcOffset) { - myUtcOffset = utcOffset; -} - -String TimeClient::getHours() { - if (localEpoc == 0) { - return "--"; - } - int hours = ((getCurrentEpochWithUtcOffset() % 86400L) / 3600) % 24; - if (hours < 10) { - return "0" + String(hours); - } - return String(hours); // print the hour (86400 equals secs per day) - -} -String TimeClient::getMinutes() { - if (localEpoc == 0) { - return "--"; - } - int minutes = ((getCurrentEpochWithUtcOffset() % 3600) / 60); - if (minutes < 10 ) { - // In the first 10 minutes of each hour, we'll want a leading '0' - return "0" + String(minutes); - } - return String(minutes); -} -String TimeClient::getSeconds() { - if (localEpoc == 0) { - return "--"; - } - int seconds = getCurrentEpochWithUtcOffset() % 60; - if ( seconds < 10 ) { - // In the first 10 seconds of each minute, we'll want a leading '0' - return "0" + String(seconds); - } - return String(seconds); -} - -String TimeClient::getAmPmHours() { - int hours = getHours().toInt(); - if (hours >= 13) { - hours = hours - 12; - } - if (hours == 0) { - hours = 12; - } - return String(hours); -} - -String TimeClient::getAmPm() { - int hours = getHours().toInt(); - String ampmValue = "AM"; - if (hours >= 12) { - ampmValue = "PM"; - } - return ampmValue; -} - -String TimeClient::getYear() { - if (localEpoc == 0) { - return "--"; - } - int _year = year(getCurrentUnixEpoch() + (myUtcOffset * 3600)); - return String(_year); -} - -String TimeClient::getMonth() { - if (localEpoc == 0) { - return "--"; - } - int _month = month(getCurrentUnixEpoch() + (myUtcOffset * 3600)); - if (_month < 10) { - return "0" + String(_month); - } - return String(_month); -} - -String TimeClient::getDay() { - if (localEpoc == 0) { - return "--"; - } - int _day = day(getCurrentUnixEpoch() + (myUtcOffset * 3600)); - if (_day < 10) { - return "0" + String(_day); - } - return String(_day); -} - -String TimeClient::getFormattedDate() { - return getYear() + "-" + getMonth() + "-" + getDay(); -} - -String TimeClient::getFormattedTime() { - return getHours() + ":" + getMinutes() + ":" + getSeconds(); -} - -String TimeClient::getAmPmFormattedTime() { - return getAmPmHours() + ":" + getMinutes() + " " + getAmPm(); -} - -long TimeClient::getCurrentEpoch() { - return localEpoc + ((millis() - localMillisAtUpdate) / 1000); -} - -long TimeClient::getCurrentEpochWithUtcOffset() { - return (long)round(getCurrentEpoch() + 3600 * myUtcOffset + 86400L) % 86400L; -} - -long TimeClient::getCurrentUnixEpoch() { - return unixEpoc + ((millis() - localMillisAtUpdate) / 1000); -} diff --git a/printermonitor/TimeClient.h b/printermonitor/TimeClient.h deleted file mode 100644 index 45a6a69..0000000 --- a/printermonitor/TimeClient.h +++ /dev/null @@ -1,66 +0,0 @@ -/**The MIT License (MIT) - -Copyright (c) 2015 by Daniel Eichhorn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -See more at http://blog.squix.ch -*/ - -/* -Modified by David Payne for use in the Scrolling Marquee -*/ - -#pragma once - -#include - -#define NTP_PACKET_SIZE 48 - -class TimeClient { - - private: - float myUtcOffset = 0; - long localEpoc = 0; - long unixEpoc; - long localMillisAtUpdate; - const char* ntpServerName = "www.google.com"; - const int httpPort = 80; - byte packetBuffer[ NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets - - public: - TimeClient(float utcOffset); - void updateTime(); - - void setUtcOffset(float utcOffset); - String getHours(); - String getAmPmHours(); - String getAmPm(); - String getMinutes(); - String getSeconds(); - String getFormattedTime(); - String getAmPmFormattedTime(); - String getYear(); - String getMonth(); - String getDay(); - String getFormattedDate(); - long getCurrentEpoch(); - long getCurrentEpochWithUtcOffset(); - long getCurrentUnixEpoch(); -}; diff --git a/printermonitor/WeatherStationFonts.h b/printermonitor/WeatherStationFonts.h deleted file mode 100644 index 054fccc..0000000 --- a/printermonitor/WeatherStationFonts.h +++ /dev/null @@ -1,1301 +0,0 @@ -/**The MIT License (MIT) - -Copyright (c) 2015 by Daniel Eichhorn - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -See more at http://blog.squix.ch -*/ -#define FONT_LIB_V3 -// Created by http://oleddisplay.squix.ch/ Consider a donation -// In case of problems make sure that you are using the font file with the correct version! -const char Meteocons_Plain_42[] PROGMEM = { - 0x2A, // Width: 42 - 0x2C, // Height: 44 - 0x20, // First Char: 32 - 0xE0, // Numbers of Chars: 224 - - // Jump Table: - 0xFF, 0xFF, 0x00, 0x15, // 32:65535 - 0x00, 0x00, 0xF3, 0x2A, // 33:0 - 0x00, 0xF3, 0xF9, 0x2A, // 34:243 - 0x01, 0xEC, 0xF9, 0x2A, // 35:492 - 0x02, 0xE5, 0xF9, 0x2A, // 36:741 - 0x03, 0xDE, 0xFA, 0x2A, // 37:990 - 0x04, 0xD8, 0xF9, 0x2A, // 38:1240 - 0x05, 0xD1, 0x9B, 0x2A, // 39:1489 - 0x06, 0x6C, 0xFA, 0x2A, // 40:1644 - 0x07, 0x66, 0xE2, 0x2A, // 41:1894 - 0x08, 0x48, 0xB2, 0x2A, // 42:2120 - 0x08, 0xFA, 0xB1, 0x2A, // 43:2298 - 0x09, 0xAB, 0x66, 0x19, // 44:2475 - 0x0A, 0x11, 0x7C, 0x19, // 45:2577 - 0x0A, 0x8D, 0x5F, 0x19, // 46:2701 - 0x0A, 0xEC, 0x8C, 0x19, // 47:2796 - 0x0B, 0x78, 0xF9, 0x2A, // 48:2936 - 0x0C, 0x71, 0xE1, 0x2A, // 49:3185 - 0x0D, 0x52, 0xB2, 0x2A, // 50:3410 - 0x0E, 0x04, 0xFB, 0x2A, // 51:3588 - 0x0E, 0xFF, 0xFB, 0x2A, // 52:3839 - 0x0F, 0xFA, 0xFA, 0x2A, // 53:4090 - 0x10, 0xF4, 0xF9, 0x2A, // 54:4340 - 0x11, 0xED, 0xF9, 0x2A, // 55:4589 - 0x12, 0xE6, 0xF9, 0x2A, // 56:4838 - 0x13, 0xDF, 0xF4, 0x2A, // 57:5087 - 0x14, 0xD3, 0x5F, 0x19, // 58:5331 - 0x15, 0x32, 0x66, 0x19, // 59:5426 - 0x15, 0x98, 0x95, 0x19, // 60:5528 - 0x16, 0x2D, 0x89, 0x19, // 61:5677 - 0x16, 0xB6, 0x94, 0x19, // 62:5814 - 0x17, 0x4A, 0x7A, 0x19, // 63:5962 - 0x17, 0xC4, 0x94, 0x19, // 64:6084 - 0x18, 0x58, 0xC2, 0x2A, // 65:6232 - 0x19, 0x1A, 0xE1, 0x2A, // 66:6426 - 0x19, 0xFB, 0xB8, 0x2A, // 67:6651 - 0x1A, 0xB3, 0xD6, 0x2A, // 68:6835 - 0x1B, 0x89, 0xF3, 0x2A, // 69:7049 - 0x1C, 0x7C, 0xE7, 0x2A, // 70:7292 - 0x1D, 0x63, 0xC4, 0x2A, // 71:7523 - 0x1E, 0x27, 0xFB, 0x2A, // 72:7719 - 0x1F, 0x22, 0xFB, 0x2A, // 73:7970 - 0x20, 0x1D, 0xE3, 0x2A, // 74:8221 - 0x21, 0x00, 0xE3, 0x2A, // 75:8448 - 0x21, 0xE3, 0xFB, 0x2A, // 76:8675 - 0x22, 0xDE, 0xCA, 0x2A, // 77:8926 - 0x23, 0xA8, 0xFA, 0x2A, // 78:9128 - 0x24, 0xA2, 0xF9, 0x2A, // 79:9378 - 0x25, 0x9B, 0xF9, 0x2A, // 80:9627 - 0x26, 0x94, 0xF9, 0x2A, // 81:9876 - 0x27, 0x8D, 0xF9, 0x2A, // 82:10125 - 0x28, 0x86, 0xFA, 0x2A, // 83:10374 - 0x29, 0x80, 0xF9, 0x2A, // 84:10624 - 0x2A, 0x79, 0xF9, 0x2A, // 85:10873 - 0x2B, 0x72, 0xF9, 0x2A, // 86:11122 - 0x2C, 0x6B, 0xF9, 0x2A, // 87:11371 - 0x2D, 0x64, 0xF9, 0x2A, // 88:11620 - 0x2E, 0x5D, 0xFB, 0x2A, // 89:11869 - 0x2F, 0x58, 0xF9, 0x2A, // 90:12120 - 0x30, 0x51, 0x8C, 0x19, // 91:12369 - 0x30, 0xDD, 0x90, 0x19, // 92:12509 - 0x31, 0x6D, 0x6C, 0x19, // 93:12653 - 0x31, 0xD9, 0x88, 0x19, // 94:12761 - 0x32, 0x61, 0x8A, 0x19, // 95:12897 - 0x32, 0xEB, 0x62, 0x19, // 96:13035 - 0x33, 0x4D, 0x89, 0x19, // 97:13133 - 0x33, 0xD6, 0x88, 0x19, // 98:13270 - 0x34, 0x5E, 0x83, 0x19, // 99:13406 - 0x34, 0xE1, 0x83, 0x19, // 100:13537 - 0x35, 0x64, 0x83, 0x19, // 101:13668 - 0x35, 0xE7, 0x8C, 0x19, // 102:13799 - 0x36, 0x73, 0x84, 0x19, // 103:13939 - 0x36, 0xF7, 0x83, 0x19, // 104:14071 - 0x37, 0x7A, 0x77, 0x19, // 105:14202 - 0x37, 0xF1, 0x6C, 0x19, // 106:14321 - 0x38, 0x5D, 0x8F, 0x19, // 107:14429 - 0x38, 0xEC, 0x71, 0x19, // 108:14572 - 0x39, 0x5D, 0x89, 0x19, // 109:14685 - 0x39, 0xE6, 0x83, 0x19, // 110:14822 - 0x3A, 0x69, 0x88, 0x19, // 111:14953 - 0x3A, 0xF1, 0x88, 0x19, // 112:15089 - 0x3B, 0x79, 0x84, 0x19, // 113:15225 - 0x3B, 0xFD, 0x82, 0x19, // 114:15357 - 0x3C, 0x7F, 0x83, 0x19, // 115:15487 - 0x3D, 0x02, 0x89, 0x19, // 116:15618 - 0x3D, 0x8B, 0x83, 0x19, // 117:15755 - 0x3E, 0x0E, 0x8D, 0x19, // 118:15886 - 0x3E, 0x9B, 0x94, 0x19, // 119:16027 - 0x3F, 0x2F, 0x89, 0x19, // 120:16175 - 0x3F, 0xB8, 0x8D, 0x19, // 121:16312 - 0x40, 0x45, 0x83, 0x19, // 122:16453 - 0x40, 0xC8, 0x86, 0x19, // 123:16584 - 0x41, 0x4E, 0x54, 0x19, // 124:16718 - 0x41, 0xA2, 0x76, 0x19, // 125:16802 - 0x42, 0x18, 0x8E, 0x19, // 126:16920 - 0xFF, 0xFF, 0x00, 0x00, // 127:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 128:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 129:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 130:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 131:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 132:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 133:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 134:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 135:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 136:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 137:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 138:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 139:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 140:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 141:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 142:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 143:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 144:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 145:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 146:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 147:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 148:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 149:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 150:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 151:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 152:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 153:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 154:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 155:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 156:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 157:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 158:65535 - 0xFF, 0xFF, 0x00, 0x2A, // 159:65535 - 0xFF, 0xFF, 0x00, 0x15, // 160:65535 - 0x42, 0xA6, 0x60, 0x19, // 161:17062 - 0x43, 0x06, 0x7D, 0x19, // 162:17158 - 0x43, 0x83, 0x83, 0x19, // 163:17283 - 0x44, 0x06, 0x89, 0x19, // 164:17414 - 0x44, 0x8F, 0x8C, 0x19, // 165:17551 - 0x45, 0x1B, 0x54, 0x19, // 166:17691 - 0x45, 0x6F, 0x84, 0x19, // 167:17775 - 0x45, 0xF3, 0x6E, 0x19, // 168:17907 - 0x46, 0x61, 0x94, 0x19, // 169:18017 - 0x46, 0xF5, 0x75, 0x19, // 170:18165 - 0x47, 0x6A, 0x89, 0x19, // 171:18282 - 0x47, 0xF3, 0x89, 0x19, // 172:18419 - 0x48, 0x7C, 0x7C, 0x19, // 173:18556 - 0x48, 0xF8, 0x94, 0x19, // 174:18680 - 0x49, 0x8C, 0x68, 0x19, // 175:18828 - 0x49, 0xF4, 0x68, 0x19, // 176:18932 - 0x4A, 0x5C, 0x8F, 0x19, // 177:19036 - 0x4A, 0xEB, 0x76, 0x19, // 178:19179 - 0x4B, 0x61, 0x8D, 0x19, // 179:19297 - 0x4B, 0xEE, 0x61, 0x19, // 180:19438 - 0x4C, 0x4F, 0x7D, 0x19, // 181:19535 - 0x4C, 0xCC, 0x86, 0x19, // 182:19660 - 0x4D, 0x52, 0x5E, 0x19, // 183:19794 - 0x4D, 0xB0, 0x60, 0x19, // 184:19888 - 0x4E, 0x10, 0x7C, 0x19, // 185:19984 - 0x4E, 0x8C, 0x7B, 0x19, // 186:20108 - 0x4F, 0x07, 0x82, 0x19, // 187:20231 - 0x4F, 0x89, 0x8F, 0x19, // 188:20361 - 0x50, 0x18, 0x8C, 0x19, // 189:20504 - 0x50, 0xA4, 0x8F, 0x19, // 190:20644 - 0x51, 0x33, 0x78, 0x19, // 191:20787 - 0x51, 0xAB, 0x83, 0x19, // 192:20907 - 0x52, 0x2E, 0x83, 0x19, // 193:21038 - 0x52, 0xB1, 0x83, 0x19, // 194:21169 - 0x53, 0x34, 0x83, 0x19, // 195:21300 - 0x53, 0xB7, 0x83, 0x19, // 196:21431 - 0x54, 0x3A, 0x83, 0x19, // 197:21562 - 0x54, 0xBD, 0x8F, 0x19, // 198:21693 - 0x55, 0x4C, 0x83, 0x19, // 199:21836 - 0x55, 0xCF, 0x7D, 0x19, // 200:21967 - 0x56, 0x4C, 0x7D, 0x19, // 201:22092 - 0x56, 0xC9, 0x7D, 0x19, // 202:22217 - 0x57, 0x46, 0x7D, 0x19, // 203:22342 - 0x57, 0xC3, 0x7D, 0x19, // 204:22467 - 0x58, 0x40, 0x7D, 0x19, // 205:22592 - 0x58, 0xBD, 0x7D, 0x19, // 206:22717 - 0x59, 0x3A, 0x7D, 0x19, // 207:22842 - 0x59, 0xB7, 0x8E, 0x19, // 208:22967 - 0x5A, 0x45, 0x83, 0x19, // 209:23109 - 0x5A, 0xC8, 0x8E, 0x19, // 210:23240 - 0x5B, 0x56, 0x8E, 0x19, // 211:23382 - 0x5B, 0xE4, 0x8E, 0x19, // 212:23524 - 0x5C, 0x72, 0x8E, 0x19, // 213:23666 - 0x5D, 0x00, 0x8E, 0x19, // 214:23808 - 0x5D, 0x8E, 0x7D, 0x19, // 215:23950 - 0x5E, 0x0B, 0x8E, 0x19, // 216:24075 - 0x5E, 0x99, 0x83, 0x19, // 217:24217 - 0x5F, 0x1C, 0x83, 0x19, // 218:24348 - 0x5F, 0x9F, 0x83, 0x19, // 219:24479 - 0x60, 0x22, 0x83, 0x19, // 220:24610 - 0x60, 0xA5, 0x86, 0x19, // 221:24741 - 0x61, 0x2B, 0x88, 0x19, // 222:24875 - 0x61, 0xB3, 0x89, 0x19, // 223:25011 - 0x62, 0x3C, 0x89, 0x19, // 224:25148 - 0x62, 0xC5, 0x89, 0x19, // 225:25285 - 0x63, 0x4E, 0x89, 0x19, // 226:25422 - 0x63, 0xD7, 0x89, 0x19, // 227:25559 - 0x64, 0x60, 0x89, 0x19, // 228:25696 - 0x64, 0xE9, 0x89, 0x19, // 229:25833 - 0x65, 0x72, 0x8F, 0x19, // 230:25970 - 0x66, 0x01, 0x7D, 0x19, // 231:26113 - 0x66, 0x7E, 0x83, 0x19, // 232:26238 - 0x67, 0x01, 0x83, 0x19, // 233:26369 - 0x67, 0x84, 0x83, 0x19, // 234:26500 - 0x68, 0x07, 0x83, 0x19, // 235:26631 - 0x68, 0x8A, 0x71, 0x19, // 236:26762 - 0x68, 0xFB, 0x71, 0x19, // 237:26875 - 0x69, 0x6C, 0x71, 0x19, // 238:26988 - 0x69, 0xDD, 0x71, 0x19, // 239:27101 - 0x6A, 0x4E, 0x88, 0x19, // 240:27214 - 0x6A, 0xD6, 0x7D, 0x19, // 241:27350 - 0x6B, 0x53, 0x88, 0x19, // 242:27475 - 0x6B, 0xDB, 0x88, 0x19, // 243:27611 - 0x6C, 0x63, 0x88, 0x19, // 244:27747 - 0x6C, 0xEB, 0x88, 0x19, // 245:27883 - 0x6D, 0x73, 0x88, 0x19, // 246:28019 - 0x6D, 0xFB, 0x88, 0x19, // 247:28155 - 0x6E, 0x83, 0x8E, 0x19, // 248:28291 - 0x6F, 0x11, 0x83, 0x19, // 249:28433 - 0x6F, 0x94, 0x83, 0x19, // 250:28564 - 0x70, 0x17, 0x83, 0x19, // 251:28695 - 0x70, 0x9A, 0x83, 0x19, // 252:28826 - 0x71, 0x1D, 0x8D, 0x19, // 253:28957 - 0x71, 0xAA, 0x88, 0x19, // 254:29098 - 0x72, 0x32, 0x8D, 0x19, // 255:29234 - - // Font Data: - 0x00,0x00,0xE7,0x00,0x00,0x00,0x00,0x00,0xE7,0x00,0x00,0x00,0x00,0x00,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE0,0x00,0x00,0x00,0x00,0x38,0xE0,0x00,0x00,0x00,0x00,0x10,0xE0,0x00,0x00,0x00,0x00,0xF0,0xE1,0x00,0x00,0x00,0x00,0xFC,0x47,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0xC0,0x01,0x00,0xC0,0xFF,0x3F,0xF0,0x03,0x00,0xE0,0xFF,0x3F,0xFC,0x03,0x00,0xF0,0xFF,0x7F,0xF0,0x03,0x00,0xF0,0xFF,0x7F,0xC0,0x01,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x38,0x00,0xF0,0xFF,0x7F,0x00,0x7E,0x00,0xF0,0xFF,0x7F,0x80,0x7F,0x00,0xE0,0xFF,0x3F,0x00,0x7E,0x00,0xC0,0xFF,0x3F,0x00,0x38,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xF0,0x01, // 33 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x81,0x21,0x00,0xFC,0xFF,0xFF,0xC3,0x71,0x00,0xFC,0xFF,0xFF,0xC3,0x7F,0x00,0xFE,0xFF,0xFF,0x87,0x3F,0x00,0xFE,0xFF,0xFF,0x87,0x3F,0x00,0xFE,0xFF,0xFF,0xFF,0xF1,0x03,0xFE,0xFF,0xFF,0xFF,0xF1,0x03,0xFE,0xFF,0xFF,0xFF,0xF1,0x03,0xFE,0xFF,0xFF,0x87,0x3F,0x00,0xFE,0xFF,0xFF,0x87,0x3F,0x00,0xFC,0xFF,0xFF,0xC3,0x7F,0x00,0xFC,0xFF,0xFF,0xC3,0x71,0x00,0xFC,0xFF,0xFF,0xC3,0x71,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 34 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x80,0x00,0x00,0x00,0xFF,0x3F,0xC0,0x00,0x00,0x80,0xFF,0x7F,0xF8,0x00,0x00,0x80,0xFF,0x7F,0xF0,0x07,0x00,0xC0,0xFF,0xFF,0xB0,0x03,0x00,0xC0,0xFF,0xFF,0xBC,0x01,0x00,0xC0,0xFF,0xFF,0xE0,0x03,0x00,0xC0,0xFF,0xFF,0x60,0x03,0x00,0xC0,0xFF,0xFF,0x20,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x83,0xE3,0x00,0xFE,0xFF,0xFF,0x83,0xF3,0x00,0xFE,0xFF,0xFF,0x03,0x7F,0x00,0xFE,0xFF,0xFF,0x07,0x7F,0x00,0xFE,0xFF,0xFF,0x87,0x7F,0x00,0xFE,0xFF,0xFF,0xF7,0xE3,0x07,0xFE,0xFF,0xFF,0xF7,0xE3,0x07,0xFE,0xFF,0xFF,0x87,0x7F,0x00,0xFE,0xFF,0xFF,0x07,0x7F,0x00,0xFE,0xFF,0xFF,0x03,0x7F,0x00,0xFE,0xFF,0xFF,0x83,0xF3,0x00,0xFC,0xFF,0xFF,0x83,0xE3,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x80,0x01,0x00,0xC0,0xFF,0xFF,0x80,0x09,0x00,0xC0,0xFF,0xFF,0x80,0x0F,0x00,0xC0,0xFF,0xFF,0xE0,0x07,0x00,0xC0,0xFF,0xFF,0xC0,0x1C,0x00,0x80,0xFF,0x7F,0x80,0x1F,0x00,0x80,0xFF,0x7F,0xC0,0x07,0x00,0x00,0xFF,0x3F,0x40,0x06,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 35 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x7F,0x38,0x00,0x00,0x80,0xFF,0x7F,0x7C,0x00,0x00,0xC0,0xFF,0x7F,0x7C,0x00,0x00,0xC0,0xFF,0xFF,0x7C,0x00,0x00,0xC0,0xFF,0x7F,0x38,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0xC0,0x01,0xF0,0xFF,0x7F,0x00,0xE0,0x03,0xF8,0xFF,0xFF,0x00,0xE0,0x03,0xF8,0xFF,0xFF,0x00,0xE0,0x03,0xFC,0xFF,0xFF,0x01,0xC0,0x01,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFE,0xFF,0xFF,0xC3,0x01,0x00,0xFE,0xFF,0xFF,0xE3,0x03,0x00,0xFE,0xFF,0xFF,0xE3,0x03,0x00,0xFE,0xFF,0xFF,0xE3,0x03,0x00,0xFE,0xFF,0xFF,0xC3,0x01,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x01,0xC0,0x01,0xF8,0xFF,0xFF,0x00,0xE0,0x03,0xF0,0xFF,0x7F,0x00,0xE0,0x03,0xE0,0xFF,0x7F,0x00,0xE0,0x03,0xC0,0xFF,0x7F,0x00,0xC0,0x01,0xC0,0xFF,0x7F,0x38,0x00,0x00,0xC0,0xFF,0xFF,0x7C,0x00,0x00,0xC0,0xFF,0x7F,0x7C,0x00,0x00,0x80,0xFF,0x7F,0x7C,0x00,0x00,0x80,0xFF,0x7F,0x38,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 36 - 0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x01,0x00,0x00,0x00,0xFC,0xFF,0x03,0x00,0x00,0x00,0xFC,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0xF0,0xFF,0xFF,0x07,0x00,0x00,0xF8,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x07,0x00,0x00,0xFC,0xFF,0xFF,0x0F,0x00,0x00,0xFE,0xFF,0xFF,0x0F,0x00,0x00,0xFE,0xFF,0xFF,0x0F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFF,0xFF,0xFF,0x1F,0x00,0x80,0xFF,0xFF,0xFF,0x1F,0x00,0xC0,0xFF,0xFF,0xFF,0x1F,0x00,0xC0,0xFF,0xFF,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0xFF,0x1F,0x00,0xE0,0xFF,0xFF,0xFF,0x0F,0x00,0xE0,0xFF,0xFF,0xFF,0x0F,0x00,0xE0,0xFF,0xFF,0xFF,0x0F,0x00,0xE0,0xFF,0xFF,0xFF,0x07,0x00,0xC0,0xFF,0xFF,0xFF,0x03,0x00,0xC0,0xFF,0xFF,0xFF,0x07,0x00,0x80,0xFF,0xFF,0xFF,0x07,0x00,0x80,0xFF,0xFF,0xFF,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xEF,0x7F,0x00,0x00,0x00,0xE0,0x83,0x1F, // 37 - 0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x80,0xFF,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0xFF,0x3F,0x00,0x00,0xE0,0xFF,0xFF,0x7F,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x05,0x03,0xF0,0xFF,0xFF,0xFF,0xCF,0x01,0xF0,0xFF,0xFF,0xFF,0xFF,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0x00,0xFC,0xFF,0xFF,0xFF,0x7F,0x00,0xFE,0xFF,0xFF,0xFF,0x39,0x00,0xFE,0xFF,0xFF,0xFF,0x31,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0xFF,0x7F,0x00,0x00,0xF8,0xFF,0xFF,0x7F,0x00,0x00,0xF0,0xFF,0xFF,0x7F,0x00,0x00,0xF0,0xFF,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0xFF,0x0F,0x00,0x00,0x80,0x7F,0xFE,0x07,0x00,0x00,0x00,0x3F,0xF8, // 38 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0xC0,0x1F,0x00,0x00,0x00,0x00,0xC0,0x3F,0x00,0xF0,0xFF,0xFF,0xFF,0x7F,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0x00,0xF0,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0xC0,0x3F,0x00,0x00,0x00,0x00,0x80,0x0F, // 39 - 0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFF,0x01,0xFE,0x07,0x00,0x80,0x7F,0x00,0xF0,0x0F,0x00,0xC0,0x1F,0x00,0xC0,0x1F,0x00,0xE0,0x0F,0x00,0x80,0x3F,0x00,0xF0,0x07,0x00,0x00,0x7F,0x00,0xF0,0x03,0x00,0x00,0x7E,0x00,0xF8,0x01,0x00,0x00,0xFC,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0xFC,0x00,0x00,0x10,0xF8,0x01,0x7C,0x00,0x00,0x0C,0xF0,0x01,0x7C,0x00,0x00,0x0F,0xF0,0x01,0x7E,0x00,0xC0,0x07,0xF0,0x03,0x3E,0x00,0xF0,0x07,0xE0,0x03,0x3E,0x00,0xF8,0x03,0xE0,0x03,0x3E,0x00,0xFC,0x03,0xE0,0x03,0x3E,0x00,0xFC,0x01,0xE0,0x03,0x3E,0x00,0xFE,0x01,0xE0,0x03,0x3E,0x00,0xFE,0x00,0xE0,0x03,0x3E,0x00,0xFF,0x00,0xE0,0x03,0x3E,0x00,0x3F,0x00,0xE0,0x03,0x7E,0x80,0x0F,0x00,0xF0,0x03,0x7C,0x80,0x03,0x00,0xF0,0x01,0x7C,0xC0,0x01,0x00,0xF0,0x01,0xFC,0x40,0x00,0x00,0xF8,0x01,0xF8,0x00,0x00,0x00,0xF8,0x00,0xF8,0x01,0x00,0x00,0xFC,0x00,0xF0,0x03,0x00,0x00,0x7E,0x00,0xF0,0x07,0x00,0x00,0x7F,0x00,0xE0,0x0F,0x00,0x80,0x3F,0x00,0xC0,0x1F,0x00,0xC0,0x1F,0x00,0x80,0x7F,0x00,0xF0,0x0F,0x00,0x00,0xFF,0x01,0xFE,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x03, // 40 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0x00,0x80,0x3F,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0xE0,0x0F,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x80,0x8F,0x03,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0x80,0x9F,0x03,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x08, // 41 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0x00,0xC0,0x08,0x00,0x00,0x00,0x00,0x80,0x0C,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xC0,0x03,0x1E,0x00,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x80,0x01,0x0C, // 42 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0x71,0x00,0x00,0x00,0x00,0xC0,0x71,0x00,0x00,0x00,0x00,0xC0,0x71,0x00,0x00,0x00,0x00,0xC0,0x71,0x00,0x00,0x00,0x00,0xC0,0x71,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01, // 43 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0x00,0x00,0x00,0x00,0xFE,0x10,0x00,0x00,0x00,0x00,0xFE,0x1C,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 44 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C, // 45 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x38, // 46 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x01, // 47 - 0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0x80,0x07,0x0F,0x00,0x00,0x00,0xC0,0x03,0x1E,0x00,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x00,0xE0,0x01,0x3C,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xFF,0x00,0x38,0x00,0x00,0x80,0x7F,0x00,0x3C,0x00,0x00,0xC0,0x3F,0x00,0x3C,0x00,0x00,0xE0,0x1D,0x00,0x18,0x00,0x00,0xF0,0x1E,0x00,0x00,0x00,0x00,0x70,0x0E,0x00,0xC0,0x00,0x01,0x70,0x0E,0x00,0xC0,0xE1,0x00,0x70,0x07,0x00,0xE0,0x7F,0x00,0xF8,0x07,0x00,0xF0,0x3F,0x00,0x7C,0x07,0x00,0xF0,0x1F,0x00,0x3C,0x07,0x00,0xB8,0x0F,0x00,0x1C,0x07,0x00,0x0C,0x06,0x00,0x0E,0x07,0x00,0x02,0x00,0x00,0x0E,0x0F,0x00,0x40,0x00,0x00,0x0E,0x0E,0x00,0xE0,0x00,0x00,0x0E,0x1E,0x00,0xF0,0x00,0x00,0x0E,0x1C,0x00,0x70,0x00,0x00,0x0E,0x3C,0x00,0x3C,0x00,0x00,0x1E,0x78,0x00,0x1C,0x00,0x00,0x1C,0xF0,0x00,0x38,0x00,0x00,0x3C,0xE0,0x00,0x38,0x00,0x00,0xF8,0xE0,0x00,0x38,0x00,0x00,0x70,0xE0,0x00,0x38,0x00,0x00,0x70,0xE0,0x00,0x38,0x00,0x00,0x70,0xC0,0x01,0x3C,0x00,0x00,0xF0,0xC0,0x01,0x1C,0x00,0x00,0xE0,0x80,0x03,0x1E,0x00,0x00,0xE0,0xC3,0x07,0x0F,0x00,0x00,0xC0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFC,0x03,0x00,0x00,0x00,0x3E,0xF8, // 48 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x01,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x18,0xFC,0x61,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0xE0,0xE3,0xFF,0x3F,0x1F,0x00,0xE0,0xE3,0xFF,0x3F,0x1F,0x00,0xE0,0xE3,0xFF,0x3F,0x1F,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x18,0xFC,0x61,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x0C,0x00,0x80,0x01,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70, // 49 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0xE0,0x3F,0x00,0x00,0x00,0x00,0xC0,0x3F,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x02, // 50 - 0x00,0x00,0x07,0xF0,0x01,0x00,0x00,0x00,0x07,0xFC,0x07,0x00,0x00,0x00,0x07,0xFF,0x0F,0x00,0x00,0x00,0x87,0xFF,0x1F,0x00,0x00,0x00,0x87,0xFF,0x3F,0x00,0xC0,0x00,0xC0,0xFF,0x7F,0x00,0xC0,0x01,0xC0,0xFF,0x7F,0x00,0xC0,0x03,0xC0,0xFF,0x7F,0x00,0x80,0x83,0xEF,0xFF,0x7F,0x00,0x00,0xE0,0xFF,0xFF,0x7F,0x00,0x00,0xF0,0xFF,0xFF,0x7F,0x00,0x00,0x78,0xF0,0xFF,0x7F,0x00,0x00,0x3C,0xF0,0xFF,0x7F,0x00,0x00,0x1C,0xF8,0xFF,0x7F,0x00,0x00,0x1E,0xFC,0xFF,0xFF,0x00,0x00,0x0E,0xFC,0xFF,0xFF,0x01,0x3E,0x0E,0xFE,0xFF,0xFF,0x01,0x3E,0x0E,0xFE,0xFF,0xFF,0x01,0x3E,0x0E,0xFF,0xFF,0xFF,0x03,0x00,0x0E,0xFF,0xFF,0xFF,0x03,0x00,0x1E,0xFF,0xFF,0xFF,0x03,0x00,0x1C,0xFF,0xFF,0xFF,0x03,0x00,0x3C,0xFF,0xFF,0xFF,0x03,0x00,0x78,0xFF,0xFF,0xFF,0x03,0x00,0xF0,0xFF,0xFF,0xFF,0x03,0x00,0xE1,0xFF,0xFF,0xFF,0x01,0x80,0x01,0xFF,0xFF,0xFF,0x01,0xC0,0x01,0xFC,0xFF,0xFF,0x00,0xE0,0x00,0xFC,0xFF,0xFF,0x00,0x60,0x00,0xFA,0xFF,0x7F,0x00,0x00,0x00,0xF7,0xFF,0x7F,0x00,0x00,0x00,0xE7,0xFF,0x7F,0x00,0x00,0x00,0xE7,0xFF,0x7F,0x00,0x00,0x00,0xE7,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 51 - 0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x01,0x00,0x00,0xFE,0xFF,0xFF,0x01,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0xFC,0xFF,0xFF,0xFF,0x03,0x00,0xFF,0xFF,0xFF,0xFF,0x03,0xC0,0xFF,0xFF,0xFF,0xFF,0x03,0xE0,0x03,0xFE,0xFF,0xFF,0x03,0xE0,0x01,0xFE,0xFF,0xFF,0x03,0xF0,0x01,0xFE,0xFF,0xFF,0x01,0xF8,0x1F,0xFE,0xFF,0xFF,0x01,0xF8,0x3F,0xFC,0xFF,0xFF,0x01,0x10,0xFC,0xFC,0xFF,0xFF,0x00,0x00,0xF0,0xF8,0xFF,0x7F,0x00,0x00,0xE0,0xF1,0xFF,0x3F,0x00,0x00,0xC0,0xE3,0xFF,0x7F,0x00,0x00,0x80,0xE3,0xFF,0x7F,0x00,0x00,0x80,0xE3,0xFF,0x7F,0x00,0x00,0x80,0xF7,0xFF,0x7F,0x00,0x00,0x80,0xF7,0xFF,0x7F,0x00,0x00,0x80,0xFF,0xFF,0x7F,0x00,0x00,0x80,0xDF,0xFF,0x3F,0x00,0x00,0x80,0xCF,0xFF,0x3F,0x00,0x00,0x80,0x83,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 52 - 0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x3F,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xF0,0x01, // 53 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x33,0x20,0x00,0xFE,0xFF,0xFF,0x7B,0x1C,0x00,0xFE,0xFF,0xFF,0xFF,0x0F,0x00,0xFE,0xFF,0xFF,0xFF,0x07,0x00,0xFE,0xFF,0xFF,0xFF,0x03,0x00,0xFE,0xFF,0xFF,0xE7,0x01,0x00,0xFE,0xFF,0xFF,0xC3,0x01,0x00,0xFE,0xFF,0xFF,0x83,0x00,0x00,0xFE,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 54 - 0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0xE0,0x3F,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0xFC,0xFF,0x01,0x00,0x00,0x00,0xFC,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFF,0xFF,0x03,0x00,0x00,0x80,0xFF,0xFF,0x03,0x00,0x00,0xC0,0xFF,0xFF,0x03,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xE0,0xFF,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xF8,0xFF,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0xFF,0x1F,0x38,0x00,0xF8,0xFF,0xFF,0x1F,0x7E,0x00,0xF8,0xFF,0xFF,0x9F,0x7F,0x00,0xF8,0xFF,0xFF,0x1F,0x7E,0x00,0xF8,0xFF,0xFF,0x1F,0x38,0x00,0xF8,0xFF,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xC0,0xFF,0xFF,0x03,0x00,0x00,0x80,0xFF,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFC,0xFF,0x03,0x00,0x00,0x00,0xFC,0xFF,0x01,0x00,0x00,0x00,0xF8,0xFF,0x01,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0x00,0x00,0x80,0x1F, // 55 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xC0,0x00,0x00,0xC0,0xFF,0xFF,0xF0,0x01,0x00,0xC0,0xFF,0xFF,0xF8,0x03,0x00,0xE0,0xFF,0xFF,0xF0,0x01,0x00,0xF0,0xFF,0xFF,0xC0,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x07,0xC0,0x01,0xFE,0xFF,0xFF,0x07,0xF0,0x03,0xFE,0xFF,0xFF,0x07,0xFC,0x03,0xFE,0xFF,0xFF,0x07,0xF0,0x03,0xFE,0xFF,0xFF,0x07,0xC0,0x01,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xFC,0xFF,0xFF,0x03,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x38,0x00,0xE0,0xFF,0xFF,0x00,0x7E,0x00,0xC0,0xFF,0xFF,0x80,0x7F,0x00,0xC0,0xFF,0xFF,0x00,0x7E,0x00,0xC0,0xFF,0xFF,0x00,0x38,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x3F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 56 - 0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x38,0x77,0x00,0x00,0x00,0x00,0x38,0x77,0x00,0x00,0x00,0x00,0x38,0x77,0x00,0x00,0x00,0x00,0x38,0x77,0x00,0x00,0x00,0x00,0x38,0x77,0x00,0x00,0x00,0x00,0x38,0x70,0x00,0x00,0x00,0x00,0x38,0x70,0x00,0x00,0x00,0x00,0x10,0x70,0x00,0x00,0x00,0x00,0xF0,0x71,0x00,0x00,0x00,0x00,0xFC,0x27,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xF0,0x01, // 57 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0xFE,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0xFE,0x00,0x00,0x00,0xFE,0x00,0xFE,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0x38,0x00,0x38, // 58 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x7C,0x10,0x00,0x00,0xFE,0x00,0xFE,0x10,0x00,0x00,0xFE,0x00,0xFE,0x1C,0x00,0x00,0xFE,0x00,0xFE,0x1F,0x00,0x00,0x7C,0x00,0xFC,0x1F,0x00,0x00,0x38,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 59 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xEE,0x00,0x00,0x00,0x00,0x00,0xEF,0x01,0x00,0x00,0x00,0x00,0xC7,0x01,0x00,0x00,0x00,0x80,0xC7,0x03,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x1E,0x00,0xF0, // 60 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x00,0x00,0x87,0x03, // 61 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0x70,0x00,0x1C,0x00,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0x80,0xC7,0x03,0x00,0x00,0x00,0x00,0xC7,0x01,0x00,0x00,0x00,0x00,0xEF,0x01,0x00,0x00,0x00,0x00,0xEE,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10, // 62 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x78,0x00,0x00,0x0F,0x00,0x3C,0xFC,0x00,0x00,0x07,0x00,0x3F,0xFC,0x00,0x00,0x07,0x80,0x3F,0xFC,0x00,0x00,0x07,0xC0,0x3F,0xFC,0x00,0x00,0x07,0xE0,0x03,0x78,0x00,0x00,0x07,0xF0,0x01,0x00,0x00,0x00,0x07,0xF8,0x00,0x00,0x00,0x00,0x0F,0x7C,0x00,0x00,0x00,0x00,0x1E,0x3F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF8,0x03,0x00,0x00,0x00,0x00,0xF0, // 63 - 0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x03,0x00,0x00,0xF8,0x07,0xF0,0x0F,0x00,0x00,0xFC,0x00,0x80,0x1F,0x00,0x00,0x3E,0xE0,0x07,0x3E,0x00,0x00,0x1E,0xF8,0x0F,0x3C,0x00,0x00,0x0F,0xFE,0x1F,0x78,0x00,0x00,0x07,0x1F,0x3C,0x70,0x00,0x80,0x07,0x07,0x38,0xF0,0x00,0x80,0x83,0x07,0x38,0xE0,0x00,0x80,0x83,0x03,0x38,0xE0,0x00,0x80,0x83,0x03,0x1C,0xE0,0x00,0x80,0x83,0x03,0x1E,0xE0,0x00,0x80,0x83,0x03,0x07,0xE0,0x00,0x80,0x87,0xFF,0x0F,0x70,0x00,0x00,0x87,0xFF,0x1F,0x70,0x00,0x00,0x87,0xFF,0x3F,0x38,0x00,0x00,0x0F,0x00,0x38,0x00,0x00,0x00,0x1E,0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x3C,0x00,0x00,0x00,0xF8,0x03,0x1E,0x00,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE,0x01, // 64 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0x80,0x61,0x1C,0x00,0x00,0x00,0x00,0x70,0x1C,0x00,0x00,0x00,0x00,0x78,0x1C,0x00,0x00,0x00,0x00,0x3C,0x9C,0x03,0x00,0x00,0x00,0x1E,0x9C,0x03,0x00,0x00,0x00,0x0E,0x9C,0x03,0x00,0x00,0x00,0x07,0x9C,0x03,0x00,0x00,0x00,0x07,0x9C,0x03,0x00,0x00,0x1E,0x07,0x9C,0x03,0x00,0x00,0x3E,0x07,0x9C,0x03,0x00,0x00,0x1E,0x07,0x9C,0x03,0x00,0x00,0x00,0x07,0x9C,0x03,0x00,0x00,0x00,0x0E,0x9C,0x03,0x00,0x00,0x00,0x0E,0x9C,0x03,0x00,0x00,0x00,0x3C,0x9C,0x03,0x00,0x00,0x00,0x7C,0x1C,0x00,0x00,0x00,0x00,0x78,0x1C,0x00,0x00,0x00,0x80,0x61,0x1C,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0x00,0xE0, // 65 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x06,0x00,0x80,0x01,0x00,0x00,0x0E,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x18,0xF8,0x60,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0xC0,0x07,0x0F,0x00,0x00,0x00,0xE0,0x01,0x1E,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0xE0,0x00,0x3C,0x00,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0xE0,0x73,0x00,0x38,0x1F,0x00,0xE0,0x73,0x00,0x38,0x1F,0x00,0xE0,0x73,0x00,0x38,0x1F,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0xE0,0x01,0x1E,0x00,0x00,0x00,0xC0,0x07,0x0F,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0x18,0xF8,0x60,0x00,0x00,0x00,0x1C,0x00,0xE0,0x01,0x00,0x00,0x0E,0x00,0xC0,0x03,0x00,0x00,0x06,0x70,0x80,0x01,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70, // 66 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x00,0xE0,0x03,0x1F,0x00,0x00,0x00,0x70,0x00,0x3C,0x00,0x00,0x00,0xF0,0x07,0x38,0x00,0x00,0x00,0xF8,0x1F,0x38,0x00,0x00,0x00,0xF8,0x3F,0x70,0x00,0x00,0x00,0x18,0x7C,0x70,0x00,0x00,0x00,0x00,0xF0,0x70,0x00,0x00,0x00,0x00,0xE0,0x71,0x00,0x00,0x00,0x00,0xC0,0x71,0x00,0x00,0x00,0x00,0xC0,0x73,0x00,0x00,0x00,0x00,0x80,0x3B,0x00,0x00,0x00,0x00,0x80,0x3B,0x00,0x00,0x00,0x00,0x80,0x3F,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0xC0,0x03, // 67 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x1C,0x40,0x00,0x03,0x00,0x00,0x3C,0x00,0x80,0x07,0x00,0x00,0x38,0x00,0xC0,0x03,0x00,0x00,0x30,0xF0,0xC1,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x0F,0x1E,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0xC0,0x01,0x30,0x00,0x00,0x00,0xC0,0xFD,0x77,0x00,0x00,0x00,0xC0,0xFE,0x6F,0x00,0x00,0xC0,0xC7,0xFF,0x7F,0x7C,0x00,0xC0,0xE7,0xFF,0x7F,0x7C,0x00,0xC0,0xC7,0xFF,0x7F,0x7C,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 68 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x38,0x07,0x00,0x00,0x00,0xE0,0x38,0x07,0x00,0x00,0x00,0xE0,0x38,0x07,0x00,0x00,0x00,0xE0,0x38,0x07,0x00,0x00,0x00,0xE0,0x38,0x07,0x00,0x00,0x00,0xE0,0xFE,0x07,0x00,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0x00,0xF0,0x39,0x0F,0x00,0x00,0x00,0xF8,0x38,0x1F,0x00,0x00,0x00,0xFC,0x38,0x3F,0x00,0x00,0x00,0xFC,0x38,0x3F,0x00,0x00,0x00,0xEC,0x38,0x37,0x00,0x00,0x00,0xEE,0x38,0x77,0x00,0x00,0x00,0xEE,0x38,0x77,0x00,0x00,0x00,0xEE,0x38,0x77,0x00,0x00,0x00,0xEE,0x38,0x77,0x00,0x00,0x00,0x4E,0x38,0x77,0x00,0x00,0x00,0x0E,0x38,0x77,0x00,0x00,0x00,0x0E,0x38,0x77,0x00,0x00,0x00,0x1C,0x38,0x37,0x00,0x00,0x00,0x3C,0x38,0x3F,0x00,0x00,0x00,0x38,0x38,0x3F,0x00,0x00,0x00,0x78,0x38,0x1F,0x00,0x00,0x00,0xF0,0x39,0x0F,0x00,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x38,0x07,0x00,0x00,0x00,0x00,0x38,0x07,0x00,0x00,0x00,0x00,0x38,0x02,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38, // 69 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0x00,0xE7,0x1C,0x00,0x00,0x00,0xE0,0xE7,0x1C,0x00,0x00,0x00,0xE0,0xE7,0x1C,0x00,0x00,0x00,0xF0,0xE7,0x1C,0x00,0x00,0x00,0xF0,0xE7,0x1C,0x00,0x00,0x00,0xF0,0xE7,0x1C,0x00,0x00,0x00,0xF0,0xE7,0xFC,0x00,0x00,0x00,0xE0,0xE3,0xFC,0x01,0x00,0x00,0xC0,0xE1,0xFC,0x03,0x00,0x00,0x00,0xE0,0xFC,0x03,0x00,0x00,0x00,0xE0,0xFC,0x03,0x00,0x00,0x00,0xE0,0xFC,0x03,0x00,0x00,0x00,0xE0,0xF8,0x01,0x00,0x00,0x00,0xFC,0xF0,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x3C, // 70 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0E,0x00,0x00,0x00,0x80,0x07,0x1F,0x00,0x00,0x00,0x80,0x8F,0x1F,0x00,0x00,0x00,0x80,0x8F,0x1F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xFC,0xDF,0xFF,0x01,0x00,0x00,0xFE,0x8F,0xFF,0x03,0x00,0x00,0xFE,0x8F,0xFF,0x03,0x00,0x00,0xFE,0x8F,0xFF,0x03,0x00,0x00,0xFC,0x8F,0xFF,0x01,0x00,0x00,0x80,0xDF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0x80,0x8F,0x1F,0x00,0x00,0x00,0x80,0x8F,0x1F,0x00,0x00,0x00,0x80,0x07,0x1F,0x00,0x00,0x00,0x00,0x07,0x0E, // 71 - 0x00,0x00,0x07,0xF8,0x01,0x00,0x00,0x00,0x07,0xFE,0x07,0x00,0x00,0x00,0x07,0xFF,0x0F,0x00,0x00,0x00,0x87,0x0F,0x1F,0x00,0x00,0x00,0xC7,0x03,0x3C,0x00,0xE0,0x00,0xC0,0x01,0x38,0x00,0xE0,0x03,0xC0,0x01,0x78,0x00,0xC0,0x07,0xE0,0x00,0x70,0x00,0x80,0x87,0xEF,0x00,0x70,0x00,0x00,0xE0,0xFF,0x00,0x70,0x00,0x00,0xF0,0xFF,0x00,0x70,0x00,0x00,0x78,0xF0,0x01,0x70,0x00,0x00,0x3C,0xF0,0x00,0x78,0x00,0x00,0x1C,0x78,0x00,0x78,0x00,0x00,0x1E,0x3C,0x00,0xF0,0x00,0x00,0x0E,0x1E,0x00,0xE0,0x00,0x3E,0x0E,0x0E,0x00,0xC0,0x01,0x3E,0x0E,0x0E,0x00,0xC0,0x01,0x3E,0x0E,0x07,0x00,0x80,0x03,0x00,0x0E,0x07,0x00,0x80,0x03,0x00,0x1E,0x07,0x00,0x80,0x03,0x00,0x1C,0x07,0x00,0x80,0x03,0x00,0x3C,0x07,0x00,0x80,0x03,0x00,0x78,0x07,0x00,0x80,0x03,0x00,0xF0,0x0F,0x00,0xC0,0x03,0x00,0xC1,0x0F,0x00,0xC0,0x01,0x80,0x03,0x0E,0x00,0xC0,0x01,0xC0,0x01,0x1C,0x00,0xE0,0x00,0xE0,0x00,0x3C,0x00,0x70,0x00,0x40,0x00,0x7F,0x00,0x78,0x00,0x00,0x00,0xF7,0x00,0x70,0x00,0x00,0x00,0xE7,0x00,0x70,0x00,0x00,0x00,0xE7,0x00,0x70,0x00,0x00,0x00,0xE7,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x01,0x78,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xC0,0x03,0x3C,0x00,0x00,0x00,0x80,0x0F,0x1F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 72 - 0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x80,0x0F,0x1F,0x00,0x00,0x00,0xC0,0x03,0x3C,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xE0,0x01,0x78,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x78,0x00,0x38,0x00,0x00,0x00,0x3C,0x00,0x78,0x00,0x00,0x00,0x1C,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x01,0x00,0x00,0x06,0x00,0xC0,0x01,0x00,0x00,0x07,0x00,0xC0,0x01,0x00,0x00,0x07,0x00,0x80,0x03,0x00,0xF8,0x07,0x00,0x80,0x03,0x00,0xFF,0x03,0x00,0x80,0x03,0x80,0x87,0x07,0x00,0x80,0x03,0xC0,0x01,0x07,0x00,0x80,0x03,0xC0,0x00,0x07,0x00,0x80,0x03,0x60,0x00,0x06,0x00,0x80,0x03,0xE0,0x07,0x0E,0x00,0xC0,0x01,0xF0,0x1F,0x0E,0x00,0xC0,0x01,0xF0,0x7F,0x1C,0x00,0xE0,0x00,0x20,0xF8,0x1C,0x00,0xF0,0x00,0x00,0xE0,0x79,0x00,0x78,0x00,0x00,0xC0,0xF3,0x00,0x78,0x00,0x00,0x80,0xE3,0x00,0x70,0x00,0x00,0x80,0xE7,0x00,0x70,0x00,0x00,0x00,0xF7,0x00,0x70,0x00,0x00,0x00,0xF7,0x00,0x70,0x00,0x00,0x00,0xFF,0x01,0x78,0x00,0x00,0x00,0xDF,0x01,0x38,0x00,0x00,0x80,0xCF,0x03,0x3C,0x00,0x00,0x80,0x83,0x0F,0x1F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 73 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x07,0x80,0x73,0x0E,0x00,0x00,0x07,0x80,0x73,0x0E,0x00,0x00,0x0E,0x80,0x73,0x0E,0x00,0x00,0x0C,0x9E,0x73,0x0E,0x00,0x00,0x80,0x9F,0x73,0x0E,0x00,0x00,0xC0,0x9F,0x73,0x0E,0x00,0x00,0xE0,0x81,0x73,0x0E,0x00,0x00,0xF0,0x80,0x73,0x0E,0x00,0x00,0x70,0x80,0x73,0x0E,0x00,0x00,0x78,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0xF8,0x38,0x80,0x73,0x0E,0x00,0xF8,0x38,0x80,0x73,0x0E,0x00,0xF8,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x78,0x80,0x73,0x0E,0x00,0x00,0x70,0x80,0x73,0x0E,0x00,0x00,0xF0,0x80,0x73,0x0E,0x00,0x00,0xE0,0x81,0x73,0x0E,0x00,0x00,0xC0,0x9F,0x73,0x0E,0x00,0x00,0x80,0x9F,0x73,0x0E,0x00,0x00,0x0E,0x9E,0x73,0x0E,0x00,0x00,0x0F,0x80,0x73,0x0E,0x00,0x80,0x07,0x80,0x73,0x0E,0x00,0x00,0x03,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E,0x00,0x00,0x00,0x9C,0x73,0x0E, // 74 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0xF0,0x83,0x73,0x0E,0x00,0x00,0xFC,0x87,0x73,0x0E,0x00,0x00,0xFE,0x8F,0x73,0x0E,0x00,0x00,0x0F,0x8C,0x73,0x0E,0x00,0x80,0x03,0x80,0x73,0x0E,0x00,0x80,0x1F,0x80,0x73,0x0E,0x00,0xC0,0x7F,0x80,0x73,0x0E,0x00,0xC0,0xFF,0x80,0x73,0x0E,0x00,0x80,0xF0,0x81,0x73,0x0E,0x00,0x00,0xC0,0x83,0x73,0x0E,0x00,0x00,0x80,0x87,0x73,0x0E,0x00,0x00,0x00,0x87,0x73,0x0E,0x00,0x00,0x00,0x87,0x73,0x0E,0x00,0x00,0x00,0x8E,0x73,0x0E,0x00,0x00,0x00,0x8E,0x73,0x0E,0x00,0x00,0x00,0x8E,0x73,0x0E,0x00,0x00,0x00,0x8E,0x73,0x0E,0x00,0x00,0x00,0x8F,0x73,0x0E,0x00,0x00,0x00,0x8F,0x73,0x0E,0x00,0x00,0x00,0x87,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E,0x00,0x00,0x00,0x80,0x73,0x0E, // 75 - 0x00,0x00,0x9E,0x73,0x0E,0x00,0x00,0x80,0x9F,0x73,0x0E,0x00,0x00,0xC0,0x9F,0x73,0x0E,0x00,0x00,0xE0,0x81,0x73,0x0E,0x00,0x00,0xF0,0x80,0x73,0x0E,0x00,0x00,0x70,0x80,0x73,0x0E,0x00,0x00,0x78,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x3C,0x80,0x73,0x0E,0x00,0x00,0x1E,0x80,0x73,0x0E,0x00,0x00,0x0F,0x80,0x73,0x0E,0x00,0x00,0x07,0x80,0x73,0x0E,0x00,0x80,0x07,0x80,0x73,0x0E,0x00,0x80,0x03,0x80,0x73,0x0E,0x00,0xC0,0x03,0x80,0x73,0x0E,0x00,0xC0,0x01,0x80,0x73,0x0E,0x00,0xC0,0x01,0x80,0x73,0x0E,0x00,0xC0,0x01,0x80,0x73,0x0E,0x00,0xC0,0x01,0x80,0x73,0x0E,0x00,0xC0,0x01,0x80,0x73,0x0E,0x00,0xC0,0x01,0x80,0x73,0x0E,0x00,0xC0,0x03,0x80,0x73,0x0E,0x00,0x80,0x03,0x80,0x73,0x0E,0x00,0x80,0x07,0x80,0x73,0x0E,0x00,0x00,0x07,0x80,0x73,0x0E,0x00,0x00,0x0F,0x80,0x73,0x0E,0x00,0x00,0x1E,0x80,0x73,0x0E,0x00,0x00,0x3C,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x38,0x80,0x73,0x0E,0x00,0x00,0x78,0x80,0x73,0x0E,0x00,0x00,0x70,0x80,0x73,0x0E,0x00,0x00,0xF0,0x80,0x73,0x0E,0x00,0x00,0xE0,0x81,0x73,0x0E,0x00,0x00,0xC0,0x9F,0x73,0x0E,0x00,0x00,0x80,0x9F,0x73,0x0E,0x00,0x00,0x00,0x9E,0x73,0x0E, // 76 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C,0x00,0x00,0x00,0x38,0xE7,0x1C, // 77 - 0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x80,0x0F,0x1F,0x00,0x00,0x00,0xC0,0x03,0x3C,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xE0,0x01,0x78,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x0E,0x00,0xC0,0x01,0x00,0x00,0x0E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x30,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x01,0x78,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xC0,0x03,0x3C,0x00,0x00,0x00,0x80,0x0F,0x1F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 78 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x78,0x00,0xF0,0x00,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0x80,0x33,0x20,0x00,0x1E,0x00,0x80,0x7B,0x1C,0x00,0x0E,0x00,0x00,0xFF,0x0F,0x00,0x0E,0x00,0x00,0xFF,0x07,0x00,0x0E,0x00,0x00,0xFF,0x03,0x00,0x0E,0x00,0x00,0xE7,0x01,0x00,0x0E,0x00,0x00,0xC3,0x00,0x00,0x0E,0x00,0x00,0x83,0x00,0x00,0x1E,0x00,0x80,0x03,0x00,0x00,0x1C,0x00,0x80,0x03,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x78,0x00,0xF0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 79 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x78,0x00,0xF0,0x00,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0x80,0x11,0x20,0x00,0x1E,0x00,0x80,0x38,0x1C,0x00,0x0E,0x00,0x00,0xFC,0x0F,0x00,0x0E,0x00,0x00,0xFE,0x07,0x00,0x0E,0x00,0x00,0xFF,0x03,0x00,0x0E,0x00,0x80,0xE7,0x01,0x00,0x0E,0x00,0xE0,0xC0,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x03,0x00,0x00,0x3C,0x00,0xC0,0x01,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x78,0x00,0xF0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 80 - 0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xF8,0xF0,0x01,0x00,0x00,0x00,0x3C,0xC0,0x03,0x00,0x00,0x00,0x1C,0x80,0x03,0x00,0x00,0x00,0x1E,0x80,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0F,0x00,0x03,0x00,0x00,0xC0,0x07,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xF0,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x78,0x00,0x00,0x1C,0x00,0x00,0x38,0x00,0x00,0x1C,0x38,0x00,0x38,0x00,0x00,0x1C,0x7E,0x00,0x38,0x00,0x00,0x9C,0x7F,0x00,0x38,0x00,0x00,0x1C,0x7E,0x00,0x38,0x00,0x00,0x1C,0x38,0x00,0x78,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x01,0x00,0x07,0x00,0x00,0xC0,0x03,0x80,0x03,0x00,0x00,0x80,0x0F,0x80,0x03,0x00,0x00,0x00,0x0F,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x0E,0x00,0x07,0x00,0x00,0x00,0x1C,0x80,0x03,0x00,0x00,0x00,0x1C,0x80,0x03,0x00,0x00,0x00,0x3C,0xC0,0x03,0x00,0x00,0x00,0xF8,0xF0,0x01,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0x00,0x00,0x80,0x1F, // 81 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0xC0,0x00,0x00,0xC0,0x01,0xE0,0xF0,0x01,0x00,0xC0,0x01,0xE0,0xF8,0x03,0x00,0xE0,0x01,0xE0,0xF0,0x01,0x00,0xF0,0x00,0x70,0xC0,0x00,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0xC0,0x03,0x00,0x00,0x1C,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x80,0x07,0x00,0x00,0x0E,0x00,0x00,0x07,0xC0,0x01,0x0E,0x00,0x00,0x07,0xF0,0x03,0x0E,0x00,0x00,0x07,0xFC,0x03,0x0E,0x00,0x00,0x07,0xF0,0x03,0x0E,0x00,0x00,0x07,0xC0,0x01,0x0E,0x00,0x00,0x07,0x00,0x00,0x1C,0x00,0x80,0x03,0x00,0x00,0x1C,0x00,0x80,0x03,0x00,0x00,0x3C,0x00,0xC0,0x01,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x38,0x00,0xE0,0x01,0xE0,0x00,0x7E,0x00,0xC0,0x01,0xE0,0x80,0x7F,0x00,0xC0,0x01,0xE0,0x00,0x7E,0x00,0xC0,0x01,0xE0,0x00,0x38,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 82 - 0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x1C,0x77,0x00,0x00,0x00,0x00,0x1C,0x77,0x00,0x00,0x00,0x00,0x1C,0x77,0x00,0x00,0x00,0x00,0x1C,0x77,0x00,0x00,0x00,0x00,0x1C,0x77,0x00,0x00,0x00,0x00,0x1C,0x70,0x00,0x00,0x00,0x00,0x1C,0x70,0x00,0x00,0x00,0x00,0x08,0x70,0x00,0x00,0x00,0x00,0xF8,0x71,0x00,0x00,0x00,0x00,0xFE,0x77,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x80,0x07,0x1E,0x00,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xE0,0x01,0x38,0x00,0x00,0x00,0xF0,0x00,0x38,0x00,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0x00,0x78,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x38,0x00,0x70,0x00,0x00,0x00,0x78,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x38,0x00,0x00,0x00,0xF0,0x00,0x38,0x00,0x00,0x00,0xE0,0x01,0x38,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xF8,0x01, // 83 - 0x00,0x00,0xE7,0x00,0x00,0x00,0x00,0x00,0xE7,0x00,0x00,0x00,0x00,0x00,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE7,0x00,0x00,0x00,0x00,0x38,0xE0,0x00,0x00,0x00,0x00,0x38,0xE0,0x00,0x00,0x00,0x00,0x10,0xE0,0x00,0x00,0x00,0x00,0xF0,0xE1,0x00,0x00,0x00,0x00,0xFC,0xE7,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x1F,0x3E,0x00,0x00,0x00,0x00,0x07,0x3C,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x03,0x70,0xC0,0x01,0x00,0xC0,0x03,0x70,0xF0,0x03,0x00,0xE0,0x01,0x70,0xFC,0x03,0x00,0xF0,0x00,0x70,0xF0,0x03,0x00,0x70,0x00,0xF0,0xC0,0x01,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x38,0x00,0x70,0x00,0xF0,0x00,0x7E,0x00,0xF0,0x00,0x70,0x80,0x7F,0x00,0xE0,0x01,0x70,0x00,0x7E,0x00,0xC0,0x03,0x70,0x00,0x38,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x07,0x3C,0x00,0x00,0x00,0x00,0x0F,0x1E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xF0,0x01, // 84 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0xC0,0x03,0x70,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x3C,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0x80,0xC3,0x71,0x00,0x1C,0x00,0x80,0xC3,0x7F,0x00,0x0E,0x00,0x00,0x87,0x3F,0x00,0x0E,0x00,0x00,0x87,0x3F,0x00,0x0E,0x00,0x00,0xFF,0xF1,0x03,0x0E,0x00,0x00,0xFF,0xF1,0x03,0x0E,0x00,0x00,0xFF,0xFF,0x03,0x0E,0x00,0x00,0x87,0x3F,0x00,0x1E,0x00,0x80,0xC3,0x7F,0x00,0x1C,0x00,0x80,0xC3,0x71,0x00,0x1C,0x00,0xC0,0x01,0x00,0x00,0x38,0x00,0xE0,0x01,0x00,0x00,0x78,0x00,0xF0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x03,0x70,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 85 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0xC0,0x03,0x70,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x10,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x80,0x73,0x00,0x00,0x1C,0x00,0x80,0x7F,0x00,0x00,0x0E,0x00,0x00,0x3F,0x00,0x00,0x0E,0x00,0x80,0x7F,0x00,0x00,0x0E,0x00,0xF0,0xF3,0x03,0x00,0x0E,0x00,0xF0,0xF3,0x03,0x00,0x0E,0x00,0xF0,0xFF,0x03,0x00,0x0E,0x00,0x80,0x3F,0x00,0x00,0x1E,0x00,0x80,0x7F,0x00,0x00,0x1C,0x00,0x80,0x73,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x10,0x00,0x00,0x00,0xF0,0x01,0x70,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x03,0x70,0x00,0x00,0x00,0x80,0x03,0x70,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 86 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x80,0x00,0x00,0x00,0x0F,0x3C,0xC0,0x00,0x00,0x80,0x03,0x70,0xF8,0x00,0x00,0x80,0x03,0x70,0xF0,0x07,0x00,0xC0,0x01,0xE0,0xB0,0x03,0x00,0xC0,0x01,0xE0,0xBC,0x01,0x00,0xC0,0x01,0xC0,0xE0,0x03,0x00,0xC0,0x01,0xC0,0x60,0x03,0x00,0xC0,0x01,0xE0,0x20,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xF0,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x3C,0x00,0xC0,0x01,0x00,0x00,0x1C,0x00,0x80,0x83,0xE3,0x00,0x0E,0x00,0x80,0x83,0xF3,0x00,0x0E,0x00,0x00,0x03,0x7F,0x00,0x0E,0x00,0x00,0x07,0x7F,0x00,0x06,0x00,0x00,0x87,0x7F,0x00,0x06,0x00,0x00,0xF7,0xE3,0x07,0x06,0x00,0x00,0xF7,0xE3,0x07,0x06,0x00,0x00,0x87,0x7F,0x00,0x0E,0x00,0x00,0x07,0x7F,0x00,0x0E,0x00,0x00,0x03,0x7F,0x00,0x0E,0x00,0x80,0x83,0xF3,0x00,0x1C,0x00,0x80,0x83,0xE3,0x00,0x3C,0x00,0xC0,0x01,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0xF0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x80,0x01,0x00,0xC0,0x01,0xC0,0x80,0x09,0x00,0xC0,0x01,0xC0,0x80,0x0F,0x00,0xC0,0x01,0xE0,0xE0,0x07,0x00,0xC0,0x01,0xE0,0xC0,0x1C,0x00,0x80,0x03,0x70,0x80,0x1F,0x00,0x80,0x03,0x70,0xC0,0x07,0x00,0x00,0x0F,0x3C,0x40,0x06,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 87 - 0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x80,0x03,0x70,0x38,0x00,0x00,0xC0,0x01,0xE0,0x7C,0x00,0x00,0xC0,0x01,0xE0,0x7C,0x00,0x00,0xC0,0x01,0xE0,0x7C,0x00,0x00,0xC0,0x01,0xE0,0x38,0x00,0x00,0xE0,0x01,0xE0,0x00,0x00,0x00,0xF0,0x01,0xE0,0x00,0xC0,0x01,0xF0,0x00,0xF0,0x00,0xE0,0x03,0x78,0x00,0xE0,0x00,0xE0,0x03,0x3C,0x00,0xC0,0x01,0xE0,0x03,0x1C,0x00,0xC0,0x03,0xC0,0x01,0x1C,0x00,0x80,0x03,0x00,0x00,0x1E,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x00,0xC7,0x01,0x00,0x0E,0x00,0x00,0xE7,0x03,0x00,0x0E,0x00,0x00,0xE7,0x03,0x00,0x0E,0x00,0x00,0xE7,0x03,0x00,0x0E,0x00,0x00,0xC7,0x01,0x00,0x0E,0x00,0x00,0x07,0x00,0x00,0x1C,0x00,0x80,0x03,0x00,0x00,0x1C,0x00,0x80,0x03,0x00,0x00,0x3C,0x00,0xC0,0x01,0xC0,0x01,0x38,0x00,0xE0,0x01,0xE0,0x03,0x70,0x00,0xF0,0x00,0xE0,0x03,0xF0,0x00,0x70,0x00,0xE0,0x03,0xE0,0x01,0xE0,0x00,0xC0,0x01,0xC0,0x01,0xE0,0x00,0x00,0x00,0xC0,0x01,0xE0,0x38,0x00,0x00,0xC0,0x01,0xE0,0x7C,0x00,0x00,0xC0,0x01,0xE0,0x7C,0x00,0x00,0xC0,0x03,0x70,0x7C,0x00,0x00,0x80,0x03,0x70,0x38,0x00,0x00,0x80,0x07,0x78,0x00,0x00,0x00,0x00,0x0F,0x3E,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 88 - 0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00,0x00,0x80,0x0F,0x1F,0x00,0x00,0x00,0xC0,0x03,0x3C,0x00,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0x00,0xE0,0x01,0x78,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xE0,0x00,0x70,0x00,0x00,0x00,0xFE,0x01,0x70,0x00,0x00,0x80,0xFF,0x00,0x38,0x00,0x00,0xC0,0x3F,0x00,0x78,0x00,0x00,0xC0,0x1D,0x00,0xF0,0x00,0x00,0xE0,0x1F,0x00,0xE0,0x01,0x00,0xE0,0x0E,0x00,0xC0,0x01,0x00,0xE0,0x0E,0x00,0xC0,0x01,0x00,0xE0,0x07,0x00,0x80,0x03,0x00,0xF0,0x07,0x00,0x80,0x03,0x00,0x78,0x07,0x00,0x80,0x03,0x00,0x3C,0x07,0x00,0x80,0x03,0x00,0x1C,0x07,0x00,0x80,0x03,0x00,0x1E,0x07,0x00,0x80,0x03,0x00,0x0E,0x0F,0x00,0xC0,0x01,0x00,0x0E,0x0E,0x00,0xC0,0x01,0x00,0x0E,0x1E,0x00,0xE0,0x01,0x00,0x0E,0x1C,0x00,0xF0,0x00,0x00,0x0E,0x3C,0x00,0x78,0x00,0x00,0x1C,0x78,0x00,0x38,0x00,0x00,0x1C,0xF0,0x00,0x70,0x00,0x00,0x38,0xE0,0x00,0x70,0x00,0x00,0xF8,0xE0,0x00,0x70,0x00,0x00,0xE0,0xE0,0x00,0x70,0x00,0x00,0xE0,0xE0,0x00,0x70,0x00,0x00,0xE0,0xC0,0x01,0x78,0x00,0x00,0xE0,0xC0,0x01,0x38,0x00,0x00,0xC0,0x81,0x03,0x3C,0x00,0x00,0xC0,0xC3,0x0F,0x1F,0x00,0x00,0x80,0xFF,0xFF,0x0F,0x00,0x00,0x00,0xFF,0xFC,0x07,0x00,0x00,0x00,0x3E,0xF0,0x01, // 89 - 0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0x80,0x07,0x0F,0x00,0x00,0x00,0xC0,0x03,0x1E,0x00,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x00,0xE0,0x01,0x3C,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xE0,0x00,0x38,0x00,0x00,0x00,0xFF,0x00,0x38,0x00,0x00,0x80,0x7F,0x00,0x1C,0x00,0x00,0xC0,0x3F,0x00,0x3C,0x00,0x00,0xE0,0x1D,0x00,0x78,0x00,0x00,0xF0,0x1E,0x00,0x70,0x00,0x00,0x70,0x0E,0x00,0xE0,0x02,0x02,0x70,0x0E,0x00,0xE0,0xC7,0x01,0x70,0x07,0x00,0xC0,0xFF,0x00,0xF8,0x07,0x00,0xC0,0x7F,0x00,0x7C,0x07,0x00,0xC0,0x7F,0x00,0x3C,0x07,0x00,0xC0,0x3D,0x00,0x1C,0x07,0x00,0xC0,0x19,0x00,0x0E,0x07,0x00,0xC0,0x00,0x00,0x0E,0x0F,0x00,0xE0,0x00,0x00,0x0E,0x0E,0x00,0xE0,0x00,0x00,0x0E,0x1E,0x00,0x70,0x00,0x00,0x0E,0x1C,0x00,0x78,0x00,0x00,0x0E,0x3C,0x00,0x3C,0x00,0x00,0x1E,0x78,0x00,0x1C,0x00,0x00,0x1C,0xF0,0x00,0x38,0x00,0x00,0x3C,0xE0,0x00,0x38,0x00,0x00,0xF8,0xE0,0x00,0x38,0x00,0x00,0x70,0xE0,0x00,0x38,0x00,0x00,0x70,0xE0,0x00,0x38,0x00,0x00,0x70,0xC0,0x01,0x3C,0x00,0x00,0xF0,0xC0,0x01,0x1C,0x00,0x00,0xE0,0x80,0x03,0x1E,0x00,0x00,0xE0,0xC3,0x07,0x0F,0x00,0x00,0xC0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFC,0x03,0x00,0x00,0x00,0x3E,0xF8, // 90 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01, // 91 - 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x01, // 92 - 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F,0xC0,0xFF,0xFF,0xFF,0xFF,0x1F, // 93 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x20, // 94 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07, // 95 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x20, // 96 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x38,0x00,0x00,0x00,0x0E,0x00,0x3C,0x00,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x0E,0x80,0x07,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 97 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xE0,0x03,0xE0,0x00,0x00,0x00,0xF0,0x00,0xE0,0x00,0x00,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x7C,0x00,0x00,0x00,0x1E,0x00,0x3E,0x00,0x00,0x00,0x7C,0x80,0x1F,0x00,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x01,0x00,0x00,0x00,0x80,0x7F, // 98 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0x78,0x00,0x3C,0x00,0x00,0x00,0x3C,0x00,0x78,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x1E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xF0,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x3C,0x00,0x70, // 99 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x38,0x00,0x00,0x00,0x0E,0x00,0x3C,0x00,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x0E,0x80,0x0F,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF, // 100 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x1D,0x3F,0x00,0x00,0x00,0x7C,0x1C,0x7C,0x00,0x00,0x00,0x3C,0x1C,0x78,0x00,0x00,0x00,0x1C,0x1C,0x70,0x00,0x00,0x00,0x0E,0x1C,0xF0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x1E,0x1C,0xE0,0x00,0x00,0x00,0x1C,0x1C,0xE0,0x00,0x00,0x00,0x7C,0x1C,0x70,0x00,0x00,0x00,0xF8,0x1F,0x70,0x00,0x00,0x00,0xF0,0x1F,0x70,0x00,0x00,0x00,0xE0,0x1F,0x78,0x00,0x00,0x00,0x00,0x1F,0x38, // 101 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x1F,0x38,0x00,0x00,0x00,0x00,0x0F,0x38,0x00,0x00,0x00,0x80,0x07,0x38,0x00,0x00,0x00,0x80,0x07,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x80,0x07, // 102 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x18,0x00,0x00,0x00,0xFF,0x1F,0x10,0x00,0x00,0xC0,0xFF,0x3F,0x10,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x38,0x00,0x00,0x00,0x0E,0x00,0x3C,0x00,0x00,0x00,0x0E,0x00,0x1E,0x10,0x00,0x00,0x0E,0x80,0x0F,0x1C,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x0F,0x00,0x00,0xFE,0xFF,0xFF,0x01, // 103 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF, // 104 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x07,0x0E,0x00,0x00,0x00,0x80,0x0F,0xFE,0xFF,0xFF,0x00,0x80,0x0F,0xFE,0xFF,0xFF,0x00,0x80,0x0F,0xFE,0xFF,0xFF,0x00,0x00,0x07,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 105 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x10,0x00,0x07,0x0E,0x00,0x00,0x1C,0x80,0x0F,0xFE,0xFF,0xFF,0x1F,0x80,0x0F,0xFE,0xFF,0xFF,0x1F,0x80,0x0F,0xFE,0xFF,0xFF,0x1F,0x00,0x07,0xFE,0xFF,0xFF,0x07, // 106 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x80,0xF7,0x01,0x00,0x00,0x00,0xC0,0xE3,0x03,0x00,0x00,0x00,0xE0,0xC1,0x07,0x00,0x00,0x00,0xF0,0x80,0x0F,0x00,0x00,0x00,0x78,0x00,0x1F,0x00,0x00,0x00,0x3C,0x00,0x3E,0x00,0x00,0x00,0x1E,0x00,0x7C,0x00,0x00,0x00,0x0E,0x00,0xF8,0x00,0x00,0x00,0x06,0x00,0xF0,0x00,0x00,0x00,0x02,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x80, // 107 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 108 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF, // 109 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF, // 110 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0x3C,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xF0,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE, // 111 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xE0,0x03,0xE0,0x00,0x00,0x00,0xF0,0x00,0xE0,0x00,0x00,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x7C,0x00,0x00,0x00,0x1E,0x00,0x3E,0x00,0x00,0x00,0x7C,0x80,0x1F,0x00,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x01,0x00,0x00,0x00,0x80,0x7F, // 112 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x38,0x00,0x00,0x00,0x0E,0x00,0x3C,0x00,0x00,0x00,0x0E,0x00,0x1E,0x00,0x00,0x00,0x0E,0x80,0x0F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F, // 113 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xFE,0x01, // 114 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0xE0,0x01,0x78,0x00,0x00,0x00,0xF8,0x07,0x78,0x00,0x00,0x00,0xF8,0x07,0x70,0x00,0x00,0x00,0xFC,0x0F,0xF0,0x00,0x00,0x00,0x3C,0x1F,0xF0,0x00,0x00,0x00,0x1E,0x1E,0xE0,0x00,0x00,0x00,0x0E,0x1E,0xE0,0x00,0x00,0x00,0x0E,0x3C,0xE0,0x00,0x00,0x00,0x0E,0x3C,0xE0,0x00,0x00,0x00,0x0E,0x38,0xE0,0x00,0x00,0x00,0x0E,0x78,0xE0,0x00,0x00,0x00,0x0E,0x78,0xE0,0x00,0x00,0x00,0x0E,0xF0,0xF0,0x00,0x00,0x00,0x0E,0xF0,0x79,0x00,0x00,0x00,0x1C,0xE0,0x7F,0x00,0x00,0x00,0x1C,0xE0,0x3F,0x00,0x00,0x00,0x00,0xC0,0x1F,0x00,0x00,0x00,0x00,0x80,0x0F, // 115 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x07,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x1C,0x00,0x7C,0x00,0x00,0x00,0x1C,0x00,0xF0,0x00,0x00,0x00,0x1C,0x00,0xF0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x78, // 116 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF, // 117 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x06, // 118 - 0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0xFE,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0x1F,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0xFE,0x03, // 119 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x80,0x00,0x00,0x00,0x06,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x3E,0x00,0xFC,0x00,0x00,0x00,0x7E,0x00,0xFE,0x00,0x00,0x00,0xFC,0x81,0x3F,0x00,0x00,0x00,0xF8,0xC3,0x1F,0x00,0x00,0x00,0xE0,0xF7,0x07,0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0x00,0xF0,0xE3,0x07,0x00,0x00,0x00,0xFC,0xC1,0x1F,0x00,0x00,0x00,0xFE,0x00,0x3F,0x00,0x00,0x00,0x3E,0x00,0xFE,0x00,0x00,0x00,0x1E,0x00,0xF8,0x00,0x00,0x00,0x06,0x00,0xF0,0x00,0x00,0x00,0x02,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x80, // 120 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0x00,0xE0,0x3F,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x10,0x00,0x00,0x00,0xFE,0x03,0x18,0x00,0x00,0x00,0xF8,0x0F,0x1C,0x00,0x00,0x00,0xE0,0x3F,0x1F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x0E, // 121 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xF8,0x00,0x00,0x00,0x0E,0x00,0xFC,0x00,0x00,0x00,0x0E,0x00,0xFE,0x00,0x00,0x00,0x0E,0x00,0xFF,0x00,0x00,0x00,0x0E,0x80,0xEF,0x00,0x00,0x00,0x0E,0xC0,0xE7,0x00,0x00,0x00,0x0E,0xE0,0xE3,0x00,0x00,0x00,0x0E,0xF8,0xE1,0x00,0x00,0x00,0x0E,0xFC,0xE0,0x00,0x00,0x00,0x0E,0x7E,0xE0,0x00,0x00,0x00,0x0E,0x3F,0xE0,0x00,0x00,0x00,0x8E,0x0F,0xE0,0x00,0x00,0x00,0xCE,0x07,0xE0,0x00,0x00,0x00,0xEE,0x03,0xE0,0x00,0x00,0x00,0xFE,0x01,0xE0,0x00,0x00,0x00,0xFE,0x00,0xE0,0x00,0x00,0x00,0x7E,0x00,0xE0,0x00,0x00,0x00,0x3E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0, // 122 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0xFC,0x80,0x7B,0xE0,0x0F,0x00,0xFF,0xFF,0xFB,0xFF,0x1F,0x80,0xFF,0xFF,0xF1,0xFF,0x1F,0x80,0xFF,0xFF,0xE0,0xFF,0x1F,0xC0,0x03,0x7E,0xC0,0x0F,0x10,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01, // 123 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0x01,0x80,0xFF,0xFF,0xFF,0xFF,0x01,0x80,0xFF,0xFF,0xFF,0xFF,0x01, // 124 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x03,0x7E,0xC0,0x1F,0x10,0x80,0xFF,0xFF,0xE0,0xFF,0x1F,0x80,0xFF,0xFF,0xF1,0xFF,0x1F,0x00,0xFF,0xFF,0xFB,0xFF,0x1F,0x00,0xFC,0x80,0x7F,0xE0,0x0F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E, // 125 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x0E, // 126 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0xC0,0x1F,0x00,0x00,0x7E,0xF8,0xFF,0x1F,0x00,0x00,0x7E,0xF8,0xFF,0x1F,0x00,0x00,0x7E,0xF8,0xFF,0x1F,0x00,0x00,0x7E,0xF8,0xFF,0x1F,0x00,0x00,0x3C,0x00,0xC0,0x1F, // 161 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0xC0,0x1F,0xF8,0x03,0x00,0x00,0xC0,0x03,0xC0,0x03,0x00,0x00,0xE0,0x01,0x80,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xF0,0x00,0x00,0x0F,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0xE0,0x00,0x00,0x0F,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x01,0x80,0x07, // 162 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xF0,0x00,0x00,0x00,0xE0,0x00,0xF0,0x00,0x00,0x00,0xE0,0x00,0xFE,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x00,0x00,0xF8,0xFF,0xFF,0xEF,0x00,0x00,0xFE,0xFF,0xFF,0xE7,0x00,0x00,0xFE,0xFF,0xFF,0xE1,0x00,0x00,0x1F,0xE0,0x00,0xE0,0x00,0x80,0x07,0xE0,0x00,0xE0,0x00,0x80,0x07,0xE0,0x00,0xE0,0x00,0x80,0x03,0xE0,0x00,0xE0,0x00,0x80,0x03,0xE0,0x00,0xE0,0x00,0x80,0x03,0xE0,0x00,0xE0,0x00,0x80,0x03,0xE0,0x00,0xE0,0x00,0x80,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x0F,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 163 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x06,0x00,0x00,0xF0,0xE0,0x07,0x0F,0x00,0x00,0xE0,0xF9,0x9F,0x07,0x00,0x00,0xC0,0xFF,0xFF,0x03,0x00,0x00,0x80,0x3F,0xF8,0x03,0x00,0x00,0x00,0x0F,0xE0,0x01,0x00,0x00,0x00,0x07,0xC0,0x01,0x00,0x00,0x80,0x07,0xC0,0x03,0x00,0x00,0x80,0x03,0x80,0x03,0x00,0x00,0x80,0x03,0x80,0x03,0x00,0x00,0x80,0x03,0x80,0x03,0x00,0x00,0x80,0x03,0x80,0x03,0x00,0x00,0x80,0x03,0x80,0x03,0x00,0x00,0x80,0x07,0xC0,0x03,0x00,0x00,0x00,0x07,0xC0,0x01,0x00,0x00,0x00,0x0F,0xE0,0x01,0x00,0x00,0x80,0x3F,0xF8,0x03,0x00,0x00,0xC0,0xFF,0xFF,0x03,0x00,0x00,0xE0,0xF9,0x9F,0x07,0x00,0x00,0xF0,0xE0,0x07,0x0F,0x00,0x00,0x60,0x00,0x00,0x06, // 164 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x0E,0x07,0x00,0x00,0x7F,0x00,0x0E,0x07,0x00,0x00,0xFE,0x01,0x0E,0x07,0x00,0x00,0xF8,0x07,0x0E,0x07,0x00,0x00,0xE0,0x1F,0x0E,0x07,0x00,0x00,0xC0,0x3F,0x0E,0x07,0x00,0x00,0x00,0xFF,0x0E,0x07,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x00,0x00,0x00,0xFC,0x0E,0x07,0x00,0x00,0x00,0x3F,0x0E,0x07,0x00,0x00,0x80,0x1F,0x0E,0x07,0x00,0x00,0xE0,0x07,0x0E,0x07,0x00,0x00,0xF8,0x01,0x0E,0x07,0x00,0x00,0x7E,0x00,0x0E,0x07,0x00,0x00,0x1F,0x00,0x0E,0x07,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x03, // 165 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x3F,0xFC,0xFF,0x01,0x80,0xFF,0x3F,0xFC,0xFF,0x01,0x80,0xFF,0x3F,0xFC,0xFF,0x01, // 166 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x1F,0x00,0x18,0x00,0xF8,0xC7,0x3F,0x00,0x10,0x00,0xFE,0xEF,0x7F,0x00,0x10,0x00,0xFE,0xFF,0xFF,0x00,0x10,0x00,0x0F,0x7F,0xF8,0x01,0x10,0x00,0x07,0x1E,0xE0,0x03,0x00,0x80,0x07,0x3C,0xE0,0x03,0x00,0x80,0x03,0x7C,0xC0,0x07,0x00,0x80,0x03,0x78,0x80,0x07,0x00,0x80,0x03,0xF8,0x80,0x0F,0x00,0x80,0x03,0xF0,0x00,0x1F,0x00,0x80,0x03,0xE0,0x01,0x1E,0x00,0x80,0x03,0xE0,0x03,0x3E,0x10,0x80,0x07,0xC0,0x07,0x3C,0x10,0x80,0x07,0xC0,0x0F,0x7E,0x18,0x00,0x07,0x80,0xFF,0xFF,0x1F,0x00,0x0F,0x00,0xFF,0xF7,0x1F,0x00,0x00,0x00,0xFE,0xE3,0x0F,0x00,0x00,0x00,0xF8,0xC0,0x07, // 167 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x18, // 168 - 0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x03,0x00,0x00,0xF0,0x07,0xF0,0x07,0x00,0x00,0xFC,0x00,0x80,0x1F,0x00,0x00,0x3E,0xF0,0x0F,0x3E,0x00,0x00,0x1E,0xFC,0x3F,0x3C,0x00,0x00,0x0F,0xFF,0xFF,0x78,0x00,0x00,0x87,0x0F,0xF8,0x71,0x00,0x80,0xC7,0x03,0xE0,0xF1,0x00,0x80,0xC3,0x01,0xC0,0xE3,0x00,0x80,0xE3,0x01,0x80,0xE3,0x00,0x80,0xE3,0x00,0x00,0xE7,0x00,0x80,0xE3,0x00,0x00,0xE7,0x00,0x80,0xE3,0x00,0x00,0xE7,0x00,0x80,0xE7,0x00,0x00,0xF7,0x00,0x00,0xE7,0x00,0x00,0x77,0x00,0x00,0xEF,0x00,0x00,0x7F,0x00,0x00,0xDE,0x01,0x80,0x3F,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0xFC,0x00,0x80,0x1F,0x00,0x00,0xF0,0x07,0xF0,0x07,0x00,0x00,0xE0,0xFF,0xFF,0x03,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0xF8,0x0F, // 169 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x00,0x1E,0x3C,0x00,0x00,0x00,0x00,0x0F,0x38,0x00,0x00,0x00,0x00,0x07,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x80,0x03,0x0F,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x80,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x20, // 170 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xEF,0x0F,0x00,0x00,0x00,0xF8,0xC7,0x3F,0x00,0x00,0x00,0xFC,0x01,0x7F,0x00,0x00,0x00,0xF8,0x00,0x3E,0x00,0x00,0x00,0x78,0x00,0x3C,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xEF,0x0F,0x00,0x00,0x00,0xF8,0xC7,0x3F,0x00,0x00,0x00,0xFC,0x01,0x7F,0x00,0x00,0x00,0xF8,0x00,0x3E,0x00,0x00,0x00,0x78,0x00,0x3C,0x00,0x00,0x00,0x10,0x00,0x10, // 171 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x00,0xF8,0x1F, // 172 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x1C, // 173 - 0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x03,0x00,0x00,0xF0,0x07,0xF0,0x07,0x00,0x00,0xFC,0x00,0x80,0x1F,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x1E,0x00,0x00,0x3C,0x00,0x00,0x0F,0x00,0x00,0x78,0x00,0x00,0x87,0xFF,0xFF,0x73,0x00,0x80,0x87,0xFF,0xFF,0xF3,0x00,0x80,0x83,0xFF,0xFF,0xE3,0x00,0x80,0x83,0x81,0x07,0xE0,0x00,0x80,0x83,0x81,0x1F,0xE0,0x00,0x80,0x83,0xC3,0x7F,0xE0,0x00,0x80,0x83,0xFF,0xFC,0xE1,0x00,0x80,0x07,0x7F,0xE0,0xF3,0x00,0x00,0x07,0x1E,0x80,0x73,0x00,0x00,0x0F,0x00,0x00,0x7A,0x00,0x00,0x1E,0x00,0x00,0x3C,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0xFC,0x00,0x80,0x1F,0x00,0x00,0xF0,0x07,0xF0,0x07,0x00,0x00,0xE0,0xFF,0xFF,0x03,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0x00,0xF8,0x0F, // 174 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x38, // 175 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xC7,0x01,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0x80,0x01,0x03,0x00,0x00,0x00,0x80,0x01,0x03,0x00,0x00,0x00,0x80,0x01,0x03,0x00,0x00,0x00,0x80,0x83,0x03,0x00,0x00,0x00,0x00,0xC7,0x01,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x7C, // 176 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0xF8,0xFF,0xFF,0xE3,0x00,0x00,0xF8,0xFF,0xFF,0xE3,0x00,0x00,0xF8,0xFF,0xFF,0xE3,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0xE0, // 177 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x07,0xC0,0x07,0x00,0x00,0x00,0x07,0xE0,0x07,0x00,0x00,0x80,0x03,0x70,0x07,0x00,0x00,0x80,0x03,0x38,0x07,0x00,0x00,0x80,0x03,0x1C,0x07,0x00,0x00,0x80,0x03,0x0C,0x07,0x00,0x00,0x80,0x03,0x06,0x07,0x00,0x00,0x80,0x03,0x07,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0xC3,0x01,0x07,0x00,0x00,0x80,0xE7,0x00,0x07,0x00,0x00,0x00,0xFF,0x00,0x07,0x00,0x00,0x00,0x7F,0x00,0x07,0x00,0x00,0x00,0x1E,0x00,0x07, // 178 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x07,0x80,0x03,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0x83,0x03,0x07,0x00,0x00,0x80,0xC3,0x03,0x07,0x00,0x00,0x80,0xC7,0x87,0x03,0x00,0x00,0x00,0xE7,0x87,0x03,0x00,0x00,0x00,0xFF,0xCF,0x03,0x00,0x00,0x00,0x7E,0xFE,0x01,0x00,0x00,0x00,0x1C,0xFE,0x00,0x00,0x00,0x00,0x00,0x78, // 179 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x80, // 180 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF, // 181 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0xE0,0x3F,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0xFC,0xFF,0x01,0x00,0x00,0x00,0xFC,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x03,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E, // 182 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x38, // 183 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x10, // 184 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x07,0x00,0x00,0x00,0x38,0x00,0x07,0x00,0x00,0x00,0x3C,0x00,0x07,0x00,0x00,0x00,0x1C,0x00,0x07,0x00,0x00,0x00,0x1E,0x00,0x07,0x00,0x00,0x00,0x0F,0x00,0x07,0x00,0x00,0x00,0xFF,0xFF,0x07,0x00,0x00,0x00,0xFF,0xFF,0x07,0x00,0x00,0x00,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x07, // 185 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0x0F,0x1E,0x00,0x00,0x00,0x00,0x07,0x1C,0x00,0x00,0x00,0x80,0x07,0x3C,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x03,0x38,0x00,0x00,0x00,0x80,0x07,0x3C,0x00,0x00,0x00,0x00,0x07,0x1C,0x00,0x00,0x00,0x00,0x0F,0x1E,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xF0,0x01, // 186 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x78,0x00,0x3C,0x00,0x00,0x00,0xF8,0x00,0x3E,0x00,0x00,0x00,0xFC,0x01,0x7F,0x00,0x00,0x00,0xF8,0xC7,0x3F,0x00,0x00,0x00,0xE0,0xEF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x78,0x00,0x3C,0x00,0x00,0x00,0xF8,0x00,0x3E,0x00,0x00,0x00,0xFC,0x01,0x7F,0x00,0x00,0x00,0xF8,0xC7,0x3F,0x00,0x00,0x00,0xE0,0xEF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x7C, // 187 - 0x00,0x78,0xE0,0x00,0x80,0x00,0x00,0x3C,0xE0,0x00,0xE0,0x00,0x00,0x1E,0xE0,0x00,0xF0,0x00,0x00,0x0F,0xE0,0x00,0x7C,0x00,0x00,0xFF,0xFF,0x00,0x3E,0x00,0x00,0xFF,0xFF,0x80,0x0F,0x00,0x00,0xFF,0xFF,0xE0,0x07,0x00,0x00,0x00,0xE0,0xF0,0x01,0x00,0x00,0x00,0xE0,0xFC,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x80,0x1F,0x1E,0x00,0x00,0x00,0xC0,0x07,0x1F,0x00,0x00,0x00,0xF0,0x83,0x1F,0x00,0x00,0x00,0xF8,0xC0,0x1F,0x00,0x00,0x00,0x3E,0xF0,0x1D,0x00,0x00,0x00,0x1F,0xF8,0x1C,0x00,0x00,0xC0,0x07,0x3C,0x1C,0x00,0x00,0xE0,0x03,0x1E,0x1C,0x00,0x00,0xF8,0x00,0xFF,0xFF,0x00,0x00,0x7C,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x00,0xFF,0xFF,0x00,0x00,0x0F,0x00,0x00,0x1C,0x00,0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x01,0x00,0x00,0x1C, // 188 - 0x00,0x3C,0xE0,0x00,0x80,0x00,0x00,0x1E,0xE0,0x00,0xC0,0x00,0x00,0x0E,0xE0,0x00,0xF0,0x00,0x00,0x07,0xE0,0x00,0xF8,0x00,0x00,0xFF,0xFF,0x00,0x3E,0x00,0x00,0xFF,0xFF,0x80,0x1F,0x00,0x00,0xFF,0xFF,0xC0,0x07,0x00,0x00,0x00,0xE0,0xF0,0x03,0x00,0x00,0x00,0xE0,0xF8,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00,0xE0,0x03,0xF0,0x00,0x00,0x00,0xF8,0x0E,0xF8,0x00,0x00,0x00,0x7E,0x0E,0xFC,0x00,0x00,0x00,0x1F,0x07,0xEE,0x00,0x00,0xC0,0x0F,0x07,0xE7,0x00,0x00,0xE0,0x03,0x07,0xE3,0x00,0x00,0xF8,0x01,0x87,0xE1,0x00,0x00,0x7C,0x00,0xCF,0xE1,0x00,0x00,0x1F,0x00,0xFE,0xE0,0x00,0x00,0x0F,0x00,0x7E,0xE0,0x00,0x00,0x03,0x00,0x3C,0xE0,0x00,0x00,0x01, // 189 - 0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x0E,0x70,0x00,0xF0,0x00,0x00,0x87,0xE3,0x00,0x7C,0x00,0x00,0x87,0xE3,0x00,0x3E,0x00,0x00,0x87,0xE3,0x80,0x0F,0x00,0x00,0x87,0xE3,0xC0,0x07,0x00,0x00,0xCF,0xE3,0xF0,0x01,0x00,0x00,0xFF,0xF7,0xF8,0x00,0x00,0x00,0xFE,0x7E,0x7C,0x00,0x00,0x00,0x3C,0x7E,0x1F,0x00,0x00,0x00,0x00,0x9C,0x0F,0x1E,0x00,0x00,0x00,0xE0,0x03,0x1F,0x00,0x00,0x00,0xF0,0x81,0x1F,0x00,0x00,0x00,0x7C,0xC0,0x1F,0x00,0x00,0x00,0x3E,0xF0,0x1D,0x00,0x00,0x80,0x0F,0xF8,0x1C,0x00,0x00,0xC0,0x07,0x3C,0x1C,0x00,0x00,0xF0,0x01,0x1E,0x1C,0x00,0x00,0xF8,0x00,0xFF,0xFF,0x00,0x00,0x7C,0x00,0xFF,0xFF,0x00,0x00,0x1F,0x00,0xFF,0xFF,0x00,0x00,0x0F,0x00,0x00,0x1C,0x00,0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x01,0x00,0x00,0x1C, // 190 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0xE0,0x1F,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0xF8,0x11,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x3C,0x80,0x0F,0x00,0x00,0x00,0x7E,0xF8,0x07,0x00,0x00,0x00,0x7E,0xF8,0x03,0x00,0x00,0x00,0x7E,0xF8,0x01,0x00,0x00,0x00,0x7E,0x78,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10, // 191 - 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0xF0,0xFF,0xCF,0x01,0x00,0x00,0xFE,0xFF,0xC0,0x01,0x00,0x01,0xFF,0x0F,0xC0,0x01,0x00,0x01,0xFF,0x00,0xC0,0x01,0x00,0x03,0xFF,0x01,0xC0,0x01,0x00,0x07,0xFF,0x0F,0xC0,0x01,0x00,0x0E,0xFE,0xFF,0xC0,0x01,0x00,0x1C,0xF0,0xFF,0xCF,0x01,0x00,0x18,0x00,0xFF,0xFF,0x01,0x00,0x10,0x00,0xF0,0xFF,0x07,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xC0, // 192 - 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0xF0,0xFF,0xCF,0x01,0x00,0x10,0xFE,0xFF,0xC0,0x01,0x00,0x18,0xFF,0x0F,0xC0,0x01,0x00,0x1C,0xFF,0x00,0xC0,0x01,0x00,0x0E,0xFF,0x01,0xC0,0x01,0x00,0x0F,0xFF,0x0F,0xC0,0x01,0x00,0x07,0xFE,0xFF,0xC0,0x01,0x00,0x03,0xF0,0xFF,0xCF,0x01,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xC0, // 193 - 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0x00,0xFF,0xFF,0x01,0x00,0x10,0xF0,0xFF,0xCF,0x01,0x00,0x1C,0xFE,0xFF,0xC0,0x01,0x00,0x1E,0xFF,0x0F,0xC0,0x01,0x00,0x0F,0xFF,0x00,0xC0,0x01,0x00,0x07,0xFF,0x01,0xC0,0x01,0x00,0x03,0xFF,0x0F,0xC0,0x01,0x00,0x07,0xFE,0xFF,0xC0,0x01,0x00,0x0F,0xF0,0xFF,0xCF,0x01,0x00,0x1E,0x00,0xFF,0xFF,0x01,0x00,0x1C,0x00,0xF0,0xFF,0x07,0x00,0x10,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xC0, // 194 - 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x18,0x00,0xF0,0xFF,0x07,0x00,0x1C,0x00,0xFF,0xFF,0x01,0x00,0x1E,0xF0,0xFF,0xCF,0x01,0x00,0x06,0xFE,0xFF,0xC0,0x01,0x00,0x06,0xFF,0x0F,0xC0,0x01,0x00,0x06,0xFF,0x00,0xC0,0x01,0x00,0x0C,0xFF,0x01,0xC0,0x01,0x00,0x0C,0xFF,0x0F,0xC0,0x01,0x00,0x18,0xFE,0xFF,0xC0,0x01,0x00,0x18,0xF0,0xFF,0xCF,0x01,0x00,0x18,0x00,0xFF,0xFF,0x01,0x00,0x1E,0x00,0xF0,0xFF,0x07,0x00,0x0E,0x00,0x80,0xFF,0x7F,0x00,0x0E,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xC0, // 195 - 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x80,0xFF,0x7F,0x00,0x0C,0x00,0xF0,0xFF,0x07,0x00,0x1E,0x00,0xFF,0xFF,0x01,0x00,0x1E,0xF0,0xFF,0xCF,0x01,0x00,0x0C,0xFE,0xFF,0xC0,0x01,0x00,0x00,0xFF,0x0F,0xC0,0x01,0x00,0x00,0xFF,0x00,0xC0,0x01,0x00,0x00,0xFF,0x01,0xC0,0x01,0x00,0x00,0xFF,0x0F,0xC0,0x01,0x00,0x00,0xFE,0xFF,0xC0,0x01,0x00,0x00,0xF0,0xFF,0xCF,0x01,0x00,0x0C,0x00,0xFF,0xFF,0x01,0x00,0x1E,0x00,0xF0,0xFF,0x07,0x00,0x1E,0x00,0x80,0xFF,0x7F,0x00,0x0C,0x00,0x00,0xF8,0xFF,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xC0, // 196 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0xFC,0xFF,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0xFF,0x01,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0xF0,0xF8,0xFF,0xC3,0x01,0x00,0xF8,0xFF,0x7F,0xC0,0x01,0x00,0x9C,0xFF,0x07,0xC0,0x01,0x00,0x0C,0x7F,0x00,0xC0,0x01,0x00,0x9C,0xFF,0x07,0xC0,0x01,0x00,0xF8,0xFF,0x7F,0xC0,0x01,0x00,0xF0,0xF8,0xFF,0xC3,0x01,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xF8,0xFF,0x01,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFC,0xFF,0x00,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0xF0, // 197 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0xFE,0xFF,0x00,0x00,0x00,0xC0,0xFF,0xE3,0x00,0x00,0x00,0xF0,0x7F,0xE0,0x00,0x00,0x00,0xFE,0x1F,0xE0,0x00,0x00,0x00,0xFF,0x03,0xE0,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0, // 198 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x00,0xFF,0xFF,0x01,0x00,0x00,0xC0,0xFF,0xFF,0x07,0x00,0x00,0xE0,0xFF,0xFF,0x0F,0x00,0x00,0xF8,0x0F,0xF0,0x1F,0x00,0x00,0xF8,0x01,0x80,0x3F,0x00,0x00,0x7C,0x00,0x00,0x7E,0x00,0x00,0x1E,0x00,0x00,0x78,0x00,0x00,0x1E,0x00,0x00,0x70,0x00,0x00,0x0F,0x00,0x00,0xF0,0x06,0x00,0x07,0x00,0x00,0xE0,0x07,0x00,0x07,0x00,0x00,0xE0,0x0D,0x00,0x07,0x00,0x00,0xE0,0x1C,0x00,0x07,0x00,0x00,0xE0,0x1C,0x00,0x07,0x00,0x00,0xE0,0x18,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70, // 199 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x01,0x07,0xC0,0x01,0xE0,0x00,0x03,0x07,0xC0,0x01,0xE0,0x00,0x07,0x07,0xC0,0x01,0xE0,0x00,0x0E,0x07,0xC0,0x01,0xE0,0x00,0x1C,0x07,0xC0,0x01,0xE0,0x00,0x18,0x07,0xC0,0x01,0xE0,0x00,0x10,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 200 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x10,0x07,0xC0,0x01,0xE0,0x00,0x18,0x07,0xC0,0x01,0xE0,0x00,0x1C,0x07,0xC0,0x01,0xE0,0x00,0x0E,0x07,0xC0,0x01,0xE0,0x00,0x07,0x07,0xC0,0x01,0xE0,0x00,0x03,0x07,0xC0,0x01,0xE0,0x00,0x01,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 201 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x10,0xFF,0xFF,0xFF,0xFF,0x00,0x1C,0x07,0xC0,0x01,0xE0,0x00,0x1E,0x07,0xC0,0x01,0xE0,0x00,0x0F,0x07,0xC0,0x01,0xE0,0x00,0x07,0x07,0xC0,0x01,0xE0,0x00,0x03,0x07,0xC0,0x01,0xE0,0x00,0x07,0x07,0xC0,0x01,0xE0,0x00,0x0F,0x07,0xC0,0x01,0xE0,0x00,0x1E,0x07,0xC0,0x01,0xE0,0x00,0x1C,0x07,0xC0,0x01,0xE0,0x00,0x10,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 202 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x0C,0xFF,0xFF,0xFF,0xFF,0x00,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x1E,0xFF,0xFF,0xFF,0xFF,0x00,0x1C,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x0C,0x07,0xC0,0x01,0xE0,0x00,0x1E,0x07,0xC0,0x01,0xE0,0x00,0x1E,0x07,0xC0,0x01,0xE0,0x00,0x1C,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 203 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x0E,0xFF,0xFF,0xFF,0xFF,0x00,0x1C,0x07,0x00,0x00,0xE0,0x00,0x18,0x07,0x00,0x00,0xE0,0x00,0x10,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 204 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x10,0x07,0x00,0x00,0xE0,0x00,0x18,0x07,0x00,0x00,0xE0,0x00,0x1C,0xFF,0xFF,0xFF,0xFF,0x00,0x0E,0xFF,0xFF,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0x07,0x00,0x00,0xE0,0x00,0x01,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 205 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x10,0x07,0x00,0x00,0xE0,0x00,0x1C,0x07,0x00,0x00,0xE0,0x00,0x1E,0x07,0x00,0x00,0xE0,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x00,0x0F,0x07,0x00,0x00,0xE0,0x00,0x1E,0x07,0x00,0x00,0xE0,0x00,0x1C,0x07,0x00,0x00,0xE0,0x00,0x10,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 206 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x0C,0x07,0x00,0x00,0xE0,0x00,0x1E,0x07,0x00,0x00,0xE0,0x00,0x1E,0x07,0x00,0x00,0xE0,0x00,0x0C,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x0C,0x07,0x00,0x00,0xE0,0x00,0x1E,0x07,0x00,0x00,0xE0,0x00,0x1E,0x07,0x00,0x00,0xE0,0x00,0x0C,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0, // 207 - 0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0xC0,0x01,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x0F,0x00,0x00,0xF0,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x1E,0x00,0x00,0x78,0x00,0x00,0x7E,0x00,0x00,0x3E,0x00,0x00,0xFC,0x03,0xC0,0x3F,0x00,0x00,0xF8,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xF8,0x1F, // 208 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x18,0xFF,0xFF,0xFF,0xFF,0x00,0x1C,0xFF,0xFF,0xFF,0xFF,0x00,0x1E,0xFE,0x03,0x00,0x00,0x00,0x06,0xF8,0x0F,0x00,0x00,0x00,0x06,0xE0,0x3F,0x00,0x00,0x00,0x06,0x80,0xFF,0x00,0x00,0x00,0x0C,0x00,0xFE,0x03,0x00,0x00,0x0C,0x00,0xF8,0x0F,0x00,0x00,0x18,0x00,0xE0,0x7F,0x00,0x00,0x18,0x00,0x80,0xFF,0x01,0x00,0x18,0x00,0x00,0xFC,0x07,0x00,0x1E,0x00,0x00,0xF0,0x1F,0x00,0x0E,0x00,0x00,0xC0,0x7F,0x00,0x0E,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF, // 209 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0x7C,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x7C,0x00,0x00,0x1E,0x00,0x00,0x78,0x00,0x00,0x0F,0x00,0x00,0xF0,0x00,0x01,0x07,0x00,0x00,0xE0,0x00,0x03,0x07,0x00,0x00,0xE0,0x00,0x07,0x07,0x00,0x00,0xE0,0x00,0x0E,0x07,0x00,0x00,0xE0,0x00,0x1C,0x07,0x00,0x00,0xE0,0x00,0x18,0x0F,0x00,0x00,0xF0,0x00,0x10,0x1E,0x00,0x00,0x78,0x00,0x00,0x3E,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x3E,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xFC,0x3F, // 210 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0x7C,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x7C,0x00,0x10,0x1E,0x00,0x00,0x78,0x00,0x18,0x0F,0x00,0x00,0xF0,0x00,0x1C,0x07,0x00,0x00,0xE0,0x00,0x0E,0x07,0x00,0x00,0xE0,0x00,0x0F,0x07,0x00,0x00,0xE0,0x00,0x07,0x07,0x00,0x00,0xE0,0x00,0x03,0x07,0x00,0x00,0xE0,0x00,0x01,0x0F,0x00,0x00,0xF0,0x00,0x00,0x1E,0x00,0x00,0x78,0x00,0x00,0x3E,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x3E,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xFC,0x3F, // 211 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0x7C,0x00,0x00,0x3E,0x00,0x10,0x3E,0x00,0x00,0x7C,0x00,0x1C,0x1E,0x00,0x00,0x78,0x00,0x1E,0x0F,0x00,0x00,0xF0,0x00,0x0F,0x07,0x00,0x00,0xE0,0x00,0x07,0x07,0x00,0x00,0xE0,0x00,0x03,0x07,0x00,0x00,0xE0,0x00,0x07,0x07,0x00,0x00,0xE0,0x00,0x0F,0x07,0x00,0x00,0xE0,0x00,0x1E,0x0F,0x00,0x00,0xF0,0x00,0x1C,0x1E,0x00,0x00,0x78,0x00,0x10,0x3E,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x3E,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xFC,0x3F, // 212 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x18,0xF8,0x03,0xC0,0x1F,0x00,0x1C,0x7C,0x00,0x00,0x3E,0x00,0x1E,0x3E,0x00,0x00,0x7C,0x00,0x06,0x1E,0x00,0x00,0x78,0x00,0x06,0x0F,0x00,0x00,0xF0,0x00,0x0E,0x07,0x00,0x00,0xE0,0x00,0x0C,0x07,0x00,0x00,0xE0,0x00,0x1C,0x07,0x00,0x00,0xE0,0x00,0x18,0x07,0x00,0x00,0xE0,0x00,0x18,0x07,0x00,0x00,0xE0,0x00,0x18,0x0F,0x00,0x00,0xF0,0x00,0x1E,0x1E,0x00,0x00,0x78,0x00,0x0E,0x3E,0x00,0x00,0x7C,0x00,0x06,0x7C,0x00,0x00,0x3E,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xFC,0x3F, // 213 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x0C,0xF8,0x03,0xC0,0x1F,0x00,0x1E,0x7C,0x00,0x00,0x3E,0x00,0x1E,0x3E,0x00,0x00,0x7C,0x00,0x0C,0x1E,0x00,0x00,0x78,0x00,0x00,0x0F,0x00,0x00,0xF0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x0C,0x0F,0x00,0x00,0xF0,0x00,0x1E,0x1E,0x00,0x00,0x78,0x00,0x1E,0x3E,0x00,0x00,0x7C,0x00,0x0C,0x7C,0x00,0x00,0x3E,0x00,0x00,0xF8,0x03,0xC0,0x1F,0x00,0x00,0xF0,0xFF,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x80,0xFF,0xFF,0x01,0x00,0x00,0x00,0xFC,0x3F, // 214 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x3C,0x00,0xF0,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x00,0x00,0xF0,0x00,0x3C,0x00,0x00,0x00,0xE0,0x01,0x1E,0x00,0x00,0x00,0xC0,0x03,0x0F,0x00,0x00,0x00,0x80,0x87,0x07,0x00,0x00,0x00,0x00,0xCF,0x03,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xCF,0x03,0x00,0x00,0x00,0x80,0x87,0x07,0x00,0x00,0x00,0xC0,0x03,0x0F,0x00,0x00,0x00,0xE0,0x01,0x1E,0x00,0x00,0x00,0xF0,0x00,0x3C,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x00,0x00,0x3C,0x00,0xF0,0x00,0x00,0x00,0x18,0x00,0x60, // 215 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x1F,0x00,0x01,0x00,0x80,0xFF,0xFF,0xC1,0x01,0x00,0xE0,0xFF,0xFF,0xF7,0x01,0x00,0xF8,0xFF,0xFF,0xFF,0x01,0x00,0xFC,0x03,0x80,0xFF,0x01,0x00,0x7C,0x00,0x80,0x7F,0x00,0x00,0x1E,0x00,0xE0,0x7F,0x00,0x00,0x0E,0x00,0xF8,0x7F,0x00,0x00,0x0F,0x00,0xFE,0xF3,0x00,0x00,0x07,0x00,0xFF,0xE0,0x00,0x00,0x07,0xC0,0x3F,0xE0,0x00,0x00,0x07,0xF0,0x0F,0xE0,0x00,0x00,0x07,0xFC,0x03,0xE0,0x00,0x00,0x07,0xFF,0x00,0xE0,0x00,0x00,0xCF,0x7F,0x00,0xF0,0x00,0x00,0xFE,0x1F,0x00,0x70,0x00,0x00,0xFE,0x07,0x00,0x7C,0x00,0x00,0xFE,0x01,0x00,0x7F,0x00,0x80,0xFF,0x01,0xE0,0x3F,0x00,0x80,0xFF,0xFF,0xFF,0x1F,0x00,0x80,0xEF,0xFF,0xFF,0x07,0x00,0x80,0x83,0xFF,0xFF,0x01,0x00,0x80,0x00,0xFC,0x3F, // 216 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x01,0x00,0x00,0x00,0xE0,0x00,0x03,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0xE0,0x00,0x1C,0x00,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0x00,0xF0,0x00,0x10,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x01, // 217 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x10,0x00,0x00,0x00,0x78,0x00,0x18,0x00,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x00,0x03,0x00,0x00,0x00,0xE0,0x00,0x01,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x01, // 218 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x10,0x00,0x00,0x00,0x7C,0x00,0x1C,0x00,0x00,0x00,0x78,0x00,0x1E,0x00,0x00,0x00,0xF0,0x00,0x0F,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x00,0x03,0x00,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x00,0xE0,0x00,0x0F,0x00,0x00,0x00,0xE0,0x00,0x1E,0x00,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0x00,0x78,0x00,0x10,0x00,0x00,0x00,0x7E,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x01, // 219 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x03,0x00,0x00,0xFF,0xFF,0xFF,0x0F,0x00,0x0C,0xFF,0xFF,0xFF,0x3F,0x00,0x1E,0xFF,0xFF,0xFF,0x3F,0x00,0x1E,0x00,0x00,0x00,0x7C,0x00,0x0C,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x00,0xF0,0x00,0x1E,0x00,0x00,0x00,0x78,0x00,0x1E,0x00,0x00,0x00,0x7E,0x00,0x0C,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0xFF,0xFF,0xFF,0x07,0x00,0x00,0xFF,0xFF,0xFF,0x01, // 220 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xF8,0x07,0x00,0x00,0x00,0x00,0xE0,0x1F,0x00,0x00,0x00,0x10,0xC0,0x3F,0x00,0x00,0x00,0x18,0x00,0xFF,0x00,0x00,0x00,0x1C,0x00,0xFC,0xFF,0xFF,0x00,0x0E,0x00,0xF0,0xFF,0xFF,0x00,0x0F,0x00,0xF0,0xFF,0xFF,0x00,0x07,0x00,0xFC,0xFF,0xFF,0x00,0x03,0x00,0xFF,0x00,0x00,0x00,0x01,0xC0,0x3F,0x00,0x00,0x00,0x00,0xE0,0x1F,0x00,0x00,0x00,0x00,0xF8,0x07,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x03, // 221 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0x80,0x03,0x00,0x00,0xC0,0x01,0xC0,0x01,0x00,0x00,0xC0,0x03,0xC0,0x01,0x00,0x00,0x80,0x03,0xE0,0x01,0x00,0x00,0x80,0x07,0xF0,0x00,0x00,0x00,0x80,0x0F,0xFC,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0xFC,0x0F,0x00,0x00,0x00,0x00,0xF0,0x03, // 222 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0xC0,0x03,0x70,0x00,0x00,0x00,0xC0,0x01,0xFC,0x01,0xF0,0x00,0xC0,0x01,0xFE,0x03,0xF0,0x00,0xC0,0x01,0xFF,0x03,0xE0,0x00,0xC0,0x81,0xCF,0x07,0xE0,0x00,0xC0,0xC3,0x87,0x0F,0xE0,0x00,0xC0,0xE3,0x03,0x0F,0xE0,0x00,0x80,0xFF,0x01,0x1F,0xE0,0x00,0x80,0xFF,0x00,0x3E,0xE0,0x00,0x00,0x7F,0x00,0x7C,0xF0,0x00,0x00,0x3C,0x00,0xF8,0x78,0x00,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0xE0,0x1F,0x00,0x00,0x00,0x00,0x80,0x0F, // 223 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x80,0x00,0x7C,0x00,0xF0,0x00,0x80,0x01,0x3C,0x00,0xE0,0x00,0x80,0x03,0x1E,0x00,0xE0,0x00,0x80,0x07,0x1E,0x00,0xE0,0x00,0x00,0x0F,0x0E,0x00,0x70,0x00,0x00,0x0E,0x0E,0x00,0x70,0x00,0x00,0x1C,0x0E,0x00,0x38,0x00,0x00,0x38,0x0E,0x00,0x3C,0x00,0x00,0x30,0x0E,0x00,0x1E,0x00,0x00,0x20,0x0E,0x80,0x07,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 224 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x20,0x1E,0x00,0xE0,0x00,0x00,0x30,0x0E,0x00,0x70,0x00,0x00,0x38,0x0E,0x00,0x70,0x00,0x00,0x1C,0x0E,0x00,0x38,0x00,0x00,0x0E,0x0E,0x00,0x3C,0x00,0x00,0x07,0x0E,0x00,0x1E,0x00,0x80,0x03,0x0E,0x80,0x07,0x00,0x80,0x01,0xFE,0xFF,0x3F,0x00,0x80,0x01,0xFE,0xFF,0xFF,0x00,0x80,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 225 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x30,0x3C,0x00,0xE0,0x00,0x00,0x38,0x1E,0x00,0xE0,0x00,0x00,0x3C,0x1E,0x00,0xE0,0x00,0x00,0x1F,0x0E,0x00,0x70,0x00,0x80,0x0F,0x0E,0x00,0x70,0x00,0x80,0x07,0x0E,0x00,0x38,0x00,0x80,0x0F,0x0E,0x00,0x3C,0x00,0x00,0x1E,0x0E,0x00,0x1E,0x00,0x00,0x3C,0x0E,0x80,0x07,0x00,0x00,0x38,0xFE,0xFF,0x3F,0x00,0x00,0x20,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 226 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x30,0xF0,0x03,0x7C,0x00,0x00,0x38,0xF8,0x00,0xF0,0x00,0x00,0x3C,0x7C,0x00,0xF0,0x00,0x00,0x0C,0x3C,0x00,0xE0,0x00,0x00,0x0C,0x1E,0x00,0xE0,0x00,0x00,0x1C,0x1E,0x00,0xE0,0x00,0x00,0x18,0x0E,0x00,0x70,0x00,0x00,0x18,0x0E,0x00,0x70,0x00,0x00,0x30,0x0E,0x00,0x38,0x00,0x00,0x30,0x0E,0x00,0x3C,0x00,0x00,0x30,0x0E,0x00,0x1E,0x00,0x00,0x3C,0x0E,0x80,0x07,0x00,0x00,0x1C,0xFE,0xFF,0x3F,0x00,0x00,0x0C,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 227 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x18,0xF0,0x03,0x7C,0x00,0x00,0x3C,0xF8,0x00,0xF0,0x00,0x00,0x3C,0x7C,0x00,0xF0,0x00,0x00,0x18,0x3C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x38,0x00,0x00,0x00,0x0E,0x00,0x3C,0x00,0x00,0x18,0x0E,0x00,0x1E,0x00,0x00,0x3C,0x0E,0x80,0x07,0x00,0x00,0x3C,0xFE,0xFF,0x3F,0x00,0x00,0x18,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 228 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0xFF,0x1F,0x00,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0x00,0xE0,0xFF,0x7F,0x00,0x00,0x00,0xF0,0x03,0x7C,0x00,0x00,0x00,0xF8,0x00,0xF0,0x00,0x00,0x00,0x7C,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0xE0,0x00,0x00,0x1E,0x1E,0x00,0xE0,0x00,0x00,0x3F,0x1E,0x00,0xE0,0x00,0x80,0x73,0x0E,0x00,0x70,0x00,0x80,0x61,0x0E,0x00,0x70,0x00,0x80,0x61,0x0E,0x00,0x38,0x00,0x80,0x73,0x0E,0x00,0x3C,0x00,0x00,0x3F,0x0E,0x00,0x1E,0x00,0x00,0x1E,0x0E,0x80,0x07,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xC0, // 229 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xF8,0xFF,0x7F,0x00,0x00,0x00,0xFC,0x03,0xF8,0x00,0x00,0x00,0x7C,0x00,0xE0,0x00,0x00,0x00,0x1E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0x70,0x00,0x00,0x00,0x0E,0x00,0x3C,0x00,0x00,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xFC,0xFF,0x3F,0x00,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0x00,0x1E,0x1C,0xF8,0x00,0x00,0x00,0x0E,0x1C,0xF0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x1E,0x1C,0xE0,0x00,0x00,0x00,0xFC,0x1F,0xE0,0x00,0x00,0x00,0xFC,0x1F,0xE0,0x00,0x00,0x00,0xF0,0x1F,0x60,0x00,0x00,0x00,0xC0,0x1F,0x60, // 230 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0x78,0x00,0x7C,0x00,0x00,0x00,0x3C,0x00,0x78,0x00,0x00,0x00,0x1C,0x00,0xF0,0x00,0x00,0x00,0x1E,0x00,0xF0,0x0C,0x00,0x00,0x0E,0x00,0xE0,0x0F,0x00,0x00,0x0E,0x00,0xE0,0x1F,0x00,0x00,0x0E,0x00,0xE0,0x18,0x00,0x00,0x0E,0x00,0xE0,0x18,0x00,0x00,0x0E,0x00,0xE0,0x10,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x1C,0x00,0x70,0x00,0x00,0x00,0x3C,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x3C, // 231 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x1D,0x3F,0x00,0x00,0x00,0x7C,0x1C,0x7C,0x00,0x80,0x00,0x3C,0x1C,0x78,0x00,0x80,0x01,0x1C,0x1C,0x70,0x00,0x80,0x03,0x0E,0x1C,0xF0,0x00,0x80,0x03,0x0E,0x1C,0xE0,0x00,0x00,0x07,0x0E,0x1C,0xE0,0x00,0x00,0x0E,0x0E,0x1C,0xE0,0x00,0x00,0x1C,0x0E,0x1C,0xE0,0x00,0x00,0x38,0x1E,0x1C,0xE0,0x00,0x00,0x30,0x1C,0x1C,0xE0,0x00,0x00,0x20,0x7C,0x1C,0x70,0x00,0x00,0x00,0xF8,0x1F,0x70,0x00,0x00,0x00,0xF0,0x1F,0x70,0x00,0x00,0x00,0xE0,0x1F,0x78,0x00,0x00,0x00,0x00,0x1F,0x38, // 232 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x1D,0x3F,0x00,0x00,0x00,0x7C,0x1C,0x7C,0x00,0x00,0x00,0x3C,0x1C,0x78,0x00,0x00,0x00,0x1C,0x1C,0x70,0x00,0x00,0x20,0x0E,0x1C,0xF0,0x00,0x00,0x30,0x0E,0x1C,0xE0,0x00,0x00,0x38,0x0E,0x1C,0xE0,0x00,0x00,0x1C,0x0E,0x1C,0xE0,0x00,0x00,0x0E,0x0E,0x1C,0xE0,0x00,0x00,0x07,0x1E,0x1C,0xE0,0x00,0x80,0x07,0x1C,0x1C,0xE0,0x00,0x80,0x03,0x7C,0x1C,0x70,0x00,0x80,0x01,0xF8,0x1F,0x70,0x00,0x80,0x00,0xF0,0x1F,0x70,0x00,0x00,0x00,0xE0,0x1F,0x78,0x00,0x00,0x00,0x00,0x1F,0x38, // 233 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x1D,0x3F,0x00,0x00,0x00,0x7C,0x1C,0x7C,0x00,0x00,0x30,0x3C,0x1C,0x78,0x00,0x00,0x38,0x1C,0x1C,0x70,0x00,0x00,0x3C,0x0E,0x1C,0xF0,0x00,0x00,0x1F,0x0E,0x1C,0xE0,0x00,0x80,0x07,0x0E,0x1C,0xE0,0x00,0x80,0x07,0x0E,0x1C,0xE0,0x00,0x80,0x0F,0x0E,0x1C,0xE0,0x00,0x00,0x1E,0x1E,0x1C,0xE0,0x00,0x00,0x3C,0x1C,0x1C,0xE0,0x00,0x00,0x30,0x7C,0x1C,0x70,0x00,0x00,0x20,0xF8,0x1F,0x70,0x00,0x00,0x00,0xF0,0x1F,0x70,0x00,0x00,0x00,0xE0,0x1F,0x78,0x00,0x00,0x00,0x00,0x1F,0x38, // 234 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x18,0xF8,0x1D,0x3F,0x00,0x00,0x3C,0x7C,0x1C,0x7C,0x00,0x00,0x3C,0x3C,0x1C,0x78,0x00,0x00,0x18,0x1C,0x1C,0x70,0x00,0x00,0x00,0x0E,0x1C,0xF0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x0E,0x1C,0xE0,0x00,0x00,0x00,0x1E,0x1C,0xE0,0x00,0x00,0x18,0x1C,0x1C,0xE0,0x00,0x00,0x3C,0x7C,0x1C,0x70,0x00,0x00,0x3C,0xF8,0x1F,0x70,0x00,0x00,0x18,0xF0,0x1F,0x70,0x00,0x00,0x00,0xE0,0x1F,0x78,0x00,0x00,0x00,0x00,0x1F,0x38, // 235 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x80,0x00,0x0E,0x00,0x00,0x00,0x80,0x00,0x0E,0x00,0x00,0x00,0x80,0x01,0x0E,0x00,0x00,0x00,0x80,0x03,0xFE,0xFF,0xFF,0x00,0x00,0x07,0xFE,0xFF,0xFF,0x00,0x00,0x0E,0xFE,0xFF,0xFF,0x00,0x00,0x1C,0xFE,0xFF,0xFF,0x00,0x00,0x38,0x00,0x00,0xE0,0x00,0x00,0x30,0x00,0x00,0xE0,0x00,0x00,0x20,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 236 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x20,0x0E,0x00,0x00,0x00,0x00,0x30,0x0E,0x00,0x00,0x00,0x00,0x38,0xFE,0xFF,0xFF,0x00,0x00,0x1C,0xFE,0xFF,0xFF,0x00,0x00,0x1E,0xFE,0xFF,0xFF,0x00,0x00,0x0F,0xFE,0xFF,0xFF,0x00,0x80,0x07,0x00,0x00,0xE0,0x00,0x80,0x03,0x00,0x00,0xE0,0x00,0x80,0x01,0x00,0x00,0xE0,0x00,0x80,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 237 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x20,0x0E,0x00,0x00,0x00,0x00,0x38,0x0E,0x00,0x00,0x00,0x00,0x3C,0x0E,0x00,0x00,0x00,0x00,0x1E,0xFE,0xFF,0xFF,0x00,0x80,0x0F,0xFE,0xFF,0xFF,0x00,0x80,0x03,0xFE,0xFF,0xFF,0x00,0x80,0x0F,0xFE,0xFF,0xFF,0x00,0x00,0x1F,0x00,0x00,0xE0,0x00,0x00,0x3C,0x00,0x00,0xE0,0x00,0x00,0x38,0x00,0x00,0xE0,0x00,0x00,0x20,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 238 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x18,0x0E,0x00,0x00,0x00,0x00,0x3C,0x0E,0x00,0x00,0x00,0x00,0x3C,0x0E,0x00,0x00,0x00,0x00,0x18,0x0E,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x18,0x00,0x00,0xE0,0x00,0x00,0x3C,0x00,0x00,0xE0,0x00,0x00,0x3C,0x00,0x00,0xE0,0x00,0x00,0x18,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0, // 239 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x80,0xFF,0x07,0x00,0x80,0x03,0xE0,0xFF,0x0F,0x00,0x80,0x03,0xF0,0xFF,0x1F,0x00,0x80,0x63,0xF0,0x03,0x3F,0x00,0x80,0xE3,0xF8,0x00,0x7C,0x00,0x80,0xF3,0x79,0x00,0x78,0x00,0x80,0xFF,0x3C,0x00,0xF0,0x00,0x00,0x7F,0x1C,0x00,0xE0,0x00,0x00,0x3F,0x1C,0x00,0xE0,0x00,0x00,0x1F,0x1C,0x00,0xE0,0x00,0x80,0x1F,0x1C,0x00,0xE0,0x00,0xC0,0x3F,0x1C,0x00,0xE0,0x00,0xE0,0xFF,0x38,0x00,0xF0,0x00,0xF0,0xF9,0x79,0x00,0x78,0x00,0xE0,0xF1,0xF7,0x00,0x7C,0x00,0xC0,0xE0,0xFF,0x03,0x3F,0x00,0x00,0x80,0xFF,0xFF,0x1F,0x00,0x00,0x00,0xFF,0xFF,0x0F,0x00,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xC0,0xFF, // 240 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x20,0xFE,0xFF,0xFF,0x00,0x00,0x38,0xFE,0xFF,0xFF,0x00,0x00,0x3C,0xC0,0x03,0x00,0x00,0x00,0x0C,0xF0,0x00,0x00,0x00,0x00,0x0C,0x78,0x00,0x00,0x00,0x00,0x0C,0x38,0x00,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,0x18,0x1C,0x00,0x00,0x00,0x00,0x30,0x0E,0x00,0x00,0x00,0x00,0x30,0x0E,0x00,0x00,0x00,0x00,0x30,0x0E,0x00,0x00,0x00,0x00,0x38,0x1E,0x00,0x00,0x00,0x00,0x1C,0x3E,0x00,0x00,0x00,0x00,0x1C,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xFC,0xFF,0xFF,0x00,0x00,0x00,0xF8,0xFF,0xFF,0x00,0x00,0x00,0xE0,0xFF,0xFF, // 241 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x3C,0x00,0x78,0x00,0x80,0x01,0x1E,0x00,0xF0,0x00,0x80,0x03,0x0E,0x00,0xE0,0x00,0x00,0x07,0x0E,0x00,0xE0,0x00,0x00,0x0E,0x0E,0x00,0xE0,0x00,0x00,0x1C,0x0E,0x00,0xE0,0x00,0x00,0x38,0x0E,0x00,0xE0,0x00,0x00,0x30,0x1E,0x00,0xF0,0x00,0x00,0x20,0x1C,0x00,0x70,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE, // 242 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x20,0x3C,0x00,0x78,0x00,0x00,0x30,0x1E,0x00,0xF0,0x00,0x00,0x38,0x0E,0x00,0xE0,0x00,0x00,0x1C,0x0E,0x00,0xE0,0x00,0x00,0x1E,0x0E,0x00,0xE0,0x00,0x00,0x0F,0x0E,0x00,0xE0,0x00,0x80,0x07,0x0E,0x00,0xE0,0x00,0x80,0x03,0x1E,0x00,0xF0,0x00,0x80,0x01,0x1C,0x00,0x70,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE, // 243 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x20,0x7C,0x00,0x7C,0x00,0x00,0x38,0x3C,0x00,0x78,0x00,0x00,0x3C,0x1E,0x00,0xF0,0x00,0x00,0x1F,0x0E,0x00,0xE0,0x00,0x80,0x0F,0x0E,0x00,0xE0,0x00,0x80,0x03,0x0E,0x00,0xE0,0x00,0x80,0x0F,0x0E,0x00,0xE0,0x00,0x00,0x1F,0x0E,0x00,0xE0,0x00,0x00,0x3C,0x1E,0x00,0xF0,0x00,0x00,0x38,0x1C,0x00,0x70,0x00,0x00,0x20,0x7C,0x00,0x7C,0x00,0x00,0x00,0xF8,0x01,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE, // 244 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x30,0xF0,0xFF,0x1F,0x00,0x00,0x38,0xF8,0x01,0x3F,0x00,0x00,0x3C,0x7C,0x00,0x7C,0x00,0x00,0x0C,0x3C,0x00,0x78,0x00,0x00,0x0C,0x1E,0x00,0xF0,0x00,0x00,0x0C,0x0E,0x00,0xE0,0x00,0x00,0x18,0x0E,0x00,0xE0,0x00,0x00,0x18,0x0E,0x00,0xE0,0x00,0x00,0x30,0x0E,0x00,0xE0,0x00,0x00,0x30,0x0E,0x00,0xE0,0x00,0x00,0x30,0x1E,0x00,0xF0,0x00,0x00,0x3C,0x1C,0x00,0x70,0x00,0x00,0x1C,0x7C,0x00,0x7C,0x00,0x00,0x0C,0xF8,0x01,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE, // 245 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x18,0xF0,0xFF,0x1F,0x00,0x00,0x3C,0xF8,0x01,0x3F,0x00,0x00,0x3C,0x7C,0x00,0x7C,0x00,0x00,0x18,0x3C,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xE0,0x00,0x00,0x18,0x1E,0x00,0xF0,0x00,0x00,0x3C,0x1C,0x00,0x70,0x00,0x00,0x3C,0x7C,0x00,0x7C,0x00,0x00,0x18,0xF8,0x01,0x3F,0x00,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x00,0x00,0xFE, // 246 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0xF0,0x70,0x78,0x00,0x00,0x00,0xF8,0x71,0xFC,0x00,0x00,0x00,0xF8,0x71,0xFC,0x00,0x00,0x00,0xF8,0x71,0xFC,0x00,0x00,0x00,0xF8,0x71,0xFC,0x00,0x00,0x00,0xF0,0x70,0x78,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70, // 247 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x01,0x00,0x00,0xC0,0xFF,0x87,0x01,0x00,0x00,0xE0,0xFF,0xEF,0x01,0x00,0x00,0xF8,0xFF,0xFF,0x01,0x00,0x00,0xF8,0x01,0xFF,0x01,0x00,0x00,0x3C,0x00,0xFE,0x00,0x00,0x00,0x1C,0x00,0x7F,0x00,0x00,0x00,0x1E,0xC0,0xFF,0x00,0x00,0x00,0x0E,0xE0,0xEF,0x00,0x00,0x00,0x0E,0xF8,0xE3,0x00,0x00,0x00,0x0E,0xFC,0xE1,0x00,0x00,0x00,0x0E,0x7F,0xE0,0x00,0x00,0x00,0x8E,0x3F,0xE0,0x00,0x00,0x00,0xEE,0x0F,0xE0,0x00,0x00,0x00,0xFE,0x07,0xF0,0x00,0x00,0x00,0xFC,0x01,0x70,0x00,0x00,0x00,0xFE,0x00,0x78,0x00,0x00,0x00,0xFF,0x00,0x3F,0x00,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0x00,0xEF,0xFF,0x0F,0x00,0x00,0x00,0xC3,0xFF,0x07,0x00,0x00,0x00,0x01,0xFE, // 248 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x80,0x00,0x00,0x00,0xF8,0x00,0x80,0x00,0x00,0x00,0xF0,0x00,0x80,0x01,0x00,0x00,0xE0,0x00,0x80,0x03,0x00,0x00,0xE0,0x00,0x00,0x07,0x00,0x00,0xE0,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x20,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF, // 249 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x20,0x00,0x00,0xE0,0x00,0x00,0x30,0x00,0x00,0xE0,0x00,0x00,0x38,0x00,0x00,0xE0,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0F,0x00,0x00,0x38,0x00,0x80,0x07,0x00,0x00,0x3C,0x00,0x80,0x03,0x00,0x00,0x1E,0x00,0x80,0x01,0x00,0x80,0x07,0x00,0x80,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF, // 250 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0x20,0x00,0x00,0xF8,0x00,0x00,0x38,0x00,0x00,0xF0,0x00,0x00,0x3C,0x00,0x00,0xE0,0x00,0x00,0x1E,0x00,0x00,0xE0,0x00,0x80,0x0F,0x00,0x00,0xE0,0x00,0x80,0x03,0x00,0x00,0x70,0x00,0x80,0x0F,0x00,0x00,0x70,0x00,0x00,0x1F,0x00,0x00,0x38,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x38,0x00,0x00,0x1E,0x00,0x00,0x20,0x00,0x80,0x07,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF, // 251 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0x18,0xFE,0xFF,0x7F,0x00,0x00,0x3C,0xFE,0xFF,0x7F,0x00,0x00,0x3C,0x00,0x00,0xF8,0x00,0x00,0x18,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x1E,0x00,0x00,0x3C,0x00,0x80,0x07,0x00,0x00,0x18,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0x00,0xFE,0xFF,0xFF, // 252 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00,0xFC,0x07,0x00,0x00,0x00,0x00,0xF0,0x1F,0x00,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x00,0x00,0x00,0xFF,0x01,0x10,0x00,0x20,0x00,0xFC,0x07,0x1C,0x00,0x30,0x00,0xE0,0x3F,0x1E,0x00,0x38,0x00,0x80,0xFF,0x1F,0x00,0x1C,0x00,0x00,0xFE,0x0F,0x00,0x0E,0x00,0x00,0xFE,0x07,0x00,0x0F,0x00,0xC0,0xFF,0x01,0x80,0x07,0x00,0xF0,0x7F,0x00,0x80,0x03,0x00,0xFE,0x0F,0x00,0x80,0x01,0x80,0xFF,0x03,0x00,0x80,0x00,0xF0,0x7F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x02, // 253 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0xE0,0x03,0xE0,0x00,0x00,0x00,0xF0,0x00,0xE0,0x00,0x00,0x00,0x78,0x00,0xE0,0x00,0x00,0x00,0x38,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x1C,0x00,0xE0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0xF0,0x00,0x00,0x00,0x0E,0x00,0x78,0x00,0x00,0x00,0x1E,0x00,0x7C,0x00,0x00,0x00,0x1E,0x00,0x3E,0x00,0x00,0x00,0x7C,0x80,0x1F,0x00,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x01,0x00,0x00,0x00,0x80,0x7F, // 254 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x18,0xFC,0x07,0x00,0x00,0x00,0x3C,0xF0,0x1F,0x00,0x00,0x00,0x3C,0xC0,0x7F,0x00,0x00,0x00,0x18,0x00,0xFF,0x01,0x10,0x00,0x00,0x00,0xFC,0x07,0x1C,0x00,0x00,0x00,0xE0,0x3F,0x1E,0x00,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x18,0x00,0xF0,0x7F,0x00,0x00,0x3C,0x00,0xFE,0x0F,0x00,0x00,0x3C,0x80,0xFF,0x03,0x00,0x00,0x18,0xF0,0x7F,0x00,0x00,0x00,0x00,0xFE,0x0F,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x02 // 255 -}; -#define FONT_LIB_V3 -// Created by http://oleddisplay.squix.ch/ Consider a donation -// In case of problems make sure that you are using the font file with the correct version! -const char Meteocons_Plain_21[] PROGMEM = { - 0x15, // Width: 21 - 0x16, // Height: 22 - 0x20, // First Char: 32 - 0xE0, // Numbers of Chars: 224 - - // Jump Table: - 0xFF, 0xFF, 0x00, 0x0B, // 32:65535 - 0x00, 0x00, 0x3D, 0x15, // 33:0 - 0x00, 0x3D, 0x3E, 0x15, // 34:61 - 0x00, 0x7B, 0x3E, 0x15, // 35:123 - 0x00, 0xB9, 0x3E, 0x15, // 36:185 - 0x00, 0xF7, 0x3E, 0x15, // 37:247 - 0x01, 0x35, 0x3E, 0x15, // 38:309 - 0x01, 0x73, 0x27, 0x15, // 39:371 - 0x01, 0x9A, 0x3B, 0x15, // 40:410 - 0x01, 0xD5, 0x38, 0x15, // 41:469 - 0x02, 0x0D, 0x29, 0x15, // 42:525 - 0x02, 0x36, 0x2C, 0x15, // 43:566 - 0x02, 0x62, 0x18, 0x0D, // 44:610 - 0x02, 0x7A, 0x20, 0x0D, // 45:634 - 0x02, 0x9A, 0x15, 0x0D, // 46:666 - 0x02, 0xAF, 0x1F, 0x0D, // 47:687 - 0x02, 0xCE, 0x3E, 0x15, // 48:718 - 0x03, 0x0C, 0x38, 0x15, // 49:780 - 0x03, 0x44, 0x2C, 0x15, // 50:836 - 0x03, 0x70, 0x3E, 0x15, // 51:880 - 0x03, 0xAE, 0x3F, 0x15, // 52:942 - 0x03, 0xED, 0x3E, 0x15, // 53:1005 - 0x04, 0x2B, 0x3E, 0x15, // 54:1067 - 0x04, 0x69, 0x3E, 0x15, // 55:1129 - 0x04, 0xA7, 0x3E, 0x15, // 56:1191 - 0x04, 0xE5, 0x3E, 0x15, // 57:1253 - 0x05, 0x23, 0x15, 0x0D, // 58:1315 - 0x05, 0x38, 0x18, 0x0D, // 59:1336 - 0x05, 0x50, 0x27, 0x0D, // 60:1360 - 0x05, 0x77, 0x24, 0x0D, // 61:1399 - 0x05, 0x9B, 0x26, 0x0D, // 62:1435 - 0x05, 0xC1, 0x20, 0x0D, // 63:1473 - 0x05, 0xE1, 0x26, 0x0D, // 64:1505 - 0x06, 0x07, 0x31, 0x15, // 65:1543 - 0x06, 0x38, 0x38, 0x15, // 66:1592 - 0x06, 0x70, 0x2C, 0x15, // 67:1648 - 0x06, 0x9C, 0x32, 0x15, // 68:1692 - 0x06, 0xCE, 0x3E, 0x15, // 69:1742 - 0x07, 0x0C, 0x3B, 0x15, // 70:1804 - 0x07, 0x47, 0x2F, 0x15, // 71:1863 - 0x07, 0x76, 0x3E, 0x15, // 72:1910 - 0x07, 0xB4, 0x3E, 0x15, // 73:1972 - 0x07, 0xF2, 0x39, 0x15, // 74:2034 - 0x08, 0x2B, 0x39, 0x15, // 75:2091 - 0x08, 0x64, 0x3F, 0x15, // 76:2148 - 0x08, 0xA3, 0x32, 0x15, // 77:2211 - 0x08, 0xD5, 0x3E, 0x15, // 78:2261 - 0x09, 0x13, 0x3E, 0x15, // 79:2323 - 0x09, 0x51, 0x3E, 0x15, // 80:2385 - 0x09, 0x8F, 0x3E, 0x15, // 81:2447 - 0x09, 0xCD, 0x3E, 0x15, // 82:2509 - 0x0A, 0x0B, 0x3E, 0x15, // 83:2571 - 0x0A, 0x49, 0x3D, 0x15, // 84:2633 - 0x0A, 0x86, 0x3E, 0x15, // 85:2694 - 0x0A, 0xC4, 0x3E, 0x15, // 86:2756 - 0x0B, 0x02, 0x3E, 0x15, // 87:2818 - 0x0B, 0x40, 0x3E, 0x15, // 88:2880 - 0x0B, 0x7E, 0x3E, 0x15, // 89:2942 - 0x0B, 0xBC, 0x3E, 0x15, // 90:3004 - 0x0B, 0xFA, 0x21, 0x0D, // 91:3066 - 0x0C, 0x1B, 0x24, 0x0D, // 92:3099 - 0x0C, 0x3F, 0x18, 0x0D, // 93:3135 - 0x0C, 0x57, 0x23, 0x0D, // 94:3159 - 0x0C, 0x7A, 0x24, 0x0D, // 95:3194 - 0x0C, 0x9E, 0x19, 0x0D, // 96:3230 - 0x0C, 0xB7, 0x24, 0x0D, // 97:3255 - 0x0C, 0xDB, 0x23, 0x0D, // 98:3291 - 0x0C, 0xFE, 0x21, 0x0D, // 99:3326 - 0x0D, 0x1F, 0x21, 0x0D, // 100:3359 - 0x0D, 0x40, 0x24, 0x0D, // 101:3392 - 0x0D, 0x64, 0x22, 0x0D, // 102:3428 - 0x0D, 0x86, 0x21, 0x0D, // 103:3462 - 0x0D, 0xA7, 0x21, 0x0D, // 104:3495 - 0x0D, 0xC8, 0x1E, 0x0D, // 105:3528 - 0x0D, 0xE6, 0x1E, 0x0D, // 106:3558 - 0x0E, 0x04, 0x24, 0x0D, // 107:3588 - 0x0E, 0x28, 0x1E, 0x0D, // 108:3624 - 0x0E, 0x46, 0x24, 0x0D, // 109:3654 - 0x0E, 0x6A, 0x21, 0x0D, // 110:3690 - 0x0E, 0x8B, 0x24, 0x0D, // 111:3723 - 0x0E, 0xAF, 0x23, 0x0D, // 112:3759 - 0x0E, 0xD2, 0x21, 0x0D, // 113:3794 - 0x0E, 0xF3, 0x20, 0x0D, // 114:3827 - 0x0F, 0x13, 0x21, 0x0D, // 115:3859 - 0x0F, 0x34, 0x21, 0x0D, // 116:3892 - 0x0F, 0x55, 0x21, 0x0D, // 117:3925 - 0x0F, 0x76, 0x23, 0x0D, // 118:3958 - 0x0F, 0x99, 0x23, 0x0D, // 119:3993 - 0x0F, 0xBC, 0x24, 0x0D, // 120:4028 - 0x0F, 0xE0, 0x26, 0x0D, // 121:4064 - 0x10, 0x06, 0x21, 0x0D, // 122:4102 - 0x10, 0x27, 0x24, 0x0D, // 123:4135 - 0x10, 0x4B, 0x15, 0x0D, // 124:4171 - 0x10, 0x60, 0x1D, 0x0D, // 125:4192 - 0x10, 0x7D, 0x23, 0x0D, // 126:4221 - 0xFF, 0xFF, 0x00, 0x00, // 127:65535 - 0xFF, 0xFF, 0x00, 0x15, // 128:65535 - 0xFF, 0xFF, 0x00, 0x15, // 129:65535 - 0xFF, 0xFF, 0x00, 0x15, // 130:65535 - 0xFF, 0xFF, 0x00, 0x15, // 131:65535 - 0xFF, 0xFF, 0x00, 0x15, // 132:65535 - 0xFF, 0xFF, 0x00, 0x15, // 133:65535 - 0xFF, 0xFF, 0x00, 0x15, // 134:65535 - 0xFF, 0xFF, 0x00, 0x15, // 135:65535 - 0xFF, 0xFF, 0x00, 0x15, // 136:65535 - 0xFF, 0xFF, 0x00, 0x15, // 137:65535 - 0xFF, 0xFF, 0x00, 0x15, // 138:65535 - 0xFF, 0xFF, 0x00, 0x15, // 139:65535 - 0xFF, 0xFF, 0x00, 0x15, // 140:65535 - 0xFF, 0xFF, 0x00, 0x15, // 141:65535 - 0xFF, 0xFF, 0x00, 0x15, // 142:65535 - 0xFF, 0xFF, 0x00, 0x15, // 143:65535 - 0xFF, 0xFF, 0x00, 0x15, // 144:65535 - 0xFF, 0xFF, 0x00, 0x15, // 145:65535 - 0xFF, 0xFF, 0x00, 0x15, // 146:65535 - 0xFF, 0xFF, 0x00, 0x15, // 147:65535 - 0xFF, 0xFF, 0x00, 0x15, // 148:65535 - 0xFF, 0xFF, 0x00, 0x15, // 149:65535 - 0xFF, 0xFF, 0x00, 0x15, // 150:65535 - 0xFF, 0xFF, 0x00, 0x15, // 151:65535 - 0xFF, 0xFF, 0x00, 0x15, // 152:65535 - 0xFF, 0xFF, 0x00, 0x15, // 153:65535 - 0xFF, 0xFF, 0x00, 0x15, // 154:65535 - 0xFF, 0xFF, 0x00, 0x15, // 155:65535 - 0xFF, 0xFF, 0x00, 0x15, // 156:65535 - 0xFF, 0xFF, 0x00, 0x15, // 157:65535 - 0xFF, 0xFF, 0x00, 0x15, // 158:65535 - 0xFF, 0xFF, 0x00, 0x15, // 159:65535 - 0xFF, 0xFF, 0x00, 0x0B, // 160:65535 - 0x10, 0xA0, 0x18, 0x0D, // 161:4256 - 0x10, 0xB8, 0x20, 0x0D, // 162:4280 - 0x10, 0xD8, 0x24, 0x0D, // 163:4312 - 0x10, 0xFC, 0x21, 0x0D, // 164:4348 - 0x11, 0x1D, 0x1C, 0x0D, // 165:4381 - 0x11, 0x39, 0x15, 0x0D, // 166:4409 - 0x11, 0x4E, 0x24, 0x0D, // 167:4430 - 0x11, 0x72, 0x1C, 0x0D, // 168:4466 - 0x11, 0x8E, 0x26, 0x0D, // 169:4494 - 0x11, 0xB4, 0x20, 0x0D, // 170:4532 - 0x11, 0xD4, 0x24, 0x0D, // 171:4564 - 0x11, 0xF8, 0x24, 0x0D, // 172:4600 - 0x12, 0x1C, 0x1D, 0x0D, // 173:4636 - 0x12, 0x39, 0x26, 0x0D, // 174:4665 - 0x12, 0x5F, 0x19, 0x0D, // 175:4703 - 0x12, 0x78, 0x19, 0x0D, // 176:4728 - 0x12, 0x91, 0x24, 0x0D, // 177:4753 - 0x12, 0xB5, 0x1D, 0x0D, // 178:4789 - 0x12, 0xD2, 0x1A, 0x0D, // 179:4818 - 0x12, 0xEC, 0x13, 0x0D, // 180:4844 - 0x12, 0xFF, 0x21, 0x0D, // 181:4863 - 0x13, 0x20, 0x25, 0x0D, // 182:4896 - 0x13, 0x45, 0x14, 0x0D, // 183:4933 - 0x13, 0x59, 0x18, 0x0D, // 184:4953 - 0x13, 0x71, 0x1D, 0x0D, // 185:4977 - 0x13, 0x8E, 0x1F, 0x0D, // 186:5006 - 0x13, 0xAD, 0x20, 0x0D, // 187:5037 - 0x13, 0xCD, 0x27, 0x0D, // 188:5069 - 0x13, 0xF4, 0x24, 0x0D, // 189:5108 - 0x14, 0x18, 0x27, 0x0D, // 190:5144 - 0x14, 0x3F, 0x21, 0x0D, // 191:5183 - 0x14, 0x60, 0x27, 0x0D, // 192:5216 - 0x14, 0x87, 0x27, 0x0D, // 193:5255 - 0x14, 0xAE, 0x27, 0x0D, // 194:5294 - 0x14, 0xD5, 0x27, 0x0D, // 195:5333 - 0x14, 0xFC, 0x27, 0x0D, // 196:5372 - 0x15, 0x23, 0x24, 0x0D, // 197:5411 - 0x15, 0x47, 0x24, 0x0D, // 198:5447 - 0x15, 0x6B, 0x24, 0x0D, // 199:5483 - 0x15, 0x8F, 0x21, 0x0D, // 200:5519 - 0x15, 0xB0, 0x21, 0x0D, // 201:5552 - 0x15, 0xD1, 0x21, 0x0D, // 202:5585 - 0x15, 0xF2, 0x21, 0x0D, // 203:5618 - 0x16, 0x13, 0x24, 0x0D, // 204:5651 - 0x16, 0x37, 0x24, 0x0D, // 205:5687 - 0x16, 0x5B, 0x24, 0x0D, // 206:5723 - 0x16, 0x7F, 0x24, 0x0D, // 207:5759 - 0x16, 0xA3, 0x26, 0x0D, // 208:5795 - 0x16, 0xC9, 0x24, 0x0D, // 209:5833 - 0x16, 0xED, 0x26, 0x0D, // 210:5869 - 0x17, 0x13, 0x26, 0x0D, // 211:5907 - 0x17, 0x39, 0x26, 0x0D, // 212:5945 - 0x17, 0x5F, 0x26, 0x0D, // 213:5983 - 0x17, 0x85, 0x26, 0x0D, // 214:6021 - 0x17, 0xAB, 0x21, 0x0D, // 215:6059 - 0x17, 0xCC, 0x26, 0x0D, // 216:6092 - 0x17, 0xF2, 0x24, 0x0D, // 217:6130 - 0x18, 0x16, 0x24, 0x0D, // 218:6166 - 0x18, 0x3A, 0x24, 0x0D, // 219:6202 - 0x18, 0x5E, 0x24, 0x0D, // 220:6238 - 0x18, 0x82, 0x1F, 0x0D, // 221:6274 - 0x18, 0xA1, 0x23, 0x0D, // 222:6305 - 0x18, 0xC4, 0x24, 0x0D, // 223:6340 - 0x18, 0xE8, 0x24, 0x0D, // 224:6376 - 0x19, 0x0C, 0x24, 0x0D, // 225:6412 - 0x19, 0x30, 0x24, 0x0D, // 226:6448 - 0x19, 0x54, 0x24, 0x0D, // 227:6484 - 0x19, 0x78, 0x24, 0x0D, // 228:6520 - 0x19, 0x9C, 0x24, 0x0D, // 229:6556 - 0x19, 0xC0, 0x27, 0x0D, // 230:6592 - 0x19, 0xE7, 0x24, 0x0D, // 231:6631 - 0x1A, 0x0B, 0x24, 0x0D, // 232:6667 - 0x1A, 0x2F, 0x24, 0x0D, // 233:6703 - 0x1A, 0x53, 0x24, 0x0D, // 234:6739 - 0x1A, 0x77, 0x24, 0x0D, // 235:6775 - 0x1A, 0x9B, 0x1E, 0x0D, // 236:6811 - 0x1A, 0xB9, 0x1E, 0x0D, // 237:6841 - 0x1A, 0xD7, 0x1E, 0x0D, // 238:6871 - 0x1A, 0xF5, 0x1E, 0x0D, // 239:6901 - 0x1B, 0x13, 0x23, 0x0D, // 240:6931 - 0x1B, 0x36, 0x1E, 0x0D, // 241:6966 - 0x1B, 0x54, 0x24, 0x0D, // 242:6996 - 0x1B, 0x78, 0x24, 0x0D, // 243:7032 - 0x1B, 0x9C, 0x24, 0x0D, // 244:7068 - 0x1B, 0xC0, 0x24, 0x0D, // 245:7104 - 0x1B, 0xE4, 0x24, 0x0D, // 246:7140 - 0x1C, 0x08, 0x1D, 0x0D, // 247:7176 - 0x1C, 0x25, 0x24, 0x0D, // 248:7205 - 0x1C, 0x49, 0x21, 0x0D, // 249:7241 - 0x1C, 0x6A, 0x21, 0x0D, // 250:7274 - 0x1C, 0x8B, 0x21, 0x0D, // 251:7307 - 0x1C, 0xAC, 0x21, 0x0D, // 252:7340 - 0x1C, 0xCD, 0x26, 0x0D, // 253:7373 - 0x1C, 0xF3, 0x20, 0x0D, // 254:7411 - 0x1D, 0x13, 0x26, 0x0D, // 255:7443 - - // Font Data: - 0x00,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x04,0x00,0x00,0x04,0x00,0xE0,0x05,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xFC,0xE3,0x00,0xFC,0xE7,0x00,0xFE,0x07,0x00,0xFE,0x07,0x00,0xFE,0x07,0x00,0xFE,0x07,0x00,0xFE,0x07,0x07,0xFC,0x03,0x07,0xF8,0x03,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xE0, // 33 - 0xE0,0x01,0x00,0xF0,0x07,0x00,0xF0,0x07,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xFC,0x0F,0x00,0xFE,0x0F,0x00,0xFF,0xDF,0x06,0xFF,0x9F,0x03,0xFF,0xFF,0x0E,0xFF,0x9F,0x03,0xFF,0xDF,0x06,0xFE,0x0F,0x00,0xFC,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xF0,0x07,0x00,0xF0,0x07,0x00,0xE0,0x01, // 34 - 0xE0,0x03,0x00,0xF0,0x87,0x00,0xF8,0xCF,0x00,0xF8,0x6F,0x01,0xF8,0xCF,0x01,0xF8,0x0F,0x00,0xFC,0x0F,0x00,0xFE,0x1F,0x09,0xFE,0x1F,0x0F,0xFF,0x1F,0x0F,0xFF,0xDF,0x1D,0xFF,0x1F,0x0F,0xFE,0x1F,0x0F,0xFE,0x1F,0x09,0xFC,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x03,0xF8,0x8F,0x02,0xF8,0x8F,0x03,0xF0,0x07,0x00,0xE0,0x03, // 35 - 0xE0,0x01,0x00,0xF0,0x03,0x00,0xF8,0x03,0x00,0xF8,0x77,0x00,0xF8,0x77,0x00,0xFC,0x07,0x0E,0xFE,0x07,0x0E,0xFE,0x0F,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0xFF,0xEF,0x00,0xFF,0xEF,0x00,0xFF,0x0F,0x00,0xFE,0x0F,0x00,0xFE,0x07,0x0E,0xFC,0x07,0x0E,0xF8,0x77,0x00,0xF8,0x77,0x00,0xF8,0x03,0x00,0xF0,0x03,0x00,0xE0,0x01, // 36 - 0x00,0x78,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0xFF,0x01,0x00,0xFF,0x01,0xC0,0xFF,0x01,0xE0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF8,0xFF,0x03,0xFC,0xFF,0x03,0xFC,0xFF,0x03,0xFC,0xFF,0x01,0xFC,0xFF,0x01,0xF8,0xFF,0x01,0xF8,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x00,0xE0,0xFF,0x00,0xC0,0x79, // 37 - 0x00,0x0F,0x00,0xC0,0x1F,0x00,0xC0,0x3F,0x00,0xE0,0x3F,0x00,0xE0,0x3F,0x00,0xF8,0x3F,0x00,0xFC,0x3F,0x00,0xFE,0x7F,0x00,0xFE,0x7F,0x09,0xFE,0xFF,0x07,0xFF,0xFF,0x03,0xFF,0xFF,0x02,0xFF,0x7F,0x00,0xFF,0x7F,0x00,0xFF,0x3F,0x00,0xFF,0x3F,0x00,0xFF,0x3F,0x00,0xFE,0x3F,0x00,0xFE,0x3F,0x00,0xFC,0x1F,0x00,0x38,0x0F, // 38 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0xC0,0x07,0xFE,0xFF,0x07,0xFE,0xFF,0x07,0x00,0x80,0x03, // 39 - 0x80,0x1F,0x00,0xE0,0xFF,0x00,0xF0,0xE0,0x01,0x3C,0xC0,0x03,0x1C,0x80,0x07,0x0E,0x00,0x07,0x0E,0x20,0x07,0x07,0x18,0x0E,0x07,0x1E,0x0E,0x07,0x0E,0x0E,0x07,0x0F,0x0E,0x07,0x07,0x0E,0x87,0x01,0x0E,0x8E,0x00,0x07,0x0E,0x00,0x07,0x1C,0x80,0x07,0x3C,0xC0,0x03,0xF0,0xE0,0x01,0xE0,0xFF,0x00,0x80,0x1F, // 40 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x3F,0x00,0x00,0x20,0x00,0x00,0x38,0x00,0x00,0x07,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x1E,0x00,0x00,0x11,0x00,0x00,0x1F,0x00,0x00,0x38,0x00,0x00,0x20, // 41 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x80,0x02,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x40, // 42 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x80,0x03,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x01, // 43 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4E,0x00,0x00,0x6E,0x00,0x00,0x7E,0x00,0x00,0x3C, // 44 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 45 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E, // 46 - 0x00,0x00,0x08,0x00,0x00,0x0C,0x00,0x00,0x07,0x00,0xC0,0x03,0x00,0xF0,0x00,0x00,0x3C,0x00,0x00,0x0F,0x00,0x80,0x03,0x00,0xE0,0x00,0x00,0x78,0x00,0x00,0x18, // 47 - 0x00,0x0F,0x00,0x80,0x10,0x00,0xC0,0x30,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x70,0x20,0x00,0x38,0x20,0x00,0x24,0x00,0x00,0x14,0x40,0x04,0x14,0xC0,0x03,0x12,0xE0,0x01,0x11,0x10,0x00,0x11,0x40,0x00,0x21,0x60,0x00,0x21,0x20,0x00,0x42,0x20,0x00,0x46,0x20,0x00,0x44,0x20,0x00,0xC4,0x30,0x00,0x88,0x11,0x00,0x70,0x0F, // 48 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x10,0x82,0x00,0x30,0x40,0x00,0x80,0x0F,0x00,0xC0,0x1F,0x00,0xC0,0x3F,0x00,0xE0,0x3F,0x00,0xEC,0xBF,0x03,0xE0,0x3F,0x00,0xC0,0x3F,0x00,0xC0,0x1F,0x00,0x80,0x0F,0x00,0x30,0x40,0x00,0x10,0x82,0x00,0x00,0x02,0x00,0x00,0x02, // 49 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x80,0x3F,0x00,0x80,0x7F,0x00,0x00,0x7C,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x30,0x00,0x00,0x10, // 50 - 0x00,0xE1,0x00,0x00,0xF9,0x03,0x04,0xF9,0x03,0x08,0xFC,0x07,0xC0,0xFF,0x07,0x60,0xFC,0x07,0x30,0xFE,0x07,0x10,0xFE,0x07,0x13,0xFF,0x0F,0x10,0xFF,0x0F,0x30,0xFF,0x0F,0xE0,0xFF,0x0F,0xC0,0xFF,0x0F,0x18,0xFE,0x07,0x08,0xFF,0x07,0x00,0xFD,0x07,0x00,0xFD,0x07,0x00,0xFC,0x07,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xE0, // 51 - 0x00,0xE0,0x00,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xFC,0x07,0x00,0xFC,0x07,0x00,0xFC,0x07,0x00,0xFE,0x07,0x00,0xFF,0x07,0x00,0xFF,0x0F,0x80,0xFF,0x0F,0xF8,0xFF,0x0F,0x1C,0xFF,0x0F,0x3E,0xFE,0x0F,0x7E,0xFE,0x07,0xC0,0xFC,0x07,0x80,0xF9,0x07,0x80,0xFD,0x07,0x80,0xFD,0x07,0x80,0xFB,0x03,0x80,0xF8,0x03,0x00,0xF0,0x01, // 52 - 0x00,0x1E,0x00,0x00,0x3F,0x00,0x80,0x7F,0x00,0x80,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xE0,0x7F,0x00,0xE0,0xFF,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xE0,0xFF,0x00,0xE0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80,0x7F,0x00,0x80,0x7F,0x00,0x00,0x3F,0x00,0x00,0x1E, // 53 - 0xE0,0x01,0x00,0xF0,0x03,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xFC,0x07,0x00,0xFE,0x07,0x00,0xFE,0x0F,0x00,0xFF,0x6F,0x02,0xFF,0xFF,0x01,0xFF,0xFF,0x00,0xFF,0x9F,0x00,0xFF,0x0F,0x00,0xFE,0x0F,0x00,0xFE,0x07,0x00,0xFC,0x07,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xF0,0x03,0x00,0xE0,0x01, // 54 - 0xC0,0x03,0x00,0xE0,0x07,0x00,0xE0,0x0F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF8,0x1F,0x00,0xFC,0x1F,0x00,0xFC,0x1F,0x00,0xFE,0x3F,0x00,0xFE,0x3F,0x07,0xFE,0x3F,0x07,0xFE,0x3F,0x00,0xFC,0x1F,0x00,0xFC,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x0F,0x00,0xE0,0x0F,0x00,0xC0,0x03, // 55 - 0xE0,0x01,0x00,0xF0,0x07,0x00,0xF8,0x07,0x00,0xF8,0x0F,0x00,0xF8,0xCF,0x00,0xF8,0xCF,0x00,0xFC,0x0F,0x00,0xFE,0x0F,0x00,0xFE,0x1F,0x00,0xFF,0x1F,0x00,0xFF,0x1F,0x0E,0xFF,0x1F,0x0E,0xFF,0x1F,0x00,0xFE,0x0F,0x00,0xFE,0x0F,0x00,0xFC,0x0F,0x03,0xF8,0x0F,0x03,0xF8,0x0F,0x00,0xF8,0x07,0x00,0xF0,0x07,0x00,0xE0,0x01, // 56 - 0x00,0x50,0x00,0x00,0x54,0x00,0x00,0x54,0x00,0x00,0x54,0x00,0x00,0x44,0x00,0x00,0x40,0x00,0x00,0x5E,0x00,0x00,0x1F,0x00,0x00,0x3F,0x00,0x80,0x3F,0x00,0x80,0x3F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80,0x3F,0x00,0x80,0x3F,0x00,0x00,0x3F,0x00,0x00,0x1F,0x00,0x00,0x1E, // 57 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0E,0x00,0x07,0x0E,0x00,0x07,0x0E, // 58 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x4E,0x00,0x07,0x6E,0x00,0x07,0x7E,0x00,0x00,0x3C, // 59 - 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0x0C,0x06,0x00,0x0C,0x06,0x00,0x06,0x0C, // 60 - 0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01, // 61 - 0x00,0x00,0x00,0x00,0x06,0x0C,0x00,0x0C,0x06,0x00,0x0C,0x06,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0x40,0x00,0x00,0x40, // 62 - 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x30,0xC0,0x0C,0x30,0xF0,0x0C,0x30,0x38,0x00,0x30,0x1C,0x00,0x70,0x0E,0x00,0xE0,0x07,0x00,0xC0,0x01, // 63 - 0x00,0x7F,0x00,0xC0,0xFF,0x01,0xE0,0x80,0x07,0x70,0x7C,0x06,0x38,0xFF,0x0E,0x98,0xC3,0x0C,0x98,0x61,0x0C,0x98,0x7F,0x0C,0xB8,0xFF,0x04,0x30,0xC0,0x00,0xF0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x3F, // 64 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x80,0x00,0x00,0x00,0x24,0x00,0x00,0xA2,0x00,0x00,0xA1,0x00,0x00,0xA1,0x00,0x70,0xA1,0x00,0x00,0xA1,0x00,0x00,0xA1,0x00,0x00,0xA2,0x00,0x00,0x24,0x00,0x80,0x00,0x00,0xC0, // 65 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x30,0x82,0x00,0x20,0x40,0x00,0x00,0x0F,0x00,0x80,0x18,0x00,0xC0,0x30,0x00,0x40,0x20,0x00,0x4C,0xA0,0x03,0x40,0x20,0x00,0xC0,0x30,0x00,0x80,0x18,0x00,0x00,0x0F,0x00,0x20,0xC0,0x00,0x30,0x82,0x00,0x00,0x02,0x00,0x00,0x02, // 66 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0xC0,0x10,0x00,0x40,0x20,0x00,0xE0,0x41,0x00,0x20,0x46,0x00,0x00,0x44,0x00,0x00,0x48,0x00,0x00,0x28,0x00,0x00,0x38,0x00,0x00,0x1C, // 67 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x20,0x80,0x00,0x60,0xC0,0x00,0x00,0x1F,0x00,0x80,0x31,0x00,0xC0,0x7F,0x00,0xD8,0x7F,0x07,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80,0x7F,0x00,0x80,0x3F,0x00,0x00,0x0E, // 68 - 0x00,0x00,0x00,0x80,0x08,0x00,0x80,0x0A,0x00,0x80,0x0A,0x00,0x80,0x0A,0x00,0x80,0x0F,0x00,0xC0,0x1A,0x00,0xE0,0x3A,0x00,0xA0,0x2A,0x00,0x90,0x4A,0x00,0x90,0x4A,0x00,0x90,0x4A,0x00,0x10,0x4A,0x00,0x20,0x2A,0x00,0x20,0x3A,0x00,0xC0,0x1A,0x00,0x80,0x0F,0x00,0x00,0x0A,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02, // 69 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x80,0x39,0x00,0xC0,0x39,0x00,0xC0,0x39,0x00,0xC0,0xF9,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0x68,0x00,0x00,0x0E,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x00,0x06, // 70 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x39,0x00,0x80,0x39,0x00,0x80,0x1F,0x00,0x80,0x1F,0x00,0xF0,0xF9,0x00,0xF0,0xF9,0x00,0x80,0x39,0x00,0x80,0x1F,0x00,0x80,0x3F,0x00,0x80,0x39,0x00,0x80,0x39, // 71 - 0x00,0xF1,0x01,0x00,0x19,0x03,0x04,0x0C,0x06,0x0C,0x04,0x04,0xC0,0x07,0x04,0x60,0x0C,0x04,0x30,0x06,0x06,0x10,0x03,0x04,0x17,0x01,0x08,0x10,0x01,0x08,0x30,0x01,0x08,0x60,0x01,0x08,0xC0,0x01,0x08,0x08,0x02,0x04,0x04,0x03,0x06,0x00,0x05,0x04,0x00,0x05,0x04,0x00,0x04,0x04,0x00,0x0C,0x06,0x00,0x18,0x03,0x00,0xF0, // 72 - 0x00,0xF0,0x00,0x00,0x18,0x03,0x00,0x0C,0x02,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x06,0x06,0x00,0x03,0x04,0x00,0x01,0x0C,0x00,0x01,0x08,0xF0,0x01,0x08,0x08,0x01,0x08,0x3C,0x01,0x0C,0x40,0x03,0x04,0x80,0x06,0x06,0x00,0x05,0x04,0x00,0x05,0x04,0x00,0x07,0x04,0x00,0x0F,0x02,0x80,0x19,0x03,0x00,0xF0, // 73 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x01,0x00,0x49,0x01,0x10,0x49,0x01,0x10,0x48,0x01,0x80,0x49,0x01,0x40,0x48,0x01,0x60,0x48,0x01,0x20,0x48,0x01,0x26,0x48,0x01,0x20,0x48,0x01,0x60,0x48,0x01,0x40,0x48,0x01,0x80,0x49,0x01,0x10,0x48,0x01,0x08,0x49,0x01,0x00,0x49,0x01,0x00,0x49,0x01, // 74 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x01,0x00,0x48,0x01,0x00,0x48,0x01,0x00,0x48,0x01,0xE0,0x4B,0x01,0x30,0x4A,0x01,0x18,0x48,0x01,0x78,0x48,0x01,0x80,0x49,0x01,0x00,0x49,0x01,0x00,0x4A,0x01,0x00,0x4A,0x01,0x00,0x4A,0x01,0x00,0x4A,0x01,0x00,0x48,0x01,0x00,0x48,0x01,0x00,0x48,0x01, // 75 - 0x80,0x4B,0x01,0x40,0x48,0x01,0x60,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x10,0x48,0x01,0x10,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x10,0x48,0x01,0x10,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x60,0x48,0x01,0x40,0x48,0x01,0x80,0x4B,0x01, // 76 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25, // 77 - 0x00,0x1E,0x00,0x00,0x21,0x00,0x80,0x61,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x60,0x60,0x00,0x20,0x40,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x20,0x40,0x00,0x60,0x60,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x61,0x00,0x00,0x21,0x00,0x00,0x1E, // 78 - 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x06,0x04,0x00,0x02,0x0C,0x00,0x01,0x28,0x02,0x01,0xF8,0x01,0x01,0xF8,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x02,0x0C,0x00,0x06,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 79 - 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x06,0x04,0x00,0x02,0x0C,0x00,0x01,0x60,0x02,0x01,0xF0,0x01,0x01,0xF8,0x00,0x01,0x04,0x00,0x01,0x00,0x00,0x02,0x0C,0x00,0x06,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 80 - 0xC0,0x03,0x00,0x20,0x04,0x00,0x10,0x0C,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x18,0x08,0x00,0x0C,0x18,0x00,0x04,0x10,0x00,0x02,0x20,0x00,0x02,0x20,0x07,0x02,0x20,0x07,0x02,0x20,0x00,0x04,0x30,0x00,0x0C,0x18,0x00,0x18,0x18,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x30,0x0C,0x00,0x60,0x06,0x00,0xC0,0x03, // 81 - 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x04,0x00,0x08,0xE4,0x00,0x0C,0xE4,0x00,0x06,0x04,0x00,0x02,0x0C,0x00,0x01,0x08,0x00,0x01,0x08,0x0E,0x01,0x08,0x0E,0x01,0x08,0x00,0x02,0x0C,0x00,0x06,0x04,0x00,0x0C,0x04,0x03,0x08,0x04,0x03,0x08,0x04,0x00,0x08,0x04,0x00,0x10,0x02,0x00,0x30,0x03,0x00,0xE0,0x01, // 82 - 0x00,0x48,0x00,0x00,0x4A,0x00,0x00,0x4A,0x00,0x00,0x4A,0x00,0x00,0x42,0x00,0x00,0x40,0x00,0x00,0x4E,0x00,0x00,0x11,0x00,0x80,0x20,0x00,0x80,0x20,0x00,0xC0,0x20,0x00,0x60,0x60,0x00,0x20,0x40,0x00,0x20,0x40,0x00,0x20,0x40,0x00,0x60,0x60,0x00,0xC0,0x20,0x00,0x80,0x20,0x00,0x80,0x20,0x00,0x00,0x11,0x00,0x00,0x0E, // 83 - 0x00,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x04,0x00,0x00,0x04,0x00,0xE0,0x04,0x00,0x10,0x01,0x00,0x08,0x02,0x00,0x08,0xE2,0x00,0x04,0xE2,0x00,0x02,0x04,0x00,0x02,0x04,0x00,0x02,0x04,0x00,0x06,0x04,0x07,0x0C,0x02,0x07,0x08,0x02,0x00,0x08,0x02,0x00,0x10,0x02,0x00,0x10,0x01,0x00,0xE0, // 84 - 0xE0,0x01,0x00,0x10,0x02,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x0C,0x04,0x00,0x06,0x04,0x00,0x02,0xCC,0x06,0x01,0x88,0x03,0x01,0x88,0x02,0x01,0xE8,0x0E,0x01,0x88,0x03,0x02,0xCC,0x06,0x02,0x04,0x00,0x04,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 85 - 0xE0,0x01,0x00,0x10,0x02,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x0C,0x04,0x00,0x06,0x00,0x00,0x02,0x68,0x00,0x01,0x38,0x00,0x01,0x28,0x00,0x01,0xEE,0x00,0x01,0x38,0x00,0x02,0x68,0x00,0x02,0x00,0x00,0x0C,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 86 - 0xE0,0x03,0x00,0x30,0x86,0x00,0x18,0xCC,0x00,0x08,0x68,0x01,0x08,0xC8,0x01,0x08,0x08,0x00,0x0C,0x0C,0x00,0x06,0x18,0x09,0x02,0x10,0x0F,0x03,0x10,0x0F,0x03,0xD0,0x1D,0x03,0x10,0x0F,0x02,0x10,0x0F,0x06,0x18,0x09,0x0C,0x0C,0x00,0x08,0x08,0x00,0x08,0x08,0x03,0x08,0x88,0x02,0x18,0x8C,0x03,0x30,0x06,0x00,0xE0,0x03, // 87 - 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x74,0x00,0x08,0x74,0x00,0x0C,0x04,0x0E,0x02,0x04,0x0E,0x02,0x0C,0x00,0x01,0x08,0x00,0x01,0xE8,0x00,0x01,0xE8,0x00,0x01,0x08,0x00,0x02,0x0C,0x00,0x02,0x04,0x0E,0x0C,0x04,0x0E,0x08,0x04,0x00,0x08,0x74,0x00,0x08,0x74,0x00,0x10,0x02,0x00,0x30,0x03,0x00,0xE0,0x01, // 88 - 0x00,0xF0,0x00,0x00,0x18,0x03,0x00,0x0C,0x06,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x0F,0x04,0x80,0x03,0x06,0x40,0x02,0x04,0x40,0x01,0x08,0x40,0x01,0x08,0x20,0x01,0x08,0x30,0x01,0x08,0x10,0x01,0x08,0x10,0x02,0x04,0x10,0x02,0x06,0x20,0x04,0x04,0x60,0x04,0x04,0x40,0x04,0x04,0x40,0x0C,0x06,0x80,0x18,0x03,0x00,0xF7, // 89 - 0x00,0x0F,0x00,0x80,0x10,0x00,0xC0,0x30,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x70,0x20,0x00,0x38,0x20,0x00,0x24,0x60,0x00,0x14,0xC0,0x09,0x14,0xC0,0x07,0x12,0xC0,0x03,0x11,0x40,0x00,0x11,0x40,0x00,0x21,0x60,0x00,0x21,0x20,0x00,0x42,0x20,0x00,0x46,0x20,0x00,0x44,0x20,0x00,0xC4,0x30,0x00,0x88,0x11,0x00,0x70,0x0F, // 90 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x7F,0xF8,0xFF,0x7F,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40, // 91 - 0x18,0x00,0x00,0x38,0x00,0x00,0xE0,0x00,0x00,0xC0,0x01,0x00,0x00,0x07,0x00,0x00,0x0E,0x00,0x00,0x38,0x00,0x00,0x70,0x00,0x00,0xC0,0x01,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x00,0x0C, // 92 - 0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0xF8,0xFF,0x7F,0xF8,0xFF,0x7F, // 93 - 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x70,0x00,0x00,0x3C,0x00,0x00,0x0F,0x00,0xC0,0x03,0x00,0xF0,0x00,0x00,0xC0,0x03,0x00,0x00,0x0F,0x00,0x00,0x3C,0x00,0x00,0x70,0x00,0x00,0x40, // 94 - 0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 95 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x60,0x00,0x00,0x40, // 96 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x00,0x07,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 97 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x0C,0x0C,0x00,0x06,0x0C,0x00,0x02,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x07,0x07,0x00,0xFE,0x03,0x00,0xFC, // 98 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0xFC,0x03,0x00,0x0E,0x07,0x00,0x06,0x06,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x06,0x06, // 99 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x0E,0x0E,0x00,0x06,0x0C,0x00,0x03,0x0C,0x00,0x03,0x04,0x00,0x03,0x06,0x00,0x03,0x03,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F, // 100 - 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x00,0x36,0x06,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 101 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xE0,0xFF,0x0F,0xF0,0xFF,0x0F,0x38,0x06,0x00,0x18,0x06,0x00,0x18,0x06,0x00,0x18,0x06,0x00,0x18,0x06,0x00,0x18, // 102 - 0x00,0x00,0x00,0x00,0xF0,0x63,0x00,0xFC,0x47,0x00,0x0E,0x4E,0x00,0x06,0x4C,0x00,0x03,0x4C,0x00,0x03,0x44,0x00,0x03,0x46,0x00,0x03,0x63,0x00,0xFF,0x7F,0x00,0xFF,0x3F, // 103 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x07,0x00,0x00,0xFE,0x0F,0x00,0xFC,0x0F, // 104 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x18,0xFF,0x0F,0x18,0xFF,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 105 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x03,0x40,0x00,0x03,0x40,0x00,0x03,0x40,0x00,0x03,0x60,0x18,0xFF,0x7F,0x18,0xFF,0x1F, // 106 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x60,0x00,0x00,0xF0,0x00,0x00,0xD8,0x01,0x00,0x8C,0x03,0x00,0x06,0x07,0x00,0x03,0x0E,0x00,0x01,0x0C,0x00,0x00,0x08, // 107 - 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 108 - 0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0xFF,0x0F,0x00,0xFE,0x0F,0x00,0x0C,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0xFF,0x0F,0x00,0xFE,0x0F, // 109 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x07,0x00,0x00,0xFE,0x0F,0x00,0xFC,0x0F, // 110 - 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 111 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0xFF,0x7F,0x00,0x0C,0x0C,0x00,0x06,0x0C,0x00,0x02,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x07,0x07,0x00,0xFE,0x03,0x00,0xFC, // 112 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x0E,0x0E,0x00,0x06,0x0C,0x00,0x03,0x0C,0x00,0x03,0x04,0x00,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x7F,0x00,0xFF,0x7F, // 113 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0F,0x00,0x00,0x0F, // 114 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x07,0x00,0x3E,0x06,0x00,0x37,0x0C,0x00,0x63,0x0C,0x00,0x63,0x0C,0x00,0x63,0x0C,0x00,0xC3,0x0E,0x00,0xC6,0x07,0x00,0x80,0x03, // 115 - 0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x07,0x00,0x06,0x0E,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x06, // 116 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x00,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 117 - 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0xE0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0E,0x00,0x80,0x0F,0x00,0xE0,0x03,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x03, // 118 - 0x00,0x07,0x00,0x00,0xFF,0x01,0x00,0xF8,0x0F,0x00,0x00,0x0E,0x00,0xF8,0x03,0x00,0x1F,0x00,0x00,0x3F,0x00,0x00,0xF8,0x03,0x00,0x00,0x0E,0x00,0xF0,0x0F,0x00,0xFF,0x01,0x00,0x07, // 119 - 0x00,0x00,0x08,0x00,0x01,0x0C,0x00,0x03,0x07,0x00,0x8E,0x03,0x00,0xDC,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x00,0xD8,0x00,0x00,0x8E,0x03,0x00,0x07,0x07,0x00,0x01,0x0C,0x00,0x00,0x08, // 120 - 0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x0F,0x40,0x00,0x3C,0x40,0x00,0xF0,0x60,0x00,0xC0,0x73,0x00,0x00,0x3F,0x00,0x00,0x0F,0x00,0xE0,0x03,0x00,0xF8,0x00,0x00,0x1E,0x00,0x00,0x07,0x00,0x00,0x01, // 121 - 0x00,0x00,0x00,0x00,0x03,0x0C,0x00,0x03,0x0E,0x00,0x03,0x0F,0x00,0x83,0x0D,0x00,0xC3,0x0C,0x00,0x63,0x0C,0x00,0x33,0x0C,0x00,0x1B,0x0C,0x00,0x0F,0x0C,0x00,0x07,0x0C, // 122 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0xE0,0xF0,0x78,0xF0,0x9F,0x7F,0x38,0x0F,0x6F,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40, // 123 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F, // 124 - 0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x38,0x0F,0x6F,0xF0,0x9F,0x7F,0xE0,0xF0,0x78,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 125 - 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xF0,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x60,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0x70,0x00,0x00,0x30, // 126 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x7F,0x00,0xF3,0x7F, // 161 - 0x00,0x00,0x00,0x00,0x1E,0x00,0x80,0x7F,0x00,0xC0,0xE1,0x00,0xE0,0xC0,0x01,0x60,0x80,0x01,0xFE,0xFF,0x1F,0xFE,0xFF,0x1F,0x60,0x80,0x01,0x60,0x80,0x01,0xC0,0xC0, // 162 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x0C,0x0E,0xE0,0xFF,0x0F,0xF0,0xFF,0x0D,0x38,0x0C,0x0C,0x18,0x0C,0x0C,0x18,0x0C,0x0C,0x18,0x0C,0x0C,0x30,0x00,0x0C,0x00,0x00,0x0C, // 163 - 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3D,0x03,0x80,0xFF,0x01,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x00,0xC3,0x00,0x80,0xFF,0x01,0xC0,0x3D,0x03, // 164 - 0x30,0x00,0x00,0x70,0x98,0x01,0xC0,0x99,0x01,0x80,0x9B,0x01,0x00,0xFE,0x0F,0x00,0xFE,0x0F,0x80,0x9B,0x01,0xC0,0x99,0x01,0x70,0x98,0x01,0x30, // 165 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF3,0x07,0xF8,0xF3,0x07, // 166 - 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x39,0x60,0xF0,0x7F,0x40,0x30,0xE3,0x40,0x18,0xC3,0x41,0x18,0x86,0x41,0x18,0x8C,0x43,0x18,0x0C,0x43,0x18,0x18,0x67,0x30,0xF0,0x7F,0x00,0xE0,0x3C, // 167 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60, // 168 - 0x00,0x7F,0x00,0xC0,0x80,0x01,0x20,0x3E,0x02,0x90,0xFF,0x04,0x88,0xC1,0x08,0xC8,0x80,0x09,0xC8,0x80,0x09,0xC8,0x80,0x09,0xC8,0x80,0x09,0x10,0x00,0x04,0x20,0x00,0x02,0xC0,0x80,0x01,0x00,0x7F, // 169 - 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0xF0,0x03,0x00,0x30,0x03,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0x18,0x01,0x00,0x98,0x01,0x00,0xF8,0x03,0x00,0xF8,0x03, // 170 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0xF8,0x00,0x00,0xDE,0x03,0x00,0x8F,0x07,0x00,0x02,0x02,0x00,0x70,0x00,0x00,0xF8,0x00,0x00,0xDE,0x03,0x00,0x8F,0x07,0x00,0x02,0x02, // 171 - 0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0xE0,0x03,0x00,0xE0,0x03, // 172 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 173 - 0x00,0x7F,0x00,0xC0,0x80,0x01,0x20,0x00,0x02,0xD0,0xFF,0x05,0xC8,0xFF,0x09,0x48,0x10,0x08,0x48,0x10,0x08,0x48,0x10,0x08,0xC8,0xF8,0x08,0x90,0xEF,0x05,0xA0,0x87,0x03,0xC0,0x80,0x01,0x00,0x7F, // 174 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 175 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x98,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x98,0x01,0x00,0xF0, // 176 - 0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0xF0,0xFF,0x0C,0xF0,0xFF,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C, // 177 - 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x18,0x00,0x10,0x1C,0x00,0x10,0x16,0x00,0x10,0x13,0x00,0x10,0x13,0x00,0x90,0x11,0x00,0xF0,0x10,0x00,0x60,0x10, // 178 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x10,0x11,0x00,0x10,0x11,0x00,0xF0,0x1E,0x00,0x60,0x0E, // 179 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x10, // 180 - 0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0xFF,0x7F,0x00,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x80,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 181 - 0x00,0x00,0x00,0x80,0x03,0x00,0xE0,0x0F,0x00,0xE0,0x0F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0xFF,0x7F,0xF0,0xFF,0x7F,0x30,0x00,0x00,0x30,0x00,0x00,0xF0,0xFF,0x7F,0xF0,0xFF,0x7F,0x30, // 182 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0xE0, // 183 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x70,0x00,0x00,0x40, // 184 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x10,0x00,0x60,0x10,0x00,0x30,0x10,0x00,0xF0,0x1F,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10, // 185 - 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0xF0,0x01,0x00,0xB8,0x03,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0xB8,0x03,0x00,0xF0,0x01,0x00,0xE0, // 186 - 0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x8F,0x07,0x00,0xDE,0x03,0x00,0xF8,0x00,0x00,0x70,0x00,0x00,0x02,0x02,0x00,0x8F,0x07,0x00,0xDE,0x03,0x00,0xF8,0x00,0x00,0x70, // 187 - 0x60,0x08,0x08,0x30,0x08,0x0C,0xF0,0x0F,0x07,0xF0,0x8F,0x03,0x00,0xE8,0x00,0x00,0x70,0x03,0x00,0x9C,0x03,0x00,0xCE,0x02,0x00,0x67,0x02,0xC0,0xF1,0x0F,0xE0,0xF0,0x0F,0x30,0x00,0x02,0x10,0x00,0x02, // 188 - 0x60,0x08,0x08,0x30,0x08,0x0C,0xF0,0x0F,0x07,0xF0,0xCF,0x03,0x00,0xE8,0x00,0x00,0x38,0x00,0x00,0x1C,0x0C,0x00,0x17,0x0E,0xC0,0x13,0x0B,0xE0,0x90,0x09,0x30,0xF0,0x09,0x10,0xE0,0x08, // 189 - 0x00,0x00,0x08,0x90,0x08,0x0C,0x90,0x08,0x07,0x90,0x88,0x03,0xF0,0xEF,0x00,0x60,0x77,0x03,0x00,0x9C,0x03,0x00,0xCE,0x02,0x00,0x67,0x02,0xC0,0xF1,0x0F,0xE0,0xF0,0x0F,0x30,0x00,0x02,0x10,0x00,0x02, // 190 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x7E,0x00,0x00,0x67,0x00,0x80,0x43,0x00,0xC0,0x41,0x00,0xF3,0x40,0x00,0x33,0x40,0x00,0x00,0x40,0x00,0x00,0x60, // 191 - 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x00,0xF0,0x03,0x00,0xFE,0x01,0xC1,0x8F,0x01,0xF1,0x81,0x01,0xF2,0x81,0x01,0xC4,0x8F,0x01,0x00,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 192 - 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x04,0xF0,0x03,0x06,0xFE,0x01,0xC3,0x8F,0x01,0xF1,0x81,0x01,0xF0,0x81,0x01,0xC0,0x8F,0x01,0x00,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 193 - 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x00,0xF0,0x03,0x03,0xFE,0x01,0xC1,0x8F,0x01,0xF0,0x81,0x01,0xF1,0x81,0x01,0xC3,0x8F,0x01,0x00,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 194 - 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x06,0xF0,0x03,0x02,0xFE,0x01,0xC2,0x8F,0x01,0xF2,0x81,0x01,0xF2,0x81,0x01,0xC6,0x8F,0x01,0x02,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 195 - 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x02,0xF0,0x03,0x02,0xFE,0x01,0xC0,0x8F,0x01,0xF0,0x81,0x01,0xF0,0x81,0x01,0xC2,0x8F,0x01,0x02,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 196 - 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xC0,0x0F,0x00,0xF8,0x01,0x00,0xBF,0x01,0xFC,0x87,0x01,0xF2,0x80,0x01,0xEC,0x87,0x01,0x00,0xBF,0x01,0x00,0xF8,0x01,0x00,0xC0,0x0F,0x00,0x00,0x0E, // 197 - 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xE0,0x0F,0x00,0xFC,0x01,0x80,0xDF,0x00,0xF0,0xC3,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C, // 198 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x80,0xFF,0x03,0xC0,0x81,0x07,0xE0,0x00,0x07,0x70,0x00,0x2E,0x30,0x00,0x3C,0x30,0x00,0x6C,0x30,0x00,0x4C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 199 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x18,0x0C,0x31,0x18,0x0C,0x31,0x18,0x0C,0x32,0x18,0x0C,0x34,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C, // 200 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x34,0x18,0x0C,0x32,0x18,0x0C,0x31,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C, // 201 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x33,0x18,0x0C,0x31,0x18,0x0C,0x30,0x18,0x0C,0x31,0x18,0x0C,0x33,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C, // 202 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF2,0xFF,0x0F,0x32,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x32,0x18,0x0C,0x32,0x18,0x0C,0x30,0x00,0x0C, // 203 - 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x31,0x00,0x0C,0xF1,0xFF,0x0F,0xF2,0xFF,0x0F,0x34,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 204 - 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x34,0x00,0x0C,0x36,0x00,0x0C,0x33,0x00,0x0C,0xF1,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 205 - 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x30,0x00,0x0C,0x33,0x00,0x0C,0x31,0x00,0x0C,0xF0,0xFF,0x0F,0xF1,0xFF,0x0F,0x33,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 206 - 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x32,0x00,0x0C,0x32,0x00,0x0C,0x30,0x00,0x0C,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x32,0x00,0x0C,0x32,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 207 - 0x00,0x18,0x00,0x00,0x18,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x80,0x07,0xC0,0xFF,0x03,0x00,0x7F, // 208 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF6,0xFF,0x0F,0xE2,0x01,0x00,0x82,0x07,0x00,0x02,0x1E,0x00,0x02,0x78,0x00,0x06,0xE0,0x01,0x02,0x80,0x07,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F, // 209 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC0,0xFF,0x03,0xE0,0x00,0x07,0x71,0x00,0x0E,0x31,0x00,0x0C,0x32,0x00,0x0C,0x34,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 210 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC4,0xFF,0x03,0xE6,0x00,0x07,0x73,0x00,0x0E,0x31,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 211 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC0,0xFF,0x03,0xE3,0x00,0x07,0x71,0x00,0x0E,0x30,0x00,0x0C,0x31,0x00,0x0C,0x33,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 212 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC6,0xFF,0x03,0xE2,0x00,0x07,0x72,0x00,0x0E,0x32,0x00,0x0C,0x34,0x00,0x0C,0x36,0x00,0x0C,0x72,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 213 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC2,0xFF,0x03,0xE2,0x00,0x07,0x70,0x00,0x0E,0x30,0x00,0x0C,0x30,0x00,0x0C,0x32,0x00,0x0C,0x72,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 214 - 0x00,0x00,0x00,0x00,0x06,0x0C,0x00,0x0C,0x06,0x00,0x18,0x03,0x00,0xB0,0x01,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0xB0,0x01,0x00,0x18,0x03,0x00,0x0C,0x06,0x00,0x06,0x0C, // 215 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x08,0xC0,0xFF,0x0F,0xE0,0x00,0x07,0x70,0xC0,0x0F,0x30,0xF0,0x0C,0x30,0x3C,0x0C,0x30,0x0F,0x0C,0xF0,0x03,0x0E,0xE0,0x80,0x07,0xF0,0xFF,0x03,0x10,0xFF, // 216 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x07,0x00,0x00,0x0E,0x01,0x00,0x0C,0x01,0x00,0x0C,0x02,0x00,0x0C,0x04,0x00,0x0C,0x00,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 217 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF4,0xFF,0x07,0x06,0x00,0x0E,0x03,0x00,0x0C,0x01,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 218 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x07,0x03,0x00,0x0E,0x01,0x00,0x0C,0x00,0x00,0x0C,0x01,0x00,0x0C,0x03,0x00,0x0C,0x00,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 219 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF2,0xFF,0x07,0x02,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x02,0x00,0x0C,0x02,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 220 - 0x00,0x00,0x00,0x30,0x00,0x00,0xF0,0x00,0x00,0xC4,0x03,0x00,0x06,0x0F,0x00,0x03,0xFC,0x0F,0x01,0xFC,0x0F,0x00,0x0F,0x00,0xC0,0x03,0x00,0xF0,0x00,0x00,0x30, // 221 - 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0xC0,0x80,0x01,0xC0,0x80,0x01,0xC0,0x80,0x01,0xC0,0x80,0x01,0xC0,0xC0,0x00,0x80,0xE1,0x00,0x80,0x7F,0x00,0x00,0x1E, // 222 - 0x00,0x00,0x00,0xC0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x00,0x00,0x18,0x0C,0x0C,0x18,0x1E,0x0C,0x18,0x1B,0x0C,0x98,0x31,0x0C,0xF8,0x60,0x0C,0x70,0x60,0x0E,0x00,0xC0,0x07,0x00,0x80,0x03, // 223 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x10,0x07,0x0C,0x30,0x03,0x0C,0x20,0x03,0x06,0x40,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 224 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x40,0x07,0x0C,0x60,0x03,0x0C,0x30,0x03,0x06,0x10,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 225 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x20,0x07,0x0C,0x30,0x03,0x0C,0x18,0x03,0x06,0x30,0x03,0x06,0x20,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 226 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x60,0x06,0x0C,0x20,0x07,0x0C,0x20,0x03,0x0C,0x40,0x03,0x06,0x40,0x03,0x06,0x60,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 227 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x60,0x06,0x0C,0x00,0x07,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x03,0x06,0x60,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 228 - 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x78,0x07,0x0C,0x48,0x03,0x0C,0x78,0x03,0x06,0x00,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 229 - 0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x0E,0x0E,0x00,0x07,0x0C,0x00,0x03,0x0E,0x00,0x03,0x07,0x00,0xFE,0x03,0x00,0xFE,0x07,0x00,0x33,0x0E,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x3E,0x0C,0x00,0x3C,0x04, // 230 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0xFC,0x03,0x00,0x0E,0x07,0x00,0x06,0x0E,0x00,0x03,0x2C,0x00,0x03,0x3C,0x00,0x03,0x6C,0x00,0x03,0x4C,0x00,0x03,0x0C,0x00,0x06,0x06, // 231 - 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x00,0x36,0x06,0x10,0x33,0x0C,0x10,0x33,0x0C,0x20,0x33,0x0C,0x40,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 232 - 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x00,0x36,0x06,0x40,0x33,0x0C,0x20,0x33,0x0C,0x30,0x33,0x0C,0x10,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 233 - 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x20,0x36,0x06,0x30,0x33,0x0C,0x18,0x33,0x0C,0x18,0x33,0x0C,0x30,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 234 - 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x60,0x36,0x06,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x60,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 235 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x10,0xFF,0x0F,0x20,0xFF,0x0F,0x40,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 236 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x40,0x03,0x00,0x60,0x03,0x00,0x30,0xFF,0x0F,0x10,0xFF,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 237 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x20,0x03,0x00,0x30,0x03,0x00,0x18,0xFF,0x0F,0x18,0xFF,0x0F,0x30,0x00,0x0C,0x20,0x00,0x0C,0x00,0x00,0x0C, // 238 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x03,0x00,0x00,0x03,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x00,0x0C,0x60,0x00,0x0C,0x00,0x00,0x0C, // 239 - 0x00,0x00,0x00,0x00,0xF0,0x01,0x18,0xF8,0x03,0x58,0x1C,0x07,0xF8,0x0E,0x0E,0x78,0x06,0x0C,0x38,0x06,0x0C,0x7C,0x06,0x0C,0xEE,0x0C,0x0E,0xC4,0x1F,0x07,0x00,0xFF,0x03,0x00,0xFC, // 240 - 0x00,0x00,0x00,0x00,0xFF,0x0F,0x40,0xFF,0x0F,0x60,0x0C,0x00,0x20,0x06,0x00,0x60,0x03,0x00,0x40,0x03,0x00,0x40,0x03,0x00,0x60,0xFE,0x0F,0x00,0xFC,0x0F, // 241 - 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x00,0x03,0x0C,0x10,0x03,0x0C,0x30,0x03,0x0C,0x60,0x03,0x0C,0x40,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 242 - 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x40,0x03,0x0C,0x20,0x03,0x0C,0x30,0x03,0x0C,0x10,0x03,0x0C,0x00,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 243 - 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x20,0x03,0x0C,0x30,0x03,0x0C,0x08,0x03,0x0C,0x30,0x03,0x0C,0x20,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 244 - 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x40,0x06,0x06,0x20,0x03,0x0C,0x20,0x03,0x0C,0x60,0x03,0x0C,0x40,0x03,0x0C,0x40,0x03,0x0C,0x20,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 245 - 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x60,0x06,0x06,0x60,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x60,0x03,0x0C,0x60,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 246 - 0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xCC,0x0C,0x00,0xCC,0x0C,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0, // 247 - 0x00,0x00,0x00,0x00,0xF8,0x09,0x00,0xFC,0x0F,0x00,0x0E,0x07,0x00,0x87,0x0F,0x00,0xC3,0x0D,0x00,0x63,0x0C,0x00,0x3B,0x0C,0x00,0x1F,0x0C,0x00,0x06,0x07,0x00,0xFF,0x03,0x00,0xF9,0x01, // 248 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x00,0x00,0x0E,0x10,0x00,0x0C,0x30,0x00,0x0C,0x60,0x00,0x06,0x40,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 249 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x40,0x00,0x0E,0x60,0x00,0x0C,0x30,0x00,0x0C,0x10,0x00,0x06,0x00,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 250 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x20,0x00,0x0E,0x30,0x00,0x0C,0x08,0x00,0x0C,0x30,0x00,0x06,0x20,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 251 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x60,0xFF,0x07,0x60,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0x60,0x00,0x03,0x60,0xFF,0x0F,0x00,0xFF,0x0F, // 252 - 0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x0F,0x40,0x00,0x3C,0x40,0x00,0xF0,0x60,0x40,0xC0,0x63,0x20,0x00,0x3F,0x30,0x00,0x1F,0x10,0xC0,0x07,0x00,0xF8,0x00,0x00,0x3E,0x00,0x00,0x07,0x00,0x00,0x01, // 253 - 0x00,0x00,0x00,0xF0,0xFF,0x7F,0xF0,0xFF,0x7F,0x00,0x0C,0x0C,0x00,0x06,0x0C,0x00,0x02,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0E,0x00,0x07,0x07,0x00,0xFE,0x03,0x00,0xFC, // 254 - 0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x0F,0x40,0x00,0x3C,0x40,0x60,0xF0,0x60,0x00,0xC0,0x63,0x00,0x00,0x3F,0x00,0x00,0x1F,0x00,0xC0,0x07,0x60,0xF8,0x00,0x00,0x3E,0x00,0x00,0x07,0x00,0x00,0x01 // 255 -}; - -const char Meteocons_Plain_10[] PROGMEM = { - 0x0A, // Width: 10 - 0x0B, // Height: 11 - 0x20, // First Char: 32 - 0xE0, // Numbers of Chars: 224 - - // Jump Table: - 0xFF, 0xFF, 0x00, 0x05, // 32:65535 - 0x00, 0x00, 0x13, 0x0A, // 33:0 - 0x00, 0x13, 0x13, 0x0A, // 34:19 - 0x00, 0x26, 0x13, 0x0A, // 35:38 - 0x00, 0x39, 0x13, 0x0A, // 36:57 - 0x00, 0x4C, 0x13, 0x0A, // 37:76 - 0x00, 0x5F, 0x13, 0x0A, // 38:95 - 0x00, 0x72, 0x0C, 0x0A, // 39:114 - 0x00, 0x7E, 0x13, 0x0A, // 40:126 - 0x00, 0x91, 0x11, 0x0A, // 41:145 - 0x00, 0xA2, 0x0F, 0x0A, // 42:162 - 0x00, 0xB1, 0x0D, 0x0A, // 43:177 - 0x00, 0xBE, 0x08, 0x06, // 44:190 - 0x00, 0xC6, 0x09, 0x06, // 45:198 - 0x00, 0xCF, 0x08, 0x06, // 46:207 - 0x00, 0xD7, 0x09, 0x06, // 47:215 - 0x00, 0xE0, 0x13, 0x0A, // 48:224 - 0x00, 0xF3, 0x11, 0x0A, // 49:243 - 0x01, 0x04, 0x0D, 0x0A, // 50:260 - 0x01, 0x11, 0x14, 0x0A, // 51:273 - 0x01, 0x25, 0x13, 0x0A, // 52:293 - 0x01, 0x38, 0x13, 0x0A, // 53:312 - 0x01, 0x4B, 0x13, 0x0A, // 54:331 - 0x01, 0x5E, 0x13, 0x0A, // 55:350 - 0x01, 0x71, 0x13, 0x0A, // 56:369 - 0x01, 0x84, 0x13, 0x0A, // 57:388 - 0x01, 0x97, 0x08, 0x06, // 58:407 - 0x01, 0x9F, 0x08, 0x06, // 59:415 - 0x01, 0xA7, 0x0C, 0x06, // 60:423 - 0x01, 0xB3, 0x0A, 0x06, // 61:435 - 0x01, 0xBD, 0x0B, 0x06, // 62:445 - 0x01, 0xC8, 0x09, 0x06, // 63:456 - 0x01, 0xD1, 0x0A, 0x06, // 64:465 - 0x01, 0xDB, 0x0F, 0x0A, // 65:475 - 0x01, 0xEA, 0x11, 0x0A, // 66:490 - 0x01, 0xFB, 0x0F, 0x0A, // 67:507 - 0x02, 0x0A, 0x0F, 0x0A, // 68:522 - 0x02, 0x19, 0x11, 0x0A, // 69:537 - 0x02, 0x2A, 0x0F, 0x0A, // 70:554 - 0x02, 0x39, 0x0F, 0x0A, // 71:569 - 0x02, 0x48, 0x13, 0x0A, // 72:584 - 0x02, 0x5B, 0x13, 0x0A, // 73:603 - 0x02, 0x6E, 0x11, 0x0A, // 74:622 - 0x02, 0x7F, 0x11, 0x0A, // 75:639 - 0x02, 0x90, 0x13, 0x0A, // 76:656 - 0x02, 0xA3, 0x0F, 0x0A, // 77:675 - 0x02, 0xB2, 0x13, 0x0A, // 78:690 - 0x02, 0xC5, 0x13, 0x0A, // 79:709 - 0x02, 0xD8, 0x13, 0x0A, // 80:728 - 0x02, 0xEB, 0x13, 0x0A, // 81:747 - 0x02, 0xFE, 0x13, 0x0A, // 82:766 - 0x03, 0x11, 0x13, 0x0A, // 83:785 - 0x03, 0x24, 0x13, 0x0A, // 84:804 - 0x03, 0x37, 0x13, 0x0A, // 85:823 - 0x03, 0x4A, 0x13, 0x0A, // 86:842 - 0x03, 0x5D, 0x13, 0x0A, // 87:861 - 0x03, 0x70, 0x13, 0x0A, // 88:880 - 0x03, 0x83, 0x13, 0x0A, // 89:899 - 0x03, 0x96, 0x13, 0x0A, // 90:918 - 0x03, 0xA9, 0x09, 0x06, // 91:937 - 0x03, 0xB2, 0x0A, 0x06, // 92:946 - 0x03, 0xBC, 0x08, 0x06, // 93:956 - 0x03, 0xC4, 0x09, 0x06, // 94:964 - 0x03, 0xCD, 0x0A, 0x06, // 95:973 - 0x03, 0xD7, 0x07, 0x06, // 96:983 - 0x03, 0xDE, 0x0A, 0x06, // 97:990 - 0x03, 0xE8, 0x0A, 0x06, // 98:1000 - 0x03, 0xF2, 0x0A, 0x06, // 99:1010 - 0x03, 0xFC, 0x0A, 0x06, // 100:1020 - 0x04, 0x06, 0x0A, 0x06, // 101:1030 - 0x04, 0x10, 0x07, 0x06, // 102:1040 - 0x04, 0x17, 0x0A, 0x06, // 103:1047 - 0x04, 0x21, 0x0A, 0x06, // 104:1057 - 0x04, 0x2B, 0x08, 0x06, // 105:1067 - 0x04, 0x33, 0x08, 0x06, // 106:1075 - 0x04, 0x3B, 0x0A, 0x06, // 107:1083 - 0x04, 0x45, 0x08, 0x06, // 108:1093 - 0x04, 0x4D, 0x0A, 0x06, // 109:1101 - 0x04, 0x57, 0x0A, 0x06, // 110:1111 - 0x04, 0x61, 0x0A, 0x06, // 111:1121 - 0x04, 0x6B, 0x0A, 0x06, // 112:1131 - 0x04, 0x75, 0x0A, 0x06, // 113:1141 - 0x04, 0x7F, 0x09, 0x06, // 114:1151 - 0x04, 0x88, 0x0A, 0x06, // 115:1160 - 0x04, 0x92, 0x0A, 0x06, // 116:1170 - 0x04, 0x9C, 0x0A, 0x06, // 117:1180 - 0x04, 0xA6, 0x09, 0x06, // 118:1190 - 0x04, 0xAF, 0x09, 0x06, // 119:1199 - 0x04, 0xB8, 0x0A, 0x06, // 120:1208 - 0x04, 0xC2, 0x09, 0x06, // 121:1218 - 0x04, 0xCB, 0x0A, 0x06, // 122:1227 - 0x04, 0xD5, 0x09, 0x06, // 123:1237 - 0x04, 0xDE, 0x06, 0x06, // 124:1246 - 0x04, 0xE4, 0x09, 0x06, // 125:1252 - 0x04, 0xED, 0x0B, 0x06, // 126:1261 - 0xFF, 0xFF, 0x00, 0x00, // 127:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 128:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 129:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 130:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 131:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 132:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 133:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 134:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 135:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 136:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 137:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 138:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 139:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 140:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 141:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 142:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 143:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 144:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 145:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 146:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 147:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 148:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 149:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 150:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 151:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 152:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 153:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 154:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 155:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 156:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 157:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 158:65535 - 0xFF, 0xFF, 0x00, 0x0A, // 159:65535 - 0xFF, 0xFF, 0x00, 0x05, // 160:65535 - 0x04, 0xF8, 0x08, 0x06, // 161:1272 - 0x05, 0x00, 0x09, 0x06, // 162:1280 - 0x05, 0x09, 0x0A, 0x06, // 163:1289 - 0x05, 0x13, 0x0A, 0x06, // 164:1299 - 0x05, 0x1D, 0x0A, 0x06, // 165:1309 - 0x05, 0x27, 0x06, 0x06, // 166:1319 - 0x05, 0x2D, 0x0A, 0x06, // 167:1325 - 0x05, 0x37, 0x07, 0x06, // 168:1335 - 0x05, 0x3E, 0x0B, 0x06, // 169:1342 - 0x05, 0x49, 0x07, 0x06, // 170:1353 - 0x05, 0x50, 0x0A, 0x06, // 171:1360 - 0x05, 0x5A, 0x0A, 0x06, // 172:1370 - 0x05, 0x64, 0x09, 0x06, // 173:1380 - 0x05, 0x6D, 0x0B, 0x06, // 174:1389 - 0x05, 0x78, 0x07, 0x06, // 175:1400 - 0x05, 0x7F, 0x07, 0x06, // 176:1407 - 0x05, 0x86, 0x0A, 0x06, // 177:1414 - 0x05, 0x90, 0x09, 0x06, // 178:1424 - 0x05, 0x99, 0x07, 0x06, // 179:1433 - 0x05, 0xA0, 0x07, 0x06, // 180:1440 - 0x05, 0xA7, 0x0A, 0x06, // 181:1447 - 0x05, 0xB1, 0x0B, 0x06, // 182:1457 - 0x05, 0xBC, 0x07, 0x06, // 183:1468 - 0x05, 0xC3, 0x06, 0x06, // 184:1475 - 0x05, 0xC9, 0x09, 0x06, // 185:1481 - 0x05, 0xD2, 0x07, 0x06, // 186:1490 - 0x05, 0xD9, 0x09, 0x06, // 187:1497 - 0x05, 0xE2, 0x0C, 0x06, // 188:1506 - 0x05, 0xEE, 0x0C, 0x06, // 189:1518 - 0x05, 0xFA, 0x0C, 0x06, // 190:1530 - 0x06, 0x06, 0x0A, 0x06, // 191:1542 - 0x06, 0x10, 0x0A, 0x06, // 192:1552 - 0x06, 0x1A, 0x0A, 0x06, // 193:1562 - 0x06, 0x24, 0x0A, 0x06, // 194:1572 - 0x06, 0x2E, 0x0A, 0x06, // 195:1582 - 0x06, 0x38, 0x0A, 0x06, // 196:1592 - 0x06, 0x42, 0x0A, 0x06, // 197:1602 - 0x06, 0x4C, 0x0A, 0x06, // 198:1612 - 0x06, 0x56, 0x0A, 0x06, // 199:1622 - 0x06, 0x60, 0x0A, 0x06, // 200:1632 - 0x06, 0x6A, 0x0A, 0x06, // 201:1642 - 0x06, 0x74, 0x0A, 0x06, // 202:1652 - 0x06, 0x7E, 0x0A, 0x06, // 203:1662 - 0x06, 0x88, 0x08, 0x06, // 204:1672 - 0x06, 0x90, 0x08, 0x06, // 205:1680 - 0x06, 0x98, 0x08, 0x06, // 206:1688 - 0x06, 0xA0, 0x08, 0x06, // 207:1696 - 0x06, 0xA8, 0x0A, 0x06, // 208:1704 - 0x06, 0xB2, 0x0A, 0x06, // 209:1714 - 0x06, 0xBC, 0x0A, 0x06, // 210:1724 - 0x06, 0xC6, 0x0A, 0x06, // 211:1734 - 0x06, 0xD0, 0x0A, 0x06, // 212:1744 - 0x06, 0xDA, 0x0A, 0x06, // 213:1754 - 0x06, 0xE4, 0x0A, 0x06, // 214:1764 - 0x06, 0xEE, 0x0A, 0x06, // 215:1774 - 0x06, 0xF8, 0x0B, 0x06, // 216:1784 - 0x07, 0x03, 0x0A, 0x06, // 217:1795 - 0x07, 0x0D, 0x0A, 0x06, // 218:1805 - 0x07, 0x17, 0x0A, 0x06, // 219:1815 - 0x07, 0x21, 0x0A, 0x06, // 220:1825 - 0x07, 0x2B, 0x0B, 0x06, // 221:1835 - 0x07, 0x36, 0x0B, 0x06, // 222:1846 - 0x07, 0x41, 0x0C, 0x06, // 223:1857 - 0x07, 0x4D, 0x0A, 0x06, // 224:1869 - 0x07, 0x57, 0x0A, 0x06, // 225:1879 - 0x07, 0x61, 0x0A, 0x06, // 226:1889 - 0x07, 0x6B, 0x0A, 0x06, // 227:1899 - 0x07, 0x75, 0x0A, 0x06, // 228:1909 - 0x07, 0x7F, 0x0A, 0x06, // 229:1919 - 0x07, 0x89, 0x0A, 0x06, // 230:1929 - 0x07, 0x93, 0x0A, 0x06, // 231:1939 - 0x07, 0x9D, 0x0A, 0x06, // 232:1949 - 0x07, 0xA7, 0x0A, 0x06, // 233:1959 - 0x07, 0xB1, 0x0A, 0x06, // 234:1969 - 0x07, 0xBB, 0x0A, 0x06, // 235:1979 - 0x07, 0xC5, 0x08, 0x06, // 236:1989 - 0x07, 0xCD, 0x09, 0x06, // 237:1997 - 0x07, 0xD6, 0x08, 0x06, // 238:2006 - 0x07, 0xDE, 0x08, 0x06, // 239:2014 - 0x07, 0xE6, 0x0A, 0x06, // 240:2022 - 0x07, 0xF0, 0x0A, 0x06, // 241:2032 - 0x07, 0xFA, 0x0A, 0x06, // 242:2042 - 0x08, 0x04, 0x0A, 0x06, // 243:2052 - 0x08, 0x0E, 0x0A, 0x06, // 244:2062 - 0x08, 0x18, 0x0A, 0x06, // 245:2072 - 0x08, 0x22, 0x0A, 0x06, // 246:2082 - 0x08, 0x2C, 0x09, 0x06, // 247:2092 - 0x08, 0x35, 0x0B, 0x06, // 248:2101 - 0x08, 0x40, 0x0A, 0x06, // 249:2112 - 0x08, 0x4A, 0x0A, 0x06, // 250:2122 - 0x08, 0x54, 0x0A, 0x06, // 251:2132 - 0x08, 0x5E, 0x0A, 0x06, // 252:2142 - 0x08, 0x68, 0x09, 0x06, // 253:2152 - 0x08, 0x71, 0x0A, 0x06, // 254:2161 - 0x08, 0x7B, 0x09, 0x06, // 255:2171 - - // Font Data: - 0x30,0x00,0x38,0x00,0x28,0x00,0x18,0x00,0x1C,0x00,0xDE,0x00,0x3E,0x00,0xBE,0x01,0x1C,0x00,0x18, // 33 - 0x38,0x00,0x3C,0x00,0x3C,0x00,0x7E,0x01,0xFE,0x02,0x7E,0x01,0x3E,0x00,0x3C,0x00,0x3C,0x00,0x18, // 34 - 0x18,0x00,0xBC,0x01,0xBC,0x00,0x3E,0x03,0xFE,0x03,0x7E,0x03,0x3E,0x03,0x3C,0x01,0x3C,0x01,0x18, // 35 - 0x18,0x00,0x7C,0x00,0x1C,0x00,0x3E,0x02,0x3E,0x00,0xBE,0x00,0x3E,0x00,0x3C,0x02,0x5C,0x00,0x18, // 36 - 0x60,0x00,0xF0,0x00,0xF0,0x00,0xF8,0x00,0xF8,0x01,0xFE,0x01,0xFE,0x00,0xFC,0x00,0xF8,0x00,0x78, // 37 - 0x30,0x00,0x78,0x00,0x78,0x00,0xFE,0x00,0xFE,0x03,0xFF,0x00,0xFF,0x00,0x7F,0x00,0x7E,0x00,0x3E, // 38 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xFC,0x01, // 39 - 0x78,0x00,0x8C,0x01,0x04,0x01,0x42,0x02,0x22,0x02,0x32,0x02,0x12,0x02,0x04,0x01,0x8C,0x01,0x78, // 40 - 0x00,0x00,0xE0,0x00,0x40,0x00,0xE0,0x00,0x70,0x00,0x08,0x00,0xE0,0x00,0x60,0x00,0x80, // 41 - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x70,0x00,0x50,0x00,0x50, // 42 - 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x70,0x00,0x30, // 43 - 0x00,0x00,0x00,0x00,0x00,0x0B,0x00,0x07, // 44 - 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80, // 45 - 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03, // 46 - 0x00,0x06,0x80,0x01,0x40,0x00,0x30,0x00,0x0C, // 47 - 0x30,0x00,0x48,0x00,0x48,0x00,0x4C,0x00,0xCC,0x01,0xCA,0x00,0x4A,0x00,0x4C,0x00,0x4C,0x00,0x38, // 48 - 0x00,0x00,0x20,0x00,0x88,0x00,0x70,0x00,0x78,0x00,0xF4,0x00,0x70,0x00,0x88,0x00,0x20, // 49 - 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0xC0,0x00,0x40, // 50 - 0xD0,0x01,0xC4,0x01,0xF8,0x01,0xE8,0x01,0xFA,0x03,0xF8,0x03,0xF4,0x03,0xF0,0x01,0xE0,0x01,0xC0,0x01, // 51 - 0xC0,0x00,0xE0,0x01,0xE0,0x01,0xF0,0x01,0xF8,0x03,0xF6,0x03,0xEE,0x01,0xD8,0x01,0xF0,0x01,0xC0, // 52 - 0x20,0x00,0x70,0x00,0x70,0x00,0xF8,0x00,0xF8,0x01,0xF8,0x01,0xF8,0x00,0x70,0x00,0x70,0x00,0x30, // 53 - 0x18,0x00,0x3C,0x00,0x3C,0x00,0x3E,0x00,0xFE,0x00,0xBE,0x00,0x3E,0x00,0x3C,0x00,0x3C,0x00,0x18, // 54 - 0x30,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0xFC,0x00,0xFC,0x01,0xFC,0x00,0x78,0x00,0x78,0x00,0x70, // 55 - 0x18,0x00,0x3C,0x00,0x3C,0x00,0x7E,0x00,0x7E,0x00,0x7E,0x03,0x7E,0x00,0xBC,0x01,0x3C,0x00,0x38, // 56 - 0x40,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x70,0x00,0x70,0x00,0x78,0x00,0x70,0x00,0x70,0x00,0x60, // 57 - 0x00,0x00,0x00,0x00,0x30,0x03,0x30,0x03, // 58 - 0x00,0x00,0x00,0x00,0x30,0x0B,0x30,0x07, // 59 - 0x80,0x00,0x80,0x00,0x40,0x01,0x40,0x01,0x20,0x02,0x20,0x02, // 60 - 0x40,0x01,0x40,0x01,0x40,0x01,0x40,0x01,0x40,0x01, // 61 - 0x20,0x02,0x20,0x02,0x40,0x01,0x40,0x01,0x80,0x00,0x80, // 62 - 0x08,0x00,0x04,0x00,0xC4,0x02,0x24,0x00,0x18, // 63 - 0xF0,0x00,0x08,0x01,0x64,0x02,0x94,0x02,0xF8,0x02, // 64 - 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xD0,0x00,0xD8,0x00,0xD0,0x00,0x20, // 65 - 0x00,0x00,0x20,0x00,0x80,0x00,0x70,0x00,0x48,0x00,0xCC,0x00,0x48,0x00,0x70,0x00,0xA0, // 66 - 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x58,0x00,0x60,0x00,0x60,0x00,0x30, // 67 - 0x00,0x00,0x20,0x00,0x88,0x00,0x70,0x00,0xB0,0x00,0x7C,0x01,0x70,0x00,0x70, // 68 - 0x00,0x00,0x48,0x00,0x68,0x00,0x78,0x00,0x68,0x00,0x68,0x00,0x68,0x00,0x70,0x00,0x60, // 69 - 0x20,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0xB0,0x00,0xB0,0x00,0xA0,0x00,0x30, // 70 - 0x00,0x00,0x00,0x00,0x60,0x00,0x20,0x00,0xF8,0x00,0x60,0x00,0x60,0x00,0x60, // 71 - 0xD0,0x00,0x3C,0x01,0x30,0x01,0x28,0x01,0x1A,0x02,0x18,0x02,0x14,0x02,0x30,0x01,0x20,0x01,0xC0, // 72 - 0xC0,0x00,0x20,0x01,0x20,0x01,0x20,0x01,0x10,0x02,0x18,0x02,0x1C,0x02,0x30,0x01,0x30,0x01,0xC0, // 73 - 0x00,0x00,0xE0,0x00,0xC0,0x00,0xF0,0x00,0xC8,0x00,0xCC,0x00,0xC8,0x00,0xF0,0x00,0xE4, // 74 - 0x00,0x00,0xE0,0x00,0xE0,0x00,0xF8,0x00,0xEC,0x00,0xF0,0x00,0xF0,0x00,0xF0,0x00,0xE0, // 75 - 0xF0,0x00,0xE8,0x00,0xE8,0x00,0xE4,0x00,0xE4,0x00,0xE4,0x00,0xE4,0x00,0xE8,0x00,0xE8,0x00,0xF0, // 76 - 0x00,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78,0x00,0x78, // 77 - 0x30,0x00,0x48,0x00,0x48,0x00,0x88,0x00,0x88,0x00,0x88,0x00,0x88,0x00,0x48,0x00,0x48,0x00,0x30, // 78 - 0x18,0x00,0x24,0x00,0x24,0x00,0x22,0x00,0xC2,0x00,0xC2,0x00,0x22,0x00,0x24,0x00,0x24,0x00,0x18, // 79 - 0x18,0x00,0x24,0x00,0x24,0x00,0x22,0x00,0xE2,0x00,0x22,0x00,0x26,0x00,0x24,0x00,0x24,0x00,0x18, // 80 - 0x30,0x00,0x48,0x00,0x48,0x00,0x44,0x00,0xC4,0x01,0x44,0x00,0x48,0x00,0x48,0x00,0x48,0x00,0x30, // 81 - 0x18,0x00,0x24,0x00,0x24,0x00,0x42,0x00,0x42,0x03,0x42,0x00,0x26,0x00,0xA4,0x01,0x24,0x00,0x18, // 82 - 0x40,0x00,0x50,0x00,0x50,0x00,0x70,0x00,0x48,0x00,0x48,0x00,0x48,0x00,0x48,0x00,0x48,0x00,0x30, // 83 - 0x50,0x00,0x58,0x00,0x48,0x00,0x3C,0x00,0xA4,0x00,0x44,0x00,0x44,0x00,0xA4,0x01,0x24,0x00,0x18, // 84 - 0x18,0x00,0x24,0x00,0x24,0x00,0x22,0x00,0x42,0x01,0xC2,0x03,0x22,0x00,0x24,0x00,0x24,0x00,0x18, // 85 - 0x18,0x00,0x24,0x00,0x24,0x00,0x42,0x00,0x42,0x00,0xE2,0x00,0x42,0x00,0x24,0x00,0x24,0x00,0x18, // 86 - 0x18,0x00,0xA4,0x01,0xC4,0x00,0x42,0x03,0xC2,0x03,0x42,0x03,0x42,0x03,0x44,0x01,0x24,0x01,0x18, // 87 - 0x18,0x00,0x64,0x00,0x24,0x00,0x22,0x02,0xC2,0x00,0x42,0x00,0x24,0x02,0x24,0x00,0x64,0x00,0x18, // 88 - 0xC0,0x00,0x20,0x01,0x20,0x01,0x30,0x01,0x10,0x02,0x18,0x02,0x38,0x01,0x30,0x01,0x30,0x01,0xF0, // 89 - 0x30,0x00,0x48,0x00,0x48,0x00,0x4C,0x00,0x8C,0x01,0x8A,0x00,0x4A,0x00,0x4C,0x00,0x4C,0x00,0x38, // 90 - 0x00,0x00,0x00,0x00,0xFC,0x0F,0x04,0x00,0x04, // 91 - 0x00,0x00,0x0C,0x00,0x30,0x00,0xC0,0x00,0x00,0x03, // 92 - 0x00,0x00,0x04,0x00,0x04,0x00,0xFC,0x0F, // 93 - 0x40,0x00,0x30,0x00,0x0C,0x00,0x30,0x00,0x40, // 94 - 0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04, // 95 - 0x00,0x00,0x00,0x00,0x08,0x00,0x10, // 96 - 0xE0,0x01,0x10,0x02,0x10,0x02,0x10,0x01,0xF0,0x03, // 97 - 0xFC,0x03,0x20,0x02,0x10,0x02,0x10,0x02,0xE0,0x01, // 98 - 0xE0,0x01,0x10,0x02,0x10,0x02,0x10,0x02,0x20,0x01, // 99 - 0xE0,0x01,0x10,0x02,0x10,0x02,0x10,0x01,0xFC,0x03, // 100 - 0xE0,0x01,0x50,0x02,0x50,0x02,0x50,0x02,0x60,0x01, // 101 - 0x10,0x00,0xF8,0x03,0x14,0x00,0x14, // 102 - 0xE0,0x01,0x10,0x0A,0x10,0x0A,0x10,0x09,0xF0,0x07, // 103 - 0xFC,0x03,0x20,0x00,0x10,0x00,0x10,0x00,0xE0,0x03, // 104 - 0x00,0x00,0x10,0x00,0xF4,0x03,0x00,0x02, // 105 - 0x00,0x08,0x10,0x08,0x10,0x08,0xF4,0x07, // 106 - 0xFC,0x03,0x40,0x00,0xA0,0x00,0x10,0x01,0x00,0x02, // 107 - 0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x02, // 108 - 0xF0,0x03,0x10,0x00,0xE0,0x03,0x10,0x00,0xE0,0x03, // 109 - 0xF0,0x03,0x20,0x00,0x10,0x00,0x10,0x00,0xE0,0x03, // 110 - 0xE0,0x01,0x10,0x02,0x10,0x02,0x10,0x02,0xE0,0x01, // 111 - 0xF0,0x0F,0x20,0x02,0x10,0x02,0x10,0x02,0xE0,0x01, // 112 - 0xE0,0x01,0x10,0x02,0x10,0x02,0x10,0x01,0xF0,0x0F, // 113 - 0x10,0x02,0xF0,0x03,0x20,0x02,0x10,0x00,0x10, // 114 - 0x20,0x01,0x50,0x02,0x50,0x02,0x90,0x02,0x20,0x01, // 115 - 0x10,0x00,0xFC,0x01,0x10,0x02,0x10,0x02,0x00,0x01, // 116 - 0xF0,0x01,0x00,0x02,0x00,0x02,0x00,0x01,0xF0,0x03, // 117 - 0x30,0x00,0xC0,0x00,0x00,0x03,0xC0,0x00,0x30, // 118 - 0xF0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xF0, // 119 - 0x10,0x02,0x20,0x01,0xC0,0x00,0x20,0x01,0x10,0x02, // 120 - 0x30,0x08,0xC0,0x04,0x00,0x03,0xC0,0x00,0x30, // 121 - 0x10,0x03,0x90,0x02,0x50,0x02,0x30,0x02,0x10,0x02, // 122 - 0x80,0x00,0x80,0x00,0x78,0x0F,0x04,0x00,0x04, // 123 - 0x00,0x00,0x00,0x00,0xFE,0x07, // 124 - 0x04,0x00,0x04,0x00,0x78,0x0F,0x80,0x00,0x80, // 125 - 0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x20, // 126 - 0x00,0x00,0x00,0x00,0x00,0x00,0xD0,0x0F, // 161 - 0xF0,0x00,0x08,0x01,0xFE,0x07,0x08,0x01,0x90, // 162 - 0x20,0x03,0xF8,0x02,0x24,0x02,0x24,0x02,0x00,0x03, // 163 - 0x00,0x00,0xF0,0x01,0x10,0x01,0x10,0x01,0xF0,0x01, // 164 - 0x4C,0x01,0x50,0x01,0xE0,0x03,0x50,0x01,0x4C,0x01, // 165 - 0x00,0x00,0x00,0x00,0xDC,0x01, // 166 - 0x6C,0x04,0x92,0x04,0x92,0x04,0x92,0x04,0x62,0x03, // 167 - 0x00,0x00,0x08,0x00,0x00,0x00,0x08, // 168 - 0xF0,0x00,0x08,0x01,0xF4,0x02,0x94,0x02,0x08,0x01,0xF0, // 169 - 0x00,0x00,0x98,0x00,0xA4,0x00,0xBC, // 170 - 0x80,0x00,0x40,0x01,0xA0,0x02,0x40,0x01,0x20,0x02, // 171 - 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x03, // 172 - 0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40, // 173 - 0xF0,0x00,0x08,0x01,0xF4,0x02,0xB4,0x02,0x08,0x01,0xF0, // 174 - 0x00,0x00,0x08,0x00,0x08,0x00,0x08, // 175 - 0x00,0x00,0x08,0x00,0x14,0x00,0x08, // 176 - 0x20,0x02,0x20,0x02,0xF8,0x02,0x20,0x02,0x20,0x02, // 177 - 0x00,0x00,0x64,0x00,0x64,0x00,0x54,0x00,0x48, // 178 - 0x00,0x00,0x00,0x00,0x54,0x00,0x28, // 179 - 0x00,0x00,0x00,0x00,0x08,0x00,0x04, // 180 - 0xF0,0x0F,0x00,0x01,0x00,0x02,0x00,0x01,0xF0,0x03, // 181 - 0x30,0x00,0x78,0x00,0xF8,0x0F,0x08,0x00,0xF8,0x0F,0x08, // 182 - 0x00,0x00,0x00,0x00,0xC0,0x00,0xC0, // 183 - 0x00,0x00,0x00,0x04,0x00,0x08, // 184 - 0x00,0x00,0x00,0x00,0x44,0x00,0x7C,0x00,0x40, // 185 - 0x00,0x00,0x98,0x00,0xA4,0x00,0x98, // 186 - 0x20,0x02,0x40,0x01,0xA0,0x02,0x40,0x01,0x80, // 187 - 0x24,0x02,0x3C,0x01,0xA0,0x00,0xE0,0x01,0x50,0x01,0xC8,0x03, // 188 - 0x24,0x02,0x3C,0x01,0xE0,0x00,0x70,0x03,0xC8,0x02,0x84,0x02, // 189 - 0x34,0x02,0x2C,0x01,0xC0,0x01,0x70,0x01,0xC8,0x03,0x04,0x01, // 190 - 0x00,0x06,0x00,0x09,0xD0,0x08,0x00,0x08,0x00,0x04, // 191 - 0x80,0x03,0xE1,0x00,0x9A,0x00,0xE0,0x00,0x80,0x03, // 192 - 0x80,0x03,0xE0,0x00,0x9A,0x00,0xE1,0x00,0x80,0x03, // 193 - 0x80,0x03,0xE2,0x00,0x99,0x00,0xE2,0x00,0x80,0x03, // 194 - 0x80,0x03,0xE2,0x00,0x99,0x00,0xE2,0x00,0x81,0x03, // 195 - 0x80,0x03,0xE1,0x00,0x9C,0x00,0xE1,0x00,0x80,0x03, // 196 - 0x80,0x03,0xE2,0x00,0x9D,0x00,0xE2,0x00,0x80,0x03, // 197 - 0xC0,0x03,0x7C,0x00,0xFC,0x03,0x24,0x02,0x24,0x02, // 198 - 0xF8,0x01,0x04,0x02,0x04,0x06,0x04,0x0A,0x08,0x01, // 199 - 0xFC,0x03,0x25,0x02,0x26,0x02,0x24,0x02,0x04,0x02, // 200 - 0xFC,0x03,0x24,0x02,0x26,0x02,0x25,0x02,0x04,0x02, // 201 - 0xFC,0x03,0x26,0x02,0x25,0x02,0x26,0x02,0x04,0x02, // 202 - 0xFC,0x03,0x25,0x02,0x24,0x02,0x25,0x02,0x04,0x02, // 203 - 0x00,0x00,0x05,0x02,0xFE,0x03,0x04,0x02, // 204 - 0x00,0x00,0x04,0x02,0xFE,0x03,0x05,0x02, // 205 - 0x00,0x00,0x06,0x02,0xFD,0x03,0x06,0x02, // 206 - 0x00,0x00,0x05,0x02,0xFC,0x03,0x05,0x02, // 207 - 0x20,0x00,0xFC,0x03,0x24,0x02,0x04,0x02,0xF8,0x01, // 208 - 0xFC,0x03,0x1A,0x00,0x61,0x00,0x82,0x01,0xFD,0x03, // 209 - 0xF8,0x01,0x05,0x02,0x06,0x02,0x04,0x02,0xF8,0x01, // 210 - 0xF8,0x01,0x04,0x02,0x06,0x02,0x05,0x02,0xF8,0x01, // 211 - 0xF8,0x01,0x06,0x02,0x05,0x02,0x06,0x02,0xF8,0x01, // 212 - 0xFA,0x01,0x05,0x02,0x06,0x02,0x05,0x02,0xF8,0x01, // 213 - 0xF8,0x01,0x05,0x02,0x04,0x02,0x05,0x02,0xF8,0x01, // 214 - 0x20,0x02,0x40,0x01,0x80,0x00,0x40,0x01,0x20,0x02, // 215 - 0xF8,0x07,0x84,0x03,0x64,0x02,0x1C,0x02,0xFC,0x01,0x02, // 216 - 0xFC,0x01,0x01,0x02,0x02,0x02,0x00,0x02,0xFC,0x01, // 217 - 0xFC,0x01,0x00,0x02,0x02,0x02,0x01,0x02,0xFC,0x01, // 218 - 0xFC,0x01,0x02,0x02,0x01,0x02,0x02,0x02,0xFC,0x01, // 219 - 0xFC,0x01,0x01,0x02,0x00,0x02,0x01,0x02,0xFC,0x01, // 220 - 0x00,0x00,0x0C,0x00,0x12,0x00,0xE1,0x03,0x10,0x00,0x0C, // 221 - 0x00,0x00,0xFC,0x03,0x08,0x01,0x08,0x01,0x08,0x01,0xF0, // 222 - 0xF8,0x03,0x04,0x00,0x24,0x02,0x54,0x02,0x48,0x02,0x80,0x01, // 223 - 0xE0,0x01,0x10,0x02,0x12,0x02,0x14,0x01,0xF0,0x03, // 224 - 0xE0,0x01,0x10,0x02,0x14,0x02,0x12,0x01,0xF0,0x03, // 225 - 0xE0,0x01,0x14,0x02,0x12,0x02,0x14,0x01,0xF0,0x03, // 226 - 0xE0,0x01,0x14,0x02,0x12,0x02,0x14,0x01,0xF2,0x03, // 227 - 0xE0,0x01,0x14,0x02,0x10,0x02,0x14,0x01,0xF0,0x03, // 228 - 0xE0,0x01,0x12,0x02,0x15,0x02,0x12,0x01,0xF0,0x03, // 229 - 0xE0,0x01,0x10,0x02,0xF0,0x03,0x50,0x02,0x60,0x02, // 230 - 0xE0,0x01,0x10,0x02,0x10,0x06,0x10,0x0A,0x20,0x01, // 231 - 0xE0,0x01,0x52,0x02,0x54,0x02,0x50,0x02,0x60,0x01, // 232 - 0xE0,0x01,0x50,0x02,0x54,0x02,0x52,0x02,0x60,0x01, // 233 - 0xE0,0x01,0x54,0x02,0x52,0x02,0x54,0x02,0x60,0x01, // 234 - 0xE0,0x01,0x54,0x02,0x50,0x02,0x54,0x02,0x60,0x01, // 235 - 0x01,0x00,0x12,0x00,0xF4,0x03,0x00,0x02, // 236 - 0x00,0x00,0x10,0x00,0xF4,0x03,0x02,0x02,0x01, // 237 - 0x00,0x00,0x14,0x00,0xF2,0x03,0x04,0x02, // 238 - 0x00,0x00,0x14,0x00,0xF0,0x03,0x04,0x02, // 239 - 0xE4,0x01,0x14,0x02,0x16,0x02,0x18,0x02,0xF0,0x01, // 240 - 0xF0,0x03,0x24,0x00,0x12,0x00,0x14,0x00,0xE2,0x03, // 241 - 0xE0,0x01,0x12,0x02,0x14,0x02,0x10,0x02,0xE0,0x01, // 242 - 0xE0,0x01,0x10,0x02,0x14,0x02,0x12,0x02,0xE0,0x01, // 243 - 0xE0,0x01,0x14,0x02,0x12,0x02,0x14,0x02,0xE0,0x01, // 244 - 0xE0,0x01,0x14,0x02,0x12,0x02,0x14,0x02,0xE2,0x01, // 245 - 0xE0,0x01,0x14,0x02,0x10,0x02,0x14,0x02,0xE0,0x01, // 246 - 0x80,0x00,0x80,0x00,0xA0,0x02,0x80,0x00,0x80, // 247 - 0xE0,0x07,0x10,0x03,0xD0,0x02,0x30,0x02,0xF0,0x01,0x08, // 248 - 0xF0,0x01,0x02,0x02,0x04,0x02,0x00,0x01,0xF0,0x03, // 249 - 0xF0,0x01,0x00,0x02,0x04,0x02,0x02,0x01,0xF0,0x03, // 250 - 0xF0,0x01,0x04,0x02,0x02,0x02,0x04,0x01,0xF0,0x03, // 251 - 0xF0,0x01,0x04,0x02,0x00,0x02,0x04,0x01,0xF0,0x03, // 252 - 0x00,0x08,0x70,0x08,0x80,0x0D,0x08,0x03,0xF4, // 253 - 0xFC,0x0F,0x20,0x02,0x10,0x02,0x10,0x02,0xE0,0x01, // 254 - 0x30,0x08,0xC4,0x04,0x00,0x03,0xC4,0x00,0x30 // 255 -}; - diff --git a/printermonitor/libs/ArduinoJson/ArduinoJson.h b/printermonitor/libs/ArduinoJson/ArduinoJson.h deleted file mode 100644 index 9f78b9f..0000000 --- a/printermonitor/libs/ArduinoJson/ArduinoJson.h +++ /dev/null @@ -1,5 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#include "src/ArduinoJson.h" diff --git a/printermonitor/libs/ArduinoJson/CHANGELOG.md b/printermonitor/libs/ArduinoJson/CHANGELOG.md deleted file mode 100644 index 9fb7ecf..0000000 --- a/printermonitor/libs/ArduinoJson/CHANGELOG.md +++ /dev/null @@ -1,463 +0,0 @@ -ArduinoJson: change log -======================= - -v5.13.1 -------- - -* Fixed `JsonVariant::operator|(int)` that returned the default value if the variant contained a double (issue #675) -* Allowed non-quoted key to contain underscores (issue #665) - -v5.13.0 -------- - -* Changed the rules of string duplication (issue #658) -* `RawJson()` accepts any kind of string and obeys to the same rules for duplication -* Changed the return type of `strdup()` to `const char*` to prevent double duplication -* Marked `strdup()` as deprecated - -> ### New rules for string duplication -> -> | type | duplication | -> |:---------------------------|:------------| -> | const char* | no | -> | char* | ~~no~~ yes | -> | String | yes | -> | std::string | yes | -> | const __FlashStringHelper* | yes | -> -> These new rules make `JsonBuffer::strdup()` useless. - -v5.12.0 -------- - -* Added `JsonVariant::operator|` to return a default value (see below) -* Added a clear error message when compiled as C instead of C++ (issue #629) -* Added detection of MPLAB XC compiler (issue #629) -* Added detection of Keil ARM Compiler (issue #629) -* Added an example that shows how to save and load a configuration file -* Reworked all other examples - -> ### How to use the new feature? -> -> If you have a block like this: -> -> ```c++ -> const char* ssid = root["ssid"]; -> if (!ssid) -> ssid = "default ssid"; -> ``` -> -> You can simplify like that: -> -> ```c++ -> const char* ssid = root["ssid"] | "default ssid"; -> ``` - -v5.11.2 -------- - -* Fixed `DynamicJsonBuffer::clear()` not resetting allocation size (issue #561) -* Fixed incorrect rounding for float values (issue #588) - -v5.11.1 -------- - -* Removed dependency on `PGM_P` as Particle 0.6.2 doesn't define it (issue #546) -* Fixed warning "dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]" -* Fixed warning "floating constant exceeds range of 'float' [-Woverflow]" (issue #544) -* Fixed warning "this statement may fall through" [-Wimplicit-fallthrough=] (issue #539) -* Removed `ARDUINOJSON_DOUBLE_IS_64BITS` as it became useless. -* Fixed too many decimals places in float serialization (issue #543) - -v5.11.0 -------- - -* Made `JsonBuffer` non-copyable (PR #524 by @luisrayas3) -* Added `StaticJsonBuffer::clear()` -* Added `DynamicJsonBuffer::clear()` - -v5.10.1 -------- - -* Fixed IntelliSense errors in Visual Micro (issue #483) -* Fixed compilation in IAR Embedded Workbench (issue #515) -* Fixed reading "true" as a float (issue #516) -* Added `ARDUINOJSON_DOUBLE_IS_64BITS` -* Added `ARDUINOJSON_EMBEDDED_MODE` - -v5.10.0 -------- - -* Removed configurable number of decimal places (issues #288, #427 and #506) -* Changed exponentiation thresholds to `1e7` and `1e-5` (issues #288, #427 and #506) -* `JsonVariant::is()` now returns `true` for integers -* Fixed error `IsBaseOf is not a member of ArduinoJson::TypeTraits` (issue #495) -* Fixed error `forming reference to reference` (issue #495) - -> ### BREAKING CHANGES :warning: -> -> | Old syntax | New syntax | -> |:--------------------------------|:--------------------| -> | `double_with_n_digits(3.14, 2)` | `3.14` | -> | `float_with_n_digits(3.14, 2)` | `3.14f` | -> | `obj.set("key", 3.14, 2)` | `obj["key"] = 3.14` | -> | `arr.add(3.14, 2)` | `arr.add(3.14)` | -> -> | Input | Old output | New output | -> |:----------|:-----------|:-----------| -> | `3.14159` | `3.14` | `3.14159` | -> | `42.0` | `42.00` | `42` | -> | `0.0` | `0.00` | `0` | -> -> | Expression | Old result | New result | -> |:-------------------------------|:-----------|:-----------| -> | `JsonVariant(42).is()` | `true` | `true` | -> | `JsonVariant(42).is()` | `false` | `true` | -> | `JsonVariant(42).is()` | `false` | `true` | - -v5.9.0 ------- - -* Added `JsonArray::remove(iterator)` (issue #479) -* Added `JsonObject::remove(iterator)` -* Renamed `JsonArray::removeAt(size_t)` into `remove(size_t)` -* Renamed folder `include/` to `src/` -* Fixed warnings `floating constant exceeds range of float`and `floating constant truncated to zero` (issue #483) -* Removed `Print` class and converted `printTo()` to a template method (issue #276) -* Removed example `IndentedPrintExample.ino` -* Now compatible with Particle 0.6.1, thanks to Jacob Nite (issue #294 and PR #461 by @foodbag) - -v5.8.4 ------- - -* Added custom implementation of `strtod()` (issue #453) -* Added custom implementation of `strtol()` (issue #465) -* `char` is now treated as an integral type (issue #337, #370) - -v5.8.3 ------- - -* Fixed an access violation in `DynamicJsonBuffer` when memory allocation fails (issue #433) -* Added operators `==` and `!=` for two `JsonVariant`s (issue #436) -* Fixed `JsonVariant::operator[const FlashStringHelper*]` (issue #441) - -v5.8.2 ------- - -* Fixed parsing of comments (issue #421) -* Fixed ignored `Stream` timeout (issue #422) -* Made sure we don't read more that necessary (issue #422) -* Fixed error when the key of a `JsonObject` is a `char[]` (issue #423) -* Reduced code size when using `const` references -* Fixed error with string of type `unsigned char*` (issue #428) -* Added `deprecated` attribute on `asArray()`, `asObject()` and `asString()` (issue #420) - -v5.8.1 ------- - -* Fixed error when assigning a `volatile int` to a `JsonVariant` (issue #415) -* Fixed errors with Variable Length Arrays (issue #416) -* Fixed error when both `ARDUINOJSON_ENABLE_STD_STREAM` and `ARDUINOJSON_ENABLE_ARDUINO_STREAM` are set to `1` -* Fixed error "Stream does not name a type" (issue #412) - -v5.8.0 ------- - -* Added operator `==` to compare `JsonVariant` and strings (issue #402) -* Added support for `Stream` (issue #300) -* Reduced memory consumption by not duplicating spaces and comments - -> ### BREAKING CHANGES :warning: -> -> `JsonBuffer::parseObject()` and `JsonBuffer::parseArray()` have been pulled down to the derived classes `DynamicJsonBuffer` and `StaticJsonBufferBase`. -> -> This means that if you have code like: -> -> ```c++ -> void myFunction(JsonBuffer& jsonBuffer); -> ``` -> -> you need to replace it with one of the following: -> -> ```c++ -> void myFunction(DynamicJsonBuffer& jsonBuffer); -> void myFunction(StaticJsonBufferBase& jsonBuffer); -> template void myFunction(TJsonBuffer& jsonBuffer); -> ``` - -v5.7.3 ------- - -* Added an `printTo(char[N])` and `prettyPrintTo(char[N])` (issue #292) -* Added ability to set a nested value like this: `root["A"]["B"] = "C"` (issue #352) -* Renamed `*.ipp` to `*Impl.hpp` because they were ignored by Arduino IDE (issue #396) - -v5.7.2 ------- - -* Made PROGMEM available on more platforms (issue #381) -* Fixed PROGMEM causing an exception on ESP8266 (issue #383) - -v5.7.1 ------- - -* Added support for PROGMEM (issue #76) -* Fixed compilation error when index is not an `int` (issue #381) - -v5.7.0 ------- - -* Templatized all functions using `String` or `std::string` -* Removed `ArduinoJson::String` -* Removed `JsonVariant::defaultValue()` -* Removed non-template `JsonObject::get()` and `JsonArray.get()` -* Fixed support for `StringSumHelper` (issue #184) -* Replaced `ARDUINOJSON_USE_ARDUINO_STRING` by `ARDUINOJSON_ENABLE_STD_STRING` and `ARDUINOJSON_ENABLE_ARDUINO_STRING` (issue #378) -* Added example `StringExample.ino` to show where `String` can be used -* Increased default nesting limit to 50 when compiled for a computer (issue #349) - -> ### BREAKING CHANGES :warning: -> -> The non-template functions `JsonObject::get()` and `JsonArray.get()` have been removed. This means that you need to explicitely tell the type you expect in return. -> -> Old code: -> -> ```c++ -> #define ARDUINOJSON_USE_ARDUINO_STRING 0 -> JsonVariant value1 = myObject.get("myKey"); -> JsonVariant value2 = myArray.get(0); -> ``` -> -> New code: -> -> ```c++ -> #define ARDUINOJSON_ENABLE_ARDUINO_STRING 0 -> #define ARDUINOJSON_ENABLE_STD_STRING 1 -> JsonVariant value1 = myObject.get("myKey"); -> JsonVariant value2 = myArray.get(0); -> ``` - -v5.6.7 ------- - -* Fixed `array[idx].as()` and `object[key].as()` -* Fixed return value of `JsonObject::set()` (issue #350) -* Fixed undefined behavior in `Prettyfier` and `Print` (issue #354) -* Fixed parser that incorrectly rejected floats containing a `+` (issue #349) - -v5.6.6 ------- - -* Fixed `-Wparentheses` warning introduced in v5.6.5 (PR #335 by @nuket) -* Added `.mbedignore` for ARM mbdeb (PR #334 by @nuket) -* Fixed `JsonVariant::success()` which didn't propagate `JsonArray::success()` nor `JsonObject::success()` (issue #342). - -v5.6.5 ------- - -* `as()` now returns `true` when input is `null` (issue #330) - -v5.6.4 ------- - -* Fixed error in float serialization (issue #324) - -v5.6.3 ------- - -* Improved speed of float serialization (about twice faster) -* Added `as()` as a synonym for `as()`... (issue #291) -* Fixed `call of overloaded isinf(double&) is ambiguous` (issue #284) - -v5.6.2 ------- - -* Fixed build when another lib does `#undef isnan` (issue #284) - -v5.6.1 ------- - -* Added missing `#pragma once` (issue #310) - -v5.6.0 ------- - -* ArduinoJson is now a header-only library (issue #199) - -v5.5.1 ------- - -* Fixed compilation error with Intel Galileo (issue #299) - -v5.5.0 ------- - -* Added `JsonVariant::success()` (issue #279) -* Renamed `JsonVariant::invalid()` to `JsonVariant::defaultValue()` - -v5.4.0 ------- - -* Changed `::String` to `ArduinoJson::String` (issue #275) -* Changed `::Print` to `ArduinoJson::Print` too - -v5.3.0 ------- - -* Added custom implementation of `ftoa` (issues #266, #267, #269 and #270) -* Added `JsonVariant JsonBuffer::parse()` (issue #265) -* Fixed `unsigned long` printed as `signed long` (issue #170) - -v5.2.0 ------- - -* Added `JsonVariant::as()` as a synonym for `JsonVariant::as()` (issue #257) -* Added example `JsonHttpClient` (issue #256) -* Added `JsonArray::copyTo()` and `JsonArray::copyFrom()` (issue #254) -* Added `RawJson()` to insert pregenerated JSON portions (issue #259) - -v5.1.1 ------- - -* Removed `String` duplication when one replaces a value in a `JsonObject` (PR #232 by @ulion) - -v5.1.0 ------- - -* Added support of `long long` (issue #171) -* Moved all build settings to `ArduinoJson/Configuration.hpp` - -> ### BREAKING CHANGE :warning: -> -> If you defined `ARDUINOJSON_ENABLE_STD_STREAM`, you now need to define it to `1`. - -v5.0.8 ------- - -* Made the library compatible with [PlatformIO](http://platformio.org/) (issue #181) -* Fixed `JsonVariant::is()` that was incorrectly returning false (issue #214) - -v5.0.7 ------- - -* Made library easier to use from a CMake project: simply `add_subdirectory(ArduinoJson/src)` -* Changed `String` to be a `typedef` of `std::string` (issues #142 and #161) - -> ### BREAKING CHANGES :warning: -> -> - `JsonVariant(true).as()` now returns `"true"` instead of `"1"` -> - `JsonVariant(false).as()` now returns `"false"` instead of `"0"` - -v5.0.6 ------- - -* Added parameter to `DynamicJsonBuffer` constructor to set initial size (issue #152) -* Fixed warning about library category in Arduino 1.6.6 (issue #147) -* Examples: Added a loop to wait for serial port to be ready (issue #156) - -v5.0.5 ------- - -* Added overload `JsonObjectSuscript::set(value, decimals)` (issue #143) -* Use `float` instead of `double` to reduce the size of `JsonVariant` (issue #134) - -v5.0.4 ------- - -* Fixed ambiguous overload with `JsonArraySubscript` and `JsonObjectSubscript` (issue #122) - -v5.0.3 ------- - -* Fixed `printTo(String)` which wrote numbers instead of strings (issue #120) -* Fixed return type of `JsonArray::is()` and some others (issue #121) - -v5.0.2 ------- - -* Fixed segmentation fault in `parseObject(String)` and `parseArray(String)`, when the - `StaticJsonBuffer` is too small to hold a copy of the string -* Fixed Clang warning "register specifier is deprecated" (issue #102) -* Fixed GCC warning "declaration shadows a member" (issue #103) -* Fixed memory alignment, which made ESP8266 crash (issue #104) -* Fixed compilation on Visual Studio 2010 and 2012 (issue #107) - -v5.0.1 ------- - -* Fixed compilation with Arduino 1.0.6 (issue #99) - -v5.0.0 ------- - -* Added support of `String` class (issues #55, #56, #70, #77) -* Added `JsonBuffer::strdup()` to make a copy of a string (issues #10, #57) -* Implicitly call `strdup()` for `String` but not for `char*` (issues #84, #87) -* Added support of non standard JSON input (issue #44) -* Added support of comments in JSON input (issue #88) -* Added implicit cast between numerical types (issues #64, #69, #93) -* Added ability to read number values as string (issue #90) -* Redesigned `JsonVariant` to leverage converting constructors instead of assignment operators (issue #66) -* Switched to new the library layout (requires Arduino 1.0.6 or above) - -> ### BREAKING CHANGES :warning: -> -> - `JsonObject::add()` was renamed to `set()` -> - `JsonArray::at()` and `JsonObject::at()` were renamed to `get()` -> - Number of digits of floating point value are now set with `double_with_n_digits()` - -**Personal note about the `String` class**: -Support of the `String` class has been added to the library because many people use it in their programs. -However, you should not see this as an invitation to use the `String` class. -The `String` class is **bad** because it uses dynamic memory allocation. -Compared to static allocation, it compiles to a bigger, slower program, and is less predictable. -You certainly don't want that in an embedded environment! - -v4.6 ----- - -* Fixed segmentation fault in `DynamicJsonBuffer` when memory allocation fails (issue #92) - -v4.5 ----- - -* Fixed buffer overflow when input contains a backslash followed by a terminator (issue #81) - -**Upgrading is recommended** since previous versions contain a potential security risk. - -Special thanks to [Giancarlo Canales Barreto](https://github.com/gcanalesb) for finding this nasty bug. - -v4.4 ----- - -* Added `JsonArray::measureLength()` and `JsonObject::measureLength()` (issue #75) - -v4.3 ----- - -* Added `JsonArray::removeAt()` to remove an element of an array (issue #58) -* Fixed stack-overflow in `DynamicJsonBuffer` when parsing huge JSON files (issue #65) -* Fixed wrong return value of `parseArray()` and `parseObject()` when allocation fails (issue #68) - -v4.2 ----- - -* Switched back to old library layout (issues #39, #43 and #45) -* Removed global new operator overload (issue #40, #45 and #46) -* Added an example with EthernetServer - -v4.1 ----- - -* Added DynamicJsonBuffer (issue #19) - -v4.0 ----- - -* Unified parser and generator API (issue #23) -* Updated library layout, now requires Arduino 1.0.6 or newer - -> ### BREAKING CHANGES :warning: -> -> API changed significantly since v3, see [Migrating code to the new API](https://arduinojson.org/doc/migration/). - diff --git a/printermonitor/libs/ArduinoJson/CMakeLists.txt b/printermonitor/libs/ArduinoJson/CMakeLists.txt deleted file mode 100644 index 66c565b..0000000 --- a/printermonitor/libs/ArduinoJson/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# ArduinoJson - arduinojson.org -# Copyright Benoit Blanchon 2014-2018 -# MIT License - -cmake_minimum_required(VERSION 3.0) -project(ArduinoJson) - -enable_testing() - -if(${COVERAGE}) - set(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") -endif() - -include_directories(${CMAKE_CURRENT_LIST_DIR}/src) -add_subdirectory(third-party/catch) -add_subdirectory(test) diff --git a/printermonitor/libs/ArduinoJson/CONTRIBUTING.md b/printermonitor/libs/ArduinoJson/CONTRIBUTING.md deleted file mode 100644 index 5d4b96c..0000000 --- a/printermonitor/libs/ArduinoJson/CONTRIBUTING.md +++ /dev/null @@ -1,11 +0,0 @@ -# Contribution to ArduinoJson - -First, thank you for taking the time to contribute to this project. - -You can submit changes via GitHub Pull Requests. - -Please: - -1. Unit test every change in behavior -2. Use clang-format in "file" mode to format the code -3. Consider using the Continuous Integration (Travis and AppVeyor) diff --git a/printermonitor/libs/ArduinoJson/LICENSE.md b/printermonitor/libs/ArduinoJson/LICENSE.md deleted file mode 100644 index 247c508..0000000 --- a/printermonitor/libs/ArduinoJson/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) ---------------------- - -Copyright © 2014-2018 Benoit BLANCHON - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/printermonitor/libs/ArduinoJson/README.md b/printermonitor/libs/ArduinoJson/README.md deleted file mode 100644 index f9e08ff..0000000 --- a/printermonitor/libs/ArduinoJson/README.md +++ /dev/null @@ -1,110 +0,0 @@ -![ArduinoJson](banner.svg) - ---- - -[![Build status](https://ci.appveyor.com/api/projects/status/m7s53wav1l0abssg/branch/master?svg=true)](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/master) [![Build Status](https://travis-ci.org/bblanchon/ArduinoJson.svg?branch=master)](https://travis-ci.org/bblanchon/ArduinoJson) [![Coverage Status](https://img.shields.io/coveralls/bblanchon/ArduinoJson.svg)](https://coveralls.io/r/bblanchon/ArduinoJson?branch=master) [![Star this project](http://githubbadges.com/star.svg?user=bblanchon&repo=ArduinoJson&style=flat&color=fff&background=007ec6)](https://github.com/bblanchon/ArduinoJson) - -ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). - -## Features - -* JSON decoding (comments are supported) -* JSON encoding (with optional indentation) -* Elegant API, easy to use -* Fixed memory allocation (zero malloc) -* No data duplication (zero copy) -* Portable (written in C++98, can be used in any C++ project) -* Self-contained (no external dependency) -* Small footprint -* Input and output streams -* [100% code coverage](https://coveralls.io/github/bblanchon/ArduinoJson) -* [Header-only library](https://en.wikipedia.org/wiki/Header-only) -* [MIT License](https://en.wikipedia.org/wiki/MIT_License) -* [Comprehensive documentation](https://arduinojson.org?utm_source=github&utm_medium=readme) - -## Compatibility - -ArduinoJson works on the following hardware: - -* Arduino boards: [Uno](https://www.arduino.cc/en/Main/ArduinoBoardUno), [Due](https://www.arduino.cc/en/Main/ArduinoBoardDue), [Mini](https://www.arduino.cc/en/Main/ArduinoBoardMini), [Micro](https://www.arduino.cc/en/Main/ArduinoBoardMicro), [Yun](https://www.arduino.cc/en/Main/ArduinoBoardYun)... -* Espressif chips: [ESP8266](https://en.wikipedia.org/wiki/ESP8266), [ESP32](https://en.wikipedia.org/wiki/ESP32) -* WeMos boards: [D1](https://wiki.wemos.cc/products:d1:d1), [D1 mini](https://wiki.wemos.cc/products:d1:d1_mini), ... -* RedBearLab boards: [BLE Nano](http://redbearlab.com/blenano/), [BLE Mini](http://redbearlab.com/blemini/), [WiFi Micro](https://redbear.cc/product/wifi/wifi-micro.html), [LOLIN32](https://wiki.wemos.cc/products:lolin32:lolin32)... -* [Teensy](https://www.pjrc.com/teensy/) boards -* Intel boards: Edison, Galileo... -* Particle boards: [Photon](https://www.particle.io/products/hardware/photon-wifi-dev-kit), [Electron](https://www.particle.io/products/hardware/electron-cellular-dev-kit)... -* Texas Instruments boards: [MSP430](http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/overview/overview.html)... - -ArduinoJson compiles with zero warning on the following compilers, IDEs, and platforms: - -* [Arduino IDE](https://www.arduino.cc/en/Main/Software) -* [PlatformIO](http://platformio.org/) -* [Energia](http://energia.nu/) -* [Visual Micro](http://www.visualmicro.com/) -* [Atmel Studio](http://www.atmel.com/microsite/atmel-studio/) -* [IAR Embedded Workbench](https://www.iar.com/iar-embedded-workbench/) -* [Atollic TrueSTUDIO](https://atollic.com/truestudio/) -* [Keil uVision](http://www.keil.com/) -* [MPLAB X IDE](http://www.microchip.com/mplab/mplab-x-ide) -* [GCC](https://gcc.gnu.org/) -* [Clang](https://clang.llvm.org/) -* [Visual Studio](https://www.visualstudio.com/) - -## Quickstart - -### Deserialization - -Here is a program that parses a JSON document with ArduinoJson. - -```c++ -char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; - -StaticJsonBuffer<200> jsonBuffer; - -JsonObject& root = jsonBuffer.parseObject(json); - -const char* sensor = root["sensor"]; -long time = root["time"]; -double latitude = root["data"][0]; -double longitude = root["data"][1]; -``` - -See the [tutorial on arduinojson.org](https://arduinojson.org/doc/decoding/?utm_source=github&utm_medium=readme) - -### Serialization - -Here is a program that generates a JSON document with ArduinoJson: - -```c++ -StaticJsonBuffer<200> jsonBuffer; - -JsonObject& root = jsonBuffer.createObject(); -root["sensor"] = "gps"; -root["time"] = 1351824120; - -JsonArray& data = root.createNestedArray("data"); -data.add(48.756080); -data.add(2.302038); - -root.printTo(Serial); -// This prints: -// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} -``` - -See the [tutorial on arduinojson.org](https://arduinojson.org/doc/encoding/?utm_source=github&utm_medium=readme) - -## Documentation - -The documentation is available on [arduinojson.org](https://arduinojson.org/?utm_source=github&utm_medium=readme), here are some shortcuts: - -* The [Examples](https://arduinojson.org/example/?utm_source=github&utm_medium=readme) show how to use the library in various situations. -* The [API Reference](https://arduinojson.org/api/?utm_source=github&utm_medium=readme) contains the description of each class and function. -* The [FAQ](https://arduinojson.org/faq/?utm_source=github&utm_medium=readme) has the answer to virtually every question. -* The [ArduinoJson Assistant](https://arduinojson.org/assistant/?utm_source=github&utm_medium=readme) writes programs for you! - ---- - -Do you like this library? Please [star this project on GitHub](https://github.com/bblanchon/ArduinoJson/stargazers)! - -What? You don't like it but you *love* it? -We don't take donations anymore, but [we sell a book](https://arduinojson.org/book/?utm_source=github&utm_medium=readme), so you can help and learn at the same time! \ No newline at end of file diff --git a/printermonitor/libs/ArduinoJson/SUPPORT.md b/printermonitor/libs/ArduinoJson/SUPPORT.md deleted file mode 100644 index c47e1b1..0000000 --- a/printermonitor/libs/ArduinoJson/SUPPORT.md +++ /dev/null @@ -1,27 +0,0 @@ -# ArduinoJson Support - -First off, thank you very much for using ArduinoJson. - -We'll be very happy to help you, but first please read the following. - -## Before asking for help - -1. Read the [FAQ](https://arduinojson.org/faq/?utm_source=github&utm_medium=support) -2. Search in the [API Reference](https://arduinojson.org/api/?utm_source=github&utm_medium=support) - -If you did not find the answer, please create a [new issue on GitHub](https://github.com/bblanchon/ArduinoJson/issues/new). - -It is OK to add a comment to a currently opened issue, but please avoid adding comments to a closed issue. - -## Before hitting the Submit button - -Please provide all the relevant information: - -* Good title -* Short description of the problem -* Target platform -* Compiler model and version -* [MVCE](https://stackoverflow.com/help/mcve) -* Compiler output - -Good questions get fast answers! diff --git a/printermonitor/libs/ArduinoJson/appveyor.yml b/printermonitor/libs/ArduinoJson/appveyor.yml deleted file mode 100644 index f5d79b1..0000000 --- a/printermonitor/libs/ArduinoJson/appveyor.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: 5.13.1.{build} -environment: - matrix: - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - CMAKE_GENERATOR: Visual Studio 15 2017 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - CMAKE_GENERATOR: Visual Studio 14 2015 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 - CMAKE_GENERATOR: Visual Studio 12 2013 - - CMAKE_GENERATOR: Visual Studio 11 2012 - - CMAKE_GENERATOR: Visual Studio 10 2010 - - CMAKE_GENERATOR: MinGW Makefiles -configuration: Debug -before_build: -- set PATH=C:\MinGW\bin;%PATH:C:\Program Files\Git\usr\bin;=% # Workaround for CMake not wanting sh.exe on PATH for MinGW -- cmake -DCMAKE_BUILD_TYPE=%CONFIGURATION% -G "%CMAKE_GENERATOR%" . -build_script: -- cmake --build . --config %CONFIGURATION% -test_script: -- ctest --output-on-failure . diff --git a/printermonitor/libs/ArduinoJson/banner.svg b/printermonitor/libs/ArduinoJson/banner.svg deleted file mode 100644 index 5176096..0000000 --- a/printermonitor/libs/ArduinoJson/banner.svg +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/printermonitor/libs/ArduinoJson/keywords.txt b/printermonitor/libs/ArduinoJson/keywords.txt deleted file mode 100644 index 833cddb..0000000 --- a/printermonitor/libs/ArduinoJson/keywords.txt +++ /dev/null @@ -1,15 +0,0 @@ -JsonArray KEYWORD1 -JsonObject KEYWORD1 -JsonVariant KEYWORD1 -StaticJsonBuffer KEYWORD1 -DynamicJsonBuffer KEYWORD1 -add KEYWORD2 -createArray KEYWORD2 -createNestedArray KEYWORD2 -createNestedObject KEYWORD2 -createObject KEYWORD2 -parseArray KEYWORD2 -parseObject KEYWORD2 -prettyPrintTo KEYWORD2 -printTo KEYWORD2 -success KEYWORD2 diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson.h b/printermonitor/libs/ArduinoJson/src/ArduinoJson.h deleted file mode 100644 index 3782aea..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson.h +++ /dev/null @@ -1,17 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#ifdef __cplusplus - -#include "ArduinoJson.hpp" - -using namespace ArduinoJson; - -#else - -#error ArduinoJson requires a C++ compiler, please change file extension to .cc or .cpp - -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp deleted file mode 100644 index 445a2c8..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson.hpp +++ /dev/null @@ -1,17 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "ArduinoJson/DynamicJsonBuffer.hpp" -#include "ArduinoJson/JsonArray.hpp" -#include "ArduinoJson/JsonObject.hpp" -#include "ArduinoJson/StaticJsonBuffer.hpp" - -#include "ArduinoJson/Deserialization/JsonParserImpl.hpp" -#include "ArduinoJson/JsonArrayImpl.hpp" -#include "ArduinoJson/JsonBufferImpl.hpp" -#include "ArduinoJson/JsonObjectImpl.hpp" -#include "ArduinoJson/JsonVariantImpl.hpp" -#include "ArduinoJson/Serialization/JsonSerializerImpl.hpp" diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp deleted file mode 100644 index 82483ad..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Configuration.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -// Small or big machine? -#ifndef ARDUINOJSON_EMBEDDED_MODE -#if defined(ARDUINO) || defined(__IAR_SYSTEMS_ICC__) || defined(__XC) || \ - defined(__ARMCC_VERSION) -#define ARDUINOJSON_EMBEDDED_MODE 1 -#else -#define ARDUINOJSON_EMBEDDED_MODE 0 -#endif -#endif - -#if ARDUINOJSON_EMBEDDED_MODE - -// Store floats by default to reduce the memory usage (issue #134) -#ifndef ARDUINOJSON_USE_DOUBLE -#define ARDUINOJSON_USE_DOUBLE 0 -#endif - -// Store longs by default, because they usually match the size of a float. -#ifndef ARDUINOJSON_USE_LONG_LONG -#define ARDUINOJSON_USE_LONG_LONG 0 -#endif -#ifndef ARDUINOJSON_USE_INT64 -#define ARDUINOJSON_USE_INT64 0 -#endif - -// Embedded systems usually don't have std::string -#ifndef ARDUINOJSON_ENABLE_STD_STRING -#define ARDUINOJSON_ENABLE_STD_STRING 0 -#endif - -// Embedded systems usually don't have std::stream -#ifndef ARDUINOJSON_ENABLE_STD_STREAM -#define ARDUINOJSON_ENABLE_STD_STREAM 0 -#endif - -// Limit nesting as the stack is likely to be small -#ifndef ARDUINOJSON_DEFAULT_NESTING_LIMIT -#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 10 -#endif - -#else // ARDUINOJSON_EMBEDDED_MODE - -// On a computer we have plenty of memory so we can use doubles -#ifndef ARDUINOJSON_USE_DOUBLE -#define ARDUINOJSON_USE_DOUBLE 1 -#endif - -// Use long long when available -#ifndef ARDUINOJSON_USE_LONG_LONG -#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1800) -#define ARDUINOJSON_USE_LONG_LONG 1 -#else -#define ARDUINOJSON_USE_LONG_LONG 0 -#endif -#endif - -// Use _int64 on old versions of Visual Studio -#ifndef ARDUINOJSON_USE_INT64 -#if defined(_MSC_VER) && _MSC_VER <= 1700 -#define ARDUINOJSON_USE_INT64 1 -#else -#define ARDUINOJSON_USE_INT64 0 -#endif -#endif - -// On a computer, we can use std::string -#ifndef ARDUINOJSON_ENABLE_STD_STRING -#define ARDUINOJSON_ENABLE_STD_STRING 1 -#endif - -// On a computer, we can assume std::stream -#ifndef ARDUINOJSON_ENABLE_STD_STREAM -#define ARDUINOJSON_ENABLE_STD_STREAM 1 -#endif - -// On a computer, the stack is large so we can increase nesting limit -#ifndef ARDUINOJSON_DEFAULT_NESTING_LIMIT -#define ARDUINOJSON_DEFAULT_NESTING_LIMIT 50 -#endif - -#endif // ARDUINOJSON_EMBEDDED_MODE - -#ifdef ARDUINO - -// Enable support for Arduino String -#ifndef ARDUINOJSON_ENABLE_ARDUINO_STRING -#define ARDUINOJSON_ENABLE_ARDUINO_STRING 1 -#endif - -// Enable support for Arduino Stream -#ifndef ARDUINOJSON_ENABLE_ARDUINO_STREAM -#define ARDUINOJSON_ENABLE_ARDUINO_STREAM 1 -#endif - -#else // ARDUINO - -// Disable support for Arduino String -#ifndef ARDUINOJSON_ENABLE_ARDUINO_STRING -#define ARDUINOJSON_ENABLE_ARDUINO_STRING 0 -#endif - -// Disable support for Arduino Stream -#ifndef ARDUINOJSON_ENABLE_ARDUINO_STREAM -#define ARDUINOJSON_ENABLE_ARDUINO_STREAM 0 -#endif - -#endif // ARDUINO - -#ifndef ARDUINOJSON_ENABLE_PROGMEM -#ifdef PROGMEM -#define ARDUINOJSON_ENABLE_PROGMEM 1 -#else -#define ARDUINOJSON_ENABLE_PROGMEM 0 -#endif -#endif - -#ifndef ARDUINOJSON_ENABLE_ALIGNMENT -#ifdef ARDUINO_ARCH_AVR -// alignment isn't needed for 8-bit AVR -#define ARDUINOJSON_ENABLE_ALIGNMENT 0 -#else -// but most processors need pointers to be align on word size -#define ARDUINOJSON_ENABLE_ALIGNMENT 1 -#endif -#endif - -// Enable deprecated functions by default -#ifndef ARDUINOJSON_ENABLE_DEPRECATED -#define ARDUINOJSON_ENABLE_DEPRECATED 1 -#endif - -// Control the exponentiation threshold for big numbers -// CAUTION: cannot be more that 1e9 !!!! -#ifndef ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD -#define ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD 1e7 -#endif - -// Control the exponentiation threshold for small numbers -#ifndef ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD -#define ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD 1e-5 -#endif - -#if ARDUINOJSON_USE_LONG_LONG && ARDUINOJSON_USE_INT64 -#error ARDUINOJSON_USE_LONG_LONG and ARDUINOJSON_USE_INT64 cannot be set together -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp deleted file mode 100644 index a0efa2c..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp +++ /dev/null @@ -1,37 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -class Encoding { - public: - // Optimized for code size on a 8-bit AVR - static char escapeChar(char c) { - const char *p = escapeTable(false); - while (p[0] && p[1] != c) { - p += 2; - } - return p[0]; - } - - // Optimized for code size on a 8-bit AVR - static char unescapeChar(char c) { - const char *p = escapeTable(true); - for (;;) { - if (p[0] == '\0') return c; - if (p[0] == c) return p[1]; - p += 2; - } - } - - private: - static const char *escapeTable(bool excludeIdenticals) { - return &"\"\"\\\\b\bf\fn\nr\rt\t"[excludeIdenticals ? 4 : 0]; - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp deleted file mode 100644 index 443aae4..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../JsonBuffer.hpp" - -namespace ArduinoJson { -namespace Internals { - -class JsonBufferAllocated { - public: - void *operator new(size_t n, JsonBuffer *jsonBuffer) throw() { - if (!jsonBuffer) return NULL; - return jsonBuffer->alloc(n); - } - - void operator delete(void *, JsonBuffer *)throw(); -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp deleted file mode 100644 index 0ed4214..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" - -namespace ArduinoJson { -namespace Internals { - -#if ARDUINOJSON_USE_DOUBLE -typedef double JsonFloat; -#else -typedef float JsonFloat; -#endif -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp deleted file mode 100644 index c8ddd00..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" - -namespace ArduinoJson { -namespace Internals { - -#if ARDUINOJSON_USE_LONG_LONG -typedef long long JsonInteger; -typedef unsigned long long JsonUInt; -#elif ARDUINOJSON_USE_INT64 -typedef __int64 JsonInteger; -typedef unsigned _int64 JsonUInt; -#else -typedef long JsonInteger; -typedef unsigned long JsonUInt; -#endif -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp deleted file mode 100644 index 8f202c5..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A metafunction that returns the type of the value returned by -// JsonVariant::as() -template -struct JsonVariantAs { - typedef T type; -}; - -template <> -struct JsonVariantAs { - typedef const char* type; -}; - -template <> -struct JsonVariantAs { - typedef JsonArray& type; -}; - -template <> -struct JsonVariantAs { - typedef const JsonArray& type; -}; - -template <> -struct JsonVariantAs { - typedef JsonObject& type; -}; - -template <> -struct JsonVariantAs { - typedef const JsonObject& type; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp deleted file mode 100644 index c525a60..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonFloat.hpp" -#include "JsonInteger.hpp" - -namespace ArduinoJson { - -// Forward declarations -class JsonArray; -class JsonObject; - -namespace Internals { -// A union that defines the actual content of a JsonVariant. -// The enum JsonVariantType determines which member is in use. -union JsonVariantContent { - JsonFloat asFloat; // used for double and float - JsonUInt asInteger; // used for bool, char, short, int and longs - const char* asString; // asString can be null - JsonArray* asArray; // asArray cannot be null - JsonObject* asObject; // asObject cannot be null -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp deleted file mode 100644 index 57ecc83..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -template -struct JsonVariantDefault { - static T get() { - return T(); - } -}; - -template -struct JsonVariantDefault : JsonVariantDefault {}; - -template -struct JsonVariantDefault : JsonVariantDefault {}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp deleted file mode 100644 index 21f890e..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -class JsonArray; -class JsonObject; - -namespace Internals { - -// Enumerated type to know the current type of a JsonVariant. -// The value determines which member of JsonVariantContent is used. -enum JsonVariantType { - JSON_UNDEFINED, // JsonVariant has not been initialized - JSON_UNPARSED, // JsonVariant contains an unparsed string - JSON_STRING, // JsonVariant stores a const char* - JSON_BOOLEAN, // JsonVariant stores a bool - JSON_POSITIVE_INTEGER, // JsonVariant stores an JsonUInt - JSON_NEGATIVE_INTEGER, // JsonVariant stores an JsonUInt that must be negated - JSON_ARRAY, // JsonVariant stores a pointer to a JsonArray - JSON_OBJECT, // JsonVariant stores a pointer to a JsonObject - JSON_FLOAT // JsonVariant stores a JsonFloat -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp deleted file mode 100644 index 506308c..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/List.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../JsonBuffer.hpp" -#include "ListConstIterator.hpp" -#include "ListIterator.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A singly linked list of T. -// The linked list is composed of ListNode. -// It is derived by JsonArray and JsonObject -template -class List { - public: - typedef T value_type; - typedef ListNode node_type; - typedef ListIterator iterator; - typedef ListConstIterator const_iterator; - - // Creates an empty List attached to a JsonBuffer. - // The JsonBuffer allows to allocate new nodes. - // When buffer is NULL, the List is not able to grow and success() returns - // false. This is used to identify bad memory allocations and parsing - // failures. - explicit List(JsonBuffer *buffer) : _buffer(buffer), _firstNode(NULL) {} - - // Returns true if the object is valid - // Would return false in the following situation: - // - the memory allocation failed (StaticJsonBuffer was too small) - // - the JSON parsing failed - bool success() const { - return _buffer != NULL; - } - - // Returns the numbers of elements in the list. - // For a JsonObject, it would return the number of key-value pairs - size_t size() const { - size_t nodeCount = 0; - for (node_type *node = _firstNode; node; node = node->next) nodeCount++; - return nodeCount; - } - - iterator add() { - node_type *newNode = new (_buffer) node_type(); - - if (_firstNode) { - node_type *lastNode = _firstNode; - while (lastNode->next) lastNode = lastNode->next; - lastNode->next = newNode; - } else { - _firstNode = newNode; - } - - return iterator(newNode); - } - - iterator begin() { - return iterator(_firstNode); - } - iterator end() { - return iterator(NULL); - } - - const_iterator begin() const { - return const_iterator(_firstNode); - } - const_iterator end() const { - return const_iterator(NULL); - } - - void remove(iterator it) { - node_type *nodeToRemove = it._node; - if (!nodeToRemove) return; - if (nodeToRemove == _firstNode) { - _firstNode = nodeToRemove->next; - } else { - for (node_type *node = _firstNode; node; node = node->next) - if (node->next == nodeToRemove) node->next = nodeToRemove->next; - } - } - - protected: - JsonBuffer *_buffer; - - private: - node_type *_firstNode; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp deleted file mode 100644 index a6af685..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "ListNode.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A read-only forward itertor for List -template -class ListConstIterator { - public: - explicit ListConstIterator(const ListNode *node = NULL) : _node(node) {} - - const T &operator*() const { - return _node->content; - } - const T *operator->() { - return &_node->content; - } - - bool operator==(const ListConstIterator &other) const { - return _node == other._node; - } - - bool operator!=(const ListConstIterator &other) const { - return _node != other._node; - } - - ListConstIterator &operator++() { - if (_node) _node = _node->next; - return *this; - } - - ListConstIterator &operator+=(size_t distance) { - while (_node && distance) { - _node = _node->next; - --distance; - } - return *this; - } - - private: - const ListNode *_node; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp deleted file mode 100644 index 01fa287..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "ListConstIterator.hpp" -#include "ListNode.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -class List; - -// A read-write forward iterator for List -template -class ListIterator { - friend class List; - - public: - explicit ListIterator(ListNode *node = NULL) : _node(node) {} - - T &operator*() const { - return _node->content; - } - T *operator->() { - return &_node->content; - } - - bool operator==(const ListIterator &other) const { - return _node == other._node; - } - - bool operator!=(const ListIterator &other) const { - return _node != other._node; - } - - ListIterator &operator++() { - if (_node) _node = _node->next; - return *this; - } - - ListIterator &operator+=(size_t distance) { - while (_node && distance) { - _node = _node->next; - --distance; - } - return *this; - } - - operator ListConstIterator() const { - return ListConstIterator(_node); - } - - private: - ListNode *_node; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp deleted file mode 100644 index c090712..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include // for NULL - -#include "JsonBufferAllocated.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A node for a singly-linked list. -// Used by List and its iterators. -template -struct ListNode : public Internals::JsonBufferAllocated { - ListNode() throw() : next(NULL) {} - - ListNode *next; - T content; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp deleted file mode 100644 index 73f3d8e..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A type that cannot be copied -class NonCopyable { - protected: - NonCopyable() {} - - private: - // copy constructor is private - NonCopyable(const NonCopyable&); - - // copy operator is private - NonCopyable& operator=(const NonCopyable&); -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp deleted file mode 100644 index 1e49117..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A type that is meant to be used by reference only (JsonArray and JsonObject) -class ReferenceType { - public: - bool operator==(const ReferenceType& other) const { - // two JsonArray are equal if they are the same instance - // (we don't compare the content) - return this == &other; - } - - bool operator!=(const ReferenceType& other) const { - return this != &other; - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp deleted file mode 100644 index 9750f1a..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../JsonBuffer.hpp" -#include "../JsonVariant.hpp" -#include "../StringTraits/StringTraits.hpp" -#include "../TypeTraits/EnableIf.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -struct ValueSaver { - template - static bool save(JsonBuffer*, Destination& destination, Source source) { - destination = source; - return true; - } -}; - -template -struct ValueSaver< - Source, typename EnableIf::should_duplicate>::type> { - template - static bool save(JsonBuffer* buffer, Destination& dest, Source source) { - if (!StringTraits::is_null(source)) { - typename StringTraits::duplicate_t dup = - StringTraits::duplicate(source, buffer); - if (!dup) return false; - dest = dup; - } else { - dest = reinterpret_cast(0); - } - return true; - } -}; - -// const char*, const signed char*, const unsigned char* -template -struct ValueSaver< - Char*, typename EnableIf::should_duplicate>::type> { - template - static bool save(JsonBuffer*, Destination& dest, Char* source) { - dest = reinterpret_cast(source); - return true; - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp deleted file mode 100644 index c2c48eb..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { -template -void skipSpacesAndComments(TInput& input) { - for (;;) { - switch (input.current()) { - // spaces - case ' ': - case '\t': - case '\r': - case '\n': - input.move(); - continue; - - // comments - case '/': - switch (input.next()) { - // C-style block comment - case '*': - input.move(); // skip '/' - // no need to skip '*' - for (;;) { - input.move(); - if (input.current() == '\0') return; - if (input.current() == '*' && input.next() == '/') { - input.move(); // skip '*' - input.move(); // skip '/' - break; - } - } - break; - - // C++-style line comment - case '/': - // not need to skip "//" - for (;;) { - input.move(); - if (input.current() == '\0') return; - if (input.current() == '\n') break; - } - break; - - // not a comment, just a '/' - default: - return; - } - break; - - default: - return; - } - } -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp deleted file mode 100644 index c348e75..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParser.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../JsonBuffer.hpp" -#include "../JsonVariant.hpp" -#include "../TypeTraits/IsConst.hpp" -#include "StringWriter.hpp" - -namespace ArduinoJson { -namespace Internals { - -// Parse JSON string to create JsonArrays and JsonObjects -// This internal class is not indended to be used directly. -// Instead, use JsonBuffer.parseArray() or .parseObject() -template -class JsonParser { - public: - JsonParser(JsonBuffer *buffer, TReader reader, TWriter writer, - uint8_t nestingLimit) - : _buffer(buffer), - _reader(reader), - _writer(writer), - _nestingLimit(nestingLimit) {} - - JsonArray &parseArray(); - JsonObject &parseObject(); - - JsonVariant parseVariant() { - JsonVariant result; - parseAnythingTo(&result); - return result; - } - - private: - JsonParser &operator=(const JsonParser &); // non-copiable - - static bool eat(TReader &, char charToSkip); - FORCE_INLINE bool eat(char charToSkip) { - return eat(_reader, charToSkip); - } - - const char *parseString(); - bool parseAnythingTo(JsonVariant *destination); - FORCE_INLINE bool parseAnythingToUnsafe(JsonVariant *destination); - - inline bool parseArrayTo(JsonVariant *destination); - inline bool parseObjectTo(JsonVariant *destination); - inline bool parseStringTo(JsonVariant *destination); - - static inline bool isBetween(char c, char min, char max) { - return min <= c && c <= max; - } - - static inline bool canBeInNonQuotedString(char c) { - return isBetween(c, '0', '9') || isBetween(c, '_', 'z') || - isBetween(c, 'A', 'Z') || c == '+' || c == '-' || c == '.'; - } - - static inline bool isQuote(char c) { - return c == '\'' || c == '\"'; - } - - JsonBuffer *_buffer; - TReader _reader; - TWriter _writer; - uint8_t _nestingLimit; -}; - -template -struct JsonParserBuilder { - typedef typename StringTraits::Reader InputReader; - typedef JsonParser TParser; - - static TParser makeParser(TJsonBuffer *buffer, TString &json, - uint8_t nestingLimit) { - return TParser(buffer, InputReader(json), *buffer, nestingLimit); - } -}; - -template -struct JsonParserBuilder::value>::type> { - typedef typename StringTraits::Reader TReader; - typedef StringWriter TWriter; - typedef JsonParser TParser; - - static TParser makeParser(TJsonBuffer *buffer, TChar *json, - uint8_t nestingLimit) { - return TParser(buffer, TReader(json), TWriter(json), nestingLimit); - } -}; - -template -inline typename JsonParserBuilder::TParser makeParser( - TJsonBuffer *buffer, TString &json, uint8_t nestingLimit) { - return JsonParserBuilder::makeParser(buffer, json, - nestingLimit); -} -} // namespace Internals -} // namespace ArduinoJson diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp deleted file mode 100644 index 33ad42e..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/JsonParserImpl.hpp +++ /dev/null @@ -1,192 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Comments.hpp" -#include "JsonParser.hpp" - -template -inline bool ArduinoJson::Internals::JsonParser::eat( - TReader &reader, char charToSkip) { - skipSpacesAndComments(reader); - if (reader.current() != charToSkip) return false; - reader.move(); - return true; -} - -template -inline bool -ArduinoJson::Internals::JsonParser::parseAnythingTo( - JsonVariant *destination) { - if (_nestingLimit == 0) return false; - _nestingLimit--; - bool success = parseAnythingToUnsafe(destination); - _nestingLimit++; - return success; -} - -template -inline bool -ArduinoJson::Internals::JsonParser::parseAnythingToUnsafe( - JsonVariant *destination) { - skipSpacesAndComments(_reader); - - switch (_reader.current()) { - case '[': - return parseArrayTo(destination); - - case '{': - return parseObjectTo(destination); - - default: - return parseStringTo(destination); - } -} - -template -inline ArduinoJson::JsonArray & -ArduinoJson::Internals::JsonParser::parseArray() { - // Create an empty array - JsonArray &array = _buffer->createArray(); - - // Check opening braket - if (!eat('[')) goto ERROR_MISSING_BRACKET; - if (eat(']')) goto SUCCESS_EMPTY_ARRAY; - - // Read each value - for (;;) { - // 1 - Parse value - JsonVariant value; - if (!parseAnythingTo(&value)) goto ERROR_INVALID_VALUE; - if (!array.add(value)) goto ERROR_NO_MEMORY; - - // 2 - More values? - if (eat(']')) goto SUCCES_NON_EMPTY_ARRAY; - if (!eat(',')) goto ERROR_MISSING_COMMA; - } - -SUCCESS_EMPTY_ARRAY: -SUCCES_NON_EMPTY_ARRAY: - return array; - -ERROR_INVALID_VALUE: -ERROR_MISSING_BRACKET: -ERROR_MISSING_COMMA: -ERROR_NO_MEMORY: - return JsonArray::invalid(); -} - -template -inline bool ArduinoJson::Internals::JsonParser::parseArrayTo( - JsonVariant *destination) { - JsonArray &array = parseArray(); - if (!array.success()) return false; - - *destination = array; - return true; -} - -template -inline ArduinoJson::JsonObject & -ArduinoJson::Internals::JsonParser::parseObject() { - // Create an empty object - JsonObject &object = _buffer->createObject(); - - // Check opening brace - if (!eat('{')) goto ERROR_MISSING_BRACE; - if (eat('}')) goto SUCCESS_EMPTY_OBJECT; - - // Read each key value pair - for (;;) { - // 1 - Parse key - const char *key = parseString(); - if (!key) goto ERROR_INVALID_KEY; - if (!eat(':')) goto ERROR_MISSING_COLON; - - // 2 - Parse value - JsonVariant value; - if (!parseAnythingTo(&value)) goto ERROR_INVALID_VALUE; - if (!object.set(key, value)) goto ERROR_NO_MEMORY; - - // 3 - More keys/values? - if (eat('}')) goto SUCCESS_NON_EMPTY_OBJECT; - if (!eat(',')) goto ERROR_MISSING_COMMA; - } - -SUCCESS_EMPTY_OBJECT: -SUCCESS_NON_EMPTY_OBJECT: - return object; - -ERROR_INVALID_KEY: -ERROR_INVALID_VALUE: -ERROR_MISSING_BRACE: -ERROR_MISSING_COLON: -ERROR_MISSING_COMMA: -ERROR_NO_MEMORY: - return JsonObject::invalid(); -} - -template -inline bool ArduinoJson::Internals::JsonParser::parseObjectTo( - JsonVariant *destination) { - JsonObject &object = parseObject(); - if (!object.success()) return false; - - *destination = object; - return true; -} - -template -inline const char * -ArduinoJson::Internals::JsonParser::parseString() { - typename RemoveReference::type::String str = _writer.startString(); - - skipSpacesAndComments(_reader); - char c = _reader.current(); - - if (isQuote(c)) { // quotes - _reader.move(); - char stopChar = c; - for (;;) { - c = _reader.current(); - if (c == '\0') break; - _reader.move(); - - if (c == stopChar) break; - - if (c == '\\') { - // replace char - c = Encoding::unescapeChar(_reader.current()); - if (c == '\0') break; - _reader.move(); - } - - str.append(c); - } - } else { // no quotes - for (;;) { - if (!canBeInNonQuotedString(c)) break; - _reader.move(); - str.append(c); - c = _reader.current(); - } - } - - return str.c_str(); -} - -template -inline bool ArduinoJson::Internals::JsonParser::parseStringTo( - JsonVariant *destination) { - bool hasQuotes = isQuote(_reader.current()); - const char *value = parseString(); - if (value == NULL) return false; - if (hasQuotes) { - *destination = value; - } else { - *destination = RawJson(value); - } - return true; -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp deleted file mode 100644 index fd5507e..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -template -class StringWriter { - public: - class String { - public: - String(TChar** ptr) : _writePtr(ptr), _startPtr(*ptr) {} - - void append(char c) { - *(*_writePtr)++ = TChar(c); - } - - const char* c_str() const { - *(*_writePtr)++ = 0; - return reinterpret_cast(_startPtr); - } - - private: - TChar** _writePtr; - TChar* _startPtr; - }; - - StringWriter(TChar* buffer) : _ptr(buffer) {} - - String startString() { - return String(&_ptr); - } - - private: - TChar* _ptr; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp deleted file mode 100644 index bdbd5dd..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/DynamicJsonBuffer.hpp +++ /dev/null @@ -1,170 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonBufferBase.hpp" - -#include - -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnon-virtual-dtor" -#elif defined(__GNUC__) -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -#pragma GCC diagnostic push -#endif -#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" -#endif - -namespace ArduinoJson { -namespace Internals { -class DefaultAllocator { - public: - void* allocate(size_t size) { - return malloc(size); - } - void deallocate(void* pointer) { - free(pointer); - } -}; - -template -class DynamicJsonBufferBase - : public JsonBufferBase > { - struct Block; - struct EmptyBlock { - Block* next; - size_t capacity; - size_t size; - }; - struct Block : EmptyBlock { - uint8_t data[1]; - }; - - public: - enum { EmptyBlockSize = sizeof(EmptyBlock) }; - - DynamicJsonBufferBase(size_t initialSize = 256) - : _head(NULL), _nextBlockCapacity(initialSize) {} - - ~DynamicJsonBufferBase() { - clear(); - } - - // Gets the number of bytes occupied in the buffer - size_t size() const { - size_t total = 0; - for (const Block* b = _head; b; b = b->next) total += b->size; - return total; - } - - // Allocates the specified amount of bytes in the buffer - virtual void* alloc(size_t bytes) { - alignNextAlloc(); - return canAllocInHead(bytes) ? allocInHead(bytes) : allocInNewBlock(bytes); - } - - // Resets the buffer. - // USE WITH CAUTION: this invalidates all previously allocated data - void clear() { - Block* currentBlock = _head; - while (currentBlock != NULL) { - _nextBlockCapacity = currentBlock->capacity; - Block* nextBlock = currentBlock->next; - _allocator.deallocate(currentBlock); - currentBlock = nextBlock; - } - _head = 0; - } - - class String { - public: - String(DynamicJsonBufferBase* parent) - : _parent(parent), _start(NULL), _length(0) {} - - void append(char c) { - if (_parent->canAllocInHead(1)) { - char* end = static_cast(_parent->allocInHead(1)); - *end = c; - if (_length == 0) _start = end; - } else { - char* newStart = - static_cast(_parent->allocInNewBlock(_length + 1)); - if (_start && newStart) memcpy(newStart, _start, _length); - if (newStart) newStart[_length] = c; - _start = newStart; - } - _length++; - } - - const char* c_str() { - append(0); - return _start; - } - - private: - DynamicJsonBufferBase* _parent; - char* _start; - size_t _length; - }; - - String startString() { - return String(this); - } - - private: - void alignNextAlloc() { - if (_head) _head->size = this->round_size_up(_head->size); - } - - bool canAllocInHead(size_t bytes) const { - return _head != NULL && _head->size + bytes <= _head->capacity; - } - - void* allocInHead(size_t bytes) { - void* p = _head->data + _head->size; - _head->size += bytes; - return p; - } - - void* allocInNewBlock(size_t bytes) { - size_t capacity = _nextBlockCapacity; - if (bytes > capacity) capacity = bytes; - if (!addNewBlock(capacity)) return NULL; - _nextBlockCapacity *= 2; - return allocInHead(bytes); - } - - bool addNewBlock(size_t capacity) { - size_t bytes = EmptyBlockSize + capacity; - Block* block = static_cast(_allocator.allocate(bytes)); - if (block == NULL) return false; - block->capacity = capacity; - block->size = 0; - block->next = _head; - _head = block; - return true; - } - - TAllocator _allocator; - Block* _head; - size_t _nextBlockCapacity; -}; -} - -#if defined(__clang__) -#pragma clang diagnostic pop -#elif defined(__GNUC__) -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -#pragma GCC diagnostic pop -#endif -#endif - -// Implements a JsonBuffer with dynamic memory allocation. -// You are strongly encouraged to consider using StaticJsonBuffer which is much -// more suitable for embedded systems. -typedef Internals::DynamicJsonBufferBase - DynamicJsonBuffer; -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp deleted file mode 100644 index 2acd2a1..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArray.hpp +++ /dev/null @@ -1,227 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Data/JsonBufferAllocated.hpp" -#include "Data/List.hpp" -#include "Data/ReferenceType.hpp" -#include "Data/ValueSaver.hpp" -#include "JsonVariant.hpp" -#include "Serialization/JsonPrintable.hpp" -#include "StringTraits/StringTraits.hpp" -#include "TypeTraits/EnableIf.hpp" -#include "TypeTraits/IsArray.hpp" -#include "TypeTraits/IsFloatingPoint.hpp" -#include "TypeTraits/IsSame.hpp" - -// Returns the size (in bytes) of an array with n elements. -// Can be very handy to determine the size of a StaticJsonBuffer. -#define JSON_ARRAY_SIZE(NUMBER_OF_ELEMENTS) \ - (sizeof(JsonArray) + (NUMBER_OF_ELEMENTS) * sizeof(JsonArray::node_type)) - -namespace ArduinoJson { - -// Forward declarations -class JsonObject; -class JsonBuffer; -namespace Internals { -class JsonArraySubscript; -} - -// An array of JsonVariant. -// -// The constructor is private, instances must be created via -// JsonBuffer::createArray() or JsonBuffer::parseArray(). -// A JsonArray can be serialized to a JSON string via JsonArray::printTo(). -// It can also be deserialized from a JSON string via JsonBuffer::parseArray(). -class JsonArray : public Internals::JsonPrintable, - public Internals::ReferenceType, - public Internals::NonCopyable, - public Internals::List, - public Internals::JsonBufferAllocated { - public: - // Create an empty JsonArray attached to the specified JsonBuffer. - // You should not call this constructor directly. - // Instead, use JsonBuffer::createArray() or JsonBuffer::parseArray(). - explicit JsonArray(JsonBuffer *buffer) throw() - : Internals::List(buffer) {} - - // Gets the value at the specified index - const Internals::JsonArraySubscript operator[](size_t index) const; - - // Gets or sets the value at specified index - Internals::JsonArraySubscript operator[](size_t index); - - // Adds the specified value at the end of the array. - // - // bool add(TValue); - // TValue = bool, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - bool add(const T &value) { - return add_impl(value); - } - // - // bool add(TValue); - // TValue = char*, const char*, const FlashStringHelper* - template - bool add(T *value) { - return add_impl(value); - } - // - // bool add(TValue value, uint8_t decimals); - // TValue = float, double - template - DEPRECATED("Second argument is not supported anymore") - bool add(T value, uint8_t) { - return add_impl(JsonVariant(value)); - } - - // Sets the value at specified index. - // - // bool add(size_t index, const TValue&); - // TValue = bool, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - bool set(size_t index, const T &value) { - return set_impl(index, value); - } - // - // bool add(size_t index, TValue); - // TValue = char*, const char*, const FlashStringHelper* - template - bool set(size_t index, T *value) { - return set_impl(index, value); - } - // - // bool set(size_t index, TValue value, uint8_t decimals); - // TValue = float, double - template - typename Internals::EnableIf::value, bool>::type - set(size_t index, T value, uint8_t decimals) { - return set_impl(index, JsonVariant(value, decimals)); - } - - // Gets the value at the specified index. - template - typename Internals::JsonVariantAs::type get(size_t index) const { - const_iterator it = begin() += index; - return it != end() ? it->as() : Internals::JsonVariantDefault::get(); - } - - // Check the type of the value at specified index. - template - bool is(size_t index) const { - const_iterator it = begin() += index; - return it != end() ? it->is() : false; - } - - // Creates a JsonArray and adds a reference at the end of the array. - // It's a shortcut for JsonBuffer::createArray() and JsonArray::add() - JsonArray &createNestedArray(); - - // Creates a JsonObject and adds a reference at the end of the array. - // It's a shortcut for JsonBuffer::createObject() and JsonArray::add() - JsonObject &createNestedObject(); - - // Removes element at specified index. - void remove(size_t index) { - remove(begin() += index); - } - using Internals::List::remove; - - // Returns a reference an invalid JsonArray. - // This object is meant to replace a NULL pointer. - // This is used when memory allocation or JSON parsing fail. - static JsonArray &invalid() { - static JsonArray instance(NULL); - return instance; - } - - // Imports a 1D array - template - bool copyFrom(T (&array)[N]) { - return copyFrom(array, N); - } - - // Imports a 1D array - template - bool copyFrom(T *array, size_t len) { - bool ok = true; - for (size_t i = 0; i < len; i++) { - ok &= add(array[i]); - } - return ok; - } - - // Imports a 2D array - template - bool copyFrom(T (&array)[N1][N2]) { - bool ok = true; - for (size_t i = 0; i < N1; i++) { - JsonArray &nestedArray = createNestedArray(); - for (size_t j = 0; j < N2; j++) { - ok &= nestedArray.add(array[i][j]); - } - } - return ok; - } - - // Exports a 1D array - template - size_t copyTo(T (&array)[N]) const { - return copyTo(array, N); - } - - // Exports a 1D array - template - size_t copyTo(T *array, size_t len) const { - size_t i = 0; - for (const_iterator it = begin(); it != end() && i < len; ++it) - array[i++] = *it; - return i; - } - - // Exports a 2D array - template - void copyTo(T (&array)[N1][N2]) const { - size_t i = 0; - for (const_iterator it = begin(); it != end() && i < N1; ++it) { - it->as().copyTo(array[i++]); - } - } - -#if ARDUINOJSON_ENABLE_DEPRECATED - DEPRECATED("use remove() instead") - FORCE_INLINE void removeAt(size_t index) { - return remove(index); - } -#endif - - private: - template - bool set_impl(size_t index, TValueRef value) { - iterator it = begin() += index; - if (it == end()) return false; - return Internals::ValueSaver::save(_buffer, *it, value); - } - - template - bool add_impl(TValueRef value) { - iterator it = Internals::List::add(); - if (it == end()) return false; - return Internals::ValueSaver::save(_buffer, *it, value); - } -}; - -namespace Internals { -template <> -struct JsonVariantDefault { - static JsonArray &get() { - return JsonArray::invalid(); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp deleted file mode 100644 index 924b7ea..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonArray.hpp" -#include "JsonArraySubscript.hpp" -#include "JsonObject.hpp" - -namespace ArduinoJson { - -inline JsonArray &JsonArray::createNestedArray() { - if (!_buffer) return JsonArray::invalid(); - JsonArray &array = _buffer->createArray(); - add(array); - return array; -} - -inline JsonObject &JsonArray::createNestedObject() { - if (!_buffer) return JsonObject::invalid(); - JsonObject &object = _buffer->createObject(); - add(object); - return object; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp deleted file mode 100644 index afb4dc1..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonArraySubscript.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Configuration.hpp" -#include "JsonVariantBase.hpp" - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4522) -#endif - -namespace ArduinoJson { -namespace Internals { -class JsonArraySubscript : public JsonVariantBase { - public: - FORCE_INLINE JsonArraySubscript(JsonArray& array, size_t index) - : _array(array), _index(index) {} - - FORCE_INLINE JsonArraySubscript& operator=(const JsonArraySubscript& src) { - _array.set(_index, src); - return *this; - } - - // Replaces the value - // - // operator=(const TValue&) - // TValue = bool, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - FORCE_INLINE JsonArraySubscript& operator=(const T& src) { - _array.set(_index, src); - return *this; - } - // - // operator=(TValue) - // TValue = char*, const char*, const FlashStringHelper* - template - FORCE_INLINE JsonArraySubscript& operator=(T* src) { - _array.set(_index, src); - return *this; - } - - FORCE_INLINE bool success() const { - return _index < _array.size(); - } - - template - FORCE_INLINE typename JsonVariantAs::type as() const { - return _array.get(_index); - } - - template - FORCE_INLINE bool is() const { - return _array.is(_index); - } - - // Replaces the value - // - // bool set(const TValue&) - // TValue = bool, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - FORCE_INLINE bool set(const TValue& value) { - return _array.set(_index, value); - } - // - // bool set(TValue) - // TValue = char*, const char*, const FlashStringHelper* - template - FORCE_INLINE bool set(TValue* value) { - return _array.set(_index, value); - } - // - // bool set(TValue, uint8_t decimals); - // TValue = float, double - template - DEPRECATED("Second argument is not supported anymore") - FORCE_INLINE bool set(const TValue& value, uint8_t) { - return _array.set(_index, value); - } - - private: - JsonArray& _array; - const size_t _index; -}; - -template -inline JsonArraySubscript JsonVariantSubscripts::operator[]( - size_t index) { - return impl()->template as()[index]; -} - -template -inline const JsonArraySubscript JsonVariantSubscripts::operator[]( - size_t index) const { - return impl()->template as()[index]; -} - -#if ARDUINOJSON_ENABLE_STD_STREAM -inline std::ostream& operator<<(std::ostream& os, - const JsonArraySubscript& source) { - return source.printTo(os); -} -#endif -} - -inline Internals::JsonArraySubscript JsonArray::operator[](size_t index) { - return Internals::JsonArraySubscript(*this, index); -} - -inline const Internals::JsonArraySubscript JsonArray::operator[]( - size_t index) const { - return Internals::JsonArraySubscript(*const_cast(this), index); -} -} - -#ifdef _MSC_VER -#pragma warning(pop) -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp deleted file mode 100644 index 26101e0..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBuffer.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include // for size_t -#include // for uint8_t -#include - -#include "Data/NonCopyable.hpp" -#include "JsonVariant.hpp" -#include "TypeTraits/EnableIf.hpp" -#include "TypeTraits/IsArray.hpp" - -namespace ArduinoJson { -class JsonArray; -class JsonObject; - -// Entry point for using the library. -// -// Handle the memory management (done in derived classes) and calls the parser. -// This abstract class is implemented by StaticJsonBuffer which implements a -// fixed memory allocation. -class JsonBuffer : Internals::NonCopyable { - public: - // Allocates an empty JsonArray. - // - // Returns a reference to the new JsonArray or JsonArray::invalid() if the - // allocation fails. - JsonArray &createArray(); - - // Allocates an empty JsonObject. - // - // Returns a reference to the new JsonObject or JsonObject::invalid() if the - // allocation fails. - JsonObject &createObject(); - - // Duplicates a string - // - // const char* strdup(TValue); - // TValue = const std::string&, const String&, - template - DEPRECATED("char* are duplicated, you don't need strdup() anymore") - typename Internals::EnableIf::value, - const char *>::type strdup(const TString &src) { - return Internals::StringTraits::duplicate(src, this); - } - // - // const char* strdup(TValue); - // TValue = char*, const char*, const FlashStringHelper* - template - DEPRECATED("char* are duplicated, you don't need strdup() anymore") - const char *strdup(TString *src) { - return Internals::StringTraits::duplicate(src, this); - } - - // Allocates n bytes in the JsonBuffer. - // Return a pointer to the allocated memory or NULL if allocation fails. - virtual void *alloc(size_t size) = 0; - - protected: - // CAUTION: NO VIRTUAL DESTRUCTOR! - // If we add a virtual constructor the Arduino compiler will add malloc() - // and free() to the binary, adding 706 useless bytes. - ~JsonBuffer() {} - - // Preserve aligment if necessary - static FORCE_INLINE size_t round_size_up(size_t bytes) { -#if ARDUINOJSON_ENABLE_ALIGNMENT - const size_t x = sizeof(void *) - 1; - return (bytes + x) & ~x; -#else - return bytes; -#endif - } -}; -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp deleted file mode 100644 index 1e771bf..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferBase.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Deserialization/JsonParser.hpp" - -namespace ArduinoJson { -namespace Internals { -template -class JsonBufferBase : public JsonBuffer { - public: - // Allocates and populate a JsonArray from a JSON string. - // - // The First argument is a pointer to the JSON string, the memory must be - // writable - // because the parser will insert null-terminators and replace escaped chars. - // - // The second argument set the nesting limit - // - // Returns a reference to the new JsonObject or JsonObject::invalid() if the - // allocation fails. - // With this overload, the JsonBuffer will make a copy of the string - // - // JsonArray& parseArray(TString); - // TString = const std::string&, const String& - template - typename Internals::EnableIf::value, - JsonArray &>::type - parseArray(const TString &json, - uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseArray(); - } - // - // JsonArray& parseArray(TString); - // TString = const char*, const char[N], const FlashStringHelper* - template - JsonArray &parseArray( - TString *json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseArray(); - } - // - // JsonArray& parseArray(TString); - // TString = std::istream&, Stream& - template - JsonArray &parseArray( - TString &json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseArray(); - } - - // Allocates and populate a JsonObject from a JSON string. - // - // The First argument is a pointer to the JSON string, the memory must be - // writable - // because the parser will insert null-terminators and replace escaped chars. - // - // The second argument set the nesting limit - // - // Returns a reference to the new JsonObject or JsonObject::invalid() if the - // allocation fails. - // - // JsonObject& parseObject(TString); - // TString = const std::string&, const String& - template - typename Internals::EnableIf::value, - JsonObject &>::type - parseObject(const TString &json, - uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseObject(); - } - // - // JsonObject& parseObject(TString); - // TString = const char*, const char[N], const FlashStringHelper* - template - JsonObject &parseObject( - TString *json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseObject(); - } - // - // JsonObject& parseObject(TString); - // TString = std::istream&, Stream& - template - JsonObject &parseObject( - TString &json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseObject(); - } - - // Generalized version of parseArray() and parseObject(), also works for - // integral types. - // - // JsonVariant parse(TString); - // TString = const std::string&, const String& - template - typename Internals::EnableIf::value, - JsonVariant>::type - parse(const TString &json, - uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseVariant(); - } - // - // JsonVariant parse(TString); - // TString = const char*, const char[N], const FlashStringHelper* - template - JsonVariant parse(TString *json, - uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseVariant(); - } - // - // JsonVariant parse(TString); - // TString = std::istream&, Stream& - template - JsonVariant parse(TString &json, - uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { - return Internals::makeParser(that(), json, nestingLimit).parseVariant(); - } - - protected: - ~JsonBufferBase() {} - - private: - TDerived *that() { - return static_cast(this); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp deleted file mode 100644 index cdea374..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp +++ /dev/null @@ -1,17 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Deserialization/JsonParser.hpp" - -inline ArduinoJson::JsonArray &ArduinoJson::JsonBuffer::createArray() { - JsonArray *ptr = new (this) JsonArray(this); - return ptr ? *ptr : JsonArray::invalid(); -} - -inline ArduinoJson::JsonObject &ArduinoJson::JsonBuffer::createObject() { - JsonObject *ptr = new (this) JsonObject(this); - return ptr ? *ptr : JsonObject::invalid(); -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp deleted file mode 100644 index c03bfa5..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObject.hpp +++ /dev/null @@ -1,322 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Data/JsonBufferAllocated.hpp" -#include "Data/List.hpp" -#include "Data/ReferenceType.hpp" -#include "Data/ValueSaver.hpp" -#include "JsonPair.hpp" -#include "Serialization/JsonPrintable.hpp" -#include "StringTraits/StringTraits.hpp" -#include "TypeTraits/EnableIf.hpp" -#include "TypeTraits/IsArray.hpp" -#include "TypeTraits/IsFloatingPoint.hpp" -#include "TypeTraits/IsSame.hpp" - -// Returns the size (in bytes) of an object with n elements. -// Can be very handy to determine the size of a StaticJsonBuffer. -#define JSON_OBJECT_SIZE(NUMBER_OF_ELEMENTS) \ - (sizeof(JsonObject) + (NUMBER_OF_ELEMENTS) * sizeof(JsonObject::node_type)) - -namespace ArduinoJson { - -// Forward declarations -class JsonArray; -class JsonBuffer; -namespace Internals { -template -class JsonObjectSubscript; -} - -// A dictionary of JsonVariant indexed by string (char*) -// -// The constructor is private, instances must be created via -// JsonBuffer::createObject() or JsonBuffer::parseObject(). -// A JsonObject can be serialized to a JSON string via JsonObject::printTo(). -// It can also be deserialized from a JSON string via JsonBuffer::parseObject(). -class JsonObject : public Internals::JsonPrintable, - public Internals::ReferenceType, - public Internals::NonCopyable, - public Internals::List, - public Internals::JsonBufferAllocated { - public: - // Create an empty JsonArray attached to the specified JsonBuffer. - // You should not use this constructor directly. - // Instead, use JsonBuffer::createObject() or JsonBuffer.parseObject(). - explicit JsonObject(JsonBuffer* buffer) throw() - : Internals::List(buffer) {} - - // Gets or sets the value associated with the specified key. - // - // JsonObjectSubscript operator[](TKey) - // TKey = const std::string&, const String& - template - Internals::JsonObjectSubscript operator[]( - const TString& key) { - return Internals::JsonObjectSubscript(*this, key); - } - // - // JsonObjectSubscript operator[](TKey) - // TKey = char*, const char*, char[], const char[N], const FlashStringHelper* - template - Internals::JsonObjectSubscript operator[](TString* key) { - return Internals::JsonObjectSubscript(*this, key); - } - - // Gets the value associated with the specified key. - // - // const JsonObjectSubscript operator[](TKey) const; - // TKey = const std::string&, const String& - template - const Internals::JsonObjectSubscript operator[]( - const TString& key) const { - return Internals::JsonObjectSubscript( - *const_cast(this), key); - } - // - // const JsonObjectSubscript operator[](TKey) const; - // TKey = const char*, const char[N], const FlashStringHelper* - template - const Internals::JsonObjectSubscript operator[]( - TString* key) const { - return Internals::JsonObjectSubscript( - *const_cast(this), key); - } - - // Sets the specified key with the specified value. - // - // bool set(TKey, TValue); - // TKey = const std::string&, const String& - // TValue = bool, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - bool set(const TString& key, const TValue& value) { - return set_impl(key, value); - } - // - // bool set(TKey, TValue); - // TKey = const std::string&, const String& - // TValue = char*, const char*, const FlashStringHelper* - template - bool set(const TString& key, TValue* value) { - return set_impl(key, value); - } - // - // bool set(TKey, const TValue&); - // TKey = char*, const char*, const FlashStringHelper* - // TValue = bool, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - bool set(TString* key, const TValue& value) { - return set_impl(key, value); - } - // - // bool set(TKey, TValue); - // TKey = char*, const char*, const FlashStringHelper* - // TValue = char*, const char*, const FlashStringHelper* - template - bool set(TString* key, TValue* value) { - return set_impl(key, value); - } - // - // bool set(TKey, TValue, uint8_t decimals); - // TKey = const std::string&, const String& - // TValue = float, double - template - DEPRECATED("Second argument is not supported anymore") - typename Internals::EnableIf::value, - bool>::type - set(const TString& key, TValue value, uint8_t) { - return set_impl(key, - JsonVariant(value)); - } - // - // bool set(TKey, TValue, uint8_t decimals); - // TKey = char*, const char*, const FlashStringHelper* - // TValue = float, double - template - DEPRECATED("Second argument is not supported anymore") - typename Internals::EnableIf::value, - bool>::type - set(TString* key, TValue value, uint8_t) { - return set_impl(key, JsonVariant(value)); - } - - // Gets the value associated with the specified key. - // - // TValue get(TKey) const; - // TKey = const std::string&, const String& - // TValue = bool, char, long, int, short, float, double, - // std::string, String, JsonArray, JsonObject - template - typename Internals::JsonVariantAs::type get( - const TString& key) const { - return get_impl(key); - } - // - // TValue get(TKey) const; - // TKey = char*, const char*, const FlashStringHelper* - // TValue = bool, char, long, int, short, float, double, - // std::string, String, JsonArray, JsonObject - template - typename Internals::JsonVariantAs::type get(TString* key) const { - return get_impl(key); - } - - // Checks the type of the value associated with the specified key. - // - // - // bool is(TKey) const; - // TKey = const std::string&, const String& - // TValue = bool, char, long, int, short, float, double, - // std::string, String, JsonArray, JsonObject - template - bool is(const TString& key) const { - return is_impl(key); - } - // - // bool is(TKey) const; - // TKey = char*, const char*, const FlashStringHelper* - // TValue = bool, char, long, int, short, float, double, - // std::string, String, JsonArray, JsonObject - template - bool is(TString* key) const { - return is_impl(key); - } - - // Creates and adds a JsonArray. - // - // JsonArray& createNestedArray(TKey); - // TKey = const std::string&, const String& - template - JsonArray& createNestedArray(const TString& key) { - return createNestedArray_impl(key); - } - // JsonArray& createNestedArray(TKey); - // TKey = char*, const char*, char[], const char[], const FlashStringHelper* - template - JsonArray& createNestedArray(TString* key) { - return createNestedArray_impl(key); - } - - // Creates and adds a JsonObject. - // - // JsonObject& createNestedObject(TKey); - // TKey = const std::string&, const String& - template - JsonObject& createNestedObject(const TString& key) { - return createNestedObject_impl(key); - } - // - // JsonObject& createNestedObject(TKey); - // TKey = char*, const char*, char[], const char[], const FlashStringHelper* - template - JsonObject& createNestedObject(TString* key) { - return createNestedObject_impl(key); - } - - // Tells weither the specified key is present and associated with a value. - // - // bool containsKey(TKey); - // TKey = const std::string&, const String& - template - bool containsKey(const TString& key) const { - return findKey(key) != end(); - } - // - // bool containsKey(TKey); - // TKey = char*, const char*, char[], const char[], const FlashStringHelper* - template - bool containsKey(TString* key) const { - return findKey(key) != end(); - } - - // Removes the specified key and the associated value. - // - // void remove(TKey); - // TKey = const std::string&, const String& - template - void remove(const TString& key) { - remove(findKey(key)); - } - // - // void remove(TKey); - // TKey = char*, const char*, char[], const char[], const FlashStringHelper* - template - void remove(TString* key) { - remove(findKey(key)); - } - // - // void remove(iterator) - using Internals::List::remove; - - // Returns a reference an invalid JsonObject. - // This object is meant to replace a NULL pointer. - // This is used when memory allocation or JSON parsing fail. - static JsonObject& invalid() { - static JsonObject instance(NULL); - return instance; - } - - private: - // Returns the list node that matches the specified key. - template - iterator findKey(TStringRef key) { - iterator it; - for (it = begin(); it != end(); ++it) { - if (Internals::StringTraits::equals(key, it->key)) break; - } - return it; - } - template - const_iterator findKey(TStringRef key) const { - return const_cast(this)->findKey(key); - } - - template - typename Internals::JsonVariantAs::type get_impl( - TStringRef key) const { - const_iterator it = findKey(key); - return it != end() ? it->value.as() - : Internals::JsonVariantDefault::get(); - } - - template - bool set_impl(TStringRef key, TValueRef value) { - iterator it = findKey(key); - if (it == end()) { - it = Internals::List::add(); - if (it == end()) return false; - - bool key_ok = - Internals::ValueSaver::save(_buffer, it->key, key); - if (!key_ok) return false; - } - return Internals::ValueSaver::save(_buffer, it->value, value); - } - - template - bool is_impl(TStringRef key) const { - const_iterator it = findKey(key); - return it != end() ? it->value.is() : false; - } - - template - JsonArray& createNestedArray_impl(TStringRef key); - - template - JsonObject& createNestedObject_impl(TStringRef key); -}; - -namespace Internals { -template <> -struct JsonVariantDefault { - static JsonObject& get() { - return JsonObject::invalid(); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp deleted file mode 100644 index e7689b5..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonArray.hpp" -#include "JsonObject.hpp" -#include "JsonObjectSubscript.hpp" - -namespace ArduinoJson { - -template -inline JsonArray &JsonObject::createNestedArray_impl(TStringRef key) { - if (!_buffer) return JsonArray::invalid(); - JsonArray &array = _buffer->createArray(); - set(key, array); - return array; -} - -template -inline JsonObject &JsonObject::createNestedObject_impl(TStringRef key) { - if (!_buffer) return JsonObject::invalid(); - JsonObject &object = _buffer->createObject(); - set(key, object); - return object; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp deleted file mode 100644 index 6ac4763..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonObjectSubscript.hpp +++ /dev/null @@ -1,110 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Configuration.hpp" -#include "JsonVariantBase.hpp" -#include "TypeTraits/EnableIf.hpp" - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4522) -#endif - -namespace ArduinoJson { -namespace Internals { - -template -class JsonObjectSubscript - : public JsonVariantBase > { - typedef JsonObjectSubscript this_type; - - public: - FORCE_INLINE JsonObjectSubscript(JsonObject& object, TStringRef key) - : _object(object), _key(key) {} - - FORCE_INLINE this_type& operator=(const this_type& src) { - _object.set(_key, src); - return *this; - } - - // Set the specified value - // - // operator=(const TValue&); - // TValue = bool, char, long, int, short, float, double, - // std::string, String, JsonArray, JsonObject - template - FORCE_INLINE typename EnableIf::value, this_type&>::type - operator=(const TValue& src) { - _object.set(_key, src); - return *this; - } - // - // operator=(TValue); - // TValue = char*, const char*, const FlashStringHelper* - template - FORCE_INLINE this_type& operator=(TValue* src) { - _object.set(_key, src); - return *this; - } - - FORCE_INLINE bool success() const { - return _object.containsKey(_key); - } - - template - FORCE_INLINE typename JsonVariantAs::type as() const { - return _object.get(_key); - } - - template - FORCE_INLINE bool is() const { - return _object.is(_key); - } - - // Sets the specified value. - // - // bool set(const TValue&); - // TValue = bool, char, long, int, short, float, double, RawJson, JsonVariant, - // std::string, String, JsonArray, JsonObject - template - FORCE_INLINE typename EnableIf::value, bool>::type set( - const TValue& value) { - return _object.set(_key, value); - } - // - // bool set(TValue); - // TValue = char*, const char, const FlashStringHelper* - template - FORCE_INLINE bool set(const TValue* value) { - return _object.set(_key, value); - } - // - // bool set(TValue, uint8_t decimals); - // TValue = float, double - template - DEPRECATED("Second argument is not supported anymore") - FORCE_INLINE bool set(const TValue& value, uint8_t) { - return _object.set(_key, value); - } - - private: - JsonObject& _object; - TStringRef _key; -}; - -#if ARDUINOJSON_ENABLE_STD_STREAM -template -inline std::ostream& operator<<(std::ostream& os, - const JsonObjectSubscript& source) { - return source.printTo(os); -} -#endif -} -} - -#ifdef _MSC_VER -#pragma warning(pop) -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp deleted file mode 100644 index 4172430..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonPair.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonVariant.hpp" - -namespace ArduinoJson { - -// A key value pair for JsonObject. -struct JsonPair { - const char* key; - JsonVariant value; -}; -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp deleted file mode 100644 index 8326cbe..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariant.hpp +++ /dev/null @@ -1,355 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include -#include // for uint8_t - -#include "Data/JsonVariantContent.hpp" -#include "Data/JsonVariantDefault.hpp" -#include "Data/JsonVariantType.hpp" -#include "JsonVariantBase.hpp" -#include "RawJson.hpp" -#include "Serialization/JsonPrintable.hpp" -#include "TypeTraits/EnableIf.hpp" -#include "TypeTraits/IsChar.hpp" -#include "TypeTraits/IsFloatingPoint.hpp" -#include "TypeTraits/IsIntegral.hpp" -#include "TypeTraits/IsSame.hpp" -#include "TypeTraits/IsSignedIntegral.hpp" -#include "TypeTraits/IsUnsignedIntegral.hpp" -#include "TypeTraits/RemoveConst.hpp" -#include "TypeTraits/RemoveReference.hpp" - -namespace ArduinoJson { - -// Forward declarations. -class JsonArray; -class JsonObject; - -// A variant that can be a any value serializable to a JSON value. -// -// It can be set to: -// - a boolean -// - a char, short, int or a long (signed or unsigned) -// - a string (const char*) -// - a reference to a JsonArray or JsonObject -class JsonVariant : public Internals::JsonVariantBase { - template - friend class Internals::JsonSerializer; - - public: - // Creates an uninitialized JsonVariant - JsonVariant() : _type(Internals::JSON_UNDEFINED) {} - - // Create a JsonVariant containing a boolean value. - // It will be serialized as "true" or "false" in JSON. - JsonVariant(bool value) { - using namespace Internals; - _type = JSON_BOOLEAN; - _content.asInteger = static_cast(value); - } - - // Create a JsonVariant containing a floating point value. - // JsonVariant(double value); - // JsonVariant(float value); - template - JsonVariant(T value, typename Internals::EnableIf< - Internals::IsFloatingPoint::value>::type * = 0) { - using namespace Internals; - _type = JSON_FLOAT; - _content.asFloat = static_cast(value); - } - template - DEPRECATED("Second argument is not supported anymore") - JsonVariant(T value, uint8_t, - typename Internals::EnableIf< - Internals::IsFloatingPoint::value>::type * = 0) { - using namespace Internals; - _type = JSON_FLOAT; - _content.asFloat = static_cast(value); - } - - // Create a JsonVariant containing an integer value. - // JsonVariant(char) - // JsonVariant(signed short) - // JsonVariant(signed int) - // JsonVariant(signed long) - // JsonVariant(signed char) - template - JsonVariant( - T value, - typename Internals::EnableIf::value || - Internals::IsSame::value>::type * = - 0) { - using namespace Internals; - if (value >= 0) { - _type = JSON_POSITIVE_INTEGER; - _content.asInteger = static_cast(value); - } else { - _type = JSON_NEGATIVE_INTEGER; - _content.asInteger = static_cast(-value); - } - } - // JsonVariant(unsigned short) - // JsonVariant(unsigned int) - // JsonVariant(unsigned long) - template - JsonVariant(T value, - typename Internals::EnableIf< - Internals::IsUnsignedIntegral::value>::type * = 0) { - using namespace Internals; - _type = JSON_POSITIVE_INTEGER; - _content.asInteger = static_cast(value); - } - - // Create a JsonVariant containing a string. - // JsonVariant(const char*); - // JsonVariant(const signed char*); - // JsonVariant(const unsigned char*); - template - JsonVariant( - const TChar *value, - typename Internals::EnableIf::value>::type * = - 0) { - _type = Internals::JSON_STRING; - _content.asString = reinterpret_cast(value); - } - - // Create a JsonVariant containing an unparsed string - JsonVariant(Internals::RawJsonString value) { - _type = Internals::JSON_UNPARSED; - _content.asString = value; - } - - // Create a JsonVariant containing a reference to an array. - // CAUTION: we are lying about constness, because the array can be modified if - // the variant is converted back to a JsonArray& - JsonVariant(const JsonArray &array); - - // Create a JsonVariant containing a reference to an object. - // CAUTION: we are lying about constness, because the object can be modified - // if the variant is converted back to a JsonObject& - JsonVariant(const JsonObject &object); - - // Get the variant as the specified type. - // - // char as() const; - // signed char as() const; - // signed short as() const; - // signed int as() const; - // signed long as() const; - // unsigned char as() const; - // unsigned short as() const; - // unsigned int as() const; - // unsigned long as() const; - template - const typename Internals::EnableIf::value, T>::type - as() const { - return variantAsInteger(); - } - // bool as() const - template - const typename Internals::EnableIf::value, T>::type - as() const { - return variantAsInteger() != 0; - } - // - // double as() const; - // float as() const; - template - const typename Internals::EnableIf::value, - T>::type - as() const { - return variantAsFloat(); - } - // - // const char* as() const; - // const char* as() const; - template - typename Internals::EnableIf::value || - Internals::IsSame::value, - const char *>::type - as() const { - return variantAsString(); - } - // - // std::string as() const; - // String as() const; - template - typename Internals::EnableIf::has_append, T>::type - as() const { - const char *cstr = variantAsString(); - if (cstr) return T(cstr); - T s; - printTo(s); - return s; - } - // - // JsonArray& as const; - // JsonArray& as const; - template - typename Internals::EnableIf< - Internals::IsSame::type, - JsonArray>::value, - JsonArray &>::type - as() const { - return variantAsArray(); - } - // - // const JsonArray& as const; - template - typename Internals::EnableIf< - Internals::IsSame::type, - const JsonArray>::value, - const JsonArray &>::type - as() const { - return variantAsArray(); - } - // - // JsonObject& as const; - // JsonObject& as const; - template - typename Internals::EnableIf< - Internals::IsSame::type, - JsonObject>::value, - JsonObject &>::type - as() const { - return variantAsObject(); - } - // - // JsonObject& as const; - // JsonObject& as const; - template - typename Internals::EnableIf< - Internals::IsSame::type, - const JsonObject>::value, - const JsonObject &>::type - as() const { - return variantAsObject(); - } - // - // JsonVariant as const; - template - typename Internals::EnableIf::value, - T>::type - as() const { - return *this; - } - - // Tells weither the variant has the specified type. - // Returns true if the variant has type type T, false otherwise. - // - // bool is() const; - // bool is() const; - // bool is() const; - // bool is() const; - // bool is() const; - // bool is() const; - // bool is() const; - // bool is() const; - // bool is() const; - template - typename Internals::EnableIf::value, bool>::type is() - const { - return variantIsInteger(); - } - // - // bool is() const; - // bool is() const; - template - typename Internals::EnableIf::value, bool>::type - is() const { - return variantIsFloat(); - } - // - // bool is() const - template - typename Internals::EnableIf::value, bool>::type - is() const { - return variantIsBoolean(); - } - // - // bool is() const; - // bool is() const; - template - typename Internals::EnableIf::value || - Internals::IsSame::value, - bool>::type - is() const { - return variantIsString(); - } - // - // bool is const; - // bool is const; - // bool is const; - template - typename Internals::EnableIf< - Internals::IsSame::type>::type, - JsonArray>::value, - bool>::type - is() const { - return variantIsArray(); - } - // - // bool is const; - // bool is const; - // bool is const; - template - typename Internals::EnableIf< - Internals::IsSame::type>::type, - JsonObject>::value, - bool>::type - is() const { - return variantIsObject(); - } - - // Returns true if the variant has a value - bool success() const { - return _type != Internals::JSON_UNDEFINED; - } - - private: - JsonArray &variantAsArray() const; - JsonObject &variantAsObject() const; - const char *variantAsString() const; - template - T variantAsFloat() const; - template - T variantAsInteger() const; - bool variantIsBoolean() const; - bool variantIsFloat() const; - bool variantIsInteger() const; - bool variantIsArray() const { - return _type == Internals::JSON_ARRAY; - } - bool variantIsObject() const { - return _type == Internals::JSON_OBJECT; - } - bool variantIsString() const { - return _type == Internals::JSON_STRING || - (_type == Internals::JSON_UNPARSED && _content.asString && - !strcmp("null", _content.asString)); - } - - // The current type of the variant - Internals::JsonVariantType _type; - - // The various alternatives for the value of the variant. - Internals::JsonVariantContent _content; -}; - -DEPRECATED("Decimal places are ignored, use the float value instead") -inline JsonVariant float_with_n_digits(float value, uint8_t) { - return JsonVariant(value); -} - -DEPRECATED("Decimal places are ignored, use the double value instead") -inline JsonVariant double_with_n_digits(double value, uint8_t) { - return JsonVariant(value); -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp deleted file mode 100644 index 44acf2e..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonVariantCasts.hpp" -#include "JsonVariantComparisons.hpp" -#include "JsonVariantOr.hpp" -#include "JsonVariantSubscripts.hpp" -#include "Serialization/JsonPrintable.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -class JsonVariantBase : public JsonPrintable, - public JsonVariantCasts, - public JsonVariantComparisons, - public JsonVariantOr, - public JsonVariantSubscripts, - public JsonVariantTag {}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp deleted file mode 100644 index 68f5bd7..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Data/JsonVariantAs.hpp" -#include "Polyfills/attributes.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -class JsonVariantCasts { - public: -#if ARDUINOJSON_ENABLE_DEPRECATED - DEPRECATED("use as() instead") - FORCE_INLINE JsonArray &asArray() const { - return impl()->template as(); - } - - DEPRECATED("use as() instead") - FORCE_INLINE JsonObject &asObject() const { - return impl()->template as(); - } - - DEPRECATED("use as() instead") - FORCE_INLINE const char *asString() const { - return impl()->template as(); - } -#endif - - // Gets the variant as an array. - // Returns a reference to the JsonArray or JsonArray::invalid() if the - // variant - // is not an array. - FORCE_INLINE operator JsonArray &() const { - return impl()->template as(); - } - - // Gets the variant as an object. - // Returns a reference to the JsonObject or JsonObject::invalid() if the - // variant is not an object. - FORCE_INLINE operator JsonObject &() const { - return impl()->template as(); - } - - template - FORCE_INLINE operator T() const { - return impl()->template as(); - } - - private: - const TImpl *impl() const { - return static_cast(this); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp deleted file mode 100644 index cae5337..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantComparisons.hpp +++ /dev/null @@ -1,138 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "StringTraits/StringTraits.hpp" -#include "TypeTraits/EnableIf.hpp" -#include "TypeTraits/IsVariant.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -class JsonVariantComparisons { - public: - template - friend bool operator==(const JsonVariantComparisons &variant, - TComparand comparand) { - return variant.equals(comparand); - } - - template - friend typename EnableIf::value, bool>::type - operator==(TComparand comparand, const JsonVariantComparisons &variant) { - return variant.equals(comparand); - } - - template - friend bool operator!=(const JsonVariantComparisons &variant, - TComparand comparand) { - return !variant.equals(comparand); - } - - template - friend typename EnableIf::value, bool>::type - operator!=(TComparand comparand, const JsonVariantComparisons &variant) { - return !variant.equals(comparand); - } - - template - friend bool operator<=(const JsonVariantComparisons &left, TComparand right) { - return left.as() <= right; - } - - template - friend bool operator<=(TComparand comparand, - const JsonVariantComparisons &variant) { - return comparand <= variant.as(); - } - - template - friend bool operator>=(const JsonVariantComparisons &variant, - TComparand comparand) { - return variant.as() >= comparand; - } - - template - friend bool operator>=(TComparand comparand, - const JsonVariantComparisons &variant) { - return comparand >= variant.as(); - } - - template - friend bool operator<(const JsonVariantComparisons &varian, - TComparand comparand) { - return varian.as() < comparand; - } - - template - friend bool operator<(TComparand comparand, - const JsonVariantComparisons &variant) { - return comparand < variant.as(); - } - - template - friend bool operator>(const JsonVariantComparisons &variant, - TComparand comparand) { - return variant.as() > comparand; - } - - template - friend bool operator>(TComparand comparand, - const JsonVariantComparisons &variant) { - return comparand > variant.as(); - } - - private: - const TImpl *impl() const { - return static_cast(this); - } - - template - const typename JsonVariantAs::type as() const { - return impl()->template as(); - } - - template - bool is() const { - return impl()->template is(); - } - - template - typename EnableIf::has_equals, bool>::type equals( - const TString &comparand) const { - const char *value = as(); - return StringTraits::equals(comparand, value); - } - - template - typename EnableIf::value && - !StringTraits::has_equals, - bool>::type - equals(const TComparand &comparand) const { - return as() == comparand; - } - - template - bool equals(const JsonVariantComparisons &right) const { - using namespace Internals; - if (is() && right.template is()) - return as() == right.template as(); - if (is() && right.template is()) - return as() == right.template as(); - if (is() && right.template is()) - return as() == right.template as(); - if (is() && right.template is()) - return as() == right.template as(); - if (is() && right.template is()) - return as() == right.template as(); - if (is() && right.template is()) - return strcmp(as(), right.template as()) == 0; - - return false; - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp deleted file mode 100644 index 31f96ce..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantImpl.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Configuration.hpp" -#include "JsonArray.hpp" -#include "JsonObject.hpp" -#include "JsonVariant.hpp" -#include "Polyfills/isFloat.hpp" -#include "Polyfills/isInteger.hpp" -#include "Polyfills/parseFloat.hpp" -#include "Polyfills/parseInteger.hpp" - -#include // for strcmp - -namespace ArduinoJson { - -inline JsonVariant::JsonVariant(const JsonArray &array) { - if (array.success()) { - _type = Internals::JSON_ARRAY; - _content.asArray = const_cast(&array); - } else { - _type = Internals::JSON_UNDEFINED; - } -} - -inline JsonVariant::JsonVariant(const JsonObject &object) { - if (object.success()) { - _type = Internals::JSON_OBJECT; - _content.asObject = const_cast(&object); - } else { - _type = Internals::JSON_UNDEFINED; - } -} - -inline JsonArray &JsonVariant::variantAsArray() const { - if (_type == Internals::JSON_ARRAY) return *_content.asArray; - return JsonArray::invalid(); -} - -inline JsonObject &JsonVariant::variantAsObject() const { - if (_type == Internals::JSON_OBJECT) return *_content.asObject; - return JsonObject::invalid(); -} - -template -inline T JsonVariant::variantAsInteger() const { - using namespace Internals; - switch (_type) { - case JSON_UNDEFINED: - return 0; - case JSON_POSITIVE_INTEGER: - case JSON_BOOLEAN: - return T(_content.asInteger); - case JSON_NEGATIVE_INTEGER: - return T(~_content.asInteger + 1); - case JSON_STRING: - case JSON_UNPARSED: - return parseInteger(_content.asString); - default: - return T(_content.asFloat); - } -} - -inline const char *JsonVariant::variantAsString() const { - using namespace Internals; - if (_type == JSON_UNPARSED && _content.asString && - !strcmp("null", _content.asString)) - return NULL; - if (_type == JSON_STRING || _type == JSON_UNPARSED) return _content.asString; - return NULL; -} - -template -inline T JsonVariant::variantAsFloat() const { - using namespace Internals; - switch (_type) { - case JSON_UNDEFINED: - return 0; - case JSON_POSITIVE_INTEGER: - case JSON_BOOLEAN: - return static_cast(_content.asInteger); - case JSON_NEGATIVE_INTEGER: - return -static_cast(_content.asInteger); - case JSON_STRING: - case JSON_UNPARSED: - return parseFloat(_content.asString); - default: - return static_cast(_content.asFloat); - } -} - -inline bool JsonVariant::variantIsBoolean() const { - using namespace Internals; - if (_type == JSON_BOOLEAN) return true; - - if (_type != JSON_UNPARSED || _content.asString == NULL) return false; - - return !strcmp(_content.asString, "true") || - !strcmp(_content.asString, "false"); -} - -inline bool JsonVariant::variantIsInteger() const { - using namespace Internals; - - return _type == JSON_POSITIVE_INTEGER || _type == JSON_NEGATIVE_INTEGER || - (_type == JSON_UNPARSED && isInteger(_content.asString)); -} - -inline bool JsonVariant::variantIsFloat() const { - using namespace Internals; - - return _type == JSON_FLOAT || _type == JSON_POSITIVE_INTEGER || - _type == JSON_NEGATIVE_INTEGER || - (_type == JSON_UNPARSED && isFloat(_content.asString)); -} - -#if ARDUINOJSON_ENABLE_STD_STREAM -inline std::ostream &operator<<(std::ostream &os, const JsonVariant &source) { - return source.printTo(os); -} -#endif - -} // namespace ArduinoJson diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp deleted file mode 100644 index d8022fc..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Data/JsonVariantAs.hpp" -#include "Polyfills/attributes.hpp" -#include "TypeTraits/EnableIf.hpp" -#include "TypeTraits/IsIntegral.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -class JsonVariantOr { - public: - // Returns the default value if the JsonVariant is undefined of incompatible - template - typename EnableIf::value, T>::type operator|( - const T &defaultValue) const { - if (impl()->template is()) - return impl()->template as(); - else - return defaultValue; - } - - // Returns the default value if the JsonVariant is undefined of incompatible - // Special case for string: null is treated as undefined - const char *operator|(const char *defaultValue) const { - const char *value = impl()->template as(); - return value ? value : defaultValue; - } - - // Returns the default value if the JsonVariant is undefined of incompatible - // Special case for integers: we also accept double - template - typename EnableIf::value, Integer>::type operator|( - const Integer &defaultValue) const { - if (impl()->template is()) - return impl()->template as(); - else - return defaultValue; - } - - private: - const TImpl *impl() const { - return static_cast(this); - } -}; -} // namespace Internals -} // namespace ArduinoJson diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp deleted file mode 100644 index 279ee01..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/JsonVariantSubscripts.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "Data/JsonVariantAs.hpp" -#include "Polyfills/attributes.hpp" -#include "StringTraits/StringTraits.hpp" -#include "TypeTraits/EnableIf.hpp" - -namespace ArduinoJson { -namespace Internals { - -// Forward declarations. -class JsonArraySubscript; -template -class JsonObjectSubscript; - -template -class JsonVariantSubscripts { - public: - // Mimics an array or an object. - // Returns the size of the array or object if the variant has that type. - // Returns 0 if the variant is neither an array nor an object - size_t size() const { - return impl()->template as().size() + - impl()->template as().size(); - } - - // Mimics an array. - // Returns the element at specified index if the variant is an array. - // Returns JsonVariant::invalid() if the variant is not an array. - FORCE_INLINE const JsonArraySubscript operator[](size_t index) const; - FORCE_INLINE JsonArraySubscript operator[](size_t index); - - // Mimics an object. - // Returns the value associated with the specified key if the variant is - // an object. - // Return JsonVariant::invalid() if the variant is not an object. - // - // const JsonObjectSubscript operator[](TKey) const; - // TKey = const std::string&, const String& - template - FORCE_INLINE - typename EnableIf::has_equals, - const JsonObjectSubscript >::type - operator[](const TString &key) const { - return impl()->template as()[key]; - } - // - // const JsonObjectSubscript operator[](TKey) const; - // TKey = const std::string&, const String& - template - FORCE_INLINE typename EnableIf::has_equals, - JsonObjectSubscript >::type - operator[](const TString &key) { - return impl()->template as()[key]; - } - // - // JsonObjectSubscript operator[](TKey); - // TKey = const char*, const char[N], const FlashStringHelper* - template - FORCE_INLINE typename EnableIf::has_equals, - JsonObjectSubscript >::type - operator[](const TString *key) { - return impl()->template as()[key]; - } - // - // JsonObjectSubscript operator[](TKey); - // TKey = const char*, const char[N], const FlashStringHelper* - template - FORCE_INLINE - typename EnableIf::has_equals, - const JsonObjectSubscript >::type - operator[](const TString *key) const { - return impl()->template as()[key]; - } - - private: - const TImpl *impl() const { - return static_cast(this); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp deleted file mode 100644 index b49091d..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#ifdef _MSC_VER // Visual Studio - -#define FORCE_INLINE // __forceinline causes C4714 when returning std::string -#define NO_INLINE __declspec(noinline) -#define DEPRECATED(msg) __declspec(deprecated(msg)) - -#elif defined(__GNUC__) // GCC or Clang - -#define FORCE_INLINE __attribute__((always_inline)) -#define NO_INLINE __attribute__((noinline)) -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) -#define DEPRECATED(msg) __attribute__((deprecated(msg))) -#else -#define DEPRECATED(msg) __attribute__((deprecated)) -#endif - -#else // Other compilers - -#define FORCE_INLINE -#define NO_INLINE -#define DEPRECATED(msg) - -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp deleted file mode 100644 index 2d52703..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -inline bool isdigit(char c) { - return '0' <= c && c <= '9'; -} - -inline bool issign(char c) { - return '-' == c || c == '+'; -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp deleted file mode 100644 index 973b89f..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include // for strcmp -#include "./ctype.hpp" - -namespace ArduinoJson { -namespace Internals { - -inline bool isFloat(const char* s) { - if (!s) return false; - - if (!strcmp(s, "NaN")) return true; - if (issign(*s)) s++; - if (!strcmp(s, "Infinity")) return true; - if (*s == '\0') return false; - - while (isdigit(*s)) s++; - - if (*s == '.') { - s++; - while (isdigit(*s)) s++; - } - - if (*s == 'e' || *s == 'E') { - s++; - if (issign(*s)) s++; - if (!isdigit(*s)) return false; - while (isdigit(*s)) s++; - } - - return *s == '\0'; -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp deleted file mode 100644 index 21f1668..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "./ctype.hpp" - -namespace ArduinoJson { -namespace Internals { - -inline bool isInteger(const char* s) { - if (!s) return false; - if (issign(*s)) s++; - while (isdigit(*s)) s++; - return *s == '\0'; -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp deleted file mode 100644 index 48773ed..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { -template -bool isNaN(T x) { - return x != x; -} - -template -bool isInfinity(T x) { - return x != 0.0 && x * 2 == x; -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp deleted file mode 100644 index 49b0f6f..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseFloat.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../TypeTraits/FloatTraits.hpp" -#include "./ctype.hpp" -#include "./math.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -inline T parseFloat(const char* s) { - typedef FloatTraits traits; - typedef typename traits::mantissa_type mantissa_t; - typedef typename traits::exponent_type exponent_t; - - if (!s) return 0; // NULL - - bool negative_result = false; - switch (*s) { - case '-': - negative_result = true; - s++; - break; - case '+': - s++; - break; - } - - if (*s == 't') return 1; // true - if (*s == 'n' || *s == 'N') return traits::nan(); - if (*s == 'i' || *s == 'I') - return negative_result ? -traits::inf() : traits::inf(); - - mantissa_t mantissa = 0; - exponent_t exponent_offset = 0; - - while (isdigit(*s)) { - if (mantissa < traits::mantissa_max / 10) - mantissa = mantissa * 10 + (*s - '0'); - else - exponent_offset++; - s++; - } - - if (*s == '.') { - s++; - while (isdigit(*s)) { - if (mantissa < traits::mantissa_max / 10) { - mantissa = mantissa * 10 + (*s - '0'); - exponent_offset--; - } - s++; - } - } - - int exponent = 0; - if (*s == 'e' || *s == 'E') { - s++; - bool negative_exponent = false; - if (*s == '-') { - negative_exponent = true; - s++; - } else if (*s == '+') { - s++; - } - - while (isdigit(*s)) { - exponent = exponent * 10 + (*s - '0'); - if (exponent + exponent_offset > traits::exponent_max) { - if (negative_exponent) - return negative_result ? -0.0f : 0.0f; - else - return negative_result ? -traits::inf() : traits::inf(); - } - s++; - } - if (negative_exponent) exponent = -exponent; - } - exponent += exponent_offset; - - T result = traits::make_float(static_cast(mantissa), exponent); - - return negative_result ? -result : result; -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp deleted file mode 100644 index e8f1974..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include - -#include "../Configuration.hpp" -#include "./ctype.hpp" - -namespace ArduinoJson { -namespace Internals { -template -T parseInteger(const char *s) { - if (!s) return 0; // NULL - - if (*s == 't') return 1; // "true" - - T result = 0; - bool negative_result = false; - - switch (*s) { - case '-': - negative_result = true; - s++; - break; - case '+': - s++; - break; - } - - while (isdigit(*s)) { - result = T(result * 10 + T(*s - '0')); - s++; - } - - return negative_result ? T(~result + 1) : result; -} -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp deleted file mode 100644 index 4beb980..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/RawJson.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { - -namespace Internals { -// A special type of data that can be used to insert pregenerated JSON portions. -template -class RawJsonString { - public: - explicit RawJsonString(T str) : _str(str) {} - operator T() const { - return _str; - } - - private: - T _str; -}; - -template -struct StringTraits, void> { - static bool is_null(RawJsonString source) { - return StringTraits::is_null(static_cast(source)); - } - - typedef RawJsonString duplicate_t; - - template - static duplicate_t duplicate(RawJsonString source, Buffer* buffer) { - return duplicate_t(StringTraits::duplicate(source, buffer)); - } - - static const bool has_append = false; - static const bool has_equals = false; - static const bool should_duplicate = StringTraits::should_duplicate; -}; -} - -template -inline Internals::RawJsonString RawJson(T str) { - return Internals::RawJsonString(str); -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp deleted file mode 100644 index 9fdf2d6..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A dummy Print implementation used in JsonPrintable::measureLength() -class DummyPrint { - public: - size_t print(char) { - return 1; - } - - size_t print(const char* s) { - return strlen(s); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp deleted file mode 100644 index 41be639..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../StringTraits/StringTraits.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A Print implementation that allows to write in a String -template -class DynamicStringBuilder { - public: - DynamicStringBuilder(TString &str) : _str(str) {} - - size_t print(char c) { - StringTraits::append(_str, c); - return 1; - } - - size_t print(const char *s) { - size_t initialLen = _str.length(); - StringTraits::append(_str, s); - return _str.length() - initialLen; - } - - private: - DynamicStringBuilder &operator=(const DynamicStringBuilder &); - - TString &_str; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp deleted file mode 100644 index c14e3b5..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/FloatParts.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" -#include "../Polyfills/math.hpp" -#include "../TypeTraits/FloatTraits.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -struct FloatParts { - uint32_t integral; - uint32_t decimal; - int16_t exponent; - int8_t decimalPlaces; - - FloatParts(TFloat value) { - uint32_t maxDecimalPart = sizeof(TFloat) >= 8 ? 1000000000 : 1000000; - decimalPlaces = sizeof(TFloat) >= 8 ? 9 : 6; - - exponent = normalize(value); - - integral = uint32_t(value); - // reduce number of decimal places by the number of integral places - for (uint32_t tmp = integral; tmp >= 10; tmp /= 10) { - maxDecimalPart /= 10; - decimalPlaces--; - } - - TFloat remainder = (value - TFloat(integral)) * TFloat(maxDecimalPart); - - decimal = uint32_t(remainder); - remainder = remainder - TFloat(decimal); - - // rounding: - // increment by 1 if remainder >= 0.5 - decimal += uint32_t(remainder * 2); - if (decimal >= maxDecimalPart) { - decimal = 0; - integral++; - if (exponent && integral >= 10) { - exponent++; - integral = 1; - } - } - - // remove trailing zeros - while (decimal % 10 == 0 && decimalPlaces > 0) { - decimal /= 10; - decimalPlaces--; - } - } - - static int16_t normalize(TFloat& value) { - typedef FloatTraits traits; - int16_t powersOf10 = 0; - - int8_t index = sizeof(TFloat) == 8 ? 8 : 5; - int bit = 1 << index; - - if (value >= ARDUINOJSON_POSITIVE_EXPONENTIATION_THRESHOLD) { - for (; index >= 0; index--) { - if (value >= traits::positiveBinaryPowerOfTen(index)) { - value *= traits::negativeBinaryPowerOfTen(index); - powersOf10 = int16_t(powersOf10 + bit); - } - bit >>= 1; - } - } - - if (value > 0 && value <= ARDUINOJSON_NEGATIVE_EXPONENTIATION_THRESHOLD) { - for (; index >= 0; index--) { - if (value < traits::negativeBinaryPowerOfTenPlusOne(index)) { - value *= traits::positiveBinaryPowerOfTen(index); - powersOf10 = int16_t(powersOf10 - bit); - } - bit >>= 1; - } - } - - return powersOf10; - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp deleted file mode 100644 index 864f9aa..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// Decorator on top of Print to allow indented output. -// This class is used by JsonPrintable::prettyPrintTo() but can also be used -// for your own purpose, like logging. -template -class IndentedPrint { - public: - explicit IndentedPrint(Print &p) : sink(&p) { - level = 0; - tabSize = 2; - isNewLine = true; - } - - size_t print(char c) { - size_t n = 0; - if (isNewLine) n += writeTabs(); - n += sink->print(c); - isNewLine = c == '\n'; - return n; - } - - size_t print(const char *s) { - // TODO: optimize - size_t n = 0; - while (*s) n += print(*s++); - return n; - } - - // Adds one level of indentation - void indent() { - if (level < MAX_LEVEL) level++; - } - - // Removes one level of indentation - void unindent() { - if (level > 0) level--; - } - - // Set the number of space printed for each level of indentation - void setTabSize(uint8_t n) { - if (n < MAX_TAB_SIZE) tabSize = n & MAX_TAB_SIZE; - } - - private: - Print *sink; - uint8_t level : 4; - uint8_t tabSize : 3; - bool isNewLine : 1; - - size_t writeTabs() { - size_t n = 0; - for (int i = 0; i < level * tabSize; i++) n += sink->print(' '); - return n; - } - - static const int MAX_LEVEL = 15; // because it's only 4 bits - static const int MAX_TAB_SIZE = 7; // because it's only 3 bits -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp deleted file mode 100644 index 43d413a..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonPrintable.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" -#include "../TypeTraits/EnableIf.hpp" -#include "DummyPrint.hpp" -#include "DynamicStringBuilder.hpp" -#include "IndentedPrint.hpp" -#include "JsonSerializer.hpp" -#include "JsonWriter.hpp" -#include "Prettyfier.hpp" -#include "StaticStringBuilder.hpp" - -#if ARDUINOJSON_ENABLE_STD_STREAM -#include "StreamPrintAdapter.hpp" -#endif - -namespace ArduinoJson { -namespace Internals { - -// Implements all the overloads of printTo() and prettyPrintTo() -// Caution: this class use a template parameter to avoid virtual methods. -// This is a bit curious but allows to reduce the size of JsonVariant, JsonArray -// and JsonObject. -template -class JsonPrintable { - public: - template - typename EnableIf::has_append, size_t>::type printTo( - Print &print) const { - JsonWriter writer(print); - JsonSerializer >::serialize(downcast(), writer); - return writer.bytesWritten(); - } - -#if ARDUINOJSON_ENABLE_STD_STREAM - std::ostream &printTo(std::ostream &os) const { - StreamPrintAdapter adapter(os); - printTo(adapter); - return os; - } -#endif - - size_t printTo(char *buffer, size_t bufferSize) const { - StaticStringBuilder sb(buffer, bufferSize); - return printTo(sb); - } - - template - size_t printTo(char (&buffer)[N]) const { - return printTo(buffer, N); - } - - template - typename EnableIf::has_append, size_t>::type printTo( - TString &str) const { - DynamicStringBuilder sb(str); - return printTo(sb); - } - - template - size_t prettyPrintTo(IndentedPrint &print) const { - Prettyfier p(print); - return printTo(p); - } - - size_t prettyPrintTo(char *buffer, size_t bufferSize) const { - StaticStringBuilder sb(buffer, bufferSize); - return prettyPrintTo(sb); - } - - template - size_t prettyPrintTo(char (&buffer)[N]) const { - return prettyPrintTo(buffer, N); - } - - template - typename EnableIf::has_append, size_t>::type - prettyPrintTo(Print &print) const { - IndentedPrint indentedPrint(print); - return prettyPrintTo(indentedPrint); - } - - template - typename EnableIf::has_append, size_t>::type - prettyPrintTo(TString &str) const { - DynamicStringBuilder sb(str); - return prettyPrintTo(sb); - } - - size_t measureLength() const { - DummyPrint dp; - return printTo(dp); - } - - size_t measurePrettyLength() const { - DummyPrint dp; - return prettyPrintTo(dp); - } - - private: - const T &downcast() const { - return *static_cast(this); - } -}; - -#if ARDUINOJSON_ENABLE_STD_STREAM -template -inline std::ostream &operator<<(std::ostream &os, const JsonPrintable &v) { - return v.printTo(os); -} -#endif -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp deleted file mode 100644 index 0cb537f..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonWriter.hpp" - -namespace ArduinoJson { - -class JsonArray; -class JsonObject; -class JsonVariant; - -namespace Internals { - -class JsonArraySubscript; -template -class JsonObjectSubscript; - -template -class JsonSerializer { - public: - static void serialize(const JsonArray &, Writer &); - static void serialize(const JsonArraySubscript &, Writer &); - static void serialize(const JsonObject &, Writer &); - template - static void serialize(const JsonObjectSubscript &, Writer &); - static void serialize(const JsonVariant &, Writer &); -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp deleted file mode 100644 index 0faae27..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializerImpl.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../JsonArray.hpp" -#include "../JsonArraySubscript.hpp" -#include "../JsonObject.hpp" -#include "../JsonObjectSubscript.hpp" -#include "../JsonVariant.hpp" -#include "JsonSerializer.hpp" - -template -inline void ArduinoJson::Internals::JsonSerializer::serialize( - const JsonArray& array, Writer& writer) { - writer.beginArray(); - - JsonArray::const_iterator it = array.begin(); - while (it != array.end()) { - serialize(*it, writer); - - ++it; - if (it == array.end()) break; - - writer.writeComma(); - } - - writer.endArray(); -} - -template -inline void ArduinoJson::Internals::JsonSerializer::serialize( - const JsonArraySubscript& arraySubscript, Writer& writer) { - serialize(arraySubscript.as(), writer); -} - -template -inline void ArduinoJson::Internals::JsonSerializer::serialize( - const JsonObject& object, Writer& writer) { - writer.beginObject(); - - JsonObject::const_iterator it = object.begin(); - while (it != object.end()) { - writer.writeString(it->key); - writer.writeColon(); - serialize(it->value, writer); - - ++it; - if (it == object.end()) break; - - writer.writeComma(); - } - - writer.endObject(); -} - -template -template -inline void ArduinoJson::Internals::JsonSerializer::serialize( - const JsonObjectSubscript& objectSubscript, Writer& writer) { - serialize(objectSubscript.template as(), writer); -} - -template -inline void ArduinoJson::Internals::JsonSerializer::serialize( - const JsonVariant& variant, Writer& writer) { - switch (variant._type) { - case JSON_FLOAT: - writer.writeFloat(variant._content.asFloat); - return; - - case JSON_ARRAY: - serialize(*variant._content.asArray, writer); - return; - - case JSON_OBJECT: - serialize(*variant._content.asObject, writer); - return; - - case JSON_STRING: - writer.writeString(variant._content.asString); - return; - - case JSON_UNPARSED: - writer.writeRaw(variant._content.asString); - return; - - case JSON_NEGATIVE_INTEGER: - writer.writeRaw('-'); // Falls through. - - case JSON_POSITIVE_INTEGER: - writer.writeInteger(variant._content.asInteger); - return; - - case JSON_BOOLEAN: - writer.writeBoolean(variant._content.asInteger != 0); - return; - - default: // JSON_UNDEFINED - return; - } -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp deleted file mode 100644 index 146d51d..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/JsonWriter.hpp +++ /dev/null @@ -1,155 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include -#include "../Data/Encoding.hpp" -#include "../Data/JsonInteger.hpp" -#include "../Polyfills/attributes.hpp" -#include "../Serialization/FloatParts.hpp" - -namespace ArduinoJson { -namespace Internals { - -// Writes the JSON tokens to a Print implementation -// This class is used by: -// - JsonArray::writeTo() -// - JsonObject::writeTo() -// - JsonVariant::writeTo() -// Its derived by PrettyJsonWriter that overrides some members to add -// indentation. -template -class JsonWriter { - public: - explicit JsonWriter(Print &sink) : _sink(sink), _length(0) {} - - // Returns the number of bytes sent to the Print implementation. - // This is very handy for implementations of printTo() that must return the - // number of bytes written. - size_t bytesWritten() const { - return _length; - } - - void beginArray() { - writeRaw('['); - } - void endArray() { - writeRaw(']'); - } - - void beginObject() { - writeRaw('{'); - } - void endObject() { - writeRaw('}'); - } - - void writeColon() { - writeRaw(':'); - } - void writeComma() { - writeRaw(','); - } - - void writeBoolean(bool value) { - writeRaw(value ? "true" : "false"); - } - - void writeString(const char *value) { - if (!value) { - writeRaw("null"); - } else { - writeRaw('\"'); - while (*value) writeChar(*value++); - writeRaw('\"'); - } - } - - void writeChar(char c) { - char specialChar = Encoding::escapeChar(c); - if (specialChar) { - writeRaw('\\'); - writeRaw(specialChar); - } else { - writeRaw(c); - } - } - - template - void writeFloat(TFloat value) { - if (isNaN(value)) return writeRaw("NaN"); - - if (value < 0.0) { - writeRaw('-'); - value = -value; - } - - if (isInfinity(value)) return writeRaw("Infinity"); - - FloatParts parts(value); - - writeInteger(parts.integral); - if (parts.decimalPlaces) writeDecimals(parts.decimal, parts.decimalPlaces); - - if (parts.exponent < 0) { - writeRaw("e-"); - writeInteger(-parts.exponent); - } - - if (parts.exponent > 0) { - writeRaw('e'); - writeInteger(parts.exponent); - } - } - - template - void writeInteger(UInt value) { - char buffer[22]; - char *end = buffer + sizeof(buffer) - 1; - char *ptr = end; - - *ptr = 0; - do { - *--ptr = char(value % 10 + '0'); - value = UInt(value / 10); - } while (value); - - writeRaw(ptr); - } - - void writeDecimals(uint32_t value, int8_t width) { - // buffer should be big enough for all digits, the dot and the null - // terminator - char buffer[16]; - char *ptr = buffer + sizeof(buffer) - 1; - - // write the string in reverse order - *ptr = 0; - while (width--) { - *--ptr = char(value % 10 + '0'); - value /= 10; - } - *--ptr = '.'; - - // and dump it in the right order - writeRaw(ptr); - } - - void writeRaw(const char *s) { - _length += _sink.print(s); - } - void writeRaw(char c) { - _length += _sink.print(c); - } - - protected: - Print &_sink; - size_t _length; - - private: - JsonWriter &operator=(const JsonWriter &); // cannot be assigned -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp deleted file mode 100644 index 8b4f0d2..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/Prettyfier.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "IndentedPrint.hpp" - -namespace ArduinoJson { -namespace Internals { - -// Converts a compact JSON string into an indented one. -template -class Prettyfier { - public: - explicit Prettyfier(IndentedPrint& p) : _sink(p) { - _previousChar = 0; - _inString = false; - } - - size_t print(char c) { - size_t n = _inString ? handleStringChar(c) : handleMarkupChar(c); - _previousChar = c; - return n; - } - - size_t print(const char* s) { - // TODO: optimize - size_t n = 0; - while (*s) n += print(*s++); - return n; - } - - private: - Prettyfier& operator=(const Prettyfier&); // cannot be assigned - - bool inEmptyBlock() { - return _previousChar == '{' || _previousChar == '['; - } - - size_t handleStringChar(char c) { - bool isQuote = c == '"' && _previousChar != '\\'; - - if (isQuote) _inString = false; - - return _sink.print(c); - } - - size_t handleMarkupChar(char c) { - switch (c) { - case '{': - case '[': - return writeBlockOpen(c); - - case '}': - case ']': - return writeBlockClose(c); - - case ':': - return writeColon(); - - case ',': - return writeComma(); - - case '"': - return writeQuoteOpen(); - - default: - return writeNormalChar(c); - } - } - - size_t writeBlockClose(char c) { - size_t n = 0; - n += unindentIfNeeded(); - n += _sink.print(c); - return n; - } - - size_t writeBlockOpen(char c) { - size_t n = 0; - n += indentIfNeeded(); - n += _sink.print(c); - return n; - } - - size_t writeColon() { - size_t n = 0; - n += _sink.print(": "); - return n; - } - - size_t writeComma() { - size_t n = 0; - n += _sink.print(",\r\n"); - return n; - } - - size_t writeQuoteOpen() { - _inString = true; - size_t n = 0; - n += indentIfNeeded(); - n += _sink.print('"'); - return n; - } - - size_t writeNormalChar(char c) { - size_t n = 0; - n += indentIfNeeded(); - n += _sink.print(c); - return n; - } - - size_t indentIfNeeded() { - if (!inEmptyBlock()) return 0; - - _sink.indent(); - return _sink.print("\r\n"); - } - - size_t unindentIfNeeded() { - if (inEmptyBlock()) return 0; - - _sink.unindent(); - return _sink.print("\r\n"); - } - - char _previousChar; - IndentedPrint& _sink; - bool _inString; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp deleted file mode 100644 index 9617bbd..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A Print implementation that allows to write in a char[] -class StaticStringBuilder { - public: - StaticStringBuilder(char *buf, size_t size) : end(buf + size - 1), p(buf) { - *p = '\0'; - } - - size_t print(char c) { - if (p >= end) return 0; - *p++ = c; - *p = '\0'; - return 1; - } - - size_t print(const char *s) { - char *begin = p; - while (p < end && *s) *p++ = *s++; - *p = '\0'; - return size_t(p - begin); - } - - private: - char *end; - char *p; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp deleted file mode 100644 index 60f0af4..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" - -#if ARDUINOJSON_ENABLE_STD_STREAM - -#include - -namespace ArduinoJson { -namespace Internals { - -class StreamPrintAdapter { - public: - explicit StreamPrintAdapter(std::ostream& os) : _os(os) {} - - size_t print(char c) { - _os << c; - return 1; - } - - size_t print(const char* s) { - _os << s; - return strlen(s); - } - - private: - // cannot be assigned - StreamPrintAdapter& operator=(const StreamPrintAdapter&); - - std::ostream& _os; -}; -} -} - -#endif // ARDUINOJSON_ENABLE_STD_STREAM diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp deleted file mode 100644 index 267d9d0..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StaticJsonBuffer.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "JsonBufferBase.hpp" - -namespace ArduinoJson { -namespace Internals { - -class StaticJsonBufferBase : public JsonBufferBase { - public: - class String { - public: - String(StaticJsonBufferBase* parent) : _parent(parent) { - _start = parent->_buffer + parent->_size; - } - - void append(char c) { - if (_parent->canAlloc(1)) { - char* last = static_cast(_parent->doAlloc(1)); - *last = c; - } - } - - const char* c_str() const { - if (_parent->canAlloc(1)) { - char* last = static_cast(_parent->doAlloc(1)); - *last = '\0'; - return _start; - } else { - return NULL; - } - } - - private: - StaticJsonBufferBase* _parent; - char* _start; - }; - - StaticJsonBufferBase(char* buffer, size_t capa) - : _buffer(buffer), _capacity(capa), _size(0) {} - - // Gets the capacity of the buffer in bytes - size_t capacity() const { - return _capacity; - } - - // Gets the current usage of the buffer in bytes - size_t size() const { - return _size; - } - - // Allocates the specified amount of bytes in the buffer - virtual void* alloc(size_t bytes) { - alignNextAlloc(); - if (!canAlloc(bytes)) return NULL; - return doAlloc(bytes); - } - - // Resets the buffer. - // USE WITH CAUTION: this invalidates all previously allocated data - void clear() { - _size = 0; - } - - String startString() { - return String(this); - } - - protected: - ~StaticJsonBufferBase() {} - - private: - void alignNextAlloc() { - _size = round_size_up(_size); - } - - bool canAlloc(size_t bytes) const { - return _size + bytes <= _capacity; - } - - void* doAlloc(size_t bytes) { - void* p = &_buffer[_size]; - _size += bytes; - return p; - } - - char* _buffer; - size_t _capacity; - size_t _size; -}; -} - -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wnon-virtual-dtor" -#elif defined(__GNUC__) -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -#pragma GCC diagnostic push -#endif -#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" -#endif - -// Implements a JsonBuffer with fixed memory allocation. -// The template paramenter CAPACITY specifies the capacity of the buffer in -// bytes. -template -class StaticJsonBuffer : public Internals::StaticJsonBufferBase { - public: - explicit StaticJsonBuffer() - : Internals::StaticJsonBufferBase(_buffer, CAPACITY) {} - - private: - char _buffer[CAPACITY]; -}; -} - -#if defined(__clang__) -#pragma clang diagnostic pop -#elif defined(__GNUC__) -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) -#pragma GCC diagnostic pop -#endif -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp deleted file mode 100644 index 5db0852..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#if ARDUINOJSON_ENABLE_ARDUINO_STREAM - -#include - -namespace ArduinoJson { -namespace Internals { - -struct ArduinoStreamTraits { - class Reader { - Stream& _stream; - char _current, _next; - - public: - Reader(Stream& stream) : _stream(stream), _current(0), _next(0) {} - - void move() { - _current = _next; - _next = 0; - } - - char current() { - if (!_current) _current = read(); - return _current; - } - - char next() { - // assumes that current() has been called - if (!_next) _next = read(); - return _next; - } - - private: - char read() { - // don't use _stream.read() as it ignores the timeout - char c = 0; - _stream.readBytes(&c, 1); - return c; - } - }; - - static const bool has_append = false; - static const bool has_equals = false; -}; - -template -struct StringTraits< - TStream, - // match any type that is derived from Stream: - typename EnableIf< - IsBaseOf::type>::value>::type> - : ArduinoStreamTraits {}; -} -} - -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp deleted file mode 100644 index a9f30f7..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/CharPointer.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -template -struct CharPointerTraits { - class Reader { - const TChar* _ptr; - - public: - Reader(const TChar* ptr) - : _ptr(ptr ? ptr : reinterpret_cast("")) {} - - void move() { - ++_ptr; - } - - char current() const { - return char(_ptr[0]); - } - - char next() const { - return char(_ptr[1]); - } - }; - - static bool equals(const TChar* str, const char* expected) { - return strcmp(reinterpret_cast(str), expected) == 0; - } - - static bool is_null(const TChar* str) { - return !str; - } - - typedef const char* duplicate_t; - - template - static duplicate_t duplicate(const TChar* str, Buffer* buffer) { - if (!str) return NULL; - size_t size = strlen(reinterpret_cast(str)) + 1; - void* dup = buffer->alloc(size); - if (dup != NULL) memcpy(dup, str, size); - return static_cast(dup); - } - - static const bool has_append = false; - static const bool has_equals = true; - static const bool should_duplicate = !IsConst::value; -}; - -// char*, unsigned char*, signed char* -// const char*, const unsigned char*, const signed char* -template -struct StringTraits::value>::type> - : CharPointerTraits {}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp deleted file mode 100644 index 95f555d..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#if ARDUINOJSON_ENABLE_PROGMEM - -namespace ArduinoJson { -namespace Internals { -template <> -struct StringTraits { - class Reader { - const char* _ptr; - - public: - Reader(const __FlashStringHelper* ptr) - : _ptr(reinterpret_cast(ptr)) {} - - void move() { - _ptr++; - } - - char current() const { - return pgm_read_byte_near(_ptr); - } - - char next() const { - return pgm_read_byte_near(_ptr + 1); - } - }; - - static bool equals(const __FlashStringHelper* str, const char* expected) { - return strcmp_P(expected, (const char*)str) == 0; - } - - static bool is_null(const __FlashStringHelper* str) { - return !str; - } - - typedef const char* duplicate_t; - - template - static duplicate_t duplicate(const __FlashStringHelper* str, Buffer* buffer) { - if (!str) return NULL; - size_t size = strlen_P((const char*)str) + 1; - void* dup = buffer->alloc(size); - if (dup != NULL) memcpy_P(dup, (const char*)str, size); - return static_cast(dup); - } - - static const bool has_append = false; - static const bool has_equals = true; - static const bool should_duplicate = true; -}; -} -} - -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp deleted file mode 100644 index 227c744..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#if ARDUINOJSON_ENABLE_STD_STREAM - -#include - -namespace ArduinoJson { -namespace Internals { - -struct StdStreamTraits { - class Reader { - std::istream& _stream; - char _current, _next; - - public: - Reader(std::istream& stream) : _stream(stream), _current(0), _next(0) {} - - void move() { - _current = _next; - _next = 0; - } - - char current() { - if (!_current) _current = read(); - return _current; - } - - char next() { - // assumes that current() has been called - if (!_next) _next = read(); - return _next; - } - - private: - Reader& operator=(const Reader&); // Visual Studio C4512 - - char read() { - return _stream.eof() ? '\0' : static_cast(_stream.get()); - } - }; - - static const bool has_append = false; - static const bool has_equals = false; -}; - -template -struct StringTraits< - TStream, - // match any type that is derived from std::istream: - typename EnableIf::type>::value>::type> - : StdStreamTraits {}; -} -} - -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp deleted file mode 100644 index 39124da..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StdString.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#if ARDUINOJSON_ENABLE_STD_STRING || ARDUINOJSON_ENABLE_ARDUINO_STRING - -#if ARDUINOJSON_ENABLE_ARDUINO_STRING -#include -#endif - -#if ARDUINOJSON_ENABLE_STD_STRING -#include -#endif - -namespace ArduinoJson { -namespace Internals { - -template -struct StdStringTraits { - typedef const char* duplicate_t; - - template - static duplicate_t duplicate(const TString& str, Buffer* buffer) { - if (!str.c_str()) return NULL; // <- Arduino string can return NULL - size_t size = str.length() + 1; - void* dup = buffer->alloc(size); - if (dup != NULL) memcpy(dup, str.c_str(), size); - return static_cast(dup); - } - - static bool is_null(const TString& str) { - // Arduino's String::c_str() can return NULL - return !str.c_str(); - } - - struct Reader : CharPointerTraits::Reader { - Reader(const TString& str) : CharPointerTraits::Reader(str.c_str()) {} - }; - - static bool equals(const TString& str, const char* expected) { - return 0 == strcmp(str.c_str(), expected); - } - - static void append(TString& str, char c) { - str += c; - } - - static void append(TString& str, const char* s) { - str += s; - } - - static const bool has_append = true; - static const bool has_equals = true; - static const bool should_duplicate = true; -}; - -#if ARDUINOJSON_ENABLE_ARDUINO_STRING -template <> -struct StringTraits : StdStringTraits {}; -template <> -struct StringTraits : StdStringTraits { -}; -#endif - -#if ARDUINOJSON_ENABLE_STD_STRING -template <> -struct StringTraits : StdStringTraits {}; -#endif -} -} - -#endif diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp deleted file mode 100644 index dd5694b..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include -#include "../Configuration.hpp" -#include "../TypeTraits/EnableIf.hpp" -#include "../TypeTraits/IsBaseOf.hpp" -#include "../TypeTraits/IsChar.hpp" -#include "../TypeTraits/IsConst.hpp" -#include "../TypeTraits/RemoveReference.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -struct StringTraits { - static const bool has_append = false; - static const bool has_equals = false; -}; - -template -struct StringTraits : StringTraits {}; - -template -struct StringTraits : StringTraits {}; -} -} - -#include "ArduinoStream.hpp" -#include "CharPointer.hpp" -#include "FlashString.hpp" -#include "StdStream.hpp" -#include "StdString.hpp" diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp deleted file mode 100644 index 83fc5e0..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that return the type T if Condition is true. -template -struct EnableIf {}; - -template -struct EnableIf { - typedef T type; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp deleted file mode 100644 index 5044807..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/FloatTraits.hpp +++ /dev/null @@ -1,150 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include -#include // for size_t -#include "../Configuration.hpp" -#include "../Polyfills/math.hpp" - -namespace ArduinoJson { -namespace Internals { - -template -struct FloatTraits {}; - -template -struct FloatTraits { - typedef int64_t mantissa_type; - static const short mantissa_bits = 52; - static const mantissa_type mantissa_max = - (static_cast(1) << mantissa_bits) - 1; - - typedef int16_t exponent_type; - static const exponent_type exponent_max = 308; - - template - static T make_float(T m, TExponent e) { - if (e > 0) { - for (uint8_t index = 0; e != 0; index++) { - if (e & 1) m *= positiveBinaryPowerOfTen(index); - e >>= 1; - } - } else { - e = TExponent(-e); - for (uint8_t index = 0; e != 0; index++) { - if (e & 1) m *= negativeBinaryPowerOfTen(index); - e >>= 1; - } - } - return m; - } - - static T positiveBinaryPowerOfTen(int index) { - static T factors[] = { - 1e1, 1e2, 1e4, 1e8, 1e16, 1e32, - // workaround to support platforms with single precision literals - forge(0x4D384F03, 0xE93FF9F5), forge(0x5A827748, 0xF9301D32), - forge(0x75154FDD, 0x7F73BF3C)}; - return factors[index]; - } - - static T negativeBinaryPowerOfTen(int index) { - static T factors[] = { - 1e-1, 1e-2, 1e-4, 1e-8, 1e-16, 1e-32, - // workaround to support platforms with single precision literals - forge(0x32A50FFD, 0x44F4A73D), forge(0x255BBA08, 0xCF8C979D), - forge(0x0AC80628, 0x64AC6F43)}; - return factors[index]; - } - - static T negativeBinaryPowerOfTenPlusOne(int index) { - static T factors[] = { - 1e0, 1e-1, 1e-3, 1e-7, 1e-15, 1e-31, - // workaround to support platforms with single precision literals - forge(0x32DA53FC, 0x9631D10D), forge(0x25915445, 0x81B7DEC2), - forge(0x0AFE07B2, 0x7DD78B14)}; - return factors[index]; - } - - static T nan() { - return forge(0x7ff80000, 0x00000000); - } - - static T inf() { - return forge(0x7ff00000, 0x00000000); - } - - static T forge(uint32_t msb, uint32_t lsb) { - union { - uint64_t integerBits; - T floatBits; - }; - integerBits = (uint64_t(msb) << 32) | lsb; - return floatBits; - } -}; - -template -struct FloatTraits { - typedef int32_t mantissa_type; - static const short mantissa_bits = 23; - static const mantissa_type mantissa_max = - (static_cast(1) << mantissa_bits) - 1; - - typedef int8_t exponent_type; - static const exponent_type exponent_max = 38; - - template - static T make_float(T m, TExponent e) { - if (e > 0) { - for (uint8_t index = 0; e != 0; index++) { - if (e & 1) m *= positiveBinaryPowerOfTen(index); - e >>= 1; - } - } else { - e = -e; - for (uint8_t index = 0; e != 0; index++) { - if (e & 1) m *= negativeBinaryPowerOfTen(index); - e >>= 1; - } - } - return m; - } - - static T positiveBinaryPowerOfTen(int index) { - static T factors[] = {1e1f, 1e2f, 1e4f, 1e8f, 1e16f, 1e32f}; - return factors[index]; - } - - static T negativeBinaryPowerOfTen(int index) { - static T factors[] = {1e-1f, 1e-2f, 1e-4f, 1e-8f, 1e-16f, 1e-32f}; - return factors[index]; - } - - static T negativeBinaryPowerOfTenPlusOne(int index) { - static T factors[] = {1e0f, 1e-1f, 1e-3f, 1e-7f, 1e-15f, 1e-31f}; - return factors[index]; - } - - static T forge(uint32_t bits) { - union { - uint32_t integerBits; - T floatBits; - }; - integerBits = bits; - return floatBits; - } - - static T nan() { - return forge(0x7fc00000); - } - - static T inf() { - return forge(0x7f800000); - } -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp deleted file mode 100644 index 2599231..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that return the type T without the const modifier -template -struct IsArray { - static const bool value = false; -}; -template -struct IsArray { - static const bool value = true; -}; -template -struct IsArray { - static const bool value = true; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp deleted file mode 100644 index bf24e96..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if Derived inherits from TBase is an -// integral type. -template -class IsBaseOf { - protected: // <- to avoid GCC's "all member functions in class are private" - typedef char Yes[1]; - typedef char No[2]; - - static Yes &probe(const TBase *); - static No &probe(...); - - public: - enum { - value = sizeof(probe(reinterpret_cast(0))) == sizeof(Yes) - }; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp deleted file mode 100644 index d97cec2..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "IsSame.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if T is a charater -template -struct IsChar { - static const bool value = IsSame::value || - IsSame::value || - IsSame::value; -}; - -template -struct IsChar : IsChar {}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp deleted file mode 100644 index 512ee5c..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that return the type T without the const modifier -template -struct IsConst { - static const bool value = false; -}; - -template -struct IsConst { - static const bool value = true; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp deleted file mode 100644 index e41a682..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "IsSame.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if T is a floating point type -template -struct IsFloatingPoint { - static const bool value = IsSame::value || IsSame::value; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp deleted file mode 100644 index 17ae5f2..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "IsSame.hpp" -#include "IsSignedIntegral.hpp" -#include "IsUnsignedIntegral.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if T is an integral type. -template -struct IsIntegral { - static const bool value = IsSignedIntegral::value || - IsUnsignedIntegral::value || - IsSame::value; - // CAUTION: differs from std::is_integral as it doesn't include bool -}; - -template -struct IsIntegral : IsIntegral {}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp deleted file mode 100644 index 06567c9..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if types T and U are the same. -template -struct IsSame { - static const bool value = false; -}; - -template -struct IsSame { - static const bool value = true; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp deleted file mode 100644 index 7334eb9..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" -#include "IsSame.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if T is an integral type. -template -struct IsSignedIntegral { - static const bool value = - IsSame::value || IsSame::value || - IsSame::value || IsSame::value || -#if ARDUINOJSON_USE_LONG_LONG - IsSame::value || -#endif -#if ARDUINOJSON_USE_INT64 - IsSame::value || -#endif - false; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp deleted file mode 100644 index 938423f..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "../Configuration.hpp" -#include "IsSame.hpp" - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that returns true if T is an integral type. -template -struct IsUnsignedIntegral { - static const bool value = - IsSame::value || IsSame::value || - IsSame::value || IsSame::value || -#if ARDUINOJSON_USE_LONG_LONG - IsSame::value || -#endif -#if ARDUINOJSON_USE_INT64 - IsSame::value || -#endif - false; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp deleted file mode 100644 index f8b299f..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp +++ /dev/null @@ -1,17 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -#include "IsBaseOf.hpp" - -namespace ArduinoJson { -namespace Internals { - -class JsonVariantTag {}; - -template -struct IsVariant : IsBaseOf {}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp deleted file mode 100644 index 39d4cb5..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that return the type T without the const modifier -template -struct RemoveConst { - typedef T type; -}; -template -struct RemoveConst { - typedef T type; -}; -} -} diff --git a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp b/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp deleted file mode 100644 index 395a128..0000000 --- a/printermonitor/libs/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// ArduinoJson - arduinojson.org -// Copyright Benoit Blanchon 2014-2018 -// MIT License - -#pragma once - -namespace ArduinoJson { -namespace Internals { - -// A meta-function that return the type T without the reference modifier. -template -struct RemoveReference { - typedef T type; -}; -template -struct RemoveReference { - typedef T type; -}; -} -}