diff --git a/.github/workflows/dev.actions.yml b/.github/workflows/dev.actions.yml index 224f48f..3f0a99f 100644 --- a/.github/workflows/dev.actions.yml +++ b/.github/workflows/dev.actions.yml @@ -16,7 +16,7 @@ jobs: with: arduino-board-fqbn: esp32:esp32:watchy:Revision=v20,PartitionScheme=min_spiffs,UploadSpeed=921600,DebugLevel=none,EraseFlash=none platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - arduino-platform: esp32:esp32@2.0.17 + arduino-platform: esp32:esp32@3.0.3 required-libraries: Adafruit GFX Library,Arduino_JSON,DS3232RTC,NTPClient,Rtc_Pcf8563,GxEPD2,WiFiManager set-build-path: true - uses: actions/upload-artifact@v3 diff --git a/.github/workflows/main.actions.yml b/.github/workflows/main.actions.yml index eebc641..a2fe0f7 100644 --- a/.github/workflows/main.actions.yml +++ b/.github/workflows/main.actions.yml @@ -14,9 +14,9 @@ jobs: - uses: actions/checkout@master - uses: ArminJo/arduino-test-compile@v3 with: - arduino-board-fqbn: esp32:esp32:watchy:Revision=${{ matrix.board-revisions }},PartitionScheme=min_spiffs,UploadSpeed=921600,DebugLevel=none,EraseFlash=none + arduino-board-fqbn: esp32:esp32:watchy:Revision=${{ matrix.board-revisions }},PartitionScheme=huge_app,UploadSpeed=921600,DebugLevel=none,EraseFlash=none platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - arduino-platform: esp32:esp32@2.0.17 + arduino-platform: esp32:esp32@3.0.3 required-libraries: Adafruit GFX Library,Arduino_JSON,DS3232RTC,NTPClient,Rtc_Pcf8563,GxEPD2,WiFiManager set-build-path: true - name: Rename binaries with board revision diff --git a/.github/workflows/v3.actions.yml b/.github/workflows/v3.actions.yml new file mode 100644 index 0000000..89f8835 --- /dev/null +++ b/.github/workflows/v3.actions.yml @@ -0,0 +1,39 @@ +name: ReleaseV3 +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+" +jobs: + release: + name: Build and Release + runs-on: ubuntu-latest + strategy: + matrix: + board-revisions: [v30] + steps: + - uses: actions/checkout@master + - uses: ArminJo/arduino-test-compile@v3 + with: + arduino-board-fqbn: esp32:esp32:esp32s3:FlashSize=8M,PartitionScheme=default_8MB,UploadSpeed=921600,DebugLevel=none,EraseFlash=none + platform-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json + arduino-platform: esp32:esp32@3.0.3 + required-libraries: Adafruit GFX Library,Arduino_JSON,DS3232RTC,NTPClient,Rtc_Pcf8563,GxEPD2,WiFiManager + set-build-path: true + - name: Rename binaries with board revision + run: | + parent_dir="${{ github.workspace }}/examples/WatchFaces" + for dir in "$parent_dir"/*; do + if [ -d "$dir" ]; then + cd "$dir/build" + for file in *; do + name="${file%%.*}" + ext="${file#$name.}" + mv "$file" "$name-${{ matrix.board-revisions }}.$ext" + done + cd - + fi + done + - uses: softprops/action-gh-release@v1 + with: + name: "Watchy Arduino Library ${{ github.ref_name }}" + files: ${{ github.workspace }}/examples/WatchFaces/**/build/*.bin diff --git a/.gitignore b/.gitignore index 2c92209..27432d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.pio/ +.vscode/ app/bin/ app/pde.jar build/macosx/work/ diff --git a/README.md b/README.md index cf9bcaa..5d4f070 100644 --- a/README.md +++ b/README.md @@ -2,29 +2,15 @@ ![Watchy](https://watchy.sqfmi.com/img/watchy_render.png) -**Buy Watchy from [The Pi Hut](https://thepihut.com/collections/sqfmi), [Crowd Supply](https://www.crowdsupply.com/sqfmi/watchy), and [Mouser](https://www.mouser.com/ProductDetail/SQFMI/SQFMI-WATCHY-10?qs=DRkmTr78QARN9VSJRzqRxw%3D%3D)!** +**Buy Watchy from [Mouser](https://www.mouser.com/ProductDetail/SQFMI/SQFMI-WATCHY-10?qs=DRkmTr78QARN9VSJRzqRxw%3D%3D), [The Pi Hut](https://thepihut.com/collections/sqfmi), and [Crowd Supply](https://www.crowdsupply.com/sqfmi/watchy)** [**Watchy Case & Accessories**](https://shop.sqfmi.com) -Visit [**https://watchy.sqfmi.com**](https://watchy.sqfmi.com) for documentation, hardware design files, and more! - -## Setup -1. In the Arduino IDE Boards Manager, [install support for the ESP32](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html). - * Arduino > Preferences > Additional Board Manager URLs - * ```https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json``` -2. Install this library (search for **Watchy** in the library manager), and any other dependencies when prompted -3. Check out the examples under ```Examples``` -> ```Watchy``` -4. Compile & Upload with these board settings: - * Board: "Watchy" - * Partition Scheme: "Huge App" - * Board Revision: Choose your Watchy version - * All Other Settings: leave to default - -You may also have to install the [CP2104 USB to Serial drivers](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers) if the port is not automatically detected. +## Getting Started Guide +Follow the instructions here https://watchy.sqfmi.com/docs/getting-started ### Have Fun! :) - ### Got Questions? Join our [Discord](https://discord.gg/ZXDegGV8E7) diff --git a/examples/WatchFaces/7_SEG/Watchy_7_SEG.cpp b/examples/WatchFaces/7_SEG/Watchy_7_SEG.cpp index a0c628c..9ff254b 100644 --- a/examples/WatchFaces/7_SEG/Watchy_7_SEG.cpp +++ b/examples/WatchFaces/7_SEG/Watchy_7_SEG.cpp @@ -16,10 +16,15 @@ void Watchy7SEG::drawWatchFace(){ drawSteps(); drawWeather(); drawBattery(); - display.drawBitmap(120, 77, WIFI_CONFIGURED ? wifi : wifioff, 26, 18, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.drawBitmap(116, 75, WIFI_CONFIGURED ? wifi : wifioff, 26, 18, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); if(BLE_CONFIGURED){ - display.drawBitmap(100, 75, bluetooth, 13, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.drawBitmap(100, 73, bluetooth, 13, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); } + #ifdef ARDUINO_ESP32S3_DEV + if(USB_PLUGGED_IN){ + display.drawBitmap(140, 75, charge, 16, 18, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + } + #endif } void Watchy7SEG::drawTime(){ @@ -81,25 +86,25 @@ void Watchy7SEG::drawSteps(){ display.println(stepCount); } void Watchy7SEG::drawBattery(){ - display.drawBitmap(154, 73, battery, 37, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); - display.fillRect(159, 78, 27, BATTERY_SEGMENT_HEIGHT, DARKMODE ? GxEPD_BLACK : GxEPD_WHITE);//clear battery segments + display.drawBitmap(158, 73, battery, 37, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.fillRect(163, 78, 27, BATTERY_SEGMENT_HEIGHT, DARKMODE ? GxEPD_BLACK : GxEPD_WHITE);//clear battery segments int8_t batteryLevel = 0; float VBAT = getBatteryVoltage(); - if(VBAT > 4.1){ + if(VBAT > 4.0){ batteryLevel = 3; } - else if(VBAT > 3.95 && VBAT <= 4.1){ + else if(VBAT > 3.6 && VBAT <= 4.0){ batteryLevel = 2; } - else if(VBAT > 3.80 && VBAT <= 3.95){ + else if(VBAT > 3.20 && VBAT <= 3.6){ batteryLevel = 1; } - else if(VBAT <= 3.80){ + else if(VBAT <= 3.20){ batteryLevel = 0; } for(int8_t batterySegments = 0; batterySegments < batteryLevel; batterySegments++){ - display.fillRect(159 + (batterySegments * BATTERY_SEGMENT_SPACING), 78, BATTERY_SEGMENT_WIDTH, BATTERY_SEGMENT_HEIGHT, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.fillRect(163 + (batterySegments * BATTERY_SEGMENT_SPACING), 78, BATTERY_SEGMENT_WIDTH, BATTERY_SEGMENT_HEIGHT, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); } } @@ -150,4 +155,4 @@ void Watchy7SEG::drawWeather(){ } display.drawBitmap(145, 158, weatherIcon, WEATHER_ICON_WIDTH, WEATHER_ICON_HEIGHT, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); -} +} \ No newline at end of file diff --git a/examples/WatchFaces/7_SEG/icons.h b/examples/WatchFaces/7_SEG/icons.h index 49ab826..9d67f76 100644 --- a/examples/WatchFaces/7_SEG/icons.h +++ b/examples/WatchFaces/7_SEG/icons.h @@ -189,6 +189,14 @@ const unsigned char wifioff [] PROGMEM = { 0x01, 0xff, 0xc0, 0x00, 0x07, 0xe1, 0xc0, 0x00, 0x0f, 0xc0, 0x80, 0x00, 0x1f, 0x0c, 0x00, 0x00, 0x3c, 0x1e, 0x00, 0x00, 0xf8, 0x0c, 0x00, 0x00 }; + +// 'charge', 16x18px +const unsigned char charge [] PROGMEM = { + 0x00, 0x10, 0x00, 0x70, 0x00, 0xe0, 0x01, 0xe0, 0x03, 0xe0, 0x07, 0xc0, 0x0f, 0xc0, 0x1f, 0xff, + 0x3f, 0xfe, 0x7f, 0xfc, 0x7f, 0xf8, 0x03, 0xf0, 0x03, 0xe0, 0x07, 0xc0, 0x07, 0x80, 0x07, 0x00, + 0x0e, 0x00, 0x0c, 0x00 +}; + // 'chip', 48x32px const unsigned char chip [] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/examples/WatchFaces/pipboy/WatchyPipBoy.cpp b/examples/WatchFaces/pipboy/WatchyPipBoy.cpp new file mode 100644 index 0000000..80783f5 --- /dev/null +++ b/examples/WatchFaces/pipboy/WatchyPipBoy.cpp @@ -0,0 +1,192 @@ +#include "WatchyPipBoy.h" + +#define DARKMODE true +#define STEPSGOAL 5000 + +const uint8_t WEATHER_ICON_WIDTH = 48; +const uint8_t WEATHER_ICON_HEIGHT = 32; + +RTC_DATA_ATTR uint8_t vaultBoyNum; + +void WatchyPipBoy::drawWatchFace(){ + //top menu bar + display.fillScreen(DARKMODE ? GxEPD_BLACK : GxEPD_WHITE); + display.setFont(&monofonto8pt7b); + display.setTextColor(DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.setCursor(22, 14); + display.print("STAT INV DATA MAP"); + display.drawBitmap(0, 10, menubar, 200, 9, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + + //bottom text + display.setFont(&monofonto8pt7b); + display.setCursor(10, 195); + display.println("PIP-BOY 3000 ROBCO IND."); + + drawTime(); + drawDate(); + drawSteps(); + drawWeather(); + drawBattery(); + // display.drawBitmap(120, 77, WIFI_CONFIGURED ? wifi : wifioff, 26, 18, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + // if(BLE_CONFIGURED){ + // display.drawBitmap(100, 75, bluetooth, 13, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + // } +} + +void WatchyPipBoy::drawTime(){ + + //draw random vault boy every 15mins + if(currentTime.Minute % 15 == 0){ + vaultBoyNum = random(0, 3); + } + + switch(vaultBoyNum){ + case 0: + display.drawBitmap(70, 50, vaultboy, 57, 100, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + break; + case 1: + display.drawBitmap(70, 50, vaultboypoint, 57, 100, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + break; + case 2: + display.drawBitmap(60, 50, vaultboysmile, 67, 100, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + break; + } + + //time border + display.drawLine(137, 28, 200, 28, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.drawLine(137, 28, 137, 132, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.drawLine(137, 132, 157, 132, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.drawLine(180, 132, 200, 132, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + + //draw time + display.setFont(&monofonto28pt7b); + display.setCursor(141, 75); + + int displayHour; + if(HOUR_12_24==12){ + displayHour = ((currentTime.Hour+11)%12)+1; + } else { + displayHour = currentTime.Hour; + } + if(displayHour < 10){ + display.print("0"); + } + display.print(displayHour); + + display.setCursor(141, 125); + if(currentTime.Minute < 10){ + display.print("0"); + } + display.print(currentTime.Minute); + + //AMPM + display.setFont(&monofonto8pt7b); + display.setCursor(160, 140); + display.print(currentTime.Hour < 11 ? "AM" : "PM"); +} + +void WatchyPipBoy::drawDate(){ + + display.setFont(&monofonto10pt7b); + int16_t x1, y1; + uint16_t w, h; + String dayOfWeek = dayStr(currentTime.Wday); + dayOfWeek.toUpperCase(); + display.setTextColor(DARKMODE ? GxEPD_BLACK : GxEPD_WHITE); + display.getTextBounds(dayOfWeek, 7, 42, &x1, &y1, &w, &h); + display.setCursor(7, 42); + display.fillRect(x1-2, y1-2, w+4, h+4, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.print(dayOfWeek); + + display.setFont(&monofonto10pt7b); + display.setTextColor(DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.setCursor(7, 62); + display.print(monthShortStr(currentTime.Month)); + display.print(" "); + display.print(currentTime.Day); + display.setCursor(7, 78); + display.print(tmYearToCalendar(currentTime.Year)); +} + +void WatchyPipBoy::drawSteps(){ + // reset step counter at midnight + if (currentTime.Hour == 0 && currentTime.Minute == 0){ + sensor.resetStepCounter(); + } + + //draw progress bar + uint32_t stepCount = sensor.getCounter(); + uint8_t progress = (uint8_t)(stepCount * 100.0 / STEPSGOAL); + progress = progress > 100 ? 100 : progress; + display.drawBitmap(60, 155, gauge, 73, 10, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.fillRect(60+13, 155+5, (progress/2)+5, 4, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + + //show step count + display.setFont(&monofonto8pt7b); + display.setTextColor(DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.setCursor(150, 160); + display.print("STEPS"); + display.setCursor(150, 175); + display.print(stepCount); +} + +void WatchyPipBoy::drawBattery(){ + display.drawBitmap(10, 150, battery, 37, 21, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.fillRect(15, 155, 27, 11, DARKMODE ? GxEPD_BLACK : GxEPD_WHITE);//clear battery segments + int8_t batteryLevel = 0; + float VBAT = getBatteryVoltage(); + if(VBAT > 4.1){ + batteryLevel = 3; + } + else if(VBAT > 3.95 && VBAT <= 4.1){ + batteryLevel = 2; + } + else if(VBAT > 3.80 && VBAT <= 3.95){ + batteryLevel = 1; + } + else if(VBAT <= 3.80){ + batteryLevel = 0; + } + + for(int8_t batterySegments = 0; batterySegments < batteryLevel; batterySegments++){ + display.fillRect(15 + (batterySegments * 9), 155, 7, 11, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + } +} + +void WatchyPipBoy::drawWeather(){ + + weatherData currentWeather = getWeatherData(); + + int8_t temperature = currentWeather.temperature; + int16_t weatherConditionCode = currentWeather.weatherConditionCode; + + display.setFont(&monofonto10pt7b); + display.setTextColor(DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); + display.setCursor(12, 133); + + + display.print(temperature); + display.print(currentWeather.isMetric ? "C" : "F"); + const unsigned char* weatherIcon; + + //https://openweathermap.org/weather-conditions + if(weatherConditionCode > 801){//Cloudy + weatherIcon = cloudy; + }else if(weatherConditionCode == 801){//Few Clouds + weatherIcon = cloudsun; + }else if(weatherConditionCode == 800){//Clear + weatherIcon = sunny; + }else if(weatherConditionCode >=700){//Atmosphere + weatherIcon = atmosphere; + }else if(weatherConditionCode >=600){//Snow + weatherIcon = snow; + }else if(weatherConditionCode >=500){//Rain + weatherIcon = rain; + }else if(weatherConditionCode >=300){//Drizzle + weatherIcon = drizzle; + }else if(weatherConditionCode >=200){//Thunderstorm + weatherIcon = thunderstorm; + }else + return; + display.drawBitmap(5, 85, weatherIcon, WEATHER_ICON_WIDTH, WEATHER_ICON_HEIGHT, DARKMODE ? GxEPD_WHITE : GxEPD_BLACK); +} diff --git a/examples/WatchFaces/pipboy/WatchyPipBoy.h b/examples/WatchFaces/pipboy/WatchyPipBoy.h new file mode 100644 index 0000000..4af5a9d --- /dev/null +++ b/examples/WatchFaces/pipboy/WatchyPipBoy.h @@ -0,0 +1,23 @@ +#ifndef WATCHY_PIP_BOY_H +#define WATCHY_PIP_BOY_H + +#include +#include "monofonto28pt7b.h" +#include "monofonto10pt7b.h" +#include "monofonto8pt7b.h" +#include "monofonto6pt7b.h" +#include "img.h" +#include "icons.h" + +class WatchyPipBoy : public Watchy{ + using Watchy::Watchy; + public: + void drawWatchFace(); + void drawTime(); + void drawDate(); + void drawSteps(); + void drawWeather(); + void drawBattery(); +}; + +#endif diff --git a/examples/WatchFaces/pipboy/fonts/monofonto.ttf b/examples/WatchFaces/pipboy/fonts/monofonto.ttf new file mode 100644 index 0000000..9d65196 Binary files /dev/null and b/examples/WatchFaces/pipboy/fonts/monofonto.ttf differ diff --git a/examples/WatchFaces/pipboy/icons.h b/examples/WatchFaces/pipboy/icons.h new file mode 100644 index 0000000..66354b6 --- /dev/null +++ b/examples/WatchFaces/pipboy/icons.h @@ -0,0 +1,176 @@ +// 'battery', 37x21px +const unsigned char battery [] PROGMEM = { + 0x3f, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, + 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0x00, + 0x00, 0x00, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, + 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, + 0x38, 0xe0, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0xf8, + 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f, + 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0x80 +}; +// 'bluetooth', 13x21px +const unsigned char bluetooth [] PROGMEM = { + 0x1f, 0xc0, 0x3f, 0xe0, 0x7f, 0xf0, 0xfd, 0xf8, 0xfc, 0xf8, 0xfc, 0x78, 0xdd, 0x38, 0xcd, 0x98, + 0xe5, 0x38, 0xf0, 0x78, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x78, 0xe5, 0x38, 0xcd, 0x98, 0xfd, 0x38, + 0xfc, 0x78, 0xfc, 0xf8, 0x7d, 0xf0, 0x3f, 0xe0, 0x1f, 0xc0 +}; +// 'celsius', 26x20px +const unsigned char celsius [] PROGMEM = { + 0x3f, 0x80, 0x1f, 0xc0, 0x7f, 0xc0, 0x3f, 0xc0, 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, + 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, + 0xc0, 0x60, 0x60, 0x00, 0xff, 0xc0, 0x40, 0x00, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x00, 0x3f, 0xc0 +}; +// 'fahrenheit', 26x20px +const unsigned char fahrenheit [] PROGMEM = { + 0x3f, 0x80, 0x1f, 0xc0, 0x7f, 0xc0, 0x3f, 0xc0, 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, + 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, 0xc0, 0x60, 0x60, 0x00, + 0xc0, 0x60, 0x60, 0x00, 0xff, 0xc0, 0x7f, 0xc0, 0x7f, 0x80, 0x3f, 0xc0, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +// 'cloudsun', 48x32px +const unsigned char cloudsun [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x84, 0x40, 0x00, 0x00, 0x00, 0x10, 0x44, 0x42, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x31, 0x80, 0x61, 0x00, 0x07, 0xe0, 0x19, 0x00, 0x32, 0x00, 0x38, 0x38, 0x02, + 0x00, 0x10, 0x00, 0x60, 0x04, 0x02, 0x00, 0x10, 0x00, 0x80, 0x03, 0xf2, 0x00, 0x10, 0x01, 0x00, + 0x01, 0x9e, 0x00, 0x10, 0x03, 0x00, 0x00, 0x03, 0x00, 0x10, 0x02, 0x00, 0x00, 0x01, 0x80, 0x10, + 0x02, 0x00, 0x00, 0x00, 0x80, 0x32, 0x04, 0x00, 0x00, 0x00, 0x40, 0x61, 0x04, 0x00, 0x00, 0x00, + 0x70, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x30, 0x00, 0x00, 0x00, 0x02, 0x08, 0x60, 0x00, + 0x00, 0x00, 0x01, 0x04, 0x40, 0x00, 0x00, 0x00, 0x01, 0xc2, 0x40, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x00 +}; +// 'cloudy', 48x32px +const unsigned char cloudy [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x3f, + 0xc0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x30, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x03, 0x80, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x60, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xe0 +}; +// 'rain', 48x32px +const unsigned char rain [] PROGMEM = { + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x07, 0x80, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, + 0x00, 0x00, 0x00, 0x60, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x08, 0x42, 0x10, 0x00, 0x00, 0x42, 0x10, 0x84, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x84, 0x21, 0x00, 0x00, 0x04, 0x21, + 0x08, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x84, 0x21, 0x08, 0x00, 0x00 +}; +// 'snow', 48x32px +const unsigned char snow [] PROGMEM = { + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x40, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x81, 0x02, 0x40, 0x00, 0x00, 0x02, 0x81, 0x02, 0x80, 0x00, + 0x00, 0x01, 0x81, 0x03, 0x00, 0x00, 0x00, 0x07, 0x81, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x41, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x21, 0x08, 0x00, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0x00, 0x80, + 0x09, 0x20, 0x04, 0x00, 0x00, 0x40, 0x05, 0x40, 0x08, 0x00, 0x00, 0x20, 0x03, 0x80, 0x10, 0x00, + 0x03, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x20, 0x03, 0x80, 0x10, 0x00, 0x00, 0x40, 0x05, 0x40, + 0x08, 0x00, 0x00, 0x80, 0x09, 0x20, 0x04, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x21, 0x08, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x00, 0x00, 0x03, 0x81, 0x03, 0x80, 0x00, + 0x00, 0x01, 0x81, 0x03, 0x00, 0x00, 0x00, 0x02, 0x81, 0x02, 0x80, 0x00, 0x00, 0x04, 0x01, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x40, 0x00, 0x00, 0x00, 0x00, 0x09, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 +}; +// 'sunny', 48x32px +const unsigned char sunny [] PROGMEM = { + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x08, 0x00, 0x00, 0x00, 0x00, 0x21, 0x08, 0x00, 0x00, 0x00, 0x18, + 0x20, 0x10, 0x60, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, + 0x00, 0x02, 0x0f, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0c, + 0x00, 0x00, 0x00, 0x30, 0x80, 0x04, 0x30, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, + 0x03, 0xf2, 0x00, 0x01, 0x1f, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x30, + 0x80, 0x04, 0x30, 0x00, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, + 0x00, 0x02, 0x0f, 0xc1, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x18, 0x20, 0x10, 0x60, 0x00, 0x00, 0x00, 0x21, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 +}; +// 'atmosphere', 48x32px +const unsigned char atmosphere[] PROGMEM = { + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x07, 0x80, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x04, 0x07, 0xff, 0xf8, 0xf0, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x9f, 0x1f, 0xff, 0xfc, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +// 'drizzle', 48x32px +const unsigned char drizzle[] PROGMEM = { + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x07, 0x80, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x80, + 0x00, 0x00, 0x00, 0x60, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, 0x08, 0x00, 0x00 +}; +// 'thunderstorm', 48x32px +const unsigned char thunderstorm[] PROGMEM = { + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0x80, 0x00, 0x00, 0x00, 0x06, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x20, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x07, 0x80, 0x00, 0xc0, 0x0f, 0x80, + 0x00, 0xc0, 0x03, 0x00, 0x0f, 0x80, 0x00, 0x20, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x10, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x18, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x08, 0x08, 0x00, 0x3c, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x7c, 0x00, 0x00, 0x08, 0x04, 0x00, 0x78, 0x00, 0x00, 0x08, 0x04, 0x00, 0xf8, 0x00, + 0x00, 0x08, 0x04, 0x00, 0xff, 0x00, 0x00, 0x10, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x30, 0x01, 0x80, + 0x1e, 0x00, 0x00, 0x60, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +// 'steps', 19x23px +const unsigned char steps [] PROGMEM = { + 0x00, 0x03, 0xc0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x0f, 0xe0, 0x78, 0x0f, 0xe0, 0xfc, + 0x0f, 0xe0, 0xfc, 0x0f, 0xe0, 0xfc, 0x0f, 0xe0, 0xfe, 0x0f, 0xe0, 0xfe, 0x07, 0xc0, 0xfe, 0x07, + 0xc0, 0xfe, 0x07, 0x80, 0xfe, 0x00, 0x00, 0x7c, 0x0e, 0x00, 0x7c, 0x0f, 0x80, 0x7c, 0x1f, 0x80, + 0x20, 0x1f, 0x00, 0x06, 0x0f, 0x00, 0x3e, 0x0e, 0x00, 0x3e, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x1e, 0x00, 0x00 +}; +// 'wifi', 26x18px +const unsigned char wifi [] PROGMEM = { + 0x00, 0x7f, 0x80, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xfc, 0x00, 0x1f, 0xc0, 0xfe, 0x00, + 0x7e, 0x00, 0x1f, 0x80, 0xf8, 0x3f, 0x07, 0xc0, 0x71, 0xff, 0xe3, 0x80, 0x23, 0xff, 0xf1, 0x00, + 0x07, 0xc0, 0xf8, 0x00, 0x0f, 0x00, 0x3c, 0x00, 0x06, 0x3f, 0x18, 0x00, 0x02, 0x7f, 0x90, 0x00, + 0x00, 0xff, 0xc0, 0x00, 0x00, 0xe1, 0xc0, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00 +}; +// 'wifioff', 26x18px +const unsigned char wifioff [] PROGMEM = { + 0x00, 0x7f, 0x87, 0xc0, 0x03, 0xff, 0xff, 0x80, 0x0f, 0xff, 0xff, 0x00, 0x1f, 0xc0, 0xfe, 0x00, + 0x7e, 0x00, 0x7f, 0x80, 0xf8, 0x3f, 0xf7, 0xc0, 0x71, 0xff, 0xe3, 0x80, 0x23, 0xff, 0xf1, 0x00, + 0x07, 0xcf, 0xf8, 0x00, 0x0f, 0x3e, 0x3c, 0x00, 0x06, 0x7f, 0x18, 0x00, 0x02, 0xff, 0x90, 0x00, + 0x01, 0xff, 0xc0, 0x00, 0x07, 0xe1, 0xc0, 0x00, 0x0f, 0xc0, 0x80, 0x00, 0x1f, 0x0c, 0x00, 0x00, + 0x3c, 0x1e, 0x00, 0x00, 0xf8, 0x0c, 0x00, 0x00 +}; diff --git a/examples/WatchFaces/pipboy/img.h b/examples/WatchFaces/pipboy/img.h new file mode 100644 index 0000000..3dbccc5 --- /dev/null +++ b/examples/WatchFaces/pipboy/img.h @@ -0,0 +1,198 @@ +// 'vaultboy', 57x100px +const unsigned char vaultboy [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0xff, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x87, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6b, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfb, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xff, 0xe6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0xff, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0xf7, 0xe7, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x27, 0xf3, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0xff, 0xef, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xf7, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xe3, 0xe1, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x46, 0xe7, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xff, 0xd4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x79, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xff, 0xec, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7d, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xf7, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x4f, 0xe3, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x7b, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x4f, 0xe3, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xff, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x19, 0xf3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x0f, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xcf, 0xf8, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0x07, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x03, 0xde, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0x9c, 0xff, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0x0f, 0xbc, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x1d, 0xbc, 0xff, 0xff, 0xf8, 0x00, 0x00, + 0x00, 0x19, 0xbd, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x39, 0x3d, 0xff, 0xff, 0xfe, 0x00, 0x00, + 0x00, 0x3b, 0x7d, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7b, 0x7d, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x7b, 0x7d, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0xfb, 0x7d, 0xff, 0xff, 0xff, 0xc0, 0x00, + 0x01, 0xfb, 0x7d, 0xff, 0xc7, 0xff, 0xc0, 0x00, 0x01, 0xfb, 0x7d, 0xff, 0xe1, 0xff, 0xe0, 0x00, + 0x03, 0xfb, 0x7d, 0xff, 0xf8, 0xff, 0xf0, 0x00, 0x03, 0xfb, 0x7d, 0xff, 0xfc, 0x7f, 0xf8, 0x00, + 0x07, 0xfb, 0x7d, 0xff, 0xfe, 0x3f, 0xf8, 0x00, 0x07, 0xf9, 0x7d, 0xff, 0xfe, 0x1f, 0xf8, 0x00, + 0x07, 0xf9, 0x7d, 0xff, 0xfe, 0x1f, 0xfc, 0x00, 0x0f, 0xf9, 0x7d, 0xff, 0xf8, 0x0f, 0xfc, 0x00, + 0x0f, 0xf8, 0x3c, 0xff, 0xc2, 0x0f, 0xfc, 0x00, 0x0f, 0xf8, 0xfc, 0xf8, 0x1e, 0x07, 0xfe, 0x00, + 0x1f, 0xf0, 0xfe, 0x03, 0xfe, 0x03, 0xfe, 0x00, 0x1f, 0xe0, 0xff, 0xff, 0xfe, 0x03, 0xfe, 0x00, + 0x3f, 0xc0, 0xff, 0xff, 0xfe, 0x03, 0xfe, 0x00, 0x20, 0x00, 0xff, 0xff, 0xf8, 0x01, 0xfe, 0x00, + 0x0f, 0x00, 0x7f, 0xff, 0xc2, 0x01, 0xfc, 0x00, 0x1f, 0x80, 0x3f, 0xfe, 0x1e, 0x01, 0xf8, 0x00, + 0x3f, 0x80, 0x07, 0xc0, 0xfe, 0x00, 0x03, 0x00, 0x3f, 0x80, 0x70, 0x1f, 0xfe, 0x02, 0x1f, 0x00, + 0x7b, 0x80, 0x7f, 0xff, 0xfe, 0x07, 0xff, 0x00, 0x7b, 0x80, 0x27, 0xff, 0xfe, 0x07, 0xfe, 0x00, + 0x7b, 0x80, 0x27, 0xff, 0xfc, 0x07, 0xfe, 0x00, 0x7b, 0x00, 0x07, 0xff, 0xfc, 0x03, 0xfc, 0x00, + 0x3b, 0x00, 0x07, 0xff, 0xfc, 0x03, 0xd8, 0x00, 0x3c, 0x00, 0x0f, 0xff, 0xf8, 0x01, 0x90, 0x00, + 0x14, 0x00, 0x0f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x17, 0x00, 0x0f, 0xff, 0xf8, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x09, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xce, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xff, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0x7f, 0x80, 0x00, 0x00, + 0x00, 0x01, 0xff, 0xf8, 0xff, 0x80, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf1, 0xff, 0x80, 0x00, 0x00, + 0x00, 0x03, 0xff, 0xf1, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0xff, 0xc0, 0xff, 0xc0, 0x00, 0x00, + 0x00, 0x07, 0xff, 0x80, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x7f, 0xc0, 0x00, 0x00, + 0x0c, 0x0f, 0xfe, 0x00, 0x3f, 0xe0, 0x00, 0x00, 0x06, 0xc7, 0xfc, 0x00, 0x1f, 0xe0, 0x00, 0x00, + 0x07, 0x43, 0xfc, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x07, 0xa9, 0xf0, 0x00, 0x0f, 0xc0, 0x00, 0x00, + 0x03, 0x84, 0xe0, 0x00, 0x0e, 0x20, 0x00, 0x00, 0x03, 0xd6, 0x60, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x01, 0xcf, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +// 'vaultboypoint', 57x100px +const unsigned char vaultboypoint [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xe7, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x43, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xf1, 0xec, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xf1, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xef, 0xcc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x2f, 0xff, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xf7, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1d, 0xf3, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x13, 0x73, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x1e, 0x77, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x1e, 0xff, 0xe8, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x1e, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x1f, 0x71, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0x9f, 0xe5, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x93, 0x1b, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xc3, 0xe7, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xec, 0x0f, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xe7, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x61, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x7f, 0x2f, 0x80, 0x00, 0x00, + 0x00, 0x3c, 0xc1, 0x1e, 0x6f, 0xe0, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0xef, 0xf8, 0x00, 0x00, + 0x00, 0x1c, 0x24, 0x01, 0xdf, 0xfc, 0x00, 0x00, 0x00, 0x1c, 0xe6, 0x00, 0x1f, 0xff, 0x00, 0x00, + 0x00, 0x08, 0x30, 0x87, 0x8f, 0xff, 0xc0, 0x00, 0x00, 0x09, 0x8c, 0x8c, 0xc7, 0xbf, 0xe0, 0x00, + 0x00, 0x02, 0x66, 0x8f, 0xa7, 0x07, 0x80, 0x00, 0x00, 0x1e, 0x76, 0x2f, 0xf2, 0x71, 0x00, 0x00, + 0x00, 0x3e, 0xf4, 0x4f, 0x78, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xf4, 0x40, 0x79, 0xfc, 0x00, 0x00, + 0x00, 0x3d, 0xe5, 0x19, 0xf8, 0xfc, 0x00, 0x00, 0x00, 0x1c, 0x4d, 0xdf, 0xf8, 0x7c, 0x00, 0x00, + 0x00, 0x3f, 0x05, 0xcf, 0xf8, 0x3c, 0x00, 0x00, 0x00, 0x3f, 0xcd, 0xc7, 0xf9, 0x3c, 0x00, 0x00, + 0x00, 0x7f, 0x8d, 0xdf, 0xf9, 0x3c, 0x00, 0x00, 0x00, 0x78, 0x1d, 0xce, 0xfb, 0x3c, 0x00, 0x00, + 0x01, 0x7c, 0xdd, 0xe0, 0xf3, 0xbc, 0x00, 0x00, 0x01, 0x6f, 0x1d, 0xee, 0x07, 0xbc, 0x00, 0x00, + 0x03, 0x30, 0x1d, 0xee, 0x0f, 0xb8, 0x00, 0x00, 0x03, 0x91, 0x1d, 0xde, 0xff, 0xf8, 0x00, 0x00, + 0x03, 0xc0, 0x1d, 0x9c, 0xff, 0xf8, 0x00, 0x00, 0x03, 0xe3, 0x9d, 0xb8, 0xff, 0xf0, 0x00, 0x00, + 0x03, 0xff, 0x9d, 0x72, 0x7f, 0xf0, 0x00, 0x00, 0x03, 0xff, 0x1c, 0xf6, 0x7f, 0xe0, 0x00, 0x00, + 0x01, 0xff, 0x1d, 0xe6, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0xfe, 0x1b, 0xc7, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x03, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x31, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xe6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0x20, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x0f, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0xff, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0f, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xc0, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x07, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0xf0, 0x1f, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x7f, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x01, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x10, 0x07, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x3f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xfb, 0xff, 0xf0, 0x40, 0x00, + 0x00, 0x00, 0x5f, 0xfd, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xfd, 0xff, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xf8, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf8, 0x7f, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xf8, 0x7f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x3f, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xf0, 0x1f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x1f, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0xe0, 0x0f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x07, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xe0, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x03, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xe0, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x01, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0xc0, 0x01, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0xff, 0x80, 0x00, + 0x00, 0x00, 0x7f, 0xc0, 0x00, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x00, 0x7f, 0x80, 0x00, + 0x00, 0x00, 0x1f, 0x80, 0x00, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xff, 0x80, 0x00, 0x07, 0x80, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x0f, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +// 'vaultboysmile', 67x100px +const unsigned char vaultboysmile [] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x7f, 0x1f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0, 0x0f, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0xcc, 0x64, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x9f, 0xf0, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x3f, 0x9f, + 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xef, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xff, 0xff, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x7f, 0xff, 0x98, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x3f, 0x1f, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x37, 0x8f, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xe7, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xcf, 0xff, 0x80, + 0x00, 0x00, 0x03, 0x80, 0x00, 0x07, 0xcf, 0xff, 0x60, 0x00, 0x00, 0x07, 0x80, 0x00, 0x07, 0xcf, + 0xff, 0xc0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0xff, 0x3f, 0xe0, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x06, 0xfe, 0x1f, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x31, 0x9f, 0xe0, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x02, 0x7e, 0x1f, 0x80, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0x80, 0xff, 0x00, 0x00, + 0x00, 0x03, 0x80, 0x00, 0x01, 0xe7, 0xfe, 0x00, 0x00, 0x00, 0x38, 0x60, 0x00, 0x01, 0xe7, 0xfc, + 0x00, 0x00, 0x00, 0x7f, 0x30, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xb0, 0x00, 0x00, + 0x7f, 0xf3, 0x00, 0x00, 0x00, 0x6f, 0xb8, 0x00, 0x00, 0x3f, 0xeb, 0x80, 0x00, 0x00, 0x00, 0xb9, + 0x80, 0x01, 0x0f, 0xf3, 0xb0, 0x00, 0x00, 0x7e, 0x39, 0xff, 0xff, 0x60, 0x67, 0x3c, 0x00, 0x00, + 0x7f, 0xb0, 0xff, 0xff, 0x70, 0x0f, 0x3e, 0x00, 0x00, 0x7f, 0x84, 0xff, 0xff, 0x3e, 0x3e, 0x7f, + 0x80, 0x00, 0x00, 0x15, 0xff, 0xff, 0x9f, 0xf8, 0xff, 0xc0, 0x00, 0x3f, 0x25, 0xff, 0xff, 0xdf, + 0xf3, 0xff, 0xe0, 0x00, 0x3f, 0xa9, 0xff, 0xef, 0xdf, 0x87, 0xff, 0xf0, 0x00, 0x1f, 0xab, 0xff, + 0xcf, 0xdf, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x03, 0xfe, 0x0f, 0xdf, 0x7f, 0xff, 0xfc, 0x00, 0x00, + 0x27, 0xf0, 0x0f, 0x9f, 0x7f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9e, 0x7f, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x9e, 0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xbe, 0x7f, + 0x9f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x0f, 0xbe, 0x7f, 0xcf, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, + 0xbe, 0x7f, 0xe0, 0x7f, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xbe, 0x7f, 0xf2, 0x1f, 0xc0, 0x00, 0x00, + 0x00, 0x0f, 0x3e, 0x7f, 0xf3, 0x3f, 0x80, 0x00, 0x00, 0x00, 0x0f, 0x3e, 0xff, 0xf6, 0xff, 0x80, + 0x00, 0x00, 0x00, 0x0f, 0x3e, 0xff, 0xe4, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3e, 0xff, 0xe5, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3e, 0xff, 0xe1, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3e, + 0xff, 0xeb, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3e, 0xff, 0xeb, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0xff, 0x0b, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x06, 0x7e, 0x70, 0x03, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xff, 0x00, 0xe1, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xe4, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, + 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, + 0xff, 0xff, 0xef, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x90, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0xff, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0xfc, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, + 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xff, 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x3f, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x3f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x1f, + 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0x1f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, + 0xfe, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xfe, 0x07, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x03, 0xff, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0xfe, 0x03, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x01, 0xff, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x01, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, + 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0xfc, 0x00, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x3f, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, + 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0xf8, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x01, 0xfc, 0x00, 0x00, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +// 'menu bar', 200x9px +const unsigned char menubar [] PROGMEM = { + 0x00, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff +}; + +// 'gauge', 73x10px +const unsigned char gauge [] PROGMEM = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x80, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x1f, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x0f, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xf9, 0x80, 0x07, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x80, 0x03, 0xc8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x80, 0x01, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x80, + 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x80, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf9, 0x80 +}; diff --git a/examples/WatchFaces/pipboy/img/gauge.bmp b/examples/WatchFaces/pipboy/img/gauge.bmp new file mode 100644 index 0000000..a862a17 Binary files /dev/null and b/examples/WatchFaces/pipboy/img/gauge.bmp differ diff --git a/examples/WatchFaces/pipboy/img/menu.bmp b/examples/WatchFaces/pipboy/img/menu.bmp new file mode 100644 index 0000000..7908b38 Binary files /dev/null and b/examples/WatchFaces/pipboy/img/menu.bmp differ diff --git a/examples/WatchFaces/pipboy/img/vaultboy.png b/examples/WatchFaces/pipboy/img/vaultboy.png new file mode 100644 index 0000000..04be6e7 Binary files /dev/null and b/examples/WatchFaces/pipboy/img/vaultboy.png differ diff --git a/examples/WatchFaces/pipboy/img/vaultboypoint.png b/examples/WatchFaces/pipboy/img/vaultboypoint.png new file mode 100644 index 0000000..3d9d9de Binary files /dev/null and b/examples/WatchFaces/pipboy/img/vaultboypoint.png differ diff --git a/examples/WatchFaces/pipboy/img/vaultboypointbw.png b/examples/WatchFaces/pipboy/img/vaultboypointbw.png new file mode 100644 index 0000000..ccd305a Binary files /dev/null and b/examples/WatchFaces/pipboy/img/vaultboypointbw.png differ diff --git a/examples/WatchFaces/pipboy/img/vaultboysmile.jpg b/examples/WatchFaces/pipboy/img/vaultboysmile.jpg new file mode 100644 index 0000000..8c7b396 Binary files /dev/null and b/examples/WatchFaces/pipboy/img/vaultboysmile.jpg differ diff --git a/examples/WatchFaces/pipboy/img/vaultboysmilebw.png b/examples/WatchFaces/pipboy/img/vaultboysmilebw.png new file mode 100644 index 0000000..d2689b6 Binary files /dev/null and b/examples/WatchFaces/pipboy/img/vaultboysmilebw.png differ diff --git a/examples/WatchFaces/pipboy/monofonto10pt7b.h b/examples/WatchFaces/pipboy/monofonto10pt7b.h new file mode 100644 index 0000000..aabba02 --- /dev/null +++ b/examples/WatchFaces/pipboy/monofonto10pt7b.h @@ -0,0 +1,201 @@ +const uint8_t monofonto10pt7bBitmaps[] PROGMEM = { + 0x00, 0xFF, 0xFF, 0xC3, 0xF0, 0x99, 0x99, 0x90, 0x0D, 0x82, 0x60, 0x98, + 0x64, 0x3F, 0xDF, 0xE1, 0x30, 0xC8, 0x7F, 0xBF, 0xC2, 0x60, 0x98, 0x64, + 0x1B, 0x00, 0x18, 0x18, 0x3E, 0x7F, 0xE7, 0xC3, 0xE0, 0xF0, 0x7C, 0x3F, + 0x0F, 0x03, 0x03, 0xE3, 0xFF, 0x7E, 0x18, 0x18, 0xF0, 0xE4, 0x29, 0x12, + 0x4C, 0x92, 0x25, 0x8F, 0x7C, 0x29, 0x1A, 0x44, 0x93, 0x24, 0x89, 0x42, + 0x70, 0xF0, 0x1C, 0x0F, 0x83, 0x60, 0xD8, 0x36, 0x0F, 0x03, 0x81, 0xF2, + 0x6F, 0xF1, 0xEC, 0x73, 0x9C, 0x7F, 0x8F, 0x70, 0xFF, 0xC0, 0x19, 0x8C, + 0xC6, 0x31, 0x98, 0xC6, 0x31, 0x84, 0x31, 0x8C, 0x61, 0x8E, 0x20, 0x8C, + 0xC6, 0x66, 0x63, 0x33, 0x33, 0x26, 0x66, 0x6C, 0xC8, 0x0C, 0x03, 0x08, + 0xC7, 0xB7, 0x7F, 0x83, 0x01, 0xA0, 0xCE, 0x71, 0x00, 0x18, 0x18, 0x18, + 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x6D, 0xB5, 0x80, 0xFF, 0xF0, 0xFC, + 0x00, 0xC0, 0x60, 0x18, 0x04, 0x03, 0x00, 0xC0, 0x60, 0x18, 0x04, 0x03, + 0x00, 0x80, 0x60, 0x18, 0x0C, 0x03, 0x00, 0x80, 0x60, 0x18, 0x0C, 0x00, + 0x3C, 0x7E, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, + 0x7E, 0x3C, 0x1B, 0xFF, 0xFB, 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0x3C, + 0x7E, 0xE7, 0xE3, 0x07, 0x07, 0x0E, 0x0E, 0x1C, 0x1C, 0x38, 0x30, 0x7F, + 0xFF, 0x3C, 0x7E, 0xE7, 0xC3, 0x03, 0x07, 0x0E, 0x0E, 0x03, 0x03, 0xC3, + 0xE7, 0x7E, 0x3C, 0x1E, 0x1E, 0x16, 0x36, 0x26, 0x66, 0x46, 0xC6, 0x86, + 0xFF, 0xFF, 0x06, 0x06, 0x06, 0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xFE, 0xFF, + 0xE7, 0x03, 0x03, 0x43, 0xE7, 0xFE, 0x3C, 0x0E, 0x1C, 0x18, 0x38, 0x30, + 0x7C, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3, 0xE7, 0x7E, 0x3C, 0xFF, 0xFF, 0x07, + 0x06, 0x0E, 0x0E, 0x1C, 0x1C, 0x18, 0x38, 0x38, 0x70, 0x70, 0xF0, 0x3C, + 0x7E, 0xE7, 0xC3, 0xE7, 0x7E, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3, 0xE7, 0x7E, + 0x3C, 0x3C, 0x7E, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0x7E, 0x0E, 0x0C, 0x1C, + 0x38, 0x38, 0x70, 0xFC, 0x03, 0xF0, 0x6D, 0x80, 0x03, 0x6F, 0x64, 0x01, + 0x07, 0x1C, 0x70, 0xC0, 0xC0, 0x70, 0x1E, 0x07, 0x01, 0xFF, 0xFF, 0x00, + 0x00, 0xFF, 0xFF, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x03, 0x0E, 0x78, 0xE0, + 0x80, 0x3C, 0x7E, 0x66, 0xE7, 0x07, 0x0E, 0x1C, 0x18, 0x38, 0x00, 0x00, + 0x18, 0x38, 0x18, 0x1F, 0x0C, 0x66, 0x09, 0x01, 0x40, 0x73, 0x9D, 0x27, + 0x49, 0xDA, 0xF3, 0x64, 0x01, 0x80, 0x30, 0x06, 0x01, 0x00, 0x18, 0x3C, + 0x3C, 0x3C, 0x3C, 0x7C, 0x7E, 0x7E, 0x6E, 0x66, 0xFF, 0xFF, 0xE7, 0xC7, + 0xFC, 0xFE, 0xC7, 0xC7, 0xC7, 0xC6, 0xFC, 0xFE, 0xC7, 0xC7, 0xC7, 0xC7, + 0xFE, 0xFC, 0x3C, 0x7E, 0xE7, 0xC7, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, + 0xE7, 0xE7, 0x7E, 0x3C, 0xFC, 0xFE, 0xC7, 0xC7, 0xC3, 0xC3, 0xC3, 0xC3, + 0xC3, 0xC3, 0xC3, 0xC7, 0xFE, 0xFC, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE0, + 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xE0, + 0xE0, 0xE0, 0xFE, 0xFE, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x3C, 0x7E, + 0xE7, 0xE7, 0xC0, 0xC0, 0xCF, 0xCF, 0xC3, 0xC3, 0xC3, 0xE7, 0x7F, 0x3B, + 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xFF, 0xFF, 0xE7, 0xE7, 0xE7, 0xE7, + 0xE7, 0xE7, 0xFF, 0xF3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0xFF, + 0xF0, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x0E, 0xFE, 0xFC, 0xE7, 0xE6, 0xE6, 0xEC, 0xEC, 0xF8, 0xF8, 0xF8, 0xFC, + 0xEC, 0xEE, 0xE6, 0xE7, 0xE7, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, + 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xE3, 0xE7, 0xE7, 0xE7, 0xFF, + 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xC3, 0xC3, 0xE3, 0xE3, 0xF3, + 0xF3, 0xF3, 0xFB, 0xDB, 0xDF, 0xDF, 0xCF, 0xCF, 0xC7, 0xC7, 0xC7, 0x3C, + 0x7E, 0xE7, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xE7, 0x7E, + 0x3C, 0xFC, 0xFF, 0xE7, 0xE3, 0xE3, 0xE3, 0xE7, 0xFF, 0xFC, 0xE0, 0xE0, + 0xE0, 0xE0, 0xE0, 0x3C, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, + 0xC3, 0xC3, 0xE7, 0x7E, 0x3C, 0x0E, 0x06, 0x06, 0xFC, 0x7F, 0x39, 0xDC, + 0xEE, 0x37, 0x3B, 0x9D, 0xFC, 0xFC, 0x7E, 0x3B, 0x9D, 0xCE, 0x77, 0x3C, + 0x3C, 0x7E, 0xE7, 0xC3, 0xE0, 0xF0, 0x7C, 0x1F, 0x07, 0x03, 0xC3, 0xF7, + 0x7F, 0x3C, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, + 0xC3, 0xC3, 0xC3, 0xE7, 0xFF, 0x3C, 0xE1, 0xD8, 0x67, 0x19, 0xCE, 0x73, + 0x8C, 0xC3, 0x30, 0xFC, 0x3F, 0x07, 0x81, 0xE0, 0x78, 0x1E, 0x03, 0x00, + 0xE1, 0xF8, 0x76, 0x19, 0x96, 0x6D, 0x9B, 0x66, 0xD9, 0xB6, 0x7F, 0x9F, + 0xE3, 0xF0, 0xCC, 0x33, 0x0C, 0xC0, 0xE7, 0xE7, 0x66, 0x7E, 0x7E, 0x3C, + 0x3C, 0x3C, 0x3C, 0x7E, 0x7E, 0x66, 0xE7, 0xE7, 0xE1, 0xDC, 0xE7, 0x38, + 0xCC, 0x3F, 0x0F, 0xC1, 0xE0, 0x78, 0x0C, 0x03, 0x00, 0xC0, 0x30, 0x0C, + 0x03, 0x00, 0x7F, 0xBF, 0xC0, 0xC0, 0xE0, 0x60, 0x70, 0x38, 0x38, 0x1C, + 0x1C, 0x0E, 0x06, 0x07, 0xFF, 0xFC, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, + 0xCC, 0xCC, 0xCC, 0xFF, 0xC0, 0x18, 0x06, 0x00, 0x80, 0x30, 0x0C, 0x01, + 0x80, 0x60, 0x08, 0x03, 0x00, 0x40, 0x18, 0x06, 0x00, 0xC0, 0x30, 0x04, + 0x01, 0x80, 0x60, 0x0C, 0xFF, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, + 0x33, 0xFF, 0x18, 0x3C, 0x3C, 0x66, 0x66, 0xC3, 0xC3, 0xFF, 0xFF, 0xF0, + 0xE6, 0x33, 0x3E, 0x7F, 0xE7, 0x03, 0x7F, 0xFF, 0xE3, 0xE7, 0xFF, 0x7B, + 0xC0, 0xC0, 0xC0, 0xC0, 0xCE, 0xDF, 0xE7, 0xE3, 0xC3, 0xC3, 0xE3, 0xE7, + 0xDF, 0xCE, 0x1E, 0x7F, 0xF2, 0xC0, 0xC0, 0xC0, 0xC0, 0xF2, 0x7F, 0x3E, + 0x03, 0x03, 0x03, 0x03, 0x73, 0xFB, 0xE7, 0xC7, 0xC3, 0xC3, 0xC7, 0xE7, + 0xFB, 0x73, 0x3C, 0x7E, 0xE7, 0xC3, 0xFF, 0xC0, 0xC0, 0xE7, 0x7E, 0x3C, + 0x1F, 0x3F, 0x38, 0x30, 0xFE, 0xFE, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x3B, 0x7B, 0xE7, 0xC7, 0xC3, 0xC3, 0xC7, 0xE7, 0x7B, 0x3B, + 0x03, 0xC7, 0xFE, 0x7C, 0xC0, 0xC0, 0xC0, 0xC0, 0xCE, 0xDF, 0xE7, 0xE3, + 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0x30, 0xC3, 0x00, 0xF3, 0xC3, 0x0C, + 0x30, 0xC3, 0x0C, 0xFF, 0xF0, 0x18, 0x71, 0x80, 0xFF, 0xF1, 0xC7, 0x1C, + 0x71, 0xC7, 0x1C, 0x71, 0xC6, 0xFB, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC7, + 0xCE, 0xCC, 0xD8, 0xF8, 0xD8, 0xDC, 0xCE, 0xCE, 0xC7, 0xFF, 0xCE, 0x73, + 0x9C, 0xE7, 0x39, 0xCE, 0x73, 0x9C, 0xF7, 0xFF, 0xDB, 0xDB, 0xDB, 0xDB, + 0xDB, 0xDB, 0xDB, 0xDB, 0xCE, 0xDF, 0xE7, 0xE3, 0xC3, 0xC3, 0xC3, 0xC3, + 0xC3, 0xC3, 0x3C, 0x7E, 0xE7, 0xC3, 0xC3, 0xC3, 0xC3, 0xE7, 0x7E, 0x3C, + 0xDE, 0xFE, 0xE7, 0xC7, 0xC3, 0xC3, 0xC7, 0xE7, 0xFE, 0xDE, 0xC0, 0xC0, + 0xC0, 0xC0, 0x73, 0xFB, 0xE7, 0xC7, 0xC3, 0xC3, 0xC7, 0xE7, 0xFB, 0x73, + 0x03, 0x03, 0x03, 0x03, 0xCE, 0xDF, 0xE6, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, + 0xE0, 0xE0, 0x3C, 0x7E, 0xE6, 0xE0, 0x78, 0x1E, 0x07, 0xE7, 0x7E, 0x3C, + 0x30, 0x30, 0x30, 0xFE, 0xFE, 0x30, 0x30, 0x30, 0x30, 0x30, 0x38, 0x3F, + 0x1F, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xE7, 0x7E, 0x3C, 0xE1, + 0xDC, 0x67, 0x38, 0xCC, 0x33, 0x0F, 0xC1, 0xE0, 0x78, 0x1E, 0x07, 0x80, + 0xE5, 0xD9, 0x66, 0x59, 0xB6, 0x7F, 0x9F, 0xE3, 0xF0, 0xFC, 0x33, 0x0C, + 0xC0, 0xE7, 0x66, 0x7E, 0x3C, 0x3C, 0x3C, 0x3C, 0x7E, 0x66, 0xE7, 0xE1, + 0xDC, 0x67, 0x38, 0xCC, 0x33, 0x0E, 0xC1, 0xF0, 0x78, 0x1E, 0x07, 0x80, + 0xC0, 0x30, 0x1C, 0x06, 0x00, 0xFF, 0xFE, 0x0E, 0x0C, 0x1C, 0x38, 0x30, + 0x70, 0x7F, 0xFF, 0x3B, 0xDC, 0xC2, 0x10, 0x8C, 0x66, 0x38, 0xC2, 0x10, + 0x8C, 0x63, 0x8E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xE7, 0x9C, 0x62, + 0x10, 0x86, 0x30, 0xCE, 0x62, 0x10, 0x86, 0x33, 0xB9, 0xC0, 0x78, 0x7F, + 0xF8, 0x78 }; + +const GFXglyph monofonto10pt7bGlyphs[] PROGMEM = { + { 0, 1, 1, 10, 0, 0 }, // 0x20 ' ' + { 1, 2, 14, 10, 4, -13 }, // 0x21 '!' + { 5, 4, 5, 10, 3, -13 }, // 0x22 '"' + { 8, 10, 14, 10, 0, -13 }, // 0x23 '#' + { 26, 8, 18, 10, 1, -15 }, // 0x24 '$' + { 44, 10, 14, 10, 0, -13 }, // 0x25 '%' + { 62, 10, 14, 10, 0, -13 }, // 0x26 '&' + { 80, 2, 5, 10, 4, -13 }, // 0x27 ''' + { 82, 5, 20, 10, 4, -15 }, // 0x28 '(' + { 95, 4, 20, 10, 2, -15 }, // 0x29 ')' + { 105, 10, 9, 10, 0, -13 }, // 0x2A '*' + { 117, 8, 9, 10, 1, -11 }, // 0x2B '+' + { 126, 3, 6, 10, 3, -2 }, // 0x2C ',' + { 129, 6, 2, 10, 2, -7 }, // 0x2D '-' + { 131, 2, 3, 10, 4, -2 }, // 0x2E '.' + { 132, 10, 19, 10, 0, -15 }, // 0x2F '/' + { 156, 8, 14, 10, 1, -13 }, // 0x30 '0' + { 170, 5, 14, 10, 2, -13 }, // 0x31 '1' + { 179, 8, 14, 10, 1, -13 }, // 0x32 '2' + { 193, 8, 14, 10, 1, -13 }, // 0x33 '3' + { 207, 8, 14, 10, 1, -13 }, // 0x34 '4' + { 221, 8, 14, 10, 1, -13 }, // 0x35 '5' + { 235, 8, 14, 10, 1, -13 }, // 0x36 '6' + { 249, 8, 14, 10, 1, -13 }, // 0x37 '7' + { 263, 8, 14, 10, 1, -13 }, // 0x38 '8' + { 277, 8, 14, 10, 1, -13 }, // 0x39 '9' + { 291, 2, 10, 10, 4, -9 }, // 0x3A ':' + { 294, 3, 13, 10, 3, -9 }, // 0x3B ';' + { 299, 8, 10, 10, 1, -11 }, // 0x3C '<' + { 309, 8, 6, 10, 1, -9 }, // 0x3D '=' + { 315, 8, 10, 10, 1, -11 }, // 0x3E '>' + { 325, 8, 14, 10, 1, -13 }, // 0x3F '?' + { 339, 10, 15, 10, 0, -11 }, // 0x40 '@' + { 358, 8, 14, 10, 1, -13 }, // 0x41 'A' + { 372, 8, 14, 10, 1, -13 }, // 0x42 'B' + { 386, 8, 14, 10, 1, -13 }, // 0x43 'C' + { 400, 8, 14, 10, 1, -13 }, // 0x44 'D' + { 414, 8, 14, 10, 1, -13 }, // 0x45 'E' + { 428, 8, 14, 10, 1, -13 }, // 0x46 'F' + { 442, 8, 14, 10, 1, -13 }, // 0x47 'G' + { 456, 8, 14, 10, 1, -13 }, // 0x48 'H' + { 470, 6, 14, 10, 2, -13 }, // 0x49 'I' + { 481, 8, 14, 10, 1, -13 }, // 0x4A 'J' + { 495, 8, 14, 10, 1, -13 }, // 0x4B 'K' + { 509, 8, 14, 10, 1, -13 }, // 0x4C 'L' + { 523, 8, 14, 10, 1, -13 }, // 0x4D 'M' + { 537, 8, 14, 10, 1, -13 }, // 0x4E 'N' + { 551, 8, 14, 10, 1, -13 }, // 0x4F 'O' + { 565, 8, 14, 10, 1, -13 }, // 0x50 'P' + { 579, 8, 17, 10, 1, -13 }, // 0x51 'Q' + { 596, 9, 14, 10, 1, -13 }, // 0x52 'R' + { 612, 8, 14, 10, 1, -13 }, // 0x53 'S' + { 626, 8, 14, 10, 1, -13 }, // 0x54 'T' + { 640, 8, 14, 10, 1, -13 }, // 0x55 'U' + { 654, 10, 14, 10, 0, -13 }, // 0x56 'V' + { 672, 10, 14, 10, 0, -13 }, // 0x57 'W' + { 690, 8, 14, 10, 1, -13 }, // 0x58 'X' + { 704, 10, 14, 10, 0, -13 }, // 0x59 'Y' + { 722, 9, 14, 10, 0, -13 }, // 0x5A 'Z' + { 738, 4, 20, 10, 5, -15 }, // 0x5B '[' + { 748, 10, 19, 10, 0, -15 }, // 0x5C '\' + { 772, 4, 20, 10, 1, -15 }, // 0x5D ']' + { 782, 8, 7, 10, 1, -13 }, // 0x5E '^' + { 789, 10, 2, 10, 0, 3 }, // 0x5F '_' + { 792, 4, 4, 10, 3, -13 }, // 0x60 '`' + { 794, 8, 10, 10, 1, -9 }, // 0x61 'a' + { 804, 8, 14, 10, 1, -13 }, // 0x62 'b' + { 818, 8, 10, 10, 1, -9 }, // 0x63 'c' + { 828, 8, 14, 10, 1, -13 }, // 0x64 'd' + { 842, 8, 10, 10, 1, -9 }, // 0x65 'e' + { 852, 8, 14, 10, 1, -13 }, // 0x66 'f' + { 866, 8, 14, 10, 1, -9 }, // 0x67 'g' + { 880, 8, 14, 10, 1, -13 }, // 0x68 'h' + { 894, 6, 14, 10, 2, -13 }, // 0x69 'i' + { 905, 6, 18, 10, 2, -13 }, // 0x6A 'j' + { 919, 8, 14, 10, 1, -13 }, // 0x6B 'k' + { 933, 5, 14, 10, 2, -13 }, // 0x6C 'l' + { 942, 8, 10, 10, 1, -9 }, // 0x6D 'm' + { 952, 8, 10, 10, 1, -9 }, // 0x6E 'n' + { 962, 8, 10, 10, 1, -9 }, // 0x6F 'o' + { 972, 8, 14, 10, 1, -9 }, // 0x70 'p' + { 986, 8, 14, 10, 1, -9 }, // 0x71 'q' + { 1000, 8, 10, 10, 1, -9 }, // 0x72 'r' + { 1010, 8, 10, 10, 1, -9 }, // 0x73 's' + { 1020, 8, 13, 10, 1, -12 }, // 0x74 't' + { 1033, 8, 10, 10, 1, -9 }, // 0x75 'u' + { 1043, 10, 10, 10, 0, -9 }, // 0x76 'v' + { 1056, 10, 10, 10, 0, -9 }, // 0x77 'w' + { 1069, 8, 10, 10, 1, -9 }, // 0x78 'x' + { 1079, 10, 14, 10, 0, -9 }, // 0x79 'y' + { 1097, 8, 10, 10, 1, -9 }, // 0x7A 'z' + { 1107, 5, 20, 10, 4, -15 }, // 0x7B '{' + { 1120, 2, 19, 10, 4, -15 }, // 0x7C '|' + { 1125, 5, 20, 10, 1, -15 }, // 0x7D '}' + { 1138, 10, 3, 10, 0, -8 } }; // 0x7E '~' + +const GFXfont monofonto10pt7b PROGMEM = { + (uint8_t *)monofonto10pt7bBitmaps, + (GFXglyph *)monofonto10pt7bGlyphs, + 0x20, 0x7E, 24 }; + +// Approx. 1814 bytes diff --git a/examples/WatchFaces/pipboy/monofonto28pt7b.h b/examples/WatchFaces/pipboy/monofonto28pt7b.h new file mode 100644 index 0000000..198f7f0 --- /dev/null +++ b/examples/WatchFaces/pipboy/monofonto28pt7b.h @@ -0,0 +1,853 @@ +const uint8_t monofonto28pt7bBitmaps[] PROGMEM = { + 0x00, 0x7E, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7E, 0xFD, 0xFB, 0xF7, + 0xEF, 0xDF, 0xBF, 0x7E, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7E, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x7C, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xBE, + 0x10, 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0F, 0xE1, 0xFC, 0x3F, 0x87, + 0xF0, 0xFE, 0x1F, 0xC3, 0xF8, 0x7F, 0x0E, 0x00, 0x3C, 0x0F, 0x00, 0x0F, + 0x07, 0xC0, 0x03, 0xC1, 0xE0, 0x01, 0xF0, 0x78, 0x00, 0x7C, 0x1E, 0x00, + 0x1E, 0x0F, 0x80, 0x07, 0x83, 0xC0, 0x01, 0xE0, 0xF0, 0x00, 0xF8, 0x3C, + 0x00, 0x3E, 0x0F, 0x00, 0x0F, 0x07, 0xC0, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, + 0xFF, 0x87, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFE, 0x01, + 0xE0, 0xF0, 0x00, 0x78, 0x3C, 0x00, 0x3E, 0x0F, 0x00, 0x0F, 0x03, 0xC0, + 0x03, 0xC1, 0xF0, 0x00, 0xF0, 0x78, 0x00, 0x7C, 0x1E, 0x00, 0x1E, 0x07, + 0x80, 0x7F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xC3, 0xFF, + 0xFF, 0xF0, 0xFF, 0xFF, 0xFC, 0x03, 0xC1, 0xF0, 0x00, 0xF0, 0x78, 0x00, + 0x3C, 0x1E, 0x00, 0x1F, 0x07, 0x80, 0x07, 0x81, 0xE0, 0x01, 0xE0, 0xF8, + 0x00, 0x78, 0x3C, 0x00, 0x3E, 0x0F, 0x00, 0x0F, 0x83, 0xC0, 0x03, 0xC1, + 0xF0, 0x00, 0xF0, 0x78, 0x00, 0x00, 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, + 0xE0, 0x00, 0x03, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x3F, 0xC0, 0x01, 0xFF, + 0xF0, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xE1, 0xFF, 0xFF, + 0xE3, 0xF8, 0x3F, 0xCF, 0xE0, 0x1F, 0xDF, 0xC0, 0x3F, 0xBF, 0x00, 0x7F, + 0x7E, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x07, + 0xFC, 0x00, 0x07, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x0F, 0xFF, 0x80, 0x1F, + 0xFF, 0xC0, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xC0, 0x0F, 0xFF, 0xC0, 0x07, + 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x00, + 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xFF, 0xE0, 0x07, + 0xFF, 0xE0, 0x0F, 0xDF, 0xC0, 0x3F, 0xBF, 0xE0, 0xFF, 0x3F, 0xFF, 0xFE, + 0x7F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, + 0x7F, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x00, 0x00, + 0x78, 0x00, 0x00, 0xF0, 0x00, 0x01, 0xE0, 0x00, 0x04, 0x00, 0x00, 0x03, + 0xFC, 0x00, 0x1F, 0x7F, 0xE0, 0x03, 0xEF, 0xFE, 0x00, 0x3C, 0xFF, 0xE0, + 0x07, 0x8F, 0x1F, 0x00, 0x78, 0xF1, 0xF0, 0x0F, 0x0F, 0x1F, 0x01, 0xF0, + 0xF1, 0xF0, 0x1E, 0x0F, 0x1F, 0x03, 0xE0, 0xF1, 0xF0, 0x3C, 0x0F, 0x1F, + 0x07, 0x80, 0xF1, 0xF0, 0x78, 0x0F, 0x1F, 0x0F, 0x00, 0xF1, 0xF1, 0xF0, + 0x0F, 0x1F, 0x1E, 0x00, 0xF1, 0xF3, 0xE0, 0x0F, 0x1F, 0x3C, 0x00, 0xF1, + 0xF7, 0x80, 0x0F, 0xFE, 0xF9, 0xF8, 0xFF, 0xEF, 0x7F, 0xE7, 0xFD, 0xF7, + 0xFE, 0x3F, 0x9E, 0xFF, 0xF0, 0x03, 0xCF, 0x9F, 0x00, 0x3C, 0xF0, 0xF0, + 0x07, 0x8F, 0x0F, 0x00, 0xF8, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x01, 0xF0, + 0xF0, 0xF0, 0x1E, 0x0F, 0x0F, 0x03, 0xC0, 0xF0, 0xF0, 0x3C, 0x0F, 0x0F, + 0x07, 0x80, 0xF0, 0xF0, 0xF8, 0x0F, 0x0F, 0x0F, 0x00, 0xF0, 0xF1, 0xF0, + 0x0F, 0x0F, 0x1E, 0x00, 0xF0, 0xF3, 0xC0, 0x0F, 0xFF, 0x7C, 0x00, 0xFF, + 0xF7, 0x80, 0x07, 0xFE, 0xF8, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x40, 0x00, + 0x10, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0xF8, 0x00, 0x1F, 0xFF, 0x00, + 0x0F, 0xFF, 0xC0, 0x03, 0xE1, 0xF0, 0x00, 0xF8, 0x3E, 0x00, 0x3E, 0x0F, + 0x80, 0x0F, 0x83, 0xE0, 0x03, 0xE0, 0xF8, 0x00, 0xF8, 0x3E, 0x00, 0x3E, + 0x1F, 0x00, 0x0F, 0xCF, 0xC0, 0x03, 0xF3, 0xF0, 0x00, 0x7F, 0xF8, 0x00, + 0x1F, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, + 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x83, 0xFF, + 0xF0, 0x30, 0xFE, 0xFC, 0x1C, 0x7F, 0x3F, 0x8F, 0x9F, 0x87, 0xE7, 0xFF, + 0xC1, 0xFD, 0xFF, 0xF0, 0x3F, 0xFE, 0xFC, 0x0F, 0xFF, 0x3F, 0x01, 0xFF, + 0x8F, 0xC0, 0x7F, 0xE3, 0xF0, 0x0F, 0xF0, 0xFC, 0x03, 0xF8, 0x3F, 0x01, + 0xFF, 0x0F, 0xE0, 0xFF, 0xC1, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0x0F, + 0xFF, 0xEF, 0xC3, 0xFF, 0xF3, 0xF8, 0x7F, 0xF8, 0x7E, 0x07, 0xF8, 0x1F, + 0xC0, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, + 0x00, 0x70, 0x0F, 0x83, 0xF0, 0x7E, 0x0F, 0x83, 0xF0, 0x7C, 0x1F, 0x83, + 0xF0, 0x7C, 0x1F, 0x83, 0xF0, 0x7C, 0x0F, 0x83, 0xF0, 0x7E, 0x0F, 0x81, + 0xF0, 0x3E, 0x0F, 0xC1, 0xF8, 0x3F, 0x07, 0xE0, 0xFC, 0x1F, 0x03, 0xE0, + 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xFC, 0x1F, 0x83, 0xF0, 0x7E, + 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xF0, 0x7E, 0x07, 0xC0, 0xF8, 0x1F, 0x83, + 0xF0, 0x3E, 0x07, 0xE0, 0xFC, 0x0F, 0x81, 0xF8, 0x1F, 0x03, 0xF0, 0x7E, + 0x07, 0xC0, 0xE0, 0x08, 0x08, 0x03, 0x80, 0xFC, 0x07, 0xC0, 0x7E, 0x07, + 0xE0, 0x3E, 0x03, 0xF0, 0x1F, 0x01, 0xF0, 0x1F, 0x80, 0xF8, 0x0F, 0x80, + 0xFC, 0x0F, 0xC0, 0x7C, 0x07, 0xC0, 0x7E, 0x07, 0xE0, 0x7E, 0x03, 0xE0, + 0x3E, 0x03, 0xE0, 0x3E, 0x03, 0xE0, 0x3E, 0x03, 0xF0, 0x3F, 0x03, 0xF0, + 0x3F, 0x03, 0xF0, 0x3E, 0x03, 0xE0, 0x3E, 0x03, 0xE0, 0x3E, 0x07, 0xE0, + 0x7E, 0x07, 0xE0, 0x7C, 0x07, 0xC0, 0xFC, 0x0F, 0xC0, 0xF8, 0x0F, 0x81, + 0xF8, 0x1F, 0x01, 0xF0, 0x3F, 0x03, 0xE0, 0x7E, 0x07, 0xE0, 0x7C, 0x0F, + 0xC0, 0x38, 0x00, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x01, 0xF8, 0x00, 0x00, + 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, + 0x00, 0x00, 0x0F, 0x00, 0x43, 0x00, 0xF0, 0x1C, 0x7C, 0x0F, 0x07, 0xC7, + 0xF0, 0xF1, 0xFE, 0x7F, 0xCE, 0x7F, 0xEF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, + 0xFF, 0x90, 0x3F, 0xFF, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x03, 0xFC, 0x00, + 0x00, 0x7F, 0xE0, 0x00, 0x0F, 0x9F, 0x00, 0x01, 0xF9, 0xF8, 0x00, 0x1F, + 0x0F, 0xC0, 0x03, 0xF0, 0xFE, 0x00, 0x7E, 0x07, 0xF0, 0x0F, 0xE0, 0x3F, + 0x00, 0x7C, 0x03, 0xE0, 0x03, 0xC0, 0x18, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, 0xC0, 0x00, + 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3C, 0x00, + 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x1F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x3C, + 0x00, 0x00, 0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x07, 0x80, 0x00, 0x03, + 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x3C, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x3C, 0x3F, 0x3F, 0x3F, 0x3E, 0x3E, + 0x3E, 0x7E, 0x7E, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0xF8, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x10, 0xF9, + 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x7C, 0x20, 0x00, 0x00, 0x03, 0xE0, 0x00, + 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, + 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, + 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, + 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, + 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, + 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, + 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x7C, 0x00, + 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, + 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x1F, 0x00, 0x00, + 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, + 0x00, 0x00, 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, + 0xF8, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, + 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3F, 0xF8, 0x03, + 0xFF, 0xF0, 0x7F, 0xFF, 0xC3, 0xFF, 0xFF, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, + 0xFF, 0xE0, 0xFF, 0xFE, 0x03, 0xFF, 0xF0, 0x1F, 0xFF, 0x80, 0x7F, 0xFC, + 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x3F, + 0xFE, 0x01, 0xFF, 0xF0, 0x0F, 0xFF, 0x80, 0x7F, 0xFC, 0x03, 0xFF, 0xE0, + 0x1F, 0xFF, 0x00, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x3F, 0xFE, 0x01, 0xFF, + 0xF0, 0x0F, 0xFF, 0x80, 0x7F, 0xFC, 0x03, 0xFF, 0xE0, 0x1F, 0xFF, 0x00, + 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x3F, 0xFE, 0x03, 0xFF, 0xF0, 0x1F, 0xFF, + 0xC1, 0xFE, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, + 0x83, 0xFF, 0xF8, 0x07, 0xFF, 0x00, 0x01, 0x80, 0x00, 0x00, 0x08, 0x01, + 0xC0, 0x3E, 0x07, 0xF0, 0xFF, 0x8F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x7F, 0xF3, 0xFE, 0x1F, 0xC0, 0xFC, 0x07, 0xE0, 0x3F, 0x01, + 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, + 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, + 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, + 0xE0, 0x3F, 0x00, 0x20, 0x00, 0x0F, 0xF8, 0x00, 0xFF, 0xF8, 0x07, 0xFF, + 0xF0, 0x3F, 0xFF, 0xE0, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x1F, 0xC1, 0xFE, + 0x7F, 0x03, 0xFB, 0xF8, 0x07, 0xEF, 0xE0, 0x1F, 0xBF, 0x80, 0x7F, 0xFC, + 0x01, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x07, + 0xF8, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x1F, 0xE0, + 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x80, 0x01, + 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xF0, + 0x00, 0x3F, 0x80, 0x01, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x00, + 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x1F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE3, 0xFF, + 0xFF, 0x9F, 0xFF, 0xFE, 0xFF, 0xFF, 0xF8, 0x00, 0x08, 0x00, 0x03, 0xFF, + 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0x01, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, + 0x0F, 0xFF, 0xFE, 0x1F, 0xC1, 0xFE, 0x3F, 0x01, 0xFC, 0xFC, 0x01, 0xF9, + 0xF8, 0x03, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x0F, 0x80, + 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, + 0x3F, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x03, + 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x03, + 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0x00, 0x1F, + 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0xFE, 0xFE, 0x03, 0xFD, 0xFE, 0x0F, 0xF3, + 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x03, + 0xFF, 0xF0, 0x01, 0xFF, 0x80, 0x00, 0x30, 0x00, 0x00, 0x1F, 0xF0, 0x00, + 0x3F, 0xF0, 0x00, 0x3F, 0xF0, 0x00, 0x7F, 0xF0, 0x00, 0x7F, 0xF0, 0x00, + 0xFF, 0xF0, 0x00, 0xFB, 0xF0, 0x00, 0xFB, 0xF0, 0x01, 0xF3, 0xF0, 0x01, + 0xF3, 0xF0, 0x03, 0xE3, 0xF0, 0x03, 0xE3, 0xF0, 0x07, 0xC3, 0xF0, 0x07, + 0xC3, 0xF0, 0x0F, 0x83, 0xF0, 0x0F, 0x83, 0xF0, 0x1F, 0x03, 0xF0, 0x1F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3E, 0x03, 0xF0, 0x3E, 0x03, 0xF0, 0x7C, + 0x03, 0xF0, 0x7C, 0x03, 0xF0, 0xF8, 0x03, 0xF0, 0xF8, 0x03, 0xF0, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, + 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, + 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x3F, 0xFF, 0xF8, 0x7F, + 0xFF, 0xF0, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x87, 0xFF, + 0xFF, 0x0F, 0xFF, 0xFE, 0x1F, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x7C, 0x00, + 0x00, 0xF8, 0x00, 0x01, 0xF0, 0x00, 0x03, 0xE0, 0x00, 0x07, 0xC0, 0x00, + 0x0F, 0x80, 0x00, 0x1F, 0x3F, 0xC0, 0x3F, 0xFF, 0xE0, 0x7F, 0xFF, 0xE0, + 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xC7, 0xF0, 0x7F, 0x8F, + 0xC0, 0x7F, 0x9F, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xE0, 0x40, 0x1F, 0xC3, 0x80, + 0x3F, 0x9F, 0x00, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, + 0xE1, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x03, 0xFF, 0xF0, + 0x01, 0xFF, 0x80, 0x00, 0x20, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xC0, + 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xF0, 0x00, + 0x1F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x07, + 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xFC, + 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, + 0xC1, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x9F, 0xF0, 0xFF, + 0x3F, 0x80, 0xFF, 0x7F, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x01, 0xFF, + 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x1F, 0xDF, 0x80, 0x3F, 0xBF, + 0x80, 0x7F, 0x7F, 0x01, 0xFE, 0xFF, 0x07, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, + 0xFF, 0xC1, 0xFF, 0xFF, 0x01, 0xFF, 0xFC, 0x01, 0xFF, 0xF0, 0x00, 0xFF, + 0xC0, 0x00, 0x10, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, + 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x07, + 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x0F, + 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, + 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x80, 0x00, 0x7F, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFE, + 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xFC, + 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, + 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xE0, + 0x00, 0x3F, 0xE0, 0x00, 0x00, 0x10, 0x00, 0x03, 0xFE, 0x00, 0x1F, 0xFF, + 0x00, 0x7F, 0xFF, 0x01, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, + 0x1F, 0xC1, 0xFC, 0x3F, 0x01, 0xFC, 0x7E, 0x01, 0xF8, 0xF8, 0x03, 0xF1, + 0xF0, 0x07, 0xE3, 0xE0, 0x0F, 0xC7, 0xC0, 0x1F, 0x8F, 0x80, 0x3F, 0x1F, + 0x80, 0x7E, 0x3F, 0x81, 0xF8, 0x3F, 0x87, 0xF0, 0x3F, 0xFF, 0xC0, 0x3F, + 0xFF, 0x00, 0x7F, 0xFC, 0x01, 0xFF, 0xFE, 0x07, 0xFF, 0xFE, 0x1F, 0xC1, + 0xFE, 0x7F, 0x00, 0xFC, 0xFC, 0x01, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, + 0xFF, 0xC0, 0x07, 0xFF, 0x80, 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, + 0xFE, 0x00, 0xFF, 0xFE, 0x01, 0xFD, 0xFE, 0x0F, 0xFB, 0xFF, 0xFF, 0xE3, + 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xF0, 0x03, + 0xFF, 0x80, 0x00, 0x30, 0x00, 0x00, 0x10, 0x00, 0x03, 0xFE, 0x00, 0x1F, + 0xFF, 0x00, 0x7F, 0xFF, 0x01, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x0F, 0xFF, + 0xFF, 0x3F, 0xE1, 0xFE, 0x7F, 0x01, 0xFC, 0xFE, 0x01, 0xFD, 0xF8, 0x03, + 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x3F, + 0xFF, 0x00, 0x7F, 0x7F, 0x00, 0xFE, 0xFE, 0x03, 0xFD, 0xFF, 0x0F, 0xFB, + 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x07, 0xFF, 0xFE, 0x07, + 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0x80, 0x00, + 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x3F, + 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xE0, + 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, + 0x0F, 0xE0, 0x00, 0x10, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x7C, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xCF, 0xFF, 0xFF, + 0xFF, 0xFD, 0xFB, 0xE1, 0x00, 0x04, 0x0F, 0x0F, 0xC7, 0xF7, 0xF9, 0xFC, + 0xFE, 0x7E, 0x1F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x03, 0xF9, 0xF8, 0xFC, 0x7E, 0x3F, 0x1F, 0x0F, + 0x87, 0xC7, 0xE3, 0xF1, 0xF0, 0xF8, 0x7C, 0x3E, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0xC0, 0x00, 0x01, 0xE0, 0x00, 0x03, 0xF0, 0x00, + 0x07, 0xF8, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0xF0, 0x00, + 0x7F, 0xE0, 0x00, 0xFF, 0xC0, 0x01, 0xFF, 0x80, 0x03, 0xFE, 0x00, 0x07, + 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x01, 0xF8, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x01, 0xFF, 0x80, + 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x1F, + 0xF8, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, + 0x01, 0xF0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 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, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xF8, + 0x00, 0x03, 0xFF, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x0F, 0xFC, 0x00, 0x01, + 0xFF, 0x80, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xC0, + 0x00, 0x1F, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x1F, + 0x00, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0xFF, 0x80, 0x01, 0xFF, + 0x00, 0x03, 0xFE, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xF0, + 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0x00, + 0x00, 0x0E, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x7F, + 0xE0, 0x0F, 0xFF, 0x01, 0xFF, 0xF8, 0x3F, 0xFF, 0xC7, 0xFF, 0xFE, 0x7F, + 0xFF, 0xEF, 0xF0, 0xFE, 0xFE, 0x0F, 0xEF, 0xC0, 0x7F, 0xFC, 0x07, 0xF0, + 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x01, 0xFE, + 0x00, 0x3F, 0xC0, 0x07, 0xFC, 0x00, 0xFF, 0x80, 0x1F, 0xF0, 0x01, 0xFE, + 0x00, 0x3F, 0xC0, 0x03, 0xF8, 0x00, 0x3F, 0x00, 0x03, 0xF0, 0x00, 0x3F, + 0x00, 0x03, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, + 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x00, + 0x03, 0xE0, 0x00, 0x08, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0xFC, 0x00, + 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xF8, 0x0F, 0xE0, 0x7F, 0x07, 0xE0, 0x07, + 0xC3, 0xF0, 0x00, 0xF8, 0xF8, 0x00, 0x1E, 0x3C, 0x00, 0x03, 0x9F, 0x00, + 0x00, 0xF7, 0x80, 0x00, 0x3D, 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x01, 0xFC, + 0x00, 0x00, 0x7F, 0x01, 0xEC, 0x1F, 0xC1, 0xFF, 0x07, 0xF0, 0x7F, 0xC1, + 0xFC, 0x3C, 0x70, 0x7F, 0x0E, 0x0C, 0x1F, 0xC3, 0x83, 0x07, 0xF0, 0xE0, + 0xC1, 0xFC, 0x38, 0x30, 0x7F, 0x0E, 0x0C, 0x1B, 0xC3, 0xC7, 0x0E, 0xF0, + 0x7F, 0xC3, 0xBC, 0x0F, 0xF9, 0xCF, 0x81, 0xF7, 0xF1, 0xE0, 0x00, 0xF0, + 0x78, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x3E, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x3F, + 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x1E, 0x00, 0x00, + 0x03, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, + 0x00, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x03, 0xFF, 0x80, 0x03, 0xFF, + 0x80, 0x03, 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x07, 0xFF, + 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xEF, 0xE0, 0x07, 0xEF, 0xE0, 0x0F, 0xEF, + 0xE0, 0x0F, 0xEF, 0xE0, 0x0F, 0xEF, 0xE0, 0x0F, 0xE7, 0xF0, 0x0F, 0xC7, + 0xF0, 0x1F, 0xC7, 0xF0, 0x1F, 0xC7, 0xF0, 0x1F, 0xC7, 0xF0, 0x1F, 0xC7, + 0xF8, 0x1F, 0x83, 0xF8, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, + 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0x01, + 0xFC, 0x7F, 0x01, 0xFE, 0x7F, 0x01, 0xFE, 0xFF, 0x01, 0xFE, 0xFE, 0x00, + 0xFE, 0xFE, 0x00, 0xFE, 0xFE, 0x00, 0xFF, 0xFF, 0xFE, 0x03, 0xFF, 0xFE, + 0x0F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xCF, + 0xC0, 0xFF, 0x3F, 0x01, 0xFE, 0xFC, 0x03, 0xFB, 0xF0, 0x0F, 0xEF, 0xC0, + 0x3F, 0xBF, 0x00, 0xFE, 0xFC, 0x03, 0xFB, 0xF0, 0x0F, 0xEF, 0xC0, 0x3F, + 0x3F, 0x01, 0xFC, 0xFC, 0x07, 0xF3, 0xF0, 0x7F, 0x8F, 0xFF, 0xFC, 0x3F, + 0xFF, 0xE0, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x0F, 0xC0, 0xFE, 0x3F, 0x01, + 0xFC, 0xFC, 0x03, 0xFB, 0xF0, 0x0F, 0xEF, 0xC0, 0x1F, 0xBF, 0x00, 0x7F, + 0xFC, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x3F, 0xFF, 0x00, 0xFE, 0xFC, + 0x07, 0xFB, 0xF0, 0x7F, 0xEF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFC, 0xFF, 0xFF, + 0xF3, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0x3F, 0xFF, 0x80, 0x00, 0x20, 0x00, + 0x1F, 0xFC, 0x00, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x3F, 0xFF, 0xF1, 0xFF, + 0xFF, 0xC7, 0xFF, 0xFF, 0xBF, 0xC1, 0xFE, 0xFE, 0x03, 0xFB, 0xF8, 0x07, + 0xFF, 0xE0, 0x1F, 0xFF, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, + 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, + 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, + 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, + 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x80, + 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x0F, 0xEF, 0xF0, 0x7F, 0x9F, 0xFF, 0xFE, + 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC3, 0xFF, 0xFE, 0x03, 0xFF, 0xF0, 0x07, + 0xFF, 0x00, 0x00, 0x80, 0x00, 0xFF, 0xFE, 0x03, 0xFF, 0xFE, 0x0F, 0xFF, + 0xFE, 0x3F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xEF, 0xC0, 0xFF, + 0xBF, 0x00, 0xFE, 0xFC, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, + 0x00, 0x7F, 0xFC, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, + 0x7F, 0xFC, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, 0x7F, + 0xFC, 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, 0x7F, 0xFC, + 0x01, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, 0x7F, 0xFC, 0x01, + 0xFF, 0xF0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x00, 0x7F, 0xFC, 0x03, 0xFB, + 0xF0, 0x3F, 0xEF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF3, 0xFF, + 0xFF, 0x8F, 0xFF, 0xF8, 0x3F, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, + 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, + 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, + 0x00, 0x0F, 0xFF, 0xF8, 0xFF, 0xFF, 0x8F, 0xFF, 0xF8, 0xFF, 0xFF, 0x8F, + 0xFF, 0xF8, 0xFF, 0xFF, 0x8F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, + 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, + 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, + 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, + 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xFF, 0xFC, 0xFF, 0xFF, 0xCF, 0xFF, + 0xFC, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF, 0xFF, 0xCF, 0xE0, 0x00, 0xFE, + 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, + 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, + 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, 0x0F, 0xE0, 0x00, 0xFE, 0x00, + 0x0F, 0xE0, 0x00, 0x00, 0x20, 0x00, 0x1F, 0xFC, 0x00, 0xFF, 0xFC, 0x07, + 0xFF, 0xF8, 0x3F, 0xFF, 0xF1, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xBF, 0xE1, + 0xFE, 0xFF, 0x03, 0xFB, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x00, + 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, + 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xE0, 0xFF, 0xBF, 0x83, 0xFE, 0xFE, 0x0F, + 0xFB, 0xF8, 0x3F, 0xEF, 0xE0, 0xFF, 0xBF, 0x83, 0xFE, 0xFE, 0x01, 0xFB, + 0xF8, 0x07, 0xEF, 0xE0, 0x1F, 0xBF, 0x80, 0x7E, 0xFE, 0x01, 0xFB, 0xF8, + 0x07, 0xEF, 0xE0, 0x1F, 0xBF, 0x80, 0x7E, 0xFE, 0x01, 0xFB, 0xF8, 0x0F, + 0xEF, 0xF0, 0x7F, 0x9F, 0xFF, 0xFE, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xE3, + 0xFF, 0xFF, 0x87, 0xFF, 0xBE, 0x07, 0xFC, 0xF8, 0x02, 0x00, 0x00, 0xFE, + 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, + 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, + 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, + 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, + 0x1F, 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, + 0xFF, 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, + 0x80, 0x7F, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, + 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xC0, 0xFE, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, + 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xF0, 0x00, 0xFE, + 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, 0x00, 0x0F, 0xE0, 0x01, 0xFC, + 0x00, 0x3F, 0x80, 0x07, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0xC0, 0x03, 0xF8, + 0x00, 0x7F, 0x00, 0x0F, 0xE0, 0x01, 0xFC, 0x00, 0x3F, 0x80, 0x07, 0xF0, + 0x00, 0xFE, 0x00, 0x1F, 0xC0, 0x03, 0xF8, 0x00, 0x7F, 0x03, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x7F, 0xF0, 0x07, 0xFF, 0x00, 0x7F, 0xF0, 0x07, 0xFF, 0x00, 0x7F, + 0xF0, 0x07, 0xFF, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, + 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, + 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, + 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, + 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, 0xF0, 0x00, 0x7F, 0x00, 0x07, + 0xF0, 0x00, 0x7F, 0x00, 0x0F, 0xF0, 0x00, 0xFE, 0x00, 0x1F, 0xE0, 0x0F, + 0xFE, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF, 0xFF, 0x8F, 0xFF, 0xF0, 0xFF, + 0xFE, 0x0F, 0xFF, 0x00, 0xFE, 0x01, 0xFD, 0xFC, 0x03, 0xFB, 0xF8, 0x0F, + 0xE7, 0xF0, 0x1F, 0xCF, 0xE0, 0x7F, 0x1F, 0xC0, 0xFE, 0x3F, 0x83, 0xF8, + 0x7F, 0x07, 0xF0, 0xFE, 0x0F, 0xC1, 0xFC, 0x3F, 0x83, 0xF8, 0x7E, 0x07, + 0xF1, 0xFC, 0x0F, 0xE3, 0xF0, 0x1F, 0xCF, 0xE0, 0x3F, 0x9F, 0x80, 0x7F, + 0x3F, 0x00, 0xFE, 0xFC, 0x01, 0xFD, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, + 0xE0, 0x0F, 0xFF, 0xE0, 0x1F, 0xDF, 0xC0, 0x3F, 0xBF, 0x80, 0x7F, 0x7F, + 0x80, 0xFE, 0x7F, 0x01, 0xFC, 0xFF, 0x03, 0xF8, 0xFE, 0x07, 0xF1, 0xFE, + 0x0F, 0xE3, 0xFC, 0x1F, 0xC3, 0xF8, 0x3F, 0x87, 0xF8, 0x7F, 0x07, 0xF0, + 0xFE, 0x0F, 0xF1, 0xFC, 0x0F, 0xE3, 0xF8, 0x1F, 0xE7, 0xF0, 0x3F, 0xCF, + 0xE0, 0x3F, 0x9F, 0xC0, 0x7F, 0xBF, 0x80, 0x7F, 0x7F, 0x00, 0xFF, 0xFE, + 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, + 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, + 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, + 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, + 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x1F, + 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, + 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xC0, 0x00, 0xFE, + 0x00, 0x07, 0xF0, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x7F, 0xFE, + 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xF8, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, + 0x3F, 0xFF, 0xE0, 0x7F, 0xFF, 0xC1, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x87, + 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFE, 0x7F, 0xFF, 0xFD, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFB, 0xFF, 0x7F, + 0xF7, 0xFE, 0xFF, 0xEF, 0xF9, 0xFF, 0xCF, 0xF3, 0xFF, 0x9F, 0xE7, 0xFF, + 0x3F, 0x8F, 0xFE, 0x3F, 0x1F, 0xFC, 0x7E, 0x3F, 0xF8, 0xF8, 0x7F, 0xF0, + 0xF0, 0xFF, 0xE1, 0xE1, 0xFF, 0xC3, 0x83, 0xFF, 0x83, 0x07, 0xFF, 0x06, + 0x0F, 0xFE, 0x08, 0x1F, 0xFC, 0x10, 0x3F, 0xF8, 0x00, 0x7F, 0xF0, 0x00, + 0xFF, 0xE0, 0x01, 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x07, 0xFF, 0x00, 0x0F, + 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xFF, + 0xFE, 0x03, 0xFF, 0xFC, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xF8, 0x1F, 0xFF, + 0xF0, 0x3F, 0xFF, 0xF0, 0x7F, 0xFF, 0xE0, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, + 0xC3, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, + 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0xFF, 0xFB, 0xF9, 0xFF, 0xF7, 0xF3, + 0xFF, 0xEF, 0xF7, 0xFF, 0xCF, 0xEF, 0xFF, 0x9F, 0xDF, 0xFF, 0x1F, 0xFF, + 0xFE, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xF8, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, + 0xE0, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0x03, 0xFF, 0xFE, + 0x07, 0xFF, 0xFC, 0x07, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, 0xE0, + 0x1F, 0xFF, 0xC0, 0x3F, 0xFF, 0x80, 0x7F, 0xFF, 0x00, 0x7F, 0x00, 0x10, + 0x00, 0x07, 0xFF, 0x00, 0x1F, 0xFF, 0x80, 0x7F, 0xFF, 0x81, 0xFF, 0xFF, + 0x87, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x3F, 0xC1, 0xFE, 0x7F, 0x01, 0xFE, + 0xFE, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x07, 0xFF, + 0xC0, 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFC, + 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, + 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFC, 0x00, + 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x0F, + 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0x7E, 0x00, 0xFE, 0xFE, 0x03, 0xFD, + 0xFE, 0x0F, 0xF1, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0x03, + 0xFF, 0xFC, 0x03, 0xFF, 0xF0, 0x03, 0xFF, 0x80, 0x00, 0x30, 0x00, 0xFF, + 0xFE, 0x01, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x8F, 0xFF, + 0xFF, 0x1F, 0xFF, 0xFF, 0x3F, 0x87, 0xFF, 0x7F, 0x01, 0xFE, 0xFE, 0x01, + 0xFD, 0xFC, 0x03, 0xFB, 0xF8, 0x07, 0xFF, 0xF0, 0x0F, 0xFF, 0xE0, 0x0F, + 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0xFF, 0xFE, 0x01, 0xFF, + 0xFC, 0x03, 0xFB, 0xF8, 0x0F, 0xF7, 0xF0, 0x3F, 0xEF, 0xFF, 0xFF, 0x9F, + 0xFF, 0xFF, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC1, 0xFF, + 0xFE, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, + 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, + 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, + 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x07, 0xFF, 0x00, + 0x1F, 0xFF, 0x80, 0x7F, 0xFF, 0x81, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x0F, + 0xFF, 0xFF, 0x3F, 0xC1, 0xFE, 0x7F, 0x01, 0xFE, 0xFE, 0x01, 0xFF, 0xF8, + 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, + 0x1F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x01, + 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1F, + 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x01, 0xFF, + 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, + 0x00, 0x7F, 0x7F, 0x00, 0xFE, 0xFF, 0x03, 0xFD, 0xFF, 0x9F, 0xF1, 0xFF, + 0xFF, 0xE3, 0xFF, 0xFF, 0x83, 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x03, 0xFF, + 0xE0, 0x00, 0xFF, 0xC0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x1F, + 0x00, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, + 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x8F, + 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x3F, 0x8F, 0xFE, 0x7F, 0x03, 0xFE, 0xFE, + 0x03, 0xFD, 0xFC, 0x03, 0xFB, 0xF8, 0x07, 0xF7, 0xF0, 0x0F, 0xEF, 0xE0, + 0x1F, 0xDF, 0xC0, 0x3F, 0xBF, 0x80, 0x7F, 0x7F, 0x00, 0xFE, 0xFE, 0x03, + 0xFD, 0xFC, 0x07, 0xF3, 0xF8, 0x1F, 0xE7, 0xF0, 0xFF, 0x8F, 0xFF, 0xFE, + 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xC0, 0x7F, 0xFF, 0x00, 0xFF, 0xFE, 0x01, + 0xFF, 0xFE, 0x03, 0xFB, 0xFC, 0x07, 0xF7, 0xFC, 0x0F, 0xE7, 0xF8, 0x1F, + 0xCF, 0xF8, 0x3F, 0x8F, 0xF0, 0x7F, 0x1F, 0xF0, 0xFE, 0x1F, 0xE1, 0xFC, + 0x3F, 0xE3, 0xF8, 0x3F, 0xC7, 0xF0, 0x7F, 0xCF, 0xE0, 0x7F, 0x9F, 0xC0, + 0xFF, 0xBF, 0x80, 0xFF, 0x7F, 0x01, 0xFF, 0x00, 0x10, 0x00, 0x07, 0xFF, + 0x00, 0x3F, 0xFF, 0x00, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, + 0x1F, 0xFF, 0xFE, 0x3F, 0x81, 0xFC, 0xFE, 0x01, 0xFD, 0xFC, 0x03, 0xFB, + 0xF0, 0x07, 0xF7, 0xE0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, + 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0xFF, 0xF8, 0x00, 0xFF, + 0xFC, 0x01, 0xFF, 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, + 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xF8, 0x00, 0x1F, + 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, + 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0xFD, 0xFC, 0x03, 0xFB, 0xFC, 0x0F, 0xF3, + 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x07, + 0xFF, 0xE0, 0x07, 0xFF, 0x00, 0x00, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFC, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, + 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, + 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, + 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, + 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, + 0x00, 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, + 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, + 0xFE, 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, + 0xE0, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0xFE, + 0x00, 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, + 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, + 0x7F, 0xFC, 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x07, + 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0x80, 0x7F, 0xFF, 0x01, 0xFE, + 0xFF, 0x07, 0xFD, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x83, + 0xFF, 0xFE, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xC0, 0x00, 0x10, 0x00, 0xFE, + 0x00, 0x1F, 0xFF, 0x80, 0x1F, 0xDF, 0xC0, 0x0F, 0xEF, 0xE0, 0x07, 0xF7, + 0xF0, 0x03, 0xF3, 0xFC, 0x03, 0xF8, 0xFE, 0x01, 0xFC, 0x7F, 0x00, 0xFE, + 0x3F, 0x80, 0x7F, 0x1F, 0xC0, 0x3F, 0x0F, 0xF0, 0x3F, 0x83, 0xF8, 0x1F, + 0xC1, 0xFC, 0x0F, 0xE0, 0xFE, 0x07, 0xE0, 0x7F, 0x03, 0xF0, 0x1F, 0xC3, + 0xF8, 0x0F, 0xE1, 0xFC, 0x07, 0xF0, 0xFC, 0x03, 0xF8, 0x7E, 0x00, 0xFE, + 0x7F, 0x00, 0x7F, 0x3F, 0x80, 0x3F, 0x9F, 0xC0, 0x1F, 0xCF, 0xC0, 0x0F, + 0xE7, 0xE0, 0x03, 0xFF, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xF8, 0x00, + 0x7F, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x07, 0xFF, 0x80, + 0x03, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x3F, 0xF0, + 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, + 0x00, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, 0xE0, + 0x01, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xBF, 0x80, 0x0F, 0xEF, + 0xE0, 0x03, 0xFB, 0xF8, 0x20, 0xFE, 0x7F, 0x08, 0x3F, 0x9F, 0xC3, 0x0F, + 0xE7, 0xF0, 0xC3, 0xF9, 0xFC, 0x30, 0xFE, 0x7F, 0x1C, 0x3F, 0x1F, 0xC7, + 0x8F, 0xC7, 0xF1, 0xE3, 0xF1, 0xFC, 0xF9, 0xFC, 0x3F, 0x3E, 0x7F, 0x0F, + 0xCF, 0xDF, 0xC3, 0xF3, 0xF7, 0xF0, 0xFD, 0xFD, 0xFC, 0x3F, 0xFF, 0xFE, + 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, + 0xFE, 0x07, 0xFD, 0xFF, 0x81, 0xFF, 0x7F, 0xE0, 0x7F, 0xCF, 0xF8, 0x1F, + 0xF3, 0xFC, 0x07, 0xFC, 0xFF, 0x01, 0xFE, 0x3F, 0xC0, 0x7F, 0x8F, 0xF0, + 0x0F, 0xE1, 0xFC, 0x03, 0xF8, 0x7F, 0x00, 0xFE, 0x1F, 0xC0, 0x3F, 0x07, + 0xE0, 0x0F, 0xC1, 0xF8, 0x03, 0xF0, 0x3E, 0x00, 0xFC, 0x0F, 0x80, 0x3F, + 0x03, 0xE0, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFE, 0x7F, 0x81, 0xFE, 0x7F, + 0x81, 0xFE, 0x7F, 0x81, 0xFC, 0x3F, 0xC3, 0xFC, 0x3F, 0xC3, 0xF8, 0x1F, + 0xC3, 0xF8, 0x1F, 0xE7, 0xF0, 0x1F, 0xE7, 0xF0, 0x0F, 0xE7, 0xF0, 0x0F, + 0xFF, 0xE0, 0x07, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x03, + 0xFF, 0xC0, 0x03, 0xFF, 0x80, 0x01, 0xFF, 0x80, 0x01, 0xFF, 0x00, 0x01, + 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x03, + 0xFF, 0x80, 0x03, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0xC0, 0x07, + 0xFF, 0xE0, 0x0F, 0xEF, 0xE0, 0x0F, 0xEF, 0xF0, 0x1F, 0xE7, 0xF0, 0x1F, + 0xC7, 0xF0, 0x1F, 0xC7, 0xF8, 0x3F, 0xC7, 0xF8, 0x3F, 0x83, 0xFC, 0x7F, + 0x83, 0xFC, 0x7F, 0x83, 0xFC, 0x7F, 0x01, 0xFE, 0xFF, 0x01, 0xFE, 0xFF, + 0x01, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xE0, 0x1F, 0xE7, 0xF8, 0x07, 0xF9, + 0xFE, 0x01, 0xFE, 0x7F, 0xC0, 0xFF, 0x0F, 0xF0, 0x3F, 0xC3, 0xFC, 0x0F, + 0xE0, 0x7F, 0x87, 0xF8, 0x1F, 0xE1, 0xFE, 0x07, 0xF8, 0x7F, 0x00, 0xFF, + 0x3F, 0xC0, 0x3F, 0xCF, 0xE0, 0x07, 0xF3, 0xF8, 0x01, 0xFF, 0xFE, 0x00, + 0x7F, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x03, 0xFF, 0xE0, 0x00, 0x7F, 0xF8, + 0x00, 0x1F, 0xFE, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x3F, + 0xE0, 0x00, 0x07, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, + 0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, + 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, + 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, + 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x7F, 0x80, 0x00, + 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, + 0x0F, 0xF0, 0x00, 0x07, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, 0x00, + 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, + 0x00, 0x7F, 0x80, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, + 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xFF, + 0xFF, 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xF9, 0xFF, + 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, + 0xF0, 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, + 0x3E, 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, + 0x07, 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, + 0xC0, 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, + 0xF8, 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0x81, 0xF0, 0x3E, 0x07, 0xC0, 0xF8, + 0x1F, 0x03, 0xE0, 0x7C, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, + 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, + 0xE0, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x03, + 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x0F, 0x80, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, + 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x0F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, + 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, + 0xE0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x03, + 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x07, + 0xC0, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x3E, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, + 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, + 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, + 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, + 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, 0x7C, 0x1F, 0x07, 0xC1, 0xF0, + 0x7C, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x7E, 0x00, 0x01, 0xFC, + 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xF8, 0x00, 0x1F, 0xF8, 0x00, 0x7D, 0xF0, + 0x00, 0xF9, 0xF0, 0x03, 0xE3, 0xE0, 0x07, 0xC3, 0xE0, 0x1F, 0x07, 0xC0, + 0x3E, 0x07, 0xC0, 0xF8, 0x0F, 0x81, 0xF0, 0x0F, 0x87, 0xC0, 0x1F, 0x0F, + 0x80, 0x1F, 0x3E, 0x00, 0x3E, 0x7C, 0x00, 0x3F, 0xF0, 0x00, 0x7C, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x03, 0xFC, 0x0F, 0xE0, 0x3F, 0x80, 0xFC, 0x07, 0xF0, 0x1F, + 0xC0, 0x7E, 0x01, 0xF8, 0x07, 0xC0, 0x00, 0x20, 0x00, 0x0F, 0xFE, 0x00, + 0xFF, 0xFE, 0x07, 0xFF, 0xFC, 0x3F, 0xFF, 0xF9, 0xFF, 0xFF, 0xE7, 0xFF, + 0xFF, 0x9F, 0xC0, 0xFF, 0x06, 0x01, 0xFC, 0x00, 0x03, 0xF0, 0x00, 0x0F, + 0xC1, 0xFE, 0x3F, 0x1F, 0xFE, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x00, + 0x3F, 0xFC, 0x01, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, + 0x7F, 0xFF, 0xFD, 0xFF, 0xFB, 0xF3, 0xFF, 0xCF, 0xC3, 0xFE, 0x3F, 0x00, + 0x80, 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, + 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, + 0x00, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, + 0x0F, 0xC0, 0x40, 0x1F, 0x87, 0xF8, 0x3F, 0x1F, 0xF8, 0x7E, 0x7F, 0xF8, + 0xFD, 0xFF, 0xF9, 0xFB, 0xFF, 0xF3, 0xFF, 0xFF, 0xF7, 0xFC, 0x1F, 0xEF, + 0xF0, 0x1F, 0xDF, 0xC0, 0x3F, 0xBF, 0x80, 0x3F, 0x7E, 0x00, 0x7F, 0xFC, + 0x00, 0xFF, 0xF8, 0x01, 0xFF, 0xF0, 0x03, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, + 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x80, 0x7F, 0x7F, 0x00, 0xFE, 0xFF, 0x01, + 0xFD, 0xFF, 0x07, 0xFB, 0xFF, 0xFF, 0xF7, 0xEF, 0xFF, 0xCF, 0xDF, 0xFF, + 0x9F, 0x9F, 0xFE, 0x3F, 0x1F, 0xF8, 0x7E, 0x1F, 0xE0, 0x00, 0x04, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x3F, 0xFF, 0xE0, + 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0x8F, 0xFF, 0xFE, 0x1F, 0xF0, 0x38, 0x7F, + 0x80, 0x20, 0xFE, 0x00, 0x01, 0xF8, 0x00, 0x07, 0xF0, 0x00, 0x0F, 0xE0, + 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x87, 0xF8, 0x03, + 0x07, 0xFC, 0x0F, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, + 0x0F, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, + 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x7F, 0x00, + 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x08, + 0x0F, 0xE0, 0xFE, 0x1F, 0xC7, 0xFF, 0x3F, 0x9F, 0xFF, 0x7F, 0x3F, 0xFE, + 0xFE, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFB, 0xFC, 0x1F, 0xFF, 0xF0, 0x1F, + 0xFF, 0xC0, 0x3F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, + 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, + 0xC0, 0x1F, 0xFF, 0x80, 0x3F, 0xFF, 0x00, 0xFF, 0xFF, 0x01, 0xFE, 0xFF, + 0x07, 0xFD, 0xFF, 0xFD, 0xFB, 0xFF, 0xFB, 0xF3, 0xFF, 0xE7, 0xE3, 0xFF, + 0xCF, 0xC7, 0xFF, 0x1F, 0x83, 0xF8, 0x3F, 0x00, 0x80, 0x00, 0x00, 0x10, + 0x00, 0x01, 0xFF, 0x80, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x1F, 0xFF, + 0xF8, 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0x81, 0xFC, 0x7F, 0x00, + 0xFE, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, 0xFC, 0x00, + 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, + 0xF8, 0x7F, 0x81, 0xFE, 0x3F, 0xFF, 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, + 0xF8, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0x80, 0x00, 0x18, + 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x7F, 0xFF, 0x00, 0xFF, 0xFF, 0x01, 0xFF, + 0xFF, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x01, 0xFE, 0x00, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, + 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xE0, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, + 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x03, 0xF8, + 0x00, 0x00, 0x40, 0x00, 0x07, 0xF0, 0xFC, 0x3F, 0xF1, 0xF8, 0xFF, 0xF3, + 0xF3, 0xFF, 0xF7, 0xE7, 0xFF, 0xEF, 0xDF, 0xFF, 0xFF, 0xBF, 0xC1, 0xFF, + 0x7F, 0x01, 0xFF, 0xFE, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, + 0xE0, 0x0F, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0xFE, + 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF8, 0x0F, 0xF7, 0xF0, + 0x1F, 0xEF, 0xF0, 0x7F, 0xDF, 0xFF, 0xDF, 0x9F, 0xFF, 0xBF, 0x3F, 0xFE, + 0x7E, 0x3F, 0xFC, 0xFC, 0x3F, 0xF1, 0xF8, 0x1F, 0xC3, 0xF0, 0x04, 0x07, + 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x90, 0x00, 0x7E, 0x30, 0x01, 0xFC, + 0xF8, 0x07, 0xFB, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x07, + 0xFF, 0xF8, 0x03, 0xFF, 0xC0, 0x00, 0x30, 0x00, 0xFE, 0x00, 0x03, 0xF8, + 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, + 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, + 0xE0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x01, 0x03, 0xF8, 0x7F, 0x8F, 0xE3, + 0xFF, 0x3F, 0x9F, 0xFE, 0xFE, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xE0, 0xFF, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, + 0x80, 0x3F, 0xFE, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, + 0x3F, 0xFE, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, + 0xFE, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0xFE, + 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0x00, 0x40, + 0x00, 0x78, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x07, 0xF8, 0x01, 0xFE, 0x00, + 0x3F, 0x00, 0x0F, 0xC0, 0x01, 0xE0, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x03, 0xFF, 0xC0, 0xFF, 0xF0, + 0x3F, 0xFC, 0x0F, 0xFF, 0x03, 0xFF, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, + 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, + 0xC0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x3F, 0x00, 0x0F, 0xC0, 0x03, 0xF0, + 0x00, 0xFC, 0x00, 0x3F, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x04, 0x00, 0x0F, 0x80, + 0x07, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x3F, + 0x00, 0x1F, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7F, 0xFE, 0x3F, 0xFF, 0x1F, 0xFF, 0x8F, 0xFF, 0xC7, 0xFF, 0xE3, + 0xFF, 0xF0, 0x03, 0xF8, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, + 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x01, 0xFC, 0x00, + 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x1F, 0xC0, 0x0F, 0xE0, 0x07, 0xF0, + 0x03, 0xF8, 0x01, 0xFC, 0x00, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x1F, + 0xC0, 0x0F, 0xE0, 0x07, 0xF0, 0x03, 0xF8, 0x03, 0xFB, 0xFF, 0xFD, 0xFF, + 0xFE, 0xFF, 0xFE, 0x7F, 0xFF, 0x3F, 0xFF, 0x1F, 0xFE, 0x00, 0xFC, 0x00, + 0x03, 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, + 0xF0, 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, + 0x00, 0x0F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0xFC, 0x00, 0x03, 0xF0, 0x0F, + 0xEF, 0xC0, 0x7F, 0x3F, 0x03, 0xF8, 0xFC, 0x0F, 0xE3, 0xF0, 0x7F, 0x0F, + 0xC3, 0xF8, 0x3F, 0x0F, 0xC0, 0xFC, 0x7F, 0x03, 0xF3, 0xF8, 0x0F, 0xCF, + 0xC0, 0x3F, 0x7F, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, + 0x3F, 0x7F, 0x00, 0xFD, 0xFE, 0x03, 0xF3, 0xFC, 0x0F, 0xCF, 0xF0, 0x3F, + 0x1F, 0xE0, 0xFC, 0x3F, 0x83, 0xF0, 0xFF, 0x0F, 0xC1, 0xFE, 0x3F, 0x07, + 0xF8, 0xFC, 0x0F, 0xF3, 0xF0, 0x1F, 0xEF, 0xC0, 0x7F, 0xBF, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x00, 0x20, 0x08, 0x7F, 0x3C, 0x3F, 0x3F, 0xBF, 0x3F, 0xDF, 0xFF, 0x9F, + 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7C, + 0x7F, 0xFE, 0x1E, 0x1F, 0xFF, 0x0F, 0x0F, 0xFF, 0x87, 0x87, 0xFF, 0xC3, + 0xC3, 0xFF, 0xE1, 0xE1, 0xFF, 0xF0, 0xF0, 0xFF, 0xF8, 0x78, 0x7F, 0xFC, + 0x3C, 0x3F, 0xFE, 0x1E, 0x1F, 0xFF, 0x0F, 0x0F, 0xFF, 0x87, 0x87, 0xFF, + 0xC3, 0xC3, 0xFF, 0xE1, 0xE1, 0xFF, 0xF0, 0xF0, 0xFF, 0xF8, 0x78, 0x7F, + 0xFC, 0x3C, 0x3F, 0xFE, 0x1E, 0x1F, 0xFF, 0x0F, 0x0F, 0xFF, 0x87, 0x87, + 0xFF, 0xC3, 0xC3, 0xF0, 0x00, 0x01, 0x03, 0xF8, 0x7F, 0x8F, 0xE3, 0xFF, + 0x3F, 0x9F, 0xFE, 0xFE, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xE0, 0xFF, 0xFE, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xE0, 0x1F, 0xFF, 0x80, + 0x3F, 0xFE, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, + 0xFE, 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0xFE, + 0x00, 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0xFE, 0x00, + 0xFF, 0xF8, 0x03, 0xFF, 0xE0, 0x0F, 0xFF, 0x80, 0x3F, 0x00, 0x10, 0x00, + 0x01, 0xFF, 0x00, 0x07, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x1F, 0xFF, 0xF0, + 0x3F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xC3, 0xFC, 0x7F, 0x01, 0xFC, + 0x7F, 0x00, 0xFE, 0xFE, 0x00, 0xFE, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, + 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7F, 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0x7E, + 0xFE, 0x00, 0x7E, 0xFE, 0x00, 0xFE, 0x7F, 0x00, 0xFE, 0x7F, 0x81, 0xFE, + 0x7F, 0xC3, 0xFC, 0x3F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0, + 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xC0, 0x01, 0xFF, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x04, 0x01, 0xF8, 0x3F, 0x83, 0xF1, 0xFF, 0x87, 0xE7, 0xFF, 0x8F, + 0xCF, 0xFF, 0x9F, 0xBF, 0xFF, 0x3F, 0x7F, 0xFF, 0x7F, 0xC1, 0xFE, 0xFF, + 0x01, 0xFD, 0xFC, 0x03, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xE0, + 0x0F, 0xFF, 0x80, 0x1F, 0xFF, 0x00, 0x3F, 0xFE, 0x00, 0x7F, 0xFE, 0x00, + 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, 0xF0, 0x07, 0xFF, 0xF0, 0x1F, + 0xFF, 0xF0, 0x7F, 0xBF, 0x7F, 0xFF, 0x7E, 0xFF, 0xFE, 0xFC, 0xFF, 0xF9, + 0xF9, 0xFF, 0xE3, 0xF1, 0xFF, 0xC7, 0xE1, 0xFE, 0x0F, 0xC0, 0x60, 0x1F, + 0x80, 0x00, 0x3F, 0x00, 0x00, 0x7E, 0x00, 0x00, 0xFC, 0x00, 0x01, 0xF8, + 0x00, 0x03, 0xF0, 0x00, 0x07, 0xE0, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0x80, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x0F, 0xE0, 0xFC, 0x7F, + 0xF1, 0xF8, 0xFF, 0xF3, 0xF3, 0xFF, 0xE7, 0xEF, 0xFF, 0xEF, 0xDF, 0xFF, + 0xDF, 0xBF, 0xC1, 0xFF, 0xFF, 0x01, 0xFF, 0xFC, 0x03, 0xFF, 0xF8, 0x03, + 0xFF, 0xF0, 0x07, 0xFF, 0xE0, 0x0F, 0xFF, 0xC0, 0x1F, 0xFF, 0x80, 0x3F, + 0xFF, 0x00, 0x7F, 0xFE, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xF8, 0x03, 0xFF, + 0xF0, 0x0F, 0xFF, 0xF0, 0x1F, 0xEF, 0xF0, 0x7F, 0xDF, 0xFF, 0xFF, 0xBF, + 0xFF, 0xFF, 0x3F, 0xFE, 0xFE, 0x7F, 0xFD, 0xFC, 0x7F, 0xF3, 0xF8, 0x3F, + 0x87, 0xF0, 0x08, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, + 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x01, 0xFC, 0x00, 0x03, 0xF8, 0x00, 0x07, + 0xF0, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0x02, + 0x07, 0xE0, 0xFE, 0x3F, 0x1F, 0xF9, 0xF9, 0xFF, 0xEF, 0xCF, 0xFF, 0xFE, + 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xF0, 0xFE, 0xFF, 0x03, 0xC7, 0xF0, 0x08, + 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, + 0x00, 0x1F, 0xC0, 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, + 0xFC, 0x00, 0x0F, 0xE0, 0x00, 0x7F, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xC0, + 0x00, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x80, 0x01, 0xFC, 0x00, 0x00, + 0x00, 0x40, 0x00, 0xFF, 0xE0, 0x3F, 0xFF, 0x87, 0xFF, 0xFC, 0x7F, 0xFF, + 0xCF, 0xE0, 0xFE, 0xFC, 0x07, 0xEF, 0xC0, 0x00, 0xFC, 0x00, 0x0F, 0xE0, + 0x00, 0xFF, 0x80, 0x07, 0xFF, 0x00, 0x7F, 0xFC, 0x03, 0xFF, 0xF0, 0x0F, + 0xFF, 0xC0, 0x7F, 0xFE, 0x00, 0xFF, 0xE0, 0x03, 0xFF, 0x00, 0x0F, 0xF0, + 0x00, 0x7F, 0xFC, 0x07, 0xFF, 0xE0, 0x7F, 0xFE, 0x07, 0xFF, 0xFF, 0xFE, + 0x7F, 0xFF, 0xE7, 0xFF, 0xFC, 0x3F, 0xFF, 0x80, 0xFF, 0xE0, 0x00, 0x40, + 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, + 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0xFF, 0xFF, + 0xC7, 0xFF, 0xFE, 0x3F, 0xFF, 0xF1, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x7F, + 0xFF, 0xE0, 0x0F, 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, + 0x00, 0xFC, 0x00, 0x07, 0xE0, 0x00, 0x3F, 0x00, 0x01, 0xF8, 0x00, 0x0F, + 0xC0, 0x00, 0x7E, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0x80, 0x00, 0xFC, 0x00, + 0x07, 0xE0, 0x00, 0x3F, 0x80, 0x01, 0xFF, 0xFC, 0x0F, 0xFF, 0xE0, 0x7F, + 0xFF, 0x01, 0xFF, 0xF8, 0x07, 0xFF, 0xC0, 0x1F, 0xFE, 0xFC, 0x00, 0xFF, + 0xF0, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xF0, + 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xF0, 0x03, + 0xFF, 0xC0, 0x0F, 0xFF, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xF0, 0x03, 0xFF, + 0xC0, 0x0F, 0xFF, 0x00, 0x3F, 0xFC, 0x00, 0xFF, 0xF0, 0x07, 0xFF, 0xC0, + 0x1F, 0xFF, 0x80, 0x7F, 0xFF, 0x07, 0xFB, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, + 0x8F, 0xFF, 0xFC, 0x3F, 0xFF, 0xE0, 0x3F, 0xFF, 0x00, 0x7F, 0xF0, 0x00, + 0x08, 0x00, 0xFF, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0xDF, 0xC0, 0x0F, 0xCF, + 0xF0, 0x0F, 0xE3, 0xF8, 0x07, 0xF1, 0xFC, 0x03, 0xF0, 0xFF, 0x01, 0xF8, + 0x3F, 0x81, 0xFC, 0x1F, 0xC0, 0xFC, 0x0F, 0xE0, 0x7E, 0x03, 0xF8, 0x7F, + 0x01, 0xFC, 0x3F, 0x80, 0xFE, 0x1F, 0x80, 0x3F, 0x9F, 0xC0, 0x1F, 0xCF, + 0xE0, 0x0F, 0xE7, 0xE0, 0x03, 0xFB, 0xF0, 0x01, 0xFF, 0xF8, 0x00, 0xFF, + 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x0F, 0xFE, 0x00, 0x03, + 0xFF, 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00, + 0x1F, 0xE0, 0x00, 0xFE, 0x08, 0x1F, 0xFF, 0x82, 0x07, 0xFF, 0xE0, 0xC1, + 0xFB, 0xF8, 0x30, 0xFE, 0x7F, 0x0C, 0x3F, 0x9F, 0xC3, 0x0F, 0xE7, 0xF1, + 0xC3, 0xF1, 0xFC, 0x78, 0xFC, 0x7F, 0x1E, 0x3F, 0x0F, 0xE7, 0x9F, 0xC3, + 0xFB, 0xE7, 0xF0, 0xFE, 0xFD, 0xF8, 0x3F, 0xBF, 0x7E, 0x0F, 0xEF, 0xDF, + 0x81, 0xFB, 0xFF, 0xE0, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFC, 0x07, 0xFF, + 0xFF, 0x01, 0xFF, 0x7F, 0xC0, 0x3F, 0xDF, 0xF0, 0x0F, 0xF3, 0xFC, 0x03, + 0xFC, 0xFE, 0x00, 0xFE, 0x3F, 0x80, 0x3F, 0x8F, 0xE0, 0x07, 0xE1, 0xF8, + 0x01, 0xF8, 0x7E, 0x00, 0x7C, 0x1F, 0x00, 0x7F, 0x00, 0xFE, 0xFE, 0x03, + 0xF8, 0xFE, 0x07, 0xF1, 0xFC, 0x1F, 0xC1, 0xFC, 0x3F, 0x81, 0xF8, 0xFE, + 0x03, 0xF9, 0xF8, 0x03, 0xF7, 0xF0, 0x07, 0xFF, 0xC0, 0x07, 0xFF, 0x80, + 0x0F, 0xFE, 0x00, 0x0F, 0xFC, 0x00, 0x1F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, + 0x7F, 0xC0, 0x00, 0xFF, 0xC0, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, 0x80, 0x1F, + 0xBF, 0x80, 0x7F, 0x3F, 0x00, 0xFC, 0x7F, 0x03, 0xF8, 0x7E, 0x07, 0xE0, + 0xFE, 0x1F, 0xC0, 0xFC, 0x3F, 0x81, 0xFC, 0xFE, 0x01, 0xFB, 0xFC, 0x03, + 0xF8, 0xFF, 0x00, 0x3F, 0xBF, 0x80, 0x1F, 0xDF, 0xC0, 0x0F, 0xCF, 0xF0, + 0x07, 0xE3, 0xF8, 0x07, 0xF1, 0xFC, 0x03, 0xF0, 0xFE, 0x01, 0xF8, 0x3F, + 0x81, 0xFC, 0x1F, 0xC0, 0xFE, 0x0F, 0xE0, 0x7E, 0x03, 0xF8, 0x3F, 0x01, + 0xFC, 0x3F, 0x80, 0xFE, 0x1F, 0x80, 0x3F, 0x0F, 0xC0, 0x1F, 0xCF, 0xE0, + 0x0F, 0xE7, 0xE0, 0x03, 0xF3, 0xF0, 0x01, 0xFD, 0xF8, 0x00, 0xFF, 0xFC, + 0x00, 0x3F, 0xFC, 0x00, 0x1F, 0xFE, 0x00, 0x0F, 0xFF, 0x00, 0x03, 0xFF, + 0x00, 0x01, 0xFF, 0x80, 0x00, 0xFF, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x1F, + 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xF8, 0x00, 0x01, + 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x3F, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, + 0x7F, 0xFF, 0xFE, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, + 0xFF, 0xFF, 0x0F, 0xFF, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x07, 0xF0, 0x00, + 0x1F, 0xC0, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x07, + 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, 0x03, 0xF8, + 0x00, 0x07, 0xF0, 0x00, 0x1F, 0xC0, 0x00, 0x3F, 0x80, 0x00, 0xFE, 0x00, + 0x03, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x3F, 0xFF, 0xFC, + 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xF0, 0x00, 0x7E, 0x03, 0xFC, 0x0F, 0xF8, + 0x1F, 0xF0, 0x7F, 0xE0, 0xFE, 0x01, 0xF8, 0x03, 0xE0, 0x07, 0xC0, 0x0F, + 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, + 0x07, 0xC0, 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, + 0xF0, 0x03, 0xE0, 0x0F, 0xC0, 0x3F, 0x03, 0xFC, 0x07, 0xF0, 0x0F, 0x80, + 0x1F, 0xC0, 0x3F, 0xC0, 0x0F, 0xC0, 0x0F, 0xC0, 0x0F, 0x80, 0x1F, 0x00, + 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, + 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, + 0x07, 0xC0, 0x0F, 0xC0, 0x1F, 0xC0, 0x3F, 0xF0, 0x7F, 0xE0, 0x7F, 0xC0, + 0x7F, 0x80, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF8, 0x01, 0xFC, 0x03, 0xFC, 0x07, + 0xFC, 0x0F, 0xF8, 0x03, 0xF8, 0x03, 0xF0, 0x07, 0xE0, 0x07, 0xC0, 0x0F, + 0x80, 0x1F, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF0, 0x03, 0xE0, 0x07, 0xC0, + 0x0F, 0x80, 0x1F, 0x00, 0x3E, 0x00, 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, + 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x0F, 0xE0, 0x0F, 0xF8, 0x0F, 0xF0, 0x03, + 0xE0, 0x3F, 0xC0, 0xFF, 0x83, 0xF8, 0x07, 0xC0, 0x1F, 0x80, 0x3E, 0x00, + 0x7C, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, 0x07, 0xC0, 0x0F, 0x80, 0x1F, + 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x78, 0x00, 0xF8, 0x01, 0xF0, 0x03, 0xE0, + 0x0F, 0xC0, 0x1F, 0x80, 0x7F, 0x07, 0xFC, 0x0F, 0xF8, 0x1F, 0xE0, 0x3F, + 0x80, 0x7E, 0x00, 0x0F, 0x80, 0x00, 0x9F, 0xF0, 0x00, 0x5F, 0xFF, 0x00, + 0x7F, 0xFF, 0xF0, 0x7F, 0x07, 0xFF, 0xFE, 0x00, 0xFF, 0xFA, 0x00, 0x0F, + 0xF9, 0x00, 0x00, 0xF8 }; + +const GFXglyph monofonto28pt7bGlyphs[] PROGMEM = { + { 0, 1, 1, 28, 0, 0 }, // 0x20 ' ' + { 1, 7, 41, 28, 10, -39 }, // 0x21 '!' + { 37, 11, 13, 28, 8, -39 }, // 0x22 '"' + { 55, 26, 40, 28, 1, -39 }, // 0x23 '#' + { 185, 23, 51, 28, 3, -44 }, // 0x24 '$' + { 332, 28, 42, 28, 0, -40 }, // 0x25 '%' + { 479, 26, 42, 28, 1, -40 }, // 0x26 '&' + { 616, 4, 13, 28, 12, -39 }, // 0x27 ''' + { 623, 11, 56, 28, 12, -44 }, // 0x28 '(' + { 700, 12, 56, 28, 4, -44 }, // 0x29 ')' + { 784, 28, 26, 28, 0, -39 }, // 0x2A '*' + { 875, 25, 25, 28, 1, -31 }, // 0x2B '+' + { 954, 8, 15, 28, 9, -7 }, // 0x2C ',' + { 969, 17, 6, 28, 5, -22 }, // 0x2D '-' + { 982, 7, 10, 28, 10, -8 }, // 0x2E '.' + { 991, 27, 53, 28, 0, -43 }, // 0x2F '/' + { 1170, 21, 42, 28, 3, -40 }, // 0x30 '0' + { 1281, 13, 40, 28, 5, -39 }, // 0x31 '1' + { 1346, 22, 41, 28, 3, -40 }, // 0x32 '2' + { 1459, 23, 42, 28, 2, -40 }, // 0x33 '3' + { 1580, 24, 40, 28, 2, -39 }, // 0x34 '4' + { 1700, 23, 41, 28, 2, -39 }, // 0x35 '5' + { 1818, 23, 41, 28, 2, -39 }, // 0x36 '6' + { 1936, 24, 40, 28, 2, -39 }, // 0x37 '7' + { 2056, 23, 42, 28, 2, -40 }, // 0x38 '8' + { 2177, 23, 41, 28, 2, -40 }, // 0x39 '9' + { 2295, 7, 29, 28, 10, -27 }, // 0x3A ':' + { 2321, 9, 36, 28, 9, -27 }, // 0x3B ';' + { 2362, 25, 30, 28, 1, -34 }, // 0x3C '<' + { 2456, 25, 16, 28, 1, -27 }, // 0x3D '=' + { 2506, 25, 30, 28, 1, -34 }, // 0x3E '>' + { 2600, 20, 42, 28, 4, -40 }, // 0x3F '?' + { 2705, 26, 41, 28, 1, -32 }, // 0x40 '@' + { 2839, 24, 40, 28, 2, -39 }, // 0x41 'A' + { 2959, 22, 40, 28, 3, -39 }, // 0x42 'B' + { 3069, 22, 42, 28, 3, -40 }, // 0x43 'C' + { 3185, 22, 40, 28, 3, -39 }, // 0x44 'D' + { 3295, 20, 40, 28, 4, -39 }, // 0x45 'E' + { 3395, 20, 40, 28, 4, -39 }, // 0x46 'F' + { 3495, 22, 42, 28, 3, -40 }, // 0x47 'G' + { 3611, 22, 40, 28, 3, -39 }, // 0x48 'H' + { 3721, 19, 40, 28, 4, -39 }, // 0x49 'I' + { 3816, 20, 40, 28, 4, -39 }, // 0x4A 'J' + { 3916, 23, 40, 28, 3, -39 }, // 0x4B 'K' + { 4031, 21, 40, 28, 4, -39 }, // 0x4C 'L' + { 4136, 23, 40, 28, 2, -39 }, // 0x4D 'M' + { 4251, 23, 40, 28, 2, -39 }, // 0x4E 'N' + { 4366, 23, 42, 28, 2, -40 }, // 0x4F 'O' + { 4487, 23, 40, 28, 3, -39 }, // 0x50 'P' + { 4602, 23, 48, 28, 2, -40 }, // 0x51 'Q' + { 4740, 23, 40, 28, 3, -39 }, // 0x52 'R' + { 4855, 23, 42, 28, 3, -40 }, // 0x53 'S' + { 4976, 25, 40, 28, 1, -39 }, // 0x54 'T' + { 5101, 23, 41, 28, 2, -39 }, // 0x55 'U' + { 5219, 25, 40, 28, 1, -39 }, // 0x56 'V' + { 5344, 26, 40, 28, 1, -39 }, // 0x57 'W' + { 5474, 24, 40, 28, 2, -39 }, // 0x58 'X' + { 5594, 26, 40, 28, 1, -39 }, // 0x59 'Y' + { 5724, 25, 40, 28, 1, -39 }, // 0x5A 'Z' + { 5849, 11, 56, 28, 14, -44 }, // 0x5B '[' + { 5926, 27, 53, 28, 0, -43 }, // 0x5C '\' + { 6105, 10, 56, 28, 3, -44 }, // 0x5D ']' + { 6175, 23, 18, 28, 2, -39 }, // 0x5E '^' + { 6227, 28, 4, 28, 0, 8 }, // 0x5F '_' + { 6241, 13, 10, 28, 7, -39 }, // 0x60 '`' + { 6258, 22, 29, 28, 3, -27 }, // 0x61 'a' + { 6338, 23, 41, 28, 3, -39 }, // 0x62 'b' + { 6456, 23, 29, 28, 2, -27 }, // 0x63 'c' + { 6540, 23, 41, 28, 2, -39 }, // 0x64 'd' + { 6658, 24, 29, 28, 2, -27 }, // 0x65 'e' + { 6745, 24, 40, 28, 2, -39 }, // 0x66 'f' + { 6865, 23, 40, 28, 2, -27 }, // 0x67 'g' + { 6980, 22, 40, 28, 3, -39 }, // 0x68 'h' + { 7090, 18, 41, 28, 5, -40 }, // 0x69 'i' + { 7183, 17, 52, 28, 4, -40 }, // 0x6A 'j' + { 7294, 22, 40, 28, 3, -39 }, // 0x6B 'k' + { 7404, 12, 40, 28, 6, -39 }, // 0x6C 'l' + { 7464, 25, 28, 28, 1, -27 }, // 0x6D 'm' + { 7552, 22, 28, 28, 3, -27 }, // 0x6E 'n' + { 7629, 24, 29, 28, 2, -27 }, // 0x6F 'o' + { 7716, 23, 39, 28, 2, -27 }, // 0x70 'p' + { 7829, 23, 39, 28, 2, -27 }, // 0x71 'q' + { 7942, 21, 28, 28, 3, -27 }, // 0x72 'r' + { 8016, 20, 29, 28, 4, -27 }, // 0x73 's' + { 8089, 21, 35, 28, 3, -34 }, // 0x74 't' + { 8181, 22, 28, 28, 3, -26 }, // 0x75 'u' + { 8258, 25, 27, 28, 1, -26 }, // 0x76 'v' + { 8343, 26, 27, 28, 1, -26 }, // 0x77 'w' + { 8431, 23, 27, 28, 2, -26 }, // 0x78 'x' + { 8509, 25, 38, 28, 1, -26 }, // 0x79 'y' + { 8628, 23, 27, 28, 2, -26 }, // 0x7A 'z' + { 8706, 15, 56, 28, 10, -44 }, // 0x7B '{' + { 8811, 4, 53, 28, 12, -43 }, // 0x7C '|' + { 8838, 15, 56, 28, 3, -44 }, // 0x7D '}' + { 8943, 25, 8, 28, 1, -23 } }; // 0x7E '~' + +const GFXfont monofonto28pt7b PROGMEM = { + (uint8_t *)monofonto28pt7bBitmaps, + (GFXglyph *)monofonto28pt7bGlyphs, + 0x20, 0x7E, 66 }; + +// Approx. 9640 bytes diff --git a/examples/WatchFaces/pipboy/monofonto32pt7b.h b/examples/WatchFaces/pipboy/monofonto32pt7b.h new file mode 100644 index 0000000..e71fe2a --- /dev/null +++ b/examples/WatchFaces/pipboy/monofonto32pt7b.h @@ -0,0 +1,1084 @@ +const uint8_t monofonto32pt7bBitmaps[] PROGMEM = { + 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, + 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x7C, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7C, 0x10, + 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x0F, + 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x0F, 0xE0, 0xFE, 0x0F, 0xE0, 0xF0, 0x00, + 0x0F, 0x81, 0xE0, 0x00, 0x78, 0x1F, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3E, + 0x07, 0xC0, 0x01, 0xF0, 0x3E, 0x00, 0x0F, 0x81, 0xE0, 0x00, 0x78, 0x1F, + 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3E, 0x07, 0xC0, 0x01, 0xF0, 0x3E, 0x00, + 0x0F, 0x83, 0xE0, 0x00, 0x78, 0x1F, 0x00, 0x07, 0xC0, 0xF8, 0x07, 0xFF, + 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, + 0xF8, 0xFF, 0xFF, 0xFF, 0x80, 0x3E, 0x07, 0xC0, 0x01, 0xF0, 0x7C, 0x00, + 0x0F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3E, + 0x07, 0xC0, 0x01, 0xF0, 0x7C, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, + 0x00, 0x07, 0xC0, 0xF8, 0x07, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xE1, + 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0x80, 0x3E, + 0x07, 0x80, 0x03, 0xE0, 0x7C, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, + 0x00, 0x07, 0xC0, 0xF8, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xE0, 0x7C, 0x00, + 0x1F, 0x03, 0xE0, 0x00, 0xF8, 0x1F, 0x00, 0x07, 0xC0, 0xF0, 0x00, 0x3E, + 0x0F, 0x80, 0x03, 0xE0, 0x7C, 0x00, 0x1F, 0x03, 0xE0, 0x00, 0x00, 0x3E, + 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, 0x00, + 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x07, 0xFC, 0x00, 0x0F, 0xFF, 0xC0, + 0x07, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, + 0xFC, 0x3F, 0xFF, 0xFF, 0x1F, 0xF0, 0x7F, 0xE7, 0xF8, 0x07, 0xF9, 0xFC, + 0x00, 0xFE, 0x7F, 0x00, 0x3F, 0xBF, 0xC0, 0x0F, 0xEF, 0xF0, 0x00, 0x03, + 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x1F, 0xE0, 0x00, 0x07, 0xFE, 0x00, + 0x01, 0xFF, 0xE0, 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xE0, 0x01, 0xFF, + 0xFE, 0x00, 0x7F, 0xFF, 0xC0, 0x0F, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x80, + 0x1F, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x80, 0x03, 0xFF, + 0xE0, 0x00, 0x3F, 0xFC, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x7F, 0xC0, 0x00, + 0x0F, 0xF0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, + 0xC0, 0x0F, 0xFF, 0xF0, 0x03, 0xFD, 0xFE, 0x01, 0xFF, 0x7F, 0xE0, 0xFF, + 0x9F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, + 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x07, 0xFF, 0x80, 0x00, + 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x03, 0xE0, 0x00, 0x00, 0xF8, 0x00, + 0x00, 0x3E, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3F, + 0xE0, 0x00, 0x3F, 0x7F, 0xF0, 0x00, 0x3E, 0xFF, 0xF8, 0x00, 0x7C, 0xFF, + 0xF8, 0x00, 0x7C, 0xF8, 0xF8, 0x00, 0xF8, 0xF0, 0xF8, 0x01, 0xF0, 0xF0, + 0xF8, 0x01, 0xF0, 0xF0, 0xF8, 0x03, 0xE0, 0xF0, 0xF8, 0x03, 0xE0, 0xF0, + 0xF8, 0x07, 0xC0, 0xF0, 0xF8, 0x07, 0x80, 0xF0, 0xF8, 0x0F, 0x80, 0xF0, + 0xF8, 0x1F, 0x00, 0xF0, 0xF8, 0x1F, 0x00, 0xF0, 0xF8, 0x3E, 0x00, 0xF0, + 0xF8, 0x3E, 0x00, 0xF0, 0xF8, 0x7C, 0x00, 0xF0, 0xF8, 0xF8, 0x00, 0xF0, + 0xF8, 0xF8, 0x00, 0xF8, 0xF9, 0xF0, 0x00, 0xFF, 0xF9, 0xF3, 0xF8, 0x7F, + 0xF3, 0xEF, 0xFC, 0x7F, 0xF3, 0xFF, 0xFE, 0x1F, 0xC7, 0xDF, 0xFF, 0x00, + 0x0F, 0x9F, 0x1F, 0x00, 0x0F, 0xBE, 0x1F, 0x00, 0x1F, 0x3E, 0x1F, 0x00, + 0x1F, 0x3E, 0x1F, 0x00, 0x3E, 0x3E, 0x1F, 0x00, 0x3E, 0x3E, 0x1F, 0x00, + 0x7C, 0x3E, 0x1F, 0x00, 0xF8, 0x3E, 0x1F, 0x00, 0xF8, 0x3E, 0x1F, 0x01, + 0xF0, 0x3E, 0x1F, 0x01, 0xF0, 0x3E, 0x1F, 0x03, 0xE0, 0x3E, 0x1F, 0x07, + 0xC0, 0x3E, 0x1F, 0x07, 0xC0, 0x3E, 0x1F, 0x0F, 0x80, 0x3E, 0x1F, 0x0F, + 0x80, 0x3E, 0x1F, 0x1F, 0x00, 0x3E, 0x1F, 0x1F, 0x00, 0x3E, 0x1F, 0x3E, + 0x00, 0x1F, 0xFF, 0x7C, 0x00, 0x1F, 0xFE, 0x7C, 0x00, 0x0F, 0xFE, 0xF8, + 0x00, 0x07, 0xFC, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x08, 0x00, 0x00, 0x03, + 0xFF, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x07, 0xFF, + 0xF8, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x7E, 0x1F, 0x80, 0x03, 0xF0, 0x3E, + 0x00, 0x0F, 0xC0, 0xFC, 0x00, 0x3F, 0x03, 0xF0, 0x00, 0xFC, 0x0F, 0xC0, + 0x03, 0xF0, 0x3F, 0x00, 0x0F, 0xE0, 0xF8, 0x00, 0x1F, 0x87, 0xE0, 0x00, + 0x7F, 0x3F, 0x80, 0x01, 0xFD, 0xFC, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x0F, + 0xFF, 0x80, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0xFF, + 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x03, 0xFF, 0xE0, + 0x00, 0x0F, 0xFF, 0x80, 0x20, 0x7F, 0xFF, 0x01, 0x83, 0xFD, 0xFC, 0x0F, + 0x0F, 0xE7, 0xF8, 0x3E, 0x7F, 0x0F, 0xF1, 0xF9, 0xFC, 0x1F, 0xCF, 0xF7, + 0xE0, 0x7F, 0xFF, 0xFF, 0x80, 0xFF, 0xFE, 0xFE, 0x03, 0xFF, 0xF3, 0xF8, + 0x07, 0xFF, 0x8F, 0xE0, 0x1F, 0xFC, 0x3F, 0x80, 0x3F, 0xF0, 0xFE, 0x00, + 0xFF, 0x83, 0xF8, 0x07, 0xFE, 0x0F, 0xF0, 0x1F, 0xF8, 0x1F, 0xC1, 0xFF, + 0xF0, 0x7F, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFF, + 0x0F, 0xFF, 0xF9, 0xFC, 0x1F, 0xFF, 0xC7, 0xF8, 0x3F, 0xFE, 0x0F, 0xE0, + 0x3F, 0xE0, 0x3F, 0xC0, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xF0, 0x01, 0x80, 0x0F, 0x00, 0xFE, 0x07, 0xE0, 0x3F, 0x03, + 0xF0, 0x1F, 0x81, 0xFC, 0x0F, 0xC0, 0x7E, 0x07, 0xF0, 0x3F, 0x01, 0xF8, + 0x1F, 0xC0, 0xFC, 0x07, 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0x80, 0xFC, 0x07, + 0xE0, 0x7F, 0x03, 0xF8, 0x1F, 0xC0, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, + 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, + 0xF8, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFE, 0x07, 0xF0, 0x1F, + 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, + 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x07, 0xE0, 0x3F, 0x01, 0xFC, 0x07, 0xE0, + 0x3F, 0x01, 0xFC, 0x07, 0xE0, 0x3F, 0x80, 0xF0, 0x07, 0x00, 0x20, 0x18, + 0x01, 0xE0, 0x3F, 0x01, 0xFC, 0x07, 0xE0, 0x3F, 0x00, 0xFC, 0x07, 0xE0, + 0x3F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x80, 0xFC, 0x07, 0xE0, 0x3F, 0x81, + 0xFC, 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, + 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0xC0, 0xFE, 0x07, 0xF0, 0x3F, 0x80, 0xFC, + 0x07, 0xE0, 0x3F, 0x01, 0xF8, 0x0F, 0xC0, 0xFE, 0x07, 0xF0, 0x3F, 0x81, + 0xFC, 0x0F, 0xC0, 0x7E, 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x0F, 0xE0, 0x7E, + 0x03, 0xF0, 0x1F, 0x80, 0xFC, 0x0F, 0xE0, 0x7E, 0x03, 0xF0, 0x3F, 0x81, + 0xF8, 0x0F, 0xC0, 0xFE, 0x07, 0xE0, 0x3F, 0x03, 0xF0, 0x1F, 0x81, 0xFC, + 0x0F, 0xC0, 0x3E, 0x00, 0x60, 0x01, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, + 0x0F, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, + 0x07, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x20, + 0x07, 0xC0, 0x08, 0x30, 0x07, 0xC0, 0x3C, 0x3E, 0x03, 0xC0, 0xFC, 0x7F, + 0x83, 0xC3, 0xFC, 0x7F, 0xE3, 0xCF, 0xFE, 0x7F, 0xFB, 0xFF, 0xFE, 0xFF, + 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x00, + 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, + 0x3E, 0x7C, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0xFC, 0x3F, 0x00, 0x01, + 0xFC, 0x3F, 0x80, 0x03, 0xF8, 0x1F, 0xC0, 0x07, 0xF8, 0x1F, 0xE0, 0x0F, + 0xF0, 0x0F, 0xF0, 0x07, 0xF0, 0x0F, 0xE0, 0x03, 0xE0, 0x07, 0x80, 0x00, + 0xE0, 0x03, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, + 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, + 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x0F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, + 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, + 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, + 0xF0, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x20, 0x1F, 0x0F, + 0xE7, 0xE3, 0xF3, 0xF9, 0xFC, 0xFE, 0x7E, 0x3F, 0x1F, 0x8F, 0xCF, 0xC7, + 0xE3, 0xF1, 0xF8, 0xFC, 0x3C, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, + 0x10, 0x7C, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7C, 0x10, 0x00, + 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, + 0x00, 0x07, 0xE0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, + 0x00, 0x7C, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, + 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, + 0xFC, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, + 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xF8, + 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x1F, 0x80, + 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x01, 0xF8, 0x00, + 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, + 0x00, 0x3E, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, + 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, + 0x7E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, + 0xE0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, + 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x0F, 0xC0, + 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x00, + 0x00, 0x01, 0xF0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, 0xC0, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, + 0x03, 0xF0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, + 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x07, + 0xE0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0xFF, 0xC0, 0x0F, 0xFF, + 0xF0, 0x1F, 0xFF, 0xF8, 0x3F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, + 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0x81, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, + 0xFF, 0xFE, 0x00, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x01, + 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFE, 0x7F, 0xFF, + 0xFC, 0x3F, 0xFF, 0xFC, 0x1F, 0xFF, 0xF8, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, + 0xC0, 0x00, 0x18, 0x00, 0x00, 0x02, 0x00, 0x1C, 0x00, 0xF8, 0x07, 0xF0, + 0x3F, 0xE0, 0xFF, 0xC7, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0x1F, 0xF8, 0x3F, 0xC0, 0x7F, 0x00, 0xFE, + 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x80, + 0x7F, 0x00, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, + 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x01, 0xFC, 0x03, 0xF8, 0x07, 0xF0, + 0x0F, 0xE0, 0x1F, 0xC0, 0x3F, 0x80, 0x7F, 0x00, 0xFE, 0x01, 0xFC, 0x03, + 0xF8, 0x07, 0xF0, 0x0F, 0xE0, 0x1F, 0xC0, 0x00, 0x08, 0x00, 0x00, 0xFF, + 0xE0, 0x00, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xC0, 0xFF, + 0xFF, 0xF0, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFE, 0x7F, 0xC0, 0xFF, 0x3F, + 0xC0, 0x3F, 0xDF, 0xE0, 0x1F, 0xEF, 0xE0, 0x0F, 0xF7, 0xF0, 0x03, 0xFB, + 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, + 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, + 0xF0, 0x00, 0x1F, 0xF0, 0x00, 0x0F, 0xF8, 0x00, 0x0F, 0xF8, 0x00, 0x07, + 0xFC, 0x00, 0x07, 0xFC, 0x00, 0x03, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x01, + 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x80, 0x00, + 0x7F, 0x80, 0x00, 0x7F, 0x80, 0x00, 0x7F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, + 0x3F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xFF, 0xFF, + 0x0F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, + 0xF3, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0x00, 0x02, + 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xFE, 0x00, + 0x7F, 0xFF, 0xE0, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, + 0xFC, 0x3F, 0xE0, 0x7F, 0x87, 0xF8, 0x07, 0xF0, 0xFE, 0x00, 0x7F, 0x1F, + 0xC0, 0x0F, 0xE3, 0xF0, 0x01, 0xFC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x07, + 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xF0, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFC, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x03, 0xFE, 0x00, 0x00, + 0x7F, 0xE0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFC, + 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x0F, 0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x00, 0x3F, 0xBF, 0x80, 0x0F, 0xF7, + 0xF0, 0x01, 0xFE, 0xFE, 0x00, 0x3F, 0xDF, 0xE0, 0x0F, 0xF3, 0xFE, 0x03, + 0xFE, 0x3F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x07, + 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xF8, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xE0, 0x00, + 0x0F, 0xFE, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x1F, 0xFE, 0x00, 0x03, 0xFF, + 0xE0, 0x00, 0x3F, 0xFE, 0x00, 0x07, 0xEF, 0xE0, 0x00, 0x7E, 0xFE, 0x00, + 0x07, 0xCF, 0xE0, 0x00, 0xFC, 0xFE, 0x00, 0x0F, 0x8F, 0xE0, 0x01, 0xF8, + 0xFE, 0x00, 0x1F, 0x8F, 0xE0, 0x03, 0xF0, 0xFE, 0x00, 0x3F, 0x0F, 0xE0, + 0x07, 0xE0, 0xFE, 0x00, 0x7E, 0x0F, 0xE0, 0x0F, 0xC0, 0xFE, 0x00, 0xFC, + 0x0F, 0xE0, 0x0F, 0x80, 0xFE, 0x01, 0xF8, 0x0F, 0xE0, 0x1F, 0x00, 0xFE, + 0x03, 0xF0, 0x0F, 0xE0, 0x3E, 0x00, 0xFE, 0x07, 0xE0, 0x0F, 0xE0, 0x7C, + 0x00, 0xFE, 0x0F, 0xC0, 0x0F, 0xE0, 0xFC, 0x00, 0xFE, 0x0F, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xE0, + 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0x0F, 0xE0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xE0, 0x7F, 0xFF, 0xFF, + 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, + 0xFF, 0x1F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFC, 0x7F, + 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC7, 0xF0, 0x07, 0xFF, 0xFF, 0x01, 0xFF, + 0xFF, 0xE0, 0x7F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xF1, + 0xFF, 0xFF, 0xFC, 0x7F, 0xE3, 0xFF, 0x9F, 0xE0, 0x3F, 0xE7, 0xF0, 0x07, + 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, + 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, + 0x60, 0x03, 0xFC, 0x78, 0x01, 0xFE, 0x7F, 0x00, 0x7F, 0xBF, 0xE0, 0x3F, + 0xEF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFE, 0x0F, 0xFF, + 0xFF, 0x01, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xC0, 0x07, 0xFF, 0xE0, 0x00, + 0x7F, 0xE0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xFE, + 0x00, 0x00, 0xFF, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xF0, 0x00, 0x07, + 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, + 0x3F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xFC, 0x00, 0x01, 0xFE, 0x00, + 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF8, + 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xC0, 0x3F, + 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFC, + 0x7F, 0xFF, 0xFF, 0xBF, 0xF8, 0xFF, 0xEF, 0xF8, 0x0F, 0xFB, 0xFE, 0x01, + 0xFE, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, + 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, + 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0x9F, 0xE0, 0x3F, 0xE7, 0xFC, 0x1F, + 0xF9, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x80, 0xFF, + 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xF0, 0x00, 0x3F, 0xF0, 0x00, + 0x00, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, + 0xFF, 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFC, + 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x7F, 0x80, 0x00, + 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFF, + 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x3F, 0xE0, 0x00, + 0x03, 0xFC, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x7F, + 0x80, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x0F, 0xF0, 0x00, + 0x01, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x3F, + 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, 0xFC, 0x00, + 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x1F, + 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x03, 0xFE, 0x00, + 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x07, + 0xFC, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x80, + 0x00, 0x1F, 0xF8, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x0F, 0xFC, 0x00, 0x07, 0xFF, 0xE0, 0x01, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, + 0xE0, 0x1F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xF8, 0x1F, + 0xE0, 0xFF, 0x87, 0xF8, 0x07, 0xF0, 0xFE, 0x00, 0xFE, 0x1F, 0xC0, 0x0F, + 0xC3, 0xF8, 0x01, 0xFC, 0x7F, 0x00, 0x3F, 0x8F, 0xE0, 0x07, 0xE1, 0xFC, + 0x00, 0xFC, 0x3F, 0x80, 0x1F, 0x83, 0xF0, 0x07, 0xF0, 0x7F, 0x00, 0xFE, + 0x07, 0xF8, 0x7F, 0x80, 0xFF, 0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x00, 0x7F, + 0xFE, 0x00, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xE0, + 0xFF, 0x83, 0xFE, 0x1F, 0xE0, 0x1F, 0xE7, 0xF8, 0x01, 0xFC, 0xFE, 0x00, + 0x3F, 0xDF, 0xC0, 0x03, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x0F, 0xFF, + 0xE0, 0x01, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x80, 0x07, 0xF7, 0xF0, 0x01, + 0xFE, 0xFF, 0x00, 0x3F, 0xDF, 0xF0, 0x0F, 0xFB, 0xFF, 0x03, 0xFE, 0x3F, + 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, + 0x80, 0xFF, 0xFF, 0xE0, 0x07, 0xFF, 0xF8, 0x00, 0x3F, 0xFC, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x3F, 0xFF, 0x00, + 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, + 0xE1, 0xFF, 0xFF, 0xFC, 0x7F, 0xC1, 0xFF, 0xBF, 0xE0, 0x1F, 0xEF, 0xF0, + 0x07, 0xFB, 0xFC, 0x00, 0xFE, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, + 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, + 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x01, 0xFE, 0xFF, 0x80, 0xFF, 0xBF, 0xF8, + 0x7F, 0xE7, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0x07, + 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x03, 0xFF, 0xFC, + 0x00, 0x01, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x0F, + 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x7F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF8, 0x00, 0x03, 0xFC, 0x00, + 0x01, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xF0, + 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFE, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x10, + 0x7C, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7C, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x7C, 0xFE, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7C, 0x10, 0x02, 0x03, 0xE1, 0xFC, + 0xFF, 0x3F, 0xCF, 0xF3, 0xFC, 0xFF, 0x1F, 0xC3, 0xE0, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0xF8, 0x3F, 0x8F, 0xE3, 0xF0, 0xFC, 0x7F, 0x1F, 0xC7, 0xF1, 0xF8, + 0x7E, 0x1F, 0x87, 0xE3, 0xF0, 0xFC, 0x3F, 0x0F, 0xC3, 0xF0, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xF0, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, + 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x00, + 0xFF, 0xE0, 0x00, 0x3F, 0xF8, 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0x80, + 0x00, 0xFF, 0xE0, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, + 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0xE0, + 0x00, 0x03, 0xFF, 0x80, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x3F, 0xF8, 0x00, + 0x00, 0xFF, 0xE0, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x0F, 0xFF, 0x00, 0x00, + 0x3F, 0xFC, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x0F, + 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x03, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x80, 0x00, 0x00, 0x0C, 0x00, 0x00, + 0x00, 0xF0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, + 0xFC, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x07, 0xFF, + 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x01, 0xFF, 0xC0, + 0x00, 0x07, 0xFF, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x7F, 0xF0, 0x00, + 0x01, 0xFF, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, + 0xF0, 0x00, 0x03, 0xFF, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x3F, 0xF8, 0x00, + 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x00, 0xFF, 0xE0, 0x00, 0x3F, 0xF8, + 0x00, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0x80, 0x00, 0xFF, 0xE0, 0x00, 0x0F, + 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0xE0, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0F, 0xFC, 0x00, 0xFF, + 0xFC, 0x07, 0xFF, 0xF8, 0x3F, 0xFF, 0xF0, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, + 0x9F, 0xFF, 0xFE, 0xFF, 0x07, 0xFF, 0xF8, 0x0F, 0xFF, 0xE0, 0x3F, 0xFF, + 0x80, 0xFF, 0xFE, 0x03, 0xFC, 0x00, 0x0F, 0xF0, 0x00, 0x3F, 0xC0, 0x00, + 0xFF, 0x00, 0x07, 0xFC, 0x00, 0x3F, 0xE0, 0x00, 0xFF, 0x80, 0x0F, 0xFC, + 0x00, 0x7F, 0xF0, 0x03, 0xFF, 0x80, 0x0F, 0xFC, 0x00, 0x7F, 0xE0, 0x01, + 0xFF, 0x00, 0x0F, 0xF8, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xF8, + 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x1F, 0x00, 0x00, 0xFE, 0x00, 0x03, 0xF8, 0x00, 0x0F, 0xF0, + 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0x00, 0x03, 0xFC, 0x00, 0x0F, 0xE0, 0x00, + 0x1F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x01, 0xFF, 0xF8, + 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xE0, + 0x3F, 0xE0, 0x3F, 0x80, 0xFE, 0x00, 0x3F, 0x07, 0xE0, 0x00, 0x7C, 0x1F, + 0x00, 0x00, 0xF8, 0xFC, 0x00, 0x01, 0xE3, 0xE0, 0x00, 0x07, 0x9F, 0x80, + 0x00, 0x0E, 0x7C, 0x00, 0x00, 0x3D, 0xF0, 0x00, 0x00, 0xF7, 0xC0, 0x00, + 0x03, 0xFE, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x3F, 0xE0, 0x1E, 0x60, + 0x7F, 0x81, 0xFF, 0x81, 0xFE, 0x0F, 0xFE, 0x07, 0xF8, 0x3F, 0xF8, 0x1F, + 0xE0, 0xF1, 0xE0, 0x7F, 0x07, 0x83, 0x83, 0xFC, 0x1E, 0x0E, 0x0F, 0xF0, + 0x78, 0x38, 0x3F, 0xE1, 0xC0, 0xE0, 0xEF, 0x87, 0x83, 0x83, 0xBE, 0x1E, + 0x0E, 0x0E, 0xF8, 0x3C, 0x78, 0x7B, 0xE0, 0xFF, 0xF1, 0xCF, 0x81, 0xFF, + 0xFF, 0x1F, 0x07, 0xF7, 0xF8, 0x7C, 0x07, 0x87, 0xC1, 0xF0, 0x00, 0x00, + 0x07, 0xE0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, + 0x7C, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x0F, + 0xE0, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF8, 0x00, 0x01, 0xFF, 0x00, + 0x00, 0x3F, 0xF0, 0x00, 0x07, 0xFE, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x3F, + 0xF8, 0x00, 0x07, 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x1F, 0xFE, 0x00, + 0x07, 0xFF, 0xC0, 0x00, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0x00, 0x03, 0xFF, + 0xF0, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0xC0, 0x03, 0xFF, 0xF8, 0x00, + 0x7F, 0x7F, 0x00, 0x0F, 0xEF, 0xF0, 0x01, 0xFD, 0xFE, 0x00, 0x7F, 0xBF, + 0xC0, 0x0F, 0xF7, 0xF8, 0x01, 0xFE, 0xFF, 0x80, 0x3F, 0x8F, 0xF0, 0x07, + 0xF1, 0xFE, 0x01, 0xFE, 0x3F, 0xC0, 0x3F, 0xC7, 0xF8, 0x07, 0xF8, 0xFF, + 0x80, 0xFF, 0x1F, 0xF0, 0x3F, 0xC1, 0xFE, 0x07, 0xF8, 0x3F, 0xC0, 0xFF, + 0x07, 0xF8, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, + 0x1F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, + 0xFF, 0xF3, 0xFE, 0x03, 0xFE, 0x7F, 0x80, 0x3F, 0xCF, 0xF0, 0x07, 0xFD, + 0xFE, 0x00, 0xFF, 0xBF, 0xC0, 0x1F, 0xFF, 0xF8, 0x03, 0xFF, 0xFE, 0x00, + 0x3F, 0xC0, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xFE, 0x1F, + 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xF3, 0xFC, 0x0F, 0xF9, + 0xFE, 0x03, 0xFE, 0xFF, 0x00, 0xFF, 0x7F, 0x80, 0x7F, 0xBF, 0xC0, 0x3F, + 0xDF, 0xE0, 0x0F, 0xEF, 0xF0, 0x07, 0xF7, 0xF8, 0x03, 0xFB, 0xFC, 0x03, + 0xFD, 0xFE, 0x01, 0xFE, 0xFF, 0x00, 0xFF, 0x7F, 0x80, 0x7F, 0x3F, 0xC0, + 0x7F, 0x9F, 0xE0, 0xFF, 0x8F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0x83, 0xFF, + 0xFF, 0x01, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFC, 0x7F, 0x81, 0xFF, 0x3F, + 0xC0, 0x7F, 0xDF, 0xE0, 0x1F, 0xEF, 0xF0, 0x07, 0xFF, 0xF8, 0x03, 0xFF, + 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x3F, + 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF8, 0x0F, + 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, + 0xFF, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0x07, 0xFF, + 0xFC, 0x00, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x01, + 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFC, + 0xFF, 0xFF, 0xFE, 0x7F, 0xC1, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xC0, 0x1F, + 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFC, 0x00, + 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, + 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, 0xFC, + 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, + 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x03, + 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, + 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, 0x0F, 0xF0, 0x07, 0xFF, 0xF8, 0x03, + 0xFF, 0xFE, 0x01, 0xFE, 0xFF, 0x83, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, + 0xFF, 0x8F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, + 0xFF, 0x80, 0x07, 0xFF, 0x00, 0x00, 0x18, 0x00, 0xFF, 0xFF, 0x80, 0x7F, + 0xFF, 0xF8, 0x3F, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE7, + 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFD, 0xFE, 0x07, 0xFF, 0xFF, 0x00, 0xFF, + 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x03, + 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0x00, + 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, + 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, + 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, + 0xF0, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x7F, + 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x0F, + 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x07, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, + 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x1F, 0xFF, + 0xFF, 0x0F, 0xFF, 0xFF, 0x07, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, + 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, + 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, + 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE, 0x3F, + 0xFF, 0xFC, 0x7F, 0xFF, 0xF8, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xE3, 0xFC, + 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xC0, + 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, + 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, + 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, + 0x00, 0x03, 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, + 0x00, 0x3F, 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, + 0x03, 0xFC, 0x00, 0x07, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, + 0x3F, 0xFF, 0xFE, 0x7F, 0xFF, 0xFC, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xF3, + 0xFC, 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, + 0xC0, 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, + 0x00, 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x3F, 0xC0, + 0x00, 0x7F, 0x80, 0x00, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x03, 0xFC, 0x00, + 0x07, 0xF8, 0x00, 0x0F, 0xF0, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0xFF, 0xE0, 0x01, 0xFF, 0xFC, 0x01, 0xFF, 0xFF, 0x81, 0xFF, + 0xFF, 0xE1, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x7F, + 0xC0, 0xFF, 0xBF, 0xC0, 0x3F, 0xFF, 0xE0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, + 0xF0, 0x07, 0xFF, 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x1F, 0xE0, 0x00, + 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x1F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFE, 0x07, + 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xE0, + 0x7F, 0xFF, 0xF0, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, + 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, + 0xE0, 0x07, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xFE, 0x01, 0xFE, + 0xFF, 0x81, 0xFF, 0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, + 0xE3, 0xFF, 0xFF, 0xF1, 0xFF, 0xFD, 0xF8, 0x3F, 0xFC, 0xFC, 0x0F, 0xFC, + 0x7E, 0x00, 0x40, 0x00, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, + 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x03, 0xFF, 0xFC, + 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, + 0xC0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, 0x03, 0xFF, + 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x80, 0x3F, + 0xFF, 0xC0, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, 0xF8, + 0x03, 0xFF, 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, + 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x07, 0xFF, + 0xF8, 0x03, 0xFF, 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x7F, + 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF0, 0x07, + 0xFF, 0xF8, 0x03, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x3F, + 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, + 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFE, + 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, + 0xFF, 0x00, 0x07, 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, + 0x00, 0x7F, 0x80, 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, + 0xF8, 0x00, 0x3F, 0xC0, 0x01, 0xFE, 0x00, 0x0F, 0xF0, 0x00, 0x7F, 0x80, + 0x03, 0xFC, 0x00, 0x1F, 0xE0, 0x00, 0xFF, 0x00, 0x07, 0xF8, 0x1F, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x1F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, + 0x1F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, 0x1F, 0xFF, 0x00, + 0x1F, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, + 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, + 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, + 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, + 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, + 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, 0x01, 0xFF, 0x00, + 0x01, 0xFF, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFE, 0x00, + 0x01, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x03, 0xFE, 0x00, 0x07, 0xFC, 0x00, + 0x3F, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xF0, 0xFF, + 0xFF, 0xF0, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0x80, 0xFF, 0xFC, 0x00, 0xFF, + 0x00, 0x7F, 0xBF, 0xC0, 0x3F, 0xCF, 0xF0, 0x0F, 0xF3, 0xFC, 0x07, 0xF8, + 0xFF, 0x01, 0xFE, 0x3F, 0xC0, 0x7F, 0x0F, 0xF0, 0x3F, 0xC3, 0xFC, 0x0F, + 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC1, 0xFC, 0x0F, 0xF0, 0xFF, 0x03, 0xFC, + 0x3F, 0x80, 0xFF, 0x0F, 0xE0, 0x3F, 0xC7, 0xF8, 0x0F, 0xF1, 0xFC, 0x03, + 0xFC, 0xFF, 0x00, 0xFF, 0x3F, 0x80, 0x3F, 0xDF, 0xE0, 0x0F, 0xF7, 0xF0, + 0x03, 0xFD, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, + 0xF0, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xE0, 0x0F, + 0xF7, 0xF8, 0x03, 0xFD, 0xFF, 0x00, 0xFF, 0x3F, 0xC0, 0x3F, 0xCF, 0xF8, + 0x0F, 0xF3, 0xFE, 0x03, 0xFC, 0x7F, 0x80, 0xFF, 0x1F, 0xF0, 0x3F, 0xC3, + 0xFC, 0x0F, 0xF0, 0xFF, 0x83, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xFC, 0x3F, + 0xC1, 0xFF, 0x0F, 0xF0, 0x3F, 0xC3, 0xFC, 0x0F, 0xF8, 0xFF, 0x01, 0xFE, + 0x3F, 0xC0, 0x7F, 0xCF, 0xF0, 0x0F, 0xF3, 0xFC, 0x03, 0xFE, 0xFF, 0x00, + 0xFF, 0xBF, 0xC0, 0x1F, 0xF0, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x80, 0x1F, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, 0xE0, 0x1F, + 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, + 0x03, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xC3, 0xFF, + 0xFF, 0xF8, 0x7F, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFE, + 0x7F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFD, 0xFF, + 0xDF, 0xFF, 0x9F, 0xFB, 0xFF, 0xF3, 0xFF, 0x7F, 0xFE, 0x7F, 0xCF, 0xFF, + 0xC7, 0xF9, 0xFF, 0xF8, 0xFF, 0x3F, 0xFF, 0x1F, 0xC7, 0xFF, 0xE1, 0xF8, + 0xFF, 0xFC, 0x3F, 0x1F, 0xFF, 0x87, 0xC3, 0xFF, 0xF0, 0x78, 0x7F, 0xFE, + 0x0F, 0x0F, 0xFF, 0xC1, 0xC1, 0xFF, 0xF8, 0x18, 0x3F, 0xFF, 0x03, 0x07, + 0xFF, 0xE0, 0x40, 0xFF, 0xFC, 0x08, 0x1F, 0xFF, 0x80, 0x03, 0xFF, 0xF0, + 0x00, 0x7F, 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x01, 0xFF, 0xF8, 0x00, 0x3F, + 0xFF, 0x00, 0x07, 0xFF, 0xE0, 0x00, 0xFF, 0xFC, 0x00, 0x1F, 0xC0, 0xFF, + 0x80, 0x3F, 0xFF, 0xF0, 0x0F, 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x00, 0xFF, + 0xFF, 0xE0, 0x3F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0xC0, + 0xFF, 0xFF, 0xF0, 0x3F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, + 0xE0, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, + 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE3, + 0xFF, 0xFF, 0xFC, 0xFF, 0xFE, 0xFF, 0x3F, 0xFF, 0xBF, 0xEF, 0xFF, 0xEF, + 0xFB, 0xFF, 0xF9, 0xFE, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, + 0xE3, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0x87, 0xFF, + 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x3F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x81, + 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, + 0x80, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xF8, 0x07, 0xFF, 0xFE, 0x00, 0xFF, + 0xFF, 0x80, 0x3F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x01, 0xFF, 0xFE, 0x00, + 0x7F, 0xFF, 0x80, 0x1F, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x7F, 0xF0, 0x00, + 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, + 0x83, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFE, 0x7F, 0xC0, 0xFF, 0xBF, 0xE0, + 0x1F, 0xEF, 0xF0, 0x07, 0xFB, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, + 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, + 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, + 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, + 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, + 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, + 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, + 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x1F, 0xEF, 0xF8, 0x07, 0xF9, + 0xFF, 0x03, 0xFE, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, + 0xE0, 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x01, 0xFF, 0xFC, 0x00, 0x1F, + 0xFE, 0x00, 0x00, 0x30, 0x00, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFE, 0x03, + 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, + 0xFE, 0x3F, 0xFF, 0xFF, 0xE7, 0xF8, 0x1F, 0xFC, 0xFF, 0x00, 0xFF, 0xDF, + 0xE0, 0x0F, 0xFB, 0xFC, 0x00, 0xFF, 0x7F, 0x80, 0x1F, 0xEF, 0xF0, 0x03, + 0xFD, 0xFE, 0x00, 0x7F, 0xBF, 0xC0, 0x0F, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, + 0x00, 0x3F, 0xFF, 0xE0, 0x07, 0xFB, 0xFC, 0x00, 0xFF, 0x7F, 0x80, 0x1F, + 0xEF, 0xF0, 0x07, 0xFD, 0xFE, 0x01, 0xFF, 0xBF, 0xC0, 0x7F, 0xE7, 0xFF, + 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF8, + 0x7F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xC0, 0x3F, 0xC0, + 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, + 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFE, 0x00, + 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, + 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF0, 0x00, + 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x7F, 0xF0, 0x00, + 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, + 0x83, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFE, 0x7F, 0xC0, 0xFF, 0xBF, 0xE0, + 0x1F, 0xEF, 0xF0, 0x07, 0xFB, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, + 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, + 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, + 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, + 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, + 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, + 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, + 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x1F, 0xEF, 0xF8, 0x0F, 0xF9, + 0xFF, 0x8F, 0xFE, 0x7F, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, + 0xE0, 0x7F, 0xFF, 0xF0, 0x0F, 0xFF, 0xF8, 0x00, 0xFF, 0xFC, 0x00, 0x07, + 0xFF, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x7E, 0x00, + 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, + 0x80, 0x00, 0x07, 0xE0, 0xFF, 0xFF, 0x80, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, + 0xFF, 0xE0, 0x7F, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFE, + 0x3F, 0xFF, 0xFF, 0xE7, 0xF8, 0x3F, 0xFC, 0xFF, 0x00, 0xFF, 0x9F, 0xE0, + 0x0F, 0xFB, 0xFC, 0x01, 0xFF, 0x7F, 0x80, 0x3F, 0xEF, 0xF0, 0x03, 0xFD, + 0xFE, 0x00, 0x7F, 0xBF, 0xC0, 0x0F, 0xF7, 0xF8, 0x01, 0xFE, 0xFF, 0x00, + 0x3F, 0xDF, 0xE0, 0x0F, 0xFB, 0xFC, 0x01, 0xFF, 0x7F, 0x80, 0x3F, 0xCF, + 0xF0, 0x0F, 0xF9, 0xFE, 0x03, 0xFE, 0x3F, 0xC3, 0xFF, 0xC7, 0xFF, 0xFF, + 0xF0, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFE, 0x03, 0xFF, 0xFF, 0x00, 0x7F, + 0xFF, 0xC0, 0x0F, 0xFF, 0xFC, 0x01, 0xFE, 0xFF, 0x80, 0x3F, 0xDF, 0xF8, + 0x07, 0xF9, 0xFF, 0x80, 0xFF, 0x3F, 0xF0, 0x1F, 0xE3, 0xFF, 0x03, 0xFC, + 0x7F, 0xE0, 0x7F, 0x87, 0xFE, 0x0F, 0xF0, 0xFF, 0xC1, 0xFE, 0x0F, 0xFC, + 0x3F, 0xC1, 0xFF, 0x87, 0xF8, 0x1F, 0xF8, 0xFF, 0x03, 0xFF, 0x1F, 0xE0, + 0x3F, 0xF3, 0xFC, 0x07, 0xFE, 0x7F, 0x80, 0x7F, 0xEF, 0xF0, 0x0F, 0xFD, + 0xFE, 0x00, 0xFF, 0xC0, 0x00, 0x04, 0x00, 0x00, 0x3F, 0xF8, 0x00, 0x3F, + 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xC3, + 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, 0x7F, 0xC0, 0xFF, 0x9F, 0xE0, 0x1F, + 0xE7, 0xF0, 0x03, 0xF9, 0xFC, 0x00, 0xFE, 0xFF, 0x00, 0x3F, 0xBF, 0xC0, + 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x1F, + 0xF8, 0x00, 0x07, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x80, + 0x07, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xF0, 0x03, 0xFF, + 0xFE, 0x00, 0x7F, 0xFF, 0xC0, 0x07, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, + 0x0F, 0xFF, 0xC0, 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xFC, 0x00, 0x01, 0xFF, + 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFF, 0xFC, 0x00, + 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x0F, 0xF7, 0xF8, 0x03, 0xFD, 0xFF, + 0x01, 0xFE, 0x7F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xF0, + 0x7F, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0x1F, 0xFE, + 0x00, 0x00, 0x30, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, + 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, + 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, + 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, + 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, + 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, + 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, + 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, + 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, + 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, + 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, + 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x00, 0xFF, 0x00, 0x1F, + 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0xF0, + 0x01, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xC0, 0x07, 0xFF, 0xF8, 0x00, 0xFF, + 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80, + 0x0F, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0xC0, 0x07, 0xFF, + 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, + 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, + 0xC0, 0x07, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xE0, 0x03, + 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, 0xF0, 0x01, 0xFF, 0xFE, + 0x00, 0x3F, 0xFF, 0xC0, 0x07, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x00, 0x1F, + 0xFF, 0xE0, 0x03, 0xFF, 0xFE, 0x00, 0x7F, 0xBF, 0xC0, 0x0F, 0xF7, 0xF8, + 0x03, 0xFE, 0xFF, 0x80, 0x7F, 0xDF, 0xF8, 0x3F, 0xF3, 0xFF, 0xFF, 0xFE, + 0x3F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x07, 0xFF, + 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0x01, 0x80, 0x00, + 0xFF, 0x80, 0x07, 0xFB, 0xFC, 0x00, 0x3F, 0xDF, 0xE0, 0x01, 0xFE, 0xFF, + 0x00, 0x0F, 0xF7, 0xFC, 0x00, 0x7F, 0x3F, 0xE0, 0x07, 0xF8, 0xFF, 0x00, + 0x3F, 0xC7, 0xF8, 0x01, 0xFE, 0x3F, 0xC0, 0x0F, 0xE1, 0xFF, 0x00, 0xFF, + 0x07, 0xF8, 0x07, 0xF8, 0x3F, 0xC0, 0x3F, 0xC1, 0xFE, 0x01, 0xFC, 0x0F, + 0xF0, 0x0F, 0xE0, 0x3F, 0xC0, 0xFF, 0x01, 0xFE, 0x07, 0xF8, 0x0F, 0xF0, + 0x3F, 0xC0, 0x7F, 0x81, 0xFC, 0x03, 0xFE, 0x0F, 0xE0, 0x0F, 0xF0, 0xFF, + 0x00, 0x7F, 0x87, 0xF8, 0x03, 0xFC, 0x3F, 0x80, 0x1F, 0xE1, 0xFC, 0x00, + 0x7F, 0x9F, 0xE0, 0x03, 0xFC, 0xFF, 0x00, 0x1F, 0xE7, 0xF8, 0x00, 0xFF, + 0x3F, 0x80, 0x03, 0xF9, 0xFC, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, + 0x00, 0x07, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0xFF, 0xFC, 0x00, + 0x07, 0xFF, 0xE0, 0x00, 0x3F, 0xFE, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x07, + 0xFF, 0x80, 0x00, 0x3F, 0xFC, 0x00, 0x01, 0xFF, 0xE0, 0x00, 0x0F, 0xFE, + 0x00, 0x00, 0x3F, 0xF0, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x0F, 0xFC, 0x00, + 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0xFF, + 0x00, 0x03, 0xFF, 0xFC, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xC0, + 0x01, 0xFF, 0xFF, 0x00, 0x07, 0xFB, 0xFC, 0x00, 0x1F, 0xEF, 0xF0, 0x00, + 0x7F, 0x9F, 0xE0, 0x01, 0xFE, 0x7F, 0x82, 0x07, 0xF9, 0xFE, 0x08, 0x1F, + 0xE7, 0xF8, 0x20, 0x7F, 0x9F, 0xE0, 0xC1, 0xFC, 0x7F, 0x83, 0x07, 0xF1, + 0xFE, 0x1C, 0x1F, 0xC7, 0xF8, 0x78, 0xFF, 0x0F, 0xE1, 0xE3, 0xFC, 0x3F, + 0x8F, 0x8F, 0xF0, 0xFE, 0x3E, 0x3F, 0xC3, 0xF8, 0xFC, 0xFF, 0x0F, 0xF3, + 0xF3, 0xF8, 0x3F, 0xDF, 0xCF, 0xE0, 0xFF, 0x7F, 0x3F, 0x83, 0xFD, 0xFE, + 0xFE, 0x0F, 0xF7, 0xFB, 0xF8, 0x1F, 0xFF, 0xEF, 0xE0, 0x7F, 0xFF, 0xFF, + 0x81, 0xFF, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xF0, 0x1F, 0xFD, 0xFF, 0xC0, + 0x7F, 0xF7, 0xFF, 0x01, 0xFF, 0xCF, 0xFC, 0x07, 0xFF, 0x3F, 0xF0, 0x0F, + 0xFC, 0xFF, 0xC0, 0x3F, 0xE3, 0xFF, 0x00, 0xFF, 0x8F, 0xFC, 0x03, 0xFE, + 0x1F, 0xE0, 0x0F, 0xF8, 0x7F, 0x80, 0x3F, 0xE1, 0xFE, 0x00, 0xFF, 0x07, + 0xF8, 0x03, 0xFC, 0x1F, 0xE0, 0x07, 0xF0, 0x3F, 0x80, 0x1F, 0xC0, 0xFE, + 0x00, 0x7F, 0x03, 0xF8, 0x01, 0xF8, 0x0F, 0xC0, 0x07, 0xE0, 0x3F, 0x00, + 0x1F, 0x80, 0xFC, 0x00, 0xFF, 0xC0, 0x3F, 0xFF, 0xFC, 0x03, 0xFE, 0x7F, + 0xC0, 0x3F, 0xE7, 0xFE, 0x03, 0xFC, 0x3F, 0xE0, 0x7F, 0xC3, 0xFE, 0x07, + 0xF8, 0x3F, 0xE0, 0x7F, 0x81, 0xFF, 0x0F, 0xF8, 0x1F, 0xF0, 0xFF, 0x00, + 0xFF, 0x0F, 0xF0, 0x0F, 0xF9, 0xFE, 0x00, 0xFF, 0x9F, 0xE0, 0x07, 0xF9, + 0xFE, 0x00, 0x7F, 0xFF, 0xC0, 0x03, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x80, + 0x03, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0x80, 0x01, 0xFF, 0xF0, 0x00, 0x0F, + 0xFF, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x7F, 0xE0, + 0x00, 0x07, 0xFE, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x0F, 0xFE, 0x00, 0x00, + 0xFF, 0xF0, 0x00, 0x1F, 0xFF, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, + 0x80, 0x03, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0xC0, 0x07, 0xFB, 0xFC, 0x00, + 0x7F, 0xBF, 0xE0, 0x0F, 0xFB, 0xFE, 0x00, 0xFF, 0x1F, 0xE0, 0x0F, 0xF1, + 0xFF, 0x01, 0xFF, 0x1F, 0xF0, 0x1F, 0xE0, 0xFF, 0x83, 0xFE, 0x0F, 0xF8, + 0x3F, 0xE0, 0xFF, 0x83, 0xFC, 0x07, 0xFC, 0x7F, 0xC0, 0x7F, 0xC7, 0xFC, + 0x07, 0xFE, 0xFF, 0xC0, 0x3F, 0xEF, 0xF8, 0x03, 0xFF, 0xFF, 0xC0, 0x0F, + 0xFF, 0xFF, 0x00, 0x3F, 0xE7, 0xFC, 0x00, 0xFF, 0x9F, 0xF8, 0x07, 0xFC, + 0x3F, 0xE0, 0x1F, 0xF0, 0xFF, 0x80, 0x7F, 0xC3, 0xFE, 0x03, 0xFE, 0x07, + 0xFC, 0x0F, 0xF8, 0x1F, 0xF0, 0x3F, 0xC0, 0x7F, 0xC1, 0xFF, 0x00, 0xFF, + 0x87, 0xFC, 0x03, 0xFE, 0x1F, 0xE0, 0x07, 0xF8, 0xFF, 0x80, 0x1F, 0xF3, + 0xFE, 0x00, 0x7F, 0xCF, 0xF0, 0x00, 0xFF, 0x7F, 0xC0, 0x03, 0xFF, 0xFE, + 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x7F, 0xFF, 0x00, + 0x00, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0x80, 0x00, + 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x03, + 0xFE, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, + 0x80, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xE0, + 0x00, 0x00, 0x7F, 0x80, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x07, 0xF8, 0x00, + 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x01, 0xFE, 0x00, 0x00, + 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x01, + 0xFE, 0x00, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x00, 0x7F, + 0x80, 0x00, 0x3F, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, + 0xFC, 0x7F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xE0, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x80, 0x00, + 0x07, 0xFC, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x1F, + 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, 0x80, + 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, + 0x1F, 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0xFF, + 0x80, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFE, 0x00, + 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, + 0xFF, 0xC0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, 0xFE, + 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFF, 0x80, 0x00, 0x0F, 0xF8, 0x00, + 0x00, 0xFF, 0xC0, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x03, + 0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, + 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, + 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, + 0xC0, 0xFC, 0x0F, 0xC0, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, + 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, + 0x07, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, + 0x1F, 0x80, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, + 0x3E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, + 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, + 0xF0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x0F, + 0xC0, 0x00, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x1F, + 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7E, + 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, + 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x00, 0x07, 0xE0, + 0x00, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x0F, 0x80, + 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, + 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0xFC, 0x00, + 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x03, 0xF0, 0x00, + 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x07, 0xC0, 0x00, + 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, + 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, + 0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, + 0x01, 0xF0, 0x00, 0x00, 0x03, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, + 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xF0, 0x3F, 0x03, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x1F, 0x80, 0x00, 0x07, 0xF0, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x01, + 0xFF, 0xC0, 0x00, 0x3E, 0xFC, 0x00, 0x0F, 0xCF, 0x80, 0x01, 0xF1, 0xF8, + 0x00, 0x7E, 0x1F, 0x00, 0x0F, 0x83, 0xF0, 0x03, 0xF0, 0x3E, 0x00, 0xFC, + 0x07, 0xE0, 0x1F, 0x80, 0x7E, 0x07, 0xE0, 0x0F, 0xC0, 0xFC, 0x00, 0xFC, + 0x3F, 0x00, 0x1F, 0x87, 0xE0, 0x01, 0xF9, 0xF8, 0x00, 0x3F, 0x3F, 0x00, + 0x03, 0xFF, 0xC0, 0x00, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x80, 0xFF, 0x80, 0xFF, 0x00, 0xFF, 0x00, 0xFE, 0x01, 0xFE, + 0x01, 0xFE, 0x01, 0xFC, 0x01, 0xFC, 0x01, 0xF8, 0x03, 0xF8, 0x00, 0x08, + 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x7F, 0xFF, 0x80, 0x3F, 0xFF, 0xF8, 0x1F, + 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF9, 0xFF, 0x03, 0xFE, + 0x1F, 0x80, 0x7F, 0x80, 0x40, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, + 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0xFF, 0x8F, 0xF0, 0xFF, 0xFF, 0xFC, 0xFF, + 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, + 0xFF, 0x03, 0xFF, 0xFF, 0x80, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x03, + 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0xE0, 0x3F, 0xF7, 0xFF, + 0xFF, 0xFD, 0xFF, 0xFF, 0x7F, 0x7F, 0xFF, 0xDF, 0xCF, 0xFF, 0xE7, 0xF1, + 0xFF, 0xF1, 0xFC, 0x1F, 0xF8, 0x7F, 0x00, 0x60, 0x00, 0x00, 0xFE, 0x00, + 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, 0xFE, + 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x03, 0xF8, 0x00, + 0x00, 0xFE, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x0F, 0xE0, 0x08, 0x03, 0xF8, + 0x3F, 0xE0, 0xFE, 0x1F, 0xFC, 0x3F, 0x8F, 0xFF, 0x8F, 0xE7, 0xFF, 0xF3, + 0xFB, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xBF, 0xF8, 0x3F, 0xEF, 0xFC, 0x07, + 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, + 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0x80, 0x07, 0xFF, + 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x1F, 0xFF, 0xC0, 0x07, + 0xFF, 0xF0, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x3F, 0xFF, 0xE0, + 0x1F, 0xFF, 0xFC, 0x07, 0xFB, 0xFF, 0x03, 0xFE, 0xFE, 0xFF, 0xFF, 0xBF, + 0xBF, 0xFF, 0xCF, 0xE7, 0xFF, 0xF3, 0xF9, 0xFF, 0xF8, 0xFE, 0x1F, 0xFC, + 0x3F, 0x83, 0xFC, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x80, 0x00, 0x03, + 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFC, + 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x3F, 0xF0, + 0x0E, 0x07, 0xFC, 0x00, 0xC1, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, + 0xF8, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, + 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, + 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, + 0x81, 0xFF, 0x00, 0x38, 0x3F, 0xF0, 0x0F, 0x03, 0xFF, 0xFF, 0xF0, 0x7F, + 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFC, 0x07, 0xFF, 0xFF, + 0x00, 0x3F, 0xFF, 0xC0, 0x01, 0xFF, 0xE0, 0x00, 0x01, 0x80, 0x00, 0x00, + 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, + 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x02, 0x01, 0xFC, + 0x0F, 0xF0, 0x7F, 0x0F, 0xFF, 0x1F, 0xC7, 0xFF, 0xE7, 0xF1, 0xFF, 0xFD, + 0xFC, 0xFF, 0xFF, 0x7F, 0x3F, 0xFF, 0xFF, 0xDF, 0xF0, 0x3F, 0xF7, 0xFC, + 0x07, 0xFD, 0xFE, 0x00, 0xFF, 0x7F, 0x80, 0x3F, 0xFF, 0xC0, 0x0F, 0xFF, + 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x07, + 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, + 0x07, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0x7F, 0x80, 0x3F, 0xDF, + 0xE0, 0x0F, 0xF7, 0xFC, 0x07, 0xFD, 0xFF, 0x83, 0xFF, 0x3F, 0xFF, 0xFF, + 0xCF, 0xFF, 0xF7, 0xF1, 0xFF, 0xFD, 0xFC, 0x7F, 0xFE, 0x7F, 0x07, 0xFF, + 0x1F, 0xC0, 0xFF, 0x07, 0xF0, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x07, 0xFE, 0x00, 0x01, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0xC0, 0x0F, 0xFF, + 0xFE, 0x01, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xF8, + 0x7F, 0xE0, 0x7F, 0xC7, 0xFC, 0x03, 0xFC, 0x7F, 0x80, 0x1F, 0xCF, 0xF0, + 0x00, 0xFE, 0xFF, 0x00, 0x0F, 0xEF, 0xF0, 0x00, 0xFE, 0xFF, 0x00, 0x0F, + 0xEF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, + 0x00, 0x7F, 0x80, 0x18, 0x07, 0xFC, 0x01, 0xF8, 0x3F, 0xE0, 0x7F, 0xC3, + 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xF8, 0x0F, 0xFF, + 0xFF, 0x00, 0x7F, 0xFF, 0xE0, 0x01, 0xFF, 0xF8, 0x00, 0x07, 0xFE, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x0F, 0xFF, 0xF0, 0x07, + 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xF0, + 0x1F, 0xFF, 0xFC, 0x07, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, + 0x00, 0x00, 0x1F, 0xC0, 0x03, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, 0x3F, + 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xF8, + 0x3F, 0xFF, 0xFE, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, + 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, + 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, + 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, 0xF0, + 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, 0x07, + 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, 0xC0, 0x00, + 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x7F, 0xC3, 0xF0, 0x7F, 0xF8, 0xFC, 0x3F, 0xFF, 0x3F, 0x1F, + 0xFF, 0xCF, 0xC7, 0xFF, 0xFB, 0xF3, 0xFF, 0xFE, 0xFC, 0xFF, 0x83, 0xFF, + 0x7F, 0xC0, 0x7F, 0xDF, 0xE0, 0x0F, 0xF7, 0xF8, 0x03, 0xFD, 0xFC, 0x00, + 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xF0, 0x01, 0xFF, 0xFC, + 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xF0, 0x01, 0xFF, + 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xDF, 0xE0, 0x0F, 0xF7, 0xF8, 0x03, + 0xFD, 0xFF, 0x01, 0xFF, 0x7F, 0xE0, 0xFF, 0xCF, 0xFF, 0xFF, 0xF3, 0xFF, + 0xFF, 0xFC, 0x7F, 0xFF, 0x7F, 0x1F, 0xFF, 0xDF, 0xC3, 0xFF, 0xE7, 0xF0, + 0x7F, 0xF1, 0xFC, 0x07, 0xF8, 0x7F, 0x00, 0x30, 0x1F, 0xC0, 0x00, 0x07, + 0xF0, 0x00, 0x01, 0xFC, 0x40, 0x00, 0x7F, 0x30, 0x00, 0x3F, 0xCF, 0x00, + 0x1F, 0xF7, 0xE0, 0x0F, 0xF9, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, + 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xE0, 0x03, 0xFF, 0xE0, + 0x00, 0x06, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, 0x80, + 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, 0xF8, + 0x00, 0x01, 0xFC, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x3F, + 0x80, 0x00, 0x1F, 0xC0, 0x00, 0x0F, 0xE0, 0x00, 0x07, 0xF0, 0x00, 0x03, + 0xF8, 0x02, 0x01, 0xFC, 0x1F, 0xF0, 0xFE, 0x1F, 0xFC, 0x7F, 0x1F, 0xFF, + 0x3F, 0x9F, 0xFF, 0xDF, 0xDF, 0xFF, 0xEF, 0xEF, 0xFF, 0xF7, 0xFF, 0xFF, + 0xFB, 0xFE, 0x07, 0xFF, 0xFE, 0x01, 0xFF, 0xFF, 0x00, 0x7F, 0xFF, 0x00, + 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, 0xF0, + 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x7F, 0xFF, + 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x07, 0xFF, + 0xF0, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x7F, + 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x07, + 0xFF, 0xF0, 0x03, 0xFC, 0x00, 0x20, 0x00, 0x0F, 0x80, 0x01, 0xF8, 0x00, + 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x3F, 0xC0, 0x03, 0xFC, 0x00, 0x3F, 0xC0, + 0x01, 0xF8, 0x00, 0x0F, 0x80, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0x0F, 0xFF, + 0xC0, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0xFF, 0xFC, 0x0F, 0xFF, 0xC0, 0xFF, + 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, + 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, + 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0x01, 0xFC, + 0x00, 0x1F, 0xC0, 0x01, 0xFC, 0x00, 0x1F, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xF0, 0x00, 0x01, 0x00, 0x00, 0xF8, 0x00, 0x3F, 0x00, 0x0F, 0xF0, + 0x01, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x0F, 0xE0, + 0x00, 0xF8, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xE7, 0xFF, 0xFC, 0xFF, 0xFF, 0x9F, + 0xFF, 0xF3, 0xFF, 0xFE, 0x7F, 0xFF, 0xCF, 0xFF, 0xF8, 0x00, 0xFF, 0x00, + 0x1F, 0xE0, 0x03, 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, + 0x3F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00, + 0x7F, 0x80, 0x0F, 0xF0, 0x01, 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x00, + 0xFF, 0x00, 0x1F, 0xE0, 0x03, 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x01, + 0xFE, 0x00, 0x3F, 0xC0, 0x07, 0xF8, 0x00, 0xFF, 0x00, 0x1F, 0xE0, 0x03, + 0xFC, 0x00, 0x7F, 0x80, 0x0F, 0xF0, 0x03, 0xFD, 0xFF, 0xFF, 0xBF, 0xFF, + 0xF7, 0xFF, 0xFC, 0xFF, 0xFF, 0x9F, 0xFF, 0xE3, 0xFF, 0xF8, 0x7F, 0xFC, + 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, 0xFC, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, 0x03, + 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, 0x00, + 0x03, 0xFC, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xF0, + 0x00, 0x03, 0xFC, 0x03, 0xFC, 0xFF, 0x01, 0xFE, 0x3F, 0xC0, 0x7F, 0x8F, + 0xF0, 0x3F, 0xC3, 0xFC, 0x1F, 0xE0, 0xFF, 0x07, 0xF8, 0x3F, 0xC3, 0xFC, + 0x0F, 0xF1, 0xFE, 0x03, 0xFC, 0x7F, 0x80, 0xFF, 0x3F, 0xC0, 0x3F, 0xCF, + 0xE0, 0x0F, 0xF7, 0xF8, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, 0x3F, + 0xFF, 0x80, 0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xFE, 0x00, 0xFF, 0x7F, 0x80, + 0x3F, 0xDF, 0xF0, 0x0F, 0xF3, 0xFE, 0x03, 0xFC, 0xFF, 0x80, 0xFF, 0x1F, + 0xF0, 0x3F, 0xC3, 0xFC, 0x0F, 0xF0, 0xFF, 0x83, 0xFC, 0x1F, 0xF0, 0xFF, + 0x07, 0xFC, 0x3F, 0xC0, 0xFF, 0x8F, 0xF0, 0x1F, 0xF3, 0xFC, 0x07, 0xFC, + 0xFF, 0x00, 0xFF, 0xBF, 0xC0, 0x3F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, + 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, + 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, + 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, + 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, + 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, 0x03, 0xFC, 0x0F, 0xF0, 0x3F, 0xC0, 0xFF, + 0x03, 0xFC, 0x0F, 0xF0, 0x00, 0x10, 0x02, 0x0F, 0xE7, 0xC1, 0xFC, 0xFE, + 0xFE, 0x3F, 0xCF, 0xEF, 0xE7, 0xFE, 0xFF, 0xFF, 0x7F, 0xEF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x8F, 0xFF, + 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, + 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, + 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, + 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, + 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, + 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, + 0xFF, 0xFE, 0x1F, 0x0F, 0xFF, 0xE1, 0xF0, 0xFF, 0x00, 0x00, 0x80, 0x7F, + 0x07, 0xFC, 0x3F, 0x87, 0xFF, 0x1F, 0xC7, 0xFF, 0xCF, 0xE7, 0xFF, 0xF7, + 0xF7, 0xFF, 0xFB, 0xFB, 0xFF, 0xFD, 0xFF, 0xFF, 0xFE, 0xFF, 0x81, 0xFF, + 0xFF, 0x80, 0x7F, 0xFF, 0xC0, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, 0x07, + 0xFF, 0xF0, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, 0x00, + 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, 0xE0, + 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, + 0x00, 0x7F, 0xFF, 0x00, 0x3F, 0xFF, 0x80, 0x1F, 0xFF, 0xC0, 0x0F, 0xFF, + 0xE0, 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0xFF, + 0x00, 0x04, 0x00, 0x00, 0x0F, 0xFC, 0x00, 0x07, 0xFF, 0xE0, 0x03, 0xFF, + 0xFE, 0x00, 0xFF, 0xFF, 0xE0, 0x1F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xC1, + 0xFF, 0xFF, 0xFC, 0x3F, 0xE0, 0xFF, 0xCF, 0xF8, 0x0F, 0xF9, 0xFE, 0x00, + 0xFF, 0x3F, 0xC0, 0x0F, 0xF7, 0xF8, 0x01, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, + 0xC0, 0x07, 0xFF, 0xF8, 0x00, 0x7F, 0xFF, 0x00, 0x0F, 0xFF, 0xE0, 0x01, + 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xF7, 0xF8, 0x01, 0xFE, 0xFF, + 0x00, 0x3F, 0xDF, 0xE0, 0x0F, 0xF3, 0xFE, 0x01, 0xFE, 0x3F, 0xE0, 0xFF, + 0xC7, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0x80, 0xFF, + 0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x00, 0x7F, 0xFE, 0x00, 0x03, 0xFF, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1F, 0xC1, 0xFF, 0x03, 0xF8, + 0x7F, 0xF0, 0x7F, 0x1F, 0xFF, 0x0F, 0xE7, 0xFF, 0xF1, 0xFD, 0xFF, 0xFF, + 0x3F, 0xBF, 0xFF, 0xE7, 0xFF, 0x07, 0xFC, 0xFF, 0xC0, 0x7F, 0xDF, 0xF0, + 0x07, 0xFB, 0xFE, 0x00, 0xFF, 0x7F, 0x80, 0x1F, 0xEF, 0xF0, 0x01, 0xFD, + 0xFE, 0x00, 0x3F, 0xFF, 0xC0, 0x07, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, 0x00, + 0x1F, 0xFF, 0xE0, 0x03, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x0F, 0xFF, + 0xF0, 0x01, 0xFD, 0xFE, 0x00, 0x7F, 0xBF, 0xE0, 0x0F, 0xF7, 0xFC, 0x01, + 0xFE, 0xFF, 0xC0, 0x7F, 0xDF, 0xFC, 0x1F, 0xFB, 0xFF, 0xFF, 0xFE, 0x7F, + 0xFF, 0xFF, 0xCF, 0xF7, 0xFF, 0xF1, 0xFE, 0x7F, 0xFC, 0x3F, 0xC7, 0xFF, + 0x07, 0xF8, 0x7F, 0xC0, 0xFF, 0x00, 0x80, 0x1F, 0xE0, 0x00, 0x03, 0xFC, + 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, + 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xE0, + 0x00, 0x03, 0xFC, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x0F, 0xF0, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0xFF, 0x07, 0xF0, 0x7F, 0xF1, 0xFC, 0x3F, 0xFE, + 0x7F, 0x1F, 0xFF, 0xDF, 0xCF, 0xFF, 0xF7, 0xF3, 0xFF, 0xFF, 0xFD, 0xFF, + 0x83, 0xFF, 0x7F, 0xC0, 0x7F, 0xDF, 0xE0, 0x0F, 0xF7, 0xF8, 0x03, 0xFF, + 0xFC, 0x00, 0xFF, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xF0, 0x01, + 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x07, 0xFF, 0xF0, + 0x01, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x0F, 0xF7, + 0xF8, 0x03, 0xFD, 0xFE, 0x00, 0xFF, 0x7F, 0xC0, 0x7F, 0xDF, 0xF8, 0x3F, + 0xF3, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0x7F, 0x1F, 0xFF, 0xDF, 0xC7, 0xFF, + 0xE7, 0xF0, 0xFF, 0xF1, 0xFC, 0x0F, 0xF0, 0x7F, 0x00, 0x20, 0x1F, 0xC0, + 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x1F, + 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, 0x00, + 0x1F, 0xC0, 0x00, 0x07, 0xF0, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x7F, 0x00, + 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x80, 0xFE, 0x0F, 0xF0, 0xFE, 0x3F, 0xFC, + 0xFE, 0x7F, 0xFC, 0xFE, 0x7F, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFE, 0xFF, 0x00, 0xF8, 0xFF, 0x00, 0xE0, + 0xFE, 0x00, 0x80, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, + 0xFE, 0x00, 0x00, 0x00, 0x10, 0x00, 0x03, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, + 0x1F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF8, 0x7F, 0xFF, 0xFC, 0x7F, 0x03, 0xFC, + 0x7F, 0x01, 0xFC, 0xFF, 0x01, 0xFE, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x7F, 0xC0, 0x00, 0x7F, 0xF0, 0x00, 0x7F, 0xFC, 0x00, 0x3F, 0xFF, 0x80, + 0x1F, 0xFF, 0xE0, 0x0F, 0xFF, 0xF8, 0x03, 0xFF, 0xFC, 0x00, 0xFF, 0xFE, + 0x00, 0x3F, 0xFE, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, + 0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFE, 0xFF, 0x00, 0xFE, 0x7F, 0x81, 0xFE, + 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x3F, 0xFF, 0xF8, 0x1F, 0xFF, 0xE0, + 0x07, 0xFF, 0x80, 0x00, 0x10, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0xFF, 0xFF, 0xFC, + 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, + 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, 0x01, 0xFC, 0x00, + 0x01, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFE, 0x00, 0x01, 0xFF, 0xFF, + 0x01, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, + 0x00, 0x7F, 0xFF, 0x00, 0x1F, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, 0x0F, + 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, 0x80, + 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, 0xFF, + 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, 0x3F, + 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFE, 0x00, + 0x3F, 0xFF, 0x80, 0x0F, 0xFF, 0xE0, 0x03, 0xFF, 0xF8, 0x00, 0xFF, 0xFF, + 0x00, 0x3F, 0xBF, 0xC0, 0x0F, 0xEF, 0xF8, 0x07, 0xF9, 0xFF, 0x03, 0xFE, + 0x7F, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, + 0xF8, 0x0F, 0xFF, 0xFC, 0x01, 0xFF, 0xFE, 0x00, 0x1F, 0xFE, 0x00, 0x00, + 0x30, 0x00, 0xFF, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xFF, 0xFF, 0x80, 0x0F, + 0xE7, 0xF8, 0x01, 0xFE, 0x7F, 0x80, 0x1F, 0xE7, 0xF8, 0x01, 0xFC, 0x3F, + 0xC0, 0x3F, 0xC3, 0xFC, 0x03, 0xFC, 0x3F, 0xC0, 0x3F, 0x81, 0xFE, 0x07, + 0xF8, 0x1F, 0xE0, 0x7F, 0x81, 0xFE, 0x07, 0xF0, 0x0F, 0xF0, 0x7F, 0x00, + 0xFF, 0x0F, 0xF0, 0x0F, 0xF0, 0xFE, 0x00, 0x7F, 0x8F, 0xE0, 0x07, 0xF9, + 0xFE, 0x00, 0x7F, 0x9F, 0xC0, 0x03, 0xF9, 0xFC, 0x00, 0x3F, 0xDF, 0xC0, + 0x03, 0xFF, 0xF8, 0x00, 0x3F, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0x1F, + 0xFF, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0xFF, 0xE0, + 0x00, 0x0F, 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, 0xFE, 0x00, 0x00, + 0x7F, 0xC0, 0x00, 0xFF, 0x02, 0x03, 0xFF, 0xFC, 0x08, 0x0F, 0xEF, 0xF0, + 0x30, 0x3F, 0x9F, 0xE0, 0xC1, 0xFE, 0x7F, 0x83, 0x07, 0xF9, 0xFE, 0x0C, + 0x1F, 0xE7, 0xF8, 0x70, 0x7F, 0x1F, 0xE1, 0xE1, 0xFC, 0x3F, 0x87, 0x8F, + 0xF0, 0xFF, 0x1E, 0x3F, 0xC3, 0xFC, 0x78, 0xFF, 0x0F, 0xF3, 0xF3, 0xF8, + 0x3F, 0xCF, 0xCF, 0xE0, 0x7F, 0x3F, 0x3F, 0x81, 0xFE, 0xFD, 0xFE, 0x07, + 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xC0, 0x7F, 0xFF, 0xFF, 0x00, 0xFF, + 0xFF, 0xFC, 0x03, 0xFF, 0xFF, 0xF0, 0x0F, 0xFD, 0xFF, 0xC0, 0x3F, 0xF7, + 0xFE, 0x00, 0xFF, 0xCF, 0xF8, 0x01, 0xFF, 0x3F, 0xE0, 0x07, 0xF8, 0xFF, + 0x80, 0x1F, 0xE3, 0xFE, 0x00, 0x7F, 0x87, 0xF0, 0x01, 0xFE, 0x1F, 0xC0, + 0x03, 0xF0, 0x7F, 0x00, 0x0F, 0xC1, 0xFC, 0x00, 0x3F, 0x03, 0xF0, 0x00, + 0xFF, 0x00, 0x7F, 0xDF, 0xE0, 0x1F, 0xE7, 0xF8, 0x0F, 0xF0, 0xFF, 0x03, + 0xFC, 0x3F, 0xC0, 0xFE, 0x07, 0xF8, 0x7F, 0x81, 0xFE, 0x1F, 0xC0, 0x3F, + 0xCF, 0xF0, 0x0F, 0xF3, 0xF8, 0x01, 0xFF, 0xFC, 0x00, 0x3F, 0xFF, 0x00, + 0x0F, 0xFF, 0x80, 0x01, 0xFF, 0xE0, 0x00, 0x7F, 0xF0, 0x00, 0x0F, 0xFC, + 0x00, 0x03, 0xFF, 0x00, 0x01, 0xFF, 0xC0, 0x00, 0x7F, 0xF8, 0x00, 0x3F, + 0xFE, 0x00, 0x0F, 0xFF, 0xC0, 0x07, 0xFF, 0xF0, 0x01, 0xFD, 0xFE, 0x00, + 0xFF, 0x3F, 0x80, 0x3F, 0x8F, 0xF0, 0x1F, 0xE1, 0xFC, 0x07, 0xF0, 0x7F, + 0x83, 0xFC, 0x0F, 0xF1, 0xFE, 0x03, 0xFC, 0x7F, 0x80, 0x7F, 0xBF, 0xC0, + 0x1F, 0xEF, 0xF0, 0x03, 0xFC, 0xFF, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0xFE, + 0xFF, 0x80, 0x0F, 0xE7, 0xF8, 0x01, 0xFE, 0x7F, 0x80, 0x1F, 0xE7, 0xF8, + 0x01, 0xFC, 0x3F, 0xC0, 0x1F, 0xC3, 0xFC, 0x03, 0xFC, 0x3F, 0xC0, 0x3F, + 0x81, 0xFE, 0x03, 0xF8, 0x1F, 0xE0, 0x7F, 0x81, 0xFE, 0x07, 0xF0, 0x0F, + 0xE0, 0x7F, 0x00, 0xFF, 0x07, 0xF0, 0x0F, 0xF0, 0xFF, 0x00, 0xFF, 0x0F, + 0xE0, 0x07, 0xF8, 0xFE, 0x00, 0x7F, 0x9F, 0xE0, 0x07, 0xF9, 0xFC, 0x00, + 0x3F, 0x9F, 0xC0, 0x03, 0xFD, 0xFC, 0x00, 0x3F, 0xFF, 0xC0, 0x01, 0xFF, + 0xF8, 0x00, 0x1F, 0xFF, 0x80, 0x01, 0xFF, 0xF8, 0x00, 0x0F, 0xFF, 0x00, + 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x07, + 0xFE, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x3F, 0xC0, + 0x00, 0x03, 0xFC, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x07, 0xF8, 0x00, 0x00, + 0x7F, 0x80, 0x00, 0x07, 0xF8, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF0, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x01, 0xFE, 0x00, 0x00, + 0x1F, 0xE0, 0x00, 0x7F, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, + 0xCF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, + 0xF0, 0x00, 0x0F, 0xF0, 0x00, 0x07, 0xF8, 0x00, 0x07, 0xF8, 0x00, 0x03, + 0xF8, 0x00, 0x03, 0xFC, 0x00, 0x03, 0xFC, 0x00, 0x01, 0xFE, 0x00, 0x01, + 0xFE, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, + 0x7F, 0x80, 0x00, 0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, + 0x3F, 0xE0, 0x00, 0x1F, 0xE0, 0x00, 0x1F, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, + 0xCF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x1F, 0x80, 0x3F, 0xC0, 0x3F, 0xE0, 0x3F, + 0xF0, 0x1F, 0xF8, 0x1F, 0xFC, 0x0F, 0xF0, 0x07, 0xF0, 0x03, 0xF0, 0x01, + 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, + 0x07, 0xE0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, 0x3E, 0x00, 0x1F, + 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, + 0xFC, 0x00, 0xFE, 0x01, 0xFE, 0x07, 0xFE, 0x03, 0xFE, 0x01, 0xFE, 0x00, + 0xFE, 0x00, 0x7F, 0xC0, 0x3F, 0xF0, 0x03, 0xFC, 0x00, 0x7F, 0x00, 0x1F, + 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, + 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x07, 0xE0, 0x03, 0xF0, + 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, + 0xC0, 0x07, 0xE0, 0x03, 0xF8, 0x01, 0xFE, 0x00, 0xFF, 0xE0, 0x3F, 0xF0, + 0x1F, 0xF8, 0x07, 0xFC, 0x01, 0xFE, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFC, 0x00, + 0x7F, 0xC0, 0x3F, 0xF0, 0x1F, 0xF8, 0x0F, 0xFE, 0x07, 0xFF, 0x00, 0x7F, + 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, 0x00, + 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x03, 0xF0, + 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, + 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x00, 0xFC, 0x00, 0x7F, 0x00, 0x3F, 0xC0, + 0x0F, 0xFC, 0x03, 0xFE, 0x00, 0x7F, 0x00, 0x3F, 0x80, 0x7F, 0xC0, 0x7F, + 0xE0, 0x3F, 0x80, 0x3F, 0x80, 0x1F, 0x80, 0x1F, 0x80, 0x0F, 0xC0, 0x07, + 0xE0, 0x03, 0xF0, 0x01, 0xF8, 0x00, 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, + 0x1F, 0x80, 0x07, 0xC0, 0x03, 0xE0, 0x01, 0xF0, 0x00, 0xF8, 0x00, 0x7C, + 0x00, 0x3E, 0x00, 0x1F, 0x00, 0x0F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x0F, + 0xF0, 0x3F, 0xF8, 0x1F, 0xFC, 0x0F, 0xFC, 0x07, 0xFE, 0x03, 0xFE, 0x01, + 0xF8, 0x00, 0x07, 0xC0, 0x00, 0x08, 0xFF, 0xC0, 0x00, 0x5F, 0xFF, 0xC0, + 0x06, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, + 0x80, 0x1F, 0xFF, 0xD8, 0x00, 0x1F, 0xFC, 0x80, 0x00, 0x1F, 0x80 }; + +const GFXglyph monofonto32pt7bGlyphs[] PROGMEM = { + { 0, 1, 1, 32, 0, 0 }, // 0x20 ' ' + { 1, 8, 47, 32, 12, -45 }, // 0x21 '!' + { 48, 12, 15, 32, 10, -45 }, // 0x22 '"' + { 71, 29, 46, 32, 1, -45 }, // 0x23 '#' + { 238, 26, 58, 32, 3, -51 }, // 0x24 '$' + { 427, 32, 48, 32, 0, -46 }, // 0x25 '%' + { 619, 30, 48, 32, 1, -46 }, // 0x26 '&' + { 799, 4, 15, 32, 14, -45 }, // 0x27 ''' + { 807, 13, 64, 32, 14, -50 }, // 0x28 '(' + { 911, 13, 64, 32, 5, -50 }, // 0x29 ')' + { 1015, 32, 30, 32, 0, -45 }, // 0x2A '*' + { 1135, 28, 28, 32, 2, -36 }, // 0x2B '+' + { 1233, 9, 19, 32, 11, -9 }, // 0x2C ',' + { 1255, 19, 7, 32, 6, -26 }, // 0x2D '-' + { 1272, 8, 11, 32, 12, -9 }, // 0x2E '.' + { 1283, 31, 60, 32, 0, -48 }, // 0x2F '/' + { 1516, 24, 48, 32, 4, -46 }, // 0x30 '0' + { 1660, 15, 46, 32, 6, -45 }, // 0x31 '1' + { 1747, 25, 47, 32, 3, -46 }, // 0x32 '2' + { 1894, 27, 48, 32, 2, -46 }, // 0x33 '3' + { 2056, 28, 46, 32, 2, -45 }, // 0x34 '4' + { 2217, 26, 47, 32, 3, -45 }, // 0x35 '5' + { 2370, 26, 47, 32, 3, -45 }, // 0x36 '6' + { 2523, 28, 46, 32, 2, -45 }, // 0x37 '7' + { 2684, 27, 48, 32, 2, -46 }, // 0x38 '8' + { 2846, 26, 47, 32, 3, -46 }, // 0x39 '9' + { 2999, 8, 33, 32, 12, -31 }, // 0x3A ':' + { 3032, 10, 41, 32, 10, -31 }, // 0x3B ';' + { 3084, 28, 34, 32, 2, -39 }, // 0x3C '<' + { 3203, 28, 19, 32, 2, -31 }, // 0x3D '=' + { 3270, 28, 34, 32, 2, -39 }, // 0x3E '>' + { 3389, 22, 48, 32, 5, -46 }, // 0x3F '?' + { 3521, 30, 47, 32, 1, -38 }, // 0x40 '@' + { 3698, 27, 46, 32, 2, -45 }, // 0x41 'A' + { 3854, 25, 46, 32, 3, -45 }, // 0x42 'B' + { 3998, 25, 48, 32, 3, -46 }, // 0x43 'C' + { 4148, 25, 46, 32, 3, -45 }, // 0x44 'D' + { 4292, 23, 46, 32, 4, -45 }, // 0x45 'E' + { 4425, 23, 46, 32, 4, -45 }, // 0x46 'F' + { 4558, 25, 48, 32, 3, -46 }, // 0x47 'G' + { 4708, 25, 46, 32, 3, -45 }, // 0x48 'H' + { 4852, 21, 46, 32, 5, -45 }, // 0x49 'I' + { 4973, 24, 46, 32, 4, -45 }, // 0x4A 'J' + { 5111, 26, 46, 32, 4, -45 }, // 0x4B 'K' + { 5261, 24, 46, 32, 4, -45 }, // 0x4C 'L' + { 5399, 27, 46, 32, 2, -45 }, // 0x4D 'M' + { 5555, 26, 46, 32, 3, -45 }, // 0x4E 'N' + { 5705, 26, 48, 32, 3, -46 }, // 0x4F 'O' + { 5861, 27, 46, 32, 3, -45 }, // 0x50 'P' + { 6017, 26, 55, 32, 3, -46 }, // 0x51 'Q' + { 6196, 27, 46, 32, 3, -45 }, // 0x52 'R' + { 6352, 26, 48, 32, 3, -46 }, // 0x53 'S' + { 6508, 28, 46, 32, 2, -45 }, // 0x54 'T' + { 6669, 27, 47, 32, 2, -45 }, // 0x55 'U' + { 6828, 29, 46, 32, 1, -45 }, // 0x56 'V' + { 6995, 30, 46, 32, 1, -45 }, // 0x57 'W' + { 7168, 28, 46, 32, 2, -45 }, // 0x58 'X' + { 7329, 30, 46, 32, 1, -45 }, // 0x59 'Y' + { 7502, 29, 46, 32, 1, -45 }, // 0x5A 'Z' + { 7669, 12, 64, 32, 16, -50 }, // 0x5B '[' + { 7765, 31, 60, 32, 0, -48 }, // 0x5C '\' + { 7998, 12, 64, 32, 3, -50 }, // 0x5D ']' + { 8094, 27, 21, 32, 2, -45 }, // 0x5E '^' + { 8165, 32, 5, 32, 0, 9 }, // 0x5F '_' + { 8185, 15, 11, 32, 8, -45 }, // 0x60 '`' + { 8206, 26, 33, 32, 3, -31 }, // 0x61 'a' + { 8314, 26, 47, 32, 3, -45 }, // 0x62 'b' + { 8467, 27, 33, 32, 2, -31 }, // 0x63 'c' + { 8579, 26, 47, 32, 2, -45 }, // 0x64 'd' + { 8732, 28, 33, 32, 2, -31 }, // 0x65 'e' + { 8848, 26, 46, 32, 3, -45 }, // 0x66 'f' + { 8998, 26, 46, 32, 2, -31 }, // 0x67 'g' + { 9148, 25, 46, 32, 4, -45 }, // 0x68 'h' + { 9292, 20, 47, 32, 6, -46 }, // 0x69 'i' + { 9410, 19, 60, 32, 5, -46 }, // 0x6A 'j' + { 9553, 26, 46, 32, 3, -45 }, // 0x6B 'k' + { 9703, 14, 46, 32, 7, -45 }, // 0x6C 'l' + { 9784, 28, 32, 32, 2, -31 }, // 0x6D 'm' + { 9896, 25, 32, 32, 4, -31 }, // 0x6E 'n' + { 9996, 27, 33, 32, 2, -31 }, // 0x6F 'o' + { 10108, 27, 45, 32, 2, -31 }, // 0x70 'p' + { 10260, 26, 45, 32, 2, -31 }, // 0x71 'q' + { 10407, 24, 32, 32, 4, -31 }, // 0x72 'r' + { 10503, 24, 33, 32, 4, -31 }, // 0x73 's' + { 10602, 24, 40, 32, 3, -39 }, // 0x74 't' + { 10722, 26, 32, 32, 3, -30 }, // 0x75 'u' + { 10826, 28, 31, 32, 2, -30 }, // 0x76 'v' + { 10935, 30, 31, 32, 1, -30 }, // 0x77 'w' + { 11052, 26, 31, 32, 3, -30 }, // 0x78 'x' + { 11153, 28, 44, 32, 2, -30 }, // 0x79 'y' + { 11307, 25, 31, 32, 3, -30 }, // 0x7A 'z' + { 11404, 17, 64, 32, 11, -50 }, // 0x7B '{' + { 11540, 5, 60, 32, 13, -48 }, // 0x7C '|' + { 11578, 17, 64, 32, 3, -50 }, // 0x7D '}' + { 11714, 29, 9, 32, 1, -26 } }; // 0x7E '~' + +const GFXfont monofonto32pt7b PROGMEM = { + (uint8_t *)monofonto32pt7bBitmaps, + (GFXglyph *)monofonto32pt7bGlyphs, + 0x20, 0x7E, 75 }; + +// Approx. 12419 bytes diff --git a/examples/WatchFaces/pipboy/monofonto6pt7b.h b/examples/WatchFaces/pipboy/monofonto6pt7b.h new file mode 100644 index 0000000..5c01902 --- /dev/null +++ b/examples/WatchFaces/pipboy/monofonto6pt7b.h @@ -0,0 +1,144 @@ +const uint8_t monofonto6pt7bBitmaps[] PROGMEM = { + 0x00, 0xFF, 0xF0, 0xC0, 0xFC, 0x28, 0xA2, 0x9F, 0x29, 0x4F, 0x94, 0x50, + 0x47, 0xA5, 0x0E, 0x38, 0x73, 0xF3, 0x10, 0xC6, 0xAA, 0xAC, 0xEC, 0xD5, + 0x55, 0x8C, 0x71, 0x45, 0x1C, 0x63, 0xD9, 0xB6, 0x7C, 0xE0, 0x5A, 0xAA, + 0xAD, 0xA5, 0x55, 0x5E, 0x32, 0x9F, 0xCC, 0x49, 0x20, 0x20, 0x8F, 0xC8, + 0x20, 0xFA, 0xF0, 0xC0, 0x04, 0x20, 0x82, 0x10, 0x42, 0x08, 0x21, 0x04, + 0x20, 0xF9, 0x99, 0x99, 0x99, 0xF0, 0x2F, 0x92, 0x49, 0x20, 0xE9, 0x91, + 0x32, 0x64, 0xF0, 0x31, 0x20, 0x82, 0x18, 0x2C, 0xD2, 0x78, 0x18, 0xE3, + 0x96, 0x59, 0x6F, 0xC6, 0x18, 0xF4, 0x21, 0x0F, 0x48, 0x76, 0xE0, 0x18, + 0xC3, 0x18, 0x79, 0x2C, 0xD2, 0x38, 0xFC, 0x21, 0x86, 0x10, 0xC3, 0x18, + 0x60, 0x31, 0xA4, 0x92, 0x31, 0x2C, 0xD2, 0x78, 0x71, 0xAC, 0xD2, 0x78, + 0x61, 0x0C, 0x60, 0xC0, 0x30, 0xC0, 0xE8, 0x0C, 0xCC, 0x18, 0x18, 0x10, + 0xFC, 0x00, 0x3F, 0xC0, 0xC0, 0xC6, 0x62, 0x00, 0x6F, 0x13, 0x66, 0x00, + 0x60, 0x79, 0x38, 0x6D, 0xB6, 0xF8, 0x10, 0x20, 0x30, 0xC3, 0x0C, 0x79, + 0xE7, 0x92, 0xCC, 0xFB, 0x99, 0xEB, 0x9B, 0xF0, 0xF9, 0x88, 0x88, 0x8F, + 0xF0, 0xFB, 0x99, 0x99, 0x99, 0xF0, 0xF8, 0x88, 0xF8, 0x88, 0xF0, 0xF8, + 0x88, 0xF8, 0x88, 0x80, 0xFD, 0x88, 0xB9, 0x99, 0xF0, 0x99, 0x99, 0xF9, + 0x99, 0x90, 0xF6, 0x66, 0x66, 0x66, 0xF0, 0x31, 0x11, 0x11, 0x13, 0xE0, + 0x9D, 0xA9, 0x4E, 0x52, 0xD6, 0x98, 0x88, 0x88, 0x88, 0x88, 0xF0, 0xCF, + 0x3F, 0xFF, 0xFF, 0xFD, 0xF3, 0xCC, 0x9D, 0xDD, 0xFB, 0xBB, 0x90, 0x79, + 0x2C, 0xF3, 0xCF, 0x3C, 0xD2, 0x78, 0xF5, 0xA7, 0x39, 0x7A, 0x10, 0x80, + 0x79, 0x2C, 0xF3, 0xCF, 0x3C, 0xD2, 0x78, 0x60, 0x80, 0xF5, 0xA7, 0x2F, + 0x72, 0x96, 0x98, 0xF4, 0xA1, 0x87, 0x18, 0x7E, 0xF0, 0xFC, 0xC3, 0x0C, + 0x30, 0xC3, 0x0C, 0x30, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xD2, 0x78, 0xCD, + 0x24, 0x9A, 0x79, 0xE3, 0x0C, 0x30, 0xCF, 0x3D, 0xDE, 0x79, 0xE7, 0x9E, + 0x48, 0xCD, 0xE7, 0x8C, 0x30, 0xC7, 0x9E, 0xCC, 0xCD, 0x27, 0x9E, 0x30, + 0xC3, 0x0C, 0x30, 0xFC, 0x61, 0x84, 0x30, 0x86, 0x18, 0xFC, 0xEA, 0xAA, + 0xAB, 0x81, 0x04, 0x10, 0x20, 0x81, 0x04, 0x10, 0x20, 0x81, 0xD5, 0x55, + 0x57, 0x30, 0xC4, 0xB3, 0xFC, 0xD0, 0xF9, 0xF9, 0xBF, 0x84, 0x21, 0x6D, + 0x4E, 0x7A, 0xB0, 0x3B, 0x71, 0x86, 0x9C, 0x08, 0x42, 0xD5, 0xE7, 0x2B, + 0x68, 0x79, 0x2F, 0xF0, 0x49, 0xE0, 0x7A, 0x11, 0xE4, 0x21, 0x08, 0x40, + 0x7A, 0xF3, 0x95, 0xBF, 0x6F, 0x88, 0x8B, 0xD9, 0x99, 0x90, 0x60, 0x0E, + 0x66, 0x66, 0xF0, 0x30, 0x0F, 0x33, 0x33, 0x32, 0xE0, 0x88, 0x8B, 0xAE, + 0xEB, 0xB0, 0xE4, 0x92, 0x49, 0x20, 0xEB, 0xFE, 0xFB, 0xEF, 0xB0, 0xBD, + 0x99, 0x99, 0x31, 0xEC, 0xF3, 0x68, 0xC0, 0xFE, 0xF3, 0x9D, 0xFF, 0x18, + 0x6A, 0xF3, 0x95, 0xB4, 0x21, 0xBD, 0x88, 0x88, 0xEB, 0xC3, 0x9F, 0x44, + 0xF4, 0x44, 0x47, 0x99, 0x99, 0x9F, 0xCD, 0x26, 0x9E, 0x30, 0xC0, 0xDF, + 0x77, 0x9E, 0x79, 0xE0, 0x49, 0xE3, 0x0C, 0x7B, 0x30, 0xCD, 0x26, 0x9E, + 0x30, 0xC3, 0x08, 0x78, 0xCC, 0x46, 0x7C, 0x6D, 0x25, 0x92, 0x49, 0x90, + 0xFF, 0xE0, 0xD9, 0x24, 0xD2, 0x4B, 0x40, 0xE6, 0xF0 }; + +const GFXglyph monofonto6pt7bGlyphs[] PROGMEM = { + { 0, 1, 1, 6, 0, 0 }, // 0x20 ' ' + { 1, 2, 9, 6, 2, -8 }, // 0x21 '!' + { 4, 2, 3, 6, 2, -8 }, // 0x22 '"' + { 5, 6, 9, 6, 0, -8 }, // 0x23 '#' + { 12, 5, 11, 6, 1, -9 }, // 0x24 '$' + { 19, 6, 9, 6, 0, -8 }, // 0x25 '%' + { 26, 6, 9, 6, 0, -8 }, // 0x26 '&' + { 33, 1, 3, 6, 3, -8 }, // 0x27 ''' + { 34, 2, 12, 6, 3, -9 }, // 0x28 '(' + { 37, 2, 12, 6, 1, -9 }, // 0x29 ')' + { 40, 6, 6, 6, 0, -8 }, // 0x2A '*' + { 45, 6, 5, 6, 0, -6 }, // 0x2B '+' + { 49, 2, 4, 6, 2, -1 }, // 0x2C ',' + { 50, 4, 1, 6, 1, -4 }, // 0x2D '-' + { 51, 2, 1, 6, 2, 0 }, // 0x2E '.' + { 52, 6, 12, 6, 0, -9 }, // 0x2F '/' + { 61, 4, 9, 6, 1, -8 }, // 0x30 '0' + { 66, 3, 9, 6, 1, -8 }, // 0x31 '1' + { 70, 4, 9, 6, 1, -8 }, // 0x32 '2' + { 75, 6, 9, 6, 0, -8 }, // 0x33 '3' + { 82, 6, 9, 6, 0, -8 }, // 0x34 '4' + { 89, 5, 9, 6, 1, -8 }, // 0x35 '5' + { 95, 6, 9, 6, 0, -8 }, // 0x36 '6' + { 102, 6, 9, 6, 0, -8 }, // 0x37 '7' + { 109, 6, 9, 6, 0, -8 }, // 0x38 '8' + { 116, 6, 9, 6, 0, -8 }, // 0x39 '9' + { 123, 2, 6, 6, 2, -5 }, // 0x3A ':' + { 125, 2, 7, 6, 2, -5 }, // 0x3B ';' + { 127, 6, 6, 6, 0, -6 }, // 0x3C '<' + { 132, 6, 4, 6, 0, -5 }, // 0x3D '=' + { 135, 6, 6, 6, 0, -6 }, // 0x3E '>' + { 140, 4, 9, 6, 1, -8 }, // 0x3F '?' + { 145, 6, 9, 6, 0, -6 }, // 0x40 '@' + { 152, 6, 9, 6, 0, -8 }, // 0x41 'A' + { 159, 4, 9, 6, 1, -8 }, // 0x42 'B' + { 164, 4, 9, 6, 1, -8 }, // 0x43 'C' + { 169, 4, 9, 6, 1, -8 }, // 0x44 'D' + { 174, 4, 9, 6, 1, -8 }, // 0x45 'E' + { 179, 4, 9, 6, 1, -8 }, // 0x46 'F' + { 184, 4, 9, 6, 1, -8 }, // 0x47 'G' + { 189, 4, 9, 6, 1, -8 }, // 0x48 'H' + { 194, 4, 9, 6, 1, -8 }, // 0x49 'I' + { 199, 4, 9, 6, 1, -8 }, // 0x4A 'J' + { 204, 5, 9, 6, 1, -8 }, // 0x4B 'K' + { 210, 4, 9, 6, 1, -8 }, // 0x4C 'L' + { 215, 6, 9, 6, 0, -8 }, // 0x4D 'M' + { 222, 4, 9, 6, 1, -8 }, // 0x4E 'N' + { 227, 6, 9, 6, 0, -8 }, // 0x4F 'O' + { 234, 5, 9, 6, 1, -8 }, // 0x50 'P' + { 240, 6, 11, 6, 0, -8 }, // 0x51 'Q' + { 249, 5, 9, 6, 1, -8 }, // 0x52 'R' + { 255, 5, 9, 6, 1, -8 }, // 0x53 'S' + { 261, 6, 9, 6, 0, -8 }, // 0x54 'T' + { 268, 6, 9, 6, 0, -8 }, // 0x55 'U' + { 275, 6, 9, 6, 0, -8 }, // 0x56 'V' + { 282, 6, 9, 6, 0, -8 }, // 0x57 'W' + { 289, 6, 9, 6, 0, -8 }, // 0x58 'X' + { 296, 6, 9, 6, 0, -8 }, // 0x59 'Y' + { 303, 6, 9, 6, 0, -8 }, // 0x5A 'Z' + { 310, 2, 12, 6, 3, -9 }, // 0x5B '[' + { 313, 6, 12, 6, 0, -9 }, // 0x5C '\' + { 322, 2, 12, 6, 1, -9 }, // 0x5D ']' + { 325, 6, 4, 6, 0, -8 }, // 0x5E '^' + { 328, 6, 1, 6, 0, 2 }, // 0x5F '_' + { 329, 2, 2, 6, 2, -8 }, // 0x60 '`' + { 330, 4, 6, 6, 1, -5 }, // 0x61 'a' + { 333, 5, 9, 6, 1, -8 }, // 0x62 'b' + { 339, 5, 6, 6, 0, -5 }, // 0x63 'c' + { 343, 5, 9, 6, 0, -8 }, // 0x64 'd' + { 349, 6, 6, 6, 0, -5 }, // 0x65 'e' + { 354, 5, 9, 6, 1, -8 }, // 0x66 'f' + { 360, 5, 8, 6, 0, -5 }, // 0x67 'g' + { 365, 4, 9, 6, 1, -8 }, // 0x68 'h' + { 370, 4, 9, 6, 1, -8 }, // 0x69 'i' + { 375, 4, 11, 6, 1, -8 }, // 0x6A 'j' + { 381, 4, 9, 6, 1, -8 }, // 0x6B 'k' + { 386, 3, 9, 6, 1, -8 }, // 0x6C 'l' + { 390, 6, 6, 6, 0, -5 }, // 0x6D 'm' + { 395, 4, 6, 6, 1, -5 }, // 0x6E 'n' + { 398, 6, 6, 6, 0, -5 }, // 0x6F 'o' + { 403, 5, 8, 6, 0, -5 }, // 0x70 'p' + { 408, 5, 8, 6, 0, -5 }, // 0x71 'q' + { 413, 4, 6, 6, 1, -5 }, // 0x72 'r' + { 416, 4, 6, 6, 1, -5 }, // 0x73 's' + { 419, 4, 8, 6, 1, -7 }, // 0x74 't' + { 423, 4, 6, 6, 1, -5 }, // 0x75 'u' + { 426, 6, 6, 6, 0, -5 }, // 0x76 'v' + { 431, 6, 6, 6, 0, -5 }, // 0x77 'w' + { 436, 6, 6, 6, 0, -5 }, // 0x78 'x' + { 441, 6, 8, 6, 0, -5 }, // 0x79 'y' + { 447, 5, 6, 6, 0, -5 }, // 0x7A 'z' + { 451, 3, 12, 6, 2, -9 }, // 0x7B '{' + { 456, 1, 11, 6, 3, -8 }, // 0x7C '|' + { 458, 3, 12, 6, 1, -9 }, // 0x7D '}' + { 463, 6, 2, 6, 0, -5 } }; // 0x7E '~' + +const GFXfont monofonto6pt7b PROGMEM = { + (uint8_t *)monofonto6pt7bBitmaps, + (GFXglyph *)monofonto6pt7bGlyphs, + 0x20, 0x7E, 14 }; + +// Approx. 1137 bytes diff --git a/examples/WatchFaces/pipboy/monofonto8pt7b.h b/examples/WatchFaces/pipboy/monofonto8pt7b.h new file mode 100644 index 0000000..d7c81d0 --- /dev/null +++ b/examples/WatchFaces/pipboy/monofonto8pt7b.h @@ -0,0 +1,168 @@ +const uint8_t monofonto8pt7bBitmaps[] PROGMEM = { + 0x00, 0xFF, 0xFC, 0xFC, 0x99, 0x99, 0x1A, 0x12, 0x16, 0x7F, 0x24, 0x24, + 0x7E, 0xFE, 0x68, 0x48, 0x48, 0x30, 0xC7, 0xF3, 0xC3, 0x0F, 0x1F, 0x3C, + 0x30, 0xF3, 0xFC, 0xE3, 0x00, 0xE3, 0xA2, 0xA4, 0xA4, 0xEF, 0x1D, 0x15, + 0x25, 0x25, 0x45, 0xC7, 0x38, 0x7C, 0x6C, 0x6C, 0x38, 0x30, 0x7B, 0xCE, + 0xCC, 0x7E, 0x7B, 0xFF, 0x23, 0x26, 0x64, 0x4C, 0xC4, 0x44, 0x66, 0x23, + 0x4C, 0x66, 0x62, 0x23, 0x32, 0x22, 0x66, 0x4C, 0x18, 0x18, 0xDB, 0xFF, + 0x18, 0x34, 0x66, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0xFA, 0xFF, + 0xFC, 0x03, 0x02, 0x06, 0x04, 0x04, 0x0C, 0x08, 0x18, 0x10, 0x30, 0x20, + 0x20, 0x60, 0x40, 0xC0, 0x7B, 0xFC, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xF7, + 0x80, 0x2F, 0xFE, 0xDB, 0x6D, 0xB0, 0x7B, 0xFC, 0xC3, 0x0C, 0x61, 0x8C, + 0x71, 0xFF, 0xC0, 0x7B, 0xFC, 0xC3, 0x0C, 0x60, 0xC3, 0xCF, 0xF7, 0x80, + 0x18, 0x70, 0xA3, 0x44, 0x99, 0x22, 0x7F, 0xFE, 0x30, 0x60, 0xFF, 0xFC, + 0x30, 0xFB, 0xFC, 0xC3, 0x4F, 0xF7, 0x80, 0x18, 0xC3, 0x18, 0x7B, 0xFC, + 0xF3, 0xCF, 0xF7, 0x80, 0xFF, 0xF8, 0x30, 0xC1, 0x87, 0x0C, 0x18, 0x60, + 0xC3, 0x80, 0x7B, 0xFC, 0xF3, 0x7B, 0xFC, 0xE1, 0xCF, 0xF7, 0x80, 0x7B, + 0xFC, 0xF3, 0xCF, 0xF7, 0x86, 0x30, 0xC6, 0x00, 0xFC, 0x3F, 0xFC, 0x0F, + 0xA0, 0x01, 0x07, 0x1C, 0x60, 0xC0, 0x70, 0x1C, 0x07, 0x01, 0xFF, 0xFF, + 0x00, 0x00, 0xFF, 0xFF, 0x80, 0xE0, 0x38, 0x0E, 0x03, 0x0E, 0x38, 0xE0, + 0x80, 0x7B, 0xFC, 0xC3, 0x18, 0xC3, 0x00, 0x20, 0xC3, 0x00, 0x3C, 0x62, + 0x41, 0xC1, 0x9D, 0x95, 0x95, 0xDE, 0x40, 0x60, 0x30, 0x10, 0x30, 0xC7, + 0x9E, 0x79, 0xE5, 0xBF, 0xFF, 0x3C, 0xC0, 0xFB, 0xFC, 0xF3, 0xCF, 0xCC, + 0xF3, 0xCF, 0xFF, 0x80, 0x7B, 0xFC, 0xF0, 0xC3, 0x0C, 0x30, 0xCF, 0xF7, + 0x80, 0xFB, 0xFC, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xFF, 0x80, 0xFF, 0xFC, + 0x30, 0xFB, 0xEC, 0x30, 0xC3, 0xFF, 0xC0, 0xFF, 0xFC, 0x30, 0xFB, 0xEC, + 0x30, 0xC3, 0x0C, 0x00, 0x7B, 0xFC, 0xF0, 0xDF, 0x7C, 0xF3, 0xCF, 0xF7, + 0x40, 0xCF, 0x3C, 0xF3, 0xFF, 0xFC, 0xF3, 0xCF, 0x3C, 0xC0, 0xFF, 0xF3, + 0x0C, 0x30, 0xC3, 0x0C, 0x33, 0xFF, 0xC0, 0x1C, 0x70, 0xC3, 0x0C, 0x30, + 0xC3, 0x0F, 0xEF, 0x80, 0xCD, 0x9B, 0x66, 0xCF, 0x1E, 0x3C, 0x6C, 0xD9, + 0x9B, 0x38, 0xC3, 0x0C, 0x30, 0xC3, 0x0C, 0x30, 0xC3, 0xFF, 0xC0, 0xCF, + 0x3C, 0xFF, 0xFE, 0xDB, 0x6D, 0x96, 0x18, 0x40, 0xCF, 0xBE, 0xFB, 0xFF, + 0xFF, 0xF7, 0xDF, 0x3C, 0xC0, 0x7B, 0xFC, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, + 0xF7, 0x80, 0xF9, 0xFB, 0x36, 0x7C, 0xDF, 0xBE, 0x60, 0xC1, 0x83, 0x00, + 0x7B, 0xFC, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xF7, 0x86, 0x0C, 0xF9, 0xFB, + 0x36, 0x6C, 0xDF, 0xBC, 0x7C, 0xD9, 0xBB, 0x38, 0x7B, 0xFC, 0xF0, 0xF1, + 0xE1, 0xC3, 0xCF, 0xF7, 0x80, 0xFF, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x18, + 0x18, 0x18, 0x18, 0x18, 0xCF, 0x3C, 0xF3, 0xCF, 0x3C, 0xF3, 0xCF, 0xF7, + 0x80, 0xE3, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x3C, 0x3C, 0x18, 0x18, + 0xC3, 0xC3, 0xCB, 0x6E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x66, 0x24, 0xE7, + 0x66, 0x3C, 0x3C, 0x3C, 0x18, 0x3C, 0x3C, 0x3C, 0x66, 0xE7, 0xE7, 0x66, + 0x66, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7F, 0x7E, 0x0C, + 0x0C, 0x1C, 0x18, 0x38, 0x30, 0x70, 0x7E, 0xFE, 0xFF, 0x6D, 0xB6, 0xDB, + 0x6D, 0xBF, 0xC0, 0x40, 0x60, 0x20, 0x20, 0x30, 0x10, 0x18, 0x08, 0x0C, + 0x04, 0x04, 0x06, 0x02, 0x03, 0xFD, 0xB6, 0xDB, 0x6D, 0xB6, 0xFF, 0x31, + 0xE4, 0xB3, 0x84, 0xFF, 0xFF, 0xE6, 0x30, 0x7B, 0xF0, 0xDF, 0xFF, 0x3F, + 0x5D, 0xC3, 0x0C, 0x36, 0xFF, 0x3C, 0x71, 0xCF, 0xFD, 0x80, 0x3F, 0xFC, + 0x30, 0xC3, 0x1F, 0xDF, 0x0C, 0x30, 0xDB, 0xFF, 0x3C, 0xF3, 0xCF, 0xF6, + 0xC0, 0x3C, 0x7E, 0x66, 0x7F, 0xE0, 0x64, 0x7E, 0x3C, 0x3D, 0xF6, 0x3E, + 0xF9, 0x86, 0x18, 0x61, 0x86, 0x00, 0x7F, 0xFC, 0xF3, 0xCF, 0x3F, 0xDF, + 0x8F, 0xF7, 0x80, 0xC3, 0x0C, 0x37, 0xFF, 0x3C, 0xF3, 0xCF, 0x3C, 0xC0, + 0x30, 0xC0, 0x3C, 0xF0, 0xC3, 0x0C, 0x33, 0xFF, 0xC0, 0x18, 0xC0, 0xF7, + 0x8C, 0x63, 0x18, 0xC6, 0x3F, 0xF8, 0xC3, 0x0C, 0x33, 0xDB, 0xCF, 0x3C, + 0xDB, 0x6C, 0xC0, 0xFD, 0xB6, 0xDB, 0x6D, 0x80, 0xD6, 0xFF, 0xDB, 0xDB, + 0xDB, 0xDB, 0xDB, 0xDB, 0xDF, 0xFC, 0xF3, 0xCF, 0x3C, 0xF3, 0x7B, 0xFC, + 0xF3, 0xCF, 0x3F, 0xDE, 0xBA, 0xFC, 0xE3, 0x8F, 0x3B, 0xEE, 0x82, 0x08, + 0x00, 0x6F, 0xFC, 0xF3, 0xCF, 0x3F, 0xDB, 0x0C, 0x30, 0xC0, 0xDB, 0xFC, + 0xB0, 0xC3, 0x0C, 0x30, 0x7B, 0x3C, 0x1E, 0x3C, 0x3C, 0xDE, 0x20, 0x8F, + 0xBE, 0x20, 0x82, 0x08, 0x3C, 0xF0, 0xCF, 0x3C, 0xF3, 0xCF, 0x3F, 0xDE, + 0xE3, 0x66, 0x66, 0x36, 0x3C, 0x3C, 0x3C, 0x18, 0xCB, 0x6A, 0x7E, 0x7E, + 0x7E, 0x7E, 0x3E, 0x24, 0xCD, 0x27, 0x8C, 0x31, 0xEC, 0xF3, 0xE3, 0x66, + 0x66, 0x36, 0x3C, 0x3C, 0x3C, 0x18, 0x18, 0x18, 0x30, 0xFF, 0xE1, 0x8C, + 0x31, 0x8F, 0xFF, 0x37, 0x66, 0x66, 0x6C, 0xC6, 0x66, 0x66, 0x73, 0xFF, + 0xFF, 0xFF, 0xFC, 0xCE, 0x66, 0x66, 0x63, 0x36, 0x66, 0x66, 0xEC, 0x61, + 0xFF, 0x8E }; + +const GFXglyph monofonto8pt7bGlyphs[] PROGMEM = { + { 0, 1, 1, 8, 0, 0 }, // 0x20 ' ' + { 1, 2, 11, 8, 3, -10 }, // 0x21 '!' + { 4, 4, 4, 8, 2, -10 }, // 0x22 '"' + { 6, 8, 11, 8, 0, -10 }, // 0x23 '#' + { 17, 6, 15, 8, 1, -12 }, // 0x24 '$' + { 29, 8, 11, 8, 0, -10 }, // 0x25 '%' + { 40, 8, 11, 8, 0, -10 }, // 0x26 '&' + { 51, 2, 4, 8, 3, -10 }, // 0x27 ''' + { 52, 4, 16, 8, 3, -12 }, // 0x28 '(' + { 60, 4, 16, 8, 1, -12 }, // 0x29 ')' + { 68, 8, 7, 8, 0, -10 }, // 0x2A '*' + { 75, 8, 7, 8, 0, -8 }, // 0x2B '+' + { 82, 2, 4, 8, 3, -1 }, // 0x2C ',' + { 83, 4, 2, 8, 2, -6 }, // 0x2D '-' + { 84, 2, 3, 8, 3, -2 }, // 0x2E '.' + { 85, 8, 15, 8, 0, -11 }, // 0x2F '/' + { 100, 6, 11, 8, 1, -10 }, // 0x30 '0' + { 109, 3, 12, 8, 2, -11 }, // 0x31 '1' + { 114, 6, 11, 8, 1, -10 }, // 0x32 '2' + { 123, 6, 11, 8, 1, -10 }, // 0x33 '3' + { 132, 7, 11, 8, 1, -10 }, // 0x34 '4' + { 142, 6, 11, 8, 1, -10 }, // 0x35 '5' + { 151, 6, 11, 8, 1, -10 }, // 0x36 '6' + { 160, 7, 11, 8, 1, -10 }, // 0x37 '7' + { 170, 6, 11, 8, 1, -10 }, // 0x38 '8' + { 179, 6, 11, 8, 1, -10 }, // 0x39 '9' + { 188, 2, 8, 8, 3, -7 }, // 0x3A ':' + { 190, 2, 10, 8, 3, -7 }, // 0x3B ';' + { 193, 8, 9, 8, 0, -9 }, // 0x3C '<' + { 202, 8, 6, 8, 0, -7 }, // 0x3D '=' + { 208, 8, 9, 8, 0, -9 }, // 0x3E '>' + { 217, 6, 11, 8, 1, -10 }, // 0x3F '?' + { 226, 8, 12, 8, 0, -8 }, // 0x40 '@' + { 238, 6, 11, 8, 1, -10 }, // 0x41 'A' + { 247, 6, 11, 8, 1, -10 }, // 0x42 'B' + { 256, 6, 11, 8, 1, -10 }, // 0x43 'C' + { 265, 6, 11, 8, 1, -10 }, // 0x44 'D' + { 274, 6, 11, 8, 1, -10 }, // 0x45 'E' + { 283, 6, 11, 8, 1, -10 }, // 0x46 'F' + { 292, 6, 11, 8, 1, -10 }, // 0x47 'G' + { 301, 6, 11, 8, 1, -10 }, // 0x48 'H' + { 310, 6, 11, 8, 1, -10 }, // 0x49 'I' + { 319, 6, 11, 8, 1, -10 }, // 0x4A 'J' + { 328, 7, 11, 8, 1, -10 }, // 0x4B 'K' + { 338, 6, 11, 8, 1, -10 }, // 0x4C 'L' + { 347, 6, 11, 8, 1, -10 }, // 0x4D 'M' + { 356, 6, 11, 8, 1, -10 }, // 0x4E 'N' + { 365, 6, 11, 8, 1, -10 }, // 0x4F 'O' + { 374, 7, 11, 8, 1, -10 }, // 0x50 'P' + { 384, 6, 13, 8, 1, -10 }, // 0x51 'Q' + { 394, 7, 11, 8, 1, -10 }, // 0x52 'R' + { 404, 6, 11, 8, 1, -10 }, // 0x53 'S' + { 413, 8, 11, 8, 0, -10 }, // 0x54 'T' + { 424, 6, 11, 8, 1, -10 }, // 0x55 'U' + { 433, 8, 11, 8, 0, -10 }, // 0x56 'V' + { 444, 8, 11, 8, 0, -10 }, // 0x57 'W' + { 455, 8, 11, 8, 0, -10 }, // 0x58 'X' + { 466, 8, 11, 8, 0, -10 }, // 0x59 'Y' + { 477, 8, 11, 8, 0, -10 }, // 0x5A 'Z' + { 488, 3, 16, 8, 4, -12 }, // 0x5B '[' + { 494, 8, 15, 8, 0, -11 }, // 0x5C '\' + { 509, 3, 16, 8, 1, -12 }, // 0x5D ']' + { 515, 6, 5, 8, 1, -10 }, // 0x5E '^' + { 519, 8, 2, 8, 0, 2 }, // 0x5F '_' + { 521, 4, 3, 8, 2, -10 }, // 0x60 '`' + { 523, 6, 8, 8, 1, -7 }, // 0x61 'a' + { 529, 6, 11, 8, 1, -10 }, // 0x62 'b' + { 538, 6, 8, 8, 1, -7 }, // 0x63 'c' + { 544, 6, 11, 8, 1, -10 }, // 0x64 'd' + { 553, 8, 8, 8, 0, -7 }, // 0x65 'e' + { 561, 6, 11, 8, 1, -10 }, // 0x66 'f' + { 570, 6, 11, 8, 1, -7 }, // 0x67 'g' + { 579, 6, 11, 8, 1, -10 }, // 0x68 'h' + { 588, 6, 11, 8, 1, -10 }, // 0x69 'i' + { 597, 5, 14, 8, 1, -10 }, // 0x6A 'j' + { 606, 6, 11, 8, 1, -10 }, // 0x6B 'k' + { 615, 3, 11, 8, 2, -10 }, // 0x6C 'l' + { 620, 8, 8, 8, 0, -7 }, // 0x6D 'm' + { 628, 6, 8, 8, 1, -7 }, // 0x6E 'n' + { 634, 6, 8, 8, 1, -7 }, // 0x6F 'o' + { 640, 6, 11, 8, 1, -7 }, // 0x70 'p' + { 649, 6, 11, 8, 1, -7 }, // 0x71 'q' + { 658, 6, 8, 8, 1, -7 }, // 0x72 'r' + { 664, 6, 8, 8, 1, -7 }, // 0x73 's' + { 670, 6, 10, 8, 1, -9 }, // 0x74 't' + { 678, 6, 8, 8, 1, -7 }, // 0x75 'u' + { 684, 8, 8, 8, 0, -7 }, // 0x76 'v' + { 692, 8, 8, 8, 0, -7 }, // 0x77 'w' + { 700, 6, 8, 8, 1, -7 }, // 0x78 'x' + { 706, 8, 11, 8, 0, -7 }, // 0x79 'y' + { 717, 6, 8, 8, 1, -7 }, // 0x7A 'z' + { 723, 4, 16, 8, 3, -12 }, // 0x7B '{' + { 731, 2, 15, 8, 3, -11 }, // 0x7C '|' + { 735, 4, 16, 8, 1, -12 }, // 0x7D '}' + { 743, 8, 3, 8, 0, -7 } }; // 0x7E '~' + +const GFXfont monofonto8pt7b PROGMEM = { + (uint8_t *)monofonto8pt7bBitmaps, + (GFXglyph *)monofonto8pt7bGlyphs, + 0x20, 0x7E, 19 }; + +// Approx. 1418 bytes diff --git a/examples/WatchFaces/pipboy/pipboy.ino b/examples/WatchFaces/pipboy/pipboy.ino new file mode 100644 index 0000000..6b01251 --- /dev/null +++ b/examples/WatchFaces/pipboy/pipboy.ino @@ -0,0 +1,10 @@ +#include "WatchyPipBoy.h" +#include "settings.h" + +WatchyPipBoy watchy(settings); + +void setup(){ + watchy.init(); +} + +void loop(){} diff --git a/examples/WatchFaces/pipboy/settings.h b/examples/WatchFaces/pipboy/settings.h new file mode 100644 index 0000000..808a79b --- /dev/null +++ b/examples/WatchFaces/pipboy/settings.h @@ -0,0 +1,27 @@ +#ifndef SETTINGS_H +#define SETTINGS_H + +//Weather Settings +#define CITY_ID "5128581" //New York City https://openweathermap.org/current#cityid +#define OPENWEATHERMAP_APIKEY "f058fe1cad2afe8e2ddc5d063a64cecb" //use your own API key :) +#define OPENWEATHERMAP_URL "http://api.openweathermap.org/data/2.5/weather?id=" //open weather api +#define TEMP_UNIT "metric" //metric = Celsius , imperial = Fahrenheit +#define TEMP_LANG "en" +#define WEATHER_UPDATE_INTERVAL 30 //must be greater than 5, measured in minutes +//NTP Settings +#define NTP_SERVER "pool.ntp.org" +#define GMT_OFFSET_SEC 3600 * -5 //New York is UTC -5 EST, -4 EDT, will be overwritten by weather data + +watchySettings settings{ + .cityID = CITY_ID, + .weatherAPIKey = OPENWEATHERMAP_APIKEY, + .weatherURL = OPENWEATHERMAP_URL, + .weatherUnit = TEMP_UNIT, + .weatherLang = TEMP_LANG, + .weatherUpdateInterval = WEATHER_UPDATE_INTERVAL, + .ntpServer = NTP_SERVER, + .gmtOffset = GMT_OFFSET_SEC, + .vibrateOClock = true, +}; + +#endif diff --git a/library.json b/library.json index 24c321f..d81ceb3 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "Watchy", - "version": "1.4.13", + "version": "1.4.14", "description": "Watchy - An Open Source E-Paper Watch by SQFMI", "authors": [ { @@ -30,7 +30,7 @@ }, { "name": "WiFiManager", - "version": "https://github.com/tzapu/WiFiManager.git#2.0.3-alpha" + "version": "https://github.com/tzapu/WiFiManager.git#master" } ] } diff --git a/library.properties b/library.properties index 18abeac..8cc9f86 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=Watchy -version=1.4.13 +version=1.4.14 author=SQFMI maintainer=SQFMI sentence=Watchy - An Open Source E-Paper Watch by SQFMI diff --git a/platformio.ini b/platformio.ini new file mode 100644 index 0000000..441f7d8 --- /dev/null +++ b/platformio.ini @@ -0,0 +1,47 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + + +[env:base] +platform = espressif32@6.7.0 +framework = arduino +;CDC enabled on boot: +build_flags = -DCDC_ENABLED +;erase flash before upload: +;upload_flags = --erase-all +;upload speed: +upload_speed = 115200 +;upload port (put yours here): +upload_port = COM7 +;upload_port = /dev/ttyACM0 for linux +board_build.partitions = default_8MB.csv +monitor_speed = 115200 +lib_deps = + Adafruit GFX Library + Arduino_JSON + DS3232RTC + NTPClient + https://github.com/orbitalair/Rtc_Pcf8563.git#master + https://github.com/ZinggJM/GxEPD2.git#master + https://github.com/tzapu/WiFiManager.git#master + + +[env:esp32-s3-devkitc-1] +; This is for v3 +extends = env:base +board = esp32-s3-devkitc-1 +board_build.mcu = esp32s3 +framework = arduino + +[env:esp32-pico-devkitm-2] +; This is for v1, v1.5, v2 +extends = env:base +board = esp32-pico-devkitm-2 +framework = arduino \ No newline at end of file diff --git a/src/Display.cpp b/src/Display.cpp index ecaac83..6440e4c 100644 --- a/src/Display.cpp +++ b/src/Display.cpp @@ -19,11 +19,9 @@ RTC_DATA_ATTR bool displayFullInit = true; void WatchyDisplay::busyCallback(const void *) { - #ifndef ARDUINO_ESP32S3_DEV gpio_wakeup_enable((gpio_num_t)DISPLAY_BUSY, GPIO_INTR_LOW_LEVEL); esp_sleep_enable_gpio_wakeup(); esp_light_sleep_start(); - #endif } WatchyDisplay::WatchyDisplay() : @@ -50,15 +48,35 @@ void WatchyDisplay::asyncPowerOn() { } } -void WatchyDisplay::setDarkBorder(bool dark) { +void WatchyDisplay::drawDarkBorder(bool dark) { if (_hibernating) return; - darkBorder = dark; + //This line overrides the intended behaviour that I want for the + //darkBorder variable. I want to set the darkBorder variable to dark + //and then paint the border always dark, not always putting the opposite + //colour of the background, like it is done here. + //darkBorder = dark; _startTransfer(); _transferCommand(0x3C); // BorderWavefrom _transfer(dark ? 0x02 : 0x05); _endTransfer(); } +/* + This is a setter for the darkBorder variable. It sets the darkBorder. +*/ +void WatchyDisplay::setDarkBorder(bool dark) { + if (_hibernating) return; + darkBorder = dark; + drawDarkBorder(dark); +} + +/* + This is a getter for the darkBorder variable. It returns the darkBorder. +*/ +bool WatchyDisplay::isDarkBorder() { + return darkBorder; +} + void WatchyDisplay::clearScreen(uint8_t value) { writeScreenBuffer(value); diff --git a/src/Display.h b/src/Display.h index dcb7248..5549f01 100644 --- a/src/Display.h +++ b/src/Display.h @@ -38,7 +38,9 @@ class WatchyDisplay : public GxEPD2_EPD // constructor WatchyDisplay(); void initWatchy(); + void drawDarkBorder(bool darkBorder); void setDarkBorder(bool darkBorder); + bool isDarkBorder(); void asyncPowerOn(); void _PowerOnAsync(); bool waitingPowerOn = false; @@ -76,7 +78,7 @@ class WatchyDisplay : public GxEPD2_EPD void powerOff(); // turns off generation of panel driving voltages, avoids screen fading over time void hibernate(); // turns powerOff() and sets controller to deep sleep for minimum power use, ONLY if wakeable by RST (rst >= 0) - bool darkBorder = false; // adds a dark border outside the normal screen area + bool darkBorder = true; // adds a dark border outside the normal screen area static constexpr bool reduceBoosterTime = true; // Saves ~200ms private: diff --git a/src/MoonPhase.cpp b/src/MoonPhase.cpp new file mode 100644 index 0000000..7797c14 --- /dev/null +++ b/src/MoonPhase.cpp @@ -0,0 +1,96 @@ +// Calculate the phase and position of the moon for a given date. +// The algorithm is simple and adequate for many purposes. +// +// This software was originally adapted to javascript by Stephen R. Schmitt +// from a BASIC program from the 'Astronomical Computing' column of Sky & Telescope, +// April 1994, page 86, written by Bradley E. Schaefer. +// +// Subsequently adapted from Stephen R. Schmitt's javascript to c++ for the Arduino +// by Cyrus Rahman, this work is subject to Stephen Schmitt's copyright: +// +// Copyright 2004 Stephen R. Schmitt +// You may use or modify this source code in any way you find useful, provided +// that you agree that the author(s) have no warranty, obligations or liability. You +// must determine the suitability of this source code for your use. + +#include +#include "MoonPhase.h" + +// Names of lunar phases +static const char *phaseNames[] = {"New", "Evening Crescent", "First Quarter", + "Waxing Gibbous", "Full", "Waning Gibbous", + "Last Quarter", "Morning Crescent"}; +// Names of Zodiac constellations +static const char *zodiacNames[] = {"Pisces", "Aries", "Taurus", "Gemini", "Cancer", + "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", + "Capricorn", "Aquarius"}; +// Ecliptic angles of Zodiac constellations +static const float zodiacAngles[] = {33.18, 51.16, 93.44, 119.48, 135.30, 173.34, + 224.17, 242.57, 271.26, 302.49, 311.72, 348.58}; + +// Constructor initialization. +MoonPhase::MoonPhase() { + jDate = 0; + phase = 0; + age = 0; + fraction = 0; + distance = 0; + latitude = 0; + longitude = 0; + phaseName = zodiacName = ""; +} + +// Determine the Moon Phase and orbital positions for the specified time. +void +MoonPhase::calculate(time_t t) { + jDate = julianDate(t); + + // Calculate illumination (synodic) phase. + // From number of days since new moon on Julian date MOON_SYNODIC_OFFSET + // (1815UTC January 6, 2000), determine remainder of incomplete cycle. + phase = (jDate - MOON_SYNODIC_OFFSET) / MOON_SYNODIC_PERIOD; + phase -= floor(phase); + + // Calculate age and illumination fraction. + age = phase * MOON_SYNODIC_PERIOD; + fraction = (1.0 - cos(2 * M_PI * phase)) * 0.5; + phaseName = phaseNames[(int)(phase * 8 + 0.5) % 8]; + + // Calculate distance from anomalistic phase. + double distancePhase = (jDate - MOON_DISTANCE_OFFSET) / MOON_DISTANCE_PERIOD; + distancePhase -= floor(distancePhase); + distance = 60.4 - 3.3 * cos(2 * M_PI * distancePhase) + - 0.6 * cos(2 * 2 * M_PI * phase - 2 * M_PI * distancePhase) + - 0.5 * cos(2 * 2 * M_PI * phase); + + // Calculate ecliptic latitude from nodal (draconic) phase. + double latPhase = (jDate - MOON_LATITUDE_OFFSET) / MOON_LATITUDE_PERIOD; + latPhase -= floor(latPhase); + latitude = 5.1 * sin(2 * M_PI * latPhase); + + // Calculate ecliptic longitude from sidereal motion. + double longPhase = (jDate - MOON_LONGITUDE_OFFSET) / MOON_LONGITUDE_PERIOD; + longPhase -= floor(longPhase); + longitude = 360 * longPhase + + 6.3 * sin(2 * M_PI * distancePhase) + + 1.3 * sin(2 * 2 * M_PI * phase - 2 * M_PI * distancePhase) + + 0.7 * sin(2 * 2 * M_PI * phase); + if (longitude > 360) + longitude -= 360; + + // Select the Zodiac name. + zodiacName = zodiacNames[0]; + for (int i = 0; i < sizeof(zodiacAngles) / sizeof(float); i++) { + if (longitude < zodiacAngles[i]) { + zodiacName = zodiacNames[i]; + break; + } + } +} + +// Determine Julian date from Unix time. +// Provides marginally accurate results with older Arduino 4-byte double. +double +MoonPhase::julianDate(time_t t) { + return (t / 86400.0L + 2440587.5); +} diff --git a/src/MoonPhase.h b/src/MoonPhase.h new file mode 100644 index 0000000..b63d1f5 --- /dev/null +++ b/src/MoonPhase.h @@ -0,0 +1,33 @@ +#ifndef MoonPhase_h +#define MoonPhase_h + +#include + +#define MOON_SYNODIC_PERIOD 29.530588853 // Period of moon cycle in days. +#define MOON_SYNODIC_OFFSET 2451550.26 // Reference cycle offset in days. +#define MOON_DISTANCE_PERIOD 27.55454988 // Period of distance oscillation +#define MOON_DISTANCE_OFFSET 2451562.2 +#define MOON_LATITUDE_PERIOD 27.212220817 // Latitude oscillation +#define MOON_LATITUDE_OFFSET 2451565.2 +#define MOON_LONGITUDE_PERIOD 27.321582241 // Longitude oscillation +#define MOON_LONGITUDE_OFFSET 2451555.8 + +class MoonPhase { + public: + double jDate; + double phase; // 0 - 1, 0.5 = full + double age; // Age in days of current cycle + double fraction; // Fraction of illuminated disk + double distance; // Moon distance in earth radii + double latitude; // Moon ecliptic latitude + double longitude; // Moon ecliptic longitude + const char *phaseName; // New, Full, etc. + const char *zodiacName; // Constellation + + MoonPhase(); + void calculate(time_t); + + private: + double julianDate(time_t); +}; +#endif diff --git a/src/TimezonesGMT.h b/src/TimezonesGMT.h new file mode 100644 index 0000000..1493dea --- /dev/null +++ b/src/TimezonesGMT.h @@ -0,0 +1,72 @@ +#ifndef TIMEZONES_GMT_H +#define TIMEZONES_GMT_H + +// This file is used to set up GMT based timezones. + +// You don't need to change anything here to be able to set up GMT based time. +// If you set TIMEZONES_NON_GMT_OVERRIDE to 1 (as for get summer time and leaps), +// you must provide one location based timezone. +// 0: GMT, 1: Location timezone. + +// Visit the link below. + +#ifndef TIMEZONES_NON_GMT_OVERRIDE +#define TIMEZONES_NON_GMT_OVERRIDE 0 // 0: GMT, 1: Location timezone. +#endif + +#ifndef TIMEZONES_SELECTED +#define TIMEZONES_SELECTED 0 // If above is 0, value is index of array below. +#endif // Etc/GMT0 + +#define TIMEZONES_LENGTH 28 + +typedef struct TZ { + const char* location; + const char* timezone; +} TZ; + + +// https://raw.githubusercontent.com/nayarsystems/posix_tz_db/master/zones.csv +static TZ tz_override = { + "Europe/Madrid", + "CET-1CEST,M3.5.0,M10.5.0/3" +}; + + +static TZ timeZones[] = { + {"Etc/GMT+0","GMT0"}, // 0 + {"Etc/GMT+1","<-01>1"}, // 1 + {"Etc/GMT+2","<-02>2"}, // 2 + {"Etc/GMT+3","<-03>3"}, // 3 + {"Etc/GMT+4","<-04>4"}, // 4 + {"Etc/GMT+5","<-05>5"}, // 5 + {"Etc/GMT+6","<-06>6"}, // 6 + {"Etc/GMT+7","<-07>7"}, // 7 + {"Etc/GMT+8","<-08>8"}, // 8 + {"Etc/GMT+9","<-09>9"}, // 9 + {"Etc/GMT+10","<-10>10"}, // 10 + {"Etc/GMT+11","<-11>11"}, // 11 + {"Etc/GMT+12","<-12>12"}, // 12 + {"Etc/GMT-0","GMT0"}, // 13 + {"Etc/GMT-1","<+01>-1"}, // 14 + {"Etc/GMT-2","<+02>-2"}, // 15 + {"Etc/GMT-3","<+03>-3"}, // 16 + {"Etc/GMT-4","<+04>-4"}, // 17 + {"Etc/GMT-5","<+05>-5"}, // 18 + {"Etc/GMT-6","<+06>-6"}, // 19 + {"Etc/GMT-7","<+07>-7"}, // 20 + {"Etc/GMT-8","<+08>-8"}, // 21 + {"Etc/GMT-9","<+09>-9"}, // 22 + {"Etc/GMT-10","<+10>-10"}, // 23 + {"Etc/GMT-11","<+11>-11"}, // 24 + {"Etc/GMT-12","<+12>-12"}, // 25 + {"Etc/GMT-13","<+13>-13"}, // 26 + {"Etc/GMT-14","<+14>-14"}, // 27 +}; + +static long OFFSETS_SEC[] = { + 0, 3600, 7200, 10800, 14400, 18000, 21600, 25200, 28800, 32400, 36000, 39600, 43200, 0, -3600, -7200, -10800, -14400, -18000, -21600, -25200, -28800, -32400, -36000, -39600, -43200, -46800, -50400 +}; + +static int8_t tzIndex = TIMEZONES_SELECTED; +#endif //TIMEZONES_GMT_H \ No newline at end of file diff --git a/src/Watchy.cpp b/src/Watchy.cpp index 893d459..3bc0d12 100644 --- a/src/Watchy.cpp +++ b/src/Watchy.cpp @@ -12,16 +12,22 @@ GxEPD2_BW Watchy::display( RTC_DATA_ATTR int guiState; RTC_DATA_ATTR int menuIndex; -RTC_DATA_ATTR BMA423 sensor; +RTC_DATA_ATTR BMA423 sensor; RTC_DATA_ATTR bool WIFI_CONFIGURED; RTC_DATA_ATTR bool BLE_CONFIGURED; RTC_DATA_ATTR weatherData currentWeather; RTC_DATA_ATTR int weatherIntervalCounter = -1; +#ifdef GMT_OFFSET_SEC +RTC_DATA_ATTR long gmtOffset = GMT_OFFSET_SEC; +#else RTC_DATA_ATTR long gmtOffset = 0; +#endif RTC_DATA_ATTR bool alreadyInMenu = true; +RTC_DATA_ATTR bool USB_PLUGGED_IN = false; RTC_DATA_ATTR tmElements_t bootTime; RTC_DATA_ATTR uint32_t lastIPAddress; RTC_DATA_ATTR char lastSSID[30]; +RTC_DATA_ATTR MoonPhase mp; void Watchy::init(String datetime) { esp_sleep_wakeup_cause_t wakeup_reason; @@ -31,11 +37,11 @@ void Watchy::init(String datetime) { #else Wire.begin(SDA, SCL); // init i2c #endif - RTC.init(); + RTC.init(); // Init the display since is almost sure we will use it display.epd2.initWatchy(); - + mp = MoonPhase(); switch (wakeup_reason) { #ifdef ARDUINO_ESP32S3_DEV case ESP_SLEEP_WAKEUP_TIMER: // RTC Alarm @@ -57,7 +63,7 @@ void Watchy::init(String datetime) { // Return to watchface if in menu for more than one tick if (alreadyInMenu) { guiState = WATCHFACE_STATE; - showWatchFace(false); + showWatchFace(true); } else { alreadyInMenu = true; } @@ -67,10 +73,24 @@ void Watchy::init(String datetime) { case ESP_SLEEP_WAKEUP_EXT1: // button Press handleButtonPress(); break; + #ifdef ARDUINO_ESP32S3_DEV + case ESP_SLEEP_WAKEUP_EXT0: // USB plug in + pinMode(USB_DET_PIN, INPUT); + USB_PLUGGED_IN = (digitalRead(USB_DET_PIN) == 1); + if(guiState == WATCHFACE_STATE){ + RTC.read(currentTime); + showWatchFace(true); + } + break; + #endif default: // reset RTC.config(datetime); _bmaConfig(); - gmtOffset = settings.gmtOffset; + #ifdef ARDUINO_ESP32S3_DEV + pinMode(USB_DET_PIN, INPUT); + USB_PLUGGED_IN = (digitalRead(USB_DET_PIN) == 1); + #endif + gmtOffset = settings.gmtOffset; RTC.read(currentTime); RTC.read(bootTime); showWatchFace(false); // full update on reset @@ -79,15 +99,25 @@ void Watchy::init(String datetime) { esp_sleep_disable_wakeup_source(ESP_SLEEP_WAKEUP_ALL); break; } + + time_t epoch = makeTime(currentTime); + mp.calculate(epoch); deepSleep(); } void Watchy::deepSleep() { display.hibernate(); RTC.clearAlarm(); // resets the alarm flag in the RTC #ifdef ARDUINO_ESP32S3_DEV + esp_sleep_enable_ext0_wakeup((gpio_num_t)USB_DET_PIN, USB_PLUGGED_IN ? LOW : HIGH); //// enable deep sleep wake on USB plug in/out + rtc_gpio_set_direction((gpio_num_t)USB_DET_PIN, RTC_GPIO_MODE_INPUT_ONLY); + rtc_gpio_pullup_en((gpio_num_t)USB_DET_PIN); + esp_sleep_enable_ext1_wakeup( BTN_PIN_MASK, ESP_EXT1_WAKEUP_ANY_LOW); // enable deep sleep wake on button press + rtc_gpio_set_direction((gpio_num_t)UP_BTN_PIN, RTC_GPIO_MODE_INPUT_ONLY); + rtc_gpio_pullup_en((gpio_num_t)UP_BTN_PIN); + rtc_clk_32k_enable(true); //rtc_clk_slow_freq_set(RTC_SLOW_FREQ_32K_XTAL); struct tm timeinfo; @@ -108,7 +138,6 @@ void Watchy::deepSleep() { BTN_PIN_MASK, ESP_EXT1_WAKEUP_ANY_HIGH); // enable deep sleep wake on button press #endif - gpio_deep_sleep_hold_dis(); esp_deep_sleep_start(); } @@ -118,7 +147,7 @@ void Watchy::handleButtonPress() { if (wakeupBit & MENU_BTN_MASK) { if (guiState == WATCHFACE_STATE) { // enter menu state if coming from watch face - showMenu(menuIndex, false); + showMenu(menuIndex, true); } else if (guiState == MAIN_MENU_STATE) { // if already in menu, then select menu item switch (menuIndex) { @@ -143,6 +172,8 @@ void Watchy::handleButtonPress() { case 6: showSyncNTP(); break; + case 7: + showMoonPhase(); default: break; } @@ -154,11 +185,11 @@ void Watchy::handleButtonPress() { else if (wakeupBit & BACK_BTN_MASK) { if (guiState == MAIN_MENU_STATE) { // exit to watch face if already in menu RTC.read(currentTime); - showWatchFace(false); + showWatchFace(true); } else if (guiState == APP_STATE) { - showMenu(menuIndex, false); // exit to menu if already in app + showMenu(menuIndex, true); // exit to menu if already in app } else if (guiState == FW_UPDATE_STATE) { - showMenu(menuIndex, false); // exit to menu if already in app + showMenu(menuIndex, true); // exit to menu if already in app } else if (guiState == WATCHFACE_STATE) { return; } @@ -225,6 +256,8 @@ void Watchy::handleButtonPress() { case 6: showSyncNTP(); break; + case 7: + showMoonPhase(); default: break; } @@ -236,12 +269,12 @@ void Watchy::handleButtonPress() { if (guiState == MAIN_MENU_STATE) { // exit to watch face if already in menu RTC.read(currentTime); - showWatchFace(false); + showWatchFace(true); break; // leave loop } else if (guiState == APP_STATE) { - showMenu(menuIndex, false); // exit to menu if already in app + showMenu(menuIndex, true); // exit to menu if already in app } else if (guiState == FW_UPDATE_STATE) { - showMenu(menuIndex, false); // exit to menu if already in app + showMenu(menuIndex, true); // exit to menu if already in app } } else if (digitalRead(UP_BTN_PIN) == ACTIVE_LOW) { lastTimeout = millis(); @@ -278,9 +311,9 @@ void Watchy::showMenu(byte menuIndex, bool partialRefresh) { const char *menuItems[] = { "About Watchy", "Vibrate Motor", "Show Accelerometer", "Set Time", "Setup WiFi", "Update Firmware", - "Sync NTP"}; + "Sync NTP", "Moon Phase"}; for (int i = 0; i < MENU_LENGTH; i++) { - yPos = MENU_HEIGHT + (MENU_HEIGHT * i); + yPos = MENU_HEIGHT/2 + (MENU_HEIGHT * i); display.setCursor(0, yPos); if (i == menuIndex) { display.getTextBounds(menuItems[i], 0, yPos, &x1, &y1, &w, &h); @@ -311,9 +344,9 @@ void Watchy::showFastMenu(byte menuIndex) { const char *menuItems[] = { "About Watchy", "Vibrate Motor", "Show Accelerometer", "Set Time", "Setup WiFi", "Update Firmware", - "Sync NTP"}; + "Sync NTP", "Moon Phase"}; for (int i = 0; i < MENU_LENGTH; i++) { - yPos = MENU_HEIGHT + (MENU_HEIGHT * i); + yPos = MENU_HEIGHT/2 + (MENU_HEIGHT * i); display.setCursor(0, yPos); if (i == menuIndex) { display.getTextBounds(menuItems[i], 0, yPos, &x1, &y1, &w, &h); @@ -375,11 +408,62 @@ void Watchy::showAbout() { }else{ display.println("WiFi Not Connected"); } - display.display(false); // full refresh + display.display(true); // full refresh guiState = APP_STATE; } +void Watchy::showMoonPhase() { + + RTC.read(currentTime); + time_t epoch = makeTime(currentTime); + mp.calculate(epoch); + + display.setFullWindow(); + display.fillScreen(GxEPD_BLACK); + display.setFont(&FreeMonoBold9pt7b); + display.setTextColor(GxEPD_WHITE); + display.setCursor(0, 10); + + display.setCursor(0, MENU_HEIGHT); + + display.print("Date: "); + display.println(mp.jDate); + + display.print("Phase: "); + display.println(mp.phase); + + display.print("Age: "); + display.print(mp.age); + display.println(" days"); + + display.print("Visibility: "); + display.print(mp.fraction); + display.println("%"); + + display.print("Distance: "); + display.print(mp.distance); + display.println(" er"); + + display.print("Latitude: "); + display.print(mp.latitude); + display.println("°"); + + display.print("Longitude: "); + display.print(mp.longitude); + display.println("°"); + + display.print("Ph.: "); + display.println(mp.phaseName); + + display.print("Zodiac: "); + display.println(mp.zodiacName); + + display.display(true); // full refresh + + guiState = APP_STATE; +} + void Watchy::showBuzz() { display.setFullWindow(); display.fillScreen(GxEPD_BLACK); @@ -387,9 +471,9 @@ void Watchy::showBuzz() { display.setTextColor(GxEPD_WHITE); display.setCursor(70, 80); display.println("Buzz!"); - display.display(false); // full refresh + display.display(true); // full refresh vibMotor(); - showMenu(menuIndex, false); + showMenu(menuIndex, true); } void Watchy::vibMotor(uint8_t intervalMs, uint8_t length) { @@ -421,6 +505,10 @@ void Watchy::setTime() { int8_t month = currentTime.Month; int8_t year = tmYearToY2k(currentTime.Year); #endif + // gmt variable defaults to TIMEZONES_SELECTED if defined + int8_t gmt = OFFSETS_SEC[tzIndex] / 3600; + + int8_t setIndex = SET_HOUR; @@ -467,6 +555,9 @@ void Watchy::setTime() { case SET_DAY: day == 31 ? (day = 1) : day++; break; + case SET_TZ: + tzIndex == TIMEZONES_LENGTH - 1 ? (tzIndex = 0) : tzIndex++; + break; default: break; } @@ -490,11 +581,18 @@ void Watchy::setTime() { case SET_DAY: day == 1 ? (day = 31) : day--; break; + case SET_TZ: + tzIndex == 0 ? (tzIndex = TIMEZONES_LENGTH - 1) : tzIndex--; + break; default: break; } } + + gmt = OFFSETS_SEC[tzIndex] / 3600; + gmtOffset = gmt * 3600; + display.fillScreen(GxEPD_BLACK); display.setTextColor(GxEPD_WHITE); display.setFont(&DSEG7_Classic_Bold_53); @@ -520,14 +618,25 @@ void Watchy::setTime() { } display.print(minute); + display.setFont(&FreeMonoBold9pt7b); + display.setTextColor(GxEPD_WHITE); + + display.setCursor(82, 140); + if (setIndex == SET_TZ) { // blink minute digits + display.setTextColor(blink ? GxEPD_WHITE : GxEPD_BLACK); + } + + display.print("GMT"); + display.print(gmt); + display.setTextColor(GxEPD_WHITE); display.setFont(&FreeMonoBold9pt7b); - display.setCursor(45, 150); + display.setCursor(60, 165); if (setIndex == SET_YEAR) { // blink minute digits display.setTextColor(blink ? GxEPD_WHITE : GxEPD_BLACK); } - display.print(2000 + year); + display.print(1970 + year); display.setTextColor(GxEPD_WHITE); display.print("/"); @@ -550,6 +659,7 @@ void Watchy::setTime() { display.print("0"); } display.print(day); + display.display(true); // partial refresh } @@ -564,10 +674,22 @@ void Watchy::setTime() { tm.Hour = hour; tm.Minute = minute; tm.Second = 0; + + if(TIMEZONES_NON_GMT_OVERRIDE == 0){ + setenv("TZ", timeZones[tzIndex].timezone, 1); + } else{ + #if TIMEZONES_NON_GMT_OVERRIDE == 1 + setenv("TZ", tz_override.timezone, 1); + #else + setenv("TZ", timeZones[TIMEZONES_SELECTED].timezone, 1); + #endif + } + tzset(); + RTC.set(tm); - - showMenu(menuIndex, false); + + showMenu(menuIndex, true); } void Watchy::showAccelerometer() { @@ -639,7 +761,7 @@ void Watchy::showAccelerometer() { } } - showMenu(menuIndex, false); + showMenu(menuIndex, true); } void Watchy::showWatchFace(bool partialRefresh) { @@ -909,8 +1031,9 @@ void Watchy::setupWifi() { weatherIntervalCounter = -1; // Reset to force weather to be read again lastIPAddress = WiFi.localIP(); WiFi.SSID().toCharArray(lastSSID, 30); + getWeatherData(); // force weather update } - display.display(false); // full refresh + display.display(true); // full refresh // turn off radios WiFi.mode(WIFI_OFF); btStop(); @@ -932,7 +1055,7 @@ void Watchy::_configModeCallback(WiFiManager *myWiFiManager) { display.println(WiFi.softAPIP()); display.println("MAC address:"); display.println(WiFi.softAPmacAddress().c_str()); - display.display(false); // full refresh + display.display(true); // full refresh } bool Watchy::connectWiFi() { @@ -971,7 +1094,7 @@ void Watchy::showUpdateFW() { display.println("again when ready"); display.println(" "); display.println("Keep USB powered"); - display.display(false); // full refresh + display.display(true); // full refresh guiState = FW_UPDATE_STATE; } @@ -988,7 +1111,7 @@ void Watchy::updateFWBegin() { display.println(" "); display.println("Waiting for"); display.println("connection..."); - display.display(false); // full refresh + display.display(true); // full refresh BLE BT; BT.begin("Watchy BLE OTA"); @@ -1008,7 +1131,7 @@ void Watchy::updateFWBegin() { display.println(" "); display.println("Waiting for"); display.println("upload..."); - display.display(false); // full refresh + display.display(true); // full refresh } if (currentStatus == 1) { display.setFullWindow(); @@ -1033,7 +1156,7 @@ void Watchy::updateFWBegin() { display.println("completed!"); display.println(" "); display.println("Rebooting..."); - display.display(false); // full refresh + display.display(true); // full refresh delay(2000); esp_restart(); @@ -1047,19 +1170,23 @@ void Watchy::updateFWBegin() { display.println("BLE Disconnected!"); display.println(" "); display.println("exiting..."); - display.display(false); // full refresh + display.display(true); // full refresh delay(1000); break; } + prevStatus = currentStatus; } + + if(digitalRead(BACK_BTN_PIN) == ACTIVE_LOW) break; + delay(100); } // turn off radios WiFi.mode(WIFI_OFF); btStop(); - showMenu(menuIndex, false); + showMenu(menuIndex, true); } void Watchy::showSyncNTP() { @@ -1071,9 +1198,9 @@ void Watchy::showSyncNTP() { display.println("Syncing NTP... "); display.print("GMT offset: "); display.println(gmtOffset); - display.display(false); // full refresh + display.display(true); // full refresh if (connectWiFi()) { - if (syncNTP()) { + if (syncNTP(gmtOffset)) { display.println("NTP Sync Success\n"); display.println("Current Time Is:"); @@ -1103,7 +1230,7 @@ void Watchy::showSyncNTP() { } display.display(true); // full refresh delay(3000); - showMenu(menuIndex, false); + showMenu(menuIndex, true); } bool Watchy::syncNTP() { // NTP sync - call after connecting to WiFi and @@ -1121,6 +1248,7 @@ bool Watchy::syncNTP(long gmt, String ntpServer) { // WiFi and remember to turn it back off WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, ntpServer.c_str(), gmt); + timeClient.setTimeOffset(gmt); timeClient.begin(); if (!timeClient.forceUpdate()) { return false; // NTP sync failed @@ -1128,5 +1256,9 @@ bool Watchy::syncNTP(long gmt, String ntpServer) { tmElements_t tm; breakTime((time_t)timeClient.getEpochTime(), tm); RTC.set(tm); + //Update also moon calendar. + RTC.read(currentTime); + time_t epoch = makeTime(currentTime); + mp.calculate(epoch); return true; } diff --git a/src/Watchy.h b/src/Watchy.h index b7c7a89..d3f55dd 100644 --- a/src/Watchy.h +++ b/src/Watchy.h @@ -16,6 +16,8 @@ #include "bma.h" #include "config.h" #include "esp_chip_info.h" +#include "TimezonesGMT.h" +#include "MoonPhase.h" #ifdef ARDUINO_ESP32S3_DEV #include "Watchy32KRTC.h" #include "soc/rtc.h" @@ -27,6 +29,8 @@ #include "soc/rtc_cntl_reg.h" #include "time.h" #include "esp_sntp.h" + #include "hal/rtc_io_types.h" + #include "driver/rtc_io.h" #define uS_TO_S_FACTOR 1000000ULL //Conversion factor for micro seconds to seconds #define ADC_VOLTAGE_DIVIDER ((360.0f+100.0f)/360.0f) //Voltage divider at battery ADC #else @@ -55,7 +59,7 @@ typedef struct watchySettings { int8_t weatherUpdateInterval; // NTP Settings String ntpServer; - int gmtOffset; + long gmtOffset; // bool vibrateOClock; } watchySettings; @@ -83,6 +87,7 @@ public: void showMenu(byte menuIndex, bool partialRefresh); void showFastMenu(byte menuIndex); void showAbout(); + void showMoonPhase(); void showBuzz(); void showAccelerometer(); void showUpdateFW(); @@ -116,5 +121,6 @@ extern RTC_DATA_ATTR int menuIndex; extern RTC_DATA_ATTR BMA423 sensor; extern RTC_DATA_ATTR bool WIFI_CONFIGURED; extern RTC_DATA_ATTR bool BLE_CONFIGURED; +extern RTC_DATA_ATTR bool USB_PLUGGED_IN; #endif diff --git a/src/Watchy32KRTC.cpp b/src/Watchy32KRTC.cpp index 02555b1..d332b6e 100644 --- a/src/Watchy32KRTC.cpp +++ b/src/Watchy32KRTC.cpp @@ -1,17 +1,19 @@ #include "Watchy32KRTC.h" +#include "TimezonesGMT.h" Watchy32KRTC::Watchy32KRTC(){} void Watchy32KRTC::init() { + if(TIMEZONES_NON_GMT_OVERRIDE == 0){ + setenv("TZ", timeZones[TIMEZONES_SELECTED].timezone, 1); + } else if (TIMEZONES_NON_GMT_OVERRIDE == 1) { + setenv("TZ", tz_override.timezone, 1); + } else { + setenv("TZ", "GMT0", 1); + } -} - -/* - - setenv("TZ", "", 1); tzset(); - -*/ +} void Watchy32KRTC::config(String datetime) { // String datetime format is YYYY:MM:DD:HH:MM:SS struct tm timeInfo; @@ -62,7 +64,6 @@ void Watchy32KRTC::set(tmElements_t tm) { timeInfo.tm_hour = tm.Hour; timeInfo.tm_min = tm.Minute; timeInfo.tm_sec = tm.Second; - // Convert tm to timeval struct timeval tv; tv.tv_sec = mktime(&timeInfo); diff --git a/src/config.h b/src/config.h index 426bed1..0133b46 100644 --- a/src/config.h +++ b/src/config.h @@ -2,7 +2,7 @@ #define CONFIG_H // Versioning -#define WATCHY_LIB_VER "1.4.13" +#define WATCHY_LIB_VER "1.4.14" //pins @@ -99,14 +99,16 @@ #define MAIN_MENU_STATE 0 #define APP_STATE 1 #define FW_UPDATE_STATE 2 -#define MENU_HEIGHT 25 -#define MENU_LENGTH 7 +#define MENU_HEIGHT 24 +#define MENU_LENGTH 8 // set time #define SET_HOUR 0 #define SET_MINUTE 1 -#define SET_YEAR 2 -#define SET_MONTH 3 -#define SET_DAY 4 +#define SET_TZ 2 +#define SET_YEAR 3 +#define SET_MONTH 4 +#define SET_DAY 5 + #define HOUR_12_24 24 // BLE OTA #define BLE_DEVICE_NAME "Watchy BLE OTA"